com.amazonaws.services.customerprofiles.AmazonCustomerProfilesClient Maven / Gradle / Ivy
Show all versions of aws-java-sdk-customerprofiles Show documentation
/*
* 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:
*
*
* -
*
* All the profileKeys in the ProfileToBeMerged
will be moved to the main profile.
*
*
* -
*
* All the objects in the ProfileToBeMerged
will be moved to the main profile.
*
*
* -
*
* All the ProfileToBeMerged
will be deleted at the end.
*
*
* -
*
* All the profileKeys in the ProfileIdsToBeMerged
will be moved to the main profile.
*
*
* -
*
* Standard fields are merged as follows:
*
*
* -
*
* Fields are always "union"-ed if there are no conflicts in standard fields or attributeKeys.
*
*
* -
*
* When there are conflicting fields:
*
*
* -
*
* If no SourceProfileIds
entry is specified, the main Profile value is always taken.
*
*
* -
*
* If a SourceProfileIds
entry is specified, the specified profileId is always taken, even if it is a
* NULL value.
*
*
*
*
*
*
*
*
* 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();
}
}