diff --git a/clients/client-connect/README.md b/clients/client-connect/README.md index cc080a3b7b31..2e0b34d6fc84 100644 --- a/clients/client-connect/README.md +++ b/clients/client-connect/README.md @@ -300,6 +300,14 @@ AssociateSecurityKey [Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-connect/classes/associatesecuritykeycommand.html) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-connect/interfaces/associatesecuritykeycommandinput.html) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-connect/interfaces/associatesecuritykeycommandoutput.html) + +
+ +AssociateTrafficDistributionGroupUser + + +[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-connect/classes/associatetrafficdistributiongroupusercommand.html) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-connect/interfaces/associatetrafficdistributiongroupusercommandinput.html) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-connect/interfaces/associatetrafficdistributiongroupusercommandoutput.html) +
@@ -876,6 +884,14 @@ DisassociateSecurityKey [Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-connect/classes/disassociatesecuritykeycommand.html) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-connect/interfaces/disassociatesecuritykeycommandinput.html) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-connect/interfaces/disassociatesecuritykeycommandoutput.html) +
+
+ +DisassociateTrafficDistributionGroupUser + + +[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-connect/classes/disassociatetrafficdistributiongroupusercommand.html) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-connect/interfaces/disassociatetrafficdistributiongroupusercommandinput.html) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-connect/interfaces/disassociatetrafficdistributiongroupusercommandoutput.html) +
@@ -1212,6 +1228,14 @@ ListTrafficDistributionGroups [Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-connect/classes/listtrafficdistributiongroupscommand.html) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-connect/interfaces/listtrafficdistributiongroupscommandinput.html) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-connect/interfaces/listtrafficdistributiongroupscommandoutput.html) +
+
+ +ListTrafficDistributionGroupUsers + + +[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-connect/classes/listtrafficdistributiongroupuserscommand.html) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-connect/interfaces/listtrafficdistributiongroupuserscommandinput.html) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-connect/interfaces/listtrafficdistributiongroupuserscommandoutput.html) +
diff --git a/clients/client-connect/src/Connect.ts b/clients/client-connect/src/Connect.ts index 1bd0149ea0b9..99a4abbd8a71 100644 --- a/clients/client-connect/src/Connect.ts +++ b/clients/client-connect/src/Connect.ts @@ -57,6 +57,11 @@ import { AssociateSecurityKeyCommandInput, AssociateSecurityKeyCommandOutput, } from "./commands/AssociateSecurityKeyCommand"; +import { + AssociateTrafficDistributionGroupUserCommand, + AssociateTrafficDistributionGroupUserCommandInput, + AssociateTrafficDistributionGroupUserCommandOutput, +} from "./commands/AssociateTrafficDistributionGroupUserCommand"; import { ClaimPhoneNumberCommand, ClaimPhoneNumberCommandInput, @@ -393,6 +398,11 @@ import { DisassociateSecurityKeyCommandInput, DisassociateSecurityKeyCommandOutput, } from "./commands/DisassociateSecurityKeyCommand"; +import { + DisassociateTrafficDistributionGroupUserCommand, + DisassociateTrafficDistributionGroupUserCommandInput, + DisassociateTrafficDistributionGroupUserCommandOutput, +} from "./commands/DisassociateTrafficDistributionGroupUserCommand"; import { DismissUserContactCommand, DismissUserContactCommandInput, @@ -583,6 +593,11 @@ import { ListTrafficDistributionGroupsCommandInput, ListTrafficDistributionGroupsCommandOutput, } from "./commands/ListTrafficDistributionGroupsCommand"; +import { + ListTrafficDistributionGroupUsersCommand, + ListTrafficDistributionGroupUsersCommandInput, + ListTrafficDistributionGroupUsersCommandOutput, +} from "./commands/ListTrafficDistributionGroupUsersCommand"; import { ListUseCasesCommand, ListUseCasesCommandInput, @@ -937,6 +952,7 @@ const commands = { AssociateQueueQuickConnectsCommand, AssociateRoutingProfileQueuesCommand, AssociateSecurityKeyCommand, + AssociateTrafficDistributionGroupUserCommand, ClaimPhoneNumberCommand, CreateAgentStatusCommand, CreateContactFlowCommand, @@ -1009,6 +1025,7 @@ const commands = { DisassociateQueueQuickConnectsCommand, DisassociateRoutingProfileQueuesCommand, DisassociateSecurityKeyCommand, + DisassociateTrafficDistributionGroupUserCommand, DismissUserContactCommand, GetContactAttributesCommand, GetCurrentMetricDataCommand, @@ -1051,6 +1068,7 @@ const commands = { ListTagsForResourceCommand, ListTaskTemplatesCommand, ListTrafficDistributionGroupsCommand, + ListTrafficDistributionGroupUsersCommand, ListUseCasesCommand, ListUserHierarchyGroupsCommand, ListUsersCommand, @@ -1304,6 +1322,23 @@ export interface Connect { cb: (err: any, data?: AssociateSecurityKeyCommandOutput) => void ): void; + /** + * @see {@link AssociateTrafficDistributionGroupUserCommand} + */ + associateTrafficDistributionGroupUser( + args: AssociateTrafficDistributionGroupUserCommandInput, + options?: __HttpHandlerOptions + ): Promise; + associateTrafficDistributionGroupUser( + args: AssociateTrafficDistributionGroupUserCommandInput, + cb: (err: any, data?: AssociateTrafficDistributionGroupUserCommandOutput) => void + ): void; + associateTrafficDistributionGroupUser( + args: AssociateTrafficDistributionGroupUserCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: AssociateTrafficDistributionGroupUserCommandOutput) => void + ): void; + /** * @see {@link ClaimPhoneNumberCommand} */ @@ -2435,6 +2470,23 @@ export interface Connect { cb: (err: any, data?: DisassociateSecurityKeyCommandOutput) => void ): void; + /** + * @see {@link DisassociateTrafficDistributionGroupUserCommand} + */ + disassociateTrafficDistributionGroupUser( + args: DisassociateTrafficDistributionGroupUserCommandInput, + options?: __HttpHandlerOptions + ): Promise; + disassociateTrafficDistributionGroupUser( + args: DisassociateTrafficDistributionGroupUserCommandInput, + cb: (err: any, data?: DisassociateTrafficDistributionGroupUserCommandOutput) => void + ): void; + disassociateTrafficDistributionGroupUser( + args: DisassociateTrafficDistributionGroupUserCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: DisassociateTrafficDistributionGroupUserCommandOutput) => void + ): void; + /** * @see {@link DismissUserContactCommand} */ @@ -3095,6 +3147,23 @@ export interface Connect { cb: (err: any, data?: ListTrafficDistributionGroupsCommandOutput) => void ): void; + /** + * @see {@link ListTrafficDistributionGroupUsersCommand} + */ + listTrafficDistributionGroupUsers( + args: ListTrafficDistributionGroupUsersCommandInput, + options?: __HttpHandlerOptions + ): Promise; + listTrafficDistributionGroupUsers( + args: ListTrafficDistributionGroupUsersCommandInput, + cb: (err: any, data?: ListTrafficDistributionGroupUsersCommandOutput) => void + ): void; + listTrafficDistributionGroupUsers( + args: ListTrafficDistributionGroupUsersCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: ListTrafficDistributionGroupUsersCommandOutput) => void + ): void; + /** * @see {@link ListUseCasesCommand} */ diff --git a/clients/client-connect/src/ConnectClient.ts b/clients/client-connect/src/ConnectClient.ts index cd10df968c95..e381f2d1272e 100644 --- a/clients/client-connect/src/ConnectClient.ts +++ b/clients/client-connect/src/ConnectClient.ts @@ -88,6 +88,10 @@ import { AssociateSecurityKeyCommandInput, AssociateSecurityKeyCommandOutput, } from "./commands/AssociateSecurityKeyCommand"; +import { + AssociateTrafficDistributionGroupUserCommandInput, + AssociateTrafficDistributionGroupUserCommandOutput, +} from "./commands/AssociateTrafficDistributionGroupUserCommand"; import { ClaimPhoneNumberCommandInput, ClaimPhoneNumberCommandOutput } from "./commands/ClaimPhoneNumberCommand"; import { CreateAgentStatusCommandInput, CreateAgentStatusCommandOutput } from "./commands/CreateAgentStatusCommand"; import { CreateContactFlowCommandInput, CreateContactFlowCommandOutput } from "./commands/CreateContactFlowCommand"; @@ -280,6 +284,10 @@ import { DisassociateSecurityKeyCommandInput, DisassociateSecurityKeyCommandOutput, } from "./commands/DisassociateSecurityKeyCommand"; +import { + DisassociateTrafficDistributionGroupUserCommandInput, + DisassociateTrafficDistributionGroupUserCommandOutput, +} from "./commands/DisassociateTrafficDistributionGroupUserCommand"; import { DismissUserContactCommandInput, DismissUserContactCommandOutput } from "./commands/DismissUserContactCommand"; import { GetContactAttributesCommandInput, @@ -388,6 +396,10 @@ import { ListTrafficDistributionGroupsCommandInput, ListTrafficDistributionGroupsCommandOutput, } from "./commands/ListTrafficDistributionGroupsCommand"; +import { + ListTrafficDistributionGroupUsersCommandInput, + ListTrafficDistributionGroupUsersCommandOutput, +} from "./commands/ListTrafficDistributionGroupUsersCommand"; import { ListUseCasesCommandInput, ListUseCasesCommandOutput } from "./commands/ListUseCasesCommand"; import { ListUserHierarchyGroupsCommandInput, @@ -626,6 +638,7 @@ export type ServiceInputTypes = | AssociateQueueQuickConnectsCommandInput | AssociateRoutingProfileQueuesCommandInput | AssociateSecurityKeyCommandInput + | AssociateTrafficDistributionGroupUserCommandInput | ClaimPhoneNumberCommandInput | CreateAgentStatusCommandInput | CreateContactFlowCommandInput @@ -698,6 +711,7 @@ export type ServiceInputTypes = | DisassociateQueueQuickConnectsCommandInput | DisassociateRoutingProfileQueuesCommandInput | DisassociateSecurityKeyCommandInput + | DisassociateTrafficDistributionGroupUserCommandInput | DismissUserContactCommandInput | GetContactAttributesCommandInput | GetCurrentMetricDataCommandInput @@ -739,6 +753,7 @@ export type ServiceInputTypes = | ListSecurityProfilesCommandInput | ListTagsForResourceCommandInput | ListTaskTemplatesCommandInput + | ListTrafficDistributionGroupUsersCommandInput | ListTrafficDistributionGroupsCommandInput | ListUseCasesCommandInput | ListUserHierarchyGroupsCommandInput @@ -828,6 +843,7 @@ export type ServiceOutputTypes = | AssociateQueueQuickConnectsCommandOutput | AssociateRoutingProfileQueuesCommandOutput | AssociateSecurityKeyCommandOutput + | AssociateTrafficDistributionGroupUserCommandOutput | ClaimPhoneNumberCommandOutput | CreateAgentStatusCommandOutput | CreateContactFlowCommandOutput @@ -900,6 +916,7 @@ export type ServiceOutputTypes = | DisassociateQueueQuickConnectsCommandOutput | DisassociateRoutingProfileQueuesCommandOutput | DisassociateSecurityKeyCommandOutput + | DisassociateTrafficDistributionGroupUserCommandOutput | DismissUserContactCommandOutput | GetContactAttributesCommandOutput | GetCurrentMetricDataCommandOutput @@ -941,6 +958,7 @@ export type ServiceOutputTypes = | ListSecurityProfilesCommandOutput | ListTagsForResourceCommandOutput | ListTaskTemplatesCommandOutput + | ListTrafficDistributionGroupUsersCommandOutput | ListTrafficDistributionGroupsCommandOutput | ListUseCasesCommandOutput | ListUserHierarchyGroupsCommandOutput diff --git a/clients/client-connect/src/commands/AssociateTrafficDistributionGroupUserCommand.ts b/clients/client-connect/src/commands/AssociateTrafficDistributionGroupUserCommand.ts new file mode 100644 index 000000000000..ab0bae999c25 --- /dev/null +++ b/clients/client-connect/src/commands/AssociateTrafficDistributionGroupUserCommand.ts @@ -0,0 +1,175 @@ +// smithy-typescript generated code +import { EndpointParameterInstructions, getEndpointPlugin } from "@smithy/middleware-endpoint"; +import { getSerdePlugin } from "@smithy/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@smithy/protocol-http"; +import { Command as $Command } from "@smithy/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + MiddlewareStack, + SerdeContext as __SerdeContext, +} from "@smithy/types"; + +import { ConnectClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../ConnectClient"; +import { + AssociateTrafficDistributionGroupUserRequest, + AssociateTrafficDistributionGroupUserResponse, +} from "../models/models_0"; +import { + de_AssociateTrafficDistributionGroupUserCommand, + se_AssociateTrafficDistributionGroupUserCommand, +} from "../protocols/Aws_restJson1"; + +/** + * @public + */ +export { __MetadataBearer, $Command }; +/** + * @public + * + * The input for {@link AssociateTrafficDistributionGroupUserCommand}. + */ +export interface AssociateTrafficDistributionGroupUserCommandInput + extends AssociateTrafficDistributionGroupUserRequest {} +/** + * @public + * + * The output of {@link AssociateTrafficDistributionGroupUserCommand}. + */ +export interface AssociateTrafficDistributionGroupUserCommandOutput + extends AssociateTrafficDistributionGroupUserResponse, + __MetadataBearer {} + +/** + * @public + *

Associates an agent with a traffic distribution group.

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { ConnectClient, AssociateTrafficDistributionGroupUserCommand } from "@aws-sdk/client-connect"; // ES Modules import + * // const { ConnectClient, AssociateTrafficDistributionGroupUserCommand } = require("@aws-sdk/client-connect"); // CommonJS import + * const client = new ConnectClient(config); + * const input = { // AssociateTrafficDistributionGroupUserRequest + * TrafficDistributionGroupId: "STRING_VALUE", // required + * UserId: "STRING_VALUE", // required + * InstanceId: "STRING_VALUE", // required + * }; + * const command = new AssociateTrafficDistributionGroupUserCommand(input); + * const response = await client.send(command); + * // {}; + * + * ``` + * + * @param AssociateTrafficDistributionGroupUserCommandInput - {@link AssociateTrafficDistributionGroupUserCommandInput} + * @returns {@link AssociateTrafficDistributionGroupUserCommandOutput} + * @see {@link AssociateTrafficDistributionGroupUserCommandInput} for command's `input` shape. + * @see {@link AssociateTrafficDistributionGroupUserCommandOutput} for command's `response` shape. + * @see {@link ConnectClientResolvedConfig | config} for ConnectClient's `config` shape. + * + * @throws {@link AccessDeniedException} (client fault) + *

You do not have sufficient permissions to perform this action.

+ * + * @throws {@link InternalServiceException} (server fault) + *

Request processing failed because of an error or failure with the service.

+ * + * @throws {@link InvalidRequestException} (client fault) + *

The request is not valid.

+ * + * @throws {@link ResourceConflictException} (client fault) + *

A resource already has that name.

+ * + * @throws {@link ResourceNotFoundException} (client fault) + *

The specified resource was not found.

+ * + * @throws {@link ThrottlingException} (client fault) + *

The throttling limit has been exceeded.

+ * + * @throws {@link ConnectServiceException} + *

Base exception class for all service exceptions from Connect service.

+ * + */ +export class AssociateTrafficDistributionGroupUserCommand extends $Command< + AssociateTrafficDistributionGroupUserCommandInput, + AssociateTrafficDistributionGroupUserCommandOutput, + ConnectClientResolvedConfig +> { + // 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" }, + }; + } + + /** + * @public + */ + constructor(readonly input: AssociateTrafficDistributionGroupUserCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: ConnectClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + this.middlewareStack.use( + getEndpointPlugin(configuration, AssociateTrafficDistributionGroupUserCommand.getEndpointParameterInstructions()) + ); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "ConnectClient"; + const commandName = "AssociateTrafficDistributionGroupUserCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: (_: any) => _, + outputFilterSensitiveLog: (_: any) => _, + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + /** + * @internal + */ + private serialize( + input: AssociateTrafficDistributionGroupUserCommandInput, + context: __SerdeContext + ): Promise<__HttpRequest> { + return se_AssociateTrafficDistributionGroupUserCommand(input, context); + } + + /** + * @internal + */ + private deserialize( + output: __HttpResponse, + context: __SerdeContext + ): Promise { + return de_AssociateTrafficDistributionGroupUserCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-connect/src/commands/CreateEvaluationFormCommand.ts b/clients/client-connect/src/commands/CreateEvaluationFormCommand.ts index c2ee64f664ea..8db2b2bd82aa 100644 --- a/clients/client-connect/src/commands/CreateEvaluationFormCommand.ts +++ b/clients/client-connect/src/commands/CreateEvaluationFormCommand.ts @@ -15,7 +15,7 @@ import { import { ConnectClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../ConnectClient"; import { CreateEvaluationFormResponse } from "../models/models_0"; -import { CreateEvaluationFormRequest } from "../models/models_1"; +import { CreateEvaluationFormRequest } from "../models/models_2"; import { de_CreateEvaluationFormCommand, se_CreateEvaluationFormCommand } from "../protocols/Aws_restJson1"; /** diff --git a/clients/client-connect/src/commands/DescribeTrafficDistributionGroupCommand.ts b/clients/client-connect/src/commands/DescribeTrafficDistributionGroupCommand.ts index eca356c1c8ba..cf9e3f460d91 100644 --- a/clients/client-connect/src/commands/DescribeTrafficDistributionGroupCommand.ts +++ b/clients/client-connect/src/commands/DescribeTrafficDistributionGroupCommand.ts @@ -64,6 +64,7 @@ export interface DescribeTrafficDistributionGroupCommandOutput * // Tags: { // TagMap * // "": "STRING_VALUE", * // }, + * // IsDefault: true || false, * // }, * // }; * diff --git a/clients/client-connect/src/commands/DisassociateTrafficDistributionGroupUserCommand.ts b/clients/client-connect/src/commands/DisassociateTrafficDistributionGroupUserCommand.ts new file mode 100644 index 000000000000..b234ca12c5b1 --- /dev/null +++ b/clients/client-connect/src/commands/DisassociateTrafficDistributionGroupUserCommand.ts @@ -0,0 +1,181 @@ +// smithy-typescript generated code +import { EndpointParameterInstructions, getEndpointPlugin } from "@smithy/middleware-endpoint"; +import { getSerdePlugin } from "@smithy/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@smithy/protocol-http"; +import { Command as $Command } from "@smithy/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + MiddlewareStack, + SerdeContext as __SerdeContext, +} from "@smithy/types"; + +import { ConnectClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../ConnectClient"; +import { + DisassociateTrafficDistributionGroupUserRequest, + DisassociateTrafficDistributionGroupUserResponse, +} from "../models/models_0"; +import { + de_DisassociateTrafficDistributionGroupUserCommand, + se_DisassociateTrafficDistributionGroupUserCommand, +} from "../protocols/Aws_restJson1"; + +/** + * @public + */ +export { __MetadataBearer, $Command }; +/** + * @public + * + * The input for {@link DisassociateTrafficDistributionGroupUserCommand}. + */ +export interface DisassociateTrafficDistributionGroupUserCommandInput + extends DisassociateTrafficDistributionGroupUserRequest {} +/** + * @public + * + * The output of {@link DisassociateTrafficDistributionGroupUserCommand}. + */ +export interface DisassociateTrafficDistributionGroupUserCommandOutput + extends DisassociateTrafficDistributionGroupUserResponse, + __MetadataBearer {} + +/** + * @public + *

Disassociates an agent from a traffic distribution group.

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { ConnectClient, DisassociateTrafficDistributionGroupUserCommand } from "@aws-sdk/client-connect"; // ES Modules import + * // const { ConnectClient, DisassociateTrafficDistributionGroupUserCommand } = require("@aws-sdk/client-connect"); // CommonJS import + * const client = new ConnectClient(config); + * const input = { // DisassociateTrafficDistributionGroupUserRequest + * TrafficDistributionGroupId: "STRING_VALUE", // required + * UserId: "STRING_VALUE", // required + * InstanceId: "STRING_VALUE", // required + * }; + * const command = new DisassociateTrafficDistributionGroupUserCommand(input); + * const response = await client.send(command); + * // {}; + * + * ``` + * + * @param DisassociateTrafficDistributionGroupUserCommandInput - {@link DisassociateTrafficDistributionGroupUserCommandInput} + * @returns {@link DisassociateTrafficDistributionGroupUserCommandOutput} + * @see {@link DisassociateTrafficDistributionGroupUserCommandInput} for command's `input` shape. + * @see {@link DisassociateTrafficDistributionGroupUserCommandOutput} for command's `response` shape. + * @see {@link ConnectClientResolvedConfig | config} for ConnectClient's `config` shape. + * + * @throws {@link AccessDeniedException} (client fault) + *

You do not have sufficient permissions to perform this action.

+ * + * @throws {@link InternalServiceException} (server fault) + *

Request processing failed because of an error or failure with the service.

+ * + * @throws {@link InvalidRequestException} (client fault) + *

The request is not valid.

+ * + * @throws {@link ResourceConflictException} (client fault) + *

A resource already has that name.

+ * + * @throws {@link ResourceNotFoundException} (client fault) + *

The specified resource was not found.

+ * + * @throws {@link ThrottlingException} (client fault) + *

The throttling limit has been exceeded.

+ * + * @throws {@link ConnectServiceException} + *

Base exception class for all service exceptions from Connect service.

+ * + */ +export class DisassociateTrafficDistributionGroupUserCommand extends $Command< + DisassociateTrafficDistributionGroupUserCommandInput, + DisassociateTrafficDistributionGroupUserCommandOutput, + ConnectClientResolvedConfig +> { + // 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" }, + }; + } + + /** + * @public + */ + constructor(readonly input: DisassociateTrafficDistributionGroupUserCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: ConnectClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler< + DisassociateTrafficDistributionGroupUserCommandInput, + DisassociateTrafficDistributionGroupUserCommandOutput + > { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + this.middlewareStack.use( + getEndpointPlugin( + configuration, + DisassociateTrafficDistributionGroupUserCommand.getEndpointParameterInstructions() + ) + ); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "ConnectClient"; + const commandName = "DisassociateTrafficDistributionGroupUserCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: (_: any) => _, + outputFilterSensitiveLog: (_: any) => _, + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + /** + * @internal + */ + private serialize( + input: DisassociateTrafficDistributionGroupUserCommandInput, + context: __SerdeContext + ): Promise<__HttpRequest> { + return se_DisassociateTrafficDistributionGroupUserCommand(input, context); + } + + /** + * @internal + */ + private deserialize( + output: __HttpResponse, + context: __SerdeContext + ): Promise { + return de_DisassociateTrafficDistributionGroupUserCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-connect/src/commands/GetContactAttributesCommand.ts b/clients/client-connect/src/commands/GetContactAttributesCommand.ts index 59b5adc411a9..9a2302b27f66 100644 --- a/clients/client-connect/src/commands/GetContactAttributesCommand.ts +++ b/clients/client-connect/src/commands/GetContactAttributesCommand.ts @@ -14,7 +14,8 @@ import { } from "@smithy/types"; import { ConnectClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../ConnectClient"; -import { GetContactAttributesRequest, GetContactAttributesResponse } from "../models/models_0"; +import { GetContactAttributesRequest } from "../models/models_0"; +import { GetContactAttributesResponse } from "../models/models_1"; import { de_GetContactAttributesCommand, se_GetContactAttributesCommand } from "../protocols/Aws_restJson1"; /** diff --git a/clients/client-connect/src/commands/GetTrafficDistributionCommand.ts b/clients/client-connect/src/commands/GetTrafficDistributionCommand.ts index 75ce1443fcb1..41a238c1776e 100644 --- a/clients/client-connect/src/commands/GetTrafficDistributionCommand.ts +++ b/clients/client-connect/src/commands/GetTrafficDistributionCommand.ts @@ -59,6 +59,22 @@ export interface GetTrafficDistributionCommandOutput extends GetTrafficDistribut * // }, * // Id: "STRING_VALUE", * // Arn: "STRING_VALUE", + * // SignInConfig: { // SignInConfig + * // Distributions: [ // SignInDistributionList // required + * // { // SignInDistribution + * // Region: "STRING_VALUE", // required + * // Enabled: true || false, // required + * // }, + * // ], + * // }, + * // AgentConfig: { // AgentConfig + * // Distributions: [ // required + * // { + * // Region: "STRING_VALUE", // required + * // Percentage: Number("int"), // required + * // }, + * // ], + * // }, * // }; * * ``` diff --git a/clients/client-connect/src/commands/ListPhoneNumbersV2Command.ts b/clients/client-connect/src/commands/ListPhoneNumbersV2Command.ts index 521c78aa2146..4cf71daa06f6 100644 --- a/clients/client-connect/src/commands/ListPhoneNumbersV2Command.ts +++ b/clients/client-connect/src/commands/ListPhoneNumbersV2Command.ts @@ -42,6 +42,18 @@ export interface ListPhoneNumbersV2CommandOutput extends ListPhoneNumbersV2Respo *

For more information about phone numbers, see Set Up Phone Numbers for Your * Contact Center in the Amazon Connect Administrator * Guide.

+ * + *
    + *
  • + *

    When given an instance ARN, ListPhoneNumbersV2 returns only the phone + * numbers claimed to the instance.

    + *
  • + *
  • + *

    When given a traffic distribution group ARN ListPhoneNumbersV2 returns only the phone numbers + * claimed to the traffic distribution group.

    + *
  • + *
+ *
* @example * Use a bare-bones client and the command you need to make an API call. * ```javascript diff --git a/clients/client-connect/src/commands/ListTrafficDistributionGroupUsersCommand.ts b/clients/client-connect/src/commands/ListTrafficDistributionGroupUsersCommand.ts new file mode 100644 index 000000000000..8e2783525560 --- /dev/null +++ b/clients/client-connect/src/commands/ListTrafficDistributionGroupUsersCommand.ts @@ -0,0 +1,178 @@ +// smithy-typescript generated code +import { EndpointParameterInstructions, getEndpointPlugin } from "@smithy/middleware-endpoint"; +import { getSerdePlugin } from "@smithy/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@smithy/protocol-http"; +import { Command as $Command } from "@smithy/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + MiddlewareStack, + SerdeContext as __SerdeContext, +} from "@smithy/types"; + +import { ConnectClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../ConnectClient"; +import { + ListTrafficDistributionGroupUsersRequest, + ListTrafficDistributionGroupUsersResponse, +} from "../models/models_1"; +import { + de_ListTrafficDistributionGroupUsersCommand, + se_ListTrafficDistributionGroupUsersCommand, +} from "../protocols/Aws_restJson1"; + +/** + * @public + */ +export { __MetadataBearer, $Command }; +/** + * @public + * + * The input for {@link ListTrafficDistributionGroupUsersCommand}. + */ +export interface ListTrafficDistributionGroupUsersCommandInput extends ListTrafficDistributionGroupUsersRequest {} +/** + * @public + * + * The output of {@link ListTrafficDistributionGroupUsersCommand}. + */ +export interface ListTrafficDistributionGroupUsersCommandOutput + extends ListTrafficDistributionGroupUsersResponse, + __MetadataBearer {} + +/** + * @public + *

Lists traffic distribution group users.

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { ConnectClient, ListTrafficDistributionGroupUsersCommand } from "@aws-sdk/client-connect"; // ES Modules import + * // const { ConnectClient, ListTrafficDistributionGroupUsersCommand } = require("@aws-sdk/client-connect"); // CommonJS import + * const client = new ConnectClient(config); + * const input = { // ListTrafficDistributionGroupUsersRequest + * TrafficDistributionGroupId: "STRING_VALUE", // required + * MaxResults: Number("int"), + * NextToken: "STRING_VALUE", + * }; + * const command = new ListTrafficDistributionGroupUsersCommand(input); + * const response = await client.send(command); + * // { // ListTrafficDistributionGroupUsersResponse + * // NextToken: "STRING_VALUE", + * // TrafficDistributionGroupUserSummaryList: [ // TrafficDistributionGroupUserSummaryList + * // { // TrafficDistributionGroupUserSummary + * // UserId: "STRING_VALUE", + * // }, + * // ], + * // }; + * + * ``` + * + * @param ListTrafficDistributionGroupUsersCommandInput - {@link ListTrafficDistributionGroupUsersCommandInput} + * @returns {@link ListTrafficDistributionGroupUsersCommandOutput} + * @see {@link ListTrafficDistributionGroupUsersCommandInput} for command's `input` shape. + * @see {@link ListTrafficDistributionGroupUsersCommandOutput} for command's `response` shape. + * @see {@link ConnectClientResolvedConfig | config} for ConnectClient's `config` shape. + * + * @throws {@link AccessDeniedException} (client fault) + *

You do not have sufficient permissions to perform this action.

+ * + * @throws {@link InternalServiceException} (server fault) + *

Request processing failed because of an error or failure with the service.

+ * + * @throws {@link InvalidRequestException} (client fault) + *

The request is not valid.

+ * + * @throws {@link ResourceNotFoundException} (client fault) + *

The specified resource was not found.

+ * + * @throws {@link ThrottlingException} (client fault) + *

The throttling limit has been exceeded.

+ * + * @throws {@link ConnectServiceException} + *

Base exception class for all service exceptions from Connect service.

+ * + */ +export class ListTrafficDistributionGroupUsersCommand extends $Command< + ListTrafficDistributionGroupUsersCommandInput, + ListTrafficDistributionGroupUsersCommandOutput, + ConnectClientResolvedConfig +> { + // 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" }, + }; + } + + /** + * @public + */ + constructor(readonly input: ListTrafficDistributionGroupUsersCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: ConnectClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + this.middlewareStack.use( + getEndpointPlugin(configuration, ListTrafficDistributionGroupUsersCommand.getEndpointParameterInstructions()) + ); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "ConnectClient"; + const commandName = "ListTrafficDistributionGroupUsersCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: (_: any) => _, + outputFilterSensitiveLog: (_: any) => _, + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + /** + * @internal + */ + private serialize( + input: ListTrafficDistributionGroupUsersCommandInput, + context: __SerdeContext + ): Promise<__HttpRequest> { + return se_ListTrafficDistributionGroupUsersCommand(input, context); + } + + /** + * @internal + */ + private deserialize( + output: __HttpResponse, + context: __SerdeContext + ): Promise { + return de_ListTrafficDistributionGroupUsersCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-connect/src/commands/ListTrafficDistributionGroupsCommand.ts b/clients/client-connect/src/commands/ListTrafficDistributionGroupsCommand.ts index 9ce0cd325983..4e7e95e33d82 100644 --- a/clients/client-connect/src/commands/ListTrafficDistributionGroupsCommand.ts +++ b/clients/client-connect/src/commands/ListTrafficDistributionGroupsCommand.ts @@ -64,6 +64,7 @@ export interface ListTrafficDistributionGroupsCommandOutput * // Name: "STRING_VALUE", * // InstanceArn: "STRING_VALUE", * // Status: "CREATION_IN_PROGRESS" || "ACTIVE" || "CREATION_FAILED" || "PENDING_DELETION" || "DELETION_FAILED" || "UPDATE_IN_PROGRESS", + * // IsDefault: true || false, * // }, * // ], * // }; diff --git a/clients/client-connect/src/commands/UpdateRoutingProfileAgentAvailabilityTimerCommand.ts b/clients/client-connect/src/commands/UpdateRoutingProfileAgentAvailabilityTimerCommand.ts index cb5a08c64696..f5d6a320dc86 100644 --- a/clients/client-connect/src/commands/UpdateRoutingProfileAgentAvailabilityTimerCommand.ts +++ b/clients/client-connect/src/commands/UpdateRoutingProfileAgentAvailabilityTimerCommand.ts @@ -40,11 +40,9 @@ export interface UpdateRoutingProfileAgentAvailabilityTimerCommandOutput extends /** * @public - *

Whether agents with this routing profile - * will have their routing order calculated based on - * time since their last inbound - * contact or longest idle - * time.

+ *

Whether agents with this routing profile will have their routing order calculated based on + * time since their last inbound contact or longest idle + * time.

* @example * Use a bare-bones client and the command you need to make an API call. * ```javascript diff --git a/clients/client-connect/src/commands/UpdateTrafficDistributionCommand.ts b/clients/client-connect/src/commands/UpdateTrafficDistributionCommand.ts index 2daf181b2670..005e71339b05 100644 --- a/clients/client-connect/src/commands/UpdateTrafficDistributionCommand.ts +++ b/clients/client-connect/src/commands/UpdateTrafficDistributionCommand.ts @@ -37,6 +37,11 @@ export interface UpdateTrafficDistributionCommandOutput extends UpdateTrafficDis /** * @public *

Updates the traffic distribution for a given traffic distribution group.

+ * + *

You can change the SignInConfig only for a default TrafficDistributionGroup. If you call + * UpdateTrafficDistribution with a modified SignInConfig and a non-default TrafficDistributionGroup, + * an InvalidRequestException is returned.

+ *
*

For more information about updating a traffic distribution group, see Update telephony * traffic distribution across Amazon Web Services Regions * in the Amazon Connect Administrator Guide.

@@ -56,6 +61,22 @@ export interface UpdateTrafficDistributionCommandOutput extends UpdateTrafficDis * }, * ], * }, + * SignInConfig: { // SignInConfig + * Distributions: [ // SignInDistributionList // required + * { // SignInDistribution + * Region: "STRING_VALUE", // required + * Enabled: true || false, // required + * }, + * ], + * }, + * AgentConfig: { // AgentConfig + * Distributions: [ // required + * { + * Region: "STRING_VALUE", // required + * Percentage: Number("int"), // required + * }, + * ], + * }, * }; * const command = new UpdateTrafficDistributionCommand(input); * const response = await client.send(command); diff --git a/clients/client-connect/src/commands/UpdateUserHierarchyStructureCommand.ts b/clients/client-connect/src/commands/UpdateUserHierarchyStructureCommand.ts index 4c0eb217cf96..6e37f60a3680 100644 --- a/clients/client-connect/src/commands/UpdateUserHierarchyStructureCommand.ts +++ b/clients/client-connect/src/commands/UpdateUserHierarchyStructureCommand.ts @@ -14,7 +14,7 @@ import { } from "@smithy/types"; import { ConnectClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../ConnectClient"; -import { UpdateUserHierarchyStructureRequest } from "../models/models_1"; +import { UpdateUserHierarchyStructureRequest } from "../models/models_2"; import { de_UpdateUserHierarchyStructureCommand, se_UpdateUserHierarchyStructureCommand, diff --git a/clients/client-connect/src/commands/UpdateUserIdentityInfoCommand.ts b/clients/client-connect/src/commands/UpdateUserIdentityInfoCommand.ts index 2b50377e461e..30596bc619f3 100644 --- a/clients/client-connect/src/commands/UpdateUserIdentityInfoCommand.ts +++ b/clients/client-connect/src/commands/UpdateUserIdentityInfoCommand.ts @@ -14,7 +14,7 @@ import { } from "@smithy/types"; import { ConnectClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../ConnectClient"; -import { UpdateUserIdentityInfoRequest } from "../models/models_1"; +import { UpdateUserIdentityInfoRequest } from "../models/models_2"; import { de_UpdateUserIdentityInfoCommand, se_UpdateUserIdentityInfoCommand } from "../protocols/Aws_restJson1"; /** diff --git a/clients/client-connect/src/commands/UpdateUserPhoneConfigCommand.ts b/clients/client-connect/src/commands/UpdateUserPhoneConfigCommand.ts index b3d6d67d7f51..2e8633475165 100644 --- a/clients/client-connect/src/commands/UpdateUserPhoneConfigCommand.ts +++ b/clients/client-connect/src/commands/UpdateUserPhoneConfigCommand.ts @@ -14,7 +14,7 @@ import { } from "@smithy/types"; import { ConnectClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../ConnectClient"; -import { UpdateUserPhoneConfigRequest } from "../models/models_1"; +import { UpdateUserPhoneConfigRequest } from "../models/models_2"; import { de_UpdateUserPhoneConfigCommand, se_UpdateUserPhoneConfigCommand } from "../protocols/Aws_restJson1"; /** diff --git a/clients/client-connect/src/commands/UpdateUserRoutingProfileCommand.ts b/clients/client-connect/src/commands/UpdateUserRoutingProfileCommand.ts index 500440a9c717..46aefad527a6 100644 --- a/clients/client-connect/src/commands/UpdateUserRoutingProfileCommand.ts +++ b/clients/client-connect/src/commands/UpdateUserRoutingProfileCommand.ts @@ -14,7 +14,7 @@ import { } from "@smithy/types"; import { ConnectClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../ConnectClient"; -import { UpdateUserRoutingProfileRequest } from "../models/models_1"; +import { UpdateUserRoutingProfileRequest } from "../models/models_2"; import { de_UpdateUserRoutingProfileCommand, se_UpdateUserRoutingProfileCommand } from "../protocols/Aws_restJson1"; /** diff --git a/clients/client-connect/src/commands/UpdateUserSecurityProfilesCommand.ts b/clients/client-connect/src/commands/UpdateUserSecurityProfilesCommand.ts index d123fd45026c..13389da67e0c 100644 --- a/clients/client-connect/src/commands/UpdateUserSecurityProfilesCommand.ts +++ b/clients/client-connect/src/commands/UpdateUserSecurityProfilesCommand.ts @@ -14,7 +14,7 @@ import { } from "@smithy/types"; import { ConnectClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../ConnectClient"; -import { UpdateUserSecurityProfilesRequest } from "../models/models_1"; +import { UpdateUserSecurityProfilesRequest } from "../models/models_2"; import { de_UpdateUserSecurityProfilesCommand, se_UpdateUserSecurityProfilesCommand } from "../protocols/Aws_restJson1"; /** diff --git a/clients/client-connect/src/commands/index.ts b/clients/client-connect/src/commands/index.ts index d0a3214a84ee..1bbdf374f68c 100644 --- a/clients/client-connect/src/commands/index.ts +++ b/clients/client-connect/src/commands/index.ts @@ -10,6 +10,7 @@ export * from "./AssociatePhoneNumberContactFlowCommand"; export * from "./AssociateQueueQuickConnectsCommand"; export * from "./AssociateRoutingProfileQueuesCommand"; export * from "./AssociateSecurityKeyCommand"; +export * from "./AssociateTrafficDistributionGroupUserCommand"; export * from "./ClaimPhoneNumberCommand"; export * from "./CreateAgentStatusCommand"; export * from "./CreateContactFlowCommand"; @@ -82,6 +83,7 @@ export * from "./DisassociatePhoneNumberContactFlowCommand"; export * from "./DisassociateQueueQuickConnectsCommand"; export * from "./DisassociateRoutingProfileQueuesCommand"; export * from "./DisassociateSecurityKeyCommand"; +export * from "./DisassociateTrafficDistributionGroupUserCommand"; export * from "./DismissUserContactCommand"; export * from "./GetContactAttributesCommand"; export * from "./GetCurrentMetricDataCommand"; @@ -123,6 +125,7 @@ export * from "./ListSecurityProfilePermissionsCommand"; export * from "./ListSecurityProfilesCommand"; export * from "./ListTagsForResourceCommand"; export * from "./ListTaskTemplatesCommand"; +export * from "./ListTrafficDistributionGroupUsersCommand"; export * from "./ListTrafficDistributionGroupsCommand"; export * from "./ListUseCasesCommand"; export * from "./ListUserHierarchyGroupsCommand"; diff --git a/clients/client-connect/src/models/models_0.ts b/clients/client-connect/src/models/models_0.ts index d4bfc2871084..dabd41395121 100644 --- a/clients/client-connect/src/models/models_0.ts +++ b/clients/client-connect/src/models/models_0.ts @@ -236,6 +236,36 @@ export const AgentAvailabilityTimer = { */ export type AgentAvailabilityTimer = (typeof AgentAvailabilityTimer)[keyof typeof AgentAvailabilityTimer]; +/** + * @public + *

Information about a traffic distribution.

+ */ +export interface Distribution { + /** + * @public + *

The Amazon Web Services Region where the traffic is distributed.

+ */ + Region: string | undefined; + + /** + * @public + *

The percentage of the traffic that is distributed, in increments of 10.

+ */ + Percentage: number | undefined; +} + +/** + * @public + *

The distribution of agents between the instance and its replica(s).

+ */ +export interface AgentConfig { + /** + * @public + *

Information about traffic distributions.

+ */ + Distributions: Distribution[] | undefined; +} + /** * @public * @enum @@ -1146,6 +1176,36 @@ export interface AssociateSecurityKeyResponse { AssociationId?: string; } +/** + * @public + */ +export interface AssociateTrafficDistributionGroupUserRequest { + /** + * @public + *

The identifier of the traffic distribution group. + * This can be the ID or the ARN if the API is being called in the Region where the traffic distribution group was created. + * The ARN must be provided if the call is from the replicated Region.

+ */ + TrafficDistributionGroupId: string | undefined; + + /** + * @public + *

The identifier of the user account. This can be the ID or the ARN of the user.

+ */ + UserId: string | undefined; + + /** + * @public + *

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

+ */ + InstanceId: string | undefined; +} + +/** + * @public + */ +export interface AssociateTrafficDistributionGroupUserResponse {} + /** * @public */ @@ -2829,11 +2889,9 @@ export interface CreateRoutingProfileRequest { /** * @public - *

Whether agents with this routing profile - * will have their routing order calculated based on - * time since their last inbound - * contact or longest idle - * time.

+ *

Whether agents with this routing profile will have their routing order calculated based on + * longest idle time or time since their last inbound + * contact.

*/ AgentAvailabilityTimer?: AgentAvailabilityTimer | string; } @@ -6287,11 +6345,9 @@ export interface RoutingProfile { /** * @public - *

Whether agents with this routing profile - * will have their routing order calculated based on - * time since their last inbound - * contact or longest idle - * time.

+ *

Whether agents with this routing profile will have their routing order calculated based on + * time since their last inbound contact or longest idle + * time.

*/ AgentAvailabilityTimer?: AgentAvailabilityTimer | string; } @@ -6598,6 +6654,20 @@ export interface TrafficDistributionGroup { *

The tags used to organize, track, or control access for this resource. For example, \{ "tags": \{"key1":"value1", "key2":"value2"\} \}.

*/ Tags?: Record; + + /** + * @public + *

Whether this is the default traffic distribution group created during instance + * replication. The default traffic distribution group cannot be deleted by the + * DeleteTrafficDistributionGroup API. The default traffic distribution group is deleted as + * part of the process for deleting a replica.

+ * + *

You can change the SignInConfig only for a default TrafficDistributionGroup. If you call + * UpdateTrafficDistribution with a modified SignInConfig and a non-default TrafficDistributionGroup, + * an InvalidRequestException is returned.

+ *
+ */ + IsDefault?: boolean; } /** @@ -7200,160 +7270,79 @@ export interface DisassociateSecurityKeyRequest { /** * @public */ -export interface DismissUserContactRequest { +export interface DisassociateTrafficDistributionGroupUserRequest { /** * @public - *

The identifier of the user account.

+ *

The identifier of the traffic distribution group. + * This can be the ID or the ARN if the API is being called in the Region where the traffic distribution group was created. + * The ARN must be provided if the call is from the replicated Region.

*/ - UserId: string | undefined; + TrafficDistributionGroupId: string | undefined; /** * @public - *

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the - * instance.

+ *

The identifier for the user. This can be the ID or the ARN of the user.

*/ - InstanceId: string | undefined; + UserId: string | undefined; /** * @public - *

The identifier of the contact.

+ *

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

*/ - ContactId: string | undefined; + InstanceId: string | undefined; } /** * @public */ -export interface DismissUserContactResponse {} +export interface DisassociateTrafficDistributionGroupUserResponse {} /** * @public */ -export interface GetContactAttributesRequest { +export interface DismissUserContactRequest { /** * @public - *

The identifier of the Amazon Connect instance.

+ *

The identifier of the user account.

*/ - InstanceId: string | undefined; + UserId: string | undefined; /** * @public - *

The identifier of the initial contact.

+ *

The identifier of the Amazon Connect instance. You can find the instanceId in the ARN of the + * instance.

*/ - InitialContactId: string | undefined; -} + InstanceId: string | undefined; -/** - * @public - */ -export interface GetContactAttributesResponse { /** * @public - *

Information about the attributes.

+ *

The identifier of the contact.

*/ - Attributes?: Record; + ContactId: string | undefined; } -/** - * @public - * @enum - */ -export const CurrentMetricName = { - AGENTS_AFTER_CONTACT_WORK: "AGENTS_AFTER_CONTACT_WORK", - AGENTS_AVAILABLE: "AGENTS_AVAILABLE", - AGENTS_ERROR: "AGENTS_ERROR", - AGENTS_NON_PRODUCTIVE: "AGENTS_NON_PRODUCTIVE", - AGENTS_ONLINE: "AGENTS_ONLINE", - AGENTS_ON_CALL: "AGENTS_ON_CALL", - AGENTS_ON_CONTACT: "AGENTS_ON_CONTACT", - AGENTS_STAFFED: "AGENTS_STAFFED", - CONTACTS_IN_QUEUE: "CONTACTS_IN_QUEUE", - CONTACTS_SCHEDULED: "CONTACTS_SCHEDULED", - OLDEST_CONTACT_AGE: "OLDEST_CONTACT_AGE", - SLOTS_ACTIVE: "SLOTS_ACTIVE", - SLOTS_AVAILABLE: "SLOTS_AVAILABLE", -} as const; - -/** - * @public - */ -export type CurrentMetricName = (typeof CurrentMetricName)[keyof typeof CurrentMetricName]; - -/** - * @public - * @enum - */ -export const Unit = { - COUNT: "COUNT", - PERCENT: "PERCENT", - SECONDS: "SECONDS", -} as const; - /** * @public */ -export type Unit = (typeof Unit)[keyof typeof Unit]; - -/** - * @public - *

Contains information about a real-time metric. For a description of each metric, see Real-time Metrics Definitions in the Amazon Connect Administrator - * Guide.

- */ -export interface CurrentMetric { - /** - * @public - *

The name of the metric.

- */ - Name?: CurrentMetricName | string; - - /** - * @public - *

The unit for the metric.

- */ - Unit?: Unit | string; -} +export interface DismissUserContactResponse {} /** * @public - *

Contains the filter to apply when retrieving metrics.

*/ -export interface Filters { - /** - * @public - *

The queues to use to filter the metrics. You should specify at least one queue, and can - * specify up to 100 queues per request. The GetCurrentMetricsData API in particular - * requires a queue when you include a Filter in your request.

- */ - Queues?: string[]; - +export interface GetContactAttributesRequest { /** * @public - *

The channel to use to filter the metrics.

+ *

The identifier of the Amazon Connect instance.

*/ - Channels?: (Channel | string)[]; + InstanceId: string | undefined; /** * @public - *

A list of up to 100 routing profile IDs or ARNs.

+ *

The identifier of the initial contact.

*/ - RoutingProfiles?: string[]; + InitialContactId: string | undefined; } -/** - * @public - * @enum - */ -export const Grouping = { - CHANNEL: "CHANNEL", - QUEUE: "QUEUE", - ROUTING_PROFILE: "ROUTING_PROFILE", -} as const; - -/** - * @public - */ -export type Grouping = (typeof Grouping)[keyof typeof Grouping]; - /** * @internal */ diff --git a/clients/client-connect/src/models/models_1.ts b/clients/client-connect/src/models/models_1.ts index d5eaa5104149..1c8709593fab 100644 --- a/clients/client-connect/src/models/models_1.ts +++ b/clients/client-connect/src/models/models_1.ts @@ -5,6 +5,7 @@ import { ConnectServiceException as __BaseException } from "./ConnectServiceExce import { ActionSummary, AgentAvailabilityTimer, + AgentConfig, AgentContactReference, AgentStatusReference, AgentStatusState, @@ -16,19 +17,14 @@ import { ContactFlowState, ContactFlowType, ContactState, - CurrentMetric, - CurrentMetricName, DirectoryType, + Distribution, EvaluationAnswerData, - EvaluationFormQuestion, - EvaluationFormScoringStrategy, EvaluationFormVersionStatus, EvaluationNote, EvaluationScore, EvaluationStatus, EventSourceName, - Filters, - Grouping, HierarchyGroupSummary, HoursOfOperation, HoursOfOperationConfig, @@ -63,14 +59,123 @@ import { TaskTemplateField, TaskTemplateStatus, TrafficDistributionGroupStatus, - Unit, UseCaseType, - UserIdentityInfo, UserPhoneConfig, VocabularyLanguageCode, VocabularyState, } from "./models_0"; +/** + * @public + */ +export interface GetContactAttributesResponse { + /** + * @public + *

Information about the attributes.

+ */ + Attributes?: Record; +} + +/** + * @public + * @enum + */ +export const CurrentMetricName = { + AGENTS_AFTER_CONTACT_WORK: "AGENTS_AFTER_CONTACT_WORK", + AGENTS_AVAILABLE: "AGENTS_AVAILABLE", + AGENTS_ERROR: "AGENTS_ERROR", + AGENTS_NON_PRODUCTIVE: "AGENTS_NON_PRODUCTIVE", + AGENTS_ONLINE: "AGENTS_ONLINE", + AGENTS_ON_CALL: "AGENTS_ON_CALL", + AGENTS_ON_CONTACT: "AGENTS_ON_CONTACT", + AGENTS_STAFFED: "AGENTS_STAFFED", + CONTACTS_IN_QUEUE: "CONTACTS_IN_QUEUE", + CONTACTS_SCHEDULED: "CONTACTS_SCHEDULED", + OLDEST_CONTACT_AGE: "OLDEST_CONTACT_AGE", + SLOTS_ACTIVE: "SLOTS_ACTIVE", + SLOTS_AVAILABLE: "SLOTS_AVAILABLE", +} as const; + +/** + * @public + */ +export type CurrentMetricName = (typeof CurrentMetricName)[keyof typeof CurrentMetricName]; + +/** + * @public + * @enum + */ +export const Unit = { + COUNT: "COUNT", + PERCENT: "PERCENT", + SECONDS: "SECONDS", +} as const; + +/** + * @public + */ +export type Unit = (typeof Unit)[keyof typeof Unit]; + +/** + * @public + *

Contains information about a real-time metric. For a description of each metric, see Real-time Metrics Definitions in the Amazon Connect Administrator + * Guide.

+ */ +export interface CurrentMetric { + /** + * @public + *

The name of the metric.

+ */ + Name?: CurrentMetricName | string; + + /** + * @public + *

The unit for the metric.

+ */ + Unit?: Unit | string; +} + +/** + * @public + *

Contains the filter to apply when retrieving metrics.

+ */ +export interface Filters { + /** + * @public + *

The queues to use to filter the metrics. You should specify at least one queue, and can + * specify up to 100 queues per request. The GetCurrentMetricsData API in particular + * requires a queue when you include a Filter in your request.

+ */ + Queues?: string[]; + + /** + * @public + *

The channel to use to filter the metrics.

+ */ + Channels?: (Channel | string)[]; + + /** + * @public + *

A list of up to 100 routing profile IDs or ARNs.

+ */ + RoutingProfiles?: string[]; +} + +/** + * @public + * @enum + */ +export const Grouping = { + CHANNEL: "CHANNEL", + QUEUE: "QUEUE", + ROUTING_PROFILE: "ROUTING_PROFILE", +} as const; + +/** + * @public + */ +export type Grouping = (typeof Grouping)[keyof typeof Grouping]; + /** * @public * @enum @@ -725,7 +830,7 @@ export interface GetFederationTokenResponse { /** * @public - *

The identifier for the user.

+ *

The identifier for the user. This can be the ID or the ARN of the user.

*/ UserId?: string; } @@ -1392,7 +1497,7 @@ export interface GetMetricDataV2Request { *

Unit: Seconds

*

Valid metric filter key: INITIATION_METHOD. For now, this metric only * supports the following as INITIATION_METHOD: INBOUND | - * OUTBOUND | CALLBACK | API + * OUTBOUND | CALLBACK | API *

*

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

* @@ -1411,7 +1516,8 @@ export interface GetMetricDataV2Request { * *
AVG_GREETING_TIME_AGENT
*
- *

This metric is available only for contacts analyzed by Contact Lens conversational analytics.

+ *

This metric is available only for contacts analyzed by Contact Lens conversational + * analytics.

*

Unit: Seconds

*

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

*
@@ -1454,19 +1560,22 @@ export interface GetMetricDataV2Request { * *
AVG_INTERRUPTIONS_AGENT
*
- *

This metric is available only for contacts analyzed by Contact Lens conversational analytics.

+ *

This metric is available only for contacts analyzed by Contact Lens conversational + * analytics.

*

Unit: Count

*

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

*
*
AVG_INTERRUPTION_TIME_AGENT
*
- *

This metric is available only for contacts analyzed by Contact Lens conversational analytics.

+ *

This metric is available only for contacts analyzed by Contact Lens conversational + * analytics.

*

Unit: Seconds

*

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

*
*
AVG_NON_TALK_TIME
*
- *

This metric is available only for contacts analyzed by Contact Lens conversational analytics.

+ *

This metric is available only for contacts analyzed by Contact Lens conversational + * analytics.

*

Unit: Seconds

*

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

*
@@ -1480,19 +1589,22 @@ export interface GetMetricDataV2Request { * *
AVG_TALK_TIME
*
- *

This metric is available only for contacts analyzed by Contact Lens conversational analytics.

+ *

This metric is available only for contacts analyzed by Contact Lens conversational + * analytics.

*

Unit: Seconds

*

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

*
*
AVG_TALK_TIME_AGENT
*
- *

This metric is available only for contacts analyzed by Contact Lens conversational analytics.

+ *

This metric is available only for contacts analyzed by Contact Lens conversational + * analytics.

*

Unit: Seconds

*

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

*
*
AVG_TALK_TIME_CUSTOMER
*
- *

This metric is available only for contacts analyzed by Contact Lens conversational analytics.

+ *

This metric is available only for contacts analyzed by Contact Lens conversational + * analytics.

*

Unit: Seconds

*

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

*
@@ -1815,20 +1927,32 @@ export interface GetTrafficDistributionRequest { /** * @public - *

Information about a traffic distribution.

+ *

The distribution of sign in traffic between the instance and its replica(s).

*/ -export interface Distribution { +export interface SignInDistribution { /** * @public - *

The Amazon Web Services Region where the traffic is distributed.

+ *

The Amazon Web Services Region of the sign in distribution.

*/ Region: string | undefined; /** * @public - *

The percentage of the traffic that is distributed, in increments of 10.

+ *

Whether sign in distribution is enabled.

+ */ + Enabled: boolean | undefined; +} + +/** + * @public + *

The distribution of allowing signing in to the instance and its replica(s).

+ */ +export interface SignInConfig { + /** + * @public + *

Information about traffic distributions.

*/ - Percentage: number | undefined; + Distributions: SignInDistribution[] | undefined; } /** @@ -1866,6 +1990,18 @@ export interface GetTrafficDistributionResponse { *

The Amazon Resource Name (ARN) of the traffic distribution group.

*/ Arn?: string; + + /** + * @public + *

The distribution of allowing signing in to the instance and its replica(s).

+ */ + SignInConfig?: SignInConfig; + + /** + * @public + *

The distribution of agents between the instance and its replica(s).

+ */ + AgentConfig?: AgentConfig; } /** @@ -4521,6 +4657,15 @@ export interface TrafficDistributionGroupSummary { * */ Status?: TrafficDistributionGroupStatus | string; + + /** + * @public + *

Whether this is the default traffic distribution group created during instance + * replication. The default traffic distribution group cannot be deleted by the + * DeleteTrafficDistributionGroup API. The default traffic distribution group is deleted as + * part of the process for deleting a replica.

+ */ + IsDefault?: boolean; } /** @@ -4540,6 +4685,61 @@ export interface ListTrafficDistributionGroupsResponse { TrafficDistributionGroupSummaryList?: TrafficDistributionGroupSummary[]; } +/** + * @public + */ +export interface ListTrafficDistributionGroupUsersRequest { + /** + * @public + *

The identifier of the traffic distribution group. + * This can be the ID or the ARN if the API is being called in the Region where the traffic distribution group was created. + * The ARN must be provided if the call is from the replicated Region.

+ */ + TrafficDistributionGroupId: string | undefined; + + /** + * @public + *

The maximum number of results to return per page.

+ */ + MaxResults?: number; + + /** + * @public + *

The token for the next set of results. Use the value returned in the previous + * response in the next request to retrieve the next set of results.

+ */ + NextToken?: string; +} + +/** + * @public + *

Summary information about a traffic distribution group user.

+ */ +export interface TrafficDistributionGroupUserSummary { + /** + * @public + *

The identifier for the user. This can be the ID or the ARN of the user.

+ */ + UserId?: string; +} + +/** + * @public + */ +export interface ListTrafficDistributionGroupUsersResponse { + /** + * @public + *

If there are additional results, this is the token for the next set of results.

+ */ + NextToken?: string; + + /** + * @public + *

A list of traffic distribution group users.

+ */ + TrafficDistributionGroupUserSummaryList?: TrafficDistributionGroupUserSummary[]; +} + /** * @public *

Provides summary information about the use cases for the specified integration @@ -6739,7 +6939,7 @@ export interface TransferContactRequest { /** * @public - *

The identifier for the user.

+ *

The identifier for the user. This can be the ID or the ARN of the user.

*/ UserId?: string; @@ -7778,11 +7978,9 @@ export interface UpdateRoutingProfileAgentAvailabilityTimerRequest { /** * @public - *

Whether agents with this routing profile - * will have their routing order calculated based on - * time since their last inbound - * contact or longest idle - * time.

+ *

Whether agents with this routing profile will have their routing order calculated based on + * time since their last inbound contact or longest idle + * time.

*/ AgentAvailabilityTimer: AgentAvailabilityTimer | string | undefined; } @@ -8130,6 +8328,18 @@ export interface UpdateTrafficDistributionRequest { *

The distribution of traffic between the instance and its replica(s).

*/ TelephonyConfig?: TelephonyConfig; + + /** + * @public + *

The distribution of allowing signing in to the instance and its replica(s).

+ */ + SignInConfig?: SignInConfig; + + /** + * @public + *

The distribution of agents between the instance and its replica(s).

+ */ + AgentConfig?: AgentConfig; } /** @@ -8195,381 +8405,6 @@ export interface HierarchyLevelUpdate { Name: string | undefined; } -/** - * @public - *

Contains information about the level hierarchy to update.

- */ -export interface HierarchyStructureUpdate { - /** - * @public - *

The - * update - * for level one.

- */ - LevelOne?: HierarchyLevelUpdate; - - /** - * @public - *

The update for level two.

- */ - LevelTwo?: HierarchyLevelUpdate; - - /** - * @public - *

The update for level three.

- */ - LevelThree?: HierarchyLevelUpdate; - - /** - * @public - *

The update for level four.

- */ - LevelFour?: HierarchyLevelUpdate; - - /** - * @public - *

The update for level five.

- */ - LevelFive?: HierarchyLevelUpdate; -} - -/** - * @public - */ -export interface UpdateUserHierarchyStructureRequest { - /** - * @public - *

The hierarchy levels to update.

- */ - HierarchyStructure: HierarchyStructureUpdate | undefined; - - /** - * @public - *

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

- */ - InstanceId: string | undefined; -} - -/** - * @public - */ -export interface UpdateUserIdentityInfoRequest { - /** - * @public - *

The identity information for the user.

- */ - IdentityInfo: UserIdentityInfo | undefined; - - /** - * @public - *

The identifier of the user account.

- */ - UserId: string | undefined; - - /** - * @public - *

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

- */ - InstanceId: string | undefined; -} - -/** - * @public - */ -export interface UpdateUserPhoneConfigRequest { - /** - * @public - *

Information about phone configuration settings for the user.

- */ - PhoneConfig: UserPhoneConfig | undefined; - - /** - * @public - *

The identifier of the user account.

- */ - UserId: string | undefined; - - /** - * @public - *

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

- */ - InstanceId: string | undefined; -} - -/** - * @public - */ -export interface UpdateUserRoutingProfileRequest { - /** - * @public - *

The identifier of the routing profile for the user.

- */ - RoutingProfileId: string | undefined; - - /** - * @public - *

The identifier of the user account.

- */ - UserId: string | undefined; - - /** - * @public - *

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

- */ - InstanceId: string | undefined; -} - -/** - * @public - */ -export interface UpdateUserSecurityProfilesRequest { - /** - * @public - *

The identifiers of the security profiles for the user.

- */ - SecurityProfileIds: string[] | undefined; - - /** - * @public - *

The identifier of the user account.

- */ - UserId: string | undefined; - - /** - * @public - *

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

- */ - InstanceId: string | undefined; -} - -/** - * @public - *

Information about an item from an evaluation form. The item must be either a section or a - * question.

- */ -export type EvaluationFormItem = - | EvaluationFormItem.QuestionMember - | EvaluationFormItem.SectionMember - | EvaluationFormItem.$UnknownMember; - -/** - * @public - */ -export namespace EvaluationFormItem { - /** - * @public - *

The information of the section.

- */ - export interface SectionMember { - Section: EvaluationFormSection; - Question?: never; - $unknown?: never; - } - - /** - * @public - *

The information of the question.

- */ - export interface QuestionMember { - Section?: never; - Question: EvaluationFormQuestion; - $unknown?: never; - } - - /** - * @public - */ - export interface $UnknownMember { - Section?: never; - Question?: never; - $unknown: [string, any]; - } - - export interface Visitor { - Section: (value: EvaluationFormSection) => T; - Question: (value: EvaluationFormQuestion) => T; - _: (name: string, value: any) => T; - } - - export const visit = (value: EvaluationFormItem, visitor: Visitor): T => { - if (value.Section !== undefined) return visitor.Section(value.Section); - if (value.Question !== undefined) return visitor.Question(value.Question); - return visitor._(value.$unknown[0], value.$unknown[1]); - }; -} - -/** - * @public - *

Information about a section from an evaluation form. A section can contain sections and/or - * questions. Evaluation forms can only contain sections and subsections (two level nesting).

- */ -export interface EvaluationFormSection { - /** - * @public - *

The title of the section.

- */ - Title: string | undefined; - - /** - * @public - *

The identifier of the section. An identifier must be unique within the evaluation - * form.

- */ - RefId: string | undefined; - - /** - * @public - *

The instructions of the section.

- */ - Instructions?: string; - - /** - * @public - *

The items of the section.

- */ - Items: EvaluationFormItem[] | undefined; - - /** - * @public - *

The scoring weight of the section.

- */ - Weight?: number; -} - -/** - * @public - */ -export interface CreateEvaluationFormRequest { - /** - * @public - *

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

- */ - InstanceId: string | undefined; - - /** - * @public - *

A title of the evaluation form.

- */ - Title: string | undefined; - - /** - * @public - *

The description of the evaluation form.

- */ - Description?: string; - - /** - * @public - *

Items that are part of the evaluation form. The total number of sections and questions must not exceed 100 each. Questions must be contained in a section.

- */ - Items: EvaluationFormItem[] | undefined; - - /** - * @public - *

A scoring strategy of the evaluation form.

- */ - ScoringStrategy?: EvaluationFormScoringStrategy; - - /** - * @public - *

A unique, case-sensitive identifier that you provide to ensure the idempotency of the - * request. If not provided, the Amazon Web Services - * SDK populates this field. For more information about idempotency, see - * Making retries safe with idempotent APIs.

- */ - ClientToken?: string; -} - -/** - * @public - *

Information about the evaluation form.

- */ -export interface EvaluationForm { - /** - * @public - *

The unique identifier for the evaluation form.

- */ - EvaluationFormId: string | undefined; - - /** - * @public - *

A version of the evaluation form.

- */ - EvaluationFormVersion: number | undefined; - - /** - * @public - *

The flag indicating whether the evaluation form is locked for changes.

- */ - Locked: boolean | undefined; - - /** - * @public - *

The Amazon Resource Name (ARN) for the evaluation form resource.

- */ - EvaluationFormArn: string | undefined; - - /** - * @public - *

A title of the evaluation form.

- */ - Title: string | undefined; - - /** - * @public - *

The description of the evaluation form.

- */ - Description?: string; - - /** - * @public - *

The status of the evaluation form.

- */ - Status: EvaluationFormVersionStatus | string | undefined; - - /** - * @public - *

Items that are part of the evaluation form. The total number of sections and questions must not exceed 100 each. Questions must be contained in a section.

- */ - Items: EvaluationFormItem[] | undefined; - - /** - * @public - *

A scoring strategy of the evaluation form.

- */ - ScoringStrategy?: EvaluationFormScoringStrategy; - - /** - * @public - *

The timestamp for when the evaluation form was created.

- */ - CreatedTime: Date | undefined; - - /** - * @public - *

The Amazon Resource Name (ARN) of the user who created the evaluation form.

- */ - CreatedBy: string | undefined; - - /** - * @public - *

The timestamp for when the evaluation form was last updated.

- */ - LastModifiedTime: Date | undefined; - - /** - * @public - *

The Amazon Resource Name (ARN) of the user who last updated the evaluation form.

- */ - LastModifiedBy: string | undefined; - - /** - * @public - *

The tags used to organize, track, or control access for this resource. For example, \{ "tags": \{"key1":"value1", "key2":"value2"\} \}.

- */ - Tags?: Record; -} - /** * @internal */ diff --git a/clients/client-connect/src/models/models_2.ts b/clients/client-connect/src/models/models_2.ts index 9f96daf0be0b..f0b9b091a51d 100644 --- a/clients/client-connect/src/models/models_2.ts +++ b/clients/client-connect/src/models/models_2.ts @@ -1,9 +1,15 @@ // smithy-typescript generated code -import { Evaluation, EvaluationFormScoringStrategy } from "./models_0"; import { - EvaluationForm, - EvaluationFormItem, + Evaluation, + EvaluationFormQuestion, + EvaluationFormScoringStrategy, + EvaluationFormVersionStatus, + UserIdentityInfo, + UserPhoneConfig, +} from "./models_0"; +import { HierarchyGroupCondition, + HierarchyLevelUpdate, HoursOfOperationSearchFilter, PromptSearchFilter, QueueSearchFilter, @@ -15,6 +21,381 @@ import { UserSearchFilter, } from "./models_1"; +/** + * @public + *

Contains information about the level hierarchy to update.

+ */ +export interface HierarchyStructureUpdate { + /** + * @public + *

The + * update + * for level one.

+ */ + LevelOne?: HierarchyLevelUpdate; + + /** + * @public + *

The update for level two.

+ */ + LevelTwo?: HierarchyLevelUpdate; + + /** + * @public + *

The update for level three.

+ */ + LevelThree?: HierarchyLevelUpdate; + + /** + * @public + *

The update for level four.

+ */ + LevelFour?: HierarchyLevelUpdate; + + /** + * @public + *

The update for level five.

+ */ + LevelFive?: HierarchyLevelUpdate; +} + +/** + * @public + */ +export interface UpdateUserHierarchyStructureRequest { + /** + * @public + *

The hierarchy levels to update.

+ */ + HierarchyStructure: HierarchyStructureUpdate | undefined; + + /** + * @public + *

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

+ */ + InstanceId: string | undefined; +} + +/** + * @public + */ +export interface UpdateUserIdentityInfoRequest { + /** + * @public + *

The identity information for the user.

+ */ + IdentityInfo: UserIdentityInfo | undefined; + + /** + * @public + *

The identifier of the user account.

+ */ + UserId: string | undefined; + + /** + * @public + *

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

+ */ + InstanceId: string | undefined; +} + +/** + * @public + */ +export interface UpdateUserPhoneConfigRequest { + /** + * @public + *

Information about phone configuration settings for the user.

+ */ + PhoneConfig: UserPhoneConfig | undefined; + + /** + * @public + *

The identifier of the user account.

+ */ + UserId: string | undefined; + + /** + * @public + *

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

+ */ + InstanceId: string | undefined; +} + +/** + * @public + */ +export interface UpdateUserRoutingProfileRequest { + /** + * @public + *

The identifier of the routing profile for the user.

+ */ + RoutingProfileId: string | undefined; + + /** + * @public + *

The identifier of the user account.

+ */ + UserId: string | undefined; + + /** + * @public + *

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

+ */ + InstanceId: string | undefined; +} + +/** + * @public + */ +export interface UpdateUserSecurityProfilesRequest { + /** + * @public + *

The identifiers of the security profiles for the user.

+ */ + SecurityProfileIds: string[] | undefined; + + /** + * @public + *

The identifier of the user account.

+ */ + UserId: string | undefined; + + /** + * @public + *

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

+ */ + InstanceId: string | undefined; +} + +/** + * @public + *

Information about an item from an evaluation form. The item must be either a section or a + * question.

+ */ +export type EvaluationFormItem = + | EvaluationFormItem.QuestionMember + | EvaluationFormItem.SectionMember + | EvaluationFormItem.$UnknownMember; + +/** + * @public + */ +export namespace EvaluationFormItem { + /** + * @public + *

The information of the section.

+ */ + export interface SectionMember { + Section: EvaluationFormSection; + Question?: never; + $unknown?: never; + } + + /** + * @public + *

The information of the question.

+ */ + export interface QuestionMember { + Section?: never; + Question: EvaluationFormQuestion; + $unknown?: never; + } + + /** + * @public + */ + export interface $UnknownMember { + Section?: never; + Question?: never; + $unknown: [string, any]; + } + + export interface Visitor { + Section: (value: EvaluationFormSection) => T; + Question: (value: EvaluationFormQuestion) => T; + _: (name: string, value: any) => T; + } + + export const visit = (value: EvaluationFormItem, visitor: Visitor): T => { + if (value.Section !== undefined) return visitor.Section(value.Section); + if (value.Question !== undefined) return visitor.Question(value.Question); + return visitor._(value.$unknown[0], value.$unknown[1]); + }; +} + +/** + * @public + *

Information about a section from an evaluation form. A section can contain sections and/or + * questions. Evaluation forms can only contain sections and subsections (two level nesting).

+ */ +export interface EvaluationFormSection { + /** + * @public + *

The title of the section.

+ */ + Title: string | undefined; + + /** + * @public + *

The identifier of the section. An identifier must be unique within the evaluation + * form.

+ */ + RefId: string | undefined; + + /** + * @public + *

The instructions of the section.

+ */ + Instructions?: string; + + /** + * @public + *

The items of the section.

+ */ + Items: EvaluationFormItem[] | undefined; + + /** + * @public + *

The scoring weight of the section.

+ */ + Weight?: number; +} + +/** + * @public + */ +export interface CreateEvaluationFormRequest { + /** + * @public + *

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

+ */ + InstanceId: string | undefined; + + /** + * @public + *

A title of the evaluation form.

+ */ + Title: string | undefined; + + /** + * @public + *

The description of the evaluation form.

+ */ + Description?: string; + + /** + * @public + *

Items that are part of the evaluation form. The total number of sections and questions must not exceed 100 each. Questions must be contained in a section.

+ */ + Items: EvaluationFormItem[] | undefined; + + /** + * @public + *

A scoring strategy of the evaluation form.

+ */ + ScoringStrategy?: EvaluationFormScoringStrategy; + + /** + * @public + *

A unique, case-sensitive identifier that you provide to ensure the idempotency of the + * request. If not provided, the Amazon Web Services + * SDK populates this field. For more information about idempotency, see + * Making retries safe with idempotent APIs.

+ */ + ClientToken?: string; +} + +/** + * @public + *

Information about the evaluation form.

+ */ +export interface EvaluationForm { + /** + * @public + *

The unique identifier for the evaluation form.

+ */ + EvaluationFormId: string | undefined; + + /** + * @public + *

A version of the evaluation form.

+ */ + EvaluationFormVersion: number | undefined; + + /** + * @public + *

The flag indicating whether the evaluation form is locked for changes.

+ */ + Locked: boolean | undefined; + + /** + * @public + *

The Amazon Resource Name (ARN) for the evaluation form resource.

+ */ + EvaluationFormArn: string | undefined; + + /** + * @public + *

A title of the evaluation form.

+ */ + Title: string | undefined; + + /** + * @public + *

The description of the evaluation form.

+ */ + Description?: string; + + /** + * @public + *

The status of the evaluation form.

+ */ + Status: EvaluationFormVersionStatus | string | undefined; + + /** + * @public + *

Items that are part of the evaluation form. The total number of sections and questions must not exceed 100 each. Questions must be contained in a section.

+ */ + Items: EvaluationFormItem[] | undefined; + + /** + * @public + *

A scoring strategy of the evaluation form.

+ */ + ScoringStrategy?: EvaluationFormScoringStrategy; + + /** + * @public + *

The timestamp for when the evaluation form was created.

+ */ + CreatedTime: Date | undefined; + + /** + * @public + *

The Amazon Resource Name (ARN) of the user who created the evaluation form.

+ */ + CreatedBy: string | undefined; + + /** + * @public + *

The timestamp for when the evaluation form was last updated.

+ */ + LastModifiedTime: Date | undefined; + + /** + * @public + *

The Amazon Resource Name (ARN) of the user who last updated the evaluation form.

+ */ + LastModifiedBy: string | undefined; + + /** + * @public + *

The tags used to organize, track, or control access for this resource. For example, \{ "tags": \{"key1":"value1", "key2":"value2"\} \}.

+ */ + Tags?: Record; +} + /** * @public *

Information about an evaluation form used in a contact evaluation.

diff --git a/clients/client-connect/src/pagination/ListTrafficDistributionGroupUsersPaginator.ts b/clients/client-connect/src/pagination/ListTrafficDistributionGroupUsersPaginator.ts new file mode 100644 index 000000000000..cf38440329b4 --- /dev/null +++ b/clients/client-connect/src/pagination/ListTrafficDistributionGroupUsersPaginator.ts @@ -0,0 +1,50 @@ +// smithy-typescript generated code +import { Paginator } from "@smithy/types"; + +import { + ListTrafficDistributionGroupUsersCommand, + ListTrafficDistributionGroupUsersCommandInput, + ListTrafficDistributionGroupUsersCommandOutput, +} from "../commands/ListTrafficDistributionGroupUsersCommand"; +import { ConnectClient } from "../ConnectClient"; +import { ConnectPaginationConfiguration } from "./Interfaces"; + +/** + * @internal + */ +const makePagedClientRequest = async ( + client: ConnectClient, + input: ListTrafficDistributionGroupUsersCommandInput, + ...args: any +): Promise => { + // @ts-ignore + return await client.send(new ListTrafficDistributionGroupUsersCommand(input), ...args); +}; +/** + * @public + */ +export async function* paginateListTrafficDistributionGroupUsers( + config: ConnectPaginationConfiguration, + input: ListTrafficDistributionGroupUsersCommandInput, + ...additionalArguments: any +): Paginator { + // ToDo: replace with actual type instead of typeof input.NextToken + let token: typeof input.NextToken | undefined = config.startingToken || undefined; + let hasNext = true; + let page: ListTrafficDistributionGroupUsersCommandOutput; + while (hasNext) { + input.NextToken = token; + input["MaxResults"] = config.pageSize; + if (config.client instanceof ConnectClient) { + page = await makePagedClientRequest(config.client, input, ...additionalArguments); + } else { + throw new Error("Invalid client, expected Connect | ConnectClient"); + } + yield page; + const prevToken = token; + token = page.NextToken; + hasNext = !!(token && (!config.stopOnSameToken || token !== prevToken)); + } + // @ts-ignore + return undefined; +} diff --git a/clients/client-connect/src/pagination/index.ts b/clients/client-connect/src/pagination/index.ts index 46ca7a7a983b..83acec4c6032 100644 --- a/clients/client-connect/src/pagination/index.ts +++ b/clients/client-connect/src/pagination/index.ts @@ -37,6 +37,7 @@ export * from "./ListSecurityKeysPaginator"; export * from "./ListSecurityProfilePermissionsPaginator"; export * from "./ListSecurityProfilesPaginator"; export * from "./ListTaskTemplatesPaginator"; +export * from "./ListTrafficDistributionGroupUsersPaginator"; export * from "./ListTrafficDistributionGroupsPaginator"; export * from "./ListUseCasesPaginator"; export * from "./ListUserHierarchyGroupsPaginator"; diff --git a/clients/client-connect/src/protocols/Aws_restJson1.ts b/clients/client-connect/src/protocols/Aws_restJson1.ts index 0fff84735fce..ad0fc01b738d 100644 --- a/clients/client-connect/src/protocols/Aws_restJson1.ts +++ b/clients/client-connect/src/protocols/Aws_restJson1.ts @@ -66,6 +66,10 @@ import { AssociateSecurityKeyCommandInput, AssociateSecurityKeyCommandOutput, } from "../commands/AssociateSecurityKeyCommand"; +import { + AssociateTrafficDistributionGroupUserCommandInput, + AssociateTrafficDistributionGroupUserCommandOutput, +} from "../commands/AssociateTrafficDistributionGroupUserCommand"; import { ClaimPhoneNumberCommandInput, ClaimPhoneNumberCommandOutput } from "../commands/ClaimPhoneNumberCommand"; import { CreateAgentStatusCommandInput, CreateAgentStatusCommandOutput } from "../commands/CreateAgentStatusCommand"; import { CreateContactFlowCommandInput, CreateContactFlowCommandOutput } from "../commands/CreateContactFlowCommand"; @@ -258,6 +262,10 @@ import { DisassociateSecurityKeyCommandInput, DisassociateSecurityKeyCommandOutput, } from "../commands/DisassociateSecurityKeyCommand"; +import { + DisassociateTrafficDistributionGroupUserCommandInput, + DisassociateTrafficDistributionGroupUserCommandOutput, +} from "../commands/DisassociateTrafficDistributionGroupUserCommand"; import { DismissUserContactCommandInput, DismissUserContactCommandOutput } from "../commands/DismissUserContactCommand"; import { GetContactAttributesCommandInput, @@ -366,6 +374,10 @@ import { ListTrafficDistributionGroupsCommandInput, ListTrafficDistributionGroupsCommandOutput, } from "../commands/ListTrafficDistributionGroupsCommand"; +import { + ListTrafficDistributionGroupUsersCommandInput, + ListTrafficDistributionGroupUsersCommandOutput, +} from "../commands/ListTrafficDistributionGroupUsersCommand"; import { ListUseCasesCommandInput, ListUseCasesCommandOutput } from "../commands/ListUseCasesCommand"; import { ListUserHierarchyGroupsCommandInput, @@ -582,6 +594,7 @@ import { import { ConnectServiceException as __BaseException } from "../models/ConnectServiceException"; import { AccessDeniedException, + AgentConfig, AgentContactReference, AgentInfo, AgentStatusReference, @@ -591,7 +604,7 @@ import { ContactFlowNotPublishedException, ContactState, CrossChannelBehavior, - CurrentMetric, + Distribution, DuplicateResourceException, EncryptionConfig, Evaluation, @@ -611,8 +624,6 @@ import { EvaluationNote, EvaluationScore, EventBridgeActionDefinition, - Filters, - Grouping, HoursOfOperationConfig, HoursOfOperationTimeSlice, IdempotencyException, @@ -680,22 +691,20 @@ import { ContactNotFoundException, ControlPlaneTagFilter, Credentials, + CurrentMetric, CurrentMetricData, CurrentMetricResult, CurrentMetricSortCriteria, DestinationNotAllowedException, - Distribution, EvaluationAnswerInput, - EvaluationForm, - EvaluationFormItem, - EvaluationFormSection, EvaluationFormSummary, EvaluationFormVersionSummary, EvaluationSummary, + Filters, FilterV2, + Grouping, HierarchyGroupCondition, HierarchyLevelUpdate, - HierarchyStructureUpdate, HistoricalMetric, HistoricalMetricData, HistoricalMetricResult, @@ -719,6 +728,8 @@ import { RuleSummary, SecurityKey, SecurityProfilesSearchFilter, + SignInConfig, + SignInDistribution, StringCondition, TagCondition, TagSearchCondition, @@ -735,7 +746,11 @@ import { VoiceRecordingConfiguration, } from "../models/models_1"; import { + EvaluationForm, EvaluationFormContent, + EvaluationFormItem, + EvaluationFormSection, + HierarchyStructureUpdate, HoursOfOperationSearchCriteria, PromptSearchCriteria, QueueSearchCriteria, @@ -1126,6 +1141,46 @@ export const se_AssociateSecurityKeyCommand = async ( }); }; +/** + * serializeAws_restJson1AssociateTrafficDistributionGroupUserCommand + */ +export const se_AssociateTrafficDistributionGroupUserCommand = async ( + input: AssociateTrafficDistributionGroupUserCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); + const headers: any = { + "content-type": "application/json", + }; + let resolvedPath = + `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + + "/traffic-distribution-group/{TrafficDistributionGroupId}/user"; + resolvedPath = __resolvedPath( + resolvedPath, + input, + "TrafficDistributionGroupId", + () => input.TrafficDistributionGroupId!, + "{TrafficDistributionGroupId}", + false + ); + let body: any; + body = JSON.stringify( + take(input, { + InstanceId: [], + UserId: [], + }) + ); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "PUT", + headers, + path: resolvedPath, + body, + }); +}; + /** * serializeAws_restJson1ClaimPhoneNumberCommand */ @@ -3463,6 +3518,43 @@ export const se_DisassociateSecurityKeyCommand = async ( }); }; +/** + * serializeAws_restJson1DisassociateTrafficDistributionGroupUserCommand + */ +export const se_DisassociateTrafficDistributionGroupUserCommand = async ( + input: DisassociateTrafficDistributionGroupUserCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); + const headers: any = {}; + let resolvedPath = + `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + + "/traffic-distribution-group/{TrafficDistributionGroupId}/user"; + resolvedPath = __resolvedPath( + resolvedPath, + input, + "TrafficDistributionGroupId", + () => input.TrafficDistributionGroupId!, + "{TrafficDistributionGroupId}", + false + ); + const query: any = map({ + UserId: [, __expectNonNull(input.UserId!, `UserId`)], + InstanceId: [, __expectNonNull(input.InstanceId!, `InstanceId`)], + }); + let body: any; + return new __HttpRequest({ + protocol, + hostname, + port, + method: "DELETE", + headers, + path: resolvedPath, + query, + body, + }); +}; + /** * serializeAws_restJson1DismissUserContactCommand */ @@ -4773,6 +4865,43 @@ export const se_ListTrafficDistributionGroupsCommand = async ( }); }; +/** + * serializeAws_restJson1ListTrafficDistributionGroupUsersCommand + */ +export const se_ListTrafficDistributionGroupUsersCommand = async ( + input: ListTrafficDistributionGroupUsersCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); + const headers: any = {}; + let resolvedPath = + `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + + "/traffic-distribution-group/{TrafficDistributionGroupId}/user"; + resolvedPath = __resolvedPath( + resolvedPath, + input, + "TrafficDistributionGroupId", + () => input.TrafficDistributionGroupId!, + "{TrafficDistributionGroupId}", + false + ); + const query: any = map({ + maxResults: [() => input.MaxResults !== void 0, () => input.MaxResults!.toString()], + nextToken: [, input.NextToken!], + }); + let body: any; + return new __HttpRequest({ + protocol, + hostname, + port, + method: "GET", + headers, + path: resolvedPath, + query, + body, + }); +}; + /** * serializeAws_restJson1ListUseCasesCommand */ @@ -7101,6 +7230,8 @@ export const se_UpdateTrafficDistributionCommand = async ( let body: any; body = JSON.stringify( take(input, { + AgentConfig: (_) => _json(_), + SignInConfig: (_) => _json(_), TelephonyConfig: (_) => _json(_), }) ); @@ -8004,6 +8135,64 @@ const de_AssociateSecurityKeyCommandError = async ( } }; +/** + * deserializeAws_restJson1AssociateTrafficDistributionGroupUserCommand + */ +export const de_AssociateTrafficDistributionGroupUserCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return de_AssociateTrafficDistributionGroupUserCommandError(output, context); + } + const contents: any = map({ + $metadata: deserializeMetadata(output), + }); + await collectBody(output.body, context); + return contents; +}; + +/** + * deserializeAws_restJson1AssociateTrafficDistributionGroupUserCommandError + */ +const de_AssociateTrafficDistributionGroupUserCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseErrorBody(output.body, context), + }; + const errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.connect#AccessDeniedException": + throw await de_AccessDeniedExceptionRes(parsedOutput, context); + case "InternalServiceException": + case "com.amazonaws.connect#InternalServiceException": + throw await de_InternalServiceExceptionRes(parsedOutput, context); + case "InvalidRequestException": + case "com.amazonaws.connect#InvalidRequestException": + throw await de_InvalidRequestExceptionRes(parsedOutput, context); + case "ResourceConflictException": + case "com.amazonaws.connect#ResourceConflictException": + throw await de_ResourceConflictExceptionRes(parsedOutput, context); + case "ResourceNotFoundException": + case "com.amazonaws.connect#ResourceNotFoundException": + throw await de_ResourceNotFoundExceptionRes(parsedOutput, context); + case "ThrottlingException": + case "com.amazonaws.connect#ThrottlingException": + throw await de_ThrottlingExceptionRes(parsedOutput, context); + default: + const parsedBody = parsedOutput.body; + return throwDefaultError({ + output, + parsedBody, + errorCode, + }); + } +}; + /** * deserializeAws_restJson1ClaimPhoneNumberCommand */ @@ -12279,6 +12468,64 @@ const de_DisassociateSecurityKeyCommandError = async ( } }; +/** + * deserializeAws_restJson1DisassociateTrafficDistributionGroupUserCommand + */ +export const de_DisassociateTrafficDistributionGroupUserCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return de_DisassociateTrafficDistributionGroupUserCommandError(output, context); + } + const contents: any = map({ + $metadata: deserializeMetadata(output), + }); + await collectBody(output.body, context); + return contents; +}; + +/** + * deserializeAws_restJson1DisassociateTrafficDistributionGroupUserCommandError + */ +const de_DisassociateTrafficDistributionGroupUserCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseErrorBody(output.body, context), + }; + const errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.connect#AccessDeniedException": + throw await de_AccessDeniedExceptionRes(parsedOutput, context); + case "InternalServiceException": + case "com.amazonaws.connect#InternalServiceException": + throw await de_InternalServiceExceptionRes(parsedOutput, context); + case "InvalidRequestException": + case "com.amazonaws.connect#InvalidRequestException": + throw await de_InvalidRequestExceptionRes(parsedOutput, context); + case "ResourceConflictException": + case "com.amazonaws.connect#ResourceConflictException": + throw await de_ResourceConflictExceptionRes(parsedOutput, context); + case "ResourceNotFoundException": + case "com.amazonaws.connect#ResourceNotFoundException": + throw await de_ResourceNotFoundExceptionRes(parsedOutput, context); + case "ThrottlingException": + case "com.amazonaws.connect#ThrottlingException": + throw await de_ThrottlingExceptionRes(parsedOutput, context); + default: + const parsedBody = parsedOutput.body; + return throwDefaultError({ + output, + parsedBody, + errorCode, + }); + } +}; + /** * deserializeAws_restJson1DismissUserContactCommand */ @@ -12843,8 +13090,10 @@ export const de_GetTrafficDistributionCommand = async ( }); const data: Record = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); const doc = take(data, { + AgentConfig: _json, Arn: __expectString, Id: __expectString, + SignInConfig: _json, TelephonyConfig: _json, }); Object.assign(contents, doc); @@ -14781,6 +15030,66 @@ const de_ListTrafficDistributionGroupsCommandError = async ( } }; +/** + * deserializeAws_restJson1ListTrafficDistributionGroupUsersCommand + */ +export const de_ListTrafficDistributionGroupUsersCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return de_ListTrafficDistributionGroupUsersCommandError(output, context); + } + const contents: any = map({ + $metadata: deserializeMetadata(output), + }); + const data: Record = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); + const doc = take(data, { + NextToken: __expectString, + TrafficDistributionGroupUserSummaryList: _json, + }); + Object.assign(contents, doc); + return contents; +}; + +/** + * deserializeAws_restJson1ListTrafficDistributionGroupUsersCommandError + */ +const de_ListTrafficDistributionGroupUsersCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseErrorBody(output.body, context), + }; + const errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.connect#AccessDeniedException": + throw await de_AccessDeniedExceptionRes(parsedOutput, context); + case "InternalServiceException": + case "com.amazonaws.connect#InternalServiceException": + throw await de_InternalServiceExceptionRes(parsedOutput, context); + case "InvalidRequestException": + case "com.amazonaws.connect#InvalidRequestException": + throw await de_InvalidRequestExceptionRes(parsedOutput, context); + case "ResourceNotFoundException": + case "com.amazonaws.connect#ResourceNotFoundException": + throw await de_ResourceNotFoundExceptionRes(parsedOutput, context); + case "ThrottlingException": + case "com.amazonaws.connect#ThrottlingException": + throw await de_ThrottlingExceptionRes(parsedOutput, context); + default: + const parsedBody = parsedOutput.body; + return throwDefaultError({ + output, + parsedBody, + errorCode, + }); + } +}; + /** * deserializeAws_restJson1ListUseCasesCommand */ @@ -19406,6 +19715,8 @@ const de_UserNotFoundExceptionRes = async ( return __decorateServiceException(exception, parsedOutput.body); }; +// se_AgentConfig omitted. + // se_AgentsMinOneMaxHundred omitted. // se_AllowedAccessControlTags omitted. @@ -19880,6 +20191,12 @@ const se_SecurityProfileSearchCriteria = (input: SecurityProfileSearchCriteria, // se_SendNotificationActionDefinition omitted. +// se_SignInConfig omitted. + +// se_SignInDistribution omitted. + +// se_SignInDistributionList omitted. + // se_SingleSelectOptions omitted. // se_SingleSelectQuestionRuleCategoryAutomation omitted. @@ -19996,6 +20313,8 @@ const se_UserSearchCriteria = (input: UserSearchCriteria, context: __SerdeContex // de_ActionSummary omitted. +// de_AgentConfig omitted. + /** * deserializeAws_restJson1AgentContactReference */ @@ -20921,6 +21240,12 @@ const de_SecurityKeysList = (output: any, context: __SerdeContext): SecurityKey[ // de_SendNotificationActionDefinition omitted. +// de_SignInConfig omitted. + +// de_SignInDistribution omitted. + +// de_SignInDistributionList omitted. + // de_SingleSelectOptions omitted. // de_SingleSelectQuestionRuleCategoryAutomation omitted. @@ -21018,6 +21343,10 @@ const de_ThresholdV2 = (output: any, context: __SerdeContext): ThresholdV2 => { // de_TrafficDistributionGroupSummaryList omitted. +// de_TrafficDistributionGroupUserSummary omitted. + +// de_TrafficDistributionGroupUserSummaryList omitted. + // de_UrlReference omitted. // de_UseCase omitted. diff --git a/codegen/sdk-codegen/aws-models/connect.json b/codegen/sdk-codegen/aws-models/connect.json index 5245b693a5a0..894aaa6b281b 100644 --- a/codegen/sdk-codegen/aws-models/connect.json +++ b/codegen/sdk-codegen/aws-models/connect.json @@ -219,6 +219,21 @@ } } }, + "com.amazonaws.connect#AgentConfig": { + "type": "structure", + "members": { + "Distributions": { + "target": "com.amazonaws.connect#DistributionList", + "traits": { + "smithy.api#documentation": "

