-
Notifications
You must be signed in to change notification settings - Fork 573
/
GetMatchesCommand.ts
156 lines (145 loc) · 6.7 KB
/
GetMatchesCommand.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
// smithy-typescript generated code
import { EndpointParameterInstructions, getEndpointPlugin } from "@aws-sdk/middleware-endpoint";
import { getSerdePlugin } from "@aws-sdk/middleware-serde";
import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http";
import { Command as $Command } from "@aws-sdk/smithy-client";
import {
FinalizeHandlerArguments,
Handler,
HandlerExecutionContext,
HttpHandlerOptions as __HttpHandlerOptions,
MetadataBearer as __MetadataBearer,
MiddlewareStack,
SerdeContext as __SerdeContext,
} from "@aws-sdk/types";
import { CustomerProfilesClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../CustomerProfilesClient";
import {
GetMatchesRequest,
GetMatchesRequestFilterSensitiveLog,
GetMatchesResponse,
GetMatchesResponseFilterSensitiveLog,
} from "../models/models_0";
import {
deserializeAws_restJson1GetMatchesCommand,
serializeAws_restJson1GetMatchesCommand,
} from "../protocols/Aws_restJson1";
export interface GetMatchesCommandInput extends GetMatchesRequest {}
export interface GetMatchesCommandOutput extends GetMatchesResponse, __MetadataBearer {}
/**
* <p>Before calling this API, use <a href="https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_CreateDomain.html">CreateDomain</a> or
* <a href="https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_UpdateDomain.html">UpdateDomain</a> to
* enable identity resolution: set <code>Matching</code> to true.</p>
* <p>GetMatches returns potentially matching profiles, based on the results of the latest run
* of a machine learning process. </p>
* <important>
* <p>The process of matching duplicate profiles. If <code>Matching</code> = <code>true</code>, Amazon Connect Customer Profiles starts a weekly
* batch process called Identity Resolution Job. If you do not specify a date and time for Identity Resolution Job to run, by default it runs every
* Saturday at 12AM UTC to detect duplicate profiles in your domains. </p>
* <p>After the Identity Resolution Job completes, use the
* <a href="https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_GetMatches.html">GetMatches</a>
* API to return and review the results. Or, if you have configured <code>ExportingConfig</code> in the <code>MatchingRequest</code>, you can download the results from
* S3.</p>
* </important>
* <p>Amazon Connect uses the following profile attributes to identify matches:</p>
* <ul>
* <li>
* <p>PhoneNumber</p>
* </li>
* <li>
* <p>HomePhoneNumber</p>
* </li>
* <li>
* <p>BusinessPhoneNumber</p>
* </li>
* <li>
* <p>MobilePhoneNumber</p>
* </li>
* <li>
* <p>EmailAddress</p>
* </li>
* <li>
* <p>PersonalEmailAddress</p>
* </li>
* <li>
* <p>BusinessEmailAddress</p>
* </li>
* <li>
* <p>FullName</p>
* </li>
* </ul>
* <p>For example, two or more profiles—with spelling mistakes such as <b>John Doe</b> and <b>Jhn Doe</b>, or different casing
* email addresses such as <b>JOHN_DOE@ANYCOMPANY.COM</b> and
* <b>johndoe@anycompany.com</b>, or different phone number
* formats such as <b>555-010-0000</b> and <b>+1-555-010-0000</b>—can be detected as belonging to the same customer <b>John Doe</b> and merged into a unified profile.</p>
* @example
* Use a bare-bones client and the command you need to make an API call.
* ```javascript
* import { CustomerProfilesClient, GetMatchesCommand } from "@aws-sdk/client-customer-profiles"; // ES Modules import
* // const { CustomerProfilesClient, GetMatchesCommand } = require("@aws-sdk/client-customer-profiles"); // CommonJS import
* const client = new CustomerProfilesClient(config);
* const command = new GetMatchesCommand(input);
* const response = await client.send(command);
* ```
*
* @see {@link GetMatchesCommandInput} for command's `input` shape.
* @see {@link GetMatchesCommandOutput} for command's `response` shape.
* @see {@link CustomerProfilesClientResolvedConfig | config} for CustomerProfilesClient's `config` shape.
*
*/
export class GetMatchesCommand extends $Command<
GetMatchesCommandInput,
GetMatchesCommandOutput,
CustomerProfilesClientResolvedConfig
> {
// Start section: command_properties
// End section: command_properties
public static getEndpointParameterInstructions(): EndpointParameterInstructions {
return {
UseFIPS: { type: "builtInParams", name: "useFipsEndpoint" },
Endpoint: { type: "builtInParams", name: "endpoint" },
Region: { type: "builtInParams", name: "region" },
UseDualStack: { type: "builtInParams", name: "useDualstackEndpoint" },
};
}
constructor(readonly input: GetMatchesCommandInput) {
// Start section: command_constructor
super();
// End section: command_constructor
}
/**
* @internal
*/
resolveMiddleware(
clientStack: MiddlewareStack<ServiceInputTypes, ServiceOutputTypes>,
configuration: CustomerProfilesClientResolvedConfig,
options?: __HttpHandlerOptions
): Handler<GetMatchesCommandInput, GetMatchesCommandOutput> {
this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));
this.middlewareStack.use(getEndpointPlugin(configuration, GetMatchesCommand.getEndpointParameterInstructions()));
const stack = clientStack.concat(this.middlewareStack);
const { logger } = configuration;
const clientName = "CustomerProfilesClient";
const commandName = "GetMatchesCommand";
const handlerExecutionContext: HandlerExecutionContext = {
logger,
clientName,
commandName,
inputFilterSensitiveLog: GetMatchesRequestFilterSensitiveLog,
outputFilterSensitiveLog: GetMatchesResponseFilterSensitiveLog,
};
const { requestHandler } = configuration;
return stack.resolve(
(request: FinalizeHandlerArguments<any>) =>
requestHandler.handle(request.request as __HttpRequest, options || {}),
handlerExecutionContext
);
}
private serialize(input: GetMatchesCommandInput, context: __SerdeContext): Promise<__HttpRequest> {
return serializeAws_restJson1GetMatchesCommand(input, context);
}
private deserialize(output: __HttpResponse, context: __SerdeContext): Promise<GetMatchesCommandOutput> {
return deserializeAws_restJson1GetMatchesCommand(output, context);
}
// Start section: command_body_extra
// End section: command_body_extra
}