Skip to content

Commit

Permalink
feat(client-connect): This release adds APIs to search, claim, releas…
Browse files Browse the repository at this point in the history
…e, list, update, and describe phone numbers. You can also use them to associate and disassociate contact flows to phone numbers.
  • Loading branch information
awstools committed Apr 20, 2022
1 parent ee4defd commit 78e0c59
Show file tree
Hide file tree
Showing 23 changed files with 4,710 additions and 1,091 deletions.
300 changes: 299 additions & 1 deletion clients/client-connect/src/Connect.ts

Large diffs are not rendered by default.

36 changes: 36 additions & 0 deletions clients/client-connect/src/ConnectClient.ts
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,10 @@ import {
AssociateLambdaFunctionCommandOutput,
} from "./commands/AssociateLambdaFunctionCommand";
import { AssociateLexBotCommandInput, AssociateLexBotCommandOutput } from "./commands/AssociateLexBotCommand";
import {
AssociatePhoneNumberContactFlowCommandInput,
AssociatePhoneNumberContactFlowCommandOutput,
} from "./commands/AssociatePhoneNumberContactFlowCommand";
import {
AssociateQueueQuickConnectsCommandInput,
AssociateQueueQuickConnectsCommandOutput,
Expand All @@ -81,6 +85,7 @@ import {
AssociateSecurityKeyCommandInput,
AssociateSecurityKeyCommandOutput,
} from "./commands/AssociateSecurityKeyCommand";
import { ClaimPhoneNumberCommandInput, ClaimPhoneNumberCommandOutput } from "./commands/ClaimPhoneNumberCommand";
import { CreateAgentStatusCommandInput, CreateAgentStatusCommandOutput } from "./commands/CreateAgentStatusCommand";
import { CreateContactFlowCommandInput, CreateContactFlowCommandOutput } from "./commands/CreateContactFlowCommand";
import {
Expand Down Expand Up @@ -165,6 +170,10 @@ import {
DescribeInstanceStorageConfigCommandInput,
DescribeInstanceStorageConfigCommandOutput,
} from "./commands/DescribeInstanceStorageConfigCommand";
import {
DescribePhoneNumberCommandInput,
DescribePhoneNumberCommandOutput,
} from "./commands/DescribePhoneNumberCommand";
import { DescribeQueueCommandInput, DescribeQueueCommandOutput } from "./commands/DescribeQueueCommand";
import {
DescribeQuickConnectCommandInput,
Expand Down Expand Up @@ -202,6 +211,10 @@ import {
DisassociateLambdaFunctionCommandOutput,
} from "./commands/DisassociateLambdaFunctionCommand";
import { DisassociateLexBotCommandInput, DisassociateLexBotCommandOutput } from "./commands/DisassociateLexBotCommand";
import {
DisassociatePhoneNumberContactFlowCommandInput,
DisassociatePhoneNumberContactFlowCommandOutput,
} from "./commands/DisassociatePhoneNumberContactFlowCommand";
import {
DisassociateQueueQuickConnectsCommandInput,
DisassociateQueueQuickConnectsCommandOutput,
Expand Down Expand Up @@ -266,6 +279,7 @@ import {
} from "./commands/ListLambdaFunctionsCommand";
import { ListLexBotsCommandInput, ListLexBotsCommandOutput } from "./commands/ListLexBotsCommand";
import { ListPhoneNumbersCommandInput, ListPhoneNumbersCommandOutput } from "./commands/ListPhoneNumbersCommand";
import { ListPhoneNumbersV2CommandInput, ListPhoneNumbersV2CommandOutput } from "./commands/ListPhoneNumbersV2Command";
import { ListPromptsCommandInput, ListPromptsCommandOutput } from "./commands/ListPromptsCommand";
import {
ListQueueQuickConnectsCommandInput,
Expand Down Expand Up @@ -300,10 +314,15 @@ import {
ListUserHierarchyGroupsCommandOutput,
} from "./commands/ListUserHierarchyGroupsCommand";
import { ListUsersCommandInput, ListUsersCommandOutput } from "./commands/ListUsersCommand";
import { ReleasePhoneNumberCommandInput, ReleasePhoneNumberCommandOutput } from "./commands/ReleasePhoneNumberCommand";
import {
ResumeContactRecordingCommandInput,
ResumeContactRecordingCommandOutput,
} from "./commands/ResumeContactRecordingCommand";
import {
SearchAvailablePhoneNumbersCommandInput,
SearchAvailablePhoneNumbersCommandOutput,
} from "./commands/SearchAvailablePhoneNumbersCommand";
import { SearchVocabulariesCommandInput, SearchVocabulariesCommandOutput } from "./commands/SearchVocabulariesCommand";
import { StartChatContactCommandInput, StartChatContactCommandOutput } from "./commands/StartChatContactCommand";
import {
Expand Down Expand Up @@ -376,6 +395,7 @@ import {
UpdateInstanceStorageConfigCommandInput,
UpdateInstanceStorageConfigCommandOutput,
} from "./commands/UpdateInstanceStorageConfigCommand";
import { UpdatePhoneNumberCommandInput, UpdatePhoneNumberCommandOutput } from "./commands/UpdatePhoneNumberCommand";
import {
UpdateQueueHoursOfOperationCommandInput,
UpdateQueueHoursOfOperationCommandOutput,
Expand Down Expand Up @@ -455,9 +475,11 @@ export type ServiceInputTypes =
| AssociateInstanceStorageConfigCommandInput
| AssociateLambdaFunctionCommandInput
| AssociateLexBotCommandInput
| AssociatePhoneNumberContactFlowCommandInput
| AssociateQueueQuickConnectsCommandInput
| AssociateRoutingProfileQueuesCommandInput
| AssociateSecurityKeyCommandInput
| ClaimPhoneNumberCommandInput
| CreateAgentStatusCommandInput
| CreateContactFlowCommandInput
| CreateContactFlowModuleCommandInput
Expand Down Expand Up @@ -491,6 +513,7 @@ export type ServiceInputTypes =
| DescribeInstanceAttributeCommandInput
| DescribeInstanceCommandInput
| DescribeInstanceStorageConfigCommandInput
| DescribePhoneNumberCommandInput
| DescribeQueueCommandInput
| DescribeQuickConnectCommandInput
| DescribeRoutingProfileCommandInput
Expand All @@ -504,6 +527,7 @@ export type ServiceInputTypes =
| DisassociateInstanceStorageConfigCommandInput
| DisassociateLambdaFunctionCommandInput
| DisassociateLexBotCommandInput
| DisassociatePhoneNumberContactFlowCommandInput
| DisassociateQueueQuickConnectsCommandInput
| DisassociateRoutingProfileQueuesCommandInput
| DisassociateSecurityKeyCommandInput
Expand All @@ -526,6 +550,7 @@ export type ServiceInputTypes =
| ListLambdaFunctionsCommandInput
| ListLexBotsCommandInput
| ListPhoneNumbersCommandInput
| ListPhoneNumbersV2CommandInput
| ListPromptsCommandInput
| ListQueueQuickConnectsCommandInput
| ListQueuesCommandInput
Expand All @@ -539,7 +564,9 @@ export type ServiceInputTypes =
| ListUseCasesCommandInput
| ListUserHierarchyGroupsCommandInput
| ListUsersCommandInput
| ReleasePhoneNumberCommandInput
| ResumeContactRecordingCommandInput
| SearchAvailablePhoneNumbersCommandInput
| SearchVocabulariesCommandInput
| StartChatContactCommandInput
| StartContactRecordingCommandInput
Expand All @@ -564,6 +591,7 @@ export type ServiceInputTypes =
| UpdateHoursOfOperationCommandInput
| UpdateInstanceAttributeCommandInput
| UpdateInstanceStorageConfigCommandInput
| UpdatePhoneNumberCommandInput
| UpdateQueueHoursOfOperationCommandInput
| UpdateQueueMaxContactsCommandInput
| UpdateQueueNameCommandInput
Expand Down Expand Up @@ -591,9 +619,11 @@ export type ServiceOutputTypes =
| AssociateInstanceStorageConfigCommandOutput
| AssociateLambdaFunctionCommandOutput
| AssociateLexBotCommandOutput
| AssociatePhoneNumberContactFlowCommandOutput
| AssociateQueueQuickConnectsCommandOutput
| AssociateRoutingProfileQueuesCommandOutput
| AssociateSecurityKeyCommandOutput
| ClaimPhoneNumberCommandOutput
| CreateAgentStatusCommandOutput
| CreateContactFlowCommandOutput
| CreateContactFlowModuleCommandOutput
Expand Down Expand Up @@ -627,6 +657,7 @@ export type ServiceOutputTypes =
| DescribeInstanceAttributeCommandOutput
| DescribeInstanceCommandOutput
| DescribeInstanceStorageConfigCommandOutput
| DescribePhoneNumberCommandOutput
| DescribeQueueCommandOutput
| DescribeQuickConnectCommandOutput
| DescribeRoutingProfileCommandOutput
Expand All @@ -640,6 +671,7 @@ export type ServiceOutputTypes =
| DisassociateInstanceStorageConfigCommandOutput
| DisassociateLambdaFunctionCommandOutput
| DisassociateLexBotCommandOutput
| DisassociatePhoneNumberContactFlowCommandOutput
| DisassociateQueueQuickConnectsCommandOutput
| DisassociateRoutingProfileQueuesCommandOutput
| DisassociateSecurityKeyCommandOutput
Expand All @@ -662,6 +694,7 @@ export type ServiceOutputTypes =
| ListLambdaFunctionsCommandOutput
| ListLexBotsCommandOutput
| ListPhoneNumbersCommandOutput
| ListPhoneNumbersV2CommandOutput
| ListPromptsCommandOutput
| ListQueueQuickConnectsCommandOutput
| ListQueuesCommandOutput
Expand All @@ -675,7 +708,9 @@ export type ServiceOutputTypes =
| ListUseCasesCommandOutput
| ListUserHierarchyGroupsCommandOutput
| ListUsersCommandOutput
| ReleasePhoneNumberCommandOutput
| ResumeContactRecordingCommandOutput
| SearchAvailablePhoneNumbersCommandOutput
| SearchVocabulariesCommandOutput
| StartChatContactCommandOutput
| StartContactRecordingCommandOutput
Expand All @@ -700,6 +735,7 @@ export type ServiceOutputTypes =
| UpdateHoursOfOperationCommandOutput
| UpdateInstanceAttributeCommandOutput
| UpdateInstanceStorageConfigCommandOutput
| UpdatePhoneNumberCommandOutput
| UpdateQueueHoursOfOperationCommandOutput
| UpdateQueueMaxContactsCommandOutput
| UpdateQueueNameCommandOutput
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,101 @@
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 { ConnectClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../ConnectClient";
import { AssociatePhoneNumberContactFlowRequest } from "../models/models_0";
import {
deserializeAws_restJson1AssociatePhoneNumberContactFlowCommand,
serializeAws_restJson1AssociatePhoneNumberContactFlowCommand,
} from "../protocols/Aws_restJson1";

export interface AssociatePhoneNumberContactFlowCommandInput extends AssociatePhoneNumberContactFlowRequest {}
export interface AssociatePhoneNumberContactFlowCommandOutput extends __MetadataBearer {}

/**
* <p>Associates a contact flow with a phone number claimed to your Amazon Connect instance.</p>
* @example
* Use a bare-bones client and the command you need to make an API call.
* ```javascript
* import { ConnectClient, AssociatePhoneNumberContactFlowCommand } from "@aws-sdk/client-connect"; // ES Modules import
* // const { ConnectClient, AssociatePhoneNumberContactFlowCommand } = require("@aws-sdk/client-connect"); // CommonJS import
* const client = new ConnectClient(config);
* const command = new AssociatePhoneNumberContactFlowCommand(input);
* const response = await client.send(command);
* ```
*
* @see {@link AssociatePhoneNumberContactFlowCommandInput} for command's `input` shape.
* @see {@link AssociatePhoneNumberContactFlowCommandOutput} for command's `response` shape.
* @see {@link ConnectClientResolvedConfig | config} for ConnectClient's `config` shape.
*
*/
export class AssociatePhoneNumberContactFlowCommand extends $Command<
AssociatePhoneNumberContactFlowCommandInput,
AssociatePhoneNumberContactFlowCommandOutput,
ConnectClientResolvedConfig
> {
// Start section: command_properties
// End section: command_properties

constructor(readonly input: AssociatePhoneNumberContactFlowCommandInput) {
// Start section: command_constructor
super();
// End section: command_constructor
}

/**
* @internal
*/
resolveMiddleware(
clientStack: MiddlewareStack<ServiceInputTypes, ServiceOutputTypes>,
configuration: ConnectClientResolvedConfig,
options?: __HttpHandlerOptions
): Handler<AssociatePhoneNumberContactFlowCommandInput, AssociatePhoneNumberContactFlowCommandOutput> {
this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));

const stack = clientStack.concat(this.middlewareStack);

const { logger } = configuration;
const clientName = "ConnectClient";
const commandName = "AssociatePhoneNumberContactFlowCommand";
const handlerExecutionContext: HandlerExecutionContext = {
logger,
clientName,
commandName,
inputFilterSensitiveLog: AssociatePhoneNumberContactFlowRequest.filterSensitiveLog,
outputFilterSensitiveLog: (output: any) => output,
};
const { requestHandler } = configuration;
return stack.resolve(
(request: FinalizeHandlerArguments<any>) =>
requestHandler.handle(request.request as __HttpRequest, options || {}),
handlerExecutionContext
);
}

private serialize(
input: AssociatePhoneNumberContactFlowCommandInput,
context: __SerdeContext
): Promise<__HttpRequest> {
return serializeAws_restJson1AssociatePhoneNumberContactFlowCommand(input, context);
}

private deserialize(
output: __HttpResponse,
context: __SerdeContext
): Promise<AssociatePhoneNumberContactFlowCommandOutput> {
return deserializeAws_restJson1AssociatePhoneNumberContactFlowCommand(output, context);
}

// Start section: command_body_extra
// End section: command_body_extra
}
95 changes: 95 additions & 0 deletions clients/client-connect/src/commands/ClaimPhoneNumberCommand.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@
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 { ConnectClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../ConnectClient";
import { ClaimPhoneNumberRequest, ClaimPhoneNumberResponse } from "../models/models_0";
import {
deserializeAws_restJson1ClaimPhoneNumberCommand,
serializeAws_restJson1ClaimPhoneNumberCommand,
} from "../protocols/Aws_restJson1";

export interface ClaimPhoneNumberCommandInput extends ClaimPhoneNumberRequest {}
export interface ClaimPhoneNumberCommandOutput extends ClaimPhoneNumberResponse, __MetadataBearer {}

/**
* <p>Claims an available phone number to your Amazon Connect instance.</p>
* @example
* Use a bare-bones client and the command you need to make an API call.
* ```javascript
* import { ConnectClient, ClaimPhoneNumberCommand } from "@aws-sdk/client-connect"; // ES Modules import
* // const { ConnectClient, ClaimPhoneNumberCommand } = require("@aws-sdk/client-connect"); // CommonJS import
* const client = new ConnectClient(config);
* const command = new ClaimPhoneNumberCommand(input);
* const response = await client.send(command);
* ```
*
* @see {@link ClaimPhoneNumberCommandInput} for command's `input` shape.
* @see {@link ClaimPhoneNumberCommandOutput} for command's `response` shape.
* @see {@link ConnectClientResolvedConfig | config} for ConnectClient's `config` shape.
*
*/
export class ClaimPhoneNumberCommand extends $Command<
ClaimPhoneNumberCommandInput,
ClaimPhoneNumberCommandOutput,
ConnectClientResolvedConfig
> {
// Start section: command_properties
// End section: command_properties

constructor(readonly input: ClaimPhoneNumberCommandInput) {
// Start section: command_constructor
super();
// End section: command_constructor
}

/**
* @internal
*/
resolveMiddleware(
clientStack: MiddlewareStack<ServiceInputTypes, ServiceOutputTypes>,
configuration: ConnectClientResolvedConfig,
options?: __HttpHandlerOptions
): Handler<ClaimPhoneNumberCommandInput, ClaimPhoneNumberCommandOutput> {
this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));

const stack = clientStack.concat(this.middlewareStack);

const { logger } = configuration;
const clientName = "ConnectClient";
const commandName = "ClaimPhoneNumberCommand";
const handlerExecutionContext: HandlerExecutionContext = {
logger,
clientName,
commandName,
inputFilterSensitiveLog: ClaimPhoneNumberRequest.filterSensitiveLog,
outputFilterSensitiveLog: ClaimPhoneNumberResponse.filterSensitiveLog,
};
const { requestHandler } = configuration;
return stack.resolve(
(request: FinalizeHandlerArguments<any>) =>
requestHandler.handle(request.request as __HttpRequest, options || {}),
handlerExecutionContext
);
}

private serialize(input: ClaimPhoneNumberCommandInput, context: __SerdeContext): Promise<__HttpRequest> {
return serializeAws_restJson1ClaimPhoneNumberCommand(input, context);
}

private deserialize(output: __HttpResponse, context: __SerdeContext): Promise<ClaimPhoneNumberCommandOutput> {
return deserializeAws_restJson1ClaimPhoneNumberCommand(output, context);
}

// Start section: command_body_extra
// End section: command_body_extra
}

0 comments on commit 78e0c59

Please sign in to comment.