/*
 * Copyright 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.
 */
/*
 * Do not modify this file. This file is generated from the entityresolution-2018-05-10.normal.json service model.
 */
using System;
using System.Threading;
using System.Threading.Tasks;
using System.Collections.Generic;
using Amazon.Runtime;
using Amazon.EntityResolution.Model;
namespace Amazon.EntityResolution
{
    /// 
    /// Interface for accessing 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.
    /// 
    /// 
    public partial interface IAmazonEntityResolution : IAmazonService, IDisposable
    {
        /// 
        /// Paginators for the service
        /// 
        IEntityResolutionPaginatorFactory Paginators { get; }
        
        #region  CreateMatchingWorkflow
        /// 
        /// 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.
        /// 
        /// Container for the necessary parameters to execute the CreateMatchingWorkflow service method.
        /// 
        /// The response from the CreateMatchingWorkflow service method, as returned by EntityResolution.
        /// 
        /// You do not have sufficient access to perform this action. HTTP Status Code:
        /// 403
        /// 
        /// 
        /// The request could not be processed because of conflict in the current state of the
        /// resource. Example: Workflow already exists, Schema already exists, Workflow is currently
        /// running, etc. HTTP Status Code: 400
        /// 
        /// 
        /// The request was rejected because it attempted to create resources beyond the current
        /// AWS Entity Resolution account limits. The error message describes the limit exceeded.
        /// HTTP Status Code: 402
        /// 
        /// 
        /// This exception occurs when there is an internal failure in the AWS Entity Resolution
        /// service. HTTP Status Code: 500
        /// 
        /// 
        /// The request was denied due to request throttling. HTTP Status Code: 429
        /// 
        /// 
        /// The input fails to satisfy the constraints specified by AWS Entity Resolution. HTTP
        /// Status Code: 400
        /// 
        /// REST API Reference for CreateMatchingWorkflow Operation
        CreateMatchingWorkflowResponse CreateMatchingWorkflow(CreateMatchingWorkflowRequest request);
        /// 
        /// 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.
        /// 
        /// Container for the necessary parameters to execute the CreateMatchingWorkflow service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the CreateMatchingWorkflow service method, as returned by EntityResolution.
        /// 
        /// You do not have sufficient access to perform this action. HTTP Status Code:
        /// 403
        /// 
        /// 
        /// The request could not be processed because of conflict in the current state of the
        /// resource. Example: Workflow already exists, Schema already exists, Workflow is currently
        /// running, etc. HTTP Status Code: 400
        /// 
        /// 
        /// The request was rejected because it attempted to create resources beyond the current
        /// AWS Entity Resolution account limits. The error message describes the limit exceeded.
        /// HTTP Status Code: 402
        /// 
        /// 
        /// This exception occurs when there is an internal failure in the AWS Entity Resolution
        /// service. HTTP Status Code: 500
        /// 
        /// 
        /// The request was denied due to request throttling. HTTP Status Code: 429
        /// 
        /// 
        /// The input fails to satisfy the constraints specified by AWS Entity Resolution. HTTP
        /// Status Code: 400
        /// 
        /// REST API Reference for CreateMatchingWorkflow Operation
        Task CreateMatchingWorkflowAsync(CreateMatchingWorkflowRequest request, CancellationToken cancellationToken = default(CancellationToken));
        #endregion
        
        #region  CreateSchemaMapping
        /// 
        /// 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.
        /// 
        /// Container for the necessary parameters to execute the CreateSchemaMapping service method.
        /// 
        /// The response from the CreateSchemaMapping service method, as returned by EntityResolution.
        /// 
        /// You do not have sufficient access to perform this action. HTTP Status Code:
        /// 403
        /// 
        /// 
        /// The request could not be processed because of conflict in the current state of the
        /// resource. Example: Workflow already exists, Schema already exists, Workflow is currently
        /// running, etc. HTTP Status Code: 400
        /// 
        /// 
        /// The request was rejected because it attempted to create resources beyond the current
        /// AWS Entity Resolution account limits. The error message describes the limit exceeded.
        /// HTTP Status Code: 402
        /// 
        /// 
        /// This exception occurs when there is an internal failure in the AWS Entity Resolution
        /// service. HTTP Status Code: 500
        /// 
        /// 
        /// The request was denied due to request throttling. HTTP Status Code: 429
        /// 
        /// 
        /// The input fails to satisfy the constraints specified by AWS Entity Resolution. HTTP
        /// Status Code: 400
        /// 
        /// REST API Reference for CreateSchemaMapping Operation
        CreateSchemaMappingResponse CreateSchemaMapping(CreateSchemaMappingRequest request);
        /// 
        /// 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.
        /// 
        /// Container for the necessary parameters to execute the CreateSchemaMapping service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the CreateSchemaMapping service method, as returned by EntityResolution.
        /// 
        /// You do not have sufficient access to perform this action. HTTP Status Code:
        /// 403
        /// 
        /// 
        /// The request could not be processed because of conflict in the current state of the
        /// resource. Example: Workflow already exists, Schema already exists, Workflow is currently
        /// running, etc. HTTP Status Code: 400
        /// 
        /// 
        /// The request was rejected because it attempted to create resources beyond the current
        /// AWS Entity Resolution account limits. The error message describes the limit exceeded.
        /// HTTP Status Code: 402
        /// 
        /// 
        /// This exception occurs when there is an internal failure in the AWS Entity Resolution
        /// service. HTTP Status Code: 500
        /// 
        /// 
        /// The request was denied due to request throttling. HTTP Status Code: 429
        /// 
        /// 
        /// The input fails to satisfy the constraints specified by AWS Entity Resolution. HTTP
        /// Status Code: 400
        /// 
        /// REST API Reference for CreateSchemaMapping Operation
        Task CreateSchemaMappingAsync(CreateSchemaMappingRequest request, CancellationToken cancellationToken = default(CancellationToken));
        #endregion
        
        #region  DeleteMatchingWorkflow
        /// 
        /// Deletes the MatchingWorkflow with a given name. This operation will succeed
        /// even if a workflow with the given name does not exist.
        /// 
        /// Container for the necessary parameters to execute the DeleteMatchingWorkflow service method.
        /// 
        /// The response from the DeleteMatchingWorkflow service method, as returned by EntityResolution.
        /// 
        /// You do not have sufficient access to perform this action. HTTP Status Code:
        /// 403
        /// 
        /// 
        /// This exception occurs when there is an internal failure in the AWS Entity Resolution
        /// service. HTTP Status Code: 500
        /// 
        /// 
        /// The request was denied due to request throttling. HTTP Status Code: 429
        /// 
        /// 
        /// The input fails to satisfy the constraints specified by AWS Entity Resolution. HTTP
        /// Status Code: 400
        /// 
        /// REST API Reference for DeleteMatchingWorkflow Operation
        DeleteMatchingWorkflowResponse DeleteMatchingWorkflow(DeleteMatchingWorkflowRequest request);
        /// 
        /// Deletes the MatchingWorkflow with a given name. This operation will succeed
        /// even if a workflow with the given name does not exist.
        /// 
        /// Container for the necessary parameters to execute the DeleteMatchingWorkflow service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the DeleteMatchingWorkflow service method, as returned by EntityResolution.
        /// 
        /// You do not have sufficient access to perform this action. HTTP Status Code:
        /// 403
        /// 
        /// 
        /// This exception occurs when there is an internal failure in the AWS Entity Resolution
        /// service. HTTP Status Code: 500
        /// 
        /// 
        /// The request was denied due to request throttling. HTTP Status Code: 429
        /// 
        /// 
        /// The input fails to satisfy the constraints specified by AWS Entity Resolution. HTTP
        /// Status Code: 400
        /// 
        /// REST API Reference for DeleteMatchingWorkflow Operation
        Task DeleteMatchingWorkflowAsync(DeleteMatchingWorkflowRequest request, CancellationToken cancellationToken = default(CancellationToken));
        #endregion
        
        #region  DeleteSchemaMapping
        /// 
        /// 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.
        /// 
        /// Container for the necessary parameters to execute the DeleteSchemaMapping service method.
        /// 
        /// The response from the DeleteSchemaMapping service method, as returned by EntityResolution.
        /// 
        /// You do not have sufficient access to perform this action. HTTP Status Code:
        /// 403
        /// 
        /// 
        /// The request could not be processed because of conflict in the current state of the
        /// resource. Example: Workflow already exists, Schema already exists, Workflow is currently
        /// running, etc. HTTP Status Code: 400
        /// 
        /// 
        /// This exception occurs when there is an internal failure in the AWS Entity Resolution
        /// service. HTTP Status Code: 500
        /// 
        /// 
        /// The request was denied due to request throttling. HTTP Status Code: 429
        /// 
        /// 
        /// The input fails to satisfy the constraints specified by AWS Entity Resolution. HTTP
        /// Status Code: 400
        /// 
        /// REST API Reference for DeleteSchemaMapping Operation
        DeleteSchemaMappingResponse DeleteSchemaMapping(DeleteSchemaMappingRequest request);
        /// 
        /// 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.
        /// 
        /// Container for the necessary parameters to execute the DeleteSchemaMapping service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the DeleteSchemaMapping service method, as returned by EntityResolution.
        /// 
        /// You do not have sufficient access to perform this action. HTTP Status Code:
        /// 403
        /// 
        /// 
        /// The request could not be processed because of conflict in the current state of the
        /// resource. Example: Workflow already exists, Schema already exists, Workflow is currently
        /// running, etc. HTTP Status Code: 400
        /// 
        /// 
        /// This exception occurs when there is an internal failure in the AWS Entity Resolution
        /// service. HTTP Status Code: 500
        /// 
        /// 
        /// The request was denied due to request throttling. HTTP Status Code: 429
        /// 
        /// 
        /// The input fails to satisfy the constraints specified by AWS Entity Resolution. HTTP
        /// Status Code: 400
        /// 
        /// REST API Reference for DeleteSchemaMapping Operation
        Task DeleteSchemaMappingAsync(DeleteSchemaMappingRequest request, CancellationToken cancellationToken = default(CancellationToken));
        #endregion
        
        #region  GetMatchId
        /// 
        /// Returns the corresponding Match ID of a customer record if the record has been processed.
        /// 
        /// Container for the necessary parameters to execute the GetMatchId service method.
        /// 
        /// The response from the GetMatchId service method, as returned by EntityResolution.
        /// 
        /// You do not have sufficient access to perform this action. HTTP Status Code:
        /// 403
        /// 
        /// 
        /// This exception occurs when there is an internal failure in the AWS Entity Resolution
        /// service. HTTP Status Code: 500
        /// 
        /// 
        /// The resource could not be found. HTTP Status Code: 404
        /// 
        /// 
        /// The request was denied due to request throttling. HTTP Status Code: 429
        /// 
        /// 
        /// The input fails to satisfy the constraints specified by AWS Entity Resolution. HTTP
        /// Status Code: 400
        /// 
        /// REST API Reference for GetMatchId Operation
        GetMatchIdResponse GetMatchId(GetMatchIdRequest request);
        /// 
        /// Returns the corresponding Match ID of a customer record if the record has been processed.
        /// 
        /// Container for the necessary parameters to execute the GetMatchId service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the GetMatchId service method, as returned by EntityResolution.
        /// 
        /// You do not have sufficient access to perform this action. HTTP Status Code:
        /// 403
        /// 
        /// 
        /// This exception occurs when there is an internal failure in the AWS Entity Resolution
        /// service. HTTP Status Code: 500
        /// 
        /// 
        /// The resource could not be found. HTTP Status Code: 404
        /// 
        /// 
        /// The request was denied due to request throttling. HTTP Status Code: 429
        /// 
        /// 
        /// The input fails to satisfy the constraints specified by AWS Entity Resolution. HTTP
        /// Status Code: 400
        /// 
        /// REST API Reference for GetMatchId Operation
        Task GetMatchIdAsync(GetMatchIdRequest request, CancellationToken cancellationToken = default(CancellationToken));
        #endregion
        
        #region  GetMatchingJob
        /// 
        /// Gets the status, metrics, and errors (if there are any) that are associated with a
        /// job.
        /// 
        /// Container for the necessary parameters to execute the GetMatchingJob service method.
        /// 
        /// The response from the GetMatchingJob service method, as returned by EntityResolution.
        /// 
        /// You do not have sufficient access to perform this action. HTTP Status Code:
        /// 403
        /// 
        /// 
        /// This exception occurs when there is an internal failure in the AWS Entity Resolution
        /// service. HTTP Status Code: 500
        /// 
        /// 
        /// The resource could not be found. HTTP Status Code: 404
        /// 
        /// 
        /// The request was denied due to request throttling. HTTP Status Code: 429
        /// 
        /// 
        /// The input fails to satisfy the constraints specified by AWS Entity Resolution. HTTP
        /// Status Code: 400
        /// 
        /// REST API Reference for GetMatchingJob Operation
        GetMatchingJobResponse GetMatchingJob(GetMatchingJobRequest request);
        /// 
        /// Gets the status, metrics, and errors (if there are any) that are associated with a
        /// job.
        /// 
        /// Container for the necessary parameters to execute the GetMatchingJob service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the GetMatchingJob service method, as returned by EntityResolution.
        /// 
        /// You do not have sufficient access to perform this action. HTTP Status Code:
        /// 403
        /// 
        /// 
        /// This exception occurs when there is an internal failure in the AWS Entity Resolution
        /// service. HTTP Status Code: 500
        /// 
        /// 
        /// The resource could not be found. HTTP Status Code: 404
        /// 
        /// 
        /// The request was denied due to request throttling. HTTP Status Code: 429
        /// 
        /// 
        /// The input fails to satisfy the constraints specified by AWS Entity Resolution. HTTP
        /// Status Code: 400
        /// 
        /// REST API Reference for GetMatchingJob Operation
        Task GetMatchingJobAsync(GetMatchingJobRequest request, CancellationToken cancellationToken = default(CancellationToken));
        #endregion
        
        #region  GetMatchingWorkflow
        /// 
        /// Returns the MatchingWorkflow with a given name, if it exists.
        /// 
        /// Container for the necessary parameters to execute the GetMatchingWorkflow service method.
        /// 
        /// The response from the GetMatchingWorkflow service method, as returned by EntityResolution.
        /// 
        /// You do not have sufficient access to perform this action. HTTP Status Code:
        /// 403
        /// 
        /// 
        /// This exception occurs when there is an internal failure in the AWS Entity Resolution
        /// service. HTTP Status Code: 500
        /// 
        /// 
        /// The resource could not be found. HTTP Status Code: 404
        /// 
        /// 
        /// The request was denied due to request throttling. HTTP Status Code: 429
        /// 
        /// 
        /// The input fails to satisfy the constraints specified by AWS Entity Resolution. HTTP
        /// Status Code: 400
        /// 
        /// REST API Reference for GetMatchingWorkflow Operation
        GetMatchingWorkflowResponse GetMatchingWorkflow(GetMatchingWorkflowRequest request);
        /// 
        /// Returns the MatchingWorkflow with a given name, if it exists.
        /// 
        /// Container for the necessary parameters to execute the GetMatchingWorkflow service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the GetMatchingWorkflow service method, as returned by EntityResolution.
        /// 
        /// You do not have sufficient access to perform this action. HTTP Status Code:
        /// 403
        /// 
        /// 
        /// This exception occurs when there is an internal failure in the AWS Entity Resolution
        /// service. HTTP Status Code: 500
        /// 
        /// 
        /// The resource could not be found. HTTP Status Code: 404
        /// 
        /// 
        /// The request was denied due to request throttling. HTTP Status Code: 429
        /// 
        /// 
        /// The input fails to satisfy the constraints specified by AWS Entity Resolution. HTTP
        /// Status Code: 400
        /// 
        /// REST API Reference for GetMatchingWorkflow Operation
        Task GetMatchingWorkflowAsync(GetMatchingWorkflowRequest request, CancellationToken cancellationToken = default(CancellationToken));
        #endregion
        
        #region  GetSchemaMapping
        /// 
        /// Returns the SchemaMapping of a given name.
        /// 
        /// Container for the necessary parameters to execute the GetSchemaMapping service method.
        /// 
        /// The response from the GetSchemaMapping service method, as returned by EntityResolution.
        /// 
        /// You do not have sufficient access to perform this action. HTTP Status Code:
        /// 403
        /// 
        /// 
        /// This exception occurs when there is an internal failure in the AWS Entity Resolution
        /// service. HTTP Status Code: 500
        /// 
        /// 
        /// The resource could not be found. HTTP Status Code: 404
        /// 
        /// 
        /// The request was denied due to request throttling. HTTP Status Code: 429
        /// 
        /// 
        /// The input fails to satisfy the constraints specified by AWS Entity Resolution. HTTP
        /// Status Code: 400
        /// 
        /// REST API Reference for GetSchemaMapping Operation
        GetSchemaMappingResponse GetSchemaMapping(GetSchemaMappingRequest request);
        /// 
        /// Returns the SchemaMapping of a given name.
        /// 
        /// Container for the necessary parameters to execute the GetSchemaMapping service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the GetSchemaMapping service method, as returned by EntityResolution.
        /// 
        /// You do not have sufficient access to perform this action. HTTP Status Code:
        /// 403
        /// 
        /// 
        /// This exception occurs when there is an internal failure in the AWS Entity Resolution
        /// service. HTTP Status Code: 500
        /// 
        /// 
        /// The resource could not be found. HTTP Status Code: 404
        /// 
        /// 
        /// The request was denied due to request throttling. HTTP Status Code: 429
        /// 
        /// 
        /// The input fails to satisfy the constraints specified by AWS Entity Resolution. HTTP
        /// Status Code: 400
        /// 
        /// REST API Reference for GetSchemaMapping Operation
        Task GetSchemaMappingAsync(GetSchemaMappingRequest request, CancellationToken cancellationToken = default(CancellationToken));
        #endregion
        
        #region  ListMatchingJobs
        /// 
        /// Lists all jobs for a given workflow.
        /// 
        /// Container for the necessary parameters to execute the ListMatchingJobs service method.
        /// 
        /// The response from the ListMatchingJobs service method, as returned by EntityResolution.
        /// 
        /// You do not have sufficient access to perform this action. HTTP Status Code:
        /// 403
        /// 
        /// 
        /// This exception occurs when there is an internal failure in the AWS Entity Resolution
        /// service. HTTP Status Code: 500
        /// 
        /// 
        /// The resource could not be found. HTTP Status Code: 404
        /// 
        /// 
        /// The request was denied due to request throttling. HTTP Status Code: 429
        /// 
        /// 
        /// The input fails to satisfy the constraints specified by AWS Entity Resolution. HTTP
        /// Status Code: 400
        /// 
        /// REST API Reference for ListMatchingJobs Operation
        ListMatchingJobsResponse ListMatchingJobs(ListMatchingJobsRequest request);
        /// 
        /// Lists all jobs for a given workflow.
        /// 
        /// Container for the necessary parameters to execute the ListMatchingJobs service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the ListMatchingJobs service method, as returned by EntityResolution.
        /// 
        /// You do not have sufficient access to perform this action. HTTP Status Code:
        /// 403
        /// 
        /// 
        /// This exception occurs when there is an internal failure in the AWS Entity Resolution
        /// service. HTTP Status Code: 500
        /// 
        /// 
        /// The resource could not be found. HTTP Status Code: 404
        /// 
        /// 
        /// The request was denied due to request throttling. HTTP Status Code: 429
        /// 
        /// 
        /// The input fails to satisfy the constraints specified by AWS Entity Resolution. HTTP
        /// Status Code: 400
        /// 
        /// REST API Reference for ListMatchingJobs Operation
        Task ListMatchingJobsAsync(ListMatchingJobsRequest request, CancellationToken cancellationToken = default(CancellationToken));
        #endregion
        
