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

com.amazonaws.services.customerprofiles.AmazonCustomerProfilesClient Maven / Gradle / Ivy

Go to download

The AWS Java SDK for Amazon Connect Customer Profiles module holds the client classes that are used for communicating with Amazon Connect Customer Profiles Service

There is a newer version: 1.12.780
Show newest version
/*
 * Copyright 2019-2024 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. *

*

* For more information about the Amazon Connect Customer Profiles feature, see Use Customer Profiles in the * Amazon Connect Administrator's 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. *

* *

* It is not possible to associate a Customer Profiles domain with an Amazon Connect Instance directly from the API. * If you would like to create a domain and associate a Customer Profiles domain, use the Amazon Connect admin * website. For more information, see Enable Customer Profiles. *

*

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

*
* * @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); } } /** *

* The process of detecting profile object type mapping by using given objects. *

* * @param detectProfileObjectTypeRequest * @return Result of the DetectProfileObjectType 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.DetectProfileObjectType * @see AWS API Documentation */ @Override public DetectProfileObjectTypeResult detectProfileObjectType(DetectProfileObjectTypeRequest request) { request = beforeClientExecution(request); return executeDetectProfileObjectType(request); } @SdkInternalApi final DetectProfileObjectTypeResult executeDetectProfileObjectType(DetectProfileObjectTypeRequest detectProfileObjectTypeRequest) { ExecutionContext executionContext = createExecutionContext(detectProfileObjectTypeRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request request = null; Response response = null; try { awsRequestMetrics.startEvent(Field.RequestMarshallTime); try { request = new DetectProfileObjectTypeRequestProtocolMarshaller(protocolFactory).marshall(super .beforeMarshalling(detectProfileObjectTypeRequest)); // 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, "DetectProfileObjectType"); request.addHandlerContext(HandlerContextKey.ADVANCED_CONFIG, advancedConfig); } finally { awsRequestMetrics.endEvent(Field.RequestMarshallTime); } HttpResponseHandler> responseHandler = protocolFactory.createResponseHandler( new JsonOperationMetadata().withPayloadJson(true).withHasStreamingSuccessResponse(false), new DetectProfileObjectTypeResultJsonUnmarshaller()); 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 [email protected] and [email protected], 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(); } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy