/** * 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