
software.amazon.awssdk.services.personalize.DefaultPersonalizeAsyncClient 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.personalize;
import java.util.Collections;
import java.util.List;
import java.util.concurrent.CompletableFuture;
import java.util.function.Consumer;
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.AwsRequestOverrideConfiguration;
import software.amazon.awssdk.awscore.client.handler.AwsAsyncClientHandler;
import software.amazon.awssdk.awscore.exception.AwsServiceException;
import software.amazon.awssdk.core.ApiName;
import software.amazon.awssdk.core.RequestOverrideConfiguration;
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.core.util.VersionInfo;
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.json.AwsJsonProtocol;
import software.amazon.awssdk.protocols.json.AwsJsonProtocolFactory;
import software.amazon.awssdk.protocols.json.BaseAwsJsonProtocolFactory;
import software.amazon.awssdk.protocols.json.JsonOperationMetadata;
import software.amazon.awssdk.services.personalize.model.CreateBatchInferenceJobRequest;
import software.amazon.awssdk.services.personalize.model.CreateBatchInferenceJobResponse;
import software.amazon.awssdk.services.personalize.model.CreateCampaignRequest;
import software.amazon.awssdk.services.personalize.model.CreateCampaignResponse;
import software.amazon.awssdk.services.personalize.model.CreateDatasetExportJobRequest;
import software.amazon.awssdk.services.personalize.model.CreateDatasetExportJobResponse;
import software.amazon.awssdk.services.personalize.model.CreateDatasetGroupRequest;
import software.amazon.awssdk.services.personalize.model.CreateDatasetGroupResponse;
import software.amazon.awssdk.services.personalize.model.CreateDatasetImportJobRequest;
import software.amazon.awssdk.services.personalize.model.CreateDatasetImportJobResponse;
import software.amazon.awssdk.services.personalize.model.CreateDatasetRequest;
import software.amazon.awssdk.services.personalize.model.CreateDatasetResponse;
import software.amazon.awssdk.services.personalize.model.CreateEventTrackerRequest;
import software.amazon.awssdk.services.personalize.model.CreateEventTrackerResponse;
import software.amazon.awssdk.services.personalize.model.CreateFilterRequest;
import software.amazon.awssdk.services.personalize.model.CreateFilterResponse;
import software.amazon.awssdk.services.personalize.model.CreateSchemaRequest;
import software.amazon.awssdk.services.personalize.model.CreateSchemaResponse;
import software.amazon.awssdk.services.personalize.model.CreateSolutionRequest;
import software.amazon.awssdk.services.personalize.model.CreateSolutionResponse;
import software.amazon.awssdk.services.personalize.model.CreateSolutionVersionRequest;
import software.amazon.awssdk.services.personalize.model.CreateSolutionVersionResponse;
import software.amazon.awssdk.services.personalize.model.DeleteCampaignRequest;
import software.amazon.awssdk.services.personalize.model.DeleteCampaignResponse;
import software.amazon.awssdk.services.personalize.model.DeleteDatasetGroupRequest;
import software.amazon.awssdk.services.personalize.model.DeleteDatasetGroupResponse;
import software.amazon.awssdk.services.personalize.model.DeleteDatasetRequest;
import software.amazon.awssdk.services.personalize.model.DeleteDatasetResponse;
import software.amazon.awssdk.services.personalize.model.DeleteEventTrackerRequest;
import software.amazon.awssdk.services.personalize.model.DeleteEventTrackerResponse;
import software.amazon.awssdk.services.personalize.model.DeleteFilterRequest;
import software.amazon.awssdk.services.personalize.model.DeleteFilterResponse;
import software.amazon.awssdk.services.personalize.model.DeleteSchemaRequest;
import software.amazon.awssdk.services.personalize.model.DeleteSchemaResponse;
import software.amazon.awssdk.services.personalize.model.DeleteSolutionRequest;
import software.amazon.awssdk.services.personalize.model.DeleteSolutionResponse;
import software.amazon.awssdk.services.personalize.model.DescribeAlgorithmRequest;
import software.amazon.awssdk.services.personalize.model.DescribeAlgorithmResponse;
import software.amazon.awssdk.services.personalize.model.DescribeBatchInferenceJobRequest;
import software.amazon.awssdk.services.personalize.model.DescribeBatchInferenceJobResponse;
import software.amazon.awssdk.services.personalize.model.DescribeCampaignRequest;
import software.amazon.awssdk.services.personalize.model.DescribeCampaignResponse;
import software.amazon.awssdk.services.personalize.model.DescribeDatasetExportJobRequest;
import software.amazon.awssdk.services.personalize.model.DescribeDatasetExportJobResponse;
import software.amazon.awssdk.services.personalize.model.DescribeDatasetGroupRequest;
import software.amazon.awssdk.services.personalize.model.DescribeDatasetGroupResponse;
import software.amazon.awssdk.services.personalize.model.DescribeDatasetImportJobRequest;
import software.amazon.awssdk.services.personalize.model.DescribeDatasetImportJobResponse;
import software.amazon.awssdk.services.personalize.model.DescribeDatasetRequest;
import software.amazon.awssdk.services.personalize.model.DescribeDatasetResponse;
import software.amazon.awssdk.services.personalize.model.DescribeEventTrackerRequest;
import software.amazon.awssdk.services.personalize.model.DescribeEventTrackerResponse;
import software.amazon.awssdk.services.personalize.model.DescribeFeatureTransformationRequest;
import software.amazon.awssdk.services.personalize.model.DescribeFeatureTransformationResponse;
import software.amazon.awssdk.services.personalize.model.DescribeFilterRequest;
import software.amazon.awssdk.services.personalize.model.DescribeFilterResponse;
import software.amazon.awssdk.services.personalize.model.DescribeRecipeRequest;
import software.amazon.awssdk.services.personalize.model.DescribeRecipeResponse;
import software.amazon.awssdk.services.personalize.model.DescribeSchemaRequest;
import software.amazon.awssdk.services.personalize.model.DescribeSchemaResponse;
import software.amazon.awssdk.services.personalize.model.DescribeSolutionRequest;
import software.amazon.awssdk.services.personalize.model.DescribeSolutionResponse;
import software.amazon.awssdk.services.personalize.model.DescribeSolutionVersionRequest;
import software.amazon.awssdk.services.personalize.model.DescribeSolutionVersionResponse;
import software.amazon.awssdk.services.personalize.model.GetSolutionMetricsRequest;
import software.amazon.awssdk.services.personalize.model.GetSolutionMetricsResponse;
import software.amazon.awssdk.services.personalize.model.InvalidInputException;
import software.amazon.awssdk.services.personalize.model.InvalidNextTokenException;
import software.amazon.awssdk.services.personalize.model.LimitExceededException;
import software.amazon.awssdk.services.personalize.model.ListBatchInferenceJobsRequest;
import software.amazon.awssdk.services.personalize.model.ListBatchInferenceJobsResponse;
import software.amazon.awssdk.services.personalize.model.ListCampaignsRequest;
import software.amazon.awssdk.services.personalize.model.ListCampaignsResponse;
import software.amazon.awssdk.services.personalize.model.ListDatasetExportJobsRequest;
import software.amazon.awssdk.services.personalize.model.ListDatasetExportJobsResponse;
import software.amazon.awssdk.services.personalize.model.ListDatasetGroupsRequest;
import software.amazon.awssdk.services.personalize.model.ListDatasetGroupsResponse;
import software.amazon.awssdk.services.personalize.model.ListDatasetImportJobsRequest;
import software.amazon.awssdk.services.personalize.model.ListDatasetImportJobsResponse;
import software.amazon.awssdk.services.personalize.model.ListDatasetsRequest;
import software.amazon.awssdk.services.personalize.model.ListDatasetsResponse;
import software.amazon.awssdk.services.personalize.model.ListEventTrackersRequest;
import software.amazon.awssdk.services.personalize.model.ListEventTrackersResponse;
import software.amazon.awssdk.services.personalize.model.ListFiltersRequest;
import software.amazon.awssdk.services.personalize.model.ListFiltersResponse;
import software.amazon.awssdk.services.personalize.model.ListRecipesRequest;
import software.amazon.awssdk.services.personalize.model.ListRecipesResponse;
import software.amazon.awssdk.services.personalize.model.ListSchemasRequest;
import software.amazon.awssdk.services.personalize.model.ListSchemasResponse;
import software.amazon.awssdk.services.personalize.model.ListSolutionVersionsRequest;
import software.amazon.awssdk.services.personalize.model.ListSolutionVersionsResponse;
import software.amazon.awssdk.services.personalize.model.ListSolutionsRequest;
import software.amazon.awssdk.services.personalize.model.ListSolutionsResponse;
import software.amazon.awssdk.services.personalize.model.PersonalizeException;
import software.amazon.awssdk.services.personalize.model.PersonalizeRequest;
import software.amazon.awssdk.services.personalize.model.ResourceAlreadyExistsException;
import software.amazon.awssdk.services.personalize.model.ResourceInUseException;
import software.amazon.awssdk.services.personalize.model.ResourceNotFoundException;
import software.amazon.awssdk.services.personalize.model.StopSolutionVersionCreationRequest;
import software.amazon.awssdk.services.personalize.model.StopSolutionVersionCreationResponse;
import software.amazon.awssdk.services.personalize.model.UpdateCampaignRequest;
import software.amazon.awssdk.services.personalize.model.UpdateCampaignResponse;
import software.amazon.awssdk.services.personalize.paginators.ListBatchInferenceJobsPublisher;
import software.amazon.awssdk.services.personalize.paginators.ListCampaignsPublisher;
import software.amazon.awssdk.services.personalize.paginators.ListDatasetExportJobsPublisher;
import software.amazon.awssdk.services.personalize.paginators.ListDatasetGroupsPublisher;
import software.amazon.awssdk.services.personalize.paginators.ListDatasetImportJobsPublisher;
import software.amazon.awssdk.services.personalize.paginators.ListDatasetsPublisher;
import software.amazon.awssdk.services.personalize.paginators.ListEventTrackersPublisher;
import software.amazon.awssdk.services.personalize.paginators.ListFiltersPublisher;
import software.amazon.awssdk.services.personalize.paginators.ListRecipesPublisher;
import software.amazon.awssdk.services.personalize.paginators.ListSchemasPublisher;
import software.amazon.awssdk.services.personalize.paginators.ListSolutionVersionsPublisher;
import software.amazon.awssdk.services.personalize.paginators.ListSolutionsPublisher;
import software.amazon.awssdk.services.personalize.transform.CreateBatchInferenceJobRequestMarshaller;
import software.amazon.awssdk.services.personalize.transform.CreateCampaignRequestMarshaller;
import software.amazon.awssdk.services.personalize.transform.CreateDatasetExportJobRequestMarshaller;
import software.amazon.awssdk.services.personalize.transform.CreateDatasetGroupRequestMarshaller;
import software.amazon.awssdk.services.personalize.transform.CreateDatasetImportJobRequestMarshaller;
import software.amazon.awssdk.services.personalize.transform.CreateDatasetRequestMarshaller;
import software.amazon.awssdk.services.personalize.transform.CreateEventTrackerRequestMarshaller;
import software.amazon.awssdk.services.personalize.transform.CreateFilterRequestMarshaller;
import software.amazon.awssdk.services.personalize.transform.CreateSchemaRequestMarshaller;
import software.amazon.awssdk.services.personalize.transform.CreateSolutionRequestMarshaller;
import software.amazon.awssdk.services.personalize.transform.CreateSolutionVersionRequestMarshaller;
import software.amazon.awssdk.services.personalize.transform.DeleteCampaignRequestMarshaller;
import software.amazon.awssdk.services.personalize.transform.DeleteDatasetGroupRequestMarshaller;
import software.amazon.awssdk.services.personalize.transform.DeleteDatasetRequestMarshaller;
import software.amazon.awssdk.services.personalize.transform.DeleteEventTrackerRequestMarshaller;
import software.amazon.awssdk.services.personalize.transform.DeleteFilterRequestMarshaller;
import software.amazon.awssdk.services.personalize.transform.DeleteSchemaRequestMarshaller;
import software.amazon.awssdk.services.personalize.transform.DeleteSolutionRequestMarshaller;
import software.amazon.awssdk.services.personalize.transform.DescribeAlgorithmRequestMarshaller;
import software.amazon.awssdk.services.personalize.transform.DescribeBatchInferenceJobRequestMarshaller;
import software.amazon.awssdk.services.personalize.transform.DescribeCampaignRequestMarshaller;
import software.amazon.awssdk.services.personalize.transform.DescribeDatasetExportJobRequestMarshaller;
import software.amazon.awssdk.services.personalize.transform.DescribeDatasetGroupRequestMarshaller;
import software.amazon.awssdk.services.personalize.transform.DescribeDatasetImportJobRequestMarshaller;
import software.amazon.awssdk.services.personalize.transform.DescribeDatasetRequestMarshaller;
import software.amazon.awssdk.services.personalize.transform.DescribeEventTrackerRequestMarshaller;
import software.amazon.awssdk.services.personalize.transform.DescribeFeatureTransformationRequestMarshaller;
import software.amazon.awssdk.services.personalize.transform.DescribeFilterRequestMarshaller;
import software.amazon.awssdk.services.personalize.transform.DescribeRecipeRequestMarshaller;
import software.amazon.awssdk.services.personalize.transform.DescribeSchemaRequestMarshaller;
import software.amazon.awssdk.services.personalize.transform.DescribeSolutionRequestMarshaller;
import software.amazon.awssdk.services.personalize.transform.DescribeSolutionVersionRequestMarshaller;
import software.amazon.awssdk.services.personalize.transform.GetSolutionMetricsRequestMarshaller;
import software.amazon.awssdk.services.personalize.transform.ListBatchInferenceJobsRequestMarshaller;
import software.amazon.awssdk.services.personalize.transform.ListCampaignsRequestMarshaller;
import software.amazon.awssdk.services.personalize.transform.ListDatasetExportJobsRequestMarshaller;
import software.amazon.awssdk.services.personalize.transform.ListDatasetGroupsRequestMarshaller;
import software.amazon.awssdk.services.personalize.transform.ListDatasetImportJobsRequestMarshaller;
import software.amazon.awssdk.services.personalize.transform.ListDatasetsRequestMarshaller;
import software.amazon.awssdk.services.personalize.transform.ListEventTrackersRequestMarshaller;
import software.amazon.awssdk.services.personalize.transform.ListFiltersRequestMarshaller;
import software.amazon.awssdk.services.personalize.transform.ListRecipesRequestMarshaller;
import software.amazon.awssdk.services.personalize.transform.ListSchemasRequestMarshaller;
import software.amazon.awssdk.services.personalize.transform.ListSolutionVersionsRequestMarshaller;
import software.amazon.awssdk.services.personalize.transform.ListSolutionsRequestMarshaller;
import software.amazon.awssdk.services.personalize.transform.StopSolutionVersionCreationRequestMarshaller;
import software.amazon.awssdk.services.personalize.transform.UpdateCampaignRequestMarshaller;
import software.amazon.awssdk.utils.CompletableFutureUtils;
/**
* Internal implementation of {@link PersonalizeAsyncClient}.
*
* @see PersonalizeAsyncClient#builder()
*/
@Generated("software.amazon.awssdk:codegen")
@SdkInternalApi
final class DefaultPersonalizeAsyncClient implements PersonalizeAsyncClient {
private static final Logger log = LoggerFactory.getLogger(DefaultPersonalizeAsyncClient.class);
private final AsyncClientHandler clientHandler;
private final AwsJsonProtocolFactory protocolFactory;
private final SdkClientConfiguration clientConfiguration;
protected DefaultPersonalizeAsyncClient(SdkClientConfiguration clientConfiguration) {
this.clientHandler = new AwsAsyncClientHandler(clientConfiguration);
this.clientConfiguration = clientConfiguration;
this.protocolFactory = init(AwsJsonProtocolFactory.builder()).build();
}
@Override
public final String serviceName() {
return SERVICE_NAME;
}
/**
*
* Creates a batch inference job. The operation can handle up to 50 million records and the input file must be in
* JSON format. For more information, see recommendations-batch.
*
*
* @param createBatchInferenceJobRequest
* @return A Java Future containing the result of the CreateBatchInferenceJob operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions.
*
* - InvalidInputException Provide a valid value for the field or parameter.
* - ResourceAlreadyExistsException The specified resource already exists.
* - LimitExceededException The limit on the number of requests per second has been exceeded.
* - ResourceNotFoundException Could not find the specified resource.
* - ResourceInUseException The specified resource is in use.
* - 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.
* - PersonalizeException Base class for all service exceptions. Unknown exceptions will be thrown as an
* instance of this type.
*
* @sample PersonalizeAsyncClient.CreateBatchInferenceJob
* @see AWS API Documentation
*/
@Override
public CompletableFuture createBatchInferenceJob(
CreateBatchInferenceJobRequest createBatchInferenceJobRequest) {
List metricPublishers = resolveMetricPublishers(clientConfiguration, createBatchInferenceJobRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Personalize");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "CreateBatchInferenceJob");
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, CreateBatchInferenceJobResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
CompletableFuture executeFuture = clientHandler
.execute(new ClientExecutionParams()
.withOperationName("CreateBatchInferenceJob")
.withMarshaller(new CreateBatchInferenceJobRequestMarshaller(protocolFactory))
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withMetricCollector(apiCallMetricCollector).withInput(createBatchInferenceJobRequest));
AwsRequestOverrideConfiguration requestOverrideConfig = createBatchInferenceJobRequest.overrideConfiguration()
.orElse(null);
CompletableFuture whenCompleted = executeFuture.whenComplete((r, e) -> {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
});
executeFuture = CompletableFutureUtils.forwardExceptionTo(whenCompleted, executeFuture);
return executeFuture;
} catch (Throwable t) {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
return CompletableFutureUtils.failedFuture(t);
}
}
/**
*
* Creates a campaign by deploying a solution version. When a client calls the GetRecommendations
* and
* GetPersonalizedRanking APIs, a campaign is specified in the request.
*
*
* Minimum Provisioned TPS and Auto-Scaling
*
*
* A transaction is a single GetRecommendations
or GetPersonalizedRanking
call.
* Transactions per second (TPS) is the throughput and unit of billing for Amazon Personalize. The minimum
* provisioned TPS (minProvisionedTPS
) specifies the baseline throughput provisioned by Amazon
* Personalize, and thus, the minimum billing charge.
*
*
* If your TPS increases beyond minProvisionedTPS
, Amazon Personalize auto-scales the provisioned
* capacity up and down, but never below minProvisionedTPS
. There's a short time delay while the
* capacity is increased that might cause loss of transactions.
*
*
* The actual TPS used is calculated as the average requests/second within a 5-minute window. You pay for maximum of
* either the minimum provisioned TPS or the actual TPS. We recommend starting with a low
* minProvisionedTPS
, track your usage using Amazon CloudWatch metrics, and then increase the
* minProvisionedTPS
as necessary.
*
*
* Status
*
*
* A campaign can be in one of the following states:
*
*
* -
*
* CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED
*
*
* -
*
* DELETE PENDING > DELETE IN_PROGRESS
*
*
*
*
* To get the campaign status, call DescribeCampaign.
*
*
*
* Wait until the status
of the campaign is ACTIVE
before asking the campaign for
* recommendations.
*
*
*
* Related APIs
*
*
* -
*
* ListCampaigns
*
*
* -
*
* DescribeCampaign
*
*
* -
*
* UpdateCampaign
*
*
* -
*
* DeleteCampaign
*
*
*
*
* @param createCampaignRequest
* @return A Java Future containing the result of the CreateCampaign operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions.
*
* - InvalidInputException Provide a valid value for the field or parameter.
* - ResourceNotFoundException Could not find the specified resource.
* - ResourceAlreadyExistsException The specified resource already exists.
* - LimitExceededException The limit on the number of requests per second has been exceeded.
* - ResourceInUseException The specified resource is in use.
* - 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.
* - PersonalizeException Base class for all service exceptions. Unknown exceptions will be thrown as an
* instance of this type.
*
* @sample PersonalizeAsyncClient.CreateCampaign
* @see AWS
* API Documentation
*/
@Override
public CompletableFuture createCampaign(CreateCampaignRequest createCampaignRequest) {
List metricPublishers = resolveMetricPublishers(clientConfiguration, createCampaignRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Personalize");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "CreateCampaign");
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, CreateCampaignResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
CompletableFuture executeFuture = clientHandler
.execute(new ClientExecutionParams()
.withOperationName("CreateCampaign")
.withMarshaller(new CreateCampaignRequestMarshaller(protocolFactory))
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withMetricCollector(apiCallMetricCollector).withInput(createCampaignRequest));
AwsRequestOverrideConfiguration requestOverrideConfig = createCampaignRequest.overrideConfiguration().orElse(null);
CompletableFuture whenCompleted = executeFuture.whenComplete((r, e) -> {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
});
executeFuture = CompletableFutureUtils.forwardExceptionTo(whenCompleted, executeFuture);
return executeFuture;
} catch (Throwable t) {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
return CompletableFutureUtils.failedFuture(t);
}
}
/**
*
* Creates an empty dataset and adds it to the specified dataset group. Use CreateDatasetImportJob to import
* your training data to a dataset.
*
*
* There are three types of datasets:
*
*
* -
*
* Interactions
*
*
* -
*
* Items
*
*
* -
*
* Users
*
*
*
*
* Each dataset type has an associated schema with required field types. Only the Interactions
dataset
* is required in order to train a model (also referred to as creating a solution).
*
*
* A dataset can be in one of the following states:
*
*
* -
*
* CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED
*
*
* -
*
* DELETE PENDING > DELETE IN_PROGRESS
*
*
*
*
* To get the status of the dataset, call DescribeDataset.
*
*
* Related APIs
*
*
* -
*
*
* -
*
* ListDatasets
*
*
* -
*
* DescribeDataset
*
*
* -
*
* DeleteDataset
*
*
*
*
* @param createDatasetRequest
* @return A Java Future containing the result of the CreateDataset operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions.
*
* - InvalidInputException Provide a valid value for the field or parameter.
* - ResourceNotFoundException Could not find the specified resource.
* - ResourceAlreadyExistsException The specified resource already exists.
* - LimitExceededException The limit on the number of requests per second has been exceeded.
* - ResourceInUseException The specified resource is in use.
* - 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.
* - PersonalizeException Base class for all service exceptions. Unknown exceptions will be thrown as an
* instance of this type.
*
* @sample PersonalizeAsyncClient.CreateDataset
* @see AWS API
* Documentation
*/
@Override
public CompletableFuture createDataset(CreateDatasetRequest createDatasetRequest) {
List metricPublishers = resolveMetricPublishers(clientConfiguration, createDatasetRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Personalize");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "CreateDataset");
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata,
CreateDatasetResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
CompletableFuture executeFuture = clientHandler
.execute(new ClientExecutionParams()
.withOperationName("CreateDataset")
.withMarshaller(new CreateDatasetRequestMarshaller(protocolFactory))
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withMetricCollector(apiCallMetricCollector).withInput(createDatasetRequest));
AwsRequestOverrideConfiguration requestOverrideConfig = createDatasetRequest.overrideConfiguration().orElse(null);
CompletableFuture whenCompleted = executeFuture.whenComplete((r, e) -> {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
});
executeFuture = CompletableFutureUtils.forwardExceptionTo(whenCompleted, executeFuture);
return executeFuture;
} catch (Throwable t) {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
return CompletableFutureUtils.failedFuture(t);
}
}
/**
*
* Creates a job that exports data from your dataset to an Amazon S3 bucket. To allow Amazon Personalize to export
* the training data, you must specify an service-linked IAM role that gives Amazon Personalize
* PutObject
permissions for your Amazon S3 bucket. For information, see Exporting a dataset in the Amazon
* Personalize developer guide.
*
*
* Status
*
*
* A dataset export job can be in one of the following states:
*
*
* -
*
* CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED
*
*
*
*
* To get the status of the export job, call DescribeDatasetExportJob, and specify the Amazon Resource Name
* (ARN) of the dataset export job. The dataset export is complete when the status shows as ACTIVE. If the status
* shows as CREATE FAILED, the response includes a failureReason
key, which describes why the job
* failed.
*
*
* @param createDatasetExportJobRequest
* @return A Java Future containing the result of the CreateDatasetExportJob operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions.
*
* - InvalidInputException Provide a valid value for the field or parameter.
* - ResourceNotFoundException Could not find the specified resource.
* - ResourceAlreadyExistsException The specified resource already exists.
* - LimitExceededException The limit on the number of requests per second has been exceeded.
* - ResourceInUseException The specified resource is in use.
* - 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.
* - PersonalizeException Base class for all service exceptions. Unknown exceptions will be thrown as an
* instance of this type.
*
* @sample PersonalizeAsyncClient.CreateDatasetExportJob
* @see AWS API Documentation
*/
@Override
public CompletableFuture createDatasetExportJob(
CreateDatasetExportJobRequest createDatasetExportJobRequest) {
List metricPublishers = resolveMetricPublishers(clientConfiguration, createDatasetExportJobRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Personalize");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "CreateDatasetExportJob");
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, CreateDatasetExportJobResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
CompletableFuture executeFuture = clientHandler
.execute(new ClientExecutionParams()
.withOperationName("CreateDatasetExportJob")
.withMarshaller(new CreateDatasetExportJobRequestMarshaller(protocolFactory))
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withMetricCollector(apiCallMetricCollector).withInput(createDatasetExportJobRequest));
AwsRequestOverrideConfiguration requestOverrideConfig = createDatasetExportJobRequest.overrideConfiguration().orElse(
null);
CompletableFuture whenCompleted = executeFuture.whenComplete((r, e) -> {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
});
executeFuture = CompletableFutureUtils.forwardExceptionTo(whenCompleted, executeFuture);
return executeFuture;
} catch (Throwable t) {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
return CompletableFutureUtils.failedFuture(t);
}
}
/**
*
* Creates an empty dataset group. A dataset group contains related datasets that supply data for training a model.
* A dataset group can contain at most three datasets, one for each type of dataset:
*
*
* -
*
* Interactions
*
*
* -
*
* Items
*
*
* -
*
* Users
*
*
*
*
* To train a model (create a solution), a dataset group that contains an Interactions
dataset is
* required. Call CreateDataset to add a dataset to the group.
*
*
* A dataset group can be in one of the following states:
*
*
* -
*
* CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED
*
*
* -
*
* DELETE PENDING
*
*
*
*
* To get the status of the dataset group, call DescribeDatasetGroup. If the status shows as CREATE FAILED,
* the response includes a failureReason
key, which describes why the creation failed.
*
*
*
* You must wait until the status
of the dataset group is ACTIVE
before adding a dataset
* to the group.
*
*
*
* You can specify an Key Management Service (KMS) key to encrypt the datasets in the group. If you specify a KMS
* key, you must also include an Identity and Access Management (IAM) role that has permission to access the key.
*
*
* APIs that require a dataset group ARN in the request
*
*
* -
*
* CreateDataset
*
*
* -
*
*
* -
*
* CreateSolution
*
*
*
*
* Related APIs
*
*
* -
*
*
* -
*
*
* -
*
*
*
*
* @param createDatasetGroupRequest
* @return A Java Future containing the result of the CreateDatasetGroup operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions.
*
* - InvalidInputException Provide a valid value for the field or parameter.
* - ResourceAlreadyExistsException The specified resource already exists.
* - LimitExceededException The limit on the number of requests per second has been exceeded.
* - 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.
* - PersonalizeException Base class for all service exceptions. Unknown exceptions will be thrown as an
* instance of this type.
*
* @sample PersonalizeAsyncClient.CreateDatasetGroup
* @see AWS API Documentation
*/
@Override
public CompletableFuture createDatasetGroup(CreateDatasetGroupRequest createDatasetGroupRequest) {
List metricPublishers = resolveMetricPublishers(clientConfiguration, createDatasetGroupRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Personalize");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "CreateDatasetGroup");
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, CreateDatasetGroupResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
CompletableFuture executeFuture = clientHandler
.execute(new ClientExecutionParams()
.withOperationName("CreateDatasetGroup")
.withMarshaller(new CreateDatasetGroupRequestMarshaller(protocolFactory))
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withMetricCollector(apiCallMetricCollector).withInput(createDatasetGroupRequest));
AwsRequestOverrideConfiguration requestOverrideConfig = createDatasetGroupRequest.overrideConfiguration()
.orElse(null);
CompletableFuture whenCompleted = executeFuture.whenComplete((r, e) -> {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
});
executeFuture = CompletableFutureUtils.forwardExceptionTo(whenCompleted, executeFuture);
return executeFuture;
} catch (Throwable t) {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
return CompletableFutureUtils.failedFuture(t);
}
}
/**
*
* Creates a job that imports training data from your data source (an Amazon S3 bucket) to an Amazon Personalize
* dataset. To allow Amazon Personalize to ACTIVE -or- CREATE FAILED
*
*
*
* To get the status of the import job, call DescribeDatasetImportJob, providing the Amazon Resource Name
* (ARN) of the dataset import job. The dataset import is complete when the status shows as ACTIVE. If the status
* shows as CREATE FAILED, the response includes a failureReason
key, which describes why the job
* failed.
*
*
*
* Importing takes time. You must wait until the status shows as ACTIVE before training a model using the dataset.
*
*
*
* Related APIs
*
*
* -
*
*
* -
*
*
*
*
* @param createDatasetImportJobRequest
* @return A Java Future containing the result of the CreateDatasetImportJob operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions.
*
* - InvalidInputException Provide a valid value for the field or parameter.
* - ResourceNotFoundException Could not find the specified resource.
* - ResourceAlreadyExistsException The specified resource already exists.
* - LimitExceededException The limit on the number of requests per second has been exceeded.
* - ResourceInUseException The specified resource is in use.
* - 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.
* - PersonalizeException Base class for all service exceptions. Unknown exceptions will be thrown as an
* instance of this type.
*
* @sample PersonalizeAsyncClient.CreateDatasetImportJob
* @see AWS API Documentation
*/
@Override
public CompletableFuture createDatasetImportJob(
CreateDatasetImportJobRequest createDatasetImportJobRequest) {
List metricPublishers = resolveMetricPublishers(clientConfiguration, createDatasetImportJobRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Personalize");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "CreateDatasetImportJob");
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, CreateDatasetImportJobResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
CompletableFuture executeFuture = clientHandler
.execute(new ClientExecutionParams()
.withOperationName("CreateDatasetImportJob")
.withMarshaller(new CreateDatasetImportJobRequestMarshaller(protocolFactory))
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withMetricCollector(apiCallMetricCollector).withInput(createDatasetImportJobRequest));
AwsRequestOverrideConfiguration requestOverrideConfig = createDatasetImportJobRequest.overrideConfiguration().orElse(
null);
CompletableFuture whenCompleted = executeFuture.whenComplete((r, e) -> {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
});
executeFuture = CompletableFutureUtils.forwardExceptionTo(whenCompleted, executeFuture);
return executeFuture;
} catch (Throwable t) {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
return CompletableFutureUtils.failedFuture(t);
}
}
/**
*
* Creates an event tracker that you use when adding event data to a specified dataset group using the PutEvents API.
*
*
*
* Only one event tracker can be associated with a dataset group. You will get an error if you call
* CreateEventTracker
using the same dataset group as an existing event tracker.
*
*
*
* When you create an event tracker, the response includes a tracking ID, which you pass as a parameter when you use
* the PutEvents operation.
* Amazon Personalize then appends the event data to the Interactions dataset of the dataset group you specify in
* your event tracker.
*
*
* The event tracker can be in one of the following states:
*
*
* -
*
* CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED
*
*
* -
*
* DELETE PENDING > DELETE IN_PROGRESS
*
*
*
*
* To get the status of the event tracker, call DescribeEventTracker.
*
*
*
* The event tracker must be in the ACTIVE state before using the tracking ID.
*
*
*
* Related APIs
*
*
* -
*
*
* -
*
*
* -
*
*
*
*
* @param createEventTrackerRequest
* @return A Java Future containing the result of the CreateEventTracker operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions.
*
* - InvalidInputException Provide a valid value for the field or parameter.
* - ResourceAlreadyExistsException The specified resource already exists.
* - ResourceNotFoundException Could not find the specified resource.
* - LimitExceededException The limit on the number of requests per second has been exceeded.
* - ResourceInUseException The specified resource is in use.
* - 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.
* - PersonalizeException Base class for all service exceptions. Unknown exceptions will be thrown as an
* instance of this type.
*
* @sample PersonalizeAsyncClient.CreateEventTracker
* @see AWS API Documentation
*/
@Override
public CompletableFuture createEventTracker(CreateEventTrackerRequest createEventTrackerRequest) {
List metricPublishers = resolveMetricPublishers(clientConfiguration, createEventTrackerRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Personalize");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "CreateEventTracker");
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, CreateEventTrackerResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
CompletableFuture executeFuture = clientHandler
.execute(new ClientExecutionParams()
.withOperationName("CreateEventTracker")
.withMarshaller(new CreateEventTrackerRequestMarshaller(protocolFactory))
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withMetricCollector(apiCallMetricCollector).withInput(createEventTrackerRequest));
AwsRequestOverrideConfiguration requestOverrideConfig = createEventTrackerRequest.overrideConfiguration()
.orElse(null);
CompletableFuture whenCompleted = executeFuture.whenComplete((r, e) -> {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
});
executeFuture = CompletableFutureUtils.forwardExceptionTo(whenCompleted, executeFuture);
return executeFuture;
} catch (Throwable t) {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
return CompletableFutureUtils.failedFuture(t);
}
}
/**
*
* Creates a recommendation filter. For more information, see filter.
*
*
* @param createFilterRequest
* @return A Java Future containing the result of the CreateFilter operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions.
*
* - InvalidInputException Provide a valid value for the field or parameter.
* - ResourceAlreadyExistsException The specified resource already exists.
* - ResourceNotFoundException Could not find the specified resource.
* - LimitExceededException The limit on the number of requests per second has been exceeded.
* - 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.
* - PersonalizeException Base class for all service exceptions. Unknown exceptions will be thrown as an
* instance of this type.
*
* @sample PersonalizeAsyncClient.CreateFilter
* @see AWS API
* Documentation
*/
@Override
public CompletableFuture createFilter(CreateFilterRequest createFilterRequest) {
List metricPublishers = resolveMetricPublishers(clientConfiguration, createFilterRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Personalize");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "CreateFilter");
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata,
CreateFilterResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
CompletableFuture executeFuture = clientHandler
.execute(new ClientExecutionParams()
.withOperationName("CreateFilter").withMarshaller(new CreateFilterRequestMarshaller(protocolFactory))
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withMetricCollector(apiCallMetricCollector).withInput(createFilterRequest));
AwsRequestOverrideConfiguration requestOverrideConfig = createFilterRequest.overrideConfiguration().orElse(null);
CompletableFuture whenCompleted = executeFuture.whenComplete((r, e) -> {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
});
executeFuture = CompletableFutureUtils.forwardExceptionTo(whenCompleted, executeFuture);
return executeFuture;
} catch (Throwable t) {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
return CompletableFutureUtils.failedFuture(t);
}
}
/**
*
* Creates an Amazon Personalize schema from the specified schema string. The schema you create must be in Avro JSON
* format.
*
*
* Amazon Personalize recognizes three schema variants. Each schema is associated with a dataset type and has a set
* of required field and keywords. You specify a schema when you call CreateDataset.
*
*
* Related APIs
*
*
* -
*
* ListSchemas
*
*
* -
*
* DescribeSchema
*
*
* -
*
* DeleteSchema
*
*
*
*
* @param createSchemaRequest
* @return A Java Future containing the result of the CreateSchema operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions.
*
* - InvalidInputException Provide a valid value for the field or parameter.
* - ResourceAlreadyExistsException The specified resource already exists.
* - LimitExceededException The limit on the number of requests per second has been exceeded.
* - 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.
* - PersonalizeException Base class for all service exceptions. Unknown exceptions will be thrown as an
* instance of this type.
*
* @sample PersonalizeAsyncClient.CreateSchema
* @see AWS API
* Documentation
*/
@Override
public CompletableFuture createSchema(CreateSchemaRequest createSchemaRequest) {
List metricPublishers = resolveMetricPublishers(clientConfiguration, createSchemaRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Personalize");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "CreateSchema");
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata,
CreateSchemaResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
CompletableFuture executeFuture = clientHandler
.execute(new ClientExecutionParams()
.withOperationName("CreateSchema").withMarshaller(new CreateSchemaRequestMarshaller(protocolFactory))
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withMetricCollector(apiCallMetricCollector).withInput(createSchemaRequest));
AwsRequestOverrideConfiguration requestOverrideConfig = createSchemaRequest.overrideConfiguration().orElse(null);
CompletableFuture whenCompleted = executeFuture.whenComplete((r, e) -> {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
});
executeFuture = CompletableFutureUtils.forwardExceptionTo(whenCompleted, executeFuture);
return executeFuture;
} catch (Throwable t) {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
return CompletableFutureUtils.failedFuture(t);
}
}
/**
*
* Creates the configuration for training a model. A trained model is known as a solution. After the configuration
* is created, you train the model (create a solution) by calling the CreateSolutionVersion operation. Every
* time you call CreateSolutionVersion
, a new version of the solution is created.
*
*
* After creating a solution version, you check its accuracy by calling GetSolutionMetrics. When you are
* satisfied with the version, you deploy it using CreateCampaign. The campaign provides recommendations to a
* client through the GetRecommendations
* API.
*
*
* To train a model, Amazon Personalize requires training data and a recipe. The training data comes from the
* dataset group that you provide in the request. A recipe specifies the training algorithm and a feature
* transformation. You can specify one of the predefined recipes provided by Amazon Personalize. Alternatively, you
* can specify performAutoML
and Amazon Personalize will analyze your data and select the optimum
* USER_PERSONALIZATION recipe for you.
*
*
*
* Amazon Personalize doesn't support configuring the hpoObjective
for solution hyperparameter
* optimization at this time.
*
*
*
* Status
*
*
* A solution can be in one of the following states:
*
*
* -
*
* CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED
*
*
* -
*
* DELETE PENDING > DELETE IN_PROGRESS
*
*
*
*
* To get the status of the solution, call DescribeSolution. Wait until the status shows as ACTIVE before
* calling CreateSolutionVersion
.
*
*
* Related APIs
*
*
* -
*
* ListSolutions
*
*
* -
*
*
* -
*
* DescribeSolution
*
*
* -
*
* DeleteSolution
*
*
*
*
* -
*
*
* -
*
*
*
*
* @param createSolutionRequest
* @return A Java Future containing the result of the CreateSolution operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions.
*
* - InvalidInputException Provide a valid value for the field or parameter.
* - ResourceAlreadyExistsException The specified resource already exists.
* - ResourceNotFoundException Could not find the specified resource.
* - LimitExceededException The limit on the number of requests per second has been exceeded.
* - ResourceInUseException The specified resource is in use.
* - 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.
* - PersonalizeException Base class for all service exceptions. Unknown exceptions will be thrown as an
* instance of this type.
*
* @sample PersonalizeAsyncClient.CreateSolution
* @see AWS
* API Documentation
*/
@Override
public CompletableFuture createSolution(CreateSolutionRequest createSolutionRequest) {
List metricPublishers = resolveMetricPublishers(clientConfiguration, createSolutionRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Personalize");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "CreateSolution");
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, CreateSolutionResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
CompletableFuture executeFuture = clientHandler
.execute(new ClientExecutionParams()
.withOperationName("CreateSolution")
.withMarshaller(new CreateSolutionRequestMarshaller(protocolFactory))
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withMetricCollector(apiCallMetricCollector).withInput(createSolutionRequest));
AwsRequestOverrideConfiguration requestOverrideConfig = createSolutionRequest.overrideConfiguration().orElse(null);
CompletableFuture whenCompleted = executeFuture.whenComplete((r, e) -> {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
});
executeFuture = CompletableFutureUtils.forwardExceptionTo(whenCompleted, executeFuture);
return executeFuture;
} catch (Throwable t) {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
return CompletableFutureUtils.failedFuture(t);
}
}
/**
*
* Trains or retrains an active solution. A solution is created using the CreateSolution operation and must
* be in the ACTIVE state before calling CreateSolutionVersion
. A new version of the solution is
* created every time you call this operation.
*
*
* Status
*
*
* A solution version can be in one of the following states:
*
*
* -
*
* CREATE PENDING
*
*
* -
*
* CREATE IN_PROGRESS
*
*
* -
*
* ACTIVE
*
*
* -
*
* CREATE FAILED
*
*
* -
*
* CREATE STOPPING
*
*
* -
*
* CREATE STOPPED
*
*
*
*
* To get the status of the version, call DescribeSolutionVersion. Wait until the status shows as ACTIVE
* before calling CreateCampaign
.
*
*
* If the status shows as CREATE FAILED, the response includes a failureReason
key, which describes why
* the job failed.
*
*
* Related APIs
*
*
* -
*
*
* -
*
*
*
*
* -
*
* ListSolutions
*
*
* -
*
* CreateSolution
*
*
* -
*
* DescribeSolution
*
*
* -
*
* DeleteSolution
*
*
*
*
* @param createSolutionVersionRequest
* @return A Java Future containing the result of the CreateSolutionVersion operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions.
*
* - InvalidInputException Provide a valid value for the field or parameter.
* - ResourceNotFoundException Could not find the specified resource.
* - LimitExceededException The limit on the number of requests per second has been exceeded.
* - ResourceInUseException The specified resource is in use.
* - 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.
* - PersonalizeException Base class for all service exceptions. Unknown exceptions will be thrown as an
* instance of this type.
*
* @sample PersonalizeAsyncClient.CreateSolutionVersion
* @see AWS API Documentation
*/
@Override
public CompletableFuture createSolutionVersion(
CreateSolutionVersionRequest createSolutionVersionRequest) {
List metricPublishers = resolveMetricPublishers(clientConfiguration, createSolutionVersionRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Personalize");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "CreateSolutionVersion");
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, CreateSolutionVersionResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
CompletableFuture executeFuture = clientHandler
.execute(new ClientExecutionParams()
.withOperationName("CreateSolutionVersion")
.withMarshaller(new CreateSolutionVersionRequestMarshaller(protocolFactory))
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withMetricCollector(apiCallMetricCollector).withInput(createSolutionVersionRequest));
AwsRequestOverrideConfiguration requestOverrideConfig = createSolutionVersionRequest.overrideConfiguration().orElse(
null);
CompletableFuture whenCompleted = executeFuture.whenComplete((r, e) -> {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
});
executeFuture = CompletableFutureUtils.forwardExceptionTo(whenCompleted, executeFuture);
return executeFuture;
} catch (Throwable t) {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
return CompletableFutureUtils.failedFuture(t);
}
}
/**
*
* Removes a campaign by deleting the solution deployment. The solution that the campaign is based on is not deleted
* and can be redeployed when needed. A deleted campaign can no longer be specified in a GetRecommendations
* request. For more information on campaigns, see CreateCampaign.
*
*
* @param deleteCampaignRequest
* @return A Java Future containing the result of the DeleteCampaign operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions.
*
* - InvalidInputException Provide a valid value for the field or parameter.
* - ResourceNotFoundException Could not find the specified resource.
* - ResourceInUseException The specified resource is in use.
* - 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.
* - PersonalizeException Base class for all service exceptions. Unknown exceptions will be thrown as an
* instance of this type.
*
* @sample PersonalizeAsyncClient.DeleteCampaign
* @see AWS
* API Documentation
*/
@Override
public CompletableFuture deleteCampaign(DeleteCampaignRequest deleteCampaignRequest) {
List metricPublishers = resolveMetricPublishers(clientConfiguration, deleteCampaignRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Personalize");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DeleteCampaign");
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, DeleteCampaignResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
CompletableFuture executeFuture = clientHandler
.execute(new ClientExecutionParams()
.withOperationName("DeleteCampaign")
.withMarshaller(new DeleteCampaignRequestMarshaller(protocolFactory))
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withMetricCollector(apiCallMetricCollector).withInput(deleteCampaignRequest));
AwsRequestOverrideConfiguration requestOverrideConfig = deleteCampaignRequest.overrideConfiguration().orElse(null);
CompletableFuture whenCompleted = executeFuture.whenComplete((r, e) -> {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
});
executeFuture = CompletableFutureUtils.forwardExceptionTo(whenCompleted, executeFuture);
return executeFuture;
} catch (Throwable t) {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
return CompletableFutureUtils.failedFuture(t);
}
}
/**
*
* Deletes a dataset. You can't delete a dataset if an associated DatasetImportJob
or
* SolutionVersion
is in the CREATE PENDING or IN PROGRESS state. For more information on datasets, see
* CreateDataset.
*
*
* @param deleteDatasetRequest
* @return A Java Future containing the result of the DeleteDataset operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions.
*
* - InvalidInputException Provide a valid value for the field or parameter.
* - ResourceNotFoundException Could not find the specified resource.
* - ResourceInUseException The specified resource is in use.
* - 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.
* - PersonalizeException Base class for all service exceptions. Unknown exceptions will be thrown as an
* instance of this type.
*
* @sample PersonalizeAsyncClient.DeleteDataset
* @see AWS API
* Documentation
*/
@Override
public CompletableFuture deleteDataset(DeleteDatasetRequest deleteDatasetRequest) {
List metricPublishers = resolveMetricPublishers(clientConfiguration, deleteDatasetRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Personalize");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DeleteDataset");
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata,
DeleteDatasetResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
CompletableFuture executeFuture = clientHandler
.execute(new ClientExecutionParams()
.withOperationName("DeleteDataset")
.withMarshaller(new DeleteDatasetRequestMarshaller(protocolFactory))
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withMetricCollector(apiCallMetricCollector).withInput(deleteDatasetRequest));
AwsRequestOverrideConfiguration requestOverrideConfig = deleteDatasetRequest.overrideConfiguration().orElse(null);
CompletableFuture whenCompleted = executeFuture.whenComplete((r, e) -> {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
});
executeFuture = CompletableFutureUtils.forwardExceptionTo(whenCompleted, executeFuture);
return executeFuture;
} catch (Throwable t) {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
return CompletableFutureUtils.failedFuture(t);
}
}
/**
*
* Deletes a dataset group. Before you delete a dataset group, you must delete the following:
*
*
* -
*
* All associated event trackers.
*
*
* -
*
* All associated solutions.
*
*
* -
*
* All datasets in the dataset group.
*
*
*
*
* @param deleteDatasetGroupRequest
* @return A Java Future containing the result of the DeleteDatasetGroup operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions.
*
* - InvalidInputException Provide a valid value for the field or parameter.
* - ResourceNotFoundException Could not find the specified resource.
* - ResourceInUseException The specified resource is in use.
* - 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.
* - PersonalizeException Base class for all service exceptions. Unknown exceptions will be thrown as an
* instance of this type.
*
* @sample PersonalizeAsyncClient.DeleteDatasetGroup
* @see AWS API Documentation
*/
@Override
public CompletableFuture deleteDatasetGroup(DeleteDatasetGroupRequest deleteDatasetGroupRequest) {
List metricPublishers = resolveMetricPublishers(clientConfiguration, deleteDatasetGroupRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Personalize");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DeleteDatasetGroup");
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, DeleteDatasetGroupResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
CompletableFuture executeFuture = clientHandler
.execute(new ClientExecutionParams()
.withOperationName("DeleteDatasetGroup")
.withMarshaller(new DeleteDatasetGroupRequestMarshaller(protocolFactory))
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withMetricCollector(apiCallMetricCollector).withInput(deleteDatasetGroupRequest));
AwsRequestOverrideConfiguration requestOverrideConfig = deleteDatasetGroupRequest.overrideConfiguration()
.orElse(null);
CompletableFuture whenCompleted = executeFuture.whenComplete((r, e) -> {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
});
executeFuture = CompletableFutureUtils.forwardExceptionTo(whenCompleted, executeFuture);
return executeFuture;
} catch (Throwable t) {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
return CompletableFutureUtils.failedFuture(t);
}
}
/**
*
* Deletes the event tracker. Does not delete the event-interactions dataset from the associated dataset group. For
* more information on event trackers, see CreateEventTracker.
*
*
* @param deleteEventTrackerRequest
* @return A Java Future containing the result of the DeleteEventTracker operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions.
*
* - InvalidInputException Provide a valid value for the field or parameter.
* - ResourceNotFoundException Could not find the specified resource.
* - ResourceInUseException The specified resource is in use.
* - 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.
* - PersonalizeException Base class for all service exceptions. Unknown exceptions will be thrown as an
* instance of this type.
*
* @sample PersonalizeAsyncClient.DeleteEventTracker
* @see AWS API Documentation
*/
@Override
public CompletableFuture deleteEventTracker(DeleteEventTrackerRequest deleteEventTrackerRequest) {
List metricPublishers = resolveMetricPublishers(clientConfiguration, deleteEventTrackerRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Personalize");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DeleteEventTracker");
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, DeleteEventTrackerResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
CompletableFuture executeFuture = clientHandler
.execute(new ClientExecutionParams()
.withOperationName("DeleteEventTracker")
.withMarshaller(new DeleteEventTrackerRequestMarshaller(protocolFactory))
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withMetricCollector(apiCallMetricCollector).withInput(deleteEventTrackerRequest));
AwsRequestOverrideConfiguration requestOverrideConfig = deleteEventTrackerRequest.overrideConfiguration()
.orElse(null);
CompletableFuture whenCompleted = executeFuture.whenComplete((r, e) -> {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
});
executeFuture = CompletableFutureUtils.forwardExceptionTo(whenCompleted, executeFuture);
return executeFuture;
} catch (Throwable t) {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
return CompletableFutureUtils.failedFuture(t);
}
}
/**
*
* Deletes a filter.
*
*
* @param deleteFilterRequest
* @return A Java Future containing the result of the DeleteFilter operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions.
*
* - InvalidInputException Provide a valid value for the field or parameter.
* - ResourceNotFoundException Could not find the specified resource.
* - ResourceInUseException The specified resource is in use.
* - 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.
* - PersonalizeException Base class for all service exceptions. Unknown exceptions will be thrown as an
* instance of this type.
*
* @sample PersonalizeAsyncClient.DeleteFilter
* @see AWS API
* Documentation
*/
@Override
public CompletableFuture deleteFilter(DeleteFilterRequest deleteFilterRequest) {
List metricPublishers = resolveMetricPublishers(clientConfiguration, deleteFilterRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Personalize");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DeleteFilter");
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata,
DeleteFilterResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
CompletableFuture executeFuture = clientHandler
.execute(new ClientExecutionParams()
.withOperationName("DeleteFilter").withMarshaller(new DeleteFilterRequestMarshaller(protocolFactory))
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withMetricCollector(apiCallMetricCollector).withInput(deleteFilterRequest));
AwsRequestOverrideConfiguration requestOverrideConfig = deleteFilterRequest.overrideConfiguration().orElse(null);
CompletableFuture whenCompleted = executeFuture.whenComplete((r, e) -> {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
});
executeFuture = CompletableFutureUtils.forwardExceptionTo(whenCompleted, executeFuture);
return executeFuture;
} catch (Throwable t) {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
return CompletableFutureUtils.failedFuture(t);
}
}
/**
*
* Deletes a schema. Before deleting a schema, you must delete all datasets referencing the schema. For more
* information on schemas, see CreateSchema.
*
*
* @param deleteSchemaRequest
* @return A Java Future containing the result of the DeleteSchema operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions.
*
* - InvalidInputException Provide a valid value for the field or parameter.
* - ResourceNotFoundException Could not find the specified resource.
* - ResourceInUseException The specified resource is in use.
* - 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.
* - PersonalizeException Base class for all service exceptions. Unknown exceptions will be thrown as an
* instance of this type.
*
* @sample PersonalizeAsyncClient.DeleteSchema
* @see AWS API
* Documentation
*/
@Override
public CompletableFuture deleteSchema(DeleteSchemaRequest deleteSchemaRequest) {
List metricPublishers = resolveMetricPublishers(clientConfiguration, deleteSchemaRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Personalize");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DeleteSchema");
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata,
DeleteSchemaResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
CompletableFuture executeFuture = clientHandler
.execute(new ClientExecutionParams()
.withOperationName("DeleteSchema").withMarshaller(new DeleteSchemaRequestMarshaller(protocolFactory))
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withMetricCollector(apiCallMetricCollector).withInput(deleteSchemaRequest));
AwsRequestOverrideConfiguration requestOverrideConfig = deleteSchemaRequest.overrideConfiguration().orElse(null);
CompletableFuture whenCompleted = executeFuture.whenComplete((r, e) -> {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
});
executeFuture = CompletableFutureUtils.forwardExceptionTo(whenCompleted, executeFuture);
return executeFuture;
} catch (Throwable t) {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
return CompletableFutureUtils.failedFuture(t);
}
}
/**
*
* Deletes all versions of a solution and the Solution
object itself. Before deleting a solution, you
* must delete all campaigns based on the solution. To determine what campaigns are using the solution, call
* ListCampaigns and supply the Amazon Resource Name (ARN) of the solution. You can't delete a solution if an
* associated SolutionVersion
is in the CREATE PENDING or IN PROGRESS state. For more information on
* solutions, see CreateSolution.
*
*
* @param deleteSolutionRequest
* @return A Java Future containing the result of the DeleteSolution operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions.
*
* - InvalidInputException Provide a valid value for the field or parameter.
* - ResourceNotFoundException Could not find the specified resource.
* - ResourceInUseException The specified resource is in use.
* - 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.
* - PersonalizeException Base class for all service exceptions. Unknown exceptions will be thrown as an
* instance of this type.
*
* @sample PersonalizeAsyncClient.DeleteSolution
* @see AWS
* API Documentation
*/
@Override
public CompletableFuture deleteSolution(DeleteSolutionRequest deleteSolutionRequest) {
List metricPublishers = resolveMetricPublishers(clientConfiguration, deleteSolutionRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Personalize");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DeleteSolution");
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, DeleteSolutionResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
CompletableFuture executeFuture = clientHandler
.execute(new ClientExecutionParams()
.withOperationName("DeleteSolution")
.withMarshaller(new DeleteSolutionRequestMarshaller(protocolFactory))
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withMetricCollector(apiCallMetricCollector).withInput(deleteSolutionRequest));
AwsRequestOverrideConfiguration requestOverrideConfig = deleteSolutionRequest.overrideConfiguration().orElse(null);
CompletableFuture whenCompleted = executeFuture.whenComplete((r, e) -> {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
});
executeFuture = CompletableFutureUtils.forwardExceptionTo(whenCompleted, executeFuture);
return executeFuture;
} catch (Throwable t) {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
return CompletableFutureUtils.failedFuture(t);
}
}
/**
*
* Describes the given algorithm.
*
*
* @param describeAlgorithmRequest
* @return A Java Future containing the result of the DescribeAlgorithm operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions.
*
* - InvalidInputException Provide a valid value for the field or parameter.
* - ResourceNotFoundException Could not find the specified resource.
* - 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.
* - PersonalizeException Base class for all service exceptions. Unknown exceptions will be thrown as an
* instance of this type.
*
* @sample PersonalizeAsyncClient.DescribeAlgorithm
* @see AWS
* API Documentation
*/
@Override
public CompletableFuture describeAlgorithm(DescribeAlgorithmRequest describeAlgorithmRequest) {
List metricPublishers = resolveMetricPublishers(clientConfiguration, describeAlgorithmRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Personalize");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DescribeAlgorithm");
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, DescribeAlgorithmResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
CompletableFuture executeFuture = clientHandler
.execute(new ClientExecutionParams()
.withOperationName("DescribeAlgorithm")
.withMarshaller(new DescribeAlgorithmRequestMarshaller(protocolFactory))
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withMetricCollector(apiCallMetricCollector).withInput(describeAlgorithmRequest));
AwsRequestOverrideConfiguration requestOverrideConfig = describeAlgorithmRequest.overrideConfiguration().orElse(null);
CompletableFuture whenCompleted = executeFuture.whenComplete((r, e) -> {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
});
executeFuture = CompletableFutureUtils.forwardExceptionTo(whenCompleted, executeFuture);
return executeFuture;
} catch (Throwable t) {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
return CompletableFutureUtils.failedFuture(t);
}
}
/**
*
* Gets the properties of a batch inference job including name, Amazon Resource Name (ARN), status, input and output
* configurations, and the ARN of the solution version used to generate the recommendations.
*
*
* @param describeBatchInferenceJobRequest
* @return A Java Future containing the result of the DescribeBatchInferenceJob operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions.
*
* - InvalidInputException Provide a valid value for the field or parameter.
* - ResourceNotFoundException Could not find the specified resource.
* - 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.
* - PersonalizeException Base class for all service exceptions. Unknown exceptions will be thrown as an
* instance of this type.
*
* @sample PersonalizeAsyncClient.DescribeBatchInferenceJob
* @see AWS API Documentation
*/
@Override
public CompletableFuture describeBatchInferenceJob(
DescribeBatchInferenceJobRequest describeBatchInferenceJobRequest) {
List metricPublishers = resolveMetricPublishers(clientConfiguration, describeBatchInferenceJobRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Personalize");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DescribeBatchInferenceJob");
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, DescribeBatchInferenceJobResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
CompletableFuture executeFuture = clientHandler
.execute(new ClientExecutionParams()
.withOperationName("DescribeBatchInferenceJob")
.withMarshaller(new DescribeBatchInferenceJobRequestMarshaller(protocolFactory))
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withMetricCollector(apiCallMetricCollector).withInput(describeBatchInferenceJobRequest));
AwsRequestOverrideConfiguration requestOverrideConfig = describeBatchInferenceJobRequest.overrideConfiguration()
.orElse(null);
CompletableFuture whenCompleted = executeFuture.whenComplete((r, e) -> {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
});
executeFuture = CompletableFutureUtils.forwardExceptionTo(whenCompleted, executeFuture);
return executeFuture;
} catch (Throwable t) {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
return CompletableFutureUtils.failedFuture(t);
}
}
/**
*
* Describes the given campaign, including its status.
*
*
* A campaign can be in one of the following states:
*
*
* -
*
* CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED
*
*
* -
*
* DELETE PENDING > DELETE IN_PROGRESS
*
*
*
*
* When the status
is CREATE FAILED
, the response includes the failureReason
* key, which describes why.
*
*
* For more information on campaigns, see CreateCampaign.
*
*
* @param describeCampaignRequest
* @return A Java Future containing the result of the DescribeCampaign operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions.
*
* - InvalidInputException Provide a valid value for the field or parameter.
* - ResourceNotFoundException Could not find the specified resource.
* - 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.
* - PersonalizeException Base class for all service exceptions. Unknown exceptions will be thrown as an
* instance of this type.
*
* @sample PersonalizeAsyncClient.DescribeCampaign
* @see AWS
* API Documentation
*/
@Override
public CompletableFuture describeCampaign(DescribeCampaignRequest describeCampaignRequest) {
List metricPublishers = resolveMetricPublishers(clientConfiguration, describeCampaignRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Personalize");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DescribeCampaign");
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, DescribeCampaignResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
CompletableFuture executeFuture = clientHandler
.execute(new ClientExecutionParams()
.withOperationName("DescribeCampaign")
.withMarshaller(new DescribeCampaignRequestMarshaller(protocolFactory))
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withMetricCollector(apiCallMetricCollector).withInput(describeCampaignRequest));
AwsRequestOverrideConfiguration requestOverrideConfig = describeCampaignRequest.overrideConfiguration().orElse(null);
CompletableFuture whenCompleted = executeFuture.whenComplete((r, e) -> {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
});
executeFuture = CompletableFutureUtils.forwardExceptionTo(whenCompleted, executeFuture);
return executeFuture;
} catch (Throwable t) {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
return CompletableFutureUtils.failedFuture(t);
}
}
/**
*
* Describes the given dataset. For more information on datasets, see CreateDataset.
*
*
* @param describeDatasetRequest
* @return A Java Future containing the result of the DescribeDataset operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions.
*
* - InvalidInputException Provide a valid value for the field or parameter.
* - ResourceNotFoundException Could not find the specified resource.
* - 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.
* - PersonalizeException Base class for all service exceptions. Unknown exceptions will be thrown as an
* instance of this type.
*
* @sample PersonalizeAsyncClient.DescribeDataset
* @see AWS
* API Documentation
*/
@Override
public CompletableFuture describeDataset(DescribeDatasetRequest describeDatasetRequest) {
List metricPublishers = resolveMetricPublishers(clientConfiguration, describeDatasetRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Personalize");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DescribeDataset");
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, DescribeDatasetResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
CompletableFuture executeFuture = clientHandler
.execute(new ClientExecutionParams()
.withOperationName("DescribeDataset")
.withMarshaller(new DescribeDatasetRequestMarshaller(protocolFactory))
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withMetricCollector(apiCallMetricCollector).withInput(describeDatasetRequest));
AwsRequestOverrideConfiguration requestOverrideConfig = describeDatasetRequest.overrideConfiguration().orElse(null);
CompletableFuture whenCompleted = executeFuture.whenComplete((r, e) -> {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
});
executeFuture = CompletableFutureUtils.forwardExceptionTo(whenCompleted, executeFuture);
return executeFuture;
} catch (Throwable t) {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
return CompletableFutureUtils.failedFuture(t);
}
}
/**
*
* Describes the dataset export job created by CreateDatasetExportJob, including the export job status.
*
*
* @param describeDatasetExportJobRequest
* @return A Java Future containing the result of the DescribeDatasetExportJob operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions.
*
* - InvalidInputException Provide a valid value for the field or parameter.
* - ResourceNotFoundException Could not find the specified resource.
* - 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.
* - PersonalizeException Base class for all service exceptions. Unknown exceptions will be thrown as an
* instance of this type.
*
* @sample PersonalizeAsyncClient.DescribeDatasetExportJob
* @see AWS API Documentation
*/
@Override
public CompletableFuture describeDatasetExportJob(
DescribeDatasetExportJobRequest describeDatasetExportJobRequest) {
List metricPublishers = resolveMetricPublishers(clientConfiguration, describeDatasetExportJobRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Personalize");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DescribeDatasetExportJob");
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, DescribeDatasetExportJobResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
CompletableFuture executeFuture = clientHandler
.execute(new ClientExecutionParams()
.withOperationName("DescribeDatasetExportJob")
.withMarshaller(new DescribeDatasetExportJobRequestMarshaller(protocolFactory))
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withMetricCollector(apiCallMetricCollector).withInput(describeDatasetExportJobRequest));
AwsRequestOverrideConfiguration requestOverrideConfig = describeDatasetExportJobRequest.overrideConfiguration()
.orElse(null);
CompletableFuture whenCompleted = executeFuture.whenComplete((r, e) -> {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
});
executeFuture = CompletableFutureUtils.forwardExceptionTo(whenCompleted, executeFuture);
return executeFuture;
} catch (Throwable t) {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
return CompletableFutureUtils.failedFuture(t);
}
}
/**
*
* Describes the given dataset group. For more information on dataset groups, see CreateDatasetGroup.
*
*
* @param describeDatasetGroupRequest
* @return A Java Future containing the result of the DescribeDatasetGroup operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions.
*
* - InvalidInputException Provide a valid value for the field or parameter.
* - ResourceNotFoundException Could not find the specified resource.
* - 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.
* - PersonalizeException Base class for all service exceptions. Unknown exceptions will be thrown as an
* instance of this type.
*
* @sample PersonalizeAsyncClient.DescribeDatasetGroup
* @see AWS API Documentation
*/
@Override
public CompletableFuture describeDatasetGroup(
DescribeDatasetGroupRequest describeDatasetGroupRequest) {
List metricPublishers = resolveMetricPublishers(clientConfiguration, describeDatasetGroupRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Personalize");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DescribeDatasetGroup");
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, DescribeDatasetGroupResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
CompletableFuture executeFuture = clientHandler
.execute(new ClientExecutionParams()
.withOperationName("DescribeDatasetGroup")
.withMarshaller(new DescribeDatasetGroupRequestMarshaller(protocolFactory))
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withMetricCollector(apiCallMetricCollector).withInput(describeDatasetGroupRequest));
AwsRequestOverrideConfiguration requestOverrideConfig = describeDatasetGroupRequest.overrideConfiguration().orElse(
null);
CompletableFuture whenCompleted = executeFuture.whenComplete((r, e) -> {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
});
executeFuture = CompletableFutureUtils.forwardExceptionTo(whenCompleted, executeFuture);
return executeFuture;
} catch (Throwable t) {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
return CompletableFutureUtils.failedFuture(t);
}
}
/**
*
* Describes the dataset import job created by CreateDatasetImportJob, including the import job status.
*
*
* @param describeDatasetImportJobRequest
* @return A Java Future containing the result of the DescribeDatasetImportJob operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions.
*
* - InvalidInputException Provide a valid value for the field or parameter.
* - ResourceNotFoundException Could not find the specified resource.
* - 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.
* - PersonalizeException Base class for all service exceptions. Unknown exceptions will be thrown as an
* instance of this type.
*
* @sample PersonalizeAsyncClient.DescribeDatasetImportJob
* @see AWS API Documentation
*/
@Override
public CompletableFuture describeDatasetImportJob(
DescribeDatasetImportJobRequest describeDatasetImportJobRequest) {
List metricPublishers = resolveMetricPublishers(clientConfiguration, describeDatasetImportJobRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Personalize");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DescribeDatasetImportJob");
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, DescribeDatasetImportJobResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
CompletableFuture executeFuture = clientHandler
.execute(new ClientExecutionParams()
.withOperationName("DescribeDatasetImportJob")
.withMarshaller(new DescribeDatasetImportJobRequestMarshaller(protocolFactory))
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withMetricCollector(apiCallMetricCollector).withInput(describeDatasetImportJobRequest));
AwsRequestOverrideConfiguration requestOverrideConfig = describeDatasetImportJobRequest.overrideConfiguration()
.orElse(null);
CompletableFuture whenCompleted = executeFuture.whenComplete((r, e) -> {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
});
executeFuture = CompletableFutureUtils.forwardExceptionTo(whenCompleted, executeFuture);
return executeFuture;
} catch (Throwable t) {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
return CompletableFutureUtils.failedFuture(t);
}
}
/**
*
* Describes an event tracker. The response includes the trackingId
and status
of the
* event tracker. For more information on event trackers, see CreateEventTracker.
*
*
* @param describeEventTrackerRequest
* @return A Java Future containing the result of the DescribeEventTracker operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions.
*
* - InvalidInputException Provide a valid value for the field or parameter.
* - ResourceNotFoundException Could not find the specified resource.
* - 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.
* - PersonalizeException Base class for all service exceptions. Unknown exceptions will be thrown as an
* instance of this type.
*
* @sample PersonalizeAsyncClient.DescribeEventTracker
* @see AWS API Documentation
*/
@Override
public CompletableFuture describeEventTracker(
DescribeEventTrackerRequest describeEventTrackerRequest) {
List metricPublishers = resolveMetricPublishers(clientConfiguration, describeEventTrackerRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Personalize");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DescribeEventTracker");
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, DescribeEventTrackerResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
CompletableFuture executeFuture = clientHandler
.execute(new ClientExecutionParams()
.withOperationName("DescribeEventTracker")
.withMarshaller(new DescribeEventTrackerRequestMarshaller(protocolFactory))
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withMetricCollector(apiCallMetricCollector).withInput(describeEventTrackerRequest));
AwsRequestOverrideConfiguration requestOverrideConfig = describeEventTrackerRequest.overrideConfiguration().orElse(
null);
CompletableFuture whenCompleted = executeFuture.whenComplete((r, e) -> {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
});
executeFuture = CompletableFutureUtils.forwardExceptionTo(whenCompleted, executeFuture);
return executeFuture;
} catch (Throwable t) {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
return CompletableFutureUtils.failedFuture(t);
}
}
/**
*
* Describes the given feature transformation.
*
*
* @param describeFeatureTransformationRequest
* @return A Java Future containing the result of the DescribeFeatureTransformation operation returned by the
* service.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions.
*
* - InvalidInputException Provide a valid value for the field or parameter.
* - ResourceNotFoundException Could not find the specified resource.
* - 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.
* - PersonalizeException Base class for all service exceptions. Unknown exceptions will be thrown as an
* instance of this type.
*
* @sample PersonalizeAsyncClient.DescribeFeatureTransformation
* @see AWS API Documentation
*/
@Override
public CompletableFuture describeFeatureTransformation(
DescribeFeatureTransformationRequest describeFeatureTransformationRequest) {
List metricPublishers = resolveMetricPublishers(clientConfiguration,
describeFeatureTransformationRequest.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Personalize");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DescribeFeatureTransformation");
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, DescribeFeatureTransformationResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
CompletableFuture executeFuture = clientHandler
.execute(new ClientExecutionParams()
.withOperationName("DescribeFeatureTransformation")
.withMarshaller(new DescribeFeatureTransformationRequestMarshaller(protocolFactory))
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withMetricCollector(apiCallMetricCollector).withInput(describeFeatureTransformationRequest));
AwsRequestOverrideConfiguration requestOverrideConfig = describeFeatureTransformationRequest.overrideConfiguration()
.orElse(null);
CompletableFuture whenCompleted = executeFuture.whenComplete((r, e) -> {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
});
executeFuture = CompletableFutureUtils.forwardExceptionTo(whenCompleted, executeFuture);
return executeFuture;
} catch (Throwable t) {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
return CompletableFutureUtils.failedFuture(t);
}
}
/**
*
* Describes a filter's properties.
*
*
* @param describeFilterRequest
* @return A Java Future containing the result of the DescribeFilter operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions.
*
* - InvalidInputException Provide a valid value for the field or parameter.
* - ResourceNotFoundException Could not find the specified resource.
* - 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.
* - PersonalizeException Base class for all service exceptions. Unknown exceptions will be thrown as an
* instance of this type.
*
* @sample PersonalizeAsyncClient.DescribeFilter
* @see AWS
* API Documentation
*/
@Override
public CompletableFuture describeFilter(DescribeFilterRequest describeFilterRequest) {
List metricPublishers = resolveMetricPublishers(clientConfiguration, describeFilterRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Personalize");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DescribeFilter");
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, DescribeFilterResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
CompletableFuture executeFuture = clientHandler
.execute(new ClientExecutionParams()
.withOperationName("DescribeFilter")
.withMarshaller(new DescribeFilterRequestMarshaller(protocolFactory))
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withMetricCollector(apiCallMetricCollector).withInput(describeFilterRequest));
AwsRequestOverrideConfiguration requestOverrideConfig = describeFilterRequest.overrideConfiguration().orElse(null);
CompletableFuture whenCompleted = executeFuture.whenComplete((r, e) -> {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
});
executeFuture = CompletableFutureUtils.forwardExceptionTo(whenCompleted, executeFuture);
return executeFuture;
} catch (Throwable t) {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
return CompletableFutureUtils.failedFuture(t);
}
}
/**
*
* Describes a recipe.
*
*
* A recipe contains three items:
*
*
* -
*
* An algorithm that trains a model.
*
*
* -
*
* Hyperparameters that govern the training.
*
*
* -
*
* Feature transformation information for modifying the input data before training.
*
*
*
*
* Amazon Personalize provides a set of predefined recipes. You specify a recipe when you create a solution with the
* CreateSolution API. CreateSolution
trains a model by using the algorithm in the specified
* recipe and a training dataset. The solution, when deployed as a campaign, can provide recommendations using the
* GetRecommendations
* API.
*
*
* @param describeRecipeRequest
* @return A Java Future containing the result of the DescribeRecipe operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions.
*
* - InvalidInputException Provide a valid value for the field or parameter.
* - ResourceNotFoundException Could not find the specified resource.
* - 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.
* - PersonalizeException Base class for all service exceptions. Unknown exceptions will be thrown as an
* instance of this type.
*
* @sample PersonalizeAsyncClient.DescribeRecipe
* @see AWS
* API Documentation
*/
@Override
public CompletableFuture describeRecipe(DescribeRecipeRequest describeRecipeRequest) {
List metricPublishers = resolveMetricPublishers(clientConfiguration, describeRecipeRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Personalize");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DescribeRecipe");
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, DescribeRecipeResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
CompletableFuture executeFuture = clientHandler
.execute(new ClientExecutionParams()
.withOperationName("DescribeRecipe")
.withMarshaller(new DescribeRecipeRequestMarshaller(protocolFactory))
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withMetricCollector(apiCallMetricCollector).withInput(describeRecipeRequest));
AwsRequestOverrideConfiguration requestOverrideConfig = describeRecipeRequest.overrideConfiguration().orElse(null);
CompletableFuture whenCompleted = executeFuture.whenComplete((r, e) -> {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
});
executeFuture = CompletableFutureUtils.forwardExceptionTo(whenCompleted, executeFuture);
return executeFuture;
} catch (Throwable t) {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
return CompletableFutureUtils.failedFuture(t);
}
}
/**
*
* Describes a schema. For more information on schemas, see CreateSchema.
*
*
* @param describeSchemaRequest
* @return A Java Future containing the result of the DescribeSchema operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions.
*
* - InvalidInputException Provide a valid value for the field or parameter.
* - ResourceNotFoundException Could not find the specified resource.
* - 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.
* - PersonalizeException Base class for all service exceptions. Unknown exceptions will be thrown as an
* instance of this type.
*
* @sample PersonalizeAsyncClient.DescribeSchema
* @see AWS
* API Documentation
*/
@Override
public CompletableFuture describeSchema(DescribeSchemaRequest describeSchemaRequest) {
List metricPublishers = resolveMetricPublishers(clientConfiguration, describeSchemaRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Personalize");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DescribeSchema");
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, DescribeSchemaResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
CompletableFuture executeFuture = clientHandler
.execute(new ClientExecutionParams()
.withOperationName("DescribeSchema")
.withMarshaller(new DescribeSchemaRequestMarshaller(protocolFactory))
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withMetricCollector(apiCallMetricCollector).withInput(describeSchemaRequest));
AwsRequestOverrideConfiguration requestOverrideConfig = describeSchemaRequest.overrideConfiguration().orElse(null);
CompletableFuture whenCompleted = executeFuture.whenComplete((r, e) -> {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
});
executeFuture = CompletableFutureUtils.forwardExceptionTo(whenCompleted, executeFuture);
return executeFuture;
} catch (Throwable t) {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
return CompletableFutureUtils.failedFuture(t);
}
}
/**
*
* Describes a solution. For more information on solutions, see CreateSolution.
*
*
* @param describeSolutionRequest
* @return A Java Future containing the result of the DescribeSolution operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions.
*
* - InvalidInputException Provide a valid value for the field or parameter.
* - ResourceNotFoundException Could not find the specified resource.
* - 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.
* - PersonalizeException Base class for all service exceptions. Unknown exceptions will be thrown as an
* instance of this type.
*
* @sample PersonalizeAsyncClient.DescribeSolution
* @see AWS
* API Documentation
*/
@Override
public CompletableFuture describeSolution(DescribeSolutionRequest describeSolutionRequest) {
List metricPublishers = resolveMetricPublishers(clientConfiguration, describeSolutionRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Personalize");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DescribeSolution");
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, DescribeSolutionResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
CompletableFuture executeFuture = clientHandler
.execute(new ClientExecutionParams()
.withOperationName("DescribeSolution")
.withMarshaller(new DescribeSolutionRequestMarshaller(protocolFactory))
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withMetricCollector(apiCallMetricCollector).withInput(describeSolutionRequest));
AwsRequestOverrideConfiguration requestOverrideConfig = describeSolutionRequest.overrideConfiguration().orElse(null);
CompletableFuture whenCompleted = executeFuture.whenComplete((r, e) -> {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
});
executeFuture = CompletableFutureUtils.forwardExceptionTo(whenCompleted, executeFuture);
return executeFuture;
} catch (Throwable t) {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
return CompletableFutureUtils.failedFuture(t);
}
}
/**
*
* Describes a specific version of a solution. For more information on solutions, see CreateSolution.
*
*
* @param describeSolutionVersionRequest
* @return A Java Future containing the result of the DescribeSolutionVersion operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions.
*
* - InvalidInputException Provide a valid value for the field or parameter.
* - ResourceNotFoundException Could not find the specified resource.
* - 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.
* - PersonalizeException Base class for all service exceptions. Unknown exceptions will be thrown as an
* instance of this type.
*
* @sample PersonalizeAsyncClient.DescribeSolutionVersion
* @see AWS API Documentation
*/
@Override
public CompletableFuture describeSolutionVersion(
DescribeSolutionVersionRequest describeSolutionVersionRequest) {
List metricPublishers = resolveMetricPublishers(clientConfiguration, describeSolutionVersionRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Personalize");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DescribeSolutionVersion");
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, DescribeSolutionVersionResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
CompletableFuture executeFuture = clientHandler
.execute(new ClientExecutionParams()
.withOperationName("DescribeSolutionVersion")
.withMarshaller(new DescribeSolutionVersionRequestMarshaller(protocolFactory))
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withMetricCollector(apiCallMetricCollector).withInput(describeSolutionVersionRequest));
AwsRequestOverrideConfiguration requestOverrideConfig = describeSolutionVersionRequest.overrideConfiguration()
.orElse(null);
CompletableFuture whenCompleted = executeFuture.whenComplete((r, e) -> {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
});
executeFuture = CompletableFutureUtils.forwardExceptionTo(whenCompleted, executeFuture);
return executeFuture;
} catch (Throwable t) {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
return CompletableFutureUtils.failedFuture(t);
}
}
/**
*
* Gets the metrics for the specified solution version.
*
*
* @param getSolutionMetricsRequest
* @return A Java Future containing the result of the GetSolutionMetrics operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions.
*
* - InvalidInputException Provide a valid value for the field or parameter.
* - ResourceNotFoundException Could not find the specified resource.
* - ResourceInUseException The specified resource is in use.
* - 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.
* - PersonalizeException Base class for all service exceptions. Unknown exceptions will be thrown as an
* instance of this type.
*
* @sample PersonalizeAsyncClient.GetSolutionMetrics
* @see AWS API Documentation
*/
@Override
public CompletableFuture getSolutionMetrics(GetSolutionMetricsRequest getSolutionMetricsRequest) {
List metricPublishers = resolveMetricPublishers(clientConfiguration, getSolutionMetricsRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Personalize");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "GetSolutionMetrics");
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, GetSolutionMetricsResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
CompletableFuture executeFuture = clientHandler
.execute(new ClientExecutionParams()
.withOperationName("GetSolutionMetrics")
.withMarshaller(new GetSolutionMetricsRequestMarshaller(protocolFactory))
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withMetricCollector(apiCallMetricCollector).withInput(getSolutionMetricsRequest));
AwsRequestOverrideConfiguration requestOverrideConfig = getSolutionMetricsRequest.overrideConfiguration()
.orElse(null);
CompletableFuture whenCompleted = executeFuture.whenComplete((r, e) -> {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
});
executeFuture = CompletableFutureUtils.forwardExceptionTo(whenCompleted, executeFuture);
return executeFuture;
} catch (Throwable t) {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
return CompletableFutureUtils.failedFuture(t);
}
}
/**
*
* Gets a list of the batch inference jobs that have been performed off of a solution version.
*
*
* @param listBatchInferenceJobsRequest
* @return A Java Future containing the result of the ListBatchInferenceJobs operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions.
*
* - InvalidInputException Provide a valid value for the field or parameter.
* - InvalidNextTokenException The token is not valid.
* - 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.
* - PersonalizeException Base class for all service exceptions. Unknown exceptions will be thrown as an
* instance of this type.
*
* @sample PersonalizeAsyncClient.ListBatchInferenceJobs
* @see AWS API Documentation
*/
@Override
public CompletableFuture listBatchInferenceJobs(
ListBatchInferenceJobsRequest listBatchInferenceJobsRequest) {
List metricPublishers = resolveMetricPublishers(clientConfiguration, listBatchInferenceJobsRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Personalize");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "ListBatchInferenceJobs");
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, ListBatchInferenceJobsResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
CompletableFuture executeFuture = clientHandler
.execute(new ClientExecutionParams()
.withOperationName("ListBatchInferenceJobs")
.withMarshaller(new ListBatchInferenceJobsRequestMarshaller(protocolFactory))
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withMetricCollector(apiCallMetricCollector).withInput(listBatchInferenceJobsRequest));
AwsRequestOverrideConfiguration requestOverrideConfig = listBatchInferenceJobsRequest.overrideConfiguration().orElse(
null);
CompletableFuture whenCompleted = executeFuture.whenComplete((r, e) -> {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
});
executeFuture = CompletableFutureUtils.forwardExceptionTo(whenCompleted, executeFuture);
return executeFuture;
} catch (Throwable t) {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
return CompletableFutureUtils.failedFuture(t);
}
}
/**
*
* Gets a list of the batch inference jobs that have been performed off of a solution version.
*
*
*
* This is a variant of
* {@link #listBatchInferenceJobs(software.amazon.awssdk.services.personalize.model.ListBatchInferenceJobsRequest)}
* operation. The return type is a custom publisher that can be subscribed to request a stream of response pages.
* SDK will internally handle making service calls for you.
*
*
* When the operation is called, an instance of this class is returned. At this point, no service calls are made yet
* and so there is no guarantee that the request is valid. If there are errors in your request, you will see the
* failures only after you start streaming the data. The subscribe method should be called as a request to start
* streaming data. For more info, see
* {@link org.reactivestreams.Publisher#subscribe(org.reactivestreams.Subscriber)}. Each call to the subscribe
* method will result in a new {@link org.reactivestreams.Subscription} i.e., a new contract to stream data from the
* starting request.
*
*
*
* The following are few ways to use the response class:
*
* 1) Using the subscribe helper method
*
*
* {@code
* software.amazon.awssdk.services.personalize.paginators.ListBatchInferenceJobsPublisher publisher = client.listBatchInferenceJobsPaginator(request);
* CompletableFuture future = publisher.subscribe(res -> { // Do something with the response });
* future.get();
* }
*
*
* 2) Using a custom subscriber
*
*
* {@code
* software.amazon.awssdk.services.personalize.paginators.ListBatchInferenceJobsPublisher publisher = client.listBatchInferenceJobsPaginator(request);
* publisher.subscribe(new Subscriber() {
*
* public void onSubscribe(org.reactivestreams.Subscriber subscription) { //... };
*
*
* public void onNext(software.amazon.awssdk.services.personalize.model.ListBatchInferenceJobsResponse response) { //... };
* });}
*
*
* As the response is a publisher, it can work well with third party reactive streams implementations like RxJava2.
*
* Please notice that the configuration of maxResults won't limit the number of results you get with the
* paginator. It only limits the number of results in each page.
*
*
* Note: If you prefer to have control on service calls, use the
* {@link #listBatchInferenceJobs(software.amazon.awssdk.services.personalize.model.ListBatchInferenceJobsRequest)}
* operation.
*
*
* @param listBatchInferenceJobsRequest
* @return A custom publisher that can be subscribed to request a stream of response pages.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions.
*
* - InvalidInputException Provide a valid value for the field or parameter.
* - InvalidNextTokenException The token is not valid.
* - 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.
* - PersonalizeException Base class for all service exceptions. Unknown exceptions will be thrown as an
* instance of this type.
*
* @sample PersonalizeAsyncClient.ListBatchInferenceJobs
* @see AWS API Documentation
*/
public ListBatchInferenceJobsPublisher listBatchInferenceJobsPaginator(
ListBatchInferenceJobsRequest listBatchInferenceJobsRequest) {
return new ListBatchInferenceJobsPublisher(this, applyPaginatorUserAgent(listBatchInferenceJobsRequest));
}
/**
*
* Returns a list of campaigns that use the given solution. When a solution is not specified, all the campaigns
* associated with the account are listed. The response provides the properties for each campaign, including the
* Amazon Resource Name (ARN). For more information on campaigns, see CreateCampaign.
*
*
* @param listCampaignsRequest
* @return A Java Future containing the result of the ListCampaigns operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions.
*
* - InvalidInputException Provide a valid value for the field or parameter.
* - InvalidNextTokenException The token is not valid.
* - 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.
* - PersonalizeException Base class for all service exceptions. Unknown exceptions will be thrown as an
* instance of this type.
*
* @sample PersonalizeAsyncClient.ListCampaigns
* @see AWS API
* Documentation
*/
@Override
public CompletableFuture listCampaigns(ListCampaignsRequest listCampaignsRequest) {
List metricPublishers = resolveMetricPublishers(clientConfiguration, listCampaignsRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Personalize");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "ListCampaigns");
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata,
ListCampaignsResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
CompletableFuture executeFuture = clientHandler
.execute(new ClientExecutionParams()
.withOperationName("ListCampaigns")
.withMarshaller(new ListCampaignsRequestMarshaller(protocolFactory))
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withMetricCollector(apiCallMetricCollector).withInput(listCampaignsRequest));
AwsRequestOverrideConfiguration requestOverrideConfig = listCampaignsRequest.overrideConfiguration().orElse(null);
CompletableFuture whenCompleted = executeFuture.whenComplete((r, e) -> {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
});
executeFuture = CompletableFutureUtils.forwardExceptionTo(whenCompleted, executeFuture);
return executeFuture;
} catch (Throwable t) {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
return CompletableFutureUtils.failedFuture(t);
}
}
/**
*
* Returns a list of campaigns that use the given solution. When a solution is not specified, all the campaigns
* associated with the account are listed. The response provides the properties for each campaign, including the
* Amazon Resource Name (ARN). For more information on campaigns, see CreateCampaign.
*
*
*
* This is a variant of
* {@link #listCampaigns(software.amazon.awssdk.services.personalize.model.ListCampaignsRequest)} operation. The
* return type is a custom publisher that can be subscribed to request a stream of response pages. SDK will
* internally handle making service calls for you.
*
*
* When the operation is called, an instance of this class is returned. At this point, no service calls are made yet
* and so there is no guarantee that the request is valid. If there are errors in your request, you will see the
* failures only after you start streaming the data. The subscribe method should be called as a request to start
* streaming data. For more info, see
* {@link org.reactivestreams.Publisher#subscribe(org.reactivestreams.Subscriber)}. Each call to the subscribe
* method will result in a new {@link org.reactivestreams.Subscription} i.e., a new contract to stream data from the
* starting request.
*
*
*
* The following are few ways to use the response class:
*
* 1) Using the subscribe helper method
*
*
* {@code
* software.amazon.awssdk.services.personalize.paginators.ListCampaignsPublisher publisher = client.listCampaignsPaginator(request);
* CompletableFuture future = publisher.subscribe(res -> { // Do something with the response });
* future.get();
* }
*
*
* 2) Using a custom subscriber
*
*
* {@code
* software.amazon.awssdk.services.personalize.paginators.ListCampaignsPublisher publisher = client.listCampaignsPaginator(request);
* publisher.subscribe(new Subscriber() {
*
* public void onSubscribe(org.reactivestreams.Subscriber subscription) { //... };
*
*
* public void onNext(software.amazon.awssdk.services.personalize.model.ListCampaignsResponse response) { //... };
* });}
*
*
* As the response is a publisher, it can work well with third party reactive streams implementations like RxJava2.
*
* Please notice that the configuration of maxResults won't limit the number of results you get with the
* paginator. It only limits the number of results in each page.
*
*
* Note: If you prefer to have control on service calls, use the
* {@link #listCampaigns(software.amazon.awssdk.services.personalize.model.ListCampaignsRequest)} operation.
*
*
* @param listCampaignsRequest
* @return A custom publisher that can be subscribed to request a stream of response pages.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions.
*
* - InvalidInputException Provide a valid value for the field or parameter.
* - InvalidNextTokenException The token is not valid.
* - 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.
* - PersonalizeException Base class for all service exceptions. Unknown exceptions will be thrown as an
* instance of this type.
*
* @sample PersonalizeAsyncClient.ListCampaigns
* @see AWS API
* Documentation
*/
public ListCampaignsPublisher listCampaignsPaginator(ListCampaignsRequest listCampaignsRequest) {
return new ListCampaignsPublisher(this, applyPaginatorUserAgent(listCampaignsRequest));
}
/**
*
* Returns a list of dataset export jobs that use the given dataset. When a dataset is not specified, all the
* dataset export jobs associated with the account are listed. The response provides the properties for each dataset
* export job, including the Amazon Resource Name (ARN). For more information on dataset export jobs, see
* CreateDatasetExportJob. For more information on datasets, see CreateDataset.
*
*
* @param listDatasetExportJobsRequest
* @return A Java Future containing the result of the ListDatasetExportJobs operation returned by the service.
* The CompletableFuture returned by this method can be completed exceptionally with the following
* exceptions.
*
* - InvalidInputException Provide a valid value for the field or parameter.
* - InvalidNextTokenException The token is not valid.
* - 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.
* - PersonalizeException Base class for all service exceptions. Unknown exceptions will be thrown as an
* instance of this type.
*
* @sample PersonalizeAsyncClient.ListDatasetExportJobs
* @see AWS API Documentation
*/
@Override
public CompletableFuture listDatasetExportJobs(
ListDatasetExportJobsRequest listDatasetExportJobsRequest) {
List metricPublishers = resolveMetricPublishers(clientConfiguration, listDatasetExportJobsRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Personalize");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "ListDatasetExportJobs");
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, ListDatasetExportJobsResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
CompletableFuture executeFuture = clientHandler
.execute(new ClientExecutionParams