Skip to content

Commit 78e0c59

Browse files
author
awstools
committed
feat(client-connect): This release adds APIs to search, claim, release, list, update, and describe phone numbers. You can also use them to associate and disassociate contact flows to phone numbers.
1 parent ee4defd commit 78e0c59

23 files changed

+4710
-1091
lines changed

clients/client-connect/src/Connect.ts

Lines changed: 299 additions & 1 deletion
Large diffs are not rendered by default.

clients/client-connect/src/ConnectClient.ts

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,10 @@ import {
6969
AssociateLambdaFunctionCommandOutput,
7070
} from "./commands/AssociateLambdaFunctionCommand";
7171
import { AssociateLexBotCommandInput, AssociateLexBotCommandOutput } from "./commands/AssociateLexBotCommand";
72+
import {
73+
AssociatePhoneNumberContactFlowCommandInput,
74+
AssociatePhoneNumberContactFlowCommandOutput,
75+
} from "./commands/AssociatePhoneNumberContactFlowCommand";
7276
import {
7377
AssociateQueueQuickConnectsCommandInput,
7478
AssociateQueueQuickConnectsCommandOutput,
@@ -81,6 +85,7 @@ import {
8185
AssociateSecurityKeyCommandInput,
8286
AssociateSecurityKeyCommandOutput,
8387
} from "./commands/AssociateSecurityKeyCommand";
88+
import { ClaimPhoneNumberCommandInput, ClaimPhoneNumberCommandOutput } from "./commands/ClaimPhoneNumberCommand";
8489
import { CreateAgentStatusCommandInput, CreateAgentStatusCommandOutput } from "./commands/CreateAgentStatusCommand";
8590
import { CreateContactFlowCommandInput, CreateContactFlowCommandOutput } from "./commands/CreateContactFlowCommand";
8691
import {
@@ -165,6 +170,10 @@ import {
165170
DescribeInstanceStorageConfigCommandInput,
166171
DescribeInstanceStorageConfigCommandOutput,
167172
} from "./commands/DescribeInstanceStorageConfigCommand";
173+
import {
174+
DescribePhoneNumberCommandInput,
175+
DescribePhoneNumberCommandOutput,
176+
} from "./commands/DescribePhoneNumberCommand";
168177
import { DescribeQueueCommandInput, DescribeQueueCommandOutput } from "./commands/DescribeQueueCommand";
169178
import {
170179
DescribeQuickConnectCommandInput,
@@ -202,6 +211,10 @@ import {
202211
DisassociateLambdaFunctionCommandOutput,
203212
} from "./commands/DisassociateLambdaFunctionCommand";
204213
import { DisassociateLexBotCommandInput, DisassociateLexBotCommandOutput } from "./commands/DisassociateLexBotCommand";
214+
import {
215+
DisassociatePhoneNumberContactFlowCommandInput,
216+
DisassociatePhoneNumberContactFlowCommandOutput,
217+
} from "./commands/DisassociatePhoneNumberContactFlowCommand";
205218
import {
206219
DisassociateQueueQuickConnectsCommandInput,
207220
DisassociateQueueQuickConnectsCommandOutput,
@@ -266,6 +279,7 @@ import {
266279
} from "./commands/ListLambdaFunctionsCommand";
267280
import { ListLexBotsCommandInput, ListLexBotsCommandOutput } from "./commands/ListLexBotsCommand";
268281
import { ListPhoneNumbersCommandInput, ListPhoneNumbersCommandOutput } from "./commands/ListPhoneNumbersCommand";
282+
import { ListPhoneNumbersV2CommandInput, ListPhoneNumbersV2CommandOutput } from "./commands/ListPhoneNumbersV2Command";
269283
import { ListPromptsCommandInput, ListPromptsCommandOutput } from "./commands/ListPromptsCommand";
270284
import {
271285
ListQueueQuickConnectsCommandInput,
@@ -300,10 +314,15 @@ import {
300314
ListUserHierarchyGroupsCommandOutput,
301315
} from "./commands/ListUserHierarchyGroupsCommand";
302316
import { ListUsersCommandInput, ListUsersCommandOutput } from "./commands/ListUsersCommand";
317+
import { ReleasePhoneNumberCommandInput, ReleasePhoneNumberCommandOutput } from "./commands/ReleasePhoneNumberCommand";
303318
import {
304319
ResumeContactRecordingCommandInput,
305320
ResumeContactRecordingCommandOutput,
306321
} from "./commands/ResumeContactRecordingCommand";
322+
import {
323+
SearchAvailablePhoneNumbersCommandInput,
324+
SearchAvailablePhoneNumbersCommandOutput,
325+
} from "./commands/SearchAvailablePhoneNumbersCommand";
307326
import { SearchVocabulariesCommandInput, SearchVocabulariesCommandOutput } from "./commands/SearchVocabulariesCommand";
308327
import { StartChatContactCommandInput, StartChatContactCommandOutput } from "./commands/StartChatContactCommand";
309328
import {
@@ -376,6 +395,7 @@ import {
376395
UpdateInstanceStorageConfigCommandInput,
377396
UpdateInstanceStorageConfigCommandOutput,
378397
} from "./commands/UpdateInstanceStorageConfigCommand";
398+
import { UpdatePhoneNumberCommandInput, UpdatePhoneNumberCommandOutput } from "./commands/UpdatePhoneNumberCommand";
379399
import {
380400
UpdateQueueHoursOfOperationCommandInput,
381401
UpdateQueueHoursOfOperationCommandOutput,
@@ -455,9 +475,11 @@ export type ServiceInputTypes =
455475
| AssociateInstanceStorageConfigCommandInput
456476
| AssociateLambdaFunctionCommandInput
457477
| AssociateLexBotCommandInput
478+
| AssociatePhoneNumberContactFlowCommandInput
458479
| AssociateQueueQuickConnectsCommandInput
459480
| AssociateRoutingProfileQueuesCommandInput
460481
| AssociateSecurityKeyCommandInput
482+
| ClaimPhoneNumberCommandInput
461483
| CreateAgentStatusCommandInput
462484
| CreateContactFlowCommandInput
463485
| CreateContactFlowModuleCommandInput
@@ -491,6 +513,7 @@ export type ServiceInputTypes =
491513
| DescribeInstanceAttributeCommandInput
492514
| DescribeInstanceCommandInput
493515
| DescribeInstanceStorageConfigCommandInput
516+
| DescribePhoneNumberCommandInput
494517
| DescribeQueueCommandInput
495518
| DescribeQuickConnectCommandInput
496519
| DescribeRoutingProfileCommandInput
@@ -504,6 +527,7 @@ export type ServiceInputTypes =
504527
| DisassociateInstanceStorageConfigCommandInput
505528
| DisassociateLambdaFunctionCommandInput
506529
| DisassociateLexBotCommandInput
530+
| DisassociatePhoneNumberContactFlowCommandInput
507531
| DisassociateQueueQuickConnectsCommandInput
508532
| DisassociateRoutingProfileQueuesCommandInput
509533
| DisassociateSecurityKeyCommandInput
@@ -526,6 +550,7 @@ export type ServiceInputTypes =
526550
| ListLambdaFunctionsCommandInput
527551
| ListLexBotsCommandInput
528552
| ListPhoneNumbersCommandInput
553+
| ListPhoneNumbersV2CommandInput
529554
| ListPromptsCommandInput
530555
| ListQueueQuickConnectsCommandInput
531556
| ListQueuesCommandInput
@@ -539,7 +564,9 @@ export type ServiceInputTypes =
539564
| ListUseCasesCommandInput
540565
| ListUserHierarchyGroupsCommandInput
541566
| ListUsersCommandInput
567+
| ReleasePhoneNumberCommandInput
542568
| ResumeContactRecordingCommandInput
569+
| SearchAvailablePhoneNumbersCommandInput
543570
| SearchVocabulariesCommandInput
544571
| StartChatContactCommandInput
545572
| StartContactRecordingCommandInput
@@ -564,6 +591,7 @@ export type ServiceInputTypes =
564591
| UpdateHoursOfOperationCommandInput
565592
| UpdateInstanceAttributeCommandInput
566593
| UpdateInstanceStorageConfigCommandInput
594+
| UpdatePhoneNumberCommandInput
567595
| UpdateQueueHoursOfOperationCommandInput
568596
| UpdateQueueMaxContactsCommandInput
569597
| UpdateQueueNameCommandInput
@@ -591,9 +619,11 @@ export type ServiceOutputTypes =
591619
| AssociateInstanceStorageConfigCommandOutput
592620
| AssociateLambdaFunctionCommandOutput
593621
| AssociateLexBotCommandOutput
622+
| AssociatePhoneNumberContactFlowCommandOutput
594623
| AssociateQueueQuickConnectsCommandOutput
595624
| AssociateRoutingProfileQueuesCommandOutput
596625
| AssociateSecurityKeyCommandOutput
626+
| ClaimPhoneNumberCommandOutput
597627
| CreateAgentStatusCommandOutput
598628
| CreateContactFlowCommandOutput
599629
| CreateContactFlowModuleCommandOutput
@@ -627,6 +657,7 @@ export type ServiceOutputTypes =
627657
| DescribeInstanceAttributeCommandOutput
628658
| DescribeInstanceCommandOutput
629659
| DescribeInstanceStorageConfigCommandOutput
660+
| DescribePhoneNumberCommandOutput
630661
| DescribeQueueCommandOutput
631662
| DescribeQuickConnectCommandOutput
632663
| DescribeRoutingProfileCommandOutput
@@ -640,6 +671,7 @@ export type ServiceOutputTypes =
640671
| DisassociateInstanceStorageConfigCommandOutput
641672
| DisassociateLambdaFunctionCommandOutput
642673
| DisassociateLexBotCommandOutput
674+
| DisassociatePhoneNumberContactFlowCommandOutput
643675
| DisassociateQueueQuickConnectsCommandOutput
644676
| DisassociateRoutingProfileQueuesCommandOutput
645677
| DisassociateSecurityKeyCommandOutput
@@ -662,6 +694,7 @@ export type ServiceOutputTypes =
662694
| ListLambdaFunctionsCommandOutput
663695
| ListLexBotsCommandOutput
664696
| ListPhoneNumbersCommandOutput
697+
| ListPhoneNumbersV2CommandOutput
665698
| ListPromptsCommandOutput
666699
| ListQueueQuickConnectsCommandOutput
667700
| ListQueuesCommandOutput
@@ -675,7 +708,9 @@ export type ServiceOutputTypes =
675708
| ListUseCasesCommandOutput
676709
| ListUserHierarchyGroupsCommandOutput
677710
| ListUsersCommandOutput
711+
| ReleasePhoneNumberCommandOutput
678712
| ResumeContactRecordingCommandOutput
713+
| SearchAvailablePhoneNumbersCommandOutput
679714
| SearchVocabulariesCommandOutput
680715
| StartChatContactCommandOutput
681716
| StartContactRecordingCommandOutput
@@ -700,6 +735,7 @@ export type ServiceOutputTypes =
700735
| UpdateHoursOfOperationCommandOutput
701736
| UpdateInstanceAttributeCommandOutput
702737
| UpdateInstanceStorageConfigCommandOutput
738+
| UpdatePhoneNumberCommandOutput
703739
| UpdateQueueHoursOfOperationCommandOutput
704740
| UpdateQueueMaxContactsCommandOutput
705741
| UpdateQueueNameCommandOutput
Lines changed: 101 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,101 @@
1+
import { getSerdePlugin } from "@aws-sdk/middleware-serde";
2+
import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http";
3+
import { Command as $Command } from "@aws-sdk/smithy-client";
4+
import {
5+
FinalizeHandlerArguments,
6+
Handler,
7+
HandlerExecutionContext,
8+
HttpHandlerOptions as __HttpHandlerOptions,
9+
MetadataBearer as __MetadataBearer,
10+
MiddlewareStack,
11+
SerdeContext as __SerdeContext,
12+
} from "@aws-sdk/types";
13+
14+
import { ConnectClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../ConnectClient";
15+
import { AssociatePhoneNumberContactFlowRequest } from "../models/models_0";
16+
import {
17+
deserializeAws_restJson1AssociatePhoneNumberContactFlowCommand,
18+
serializeAws_restJson1AssociatePhoneNumberContactFlowCommand,
19+
} from "../protocols/Aws_restJson1";
20+
21+
export interface AssociatePhoneNumberContactFlowCommandInput extends AssociatePhoneNumberContactFlowRequest {}
22+
export interface AssociatePhoneNumberContactFlowCommandOutput extends __MetadataBearer {}
23+
24+
/**
25+
* <p>Associates a contact flow with a phone number claimed to your Amazon Connect instance.</p>
26+
* @example
27+
* Use a bare-bones client and the command you need to make an API call.
28+
* ```javascript
29+
* import { ConnectClient, AssociatePhoneNumberContactFlowCommand } from "@aws-sdk/client-connect"; // ES Modules import
30+
* // const { ConnectClient, AssociatePhoneNumberContactFlowCommand } = require("@aws-sdk/client-connect"); // CommonJS import
31+
* const client = new ConnectClient(config);
32+
* const command = new AssociatePhoneNumberContactFlowCommand(input);
33+
* const response = await client.send(command);
34+
* ```
35+
*
36+
* @see {@link AssociatePhoneNumberContactFlowCommandInput} for command's `input` shape.
37+
* @see {@link AssociatePhoneNumberContactFlowCommandOutput} for command's `response` shape.
38+
* @see {@link ConnectClientResolvedConfig | config} for ConnectClient's `config` shape.
39+
*
40+
*/
41+
export class AssociatePhoneNumberContactFlowCommand extends $Command<
42+
AssociatePhoneNumberContactFlowCommandInput,
43+
AssociatePhoneNumberContactFlowCommandOutput,
44+
ConnectClientResolvedConfig
45+
> {
46+
// Start section: command_properties
47+
// End section: command_properties
48+
49+
constructor(readonly input: AssociatePhoneNumberContactFlowCommandInput) {
50+
// Start section: command_constructor
51+
super();
52+
// End section: command_constructor
53+
}
54+
55+
/**
56+
* @internal
57+
*/
58+
resolveMiddleware(
59+
clientStack: MiddlewareStack<ServiceInputTypes, ServiceOutputTypes>,
60+
configuration: ConnectClientResolvedConfig,
61+
options?: __HttpHandlerOptions
62+
): Handler<AssociatePhoneNumberContactFlowCommandInput, AssociatePhoneNumberContactFlowCommandOutput> {
63+
this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));
64+
65+
const stack = clientStack.concat(this.middlewareStack);
66+
67+
const { logger } = configuration;
68+
const clientName = "ConnectClient";
69+
const commandName = "AssociatePhoneNumberContactFlowCommand";
70+
const handlerExecutionContext: HandlerExecutionContext = {
71+
logger,
72+
clientName,
73+
commandName,
74+
inputFilterSensitiveLog: AssociatePhoneNumberContactFlowRequest.filterSensitiveLog,
75+
outputFilterSensitiveLog: (output: any) => output,
76+
};
77+
const { requestHandler } = configuration;
78+
return stack.resolve(
79+
(request: FinalizeHandlerArguments<any>) =>
80+
requestHandler.handle(request.request as __HttpRequest, options || {}),
81+
handlerExecutionContext
82+
);
83+
}
84+
85+
private serialize(
86+
input: AssociatePhoneNumberContactFlowCommandInput,
87+
context: __SerdeContext
88+
): Promise<__HttpRequest> {
89+
return serializeAws_restJson1AssociatePhoneNumberContactFlowCommand(input, context);
90+
}
91+
92+
private deserialize(
93+
output: __HttpResponse,
94+
context: __SerdeContext
95+
): Promise<AssociatePhoneNumberContactFlowCommandOutput> {
96+
return deserializeAws_restJson1AssociatePhoneNumberContactFlowCommand(output, context);
97+
}
98+
99+
// Start section: command_body_extra
100+
// End section: command_body_extra
101+
}
Lines changed: 95 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,95 @@
1+
import { getSerdePlugin } from "@aws-sdk/middleware-serde";
2+
import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http";
3+
import { Command as $Command } from "@aws-sdk/smithy-client";
4+
import {
5+
FinalizeHandlerArguments,
6+
Handler,
7+
HandlerExecutionContext,
8+
HttpHandlerOptions as __HttpHandlerOptions,
9+
MetadataBearer as __MetadataBearer,
10+
MiddlewareStack,
11+
SerdeContext as __SerdeContext,
12+
} from "@aws-sdk/types";
13+
14+
import { ConnectClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../ConnectClient";
15+
import { ClaimPhoneNumberRequest, ClaimPhoneNumberResponse } from "../models/models_0";
16+
import {
17+
deserializeAws_restJson1ClaimPhoneNumberCommand,
18+
serializeAws_restJson1ClaimPhoneNumberCommand,
19+
} from "../protocols/Aws_restJson1";
20+
21+
export interface ClaimPhoneNumberCommandInput extends ClaimPhoneNumberRequest {}
22+
export interface ClaimPhoneNumberCommandOutput extends ClaimPhoneNumberResponse, __MetadataBearer {}
23+
24+
/**
25+
* <p>Claims an available phone number to your Amazon Connect instance.</p>
26+
* @example
27+
* Use a bare-bones client and the command you need to make an API call.
28+
* ```javascript
29+
* import { ConnectClient, ClaimPhoneNumberCommand } from "@aws-sdk/client-connect"; // ES Modules import
30+
* // const { ConnectClient, ClaimPhoneNumberCommand } = require("@aws-sdk/client-connect"); // CommonJS import
31+
* const client = new ConnectClient(config);
32+
* const command = new ClaimPhoneNumberCommand(input);
33+
* const response = await client.send(command);
34+
* ```
35+
*
36+
* @see {@link ClaimPhoneNumberCommandInput} for command's `input` shape.
37+
* @see {@link ClaimPhoneNumberCommandOutput} for command's `response` shape.
38+
* @see {@link ConnectClientResolvedConfig | config} for ConnectClient's `config` shape.
39+
*
40+
*/
41+
export class ClaimPhoneNumberCommand extends $Command<
42+
ClaimPhoneNumberCommandInput,
43+
ClaimPhoneNumberCommandOutput,
44+
ConnectClientResolvedConfig
45+
> {
46+
// Start section: command_properties
47+
// End section: command_properties
48+
49+
constructor(readonly input: ClaimPhoneNumberCommandInput) {
50+
// Start section: command_constructor
51+
super();
52+
// End section: command_constructor
53+
}
54+
55+
/**
56+
* @internal
57+
*/
58+
resolveMiddleware(
59+
clientStack: MiddlewareStack<ServiceInputTypes, ServiceOutputTypes>,
60+
configuration: ConnectClientResolvedConfig,
61+
options?: __HttpHandlerOptions
62+
): Handler<ClaimPhoneNumberCommandInput, ClaimPhoneNumberCommandOutput> {
63+
this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));
64+
65+
const stack = clientStack.concat(this.middlewareStack);
66+
67+
const { logger } = configuration;
68+
const clientName = "ConnectClient";
69+
const commandName = "ClaimPhoneNumberCommand";
70+
const handlerExecutionContext: HandlerExecutionContext = {
71+
logger,
72+
clientName,
73+
commandName,
74+
inputFilterSensitiveLog: ClaimPhoneNumberRequest.filterSensitiveLog,
75+
outputFilterSensitiveLog: ClaimPhoneNumberResponse.filterSensitiveLog,
76+
};
77+
const { requestHandler } = configuration;
78+
return stack.resolve(
79+
(request: FinalizeHandlerArguments<any>) =>
80+
requestHandler.handle(request.request as __HttpRequest, options || {}),
81+
handlerExecutionContext
82+
);
83+
}
84+
85+
private serialize(input: ClaimPhoneNumberCommandInput, context: __SerdeContext): Promise<__HttpRequest> {
86+
return serializeAws_restJson1ClaimPhoneNumberCommand(input, context);
87+
}
88+
89+
private deserialize(output: __HttpResponse, context: __SerdeContext): Promise<ClaimPhoneNumberCommandOutput> {
90+
return deserializeAws_restJson1ClaimPhoneNumberCommand(output, context);
91+
}
92+
93+
// Start section: command_body_extra
94+
// End section: command_body_extra
95+
}

0 commit comments

Comments
 (0)