Skip to content

Commit b79a4db

Browse files
author
awstools
committed
feat(client-connect): Added support for configuring additional email addresses on queues in Amazon Connect. Agents can now select an outbound email address and associate additional email addresses for replying to or initiating emails.
1 parent 1fc4ece commit b79a4db

20 files changed

+1415
-301
lines changed

clients/client-connect/README.md

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -312,6 +312,13 @@ AssociatePhoneNumberContactFlow
312312
</details>
313313
<details>
314314
<summary>
315+
AssociateQueueEmailAddresses
316+
</summary>
317+
318+
[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/connect/command/AssociateQueueEmailAddressesCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-connect/Interface/AssociateQueueEmailAddressesCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-connect/Interface/AssociateQueueEmailAddressesCommandOutput/)
319+
</details>
320+
<details>
321+
<summary>
315322
AssociateQueueQuickConnects
316323
</summary>
317324

@@ -1257,6 +1264,13 @@ DisassociatePhoneNumberContactFlow
12571264
</details>
12581265
<details>
12591266
<summary>
1267+
DisassociateQueueEmailAddresses
1268+
</summary>
1269+
1270+
[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/connect/command/DisassociateQueueEmailAddressesCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-connect/Interface/DisassociateQueueEmailAddressesCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-connect/Interface/DisassociateQueueEmailAddressesCommandOutput/)
1271+
</details>
1272+
<details>
1273+
<summary>
12601274
DisassociateQueueQuickConnects
12611275
</summary>
12621276

@@ -1691,6 +1705,13 @@ ListPrompts
16911705
</details>
16921706
<details>
16931707
<summary>
1708+
ListQueueEmailAddresses
1709+
</summary>
1710+
1711+
[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/connect/command/ListQueueEmailAddressesCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-connect/Interface/ListQueueEmailAddressesCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-connect/Interface/ListQueueEmailAddressesCommandOutput/)
1712+
</details>
1713+
<details>
1714+
<summary>
16941715
ListQueueQuickConnects
16951716
</summary>
16961717

