Skip to content

Commit 9e340c3

Browse files
author
awstools
committed
feat(client-connect): Amazon connect now support a new API DismissUserContact to dismiss or remove terminated contacts in Agent CCP
1 parent 5ee0634 commit 9e340c3

15 files changed

+432
-82
lines changed

clients/client-connect/src/Connect.ts

Lines changed: 46 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -324,6 +324,11 @@ import {
324324
DisassociateSecurityKeyCommandInput,
325325
DisassociateSecurityKeyCommandOutput,
326326
} from "./commands/DisassociateSecurityKeyCommand";
327+
import {
328+
DismissUserContactCommand,
329+
DismissUserContactCommandInput,
330+
DismissUserContactCommandOutput,
331+
} from "./commands/DismissUserContactCommand";
327332
import {
328333
GetContactAttributesCommand,
329334
GetContactAttributesCommandInput,
@@ -1127,7 +1132,7 @@ export class Connect extends ConnectClient {
11271132

11281133
/**
11291134
* <p>Claims an available phone number to your Amazon Connect instance or traffic distribution
1130-
* group. You can call this API only in the same Amazon Web Services Region where the Amazon Connect instance or traffic distribution group was created.</p>
1135+
* group. You can call this API only in the same Amazon Web Services Region where the Amazon Connect instance or traffic distribution group was created.</p>
11311136
* <important>
11321137
* <p>You can call the <a href="https://docs.aws.amazon.com/connect/latest/APIReference/API_DescribePhoneNumber.html">DescribePhoneNumber</a> API
11331138
* to verify the status of a previous <a href="https://docs.aws.amazon.com/connect/latest/APIReference/API_ClaimPhoneNumber.html">ClaimPhoneNumber</a>
@@ -3036,6 +3041,41 @@ export class Connect extends ConnectClient {
30363041
}
30373042
}
30383043

3044+
/**
3045+
* <p>Dismisses contacts from an agent’s CCP and returns the agent to an available state, which
3046+
* allows the agent to receive a new routed contact. Contacts can only be dismissed if they are in a
3047+
* <code>MISSED</code>, <code>ERROR</code>, <code>ENDED</code>, or <code>REJECTED</code> state in the
3048+
* <a href="https://docs.aws.amazon.com/connect/latest/adminguide/about-contact-states.html">Agent Event Stream</a>.</p>
3049+
*/
3050+
public dismissUserContact(
3051+
args: DismissUserContactCommandInput,
3052+
options?: __HttpHandlerOptions
3053+
): Promise<DismissUserContactCommandOutput>;
3054+
public dismissUserContact(
3055+
args: DismissUserContactCommandInput,
3056+
cb: (err: any, data?: DismissUserContactCommandOutput) => void
3057+
): void;
3058+
public dismissUserContact(
3059+
args: DismissUserContactCommandInput,
3060+
options: __HttpHandlerOptions,
3061+
cb: (err: any, data?: DismissUserContactCommandOutput) => void
3062+
): void;
3063+
public dismissUserContact(
3064+
args: DismissUserContactCommandInput,
3065+
optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: DismissUserContactCommandOutput) => void),
3066+
cb?: (err: any, data?: DismissUserContactCommandOutput) => void
3067+
): Promise<DismissUserContactCommandOutput> | void {
3068+
const command = new DismissUserContactCommand(args);
3069+
if (typeof optionsOrCb === "function") {
3070+
this.send(command, optionsOrCb);
3071+
} else if (typeof cb === "function") {
3072+
if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`);
3073+
this.send(command, optionsOrCb || {}, cb);
3074+
} else {
3075+
return this.send(command, optionsOrCb);
3076+
}
3077+
}
3078+
30393079
/**
30403080
* <p>Retrieves the contact attributes for the specified contact.</p>
30413081
*/
@@ -4337,7 +4377,8 @@ export class Connect extends ConnectClient {
43374377
* <p>Releases a phone number previously claimed to an Amazon Connect instance or traffic distribution group. You
43384378
* can call this API only in the Amazon Web Services Region where the number was claimed.</p>
43394379
* <important>
4340-
* <p>To release phone numbers from a traffic distribution group, use the <code>ReleasePhoneNumber</code> API, not the Amazon Connect console.</p>
4380+
* <p>To release phone numbers from a traffic distribution group, use the <code>ReleasePhoneNumber</code> API, not the
4381+
* Amazon Connect console.</p>
43414382
* <p>After releasing a phone number, the phone number enters into a cooldown period of 30 days.
43424383
* It cannot be searched for or claimed again until the period has ended. If you accidentally
43434384
* release a phone number, contact Amazon Web Services Support.</p>
@@ -6018,10 +6059,10 @@ export class Connect extends ConnectClient {
60186059
}
60196060

60206061
/**
6021-
* <p>Updates the traffic distribution for a given traffic distribution group.
6022-
*
6062+
* <p>Updates the traffic distribution for a given traffic distribution group. </p>
60236063
*
6024-
* For more information about updating a traffic distribution group see <a href="https://docs.aws.amazon.com/connect/latest/adminguide/update-telephony-traffic-distribution.html">Update telephony traffic distribution across Amazon Web Services Regions
6064+
* <p>For more information about updating a traffic distribution group, see <a href="https://docs.aws.amazon.com/connect/latest/adminguide/update-telephony-traffic-distribution.html">Update telephony
6065+
* traffic distribution across Amazon Web Services Regions
60256066
* </a> in the <i>Amazon Connect Administrator Guide</i>. </p>
60266067
*/
60276068
public updateTrafficDistribution(

clients/client-connect/src/ConnectClient.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -237,6 +237,7 @@ import {
237237
DisassociateSecurityKeyCommandInput,
238238
DisassociateSecurityKeyCommandOutput,
239239
} from "./commands/DisassociateSecurityKeyCommand";
240+
import { DismissUserContactCommandInput, DismissUserContactCommandOutput } from "./commands/DismissUserContactCommand";
240241
import {
241242
GetContactAttributesCommandInput,
242243
GetContactAttributesCommandOutput,
@@ -581,6 +582,7 @@ export type ServiceInputTypes =
581582
| DisassociateQueueQuickConnectsCommandInput
582583
| DisassociateRoutingProfileQueuesCommandInput
583584
| DisassociateSecurityKeyCommandInput
585+
| DismissUserContactCommandInput
584586
| GetContactAttributesCommandInput
585587
| GetCurrentMetricDataCommandInput
586588
| GetCurrentUserDataCommandInput
@@ -744,6 +746,7 @@ export type ServiceOutputTypes =
744746
| DisassociateQueueQuickConnectsCommandOutput
745747
| DisassociateRoutingProfileQueuesCommandOutput
746748
| DisassociateSecurityKeyCommandOutput
749+
| DismissUserContactCommandOutput
747750
| GetContactAttributesCommandOutput
748751
| GetCurrentMetricDataCommandOutput
749752
| GetCurrentUserDataCommandOutput

clients/client-connect/src/commands/ClaimPhoneNumberCommand.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ export interface ClaimPhoneNumberCommandOutput extends ClaimPhoneNumberResponse,
3030

3131
/**
3232
* <p>Claims an available phone number to your Amazon Connect instance or traffic distribution
33-
* group. You can call this API only in the same Amazon Web Services Region where the Amazon Connect instance or traffic distribution group was created.</p>
33+
* group. You can call this API only in the same Amazon Web Services Region where the Amazon Connect instance or traffic distribution group was created.</p>
3434
* <important>
3535
* <p>You can call the <a href="https://docs.aws.amazon.com/connect/latest/APIReference/API_DescribePhoneNumber.html">DescribePhoneNumber</a> API
3636
* to verify the status of a previous <a href="https://docs.aws.amazon.com/connect/latest/APIReference/API_ClaimPhoneNumber.html">ClaimPhoneNumber</a>
Lines changed: 117 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,117 @@
1+
// smithy-typescript generated code
2+
import { EndpointParameterInstructions, getEndpointPlugin } from "@aws-sdk/middleware-endpoint";
3+
import { getSerdePlugin } from "@aws-sdk/middleware-serde";
4+
import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http";
5+
import { Command as $Command } from "@aws-sdk/smithy-client";
6+
import {
7+
FinalizeHandlerArguments,
8+
Handler,
9+
HandlerExecutionContext,
10+
HttpHandlerOptions as __HttpHandlerOptions,
11+
MetadataBearer as __MetadataBearer,
12+
MiddlewareStack,
13+
SerdeContext as __SerdeContext,
14+
} from "@aws-sdk/types";
15+
16+
import { ConnectClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../ConnectClient";
17+
import {
18+
DismissUserContactRequest,
19+
DismissUserContactRequestFilterSensitiveLog,
20+
DismissUserContactResponse,
21+
DismissUserContactResponseFilterSensitiveLog,
22+
} from "../models/models_0";
23+
import {
24+
deserializeAws_restJson1DismissUserContactCommand,
25+
serializeAws_restJson1DismissUserContactCommand,
26+
} from "../protocols/Aws_restJson1";
27+
28+
export interface DismissUserContactCommandInput extends DismissUserContactRequest {}
29+
export interface DismissUserContactCommandOutput extends DismissUserContactResponse, __MetadataBearer {}
30+
31+
/**
32+
* <p>Dismisses contacts from an agent’s CCP and returns the agent to an available state, which
33+
* allows the agent to receive a new routed contact. Contacts can only be dismissed if they are in a
34+
* <code>MISSED</code>, <code>ERROR</code>, <code>ENDED</code>, or <code>REJECTED</code> state in the
35+
* <a href="https://docs.aws.amazon.com/connect/latest/adminguide/about-contact-states.html">Agent Event Stream</a>.</p>
36+
* @example
37+
* Use a bare-bones client and the command you need to make an API call.
38+
* ```javascript
39+
* import { ConnectClient, DismissUserContactCommand } from "@aws-sdk/client-connect"; // ES Modules import
40+
* // const { ConnectClient, DismissUserContactCommand } = require("@aws-sdk/client-connect"); // CommonJS import
41+
* const client = new ConnectClient(config);
42+
* const command = new DismissUserContactCommand(input);
43+
* const response = await client.send(command);
44+
* ```
45+
*
46+
* @see {@link DismissUserContactCommandInput} for command's `input` shape.
47+
* @see {@link DismissUserContactCommandOutput} for command's `response` shape.
48+
* @see {@link ConnectClientResolvedConfig | config} for ConnectClient's `config` shape.
49+
*
50+
*/
51+
export class DismissUserContactCommand extends $Command<
52+
DismissUserContactCommandInput,
53+
DismissUserContactCommandOutput,
54+
ConnectClientResolvedConfig
55+
> {
56+
// Start section: command_properties
57+
// End section: command_properties
58+
59+
public static getEndpointParameterInstructions(): EndpointParameterInstructions {
60+
return {
61+
UseFIPS: { type: "builtInParams", name: "useFipsEndpoint" },
62+
Endpoint: { type: "builtInParams", name: "endpoint" },
63+
Region: { type: "builtInParams", name: "region" },
64+
UseDualStack: { type: "builtInParams", name: "useDualstackEndpoint" },
65+
};
66+
}
67+
68+
constructor(readonly input: DismissUserContactCommandInput) {
69+
// Start section: command_constructor
70+
super();
71+
// End section: command_constructor
72+
}
73+
74+
/**
75+
* @internal
76+
*/
77+
resolveMiddleware(
78+
clientStack: MiddlewareStack<ServiceInputTypes, ServiceOutputTypes>,
79+
configuration: ConnectClientResolvedConfig,
80+
options?: __HttpHandlerOptions
81+
): Handler<DismissUserContactCommandInput, DismissUserContactCommandOutput> {
82+
this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));
83+
this.middlewareStack.use(
84+
getEndpointPlugin(configuration, DismissUserContactCommand.getEndpointParameterInstructions())
85+
);
86+
87+
const stack = clientStack.concat(this.middlewareStack);
88+
89+
const { logger } = configuration;
90+
const clientName = "ConnectClient";
91+
const commandName = "DismissUserContactCommand";
92+
const handlerExecutionContext: HandlerExecutionContext = {
93+
logger,
94+
clientName,
95+
commandName,
96+
inputFilterSensitiveLog: DismissUserContactRequestFilterSensitiveLog,
97+
outputFilterSensitiveLog: DismissUserContactResponseFilterSensitiveLog,
98+
};
99+
const { requestHandler } = configuration;
100+
return stack.resolve(
101+
(request: FinalizeHandlerArguments<any>) =>
102+
requestHandler.handle(request.request as __HttpRequest, options || {}),
103+
handlerExecutionContext
104+
);
105+
}
106+
107+
private serialize(input: DismissUserContactCommandInput, context: __SerdeContext): Promise<__HttpRequest> {
108+
return serializeAws_restJson1DismissUserContactCommand(input, context);
109+
}
110+
111+
private deserialize(output: __HttpResponse, context: __SerdeContext): Promise<DismissUserContactCommandOutput> {
112+
return deserializeAws_restJson1DismissUserContactCommand(output, context);
113+
}
114+
115+
// Start section: command_body_extra
116+
// End section: command_body_extra
117+
}

clients/client-connect/src/commands/ListLambdaFunctionsCommand.ts

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,8 @@ import {
1414
} from "@aws-sdk/types";
1515

1616
import { ConnectClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../ConnectClient";
17-
import {
18-
ListLambdaFunctionsRequest,
19-
ListLambdaFunctionsRequestFilterSensitiveLog,
20-
ListLambdaFunctionsResponse,
21-
ListLambdaFunctionsResponseFilterSensitiveLog,
22-
} from "../models/models_0";
17+
import { ListLambdaFunctionsRequest, ListLambdaFunctionsRequestFilterSensitiveLog } from "../models/models_0";
18+
import { ListLambdaFunctionsResponse, ListLambdaFunctionsResponseFilterSensitiveLog } from "../models/models_1";
2319
import {
2420
deserializeAws_restJson1ListLambdaFunctionsCommand,
2521
serializeAws_restJson1ListLambdaFunctionsCommand,

clients/client-connect/src/commands/ListLexBotsCommand.ts

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,12 @@ import {
1414
} from "@aws-sdk/types";
1515

1616
import { ConnectClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../ConnectClient";
17-
import { ListLexBotsRequest, ListLexBotsRequestFilterSensitiveLog } from "../models/models_0";
18-
import { ListLexBotsResponse, ListLexBotsResponseFilterSensitiveLog } from "../models/models_1";
17+
import {
18+
ListLexBotsRequest,
19+
ListLexBotsRequestFilterSensitiveLog,
20+
ListLexBotsResponse,
21+
ListLexBotsResponseFilterSensitiveLog,
22+
} from "../models/models_1";
1923
import {
2024
deserializeAws_restJson1ListLexBotsCommand,
2125
serializeAws_restJson1ListLexBotsCommand,

clients/client-connect/src/commands/ReleasePhoneNumberCommand.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,8 @@ export interface ReleasePhoneNumberCommandOutput extends __MetadataBearer {}
2727
* <p>Releases a phone number previously claimed to an Amazon Connect instance or traffic distribution group. You
2828
* can call this API only in the Amazon Web Services Region where the number was claimed.</p>
2929
* <important>
30-
* <p>To release phone numbers from a traffic distribution group, use the <code>ReleasePhoneNumber</code> API, not the Amazon Connect console.</p>
30+
* <p>To release phone numbers from a traffic distribution group, use the <code>ReleasePhoneNumber</code> API, not the
31+
* Amazon Connect console.</p>
3132
* <p>After releasing a phone number, the phone number enters into a cooldown period of 30 days.
3233
* It cannot be searched for or claimed again until the period has ended. If you accidentally
3334
* release a phone number, contact Amazon Web Services Support.</p>

clients/client-connect/src/commands/UpdateTrafficDistributionCommand.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,10 +29,10 @@ export interface UpdateTrafficDistributionCommandInput extends UpdateTrafficDist
2929
export interface UpdateTrafficDistributionCommandOutput extends UpdateTrafficDistributionResponse, __MetadataBearer {}
3030

3131
/**
32-
* <p>Updates the traffic distribution for a given traffic distribution group.
32+
* <p>Updates the traffic distribution for a given traffic distribution group. </p>
3333
*
34-
*
35-
* For more information about updating a traffic distribution group see <a href="https://docs.aws.amazon.com/connect/latest/adminguide/update-telephony-traffic-distribution.html">Update telephony traffic distribution across Amazon Web Services Regions
34+
* <p>For more information about updating a traffic distribution group, see <a href="https://docs.aws.amazon.com/connect/latest/adminguide/update-telephony-traffic-distribution.html">Update telephony
35+
* traffic distribution across Amazon Web Services Regions
3636
* </a> in the <i>Amazon Connect Administrator Guide</i>. </p>
3737
* @example
3838
* Use a bare-bones client and the command you need to make an API call.

clients/client-connect/src/commands/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@ export * from "./DisassociatePhoneNumberContactFlowCommand";
6666
export * from "./DisassociateQueueQuickConnectsCommand";
6767
export * from "./DisassociateRoutingProfileQueuesCommand";
6868
export * from "./DisassociateSecurityKeyCommand";
69+
export * from "./DismissUserContactCommand";
6970
export * from "./GetContactAttributesCommand";
7071
export * from "./GetCurrentMetricDataCommand";
7172
export * from "./GetCurrentUserDataCommand";

clients/client-connect/src/endpoint/EndpointParameters.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ export const resolveClientEndpointParameters = <T>(
2424
};
2525

2626
export interface EndpointParameters extends __EndpointParameters {
27-
Region: string;
27+
Region?: string;
2828
UseDualStack?: boolean;
2929
UseFIPS?: boolean;
3030
Endpoint?: string;

clients/client-connect/src/endpoint/ruleset.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ export const ruleSet: RuleSetObject = {
66
parameters: {
77
Region: {
88
builtIn: "AWS::Region",
9-
required: true,
9+
required: false,
1010
documentation: "The AWS region used to dispatch the request.",
1111
type: "String",
1212
},

0 commit comments

Comments
 (0)