        #region  ListMatchingWorkflows
        /// 
        /// Returns a list of all the MatchingWorkflows that have been created for
        /// an AWS account.
        /// 
        /// Container for the necessary parameters to execute the ListMatchingWorkflows service method.
        /// 
        /// The response from the ListMatchingWorkflows service method, as returned by EntityResolution.
        /// 
        /// You do not have sufficient access to perform this action. HTTP Status Code:
        /// 403
        /// 
        /// 
        /// This exception occurs when there is an internal failure in the AWS Entity Resolution
        /// service. HTTP Status Code: 500
        /// 
        /// 
        /// The request was denied due to request throttling. HTTP Status Code: 429
        /// 
        /// 
        /// The input fails to satisfy the constraints specified by AWS Entity Resolution. HTTP
        /// Status Code: 400
        /// 
        /// REST API Reference for ListMatchingWorkflows Operation
        ListMatchingWorkflowsResponse ListMatchingWorkflows(ListMatchingWorkflowsRequest request);
        /// 
        /// Returns a list of all the MatchingWorkflows that have been created for
        /// an AWS account.
        /// 
        /// Container for the necessary parameters to execute the ListMatchingWorkflows service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the ListMatchingWorkflows service method, as returned by EntityResolution.
        /// 
        /// You do not have sufficient access to perform this action. HTTP Status Code:
        /// 403
        /// 
        /// 
        /// This exception occurs when there is an internal failure in the AWS Entity Resolution
        /// service. HTTP Status Code: 500
        /// 
        /// 
        /// The request was denied due to request throttling. HTTP Status Code: 429
        /// 
        /// 
        /// The input fails to satisfy the constraints specified by AWS Entity Resolution. HTTP
        /// Status Code: 400
        /// 
        /// REST API Reference for ListMatchingWorkflows Operation
        Task ListMatchingWorkflowsAsync(ListMatchingWorkflowsRequest request, CancellationToken cancellationToken = default(CancellationToken));
        #endregion
        
        #region  ListSchemaMappings
        /// 
        /// Returns a list of all the SchemaMappings that have been created for an
        /// AWS account.
        /// 
        /// Container for the necessary parameters to execute the ListSchemaMappings service method.
        /// 
        /// The response from the ListSchemaMappings service method, as returned by EntityResolution.
        /// 
        /// You do not have sufficient access to perform this action. HTTP Status Code:
        /// 403
        /// 
        /// 
        /// This exception occurs when there is an internal failure in the AWS Entity Resolution
        /// service. HTTP Status Code: 500
        /// 
        /// 
        /// The request was denied due to request throttling. HTTP Status Code: 429
        /// 
        /// 
        /// The input fails to satisfy the constraints specified by AWS Entity Resolution. HTTP
        /// Status Code: 400
        /// 
        /// REST API Reference for ListSchemaMappings Operation
        ListSchemaMappingsResponse ListSchemaMappings(ListSchemaMappingsRequest request);
        /// 
        /// Returns a list of all the SchemaMappings that have been created for an
        /// AWS account.
        /// 
        /// Container for the necessary parameters to execute the ListSchemaMappings service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the ListSchemaMappings service method, as returned by EntityResolution.
        /// 
        /// You do not have sufficient access to perform this action. HTTP Status Code:
        /// 403
        /// 
        /// 
        /// This exception occurs when there is an internal failure in the AWS Entity Resolution
        /// service. HTTP Status Code: 500
        /// 
        /// 
        /// The request was denied due to request throttling. HTTP Status Code: 429
        /// 
        /// 
        /// The input fails to satisfy the constraints specified by AWS Entity Resolution. HTTP
        /// Status Code: 400
        /// 
        /// REST API Reference for ListSchemaMappings Operation
        Task ListSchemaMappingsAsync(ListSchemaMappingsRequest request, CancellationToken cancellationToken = default(CancellationToken));
        #endregion
        
        #region  ListTagsForResource
        /// 
        /// Displays the tags associated with an AWS Entity Resolution resource. In Entity Resolution,
        /// SchemaMapping, and MatchingWorkflow can be tagged.
        /// 
        /// Container for the necessary parameters to execute the ListTagsForResource service method.
        /// 
        /// The response from the ListTagsForResource service method, as returned by EntityResolution.
        /// 
        /// This exception occurs when there is an internal failure in the AWS Entity Resolution
        /// service. HTTP Status Code: 500
        /// 
        /// 
        /// The resource could not be found. HTTP Status Code: 404
        /// 
        /// 
        /// The input fails to satisfy the constraints specified by AWS Entity Resolution. HTTP
        /// Status Code: 400
        /// 
        /// REST API Reference for ListTagsForResource Operation
        ListTagsForResourceResponse ListTagsForResource(ListTagsForResourceRequest request);
        /// 
        /// Displays the tags associated with an AWS Entity Resolution resource. In Entity Resolution,
        /// SchemaMapping, and MatchingWorkflow can be tagged.
        /// 
        /// Container for the necessary parameters to execute the ListTagsForResource service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the ListTagsForResource service method, as returned by EntityResolution.
        /// 
        /// This exception occurs when there is an internal failure in the AWS Entity Resolution
        /// service. HTTP Status Code: 500
        /// 
        /// 
        /// The resource could not be found. HTTP Status Code: 404
        /// 
        /// 
        /// The input fails to satisfy the constraints specified by AWS Entity Resolution. HTTP
        /// Status Code: 400
        /// 
        /// REST API Reference for ListTagsForResource Operation
        Task ListTagsForResourceAsync(ListTagsForResourceRequest request, CancellationToken cancellationToken = default(CancellationToken));
        #endregion
        
