/* * 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.customerprofiles; 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.customerprofiles.AmazonCustomerProfilesClientBuilder; import com.amazonaws.AmazonServiceException; import com.amazonaws.services.customerprofiles.model.*; import com.amazonaws.services.customerprofiles.model.transform.*; /** * Client for accessing Customer Profiles. All service calls made using this client are blocking, and will not return * until the service call completes. *

* Amazon Connect Customer Profiles *

* Amazon Connect Customer Profiles is a unified customer profile for your contact center that has pre-built connectors * powered by AppFlow that make it easy to combine customer information from third party applications, such as * Salesforce (CRM), ServiceNow (ITSM), and your enterprise resource planning (ERP), with contact history from your * Amazon Connect contact center. If you're new to Amazon Connect, you might find it helpful to review the Amazon Connect Administrator Guide. *

*/ @ThreadSafe @Generated("com.amazonaws:aws-java-sdk-code-generator") public class AmazonCustomerProfilesClient extends AmazonWebServiceClient implements AmazonCustomerProfiles { /** Provider for AWS credentials. */ private final AWSCredentialsProvider awsCredentialsProvider; private static final Log log = LogFactory.getLog(AmazonCustomerProfiles.class); /** Default signing name for the service. */ private static final String DEFAULT_SIGNING_NAME = "profile"; /** 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("InternalServerException").withExceptionUnmarshaller( com.amazonaws.services.customerprofiles.model.transform.InternalServerExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("ResourceNotFoundException").withExceptionUnmarshaller( com.amazonaws.services.customerprofiles.model.transform.ResourceNotFoundExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("ThrottlingException").withExceptionUnmarshaller( com.amazonaws.services.customerprofiles.model.transform.ThrottlingExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("AccessDeniedException").withExceptionUnmarshaller( com.amazonaws.services.customerprofiles.model.transform.AccessDeniedExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("BadRequestException").withExceptionUnmarshaller( com.amazonaws.services.customerprofiles.model.transform.BadRequestExceptionUnmarshaller.getInstance())) .withBaseServiceExceptionClass(com.amazonaws.services.customerprofiles.model.AmazonCustomerProfilesException.class)); public static AmazonCustomerProfilesClientBuilder builder() { return AmazonCustomerProfilesClientBuilder.standard(); } /** * Constructs a new client to invoke service methods on Customer Profiles 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. */ AmazonCustomerProfilesClient(AwsSyncClientParams clientParams) { this(clientParams, false); } /** * Constructs a new client to invoke service methods on Customer Profiles 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. */ AmazonCustomerProfilesClient(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("profile.us-east-1.amazonaws.com"); HandlerChainFactory chainFactory = new HandlerChainFactory(); requestHandler2s.addAll(chainFactory.newRequestHandlerChain("/com/amazonaws/services/customerprofiles/request.handlers")); requestHandler2s.addAll(chainFactory.newRequestHandler2Chain("/com/amazonaws/services/customerprofiles/request.handler2s")); requestHandler2s.addAll(chainFactory.getGlobalHandlers()); } /** *

* Associates a new key value with a specific profile, such as a Contact Record ContactId. *

*

* A profile object can have a single unique key and any number of additional keys that can be used to identify the * profile that it belongs to. *

* * @param addProfileKeyRequest * @return Result of the AddProfileKey operation returned by the service. * @throws BadRequestException * The input you provided is invalid. * @throws AccessDeniedException * You do not have sufficient access to perform this action. * @throws ResourceNotFoundException * The requested resource does not exist, or access was denied. * @throws ThrottlingException * You exceeded the maximum number of requests. * @throws InternalServerException * An internal service error occurred. * @sample AmazonCustomerProfiles.AddProfileKey * @see AWS API Documentation */ @Override public AddProfileKeyResult addProfileKey(AddProfileKeyRequest request) { request = beforeClientExecution(request); return executeAddProfileKey(request); } @SdkInternalApi final AddProfileKeyResult executeAddProfileKey(AddProfileKeyRequest addProfileKeyRequest) { ExecutionContext executionContext = createExecutionContext(addProfileKeyRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new AddProfileKeyRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(addProfileKeyRequest)); // 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, "Customer Profiles"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "AddProfileKey"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new AddProfileKeyResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Creates a new calculated attribute definition. After creation, new object data ingested into Customer Profiles * will be included in the calculated attribute, which can be retrieved for a profile using the GetCalculatedAttributeForProfile API. Defining a calculated attribute makes it available for all profiles * within a domain. Each calculated attribute can only reference one ObjectType and at most, two fields * from that ObjectType. *

* * @param createCalculatedAttributeDefinitionRequest * @return Result of the CreateCalculatedAttributeDefinition operation returned by the service. * @throws BadRequestException * The input you provided is invalid. * @throws ResourceNotFoundException * The requested resource does not exist, or access was denied. * @throws AccessDeniedException * You do not have sufficient access to perform this action. * @throws ThrottlingException * You exceeded the maximum number of requests. * @throws InternalServerException * An internal service error occurred. * @sample AmazonCustomerProfiles.CreateCalculatedAttributeDefinition * @see AWS API Documentation */ @Override public CreateCalculatedAttributeDefinitionResult createCalculatedAttributeDefinition(CreateCalculatedAttributeDefinitionRequest request) { request = beforeClientExecution(request); return executeCreateCalculatedAttributeDefinition(request); } @SdkInternalApi final CreateCalculatedAttributeDefinitionResult executeCreateCalculatedAttributeDefinition( CreateCalculatedAttributeDefinitionRequest createCalculatedAttributeDefinitionRequest) { ExecutionContext executionContext = createExecutionContext(createCalculatedAttributeDefinitionRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new CreateCalculatedAttributeDefinitionRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(createCalculatedAttributeDefinitionRequest)); // 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, "Customer Profiles"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "CreateCalculatedAttributeDefinition"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new CreateCalculatedAttributeDefinitionResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Creates a domain, which is a container for all customer data, such as customer profile attributes, object types, * profile keys, and encryption keys. You can create multiple domains, and each domain can have multiple third-party * integrations. *

*

* Each Amazon Connect instance can be associated with only one domain. Multiple Amazon Connect instances can be * associated with one domain. *

*

* Use this API or UpdateDomain to * enable identity * resolution: set Matching to true. *

*

* To prevent cross-service impersonation when you call this API, see Cross-service confused deputy prevention for sample policies that you should apply. *

* * @param createDomainRequest * @return Result of the CreateDomain operation returned by the service. * @throws BadRequestException * The input you provided is invalid. * @throws ResourceNotFoundException * The requested resource does not exist, or access was denied. * @throws AccessDeniedException * You do not have sufficient access to perform this action. * @throws ThrottlingException * You exceeded the maximum number of requests. * @throws InternalServerException * An internal service error occurred. * @sample AmazonCustomerProfiles.CreateDomain * @see AWS * API Documentation */ @Override public CreateDomainResult createDomain(CreateDomainRequest request) { request = beforeClientExecution(request); return executeCreateDomain(request); } @SdkInternalApi final CreateDomainResult executeCreateDomain(CreateDomainRequest createDomainRequest) { ExecutionContext executionContext = createExecutionContext(createDomainRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new CreateDomainRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(createDomainRequest)); // 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, "Customer Profiles"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "CreateDomain"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new CreateDomainResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Creates an event stream, which is a subscription to real-time events, such as when profiles are created and * updated through Amazon Connect Customer Profiles. *

*

* Each event stream can be associated with only one Kinesis Data Stream destination in the same region and Amazon * Web Services account as the customer profiles domain *

* * @param createEventStreamRequest * @return Result of the CreateEventStream operation returned by the service. * @throws BadRequestException * The input you provided is invalid. * @throws ResourceNotFoundException * The requested resource does not exist, or access was denied. * @throws AccessDeniedException * You do not have sufficient access to perform this action. * @throws ThrottlingException * You exceeded the maximum number of requests. * @throws InternalServerException * An internal service error occurred. * @sample AmazonCustomerProfiles.CreateEventStream * @see AWS API Documentation */ @Override public CreateEventStreamResult createEventStream(CreateEventStreamRequest request) { request = beforeClientExecution(request); return executeCreateEventStream(request); } @SdkInternalApi final CreateEventStreamResult executeCreateEventStream(CreateEventStreamRequest createEventStreamRequest) { ExecutionContext executionContext = createExecutionContext(createEventStreamRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new CreateEventStreamRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(createEventStreamRequest)); // 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, "Customer Profiles"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "CreateEventStream"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new CreateEventStreamResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Creates an integration workflow. An integration workflow is an async process which ingests historic data and sets * up an integration for ongoing updates. The supported Amazon AppFlow sources are Salesforce, ServiceNow, and * Marketo. *

* * @param createIntegrationWorkflowRequest * @return Result of the CreateIntegrationWorkflow operation returned by the service. * @throws BadRequestException * The input you provided is invalid. * @throws ResourceNotFoundException * The requested resource does not exist, or access was denied. * @throws AccessDeniedException * You do not have sufficient access to perform this action. * @throws ThrottlingException * You exceeded the maximum number of requests. * @throws InternalServerException * An internal service error occurred. * @sample AmazonCustomerProfiles.CreateIntegrationWorkflow * @see AWS API Documentation */ @Override public CreateIntegrationWorkflowResult createIntegrationWorkflow(CreateIntegrationWorkflowRequest request) { request = beforeClientExecution(request); return executeCreateIntegrationWorkflow(request); } @SdkInternalApi final CreateIntegrationWorkflowResult executeCreateIntegrationWorkflow(CreateIntegrationWorkflowRequest createIntegrationWorkflowRequest) { ExecutionContext executionContext = createExecutionContext(createIntegrationWorkflowRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new CreateIntegrationWorkflowRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(createIntegrationWorkflowRequest)); // 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, "Customer Profiles"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "CreateIntegrationWorkflow"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new CreateIntegrationWorkflowResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Creates a standard profile. *

*

* A standard profile represents the following attributes for a customer profile in a domain. *

* * @param createProfileRequest * @return Result of the CreateProfile operation returned by the service. * @throws BadRequestException * The input you provided is invalid. * @throws AccessDeniedException * You do not have sufficient access to perform this action. * @throws ResourceNotFoundException * The requested resource does not exist, or access was denied. * @throws ThrottlingException * You exceeded the maximum number of requests. * @throws InternalServerException * An internal service error occurred. * @sample AmazonCustomerProfiles.CreateProfile * @see AWS API Documentation */ @Override public CreateProfileResult createProfile(CreateProfileRequest request) { request = beforeClientExecution(request); return executeCreateProfile(request); } @SdkInternalApi final CreateProfileResult executeCreateProfile(CreateProfileRequest createProfileRequest) { ExecutionContext executionContext = createExecutionContext(createProfileRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new CreateProfileRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(createProfileRequest)); // 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, "Customer Profiles"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "CreateProfile"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new CreateProfileResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Deletes an existing calculated attribute definition. Note that deleting a default calculated attribute is * possible, however once deleted, you will be unable to undo that action and will need to recreate it on your own * using the CreateCalculatedAttributeDefinition API if you want it back. *

* * @param deleteCalculatedAttributeDefinitionRequest * @return Result of the DeleteCalculatedAttributeDefinition operation returned by the service. * @throws BadRequestException * The input you provided is invalid. * @throws ResourceNotFoundException * The requested resource does not exist, or access was denied. * @throws AccessDeniedException * You do not have sufficient access to perform this action. * @throws ThrottlingException * You exceeded the maximum number of requests. * @throws InternalServerException * An internal service error occurred. * @sample AmazonCustomerProfiles.DeleteCalculatedAttributeDefinition * @see AWS API Documentation */ @Override public DeleteCalculatedAttributeDefinitionResult deleteCalculatedAttributeDefinition(DeleteCalculatedAttributeDefinitionRequest request) { request = beforeClientExecution(request); return executeDeleteCalculatedAttributeDefinition(request); } @SdkInternalApi final DeleteCalculatedAttributeDefinitionResult executeDeleteCalculatedAttributeDefinition( DeleteCalculatedAttributeDefinitionRequest deleteCalculatedAttributeDefinitionRequest) { ExecutionContext executionContext = createExecutionContext(deleteCalculatedAttributeDefinitionRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DeleteCalculatedAttributeDefinitionRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(deleteCalculatedAttributeDefinitionRequest)); // 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, "Customer Profiles"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DeleteCalculatedAttributeDefinition"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DeleteCalculatedAttributeDefinitionResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Deletes a specific domain and all of its customer data, such as customer profile attributes and their related * objects. *

* * @param deleteDomainRequest * @return Result of the DeleteDomain operation returned by the service. * @throws BadRequestException * The input you provided is invalid. * @throws ResourceNotFoundException * The requested resource does not exist, or access was denied. * @throws AccessDeniedException * You do not have sufficient access to perform this action. * @throws ThrottlingException * You exceeded the maximum number of requests. * @throws InternalServerException * An internal service error occurred. * @sample AmazonCustomerProfiles.DeleteDomain * @see AWS * API Documentation */ @Override public DeleteDomainResult deleteDomain(DeleteDomainRequest request) { request = beforeClientExecution(request); return executeDeleteDomain(request); } @SdkInternalApi final DeleteDomainResult executeDeleteDomain(DeleteDomainRequest deleteDomainRequest) { ExecutionContext executionContext = createExecutionContext(deleteDomainRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DeleteDomainRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(deleteDomainRequest)); // 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, "Customer Profiles"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DeleteDomain"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DeleteDomainResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Disables and deletes the specified event stream. *

* * @param deleteEventStreamRequest * @return Result of the DeleteEventStream operation returned by the service. * @throws BadRequestException * The input you provided is invalid. * @throws ResourceNotFoundException * The requested resource does not exist, or access was denied. * @throws AccessDeniedException * You do not have sufficient access to perform this action. * @throws ThrottlingException * You exceeded the maximum number of requests. * @throws InternalServerException * An internal service error occurred. * @sample AmazonCustomerProfiles.DeleteEventStream * @see AWS API Documentation */ @Override public DeleteEventStreamResult deleteEventStream(DeleteEventStreamRequest request) { request = beforeClientExecution(request); return executeDeleteEventStream(request); } @SdkInternalApi final DeleteEventStreamResult executeDeleteEventStream(DeleteEventStreamRequest deleteEventStreamRequest) { ExecutionContext executionContext = createExecutionContext(deleteEventStreamRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DeleteEventStreamRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(deleteEventStreamRequest)); // 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, "Customer Profiles"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DeleteEventStream"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DeleteEventStreamResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Removes an integration from a specific domain. *

* * @param deleteIntegrationRequest * @return Result of the DeleteIntegration operation returned by the service. * @throws BadRequestException * The input you provided is invalid. * @throws ResourceNotFoundException * The requested resource does not exist, or access was denied. * @throws AccessDeniedException * You do not have sufficient access to perform this action. * @throws ThrottlingException * You exceeded the maximum number of requests. * @throws InternalServerException * An internal service error occurred. * @sample AmazonCustomerProfiles.DeleteIntegration * @see AWS API Documentation */ @Override public DeleteIntegrationResult deleteIntegration(DeleteIntegrationRequest request) { request = beforeClientExecution(request); return executeDeleteIntegration(request); } @SdkInternalApi final DeleteIntegrationResult executeDeleteIntegration(DeleteIntegrationRequest deleteIntegrationRequest) { ExecutionContext executionContext = createExecutionContext(deleteIntegrationRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DeleteIntegrationRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(deleteIntegrationRequest)); // 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, "Customer Profiles"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DeleteIntegration"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DeleteIntegrationResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Deletes the standard customer profile and all data pertaining to the profile. *

* * @param deleteProfileRequest * @return Result of the DeleteProfile operation returned by the service. * @throws BadRequestException * The input you provided is invalid. * @throws AccessDeniedException * You do not have sufficient access to perform this action. * @throws ResourceNotFoundException * The requested resource does not exist, or access was denied. * @throws ThrottlingException * You exceeded the maximum number of requests. * @throws InternalServerException * An internal service error occurred. * @sample AmazonCustomerProfiles.DeleteProfile * @see AWS API Documentation */ @Override public DeleteProfileResult deleteProfile(DeleteProfileRequest request) { request = beforeClientExecution(request); return executeDeleteProfile(request); } @SdkInternalApi final DeleteProfileResult executeDeleteProfile(DeleteProfileRequest deleteProfileRequest) { ExecutionContext executionContext = createExecutionContext(deleteProfileRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DeleteProfileRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(deleteProfileRequest)); // 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, "Customer Profiles"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DeleteProfile"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DeleteProfileResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Removes a searchable key from a customer profile. *

* * @param deleteProfileKeyRequest * @return Result of the DeleteProfileKey operation returned by the service. * @throws BadRequestException * The input you provided is invalid. * @throws AccessDeniedException * You do not have sufficient access to perform this action. * @throws ResourceNotFoundException * The requested resource does not exist, or access was denied. * @throws ThrottlingException * You exceeded the maximum number of requests. * @throws InternalServerException * An internal service error occurred. * @sample AmazonCustomerProfiles.DeleteProfileKey * @see AWS API Documentation */ @Override public DeleteProfileKeyResult deleteProfileKey(DeleteProfileKeyRequest request) { request = beforeClientExecution(request); return executeDeleteProfileKey(request); } @SdkInternalApi final DeleteProfileKeyResult executeDeleteProfileKey(DeleteProfileKeyRequest deleteProfileKeyRequest) { ExecutionContext executionContext = createExecutionContext(deleteProfileKeyRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DeleteProfileKeyRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(deleteProfileKeyRequest)); // 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, "Customer Profiles"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DeleteProfileKey"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DeleteProfileKeyResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Removes an object associated with a profile of a given ProfileObjectType. *

* * @param deleteProfileObjectRequest * @return Result of the DeleteProfileObject operation returned by the service. * @throws BadRequestException * The input you provided is invalid. * @throws AccessDeniedException * You do not have sufficient access to perform this action. * @throws ResourceNotFoundException * The requested resource does not exist, or access was denied. * @throws ThrottlingException * You exceeded the maximum number of requests. * @throws InternalServerException * An internal service error occurred. * @sample AmazonCustomerProfiles.DeleteProfileObject * @see AWS API Documentation */ @Override public DeleteProfileObjectResult deleteProfileObject(DeleteProfileObjectRequest request) { request = beforeClientExecution(request); return executeDeleteProfileObject(request); } @SdkInternalApi final DeleteProfileObjectResult executeDeleteProfileObject(DeleteProfileObjectRequest deleteProfileObjectRequest) { ExecutionContext executionContext = createExecutionContext(deleteProfileObjectRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DeleteProfileObjectRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(deleteProfileObjectRequest)); // 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, "Customer Profiles"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DeleteProfileObject"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DeleteProfileObjectResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Removes a ProfileObjectType from a specific domain as well as removes all the ProfileObjects of that type. It * also disables integrations from this specific ProfileObjectType. In addition, it scrubs all of the fields of the * standard profile that were populated from this ProfileObjectType. *

* * @param deleteProfileObjectTypeRequest * @return Result of the DeleteProfileObjectType operation returned by the service. * @throws BadRequestException * The input you provided is invalid. * @throws ResourceNotFoundException * The requested resource does not exist, or access was denied. * @throws AccessDeniedException * You do not have sufficient access to perform this action. * @throws ThrottlingException * You exceeded the maximum number of requests. * @throws InternalServerException * An internal service error occurred. * @sample AmazonCustomerProfiles.DeleteProfileObjectType * @see AWS API Documentation */ @Override public DeleteProfileObjectTypeResult deleteProfileObjectType(DeleteProfileObjectTypeRequest request) { request = beforeClientExecution(request); return executeDeleteProfileObjectType(request); } @SdkInternalApi final DeleteProfileObjectTypeResult executeDeleteProfileObjectType(DeleteProfileObjectTypeRequest deleteProfileObjectTypeRequest) { ExecutionContext executionContext = createExecutionContext(deleteProfileObjectTypeRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DeleteProfileObjectTypeRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(deleteProfileObjectTypeRequest)); // 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, "Customer Profiles"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DeleteProfileObjectType"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DeleteProfileObjectTypeResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Deletes the specified workflow and all its corresponding resources. This is an async process. *

* * @param deleteWorkflowRequest * @return Result of the DeleteWorkflow operation returned by the service. * @throws BadRequestException * The input you provided is invalid. * @throws ResourceNotFoundException * The requested resource does not exist, or access was denied. * @throws AccessDeniedException * You do not have sufficient access to perform this action. * @throws ThrottlingException * You exceeded the maximum number of requests. * @throws InternalServerException * An internal service error occurred. * @sample AmazonCustomerProfiles.DeleteWorkflow * @see AWS API Documentation */ @Override public DeleteWorkflowResult deleteWorkflow(DeleteWorkflowRequest request) { request = beforeClientExecution(request); return executeDeleteWorkflow(request); } @SdkInternalApi final DeleteWorkflowResult executeDeleteWorkflow(DeleteWorkflowRequest deleteWorkflowRequest) { ExecutionContext executionContext = createExecutionContext(deleteWorkflowRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DeleteWorkflowRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(deleteWorkflowRequest)); // 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, "Customer Profiles"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "DeleteWorkflow"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DeleteWorkflowResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Tests the auto-merging settings of your Identity Resolution Job without merging your data. It randomly selects a * sample of matching groups from the existing matching results, and applies the automerging settings that you * provided. You can then view the number of profiles in the sample, the number of matches, and the number of * profiles identified to be merged. This enables you to evaluate the accuracy of the attributes in your matching * list. *

*

* You can't view which profiles are matched and would be merged. *

* *

* We strongly recommend you use this API to do a dry run of the automerging process before running the Identity * Resolution Job. Include at least two matching attributes. If your matching list includes too few * attributes (such as only FirstName or only LastName), there may be a large number of * matches. This increases the chances of erroneous merges. *

*
* * @param getAutoMergingPreviewRequest * @return Result of the GetAutoMergingPreview operation returned by the service. * @throws BadRequestException * The input you provided is invalid. * @throws ResourceNotFoundException * The requested resource does not exist, or access was denied. * @throws AccessDeniedException * You do not have sufficient access to perform this action. * @throws ThrottlingException * You exceeded the maximum number of requests. * @throws InternalServerException * An internal service error occurred. * @sample AmazonCustomerProfiles.GetAutoMergingPreview * @see AWS API Documentation */ @Override public GetAutoMergingPreviewResult getAutoMergingPreview(GetAutoMergingPreviewRequest request) { request = beforeClientExecution(request); return executeGetAutoMergingPreview(request); } @SdkInternalApi final GetAutoMergingPreviewResult executeGetAutoMergingPreview(GetAutoMergingPreviewRequest getAutoMergingPreviewRequest) { ExecutionContext executionContext = createExecutionContext(getAutoMergingPreviewRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetAutoMergingPreviewRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(getAutoMergingPreviewRequest)); // 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, "Customer Profiles"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "GetAutoMergingPreview"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory .createResponseHandler(new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new GetAutoMergingPreviewResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Provides more information on a calculated attribute definition for Customer Profiles. *

* * @param getCalculatedAttributeDefinitionRequest * @return Result of the GetCalculatedAttributeDefinition operation returned by the service. * @throws BadRequestException * The input you provided is invalid. * @throws ResourceNotFoundException * The requested resource does not exist, or access was denied. * @throws AccessDeniedException * You do not have sufficient access to perform this action. * @throws ThrottlingException * You exceeded the maximum number of requests. * @throws InternalServerException * An internal service error occurred. * @sample AmazonCustomerProfiles.GetCalculatedAttributeDefinition * @see AWS API Documentation */ @Override public GetCalculatedAttributeDefinitionResult getCalculatedAttributeDefinition(GetCalculatedAttributeDefinitionRequest request) { request = beforeClientExecution(request); return executeGetCalculatedAttributeDefinition(request); } @SdkInternalApi final GetCalculatedAttributeDefinitionResult executeGetCalculatedAttributeDefinition( GetCalculatedAttributeDefinitionRequest getCalculatedAttributeDefinitionRequest) { ExecutionContext executionContext = createExecutionContext(getCalculatedAttributeDefinitionRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetCalculatedAttributeDefinitionRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(getCalculatedAttributeDefinitionRequest)); // 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, "Customer Profiles"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "GetCalculatedAttributeDefinition"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new GetCalculatedAttributeDefinitionResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Retrieve a calculated attribute for a customer profile. *

* * @param getCalculatedAttributeForProfileRequest * @return Result of the GetCalculatedAttributeForProfile operation returned by the service. * @throws BadRequestException * The input you provided is invalid. * @throws AccessDeniedException * You do not have sufficient access to perform this action. * @throws ResourceNotFoundException * The requested resource does not exist, or access was denied. * @throws ThrottlingException * You exceeded the maximum number of requests. * @throws InternalServerException * An internal service error occurred. * @sample AmazonCustomerProfiles.GetCalculatedAttributeForProfile * @see AWS API Documentation */ @Override public GetCalculatedAttributeForProfileResult getCalculatedAttributeForProfile(GetCalculatedAttributeForProfileRequest request) { request = beforeClientExecution(request); return executeGetCalculatedAttributeForProfile(request); } @SdkInternalApi final GetCalculatedAttributeForProfileResult executeGetCalculatedAttributeForProfile( GetCalculatedAttributeForProfileRequest getCalculatedAttributeForProfileRequest) { ExecutionContext executionContext = createExecutionContext(getCalculatedAttributeForProfileRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetCalculatedAttributeForProfileRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(getCalculatedAttributeForProfileRequest)); // 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, "Customer Profiles"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "GetCalculatedAttributeForProfile"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new GetCalculatedAttributeForProfileResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Returns information about a specific domain. *

* * @param getDomainRequest * @return Result of the GetDomain operation returned by the service. * @throws BadRequestException * The input you provided is invalid. * @throws ResourceNotFoundException * The requested resource does not exist, or access was denied. * @throws AccessDeniedException * You do not have sufficient access to perform this action. * @throws ThrottlingException * You exceeded the maximum number of requests. * @throws InternalServerException * An internal service error occurred. * @sample AmazonCustomerProfiles.GetDomain * @see AWS * API Documentation */ @Override public GetDomainResult getDomain(GetDomainRequest request) { request = beforeClientExecution(request); return executeGetDomain(request); } @SdkInternalApi final GetDomainResult executeGetDomain(GetDomainRequest getDomainRequest) { ExecutionContext executionContext = createExecutionContext(getDomainRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetDomainRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(getDomainRequest)); // 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, "Customer Profiles"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "GetDomain"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler(new JsonOperationMetadata() .withPayloadJson(true).withHasStreamingSuccessResponse(false), new GetDomainResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Returns information about the specified event stream in a specific domain. *

* * @param getEventStreamRequest * @return Result of the GetEventStream operation returned by the service. * @throws BadRequestException * The input you provided is invalid. * @throws ResourceNotFoundException * The requested resource does not exist, or access was denied. * @throws AccessDeniedException * You do not have sufficient access to perform this action. * @throws ThrottlingException * You exceeded the maximum number of requests. * @throws InternalServerException * An internal service error occurred. * @sample AmazonCustomerProfiles.GetEventStream * @see AWS API Documentation */ @Override public GetEventStreamResult getEventStream(GetEventStreamRequest request) { request = beforeClientExecution(request); return executeGetEventStream(request); } @SdkInternalApi final GetEventStreamResult executeGetEventStream(GetEventStreamRequest getEventStreamRequest) { ExecutionContext executionContext = createExecutionContext(getEventStreamRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetEventStreamRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(getEventStreamRequest)); // 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, "Customer Profiles"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "GetEventStream"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new GetEventStreamResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Returns information about an Identity Resolution Job in a specific domain. *

*

* Identity Resolution Jobs are set up using the Amazon Connect admin console. For more information, see Use Identity Resolution * to consolidate similar profiles. *

* * @param getIdentityResolutionJobRequest * @return Result of the GetIdentityResolutionJob operation returned by the service. * @throws BadRequestException * The input you provided is invalid. * @throws ResourceNotFoundException * The requested resource does not exist, or access was denied. * @throws AccessDeniedException * You do not have sufficient access to perform this action. * @throws ThrottlingException * You exceeded the maximum number of requests. * @throws InternalServerException * An internal service error occurred. * @sample AmazonCustomerProfiles.GetIdentityResolutionJob * @see AWS API Documentation */ @Override public GetIdentityResolutionJobResult getIdentityResolutionJob(GetIdentityResolutionJobRequest request) { request = beforeClientExecution(request); return executeGetIdentityResolutionJob(request); } @SdkInternalApi final GetIdentityResolutionJobResult executeGetIdentityResolutionJob(GetIdentityResolutionJobRequest getIdentityResolutionJobRequest) { ExecutionContext executionContext = createExecutionContext(getIdentityResolutionJobRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetIdentityResolutionJobRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(getIdentityResolutionJobRequest)); // 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, "Customer Profiles"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "GetIdentityResolutionJob"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new GetIdentityResolutionJobResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Returns an integration for a domain. *

* * @param getIntegrationRequest * @return Result of the GetIntegration operation returned by the service. * @throws BadRequestException * The input you provided is invalid. * @throws ResourceNotFoundException * The requested resource does not exist, or access was denied. * @throws AccessDeniedException * You do not have sufficient access to perform this action. * @throws ThrottlingException * You exceeded the maximum number of requests. * @throws InternalServerException * An internal service error occurred. * @sample AmazonCustomerProfiles.GetIntegration * @see AWS API Documentation */ @Override public GetIntegrationResult getIntegration(GetIntegrationRequest request) { request = beforeClientExecution(request); return executeGetIntegration(request); } @SdkInternalApi final GetIntegrationResult executeGetIntegration(GetIntegrationRequest getIntegrationRequest) { ExecutionContext executionContext = createExecutionContext(getIntegrationRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetIntegrationRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(getIntegrationRequest)); // 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, "Customer Profiles"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "GetIntegration"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new GetIntegrationResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Before calling this API, use CreateDomain or * UpdateDomain * to enable identity resolution: set Matching to true. *

*

* GetMatches returns potentially matching profiles, based on the results of the latest run of a machine learning * process. *

* *

* The process of matching duplicate profiles. If Matching = true, Amazon Connect Customer * Profiles starts a weekly batch process called Identity Resolution Job. If you do not specify a date and time for * Identity Resolution Job to run, by default it runs every Saturday at 12AM UTC to detect duplicate profiles in * your domains. *

*

* After the Identity Resolution Job completes, use the GetMatches API to * return and review the results. Or, if you have configured ExportingConfig in the * MatchingRequest, you can download the results from S3. *

*
*

* Amazon Connect uses the following profile attributes to identify matches: *

*
    *
  • *

    * PhoneNumber *

    *
  • *
  • *

    * HomePhoneNumber *

    *
  • *
  • *

    * BusinessPhoneNumber *

    *
  • *
  • *

    * MobilePhoneNumber *

    *
  • *
  • *

    * EmailAddress *

    *
  • *
  • *

    * PersonalEmailAddress *

    *
  • *
  • *

    * BusinessEmailAddress *

    *
  • *
  • *

    * FullName *

    *
  • *
*

* For example, two or more profiles—with spelling mistakes such as John Doe and Jhn Doe, or different * casing email addresses such as JOHN_DOE@ANYCOMPANY.COM and johndoe@anycompany.com, or different * phone number formats such as 555-010-0000 and +1-555-010-0000—can be detected as belonging to the * same customer John Doe and merged into a unified profile. *

* * @param getMatchesRequest * @return Result of the GetMatches operation returned by the service. * @throws BadRequestException * The input you provided is invalid. * @throws AccessDeniedException * You do not have sufficient access to perform this action. * @throws ResourceNotFoundException * The requested resource does not exist, or access was denied. * @throws ThrottlingException * You exceeded the maximum number of requests. * @throws InternalServerException * An internal service error occurred. * @sample AmazonCustomerProfiles.GetMatches * @see AWS * API Documentation */ @Override public GetMatchesResult getMatches(GetMatchesRequest request) { request = beforeClientExecution(request); return executeGetMatches(request); } @SdkInternalApi final GetMatchesResult executeGetMatches(GetMatchesRequest getMatchesRequest) { ExecutionContext executionContext = createExecutionContext(getMatchesRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetMatchesRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(getMatchesRequest)); // 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, "Customer Profiles"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "GetMatches"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler(new JsonOperationMetadata() .withPayloadJson(true).withHasStreamingSuccessResponse(false), new GetMatchesResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Returns the object types for a specific domain. *

* * @param getProfileObjectTypeRequest * @return Result of the GetProfileObjectType operation returned by the service. * @throws BadRequestException * The input you provided is invalid. * @throws ResourceNotFoundException * The requested resource does not exist, or access was denied. * @throws AccessDeniedException * You do not have sufficient access to perform this action. * @throws ThrottlingException * You exceeded the maximum number of requests. * @throws InternalServerException * An internal service error occurred. * @sample AmazonCustomerProfiles.GetProfileObjectType * @see AWS API Documentation */ @Override public GetProfileObjectTypeResult getProfileObjectType(GetProfileObjectTypeRequest request) { request = beforeClientExecution(request); return executeGetProfileObjectType(request); } @SdkInternalApi final GetProfileObjectTypeResult executeGetProfileObjectType(GetProfileObjectTypeRequest getProfileObjectTypeRequest) { ExecutionContext executionContext = createExecutionContext(getProfileObjectTypeRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetProfileObjectTypeRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(getProfileObjectTypeRequest)); // 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, "Customer Profiles"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "GetProfileObjectType"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new GetProfileObjectTypeResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Returns the template information for a specific object type. *

*

* A template is a predefined ProfileObjectType, such as “Salesforce-Account” or “Salesforce-Contact.” When a user * sends a ProfileObject, using the PutProfileObject API, with an ObjectTypeName that matches one of the * TemplateIds, it uses the mappings from the template. *

* * @param getProfileObjectTypeTemplateRequest * @return Result of the GetProfileObjectTypeTemplate operation returned by the service. * @throws BadRequestException * The input you provided is invalid. * @throws ResourceNotFoundException * The requested resource does not exist, or access was denied. * @throws AccessDeniedException * You do not have sufficient access to perform this action. * @throws ThrottlingException * You exceeded the maximum number of requests. * @throws InternalServerException * An internal service error occurred. * @sample AmazonCustomerProfiles.GetProfileObjectTypeTemplate * @see AWS API Documentation */ @Override public GetProfileObjectTypeTemplateResult getProfileObjectTypeTemplate(GetProfileObjectTypeTemplateRequest request) { request = beforeClientExecution(request); return executeGetProfileObjectTypeTemplate(request); } @SdkInternalApi final GetProfileObjectTypeTemplateResult executeGetProfileObjectTypeTemplate(GetProfileObjectTypeTemplateRequest getProfileObjectTypeTemplateRequest) { ExecutionContext executionContext = createExecutionContext(getProfileObjectTypeTemplateRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetProfileObjectTypeTemplateRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(getProfileObjectTypeTemplateRequest)); // 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, "Customer Profiles"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "GetProfileObjectTypeTemplate"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new GetProfileObjectTypeTemplateResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Returns a set of profiles that belong to the same matching group using the matchId or * profileId. You can also specify the type of matching that you want for finding similar profiles * using either RULE_BASED_MATCHING or ML_BASED_MATCHING. *

* * @param getSimilarProfilesRequest * @return Result of the GetSimilarProfiles operation returned by the service. * @throws BadRequestException * The input you provided is invalid. * @throws AccessDeniedException * You do not have sufficient access to perform this action. * @throws ResourceNotFoundException * The requested resource does not exist, or access was denied. * @throws ThrottlingException * You exceeded the maximum number of requests. * @throws InternalServerException * An internal service error occurred. * @sample AmazonCustomerProfiles.GetSimilarProfiles * @see AWS API Documentation */ @Override public GetSimilarProfilesResult getSimilarProfiles(GetSimilarProfilesRequest request) { request = beforeClientExecution(request); return executeGetSimilarProfiles(request); } @SdkInternalApi final GetSimilarProfilesResult executeGetSimilarProfiles(GetSimilarProfilesRequest getSimilarProfilesRequest) { ExecutionContext executionContext = createExecutionContext(getSimilarProfilesRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetSimilarProfilesRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(getSimilarProfilesRequest)); // 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, "Customer Profiles"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "GetSimilarProfiles"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new GetSimilarProfilesResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Get details of specified workflow. *

* * @param getWorkflowRequest * @return Result of the GetWorkflow operation returned by the service. * @throws BadRequestException * The input you provided is invalid. * @throws ResourceNotFoundException * The requested resource does not exist, or access was denied. * @throws AccessDeniedException * You do not have sufficient access to perform this action. * @throws ThrottlingException * You exceeded the maximum number of requests. * @throws InternalServerException * An internal service error occurred. * @sample AmazonCustomerProfiles.GetWorkflow * @see AWS * API Documentation */ @Override public GetWorkflowResult getWorkflow(GetWorkflowRequest request) { request = beforeClientExecution(request); return executeGetWorkflow(request); } @SdkInternalApi final GetWorkflowResult executeGetWorkflow(GetWorkflowRequest getWorkflowRequest) { ExecutionContext executionContext = createExecutionContext(getWorkflowRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetWorkflowRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(getWorkflowRequest)); // 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, "Customer Profiles"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "GetWorkflow"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new GetWorkflowResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Get granular list of steps in workflow. *

* * @param getWorkflowStepsRequest * @return Result of the GetWorkflowSteps operation returned by the service. * @throws BadRequestException * The input you provided is invalid. * @throws ResourceNotFoundException * The requested resource does not exist, or access was denied. * @throws AccessDeniedException * You do not have sufficient access to perform this action. * @throws ThrottlingException * You exceeded the maximum number of requests. * @throws InternalServerException * An internal service error occurred. * @sample AmazonCustomerProfiles.GetWorkflowSteps * @see AWS API Documentation */ @Override public GetWorkflowStepsResult getWorkflowSteps(GetWorkflowStepsRequest request) { request = beforeClientExecution(request); return executeGetWorkflowSteps(request); } @SdkInternalApi final GetWorkflowStepsResult executeGetWorkflowSteps(GetWorkflowStepsRequest getWorkflowStepsRequest) { ExecutionContext executionContext = createExecutionContext(getWorkflowStepsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new GetWorkflowStepsRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(getWorkflowStepsRequest)); // 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, "Customer Profiles"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "GetWorkflowSteps"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new GetWorkflowStepsResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Lists all of the integrations associated to a specific URI in the AWS account. *

* * @param listAccountIntegrationsRequest * @return Result of the ListAccountIntegrations operation returned by the service. * @throws BadRequestException * The input you provided is invalid. * @throws ResourceNotFoundException * The requested resource does not exist, or access was denied. * @throws AccessDeniedException * You do not have sufficient access to perform this action. * @throws ThrottlingException * You exceeded the maximum number of requests. * @throws InternalServerException * An internal service error occurred. * @sample AmazonCustomerProfiles.ListAccountIntegrations * @see AWS API Documentation */ @Override public ListAccountIntegrationsResult listAccountIntegrations(ListAccountIntegrationsRequest request) { request = beforeClientExecution(request); return executeListAccountIntegrations(request); } @SdkInternalApi final ListAccountIntegrationsResult executeListAccountIntegrations(ListAccountIntegrationsRequest listAccountIntegrationsRequest) { ExecutionContext executionContext = createExecutionContext(listAccountIntegrationsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ListAccountIntegrationsRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(listAccountIntegrationsRequest)); // 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, "Customer Profiles"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "ListAccountIntegrations"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new ListAccountIntegrationsResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Lists calculated attribute definitions for Customer Profiles *

* * @param listCalculatedAttributeDefinitionsRequest * @return Result of the ListCalculatedAttributeDefinitions operation returned by the service. * @throws BadRequestException * The input you provided is invalid. * @throws ResourceNotFoundException * The requested resource does not exist, or access was denied. * @throws AccessDeniedException * You do not have sufficient access to perform this action. * @throws ThrottlingException * You exceeded the maximum number of requests. * @throws InternalServerException * An internal service error occurred. * @sample AmazonCustomerProfiles.ListCalculatedAttributeDefinitions * @see AWS API Documentation */ @Override public ListCalculatedAttributeDefinitionsResult listCalculatedAttributeDefinitions(ListCalculatedAttributeDefinitionsRequest request) { request = beforeClientExecution(request); return executeListCalculatedAttributeDefinitions(request); } @SdkInternalApi final ListCalculatedAttributeDefinitionsResult executeListCalculatedAttributeDefinitions( ListCalculatedAttributeDefinitionsRequest listCalculatedAttributeDefinitionsRequest) { ExecutionContext executionContext = createExecutionContext(listCalculatedAttributeDefinitionsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ListCalculatedAttributeDefinitionsRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(listCalculatedAttributeDefinitionsRequest)); // 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, "Customer Profiles"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "ListCalculatedAttributeDefinitions"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new ListCalculatedAttributeDefinitionsResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Retrieve a list of calculated attributes for a customer profile. *

* * @param listCalculatedAttributesForProfileRequest * @return Result of the ListCalculatedAttributesForProfile operation returned by the service. * @throws BadRequestException * The input you provided is invalid. * @throws AccessDeniedException * You do not have sufficient access to perform this action. * @throws ResourceNotFoundException * The requested resource does not exist, or access was denied. * @throws ThrottlingException * You exceeded the maximum number of requests. * @throws InternalServerException * An internal service error occurred. * @sample AmazonCustomerProfiles.ListCalculatedAttributesForProfile * @see AWS API Documentation */ @Override public ListCalculatedAttributesForProfileResult listCalculatedAttributesForProfile(ListCalculatedAttributesForProfileRequest request) { request = beforeClientExecution(request); return executeListCalculatedAttributesForProfile(request); } @SdkInternalApi final ListCalculatedAttributesForProfileResult executeListCalculatedAttributesForProfile( ListCalculatedAttributesForProfileRequest listCalculatedAttributesForProfileRequest) { ExecutionContext executionContext = createExecutionContext(listCalculatedAttributesForProfileRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ListCalculatedAttributesForProfileRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(listCalculatedAttributesForProfileRequest)); // 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, "Customer Profiles"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "ListCalculatedAttributesForProfile"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new ListCalculatedAttributesForProfileResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

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

* * @param listDomainsRequest * @return Result of the ListDomains operation returned by the service. * @throws BadRequestException * The input you provided is invalid. * @throws ResourceNotFoundException * The requested resource does not exist, or access was denied. * @throws AccessDeniedException * You do not have sufficient access to perform this action. * @throws ThrottlingException * You exceeded the maximum number of requests. * @throws InternalServerException * An internal service error occurred. * @sample AmazonCustomerProfiles.ListDomains * @see AWS * API Documentation */ @Override public ListDomainsResult listDomains(ListDomainsRequest request) { request = beforeClientExecution(request); return executeListDomains(request); } @SdkInternalApi final ListDomainsResult executeListDomains(ListDomainsRequest listDomainsRequest) { ExecutionContext executionContext = createExecutionContext(listDomainsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ListDomainsRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(listDomainsRequest)); // 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, "Customer Profiles"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "ListDomains"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new ListDomainsResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Returns a list of all the event streams in a specific domain. *

* * @param listEventStreamsRequest * @return Result of the ListEventStreams operation returned by the service. * @throws BadRequestException * The input you provided is invalid. * @throws ResourceNotFoundException * The requested resource does not exist, or access was denied. * @throws AccessDeniedException * You do not have sufficient access to perform this action. * @throws ThrottlingException * You exceeded the maximum number of requests. * @throws InternalServerException * An internal service error occurred. * @sample AmazonCustomerProfiles.ListEventStreams * @see AWS API Documentation */ @Override public ListEventStreamsResult listEventStreams(ListEventStreamsRequest request) { request = beforeClientExecution(request); return executeListEventStreams(request); } @SdkInternalApi final ListEventStreamsResult executeListEventStreams(ListEventStreamsRequest listEventStreamsRequest) { ExecutionContext executionContext = createExecutionContext(listEventStreamsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ListEventStreamsRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(listEventStreamsRequest)); // 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, "Customer Profiles"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "ListEventStreams"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new ListEventStreamsResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Lists all of the Identity Resolution Jobs in your domain. The response sorts the list by * JobStartTime. *

* * @param listIdentityResolutionJobsRequest * @return Result of the ListIdentityResolutionJobs operation returned by the service. * @throws BadRequestException * The input you provided is invalid. * @throws ResourceNotFoundException * The requested resource does not exist, or access was denied. * @throws AccessDeniedException * You do not have sufficient access to perform this action. * @throws ThrottlingException * You exceeded the maximum number of requests. * @throws InternalServerException * An internal service error occurred. * @sample AmazonCustomerProfiles.ListIdentityResolutionJobs * @see AWS API Documentation */ @Override public ListIdentityResolutionJobsResult listIdentityResolutionJobs(ListIdentityResolutionJobsRequest request) { request = beforeClientExecution(request); return executeListIdentityResolutionJobs(request); } @SdkInternalApi final ListIdentityResolutionJobsResult executeListIdentityResolutionJobs(ListIdentityResolutionJobsRequest listIdentityResolutionJobsRequest) { ExecutionContext executionContext = createExecutionContext(listIdentityResolutionJobsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ListIdentityResolutionJobsRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(listIdentityResolutionJobsRequest)); // 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, "Customer Profiles"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "ListIdentityResolutionJobs"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new ListIdentityResolutionJobsResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Lists all of the integrations in your domain. *

* * @param listIntegrationsRequest * @return Result of the ListIntegrations operation returned by the service. * @throws BadRequestException * The input you provided is invalid. * @throws ResourceNotFoundException * The requested resource does not exist, or access was denied. * @throws AccessDeniedException * You do not have sufficient access to perform this action. * @throws ThrottlingException * You exceeded the maximum number of requests. * @throws InternalServerException * An internal service error occurred. * @sample AmazonCustomerProfiles.ListIntegrations * @see AWS API Documentation */ @Override public ListIntegrationsResult listIntegrations(ListIntegrationsRequest request) { request = beforeClientExecution(request); return executeListIntegrations(request); } @SdkInternalApi final ListIntegrationsResult executeListIntegrations(ListIntegrationsRequest listIntegrationsRequest) { ExecutionContext executionContext = createExecutionContext(listIntegrationsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ListIntegrationsRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(listIntegrationsRequest)); // 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, "Customer Profiles"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "ListIntegrations"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new ListIntegrationsResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Lists all of the template information for object types. *

* * @param listProfileObjectTypeTemplatesRequest * @return Result of the ListProfileObjectTypeTemplates operation returned by the service. * @throws BadRequestException * The input you provided is invalid. * @throws ResourceNotFoundException * The requested resource does not exist, or access was denied. * @throws AccessDeniedException * You do not have sufficient access to perform this action. * @throws ThrottlingException * You exceeded the maximum number of requests. * @throws InternalServerException * An internal service error occurred. * @sample AmazonCustomerProfiles.ListProfileObjectTypeTemplates * @see AWS API Documentation */ @Override public ListProfileObjectTypeTemplatesResult listProfileObjectTypeTemplates(ListProfileObjectTypeTemplatesRequest request) { request = beforeClientExecution(request); return executeListProfileObjectTypeTemplates(request); } @SdkInternalApi final ListProfileObjectTypeTemplatesResult executeListProfileObjectTypeTemplates(ListProfileObjectTypeTemplatesRequest listProfileObjectTypeTemplatesRequest) { ExecutionContext executionContext = createExecutionContext(listProfileObjectTypeTemplatesRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ListProfileObjectTypeTemplatesRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(listProfileObjectTypeTemplatesRequest)); // 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, "Customer Profiles"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "ListProfileObjectTypeTemplates"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new ListProfileObjectTypeTemplatesResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Lists all of the templates available within the service. *

* * @param listProfileObjectTypesRequest * @return Result of the ListProfileObjectTypes operation returned by the service. * @throws BadRequestException * The input you provided is invalid. * @throws ResourceNotFoundException * The requested resource does not exist, or access was denied. * @throws AccessDeniedException * You do not have sufficient access to perform this action. * @throws ThrottlingException * You exceeded the maximum number of requests. * @throws InternalServerException * An internal service error occurred. * @sample AmazonCustomerProfiles.ListProfileObjectTypes * @see AWS API Documentation */ @Override public ListProfileObjectTypesResult listProfileObjectTypes(ListProfileObjectTypesRequest request) { request = beforeClientExecution(request); return executeListProfileObjectTypes(request); } @SdkInternalApi final ListProfileObjectTypesResult executeListProfileObjectTypes(ListProfileObjectTypesRequest listProfileObjectTypesRequest) { ExecutionContext executionContext = createExecutionContext(listProfileObjectTypesRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ListProfileObjectTypesRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(listProfileObjectTypesRequest)); // 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, "Customer Profiles"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "ListProfileObjectTypes"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new ListProfileObjectTypesResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Returns a list of objects associated with a profile of a given ProfileObjectType. *

* * @param listProfileObjectsRequest * @return Result of the ListProfileObjects operation returned by the service. * @throws BadRequestException * The input you provided is invalid. * @throws AccessDeniedException * You do not have sufficient access to perform this action. * @throws ResourceNotFoundException * The requested resource does not exist, or access was denied. * @throws ThrottlingException * You exceeded the maximum number of requests. * @throws InternalServerException * An internal service error occurred. * @sample AmazonCustomerProfiles.ListProfileObjects * @see AWS API Documentation */ @Override public ListProfileObjectsResult listProfileObjects(ListProfileObjectsRequest request) { request = beforeClientExecution(request); return executeListProfileObjects(request); } @SdkInternalApi final ListProfileObjectsResult executeListProfileObjects(ListProfileObjectsRequest listProfileObjectsRequest) { ExecutionContext executionContext = createExecutionContext(listProfileObjectsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ListProfileObjectsRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(listProfileObjectsRequest)); // 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, "Customer Profiles"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "ListProfileObjects"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new ListProfileObjectsResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Returns a set of MatchIds that belong to the given domain. *

* * @param listRuleBasedMatchesRequest * @return Result of the ListRuleBasedMatches operation returned by the service. * @throws BadRequestException * The input you provided is invalid. * @throws AccessDeniedException * You do not have sufficient access to perform this action. * @throws ResourceNotFoundException * The requested resource does not exist, or access was denied. * @throws ThrottlingException * You exceeded the maximum number of requests. * @throws InternalServerException * An internal service error occurred. * @sample AmazonCustomerProfiles.ListRuleBasedMatches * @see AWS API Documentation */ @Override public ListRuleBasedMatchesResult listRuleBasedMatches(ListRuleBasedMatchesRequest request) { request = beforeClientExecution(request); return executeListRuleBasedMatches(request); } @SdkInternalApi final ListRuleBasedMatchesResult executeListRuleBasedMatches(ListRuleBasedMatchesRequest listRuleBasedMatchesRequest) { ExecutionContext executionContext = createExecutionContext(listRuleBasedMatchesRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ListRuleBasedMatchesRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(listRuleBasedMatchesRequest)); // 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, "Customer Profiles"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "ListRuleBasedMatches"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new ListRuleBasedMatchesResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Displays the tags associated with an Amazon Connect Customer Profiles resource. In Connect Customer Profiles, * domains, profile object types, and integrations can be tagged. *

* * @param listTagsForResourceRequest * @return Result of the ListTagsForResource operation returned by the service. * @throws InternalServerException * An internal service error occurred. * @throws BadRequestException * The input you provided is invalid. * @throws ResourceNotFoundException * The requested resource does not exist, or access was denied. * @sample AmazonCustomerProfiles.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, "Customer Profiles"); 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); } } /** *

* Query to list all workflows. *

* * @param listWorkflowsRequest * @return Result of the ListWorkflows operation returned by the service. * @throws BadRequestException * The input you provided is invalid. * @throws ResourceNotFoundException * The requested resource does not exist, or access was denied. * @throws AccessDeniedException * You do not have sufficient access to perform this action. * @throws ThrottlingException * You exceeded the maximum number of requests. * @throws InternalServerException * An internal service error occurred. * @sample AmazonCustomerProfiles.ListWorkflows * @see AWS API Documentation */ @Override public ListWorkflowsResult listWorkflows(ListWorkflowsRequest request) { request = beforeClientExecution(request); return executeListWorkflows(request); } @SdkInternalApi final ListWorkflowsResult executeListWorkflows(ListWorkflowsRequest listWorkflowsRequest) { ExecutionContext executionContext = createExecutionContext(listWorkflowsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new ListWorkflowsRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(listWorkflowsRequest)); // 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, "Customer Profiles"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "ListWorkflows"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new ListWorkflowsResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Runs an AWS Lambda job that does the following: *

*
    *
  1. *

    * All the profileKeys in the ProfileToBeMerged will be moved to the main profile. *

    *
  2. *
  3. *

    * All the objects in the ProfileToBeMerged will be moved to the main profile. *

    *
  4. *
  5. *

    * All the ProfileToBeMerged will be deleted at the end. *

    *
  6. *
  7. *

    * All the profileKeys in the ProfileIdsToBeMerged will be moved to the main profile. *

    *
  8. *
  9. *

    * Standard fields are merged as follows: *

    *
      *
    1. *

      * Fields are always "union"-ed if there are no conflicts in standard fields or attributeKeys. *

      *
    2. *
    3. *

      * When there are conflicting fields: *

      *
        *
      1. *

        * If no SourceProfileIds entry is specified, the main Profile value is always taken. *

        *
      2. *
      3. *

        * If a SourceProfileIds entry is specified, the specified profileId is always taken, even if it is a * NULL value. *

        *
      4. *
      *
    4. *
    *
  10. *
*

* You can use MergeProfiles together with GetMatches, which * returns potentially matching profiles, or use it with the results of another matching system. After profiles have * been merged, they cannot be separated (unmerged). *

* * @param mergeProfilesRequest * @return Result of the MergeProfiles operation returned by the service. * @throws BadRequestException * The input you provided is invalid. * @throws ResourceNotFoundException * The requested resource does not exist, or access was denied. * @throws ThrottlingException * You exceeded the maximum number of requests. * @throws InternalServerException * An internal service error occurred. * @sample AmazonCustomerProfiles.MergeProfiles * @see AWS API Documentation */ @Override public MergeProfilesResult mergeProfiles(MergeProfilesRequest request) { request = beforeClientExecution(request); return executeMergeProfiles(request); } @SdkInternalApi final MergeProfilesResult executeMergeProfiles(MergeProfilesRequest mergeProfilesRequest) { ExecutionContext executionContext = createExecutionContext(mergeProfilesRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new MergeProfilesRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(mergeProfilesRequest)); // 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, "Customer Profiles"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "MergeProfiles"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new MergeProfilesResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Adds an integration between the service and a third-party service, which includes Amazon AppFlow and Amazon * Connect. *

*

* An integration can belong to only one domain. *

*

* To add or remove tags on an existing Integration, see TagResource / * UntagResource. *

* * @param putIntegrationRequest * @return Result of the PutIntegration operation returned by the service. * @throws BadRequestException * The input you provided is invalid. * @throws ResourceNotFoundException * The requested resource does not exist, or access was denied. * @throws AccessDeniedException * You do not have sufficient access to perform this action. * @throws ThrottlingException * You exceeded the maximum number of requests. * @throws InternalServerException * An internal service error occurred. * @sample AmazonCustomerProfiles.PutIntegration * @see AWS API Documentation */ @Override public PutIntegrationResult putIntegration(PutIntegrationRequest request) { request = beforeClientExecution(request); return executePutIntegration(request); } @SdkInternalApi final PutIntegrationResult executePutIntegration(PutIntegrationRequest putIntegrationRequest) { ExecutionContext executionContext = createExecutionContext(putIntegrationRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new PutIntegrationRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(putIntegrationRequest)); // 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, "Customer Profiles"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "PutIntegration"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new PutIntegrationResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Adds additional objects to customer profiles of a given ObjectType. *

*

* When adding a specific profile object, like a Contact Record, an inferred profile can get created if it is not * mapped to an existing profile. The resulting profile will only have a phone number populated in the standard * ProfileObject. Any additional Contact Records with the same phone number will be mapped to the same inferred * profile. *

*

* When a ProfileObject is created and if a ProfileObjectType already exists for the ProfileObject, it will provide * data to a standard profile depending on the ProfileObjectType definition. *

*

* PutProfileObject needs an ObjectType, which can be created using PutProfileObjectType. *

* * @param putProfileObjectRequest * @return Result of the PutProfileObject operation returned by the service. * @throws BadRequestException * The input you provided is invalid. * @throws AccessDeniedException * You do not have sufficient access to perform this action. * @throws ResourceNotFoundException * The requested resource does not exist, or access was denied. * @throws ThrottlingException * You exceeded the maximum number of requests. * @throws InternalServerException * An internal service error occurred. * @sample AmazonCustomerProfiles.PutProfileObject * @see AWS API Documentation */ @Override public PutProfileObjectResult putProfileObject(PutProfileObjectRequest request) { request = beforeClientExecution(request); return executePutProfileObject(request); } @SdkInternalApi final PutProfileObjectResult executePutProfileObject(PutProfileObjectRequest putProfileObjectRequest) { ExecutionContext executionContext = createExecutionContext(putProfileObjectRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new PutProfileObjectRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(putProfileObjectRequest)); // 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, "Customer Profiles"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "PutProfileObject"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new PutProfileObjectResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Defines a ProfileObjectType. *

*

* To add or remove tags on an existing ObjectType, see TagResource/UntagResource. *

* * @param putProfileObjectTypeRequest * @return Result of the PutProfileObjectType operation returned by the service. * @throws BadRequestException * The input you provided is invalid. * @throws ResourceNotFoundException * The requested resource does not exist, or access was denied. * @throws AccessDeniedException * You do not have sufficient access to perform this action. * @throws ThrottlingException * You exceeded the maximum number of requests. * @throws InternalServerException * An internal service error occurred. * @sample AmazonCustomerProfiles.PutProfileObjectType * @see AWS API Documentation */ @Override public PutProfileObjectTypeResult putProfileObjectType(PutProfileObjectTypeRequest request) { request = beforeClientExecution(request); return executePutProfileObjectType(request); } @SdkInternalApi final PutProfileObjectTypeResult executePutProfileObjectType(PutProfileObjectTypeRequest putProfileObjectTypeRequest) { ExecutionContext executionContext = createExecutionContext(putProfileObjectTypeRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new PutProfileObjectTypeRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(putProfileObjectTypeRequest)); // 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, "Customer Profiles"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "PutProfileObjectType"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new PutProfileObjectTypeResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Searches for profiles within a specific domain using one or more predefined search keys (e.g., _fullName, _phone, * _email, _account, etc.) and/or custom-defined search keys. A search key is a data type pair that consists of a * KeyName and Values list. *

*

* This operation supports searching for profiles with a minimum of 1 key-value(s) pair and up to 5 key-value(s) * pairs using either AND or OR logic. *

* * @param searchProfilesRequest * @return Result of the SearchProfiles operation returned by the service. * @throws BadRequestException * The input you provided is invalid. * @throws AccessDeniedException * You do not have sufficient access to perform this action. * @throws ResourceNotFoundException * The requested resource does not exist, or access was denied. * @throws ThrottlingException * You exceeded the maximum number of requests. * @throws InternalServerException * An internal service error occurred. * @sample AmazonCustomerProfiles.SearchProfiles * @see AWS API Documentation */ @Override public SearchProfilesResult searchProfiles(SearchProfilesRequest request) { request = beforeClientExecution(request); return executeSearchProfiles(request); } @SdkInternalApi final SearchProfilesResult executeSearchProfiles(SearchProfilesRequest searchProfilesRequest) { ExecutionContext executionContext = createExecutionContext(searchProfilesRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new SearchProfilesRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(searchProfilesRequest)); // 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, "Customer Profiles"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "SearchProfiles"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new SearchProfilesResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Assigns one or more tags (key-value pairs) to the specified Amazon Connect Customer Profiles 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 Connect Customer Profiles, * domains, profile object types, and integrations 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. *

*

* You can associate as many as 50 tags with a resource. *

* * @param tagResourceRequest * @return Result of the TagResource operation returned by the service. * @throws InternalServerException * An internal service error occurred. * @throws BadRequestException * The input you provided is invalid. * @throws ResourceNotFoundException * The requested resource does not exist, or access was denied. * @sample AmazonCustomerProfiles.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, "Customer Profiles"); 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 Amazon Connect Customer Profiles resource. In Connect Customer * Profiles, domains, profile object types, and integrations can be tagged. *

* * @param untagResourceRequest * @return Result of the UntagResource operation returned by the service. * @throws InternalServerException * An internal service error occurred. * @throws BadRequestException * The input you provided is invalid. * @throws ResourceNotFoundException * The requested resource does not exist, or access was denied. * @sample AmazonCustomerProfiles.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, "Customer Profiles"); 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 calculated attribute definition. When updating the Conditions, note that increasing the date * range of a calculated attribute will not trigger inclusion of historical data greater than the current date * range. *

* * @param updateCalculatedAttributeDefinitionRequest * @return Result of the UpdateCalculatedAttributeDefinition operation returned by the service. * @throws BadRequestException * The input you provided is invalid. * @throws ResourceNotFoundException * The requested resource does not exist, or access was denied. * @throws AccessDeniedException * You do not have sufficient access to perform this action. * @throws ThrottlingException * You exceeded the maximum number of requests. * @throws InternalServerException * An internal service error occurred. * @sample AmazonCustomerProfiles.UpdateCalculatedAttributeDefinition * @see AWS API Documentation */ @Override public UpdateCalculatedAttributeDefinitionResult updateCalculatedAttributeDefinition(UpdateCalculatedAttributeDefinitionRequest request) { request = beforeClientExecution(request); return executeUpdateCalculatedAttributeDefinition(request); } @SdkInternalApi final UpdateCalculatedAttributeDefinitionResult executeUpdateCalculatedAttributeDefinition( UpdateCalculatedAttributeDefinitionRequest updateCalculatedAttributeDefinitionRequest) { ExecutionContext executionContext = createExecutionContext(updateCalculatedAttributeDefinitionRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new UpdateCalculatedAttributeDefinitionRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(updateCalculatedAttributeDefinitionRequest)); // 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, "Customer Profiles"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "UpdateCalculatedAttributeDefinition"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new UpdateCalculatedAttributeDefinitionResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Updates the properties of a domain, including creating or selecting a dead letter queue or an encryption key. *

*

* After a domain is created, the name can’t be changed. *

*

* Use this API or CreateDomain to * enable identity * resolution: set Matching to true. *

*

* To prevent cross-service impersonation when you call this API, see Cross-service confused deputy prevention for sample policies that you should apply. *

*

* To add or remove tags on an existing Domain, see TagResource/UntagResource. *

* * @param updateDomainRequest * @return Result of the UpdateDomain operation returned by the service. * @throws BadRequestException * The input you provided is invalid. * @throws ResourceNotFoundException * The requested resource does not exist, or access was denied. * @throws AccessDeniedException * You do not have sufficient access to perform this action. * @throws ThrottlingException * You exceeded the maximum number of requests. * @throws InternalServerException * An internal service error occurred. * @sample AmazonCustomerProfiles.UpdateDomain * @see AWS * API Documentation */ @Override public UpdateDomainResult updateDomain(UpdateDomainRequest request) { request = beforeClientExecution(request); return executeUpdateDomain(request); } @SdkInternalApi final UpdateDomainResult executeUpdateDomain(UpdateDomainRequest updateDomainRequest) { ExecutionContext executionContext = createExecutionContext(updateDomainRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new UpdateDomainRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(updateDomainRequest)); // 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, "Customer Profiles"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "UpdateDomain"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new UpdateDomainResultJsonUnmarshaller()); response = invoke(request, responseHandler, executionContext); return response.getAwsResponse(); } finally { endClientExecution(awsRequestMetrics, request, response); } } /** *

* Updates the properties of a profile. The ProfileId is required for updating a customer profile. *

*

* When calling the UpdateProfile API, specifying an empty string value means that any existing value will be * removed. Not specifying a string value means that any value already there will be kept. *

* * @param updateProfileRequest * @return Result of the UpdateProfile operation returned by the service. * @throws BadRequestException * The input you provided is invalid. * @throws AccessDeniedException * You do not have sufficient access to perform this action. * @throws ResourceNotFoundException * The requested resource does not exist, or access was denied. * @throws ThrottlingException * You exceeded the maximum number of requests. * @throws InternalServerException * An internal service error occurred. * @sample AmazonCustomerProfiles.UpdateProfile * @see AWS API Documentation */ @Override public UpdateProfileResult updateProfile(UpdateProfileRequest request) { request = beforeClientExecution(request); return executeUpdateProfile(request); } @SdkInternalApi final UpdateProfileResult executeUpdateProfile(UpdateProfileRequest updateProfileRequest) { ExecutionContext executionContext = createExecutionContext(updateProfileRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new UpdateProfileRequestProtocolMarshaller(protocolFactory).marshall(super.beforeMarshalling(updateProfileRequest)); // 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, "Customer Profiles"); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "UpdateProfile"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new UpdateProfileResultJsonUnmarshaller()); 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(); } }