Information about traffic distributions.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The distribution of agents between the instance and its replica(s).

" + } + }, "com.amazonaws.connect#AgentContactReference": { "type": "structure", "members": { @@ -615,6 +630,9 @@ { "target": "com.amazonaws.connect#AssociateSecurityKey" }, + { + "target": "com.amazonaws.connect#AssociateTrafficDistributionGroupUser" + }, { "target": "com.amazonaws.connect#ClaimPhoneNumber" }, @@ -831,6 +849,9 @@ { "target": "com.amazonaws.connect#DisassociateSecurityKey" }, + { + "target": "com.amazonaws.connect#DisassociateTrafficDistributionGroupUser" + }, { "target": "com.amazonaws.connect#DismissUserContact" }, @@ -957,6 +978,9 @@ { "target": "com.amazonaws.connect#ListTrafficDistributionGroups" }, + { + "target": "com.amazonaws.connect#ListTrafficDistributionGroupUsers" + }, { "target": "com.amazonaws.connect#ListUseCases" }, @@ -2698,6 +2722,81 @@ "smithy.api#output": {} } }, + "com.amazonaws.connect#AssociateTrafficDistributionGroupUser": { + "type": "operation", + "input": { + "target": "com.amazonaws.connect#AssociateTrafficDistributionGroupUserRequest" + }, + "output": { + "target": "com.amazonaws.connect#AssociateTrafficDistributionGroupUserResponse" + }, + "errors": [ + { + "target": "com.amazonaws.connect#AccessDeniedException" + }, + { + "target": "com.amazonaws.connect#InternalServiceException" + }, + { + "target": "com.amazonaws.connect#InvalidRequestException" + }, + { + "target": "com.amazonaws.connect#ResourceConflictException" + }, + { + "target": "com.amazonaws.connect#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.connect#ThrottlingException" + } + ], + "traits": { + "smithy.api#documentation": "