        #region  StartMatchingJob
        /// 
        /// Starts the MatchingJob of a workflow. The workflow must have previously
        /// been created using the CreateMatchingWorkflow endpoint.
        /// 
        /// Container for the necessary parameters to execute the StartMatchingJob service method.
        /// 
        /// The response from the StartMatchingJob service method, as returned by EntityResolution.
        /// 
        /// You do not have sufficient access to perform this action. HTTP Status Code:
        /// 403
        /// 
        /// 
        /// The request could not be processed because of conflict in the current state of the
        /// resource. Example: Workflow already exists, Schema already exists, Workflow is currently
        /// running, etc. HTTP Status Code: 400
        /// 
        /// 
        /// The request was rejected because it attempted to create resources beyond the current
        /// AWS Entity Resolution account limits. The error message describes the limit exceeded.
        /// HTTP Status Code: 402
        /// 
        /// 
        /// This exception occurs when there is an internal failure in the AWS Entity Resolution
        /// service. HTTP Status Code: 500
        /// 
        /// 
        /// The resource could not be found. HTTP Status Code: 404
        /// 
        /// 
        /// The request was denied due to request throttling. HTTP Status Code: 429
        /// 
        /// 
        /// The input fails to satisfy the constraints specified by AWS Entity Resolution. HTTP
        /// Status Code: 400
        /// 
        /// REST API Reference for StartMatchingJob Operation
        StartMatchingJobResponse StartMatchingJob(StartMatchingJobRequest request);
        /// 
        /// Starts the MatchingJob of a workflow. The workflow must have previously
        /// been created using the CreateMatchingWorkflow endpoint.
        /// 
        /// Container for the necessary parameters to execute the StartMatchingJob service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the StartMatchingJob service method, as returned by EntityResolution.
        /// 
        /// You do not have sufficient access to perform this action. HTTP Status Code:
        /// 403
        /// 
        /// 
        /// The request could not be processed because of conflict in the current state of the
        /// resource. Example: Workflow already exists, Schema already exists, Workflow is currently
        /// running, etc. HTTP Status Code: 400
        /// 
        /// 
        /// The request was rejected because it attempted to create resources beyond the current
        /// AWS Entity Resolution account limits. The error message describes the limit exceeded.
        /// HTTP Status Code: 402
        /// 
        /// 
        /// This exception occurs when there is an internal failure in the AWS Entity Resolution
        /// service. HTTP Status Code: 500
        /// 
        /// 
        /// The resource could not be found. HTTP Status Code: 404
        /// 
        /// 
        /// The request was denied due to request throttling. HTTP Status Code: 429
        /// 
        /// 
        /// The input fails to satisfy the constraints specified by AWS Entity Resolution. HTTP
        /// Status Code: 400
        /// 
        /// REST API Reference for StartMatchingJob Operation
        Task StartMatchingJobAsync(StartMatchingJobRequest request, CancellationToken cancellationToken = default(CancellationToken));
        #endregion
        
        #region  TagResource
        /// 
        /// 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.
        /// 
        /// Container for the necessary parameters to execute the TagResource service method.
        /// 
        /// The response from the TagResource service method, as returned by EntityResolution.
        /// 
        /// This exception occurs when there is an internal failure in the AWS Entity Resolution
        /// service. HTTP Status Code: 500
        /// 
        /// 
        /// The resource could not be found. HTTP Status Code: 404
        /// 
        /// 
        /// The input fails to satisfy the constraints specified by AWS Entity Resolution. HTTP
        /// Status Code: 400
        /// 
        /// REST API Reference for TagResource Operation
        TagResourceResponse TagResource(TagResourceRequest request);
        /// 
        /// 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.
        /// 
        /// Container for the necessary parameters to execute the TagResource service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the TagResource service method, as returned by EntityResolution.
        /// 
        /// This exception occurs when there is an internal failure in the AWS Entity Resolution
        /// service. HTTP Status Code: 500
        /// 
        /// 
        /// The resource could not be found. HTTP Status Code: 404
        /// 
        /// 
        /// The input fails to satisfy the constraints specified by AWS Entity Resolution. HTTP
        /// Status Code: 400
        /// 
        /// REST API Reference for TagResource Operation
        Task TagResourceAsync(TagResourceRequest request, CancellationToken cancellationToken = default(CancellationToken));
        #endregion
        
