/* * Copyright 2018-2023 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 com.amazonaws.services.entityresolution; import org.w3c.dom.*; import java.net.*; import java.util.*; import javax.annotation.Generated; import org.apache.commons.logging.*; import com.amazonaws.*; import com.amazonaws.annotation.SdkInternalApi; import com.amazonaws.auth.*; import com.amazonaws.handlers.*; import com.amazonaws.http.*; import com.amazonaws.internal.*; import com.amazonaws.internal.auth.*; import com.amazonaws.metrics.*; import com.amazonaws.regions.*; import com.amazonaws.transform.*; import com.amazonaws.util.*; import com.amazonaws.protocol.json.*; import com.amazonaws.util.AWSRequestMetrics.Field; import com.amazonaws.annotation.ThreadSafe; import com.amazonaws.client.AwsSyncClientParams; import com.amazonaws.client.builder.AdvancedConfig; import com.amazonaws.services.entityresolution.AWSEntityResolutionClientBuilder; import com.amazonaws.AmazonServiceException; import com.amazonaws.services.entityresolution.model.*; import com.amazonaws.services.entityresolution.model.transform.*; /** * Client for accessing AWSEntityResolution. All service calls made using this client are blocking, and will not return * until the service call completes. *

*

* Welcome to the AWS Entity Resolution API Reference. *

*

* AWS Entity Resolution is an AWS service that provides pre-configured entity resolution capabilities that enable * developers and analysts at advertising and marketing companies to build an accurate and complete view of their * consumers. *

*

* With AWS Entity Resolution, you have the ability to match source records containing consumer identifiers, such as * name, email address, and phone number. This holds true even when these records have incomplete or conflicting * identifiers. For example, AWS Entity Resolution can effectively match a source record from a customer relationship * management (CRM) system, which includes account information like first name, last name, postal address, phone number, * and email address, with a source record from a marketing system containing campaign information, such as username and * email address. *

*

* To learn more about AWS Entity Resolution concepts, procedures, and best practices, see the AWS Entity Resolution User * Guide. *

*/ @ThreadSafe @Generated("com.amazonaws:aws-java-sdk-code-generator") public class AWSEntityResolutionClient extends AmazonWebServiceClient implements AWSEntityResolution { /** Provider for AWS credentials. */ private final AWSCredentialsProvider awsCredentialsProvider; private static final Log log = LogFactory.getLog(AWSEntityResolution.class); /** Default signing name for the service. */ private static final String DEFAULT_SIGNING_NAME = "entityresolution"; /** Client configuration factory providing ClientConfigurations tailored to this client */ protected static final ClientConfigurationFactory configFactory = new ClientConfigurationFactory(); private final AdvancedConfig advancedConfig; private static final com.amazonaws.protocol.json.SdkJsonProtocolFactory protocolFactory = new com.amazonaws.protocol.json.SdkJsonProtocolFactory( new JsonClientMetadata() .withProtocolVersion("1.1") .withSupportsCbor(false) .withSupportsIon(false) .withContentTypeOverride("application/json") .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("AccessDeniedException").withExceptionUnmarshaller( com.amazonaws.services.entityresolution.model.transform.AccessDeniedExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("ConflictException").withExceptionUnmarshaller( com.amazonaws.services.entityresolution.model.transform.ConflictExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("ResourceNotFoundException").withExceptionUnmarshaller( com.amazonaws.services.entityresolution.model.transform.ResourceNotFoundExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("ThrottlingException").withExceptionUnmarshaller( com.amazonaws.services.entityresolution.model.transform.ThrottlingExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("ValidationException").withExceptionUnmarshaller( com.amazonaws.services.entityresolution.model.transform.ValidationExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("InternalServerException").withExceptionUnmarshaller( com.amazonaws.services.entityresolution.model.transform.InternalServerExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("ExceedsLimitException").withExceptionUnmarshaller( com.amazonaws.services.entityresolution.model.transform.ExceedsLimitExceptionUnmarshaller.getInstance())) .withBaseServiceExceptionClass(com.amazonaws.services.entityresolution.model.AWSEntityResolutionException.class)); public static AWSEntityResolutionClientBuilder builder() { return AWSEntityResolutionClientBuilder.standard(); } /** * Constructs a new client to invoke service methods on AWSEntityResolution using the specified parameters. * *

* All service calls made using this new client object are blocking, and will not return until the service call * completes. * * @param clientParams * Object providing client parameters. */ AWSEntityResolutionClient(AwsSyncClientParams clientParams) { this(clientParams, false); } /** * Constructs a new client to invoke service methods on AWSEntityResolution using the specified parameters. * *

* All service calls made using this new client object are blocking, and will not return until the service call * completes. * * @param clientParams * Object providing client parameters. */ AWSEntityResolutionClient(AwsSyncClientParams clientParams, boolean endpointDiscoveryEnabled) { super(clientParams); this.awsCredentialsProvider = clientParams.getCredentialsProvider(); this.advancedConfig = clientParams.getAdvancedConfig(); init(); } private void init() { setServiceNameIntern(DEFAULT_SIGNING_NAME); setEndpointPrefix(ENDPOINT_PREFIX); // calling this.setEndPoint(...) will also modify the signer accordingly setEndpoint("entityresolution.us-east-1.amazonaws.com"); HandlerChainFactory chainFactory = new HandlerChainFactory(); requestHandler2s.addAll(chainFactory.newRequestHandlerChain("/com/amazonaws/services/entityresolution/request.handlers")); requestHandler2s.addAll(chainFactory.newRequestHandler2Chain("/com/amazonaws/services/entityresolution/request.handler2s")); requestHandler2s.addAll(chainFactory.getGlobalHandlers()); } /** *

* Creates a MatchingWorkflow object which stores the configuration of the data processing job to be * run. It is important to note that there should not be a pre-existing MatchingWorkflow with the same * name. To modify an existing workflow, utilize the UpdateMatchingWorkflow API. *

* * @param createMatchingWorkflowRequest * @return Result of the CreateMatchingWorkflow operation returned by the service. * @throws ThrottlingException * The request was denied due to request throttling. HTTP Status Code: 429 * @throws InternalServerException * This exception occurs when there is an internal failure in the AWS Entity Resolution service. * HTTP Status Code: 500 * @throws AccessDeniedException * You do not have sufficient access to perform this action. HTTP Status Code: 403 * @throws ExceedsLimitException * The request was rejected because it attempted to create resources beyond the current AWS Entity * Resolution account limits. The error message describes the limit exceeded. * HTTP Status Code: 402 * @throws ConflictException * The request could not be processed because of conflict in the current state of the resource. Example: * Workflow already exists, Schema already exists, Workflow is currently running, etc. * HTTP Status Code: 400 * @throws ValidationException * The input fails to satisfy the constraints specified by AWS Entity Resolution. * HTTP Status Code: 400 * @sample AWSEntityResolution.CreateMatchingWorkflow * @see AWS API Documentation */ @Override public CreateMatchingWorkflowResult createMatchingWorkflow(CreateMatchingWorkflowRequest request) { request = beforeClientExecution(request); return executeCreateMatchingWorkflow(request); } @SdkInternalApi final CreateMatchingWorkflowResult executeCreateMatchingWorkflow(CreateMatchingWorkflowRequest createMatchingWorkflowRequest) { ExecutionContext executionContext = createExecutionContext(createMatchingWorkflowRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new CreateMatchingWorkflowRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(createMatchingWorkflowRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "EntityResolution"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "CreateMatchingWorkflow"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new CreateMatchingWorkflowResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Creates a schema mapping, which defines the schema of the input customer records table. The * SchemaMapping also provides Entity Resolution with some metadata about the table, such as the * attribute types of the columns and which columns to match on. *

* * @param createSchemaMappingRequest * @return Result of the CreateSchemaMapping operation returned by the service. * @throws ThrottlingException * The request was denied due to request throttling. HTTP Status Code: 429 * @throws InternalServerException * This exception occurs when there is an internal failure in the AWS Entity Resolution service. * HTTP Status Code: 500 * @throws AccessDeniedException * You do not have sufficient access to perform this action. HTTP Status Code: 403 * @throws ExceedsLimitException * The request was rejected because it attempted to create resources beyond the current AWS Entity * Resolution account limits. The error message describes the limit exceeded. * HTTP Status Code: 402 * @throws ConflictException * The request could not be processed because of conflict in the current state of the resource. Example: * Workflow already exists, Schema already exists, Workflow is currently running, etc. * HTTP Status Code: 400 * @throws ValidationException * The input fails to satisfy the constraints specified by AWS Entity Resolution. * HTTP Status Code: 400 * @sample AWSEntityResolution.CreateSchemaMapping * @see AWS API Documentation */ @Override public CreateSchemaMappingResult createSchemaMapping(CreateSchemaMappingRequest request) { request = beforeClientExecution(request); return executeCreateSchemaMapping(request); } @SdkInternalApi final CreateSchemaMappingResult executeCreateSchemaMapping(CreateSchemaMappingRequest createSchemaMappingRequest) { ExecutionContext executionContext = createExecutionContext(createSchemaMappingRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new CreateSchemaMappingRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(createSchemaMappingRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "EntityResolution"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "CreateSchemaMapping"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new CreateSchemaMappingResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Deletes the MatchingWorkflow with a given name. This operation will succeed even if a workflow with * the given name does not exist. *

* * @param deleteMatchingWorkflowRequest * @return Result of the DeleteMatchingWorkflow operation returned by the service. * @throws ThrottlingException * The request was denied due to request throttling. HTTP Status Code: 429 * @throws InternalServerException * This exception occurs when there is an internal failure in the AWS Entity Resolution service. * HTTP Status Code: 500 * @throws AccessDeniedException * You do not have sufficient access to perform this action. HTTP Status Code: 403 * @throws ValidationException * The input fails to satisfy the constraints specified by AWS Entity Resolution. * HTTP Status Code: 400 * @sample AWSEntityResolution.DeleteMatchingWorkflow * @see AWS API Documentation */ @Override public DeleteMatchingWorkflowResult deleteMatchingWorkflow(DeleteMatchingWorkflowRequest request) { request = beforeClientExecution(request); return executeDeleteMatchingWorkflow(request); } @SdkInternalApi final DeleteMatchingWorkflowResult executeDeleteMatchingWorkflow(DeleteMatchingWorkflowRequest deleteMatchingWorkflowRequest) { ExecutionContext executionContext = createExecutionContext(deleteMatchingWorkflowRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DeleteMatchingWorkflowRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(deleteMatchingWorkflowRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "EntityResolution"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DeleteMatchingWorkflow"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DeleteMatchingWorkflowResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Deletes the SchemaMapping with a given name. This operation will succeed even if a schema with the * given name does not exist. This operation will fail if there is a DataIntegrationWorkflow object * that references the SchemaMapping in the workflow's InputSourceConfig. *

* * @param deleteSchemaMappingRequest * @return Result of the DeleteSchemaMapping operation returned by the service. * @throws ThrottlingException * The request was denied due to request throttling. HTTP Status Code: 429 * @throws InternalServerException * This exception occurs when there is an internal failure in the AWS Entity Resolution service. * HTTP Status Code: 500 * @throws AccessDeniedException * You do not have sufficient access to perform this action. HTTP Status Code: 403 * @throws ConflictException * The request could not be processed because of conflict in the current state of the resource. Example: * Workflow already exists, Schema already exists, Workflow is currently running, etc. * HTTP Status Code: 400 * @throws ValidationException * The input fails to satisfy the constraints specified by AWS Entity Resolution. * HTTP Status Code: 400 * @sample AWSEntityResolution.DeleteSchemaMapping * @see AWS API Documentation */ @Override public DeleteSchemaMappingResult deleteSchemaMapping(DeleteSchemaMappingRequest request) { request = beforeClientExecution(request); return executeDeleteSchemaMapping(request); } @SdkInternalApi final DeleteSchemaMappingResult executeDeleteSchemaMapping(DeleteSchemaMappingRequest deleteSchemaMappingRequest) { ExecutionContext executionContext = createExecutionContext(deleteSchemaMappingRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DeleteSchemaMappingRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(deleteSchemaMappingRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "EntityResolution"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DeleteSchemaMapping"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DeleteSchemaMappingResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Returns the corresponding Match ID of a customer record if the record has been processed. *

* * @param getMatchIdRequest * @return Result of the GetMatchId operation returned by the service. * @throws ThrottlingException * The request was denied due to request throttling. HTTP Status Code: 429 * @throws InternalServerException * This exception occurs when there is an internal failure in the AWS Entity Resolution service. * HTTP Status Code: 500 * @throws ResourceNotFoundException * The resource could not be found. HTTP Status Code: 404 * @throws AccessDeniedException * You do not have sufficient access to perform this action. HTTP Status Code: 403 * @throws ValidationException * The input fails to satisfy the constraints specified by AWS Entity Resolution. * HTTP Status Code: 400 * @sample AWSEntityResolution.GetMatchId * @see AWS * API Documentation */ @Override public GetMatchIdResult getMatchId(GetMatchIdRequest request) { request = beforeClientExecution(request); return executeGetMatchId(request); } @SdkInternalApi final GetMatchIdResult executeGetMatchId(GetMatchIdRequest getMatchIdRequest) { ExecutionContext executionContext = createExecutionContext(getMatchIdRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetMatchIdRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(getMatchIdRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "EntityResolution"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "GetMatchId"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler(new JsonOperationMetadata() .withPayloadJson(true).withHasStreamingSuccessResponse(false), new GetMatchIdResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Gets the status, metrics, and errors (if there are any) that are associated with a job. *

* * @param getMatchingJobRequest * @return Result of the GetMatchingJob operation returned by the service. * @throws ThrottlingException * The request was denied due to request throttling. HTTP Status Code: 429 * @throws InternalServerException * This exception occurs when there is an internal failure in the AWS Entity Resolution service. * HTTP Status Code: 500 * @throws ResourceNotFoundException * The resource could not be found. HTTP Status Code: 404 * @throws AccessDeniedException * You do not have sufficient access to perform this action. HTTP Status Code: 403 * @throws ValidationException * The input fails to satisfy the constraints specified by AWS Entity Resolution. * HTTP Status Code: 400 * @sample AWSEntityResolution.GetMatchingJob * @see AWS API Documentation */ @Override public GetMatchingJobResult getMatchingJob(GetMatchingJobRequest request) { request = beforeClientExecution(request); return executeGetMatchingJob(request); } @SdkInternalApi final GetMatchingJobResult executeGetMatchingJob(GetMatchingJobRequest getMatchingJobRequest) { ExecutionContext executionContext = createExecutionContext(getMatchingJobRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetMatchingJobRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(getMatchingJobRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "EntityResolution"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "GetMatchingJob"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new GetMatchingJobResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Returns the MatchingWorkflow with a given name, if it exists. *

* * @param getMatchingWorkflowRequest * @return Result of the GetMatchingWorkflow operation returned by the service. * @throws ThrottlingException * The request was denied due to request throttling. HTTP Status Code: 429 * @throws InternalServerException * This exception occurs when there is an internal failure in the AWS Entity Resolution service. * HTTP Status Code: 500 * @throws ResourceNotFoundException * The resource could not be found. HTTP Status Code: 404 * @throws AccessDeniedException * You do not have sufficient access to perform this action. HTTP Status Code: 403 * @throws ValidationException * The input fails to satisfy the constraints specified by AWS Entity Resolution. * HTTP Status Code: 400 * @sample AWSEntityResolution.GetMatchingWorkflow * @see AWS API Documentation */ @Override public GetMatchingWorkflowResult getMatchingWorkflow(GetMatchingWorkflowRequest request) { request = beforeClientExecution(request); return executeGetMatchingWorkflow(request); } @SdkInternalApi final GetMatchingWorkflowResult executeGetMatchingWorkflow(GetMatchingWorkflowRequest getMatchingWorkflowRequest) { ExecutionContext executionContext = createExecutionContext(getMatchingWorkflowRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetMatchingWorkflowRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(getMatchingWorkflowRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "EntityResolution"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "GetMatchingWorkflow"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new GetMatchingWorkflowResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Returns the SchemaMapping of a given name. *

* * @param getSchemaMappingRequest * @return Result of the GetSchemaMapping operation returned by the service. * @throws ThrottlingException * The request was denied due to request throttling. HTTP Status Code: 429 * @throws InternalServerException * This exception occurs when there is an internal failure in the AWS Entity Resolution service. * HTTP Status Code: 500 * @throws ResourceNotFoundException * The resource could not be found. HTTP Status Code: 404 * @throws AccessDeniedException * You do not have sufficient access to perform this action. HTTP Status Code: 403 * @throws ValidationException * The input fails to satisfy the constraints specified by AWS Entity Resolution. * HTTP Status Code: 400 * @sample AWSEntityResolution.GetSchemaMapping * @see AWS API Documentation */ @Override public GetSchemaMappingResult getSchemaMapping(GetSchemaMappingRequest request) { request = beforeClientExecution(request); return executeGetSchemaMapping(request); } @SdkInternalApi final GetSchemaMappingResult executeGetSchemaMapping(GetSchemaMappingRequest getSchemaMappingRequest) { ExecutionContext executionContext = createExecutionContext(getSchemaMappingRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetSchemaMappingRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(getSchemaMappingRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "EntityResolution"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "GetSchemaMapping"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new GetSchemaMappingResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Lists all jobs for a given workflow. *

* * @param listMatchingJobsRequest * @return Result of the ListMatchingJobs operation returned by the service. * @throws ThrottlingException * The request was denied due to request throttling. HTTP Status Code: 429 * @throws InternalServerException * This exception occurs when there is an internal failure in the AWS Entity Resolution service. * HTTP Status Code: 500 * @throws ResourceNotFoundException * The resource could not be found. HTTP Status Code: 404 * @throws AccessDeniedException * You do not have sufficient access to perform this action. HTTP Status Code: 403 * @throws ValidationException * The input fails to satisfy the constraints specified by AWS Entity Resolution. * HTTP Status Code: 400 * @sample AWSEntityResolution.ListMatchingJobs * @see AWS API Documentation */ @Override public ListMatchingJobsResult listMatchingJobs(ListMatchingJobsRequest request) { request = beforeClientExecution(request); return executeListMatchingJobs(request); } @SdkInternalApi final ListMatchingJobsResult executeListMatchingJobs(ListMatchingJobsRequest listMatchingJobsRequest) { ExecutionContext executionContext = createExecutionContext(listMatchingJobsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ListMatchingJobsRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(listMatchingJobsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "EntityResolution"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "ListMatchingJobs"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new ListMatchingJobsResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Returns a list of all the MatchingWorkflows that have been created for an AWS account. *

* * @param listMatchingWorkflowsRequest * @return Result of the ListMatchingWorkflows operation returned by the service. * @throws ThrottlingException * The request was denied due to request throttling. HTTP Status Code: 429 * @throws InternalServerException * This exception occurs when there is an internal failure in the AWS Entity Resolution service. * HTTP Status Code: 500 * @throws AccessDeniedException * You do not have sufficient access to perform this action. HTTP Status Code: 403 * @throws ValidationException * The input fails to satisfy the constraints specified by AWS Entity Resolution. * HTTP Status Code: 400 * @sample AWSEntityResolution.ListMatchingWorkflows * @see AWS API Documentation */ @Override public ListMatchingWorkflowsResult listMatchingWorkflows(ListMatchingWorkflowsRequest request) { request = beforeClientExecution(request); return executeListMatchingWorkflows(request); } @SdkInternalApi final ListMatchingWorkflowsResult executeListMatchingWorkflows(ListMatchingWorkflowsRequest listMatchingWorkflowsRequest) { ExecutionContext executionContext = createExecutionContext(listMatchingWorkflowsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ListMatchingWorkflowsRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(listMatchingWorkflowsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "EntityResolution"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "ListMatchingWorkflows"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler(new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new ListMatchingWorkflowsResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Returns a list of all the SchemaMappings that have been created for an AWS account. *

* * @param listSchemaMappingsRequest * @return Result of the ListSchemaMappings operation returned by the service. * @throws ThrottlingException * The request was denied due to request throttling. HTTP Status Code: 429 * @throws InternalServerException * This exception occurs when there is an internal failure in the AWS Entity Resolution service. * HTTP Status Code: 500 * @throws AccessDeniedException * You do not have sufficient access to perform this action. HTTP Status Code: 403 * @throws ValidationException * The input fails to satisfy the constraints specified by AWS Entity Resolution. * HTTP Status Code: 400 * @sample AWSEntityResolution.ListSchemaMappings * @see AWS API Documentation */ @Override public ListSchemaMappingsResult listSchemaMappings(ListSchemaMappingsRequest request) { request = beforeClientExecution(request); return executeListSchemaMappings(request); } @SdkInternalApi final ListSchemaMappingsResult executeListSchemaMappings(ListSchemaMappingsRequest listSchemaMappingsRequest) { ExecutionContext executionContext = createExecutionContext(listSchemaMappingsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ListSchemaMappingsRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(listSchemaMappingsRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "EntityResolution"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "ListSchemaMappings"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new ListSchemaMappingsResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Displays the tags associated with an AWS Entity Resolution resource. In Entity Resolution, * SchemaMapping, and MatchingWorkflow can be tagged. *

* * @param listTagsForResourceRequest * @return Result of the ListTagsForResource operation returned by the service. * @throws InternalServerException * This exception occurs when there is an internal failure in the AWS Entity Resolution service. * HTTP Status Code: 500 * @throws ResourceNotFoundException * The resource could not be found. HTTP Status Code: 404 * @throws ValidationException * The input fails to satisfy the constraints specified by AWS Entity Resolution. * HTTP Status Code: 400 * @sample AWSEntityResolution.ListTagsForResource * @see AWS API Documentation */ @Override public ListTagsForResourceResult listTagsForResource(ListTagsForResourceRequest request) { request = beforeClientExecution(request); return executeListTagsForResource(request); } @SdkInternalApi final ListTagsForResourceResult executeListTagsForResource(ListTagsForResourceRequest listTagsForResourceRequest) { ExecutionContext executionContext = createExecutionContext(listTagsForResourceRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ListTagsForResourceRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(listTagsForResourceRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "EntityResolution"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "ListTagsForResource"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new ListTagsForResourceResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Starts the MatchingJob of a workflow. The workflow must have previously been created using the * CreateMatchingWorkflow endpoint. *

* * @param startMatchingJobRequest * @return Result of the StartMatchingJob operation returned by the service. * @throws ThrottlingException * The request was denied due to request throttling. HTTP Status Code: 429 * @throws InternalServerException * This exception occurs when there is an internal failure in the AWS Entity Resolution service. * HTTP Status Code: 500 * @throws ResourceNotFoundException * The resource could not be found. HTTP Status Code: 404 * @throws AccessDeniedException * You do not have sufficient access to perform this action. HTTP Status Code: 403 * @throws ExceedsLimitException * The request was rejected because it attempted to create resources beyond the current AWS Entity * Resolution account limits. The error message describes the limit exceeded. * HTTP Status Code: 402 * @throws ConflictException * The request could not be processed because of conflict in the current state of the resource. Example: * Workflow already exists, Schema already exists, Workflow is currently running, etc. * HTTP Status Code: 400 * @throws ValidationException * The input fails to satisfy the constraints specified by AWS Entity Resolution. * HTTP Status Code: 400 * @sample AWSEntityResolution.StartMatchingJob * @see AWS API Documentation */ @Override public StartMatchingJobResult startMatchingJob(StartMatchingJobRequest request) { request = beforeClientExecution(request); return executeStartMatchingJob(request); } @SdkInternalApi final StartMatchingJobResult executeStartMatchingJob(StartMatchingJobRequest startMatchingJobRequest) { ExecutionContext executionContext = createExecutionContext(startMatchingJobRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new StartMatchingJobRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(startMatchingJobRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "EntityResolution"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "StartMatchingJob"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new StartMatchingJobResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Assigns one or more tags (key-value pairs) to the specified AWS Entity Resolution resource. Tags can help you * organize and categorize your resources. You can also use them to scope user permissions by granting a user * permission to access or change only resources with certain tag values. In Entity Resolution, * SchemaMapping, and MatchingWorkflow can be tagged. Tags don't have any semantic meaning * to AWS and are interpreted strictly as strings of characters. You can use the TagResource action * with a resource that already has tags. If you specify a new tag key, this tag is appended to the list of tags * associated with the resource. If you specify a tag key that is already associated with the resource, the new tag * value that you specify replaces the previous value for that tag. *

* * @param tagResourceRequest * @return Result of the TagResource operation returned by the service. * @throws InternalServerException * This exception occurs when there is an internal failure in the AWS Entity Resolution service. * HTTP Status Code: 500 * @throws ResourceNotFoundException * The resource could not be found. HTTP Status Code: 404 * @throws ValidationException * The input fails to satisfy the constraints specified by AWS Entity Resolution. * HTTP Status Code: 400 * @sample AWSEntityResolution.TagResource * @see AWS * API Documentation */ @Override public TagResourceResult tagResource(TagResourceRequest request) { request = beforeClientExecution(request); return executeTagResource(request); } @SdkInternalApi final TagResourceResult executeTagResource(TagResourceRequest tagResourceRequest) { ExecutionContext executionContext = createExecutionContext(tagResourceRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new TagResourceRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(tagResourceRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "EntityResolution"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "TagResource"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new TagResourceResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Removes one or more tags from the specified AWS Entity Resolution resource. In Entity Resolution, * SchemaMapping, and MatchingWorkflow can be tagged. *

* * @param untagResourceRequest * @return Result of the UntagResource operation returned by the service. * @throws InternalServerException * This exception occurs when there is an internal failure in the AWS Entity Resolution service. * HTTP Status Code: 500 * @throws ResourceNotFoundException * The resource could not be found. HTTP Status Code: 404 * @sample AWSEntityResolution.UntagResource * @see AWS * API Documentation */ @Override public UntagResourceResult untagResource(UntagResourceRequest request) { request = beforeClientExecution(request); return executeUntagResource(request); } @SdkInternalApi final UntagResourceResult executeUntagResource(UntagResourceRequest untagResourceRequest) { ExecutionContext executionContext = createExecutionContext(untagResourceRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new UntagResourceRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(untagResourceRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "EntityResolution"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "UntagResource"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new UntagResourceResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Updates an existing MatchingWorkflow. This method is identical to * CreateMatchingWorkflow, except it uses an HTTP PUT request instead of a * POST request, and the MatchingWorkflow must already exist for the method to succeed. *

* * @param updateMatchingWorkflowRequest * @return Result of the UpdateMatchingWorkflow operation returned by the service. * @throws ThrottlingException * The request was denied due to request throttling. HTTP Status Code: 429 * @throws InternalServerException * This exception occurs when there is an internal failure in the AWS Entity Resolution service. * HTTP Status Code: 500 * @throws ResourceNotFoundException * The resource could not be found. HTTP Status Code: 404 * @throws AccessDeniedException * You do not have sufficient access to perform this action. HTTP Status Code: 403 * @throws ValidationException * The input fails to satisfy the constraints specified by AWS Entity Resolution. * HTTP Status Code: 400 * @sample AWSEntityResolution.UpdateMatchingWorkflow * @see AWS API Documentation */ @Override public UpdateMatchingWorkflowResult updateMatchingWorkflow(UpdateMatchingWorkflowRequest request) { request = beforeClientExecution(request); return executeUpdateMatchingWorkflow(request); } @SdkInternalApi final UpdateMatchingWorkflowResult executeUpdateMatchingWorkflow(UpdateMatchingWorkflowRequest updateMatchingWorkflowRequest) { ExecutionContext executionContext = createExecutionContext(updateMatchingWorkflowRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new UpdateMatchingWorkflowRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(updateMatchingWorkflowRequest)); // Binds the request metrics to the current request. request.setAWSRequestMetrics(awsRequestMetrics); request.addHandlerContext(HandlerContextKey.CLIENT_ENDPOINT, endpoint); request.addHandlerContext(HandlerContextKey.ENDPOINT_OVERRIDDEN, isEndpointOverridden()); request.addHandlerContext(HandlerContextKey.SIGNING_REGION, getSigningRegion()); request.addHandlerContext(HandlerContextKey.SERVICE_ID, "EntityResolution"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "UpdateMatchingWorkflow"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new UpdateMatchingWorkflowResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** * Returns additional metadata for a previously executed successful, request, typically used for debugging issues * where a service isn't acting as expected. This data isn't considered part of the result data returned by an * operation, so it's available through this separate, diagnostic interface. *

* Response metadata is only cached for a limited period of time, so if you need to access this extra diagnostic * information for an executed request, you should use this method to retrieve it as soon as possible after * executing the request. * * @param request * The originally executed request * * @return The response metadata for the specified request, or null if none is available. */ public ResponseMetadata getCachedResponseMetadata(AmazonWebServiceRequest request) { return client.getResponseMetadataForRequest(request); } /** * Normal invoke with authentication. Credentials are required and may be overriden at the request level. **/ private Response invoke(Request request, HttpResponseHandler> responseHandler, ExecutionContext executionContext) { return invoke(request, responseHandler, executionContext, null, null); } /** * Normal invoke with authentication. Credentials are required and may be overriden at the request level. **/ private Response invoke(Request request, HttpResponseHandler> responseHandler, ExecutionContext executionContext, URI cachedEndpoint, URI uriFromEndpointTrait) { executionContext.setCredentialsProvider(CredentialUtils.getCredentialsProvider(request.getOriginalRequest(), awsCredentialsProvider)); return doInvoke(request, responseHandler, executionContext, cachedEndpoint, uriFromEndpointTrait); } /** * Invoke with no authentication. Credentials are not required and any credentials set on the client or request will * be ignored for this operation. **/ private Response anonymousInvoke(Request request, HttpResponseHandler> responseHandler, ExecutionContext executionContext) { return doInvoke(request, responseHandler, executionContext, null, null); } /** * Invoke the request using the http client. Assumes credentials (or lack thereof) have been configured in the * ExecutionContext beforehand. **/ private Response doInvoke(Request request, HttpResponseHandler> responseHandler, ExecutionContext executionContext, URI discoveredEndpoint, URI uriFromEndpointTrait) { if (discoveredEndpoint != null) { request.setEndpoint(discoveredEndpoint); request.getOriginalRequest().getRequestClientOptions().appendUserAgent("endpoint-discovery"); } else if (uriFromEndpointTrait != null) { request.setEndpoint(uriFromEndpointTrait); } else { request.setEndpoint(endpoint); } request.setTimeOffset(timeOffset); HttpResponseHandler errorResponseHandler = protocolFactory.createErrorResponseHandler(new JsonErrorResponseMetadata()); return client.execute(request, responseHandler, errorResponseHandler, executionContext); } @com.amazonaws.annotation.SdkInternalApi static com.amazonaws.protocol.json.SdkJsonProtocolFactory getProtocolFactory() { return protocolFactory; } @Override public void shutdown() { super.shutdown(); } }