From 1cbc8f948b6d3a46355f422607ccba5c4f1da768 Mon Sep 17 00:00:00 2001 From: awstools Date: Fri, 3 May 2024 18:19:46 +0000 Subject: [PATCH] feat(client-connect): This release adds 5 new APIs for managing attachments: StartAttachedFileUpload, CompleteAttachedFileUpload, GetAttachedFile, BatchGetAttachedFileMetadata, DeleteAttachedFile. These APIs can be used to programmatically upload and download attachments to Connect resources, like cases. --- clients/client-connect/README.md | 40 + clients/client-connect/src/Connect.ts | 112 +++ clients/client-connect/src/ConnectClient.ts | 24 + .../BatchGetAttachedFileMetadataCommand.ts | 132 +++ .../CompleteAttachedFileUploadCommand.ts | 97 ++ .../src/commands/DeleteAttachedFileCommand.ts | 100 ++ .../DescribeHoursOfOperationCommand.ts | 3 +- .../DescribeInstanceAttributeCommand.ts | 2 +- .../src/commands/DescribeInstanceCommand.ts | 2 +- .../DescribeInstanceStorageConfigCommand.ts | 2 +- .../commands/DescribePhoneNumberCommand.ts | 3 +- .../src/commands/GetAttachedFileCommand.ts | 119 +++ .../src/commands/ReplicateInstanceCommand.ts | 7 +- .../src/commands/ResumeContactCommand.ts | 2 +- .../commands/ResumeContactRecordingCommand.ts | 2 +- .../SearchAvailablePhoneNumbersCommand.ts | 2 +- .../StartAttachedFileUploadCommand.ts | 130 +++ clients/client-connect/src/commands/index.ts | 5 + clients/client-connect/src/models/models_0.ts | 642 +++++++------ clients/client-connect/src/models/models_1.ts | 890 +++++++++-------- clients/client-connect/src/models/models_2.ts | 573 ++++++++++- .../src/protocols/Aws_restJson1.ts | 288 +++++- codegen/sdk-codegen/aws-models/connect.json | 905 +++++++++++++++++- 23 files changed, 3329 insertions(+), 753 deletions(-) create mode 100644 clients/client-connect/src/commands/BatchGetAttachedFileMetadataCommand.ts create mode 100644 clients/client-connect/src/commands/CompleteAttachedFileUploadCommand.ts create mode 100644 clients/client-connect/src/commands/DeleteAttachedFileCommand.ts create mode 100644 clients/client-connect/src/commands/GetAttachedFileCommand.ts create mode 100644 clients/client-connect/src/commands/StartAttachedFileUploadCommand.ts diff --git a/clients/client-connect/README.md b/clients/client-connect/README.md index 7c51464d2cfe..076647613851 100644 --- a/clients/client-connect/README.md +++ b/clients/client-connect/README.md @@ -348,6 +348,14 @@ BatchDisassociateAnalyticsDataSet [Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/connect/command/BatchDisassociateAnalyticsDataSetCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-connect/Interface/BatchDisassociateAnalyticsDataSetCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-connect/Interface/BatchDisassociateAnalyticsDataSetCommandOutput/) + +
+ +BatchGetAttachedFileMetadata + + +[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/connect/command/BatchGetAttachedFileMetadataCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-connect/Interface/BatchGetAttachedFileMetadataCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-connect/Interface/BatchGetAttachedFileMetadataCommandOutput/) +
@@ -372,6 +380,14 @@ ClaimPhoneNumber [Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/connect/command/ClaimPhoneNumberCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-connect/Interface/ClaimPhoneNumberCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-connect/Interface/ClaimPhoneNumberCommandOutput/) +
+
+ +CompleteAttachedFileUpload + + +[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/connect/command/CompleteAttachedFileUploadCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-connect/Interface/CompleteAttachedFileUploadCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-connect/Interface/CompleteAttachedFileUploadCommandOutput/) +
@@ -572,6 +588,14 @@ DeactivateEvaluationForm [Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/connect/command/DeactivateEvaluationFormCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-connect/Interface/DeactivateEvaluationFormCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-connect/Interface/DeactivateEvaluationFormCommandOutput/) +
+
+ +DeleteAttachedFile + + +[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/connect/command/DeleteAttachedFileCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-connect/Interface/DeleteAttachedFileCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-connect/Interface/DeleteAttachedFileCommandOutput/) +
@@ -1052,6 +1076,14 @@ DismissUserContact [Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/connect/command/DismissUserContactCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-connect/Interface/DismissUserContactCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-connect/Interface/DismissUserContactCommandOutput/) +
+
+ +GetAttachedFile + + +[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/connect/command/GetAttachedFileCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-connect/Interface/GetAttachedFileCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-connect/Interface/GetAttachedFileCommandOutput/) +
@@ -1652,6 +1684,14 @@ SendChatIntegrationEvent [Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/connect/command/SendChatIntegrationEventCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-connect/Interface/SendChatIntegrationEventCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-connect/Interface/SendChatIntegrationEventCommandOutput/) +
+
+ +StartAttachedFileUpload + + +[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/connect/command/StartAttachedFileUploadCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-connect/Interface/StartAttachedFileUploadCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-connect/Interface/StartAttachedFileUploadCommandOutput/) +
diff --git a/clients/client-connect/src/Connect.ts b/clients/client-connect/src/Connect.ts index ebcc3178059f..7bb503f3a404 100644 --- a/clients/client-connect/src/Connect.ts +++ b/clients/client-connect/src/Connect.ts @@ -87,6 +87,11 @@ import { BatchDisassociateAnalyticsDataSetCommandInput, BatchDisassociateAnalyticsDataSetCommandOutput, } from "./commands/BatchDisassociateAnalyticsDataSetCommand"; +import { + BatchGetAttachedFileMetadataCommand, + BatchGetAttachedFileMetadataCommandInput, + BatchGetAttachedFileMetadataCommandOutput, +} from "./commands/BatchGetAttachedFileMetadataCommand"; import { BatchGetFlowAssociationCommand, BatchGetFlowAssociationCommandInput, @@ -102,6 +107,11 @@ import { ClaimPhoneNumberCommandInput, ClaimPhoneNumberCommandOutput, } from "./commands/ClaimPhoneNumberCommand"; +import { + CompleteAttachedFileUploadCommand, + CompleteAttachedFileUploadCommandInput, + CompleteAttachedFileUploadCommandOutput, +} from "./commands/CompleteAttachedFileUploadCommand"; import { CreateAgentStatusCommand, CreateAgentStatusCommandInput, @@ -211,6 +221,11 @@ import { DeactivateEvaluationFormCommandInput, DeactivateEvaluationFormCommandOutput, } from "./commands/DeactivateEvaluationFormCommand"; +import { + DeleteAttachedFileCommand, + DeleteAttachedFileCommandInput, + DeleteAttachedFileCommandOutput, +} from "./commands/DeleteAttachedFileCommand"; import { DeleteContactEvaluationCommand, DeleteContactEvaluationCommandInput, @@ -495,6 +510,11 @@ import { DismissUserContactCommandInput, DismissUserContactCommandOutput, } from "./commands/DismissUserContactCommand"; +import { + GetAttachedFileCommand, + GetAttachedFileCommandInput, + GetAttachedFileCommandOutput, +} from "./commands/GetAttachedFileCommand"; import { GetContactAttributesCommand, GetContactAttributesCommandInput, @@ -838,6 +858,11 @@ import { SendChatIntegrationEventCommandInput, SendChatIntegrationEventCommandOutput, } from "./commands/SendChatIntegrationEventCommand"; +import { + StartAttachedFileUploadCommand, + StartAttachedFileUploadCommandInput, + StartAttachedFileUploadCommandOutput, +} from "./commands/StartAttachedFileUploadCommand"; import { StartChatContactCommand, StartChatContactCommandInput, @@ -1157,9 +1182,11 @@ const commands = { AssociateUserProficienciesCommand, BatchAssociateAnalyticsDataSetCommand, BatchDisassociateAnalyticsDataSetCommand, + BatchGetAttachedFileMetadataCommand, BatchGetFlowAssociationCommand, BatchPutContactCommand, ClaimPhoneNumberCommand, + CompleteAttachedFileUploadCommand, CreateAgentStatusCommand, CreateContactFlowCommand, CreateContactFlowModuleCommand, @@ -1185,6 +1212,7 @@ const commands = { CreateViewVersionCommand, CreateVocabularyCommand, DeactivateEvaluationFormCommand, + DeleteAttachedFileCommand, DeleteContactEvaluationCommand, DeleteContactFlowCommand, DeleteContactFlowModuleCommand, @@ -1245,6 +1273,7 @@ const commands = { DisassociateTrafficDistributionGroupUserCommand, DisassociateUserProficienciesCommand, DismissUserContactCommand, + GetAttachedFileCommand, GetContactAttributesCommand, GetCurrentMetricDataCommand, GetCurrentUserDataCommand, @@ -1320,6 +1349,7 @@ const commands = { SearchUsersCommand, SearchVocabulariesCommand, SendChatIntegrationEventCommand, + StartAttachedFileUploadCommand, StartChatContactCommand, StartContactEvaluationCommand, StartContactRecordingCommand, @@ -1660,6 +1690,23 @@ export interface Connect { cb: (err: any, data?: BatchDisassociateAnalyticsDataSetCommandOutput) => void ): void; + /** + * @see {@link BatchGetAttachedFileMetadataCommand} + */ + batchGetAttachedFileMetadata( + args: BatchGetAttachedFileMetadataCommandInput, + options?: __HttpHandlerOptions + ): Promise; + batchGetAttachedFileMetadata( + args: BatchGetAttachedFileMetadataCommandInput, + cb: (err: any, data?: BatchGetAttachedFileMetadataCommandOutput) => void + ): void; + batchGetAttachedFileMetadata( + args: BatchGetAttachedFileMetadataCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: BatchGetAttachedFileMetadataCommandOutput) => void + ): void; + /** * @see {@link BatchGetFlowAssociationCommand} */ @@ -1708,6 +1755,23 @@ export interface Connect { cb: (err: any, data?: ClaimPhoneNumberCommandOutput) => void ): void; + /** + * @see {@link CompleteAttachedFileUploadCommand} + */ + completeAttachedFileUpload( + args: CompleteAttachedFileUploadCommandInput, + options?: __HttpHandlerOptions + ): Promise; + completeAttachedFileUpload( + args: CompleteAttachedFileUploadCommandInput, + cb: (err: any, data?: CompleteAttachedFileUploadCommandOutput) => void + ): void; + completeAttachedFileUpload( + args: CompleteAttachedFileUploadCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: CompleteAttachedFileUploadCommandOutput) => void + ): void; + /** * @see {@link CreateAgentStatusCommand} */ @@ -2094,6 +2158,23 @@ export interface Connect { cb: (err: any, data?: DeactivateEvaluationFormCommandOutput) => void ): void; + /** + * @see {@link DeleteAttachedFileCommand} + */ + deleteAttachedFile( + args: DeleteAttachedFileCommandInput, + options?: __HttpHandlerOptions + ): Promise; + deleteAttachedFile( + args: DeleteAttachedFileCommandInput, + cb: (err: any, data?: DeleteAttachedFileCommandOutput) => void + ): void; + deleteAttachedFile( + args: DeleteAttachedFileCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: DeleteAttachedFileCommandOutput) => void + ): void; + /** * @see {@link DeleteContactEvaluationCommand} */ @@ -3042,6 +3123,20 @@ export interface Connect { cb: (err: any, data?: DismissUserContactCommandOutput) => void ): void; + /** + * @see {@link GetAttachedFileCommand} + */ + getAttachedFile( + args: GetAttachedFileCommandInput, + options?: __HttpHandlerOptions + ): Promise; + getAttachedFile(args: GetAttachedFileCommandInput, cb: (err: any, data?: GetAttachedFileCommandOutput) => void): void; + getAttachedFile( + args: GetAttachedFileCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: GetAttachedFileCommandOutput) => void + ): void; + /** * @see {@link GetContactAttributesCommand} */ @@ -4206,6 +4301,23 @@ export interface Connect { cb: (err: any, data?: SendChatIntegrationEventCommandOutput) => void ): void; + /** + * @see {@link StartAttachedFileUploadCommand} + */ + startAttachedFileUpload( + args: StartAttachedFileUploadCommandInput, + options?: __HttpHandlerOptions + ): Promise; + startAttachedFileUpload( + args: StartAttachedFileUploadCommandInput, + cb: (err: any, data?: StartAttachedFileUploadCommandOutput) => void + ): void; + startAttachedFileUpload( + args: StartAttachedFileUploadCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: StartAttachedFileUploadCommandOutput) => void + ): void; + /** * @see {@link StartChatContactCommand} */ diff --git a/clients/client-connect/src/ConnectClient.ts b/clients/client-connect/src/ConnectClient.ts index d6211558e7c7..90c61ee81cc6 100644 --- a/clients/client-connect/src/ConnectClient.ts +++ b/clients/client-connect/src/ConnectClient.ts @@ -112,12 +112,20 @@ import { BatchDisassociateAnalyticsDataSetCommandInput, BatchDisassociateAnalyticsDataSetCommandOutput, } from "./commands/BatchDisassociateAnalyticsDataSetCommand"; +import { + BatchGetAttachedFileMetadataCommandInput, + BatchGetAttachedFileMetadataCommandOutput, +} from "./commands/BatchGetAttachedFileMetadataCommand"; import { BatchGetFlowAssociationCommandInput, BatchGetFlowAssociationCommandOutput, } from "./commands/BatchGetFlowAssociationCommand"; import { BatchPutContactCommandInput, BatchPutContactCommandOutput } from "./commands/BatchPutContactCommand"; import { ClaimPhoneNumberCommandInput, ClaimPhoneNumberCommandOutput } from "./commands/ClaimPhoneNumberCommand"; +import { + CompleteAttachedFileUploadCommandInput, + CompleteAttachedFileUploadCommandOutput, +} from "./commands/CompleteAttachedFileUploadCommand"; import { CreateAgentStatusCommandInput, CreateAgentStatusCommandOutput } from "./commands/CreateAgentStatusCommand"; import { CreateContactFlowCommandInput, CreateContactFlowCommandOutput } from "./commands/CreateContactFlowCommand"; import { @@ -176,6 +184,7 @@ import { DeactivateEvaluationFormCommandInput, DeactivateEvaluationFormCommandOutput, } from "./commands/DeactivateEvaluationFormCommand"; +import { DeleteAttachedFileCommandInput, DeleteAttachedFileCommandOutput } from "./commands/DeleteAttachedFileCommand"; import { DeleteContactEvaluationCommandInput, DeleteContactEvaluationCommandOutput, @@ -344,6 +353,7 @@ import { DisassociateUserProficienciesCommandOutput, } from "./commands/DisassociateUserProficienciesCommand"; import { DismissUserContactCommandInput, DismissUserContactCommandOutput } from "./commands/DismissUserContactCommand"; +import { GetAttachedFileCommandInput, GetAttachedFileCommandOutput } from "./commands/GetAttachedFileCommand"; import { GetContactAttributesCommandInput, GetContactAttributesCommandOutput, @@ -533,6 +543,10 @@ import { SendChatIntegrationEventCommandInput, SendChatIntegrationEventCommandOutput, } from "./commands/SendChatIntegrationEventCommand"; +import { + StartAttachedFileUploadCommandInput, + StartAttachedFileUploadCommandOutput, +} from "./commands/StartAttachedFileUploadCommand"; import { StartChatContactCommandInput, StartChatContactCommandOutput } from "./commands/StartChatContactCommand"; import { StartContactEvaluationCommandInput, @@ -760,9 +774,11 @@ export type ServiceInputTypes = | AssociateUserProficienciesCommandInput | BatchAssociateAnalyticsDataSetCommandInput | BatchDisassociateAnalyticsDataSetCommandInput + | BatchGetAttachedFileMetadataCommandInput | BatchGetFlowAssociationCommandInput | BatchPutContactCommandInput | ClaimPhoneNumberCommandInput + | CompleteAttachedFileUploadCommandInput | CreateAgentStatusCommandInput | CreateContactFlowCommandInput | CreateContactFlowModuleCommandInput @@ -788,6 +804,7 @@ export type ServiceInputTypes = | CreateViewVersionCommandInput | CreateVocabularyCommandInput | DeactivateEvaluationFormCommandInput + | DeleteAttachedFileCommandInput | DeleteContactEvaluationCommandInput | DeleteContactFlowCommandInput | DeleteContactFlowModuleCommandInput @@ -848,6 +865,7 @@ export type ServiceInputTypes = | DisassociateTrafficDistributionGroupUserCommandInput | DisassociateUserProficienciesCommandInput | DismissUserContactCommandInput + | GetAttachedFileCommandInput | GetContactAttributesCommandInput | GetCurrentMetricDataCommandInput | GetCurrentUserDataCommandInput @@ -923,6 +941,7 @@ export type ServiceInputTypes = | SearchUsersCommandInput | SearchVocabulariesCommandInput | SendChatIntegrationEventCommandInput + | StartAttachedFileUploadCommandInput | StartChatContactCommandInput | StartContactEvaluationCommandInput | StartContactRecordingCommandInput @@ -1008,9 +1027,11 @@ export type ServiceOutputTypes = | AssociateUserProficienciesCommandOutput | BatchAssociateAnalyticsDataSetCommandOutput | BatchDisassociateAnalyticsDataSetCommandOutput + | BatchGetAttachedFileMetadataCommandOutput | BatchGetFlowAssociationCommandOutput | BatchPutContactCommandOutput | ClaimPhoneNumberCommandOutput + | CompleteAttachedFileUploadCommandOutput | CreateAgentStatusCommandOutput | CreateContactFlowCommandOutput | CreateContactFlowModuleCommandOutput @@ -1036,6 +1057,7 @@ export type ServiceOutputTypes = | CreateViewVersionCommandOutput | CreateVocabularyCommandOutput | DeactivateEvaluationFormCommandOutput + | DeleteAttachedFileCommandOutput | DeleteContactEvaluationCommandOutput | DeleteContactFlowCommandOutput | DeleteContactFlowModuleCommandOutput @@ -1096,6 +1118,7 @@ export type ServiceOutputTypes = | DisassociateTrafficDistributionGroupUserCommandOutput | DisassociateUserProficienciesCommandOutput | DismissUserContactCommandOutput + | GetAttachedFileCommandOutput | GetContactAttributesCommandOutput | GetCurrentMetricDataCommandOutput | GetCurrentUserDataCommandOutput @@ -1171,6 +1194,7 @@ export type ServiceOutputTypes = | SearchUsersCommandOutput | SearchVocabulariesCommandOutput | SendChatIntegrationEventCommandOutput + | StartAttachedFileUploadCommandOutput | StartChatContactCommandOutput | StartContactEvaluationCommandOutput | StartContactRecordingCommandOutput diff --git a/clients/client-connect/src/commands/BatchGetAttachedFileMetadataCommand.ts b/clients/client-connect/src/commands/BatchGetAttachedFileMetadataCommand.ts new file mode 100644 index 000000000000..bdfaccab0ac6 --- /dev/null +++ b/clients/client-connect/src/commands/BatchGetAttachedFileMetadataCommand.ts @@ -0,0 +1,132 @@ +// smithy-typescript generated code +import { getEndpointPlugin } from "@smithy/middleware-endpoint"; +import { getSerdePlugin } from "@smithy/middleware-serde"; +import { Command as $Command } from "@smithy/smithy-client"; +import { MetadataBearer as __MetadataBearer } from "@smithy/types"; + +import { ConnectClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../ConnectClient"; +import { commonParams } from "../endpoint/EndpointParameters"; +import { BatchGetAttachedFileMetadataRequest, BatchGetAttachedFileMetadataResponse } from "../models/models_0"; +import { + de_BatchGetAttachedFileMetadataCommand, + se_BatchGetAttachedFileMetadataCommand, +} from "../protocols/Aws_restJson1"; + +/** + * @public + */ +export { __MetadataBearer, $Command }; +/** + * @public + * + * The input for {@link BatchGetAttachedFileMetadataCommand}. + */ +export interface BatchGetAttachedFileMetadataCommandInput extends BatchGetAttachedFileMetadataRequest {} +/** + * @public + * + * The output of {@link BatchGetAttachedFileMetadataCommand}. + */ +export interface BatchGetAttachedFileMetadataCommandOutput + extends BatchGetAttachedFileMetadataResponse, + __MetadataBearer {} + +/** + *

Allows you to retrieve metadata about multiple attached files on an associated resource. + * Each attached file provided in the input list must be associated with the input + * AssociatedResourceArn.

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { ConnectClient, BatchGetAttachedFileMetadataCommand } from "@aws-sdk/client-connect"; // ES Modules import + * // const { ConnectClient, BatchGetAttachedFileMetadataCommand } = require("@aws-sdk/client-connect"); // CommonJS import + * const client = new ConnectClient(config); + * const input = { // BatchGetAttachedFileMetadataRequest + * FileIds: [ // FileIdList // required + * "STRING_VALUE", + * ], + * InstanceId: "STRING_VALUE", // required + * AssociatedResourceArn: "STRING_VALUE", // required + * }; + * const command = new BatchGetAttachedFileMetadataCommand(input); + * const response = await client.send(command); + * // { // BatchGetAttachedFileMetadataResponse + * // Files: [ // AttachedFilesList + * // { // AttachedFile + * // CreationTime: "STRING_VALUE", // required + * // FileArn: "STRING_VALUE", // required + * // FileId: "STRING_VALUE", // required + * // FileName: "STRING_VALUE", // required + * // FileSizeInBytes: Number("long"), // required + * // FileStatus: "APPROVED" || "REJECTED" || "PROCESSING" || "FAILED", // required + * // CreatedBy: { // CreatedByInfo Union: only one key present + * // ConnectUserArn: "STRING_VALUE", + * // AWSIdentityArn: "STRING_VALUE", + * // }, + * // FileUseCaseType: "ATTACHMENT", + * // AssociatedResourceArn: "STRING_VALUE", + * // Tags: { // TagMap + * // "": "STRING_VALUE", + * // }, + * // }, + * // ], + * // Errors: [ // AttachedFileErrorsList + * // { // AttachedFileError + * // ErrorCode: "STRING_VALUE", + * // ErrorMessage: "STRING_VALUE", + * // FileId: "STRING_VALUE", + * // }, + * // ], + * // }; + * + * ``` + * + * @param BatchGetAttachedFileMetadataCommandInput - {@link BatchGetAttachedFileMetadataCommandInput} + * @returns {@link BatchGetAttachedFileMetadataCommandOutput} + * @see {@link BatchGetAttachedFileMetadataCommandInput} for command's `input` shape. + * @see {@link BatchGetAttachedFileMetadataCommandOutput} 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.

+ * + * @public + */ +export class BatchGetAttachedFileMetadataCommand extends $Command + .classBuilder< + BatchGetAttachedFileMetadataCommandInput, + BatchGetAttachedFileMetadataCommandOutput, + ConnectClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes + >() + .ep({ + ...commonParams, + }) + .m(function (this: any, Command: any, cs: any, config: ConnectClientResolvedConfig, o: any) { + return [ + getSerdePlugin(config, this.serialize, this.deserialize), + getEndpointPlugin(config, Command.getEndpointParameterInstructions()), + ]; + }) + .s("AmazonConnectService", "BatchGetAttachedFileMetadata", {}) + .n("ConnectClient", "BatchGetAttachedFileMetadataCommand") + .f(void 0, void 0) + .ser(se_BatchGetAttachedFileMetadataCommand) + .de(de_BatchGetAttachedFileMetadataCommand) + .build() {} diff --git a/clients/client-connect/src/commands/CompleteAttachedFileUploadCommand.ts b/clients/client-connect/src/commands/CompleteAttachedFileUploadCommand.ts new file mode 100644 index 000000000000..e8cef721a974 --- /dev/null +++ b/clients/client-connect/src/commands/CompleteAttachedFileUploadCommand.ts @@ -0,0 +1,97 @@ +// smithy-typescript generated code +import { getEndpointPlugin } from "@smithy/middleware-endpoint"; +import { getSerdePlugin } from "@smithy/middleware-serde"; +import { Command as $Command } from "@smithy/smithy-client"; +import { MetadataBearer as __MetadataBearer } from "@smithy/types"; + +import { ConnectClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../ConnectClient"; +import { commonParams } from "../endpoint/EndpointParameters"; +import { CompleteAttachedFileUploadRequest, CompleteAttachedFileUploadResponse } from "../models/models_0"; +import { de_CompleteAttachedFileUploadCommand, se_CompleteAttachedFileUploadCommand } from "../protocols/Aws_restJson1"; + +/** + * @public + */ +export { __MetadataBearer, $Command }; +/** + * @public + * + * The input for {@link CompleteAttachedFileUploadCommand}. + */ +export interface CompleteAttachedFileUploadCommandInput extends CompleteAttachedFileUploadRequest {} +/** + * @public + * + * The output of {@link CompleteAttachedFileUploadCommand}. + */ +export interface CompleteAttachedFileUploadCommandOutput extends CompleteAttachedFileUploadResponse, __MetadataBearer {} + +/** + *

Allows you to confirm that the attached file has been uploaded using the pre-signed URL + * provided in the StartAttachedFileUpload API.

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { ConnectClient, CompleteAttachedFileUploadCommand } from "@aws-sdk/client-connect"; // ES Modules import + * // const { ConnectClient, CompleteAttachedFileUploadCommand } = require("@aws-sdk/client-connect"); // CommonJS import + * const client = new ConnectClient(config); + * const input = { // CompleteAttachedFileUploadRequest + * InstanceId: "STRING_VALUE", // required + * FileId: "STRING_VALUE", // required + * AssociatedResourceArn: "STRING_VALUE", // required + * }; + * const command = new CompleteAttachedFileUploadCommand(input); + * const response = await client.send(command); + * // {}; + * + * ``` + * + * @param CompleteAttachedFileUploadCommandInput - {@link CompleteAttachedFileUploadCommandInput} + * @returns {@link CompleteAttachedFileUploadCommandOutput} + * @see {@link CompleteAttachedFileUploadCommandInput} for command's `input` shape. + * @see {@link CompleteAttachedFileUploadCommandOutput} 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.

+ * + * @public + */ +export class CompleteAttachedFileUploadCommand extends $Command + .classBuilder< + CompleteAttachedFileUploadCommandInput, + CompleteAttachedFileUploadCommandOutput, + ConnectClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes + >() + .ep({ + ...commonParams, + }) + .m(function (this: any, Command: any, cs: any, config: ConnectClientResolvedConfig, o: any) { + return [ + getSerdePlugin(config, this.serialize, this.deserialize), + getEndpointPlugin(config, Command.getEndpointParameterInstructions()), + ]; + }) + .s("AmazonConnectService", "CompleteAttachedFileUpload", {}) + .n("ConnectClient", "CompleteAttachedFileUploadCommand") + .f(void 0, void 0) + .ser(se_CompleteAttachedFileUploadCommand) + .de(de_CompleteAttachedFileUploadCommand) + .build() {} diff --git a/clients/client-connect/src/commands/DeleteAttachedFileCommand.ts b/clients/client-connect/src/commands/DeleteAttachedFileCommand.ts new file mode 100644 index 000000000000..3e852747f4b1 --- /dev/null +++ b/clients/client-connect/src/commands/DeleteAttachedFileCommand.ts @@ -0,0 +1,100 @@ +// smithy-typescript generated code +import { getEndpointPlugin } from "@smithy/middleware-endpoint"; +import { getSerdePlugin } from "@smithy/middleware-serde"; +import { Command as $Command } from "@smithy/smithy-client"; +import { MetadataBearer as __MetadataBearer } from "@smithy/types"; + +import { ConnectClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../ConnectClient"; +import { commonParams } from "../endpoint/EndpointParameters"; +import { DeleteAttachedFileRequest, DeleteAttachedFileResponse } from "../models/models_0"; +import { de_DeleteAttachedFileCommand, se_DeleteAttachedFileCommand } from "../protocols/Aws_restJson1"; + +/** + * @public + */ +export { __MetadataBearer, $Command }; +/** + * @public + * + * The input for {@link DeleteAttachedFileCommand}. + */ +export interface DeleteAttachedFileCommandInput extends DeleteAttachedFileRequest {} +/** + * @public + * + * The output of {@link DeleteAttachedFileCommand}. + */ +export interface DeleteAttachedFileCommandOutput extends DeleteAttachedFileResponse, __MetadataBearer {} + +/** + *

Deletes an attached file along with the underlying S3 Object.

+ * + *

The attached file is permanently deleted if S3 bucket + * versioning is not enabled.

+ *
+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { ConnectClient, DeleteAttachedFileCommand } from "@aws-sdk/client-connect"; // ES Modules import + * // const { ConnectClient, DeleteAttachedFileCommand } = require("@aws-sdk/client-connect"); // CommonJS import + * const client = new ConnectClient(config); + * const input = { // DeleteAttachedFileRequest + * InstanceId: "STRING_VALUE", // required + * FileId: "STRING_VALUE", // required + * AssociatedResourceArn: "STRING_VALUE", // required + * }; + * const command = new DeleteAttachedFileCommand(input); + * const response = await client.send(command); + * // {}; + * + * ``` + * + * @param DeleteAttachedFileCommandInput - {@link DeleteAttachedFileCommandInput} + * @returns {@link DeleteAttachedFileCommandOutput} + * @see {@link DeleteAttachedFileCommandInput} for command's `input` shape. + * @see {@link DeleteAttachedFileCommandOutput} 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.

+ * + * @public + */ +export class DeleteAttachedFileCommand extends $Command + .classBuilder< + DeleteAttachedFileCommandInput, + DeleteAttachedFileCommandOutput, + ConnectClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes + >() + .ep({ + ...commonParams, + }) + .m(function (this: any, Command: any, cs: any, config: ConnectClientResolvedConfig, o: any) { + return [ + getSerdePlugin(config, this.serialize, this.deserialize), + getEndpointPlugin(config, Command.getEndpointParameterInstructions()), + ]; + }) + .s("AmazonConnectService", "DeleteAttachedFile", {}) + .n("ConnectClient", "DeleteAttachedFileCommand") + .f(void 0, void 0) + .ser(se_DeleteAttachedFileCommand) + .de(de_DeleteAttachedFileCommand) + .build() {} diff --git a/clients/client-connect/src/commands/DescribeHoursOfOperationCommand.ts b/clients/client-connect/src/commands/DescribeHoursOfOperationCommand.ts index 6beab09bcbcc..12a038a49504 100644 --- a/clients/client-connect/src/commands/DescribeHoursOfOperationCommand.ts +++ b/clients/client-connect/src/commands/DescribeHoursOfOperationCommand.ts @@ -6,7 +6,8 @@ import { MetadataBearer as __MetadataBearer } from "@smithy/types"; import { ConnectClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../ConnectClient"; import { commonParams } from "../endpoint/EndpointParameters"; -import { DescribeHoursOfOperationRequest, DescribeHoursOfOperationResponse } from "../models/models_0"; +import { DescribeHoursOfOperationRequest } from "../models/models_0"; +import { DescribeHoursOfOperationResponse } from "../models/models_1"; import { de_DescribeHoursOfOperationCommand, se_DescribeHoursOfOperationCommand } from "../protocols/Aws_restJson1"; /** diff --git a/clients/client-connect/src/commands/DescribeInstanceAttributeCommand.ts b/clients/client-connect/src/commands/DescribeInstanceAttributeCommand.ts index c9aa10760e93..a5f715d3f0e6 100644 --- a/clients/client-connect/src/commands/DescribeInstanceAttributeCommand.ts +++ b/clients/client-connect/src/commands/DescribeInstanceAttributeCommand.ts @@ -6,7 +6,7 @@ import { MetadataBearer as __MetadataBearer } from "@smithy/types"; import { ConnectClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../ConnectClient"; import { commonParams } from "../endpoint/EndpointParameters"; -import { DescribeInstanceAttributeRequest, DescribeInstanceAttributeResponse } from "../models/models_0"; +import { DescribeInstanceAttributeRequest, DescribeInstanceAttributeResponse } from "../models/models_1"; import { de_DescribeInstanceAttributeCommand, se_DescribeInstanceAttributeCommand } from "../protocols/Aws_restJson1"; /** diff --git a/clients/client-connect/src/commands/DescribeInstanceCommand.ts b/clients/client-connect/src/commands/DescribeInstanceCommand.ts index 54cf025440d1..37232a37a45d 100644 --- a/clients/client-connect/src/commands/DescribeInstanceCommand.ts +++ b/clients/client-connect/src/commands/DescribeInstanceCommand.ts @@ -10,7 +10,7 @@ import { DescribeInstanceRequest, DescribeInstanceResponse, DescribeInstanceResponseFilterSensitiveLog, -} from "../models/models_0"; +} from "../models/models_1"; import { de_DescribeInstanceCommand, se_DescribeInstanceCommand } from "../protocols/Aws_restJson1"; /** diff --git a/clients/client-connect/src/commands/DescribeInstanceStorageConfigCommand.ts b/clients/client-connect/src/commands/DescribeInstanceStorageConfigCommand.ts index 2d227f3dc245..9e2ed3f6f17f 100644 --- a/clients/client-connect/src/commands/DescribeInstanceStorageConfigCommand.ts +++ b/clients/client-connect/src/commands/DescribeInstanceStorageConfigCommand.ts @@ -6,7 +6,7 @@ import { MetadataBearer as __MetadataBearer } from "@smithy/types"; import { ConnectClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../ConnectClient"; import { commonParams } from "../endpoint/EndpointParameters"; -import { DescribeInstanceStorageConfigRequest, DescribeInstanceStorageConfigResponse } from "../models/models_0"; +import { DescribeInstanceStorageConfigRequest, DescribeInstanceStorageConfigResponse } from "../models/models_1"; import { de_DescribeInstanceStorageConfigCommand, se_DescribeInstanceStorageConfigCommand, diff --git a/clients/client-connect/src/commands/DescribePhoneNumberCommand.ts b/clients/client-connect/src/commands/DescribePhoneNumberCommand.ts index 1f58e0d4941f..6247d226a821 100644 --- a/clients/client-connect/src/commands/DescribePhoneNumberCommand.ts +++ b/clients/client-connect/src/commands/DescribePhoneNumberCommand.ts @@ -6,8 +6,7 @@ import { MetadataBearer as __MetadataBearer } from "@smithy/types"; import { ConnectClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../ConnectClient"; import { commonParams } from "../endpoint/EndpointParameters"; -import { DescribePhoneNumberRequest } from "../models/models_0"; -import { DescribePhoneNumberResponse } from "../models/models_1"; +import { DescribePhoneNumberRequest, DescribePhoneNumberResponse } from "../models/models_1"; import { de_DescribePhoneNumberCommand, se_DescribePhoneNumberCommand } from "../protocols/Aws_restJson1"; /** diff --git a/clients/client-connect/src/commands/GetAttachedFileCommand.ts b/clients/client-connect/src/commands/GetAttachedFileCommand.ts new file mode 100644 index 000000000000..b66f7b931e66 --- /dev/null +++ b/clients/client-connect/src/commands/GetAttachedFileCommand.ts @@ -0,0 +1,119 @@ +// smithy-typescript generated code +import { getEndpointPlugin } from "@smithy/middleware-endpoint"; +import { getSerdePlugin } from "@smithy/middleware-serde"; +import { Command as $Command } from "@smithy/smithy-client"; +import { MetadataBearer as __MetadataBearer } from "@smithy/types"; + +import { ConnectClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../ConnectClient"; +import { commonParams } from "../endpoint/EndpointParameters"; +import { GetAttachedFileRequest, GetAttachedFileResponse } from "../models/models_1"; +import { de_GetAttachedFileCommand, se_GetAttachedFileCommand } from "../protocols/Aws_restJson1"; + +/** + * @public + */ +export { __MetadataBearer, $Command }; +/** + * @public + * + * The input for {@link GetAttachedFileCommand}. + */ +export interface GetAttachedFileCommandInput extends GetAttachedFileRequest {} +/** + * @public + * + * The output of {@link GetAttachedFileCommand}. + */ +export interface GetAttachedFileCommandOutput extends GetAttachedFileResponse, __MetadataBearer {} + +/** + *

Provides a pre-signed URL for download of an approved attached file. This API also returns + * metadata about the attached file. It will only return a downloadURL if the status of the attached + * file is APPROVED.

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { ConnectClient, GetAttachedFileCommand } from "@aws-sdk/client-connect"; // ES Modules import + * // const { ConnectClient, GetAttachedFileCommand } = require("@aws-sdk/client-connect"); // CommonJS import + * const client = new ConnectClient(config); + * const input = { // GetAttachedFileRequest + * InstanceId: "STRING_VALUE", // required + * FileId: "STRING_VALUE", // required + * UrlExpiryInSeconds: Number("int"), + * AssociatedResourceArn: "STRING_VALUE", // required + * }; + * const command = new GetAttachedFileCommand(input); + * const response = await client.send(command); + * // { // GetAttachedFileResponse + * // FileArn: "STRING_VALUE", + * // FileId: "STRING_VALUE", + * // CreationTime: "STRING_VALUE", + * // FileStatus: "APPROVED" || "REJECTED" || "PROCESSING" || "FAILED", + * // FileName: "STRING_VALUE", + * // FileSizeInBytes: Number("long"), // required + * // AssociatedResourceArn: "STRING_VALUE", + * // FileUseCaseType: "ATTACHMENT", + * // CreatedBy: { // CreatedByInfo Union: only one key present + * // ConnectUserArn: "STRING_VALUE", + * // AWSIdentityArn: "STRING_VALUE", + * // }, + * // DownloadUrlMetadata: { // DownloadUrlMetadata + * // Url: "STRING_VALUE", + * // UrlExpiry: "STRING_VALUE", + * // }, + * // Tags: { // TagMap + * // "": "STRING_VALUE", + * // }, + * // }; + * + * ``` + * + * @param GetAttachedFileCommandInput - {@link GetAttachedFileCommandInput} + * @returns {@link GetAttachedFileCommandOutput} + * @see {@link GetAttachedFileCommandInput} for command's `input` shape. + * @see {@link GetAttachedFileCommandOutput} 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.

+ * + * @public + */ +export class GetAttachedFileCommand extends $Command + .classBuilder< + GetAttachedFileCommandInput, + GetAttachedFileCommandOutput, + ConnectClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes + >() + .ep({ + ...commonParams, + }) + .m(function (this: any, Command: any, cs: any, config: ConnectClientResolvedConfig, o: any) { + return [ + getSerdePlugin(config, this.serialize, this.deserialize), + getEndpointPlugin(config, Command.getEndpointParameterInstructions()), + ]; + }) + .s("AmazonConnectService", "GetAttachedFile", {}) + .n("ConnectClient", "GetAttachedFileCommand") + .f(void 0, void 0) + .ser(se_GetAttachedFileCommand) + .de(de_GetAttachedFileCommand) + .build() {} diff --git a/clients/client-connect/src/commands/ReplicateInstanceCommand.ts b/clients/client-connect/src/commands/ReplicateInstanceCommand.ts index 087aee270be9..1b6e7173087e 100644 --- a/clients/client-connect/src/commands/ReplicateInstanceCommand.ts +++ b/clients/client-connect/src/commands/ReplicateInstanceCommand.ts @@ -6,11 +6,8 @@ import { MetadataBearer as __MetadataBearer } from "@smithy/types"; import { ConnectClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../ConnectClient"; import { commonParams } from "../endpoint/EndpointParameters"; -import { - ReplicateInstanceRequest, - ReplicateInstanceRequestFilterSensitiveLog, - ReplicateInstanceResponse, -} from "../models/models_1"; +import { ReplicateInstanceRequest, ReplicateInstanceRequestFilterSensitiveLog } from "../models/models_1"; +import { ReplicateInstanceResponse } from "../models/models_2"; import { de_ReplicateInstanceCommand, se_ReplicateInstanceCommand } from "../protocols/Aws_restJson1"; /** diff --git a/clients/client-connect/src/commands/ResumeContactCommand.ts b/clients/client-connect/src/commands/ResumeContactCommand.ts index 7b34170078bc..94374b2e9d8a 100644 --- a/clients/client-connect/src/commands/ResumeContactCommand.ts +++ b/clients/client-connect/src/commands/ResumeContactCommand.ts @@ -6,7 +6,7 @@ import { MetadataBearer as __MetadataBearer } from "@smithy/types"; import { ConnectClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../ConnectClient"; import { commonParams } from "../endpoint/EndpointParameters"; -import { ResumeContactRequest, ResumeContactResponse } from "../models/models_1"; +import { ResumeContactRequest, ResumeContactResponse } from "../models/models_2"; import { de_ResumeContactCommand, se_ResumeContactCommand } from "../protocols/Aws_restJson1"; /** diff --git a/clients/client-connect/src/commands/ResumeContactRecordingCommand.ts b/clients/client-connect/src/commands/ResumeContactRecordingCommand.ts index 9ded5d8fc62e..efdda9238911 100644 --- a/clients/client-connect/src/commands/ResumeContactRecordingCommand.ts +++ b/clients/client-connect/src/commands/ResumeContactRecordingCommand.ts @@ -6,7 +6,7 @@ import { MetadataBearer as __MetadataBearer } from "@smithy/types"; import { ConnectClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../ConnectClient"; import { commonParams } from "../endpoint/EndpointParameters"; -import { ResumeContactRecordingRequest, ResumeContactRecordingResponse } from "../models/models_1"; +import { ResumeContactRecordingRequest, ResumeContactRecordingResponse } from "../models/models_2"; import { de_ResumeContactRecordingCommand, se_ResumeContactRecordingCommand } from "../protocols/Aws_restJson1"; /** diff --git a/clients/client-connect/src/commands/SearchAvailablePhoneNumbersCommand.ts b/clients/client-connect/src/commands/SearchAvailablePhoneNumbersCommand.ts index 1d705047ad94..ec8e69bc8e10 100644 --- a/clients/client-connect/src/commands/SearchAvailablePhoneNumbersCommand.ts +++ b/clients/client-connect/src/commands/SearchAvailablePhoneNumbersCommand.ts @@ -6,7 +6,7 @@ import { MetadataBearer as __MetadataBearer } from "@smithy/types"; import { ConnectClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../ConnectClient"; import { commonParams } from "../endpoint/EndpointParameters"; -import { SearchAvailablePhoneNumbersRequest, SearchAvailablePhoneNumbersResponse } from "../models/models_1"; +import { SearchAvailablePhoneNumbersRequest, SearchAvailablePhoneNumbersResponse } from "../models/models_2"; import { de_SearchAvailablePhoneNumbersCommand, se_SearchAvailablePhoneNumbersCommand, diff --git a/clients/client-connect/src/commands/StartAttachedFileUploadCommand.ts b/clients/client-connect/src/commands/StartAttachedFileUploadCommand.ts new file mode 100644 index 000000000000..4ebf8bec60c4 --- /dev/null +++ b/clients/client-connect/src/commands/StartAttachedFileUploadCommand.ts @@ -0,0 +1,130 @@ +// smithy-typescript generated code +import { getEndpointPlugin } from "@smithy/middleware-endpoint"; +import { getSerdePlugin } from "@smithy/middleware-serde"; +import { Command as $Command } from "@smithy/smithy-client"; +import { MetadataBearer as __MetadataBearer } from "@smithy/types"; + +import { ConnectClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../ConnectClient"; +import { commonParams } from "../endpoint/EndpointParameters"; +import { StartAttachedFileUploadRequest, StartAttachedFileUploadResponse } from "../models/models_2"; +import { de_StartAttachedFileUploadCommand, se_StartAttachedFileUploadCommand } from "../protocols/Aws_restJson1"; + +/** + * @public + */ +export { __MetadataBearer, $Command }; +/** + * @public + * + * The input for {@link StartAttachedFileUploadCommand}. + */ +export interface StartAttachedFileUploadCommandInput extends StartAttachedFileUploadRequest {} +/** + * @public + * + * The output of {@link StartAttachedFileUploadCommand}. + */ +export interface StartAttachedFileUploadCommandOutput extends StartAttachedFileUploadResponse, __MetadataBearer {} + +/** + *

Provides a pre-signed Amazon S3 URL in response for uploading your content.

+ * + *

You may only use this API to upload attachments to a Connect + * Case.

+ *
+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { ConnectClient, StartAttachedFileUploadCommand } from "@aws-sdk/client-connect"; // ES Modules import + * // const { ConnectClient, StartAttachedFileUploadCommand } = require("@aws-sdk/client-connect"); // CommonJS import + * const client = new ConnectClient(config); + * const input = { // StartAttachedFileUploadRequest + * ClientToken: "STRING_VALUE", + * InstanceId: "STRING_VALUE", // required + * FileName: "STRING_VALUE", // required + * FileSizeInBytes: Number("long"), // required + * UrlExpiryInSeconds: Number("int"), + * FileUseCaseType: "ATTACHMENT", // required + * AssociatedResourceArn: "STRING_VALUE", // required + * CreatedBy: { // CreatedByInfo Union: only one key present + * ConnectUserArn: "STRING_VALUE", + * AWSIdentityArn: "STRING_VALUE", + * }, + * Tags: { // TagMap + * "": "STRING_VALUE", + * }, + * }; + * const command = new StartAttachedFileUploadCommand(input); + * const response = await client.send(command); + * // { // StartAttachedFileUploadResponse + * // FileArn: "STRING_VALUE", + * // FileId: "STRING_VALUE", + * // CreationTime: "STRING_VALUE", + * // FileStatus: "APPROVED" || "REJECTED" || "PROCESSING" || "FAILED", + * // CreatedBy: { // CreatedByInfo Union: only one key present + * // ConnectUserArn: "STRING_VALUE", + * // AWSIdentityArn: "STRING_VALUE", + * // }, + * // UploadUrlMetadata: { // UploadUrlMetadata + * // Url: "STRING_VALUE", + * // UrlExpiry: "STRING_VALUE", + * // HeadersToInclude: { // UrlMetadataSignedHeaders + * // "": "STRING_VALUE", + * // }, + * // }, + * // }; + * + * ``` + * + * @param StartAttachedFileUploadCommandInput - {@link StartAttachedFileUploadCommandInput} + * @returns {@link StartAttachedFileUploadCommandOutput} + * @see {@link StartAttachedFileUploadCommandInput} for command's `input` shape. + * @see {@link StartAttachedFileUploadCommandOutput} 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 ServiceQuotaExceededException} (client fault) + *

The service quota has been exceeded.

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

The throttling limit has been exceeded.

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

Base exception class for all service exceptions from Connect service.

+ * + * @public + */ +export class StartAttachedFileUploadCommand extends $Command + .classBuilder< + StartAttachedFileUploadCommandInput, + StartAttachedFileUploadCommandOutput, + ConnectClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes + >() + .ep({ + ...commonParams, + }) + .m(function (this: any, Command: any, cs: any, config: ConnectClientResolvedConfig, o: any) { + return [ + getSerdePlugin(config, this.serialize, this.deserialize), + getEndpointPlugin(config, Command.getEndpointParameterInstructions()), + ]; + }) + .s("AmazonConnectService", "StartAttachedFileUpload", {}) + .n("ConnectClient", "StartAttachedFileUploadCommand") + .f(void 0, void 0) + .ser(se_StartAttachedFileUploadCommand) + .de(de_StartAttachedFileUploadCommand) + .build() {} diff --git a/clients/client-connect/src/commands/index.ts b/clients/client-connect/src/commands/index.ts index 5c7fc96ce481..25ef45c4f5f9 100644 --- a/clients/client-connect/src/commands/index.ts +++ b/clients/client-connect/src/commands/index.ts @@ -16,9 +16,11 @@ export * from "./AssociateTrafficDistributionGroupUserCommand"; export * from "./AssociateUserProficienciesCommand"; export * from "./BatchAssociateAnalyticsDataSetCommand"; export * from "./BatchDisassociateAnalyticsDataSetCommand"; +export * from "./BatchGetAttachedFileMetadataCommand"; export * from "./BatchGetFlowAssociationCommand"; export * from "./BatchPutContactCommand"; export * from "./ClaimPhoneNumberCommand"; +export * from "./CompleteAttachedFileUploadCommand"; export * from "./CreateAgentStatusCommand"; export * from "./CreateContactFlowCommand"; export * from "./CreateContactFlowModuleCommand"; @@ -44,6 +46,7 @@ export * from "./CreateViewCommand"; export * from "./CreateViewVersionCommand"; export * from "./CreateVocabularyCommand"; export * from "./DeactivateEvaluationFormCommand"; +export * from "./DeleteAttachedFileCommand"; export * from "./DeleteContactEvaluationCommand"; export * from "./DeleteContactFlowCommand"; export * from "./DeleteContactFlowModuleCommand"; @@ -104,6 +107,7 @@ export * from "./DisassociateSecurityKeyCommand"; export * from "./DisassociateTrafficDistributionGroupUserCommand"; export * from "./DisassociateUserProficienciesCommand"; export * from "./DismissUserContactCommand"; +export * from "./GetAttachedFileCommand"; export * from "./GetContactAttributesCommand"; export * from "./GetCurrentMetricDataCommand"; export * from "./GetCurrentUserDataCommand"; @@ -179,6 +183,7 @@ export * from "./SearchSecurityProfilesCommand"; export * from "./SearchUsersCommand"; export * from "./SearchVocabulariesCommand"; export * from "./SendChatIntegrationEventCommand"; +export * from "./StartAttachedFileUploadCommand"; export * from "./StartChatContactCommand"; export * from "./StartContactEvaluationCommand"; export * from "./StartContactRecordingCommand"; diff --git a/clients/client-connect/src/models/models_0.ts b/clients/client-connect/src/models/models_0.ts index 653ab15490f9..f4430fca92f7 100644 --- a/clients/client-connect/src/models/models_0.ts +++ b/clients/client-connect/src/models/models_0.ts @@ -734,6 +734,63 @@ export interface AssociateAnalyticsDataSetResponse { ResourceShareArn?: string; } +/** + * @public + * @enum + */ +export const AttachedFileInvalidRequestExceptionReason = { + INVALID_FILE_NAME: "INVALID_FILE_NAME", + INVALID_FILE_SIZE: "INVALID_FILE_SIZE", + INVALID_FILE_TYPE: "INVALID_FILE_TYPE", +} as const; + +/** + * @public + */ +export type AttachedFileInvalidRequestExceptionReason = + (typeof AttachedFileInvalidRequestExceptionReason)[keyof typeof AttachedFileInvalidRequestExceptionReason]; + +/** + *

Reason why the request was invalid.

+ * @public + */ +export type InvalidRequestExceptionReason = + | InvalidRequestExceptionReason.AttachedFileInvalidRequestExceptionReasonMember + | InvalidRequestExceptionReason.$UnknownMember; + +/** + * @public + */ +export namespace InvalidRequestExceptionReason { + /** + *

Reason why the StartAttachedFiledUpload request was invalid.

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

The request is not valid.

* @public @@ -746,6 +803,12 @@ export class InvalidRequestException extends __BaseException { * @public */ Message?: string; + + /** + *

Reason why the request was invalid.

+ * @public + */ + Reason?: InvalidRequestExceptionReason; /** * @internal */ @@ -757,6 +820,7 @@ export class InvalidRequestException extends __BaseException { }); Object.setPrototypeOf(this, InvalidRequestException.prototype); this.Message = opts.Message; + this.Reason = opts.Reason; } } @@ -1210,11 +1274,13 @@ export interface AssociateInstanceStorageConfigRequest { * * *

- * REAL_TIME_CONTACT_ANALYSIS_SEGMENTS is deprecated, but it is still - * supported and will apply only to VOICE channel contacts. Use - * REAL_TIME_CONTACT_ANALYSIS_VOICE_SEGMENTS for voice contacts moving forward.

- *

If you have previously associated a stream with REAL_TIME_CONTACT_ANALYSIS_SEGMENTS, no - * action is needed to update the stream to REAL_TIME_CONTACT_ANALYSIS_VOICE_SEGMENTS.

+ * REAL_TIME_CONTACT_ANALYSIS_SEGMENTS is deprecated, but it is still supported + * and will apply only to VOICE channel contacts. Use + * REAL_TIME_CONTACT_ANALYSIS_VOICE_SEGMENTS for voice contacts moving + * forward.

+ *

If you have previously associated a stream with + * REAL_TIME_CONTACT_ANALYSIS_SEGMENTS, no action is needed to update the stream to + * REAL_TIME_CONTACT_ANALYSIS_VOICE_SEGMENTS.

*
* @public */ @@ -1635,6 +1701,232 @@ export interface BatchDisassociateAnalyticsDataSetResponse { Errors?: ErrorResult[]; } +/** + * @public + */ +export interface BatchGetAttachedFileMetadataRequest { + /** + *

The unique identifiers of the attached file resource.

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

The unique identifier of the Connect instance.

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

The resource to which the attached file is (being) uploaded to. Cases are the only + * current supported resource.

+ * + *

This value must be a valid ARN.

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

Error describing a failure to retrieve attached file metadata through BatchGetAttachedFileMetadata action.

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

Status code describing the failure.

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

Why the attached file couldn't be retrieved.

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

The unique identifier of the attached file resource.

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

Information on the identity that created the file.

+ * @public + */ +export type CreatedByInfo = + | CreatedByInfo.AWSIdentityArnMember + | CreatedByInfo.ConnectUserArnMember + | CreatedByInfo.$UnknownMember; + +/** + * @public + */ +export namespace CreatedByInfo { + /** + *

An agent ARN representing a connect user.

+ * @public + */ + export interface ConnectUserArnMember { + ConnectUserArn: string; + AWSIdentityArn?: never; + $unknown?: never; + } + + /** + *

STS or IAM ARN representing the identity of API Caller. SDK users cannot populate this and + * this value is calculated automatically if ConnectUserArn is not provided.

+ * @public + */ + export interface AWSIdentityArnMember { + ConnectUserArn?: never; + AWSIdentityArn: string; + $unknown?: never; + } + + /** + * @public + */ + export interface $UnknownMember { + ConnectUserArn?: never; + AWSIdentityArn?: never; + $unknown: [string, any]; + } + + export interface Visitor { + ConnectUserArn: (value: string) => T; + AWSIdentityArn: (value: string) => T; + _: (name: string, value: any) => T; + } + + export const visit = (value: CreatedByInfo, visitor: Visitor): T => { + if (value.ConnectUserArn !== undefined) return visitor.ConnectUserArn(value.ConnectUserArn); + if (value.AWSIdentityArn !== undefined) return visitor.AWSIdentityArn(value.AWSIdentityArn); + return visitor._(value.$unknown[0], value.$unknown[1]); + }; +} + +/** + * @public + * @enum + */ +export const FileStatusType = { + APPROVED: "APPROVED", + FAILED: "FAILED", + PROCESSING: "PROCESSING", + REJECTED: "REJECTED", +} as const; + +/** + * @public + */ +export type FileStatusType = (typeof FileStatusType)[keyof typeof FileStatusType]; + +/** + * @public + * @enum + */ +export const FileUseCaseType = { + ATTACHMENT: "ATTACHMENT", +} as const; + +/** + * @public + */ +export type FileUseCaseType = (typeof FileUseCaseType)[keyof typeof FileUseCaseType]; + +/** + *

Information about the attached file.

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

The time of Creation of the file resource as an ISO timestamp. It's specified in ISO 8601 + * format: yyyy-MM-ddThh:mm:ss.SSSZ. For example, + * 2024-05-03T02:41:28.172Z.

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

The unique identifier of the attached file resource (ARN).

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

The unique identifier of the attached file resource.

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

A case-sensitive name of the attached file being uploaded.

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

The size of the attached file in bytes.

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

The current status of the attached file.

+ * @public + */ + FileStatus: FileStatusType | undefined; + + /** + *

Represents the identity that created the file.

+ * @public + */ + CreatedBy?: CreatedByInfo; + + /** + *

The use case for the file.

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

The resource to which the attached file is (being) uploaded to. Cases are the only + * current supported resource.

+ * + *

This value must be a valid ARN.

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

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

+ * @public + */ + Tags?: Record; +} + +/** + * @public + */ +export interface BatchGetAttachedFileMetadataResponse { + /** + *

List of attached files that were successfully retrieved.

+ * @public + */ + Files?: AttachedFile[]; + + /** + *

List of errors of attached files that could not be retrieved.

+ * @public + */ + Errors?: AttachedFileError[]; +} + /** * @public * @enum @@ -1993,6 +2285,40 @@ export interface ClaimPhoneNumberResponse { PhoneNumberArn?: string; } +/** + * Request to CompleteAttachedFileUpload API + * @public + */ +export interface CompleteAttachedFileUploadRequest { + /** + *

The unique identifier of the Connect instance.

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

The unique identifier of the attached file resource.

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

The resource to which the attached file is (being) uploaded to. Cases are the only + * current supported resource.

+ * + *

This value must be a valid ARN.

+ *
+ * @public + */ + AssociatedResourceArn: string | undefined; +} + +/** + * Response from CompleteAttachedFileUpload API + * @public + */ +export interface CompleteAttachedFileUploadResponse {} + /** * @public */ @@ -5645,6 +5971,40 @@ export interface DeactivateEvaluationFormResponse { EvaluationFormVersion: number | undefined; } +/** + * Request to DeleteAttachedFile API + * @public + */ +export interface DeleteAttachedFileRequest { + /** + *

The unique identifier of the Connect instance.

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

The unique identifier of the attached file resource.

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

The resource to which the attached file is (being) uploaded to. Cases are the only + * current supported resource.

+ * + *

This value must be a valid ARN.

+ *
+ * @public + */ + AssociatedResourceArn: string | undefined; +} + +/** + * Response from DeleteAttachedFile API + * @public + */ +export interface DeleteAttachedFileResponse {} + /** * @public */ @@ -6937,262 +7297,6 @@ export interface HoursOfOperation { LastModifiedRegion?: string; } -/** - * @public - */ -export interface DescribeHoursOfOperationResponse { - /** - *

The hours of operation.

- * @public - */ - HoursOfOperation?: HoursOfOperation; -} - -/** - * @public - */ -export interface DescribeInstanceRequest { - /** - *

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

- * @public - */ - InstanceId: string | undefined; -} - -/** - * @public - * @enum - */ -export const InstanceStatus = { - ACTIVE: "ACTIVE", - CREATION_FAILED: "CREATION_FAILED", - CREATION_IN_PROGRESS: "CREATION_IN_PROGRESS", -} as const; - -/** - * @public - */ -export type InstanceStatus = (typeof InstanceStatus)[keyof typeof InstanceStatus]; - -/** - *

Relevant - * details why the instance was not successfully created.

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

The message.

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

The Amazon Connect instance.

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

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

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

The Amazon Resource Name (ARN) of the instance.

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

The identity management type.

- * @public - */ - IdentityManagementType?: DirectoryType; - - /** - *

The alias of instance.

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

When the instance was created.

- * @public - */ - CreatedTime?: Date; - - /** - *

The service role of the instance.

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

The state of the instance.

- * @public - */ - InstanceStatus?: InstanceStatus; - - /** - *

Relevant - * details why the instance was not successfully created.

- * @public - */ - StatusReason?: InstanceStatusReason; - - /** - *

Whether inbound calls are enabled.

- * @public - */ - InboundCallsEnabled?: boolean; - - /** - *

Whether outbound calls are enabled.

- * @public - */ - OutboundCallsEnabled?: boolean; - - /** - *

This URL allows contact center users to access the Amazon Connect admin website.

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

The tags of an instance.

- * @public - */ - Tags?: Record; -} - -/** - * @public - */ -export interface DescribeInstanceResponse { - /** - *

The name of the instance.

- * @public - */ - Instance?: Instance; -} - -/** - * @public - * @enum - */ -export const InstanceAttributeType = { - AUTO_RESOLVE_BEST_VOICES: "AUTO_RESOLVE_BEST_VOICES", - CONTACTFLOW_LOGS: "CONTACTFLOW_LOGS", - CONTACT_LENS: "CONTACT_LENS", - EARLY_MEDIA: "EARLY_MEDIA", - ENHANCED_CHAT_MONITORING: "ENHANCED_CHAT_MONITORING", - ENHANCED_CONTACT_MONITORING: "ENHANCED_CONTACT_MONITORING", - HIGH_VOLUME_OUTBOUND: "HIGH_VOLUME_OUTBOUND", - INBOUND_CALLS: "INBOUND_CALLS", - MULTI_PARTY_CONFERENCE: "MULTI_PARTY_CONFERENCE", - OUTBOUND_CALLS: "OUTBOUND_CALLS", - USE_CUSTOM_TTS_VOICES: "USE_CUSTOM_TTS_VOICES", -} as const; - -/** - * @public - */ -export type InstanceAttributeType = (typeof InstanceAttributeType)[keyof typeof InstanceAttributeType]; - -/** - * @public - */ -export interface DescribeInstanceAttributeRequest { - /** - *

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

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

The type of attribute.

- * @public - */ - AttributeType: InstanceAttributeType | undefined; -} - -/** - *

A toggle for an individual feature at the instance level.

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

The type of attribute.

- * @public - */ - AttributeType?: InstanceAttributeType; - - /** - *

The value of the attribute.

- * @public - */ - Value?: string; -} - -/** - * @public - */ -export interface DescribeInstanceAttributeResponse { - /** - *

The - * type - * of attribute.

- * @public - */ - Attribute?: Attribute; -} - -/** - * @public - */ -export interface DescribeInstanceStorageConfigRequest { - /** - *

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

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

The existing association identifier that uniquely identifies the resource type and storage config for the given instance ID.

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

A valid resource type.

- * @public - */ - ResourceType: InstanceStorageResourceType | undefined; -} - -/** - * @public - */ -export interface DescribeInstanceStorageConfigResponse { - /** - *

A valid storage type.

- * @public - */ - StorageConfig?: InstanceStorageConfig; -} - -/** - * @public - */ -export interface DescribePhoneNumberRequest { - /** - *

A unique identifier for the phone number.

- * @public - */ - PhoneNumberId: string | undefined; -} - /** * @internal */ @@ -7288,19 +7392,3 @@ export const DescribeContactResponseFilterSensitiveLog = (obj: DescribeContactRe ...obj, ...(obj.Contact && { Contact: ContactFilterSensitiveLog(obj.Contact) }), }); - -/** - * @internal - */ -export const InstanceFilterSensitiveLog = (obj: Instance): any => ({ - ...obj, - ...(obj.InstanceAlias && { InstanceAlias: SENSITIVE_STRING }), -}); - -/** - * @internal - */ -export const DescribeInstanceResponseFilterSensitiveLog = (obj: DescribeInstanceResponse): any => ({ - ...obj, - ...(obj.Instance && { Instance: InstanceFilterSensitiveLog(obj.Instance) }), -}); diff --git a/clients/client-connect/src/models/models_1.ts b/clients/client-connect/src/models/models_1.ts index c578948f9506..47d38e2e04f2 100644 --- a/clients/client-connect/src/models/models_1.ts +++ b/clients/client-connect/src/models/models_1.ts @@ -8,28 +8,28 @@ import { AgentAvailabilityTimer, AgentConfig, AgentContactReference, - AgentHierarchyGroups, AgentStatusReference, AgentStatusSummary, AgentStatusType, AnalyticsDataAssociationResult, Application, - Attribute, Channel, ContactFlowModuleState, ContactFlowState, ContactFlowType, - ContactInitiationMethod, ContactState, + CreatedByInfo, DirectoryType, Distribution, EvaluationFormVersionStatus, EvaluationScore, EvaluationStatus, EventSourceName, + FileStatusType, + FileUseCaseType, FlowAssociationResourceType, FlowAssociationSummary, - InstanceStatus, + HoursOfOperation, InstanceStorageConfig, InstanceStorageResourceType, IntegrationType, @@ -67,6 +67,262 @@ import { VocabularyState, } from "./models_0"; +/** + * @public + */ +export interface DescribeHoursOfOperationResponse { + /** + *

The hours of operation.

+ * @public + */ + HoursOfOperation?: HoursOfOperation; +} + +/** + * @public + */ +export interface DescribeInstanceRequest { + /** + *

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

+ * @public + */ + InstanceId: string | undefined; +} + +/** + * @public + * @enum + */ +export const InstanceStatus = { + ACTIVE: "ACTIVE", + CREATION_FAILED: "CREATION_FAILED", + CREATION_IN_PROGRESS: "CREATION_IN_PROGRESS", +} as const; + +/** + * @public + */ +export type InstanceStatus = (typeof InstanceStatus)[keyof typeof InstanceStatus]; + +/** + *

Relevant + * details why the instance was not successfully created.

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

The message.

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

The Amazon Connect instance.

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

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

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

The Amazon Resource Name (ARN) of the instance.

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

The identity management type.

+ * @public + */ + IdentityManagementType?: DirectoryType; + + /** + *

The alias of instance.

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

When the instance was created.

+ * @public + */ + CreatedTime?: Date; + + /** + *

The service role of the instance.

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

The state of the instance.

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

Relevant + * details why the instance was not successfully created.

+ * @public + */ + StatusReason?: InstanceStatusReason; + + /** + *

Whether inbound calls are enabled.

+ * @public + */ + InboundCallsEnabled?: boolean; + + /** + *

Whether outbound calls are enabled.

+ * @public + */ + OutboundCallsEnabled?: boolean; + + /** + *

This URL allows contact center users to access the Amazon Connect admin website.

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

The tags of an instance.

+ * @public + */ + Tags?: Record; +} + +/** + * @public + */ +export interface DescribeInstanceResponse { + /** + *

The name of the instance.

+ * @public + */ + Instance?: Instance; +} + +/** + * @public + * @enum + */ +export const InstanceAttributeType = { + AUTO_RESOLVE_BEST_VOICES: "AUTO_RESOLVE_BEST_VOICES", + CONTACTFLOW_LOGS: "CONTACTFLOW_LOGS", + CONTACT_LENS: "CONTACT_LENS", + EARLY_MEDIA: "EARLY_MEDIA", + ENHANCED_CHAT_MONITORING: "ENHANCED_CHAT_MONITORING", + ENHANCED_CONTACT_MONITORING: "ENHANCED_CONTACT_MONITORING", + HIGH_VOLUME_OUTBOUND: "HIGH_VOLUME_OUTBOUND", + INBOUND_CALLS: "INBOUND_CALLS", + MULTI_PARTY_CONFERENCE: "MULTI_PARTY_CONFERENCE", + OUTBOUND_CALLS: "OUTBOUND_CALLS", + USE_CUSTOM_TTS_VOICES: "USE_CUSTOM_TTS_VOICES", +} as const; + +/** + * @public + */ +export type InstanceAttributeType = (typeof InstanceAttributeType)[keyof typeof InstanceAttributeType]; + +/** + * @public + */ +export interface DescribeInstanceAttributeRequest { + /** + *

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

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

The type of attribute.

+ * @public + */ + AttributeType: InstanceAttributeType | undefined; +} + +/** + *

A toggle for an individual feature at the instance level.

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

The type of attribute.

+ * @public + */ + AttributeType?: InstanceAttributeType; + + /** + *

The value of the attribute.

+ * @public + */ + Value?: string; +} + +/** + * @public + */ +export interface DescribeInstanceAttributeResponse { + /** + *

The + * type + * of attribute.

+ * @public + */ + Attribute?: Attribute; +} + +/** + * @public + */ +export interface DescribeInstanceStorageConfigRequest { + /** + *

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

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

The existing association identifier that uniquely identifies the resource type and storage config for the given instance ID.

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

A valid resource type.

+ * @public + */ + ResourceType: InstanceStorageResourceType | undefined; +} + +/** + * @public + */ +export interface DescribeInstanceStorageConfigResponse { + /** + *

A valid storage type.

+ * @public + */ + StorageConfig?: InstanceStorageConfig; +} + +/** + * @public + */ +export interface DescribePhoneNumberRequest { + /** + *

A unique identifier for the phone number.

+ * @public + */ + PhoneNumberId: string | undefined; +} + /** * @public * @enum @@ -2118,61 +2374,193 @@ export interface DismissUserContactRequest { export interface DismissUserContactResponse {} /** + * Request to GetAttachedFile API. * @public */ -export interface GetContactAttributesRequest { +export interface GetAttachedFileRequest { /** - *

The identifier of the Amazon Connect instance.

+ *

The unique identifier of the Connect instance.

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

The identifier of the initial contact.

+ *

The unique identifier of the attached file resource.

* @public */ - InitialContactId: string | undefined; + FileId: string | undefined; + + /** + *

Optional override for the expiry of the pre-signed S3 URL in seconds.

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

The resource to which the attached file is (being) uploaded to. Cases are the only + * current supported resource.

+ * + *

This value must be a valid ARN.

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

Metadata used to download the attached file.

* @public */ -export interface GetContactAttributesResponse { +export interface DownloadUrlMetadata { /** - *

Information about the attributes.

+ *

A pre-signed URL that should be used to download the attached file.

* @public */ - Attributes?: Record; + Url?: string; + + /** + *

The expiration time of the URL in ISO timestamp. It's specified in ISO 8601 format: + * yyyy-MM-ddThh:mm:ss.SSSZ. For example, 2019-11-08T02:41:28.172Z.

+ * @public + */ + UrlExpiry?: string; } /** + * Response from GetAttachedFile API. * @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; +export interface GetAttachedFileResponse { + /** + *

The unique identifier of the attached file resource (ARN).

+ * @public + */ + FileArn?: string; -/** - * @public - */ -export type CurrentMetricName = (typeof CurrentMetricName)[keyof typeof CurrentMetricName]; + /** + *

The unique identifier of the attached file resource.

+ * @public + */ + FileId?: string; -/** - * @public - * @enum + /** + *

The time of Creation of the file resource as an ISO timestamp. It's specified in ISO 8601 + * format: yyyy-MM-ddThh:mm:ss.SSSZ. For example, + * 2024-05-03T02:41:28.172Z.

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

The current status of the attached file.

+ * @public + */ + FileStatus?: FileStatusType; + + /** + *

A case-sensitive name of the attached file being uploaded.

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

The size of the attached file in bytes.

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

The resource to which the attached file is (being) uploaded to. Cases are the only + * current supported resource.

+ * + *

This value must be a valid ARN.

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

The use case for the file.

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

Represents the identity that created the file.

+ * @public + */ + CreatedBy?: CreatedByInfo; + + /** + *

URL and expiry to be used when downloading the attached file.

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

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

+ * @public + */ + Tags?: Record; +} + +/** + * @public + */ +export interface GetContactAttributesRequest { + /** + *

The identifier of the Amazon Connect instance.

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

The identifier of the initial contact.

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

Information about the attributes.

+ * @public + */ + 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", @@ -3907,7 +4295,7 @@ export interface GetMetricDataV2Request { *

Unit: Seconds

*

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, * contact/segmentAttributes/connect:Subtype

- *

UI name: Average greeting time agent + *

UI name: Average agent greeting time *

* *
AVG_HANDLE_TIME
@@ -3979,7 +4367,7 @@ export interface GetMetricDataV2Request { *

Unit: Count

*

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, * contact/segmentAttributes/connect:Subtype

- *

UI name: Average interruptions agent + *

UI name: Average agent interruptions *

* *
AVG_INTERRUPTION_TIME_AGENT
@@ -3989,7 +4377,7 @@ export interface GetMetricDataV2Request { *

Unit: Seconds

*

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, * contact/segmentAttributes/connect:Subtype

- *

UI name: Average interruption time agent + *

UI name: Average agent interruption time *

* *
AVG_NON_TALK_TIME
@@ -4038,7 +4426,7 @@ export interface GetMetricDataV2Request { *

Unit: Seconds

*

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, * contact/segmentAttributes/connect:Subtype

- *

UI name: Average talk time agent + *

UI name: Average agent talk time *

* *
AVG_TALK_TIME_CUSTOMER
@@ -4048,7 +4436,7 @@ export interface GetMetricDataV2Request { *

Unit: Seconds

*

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, * contact/segmentAttributes/connect:Subtype

- *

UI name: Average talk time customer + *

UI name: Average customer talk time *

* *
CASES_CREATED
@@ -4101,7 +4489,7 @@ export interface GetMetricDataV2Request { *

*

Valid groupings and filters: Queue, Channel, Agent, Agent Hierarchy, * contact/segmentAttributes/connect:Subtype

- *

UI name: Contacts handled by Connected to agent + *

UI name: Contacts handled (connected to agent timestamp) *

* *
CONTACTS_HOLD_ABANDONS
@@ -4160,7 +4548,7 @@ export interface GetMetricDataV2Request { *

Unit: Count

*

Valid groupings and filters: Queue, Channel, Agent, Agent Hierarchy, * contact/segmentAttributes/connect:Subtype

- *

UI name: Contacts queued by Enqueue + *

UI name: Contacts queued (enqueue timestamp) *

* *
CONTACTS_RESOLVED_IN_X
@@ -4266,8 +4654,8 @@ export interface GetMetricDataV2Request { *

Unit: Percentage

*

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, * contact/segmentAttributes/connect:Subtype

- *

UI name: Talk - * time agent percent + *

UI name: Agent + * talk time percent *

* *
PERCENT_TALK_TIME_CUSTOMER
@@ -4277,7 +4665,7 @@ export interface GetMetricDataV2Request { *

Unit: Percentage

*

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, * contact/segmentAttributes/connect:Subtype

- *

UI name: Talk time customer percent + *

UI name: Customer talk time percent *

* *
REOPENED_CASE_ACTIONS
@@ -9266,358 +9654,20 @@ export interface ReplicateInstanceRequest { } /** - * @public - */ -export interface ReplicateInstanceResponse { - /** - *

The identifier of the replicated instance. You can find the instanceId in the - * ARN of the instance. The replicated instance has the same identifier as the instance it was - * replicated from.

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

The Amazon Resource Name (ARN) of the replicated instance.

- * @public - */ - Arn?: string; -} - -/** - * @public - */ -export interface ResumeContactRequest { - /** - *

The identifier of the contact.

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

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

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

The identifier of the flow.

- * @public - */ - ContactFlowId?: string; -} - -/** - * @public - */ -export interface ResumeContactResponse {} - -/** - * @public - */ -export interface ResumeContactRecordingRequest { - /** - *

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

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

The identifier of the contact.

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

The identifier of the contact. This is the identifier of the contact associated with the - * first interaction with the contact center.

- * @public - */ - InitialContactId: string | undefined; -} - -/** - * @public - */ -export interface ResumeContactRecordingResponse {} - -/** - * @public - */ -export interface SearchAvailablePhoneNumbersRequest { - /** - *

The Amazon Resource Name (ARN) for Amazon Connect instances or traffic distribution groups that phone number inbound traffic is routed through. You must enter InstanceId or TargetArn.

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

The identifier of the Amazon Connect instance that phone numbers are claimed to. You - * can find the - * instance ID in the Amazon Resource Name (ARN) of the instance. You must enter InstanceId or TargetArn.

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

The ISO country code.

- * @public - */ - PhoneNumberCountryCode: PhoneNumberCountryCode | undefined; - - /** - *

The type of phone number.

- * @public - */ - PhoneNumberType: PhoneNumberType | undefined; - - /** - *

The prefix of the phone number. If provided, it must contain + as part of the country code.

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

The maximum number of results to return per page.

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

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.

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

Information about available phone numbers.

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

The phone number. Phone numbers are formatted [+] [country code] [subscriber number including area code].

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

The ISO country code.

- * @public - */ - PhoneNumberCountryCode?: PhoneNumberCountryCode; - - /** - *

The type of phone number.

- * @public - */ - PhoneNumberType?: PhoneNumberType; -} - -/** - * @public - */ -export interface SearchAvailablePhoneNumbersResponse { - /** - *

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

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

A list of available phone numbers that you can claim to your Amazon Connect instance or traffic distribution group.

- * @public - */ - AvailableNumbersList?: AvailableNumberSummary[]; -} - -/** - * @public - * @enum - */ -export const SearchContactsMatchType = { - MATCH_ALL: "MATCH_ALL", - MATCH_ANY: "MATCH_ANY", -} as const; - -/** - * @public - */ -export type SearchContactsMatchType = (typeof SearchContactsMatchType)[keyof typeof SearchContactsMatchType]; - -/** - *

A structure that defines search criteria base on words or phrases, participants in the - * Contact Lens conversational analytics transcript.

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

The participant role in a transcript

- * @public - */ - ParticipantRole: ParticipantRole | undefined; - - /** - *

The words or phrases used to search within a transcript.

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

The match type combining search criteria using multiple search texts in a transcript - * criteria.

- * @public - */ - MatchType: SearchContactsMatchType | undefined; -} - -/** - *

A structure that defines search criteria and matching logic to search for contacts by - * matching text with transcripts analyzed by Amazon Connect Contact Lens.

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

The list of search criteria based on Contact Lens conversational analytics - * transcript.

- * @public - */ - Criteria: TranscriptCriteria[] | undefined; - - /** - *

The match type combining search criteria using multiple transcript criteria.

- * @public - */ - MatchType?: SearchContactsMatchType; -} - -/** - *

A structure that defines search criteria for contacts using analysis outputs from Amazon - * Connect Contact Lens.

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

Search criteria based on transcript analyzed by Amazon Connect Contact Lens.

- * @public - */ - Transcript?: Transcript; -} - -/** - *

The search criteria based on user-defned contact attribute key and values to search - * on.

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

The key containing a searchable user-defined contact attribute.

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

The list of values to search for within a user-defined contact attribute.

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

A structure that defines search criteria based on user-defined contact attributes that are - * configured for contact search.

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

The list of criteria based on user-defined contact attributes that are configured for - * contact search.

- * @public - */ - Criteria: SearchableContactAttributesCriteria[] | undefined; - - /** - *

The match type combining search criteria using multiple searchable contact - * attributes.

- * @public - */ - MatchType?: SearchContactsMatchType; -} - -/** - *

A structure of search criteria to be used to return contacts.

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

The identifiers of agents who handled the contacts.

- * @public - */ - AgentIds?: string[]; - - /** - *

The agent hierarchy groups of the agent at the time of handling the contact.

- * @public - */ - AgentHierarchyGroups?: AgentHierarchyGroups; - - /** - *

The list of channels associated with contacts.

- * @public - */ - Channels?: Channel[]; - - /** - *

Search criteria based on analysis outputs from Amazon Connect Contact Lens.

- * @public - */ - ContactAnalysis?: ContactAnalysis; - - /** - *

The list of initiation methods associated with contacts.

- * @public - */ - InitiationMethods?: ContactInitiationMethod[]; - - /** - *

The list of queue IDs associated with contacts.

- * @public - */ - QueueIds?: string[]; - - /** - *

The search criteria based on user-defined contact attributes that have been configured for - * contact search. For more information, see Search by customer contact - * attributes in the Amazon Connect Administrator Guide.

- * - *

To use SearchableContactAttributes in a search request, the - * GetContactAttributes action is required to perform an API request. For more - * information, see https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonconnect.html#amazonconnect-actions-as-permissionsActions defined by Amazon Connect.

- *
- * @public - */ - SearchableContactAttributes?: SearchableContactAttributes; -} - -/** - * @public - * @enum + * @internal */ -export const SortableFieldName = { - CHANNEL: "CHANNEL", - CONNECTED_TO_AGENT_TIMESTAMP: "CONNECTED_TO_AGENT_TIMESTAMP", - DISCONNECT_TIMESTAMP: "DISCONNECT_TIMESTAMP", - INITIATION_METHOD: "INITIATION_METHOD", - INITIATION_TIMESTAMP: "INITIATION_TIMESTAMP", - SCHEDULED_TIMESTAMP: "SCHEDULED_TIMESTAMP", -} as const; +export const InstanceFilterSensitiveLog = (obj: Instance): any => ({ + ...obj, + ...(obj.InstanceAlias && { InstanceAlias: SENSITIVE_STRING }), +}); /** - * @public + * @internal */ -export type SortableFieldName = (typeof SortableFieldName)[keyof typeof SortableFieldName]; +export const DescribeInstanceResponseFilterSensitiveLog = (obj: DescribeInstanceResponse): any => ({ + ...obj, + ...(obj.Instance && { Instance: InstanceFilterSensitiveLog(obj.Instance) }), +}); /** * @internal @@ -9721,59 +9771,3 @@ export const ReplicateInstanceRequestFilterSensitiveLog = (obj: ReplicateInstanc ...obj, ...(obj.ReplicaAlias && { ReplicaAlias: SENSITIVE_STRING }), }); - -/** - * @internal - */ -export const TranscriptCriteriaFilterSensitiveLog = (obj: TranscriptCriteria): any => ({ - ...obj, - ...(obj.SearchText && { SearchText: SENSITIVE_STRING }), -}); - -/** - * @internal - */ -export const TranscriptFilterSensitiveLog = (obj: Transcript): any => ({ - ...obj, - ...(obj.Criteria && { Criteria: obj.Criteria.map((item) => TranscriptCriteriaFilterSensitiveLog(item)) }), -}); - -/** - * @internal - */ -export const ContactAnalysisFilterSensitiveLog = (obj: ContactAnalysis): any => ({ - ...obj, - ...(obj.Transcript && { Transcript: TranscriptFilterSensitiveLog(obj.Transcript) }), -}); - -/** - * @internal - */ -export const SearchableContactAttributesCriteriaFilterSensitiveLog = ( - obj: SearchableContactAttributesCriteria -): any => ({ - ...obj, - ...(obj.Key && { Key: SENSITIVE_STRING }), - ...(obj.Values && { Values: SENSITIVE_STRING }), -}); - -/** - * @internal - */ -export const SearchableContactAttributesFilterSensitiveLog = (obj: SearchableContactAttributes): any => ({ - ...obj, - ...(obj.Criteria && { - Criteria: obj.Criteria.map((item) => SearchableContactAttributesCriteriaFilterSensitiveLog(item)), - }), -}); - -/** - * @internal - */ -export const SearchCriteriaFilterSensitiveLog = (obj: SearchCriteria): any => ({ - ...obj, - ...(obj.ContactAnalysis && { ContactAnalysis: ContactAnalysisFilterSensitiveLog(obj.ContactAnalysis) }), - ...(obj.SearchableContactAttributes && { - SearchableContactAttributes: SearchableContactAttributesFilterSensitiveLog(obj.SearchableContactAttributes), - }), -}); diff --git a/clients/client-connect/src/models/models_2.ts b/clients/client-connect/src/models/models_2.ts index 7f903f100dc0..c9302b7b3f73 100644 --- a/clients/client-connect/src/models/models_2.ts +++ b/clients/client-connect/src/models/models_2.ts @@ -6,6 +6,7 @@ import { ConnectServiceException as __BaseException } from "./ConnectServiceExce import { AgentAvailabilityTimer, AgentConfig, + AgentHierarchyGroups, AgentStatusState, AllowedCapabilities, Application, @@ -13,19 +14,22 @@ import { ContactFlowModuleState, ContactFlowState, ContactInitiationMethod, + CreatedByInfo, Evaluation, EvaluationAnswerData, EvaluationFormQuestion, EvaluationFormScoringStrategy, EvaluationFormVersionStatus, EvaluationNote, + FileStatusType, + FileUseCaseType, HoursOfOperation, HoursOfOperationConfig, - InstanceAttributeType, InstanceStorageConfig, InstanceStorageResourceType, MediaConcurrency, OutboundCallerConfig, + ParticipantRole, PredefinedAttributeValues, QuickConnectConfig, Reference, @@ -51,20 +55,374 @@ import { } from "./models_0"; import { + InstanceAttributeType, + PhoneNumberCountryCode, + PhoneNumberType, PredefinedAttribute, Prompt, Queue, QueueStatus, QuickConnect, RoutingProfile, - SearchCriteria, - SearchCriteriaFilterSensitiveLog, SignInConfig, - SortableFieldName, SortOrder, TelephonyConfig, } from "./models_1"; +/** + * @public + */ +export interface ReplicateInstanceResponse { + /** + *

The identifier of the replicated instance. You can find the instanceId in the + * ARN of the instance. The replicated instance has the same identifier as the instance it was + * replicated from.

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

The Amazon Resource Name (ARN) of the replicated instance.

+ * @public + */ + Arn?: string; +} + +/** + * @public + */ +export interface ResumeContactRequest { + /** + *

The identifier of the contact.

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

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

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

The identifier of the flow.

+ * @public + */ + ContactFlowId?: string; +} + +/** + * @public + */ +export interface ResumeContactResponse {} + +/** + * @public + */ +export interface ResumeContactRecordingRequest { + /** + *

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

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

The identifier of the contact.

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

The identifier of the contact. This is the identifier of the contact associated with the + * first interaction with the contact center.

+ * @public + */ + InitialContactId: string | undefined; +} + +/** + * @public + */ +export interface ResumeContactRecordingResponse {} + +/** + * @public + */ +export interface SearchAvailablePhoneNumbersRequest { + /** + *

The Amazon Resource Name (ARN) for Amazon Connect instances or traffic distribution groups that phone number inbound traffic is routed through. You must enter InstanceId or TargetArn.

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

The identifier of the Amazon Connect instance that phone numbers are claimed to. You + * can find the + * instance ID in the Amazon Resource Name (ARN) of the instance. You must enter InstanceId or TargetArn.

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

The ISO country code.

+ * @public + */ + PhoneNumberCountryCode: PhoneNumberCountryCode | undefined; + + /** + *

The type of phone number.

+ * @public + */ + PhoneNumberType: PhoneNumberType | undefined; + + /** + *

The prefix of the phone number. If provided, it must contain + as part of the country code.

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

The maximum number of results to return per page.

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

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.

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

Information about available phone numbers.

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

The phone number. Phone numbers are formatted [+] [country code] [subscriber number including area code].

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

The ISO country code.

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

The type of phone number.

+ * @public + */ + PhoneNumberType?: PhoneNumberType; +} + +/** + * @public + */ +export interface SearchAvailablePhoneNumbersResponse { + /** + *

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

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

A list of available phone numbers that you can claim to your Amazon Connect instance or traffic distribution group.

+ * @public + */ + AvailableNumbersList?: AvailableNumberSummary[]; +} + +/** + * @public + * @enum + */ +export const SearchContactsMatchType = { + MATCH_ALL: "MATCH_ALL", + MATCH_ANY: "MATCH_ANY", +} as const; + +/** + * @public + */ +export type SearchContactsMatchType = (typeof SearchContactsMatchType)[keyof typeof SearchContactsMatchType]; + +/** + *

A structure that defines search criteria base on words or phrases, participants in the + * Contact Lens conversational analytics transcript.

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

The participant role in a transcript

+ * @public + */ + ParticipantRole: ParticipantRole | undefined; + + /** + *

The words or phrases used to search within a transcript.

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

The match type combining search criteria using multiple search texts in a transcript + * criteria.

+ * @public + */ + MatchType: SearchContactsMatchType | undefined; +} + +/** + *

A structure that defines search criteria and matching logic to search for contacts by + * matching text with transcripts analyzed by Amazon Connect Contact Lens.

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

The list of search criteria based on Contact Lens conversational analytics + * transcript.

+ * @public + */ + Criteria: TranscriptCriteria[] | undefined; + + /** + *

The match type combining search criteria using multiple transcript criteria.

+ * @public + */ + MatchType?: SearchContactsMatchType; +} + +/** + *

A structure that defines search criteria for contacts using analysis outputs from Amazon + * Connect Contact Lens.

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

Search criteria based on transcript analyzed by Amazon Connect Contact Lens.

+ * @public + */ + Transcript?: Transcript; +} + +/** + *

The search criteria based on user-defned contact attribute key and values to search + * on.

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

The key containing a searchable user-defined contact attribute.

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

The list of values to search for within a user-defined contact attribute.

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

A structure that defines search criteria based on user-defined contact attributes that are + * configured for contact search.

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

The list of criteria based on user-defined contact attributes that are configured for + * contact search.

+ * @public + */ + Criteria: SearchableContactAttributesCriteria[] | undefined; + + /** + *

The match type combining search criteria using multiple searchable contact + * attributes.

+ * @public + */ + MatchType?: SearchContactsMatchType; +} + +/** + *

A structure of search criteria to be used to return contacts.

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

The identifiers of agents who handled the contacts.

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

The agent hierarchy groups of the agent at the time of handling the contact.

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

The list of channels associated with contacts.

+ * @public + */ + Channels?: Channel[]; + + /** + *

Search criteria based on analysis outputs from Amazon Connect Contact Lens.

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

The list of initiation methods associated with contacts.

+ * @public + */ + InitiationMethods?: ContactInitiationMethod[]; + + /** + *

The list of queue IDs associated with contacts.

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

The search criteria based on user-defined contact attributes that have been configured for + * contact search. For more information, see Search by customer contact + * attributes in the Amazon Connect Administrator Guide.

+ * + *

To use SearchableContactAttributes in a search request, the + * GetContactAttributes action is required to perform an API request. For more + * information, see https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonconnect.html#amazonconnect-actions-as-permissionsActions defined by Amazon Connect.

+ *
+ * @public + */ + SearchableContactAttributes?: SearchableContactAttributes; +} + +/** + * @public + * @enum + */ +export const SortableFieldName = { + CHANNEL: "CHANNEL", + CONNECTED_TO_AGENT_TIMESTAMP: "CONNECTED_TO_AGENT_TIMESTAMP", + DISCONNECT_TIMESTAMP: "DISCONNECT_TIMESTAMP", + INITIATION_METHOD: "INITIATION_METHOD", + INITIATION_TIMESTAMP: "INITIATION_TIMESTAMP", + SCHEDULED_TIMESTAMP: "SCHEDULED_TIMESTAMP", +} as const; + +/** + * @public + */ +export type SortableFieldName = (typeof SortableFieldName)[keyof typeof SortableFieldName]; + /** *

A structure that defineds the field name to sort by and a sort order.

* @public @@ -1462,6 +1820,143 @@ export interface SendChatIntegrationEventResponse { NewChatCreated?: boolean; } +/** + * @public + */ +export interface StartAttachedFileUploadRequest { + /** + *

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.

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

The unique identifier of the Connect instance.

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

A case-sensitive name of the attached file being uploaded.

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

The size of the attached file in bytes.

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

Optional override for the expiry of the pre-signed S3 URL in seconds.

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

The use case for the file.

+ * @public + */ + FileUseCaseType: FileUseCaseType | undefined; + + /** + *

The resource to which the attached file is (being) uploaded to. Cases are the only + * current supported resource.

+ * + *

This value must be a valid ARN.

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

Represents the identity that created the file.

+ * @public + */ + CreatedBy?: CreatedByInfo; + + /** + *

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

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

Fields required when uploading an attached file.

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

A pre-signed S3 URL that should be used for uploading the attached file.

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

The expiration time of the URL in ISO timestamp. It's specified in ISO 8601 format: + * yyyy-MM-ddThh:mm:ss.SSSZ. For example, + * 2019-11-08T02:41:28.172Z.

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

A map of headers that should be provided when uploading the attached file.

+ * @public + */ + HeadersToInclude?: Record; +} + +/** + * Response from StartAttachedFileUpload API. + * @public + */ +export interface StartAttachedFileUploadResponse { + /** + *

The unique identifier of the attached file resource (ARN).

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

The unique identifier of the attached file resource.

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

The time of Creation of the file resource as an ISO timestamp. It's specified in ISO 8601 + * format: yyyy-MM-ddThh:mm:ss.SSSZ. For example, + * 2024-05-03T02:41:28.172Z.

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

The current status of the attached file.

+ * @public + */ + FileStatus?: FileStatusType; + + /** + *

Represents the identity that created the file.

+ * @public + */ + CreatedBy?: CreatedByInfo; + + /** + *

Information to be used while uploading the attached file.

+ * @public + */ + UploadUrlMetadata?: UploadUrlMetadata; +} + /** *

A chat message.

* @public @@ -2905,6 +3400,20 @@ export interface UpdateContactAttributesRequest { * other contact attributes.

*

You can have up to 32,768 UTF-8 bytes across all attributes for a contact. Attribute keys * can include only alphanumeric, dash, and underscore characters.

+ *

When the attributes for a contact exceed 32 KB, the contact is routed down the Error branch + * of the flow. As a mitigation, consider the following options:

+ *
    + *
  • + *

    Remove unnecessary attributes by setting their values to empty.

    + *
  • + *
  • + *

    If the attributes are only used in one flow and don't need to be referred to outside of + * that flow (for example, by a Lambda or another flow), then use flow attributes. This way you + * aren't needlessly persisting the 32 KB of information from one flow to another. For more + * information, see Flow block: Set contact + * attributes in the Amazon Connect Administrator Guide.

    + *
  • + *
* @public */ Attributes: Record | undefined; @@ -5515,6 +6024,62 @@ export interface SearchUsersRequest { SearchCriteria?: UserSearchCriteria; } +/** + * @internal + */ +export const TranscriptCriteriaFilterSensitiveLog = (obj: TranscriptCriteria): any => ({ + ...obj, + ...(obj.SearchText && { SearchText: SENSITIVE_STRING }), +}); + +/** + * @internal + */ +export const TranscriptFilterSensitiveLog = (obj: Transcript): any => ({ + ...obj, + ...(obj.Criteria && { Criteria: obj.Criteria.map((item) => TranscriptCriteriaFilterSensitiveLog(item)) }), +}); + +/** + * @internal + */ +export const ContactAnalysisFilterSensitiveLog = (obj: ContactAnalysis): any => ({ + ...obj, + ...(obj.Transcript && { Transcript: TranscriptFilterSensitiveLog(obj.Transcript) }), +}); + +/** + * @internal + */ +export const SearchableContactAttributesCriteriaFilterSensitiveLog = ( + obj: SearchableContactAttributesCriteria +): any => ({ + ...obj, + ...(obj.Key && { Key: SENSITIVE_STRING }), + ...(obj.Values && { Values: SENSITIVE_STRING }), +}); + +/** + * @internal + */ +export const SearchableContactAttributesFilterSensitiveLog = (obj: SearchableContactAttributes): any => ({ + ...obj, + ...(obj.Criteria && { + Criteria: obj.Criteria.map((item) => SearchableContactAttributesCriteriaFilterSensitiveLog(item)), + }), +}); + +/** + * @internal + */ +export const SearchCriteriaFilterSensitiveLog = (obj: SearchCriteria): any => ({ + ...obj, + ...(obj.ContactAnalysis && { ContactAnalysis: ContactAnalysisFilterSensitiveLog(obj.ContactAnalysis) }), + ...(obj.SearchableContactAttributes && { + SearchableContactAttributes: SearchableContactAttributesFilterSensitiveLog(obj.SearchableContactAttributes), + }), +}); + /** * @internal */ diff --git a/clients/client-connect/src/protocols/Aws_restJson1.ts b/clients/client-connect/src/protocols/Aws_restJson1.ts index 6fc908c365e2..2596fa735c0b 100644 --- a/clients/client-connect/src/protocols/Aws_restJson1.ts +++ b/clients/client-connect/src/protocols/Aws_restJson1.ts @@ -95,12 +95,20 @@ import { BatchDisassociateAnalyticsDataSetCommandInput, BatchDisassociateAnalyticsDataSetCommandOutput, } from "../commands/BatchDisassociateAnalyticsDataSetCommand"; +import { + BatchGetAttachedFileMetadataCommandInput, + BatchGetAttachedFileMetadataCommandOutput, +} from "../commands/BatchGetAttachedFileMetadataCommand"; import { BatchGetFlowAssociationCommandInput, BatchGetFlowAssociationCommandOutput, } from "../commands/BatchGetFlowAssociationCommand"; import { BatchPutContactCommandInput, BatchPutContactCommandOutput } from "../commands/BatchPutContactCommand"; import { ClaimPhoneNumberCommandInput, ClaimPhoneNumberCommandOutput } from "../commands/ClaimPhoneNumberCommand"; +import { + CompleteAttachedFileUploadCommandInput, + CompleteAttachedFileUploadCommandOutput, +} from "../commands/CompleteAttachedFileUploadCommand"; import { CreateAgentStatusCommandInput, CreateAgentStatusCommandOutput } from "../commands/CreateAgentStatusCommand"; import { CreateContactFlowCommandInput, CreateContactFlowCommandOutput } from "../commands/CreateContactFlowCommand"; import { @@ -159,6 +167,7 @@ import { DeactivateEvaluationFormCommandInput, DeactivateEvaluationFormCommandOutput, } from "../commands/DeactivateEvaluationFormCommand"; +import { DeleteAttachedFileCommandInput, DeleteAttachedFileCommandOutput } from "../commands/DeleteAttachedFileCommand"; import { DeleteContactEvaluationCommandInput, DeleteContactEvaluationCommandOutput, @@ -327,6 +336,7 @@ import { DisassociateUserProficienciesCommandOutput, } from "../commands/DisassociateUserProficienciesCommand"; import { DismissUserContactCommandInput, DismissUserContactCommandOutput } from "../commands/DismissUserContactCommand"; +import { GetAttachedFileCommandInput, GetAttachedFileCommandOutput } from "../commands/GetAttachedFileCommand"; import { GetContactAttributesCommandInput, GetContactAttributesCommandOutput, @@ -516,6 +526,10 @@ import { SendChatIntegrationEventCommandInput, SendChatIntegrationEventCommandOutput, } from "../commands/SendChatIntegrationEventCommand"; +import { + StartAttachedFileUploadCommandInput, + StartAttachedFileUploadCommandOutput, +} from "../commands/StartAttachedFileUploadCommand"; import { StartChatContactCommandInput, StartChatContactCommandOutput } from "../commands/StartChatContactCommand"; import { StartContactEvaluationCommandInput, @@ -732,6 +746,7 @@ import { ContactInitiationMethod, ContactState, CreateCaseActionDefinition, + CreatedByInfo, CrossChannelBehavior, Distribution, DuplicateResourceException, @@ -762,7 +777,6 @@ import { HoursOfOperationConfig, HoursOfOperationTimeSlice, IdempotencyException, - Instance, InstanceStorageConfig, InternalServiceException, InvalidContactFlowException, @@ -823,7 +837,6 @@ import { } from "../models/models_0"; import { ConflictException, - ContactAnalysis, ContactFilter, Credentials, CurrentMetric, @@ -845,6 +858,7 @@ import { HistoricalMetricData, HistoricalMetricResult, HoursOfOperationSummary, + Instance, InstanceSummary, IntervalDetails, MetricDataV2, @@ -873,9 +887,6 @@ import { RoutingProfileSummary, Rule, RuleSummary, - SearchableContactAttributes, - SearchableContactAttributesCriteria, - SearchCriteria, SecurityKey, SecurityProfile, SecurityProfileSummary, @@ -885,8 +896,6 @@ import { TelephonyConfig, Threshold, ThresholdV2, - Transcript, - TranscriptCriteria, User, UserData, UserDataFilters, @@ -902,6 +911,7 @@ import { ChatMessage, ChatParticipantRoleConfig, ChatStreamingConfiguration, + ContactAnalysis, ContactNotFoundException, ContactSearchSummary, ContactSearchSummaryAgentInfo, @@ -937,7 +947,10 @@ import { ResourceTagsSearchCriteria, RoutingProfileSearchCriteria, RoutingProfileSearchFilter, + SearchableContactAttributes, + SearchableContactAttributesCriteria, SearchContactsTimeRange, + SearchCriteria, SecurityProfileSearchCriteria, SecurityProfilesSearchFilter, SegmentAttributeValue, @@ -945,6 +958,8 @@ import { StringCondition, TagCondition, TagSearchCondition, + Transcript, + TranscriptCriteria, UpdateParticipantRoleConfigChannelInfo, UserSearchCriteria, UserSearchFilter, @@ -1357,6 +1372,32 @@ export const se_BatchDisassociateAnalyticsDataSetCommand = async ( return b.build(); }; +/** + * serializeAws_restJson1BatchGetAttachedFileMetadataCommand + */ +export const se_BatchGetAttachedFileMetadataCommand = async ( + input: BatchGetAttachedFileMetadataCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const b = rb(input, context); + const headers: any = { + "content-type": "application/json", + }; + b.bp("/attached-files/{InstanceId}"); + b.p("InstanceId", () => input.InstanceId!, "{InstanceId}", false); + const query: any = map({ + [_aRA]: [, __expectNonNull(input[_ARA]!, `AssociatedResourceArn`)], + }); + let body: any; + body = JSON.stringify( + take(input, { + FileIds: (_) => _json(_), + }) + ); + b.m("POST").h(headers).q(query).b(body); + return b.build(); +}; + /** * serializeAws_restJson1BatchGetFlowAssociationCommand */ @@ -1432,6 +1473,26 @@ export const se_ClaimPhoneNumberCommand = async ( return b.build(); }; +/** + * serializeAws_restJson1CompleteAttachedFileUploadCommand + */ +export const se_CompleteAttachedFileUploadCommand = async ( + input: CompleteAttachedFileUploadCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const b = rb(input, context); + const headers: any = {}; + b.bp("/attached-files/{InstanceId}/{FileId}"); + b.p("InstanceId", () => input.InstanceId!, "{InstanceId}", false); + b.p("FileId", () => input.FileId!, "{FileId}", false); + const query: any = map({ + [_aRA]: [, __expectNonNull(input[_ARA]!, `AssociatedResourceArn`)], + }); + let body: any; + b.m("POST").h(headers).q(query).b(body); + return b.build(); +}; + /** * serializeAws_restJson1CreateAgentStatusCommand */ @@ -2108,6 +2169,26 @@ export const se_DeactivateEvaluationFormCommand = async ( return b.build(); }; +/** + * serializeAws_restJson1DeleteAttachedFileCommand + */ +export const se_DeleteAttachedFileCommand = async ( + input: DeleteAttachedFileCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const b = rb(input, context); + const headers: any = {}; + b.bp("/attached-files/{InstanceId}/{FileId}"); + b.p("InstanceId", () => input.InstanceId!, "{InstanceId}", false); + b.p("FileId", () => input.FileId!, "{FileId}", false); + const query: any = map({ + [_aRA]: [, __expectNonNull(input[_ARA]!, `AssociatedResourceArn`)], + }); + let body: any; + b.m("DELETE").h(headers).q(query).b(body); + return b.build(); +}; + /** * serializeAws_restJson1DeleteContactEvaluationCommand */ @@ -3191,6 +3272,27 @@ export const se_DismissUserContactCommand = async ( return b.build(); }; +/** + * serializeAws_restJson1GetAttachedFileCommand + */ +export const se_GetAttachedFileCommand = async ( + input: GetAttachedFileCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const b = rb(input, context); + const headers: any = {}; + b.bp("/attached-files/{InstanceId}/{FileId}"); + b.p("InstanceId", () => input.InstanceId!, "{InstanceId}", false); + b.p("FileId", () => input.FileId!, "{FileId}", false); + const query: any = map({ + [_uEIS]: [() => input.UrlExpiryInSeconds !== void 0, () => input[_UEIS]!.toString()], + [_aRA]: [, __expectNonNull(input[_ARA]!, `AssociatedResourceArn`)], + }); + let body: any; + b.m("GET").h(headers).q(query).b(body); + return b.build(); +}; + /** * serializeAws_restJson1GetContactAttributesCommand */ @@ -4868,6 +4970,38 @@ export const se_SendChatIntegrationEventCommand = async ( return b.build(); }; +/** + * serializeAws_restJson1StartAttachedFileUploadCommand + */ +export const se_StartAttachedFileUploadCommand = async ( + input: StartAttachedFileUploadCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const b = rb(input, context); + const headers: any = { + "content-type": "application/json", + }; + b.bp("/attached-files/{InstanceId}"); + b.p("InstanceId", () => input.InstanceId!, "{InstanceId}", false); + const query: any = map({ + [_aRA]: [, __expectNonNull(input[_ARA]!, `AssociatedResourceArn`)], + }); + let body: any; + body = JSON.stringify( + take(input, { + ClientToken: [true, (_) => _ ?? generateIdempotencyToken()], + CreatedBy: (_) => _json(_), + FileName: [], + FileSizeInBytes: [], + FileUseCaseType: [], + Tags: (_) => _json(_), + UrlExpiryInSeconds: [], + }) + ); + b.m("PUT").h(headers).q(query).b(body); + return b.build(); +}; + /** * serializeAws_restJson1StartChatContactCommand */ @@ -6785,6 +6919,28 @@ export const de_BatchDisassociateAnalyticsDataSetCommand = async ( return contents; }; +/** + * deserializeAws_restJson1BatchGetAttachedFileMetadataCommand + */ +export const de_BatchGetAttachedFileMetadataCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return de_CommandError(output, context); + } + const contents: any = map({ + $metadata: deserializeMetadata(output), + }); + const data: Record = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); + const doc = take(data, { + Errors: _json, + Files: _json, + }); + Object.assign(contents, doc); + return contents; +}; + /** * deserializeAws_restJson1BatchGetFlowAssociationCommand */ @@ -6850,6 +7006,23 @@ export const de_ClaimPhoneNumberCommand = async ( return contents; }; +/** + * deserializeAws_restJson1CompleteAttachedFileUploadCommand + */ +export const de_CompleteAttachedFileUploadCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return de_CommandError(output, context); + } + const contents: any = map({ + $metadata: deserializeMetadata(output), + }); + await collectBody(output.body, context); + return contents; +}; + /** * deserializeAws_restJson1CreateAgentStatusCommand */ @@ -7394,6 +7567,23 @@ export const de_DeactivateEvaluationFormCommand = async ( return contents; }; +/** + * deserializeAws_restJson1DeleteAttachedFileCommand + */ +export const de_DeleteAttachedFileCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return de_CommandError(output, context); + } + const contents: any = map({ + $metadata: deserializeMetadata(output), + }); + await collectBody(output.body, context); + return contents; +}; + /** * deserializeAws_restJson1DeleteContactEvaluationCommand */ @@ -8517,6 +8707,37 @@ export const de_DismissUserContactCommand = async ( return contents; }; +/** + * deserializeAws_restJson1GetAttachedFileCommand + */ +export const de_GetAttachedFileCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return de_CommandError(output, context); + } + const contents: any = map({ + $metadata: deserializeMetadata(output), + }); + const data: Record = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); + const doc = take(data, { + AssociatedResourceArn: __expectString, + CreatedBy: (_) => _json(__expectUnion(_)), + CreationTime: __expectString, + DownloadUrlMetadata: _json, + FileArn: __expectString, + FileId: __expectString, + FileName: __expectString, + FileSizeInBytes: __expectLong, + FileStatus: __expectString, + FileUseCaseType: __expectString, + Tags: _json, + }); + Object.assign(contents, doc); + return contents; +}; + /** * deserializeAws_restJson1GetContactAttributesCommand */ @@ -10182,6 +10403,32 @@ export const de_SendChatIntegrationEventCommand = async ( return contents; }; +/** + * deserializeAws_restJson1StartAttachedFileUploadCommand + */ +export const de_StartAttachedFileUploadCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return de_CommandError(output, context); + } + const contents: any = map({ + $metadata: deserializeMetadata(output), + }); + const data: Record = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); + const doc = take(data, { + CreatedBy: (_) => _json(__expectUnion(_)), + CreationTime: __expectString, + FileArn: __expectString, + FileId: __expectString, + FileStatus: __expectString, + UploadUrlMetadata: _json, + }); + Object.assign(contents, doc); + return contents; +}; + /** * deserializeAws_restJson1StartChatContactCommand */ @@ -11658,6 +11905,7 @@ const de_InvalidRequestExceptionRes = async ( const data: any = parsedOutput.body; const doc = take(data, { Message: __expectString, + Reason: (_) => _json(__expectUnion(_)), }); Object.assign(contents, doc); const exception = new InvalidRequestException({ @@ -11999,6 +12247,8 @@ const se_CreateCaseActionDefinition = (input: CreateCaseActionDefinition, contex }); }; +// se_CreatedByInfo omitted. + // se_CrossChannelBehavior omitted. // se_CurrentMetric omitted. @@ -12172,6 +12422,8 @@ const se_FieldValueUnion = (input: FieldValueUnion, context: __SerdeContext): an }); }; +// se_FileIdList omitted. + // se_Filters omitted. // se_FiltersV2List omitted. @@ -12871,6 +13123,14 @@ const de_AgentStatusSummaryList = (output: any, context: __SerdeContext): AgentS // de_AssignContactCategoryActionDefinition omitted. +// de_AttachedFile omitted. + +// de_AttachedFileError omitted. + +// de_AttachedFileErrorsList omitted. + +// de_AttachedFilesList omitted. + // de_AttachmentReference omitted. // de_Attendee omitted. @@ -13001,6 +13261,8 @@ const de_CreateCaseActionDefinition = (output: any, context: __SerdeContext): Cr }) as any; }; +// de_CreatedByInfo omitted. + /** * deserializeAws_restJson1Credentials */ @@ -13077,6 +13339,8 @@ const de_CurrentMetricResults = (output: any, context: __SerdeContext): CurrentM // de_DistributionList omitted. +// de_DownloadUrlMetadata omitted. + // de_EmailReference omitted. // de_EmptyFieldValue omitted. @@ -13704,6 +13968,8 @@ const de_InstanceSummaryList = (output: any, context: __SerdeContext): InstanceS // de_IntegrationAssociationSummaryList omitted. +// de_InvalidRequestExceptionReason omitted. + // de_InvisibleFieldInfo omitted. // de_InvisibleTaskTemplateFields omitted. @@ -14572,6 +14838,10 @@ const de_UpdateCaseActionDefinition = (output: any, context: __SerdeContext): Up }) as any; }; +// de_UploadUrlMetadata omitted. + +// de_UrlMetadataSignedHeaders omitted. + // de_UrlReference omitted. // de_UseCase omitted. @@ -14791,6 +15061,7 @@ const isSerializableHeaderValue = (value: any): boolean => (!Object.getOwnPropertyNames(value).includes("length") || value.length != 0) && (!Object.getOwnPropertyNames(value).includes("size") || value.size != 0); +const _ARA = "AssociatedResourceArn"; const _AST = "AgentStatusTypes"; const _BN = "BotName"; const _CFMS = "ContactFlowModuleState"; @@ -14821,7 +15092,9 @@ const _S = "Status"; const _SV = "SnapshotVersion"; const _T = "Type"; const _TK = "TagKeys"; +const _UEIS = "UrlExpiryInSeconds"; const _UI = "UserId"; +const _aRA = "associatedResourceArn"; const _bN = "botName"; const _cFT = "contactFlowTypes"; const _cI = "contactId"; @@ -14848,4 +15121,5 @@ const _sV = "snapshotVersion"; const _st = "status"; const _t = "type"; const _tK = "tagKeys"; +const _uEIS = "urlExpiryInSeconds"; const _v = "version"; diff --git a/codegen/sdk-codegen/aws-models/connect.json b/codegen/sdk-codegen/aws-models/connect.json index 045fad09a48c..e629cbd848b7 100644 --- a/codegen/sdk-codegen/aws-models/connect.json +++ b/codegen/sdk-codegen/aws-models/connect.json @@ -787,6 +787,9 @@ { "target": "com.amazonaws.connect#BatchDisassociateAnalyticsDataSet" }, + { + "target": "com.amazonaws.connect#BatchGetAttachedFileMetadata" + }, { "target": "com.amazonaws.connect#BatchGetFlowAssociation" }, @@ -796,6 +799,9 @@ { "target": "com.amazonaws.connect#ClaimPhoneNumber" }, + { + "target": "com.amazonaws.connect#CompleteAttachedFileUpload" + }, { "target": "com.amazonaws.connect#CreateAgentStatus" }, @@ -871,6 +877,9 @@ { "target": "com.amazonaws.connect#DeactivateEvaluationForm" }, + { + "target": "com.amazonaws.connect#DeleteAttachedFile" + }, { "target": "com.amazonaws.connect#DeleteContactEvaluation" }, @@ -1051,6 +1060,9 @@ { "target": "com.amazonaws.connect#DismissUserContact" }, + { + "target": "com.amazonaws.connect#GetAttachedFile" + }, { "target": "com.amazonaws.connect#GetContactAttributes" }, @@ -1276,6 +1288,9 @@ { "target": "com.amazonaws.connect#SendChatIntegrationEvent" }, + { + "target": "com.amazonaws.connect#StartAttachedFileUpload" + }, { "target": "com.amazonaws.connect#StartChatContact" }, @@ -2850,7 +2865,7 @@ "ResourceType": { "target": "com.amazonaws.connect#InstanceStorageResourceType", "traits": { - "smithy.api#documentation": "

A valid resource type. To enable streaming\n for real-time analysis of contacts, use the following types:

\n
    \n
  • \n

    For chat contacts, use REAL_TIME_CONTACT_ANALYSIS_CHAT_SEGMENTS.

    \n
  • \n
  • \n

    For voice contacts, use REAL_TIME_CONTACT_ANALYSIS_VOICE_SEGMENTS.

    \n
  • \n
\n \n

\n REAL_TIME_CONTACT_ANALYSIS_SEGMENTS is deprecated, but it is still\n supported and will apply only to VOICE channel contacts. Use\n REAL_TIME_CONTACT_ANALYSIS_VOICE_SEGMENTS for voice contacts moving forward.

\n

If you have previously associated a stream with REAL_TIME_CONTACT_ANALYSIS_SEGMENTS, no\n action is needed to update the stream to REAL_TIME_CONTACT_ANALYSIS_VOICE_SEGMENTS.

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

A valid resource type. To enable streaming\n for real-time analysis of contacts, use the following types:

\n
    \n
  • \n

    For chat contacts, use REAL_TIME_CONTACT_ANALYSIS_CHAT_SEGMENTS.

    \n
  • \n
  • \n

    For voice contacts, use REAL_TIME_CONTACT_ANALYSIS_VOICE_SEGMENTS.

    \n
  • \n
\n \n

\n REAL_TIME_CONTACT_ANALYSIS_SEGMENTS is deprecated, but it is still supported\n and will apply only to VOICE channel contacts. Use\n REAL_TIME_CONTACT_ANALYSIS_VOICE_SEGMENTS for voice contacts moving\n forward.

\n

If you have previously associated a stream with\n REAL_TIME_CONTACT_ANALYSIS_SEGMENTS, no action is needed to update the stream to\n REAL_TIME_CONTACT_ANALYSIS_VOICE_SEGMENTS.

\n
", "smithy.api#required": {} } }, @@ -3429,6 +3444,141 @@ } } }, + "com.amazonaws.connect#AttachedFile": { + "type": "structure", + "members": { + "CreationTime": { + "target": "com.amazonaws.connect#ISO8601Datetime", + "traits": { + "smithy.api#documentation": "

The time of Creation of the file resource as an ISO timestamp. It's specified in ISO 8601\n format: yyyy-MM-ddThh:mm:ss.SSSZ. For example,\n 2024-05-03T02:41:28.172Z.

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

The unique identifier of the attached file resource (ARN).

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

The unique identifier of the attached file resource.

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

A case-sensitive name of the attached file being uploaded.

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

The size of the attached file in bytes.

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

The current status of the attached file.

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

Represents the identity that created the file.

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

The use case for the file.

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

The resource to which the attached file is (being) uploaded to. Cases are the only\n current supported resource.

\n \n

This value must be a valid ARN.

\n
" + } + }, + "Tags": { + "target": "com.amazonaws.connect#TagMap", + "traits": { + "smithy.api#documentation": "

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

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

Information about the attached file.

" + } + }, + "com.amazonaws.connect#AttachedFileError": { + "type": "structure", + "members": { + "ErrorCode": { + "target": "com.amazonaws.connect#ErrorCode", + "traits": { + "smithy.api#documentation": "

Status code describing the failure.

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

Why the attached file couldn't be retrieved.

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

The unique identifier of the attached file resource.

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

Error describing a failure to retrieve attached file metadata through BatchGetAttachedFileMetadata action.

" + } + }, + "com.amazonaws.connect#AttachedFileErrorsList": { + "type": "list", + "member": { + "target": "com.amazonaws.connect#AttachedFileError" + } + }, + "com.amazonaws.connect#AttachedFileInvalidRequestExceptionReason": { + "type": "enum", + "members": { + "INVALID_FILE_SIZE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "INVALID_FILE_SIZE" + } + }, + "INVALID_FILE_TYPE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "INVALID_FILE_TYPE" + } + }, + "INVALID_FILE_NAME": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "INVALID_FILE_NAME" + } + } + } + }, + "com.amazonaws.connect#AttachedFilesList": { + "type": "list", + "member": { + "target": "com.amazonaws.connect#AttachedFile" + } + }, "com.amazonaws.connect#AttachmentName": { "type": "string", "traits": { @@ -3791,6 +3941,91 @@ "smithy.api#output": {} } }, + "com.amazonaws.connect#BatchGetAttachedFileMetadata": { + "type": "operation", + "input": { + "target": "com.amazonaws.connect#BatchGetAttachedFileMetadataRequest" + }, + "output": { + "target": "com.amazonaws.connect#BatchGetAttachedFileMetadataResponse" + }, + "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": "

Allows you to retrieve metadata about multiple attached files on an associated resource.\n Each attached file provided in the input list must be associated with the input\n AssociatedResourceArn.

", + "smithy.api#http": { + "method": "POST", + "uri": "/attached-files/{InstanceId}", + "code": 200 + } + } + }, + "com.amazonaws.connect#BatchGetAttachedFileMetadataRequest": { + "type": "structure", + "members": { + "FileIds": { + "target": "com.amazonaws.connect#FileIdList", + "traits": { + "smithy.api#documentation": "

The unique identifiers of the attached file resource.

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

The unique identifier of the Connect instance.

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

The resource to which the attached file is (being) uploaded to. Cases are the only\n current supported resource.

\n \n

This value must be a valid ARN.

\n
", + "smithy.api#httpQuery": "associatedResourceArn", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.connect#BatchGetAttachedFileMetadataResponse": { + "type": "structure", + "members": { + "Files": { + "target": "com.amazonaws.connect#AttachedFilesList", + "traits": { + "smithy.api#documentation": "

List of attached files that were successfully retrieved.

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

List of errors of attached files that could not be retrieved.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.connect#BatchGetFlowAssociation": { "type": "operation", "input": { @@ -4423,6 +4658,81 @@ } } }, + "com.amazonaws.connect#CompleteAttachedFileUpload": { + "type": "operation", + "input": { + "target": "com.amazonaws.connect#CompleteAttachedFileUploadRequest" + }, + "output": { + "target": "com.amazonaws.connect#CompleteAttachedFileUploadResponse" + }, + "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": "

Allows you to confirm that the attached file has been uploaded using the pre-signed URL\n provided in the StartAttachedFileUpload API.

", + "smithy.api#http": { + "method": "POST", + "uri": "/attached-files/{InstanceId}/{FileId}", + "code": 200 + } + } + }, + "com.amazonaws.connect#CompleteAttachedFileUploadRequest": { + "type": "structure", + "members": { + "InstanceId": { + "target": "com.amazonaws.connect#InstanceId", + "traits": { + "smithy.api#documentation": "

The unique identifier of the Connect instance.

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

The unique identifier of the attached file resource.

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

The resource to which the attached file is (being) uploaded to. Cases are the only\n current supported resource.

\n \n

This value must be a valid ARN.

\n
", + "smithy.api#httpQuery": "associatedResourceArn", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "Request to CompleteAttachedFileUpload API", + "smithy.api#input": {} + } + }, + "com.amazonaws.connect#CompleteAttachedFileUploadResponse": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#documentation": "Response from CompleteAttachedFileUpload API", + "smithy.api#output": {} + } + }, "com.amazonaws.connect#Concurrency": { "type": "integer", "traits": { @@ -8121,6 +8431,26 @@ "smithy.api#output": {} } }, + "com.amazonaws.connect#CreatedByInfo": { + "type": "union", + "members": { + "ConnectUserArn": { + "target": "com.amazonaws.connect#ARN", + "traits": { + "smithy.api#documentation": "

An agent ARN representing a connect user.

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

STS or IAM ARN representing the identity of API Caller. SDK users cannot populate this and\n this value is calculated automatically if ConnectUserArn is not provided.

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

Information on the identity that created the file.

" + } + }, "com.amazonaws.connect#Credentials": { "type": "structure", "members": { @@ -8545,6 +8875,81 @@ } } }, + "com.amazonaws.connect#DeleteAttachedFile": { + "type": "operation", + "input": { + "target": "com.amazonaws.connect#DeleteAttachedFileRequest" + }, + "output": { + "target": "com.amazonaws.connect#DeleteAttachedFileResponse" + }, + "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": "

Deletes an attached file along with the underlying S3 Object.

\n \n

The attached file is permanently deleted if S3 bucket\n versioning is not enabled.

\n
", + "smithy.api#http": { + "method": "DELETE", + "uri": "/attached-files/{InstanceId}/{FileId}", + "code": 200 + } + } + }, + "com.amazonaws.connect#DeleteAttachedFileRequest": { + "type": "structure", + "members": { + "InstanceId": { + "target": "com.amazonaws.connect#InstanceId", + "traits": { + "smithy.api#documentation": "

The unique identifier of the Connect instance.

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

The unique identifier of the attached file resource.

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

The resource to which the attached file is (being) uploaded to. Cases are the only\n current supported resource.

\n \n

This value must be a valid ARN.

\n
", + "smithy.api#httpQuery": "associatedResourceArn", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "Request to DeleteAttachedFile API", + "smithy.api#input": {} + } + }, + "com.amazonaws.connect#DeleteAttachedFileResponse": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#documentation": "Response from DeleteAttachedFile API", + "smithy.api#output": {} + } + }, "com.amazonaws.connect#DeleteContactEvaluation": { "type": "operation", "input": { @@ -12755,6 +13160,26 @@ "com.amazonaws.connect#Double": { "type": "double" }, + "com.amazonaws.connect#DownloadUrlMetadata": { + "type": "structure", + "members": { + "Url": { + "target": "com.amazonaws.connect#MetadataUrl", + "traits": { + "smithy.api#documentation": "

A pre-signed URL that should be used to download the attached file.

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

The expiration time of the URL in ISO timestamp. It's specified in ISO 8601 format:\n yyyy-MM-ddThh:mm:ss.SSSZ. For example, 2019-11-08T02:41:28.172Z.

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

Metadata used to download the attached file.

" + } + }, "com.amazonaws.connect#DuplicateResourceException": { "type": "structure", "members": { @@ -12893,6 +13318,12 @@ } } }, + "com.amazonaws.connect#ErrorCode": { + "type": "string" + }, + "com.amazonaws.connect#ErrorMessage": { + "type": "string" + }, "com.amazonaws.connect#ErrorResult": { "type": "structure", "members": { @@ -14493,6 +14924,84 @@ "target": "com.amazonaws.connect#FieldValue" } }, + "com.amazonaws.connect#FileId": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 256 + } + } + }, + "com.amazonaws.connect#FileIdList": { + "type": "list", + "member": { + "target": "com.amazonaws.connect#FileId" + }, + "traits": { + "smithy.api#length": { + "min": 1 + } + } + }, + "com.amazonaws.connect#FileName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 256 + }, + "smithy.api#pattern": "^\\P{C}*$" + } + }, + "com.amazonaws.connect#FileSizeInBytes": { + "type": "long", + "traits": { + "smithy.api#range": { + "min": 1 + } + } + }, + "com.amazonaws.connect#FileStatusType": { + "type": "enum", + "members": { + "APPROVED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "APPROVED" + } + }, + "REJECTED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "REJECTED" + } + }, + "PROCESSING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PROCESSING" + } + }, + "FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "FAILED" + } + } + } + }, + "com.amazonaws.connect#FileUseCaseType": { + "type": "enum", + "members": { + "ATTACHMENT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ATTACHMENT" + } + } + } + }, "com.amazonaws.connect#FilterV2": { "type": "structure", "members": { @@ -14627,6 +15136,156 @@ "target": "com.amazonaws.connect#FunctionArn" } }, + "com.amazonaws.connect#GetAttachedFile": { + "type": "operation", + "input": { + "target": "com.amazonaws.connect#GetAttachedFileRequest" + }, + "output": { + "target": "com.amazonaws.connect#GetAttachedFileResponse" + }, + "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": "

Provides a pre-signed URL for download of an approved attached file. This API also returns\n metadata about the attached file. It will only return a downloadURL if the status of the attached\n file is APPROVED.

", + "smithy.api#http": { + "method": "GET", + "uri": "/attached-files/{InstanceId}/{FileId}", + "code": 200 + } + } + }, + "com.amazonaws.connect#GetAttachedFileRequest": { + "type": "structure", + "members": { + "InstanceId": { + "target": "com.amazonaws.connect#InstanceId", + "traits": { + "smithy.api#documentation": "

The unique identifier of the Connect instance.

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

The unique identifier of the attached file resource.

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

Optional override for the expiry of the pre-signed S3 URL in seconds.

", + "smithy.api#httpQuery": "urlExpiryInSeconds" + } + }, + "AssociatedResourceArn": { + "target": "com.amazonaws.connect#ARN", + "traits": { + "smithy.api#documentation": "

The resource to which the attached file is (being) uploaded to. Cases are the only\n current supported resource.

\n \n

This value must be a valid ARN.

\n
", + "smithy.api#httpQuery": "associatedResourceArn", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "Request to GetAttachedFile API.", + "smithy.api#input": {} + } + }, + "com.amazonaws.connect#GetAttachedFileResponse": { + "type": "structure", + "members": { + "FileArn": { + "target": "com.amazonaws.connect#ARN", + "traits": { + "smithy.api#documentation": "

The unique identifier of the attached file resource (ARN).

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

The unique identifier of the attached file resource.

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

The time of Creation of the file resource as an ISO timestamp. It's specified in ISO 8601\n format: yyyy-MM-ddThh:mm:ss.SSSZ. For example,\n 2024-05-03T02:41:28.172Z.

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

The current status of the attached file.

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

A case-sensitive name of the attached file being uploaded.

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

The size of the attached file in bytes.

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

The resource to which the attached file is (being) uploaded to. Cases are the only\n current supported resource.

\n \n

This value must be a valid ARN.

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

The use case for the file.

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

Represents the identity that created the file.

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

URL and expiry to be used when downloading the attached file.

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

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

" + } + } + }, + "traits": { + "smithy.api#documentation": "Response from GetAttachedFile API.", + "smithy.api#output": {} + } + }, "com.amazonaws.connect#GetContactAttributes": { "type": "operation", "input": { @@ -15304,7 +15963,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
ABANDONMENT_RATE
\n
\n

Unit: Percent

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Feature,\n contact/segmentAttributes/connect:Subtype

\n

UI name: Abandonment rate\n

\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

UI name: Adherent time\n

\n
\n
AGENT_ANSWER_RATE
\n
\n

Unit: Percent

\n

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

\n

UI name: Agent answer rate\n

\n
\n
AGENT_NON_ADHERENT_TIME
\n
\n

Unit: Seconds

\n

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

\n

UI name: Non-adherent time\n

\n
\n
AGENT_NON_RESPONSE
\n
\n

Unit: Count

\n

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

\n

UI name: Agent\n non-response\n

\n
\n
AGENT_NON_RESPONSE_WITHOUT_CUSTOMER_ABANDONS
\n
\n

Unit: Count

\n

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

\n

Data for this metric is available starting from October 1, 2023 0:00:00 GMT.

\n

UI name: Agent non-response without customer abandons\n

\n
\n
AGENT_OCCUPANCY
\n
\n

Unit: Percentage

\n

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

\n

UI name: Occupancy\n

\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

UI name: Adherence\n

\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

UI name: Scheduled time\n

\n
\n
AVG_ABANDON_TIME
\n
\n

Unit: Seconds

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Feature,\n contact/segmentAttributes/connect:Subtype

\n

UI name: Average queue abandon time\n

\n
\n
AVG_ACTIVE_TIME
\n
\n

Unit: Seconds

\n

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

\n

UI name: Average active time\n

\n
\n
AVG_AFTER_CONTACT_WORK_TIME
\n
\n

Unit: Seconds

\n

Valid metric filter key: INITIATION_METHOD\n

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Feature,\n contact/segmentAttributes/connect:Subtype

\n

UI name: Average after contact work time\n

\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

UI name: Average agent API connecting time\n

\n \n

The Negate key in Metric Level Filters is not applicable for this\n metric.

\n
\n
\n
AVG_AGENT_PAUSE_TIME
\n
\n

Unit: Seconds

\n

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

\n

UI name: Average agent pause time\n

\n
\n
AVG_CASE_RELATED_CONTACTS
\n
\n

Unit: Count

\n

Required filter key: CASE_TEMPLATE_ARN

\n

Valid groupings and filters: CASE_TEMPLATE_ARN, CASE_STATUS

\n

UI name: Average contacts per case\n

\n
\n
AVG_CASE_RESOLUTION_TIME
\n
\n

Unit: Seconds

\n

Required filter key: CASE_TEMPLATE_ARN

\n

Valid groupings and filters: CASE_TEMPLATE_ARN, CASE_STATUS

\n

UI name: Average case resolution time\n

\n
\n
AVG_CONTACT_DURATION
\n
\n

Unit: Seconds

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Feature,\n contact/segmentAttributes/connect:Subtype

\n

UI name: Average contact duration\n

\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, Feature,\n contact/segmentAttributes/connect:Subtype

\n

UI name: Average conversation duration\n

\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 contact/segmentAttributes/connect:Subtype

\n

UI name: Average greeting time agent \n

\n
\n
AVG_HANDLE_TIME
\n
\n

Unit: Seconds

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Feature,\n contact/segmentAttributes/connect:Subtype, RoutingStepExpression

\n

UI name: Average handle time\n

\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 contact/segmentAttributes/connect:Subtype

\n

UI name: Average customer hold time\n

\n \n

Feature is a valid filter but not a valid grouping.

\n
\n
\n
AVG_HOLD_TIME_ALL_CONTACTS
\n
\n

Unit: Seconds

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy,\n contact/segmentAttributes/connect:Subtype

\n

UI name: Average customer hold time all contacts\n

\n
\n
AVG_HOLDS
\n
\n

Unit: Count

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Feature,\n contact/segmentAttributes/connect:Subtype

\n

UI name: Average holds\n

\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 contact/segmentAttributes/connect:Subtype

\n

UI name: Average agent interaction and customer hold time\n

\n
\n
AVG_INTERACTION_TIME
\n
\n

Unit: Seconds

\n

Valid metric filter key: INITIATION_METHOD\n

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Feature,\n contact/segmentAttributes/connect:Subtype

\n

UI name: Average agent interaction time\n

\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 contact/segmentAttributes/connect:Subtype

\n

UI name: Average interruptions agent \n

\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 contact/segmentAttributes/connect:Subtype

\n

UI name: Average interruption time agent\n

\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 contact/segmentAttributes/connect:Subtype

\n

UI name: Average non-talk time\n

\n
\n
AVG_QUEUE_ANSWER_TIME
\n
\n

Unit: Seconds

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Feature,\n contact/segmentAttributes/connect:Subtype

\n

UI name: Average queue answer time\n

\n \n

Feature is a valid filter but not a valid grouping.

\n
\n
\n
AVG_RESOLUTION_TIME
\n
\n

Unit: Seconds

\n

Valid groupings and filters: Queue, Channel, Routing Profile,\n contact/segmentAttributes/connect:Subtype

\n

UI name: Average resolution time\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 contact/segmentAttributes/connect:Subtype

\n

UI name: Average talk time\n

\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 contact/segmentAttributes/connect:Subtype

\n

UI name: Average talk time agent\n

\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 contact/segmentAttributes/connect:Subtype

\n

UI name: Average talk time customer\n

\n
\n
CASES_CREATED
\n
\n

Unit: Count

\n

Required filter key: CASE_TEMPLATE_ARN

\n

Valid groupings and filters: CASE_TEMPLATE_ARN, CASE_STATUS

\n

UI name: Cases created\n

\n
\n
CONTACTS_ABANDONED
\n
\n

Unit: Count

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy,\n contact/segmentAttributes/connect:Subtype, RoutingStepExpression

\n

UI name: Contact abandoned\n

\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 contact/segmentAttributes/connect:Subtype

\n

UI name: Contacts created\n

\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 contact/segmentAttributes/connect:Subtype, RoutingStepExpression

\n

UI name: API contacts handled\n

\n \n

Feature is a valid filter but not a valid grouping.

\n
\n
\n
CONTACTS_HANDLED_BY_CONNECTED_TO_AGENT
\n
\n

Unit: Count

\n

Valid metric filter key: INITIATION_METHOD\n

\n

Valid groupings and filters: Queue, Channel, Agent, Agent Hierarchy,\n contact/segmentAttributes/connect:Subtype

\n

UI name: Contacts handled by Connected to agent\n

\n
\n
CONTACTS_HOLD_ABANDONS
\n
\n

Unit: Count

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy,\n contact/segmentAttributes/connect:Subtype

\n

UI name: Contacts hold disconnect\n

\n
\n
CONTACTS_ON_HOLD_AGENT_DISCONNECT
\n
\n

Unit: Count

\n

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

\n

UI name: Contacts hold agent disconnect\n

\n
\n
CONTACTS_ON_HOLD_CUSTOMER_DISCONNECT
\n
\n

Unit: Count

\n

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

\n

UI name: Contacts hold customer disconnect\n

\n
\n
CONTACTS_PUT_ON_HOLD
\n
\n

Unit: Count

\n

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

\n

UI name: Contacts put on hold\n

\n
\n
CONTACTS_TRANSFERRED_OUT_EXTERNAL
\n
\n

Unit: Count

\n

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

\n

UI name: Contacts transferred out external\n

\n
\n
CONTACTS_TRANSFERRED_OUT_INTERNAL
\n
\n

Unit: Percent

\n

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

\n

UI name: Contacts transferred out internal\n

\n
\n
CONTACTS_QUEUED
\n
\n

Unit: Count

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy,\n contact/segmentAttributes/connect:Subtype

\n

UI name: Contacts queued\n

\n
\n
CONTACTS_QUEUED_BY_ENQUEUE
\n
\n

Unit: Count

\n

Valid groupings and filters: Queue, Channel, Agent, Agent Hierarchy,\n contact/segmentAttributes/connect:Subtype

\n

UI name: Contacts queued by Enqueue\n

\n
\n
CONTACTS_RESOLVED_IN_X
\n
\n

Unit: Count

\n

Valid groupings and filters: Queue, Channel, Routing Profile,\n contact/segmentAttributes/connect:Subtype

\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

UI name: Contacts resolved in X\n

\n
\n
CONTACTS_TRANSFERRED_OUT
\n
\n

Unit: Count

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Feature,\n contact/segmentAttributes/connect:Subtype

\n

UI name: Contacts transferred out\n

\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 contact/segmentAttributes/connect:Subtype

\n

UI name: Contacts transferred out by agent\n

\n
\n
CONTACTS_TRANSFERRED_OUT_FROM_QUEUE
\n
\n

Unit: Count

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy,\n contact/segmentAttributes/connect:Subtype

\n

UI name: Contacts transferred out queue\n

\n
\n
CURRENT_CASES
\n
\n

Unit: Count

\n

Required filter key: CASE_TEMPLATE_ARN

\n

Valid groupings and filters: CASE_TEMPLATE_ARN, CASE_STATUS

\n

UI name: Current cases\n

\n
\n
MAX_QUEUED_TIME
\n
\n

Unit: Seconds

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy,\n contact/segmentAttributes/connect:Subtype

\n

UI name: Maximum queued time\n

\n
\n
PERCENT_CASES_FIRST_CONTACT_RESOLVED
\n
\n

Unit: Percent

\n

Required filter key: CASE_TEMPLATE_ARN

\n

Valid groupings and filters: CASE_TEMPLATE_ARN, CASE_STATUS

\n

UI name: Cases resolved on first contact\n

\n
\n
PERCENT_CONTACTS_STEP_EXPIRED
\n
\n

Unit: Percent

\n

Valid groupings and filters: Queue, RoutingStepExpression

\n

UI name: Not available

\n
\n
PERCENT_CONTACTS_STEP_JOINED
\n
\n

Unit: Percent

\n

Valid groupings and filters: Queue, RoutingStepExpression

\n

UI name: Not available

\n
\n
PERCENT_NON_TALK_TIME
\n
\n

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

\n

Unit: Percentage

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy,\n contact/segmentAttributes/connect:Subtype

\n

UI name: Non-talk\n time percent\n

\n
\n
PERCENT_TALK_TIME
\n
\n

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

\n

Unit: Percentage

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy,\n contact/segmentAttributes/connect:Subtype

\n

UI name: Talk time\n percent\n

\n
\n
PERCENT_TALK_TIME_AGENT
\n
\n

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

\n

Unit: Percentage

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy,\n contact/segmentAttributes/connect:Subtype

\n

UI name: Talk\n time agent percent\n

\n
\n
PERCENT_TALK_TIME_CUSTOMER
\n
\n

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

\n

Unit: Percentage

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy,\n contact/segmentAttributes/connect:Subtype

\n

UI name: Talk time customer percent\n

\n
\n
REOPENED_CASE_ACTIONS
\n
\n

Unit: Count

\n

Required filter key: CASE_TEMPLATE_ARN

\n

Valid groupings and filters: CASE_TEMPLATE_ARN, CASE_STATUS

\n

UI name: Cases reopened\n

\n
\n
RESOLVED_CASE_ACTIONS
\n
\n

Unit: Count

\n

Required filter key: CASE_TEMPLATE_ARN

\n

Valid groupings and filters: CASE_TEMPLATE_ARN, CASE_STATUS

\n

UI name: Cases resolved\n

\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

UI name: Service level X\n

\n
\n
STEP_CONTACTS_QUEUED
\n
\n

Unit: Count

\n

Valid groupings and filters: Queue, RoutingStepExpression

\n

UI name: Not available

\n
\n
SUM_AFTER_CONTACT_WORK_TIME
\n
\n

Unit: Seconds

\n

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

\n

UI name: After\n contact work time\n

\n
\n
SUM_CONNECTING_TIME_AGENT
\n
\n

Unit: Seconds

\n

Valid metric filter key: INITIATION_METHOD. This metric only supports the\n following filter keys as INITIATION_METHOD: INBOUND |\n OUTBOUND | CALLBACK | API\n

\n

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

\n

UI name: Agent API connecting time\n

\n \n

The Negate key in Metric Level Filters is not applicable for this\n metric.

\n
\n
\n
SUM_CONTACT_FLOW_TIME
\n
\n

Unit: Seconds

\n

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

\n

UI name: Contact flow time\n

\n
\n
SUM_CONTACT_TIME_AGENT
\n
\n

Unit: Seconds

\n

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

\n

UI name: Agent on contact time\n

\n
\n
SUM_CONTACTS_ANSWERED_IN_X
\n
\n

Unit: Count

\n

Valid groupings and filters: Queue, Channel, Routing Profile,\n contact/segmentAttributes/connect:Subtype

\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

UI name: Contacts answered in X seconds\n

\n
\n
SUM_CONTACTS_ABANDONED_IN_X
\n
\n

Unit: Count

\n

Valid groupings and filters: Queue, Channel, Routing Profile,\n contact/segmentAttributes/connect:Subtype

\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

UI name: Contacts abandoned in X seconds\n

\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, Agent, Agent Hierarchy,\n contact/segmentAttributes/connect:Subtype

\n

UI name: Contact disconnected\n

\n
\n
SUM_ERROR_STATUS_TIME_AGENT
\n
\n

Unit: Seconds

\n

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

\n

UI name: Error status time\n

\n
\n
SUM_HANDLE_TIME
\n
\n

Unit: Seconds

\n

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

\n

UI name: Contact handle time\n

\n
\n
SUM_HOLD_TIME
\n
\n

Unit: Count

\n

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

\n

UI name: Customer hold time\n

\n
\n
SUM_IDLE_TIME_AGENT
\n
\n

Unit: Seconds

\n

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

\n

UI name: Agent idle time\n

\n
\n
SUM_INTERACTION_AND_HOLD_TIME
\n
\n

Unit: Seconds

\n

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

\n

UI name: Agent interaction and hold time\n

\n
\n
SUM_INTERACTION_TIME
\n
\n

Unit: Seconds

\n

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

\n

UI name: Agent interaction time\n

\n
\n
SUM_NON_PRODUCTIVE_TIME_AGENT
\n
\n

Unit: Seconds

\n

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

\n

UI name: Non-Productive Time\n

\n
\n
SUM_ONLINE_TIME_AGENT
\n
\n

Unit: Seconds

\n

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

\n

UI name: Online time\n

\n
\n
SUM_RETRY_CALLBACK_ATTEMPTS
\n
\n

Unit: Count

\n

Valid groupings and filters: Queue, Channel, Routing Profile,\n contact/segmentAttributes/connect:Subtype

\n

UI name: Callback attempts\n

\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
ABANDONMENT_RATE
\n
\n

Unit: Percent

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Feature,\n contact/segmentAttributes/connect:Subtype

\n

UI name: Abandonment rate\n

\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

UI name: Adherent time\n

\n
\n
AGENT_ANSWER_RATE
\n
\n

Unit: Percent

\n

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

\n

UI name: Agent answer rate\n

\n
\n
AGENT_NON_ADHERENT_TIME
\n
\n

Unit: Seconds

\n

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

\n

UI name: Non-adherent time\n

\n
\n
AGENT_NON_RESPONSE
\n
\n

Unit: Count

\n

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

\n

UI name: Agent\n non-response\n

\n
\n
AGENT_NON_RESPONSE_WITHOUT_CUSTOMER_ABANDONS
\n
\n

Unit: Count

\n

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

\n

Data for this metric is available starting from October 1, 2023 0:00:00 GMT.

\n

UI name: Agent non-response without customer abandons\n

\n
\n
AGENT_OCCUPANCY
\n
\n

Unit: Percentage

\n

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

\n

UI name: Occupancy\n

\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

UI name: Adherence\n

\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

UI name: Scheduled time\n

\n
\n
AVG_ABANDON_TIME
\n
\n

Unit: Seconds

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Feature,\n contact/segmentAttributes/connect:Subtype

\n

UI name: Average queue abandon time\n

\n
\n
AVG_ACTIVE_TIME
\n
\n

Unit: Seconds

\n

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

\n

UI name: Average active time\n

\n
\n
AVG_AFTER_CONTACT_WORK_TIME
\n
\n

Unit: Seconds

\n

Valid metric filter key: INITIATION_METHOD\n

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Feature,\n contact/segmentAttributes/connect:Subtype

\n

UI name: Average after contact work time\n

\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

UI name: Average agent API connecting time\n

\n \n

The Negate key in Metric Level Filters is not applicable for this\n metric.

\n
\n
\n
AVG_AGENT_PAUSE_TIME
\n
\n

Unit: Seconds

\n

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

\n

UI name: Average agent pause time\n

\n
\n
AVG_CASE_RELATED_CONTACTS
\n
\n

Unit: Count

\n

Required filter key: CASE_TEMPLATE_ARN

\n

Valid groupings and filters: CASE_TEMPLATE_ARN, CASE_STATUS

\n

UI name: Average contacts per case\n

\n
\n
AVG_CASE_RESOLUTION_TIME
\n
\n

Unit: Seconds

\n

Required filter key: CASE_TEMPLATE_ARN

\n

Valid groupings and filters: CASE_TEMPLATE_ARN, CASE_STATUS

\n

UI name: Average case resolution time\n

\n
\n
AVG_CONTACT_DURATION
\n
\n

Unit: Seconds

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Feature,\n contact/segmentAttributes/connect:Subtype

\n

UI name: Average contact duration\n

\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, Feature,\n contact/segmentAttributes/connect:Subtype

\n

UI name: Average conversation duration\n

\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 contact/segmentAttributes/connect:Subtype

\n

UI name: Average agent greeting time\n

\n
\n
AVG_HANDLE_TIME
\n
\n

Unit: Seconds

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Feature,\n contact/segmentAttributes/connect:Subtype, RoutingStepExpression

\n

UI name: Average handle time\n

\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 contact/segmentAttributes/connect:Subtype

\n

UI name: Average customer hold time\n

\n \n

Feature is a valid filter but not a valid grouping.

\n
\n
\n
AVG_HOLD_TIME_ALL_CONTACTS
\n
\n

Unit: Seconds

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy,\n contact/segmentAttributes/connect:Subtype

\n

UI name: Average customer hold time all contacts\n

\n
\n
AVG_HOLDS
\n
\n

Unit: Count

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Feature,\n contact/segmentAttributes/connect:Subtype

\n

UI name: Average holds\n

\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 contact/segmentAttributes/connect:Subtype

\n

UI name: Average agent interaction and customer hold time\n

\n
\n
AVG_INTERACTION_TIME
\n
\n

Unit: Seconds

\n

Valid metric filter key: INITIATION_METHOD\n

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Feature,\n contact/segmentAttributes/connect:Subtype

\n

UI name: Average agent interaction time\n

\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 contact/segmentAttributes/connect:Subtype

\n

UI name: Average agent interruptions\n

\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 contact/segmentAttributes/connect:Subtype

\n

UI name: Average agent interruption time\n

\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 contact/segmentAttributes/connect:Subtype

\n

UI name: Average non-talk time\n

\n
\n
AVG_QUEUE_ANSWER_TIME
\n
\n

Unit: Seconds

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Feature,\n contact/segmentAttributes/connect:Subtype

\n

UI name: Average queue answer time\n

\n \n

Feature is a valid filter but not a valid grouping.

\n
\n
\n
AVG_RESOLUTION_TIME
\n
\n

Unit: Seconds

\n

Valid groupings and filters: Queue, Channel, Routing Profile,\n contact/segmentAttributes/connect:Subtype

\n

UI name: Average resolution time\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 contact/segmentAttributes/connect:Subtype

\n

UI name: Average talk time\n

\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 contact/segmentAttributes/connect:Subtype

\n

UI name: Average agent talk time\n

\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 contact/segmentAttributes/connect:Subtype

\n

UI name: Average customer talk time\n

\n
\n
CASES_CREATED
\n
\n

Unit: Count

\n

Required filter key: CASE_TEMPLATE_ARN

\n

Valid groupings and filters: CASE_TEMPLATE_ARN, CASE_STATUS

\n

UI name: Cases created\n

\n
\n
CONTACTS_ABANDONED
\n
\n

Unit: Count

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy,\n contact/segmentAttributes/connect:Subtype, RoutingStepExpression

\n

UI name: Contact abandoned\n

\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 contact/segmentAttributes/connect:Subtype

\n

UI name: Contacts created\n

\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 contact/segmentAttributes/connect:Subtype, RoutingStepExpression

\n

UI name: API contacts handled\n

\n \n

Feature is a valid filter but not a valid grouping.

\n
\n
\n
CONTACTS_HANDLED_BY_CONNECTED_TO_AGENT
\n
\n

Unit: Count

\n

Valid metric filter key: INITIATION_METHOD\n

\n

Valid groupings and filters: Queue, Channel, Agent, Agent Hierarchy,\n contact/segmentAttributes/connect:Subtype

\n

UI name: Contacts handled (connected to agent timestamp)\n

\n
\n
CONTACTS_HOLD_ABANDONS
\n
\n

Unit: Count

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy,\n contact/segmentAttributes/connect:Subtype

\n

UI name: Contacts hold disconnect\n

\n
\n
CONTACTS_ON_HOLD_AGENT_DISCONNECT
\n
\n

Unit: Count

\n

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

\n

UI name: Contacts hold agent disconnect\n

\n
\n
CONTACTS_ON_HOLD_CUSTOMER_DISCONNECT
\n
\n

Unit: Count

\n

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

\n

UI name: Contacts hold customer disconnect\n

\n
\n
CONTACTS_PUT_ON_HOLD
\n
\n

Unit: Count

\n

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

\n

UI name: Contacts put on hold\n

\n
\n
CONTACTS_TRANSFERRED_OUT_EXTERNAL
\n
\n

Unit: Count

\n

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

\n

UI name: Contacts transferred out external\n

\n
\n
CONTACTS_TRANSFERRED_OUT_INTERNAL
\n
\n

Unit: Percent

\n

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

\n

UI name: Contacts transferred out internal\n

\n
\n
CONTACTS_QUEUED
\n
\n

Unit: Count

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy,\n contact/segmentAttributes/connect:Subtype

\n

UI name: Contacts queued\n

\n
\n
CONTACTS_QUEUED_BY_ENQUEUE
\n
\n

Unit: Count

\n

Valid groupings and filters: Queue, Channel, Agent, Agent Hierarchy,\n contact/segmentAttributes/connect:Subtype

\n

UI name: Contacts queued (enqueue timestamp)\n

\n
\n
CONTACTS_RESOLVED_IN_X
\n
\n

Unit: Count

\n

Valid groupings and filters: Queue, Channel, Routing Profile,\n contact/segmentAttributes/connect:Subtype

\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

UI name: Contacts resolved in X\n

\n
\n
CONTACTS_TRANSFERRED_OUT
\n
\n

Unit: Count

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy, Feature,\n contact/segmentAttributes/connect:Subtype

\n

UI name: Contacts transferred out\n

\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 contact/segmentAttributes/connect:Subtype

\n

UI name: Contacts transferred out by agent\n

\n
\n
CONTACTS_TRANSFERRED_OUT_FROM_QUEUE
\n
\n

Unit: Count

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy,\n contact/segmentAttributes/connect:Subtype

\n

UI name: Contacts transferred out queue\n

\n
\n
CURRENT_CASES
\n
\n

Unit: Count

\n

Required filter key: CASE_TEMPLATE_ARN

\n

Valid groupings and filters: CASE_TEMPLATE_ARN, CASE_STATUS

\n

UI name: Current cases\n

\n
\n
MAX_QUEUED_TIME
\n
\n

Unit: Seconds

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy,\n contact/segmentAttributes/connect:Subtype

\n

UI name: Maximum queued time\n

\n
\n
PERCENT_CASES_FIRST_CONTACT_RESOLVED
\n
\n

Unit: Percent

\n

Required filter key: CASE_TEMPLATE_ARN

\n

Valid groupings and filters: CASE_TEMPLATE_ARN, CASE_STATUS

\n

UI name: Cases resolved on first contact\n

\n
\n
PERCENT_CONTACTS_STEP_EXPIRED
\n
\n

Unit: Percent

\n

Valid groupings and filters: Queue, RoutingStepExpression

\n

UI name: Not available

\n
\n
PERCENT_CONTACTS_STEP_JOINED
\n
\n

Unit: Percent

\n

Valid groupings and filters: Queue, RoutingStepExpression

\n

UI name: Not available

\n
\n
PERCENT_NON_TALK_TIME
\n
\n

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

\n

Unit: Percentage

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy,\n contact/segmentAttributes/connect:Subtype

\n

UI name: Non-talk\n time percent\n

\n
\n
PERCENT_TALK_TIME
\n
\n

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

\n

Unit: Percentage

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy,\n contact/segmentAttributes/connect:Subtype

\n

UI name: Talk time\n percent\n

\n
\n
PERCENT_TALK_TIME_AGENT
\n
\n

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

\n

Unit: Percentage

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy,\n contact/segmentAttributes/connect:Subtype

\n

UI name: Agent\n talk time percent\n

\n
\n
PERCENT_TALK_TIME_CUSTOMER
\n
\n

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

\n

Unit: Percentage

\n

Valid groupings and filters: Queue, Channel, Routing Profile, Agent, Agent Hierarchy,\n contact/segmentAttributes/connect:Subtype

\n

UI name: Customer talk time percent\n

\n
\n
REOPENED_CASE_ACTIONS
\n
\n

Unit: Count

\n

Required filter key: CASE_TEMPLATE_ARN

\n

Valid groupings and filters: CASE_TEMPLATE_ARN, CASE_STATUS

\n

UI name: Cases reopened\n

\n
\n
RESOLVED_CASE_ACTIONS
\n
\n

Unit: Count

\n

Required filter key: CASE_TEMPLATE_ARN

\n

Valid groupings and filters: CASE_TEMPLATE_ARN, CASE_STATUS

\n

UI name: Cases resolved\n

\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

UI name: Service level X\n

\n
\n
STEP_CONTACTS_QUEUED
\n
\n

Unit: Count

\n

Valid groupings and filters: Queue, RoutingStepExpression

\n

UI name: Not available

\n
\n
SUM_AFTER_CONTACT_WORK_TIME
\n
\n

Unit: Seconds

\n

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

\n

UI name: After\n contact work time\n

\n
\n
SUM_CONNECTING_TIME_AGENT
\n
\n

Unit: Seconds

\n

Valid metric filter key: INITIATION_METHOD. This metric only supports the\n following filter keys as INITIATION_METHOD: INBOUND |\n OUTBOUND | CALLBACK | API\n

\n

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

\n

UI name: Agent API connecting time\n

\n \n

The Negate key in Metric Level Filters is not applicable for this\n metric.

\n
\n
\n
SUM_CONTACT_FLOW_TIME
\n
\n

Unit: Seconds

\n

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

\n

UI name: Contact flow time\n

\n
\n
SUM_CONTACT_TIME_AGENT
\n
\n

Unit: Seconds

\n

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

\n

UI name: Agent on contact time\n

\n
\n
SUM_CONTACTS_ANSWERED_IN_X
\n
\n

Unit: Count

\n

Valid groupings and filters: Queue, Channel, Routing Profile,\n contact/segmentAttributes/connect:Subtype

\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

UI name: Contacts answered in X seconds\n

\n
\n
SUM_CONTACTS_ABANDONED_IN_X
\n
\n

Unit: Count

\n

Valid groupings and filters: Queue, Channel, Routing Profile,\n contact/segmentAttributes/connect:Subtype

\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

UI name: Contacts abandoned in X seconds\n

\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, Agent, Agent Hierarchy,\n contact/segmentAttributes/connect:Subtype

\n

UI name: Contact disconnected\n

\n
\n
SUM_ERROR_STATUS_TIME_AGENT
\n
\n

Unit: Seconds

\n

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

\n

UI name: Error status time\n

\n
\n
SUM_HANDLE_TIME
\n
\n

Unit: Seconds

\n

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

\n

UI name: Contact handle time\n

\n
\n
SUM_HOLD_TIME
\n
\n

Unit: Count

\n

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

\n

UI name: Customer hold time\n

\n
\n
SUM_IDLE_TIME_AGENT
\n
\n

Unit: Seconds

\n

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

\n

UI name: Agent idle time\n

\n
\n
SUM_INTERACTION_AND_HOLD_TIME
\n
\n

Unit: Seconds

\n

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

\n

UI name: Agent interaction and hold time\n

\n
\n
SUM_INTERACTION_TIME
\n
\n

Unit: Seconds

\n

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

\n

UI name: Agent interaction time\n

\n
\n
SUM_NON_PRODUCTIVE_TIME_AGENT
\n
\n

Unit: Seconds

\n

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

\n

UI name: Non-Productive Time\n

\n
\n
SUM_ONLINE_TIME_AGENT
\n
\n

Unit: Seconds

\n

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

\n

UI name: Online time\n

\n
\n
SUM_RETRY_CALLBACK_ATTEMPTS
\n
\n

Unit: Count

\n

Valid groupings and filters: Queue, Channel, Routing Profile,\n contact/segmentAttributes/connect:Subtype

\n

UI name: Callback attempts\n

\n
\n
", "smithy.api#required": {} } }, @@ -17499,6 +18158,9 @@ "traits": { "smithy.api#documentation": "

The message about the request.

" } + }, + "Reason": { + "target": "com.amazonaws.connect#InvalidRequestExceptionReason" } }, "traits": { @@ -17507,6 +18169,20 @@ "smithy.api#httpError": 400 } }, + "com.amazonaws.connect#InvalidRequestExceptionReason": { + "type": "union", + "members": { + "AttachedFileInvalidRequestExceptionReason": { + "target": "com.amazonaws.connect#AttachedFileInvalidRequestExceptionReason", + "traits": { + "smithy.api#documentation": "

Reason why the StartAttachedFiledUpload request was invalid.

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

Reason why the request was invalid.

" + } + }, "com.amazonaws.connect#InvisibleFieldInfo": { "type": "structure", "members": { @@ -22270,6 +22946,15 @@ "com.amazonaws.connect#Message": { "type": "string" }, + "com.amazonaws.connect#MetadataUrl": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 2000 + } + } + }, "com.amazonaws.connect#MetricDataCollectionsV2": { "type": "list", "member": { @@ -30332,6 +31017,158 @@ } } }, + "com.amazonaws.connect#StartAttachedFileUpload": { + "type": "operation", + "input": { + "target": "com.amazonaws.connect#StartAttachedFileUploadRequest" + }, + "output": { + "target": "com.amazonaws.connect#StartAttachedFileUploadResponse" + }, + "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#ServiceQuotaExceededException" + }, + { + "target": "com.amazonaws.connect#ThrottlingException" + } + ], + "traits": { + "smithy.api#documentation": "

Provides a pre-signed Amazon S3 URL in response for uploading your content.

\n \n

You may only use this API to upload attachments to a Connect\n Case.

\n
", + "smithy.api#http": { + "method": "PUT", + "uri": "/attached-files/{InstanceId}", + "code": 200 + } + } + }, + "com.amazonaws.connect#StartAttachedFileUploadRequest": { + "type": "structure", + "members": { + "ClientToken": { + "target": "com.amazonaws.connect#ClientToken", + "traits": { + "smithy.api#documentation": "

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

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

The unique identifier of the Connect instance.

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

A case-sensitive name of the attached file being uploaded.

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

The size of the attached file in bytes.

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

Optional override for the expiry of the pre-signed S3 URL in seconds.

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

The use case for the file.

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

The resource to which the attached file is (being) uploaded to. Cases are the only\n current supported resource.

\n \n

This value must be a valid ARN.

\n
", + "smithy.api#httpQuery": "associatedResourceArn", + "smithy.api#required": {} + } + }, + "CreatedBy": { + "target": "com.amazonaws.connect#CreatedByInfo", + "traits": { + "smithy.api#documentation": "

Represents the identity that created the file.

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

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

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.connect#StartAttachedFileUploadResponse": { + "type": "structure", + "members": { + "FileArn": { + "target": "com.amazonaws.connect#ARN", + "traits": { + "smithy.api#documentation": "

The unique identifier of the attached file resource (ARN).

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

The unique identifier of the attached file resource.

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

The time of Creation of the file resource as an ISO timestamp. It's specified in ISO 8601\n format: yyyy-MM-ddThh:mm:ss.SSSZ. For example,\n 2024-05-03T02:41:28.172Z.

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

The current status of the attached file.

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

Represents the identity that created the file.

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

Information to be used while uploading the attached file.

" + } + } + }, + "traits": { + "smithy.api#documentation": "Response from StartAttachedFileUpload API.", + "smithy.api#output": {} + } + }, "com.amazonaws.connect#StartChatContact": { "type": "operation", "input": { @@ -32954,6 +33791,15 @@ } } }, + "com.amazonaws.connect#URLExpiryInSeconds": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 5, + "max": 300 + } + } + }, "com.amazonaws.connect#Unit": { "type": "enum", "members": { @@ -33313,7 +34159,7 @@ "Attributes": { "target": "com.amazonaws.connect#Attributes", "traits": { - "smithy.api#documentation": "

The Amazon Connect attributes. These attributes can be accessed in flows just like any\n other contact attributes.

\n

You can have up to 32,768 UTF-8 bytes across all attributes for a contact. Attribute keys\n can include only alphanumeric, dash, and underscore characters.

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

The Amazon Connect attributes. These attributes can be accessed in flows just like any\n other contact attributes.

\n

You can have up to 32,768 UTF-8 bytes across all attributes for a contact. Attribute keys\n can include only alphanumeric, dash, and underscore characters.

\n

When the attributes for a contact exceed 32 KB, the contact is routed down the Error branch\n of the flow. As a mitigation, consider the following options:

\n
    \n
  • \n

    Remove unnecessary attributes by setting their values to empty.

    \n
  • \n
  • \n

    If the attributes are only used in one flow and don't need to be referred to outside of\n that flow (for example, by a Lambda or another flow), then use flow attributes. This way you\n aren't needlessly persisting the 32 KB of information from one flow to another. For more\n information, see Flow block: Set contact\n attributes in the Amazon Connect Administrator Guide.

    \n
  • \n
", "smithy.api#required": {} } } @@ -36770,9 +37616,62 @@ "smithy.api#output": {} } }, + "com.amazonaws.connect#UploadUrlMetadata": { + "type": "structure", + "members": { + "Url": { + "target": "com.amazonaws.connect#MetadataUrl", + "traits": { + "smithy.api#documentation": "

A pre-signed S3 URL that should be used for uploading the attached file.

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

The expiration time of the URL in ISO timestamp. It's specified in ISO 8601 format:\n yyyy-MM-ddThh:mm:ss.SSSZ. For example,\n 2019-11-08T02:41:28.172Z.

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

A map of headers that should be provided when uploading the attached file.

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

Fields required when uploading an attached file.

" + } + }, "com.amazonaws.connect#Url": { "type": "string" }, + "com.amazonaws.connect#UrlMetadataSignedHeaders": { + "type": "map", + "key": { + "target": "com.amazonaws.connect#UrlMetadataSignedHeadersKey" + }, + "value": { + "target": "com.amazonaws.connect#UrlMetadataSignedHeadersValue" + } + }, + "com.amazonaws.connect#UrlMetadataSignedHeadersKey": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 128 + } + } + }, + "com.amazonaws.connect#UrlMetadataSignedHeadersValue": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 256 + } + } + }, "com.amazonaws.connect#UrlReference": { "type": "structure", "members": {