diff --git a/clients/client-connect/README.md b/clients/client-connect/README.md index fda5b1bf0c9b..5dc69ef62728 100644 --- a/clients/client-connect/README.md +++ b/clients/client-connect/README.md @@ -1660,6 +1660,14 @@ SuspendContactRecording [Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/connect/command/SuspendContactRecordingCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-connect/Interface/SuspendContactRecordingCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-connect/Interface/SuspendContactRecordingCommandOutput/) + +
+ +TagContact + + +[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/connect/command/TagContactCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-connect/Interface/TagContactCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-connect/Interface/TagContactCommandOutput/) +
@@ -1676,6 +1684,14 @@ TransferContact [Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/connect/command/TransferContactCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-connect/Interface/TransferContactCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-connect/Interface/TransferContactCommandOutput/) +
+
+ +UntagContact + + +[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/connect/command/UntagContactCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-connect/Interface/UntagContactCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-connect/Interface/UntagContactCommandOutput/) +
diff --git a/clients/client-connect/src/Connect.ts b/clients/client-connect/src/Connect.ts index f8dd4aa9a716..5fd48556c112 100644 --- a/clients/client-connect/src/Connect.ts +++ b/clients/client-connect/src/Connect.ts @@ -839,12 +839,18 @@ import { SuspendContactRecordingCommandInput, SuspendContactRecordingCommandOutput, } from "./commands/SuspendContactRecordingCommand"; +import { TagContactCommand, TagContactCommandInput, TagContactCommandOutput } from "./commands/TagContactCommand"; import { TagResourceCommand, TagResourceCommandInput, TagResourceCommandOutput } from "./commands/TagResourceCommand"; import { TransferContactCommand, TransferContactCommandInput, TransferContactCommandOutput, } from "./commands/TransferContactCommand"; +import { + UntagContactCommand, + UntagContactCommandInput, + UntagContactCommandOutput, +} from "./commands/UntagContactCommand"; import { UntagResourceCommand, UntagResourceCommandInput, @@ -1245,8 +1251,10 @@ const commands = { StopContactStreamingCommand, SubmitContactEvaluationCommand, SuspendContactRecordingCommand, + TagContactCommand, TagResourceCommand, TransferContactCommand, + UntagContactCommand, UntagResourceCommand, UpdateAgentStatusCommand, UpdateContactCommand, @@ -4137,6 +4145,17 @@ export interface Connect { cb: (err: any, data?: SuspendContactRecordingCommandOutput) => void ): void; + /** + * @see {@link TagContactCommand} + */ + tagContact(args: TagContactCommandInput, options?: __HttpHandlerOptions): Promise; + tagContact(args: TagContactCommandInput, cb: (err: any, data?: TagContactCommandOutput) => void): void; + tagContact( + args: TagContactCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: TagContactCommandOutput) => void + ): void; + /** * @see {@link TagResourceCommand} */ @@ -4162,6 +4181,17 @@ export interface Connect { cb: (err: any, data?: TransferContactCommandOutput) => void ): void; + /** + * @see {@link UntagContactCommand} + */ + untagContact(args: UntagContactCommandInput, options?: __HttpHandlerOptions): Promise; + untagContact(args: UntagContactCommandInput, cb: (err: any, data?: UntagContactCommandOutput) => void): void; + untagContact( + args: UntagContactCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: UntagContactCommandOutput) => void + ): void; + /** * @see {@link UntagResourceCommand} */ diff --git a/clients/client-connect/src/ConnectClient.ts b/clients/client-connect/src/ConnectClient.ts index c849ab102036..25598a16d73e 100644 --- a/clients/client-connect/src/ConnectClient.ts +++ b/clients/client-connect/src/ConnectClient.ts @@ -529,8 +529,10 @@ import { SuspendContactRecordingCommandInput, SuspendContactRecordingCommandOutput, } from "./commands/SuspendContactRecordingCommand"; +import { TagContactCommandInput, TagContactCommandOutput } from "./commands/TagContactCommand"; import { TagResourceCommandInput, TagResourceCommandOutput } from "./commands/TagResourceCommand"; import { TransferContactCommandInput, TransferContactCommandOutput } from "./commands/TransferContactCommand"; +import { UntagContactCommandInput, UntagContactCommandOutput } from "./commands/UntagContactCommand"; import { UntagResourceCommandInput, UntagResourceCommandOutput } from "./commands/UntagResourceCommand"; import { UpdateAgentStatusCommandInput, UpdateAgentStatusCommandOutput } from "./commands/UpdateAgentStatusCommand"; import { @@ -870,8 +872,10 @@ export type ServiceInputTypes = | StopContactStreamingCommandInput | SubmitContactEvaluationCommandInput | SuspendContactRecordingCommandInput + | TagContactCommandInput | TagResourceCommandInput | TransferContactCommandInput + | UntagContactCommandInput | UntagResourceCommandInput | UpdateAgentStatusCommandInput | UpdateContactAttributesCommandInput @@ -1102,8 +1106,10 @@ export type ServiceOutputTypes = | StopContactStreamingCommandOutput | SubmitContactEvaluationCommandOutput | SuspendContactRecordingCommandOutput + | TagContactCommandOutput | TagResourceCommandOutput | TransferContactCommandOutput + | UntagContactCommandOutput | UntagResourceCommandOutput | UpdateAgentStatusCommandOutput | UpdateContactAttributesCommandOutput diff --git a/clients/client-connect/src/commands/BatchAssociateAnalyticsDataSetCommand.ts b/clients/client-connect/src/commands/BatchAssociateAnalyticsDataSetCommand.ts index d0d1c7906c9e..5cbc5cf910dc 100644 --- a/clients/client-connect/src/commands/BatchAssociateAnalyticsDataSetCommand.ts +++ b/clients/client-connect/src/commands/BatchAssociateAnalyticsDataSetCommand.ts @@ -43,8 +43,8 @@ export interface BatchAssociateAnalyticsDataSetCommandOutput /** * @public *

This API is in preview release for Amazon Connect and is subject to change.

- *

Associates a list of analytics datasets for a given Amazon Connect instance to a target account. You can - * associate multiple datasets in a single call.

+ *

Associates a list of analytics datasets for a given Amazon Connect instance to a target + * account. You can associate multiple datasets in a single call.

* @example * Use a bare-bones client and the command you need to make an API call. * ```javascript diff --git a/clients/client-connect/src/commands/DescribeContactCommand.ts b/clients/client-connect/src/commands/DescribeContactCommand.ts index e9ab39249fb6..806c1f607cf5 100644 --- a/clients/client-connect/src/commands/DescribeContactCommand.ts +++ b/clients/client-connect/src/commands/DescribeContactCommand.ts @@ -83,6 +83,9 @@ export interface DescribeContactCommandOutput extends DescribeContactResponse, _ * // WisdomInfo: { // WisdomInfo * // SessionArn: "STRING_VALUE", * // }, + * // Tags: { // ContactTagMap + * // "": "STRING_VALUE", + * // }, * // }, * // }; * diff --git a/clients/client-connect/src/commands/TagContactCommand.ts b/clients/client-connect/src/commands/TagContactCommand.ts new file mode 100644 index 000000000000..a4b3acbc2d08 --- /dev/null +++ b/clients/client-connect/src/commands/TagContactCommand.ts @@ -0,0 +1,156 @@ +// smithy-typescript generated code +import { EndpointParameterInstructions, getEndpointPlugin } from "@smithy/middleware-endpoint"; +import { getSerdePlugin } from "@smithy/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@smithy/protocol-http"; +import { Command as $Command } from "@smithy/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + MiddlewareStack, + SerdeContext as __SerdeContext, + SMITHY_CONTEXT_KEY, +} from "@smithy/types"; + +import { ConnectClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../ConnectClient"; +import { TagContactRequest, TagContactResponse } from "../models/models_2"; +import { de_TagContactCommand, se_TagContactCommand } from "../protocols/Aws_restJson1"; + +/** + * @public + */ +export { __MetadataBearer, $Command }; +/** + * @public + * + * The input for {@link TagContactCommand}. + */ +export interface TagContactCommandInput extends TagContactRequest {} +/** + * @public + * + * The output of {@link TagContactCommand}. + */ +export interface TagContactCommandOutput extends TagContactResponse, __MetadataBearer {} + +/** + * @public + *

Adds the specified tags to the contact resource. For more information about this API is used, see Set up granular billing for a detailed + * view of your Amazon Connect usage. + *

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

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

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

One or more of the specified parameters are not valid.

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

The request is not valid.

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

The specified resource was not found.

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

The throttling limit has been exceeded.

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

Base exception class for all service exceptions from Connect service.

+ * + */ +export class TagContactCommand extends $Command< + TagContactCommandInput, + TagContactCommandOutput, + ConnectClientResolvedConfig +> { + public static getEndpointParameterInstructions(): EndpointParameterInstructions { + return { + UseFIPS: { type: "builtInParams", name: "useFipsEndpoint" }, + Endpoint: { type: "builtInParams", name: "endpoint" }, + Region: { type: "builtInParams", name: "region" }, + UseDualStack: { type: "builtInParams", name: "useDualstackEndpoint" }, + }; + } + + /** + * @public + */ + constructor(readonly input: TagContactCommandInput) { + super(); + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: ConnectClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + this.middlewareStack.use(getEndpointPlugin(configuration, TagContactCommand.getEndpointParameterInstructions())); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "ConnectClient"; + const commandName = "TagContactCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: (_: any) => _, + outputFilterSensitiveLog: (_: any) => _, + [SMITHY_CONTEXT_KEY]: { + service: "AmazonConnectService", + operation: "TagContact", + }, + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + /** + * @internal + */ + private serialize(input: TagContactCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return se_TagContactCommand(input, context); + } + + /** + * @internal + */ + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return de_TagContactCommand(output, context); + } +} diff --git a/clients/client-connect/src/commands/UntagContactCommand.ts b/clients/client-connect/src/commands/UntagContactCommand.ts new file mode 100644 index 000000000000..40270afff671 --- /dev/null +++ b/clients/client-connect/src/commands/UntagContactCommand.ts @@ -0,0 +1,155 @@ +// smithy-typescript generated code +import { EndpointParameterInstructions, getEndpointPlugin } from "@smithy/middleware-endpoint"; +import { getSerdePlugin } from "@smithy/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@smithy/protocol-http"; +import { Command as $Command } from "@smithy/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + MiddlewareStack, + SerdeContext as __SerdeContext, + SMITHY_CONTEXT_KEY, +} from "@smithy/types"; + +import { ConnectClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../ConnectClient"; +import { UntagContactRequest, UntagContactResponse } from "../models/models_2"; +import { de_UntagContactCommand, se_UntagContactCommand } from "../protocols/Aws_restJson1"; + +/** + * @public + */ +export { __MetadataBearer, $Command }; +/** + * @public + * + * The input for {@link UntagContactCommand}. + */ +export interface UntagContactCommandInput extends UntagContactRequest {} +/** + * @public + * + * The output of {@link UntagContactCommand}. + */ +export interface UntagContactCommandOutput extends UntagContactResponse, __MetadataBearer {} + +/** + * @public + *

Removes the specified tags from the contact resource. For more information about this API is used, see Set up granular billing for a detailed + * view of your Amazon Connect usage.

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { ConnectClient, UntagContactCommand } from "@aws-sdk/client-connect"; // ES Modules import + * // const { ConnectClient, UntagContactCommand } = require("@aws-sdk/client-connect"); // CommonJS import + * const client = new ConnectClient(config); + * const input = { // UntagContactRequest + * ContactId: "STRING_VALUE", // required + * InstanceId: "STRING_VALUE", // required + * TagKeys: [ // ContactTagKeys // required + * "STRING_VALUE", + * ], + * }; + * const command = new UntagContactCommand(input); + * const response = await client.send(command); + * // {}; + * + * ``` + * + * @param UntagContactCommandInput - {@link UntagContactCommandInput} + * @returns {@link UntagContactCommandOutput} + * @see {@link UntagContactCommandInput} for command's `input` shape. + * @see {@link UntagContactCommandOutput} for command's `response` shape. + * @see {@link ConnectClientResolvedConfig | config} for ConnectClient's `config` shape. + * + * @throws {@link InternalServiceException} (server fault) + *

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

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

One or more of the specified parameters are not valid.

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

The request is not valid.

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

The specified resource was not found.

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

The throttling limit has been exceeded.

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

Base exception class for all service exceptions from Connect service.

+ * + */ +export class UntagContactCommand extends $Command< + UntagContactCommandInput, + UntagContactCommandOutput, + ConnectClientResolvedConfig +> { + public static getEndpointParameterInstructions(): EndpointParameterInstructions { + return { + UseFIPS: { type: "builtInParams", name: "useFipsEndpoint" }, + Endpoint: { type: "builtInParams", name: "endpoint" }, + Region: { type: "builtInParams", name: "region" }, + UseDualStack: { type: "builtInParams", name: "useDualstackEndpoint" }, + }; + } + + /** + * @public + */ + constructor(readonly input: UntagContactCommandInput) { + super(); + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: ConnectClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + this.middlewareStack.use(getEndpointPlugin(configuration, UntagContactCommand.getEndpointParameterInstructions())); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "ConnectClient"; + const commandName = "UntagContactCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: (_: any) => _, + outputFilterSensitiveLog: (_: any) => _, + [SMITHY_CONTEXT_KEY]: { + service: "AmazonConnectService", + operation: "UntagContact", + }, + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + /** + * @internal + */ + private serialize(input: UntagContactCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return se_UntagContactCommand(input, context); + } + + /** + * @internal + */ + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return de_UntagContactCommand(output, context); + } +} diff --git a/clients/client-connect/src/commands/index.ts b/clients/client-connect/src/commands/index.ts index 35e9556e03cc..21b9ae2b849a 100644 --- a/clients/client-connect/src/commands/index.ts +++ b/clients/client-connect/src/commands/index.ts @@ -180,8 +180,10 @@ export * from "./StopContactRecordingCommand"; export * from "./StopContactStreamingCommand"; export * from "./SubmitContactEvaluationCommand"; export * from "./SuspendContactRecordingCommand"; +export * from "./TagContactCommand"; export * from "./TagResourceCommand"; export * from "./TransferContactCommand"; +export * from "./UntagContactCommand"; export * from "./UntagResourceCommand"; export * from "./UpdateAgentStatusCommand"; export * from "./UpdateContactAttributesCommand"; diff --git a/clients/client-connect/src/models/models_0.ts b/clients/client-connect/src/models/models_0.ts index 61f6d44a9068..74781a1d0ec1 100644 --- a/clients/client-connect/src/models/models_0.ts +++ b/clients/client-connect/src/models/models_0.ts @@ -486,7 +486,7 @@ export interface AgentStatus { /** * @public - *

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

+ *

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

*/ Tags?: Record; @@ -1466,8 +1466,8 @@ export interface BatchAssociateAnalyticsDataSetResponse { /** * @public - *

A list of errors for datasets that aren't successfully associated - * with the target account.

+ *

A list of errors for datasets that aren't successfully associated with the target + * account.

*/ Errors?: ErrorResult[]; } @@ -1838,7 +1838,7 @@ export interface ClaimPhoneNumberRequest { /** * @public - *

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

+ *

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

*/ Tags?: Record; @@ -1907,7 +1907,7 @@ export interface CreateAgentStatusRequest { /** * @public - *

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

+ *

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

*/ Tags?: Record; } @@ -2011,7 +2011,7 @@ export interface CreateContactFlowRequest { /** * @public - *

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

+ *

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

*/ Tags?: Record; } @@ -2102,7 +2102,7 @@ export interface CreateContactFlowModuleRequest { /** * @public - *

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

+ *

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

*/ Tags?: Record; @@ -2765,7 +2765,7 @@ export interface CreateHoursOfOperationRequest { /** * @public - *

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

+ *

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

*/ Tags?: Record; } @@ -2844,7 +2844,8 @@ export interface CreateInstanceRequest { /** * @public - *

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

+ *

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

*/ Tags?: Record; } @@ -2947,7 +2948,7 @@ export interface CreateIntegrationAssociationRequest { /** * @public - *

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

+ *

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

*/ Tags?: Record; } @@ -3268,7 +3269,7 @@ export interface CreatePromptRequest { /** * @public - *

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

+ *

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

*/ Tags?: Record; } @@ -3362,7 +3363,7 @@ export interface CreateQueueRequest { /** * @public - *

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

+ *

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

*/ Tags?: Record; } @@ -3510,7 +3511,7 @@ export interface CreateQuickConnectRequest { /** * @public - *

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

+ *

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

*/ Tags?: Record; } @@ -3639,7 +3640,7 @@ export interface CreateRoutingProfileRequest { /** * @public - *

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

+ *

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

*/ Tags?: Record; @@ -3725,7 +3726,7 @@ export type NotificationDeliveryType = (typeof NotificationDeliveryType)[keyof t export interface NotificationRecipientType { /** * @public - *

The tags used to organize, track, or control access for this resource. For example, \{ "tags": \{"key1":"value1", "key2":"value2"\} \}. Amazon Connect users with the specified tags will be notified.

+ *

The tags used to organize, track, or control access for this resource. For example, \{ "Tags": \{"key1":"value1", "key2":"value2"\} \}. Amazon Connect users with the specified tags will be notified.

*/ UserTags?: Record; @@ -4080,7 +4081,7 @@ export interface CreateSecurityProfileRequest { /** * @public - *

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

+ *

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

*/ Tags?: Record; @@ -4475,7 +4476,7 @@ export interface CreateTrafficDistributionGroupRequest { /** * @public - *

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

+ *

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

*/ Tags?: Record; } @@ -4560,7 +4561,7 @@ export interface CreateUseCaseRequest { /** * @public - *

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

+ *

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

*/ Tags?: Record; } @@ -4741,7 +4742,7 @@ export interface CreateUserRequest { /** * @public - *

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

+ *

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

*/ Tags?: Record; } @@ -4788,7 +4789,7 @@ export interface CreateUserHierarchyGroupRequest { /** * @public - *

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

+ *

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

*/ Tags?: Record; } @@ -5199,7 +5200,7 @@ export interface CreateVocabularyRequest { /** * @public - *

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

+ *

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

*/ Tags?: Record; } @@ -5895,6 +5896,12 @@ export interface Contact { *

Information about Amazon Connect Wisdom.

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

Tags associated with the contact. This contains both Amazon Web Services generated and user-defined tags.

+ */ + Tags?: Record; } /** @@ -6158,7 +6165,7 @@ export interface Evaluation { /** * @public - *

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

+ *

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

*/ Tags?: Record; } @@ -6268,7 +6275,7 @@ export interface ContactFlow { /** * @public - *

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

+ *

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

*/ Tags?: Record; } @@ -6379,7 +6386,7 @@ export interface ContactFlowModule { /** * @public - *

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

+ *

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

*/ Tags?: Record; } @@ -6493,7 +6500,7 @@ export interface HoursOfOperation { /** * @public - *

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

+ *

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

*/ Tags?: Record; @@ -7145,7 +7152,7 @@ export interface ClaimedPhoneNumberSummary { /** * @public - *

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

+ *

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

*/ Tags?: Record; @@ -7249,7 +7256,7 @@ export interface Prompt { /** * @public - *

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

+ *

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

*/ Tags?: Record; @@ -7363,7 +7370,7 @@ export interface Queue { /** * @public - *

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

+ *

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

*/ Tags?: Record; diff --git a/clients/client-connect/src/models/models_1.ts b/clients/client-connect/src/models/models_1.ts index cc700ce93d71..f4bb4b7ede0e 100644 --- a/clients/client-connect/src/models/models_1.ts +++ b/clients/client-connect/src/models/models_1.ts @@ -119,7 +119,7 @@ export interface QuickConnect { /** * @public - *

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

+ *

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

*/ Tags?: Record; @@ -214,7 +214,7 @@ export interface RoutingProfile { /** * @public - *

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

+ *

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

*/ Tags?: Record; @@ -352,7 +352,7 @@ export interface Rule { /** * @public - *

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

+ *

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

*/ Tags?: Record; } @@ -422,7 +422,7 @@ export interface SecurityProfile { /** * @public - *

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

+ *

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

*/ Tags?: Record; @@ -568,7 +568,7 @@ export interface TrafficDistributionGroup { /** * @public - *

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

+ *

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

*/ Tags?: Record; @@ -834,7 +834,7 @@ export interface HierarchyGroup { /** * @public - *

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

+ *

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

*/ Tags?: Record; @@ -1063,7 +1063,7 @@ export interface Vocabulary { /** * @public - *

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

+ *

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

*/ Tags?: Record; } @@ -3671,7 +3671,7 @@ export interface GetTaskTemplateResponse { /** * @public - *

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

+ *

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

*/ Tags?: Record; } @@ -3793,7 +3793,7 @@ export interface ImportPhoneNumberRequest { /** * @public - *

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

+ *

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

*/ Tags?: Record; @@ -3908,8 +3908,8 @@ export interface ListAnalyticsDataAssociationsResponse { /** * @public *

An array of successful results: DataSetId, TargetAccountId, - * ResourceShareId, ResourceShareArn. This is a paginated API, so - * nextToken is given if there are more results to be returned.

+ * ResourceShareId, ResourceShareArn. This is a paginated API, so + * nextToken is given if there are more results to be returned.

*/ Results?: AnalyticsDataAssociationResult[]; @@ -8734,7 +8734,7 @@ export interface SecurityProfileSearchSummary { /** * @public - *

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

+ *

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

*/ Tags?: Record; } @@ -8890,7 +8890,7 @@ export interface UserSearchSummary { /** * @public - *

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

+ *

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

*/ Tags?: Record; @@ -9097,8 +9097,8 @@ export interface ChatEvent { * EVENT.

*
    *
  • - *

    For allowed message content, see the Content parameter in the SendMessage topic - * in the Amazon Connect Participant Service API Reference.

    + *

    For allowed message content, see the Content parameter in the SendMessage topic in the Amazon Connect Participant Service API + * Reference.

    *
  • *
  • *

    For allowed event content, see the Content parameter in the SendEvent topic in the Amazon Connect Participant Service API diff --git a/clients/client-connect/src/models/models_2.ts b/clients/client-connect/src/models/models_2.ts index 0d3aa4ebaa58..9f47c08af6ab 100644 --- a/clients/client-connect/src/models/models_2.ts +++ b/clients/client-connect/src/models/models_2.ts @@ -125,8 +125,9 @@ export interface SendChatIntegrationEventRequest { /** * @public *

    Chat system identifier, used in part to uniquely identify chat. This is associated with the - * Amazon Connect instance and flow to be used to start chats. For SMS, this is the phone - * number destination of inbound SMS messages represented by an Amazon Pinpoint phone number ARN.

    + * Amazon Connect instance and flow to be used to start chats. For SMS, this is the phone + * number destination of inbound SMS messages represented by an Amazon Pinpoint phone number + * ARN.

    */ DestinationId: string | undefined; @@ -359,9 +360,10 @@ export interface StartChatContactRequest { *

    This field can be used to show channel subtype, such as connect:Guide.

    * *

    The types application/vnd.amazonaws.connect.message.interactive and - * application/vnd.amazonaws.connect.message.interactive.response must be present in the - * SupportedMessagingContentTypes field of this API in order to set SegmentAttributes as \{ - * "connect:Subtype": \{"valueString" : "connect:Guide" \}\}.

    + * application/vnd.amazonaws.connect.message.interactive.response must be present in + * the SupportedMessagingContentTypes field of this API in order to set + * SegmentAttributes as \{ "connect:Subtype": \{"valueString" : "connect:Guide" + * \}\}.

    *
    */ SegmentAttributes?: Record; @@ -1313,6 +1315,37 @@ export interface SuspendContactRecordingRequest { */ export interface SuspendContactRecordingResponse {} +/** + * @public + */ +export interface TagContactRequest { + /** + * @public + *

    The identifier of the contact in this instance of Amazon Connect.

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

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

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

    The tags to be assigned to the contact resource. For example, \{ "Tags": \{"key1":"value1", "key2":"value2"\} \}.

    + * + *

    Authorization is not supported by this tag.

    + *
    + */ + Tags: Record | undefined; +} + +/** + * @public + */ +export interface TagContactResponse {} + /** * @public */ @@ -1325,7 +1358,7 @@ export interface TagResourceRequest { /** * @public - *

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

    + *

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

    */ tags: Record | undefined; } @@ -1391,6 +1424,34 @@ export interface TransferContactResponse { ContactArn?: string; } +/** + * @public + */ +export interface UntagContactRequest { + /** + * @public + *

    The identifier of the contact in this instance of Amazon Connect.

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

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

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

    A list of tag keys. Existing tags on the contact whose keys are members of this list will be removed.

    + */ + TagKeys: string[] | undefined; +} + +/** + * @public + */ +export interface UntagContactResponse {} + /** * @public */ @@ -3317,7 +3378,7 @@ export interface EvaluationForm { /** * @public - *

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

    + *

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

    */ Tags?: Record; } diff --git a/clients/client-connect/src/protocols/Aws_restJson1.ts b/clients/client-connect/src/protocols/Aws_restJson1.ts index 869dcd3719d6..f0c3c1caf156 100644 --- a/clients/client-connect/src/protocols/Aws_restJson1.ts +++ b/clients/client-connect/src/protocols/Aws_restJson1.ts @@ -510,8 +510,10 @@ import { SuspendContactRecordingCommandInput, SuspendContactRecordingCommandOutput, } from "../commands/SuspendContactRecordingCommand"; +import { TagContactCommandInput, TagContactCommandOutput } from "../commands/TagContactCommand"; import { TagResourceCommandInput, TagResourceCommandOutput } from "../commands/TagResourceCommand"; import { TransferContactCommandInput, TransferContactCommandOutput } from "../commands/TransferContactCommand"; +import { UntagContactCommandInput, UntagContactCommandOutput } from "../commands/UntagContactCommand"; import { UntagResourceCommandInput, UntagResourceCommandOutput } from "../commands/UntagResourceCommand"; import { UpdateAgentStatusCommandInput, UpdateAgentStatusCommandOutput } from "../commands/UpdateAgentStatusCommand"; import { @@ -6789,6 +6791,37 @@ export const se_SuspendContactRecordingCommand = async ( }); }; +/** + * serializeAws_restJson1TagContactCommand + */ +export const se_TagContactCommand = async ( + input: TagContactCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); + const headers: any = { + "content-type": "application/json", + }; + const resolvedPath = `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + "/contact/tags"; + let body: any; + body = JSON.stringify( + take(input, { + ContactId: [], + InstanceId: [], + Tags: (_) => _json(_), + }) + ); + return new __HttpRequest({ + protocol, + hostname, + port, + method: "POST", + headers, + path: resolvedPath, + body, + }); +}; + /** * serializeAws_restJson1TagResourceCommand */ @@ -6853,6 +6886,38 @@ export const se_TransferContactCommand = async ( }); }; +/** + * serializeAws_restJson1UntagContactCommand + */ +export const se_UntagContactCommand = async ( + input: UntagContactCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const { hostname, protocol = "https", port, path: basePath } = await context.endpoint(); + const headers: any = {}; + let resolvedPath = + `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + "/contact/tags/{InstanceId}/{ContactId}"; + resolvedPath = __resolvedPath(resolvedPath, input, "ContactId", () => input.ContactId!, "{ContactId}", false); + resolvedPath = __resolvedPath(resolvedPath, input, "InstanceId", () => input.InstanceId!, "{InstanceId}", false); + const query: any = map({ + TagKeys: [ + __expectNonNull(input.TagKeys, `TagKeys`) != null, + () => (input.TagKeys! || []).map((_entry) => _entry as any), + ], + }); + let body: any; + return new __HttpRequest({ + protocol, + hostname, + port, + method: "DELETE", + headers, + path: resolvedPath, + query, + body, + }); +}; + /** * serializeAws_restJson1UntagResourceCommand */ @@ -19310,6 +19375,61 @@ const de_SuspendContactRecordingCommandError = async ( } }; +/** + * deserializeAws_restJson1TagContactCommand + */ +export const de_TagContactCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return de_TagContactCommandError(output, context); + } + const contents: any = map({ + $metadata: deserializeMetadata(output), + }); + await collectBody(output.body, context); + return contents; +}; + +/** + * deserializeAws_restJson1TagContactCommandError + */ +const de_TagContactCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseErrorBody(output.body, context), + }; + const errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "InternalServiceException": + case "com.amazonaws.connect#InternalServiceException": + throw await de_InternalServiceExceptionRes(parsedOutput, context); + case "InvalidParameterException": + case "com.amazonaws.connect#InvalidParameterException": + throw await de_InvalidParameterExceptionRes(parsedOutput, context); + case "InvalidRequestException": + case "com.amazonaws.connect#InvalidRequestException": + throw await de_InvalidRequestExceptionRes(parsedOutput, context); + case "ResourceNotFoundException": + case "com.amazonaws.connect#ResourceNotFoundException": + throw await de_ResourceNotFoundExceptionRes(parsedOutput, context); + case "ThrottlingException": + case "com.amazonaws.connect#ThrottlingException": + throw await de_ThrottlingExceptionRes(parsedOutput, context); + default: + const parsedBody = parsedOutput.body; + return throwDefaultError({ + output, + parsedBody, + errorCode, + }); + } +}; + /** * deserializeAws_restJson1TagResourceCommand */ @@ -19431,6 +19551,61 @@ const de_TransferContactCommandError = async ( } }; +/** + * deserializeAws_restJson1UntagContactCommand + */ +export const de_UntagContactCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return de_UntagContactCommandError(output, context); + } + const contents: any = map({ + $metadata: deserializeMetadata(output), + }); + await collectBody(output.body, context); + return contents; +}; + +/** + * deserializeAws_restJson1UntagContactCommandError + */ +const de_UntagContactCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseErrorBody(output.body, context), + }; + const errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "InternalServiceException": + case "com.amazonaws.connect#InternalServiceException": + throw await de_InternalServiceExceptionRes(parsedOutput, context); + case "InvalidParameterException": + case "com.amazonaws.connect#InvalidParameterException": + throw await de_InvalidParameterExceptionRes(parsedOutput, context); + case "InvalidRequestException": + case "com.amazonaws.connect#InvalidRequestException": + throw await de_InvalidRequestExceptionRes(parsedOutput, context); + case "ResourceNotFoundException": + case "com.amazonaws.connect#ResourceNotFoundException": + throw await de_ResourceNotFoundExceptionRes(parsedOutput, context); + case "ThrottlingException": + case "com.amazonaws.connect#ThrottlingException": + throw await de_ThrottlingExceptionRes(parsedOutput, context); + default: + const parsedBody = parsedOutput.body; + return throwDefaultError({ + output, + parsedBody, + errorCode, + }); + } +}; + /** * deserializeAws_restJson1UntagResourceCommand */ @@ -22500,6 +22675,8 @@ const de_UserNotFoundExceptionRes = async ( // se_ContactStates omitted. +// se_ContactTagMap omitted. + // se_ControlPlaneTagFilter omitted. // se_CrossChannelBehavior omitted. @@ -23244,6 +23421,7 @@ const de_Contact = (output: any, context: __SerdeContext): Contact => { QueueInfo: (_: any) => de_QueueInfo(_, context), RelatedContactId: __expectString, ScheduledTimestamp: (_: any) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))), + Tags: _json, WisdomInfo: _json, }) as any; }; @@ -23262,6 +23440,8 @@ const de_Contact = (output: any, context: __SerdeContext): Contact => { // de_ContactReferences omitted. +// de_ContactTagMap omitted. + /** * deserializeAws_restJson1Credentials */ diff --git a/codegen/sdk-codegen/aws-models/connect.json b/codegen/sdk-codegen/aws-models/connect.json index f78cc29c8a84..d5a6e98dc69b 100644 --- a/codegen/sdk-codegen/aws-models/connect.json +++ b/codegen/sdk-codegen/aws-models/connect.json @@ -387,7 +387,7 @@ "Tags": { "target": "com.amazonaws.connect#TagMap", "traits": { - "smithy.api#documentation": "

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

    " + "smithy.api#documentation": "

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

    " } }, "LastModifiedTime": { @@ -1189,12 +1189,18 @@ { "target": "com.amazonaws.connect#SuspendContactRecording" }, + { + "target": "com.amazonaws.connect#TagContact" + }, { "target": "com.amazonaws.connect#TagResource" }, { "target": "com.amazonaws.connect#TransferContact" }, + { + "target": "com.amazonaws.connect#UntagContact" + }, { "target": "com.amazonaws.connect#UntagResource" }, @@ -3425,7 +3431,7 @@ } ], "traits": { - "smithy.api#documentation": "

    This API is in preview release for Amazon Connect and is subject to change.

    \n

    Associates a list of analytics datasets for a given Amazon Connect instance to a target account. You can\n associate multiple datasets in a single call.

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

    This API is in preview release for Amazon Connect and is subject to change.

    \n

    Associates a list of analytics datasets for a given Amazon Connect instance to a target\n account. You can associate multiple datasets in a single call.

    ", "smithy.api#http": { "method": "PUT", "uri": "/analytics-data/instance/{InstanceId}/associations", @@ -3474,7 +3480,7 @@ "Errors": { "target": "com.amazonaws.connect#ErrorResults", "traits": { - "smithy.api#documentation": "

    A list of errors for datasets that aren't successfully associated \n with the target account.

    " + "smithy.api#documentation": "

    A list of errors for datasets that aren't successfully associated with the target\n account.

    " } } }, @@ -3893,7 +3899,7 @@ "Content": { "target": "com.amazonaws.connect#ChatContent", "traits": { - "smithy.api#documentation": "

    Content of the message or event. This is required when Type is\n MESSAGE and for certain ContentTypes when Type is\n EVENT.

    \n
      \n
    • \n

      For allowed message content, see the Content parameter in the SendMessage topic\n in the Amazon Connect Participant Service API Reference.

      \n
    • \n
    • \n

      For allowed event content, see the Content parameter in the SendEvent topic in the Amazon Connect Participant Service API\n Reference.

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

    Content of the message or event. This is required when Type is\n MESSAGE and for certain ContentTypes when Type is\n EVENT.

    \n
      \n
    • \n

      For allowed message content, see the Content parameter in the SendMessage topic in the Amazon Connect Participant Service API\n Reference.

      \n
    • \n
    • \n

      For allowed event content, see the Content parameter in the SendEvent topic in the Amazon Connect Participant Service API\n Reference.

      \n
    • \n
    " } } }, @@ -4053,7 +4059,7 @@ "Tags": { "target": "com.amazonaws.connect#TagMap", "traits": { - "smithy.api#documentation": "

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

    " + "smithy.api#documentation": "

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

    " } }, "ClientToken": { @@ -4142,7 +4148,7 @@ "Tags": { "target": "com.amazonaws.connect#TagMap", "traits": { - "smithy.api#documentation": "

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

    " + "smithy.api#documentation": "

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

    " } }, "PhoneNumberStatus": { @@ -4318,6 +4324,12 @@ "traits": { "smithy.api#documentation": "

    Information about Amazon Connect Wisdom.

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

    Tags associated with the contact. This contains both Amazon Web Services generated and user-defined tags.

    " + } } }, "traits": { @@ -4442,7 +4454,7 @@ "Tags": { "target": "com.amazonaws.connect#TagMap", "traits": { - "smithy.api#documentation": "

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

    " + "smithy.api#documentation": "

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

    " } } }, @@ -4513,7 +4525,7 @@ "Tags": { "target": "com.amazonaws.connect#TagMap", "traits": { - "smithy.api#documentation": "

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

    " + "smithy.api#documentation": "

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

    " } } }, @@ -4952,6 +4964,52 @@ } } }, + "com.amazonaws.connect#ContactTagKey": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 128 + }, + "smithy.api#pattern": "^(?!aws:)[a-zA-Z+-=._:/]+$" + } + }, + "com.amazonaws.connect#ContactTagKeys": { + "type": "list", + "member": { + "target": "com.amazonaws.connect#ContactTagKey" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 6 + } + } + }, + "com.amazonaws.connect#ContactTagMap": { + "type": "map", + "key": { + "target": "com.amazonaws.connect#ContactTagKey" + }, + "value": { + "target": "com.amazonaws.connect#ContactTagValue" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 6 + } + } + }, + "com.amazonaws.connect#ContactTagValue": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 256 + } + } + }, "com.amazonaws.connect#Content": { "type": "string", "traits": { @@ -5076,7 +5134,7 @@ "Tags": { "target": "com.amazonaws.connect#TagMap", "traits": { - "smithy.api#documentation": "

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

    " + "smithy.api#documentation": "

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

    " } } }, @@ -5230,7 +5288,7 @@ "Tags": { "target": "com.amazonaws.connect#TagMap", "traits": { - "smithy.api#documentation": "

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

    " + "smithy.api#documentation": "

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

    " } }, "ClientToken": { @@ -5306,7 +5364,7 @@ "Tags": { "target": "com.amazonaws.connect#TagMap", "traits": { - "smithy.api#documentation": "

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

    " + "smithy.api#documentation": "

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

    " } } }, @@ -5524,7 +5582,7 @@ "Tags": { "target": "com.amazonaws.connect#TagMap", "traits": { - "smithy.api#documentation": "

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

    " + "smithy.api#documentation": "

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

    " } } }, @@ -5631,7 +5689,7 @@ "Tags": { "target": "com.amazonaws.connect#TagMap", "traits": { - "smithy.api#documentation": "

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

    " + "smithy.api#documentation": "

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

    " } } }, @@ -5739,7 +5797,7 @@ "Tags": { "target": "com.amazonaws.connect#TagMap", "traits": { - "smithy.api#documentation": "

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

    " + "smithy.api#documentation": "

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

    " } } }, @@ -6023,7 +6081,7 @@ "Tags": { "target": "com.amazonaws.connect#TagMap", "traits": { - "smithy.api#documentation": "

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

    " + "smithy.api#documentation": "

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

    " } } }, @@ -6144,7 +6202,7 @@ "Tags": { "target": "com.amazonaws.connect#TagMap", "traits": { - "smithy.api#documentation": "

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

    " + "smithy.api#documentation": "

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

    " } } }, @@ -6246,7 +6304,7 @@ "Tags": { "target": "com.amazonaws.connect#TagMap", "traits": { - "smithy.api#documentation": "

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

    " + "smithy.api#documentation": "

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

    " } } }, @@ -6362,7 +6420,7 @@ "Tags": { "target": "com.amazonaws.connect#TagMap", "traits": { - "smithy.api#documentation": "

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

    " + "smithy.api#documentation": "

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

    " } }, "AgentAvailabilityTimer": { @@ -6599,7 +6657,7 @@ "Tags": { "target": "com.amazonaws.connect#TagMap", "traits": { - "smithy.api#documentation": "

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

    " + "smithy.api#documentation": "

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

    " } }, "AllowedAccessControlTags": { @@ -6847,7 +6905,7 @@ "Tags": { "target": "com.amazonaws.connect#TagMap", "traits": { - "smithy.api#documentation": "

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

    " + "smithy.api#documentation": "

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

    " } } }, @@ -6938,7 +6996,7 @@ "Tags": { "target": "com.amazonaws.connect#TagMap", "traits": { - "smithy.api#documentation": "

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

    " + "smithy.api#documentation": "

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

    " } } }, @@ -7073,7 +7131,7 @@ "Tags": { "target": "com.amazonaws.connect#TagMap", "traits": { - "smithy.api#documentation": "

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

    " + "smithy.api#documentation": "

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

    " } } }, @@ -7167,7 +7225,7 @@ "Tags": { "target": "com.amazonaws.connect#TagMap", "traits": { - "smithy.api#documentation": "

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

    " + "smithy.api#documentation": "

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

    " } } }, @@ -7487,7 +7545,7 @@ "Tags": { "target": "com.amazonaws.connect#TagMap", "traits": { - "smithy.api#documentation": "

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

    " + "smithy.api#documentation": "

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

    " } } }, @@ -12163,7 +12221,7 @@ "Tags": { "target": "com.amazonaws.connect#TagMap", "traits": { - "smithy.api#documentation": "

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

    " + "smithy.api#documentation": "

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

    " } } }, @@ -12373,7 +12431,7 @@ "Tags": { "target": "com.amazonaws.connect#TagMap", "traits": { - "smithy.api#documentation": "

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

    " + "smithy.api#documentation": "

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

    " } } }, @@ -14645,7 +14703,7 @@ "Tags": { "target": "com.amazonaws.connect#TagMap", "traits": { - "smithy.api#documentation": "

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

    " + "smithy.api#documentation": "

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

    " } } }, @@ -14827,7 +14885,7 @@ "Tags": { "target": "com.amazonaws.connect#TagMap", "traits": { - "smithy.api#documentation": "

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

    " + "smithy.api#documentation": "

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

    " } }, "LastModifiedTime": { @@ -15475,7 +15533,7 @@ "Tags": { "target": "com.amazonaws.connect#TagMap", "traits": { - "smithy.api#documentation": "

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

    " + "smithy.api#documentation": "

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

    " } }, "LastModifiedTime": { @@ -15794,7 +15852,7 @@ "Tags": { "target": "com.amazonaws.connect#TagMap", "traits": { - "smithy.api#documentation": "

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

    " + "smithy.api#documentation": "

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

    " } }, "ClientToken": { @@ -16909,7 +16967,7 @@ "Results": { "target": "com.amazonaws.connect#AnalyticsDataAssociationResults", "traits": { - "smithy.api#documentation": "

    An array of successful results: DataSetId, TargetAccountId,\n ResourceShareId, ResourceShareArn. This is a paginated API, so\n nextToken is given if there are more results to be returned.

    " + "smithy.api#documentation": "

    An array of successful results: DataSetId, TargetAccountId,\n ResourceShareId, ResourceShareArn. This is a paginated API, so\n nextToken is given if there are more results to be returned.

    " } }, "NextToken": { @@ -21470,7 +21528,7 @@ "UserTags": { "target": "com.amazonaws.connect#UserTagMap", "traits": { - "smithy.api#documentation": "

    The tags used to organize, track, or control access for this resource. For example, { \"tags\": {\"key1\":\"value1\", \"key2\":\"value2\"} }. Amazon Connect users with the specified tags will be notified.

    " + "smithy.api#documentation": "

    The tags used to organize, track, or control access for this resource. For example, { \"Tags\": {\"key1\":\"value1\", \"key2\":\"value2\"} }. Amazon Connect users with the specified tags will be notified.

    " } }, "UserIds": { @@ -23673,7 +23731,7 @@ "Tags": { "target": "com.amazonaws.connect#TagMap", "traits": { - "smithy.api#documentation": "

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

    " + "smithy.api#documentation": "

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

    " } }, "LastModifiedTime": { @@ -24047,7 +24105,7 @@ "Tags": { "target": "com.amazonaws.connect#TagMap", "traits": { - "smithy.api#documentation": "

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

    " + "smithy.api#documentation": "

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

    " } }, "LastModifiedTime": { @@ -24358,7 +24416,7 @@ "Tags": { "target": "com.amazonaws.connect#TagMap", "traits": { - "smithy.api#documentation": "

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

    " + "smithy.api#documentation": "

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

    " } }, "LastModifiedTime": { @@ -25909,7 +25967,7 @@ "Tags": { "target": "com.amazonaws.connect#TagMap", "traits": { - "smithy.api#documentation": "

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

    " + "smithy.api#documentation": "

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

    " } }, "NumberOfAssociatedQueues": { @@ -26303,7 +26361,7 @@ "Tags": { "target": "com.amazonaws.connect#TagMap", "traits": { - "smithy.api#documentation": "

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

    " + "smithy.api#documentation": "

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

    " } } }, @@ -27649,7 +27707,7 @@ "Tags": { "target": "com.amazonaws.connect#TagMap", "traits": { - "smithy.api#documentation": "

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

    " + "smithy.api#documentation": "

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

    " } }, "AllowedAccessControlTags": { @@ -27800,7 +27858,7 @@ "Tags": { "target": "com.amazonaws.connect#TagMap", "traits": { - "smithy.api#documentation": "

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

    " + "smithy.api#documentation": "

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

    " } } }, @@ -27963,7 +28021,7 @@ "DestinationId": { "target": "com.amazonaws.connect#DestinationId", "traits": { - "smithy.api#documentation": "

    Chat system identifier, used in part to uniquely identify chat. This is associated with the\n Amazon Connect instance and flow to be used to start chats. For SMS, this is the phone\n number destination of inbound SMS messages represented by an Amazon Pinpoint phone number ARN.

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

    Chat system identifier, used in part to uniquely identify chat. This is associated with the\n Amazon Connect instance and flow to be used to start chats. For SMS, this is the phone\n number destination of inbound SMS messages represented by an Amazon Pinpoint phone number\n ARN.

    ", "smithy.api#required": {} } }, @@ -28331,7 +28389,7 @@ "SegmentAttributes": { "target": "com.amazonaws.connect#SegmentAttributes", "traits": { - "smithy.api#documentation": "

    A set of system defined key-value pairs stored on individual contact segments using an\n attribute map. The attributes are standard Amazon Connect attributes. They can be accessed in\n flows.

    \n

    Attribute keys can include only alphanumeric, -, and _.

    \n

    This field can be used to show channel subtype, such as connect:Guide.

    \n \n

    The types application/vnd.amazonaws.connect.message.interactive and\n application/vnd.amazonaws.connect.message.interactive.response must be present in the\n SupportedMessagingContentTypes field of this API in order to set SegmentAttributes as {\n \"connect:Subtype\": {\"valueString\" : \"connect:Guide\" }}.

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

    A set of system defined key-value pairs stored on individual contact segments using an\n attribute map. The attributes are standard Amazon Connect attributes. They can be accessed in\n flows.

    \n

    Attribute keys can include only alphanumeric, -, and _.

    \n

    This field can be used to show channel subtype, such as connect:Guide.

    \n \n

    The types application/vnd.amazonaws.connect.message.interactive and\n application/vnd.amazonaws.connect.message.interactive.response must be present in\n the SupportedMessagingContentTypes field of this API in order to set\n SegmentAttributes as { \"connect:Subtype\": {\"valueString\" : \"connect:Guide\"\n }}.

    \n
    " } } }, @@ -29593,6 +29651,77 @@ "smithy.api#documentation": "

    A leaf node condition which can be used to specify a tag condition, for example, HAVE\n BPO = 123.

    " } }, + "com.amazonaws.connect#TagContact": { + "type": "operation", + "input": { + "target": "com.amazonaws.connect#TagContactRequest" + }, + "output": { + "target": "com.amazonaws.connect#TagContactResponse" + }, + "errors": [ + { + "target": "com.amazonaws.connect#InternalServiceException" + }, + { + "target": "com.amazonaws.connect#InvalidParameterException" + }, + { + "target": "com.amazonaws.connect#InvalidRequestException" + }, + { + "target": "com.amazonaws.connect#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.connect#ThrottlingException" + } + ], + "traits": { + "smithy.api#documentation": "

    Adds the specified tags to the contact resource. For more information about this API is used, see Set up granular billing for a detailed\n view of your Amazon Connect usage.\n

    ", + "smithy.api#http": { + "method": "POST", + "uri": "/contact/tags", + "code": 200 + }, + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.connect#TagContactRequest": { + "type": "structure", + "members": { + "ContactId": { + "target": "com.amazonaws.connect#ContactId", + "traits": { + "smithy.api#documentation": "

    The identifier of the contact in this instance of Amazon Connect.

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

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

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

    The tags to be assigned to the contact resource. For example, { \"Tags\": {\"key1\":\"value1\", \"key2\":\"value2\"} }.

    \n \n

    Authorization is not supported by this tag.

    \n
    ", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.connect#TagContactResponse": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.connect#TagKey": { "type": "string", "traits": { @@ -29693,7 +29822,7 @@ "tags": { "target": "com.amazonaws.connect#TagMap", "traits": { - "smithy.api#documentation": "

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

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

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

    ", "smithy.api#required": {} } } @@ -30357,7 +30486,7 @@ "Tags": { "target": "com.amazonaws.connect#TagMap", "traits": { - "smithy.api#documentation": "

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

    " + "smithy.api#documentation": "

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

    " } }, "IsDefault": { @@ -30671,6 +30800,80 @@ } } }, + "com.amazonaws.connect#UntagContact": { + "type": "operation", + "input": { + "target": "com.amazonaws.connect#UntagContactRequest" + }, + "output": { + "target": "com.amazonaws.connect#UntagContactResponse" + }, + "errors": [ + { + "target": "com.amazonaws.connect#InternalServiceException" + }, + { + "target": "com.amazonaws.connect#InvalidParameterException" + }, + { + "target": "com.amazonaws.connect#InvalidRequestException" + }, + { + "target": "com.amazonaws.connect#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.connect#ThrottlingException" + } + ], + "traits": { + "smithy.api#documentation": "

    Removes the specified tags from the contact resource. For more information about this API is used, see Set up granular billing for a detailed\n view of your Amazon Connect usage.

    ", + "smithy.api#http": { + "method": "DELETE", + "uri": "/contact/tags/{InstanceId}/{ContactId}", + "code": 200 + }, + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.connect#UntagContactRequest": { + "type": "structure", + "members": { + "ContactId": { + "target": "com.amazonaws.connect#ContactId", + "traits": { + "smithy.api#documentation": "

    The identifier of the contact in this instance of Amazon Connect.

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

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

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

    A list of tag keys. Existing tags on the contact whose keys are members of this list will be removed.

    ", + "smithy.api#httpQuery": "TagKeys", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.connect#UntagContactResponse": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.connect#UntagResource": { "type": "operation", "input": { @@ -34690,7 +34893,7 @@ "Tags": { "target": "com.amazonaws.connect#TagMap", "traits": { - "smithy.api#documentation": "

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

    " + "smithy.api#documentation": "

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

    " } }, "Username": { @@ -35223,7 +35426,7 @@ "Tags": { "target": "com.amazonaws.connect#TagMap", "traits": { - "smithy.api#documentation": "

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

    " + "smithy.api#documentation": "

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

    " } } },