/**
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0.
*/
#pragma once
#include
#include
#include
#include
#include
#include
namespace Aws
{
namespace EntityResolution
{
/**
* Welcome to the AWS Entity Resolution API Reference.
AWS Entity
* Resolution is an AWS service that provides pre-configured entity resolution
* capabilities that enable developers and analysts at advertising and marketing
* companies to build an accurate and complete view of their consumers.
* With AWS Entity Resolution, you have the ability to match source records
* containing consumer identifiers, such as name, email address, and phone number.
* This holds true even when these records have incomplete or conflicting
* identifiers. For example, AWS Entity Resolution can effectively match a source
* record from a customer relationship management (CRM) system, which includes
* account information like first name, last name, postal address, phone number,
* and email address, with a source record from a marketing system containing
* campaign information, such as username and email address.
To learn more
* about AWS Entity Resolution concepts, procedures, and best practices, see the AWS
* Entity Resolution User Guide.
*/
class AWS_ENTITYRESOLUTION_API EntityResolutionClient : public Aws::Client::AWSJsonClient, public Aws::Client::ClientWithAsyncTemplateMethods
{
public:
typedef Aws::Client::AWSJsonClient BASECLASS;
static const char* SERVICE_NAME;
static const char* ALLOCATION_TAG;
typedef EntityResolutionClientConfiguration ClientConfigurationType;
typedef EntityResolutionEndpointProvider EndpointProviderType;
/**
* Initializes client to use DefaultCredentialProviderChain, with default http client factory, and optional client config. If client config
* is not specified, it will be initialized to default values.
*/
EntityResolutionClient(const Aws::EntityResolution::EntityResolutionClientConfiguration& clientConfiguration = Aws::EntityResolution::EntityResolutionClientConfiguration(),
std::shared_ptr endpointProvider = Aws::MakeShared(ALLOCATION_TAG));
/**
* Initializes client to use SimpleAWSCredentialsProvider, with default http client factory, and optional client config. If client config
* is not specified, it will be initialized to default values.
*/
EntityResolutionClient(const Aws::Auth::AWSCredentials& credentials,
std::shared_ptr endpointProvider = Aws::MakeShared(ALLOCATION_TAG),
const Aws::EntityResolution::EntityResolutionClientConfiguration& clientConfiguration = Aws::EntityResolution::EntityResolutionClientConfiguration());
/**
* Initializes client to use specified credentials provider with specified client config. If http client factory is not supplied,
* the default http client factory will be used
*/
EntityResolutionClient(const std::shared_ptr& credentialsProvider,
std::shared_ptr endpointProvider = Aws::MakeShared(ALLOCATION_TAG),
const Aws::EntityResolution::EntityResolutionClientConfiguration& clientConfiguration = Aws::EntityResolution::EntityResolutionClientConfiguration());
/* Legacy constructors due deprecation */
/**
* Initializes client to use DefaultCredentialProviderChain, with default http client factory, and optional client config. If client config
* is not specified, it will be initialized to default values.
*/
EntityResolutionClient(const Aws::Client::ClientConfiguration& clientConfiguration);
/**
* Initializes client to use SimpleAWSCredentialsProvider, with default http client factory, and optional client config. If client config
* is not specified, it will be initialized to default values.
*/
EntityResolutionClient(const Aws::Auth::AWSCredentials& credentials,
const Aws::Client::ClientConfiguration& clientConfiguration);
/**
* Initializes client to use specified credentials provider with specified client config. If http client factory is not supplied,
* the default http client factory will be used
*/
EntityResolutionClient(const std::shared_ptr& credentialsProvider,
const Aws::Client::ClientConfiguration& clientConfiguration);
/* End of legacy constructors due deprecation */
virtual ~EntityResolutionClient();
/**
* Creates a MatchingWorkflow
object which stores the configuration
* of the data processing job to be run. It is important to note that there should
* not be a pre-existing MatchingWorkflow
with the same name. To
* modify an existing workflow, utilize the UpdateMatchingWorkflow
* API.
See Also:
AWS
* API Reference
*/
virtual Model::CreateMatchingWorkflowOutcome CreateMatchingWorkflow(const Model::CreateMatchingWorkflowRequest& request) const;
/**
* A Callable wrapper for CreateMatchingWorkflow that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::CreateMatchingWorkflowOutcomeCallable CreateMatchingWorkflowCallable(const CreateMatchingWorkflowRequestT& request) const
{
return SubmitCallable(&EntityResolutionClient::CreateMatchingWorkflow, request);
}
/**
* An Async wrapper for CreateMatchingWorkflow that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void CreateMatchingWorkflowAsync(const CreateMatchingWorkflowRequestT& request, const CreateMatchingWorkflowResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&EntityResolutionClient::CreateMatchingWorkflow, request, handler, context);
}
/**
* Creates a schema mapping, which defines the schema of the input customer
* records table. The SchemaMapping
also provides Entity Resolution
* with some metadata about the table, such as the attribute types of the columns
* and which columns to match on.
See Also:
AWS
* API Reference
*/
virtual Model::CreateSchemaMappingOutcome CreateSchemaMapping(const Model::CreateSchemaMappingRequest& request) const;
/**
* A Callable wrapper for CreateSchemaMapping that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::CreateSchemaMappingOutcomeCallable CreateSchemaMappingCallable(const CreateSchemaMappingRequestT& request) const
{
return SubmitCallable(&EntityResolutionClient::CreateSchemaMapping, request);
}
/**
* An Async wrapper for CreateSchemaMapping that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void CreateSchemaMappingAsync(const CreateSchemaMappingRequestT& request, const CreateSchemaMappingResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&EntityResolutionClient::CreateSchemaMapping, request, handler, context);
}
/**
* Deletes the MatchingWorkflow
with a given name. This operation
* will succeed even if a workflow with the given name does not
* exist.
See Also:
AWS
* API Reference
*/
virtual Model::DeleteMatchingWorkflowOutcome DeleteMatchingWorkflow(const Model::DeleteMatchingWorkflowRequest& request) const;
/**
* A Callable wrapper for DeleteMatchingWorkflow that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::DeleteMatchingWorkflowOutcomeCallable DeleteMatchingWorkflowCallable(const DeleteMatchingWorkflowRequestT& request) const
{
return SubmitCallable(&EntityResolutionClient::DeleteMatchingWorkflow, request);
}
/**
* An Async wrapper for DeleteMatchingWorkflow that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void DeleteMatchingWorkflowAsync(const DeleteMatchingWorkflowRequestT& request, const DeleteMatchingWorkflowResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&EntityResolutionClient::DeleteMatchingWorkflow, request, handler, context);
}
/**
* Deletes the SchemaMapping
with a given name. This operation will
* succeed even if a schema with the given name does not exist. This operation will
* fail if there is a DataIntegrationWorkflow
object that references
* the SchemaMapping
in the workflow's
* InputSourceConfig
.
See Also:
AWS
* API Reference
*/
virtual Model::DeleteSchemaMappingOutcome DeleteSchemaMapping(const Model::DeleteSchemaMappingRequest& request) const;
/**
* A Callable wrapper for DeleteSchemaMapping that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::DeleteSchemaMappingOutcomeCallable DeleteSchemaMappingCallable(const DeleteSchemaMappingRequestT& request) const
{
return SubmitCallable(&EntityResolutionClient::DeleteSchemaMapping, request);
}
/**
* An Async wrapper for DeleteSchemaMapping that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void DeleteSchemaMappingAsync(const DeleteSchemaMappingRequestT& request, const DeleteSchemaMappingResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&EntityResolutionClient::DeleteSchemaMapping, request, handler, context);
}
/**
* Returns the corresponding Match ID of a customer record if the record has
* been processed.
See Also:
AWS
* API Reference
*/
virtual Model::GetMatchIdOutcome GetMatchId(const Model::GetMatchIdRequest& request) const;
/**
* A Callable wrapper for GetMatchId that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::GetMatchIdOutcomeCallable GetMatchIdCallable(const GetMatchIdRequestT& request) const
{
return SubmitCallable(&EntityResolutionClient::GetMatchId, request);
}
/**
* An Async wrapper for GetMatchId that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void GetMatchIdAsync(const GetMatchIdRequestT& request, const GetMatchIdResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&EntityResolutionClient::GetMatchId, request, handler, context);
}
/**
* Gets the status, metrics, and errors (if there are any) that are associated
* with a job.
See Also:
AWS
* API Reference
*/
virtual Model::GetMatchingJobOutcome GetMatchingJob(const Model::GetMatchingJobRequest& request) const;
/**
* A Callable wrapper for GetMatchingJob that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::GetMatchingJobOutcomeCallable GetMatchingJobCallable(const GetMatchingJobRequestT& request) const
{
return SubmitCallable(&EntityResolutionClient::GetMatchingJob, request);
}
/**
* An Async wrapper for GetMatchingJob that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void GetMatchingJobAsync(const GetMatchingJobRequestT& request, const GetMatchingJobResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&EntityResolutionClient::GetMatchingJob, request, handler, context);
}
/**
* Returns the MatchingWorkflow
with a given name, if it
* exists.
See Also:
AWS
* API Reference
*/
virtual Model::GetMatchingWorkflowOutcome GetMatchingWorkflow(const Model::GetMatchingWorkflowRequest& request) const;
/**
* A Callable wrapper for GetMatchingWorkflow that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::GetMatchingWorkflowOutcomeCallable GetMatchingWorkflowCallable(const GetMatchingWorkflowRequestT& request) const
{
return SubmitCallable(&EntityResolutionClient::GetMatchingWorkflow, request);
}
/**
* An Async wrapper for GetMatchingWorkflow that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void GetMatchingWorkflowAsync(const GetMatchingWorkflowRequestT& request, const GetMatchingWorkflowResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&EntityResolutionClient::GetMatchingWorkflow, request, handler, context);
}
/**
* Returns the SchemaMapping of a given name.
See Also:
AWS
* API Reference
*/
virtual Model::GetSchemaMappingOutcome GetSchemaMapping(const Model::GetSchemaMappingRequest& request) const;
/**
* A Callable wrapper for GetSchemaMapping that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::GetSchemaMappingOutcomeCallable GetSchemaMappingCallable(const GetSchemaMappingRequestT& request) const
{
return SubmitCallable(&EntityResolutionClient::GetSchemaMapping, request);
}
/**
* An Async wrapper for GetSchemaMapping that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void GetSchemaMappingAsync(const GetSchemaMappingRequestT& request, const GetSchemaMappingResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&EntityResolutionClient::GetSchemaMapping, request, handler, context);
}
/**
* Lists all jobs for a given workflow.
See Also:
AWS
* API Reference
*/
virtual Model::ListMatchingJobsOutcome ListMatchingJobs(const Model::ListMatchingJobsRequest& request) const;
/**
* A Callable wrapper for ListMatchingJobs that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::ListMatchingJobsOutcomeCallable ListMatchingJobsCallable(const ListMatchingJobsRequestT& request) const
{
return SubmitCallable(&EntityResolutionClient::ListMatchingJobs, request);
}
/**
* An Async wrapper for ListMatchingJobs that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void ListMatchingJobsAsync(const ListMatchingJobsRequestT& request, const ListMatchingJobsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&EntityResolutionClient::ListMatchingJobs, request, handler, context);
}
/**
* Returns a list of all the MatchingWorkflows
that have been
* created for an AWS account.
See Also:
AWS
* API Reference
*/
virtual Model::ListMatchingWorkflowsOutcome ListMatchingWorkflows(const Model::ListMatchingWorkflowsRequest& request) const;
/**
* A Callable wrapper for ListMatchingWorkflows that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::ListMatchingWorkflowsOutcomeCallable ListMatchingWorkflowsCallable(const ListMatchingWorkflowsRequestT& request) const
{
return SubmitCallable(&EntityResolutionClient::ListMatchingWorkflows, request);
}
/**
* An Async wrapper for ListMatchingWorkflows that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void ListMatchingWorkflowsAsync(const ListMatchingWorkflowsRequestT& request, const ListMatchingWorkflowsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&EntityResolutionClient::ListMatchingWorkflows, request, handler, context);
}
/**
* Returns a list of all the SchemaMappings
that have been created
* for an AWS account.
See Also:
AWS
* API Reference
*/
virtual Model::ListSchemaMappingsOutcome ListSchemaMappings(const Model::ListSchemaMappingsRequest& request) const;
/**
* A Callable wrapper for ListSchemaMappings that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::ListSchemaMappingsOutcomeCallable ListSchemaMappingsCallable(const ListSchemaMappingsRequestT& request) const
{
return SubmitCallable(&EntityResolutionClient::ListSchemaMappings, request);
}
/**
* An Async wrapper for ListSchemaMappings that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void ListSchemaMappingsAsync(const ListSchemaMappingsRequestT& request, const ListSchemaMappingsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&EntityResolutionClient::ListSchemaMappings, request, handler, context);
}
/**
* Displays the tags associated with an AWS Entity Resolution resource. In
* Entity Resolution, SchemaMapping
, and MatchingWorkflow
* can be tagged.
See Also:
AWS
* API Reference
*/
virtual Model::ListTagsForResourceOutcome ListTagsForResource(const Model::ListTagsForResourceRequest& request) const;
/**
* A Callable wrapper for ListTagsForResource that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::ListTagsForResourceOutcomeCallable ListTagsForResourceCallable(const ListTagsForResourceRequestT& request) const
{
return SubmitCallable(&EntityResolutionClient::ListTagsForResource, request);
}
/**
* An Async wrapper for ListTagsForResource that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void ListTagsForResourceAsync(const ListTagsForResourceRequestT& request, const ListTagsForResourceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&EntityResolutionClient::ListTagsForResource, request, handler, context);
}
/**
* Starts the MatchingJob
of a workflow. The workflow must have
* previously been created using the CreateMatchingWorkflow
* endpoint.
See Also:
AWS
* API Reference
*/
virtual Model::StartMatchingJobOutcome StartMatchingJob(const Model::StartMatchingJobRequest& request) const;
/**
* A Callable wrapper for StartMatchingJob that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::StartMatchingJobOutcomeCallable StartMatchingJobCallable(const StartMatchingJobRequestT& request) const
{
return SubmitCallable(&EntityResolutionClient::StartMatchingJob, request);
}
/**
* An Async wrapper for StartMatchingJob that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void StartMatchingJobAsync(const StartMatchingJobRequestT& request, const StartMatchingJobResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&EntityResolutionClient::StartMatchingJob, request, handler, context);
}
/**
* Assigns one or more tags (key-value pairs) to the specified AWS Entity
* Resolution resource. Tags can help you organize and categorize your resources.
* You can also use them to scope user permissions by granting a user permission to
* access or change only resources with certain tag values. In Entity Resolution,
* SchemaMapping
, and MatchingWorkflow
can be tagged.
* Tags don't have any semantic meaning to AWS and are interpreted strictly as
* strings of characters. You can use the TagResource
action with a
* resource that already has tags. If you specify a new tag key, this tag is
* appended to the list of tags associated with the resource. If you specify a tag
* key that is already associated with the resource, the new tag value that you
* specify replaces the previous value for that tag.
See Also:
AWS
* API Reference
*/
virtual Model::TagResourceOutcome TagResource(const Model::TagResourceRequest& request) const;
/**
* A Callable wrapper for TagResource that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::TagResourceOutcomeCallable TagResourceCallable(const TagResourceRequestT& request) const
{
return SubmitCallable(&EntityResolutionClient::TagResource, request);
}
/**
* An Async wrapper for TagResource that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void TagResourceAsync(const TagResourceRequestT& request, const TagResourceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&EntityResolutionClient::TagResource, request, handler, context);
}
/**
* Removes one or more tags from the specified AWS Entity Resolution resource.
* In Entity Resolution, SchemaMapping
, and
* MatchingWorkflow
can be tagged.
See Also:
AWS
* API Reference
*/
virtual Model::UntagResourceOutcome UntagResource(const Model::UntagResourceRequest& request) const;
/**
* A Callable wrapper for UntagResource that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::UntagResourceOutcomeCallable UntagResourceCallable(const UntagResourceRequestT& request) const
{
return SubmitCallable(&EntityResolutionClient::UntagResource, request);
}
/**
* An Async wrapper for UntagResource that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void UntagResourceAsync(const UntagResourceRequestT& request, const UntagResourceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&EntityResolutionClient::UntagResource, request, handler, context);
}
/**
* Updates an existing MatchingWorkflow
. This method is identical
* to CreateMatchingWorkflow
, except it uses an HTTP PUT
* request instead of a POST
request, and the
* MatchingWorkflow
must already exist for the method to
* succeed.
See Also:
AWS
* API Reference
*/
virtual Model::UpdateMatchingWorkflowOutcome UpdateMatchingWorkflow(const Model::UpdateMatchingWorkflowRequest& request) const;
/**
* A Callable wrapper for UpdateMatchingWorkflow that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::UpdateMatchingWorkflowOutcomeCallable UpdateMatchingWorkflowCallable(const UpdateMatchingWorkflowRequestT& request) const
{
return SubmitCallable(&EntityResolutionClient::UpdateMatchingWorkflow, request);
}
/**
* An Async wrapper for UpdateMatchingWorkflow that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void UpdateMatchingWorkflowAsync(const UpdateMatchingWorkflowRequestT& request, const UpdateMatchingWorkflowResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&EntityResolutionClient::UpdateMatchingWorkflow, request, handler, context);
}
void OverrideEndpoint(const Aws::String& endpoint);
std::shared_ptr& accessEndpointProvider();
private:
friend class Aws::Client::ClientWithAsyncTemplateMethods;
void init(const EntityResolutionClientConfiguration& clientConfiguration);
EntityResolutionClientConfiguration m_clientConfiguration;
std::shared_ptr m_executor;
std::shared_ptr m_endpointProvider;
};
} // namespace EntityResolution
} // namespace Aws