Associates an agent with a traffic distribution group.

", + "smithy.api#http": { + "method": "PUT", + "uri": "/traffic-distribution-group/{TrafficDistributionGroupId}/user", + "code": 200 + }, + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.connect#AssociateTrafficDistributionGroupUserRequest": { + "type": "structure", + "members": { + "TrafficDistributionGroupId": { + "target": "com.amazonaws.connect#TrafficDistributionGroupIdOrArn", + "traits": { + "smithy.api#documentation": "

The identifier of the traffic distribution group.\nThis can be the ID or the ARN if the API is being called in the Region where the traffic distribution group was created.\nThe ARN must be provided if the call is from the replicated Region.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "UserId": { + "target": "com.amazonaws.connect#UserId", + "traits": { + "smithy.api#documentation": "

The identifier of the user account. This can be the ID or the ARN of the user.

", + "smithy.api#required": {} + } + }, + "InstanceId": { + "target": "com.amazonaws.connect#InstanceId", + "traits": { + "smithy.api#documentation": "

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.connect#AssociateTrafficDistributionGroupUserResponse": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.connect#AssociationId": { "type": "string", "traits": { @@ -5200,7 +5299,7 @@ "AgentAvailabilityTimer": { "target": "com.amazonaws.connect#AgentAvailabilityTimer", "traits": { - "smithy.api#documentation": "

Whether agents with this routing profile\n will have their routing order calculated based on\n time since their last inbound\n contact or longest idle\n time.

" + "smithy.api#documentation": "

Whether agents with this routing profile will have their routing order calculated based on\n longest idle time or time since their last inbound\n contact.

" } } }, @@ -5687,7 +5786,7 @@ "Id": { "target": "com.amazonaws.connect#TrafficDistributionGroupId", "traits": { - "smithy.api#documentation": "

The identifier of the traffic distribution group. \nThis can be the ID or the ARN if the API is being called in the Region where the traffic distribution group was created. \nThe ARN must be provided if the call is from the replicated Region.

" + "smithy.api#documentation": "

The identifier of the traffic distribution group.\nThis can be the ID or the ARN if the API is being called in the Region where the traffic distribution group was created.\nThe ARN must be provided if the call is from the replicated Region.

" } }, "Arn": { @@ -7429,7 +7528,7 @@ "TrafficDistributionGroupId": { "target": "com.amazonaws.connect#TrafficDistributionGroupIdOrArn", "traits": { - "smithy.api#documentation": "

The identifier of the traffic distribution group. \nThis can be the ID or the ARN if the API is being called in the Region where the traffic distribution group was created. \nThe ARN must be provided if the call is from the replicated Region.

", + "smithy.api#documentation": "

The identifier of the traffic distribution group.\nThis can be the ID or the ARN if the API is being called in the Region where the traffic distribution group was created.\nThe ARN must be provided if the call is from the replicated Region.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -8985,7 +9084,7 @@ "TrafficDistributionGroupId": { "target": "com.amazonaws.connect#TrafficDistributionGroupIdOrArn", "traits": { - "smithy.api#documentation": "

The identifier of the traffic distribution group. \nThis can be the ID or the ARN if the API is being called in the Region where the traffic distribution group was created. \nThe ARN must be provided if the call is from the replicated Region.

", + "smithy.api#documentation": "

The identifier of the traffic distribution group.\nThis can be the ID or the ARN if the API is being called in the Region where the traffic distribution group was created.\nThe ARN must be provided if the call is from the replicated Region.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -9964,6 +10063,83 @@ "smithy.api#input": {} } }, + "com.amazonaws.connect#DisassociateTrafficDistributionGroupUser": { + "type": "operation", + "input": { + "target": "com.amazonaws.connect#DisassociateTrafficDistributionGroupUserRequest" + }, + "output": { + "target": "com.amazonaws.connect#DisassociateTrafficDistributionGroupUserResponse" + }, + "errors": [ + { + "target": "com.amazonaws.connect#AccessDeniedException" + }, + { + "target": "com.amazonaws.connect#InternalServiceException" + }, + { + "target": "com.amazonaws.connect#InvalidRequestException" + }, + { + "target": "com.amazonaws.connect#ResourceConflictException" + }, + { + "target": "com.amazonaws.connect#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.connect#ThrottlingException" + } + ], + "traits": { + "smithy.api#documentation": "

Disassociates an agent from a traffic distribution group.

", + "smithy.api#http": { + "method": "DELETE", + "uri": "/traffic-distribution-group/{TrafficDistributionGroupId}/user", + "code": 200 + }, + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.connect#DisassociateTrafficDistributionGroupUserRequest": { + "type": "structure", + "members": { + "TrafficDistributionGroupId": { + "target": "com.amazonaws.connect#TrafficDistributionGroupIdOrArn", + "traits": { + "smithy.api#documentation": "

The identifier of the traffic distribution group.\nThis can be the ID or the ARN if the API is being called in the Region where the traffic distribution group was created.\nThe ARN must be provided if the call is from the replicated Region.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "UserId": { + "target": "com.amazonaws.connect#UserId", + "traits": { + "smithy.api#documentation": "

The identifier for the user. This can be the ID or the ARN of the user.

", + "smithy.api#httpQuery": "UserId", + "smithy.api#required": {} + } + }, + "InstanceId": { + "target": "com.amazonaws.connect#InstanceId", + "traits": { + "smithy.api#documentation": "

The identifier of the Amazon Connect instance. You can find the instance ID in the Amazon Resource Name (ARN) of the instance.

", + "smithy.api#httpQuery": "InstanceId", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.connect#DisassociateTrafficDistributionGroupUserResponse": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.connect#DismissUserContact": { "type": "operation", "input": { @@ -11961,7 +12137,7 @@ "UserId": { "target": "com.amazonaws.connect#AgentResourceId", "traits": { - "smithy.api#documentation": "

The identifier for the user.

" + "smithy.api#documentation": "

The identifier for the user. This can be the ID or the ARN of the user.

" } } }, @@ -12170,7 +12346,7 @@ "Metrics": { "target": "com.amazonaws.connect#MetricsV2", "traits": { - "smithy.api#documentation": "

The metrics to retrieve. Specify the name, groupings, and filters for each metric. The\n following historical metrics are available. For a description of each metric, see Historical metrics definitions in the Amazon Connect Administrator's\n Guide.

\n
\n
AGENT_ADHERENT_TIME
\n
\n

This metric is available only in Amazon Web Services Regions where Forecasting, capacity planning, and scheduling is available.

\n

Unit: Seconds

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

\n
\n
AGENT_NON_RESPONSE
\n
\n

Unit: Count

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

\n
\n
AGENT_OCCUPANCY
\n
\n

Unit: Percentage

\n

Valid groupings and filters: Routing Profile, Agent, Agent Hierarchy

\n
\n
AGENT_SCHEDULE_ADHERENCE
\n
\n

This metric is available only in Amazon Web Services Regions where Forecasting, capacity planning, and scheduling is available.

\n

Unit: Percent

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

\n
\n
AGENT_SCHEDULED_TIME
\n
\n

This metric is available only in Amazon Web Services Regions where Forecasting, capacity planning, and scheduling is available.

\n

Unit: Seconds

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

\n
\n
AVG_ABANDON_TIME
\n
\n

Unit: Seconds

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

\n
\n
AVG_AFTER_CONTACT_WORK_TIME
\n
\n

Unit: Seconds

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Feature

\n \n

Feature is a valid filter but not a valid grouping.

\n
\n
\n
AVG_AGENT_CONNECTING_TIME
\n
\n

Unit: Seconds

\n

Valid metric filter key: INITIATION_METHOD. For now, this metric only\n supports the following as INITIATION_METHOD: INBOUND |\n OUTBOUND | CALLBACK | API\n

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

\n
\n
AVG_AGENT_CONNECTING_TIME
\n
\n

Unit: Seconds

\n

Valid metric filter key: INITIATION_METHOD. For now, this metric only\n supports the following as INITIATION_METHOD: INBOUND |\n OUTBOUND | CALLBACK | API\n

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

\n
\n
AVG_CONTACT_DURATION
\n
\n

Unit: Seconds

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Feature

\n \n

Feature is a valid filter but not a valid grouping.

\n
\n
\n
AVG_CONVERSATION_DURATION
\n
\n

Unit: Seconds

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

\n
\n
AVG_GREETING_TIME_AGENT
\n
\n

This metric is available only for contacts analyzed by Contact Lens conversational analytics.

\n

Unit: Seconds

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

\n
\n
AVG_HANDLE_TIME
\n
\n

Unit: Seconds

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Feature

\n \n

Feature is a valid filter but not a valid grouping.

\n
\n
\n
AVG_HOLD_TIME
\n
\n

Unit: Seconds

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Feature

\n \n

Feature is a valid filter but not a valid grouping.

\n
\n
\n
AVG_HOLDS
\n
\n

Unit: Count

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Feature

\n \n

Feature is a valid filter but not a valid grouping.

\n
\n
\n
AVG_INTERACTION_AND_HOLD_TIME
\n
\n

Unit: Seconds

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

\n
\n
AVG_INTERACTION_TIME
\n
\n

Unit: Seconds

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Feature

\n \n

Feature is a valid filter but not a valid grouping.

\n
\n
\n
AVG_INTERRUPTIONS_AGENT
\n
\n

This metric is available only for contacts analyzed by Contact Lens conversational analytics.

\n

Unit: Count

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

\n
\n
AVG_INTERRUPTION_TIME_AGENT
\n
\n

This metric is available only for contacts analyzed by Contact Lens conversational analytics.

\n

Unit: Seconds

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

\n
\n
AVG_NON_TALK_TIME
\n
\n

This metric is available only for contacts analyzed by Contact Lens conversational analytics.

\n

Unit: Seconds

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

\n
\n
AVG_QUEUE_ANSWER_TIME
\n
\n

Unit: Seconds

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Feature

\n \n

Feature is a valid filter but not a valid grouping.

\n
\n
\n
AVG_TALK_TIME
\n
\n

This metric is available only for contacts analyzed by Contact Lens conversational analytics.

\n

Unit: Seconds

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

\n
\n
AVG_TALK_TIME_AGENT
\n
\n

This metric is available only for contacts analyzed by Contact Lens conversational analytics.

\n

Unit: Seconds

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

\n
\n
AVG_TALK_TIME_CUSTOMER
\n
\n

This metric is available only for contacts analyzed by Contact Lens conversational analytics.

\n

Unit: Seconds

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

\n
\n
CONTACTS_ABANDONED
\n
\n

Unit: Count

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

\n
\n
CONTACTS_CREATED
\n
\n

Unit: Count

\n

Valid metric filter key: INITIATION_METHOD\n

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Feature

\n \n

Feature is a valid filter but not a valid grouping.

\n
\n
\n
CONTACTS_HANDLED
\n
\n

Unit: Count

\n

Valid metric filter key: INITIATION_METHOD,\n DISCONNECT_REASON\n

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Feature

\n \n

Feature is a valid filter but not a valid grouping.

\n
\n
\n
CONTACTS_HOLD_ABANDONS
\n
\n

Unit: Count

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

\n
\n
CONTACTS_QUEUED
\n
\n

Unit: Count

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

\n
\n
CONTACTS_TRANSFERRED_OUT
\n
\n

Unit: Count

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Feature

\n \n

Feature is a valid filter but not a valid grouping.

\n
\n
\n
CONTACTS_TRANSFERRED_OUT_BY_AGENT
\n
\n

Unit: Count

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

\n
\n
CONTACTS_TRANSFERRED_OUT_FROM_QUEUE
\n
\n

Unit: Count

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

\n
\n
MAX_QUEUED_TIME
\n
\n

Unit: Seconds

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

\n
\n
SERVICE_LEVEL
\n
\n

You can include up to 20 SERVICE_LEVEL metrics in a request.

\n

Unit: Percent

\n

Valid groupings and filters: Queue, Channel, Routing Profile

\n

Threshold: For ThresholdValue, enter any whole number from 1 to 604800\n (inclusive), in seconds. For Comparison, you must enter LT (for\n \"Less than\").

\n
\n
SUM_CONTACTS_ANSWERED_IN_X
\n
\n

Unit: Count

\n

Valid groupings and filters: Queue, Channel, Routing Profile

\n

Threshold: For ThresholdValue, enter any whole number from 1 to 604800\n (inclusive), in seconds. For Comparison, you must enter LT (for\n \"Less than\").

\n
\n
SUM_CONTACTS_ABANDONED_IN_X
\n
\n

Unit: Count

\n

Valid groupings and filters: Queue, Channel, Routing Profile

\n

Threshold: For ThresholdValue, enter any whole number from 1 to 604800\n (inclusive), in seconds. For Comparison, you must enter LT (for\n \"Less than\").

\n
\n
SUM_CONTACTS_DISCONNECTED
\n
\n

Valid metric filter key: DISCONNECT_REASON\n

\n

Unit: Count

\n

Valid groupings and filters: Queue, Channel, Routing Profile

\n
\n
SUM_RETRY_CALLBACK_ATTEMPTS
\n
\n

Unit: Count

\n

Valid groupings and filters: Queue, Channel, Routing Profile

\n
\n
", + "smithy.api#documentation": "

The metrics to retrieve. Specify the name, groupings, and filters for each metric. The\n following historical metrics are available. For a description of each metric, see Historical metrics definitions in the Amazon Connect Administrator's\n Guide.

\n
\n
AGENT_ADHERENT_TIME
\n
\n

This metric is available only in Amazon Web Services Regions where Forecasting, capacity planning, and scheduling is available.

\n

Unit: Seconds

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

\n
\n
AGENT_NON_RESPONSE
\n
\n

Unit: Count

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

\n
\n
AGENT_OCCUPANCY
\n
\n

Unit: Percentage

\n

Valid groupings and filters: Routing Profile, Agent, Agent Hierarchy

\n
\n
AGENT_SCHEDULE_ADHERENCE
\n
\n

This metric is available only in Amazon Web Services Regions where Forecasting, capacity planning, and scheduling is available.

\n

Unit: Percent

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

\n
\n
AGENT_SCHEDULED_TIME
\n
\n

This metric is available only in Amazon Web Services Regions where Forecasting, capacity planning, and scheduling is available.

\n

Unit: Seconds

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

\n
\n
AVG_ABANDON_TIME
\n
\n

Unit: Seconds

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

\n
\n
AVG_AFTER_CONTACT_WORK_TIME
\n
\n

Unit: Seconds

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Feature

\n \n

Feature is a valid filter but not a valid grouping.

\n
\n
\n
AVG_AGENT_CONNECTING_TIME
\n
\n

Unit: Seconds

\n

Valid metric filter key: INITIATION_METHOD. For now, this metric only\n supports the following as INITIATION_METHOD: INBOUND |\n OUTBOUND | CALLBACK | API\n

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

\n
\n
AVG_AGENT_CONNECTING_TIME
\n
\n

Unit: Seconds

\n

Valid metric filter key: INITIATION_METHOD. For now, this metric only\n supports the following as INITIATION_METHOD: INBOUND |\n OUTBOUND | CALLBACK | API\n

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

\n
\n
AVG_CONTACT_DURATION
\n
\n

Unit: Seconds

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Feature

\n \n

Feature is a valid filter but not a valid grouping.

\n
\n
\n
AVG_CONVERSATION_DURATION
\n
\n

Unit: Seconds

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

\n
\n
AVG_GREETING_TIME_AGENT
\n
\n

This metric is available only for contacts analyzed by Contact Lens conversational\n analytics.

\n

Unit: Seconds

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

\n
\n
AVG_HANDLE_TIME
\n
\n

Unit: Seconds

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Feature

\n \n

Feature is a valid filter but not a valid grouping.

\n
\n
\n
AVG_HOLD_TIME
\n
\n

Unit: Seconds

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Feature

\n \n

Feature is a valid filter but not a valid grouping.

\n
\n
\n
AVG_HOLDS
\n
\n

Unit: Count

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Feature

\n \n

Feature is a valid filter but not a valid grouping.

\n
\n
\n
AVG_INTERACTION_AND_HOLD_TIME
\n
\n

Unit: Seconds

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

\n
\n
AVG_INTERACTION_TIME
\n
\n

Unit: Seconds

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Feature

\n \n

Feature is a valid filter but not a valid grouping.

\n
\n
\n
AVG_INTERRUPTIONS_AGENT
\n
\n

This metric is available only for contacts analyzed by Contact Lens conversational\n analytics.

\n

Unit: Count

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

\n
\n
AVG_INTERRUPTION_TIME_AGENT
\n
\n

This metric is available only for contacts analyzed by Contact Lens conversational\n analytics.

\n

Unit: Seconds

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

\n
\n
AVG_NON_TALK_TIME
\n
\n

This metric is available only for contacts analyzed by Contact Lens conversational\n analytics.

\n

Unit: Seconds

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

\n
\n
AVG_QUEUE_ANSWER_TIME
\n
\n

Unit: Seconds

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Feature

\n \n

Feature is a valid filter but not a valid grouping.

\n
\n
\n
AVG_TALK_TIME
\n
\n

This metric is available only for contacts analyzed by Contact Lens conversational\n analytics.

\n

Unit: Seconds

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

\n
\n
AVG_TALK_TIME_AGENT
\n
\n

This metric is available only for contacts analyzed by Contact Lens conversational\n analytics.

\n

Unit: Seconds

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

\n
\n
AVG_TALK_TIME_CUSTOMER
\n
\n

This metric is available only for contacts analyzed by Contact Lens conversational\n analytics.

\n

Unit: Seconds

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

\n
\n
CONTACTS_ABANDONED
\n
\n

Unit: Count

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

\n
\n
CONTACTS_CREATED
\n
\n

Unit: Count

\n

Valid metric filter key: INITIATION_METHOD\n

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Feature

\n \n

Feature is a valid filter but not a valid grouping.

\n
\n
\n
CONTACTS_HANDLED
\n
\n

Unit: Count

\n

Valid metric filter key: INITIATION_METHOD,\n DISCONNECT_REASON\n

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Feature

\n \n

Feature is a valid filter but not a valid grouping.

\n
\n
\n
CONTACTS_HOLD_ABANDONS
\n
\n

Unit: Count

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

\n
\n
CONTACTS_QUEUED
\n
\n

Unit: Count

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

\n
\n
CONTACTS_TRANSFERRED_OUT
\n
\n

Unit: Count

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Feature

\n \n

Feature is a valid filter but not a valid grouping.

\n
\n
\n
CONTACTS_TRANSFERRED_OUT_BY_AGENT
\n
\n

Unit: Count

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

\n
\n
CONTACTS_TRANSFERRED_OUT_FROM_QUEUE
\n
\n

Unit: Count

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

\n
\n
MAX_QUEUED_TIME
\n
\n

Unit: Seconds

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy

\n
\n
SERVICE_LEVEL
\n
\n

You can include up to 20 SERVICE_LEVEL metrics in a request.

\n

Unit: Percent

\n

Valid groupings and filters: Queue, Channel, Routing Profile

\n

Threshold: For ThresholdValue, enter any whole number from 1 to 604800\n (inclusive), in seconds. For Comparison, you must enter LT (for\n \"Less than\").

\n
\n
SUM_CONTACTS_ANSWERED_IN_X
\n
\n

Unit: Count

\n

Valid groupings and filters: Queue, Channel, Routing Profile

\n

Threshold: For ThresholdValue, enter any whole number from 1 to 604800\n (inclusive), in seconds. For Comparison, you must enter LT (for\n \"Less than\").

\n
\n
SUM_CONTACTS_ABANDONED_IN_X
\n
\n

Unit: Count

\n

Valid groupings and filters: Queue, Channel, Routing Profile

\n

Threshold: For ThresholdValue, enter any whole number from 1 to 604800\n (inclusive), in seconds. For Comparison, you must enter LT (for\n \"Less than\").

\n
\n
SUM_CONTACTS_DISCONNECTED
\n
\n

Valid metric filter key: DISCONNECT_REASON\n

\n

Unit: Count

\n

Valid groupings and filters: Queue, Channel, Routing Profile

\n
\n
SUM_RETRY_CALLBACK_ATTEMPTS
\n
\n

Unit: Count

\n

Valid groupings and filters: Queue, Channel, Routing Profile

\n
\n
", "smithy.api#required": {} } }, @@ -12500,7 +12676,7 @@ "Id": { "target": "com.amazonaws.connect#TrafficDistributionGroupId", "traits": { - "smithy.api#documentation": "

The identifier of the traffic distribution group. \nThis can be the ID or the ARN if the API is being called in the Region where the traffic distribution group was created. \nThe ARN must be provided if the call is from the replicated Region.

" + "smithy.api#documentation": "

The identifier of the traffic distribution group.\nThis can be the ID or the ARN if the API is being called in the Region where the traffic distribution group was created.\nThe ARN must be provided if the call is from the replicated Region.

" } }, "Arn": { @@ -12508,6 +12684,18 @@ "traits": { "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the traffic distribution group.

" } + }, + "SignInConfig": { + "target": "com.amazonaws.connect#SignInConfig", + "traits": { + "smithy.api#documentation": "

The distribution of allowing signing in to the instance and its replica(s).

" + } + }, + "AgentConfig": { + "target": "com.amazonaws.connect#AgentConfig", + "traits": { + "smithy.api#documentation": "

The distribution of agents between the instance and its replica(s).

" + } } }, "traits": { @@ -16021,7 +16209,7 @@ } ], "traits": { - "smithy.api#documentation": "

Lists phone numbers claimed to your Amazon Connect instance or traffic distribution group. If the provided\n TargetArn is a traffic distribution group, you can call this API in both Amazon Web Services Regions\n associated with traffic distribution group.

\n

For more information about phone numbers, see Set Up Phone Numbers for Your\n Contact Center in the Amazon Connect Administrator\n Guide.

", + "smithy.api#documentation": "

Lists phone numbers claimed to your Amazon Connect instance or traffic distribution group. If the provided\n TargetArn is a traffic distribution group, you can call this API in both Amazon Web Services Regions\n associated with traffic distribution group.

\n

For more information about phone numbers, see Set Up Phone Numbers for Your\n Contact Center in the Amazon Connect Administrator\n Guide.

\n \n
    \n
  • \n

    When given an instance ARN, ListPhoneNumbersV2 returns only the phone\n numbers claimed to the instance.

    \n
  • \n
  • \n

    When given a traffic distribution group ARN ListPhoneNumbersV2 returns only the phone numbers\n claimed to the traffic distribution group.

    \n
  • \n
\n
", "smithy.api#http": { "method": "POST", "uri": "/phone-number/list", @@ -17232,6 +17420,97 @@ "smithy.api#output": {} } }, + "com.amazonaws.connect#ListTrafficDistributionGroupUsers": { + "type": "operation", + "input": { + "target": "com.amazonaws.connect#ListTrafficDistributionGroupUsersRequest" + }, + "output": { + "target": "com.amazonaws.connect#ListTrafficDistributionGroupUsersResponse" + }, + "errors": [ + { + "target": "com.amazonaws.connect#AccessDeniedException" + }, + { + "target": "com.amazonaws.connect#InternalServiceException" + }, + { + "target": "com.amazonaws.connect#InvalidRequestException" + }, + { + "target": "com.amazonaws.connect#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.connect#ThrottlingException" + } + ], + "traits": { + "smithy.api#documentation": "

Lists traffic distribution group users.

", + "smithy.api#http": { + "method": "GET", + "uri": "/traffic-distribution-group/{TrafficDistributionGroupId}/user", + "code": 200 + }, + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "TrafficDistributionGroupUserSummaryList", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.connect#ListTrafficDistributionGroupUsersRequest": { + "type": "structure", + "members": { + "TrafficDistributionGroupId": { + "target": "com.amazonaws.connect#TrafficDistributionGroupIdOrArn", + "traits": { + "smithy.api#documentation": "

The identifier of the traffic distribution group.\nThis can be the ID or the ARN if the API is being called in the Region where the traffic distribution group was created.\nThe ARN must be provided if the call is from the replicated Region.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "MaxResults": { + "target": "com.amazonaws.connect#MaxResult10", + "traits": { + "smithy.api#default": null, + "smithy.api#documentation": "

The maximum number of results to return per page.

", + "smithy.api#httpQuery": "maxResults" + } + }, + "NextToken": { + "target": "com.amazonaws.connect#NextToken", + "traits": { + "smithy.api#documentation": "

The token for the next set of results. Use the value returned in the previous \nresponse in the next request to retrieve the next set of results.

", + "smithy.api#httpQuery": "nextToken" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.connect#ListTrafficDistributionGroupUsersResponse": { + "type": "structure", + "members": { + "NextToken": { + "target": "com.amazonaws.connect#NextToken", + "traits": { + "smithy.api#documentation": "

If there are additional results, this is the token for the next set of results.

" + } + }, + "TrafficDistributionGroupUserSummaryList": { + "target": "com.amazonaws.connect#TrafficDistributionGroupUserSummaryList", + "traits": { + "smithy.api#documentation": "

A list of traffic distribution group users.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.connect#ListTrafficDistributionGroups": { "type": "operation", "input": { @@ -21708,7 +21987,7 @@ "AgentAvailabilityTimer": { "target": "com.amazonaws.connect#AgentAvailabilityTimer", "traits": { - "smithy.api#documentation": "

Whether agents with this routing profile\n will have their routing order calculated based on\n time since their last inbound\n contact or longest idle\n time.

" + "smithy.api#documentation": "

Whether agents with this routing profile will have their routing order calculated based on\n time since their last inbound contact or longest idle\n time.

" } } }, @@ -23662,6 +23941,50 @@ "smithy.api#httpError": 402 } }, + "com.amazonaws.connect#SignInConfig": { + "type": "structure", + "members": { + "Distributions": { + "target": "com.amazonaws.connect#SignInDistributionList", + "traits": { + "smithy.api#documentation": "

Information about traffic distributions.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The distribution of allowing signing in to the instance and its replica(s).

" + } + }, + "com.amazonaws.connect#SignInDistribution": { + "type": "structure", + "members": { + "Region": { + "target": "com.amazonaws.connect#AwsRegion", + "traits": { + "smithy.api#documentation": "

The Amazon Web Services Region of the sign in distribution.

", + "smithy.api#required": {} + } + }, + "Enabled": { + "target": "com.amazonaws.connect#Boolean", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

Whether sign in distribution is enabled.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

The distribution of sign in traffic between the instance and its replica(s).

" + } + }, + "com.amazonaws.connect#SignInDistributionList": { + "type": "list", + "member": { + "target": "com.amazonaws.connect#SignInDistribution" + } + }, "com.amazonaws.connect#SingleSelectOptions": { "type": "list", "member": { @@ -25673,7 +25996,7 @@ "Id": { "target": "com.amazonaws.connect#TrafficDistributionGroupId", "traits": { - "smithy.api#documentation": "

The identifier of the traffic distribution group. \nThis can be the ID or the ARN if the API is being called in the Region where the traffic distribution group was created. \nThe ARN must be provided if the call is from the replicated Region.

" + "smithy.api#documentation": "

The identifier of the traffic distribution group.\nThis can be the ID or the ARN if the API is being called in the Region where the traffic distribution group was created.\nThe ARN must be provided if the call is from the replicated Region.

" } }, "Arn": { @@ -25711,6 +26034,13 @@ "traits": { "smithy.api#documentation": "

The tags used to organize, track, or control access for this resource. For example, { \"tags\": {\"key1\":\"value1\", \"key2\":\"value2\"} }.

" } + }, + "IsDefault": { + "target": "com.amazonaws.connect#Boolean", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

Whether this is the default traffic distribution group created during instance\n replication. The default traffic distribution group cannot be deleted by the\n DeleteTrafficDistributionGroup API. The default traffic distribution group is deleted as\n part of the process for deleting a replica.

\n \n

You can change the SignInConfig only for a default TrafficDistributionGroup. If you call\n UpdateTrafficDistribution with a modified SignInConfig and a non-default TrafficDistributionGroup,\n an InvalidRequestException is returned.

\n
" + } } }, "traits": { @@ -25782,7 +26112,7 @@ "Id": { "target": "com.amazonaws.connect#TrafficDistributionGroupId", "traits": { - "smithy.api#documentation": "

The identifier of the traffic distribution group. \nThis can be the ID or the ARN if the API is being called in the Region where the traffic distribution group was created. \nThe ARN must be provided if the call is from the replicated Region.

" + "smithy.api#documentation": "

The identifier of the traffic distribution group.\nThis can be the ID or the ARN if the API is being called in the Region where the traffic distribution group was created.\nThe ARN must be provided if the call is from the replicated Region.

" } }, "Arn": { @@ -25808,6 +26138,13 @@ "traits": { "smithy.api#documentation": "

The status of the traffic distribution group.

\n " } + }, + "IsDefault": { + "target": "com.amazonaws.connect#Boolean", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

Whether this is the default traffic distribution group created during instance\n replication. The default traffic distribution group cannot be deleted by the\n DeleteTrafficDistributionGroup API. The default traffic distribution group is deleted as\n part of the process for deleting a replica.

" + } } }, "traits": { @@ -25826,6 +26163,32 @@ } } }, + "com.amazonaws.connect#TrafficDistributionGroupUserSummary": { + "type": "structure", + "members": { + "UserId": { + "target": "com.amazonaws.connect#UserId", + "traits": { + "smithy.api#documentation": "

The identifier for the user. This can be the ID or the ARN of the user.

" + } + } + }, + "traits": { + "smithy.api#documentation": "

Summary information about a traffic distribution group user.

" + } + }, + "com.amazonaws.connect#TrafficDistributionGroupUserSummaryList": { + "type": "list", + "member": { + "target": "com.amazonaws.connect#TrafficDistributionGroupUserSummary" + }, + "traits": { + "smithy.api#length": { + "min": 0, + "max": 10 + } + } + }, "com.amazonaws.connect#TrafficType": { "type": "enum", "members": { @@ -25909,7 +26272,7 @@ "UserId": { "target": "com.amazonaws.connect#AgentResourceId", "traits": { - "smithy.api#documentation": "

The identifier for the user.

" + "smithy.api#documentation": "

The identifier for the user. This can be the ID or the ARN of the user.

" } }, "ContactFlowId": { @@ -28011,7 +28374,7 @@ } ], "traits": { - "smithy.api#documentation": "

Whether agents with this routing profile\n will have their routing order calculated based on\n time since their last inbound\n contact or longest idle\n time.

", + "smithy.api#documentation": "

Whether agents with this routing profile will have their routing order calculated based on\n time since their last inbound contact or longest idle\n time.

", "smithy.api#http": { "method": "POST", "uri": "/routing-profiles/{InstanceId}/{RoutingProfileId}/agent-availability-timer", @@ -28041,7 +28404,7 @@ "AgentAvailabilityTimer": { "target": "com.amazonaws.connect#AgentAvailabilityTimer", "traits": { - "smithy.api#documentation": "

Whether agents with this routing profile\n will have their routing order calculated based on\n time since their last inbound\n contact or longest idle\n time.

", + "smithy.api#documentation": "

Whether agents with this routing profile will have their routing order calculated based on\n time since their last inbound contact or longest idle\n time.

", "smithy.api#required": {} } } @@ -28701,7 +29064,7 @@ } ], "traits": { - "smithy.api#documentation": "

Updates the traffic distribution for a given traffic distribution group.

\n

For more information about updating a traffic distribution group, see Update telephony\n traffic distribution across Amazon Web Services Regions\n in the Amazon Connect Administrator Guide.

", + "smithy.api#documentation": "

Updates the traffic distribution for a given traffic distribution group.

\n \n

You can change the SignInConfig only for a default TrafficDistributionGroup. If you call\n UpdateTrafficDistribution with a modified SignInConfig and a non-default TrafficDistributionGroup,\n an InvalidRequestException is returned.

\n
\n

For more information about updating a traffic distribution group, see Update telephony\n traffic distribution across Amazon Web Services Regions\n in the Amazon Connect Administrator Guide.

", "smithy.api#http": { "method": "PUT", "uri": "/traffic-distribution/{Id}", @@ -28715,7 +29078,7 @@ "Id": { "target": "com.amazonaws.connect#TrafficDistributionGroupIdOrArn", "traits": { - "smithy.api#documentation": "

The identifier of the traffic distribution group. \nThis can be the ID or the ARN if the API is being called in the Region where the traffic distribution group was created. \nThe ARN must be provided if the call is from the replicated Region.

", + "smithy.api#documentation": "

The identifier of the traffic distribution group.\nThis can be the ID or the ARN if the API is being called in the Region where the traffic distribution group was created.\nThe ARN must be provided if the call is from the replicated Region.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -28725,6 +29088,18 @@ "traits": { "smithy.api#documentation": "

The distribution of traffic between the instance and its replica(s).

" } + }, + "SignInConfig": { + "target": "com.amazonaws.connect#SignInConfig", + "traits": { + "smithy.api#documentation": "

The distribution of allowing signing in to the instance and its replica(s).

" + } + }, + "AgentConfig": { + "target": "com.amazonaws.connect#AgentConfig", + "traits": { + "smithy.api#documentation": "

The distribution of agents between the instance and its replica(s).

" + } } }, "traits": {