clients/client-connect/src/Connect.ts

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,11 @@ import {
6767
AssociatePhoneNumberContactFlowCommandInput,
6868
AssociatePhoneNumberContactFlowCommandOutput,
6969
} from "./commands/AssociatePhoneNumberContactFlowCommand";
70+
import {
71+
AssociateQueueEmailAddressesCommand,
72+
AssociateQueueEmailAddressesCommandInput,
73+
AssociateQueueEmailAddressesCommandOutput,
74+
} from "./commands/AssociateQueueEmailAddressesCommand";
7075
import {
7176
AssociateQueueQuickConnectsCommand,
7277
AssociateQueueQuickConnectsCommandInput,
@@ -710,6 +715,11 @@ import {
710715
DisassociatePhoneNumberContactFlowCommandInput,
711716
DisassociatePhoneNumberContactFlowCommandOutput,
712717
} from "./commands/DisassociatePhoneNumberContactFlowCommand";
718+
import {
719+
DisassociateQueueEmailAddressesCommand,
720+
DisassociateQueueEmailAddressesCommandInput,
721+
DisassociateQueueEmailAddressesCommandOutput,
722+
} from "./commands/DisassociateQueueEmailAddressesCommand";
713723
import {
714724
DisassociateQueueQuickConnectsCommand,
715725
DisassociateQueueQuickConnectsCommandInput,
@@ -1008,6 +1018,11 @@ import {
10081018
ListPredefinedAttributesCommandOutput,
10091019
} from "./commands/ListPredefinedAttributesCommand";
10101020
import { ListPromptsCommand, ListPromptsCommandInput, ListPromptsCommandOutput } from "./commands/ListPromptsCommand";
1021+
import {
1022+
ListQueueEmailAddressesCommand,
1023+
ListQueueEmailAddressesCommandInput,
1024+
ListQueueEmailAddressesCommandOutput,
1025+
} from "./commands/ListQueueEmailAddressesCommand";
10111026
import {
10121027
ListQueueQuickConnectsCommand,
10131028
ListQueueQuickConnectsCommandInput,
@@ -1843,6 +1858,7 @@ const commands = {
18431858
AssociateLambdaFunctionCommand,
18441859
AssociateLexBotCommand,
18451860
AssociatePhoneNumberContactFlowCommand,
1861+
AssociateQueueEmailAddressesCommand,
18461862
AssociateQueueQuickConnectsCommand,
18471863
AssociateRoutingProfileQueuesCommand,
18481864
AssociateSecurityKeyCommand,
@@ -1978,6 +1994,7 @@ const commands = {
19781994
DisassociateLambdaFunctionCommand,
19791995
DisassociateLexBotCommand,
19801996
DisassociatePhoneNumberContactFlowCommand,
1997+
DisassociateQueueEmailAddressesCommand,
19811998
DisassociateQueueQuickConnectsCommand,
19821999
DisassociateRoutingProfileQueuesCommand,
19832000
DisassociateSecurityKeyCommand,
@@ -2040,6 +2057,7 @@ const commands = {
20402057
ListPhoneNumbersV2Command,
20412058
ListPredefinedAttributesCommand,
20422059
ListPromptsCommand,
2060+
ListQueueEmailAddressesCommand,
20432061
ListQueueQuickConnectsCommand,
20442062
ListQueuesCommand,
20452063
ListQuickConnectsCommand,
@@ -2505,6 +2523,23 @@ export interface Connect {
25052523
cb: (err: any, data?: AssociatePhoneNumberContactFlowCommandOutput) => void
25062524
): void;
25072525

2526+
/**
2527+
* @see {@link AssociateQueueEmailAddressesCommand}
2528+
*/
2529+
associateQueueEmailAddresses(
2530+
args: AssociateQueueEmailAddressesCommandInput,
2531+
options?: __HttpHandlerOptions
2532+
): Promise<AssociateQueueEmailAddressesCommandOutput>;
2533+
associateQueueEmailAddresses(
2534+
args: AssociateQueueEmailAddressesCommandInput,
2535+
cb: (err: any, data?: AssociateQueueEmailAddressesCommandOutput) => void
2536+
): void;
2537+
associateQueueEmailAddresses(
2538+
args: AssociateQueueEmailAddressesCommandInput,
2539+
options: __HttpHandlerOptions,
2540+
cb: (err: any, data?: AssociateQueueEmailAddressesCommandOutput) => void
2541+
): void;
2542+
25082543
/**
25092544
* @see {@link AssociateQueueQuickConnectsCommand}
25102545
*/
@@ -4800,6 +4835,23 @@ export interface Connect {
48004835
cb: (err: any, data?: DisassociatePhoneNumberContactFlowCommandOutput) => void
48014836
): void;
48024837

4838+
/**
4839+
* @see {@link DisassociateQueueEmailAddressesCommand}
4840+
*/
4841+
disassociateQueueEmailAddresses(
4842+
args: DisassociateQueueEmailAddressesCommandInput,
4843+
options?: __HttpHandlerOptions
4844+
): Promise<DisassociateQueueEmailAddressesCommandOutput>;
4845+
disassociateQueueEmailAddresses(
4846+
args: DisassociateQueueEmailAddressesCommandInput,
4847+
cb: (err: any, data?: DisassociateQueueEmailAddressesCommandOutput) => void
4848+
): void;
4849+
disassociateQueueEmailAddresses(
4850+
args: DisassociateQueueEmailAddressesCommandInput,
4851+
options: __HttpHandlerOptions,
4852+
cb: (err: any, data?: DisassociateQueueEmailAddressesCommandOutput) => void
4853+
): void;
4854+
48034855
/**
48044856
* @see {@link DisassociateQueueQuickConnectsCommand}
48054857
*/
@@ -5856,6 +5908,23 @@ export interface Connect {
58565908
cb: (err: any, data?: ListPromptsCommandOutput) => void
58575909
): void;
58585910

5911+
/**
5912+
* @see {@link ListQueueEmailAddressesCommand}
5913+
*/
5914+
listQueueEmailAddresses(
5915+
args: ListQueueEmailAddressesCommandInput,
5916+
options?: __HttpHandlerOptions
5917+
): Promise<ListQueueEmailAddressesCommandOutput>;
5918+
listQueueEmailAddresses(
5919+
args: ListQueueEmailAddressesCommandInput,
5920+
cb: (err: any, data?: ListQueueEmailAddressesCommandOutput) => void
5921+
): void;
5922+
listQueueEmailAddresses(
5923+
args: ListQueueEmailAddressesCommandInput,
5924+
options: __HttpHandlerOptions,
5925+
cb: (err: any, data?: ListQueueEmailAddressesCommandOutput) => void
5926+
): void;
5927+
58595928
/**
58605929
* @see {@link ListQueueQuickConnectsCommand}
58615930
*/

clients/client-connect/src/ConnectClient.ts

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,10 @@ import {
106106
AssociatePhoneNumberContactFlowCommandInput,
107107
AssociatePhoneNumberContactFlowCommandOutput,
108108
} from "./commands/AssociatePhoneNumberContactFlowCommand";
109+
import {
110+
AssociateQueueEmailAddressesCommandInput,
111+
AssociateQueueEmailAddressesCommandOutput,
112+
} from "./commands/AssociateQueueEmailAddressesCommand";
109113
import {
110114
AssociateQueueQuickConnectsCommandInput,
111115
AssociateQueueQuickConnectsCommandOutput,
@@ -481,6 +485,10 @@ import {
481485
DisassociatePhoneNumberContactFlowCommandInput,
482486
DisassociatePhoneNumberContactFlowCommandOutput,
483487
} from "./commands/DisassociatePhoneNumberContactFlowCommand";
488+
import {
489+
DisassociateQueueEmailAddressesCommandInput,
490+
DisassociateQueueEmailAddressesCommandOutput,
491+
} from "./commands/DisassociateQueueEmailAddressesCommand";
484492
import {
485493
DisassociateQueueQuickConnectsCommandInput,
486494
DisassociateQueueQuickConnectsCommandOutput,
@@ -666,6 +674,10 @@ import {
666674
ListPredefinedAttributesCommandOutput,
667675
} from "./commands/ListPredefinedAttributesCommand";
668676
import { ListPromptsCommandInput, ListPromptsCommandOutput } from "./commands/ListPromptsCommand";
677+
import {
678+
ListQueueEmailAddressesCommandInput,
679+
ListQueueEmailAddressesCommandOutput,
680+
} from "./commands/ListQueueEmailAddressesCommand";
669681
import {
670682
ListQueueQuickConnectsCommandInput,
671683
ListQueueQuickConnectsCommandOutput,
@@ -1148,6 +1160,7 @@ export type ServiceInputTypes =
11481160
| AssociateLambdaFunctionCommandInput
11491161
| AssociateLexBotCommandInput
11501162
| AssociatePhoneNumberContactFlowCommandInput
1163+
| AssociateQueueEmailAddressesCommandInput
11511164
| AssociateQueueQuickConnectsCommandInput
11521165
| AssociateRoutingProfileQueuesCommandInput
11531166
| AssociateSecurityKeyCommandInput
@@ -1283,6 +1296,7 @@ export type ServiceInputTypes =
12831296
| DisassociateLambdaFunctionCommandInput
12841297
| DisassociateLexBotCommandInput
12851298
| DisassociatePhoneNumberContactFlowCommandInput
1299+
| DisassociateQueueEmailAddressesCommandInput
12861300
| DisassociateQueueQuickConnectsCommandInput
12871301
| DisassociateRoutingProfileQueuesCommandInput
12881302
| DisassociateSecurityKeyCommandInput
@@ -1345,6 +1359,7 @@ export type ServiceInputTypes =
13451359
| ListPhoneNumbersV2CommandInput
13461360
| ListPredefinedAttributesCommandInput
13471361
| ListPromptsCommandInput
1362+
| ListQueueEmailAddressesCommandInput
13481363
| ListQueueQuickConnectsCommandInput
13491364
| ListQueuesCommandInput
13501365
| ListQuickConnectsCommandInput
@@ -1517,6 +1532,7 @@ export type ServiceOutputTypes =
15171532
| AssociateLambdaFunctionCommandOutput
15181533
| AssociateLexBotCommandOutput
15191534
| AssociatePhoneNumberContactFlowCommandOutput
1535+
| AssociateQueueEmailAddressesCommandOutput
15201536
| AssociateQueueQuickConnectsCommandOutput
15211537
| AssociateRoutingProfileQueuesCommandOutput
15221538
| AssociateSecurityKeyCommandOutput
@@ -1652,6 +1668,7 @@ export type ServiceOutputTypes =
16521668
| DisassociateLambdaFunctionCommandOutput
16531669
| DisassociateLexBotCommandOutput
16541670
| DisassociatePhoneNumberContactFlowCommandOutput
1671+
| DisassociateQueueEmailAddressesCommandOutput
16551672
| DisassociateQueueQuickConnectsCommandOutput
16561673
| DisassociateRoutingProfileQueuesCommandOutput
16571674
| DisassociateSecurityKeyCommandOutput
@@ -1714,6 +1731,7 @@ export type ServiceOutputTypes =
17141731
| ListPhoneNumbersV2CommandOutput
17151732
| ListPredefinedAttributesCommandOutput
17161733
| ListPromptsCommandOutput
1734+
| ListQueueEmailAddressesCommandOutput
17171735
| ListQueueQuickConnectsCommandOutput
17181736
| ListQueuesCommandOutput
17191737
| ListQuickConnectsCommandOutput
Lines changed: 135 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,135 @@
1+
// smithy-typescript generated code
2+
import { getEndpointPlugin } from "@smithy/middleware-endpoint";
3+
import { Command as $Command } from "@smithy/smithy-client";
4+
import type { MetadataBearer as __MetadataBearer } from "@smithy/types";
5+
6+
import type { ConnectClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../ConnectClient";
7+
import { commonParams } from "../endpoint/EndpointParameters";
8+
import type { AssociateQueueEmailAddressesRequest } from "../models/models_0";
9+
import { AssociateQueueEmailAddresses$ } from "../schemas/schemas_0";
10+
11+
/**
12+
* @public
13+
*/
14+
export type { __MetadataBearer };
15+
export { $Command };
16+
/**
17+
* @public
18+
*
19+
* The input for {@link AssociateQueueEmailAddressesCommand}.
20+
*/
21+
export interface AssociateQueueEmailAddressesCommandInput extends AssociateQueueEmailAddressesRequest {}
22+
/**
23+
* @public
24+
*
25+
* The output of {@link AssociateQueueEmailAddressesCommand}.
26+
*/
27+
export interface AssociateQueueEmailAddressesCommandOutput extends __MetadataBearer {}
28+
29+
/**
30+
* <p>Associates a set of email addresses with a queue to enable agents to select different "From" (system) email addresses when replying to inbound email contacts or initiating outbound email contacts. This allows agents to handle email contacts across different brands and business units within the same queue.</p>
31+
* <p>
32+
* <b>Important things to know</b>
33+
* </p>
34+
* <ul>
35+
* <li>
36+
* <p>You can associate up to 49 additional email addresses with a single queue, plus 1 default outbound email address, for a total of 50.</p>
37+
* </li>
38+
* <li>
39+
* <p>The email addresses must already exist in the Amazon Connect instance before they can be associated with a queue.</p>
40+
* </li>
41+
* <li>
42+
* <p>Agents will be able to select from these associated email addresses when handling email contacts in the queue.</p>
43+
* </li>
44+
* <li>
45+
* <p>For inbound email contacts, agents can select from email addresses associated with the queue where the contact was accepted.</p>
46+
* </li>
47+
* <li>
48+
* <p>For outbound email contacts, agents can select from email addresses associated with their default outbound queue configured in their routing profile.</p>
49+
* </li>
50+
* </ul>
51+
* @example
52+
* Use a bare-bones client and the command you need to make an API call.
53+
* ```javascript
54+
* import { ConnectClient, AssociateQueueEmailAddressesCommand } from "@aws-sdk/client-connect"; // ES Modules import
55+
* // const { ConnectClient, AssociateQueueEmailAddressesCommand } = require("@aws-sdk/client-connect"); // CommonJS import
56+
* // import type { ConnectClientConfig } from "@aws-sdk/client-connect";
57+
* const config = {}; // type is ConnectClientConfig
58+
* const client = new ConnectClient(config);
59+
* const input = { // AssociateQueueEmailAddressesRequest
60+
* InstanceId: "STRING_VALUE", // required
61+
* QueueId: "STRING_VALUE", // required
62+
* EmailAddressesConfig: [ // EmailAddressConfigList // required
63+
* { // EmailAddressConfig
64+
* EmailAddressId: "STRING_VALUE", // required
65+
* },
66+
* ],
67+
* ClientToken: "STRING_VALUE",
68+
* };
69+
* const command = new AssociateQueueEmailAddressesCommand(input);
70+
* const response = await client.send(command);
71+
* // {};
72+
*
73+
* ```
74+
*
75+
* @param AssociateQueueEmailAddressesCommandInput - {@link AssociateQueueEmailAddressesCommandInput}
76+
* @returns {@link AssociateQueueEmailAddressesCommandOutput}
77+
* @see {@link AssociateQueueEmailAddressesCommandInput} for command's `input` shape.
78+
* @see {@link AssociateQueueEmailAddressesCommandOutput} for command's `response` shape.
79+
* @see {@link ConnectClientResolvedConfig | config} for ConnectClient's `config` shape.
80+
*
81+
* @throws {@link AccessDeniedException} (client fault)
82+
* <p>You do not have sufficient permissions to perform this action.</p>
83+
*
84+
* @throws {@link InternalServiceException} (server fault)
85+
* <p>Request processing failed because of an error or failure with the service.</p>
86+
*
87+
* @throws {@link InvalidParameterException} (client fault)
88+
* <p>One or more of the specified parameters are not valid.</p>
89+
*
90+
* @throws {@link InvalidRequestException} (client fault)
91+
* <p>The request is not valid.</p>
92+
*
93+
* @throws {@link LimitExceededException} (client fault)
94+
* <p>The allowed limit for the resource has been exceeded.</p>
95+
*
96+
* @throws {@link ResourceNotFoundException} (client fault)
97+
* <p>The specified resource was not found.</p>
98+
*
99+
* @throws {@link ThrottlingException} (client fault)
100+
* <p>The throttling limit has been exceeded.</p>
101+
*
102+
* @throws {@link ConnectServiceException}
103+
* <p>Base exception class for all service exceptions from Connect service.</p>
104+
*
105+
*
106+
* @public
107+
*/
108+
export class AssociateQueueEmailAddressesCommand extends $Command
109+
.classBuilder<
110+
AssociateQueueEmailAddressesCommandInput,
111+
AssociateQueueEmailAddressesCommandOutput,
112+
ConnectClientResolvedConfig,
113+
ServiceInputTypes,
114+
ServiceOutputTypes
115+
>()
116+
.ep(commonParams)
117+
.m(function (this: any, Command: any, cs: any, config: ConnectClientResolvedConfig, o: any) {
118+
return [getEndpointPlugin(config, Command.getEndpointParameterInstructions())];
119+
})
120+
.s("AmazonConnectService", "AssociateQueueEmailAddresses", {})
121+
.n("ConnectClient", "AssociateQueueEmailAddressesCommand")
122+
.sc(AssociateQueueEmailAddresses$)
123+
.build() {
124+
/** @internal type navigation helper, not in runtime. */
125+
protected declare static __types: {
126+
api: {
127+
input: AssociateQueueEmailAddressesRequest;
128+
output: {};
129+
};
130+
sdk: {
131+
input: AssociateQueueEmailAddressesCommandInput;
132+
output: AssociateQueueEmailAddressesCommandOutput;
133+
};
134+
};
135+
}

0 commit comments

Comments
 (0)