        #region  UntagResource
        /// 
        /// Removes one or more tags from the specified AWS Entity Resolution resource. In Entity
        /// Resolution, SchemaMapping, and MatchingWorkflow can be tagged.
        /// 
        /// Container for the necessary parameters to execute the UntagResource service method.
        /// 
        /// The response from the UntagResource service method, as returned by EntityResolution.
        /// 
        /// This exception occurs when there is an internal failure in the AWS Entity Resolution
        /// service. HTTP Status Code: 500
        /// 
        /// 
        /// The resource could not be found. HTTP Status Code: 404
        /// 
        /// REST API Reference for UntagResource Operation
        UntagResourceResponse UntagResource(UntagResourceRequest request);
        /// 
        /// Removes one or more tags from the specified AWS Entity Resolution resource. In Entity
        /// Resolution, SchemaMapping, and MatchingWorkflow can be tagged.
        /// 
        /// Container for the necessary parameters to execute the UntagResource service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the UntagResource service method, as returned by EntityResolution.
        /// 
        /// This exception occurs when there is an internal failure in the AWS Entity Resolution
        /// service. HTTP Status Code: 500
        /// 
        /// 
        /// The resource could not be found. HTTP Status Code: 404
        /// 
        /// REST API Reference for UntagResource Operation
        Task UntagResourceAsync(UntagResourceRequest request, CancellationToken cancellationToken = default(CancellationToken));
        #endregion
        
        #region  UpdateMatchingWorkflow
        /// 
        /// 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.
        /// 
        /// Container for the necessary parameters to execute the UpdateMatchingWorkflow service method.
        /// 
        /// The response from the UpdateMatchingWorkflow service method, as returned by EntityResolution.
        /// 
        /// You do not have sufficient access to perform this action. HTTP Status Code:
        /// 403
        /// 
        /// 
        /// This exception occurs when there is an internal failure in the AWS Entity Resolution
        /// service. HTTP Status Code: 500
        /// 
        /// 
        /// The resource could not be found. HTTP Status Code: 404
        /// 
        /// 
        /// The request was denied due to request throttling. HTTP Status Code: 429
        /// 
        /// 
        /// The input fails to satisfy the constraints specified by AWS Entity Resolution. HTTP
        /// Status Code: 400
        /// 
        /// REST API Reference for UpdateMatchingWorkflow Operation
        UpdateMatchingWorkflowResponse UpdateMatchingWorkflow(UpdateMatchingWorkflowRequest request);
        /// 
        /// 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.
        /// 
        /// Container for the necessary parameters to execute the UpdateMatchingWorkflow service method.
        /// 
        ///     A cancellation token that can be used by other objects or threads to receive notice of cancellation.
        /// 
        /// 
        /// The response from the UpdateMatchingWorkflow service method, as returned by EntityResolution.
        /// 
        /// You do not have sufficient access to perform this action. HTTP Status Code:
        /// 403
        /// 
        /// 
        /// This exception occurs when there is an internal failure in the AWS Entity Resolution
        /// service. HTTP Status Code: 500
        /// 
        /// 
        /// The resource could not be found. HTTP Status Code: 404
        /// 
        /// 
        /// The request was denied due to request throttling. HTTP Status Code: 429
        /// 
        /// 
        /// The input fails to satisfy the constraints specified by AWS Entity Resolution. HTTP
        /// Status Code: 400
        /// 
        /// REST API Reference for UpdateMatchingWorkflow Operation
        Task UpdateMatchingWorkflowAsync(UpdateMatchingWorkflowRequest request, CancellationToken cancellationToken = default(CancellationToken));
        #endregion
        
    }
}