From bd19a2a651b38c8ae216ca44f204e38a6d12fa44 Mon Sep 17 00:00:00 2001 From: awstools Date: Mon, 18 Nov 2024 19:20:40 +0000 Subject: [PATCH] feat(client-customer-profiles): This release introduces Segmentation APIs and new Calculated Attribute Event Filters as part of Amazon Connect Customer Profiles service. --- clients/client-customer-profiles/README.md | 104 + .../src/CustomerProfiles.ts | 296 + .../src/CustomerProfilesClient.ts | 69 + ...GetCalculatedAttributeForProfileCommand.ts | 154 + .../src/commands/BatchGetProfileCommand.ts | 202 + ...ateCalculatedAttributeDefinitionCommand.ts | 40 + .../CreateSegmentDefinitionCommand.ts | 247 + .../commands/CreateSegmentEstimateCommand.ts | 235 + .../commands/CreateSegmentSnapshotCommand.ts | 112 + .../DeleteSegmentDefinitionCommand.ts | 108 + .../DetectProfileObjectTypeCommand.ts | 2 +- ...GetCalculatedAttributeDefinitionCommand.ts | 20 + .../commands/GetProfileObjectTypeCommand.ts | 2 +- .../GetProfileObjectTypeTemplateCommand.ts | 2 +- .../commands/GetSegmentDefinitionCommand.ts | 241 + .../src/commands/GetSegmentEstimateCommand.ts | 113 + .../commands/GetSegmentMembershipCommand.ts | 208 + .../src/commands/GetSegmentSnapshotCommand.ts | 115 + .../ListObjectTypeAttributesCommand.ts | 116 + .../ListProfileAttributeValuesCommand.ts | 115 + .../commands/ListSegmentDefinitionsCommand.ts | 125 + .../commands/PutProfileObjectTypeCommand.ts | 4 +- .../src/commands/index.ts | 13 + .../src/models/models_0.ts | 4652 +++++++++---- .../pagination/GetSimilarProfilesPaginator.ts | 24 + .../ListObjectTypeAttributesPaginator.ts | 24 + .../ListRuleBasedMatchesPaginator.ts | 24 + .../ListSegmentDefinitionsPaginator.ts | 24 + .../src/pagination/index.ts | 4 + .../src/protocols/Aws_restJson1.ts | 1261 +++- .../aws-models/customer-profiles.json | 5809 ++++++++++++----- 31 files changed, 11528 insertions(+), 2937 deletions(-) create mode 100644 clients/client-customer-profiles/src/commands/BatchGetCalculatedAttributeForProfileCommand.ts create mode 100644 clients/client-customer-profiles/src/commands/BatchGetProfileCommand.ts create mode 100644 clients/client-customer-profiles/src/commands/CreateSegmentDefinitionCommand.ts create mode 100644 clients/client-customer-profiles/src/commands/CreateSegmentEstimateCommand.ts create mode 100644 clients/client-customer-profiles/src/commands/CreateSegmentSnapshotCommand.ts create mode 100644 clients/client-customer-profiles/src/commands/DeleteSegmentDefinitionCommand.ts create mode 100644 clients/client-customer-profiles/src/commands/GetSegmentDefinitionCommand.ts create mode 100644 clients/client-customer-profiles/src/commands/GetSegmentEstimateCommand.ts create mode 100644 clients/client-customer-profiles/src/commands/GetSegmentMembershipCommand.ts create mode 100644 clients/client-customer-profiles/src/commands/GetSegmentSnapshotCommand.ts create mode 100644 clients/client-customer-profiles/src/commands/ListObjectTypeAttributesCommand.ts create mode 100644 clients/client-customer-profiles/src/commands/ListProfileAttributeValuesCommand.ts create mode 100644 clients/client-customer-profiles/src/commands/ListSegmentDefinitionsCommand.ts create mode 100644 clients/client-customer-profiles/src/pagination/GetSimilarProfilesPaginator.ts create mode 100644 clients/client-customer-profiles/src/pagination/ListObjectTypeAttributesPaginator.ts create mode 100644 clients/client-customer-profiles/src/pagination/ListRuleBasedMatchesPaginator.ts create mode 100644 clients/client-customer-profiles/src/pagination/ListSegmentDefinitionsPaginator.ts diff --git a/clients/client-customer-profiles/README.md b/clients/client-customer-profiles/README.md index 4dbc1ed4dc53..65440bcbcd08 100644 --- a/clients/client-customer-profiles/README.md +++ b/clients/client-customer-profiles/README.md @@ -229,6 +229,22 @@ AddProfileKey [Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/customer-profiles/command/AddProfileKeyCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-customer-profiles/Interface/AddProfileKeyCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-customer-profiles/Interface/AddProfileKeyCommandOutput/) + +
+ +BatchGetCalculatedAttributeForProfile + + +[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/customer-profiles/command/BatchGetCalculatedAttributeForProfileCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-customer-profiles/Interface/BatchGetCalculatedAttributeForProfileCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-customer-profiles/Interface/BatchGetCalculatedAttributeForProfileCommandOutput/) + +
+
+ +BatchGetProfile + + +[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/customer-profiles/command/BatchGetProfileCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-customer-profiles/Interface/BatchGetProfileCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-customer-profiles/Interface/BatchGetProfileCommandOutput/) +
@@ -269,6 +285,30 @@ CreateProfile [Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/customer-profiles/command/CreateProfileCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-customer-profiles/Interface/CreateProfileCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-customer-profiles/Interface/CreateProfileCommandOutput/) +
+
+ +CreateSegmentDefinition + + +[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/customer-profiles/command/CreateSegmentDefinitionCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-customer-profiles/Interface/CreateSegmentDefinitionCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-customer-profiles/Interface/CreateSegmentDefinitionCommandOutput/) + +
+
+ +CreateSegmentEstimate + + +[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/customer-profiles/command/CreateSegmentEstimateCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-customer-profiles/Interface/CreateSegmentEstimateCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-customer-profiles/Interface/CreateSegmentEstimateCommandOutput/) + +
+
+ +CreateSegmentSnapshot + + +[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/customer-profiles/command/CreateSegmentSnapshotCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-customer-profiles/Interface/CreateSegmentSnapshotCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-customer-profiles/Interface/CreateSegmentSnapshotCommandOutput/) +
@@ -333,6 +373,14 @@ DeleteProfileObjectType [Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/customer-profiles/command/DeleteProfileObjectTypeCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-customer-profiles/Interface/DeleteProfileObjectTypeCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-customer-profiles/Interface/DeleteProfileObjectTypeCommandOutput/) +
+
+ +DeleteSegmentDefinition + + +[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/customer-profiles/command/DeleteSegmentDefinitionCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-customer-profiles/Interface/DeleteSegmentDefinitionCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-customer-profiles/Interface/DeleteSegmentDefinitionCommandOutput/) +
@@ -429,6 +477,38 @@ GetProfileObjectTypeTemplate [Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/customer-profiles/command/GetProfileObjectTypeTemplateCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-customer-profiles/Interface/GetProfileObjectTypeTemplateCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-customer-profiles/Interface/GetProfileObjectTypeTemplateCommandOutput/) +
+
+ +GetSegmentDefinition + + +[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/customer-profiles/command/GetSegmentDefinitionCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-customer-profiles/Interface/GetSegmentDefinitionCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-customer-profiles/Interface/GetSegmentDefinitionCommandOutput/) + +
+
+ +GetSegmentEstimate + + +[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/customer-profiles/command/GetSegmentEstimateCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-customer-profiles/Interface/GetSegmentEstimateCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-customer-profiles/Interface/GetSegmentEstimateCommandOutput/) + +
+
+ +GetSegmentMembership + + +[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/customer-profiles/command/GetSegmentMembershipCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-customer-profiles/Interface/GetSegmentMembershipCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-customer-profiles/Interface/GetSegmentMembershipCommandOutput/) + +
+
+ +GetSegmentSnapshot + + +[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/customer-profiles/command/GetSegmentSnapshotCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-customer-profiles/Interface/GetSegmentSnapshotCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-customer-profiles/Interface/GetSegmentSnapshotCommandOutput/) +
@@ -509,6 +589,22 @@ ListIntegrations [Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/customer-profiles/command/ListIntegrationsCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-customer-profiles/Interface/ListIntegrationsCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-customer-profiles/Interface/ListIntegrationsCommandOutput/) +
+
+ +ListObjectTypeAttributes + + +[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/customer-profiles/command/ListObjectTypeAttributesCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-customer-profiles/Interface/ListObjectTypeAttributesCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-customer-profiles/Interface/ListObjectTypeAttributesCommandOutput/) + +
+
+ +ListProfileAttributeValues + + +[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/customer-profiles/command/ListProfileAttributeValuesCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-customer-profiles/Interface/ListProfileAttributeValuesCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-customer-profiles/Interface/ListProfileAttributeValuesCommandOutput/) +
@@ -541,6 +637,14 @@ ListRuleBasedMatches [Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/customer-profiles/command/ListRuleBasedMatchesCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-customer-profiles/Interface/ListRuleBasedMatchesCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-customer-profiles/Interface/ListRuleBasedMatchesCommandOutput/) +
+
+ +ListSegmentDefinitions + + +[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/customer-profiles/command/ListSegmentDefinitionsCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-customer-profiles/Interface/ListSegmentDefinitionsCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-customer-profiles/Interface/ListSegmentDefinitionsCommandOutput/) +
diff --git a/clients/client-customer-profiles/src/CustomerProfiles.ts b/clients/client-customer-profiles/src/CustomerProfiles.ts index bccbe378933d..447da29695da 100644 --- a/clients/client-customer-profiles/src/CustomerProfiles.ts +++ b/clients/client-customer-profiles/src/CustomerProfiles.ts @@ -7,6 +7,16 @@ import { AddProfileKeyCommandInput, AddProfileKeyCommandOutput, } from "./commands/AddProfileKeyCommand"; +import { + BatchGetCalculatedAttributeForProfileCommand, + BatchGetCalculatedAttributeForProfileCommandInput, + BatchGetCalculatedAttributeForProfileCommandOutput, +} from "./commands/BatchGetCalculatedAttributeForProfileCommand"; +import { + BatchGetProfileCommand, + BatchGetProfileCommandInput, + BatchGetProfileCommandOutput, +} from "./commands/BatchGetProfileCommand"; import { CreateCalculatedAttributeDefinitionCommand, CreateCalculatedAttributeDefinitionCommandInput, @@ -32,6 +42,21 @@ import { CreateProfileCommandInput, CreateProfileCommandOutput, } from "./commands/CreateProfileCommand"; +import { + CreateSegmentDefinitionCommand, + CreateSegmentDefinitionCommandInput, + CreateSegmentDefinitionCommandOutput, +} from "./commands/CreateSegmentDefinitionCommand"; +import { + CreateSegmentEstimateCommand, + CreateSegmentEstimateCommandInput, + CreateSegmentEstimateCommandOutput, +} from "./commands/CreateSegmentEstimateCommand"; +import { + CreateSegmentSnapshotCommand, + CreateSegmentSnapshotCommandInput, + CreateSegmentSnapshotCommandOutput, +} from "./commands/CreateSegmentSnapshotCommand"; import { DeleteCalculatedAttributeDefinitionCommand, DeleteCalculatedAttributeDefinitionCommandInput, @@ -72,6 +97,11 @@ import { DeleteProfileObjectTypeCommandInput, DeleteProfileObjectTypeCommandOutput, } from "./commands/DeleteProfileObjectTypeCommand"; +import { + DeleteSegmentDefinitionCommand, + DeleteSegmentDefinitionCommandInput, + DeleteSegmentDefinitionCommandOutput, +} from "./commands/DeleteSegmentDefinitionCommand"; import { DeleteWorkflowCommand, DeleteWorkflowCommandInput, @@ -124,6 +154,26 @@ import { GetProfileObjectTypeTemplateCommandInput, GetProfileObjectTypeTemplateCommandOutput, } from "./commands/GetProfileObjectTypeTemplateCommand"; +import { + GetSegmentDefinitionCommand, + GetSegmentDefinitionCommandInput, + GetSegmentDefinitionCommandOutput, +} from "./commands/GetSegmentDefinitionCommand"; +import { + GetSegmentEstimateCommand, + GetSegmentEstimateCommandInput, + GetSegmentEstimateCommandOutput, +} from "./commands/GetSegmentEstimateCommand"; +import { + GetSegmentMembershipCommand, + GetSegmentMembershipCommandInput, + GetSegmentMembershipCommandOutput, +} from "./commands/GetSegmentMembershipCommand"; +import { + GetSegmentSnapshotCommand, + GetSegmentSnapshotCommandInput, + GetSegmentSnapshotCommandOutput, +} from "./commands/GetSegmentSnapshotCommand"; import { GetSimilarProfilesCommand, GetSimilarProfilesCommandInput, @@ -166,6 +216,16 @@ import { ListIntegrationsCommandInput, ListIntegrationsCommandOutput, } from "./commands/ListIntegrationsCommand"; +import { + ListObjectTypeAttributesCommand, + ListObjectTypeAttributesCommandInput, + ListObjectTypeAttributesCommandOutput, +} from "./commands/ListObjectTypeAttributesCommand"; +import { + ListProfileAttributeValuesCommand, + ListProfileAttributeValuesCommandInput, + ListProfileAttributeValuesCommandOutput, +} from "./commands/ListProfileAttributeValuesCommand"; import { ListProfileObjectsCommand, ListProfileObjectsCommandInput, @@ -186,6 +246,11 @@ import { ListRuleBasedMatchesCommandInput, ListRuleBasedMatchesCommandOutput, } from "./commands/ListRuleBasedMatchesCommand"; +import { + ListSegmentDefinitionsCommand, + ListSegmentDefinitionsCommandInput, + ListSegmentDefinitionsCommandOutput, +} from "./commands/ListSegmentDefinitionsCommand"; import { ListTagsForResourceCommand, ListTagsForResourceCommandInput, @@ -246,11 +311,16 @@ import { CustomerProfilesClient, CustomerProfilesClientConfig } from "./Customer const commands = { AddProfileKeyCommand, + BatchGetCalculatedAttributeForProfileCommand, + BatchGetProfileCommand, CreateCalculatedAttributeDefinitionCommand, CreateDomainCommand, CreateEventStreamCommand, CreateIntegrationWorkflowCommand, CreateProfileCommand, + CreateSegmentDefinitionCommand, + CreateSegmentEstimateCommand, + CreateSegmentSnapshotCommand, DeleteCalculatedAttributeDefinitionCommand, DeleteDomainCommand, DeleteEventStreamCommand, @@ -259,6 +329,7 @@ const commands = { DeleteProfileKeyCommand, DeleteProfileObjectCommand, DeleteProfileObjectTypeCommand, + DeleteSegmentDefinitionCommand, DeleteWorkflowCommand, DetectProfileObjectTypeCommand, GetAutoMergingPreviewCommand, @@ -271,6 +342,10 @@ const commands = { GetMatchesCommand, GetProfileObjectTypeCommand, GetProfileObjectTypeTemplateCommand, + GetSegmentDefinitionCommand, + GetSegmentEstimateCommand, + GetSegmentMembershipCommand, + GetSegmentSnapshotCommand, GetSimilarProfilesCommand, GetWorkflowCommand, GetWorkflowStepsCommand, @@ -281,10 +356,13 @@ const commands = { ListEventStreamsCommand, ListIdentityResolutionJobsCommand, ListIntegrationsCommand, + ListObjectTypeAttributesCommand, + ListProfileAttributeValuesCommand, ListProfileObjectsCommand, ListProfileObjectTypesCommand, ListProfileObjectTypeTemplatesCommand, ListRuleBasedMatchesCommand, + ListSegmentDefinitionsCommand, ListTagsForResourceCommand, ListWorkflowsCommand, MergeProfilesCommand, @@ -311,6 +389,37 @@ export interface CustomerProfiles { cb: (err: any, data?: AddProfileKeyCommandOutput) => void ): void; + /** + * @see {@link BatchGetCalculatedAttributeForProfileCommand} + */ + batchGetCalculatedAttributeForProfile( + args: BatchGetCalculatedAttributeForProfileCommandInput, + options?: __HttpHandlerOptions + ): Promise; + batchGetCalculatedAttributeForProfile( + args: BatchGetCalculatedAttributeForProfileCommandInput, + cb: (err: any, data?: BatchGetCalculatedAttributeForProfileCommandOutput) => void + ): void; + batchGetCalculatedAttributeForProfile( + args: BatchGetCalculatedAttributeForProfileCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: BatchGetCalculatedAttributeForProfileCommandOutput) => void + ): void; + + /** + * @see {@link BatchGetProfileCommand} + */ + batchGetProfile( + args: BatchGetProfileCommandInput, + options?: __HttpHandlerOptions + ): Promise; + batchGetProfile(args: BatchGetProfileCommandInput, cb: (err: any, data?: BatchGetProfileCommandOutput) => void): void; + batchGetProfile( + args: BatchGetProfileCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: BatchGetProfileCommandOutput) => void + ): void; + /** * @see {@link CreateCalculatedAttributeDefinitionCommand} */ @@ -384,6 +493,57 @@ export interface CustomerProfiles { cb: (err: any, data?: CreateProfileCommandOutput) => void ): void; + /** + * @see {@link CreateSegmentDefinitionCommand} + */ + createSegmentDefinition( + args: CreateSegmentDefinitionCommandInput, + options?: __HttpHandlerOptions + ): Promise; + createSegmentDefinition( + args: CreateSegmentDefinitionCommandInput, + cb: (err: any, data?: CreateSegmentDefinitionCommandOutput) => void + ): void; + createSegmentDefinition( + args: CreateSegmentDefinitionCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: CreateSegmentDefinitionCommandOutput) => void + ): void; + + /** + * @see {@link CreateSegmentEstimateCommand} + */ + createSegmentEstimate( + args: CreateSegmentEstimateCommandInput, + options?: __HttpHandlerOptions + ): Promise; + createSegmentEstimate( + args: CreateSegmentEstimateCommandInput, + cb: (err: any, data?: CreateSegmentEstimateCommandOutput) => void + ): void; + createSegmentEstimate( + args: CreateSegmentEstimateCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: CreateSegmentEstimateCommandOutput) => void + ): void; + + /** + * @see {@link CreateSegmentSnapshotCommand} + */ + createSegmentSnapshot( + args: CreateSegmentSnapshotCommandInput, + options?: __HttpHandlerOptions + ): Promise; + createSegmentSnapshot( + args: CreateSegmentSnapshotCommandInput, + cb: (err: any, data?: CreateSegmentSnapshotCommandOutput) => void + ): void; + createSegmentSnapshot( + args: CreateSegmentSnapshotCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: CreateSegmentSnapshotCommandOutput) => void + ): void; + /** * @see {@link DeleteCalculatedAttributeDefinitionCommand} */ @@ -508,6 +668,23 @@ export interface CustomerProfiles { cb: (err: any, data?: DeleteProfileObjectTypeCommandOutput) => void ): void; + /** + * @see {@link DeleteSegmentDefinitionCommand} + */ + deleteSegmentDefinition( + args: DeleteSegmentDefinitionCommandInput, + options?: __HttpHandlerOptions + ): Promise; + deleteSegmentDefinition( + args: DeleteSegmentDefinitionCommandInput, + cb: (err: any, data?: DeleteSegmentDefinitionCommandOutput) => void + ): void; + deleteSegmentDefinition( + args: DeleteSegmentDefinitionCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: DeleteSegmentDefinitionCommandOutput) => void + ): void; + /** * @see {@link DeleteWorkflowCommand} */ @@ -691,6 +868,74 @@ export interface CustomerProfiles { cb: (err: any, data?: GetProfileObjectTypeTemplateCommandOutput) => void ): void; + /** + * @see {@link GetSegmentDefinitionCommand} + */ + getSegmentDefinition( + args: GetSegmentDefinitionCommandInput, + options?: __HttpHandlerOptions + ): Promise; + getSegmentDefinition( + args: GetSegmentDefinitionCommandInput, + cb: (err: any, data?: GetSegmentDefinitionCommandOutput) => void + ): void; + getSegmentDefinition( + args: GetSegmentDefinitionCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: GetSegmentDefinitionCommandOutput) => void + ): void; + + /** + * @see {@link GetSegmentEstimateCommand} + */ + getSegmentEstimate( + args: GetSegmentEstimateCommandInput, + options?: __HttpHandlerOptions + ): Promise; + getSegmentEstimate( + args: GetSegmentEstimateCommandInput, + cb: (err: any, data?: GetSegmentEstimateCommandOutput) => void + ): void; + getSegmentEstimate( + args: GetSegmentEstimateCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: GetSegmentEstimateCommandOutput) => void + ): void; + + /** + * @see {@link GetSegmentMembershipCommand} + */ + getSegmentMembership( + args: GetSegmentMembershipCommandInput, + options?: __HttpHandlerOptions + ): Promise; + getSegmentMembership( + args: GetSegmentMembershipCommandInput, + cb: (err: any, data?: GetSegmentMembershipCommandOutput) => void + ): void; + getSegmentMembership( + args: GetSegmentMembershipCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: GetSegmentMembershipCommandOutput) => void + ): void; + + /** + * @see {@link GetSegmentSnapshotCommand} + */ + getSegmentSnapshot( + args: GetSegmentSnapshotCommandInput, + options?: __HttpHandlerOptions + ): Promise; + getSegmentSnapshot( + args: GetSegmentSnapshotCommandInput, + cb: (err: any, data?: GetSegmentSnapshotCommandOutput) => void + ): void; + getSegmentSnapshot( + args: GetSegmentSnapshotCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: GetSegmentSnapshotCommandOutput) => void + ): void; + /** * @see {@link GetSimilarProfilesCommand} */ @@ -850,6 +1095,40 @@ export interface CustomerProfiles { cb: (err: any, data?: ListIntegrationsCommandOutput) => void ): void; + /** + * @see {@link ListObjectTypeAttributesCommand} + */ + listObjectTypeAttributes( + args: ListObjectTypeAttributesCommandInput, + options?: __HttpHandlerOptions + ): Promise; + listObjectTypeAttributes( + args: ListObjectTypeAttributesCommandInput, + cb: (err: any, data?: ListObjectTypeAttributesCommandOutput) => void + ): void; + listObjectTypeAttributes( + args: ListObjectTypeAttributesCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: ListObjectTypeAttributesCommandOutput) => void + ): void; + + /** + * @see {@link ListProfileAttributeValuesCommand} + */ + listProfileAttributeValues( + args: ListProfileAttributeValuesCommandInput, + options?: __HttpHandlerOptions + ): Promise; + listProfileAttributeValues( + args: ListProfileAttributeValuesCommandInput, + cb: (err: any, data?: ListProfileAttributeValuesCommandOutput) => void + ): void; + listProfileAttributeValues( + args: ListProfileAttributeValuesCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: ListProfileAttributeValuesCommandOutput) => void + ): void; + /** * @see {@link ListProfileObjectsCommand} */ @@ -919,6 +1198,23 @@ export interface CustomerProfiles { cb: (err: any, data?: ListRuleBasedMatchesCommandOutput) => void ): void; + /** + * @see {@link ListSegmentDefinitionsCommand} + */ + listSegmentDefinitions( + args: ListSegmentDefinitionsCommandInput, + options?: __HttpHandlerOptions + ): Promise; + listSegmentDefinitions( + args: ListSegmentDefinitionsCommandInput, + cb: (err: any, data?: ListSegmentDefinitionsCommandOutput) => void + ): void; + listSegmentDefinitions( + args: ListSegmentDefinitionsCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: ListSegmentDefinitionsCommandOutput) => void + ): void; + /** * @see {@link ListTagsForResourceCommand} */ diff --git a/clients/client-customer-profiles/src/CustomerProfilesClient.ts b/clients/client-customer-profiles/src/CustomerProfilesClient.ts index 07db0f0e6709..4ce697e0a6f0 100644 --- a/clients/client-customer-profiles/src/CustomerProfilesClient.ts +++ b/clients/client-customer-profiles/src/CustomerProfilesClient.ts @@ -54,6 +54,11 @@ import { resolveHttpAuthSchemeConfig, } from "./auth/httpAuthSchemeProvider"; import { AddProfileKeyCommandInput, AddProfileKeyCommandOutput } from "./commands/AddProfileKeyCommand"; +import { + BatchGetCalculatedAttributeForProfileCommandInput, + BatchGetCalculatedAttributeForProfileCommandOutput, +} from "./commands/BatchGetCalculatedAttributeForProfileCommand"; +import { BatchGetProfileCommandInput, BatchGetProfileCommandOutput } from "./commands/BatchGetProfileCommand"; import { CreateCalculatedAttributeDefinitionCommandInput, CreateCalculatedAttributeDefinitionCommandOutput, @@ -65,6 +70,18 @@ import { CreateIntegrationWorkflowCommandOutput, } from "./commands/CreateIntegrationWorkflowCommand"; import { CreateProfileCommandInput, CreateProfileCommandOutput } from "./commands/CreateProfileCommand"; +import { + CreateSegmentDefinitionCommandInput, + CreateSegmentDefinitionCommandOutput, +} from "./commands/CreateSegmentDefinitionCommand"; +import { + CreateSegmentEstimateCommandInput, + CreateSegmentEstimateCommandOutput, +} from "./commands/CreateSegmentEstimateCommand"; +import { + CreateSegmentSnapshotCommandInput, + CreateSegmentSnapshotCommandOutput, +} from "./commands/CreateSegmentSnapshotCommand"; import { DeleteCalculatedAttributeDefinitionCommandInput, DeleteCalculatedAttributeDefinitionCommandOutput, @@ -82,6 +99,10 @@ import { DeleteProfileObjectTypeCommandInput, DeleteProfileObjectTypeCommandOutput, } from "./commands/DeleteProfileObjectTypeCommand"; +import { + DeleteSegmentDefinitionCommandInput, + DeleteSegmentDefinitionCommandOutput, +} from "./commands/DeleteSegmentDefinitionCommand"; import { DeleteWorkflowCommandInput, DeleteWorkflowCommandOutput } from "./commands/DeleteWorkflowCommand"; import { DetectProfileObjectTypeCommandInput, @@ -115,6 +136,16 @@ import { GetProfileObjectTypeTemplateCommandInput, GetProfileObjectTypeTemplateCommandOutput, } from "./commands/GetProfileObjectTypeTemplateCommand"; +import { + GetSegmentDefinitionCommandInput, + GetSegmentDefinitionCommandOutput, +} from "./commands/GetSegmentDefinitionCommand"; +import { GetSegmentEstimateCommandInput, GetSegmentEstimateCommandOutput } from "./commands/GetSegmentEstimateCommand"; +import { + GetSegmentMembershipCommandInput, + GetSegmentMembershipCommandOutput, +} from "./commands/GetSegmentMembershipCommand"; +import { GetSegmentSnapshotCommandInput, GetSegmentSnapshotCommandOutput } from "./commands/GetSegmentSnapshotCommand"; import { GetSimilarProfilesCommandInput, GetSimilarProfilesCommandOutput } from "./commands/GetSimilarProfilesCommand"; import { GetWorkflowCommandInput, GetWorkflowCommandOutput } from "./commands/GetWorkflowCommand"; import { GetWorkflowStepsCommandInput, GetWorkflowStepsCommandOutput } from "./commands/GetWorkflowStepsCommand"; @@ -137,6 +168,14 @@ import { ListIdentityResolutionJobsCommandOutput, } from "./commands/ListIdentityResolutionJobsCommand"; import { ListIntegrationsCommandInput, ListIntegrationsCommandOutput } from "./commands/ListIntegrationsCommand"; +import { + ListObjectTypeAttributesCommandInput, + ListObjectTypeAttributesCommandOutput, +} from "./commands/ListObjectTypeAttributesCommand"; +import { + ListProfileAttributeValuesCommandInput, + ListProfileAttributeValuesCommandOutput, +} from "./commands/ListProfileAttributeValuesCommand"; import { ListProfileObjectsCommandInput, ListProfileObjectsCommandOutput } from "./commands/ListProfileObjectsCommand"; import { ListProfileObjectTypesCommandInput, @@ -150,6 +189,10 @@ import { ListRuleBasedMatchesCommandInput, ListRuleBasedMatchesCommandOutput, } from "./commands/ListRuleBasedMatchesCommand"; +import { + ListSegmentDefinitionsCommandInput, + ListSegmentDefinitionsCommandOutput, +} from "./commands/ListSegmentDefinitionsCommand"; import { ListTagsForResourceCommandInput, ListTagsForResourceCommandOutput, @@ -187,11 +230,16 @@ export { __Client }; */ export type ServiceInputTypes = | AddProfileKeyCommandInput + | BatchGetCalculatedAttributeForProfileCommandInput + | BatchGetProfileCommandInput | CreateCalculatedAttributeDefinitionCommandInput | CreateDomainCommandInput | CreateEventStreamCommandInput | CreateIntegrationWorkflowCommandInput | CreateProfileCommandInput + | CreateSegmentDefinitionCommandInput + | CreateSegmentEstimateCommandInput + | CreateSegmentSnapshotCommandInput | DeleteCalculatedAttributeDefinitionCommandInput | DeleteDomainCommandInput | DeleteEventStreamCommandInput @@ -200,6 +248,7 @@ export type ServiceInputTypes = | DeleteProfileKeyCommandInput | DeleteProfileObjectCommandInput | DeleteProfileObjectTypeCommandInput + | DeleteSegmentDefinitionCommandInput | DeleteWorkflowCommandInput | DetectProfileObjectTypeCommandInput | GetAutoMergingPreviewCommandInput @@ -212,6 +261,10 @@ export type ServiceInputTypes = | GetMatchesCommandInput | GetProfileObjectTypeCommandInput | GetProfileObjectTypeTemplateCommandInput + | GetSegmentDefinitionCommandInput + | GetSegmentEstimateCommandInput + | GetSegmentMembershipCommandInput + | GetSegmentSnapshotCommandInput | GetSimilarProfilesCommandInput | GetWorkflowCommandInput | GetWorkflowStepsCommandInput @@ -222,10 +275,13 @@ export type ServiceInputTypes = | ListEventStreamsCommandInput | ListIdentityResolutionJobsCommandInput | ListIntegrationsCommandInput + | ListObjectTypeAttributesCommandInput + | ListProfileAttributeValuesCommandInput | ListProfileObjectTypeTemplatesCommandInput | ListProfileObjectTypesCommandInput | ListProfileObjectsCommandInput | ListRuleBasedMatchesCommandInput + | ListSegmentDefinitionsCommandInput | ListTagsForResourceCommandInput | ListWorkflowsCommandInput | MergeProfilesCommandInput @@ -244,11 +300,16 @@ export type ServiceInputTypes = */ export type ServiceOutputTypes = | AddProfileKeyCommandOutput + | BatchGetCalculatedAttributeForProfileCommandOutput + | BatchGetProfileCommandOutput | CreateCalculatedAttributeDefinitionCommandOutput | CreateDomainCommandOutput | CreateEventStreamCommandOutput | CreateIntegrationWorkflowCommandOutput | CreateProfileCommandOutput + | CreateSegmentDefinitionCommandOutput + | CreateSegmentEstimateCommandOutput + | CreateSegmentSnapshotCommandOutput | DeleteCalculatedAttributeDefinitionCommandOutput | DeleteDomainCommandOutput | DeleteEventStreamCommandOutput @@ -257,6 +318,7 @@ export type ServiceOutputTypes = | DeleteProfileKeyCommandOutput | DeleteProfileObjectCommandOutput | DeleteProfileObjectTypeCommandOutput + | DeleteSegmentDefinitionCommandOutput | DeleteWorkflowCommandOutput | DetectProfileObjectTypeCommandOutput | GetAutoMergingPreviewCommandOutput @@ -269,6 +331,10 @@ export type ServiceOutputTypes = | GetMatchesCommandOutput | GetProfileObjectTypeCommandOutput | GetProfileObjectTypeTemplateCommandOutput + | GetSegmentDefinitionCommandOutput + | GetSegmentEstimateCommandOutput + | GetSegmentMembershipCommandOutput + | GetSegmentSnapshotCommandOutput | GetSimilarProfilesCommandOutput | GetWorkflowCommandOutput | GetWorkflowStepsCommandOutput @@ -279,10 +345,13 @@ export type ServiceOutputTypes = | ListEventStreamsCommandOutput | ListIdentityResolutionJobsCommandOutput | ListIntegrationsCommandOutput + | ListObjectTypeAttributesCommandOutput + | ListProfileAttributeValuesCommandOutput | ListProfileObjectTypeTemplatesCommandOutput | ListProfileObjectTypesCommandOutput | ListProfileObjectsCommandOutput | ListRuleBasedMatchesCommandOutput + | ListSegmentDefinitionsCommandOutput | ListTagsForResourceCommandOutput | ListWorkflowsCommandOutput | MergeProfilesCommandOutput diff --git a/clients/client-customer-profiles/src/commands/BatchGetCalculatedAttributeForProfileCommand.ts b/clients/client-customer-profiles/src/commands/BatchGetCalculatedAttributeForProfileCommand.ts new file mode 100644 index 000000000000..5bf124a9168f --- /dev/null +++ b/clients/client-customer-profiles/src/commands/BatchGetCalculatedAttributeForProfileCommand.ts @@ -0,0 +1,154 @@ +// 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 { CustomerProfilesClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../CustomerProfilesClient"; +import { commonParams } from "../endpoint/EndpointParameters"; +import { + BatchGetCalculatedAttributeForProfileRequest, + BatchGetCalculatedAttributeForProfileRequestFilterSensitiveLog, + BatchGetCalculatedAttributeForProfileResponse, + BatchGetCalculatedAttributeForProfileResponseFilterSensitiveLog, +} from "../models/models_0"; +import { + de_BatchGetCalculatedAttributeForProfileCommand, + se_BatchGetCalculatedAttributeForProfileCommand, +} from "../protocols/Aws_restJson1"; + +/** + * @public + */ +export type { __MetadataBearer }; +export { $Command }; +/** + * @public + * + * The input for {@link BatchGetCalculatedAttributeForProfileCommand}. + */ +export interface BatchGetCalculatedAttributeForProfileCommandInput + extends BatchGetCalculatedAttributeForProfileRequest {} +/** + * @public + * + * The output of {@link BatchGetCalculatedAttributeForProfileCommand}. + */ +export interface BatchGetCalculatedAttributeForProfileCommandOutput + extends BatchGetCalculatedAttributeForProfileResponse, + __MetadataBearer {} + +/** + *

Fetch the possible attribute values given the attribute name.

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { CustomerProfilesClient, BatchGetCalculatedAttributeForProfileCommand } from "@aws-sdk/client-customer-profiles"; // ES Modules import + * // const { CustomerProfilesClient, BatchGetCalculatedAttributeForProfileCommand } = require("@aws-sdk/client-customer-profiles"); // CommonJS import + * const client = new CustomerProfilesClient(config); + * const input = { // BatchGetCalculatedAttributeForProfileRequest + * CalculatedAttributeName: "STRING_VALUE", // required + * DomainName: "STRING_VALUE", // required + * ProfileIds: [ // BatchGetCalculatedAttributeForProfileIdList // required + * "STRING_VALUE", + * ], + * ConditionOverrides: { // ConditionOverrides + * Range: { // RangeOverride + * Start: Number("int"), // required + * End: Number("int"), + * Unit: "DAYS", // required + * }, + * }, + * }; + * const command = new BatchGetCalculatedAttributeForProfileCommand(input); + * const response = await client.send(command); + * // { // BatchGetCalculatedAttributeForProfileResponse + * // Errors: [ // BatchGetCalculatedAttributeForProfileErrorList + * // { // BatchGetCalculatedAttributeForProfileError + * // Code: "STRING_VALUE", // required + * // Message: "STRING_VALUE", // required + * // ProfileId: "STRING_VALUE", // required + * // }, + * // ], + * // CalculatedAttributeValues: [ // CalculatedAttributeValueList + * // { // CalculatedAttributeValue + * // CalculatedAttributeName: "STRING_VALUE", + * // DisplayName: "STRING_VALUE", + * // IsDataPartial: "STRING_VALUE", + * // ProfileId: "STRING_VALUE", + * // Value: "STRING_VALUE", + * // }, + * // ], + * // ConditionOverrides: { // ConditionOverrides + * // Range: { // RangeOverride + * // Start: Number("int"), // required + * // End: Number("int"), + * // Unit: "DAYS", // required + * // }, + * // }, + * // }; + * + * ``` + * + * @param BatchGetCalculatedAttributeForProfileCommandInput - {@link BatchGetCalculatedAttributeForProfileCommandInput} + * @returns {@link BatchGetCalculatedAttributeForProfileCommandOutput} + * @see {@link BatchGetCalculatedAttributeForProfileCommandInput} for command's `input` shape. + * @see {@link BatchGetCalculatedAttributeForProfileCommandOutput} for command's `response` shape. + * @see {@link CustomerProfilesClientResolvedConfig | config} for CustomerProfilesClient's `config` shape. + * + * @throws {@link AccessDeniedException} (client fault) + *

You do not have sufficient access to perform this action.

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

The input you provided is invalid.

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

An internal service error occurred.

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

The requested resource does not exist, or access was denied.

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

You exceeded the maximum number of requests.

+ * + * @throws {@link CustomerProfilesServiceException} + *

Base exception class for all service exceptions from CustomerProfiles service.

+ * + * @public + */ +export class BatchGetCalculatedAttributeForProfileCommand extends $Command + .classBuilder< + BatchGetCalculatedAttributeForProfileCommandInput, + BatchGetCalculatedAttributeForProfileCommandOutput, + CustomerProfilesClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes + >() + .ep(commonParams) + .m(function (this: any, Command: any, cs: any, config: CustomerProfilesClientResolvedConfig, o: any) { + return [ + getSerdePlugin(config, this.serialize, this.deserialize), + getEndpointPlugin(config, Command.getEndpointParameterInstructions()), + ]; + }) + .s("CustomerProfiles_20200815", "BatchGetCalculatedAttributeForProfile", {}) + .n("CustomerProfilesClient", "BatchGetCalculatedAttributeForProfileCommand") + .f( + BatchGetCalculatedAttributeForProfileRequestFilterSensitiveLog, + BatchGetCalculatedAttributeForProfileResponseFilterSensitiveLog + ) + .ser(se_BatchGetCalculatedAttributeForProfileCommand) + .de(de_BatchGetCalculatedAttributeForProfileCommand) + .build() { + /** @internal type navigation helper, not in runtime. */ + protected declare static __types: { + api: { + input: BatchGetCalculatedAttributeForProfileRequest; + output: BatchGetCalculatedAttributeForProfileResponse; + }; + sdk: { + input: BatchGetCalculatedAttributeForProfileCommandInput; + output: BatchGetCalculatedAttributeForProfileCommandOutput; + }; + }; +} diff --git a/clients/client-customer-profiles/src/commands/BatchGetProfileCommand.ts b/clients/client-customer-profiles/src/commands/BatchGetProfileCommand.ts new file mode 100644 index 000000000000..6d9675abc8f4 --- /dev/null +++ b/clients/client-customer-profiles/src/commands/BatchGetProfileCommand.ts @@ -0,0 +1,202 @@ +// 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 { CustomerProfilesClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../CustomerProfilesClient"; +import { commonParams } from "../endpoint/EndpointParameters"; +import { + BatchGetProfileRequest, + BatchGetProfileResponse, + BatchGetProfileResponseFilterSensitiveLog, +} from "../models/models_0"; +import { de_BatchGetProfileCommand, se_BatchGetProfileCommand } from "../protocols/Aws_restJson1"; + +/** + * @public + */ +export type { __MetadataBearer }; +export { $Command }; +/** + * @public + * + * The input for {@link BatchGetProfileCommand}. + */ +export interface BatchGetProfileCommandInput extends BatchGetProfileRequest {} +/** + * @public + * + * The output of {@link BatchGetProfileCommand}. + */ +export interface BatchGetProfileCommandOutput extends BatchGetProfileResponse, __MetadataBearer {} + +/** + *

Get a batch of profiles.

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { CustomerProfilesClient, BatchGetProfileCommand } from "@aws-sdk/client-customer-profiles"; // ES Modules import + * // const { CustomerProfilesClient, BatchGetProfileCommand } = require("@aws-sdk/client-customer-profiles"); // CommonJS import + * const client = new CustomerProfilesClient(config); + * const input = { // BatchGetProfileRequest + * DomainName: "STRING_VALUE", // required + * ProfileIds: [ // BatchGetProfileIdList // required + * "STRING_VALUE", + * ], + * }; + * const command = new BatchGetProfileCommand(input); + * const response = await client.send(command); + * // { // BatchGetProfileResponse + * // Errors: [ // BatchGetProfileErrorList + * // { // BatchGetProfileError + * // Code: "STRING_VALUE", // required + * // Message: "STRING_VALUE", // required + * // ProfileId: "STRING_VALUE", // required + * // }, + * // ], + * // Profiles: [ // ProfileList + * // { // Profile + * // ProfileId: "STRING_VALUE", + * // AccountNumber: "STRING_VALUE", + * // AdditionalInformation: "STRING_VALUE", + * // PartyType: "INDIVIDUAL" || "BUSINESS" || "OTHER", + * // BusinessName: "STRING_VALUE", + * // FirstName: "STRING_VALUE", + * // MiddleName: "STRING_VALUE", + * // LastName: "STRING_VALUE", + * // BirthDate: "STRING_VALUE", + * // Gender: "MALE" || "FEMALE" || "UNSPECIFIED", + * // PhoneNumber: "STRING_VALUE", + * // MobilePhoneNumber: "STRING_VALUE", + * // HomePhoneNumber: "STRING_VALUE", + * // BusinessPhoneNumber: "STRING_VALUE", + * // EmailAddress: "STRING_VALUE", + * // PersonalEmailAddress: "STRING_VALUE", + * // BusinessEmailAddress: "STRING_VALUE", + * // Address: { // Address + * // Address1: "STRING_VALUE", + * // Address2: "STRING_VALUE", + * // Address3: "STRING_VALUE", + * // Address4: "STRING_VALUE", + * // City: "STRING_VALUE", + * // County: "STRING_VALUE", + * // State: "STRING_VALUE", + * // Province: "STRING_VALUE", + * // Country: "STRING_VALUE", + * // PostalCode: "STRING_VALUE", + * // }, + * // ShippingAddress: { + * // Address1: "STRING_VALUE", + * // Address2: "STRING_VALUE", + * // Address3: "STRING_VALUE", + * // Address4: "STRING_VALUE", + * // City: "STRING_VALUE", + * // County: "STRING_VALUE", + * // State: "STRING_VALUE", + * // Province: "STRING_VALUE", + * // Country: "STRING_VALUE", + * // PostalCode: "STRING_VALUE", + * // }, + * // MailingAddress: { + * // Address1: "STRING_VALUE", + * // Address2: "STRING_VALUE", + * // Address3: "STRING_VALUE", + * // Address4: "STRING_VALUE", + * // City: "STRING_VALUE", + * // County: "STRING_VALUE", + * // State: "STRING_VALUE", + * // Province: "STRING_VALUE", + * // Country: "STRING_VALUE", + * // PostalCode: "STRING_VALUE", + * // }, + * // BillingAddress: { + * // Address1: "STRING_VALUE", + * // Address2: "STRING_VALUE", + * // Address3: "STRING_VALUE", + * // Address4: "STRING_VALUE", + * // City: "STRING_VALUE", + * // County: "STRING_VALUE", + * // State: "STRING_VALUE", + * // Province: "STRING_VALUE", + * // Country: "STRING_VALUE", + * // PostalCode: "STRING_VALUE", + * // }, + * // Attributes: { // Attributes + * // "": "STRING_VALUE", + * // }, + * // FoundByItems: [ // foundByList + * // { // FoundByKeyValue + * // KeyName: "STRING_VALUE", + * // Values: [ // requestValueList + * // "STRING_VALUE", + * // ], + * // }, + * // ], + * // PartyTypeString: "STRING_VALUE", + * // GenderString: "STRING_VALUE", + * // }, + * // ], + * // }; + * + * ``` + * + * @param BatchGetProfileCommandInput - {@link BatchGetProfileCommandInput} + * @returns {@link BatchGetProfileCommandOutput} + * @see {@link BatchGetProfileCommandInput} for command's `input` shape. + * @see {@link BatchGetProfileCommandOutput} for command's `response` shape. + * @see {@link CustomerProfilesClientResolvedConfig | config} for CustomerProfilesClient's `config` shape. + * + * @throws {@link AccessDeniedException} (client fault) + *

You do not have sufficient access to perform this action.

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

The input you provided is invalid.

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

An internal service error occurred.

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

The requested resource does not exist, or access was denied.

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

You exceeded the maximum number of requests.

+ * + * @throws {@link CustomerProfilesServiceException} + *

Base exception class for all service exceptions from CustomerProfiles service.

+ * + * @public + */ +export class BatchGetProfileCommand extends $Command + .classBuilder< + BatchGetProfileCommandInput, + BatchGetProfileCommandOutput, + CustomerProfilesClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes + >() + .ep(commonParams) + .m(function (this: any, Command: any, cs: any, config: CustomerProfilesClientResolvedConfig, o: any) { + return [ + getSerdePlugin(config, this.serialize, this.deserialize), + getEndpointPlugin(config, Command.getEndpointParameterInstructions()), + ]; + }) + .s("CustomerProfiles_20200815", "BatchGetProfile", {}) + .n("CustomerProfilesClient", "BatchGetProfileCommand") + .f(void 0, BatchGetProfileResponseFilterSensitiveLog) + .ser(se_BatchGetProfileCommand) + .de(de_BatchGetProfileCommand) + .build() { + /** @internal type navigation helper, not in runtime. */ + protected declare static __types: { + api: { + input: BatchGetProfileRequest; + output: BatchGetProfileResponse; + }; + sdk: { + input: BatchGetProfileCommandInput; + output: BatchGetProfileCommandOutput; + }; + }; +} diff --git a/clients/client-customer-profiles/src/commands/CreateCalculatedAttributeDefinitionCommand.ts b/clients/client-customer-profiles/src/commands/CreateCalculatedAttributeDefinitionCommand.ts index 3a83c8a9e752..d6089aa2d142 100644 --- a/clients/client-customer-profiles/src/commands/CreateCalculatedAttributeDefinitionCommand.ts +++ b/clients/client-customer-profiles/src/commands/CreateCalculatedAttributeDefinitionCommand.ts @@ -74,6 +74,26 @@ export interface CreateCalculatedAttributeDefinitionCommandOutput * Operator: "EQUAL_TO" || "GREATER_THAN" || "LESS_THAN" || "NOT_EQUAL_TO", // required * }, * }, + * Filter: { // Filter + * Include: "ALL" || "ANY" || "NONE", // required + * Groups: [ // GroupList // required + * { // FilterGroup + * Type: "ALL" || "ANY" || "NONE", // required + * Dimensions: [ // FilterDimensionList // required + * { // FilterDimension + * Attributes: { // AttributeMap // required + * "": { // FilterAttributeDimension + * DimensionType: "INCLUSIVE" || "EXCLUSIVE" || "CONTAINS" || "BEGINS_WITH" || "ENDS_WITH" || "BEFORE" || "AFTER" || "BETWEEN" || "NOT_BETWEEN" || "ON" || "GREATER_THAN" || "LESS_THAN" || "GREATER_THAN_OR_EQUAL" || "LESS_THAN_OR_EQUAL" || "EQUAL", // required + * Values: [ // ValueList // required + * "STRING_VALUE", + * ], + * }, + * }, + * }, + * ], + * }, + * ], + * }, * Statistic: "FIRST_OCCURRENCE" || "LAST_OCCURRENCE" || "COUNT" || "SUM" || "MINIMUM" || "MAXIMUM" || "AVERAGE" || "MAX_OCCURRENCE", // required * Tags: { // TagMap * "": "STRING_VALUE", @@ -104,6 +124,26 @@ export interface CreateCalculatedAttributeDefinitionCommandOutput * // Operator: "EQUAL_TO" || "GREATER_THAN" || "LESS_THAN" || "NOT_EQUAL_TO", // required * // }, * // }, + * // Filter: { // Filter + * // Include: "ALL" || "ANY" || "NONE", // required + * // Groups: [ // GroupList // required + * // { // FilterGroup + * // Type: "ALL" || "ANY" || "NONE", // required + * // Dimensions: [ // FilterDimensionList // required + * // { // FilterDimension + * // Attributes: { // AttributeMap // required + * // "": { // FilterAttributeDimension + * // DimensionType: "INCLUSIVE" || "EXCLUSIVE" || "CONTAINS" || "BEGINS_WITH" || "ENDS_WITH" || "BEFORE" || "AFTER" || "BETWEEN" || "NOT_BETWEEN" || "ON" || "GREATER_THAN" || "LESS_THAN" || "GREATER_THAN_OR_EQUAL" || "LESS_THAN_OR_EQUAL" || "EQUAL", // required + * // Values: [ // ValueList // required + * // "STRING_VALUE", + * // ], + * // }, + * // }, + * // }, + * // ], + * // }, + * // ], + * // }, * // Statistic: "FIRST_OCCURRENCE" || "LAST_OCCURRENCE" || "COUNT" || "SUM" || "MINIMUM" || "MAXIMUM" || "AVERAGE" || "MAX_OCCURRENCE", * // CreatedAt: new Date("TIMESTAMP"), * // LastUpdatedAt: new Date("TIMESTAMP"), diff --git a/clients/client-customer-profiles/src/commands/CreateSegmentDefinitionCommand.ts b/clients/client-customer-profiles/src/commands/CreateSegmentDefinitionCommand.ts new file mode 100644 index 000000000000..82bf7444b022 --- /dev/null +++ b/clients/client-customer-profiles/src/commands/CreateSegmentDefinitionCommand.ts @@ -0,0 +1,247 @@ +// 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 { CustomerProfilesClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../CustomerProfilesClient"; +import { commonParams } from "../endpoint/EndpointParameters"; +import { + CreateSegmentDefinitionRequest, + CreateSegmentDefinitionRequestFilterSensitiveLog, + CreateSegmentDefinitionResponse, + CreateSegmentDefinitionResponseFilterSensitiveLog, +} from "../models/models_0"; +import { de_CreateSegmentDefinitionCommand, se_CreateSegmentDefinitionCommand } from "../protocols/Aws_restJson1"; + +/** + * @public + */ +export type { __MetadataBearer }; +export { $Command }; +/** + * @public + * + * The input for {@link CreateSegmentDefinitionCommand}. + */ +export interface CreateSegmentDefinitionCommandInput extends CreateSegmentDefinitionRequest {} +/** + * @public + * + * The output of {@link CreateSegmentDefinitionCommand}. + */ +export interface CreateSegmentDefinitionCommandOutput extends CreateSegmentDefinitionResponse, __MetadataBearer {} + +/** + *

Creates a segment definition associated to the given domain.

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { CustomerProfilesClient, CreateSegmentDefinitionCommand } from "@aws-sdk/client-customer-profiles"; // ES Modules import + * // const { CustomerProfilesClient, CreateSegmentDefinitionCommand } = require("@aws-sdk/client-customer-profiles"); // CommonJS import + * const client = new CustomerProfilesClient(config); + * const input = { // CreateSegmentDefinitionRequest + * DomainName: "STRING_VALUE", // required + * SegmentDefinitionName: "STRING_VALUE", // required + * DisplayName: "STRING_VALUE", // required + * Description: "STRING_VALUE", + * SegmentGroups: { // SegmentGroup + * Groups: [ // SegmentGroupList + * { // Group + * Dimensions: [ // DimensionList + * { // Dimension Union: only one key present + * ProfileAttributes: { // ProfileAttributes + * AccountNumber: { // ProfileDimension + * DimensionType: "INCLUSIVE" || "EXCLUSIVE" || "CONTAINS" || "BEGINS_WITH" || "ENDS_WITH", // required + * Values: [ // Values // required + * "STRING_VALUE", + * ], + * }, + * AdditionalInformation: { // ExtraLengthValueProfileDimension + * DimensionType: "INCLUSIVE" || "EXCLUSIVE" || "CONTAINS" || "BEGINS_WITH" || "ENDS_WITH", // required + * Values: [ // ExtraLengthValues // required + * "STRING_VALUE", + * ], + * }, + * FirstName: { + * DimensionType: "INCLUSIVE" || "EXCLUSIVE" || "CONTAINS" || "BEGINS_WITH" || "ENDS_WITH", // required + * Values: [ // required + * "STRING_VALUE", + * ], + * }, + * LastName: { + * DimensionType: "INCLUSIVE" || "EXCLUSIVE" || "CONTAINS" || "BEGINS_WITH" || "ENDS_WITH", // required + * Values: [ // required + * "STRING_VALUE", + * ], + * }, + * MiddleName: { + * DimensionType: "INCLUSIVE" || "EXCLUSIVE" || "CONTAINS" || "BEGINS_WITH" || "ENDS_WITH", // required + * Values: [ // required + * "STRING_VALUE", + * ], + * }, + * GenderString: { + * DimensionType: "INCLUSIVE" || "EXCLUSIVE" || "CONTAINS" || "BEGINS_WITH" || "ENDS_WITH", // required + * Values: [ // required + * "STRING_VALUE", + * ], + * }, + * PartyTypeString: "", + * BirthDate: { // DateDimension + * DimensionType: "BEFORE" || "AFTER" || "BETWEEN" || "NOT_BETWEEN" || "ON", // required + * Values: [ // DateValues // required + * "STRING_VALUE", + * ], + * }, + * PhoneNumber: "", + * BusinessName: "", + * BusinessPhoneNumber: "", + * HomePhoneNumber: "", + * MobilePhoneNumber: "", + * EmailAddress: "", + * PersonalEmailAddress: "", + * BusinessEmailAddress: "", + * Address: { // AddressDimension + * City: "", + * Country: "", + * County: "", + * PostalCode: "", + * Province: "", + * State: "", + * }, + * ShippingAddress: { + * City: "", + * Country: "", + * County: "", + * PostalCode: "", + * Province: "", + * State: "", + * }, + * MailingAddress: { + * City: "", + * Country: "", + * County: "", + * PostalCode: "", + * Province: "", + * State: "", + * }, + * BillingAddress: { + * City: "", + * Country: "", + * County: "", + * PostalCode: "", + * Province: "", + * State: "", + * }, + * Attributes: { // CustomAttributes + * "": { // AttributeDimension + * DimensionType: "INCLUSIVE" || "EXCLUSIVE" || "CONTAINS" || "BEGINS_WITH" || "ENDS_WITH" || "BEFORE" || "AFTER" || "BETWEEN" || "NOT_BETWEEN" || "ON" || "GREATER_THAN" || "LESS_THAN" || "GREATER_THAN_OR_EQUAL" || "LESS_THAN_OR_EQUAL" || "EQUAL", // required + * Values: "", // required + * }, + * }, + * }, + * CalculatedAttributes: { // CalculatedCustomAttributes + * "": { // CalculatedAttributeDimension + * DimensionType: "INCLUSIVE" || "EXCLUSIVE" || "CONTAINS" || "BEGINS_WITH" || "ENDS_WITH" || "BEFORE" || "AFTER" || "BETWEEN" || "NOT_BETWEEN" || "ON" || "GREATER_THAN" || "LESS_THAN" || "GREATER_THAN_OR_EQUAL" || "LESS_THAN_OR_EQUAL" || "EQUAL", // required + * Values: "", // required + * ConditionOverrides: { // ConditionOverrides + * Range: { // RangeOverride + * Start: Number("int"), // required + * End: Number("int"), + * Unit: "DAYS", // required + * }, + * }, + * }, + * }, + * }, + * ], + * SourceSegments: [ // SourceSegmentList + * { // SourceSegment + * SegmentDefinitionName: "STRING_VALUE", + * }, + * ], + * SourceType: "ALL" || "ANY" || "NONE", + * Type: "ALL" || "ANY" || "NONE", + * }, + * ], + * Include: "ALL" || "ANY" || "NONE", + * }, + * Tags: { // TagMap + * "": "STRING_VALUE", + * }, + * }; + * const command = new CreateSegmentDefinitionCommand(input); + * const response = await client.send(command); + * // { // CreateSegmentDefinitionResponse + * // SegmentDefinitionName: "STRING_VALUE", // required + * // DisplayName: "STRING_VALUE", + * // Description: "STRING_VALUE", + * // CreatedAt: new Date("TIMESTAMP"), + * // SegmentDefinitionArn: "STRING_VALUE", + * // Tags: { // TagMap + * // "": "STRING_VALUE", + * // }, + * // }; + * + * ``` + * + * @param CreateSegmentDefinitionCommandInput - {@link CreateSegmentDefinitionCommandInput} + * @returns {@link CreateSegmentDefinitionCommandOutput} + * @see {@link CreateSegmentDefinitionCommandInput} for command's `input` shape. + * @see {@link CreateSegmentDefinitionCommandOutput} for command's `response` shape. + * @see {@link CustomerProfilesClientResolvedConfig | config} for CustomerProfilesClient's `config` shape. + * + * @throws {@link AccessDeniedException} (client fault) + *

You do not have sufficient access to perform this action.

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

The input you provided is invalid.

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

An internal service error occurred.

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

The requested resource does not exist, or access was denied.

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

You exceeded the maximum number of requests.

+ * + * @throws {@link CustomerProfilesServiceException} + *

Base exception class for all service exceptions from CustomerProfiles service.

+ * + * @public + */ +export class CreateSegmentDefinitionCommand extends $Command + .classBuilder< + CreateSegmentDefinitionCommandInput, + CreateSegmentDefinitionCommandOutput, + CustomerProfilesClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes + >() + .ep(commonParams) + .m(function (this: any, Command: any, cs: any, config: CustomerProfilesClientResolvedConfig, o: any) { + return [ + getSerdePlugin(config, this.serialize, this.deserialize), + getEndpointPlugin(config, Command.getEndpointParameterInstructions()), + ]; + }) + .s("CustomerProfiles_20200815", "CreateSegmentDefinition", {}) + .n("CustomerProfilesClient", "CreateSegmentDefinitionCommand") + .f(CreateSegmentDefinitionRequestFilterSensitiveLog, CreateSegmentDefinitionResponseFilterSensitiveLog) + .ser(se_CreateSegmentDefinitionCommand) + .de(de_CreateSegmentDefinitionCommand) + .build() { + /** @internal type navigation helper, not in runtime. */ + protected declare static __types: { + api: { + input: CreateSegmentDefinitionRequest; + output: CreateSegmentDefinitionResponse; + }; + sdk: { + input: CreateSegmentDefinitionCommandInput; + output: CreateSegmentDefinitionCommandOutput; + }; + }; +} diff --git a/clients/client-customer-profiles/src/commands/CreateSegmentEstimateCommand.ts b/clients/client-customer-profiles/src/commands/CreateSegmentEstimateCommand.ts new file mode 100644 index 000000000000..6ac2be51e918 --- /dev/null +++ b/clients/client-customer-profiles/src/commands/CreateSegmentEstimateCommand.ts @@ -0,0 +1,235 @@ +// 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 { CustomerProfilesClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../CustomerProfilesClient"; +import { commonParams } from "../endpoint/EndpointParameters"; +import { + CreateSegmentEstimateRequest, + CreateSegmentEstimateRequestFilterSensitiveLog, + CreateSegmentEstimateResponse, +} from "../models/models_0"; +import { de_CreateSegmentEstimateCommand, se_CreateSegmentEstimateCommand } from "../protocols/Aws_restJson1"; + +/** + * @public + */ +export type { __MetadataBearer }; +export { $Command }; +/** + * @public + * + * The input for {@link CreateSegmentEstimateCommand}. + */ +export interface CreateSegmentEstimateCommandInput extends CreateSegmentEstimateRequest {} +/** + * @public + * + * The output of {@link CreateSegmentEstimateCommand}. + */ +export interface CreateSegmentEstimateCommandOutput extends CreateSegmentEstimateResponse, __MetadataBearer {} + +/** + *

Creates a segment estimate query.

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { CustomerProfilesClient, CreateSegmentEstimateCommand } from "@aws-sdk/client-customer-profiles"; // ES Modules import + * // const { CustomerProfilesClient, CreateSegmentEstimateCommand } = require("@aws-sdk/client-customer-profiles"); // CommonJS import + * const client = new CustomerProfilesClient(config); + * const input = { // CreateSegmentEstimateRequest + * DomainName: "STRING_VALUE", // required + * SegmentQuery: { // SegmentGroupStructure + * Groups: [ // SegmentGroupList + * { // Group + * Dimensions: [ // DimensionList + * { // Dimension Union: only one key present + * ProfileAttributes: { // ProfileAttributes + * AccountNumber: { // ProfileDimension + * DimensionType: "INCLUSIVE" || "EXCLUSIVE" || "CONTAINS" || "BEGINS_WITH" || "ENDS_WITH", // required + * Values: [ // Values // required + * "STRING_VALUE", + * ], + * }, + * AdditionalInformation: { // ExtraLengthValueProfileDimension + * DimensionType: "INCLUSIVE" || "EXCLUSIVE" || "CONTAINS" || "BEGINS_WITH" || "ENDS_WITH", // required + * Values: [ // ExtraLengthValues // required + * "STRING_VALUE", + * ], + * }, + * FirstName: { + * DimensionType: "INCLUSIVE" || "EXCLUSIVE" || "CONTAINS" || "BEGINS_WITH" || "ENDS_WITH", // required + * Values: [ // required + * "STRING_VALUE", + * ], + * }, + * LastName: { + * DimensionType: "INCLUSIVE" || "EXCLUSIVE" || "CONTAINS" || "BEGINS_WITH" || "ENDS_WITH", // required + * Values: [ // required + * "STRING_VALUE", + * ], + * }, + * MiddleName: { + * DimensionType: "INCLUSIVE" || "EXCLUSIVE" || "CONTAINS" || "BEGINS_WITH" || "ENDS_WITH", // required + * Values: [ // required + * "STRING_VALUE", + * ], + * }, + * GenderString: { + * DimensionType: "INCLUSIVE" || "EXCLUSIVE" || "CONTAINS" || "BEGINS_WITH" || "ENDS_WITH", // required + * Values: [ // required + * "STRING_VALUE", + * ], + * }, + * PartyTypeString: "", + * BirthDate: { // DateDimension + * DimensionType: "BEFORE" || "AFTER" || "BETWEEN" || "NOT_BETWEEN" || "ON", // required + * Values: [ // DateValues // required + * "STRING_VALUE", + * ], + * }, + * PhoneNumber: "", + * BusinessName: "", + * BusinessPhoneNumber: "", + * HomePhoneNumber: "", + * MobilePhoneNumber: "", + * EmailAddress: "", + * PersonalEmailAddress: "", + * BusinessEmailAddress: "", + * Address: { // AddressDimension + * City: "", + * Country: "", + * County: "", + * PostalCode: "", + * Province: "", + * State: "", + * }, + * ShippingAddress: { + * City: "", + * Country: "", + * County: "", + * PostalCode: "", + * Province: "", + * State: "", + * }, + * MailingAddress: { + * City: "", + * Country: "", + * County: "", + * PostalCode: "", + * Province: "", + * State: "", + * }, + * BillingAddress: { + * City: "", + * Country: "", + * County: "", + * PostalCode: "", + * Province: "", + * State: "", + * }, + * Attributes: { // CustomAttributes + * "": { // AttributeDimension + * DimensionType: "INCLUSIVE" || "EXCLUSIVE" || "CONTAINS" || "BEGINS_WITH" || "ENDS_WITH" || "BEFORE" || "AFTER" || "BETWEEN" || "NOT_BETWEEN" || "ON" || "GREATER_THAN" || "LESS_THAN" || "GREATER_THAN_OR_EQUAL" || "LESS_THAN_OR_EQUAL" || "EQUAL", // required + * Values: "", // required + * }, + * }, + * }, + * CalculatedAttributes: { // CalculatedCustomAttributes + * "": { // CalculatedAttributeDimension + * DimensionType: "INCLUSIVE" || "EXCLUSIVE" || "CONTAINS" || "BEGINS_WITH" || "ENDS_WITH" || "BEFORE" || "AFTER" || "BETWEEN" || "NOT_BETWEEN" || "ON" || "GREATER_THAN" || "LESS_THAN" || "GREATER_THAN_OR_EQUAL" || "LESS_THAN_OR_EQUAL" || "EQUAL", // required + * Values: "", // required + * ConditionOverrides: { // ConditionOverrides + * Range: { // RangeOverride + * Start: Number("int"), // required + * End: Number("int"), + * Unit: "DAYS", // required + * }, + * }, + * }, + * }, + * }, + * ], + * SourceSegments: [ // SourceSegmentList + * { // SourceSegment + * SegmentDefinitionName: "STRING_VALUE", + * }, + * ], + * SourceType: "ALL" || "ANY" || "NONE", + * Type: "ALL" || "ANY" || "NONE", + * }, + * ], + * Include: "ALL" || "ANY" || "NONE", + * }, + * }; + * const command = new CreateSegmentEstimateCommand(input); + * const response = await client.send(command); + * // { // CreateSegmentEstimateResponse + * // DomainName: "STRING_VALUE", + * // EstimateId: "STRING_VALUE", + * // StatusCode: Number("int"), + * // }; + * + * ``` + * + * @param CreateSegmentEstimateCommandInput - {@link CreateSegmentEstimateCommandInput} + * @returns {@link CreateSegmentEstimateCommandOutput} + * @see {@link CreateSegmentEstimateCommandInput} for command's `input` shape. + * @see {@link CreateSegmentEstimateCommandOutput} for command's `response` shape. + * @see {@link CustomerProfilesClientResolvedConfig | config} for CustomerProfilesClient's `config` shape. + * + * @throws {@link AccessDeniedException} (client fault) + *

You do not have sufficient access to perform this action.

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

The input you provided is invalid.

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

An internal service error occurred.

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

The requested resource does not exist, or access was denied.

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

You exceeded the maximum number of requests.

+ * + * @throws {@link CustomerProfilesServiceException} + *

Base exception class for all service exceptions from CustomerProfiles service.

+ * + * @public + */ +export class CreateSegmentEstimateCommand extends $Command + .classBuilder< + CreateSegmentEstimateCommandInput, + CreateSegmentEstimateCommandOutput, + CustomerProfilesClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes + >() + .ep(commonParams) + .m(function (this: any, Command: any, cs: any, config: CustomerProfilesClientResolvedConfig, o: any) { + return [ + getSerdePlugin(config, this.serialize, this.deserialize), + getEndpointPlugin(config, Command.getEndpointParameterInstructions()), + ]; + }) + .s("CustomerProfiles_20200815", "CreateSegmentEstimate", {}) + .n("CustomerProfilesClient", "CreateSegmentEstimateCommand") + .f(CreateSegmentEstimateRequestFilterSensitiveLog, void 0) + .ser(se_CreateSegmentEstimateCommand) + .de(de_CreateSegmentEstimateCommand) + .build() { + /** @internal type navigation helper, not in runtime. */ + protected declare static __types: { + api: { + input: CreateSegmentEstimateRequest; + output: CreateSegmentEstimateResponse; + }; + sdk: { + input: CreateSegmentEstimateCommandInput; + output: CreateSegmentEstimateCommandOutput; + }; + }; +} diff --git a/clients/client-customer-profiles/src/commands/CreateSegmentSnapshotCommand.ts b/clients/client-customer-profiles/src/commands/CreateSegmentSnapshotCommand.ts new file mode 100644 index 000000000000..48eade6e2d40 --- /dev/null +++ b/clients/client-customer-profiles/src/commands/CreateSegmentSnapshotCommand.ts @@ -0,0 +1,112 @@ +// 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 { CustomerProfilesClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../CustomerProfilesClient"; +import { commonParams } from "../endpoint/EndpointParameters"; +import { CreateSegmentSnapshotRequest, CreateSegmentSnapshotResponse } from "../models/models_0"; +import { de_CreateSegmentSnapshotCommand, se_CreateSegmentSnapshotCommand } from "../protocols/Aws_restJson1"; + +/** + * @public + */ +export type { __MetadataBearer }; +export { $Command }; +/** + * @public + * + * The input for {@link CreateSegmentSnapshotCommand}. + */ +export interface CreateSegmentSnapshotCommandInput extends CreateSegmentSnapshotRequest {} +/** + * @public + * + * The output of {@link CreateSegmentSnapshotCommand}. + */ +export interface CreateSegmentSnapshotCommandOutput extends CreateSegmentSnapshotResponse, __MetadataBearer {} + +/** + *

Triggers a job to export a segment to a specified destination.

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { CustomerProfilesClient, CreateSegmentSnapshotCommand } from "@aws-sdk/client-customer-profiles"; // ES Modules import + * // const { CustomerProfilesClient, CreateSegmentSnapshotCommand } = require("@aws-sdk/client-customer-profiles"); // CommonJS import + * const client = new CustomerProfilesClient(config); + * const input = { // CreateSegmentSnapshotRequest + * DomainName: "STRING_VALUE", // required + * SegmentDefinitionName: "STRING_VALUE", // required + * DataFormat: "CSV" || "JSONL" || "ORC", // required + * EncryptionKey: "STRING_VALUE", + * RoleArn: "STRING_VALUE", + * DestinationUri: "STRING_VALUE", + * }; + * const command = new CreateSegmentSnapshotCommand(input); + * const response = await client.send(command); + * // { // CreateSegmentSnapshotResponse + * // SnapshotId: "STRING_VALUE", // required + * // }; + * + * ``` + * + * @param CreateSegmentSnapshotCommandInput - {@link CreateSegmentSnapshotCommandInput} + * @returns {@link CreateSegmentSnapshotCommandOutput} + * @see {@link CreateSegmentSnapshotCommandInput} for command's `input` shape. + * @see {@link CreateSegmentSnapshotCommandOutput} for command's `response` shape. + * @see {@link CustomerProfilesClientResolvedConfig | config} for CustomerProfilesClient's `config` shape. + * + * @throws {@link AccessDeniedException} (client fault) + *

You do not have sufficient access to perform this action.

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

The input you provided is invalid.

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

An internal service error occurred.

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

The requested resource does not exist, or access was denied.

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

You exceeded the maximum number of requests.

+ * + * @throws {@link CustomerProfilesServiceException} + *

Base exception class for all service exceptions from CustomerProfiles service.

+ * + * @public + */ +export class CreateSegmentSnapshotCommand extends $Command + .classBuilder< + CreateSegmentSnapshotCommandInput, + CreateSegmentSnapshotCommandOutput, + CustomerProfilesClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes + >() + .ep(commonParams) + .m(function (this: any, Command: any, cs: any, config: CustomerProfilesClientResolvedConfig, o: any) { + return [ + getSerdePlugin(config, this.serialize, this.deserialize), + getEndpointPlugin(config, Command.getEndpointParameterInstructions()), + ]; + }) + .s("CustomerProfiles_20200815", "CreateSegmentSnapshot", {}) + .n("CustomerProfilesClient", "CreateSegmentSnapshotCommand") + .f(void 0, void 0) + .ser(se_CreateSegmentSnapshotCommand) + .de(de_CreateSegmentSnapshotCommand) + .build() { + /** @internal type navigation helper, not in runtime. */ + protected declare static __types: { + api: { + input: CreateSegmentSnapshotRequest; + output: CreateSegmentSnapshotResponse; + }; + sdk: { + input: CreateSegmentSnapshotCommandInput; + output: CreateSegmentSnapshotCommandOutput; + }; + }; +} diff --git a/clients/client-customer-profiles/src/commands/DeleteSegmentDefinitionCommand.ts b/clients/client-customer-profiles/src/commands/DeleteSegmentDefinitionCommand.ts new file mode 100644 index 000000000000..2fa1074ec6c7 --- /dev/null +++ b/clients/client-customer-profiles/src/commands/DeleteSegmentDefinitionCommand.ts @@ -0,0 +1,108 @@ +// 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 { CustomerProfilesClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../CustomerProfilesClient"; +import { commonParams } from "../endpoint/EndpointParameters"; +import { DeleteSegmentDefinitionRequest, DeleteSegmentDefinitionResponse } from "../models/models_0"; +import { de_DeleteSegmentDefinitionCommand, se_DeleteSegmentDefinitionCommand } from "../protocols/Aws_restJson1"; + +/** + * @public + */ +export type { __MetadataBearer }; +export { $Command }; +/** + * @public + * + * The input for {@link DeleteSegmentDefinitionCommand}. + */ +export interface DeleteSegmentDefinitionCommandInput extends DeleteSegmentDefinitionRequest {} +/** + * @public + * + * The output of {@link DeleteSegmentDefinitionCommand}. + */ +export interface DeleteSegmentDefinitionCommandOutput extends DeleteSegmentDefinitionResponse, __MetadataBearer {} + +/** + *

Deletes a segment definition from the domain.

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { CustomerProfilesClient, DeleteSegmentDefinitionCommand } from "@aws-sdk/client-customer-profiles"; // ES Modules import + * // const { CustomerProfilesClient, DeleteSegmentDefinitionCommand } = require("@aws-sdk/client-customer-profiles"); // CommonJS import + * const client = new CustomerProfilesClient(config); + * const input = { // DeleteSegmentDefinitionRequest + * DomainName: "STRING_VALUE", // required + * SegmentDefinitionName: "STRING_VALUE", // required + * }; + * const command = new DeleteSegmentDefinitionCommand(input); + * const response = await client.send(command); + * // { // DeleteSegmentDefinitionResponse + * // Message: "STRING_VALUE", + * // }; + * + * ``` + * + * @param DeleteSegmentDefinitionCommandInput - {@link DeleteSegmentDefinitionCommandInput} + * @returns {@link DeleteSegmentDefinitionCommandOutput} + * @see {@link DeleteSegmentDefinitionCommandInput} for command's `input` shape. + * @see {@link DeleteSegmentDefinitionCommandOutput} for command's `response` shape. + * @see {@link CustomerProfilesClientResolvedConfig | config} for CustomerProfilesClient's `config` shape. + * + * @throws {@link AccessDeniedException} (client fault) + *

You do not have sufficient access to perform this action.

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

The input you provided is invalid.

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

An internal service error occurred.

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

The requested resource does not exist, or access was denied.

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

You exceeded the maximum number of requests.

+ * + * @throws {@link CustomerProfilesServiceException} + *

Base exception class for all service exceptions from CustomerProfiles service.

+ * + * @public + */ +export class DeleteSegmentDefinitionCommand extends $Command + .classBuilder< + DeleteSegmentDefinitionCommandInput, + DeleteSegmentDefinitionCommandOutput, + CustomerProfilesClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes + >() + .ep(commonParams) + .m(function (this: any, Command: any, cs: any, config: CustomerProfilesClientResolvedConfig, o: any) { + return [ + getSerdePlugin(config, this.serialize, this.deserialize), + getEndpointPlugin(config, Command.getEndpointParameterInstructions()), + ]; + }) + .s("CustomerProfiles_20200815", "DeleteSegmentDefinition", {}) + .n("CustomerProfilesClient", "DeleteSegmentDefinitionCommand") + .f(void 0, void 0) + .ser(se_DeleteSegmentDefinitionCommand) + .de(de_DeleteSegmentDefinitionCommand) + .build() { + /** @internal type navigation helper, not in runtime. */ + protected declare static __types: { + api: { + input: DeleteSegmentDefinitionRequest; + output: DeleteSegmentDefinitionResponse; + }; + sdk: { + input: DeleteSegmentDefinitionCommandInput; + output: DeleteSegmentDefinitionCommandOutput; + }; + }; +} diff --git a/clients/client-customer-profiles/src/commands/DetectProfileObjectTypeCommand.ts b/clients/client-customer-profiles/src/commands/DetectProfileObjectTypeCommand.ts index f6cafa84baf2..e10bf712ffda 100644 --- a/clients/client-customer-profiles/src/commands/DetectProfileObjectTypeCommand.ts +++ b/clients/client-customer-profiles/src/commands/DetectProfileObjectTypeCommand.ts @@ -63,7 +63,7 @@ export interface DetectProfileObjectTypeCommandOutput extends DetectProfileObjec * // "": [ // ObjectTypeKeyList * // { // ObjectTypeKey * // StandardIdentifiers: [ // StandardIdentifierList - * // "PROFILE" || "ASSET" || "CASE" || "UNIQUE" || "SECONDARY" || "LOOKUP_ONLY" || "NEW_ONLY" || "ORDER", + * // "PROFILE" || "ASSET" || "CASE" || "ORDER" || "COMMUNICATION_RECORD" || "UNIQUE" || "SECONDARY" || "LOOKUP_ONLY" || "NEW_ONLY", * // ], * // FieldNames: [ // FieldNameList * // "STRING_VALUE", diff --git a/clients/client-customer-profiles/src/commands/GetCalculatedAttributeDefinitionCommand.ts b/clients/client-customer-profiles/src/commands/GetCalculatedAttributeDefinitionCommand.ts index cef49b9ff84f..93b19bd8b8e7 100644 --- a/clients/client-customer-profiles/src/commands/GetCalculatedAttributeDefinitionCommand.ts +++ b/clients/client-customer-profiles/src/commands/GetCalculatedAttributeDefinitionCommand.ts @@ -58,6 +58,26 @@ export interface GetCalculatedAttributeDefinitionCommandOutput * // CreatedAt: new Date("TIMESTAMP"), * // LastUpdatedAt: new Date("TIMESTAMP"), * // Statistic: "FIRST_OCCURRENCE" || "LAST_OCCURRENCE" || "COUNT" || "SUM" || "MINIMUM" || "MAXIMUM" || "AVERAGE" || "MAX_OCCURRENCE", + * // Filter: { // Filter + * // Include: "ALL" || "ANY" || "NONE", // required + * // Groups: [ // GroupList // required + * // { // FilterGroup + * // Type: "ALL" || "ANY" || "NONE", // required + * // Dimensions: [ // FilterDimensionList // required + * // { // FilterDimension + * // Attributes: { // AttributeMap // required + * // "": { // FilterAttributeDimension + * // DimensionType: "INCLUSIVE" || "EXCLUSIVE" || "CONTAINS" || "BEGINS_WITH" || "ENDS_WITH" || "BEFORE" || "AFTER" || "BETWEEN" || "NOT_BETWEEN" || "ON" || "GREATER_THAN" || "LESS_THAN" || "GREATER_THAN_OR_EQUAL" || "LESS_THAN_OR_EQUAL" || "EQUAL", // required + * // Values: [ // ValueList // required + * // "STRING_VALUE", + * // ], + * // }, + * // }, + * // }, + * // ], + * // }, + * // ], + * // }, * // Conditions: { // Conditions * // Range: { // Range * // Value: Number("int"), // required diff --git a/clients/client-customer-profiles/src/commands/GetProfileObjectTypeCommand.ts b/clients/client-customer-profiles/src/commands/GetProfileObjectTypeCommand.ts index 8f25e43a1b54..e82f1893e1fd 100644 --- a/clients/client-customer-profiles/src/commands/GetProfileObjectTypeCommand.ts +++ b/clients/client-customer-profiles/src/commands/GetProfileObjectTypeCommand.ts @@ -66,7 +66,7 @@ export interface GetProfileObjectTypeCommandOutput extends GetProfileObjectTypeR * // "": [ // ObjectTypeKeyList * // { // ObjectTypeKey * // StandardIdentifiers: [ // StandardIdentifierList - * // "PROFILE" || "ASSET" || "CASE" || "UNIQUE" || "SECONDARY" || "LOOKUP_ONLY" || "NEW_ONLY" || "ORDER", + * // "PROFILE" || "ASSET" || "CASE" || "ORDER" || "COMMUNICATION_RECORD" || "UNIQUE" || "SECONDARY" || "LOOKUP_ONLY" || "NEW_ONLY", * // ], * // FieldNames: [ // FieldNameList * // "STRING_VALUE", diff --git a/clients/client-customer-profiles/src/commands/GetProfileObjectTypeTemplateCommand.ts b/clients/client-customer-profiles/src/commands/GetProfileObjectTypeTemplateCommand.ts index 2030e75088d0..4fbb57451689 100644 --- a/clients/client-customer-profiles/src/commands/GetProfileObjectTypeTemplateCommand.ts +++ b/clients/client-customer-profiles/src/commands/GetProfileObjectTypeTemplateCommand.ts @@ -70,7 +70,7 @@ export interface GetProfileObjectTypeTemplateCommandOutput * // "": [ // ObjectTypeKeyList * // { // ObjectTypeKey * // StandardIdentifiers: [ // StandardIdentifierList - * // "PROFILE" || "ASSET" || "CASE" || "UNIQUE" || "SECONDARY" || "LOOKUP_ONLY" || "NEW_ONLY" || "ORDER", + * // "PROFILE" || "ASSET" || "CASE" || "ORDER" || "COMMUNICATION_RECORD" || "UNIQUE" || "SECONDARY" || "LOOKUP_ONLY" || "NEW_ONLY", * // ], * // FieldNames: [ // FieldNameList * // "STRING_VALUE", diff --git a/clients/client-customer-profiles/src/commands/GetSegmentDefinitionCommand.ts b/clients/client-customer-profiles/src/commands/GetSegmentDefinitionCommand.ts new file mode 100644 index 000000000000..a07823c42955 --- /dev/null +++ b/clients/client-customer-profiles/src/commands/GetSegmentDefinitionCommand.ts @@ -0,0 +1,241 @@ +// 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 { CustomerProfilesClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../CustomerProfilesClient"; +import { commonParams } from "../endpoint/EndpointParameters"; +import { + GetSegmentDefinitionRequest, + GetSegmentDefinitionResponse, + GetSegmentDefinitionResponseFilterSensitiveLog, +} from "../models/models_0"; +import { de_GetSegmentDefinitionCommand, se_GetSegmentDefinitionCommand } from "../protocols/Aws_restJson1"; + +/** + * @public + */ +export type { __MetadataBearer }; +export { $Command }; +/** + * @public + * + * The input for {@link GetSegmentDefinitionCommand}. + */ +export interface GetSegmentDefinitionCommandInput extends GetSegmentDefinitionRequest {} +/** + * @public + * + * The output of {@link GetSegmentDefinitionCommand}. + */ +export interface GetSegmentDefinitionCommandOutput extends GetSegmentDefinitionResponse, __MetadataBearer {} + +/** + *

Gets a segment definition from the domain.

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { CustomerProfilesClient, GetSegmentDefinitionCommand } from "@aws-sdk/client-customer-profiles"; // ES Modules import + * // const { CustomerProfilesClient, GetSegmentDefinitionCommand } = require("@aws-sdk/client-customer-profiles"); // CommonJS import + * const client = new CustomerProfilesClient(config); + * const input = { // GetSegmentDefinitionRequest + * DomainName: "STRING_VALUE", // required + * SegmentDefinitionName: "STRING_VALUE", // required + * }; + * const command = new GetSegmentDefinitionCommand(input); + * const response = await client.send(command); + * // { // GetSegmentDefinitionResponse + * // SegmentDefinitionName: "STRING_VALUE", + * // DisplayName: "STRING_VALUE", + * // Description: "STRING_VALUE", + * // SegmentGroups: { // SegmentGroup + * // Groups: [ // SegmentGroupList + * // { // Group + * // Dimensions: [ // DimensionList + * // { // Dimension Union: only one key present + * // ProfileAttributes: { // ProfileAttributes + * // AccountNumber: { // ProfileDimension + * // DimensionType: "INCLUSIVE" || "EXCLUSIVE" || "CONTAINS" || "BEGINS_WITH" || "ENDS_WITH", // required + * // Values: [ // Values // required + * // "STRING_VALUE", + * // ], + * // }, + * // AdditionalInformation: { // ExtraLengthValueProfileDimension + * // DimensionType: "INCLUSIVE" || "EXCLUSIVE" || "CONTAINS" || "BEGINS_WITH" || "ENDS_WITH", // required + * // Values: [ // ExtraLengthValues // required + * // "STRING_VALUE", + * // ], + * // }, + * // FirstName: { + * // DimensionType: "INCLUSIVE" || "EXCLUSIVE" || "CONTAINS" || "BEGINS_WITH" || "ENDS_WITH", // required + * // Values: [ // required + * // "STRING_VALUE", + * // ], + * // }, + * // LastName: { + * // DimensionType: "INCLUSIVE" || "EXCLUSIVE" || "CONTAINS" || "BEGINS_WITH" || "ENDS_WITH", // required + * // Values: [ // required + * // "STRING_VALUE", + * // ], + * // }, + * // MiddleName: { + * // DimensionType: "INCLUSIVE" || "EXCLUSIVE" || "CONTAINS" || "BEGINS_WITH" || "ENDS_WITH", // required + * // Values: [ // required + * // "STRING_VALUE", + * // ], + * // }, + * // GenderString: { + * // DimensionType: "INCLUSIVE" || "EXCLUSIVE" || "CONTAINS" || "BEGINS_WITH" || "ENDS_WITH", // required + * // Values: [ // required + * // "STRING_VALUE", + * // ], + * // }, + * // PartyTypeString: "", + * // BirthDate: { // DateDimension + * // DimensionType: "BEFORE" || "AFTER" || "BETWEEN" || "NOT_BETWEEN" || "ON", // required + * // Values: [ // DateValues // required + * // "STRING_VALUE", + * // ], + * // }, + * // PhoneNumber: "", + * // BusinessName: "", + * // BusinessPhoneNumber: "", + * // HomePhoneNumber: "", + * // MobilePhoneNumber: "", + * // EmailAddress: "", + * // PersonalEmailAddress: "", + * // BusinessEmailAddress: "", + * // Address: { // AddressDimension + * // City: "", + * // Country: "", + * // County: "", + * // PostalCode: "", + * // Province: "", + * // State: "", + * // }, + * // ShippingAddress: { + * // City: "", + * // Country: "", + * // County: "", + * // PostalCode: "", + * // Province: "", + * // State: "", + * // }, + * // MailingAddress: { + * // City: "", + * // Country: "", + * // County: "", + * // PostalCode: "", + * // Province: "", + * // State: "", + * // }, + * // BillingAddress: { + * // City: "", + * // Country: "", + * // County: "", + * // PostalCode: "", + * // Province: "", + * // State: "", + * // }, + * // Attributes: { // CustomAttributes + * // "": { // AttributeDimension + * // DimensionType: "INCLUSIVE" || "EXCLUSIVE" || "CONTAINS" || "BEGINS_WITH" || "ENDS_WITH" || "BEFORE" || "AFTER" || "BETWEEN" || "NOT_BETWEEN" || "ON" || "GREATER_THAN" || "LESS_THAN" || "GREATER_THAN_OR_EQUAL" || "LESS_THAN_OR_EQUAL" || "EQUAL", // required + * // Values: "", // required + * // }, + * // }, + * // }, + * // CalculatedAttributes: { // CalculatedCustomAttributes + * // "": { // CalculatedAttributeDimension + * // DimensionType: "INCLUSIVE" || "EXCLUSIVE" || "CONTAINS" || "BEGINS_WITH" || "ENDS_WITH" || "BEFORE" || "AFTER" || "BETWEEN" || "NOT_BETWEEN" || "ON" || "GREATER_THAN" || "LESS_THAN" || "GREATER_THAN_OR_EQUAL" || "LESS_THAN_OR_EQUAL" || "EQUAL", // required + * // Values: "", // required + * // ConditionOverrides: { // ConditionOverrides + * // Range: { // RangeOverride + * // Start: Number("int"), // required + * // End: Number("int"), + * // Unit: "DAYS", // required + * // }, + * // }, + * // }, + * // }, + * // }, + * // ], + * // SourceSegments: [ // SourceSegmentList + * // { // SourceSegment + * // SegmentDefinitionName: "STRING_VALUE", + * // }, + * // ], + * // SourceType: "ALL" || "ANY" || "NONE", + * // Type: "ALL" || "ANY" || "NONE", + * // }, + * // ], + * // Include: "ALL" || "ANY" || "NONE", + * // }, + * // SegmentDefinitionArn: "STRING_VALUE", // required + * // CreatedAt: new Date("TIMESTAMP"), + * // Tags: { // TagMap + * // "": "STRING_VALUE", + * // }, + * // }; + * + * ``` + * + * @param GetSegmentDefinitionCommandInput - {@link GetSegmentDefinitionCommandInput} + * @returns {@link GetSegmentDefinitionCommandOutput} + * @see {@link GetSegmentDefinitionCommandInput} for command's `input` shape. + * @see {@link GetSegmentDefinitionCommandOutput} for command's `response` shape. + * @see {@link CustomerProfilesClientResolvedConfig | config} for CustomerProfilesClient's `config` shape. + * + * @throws {@link AccessDeniedException} (client fault) + *

You do not have sufficient access to perform this action.

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

The input you provided is invalid.

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

An internal service error occurred.

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

The requested resource does not exist, or access was denied.

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

You exceeded the maximum number of requests.

+ * + * @throws {@link CustomerProfilesServiceException} + *

Base exception class for all service exceptions from CustomerProfiles service.

+ * + * @public + */ +export class GetSegmentDefinitionCommand extends $Command + .classBuilder< + GetSegmentDefinitionCommandInput, + GetSegmentDefinitionCommandOutput, + CustomerProfilesClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes + >() + .ep(commonParams) + .m(function (this: any, Command: any, cs: any, config: CustomerProfilesClientResolvedConfig, o: any) { + return [ + getSerdePlugin(config, this.serialize, this.deserialize), + getEndpointPlugin(config, Command.getEndpointParameterInstructions()), + ]; + }) + .s("CustomerProfiles_20200815", "GetSegmentDefinition", {}) + .n("CustomerProfilesClient", "GetSegmentDefinitionCommand") + .f(void 0, GetSegmentDefinitionResponseFilterSensitiveLog) + .ser(se_GetSegmentDefinitionCommand) + .de(de_GetSegmentDefinitionCommand) + .build() { + /** @internal type navigation helper, not in runtime. */ + protected declare static __types: { + api: { + input: GetSegmentDefinitionRequest; + output: GetSegmentDefinitionResponse; + }; + sdk: { + input: GetSegmentDefinitionCommandInput; + output: GetSegmentDefinitionCommandOutput; + }; + }; +} diff --git a/clients/client-customer-profiles/src/commands/GetSegmentEstimateCommand.ts b/clients/client-customer-profiles/src/commands/GetSegmentEstimateCommand.ts new file mode 100644 index 000000000000..796e453a9e8f --- /dev/null +++ b/clients/client-customer-profiles/src/commands/GetSegmentEstimateCommand.ts @@ -0,0 +1,113 @@ +// 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 { CustomerProfilesClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../CustomerProfilesClient"; +import { commonParams } from "../endpoint/EndpointParameters"; +import { GetSegmentEstimateRequest, GetSegmentEstimateResponse } from "../models/models_0"; +import { de_GetSegmentEstimateCommand, se_GetSegmentEstimateCommand } from "../protocols/Aws_restJson1"; + +/** + * @public + */ +export type { __MetadataBearer }; +export { $Command }; +/** + * @public + * + * The input for {@link GetSegmentEstimateCommand}. + */ +export interface GetSegmentEstimateCommandInput extends GetSegmentEstimateRequest {} +/** + * @public + * + * The output of {@link GetSegmentEstimateCommand}. + */ +export interface GetSegmentEstimateCommandOutput extends GetSegmentEstimateResponse, __MetadataBearer {} + +/** + *

Gets the result of a segment estimate query.

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { CustomerProfilesClient, GetSegmentEstimateCommand } from "@aws-sdk/client-customer-profiles"; // ES Modules import + * // const { CustomerProfilesClient, GetSegmentEstimateCommand } = require("@aws-sdk/client-customer-profiles"); // CommonJS import + * const client = new CustomerProfilesClient(config); + * const input = { // GetSegmentEstimateRequest + * DomainName: "STRING_VALUE", // required + * EstimateId: "STRING_VALUE", // required + * }; + * const command = new GetSegmentEstimateCommand(input); + * const response = await client.send(command); + * // { // GetSegmentEstimateResponse + * // DomainName: "STRING_VALUE", + * // EstimateId: "STRING_VALUE", + * // Status: "RUNNING" || "SUCCEEDED" || "FAILED", + * // Estimate: "STRING_VALUE", + * // Message: "STRING_VALUE", + * // StatusCode: Number("int"), + * // }; + * + * ``` + * + * @param GetSegmentEstimateCommandInput - {@link GetSegmentEstimateCommandInput} + * @returns {@link GetSegmentEstimateCommandOutput} + * @see {@link GetSegmentEstimateCommandInput} for command's `input` shape. + * @see {@link GetSegmentEstimateCommandOutput} for command's `response` shape. + * @see {@link CustomerProfilesClientResolvedConfig | config} for CustomerProfilesClient's `config` shape. + * + * @throws {@link AccessDeniedException} (client fault) + *

You do not have sufficient access to perform this action.

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

The input you provided is invalid.

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

An internal service error occurred.

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

The requested resource does not exist, or access was denied.

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

You exceeded the maximum number of requests.

+ * + * @throws {@link CustomerProfilesServiceException} + *

Base exception class for all service exceptions from CustomerProfiles service.

+ * + * @public + */ +export class GetSegmentEstimateCommand extends $Command + .classBuilder< + GetSegmentEstimateCommandInput, + GetSegmentEstimateCommandOutput, + CustomerProfilesClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes + >() + .ep(commonParams) + .m(function (this: any, Command: any, cs: any, config: CustomerProfilesClientResolvedConfig, o: any) { + return [ + getSerdePlugin(config, this.serialize, this.deserialize), + getEndpointPlugin(config, Command.getEndpointParameterInstructions()), + ]; + }) + .s("CustomerProfiles_20200815", "GetSegmentEstimate", {}) + .n("CustomerProfilesClient", "GetSegmentEstimateCommand") + .f(void 0, void 0) + .ser(se_GetSegmentEstimateCommand) + .de(de_GetSegmentEstimateCommand) + .build() { + /** @internal type navigation helper, not in runtime. */ + protected declare static __types: { + api: { + input: GetSegmentEstimateRequest; + output: GetSegmentEstimateResponse; + }; + sdk: { + input: GetSegmentEstimateCommandInput; + output: GetSegmentEstimateCommandOutput; + }; + }; +} diff --git a/clients/client-customer-profiles/src/commands/GetSegmentMembershipCommand.ts b/clients/client-customer-profiles/src/commands/GetSegmentMembershipCommand.ts new file mode 100644 index 000000000000..30c50f8cd504 --- /dev/null +++ b/clients/client-customer-profiles/src/commands/GetSegmentMembershipCommand.ts @@ -0,0 +1,208 @@ +// 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 { CustomerProfilesClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../CustomerProfilesClient"; +import { commonParams } from "../endpoint/EndpointParameters"; +import { + GetSegmentMembershipRequest, + GetSegmentMembershipResponse, + GetSegmentMembershipResponseFilterSensitiveLog, +} from "../models/models_0"; +import { de_GetSegmentMembershipCommand, se_GetSegmentMembershipCommand } from "../protocols/Aws_restJson1"; + +/** + * @public + */ +export type { __MetadataBearer }; +export { $Command }; +/** + * @public + * + * The input for {@link GetSegmentMembershipCommand}. + */ +export interface GetSegmentMembershipCommandInput extends GetSegmentMembershipRequest {} +/** + * @public + * + * The output of {@link GetSegmentMembershipCommand}. + */ +export interface GetSegmentMembershipCommandOutput extends GetSegmentMembershipResponse, __MetadataBearer {} + +/** + *

Determines if the given profiles are within a segment.

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { CustomerProfilesClient, GetSegmentMembershipCommand } from "@aws-sdk/client-customer-profiles"; // ES Modules import + * // const { CustomerProfilesClient, GetSegmentMembershipCommand } = require("@aws-sdk/client-customer-profiles"); // CommonJS import + * const client = new CustomerProfilesClient(config); + * const input = { // GetSegmentMembershipRequest + * DomainName: "STRING_VALUE", // required + * SegmentDefinitionName: "STRING_VALUE", // required + * ProfileIds: [ // ProfileIds // required + * "STRING_VALUE", + * ], + * }; + * const command = new GetSegmentMembershipCommand(input); + * const response = await client.send(command); + * // { // GetSegmentMembershipResponse + * // SegmentDefinitionName: "STRING_VALUE", + * // Profiles: [ // Profiles + * // { // ProfileQueryResult + * // ProfileId: "STRING_VALUE", // required + * // QueryResult: "PRESENT" || "ABSENT", // required + * // Profile: { // Profile + * // ProfileId: "STRING_VALUE", + * // AccountNumber: "STRING_VALUE", + * // AdditionalInformation: "STRING_VALUE", + * // PartyType: "INDIVIDUAL" || "BUSINESS" || "OTHER", + * // BusinessName: "STRING_VALUE", + * // FirstName: "STRING_VALUE", + * // MiddleName: "STRING_VALUE", + * // LastName: "STRING_VALUE", + * // BirthDate: "STRING_VALUE", + * // Gender: "MALE" || "FEMALE" || "UNSPECIFIED", + * // PhoneNumber: "STRING_VALUE", + * // MobilePhoneNumber: "STRING_VALUE", + * // HomePhoneNumber: "STRING_VALUE", + * // BusinessPhoneNumber: "STRING_VALUE", + * // EmailAddress: "STRING_VALUE", + * // PersonalEmailAddress: "STRING_VALUE", + * // BusinessEmailAddress: "STRING_VALUE", + * // Address: { // Address + * // Address1: "STRING_VALUE", + * // Address2: "STRING_VALUE", + * // Address3: "STRING_VALUE", + * // Address4: "STRING_VALUE", + * // City: "STRING_VALUE", + * // County: "STRING_VALUE", + * // State: "STRING_VALUE", + * // Province: "STRING_VALUE", + * // Country: "STRING_VALUE", + * // PostalCode: "STRING_VALUE", + * // }, + * // ShippingAddress: { + * // Address1: "STRING_VALUE", + * // Address2: "STRING_VALUE", + * // Address3: "STRING_VALUE", + * // Address4: "STRING_VALUE", + * // City: "STRING_VALUE", + * // County: "STRING_VALUE", + * // State: "STRING_VALUE", + * // Province: "STRING_VALUE", + * // Country: "STRING_VALUE", + * // PostalCode: "STRING_VALUE", + * // }, + * // MailingAddress: { + * // Address1: "STRING_VALUE", + * // Address2: "STRING_VALUE", + * // Address3: "STRING_VALUE", + * // Address4: "STRING_VALUE", + * // City: "STRING_VALUE", + * // County: "STRING_VALUE", + * // State: "STRING_VALUE", + * // Province: "STRING_VALUE", + * // Country: "STRING_VALUE", + * // PostalCode: "STRING_VALUE", + * // }, + * // BillingAddress: { + * // Address1: "STRING_VALUE", + * // Address2: "STRING_VALUE", + * // Address3: "STRING_VALUE", + * // Address4: "STRING_VALUE", + * // City: "STRING_VALUE", + * // County: "STRING_VALUE", + * // State: "STRING_VALUE", + * // Province: "STRING_VALUE", + * // Country: "STRING_VALUE", + * // PostalCode: "STRING_VALUE", + * // }, + * // Attributes: { // Attributes + * // "": "STRING_VALUE", + * // }, + * // FoundByItems: [ // foundByList + * // { // FoundByKeyValue + * // KeyName: "STRING_VALUE", + * // Values: [ // requestValueList + * // "STRING_VALUE", + * // ], + * // }, + * // ], + * // PartyTypeString: "STRING_VALUE", + * // GenderString: "STRING_VALUE", + * // }, + * // }, + * // ], + * // Failures: [ // Failures + * // { // ProfileQueryFailures + * // ProfileId: "STRING_VALUE", // required + * // Message: "STRING_VALUE", // required + * // Status: Number("int"), + * // }, + * // ], + * // }; + * + * ``` + * + * @param GetSegmentMembershipCommandInput - {@link GetSegmentMembershipCommandInput} + * @returns {@link GetSegmentMembershipCommandOutput} + * @see {@link GetSegmentMembershipCommandInput} for command's `input` shape. + * @see {@link GetSegmentMembershipCommandOutput} for command's `response` shape. + * @see {@link CustomerProfilesClientResolvedConfig | config} for CustomerProfilesClient's `config` shape. + * + * @throws {@link AccessDeniedException} (client fault) + *

You do not have sufficient access to perform this action.

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

The input you provided is invalid.

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

An internal service error occurred.

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

The requested resource does not exist, or access was denied.

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

You exceeded the maximum number of requests.

+ * + * @throws {@link CustomerProfilesServiceException} + *

Base exception class for all service exceptions from CustomerProfiles service.

+ * + * @public + */ +export class GetSegmentMembershipCommand extends $Command + .classBuilder< + GetSegmentMembershipCommandInput, + GetSegmentMembershipCommandOutput, + CustomerProfilesClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes + >() + .ep(commonParams) + .m(function (this: any, Command: any, cs: any, config: CustomerProfilesClientResolvedConfig, o: any) { + return [ + getSerdePlugin(config, this.serialize, this.deserialize), + getEndpointPlugin(config, Command.getEndpointParameterInstructions()), + ]; + }) + .s("CustomerProfiles_20200815", "GetSegmentMembership", {}) + .n("CustomerProfilesClient", "GetSegmentMembershipCommand") + .f(void 0, GetSegmentMembershipResponseFilterSensitiveLog) + .ser(se_GetSegmentMembershipCommand) + .de(de_GetSegmentMembershipCommand) + .build() { + /** @internal type navigation helper, not in runtime. */ + protected declare static __types: { + api: { + input: GetSegmentMembershipRequest; + output: GetSegmentMembershipResponse; + }; + sdk: { + input: GetSegmentMembershipCommandInput; + output: GetSegmentMembershipCommandOutput; + }; + }; +} diff --git a/clients/client-customer-profiles/src/commands/GetSegmentSnapshotCommand.ts b/clients/client-customer-profiles/src/commands/GetSegmentSnapshotCommand.ts new file mode 100644 index 000000000000..9a4cdf8357bf --- /dev/null +++ b/clients/client-customer-profiles/src/commands/GetSegmentSnapshotCommand.ts @@ -0,0 +1,115 @@ +// 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 { CustomerProfilesClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../CustomerProfilesClient"; +import { commonParams } from "../endpoint/EndpointParameters"; +import { GetSegmentSnapshotRequest, GetSegmentSnapshotResponse } from "../models/models_0"; +import { de_GetSegmentSnapshotCommand, se_GetSegmentSnapshotCommand } from "../protocols/Aws_restJson1"; + +/** + * @public + */ +export type { __MetadataBearer }; +export { $Command }; +/** + * @public + * + * The input for {@link GetSegmentSnapshotCommand}. + */ +export interface GetSegmentSnapshotCommandInput extends GetSegmentSnapshotRequest {} +/** + * @public + * + * The output of {@link GetSegmentSnapshotCommand}. + */ +export interface GetSegmentSnapshotCommandOutput extends GetSegmentSnapshotResponse, __MetadataBearer {} + +/** + *

Retrieve the latest status of a segment snapshot.

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { CustomerProfilesClient, GetSegmentSnapshotCommand } from "@aws-sdk/client-customer-profiles"; // ES Modules import + * // const { CustomerProfilesClient, GetSegmentSnapshotCommand } = require("@aws-sdk/client-customer-profiles"); // CommonJS import + * const client = new CustomerProfilesClient(config); + * const input = { // GetSegmentSnapshotRequest + * DomainName: "STRING_VALUE", // required + * SegmentDefinitionName: "STRING_VALUE", // required + * SnapshotId: "STRING_VALUE", // required + * }; + * const command = new GetSegmentSnapshotCommand(input); + * const response = await client.send(command); + * // { // GetSegmentSnapshotResponse + * // SnapshotId: "STRING_VALUE", // required + * // Status: "COMPLETED" || "IN_PROGRESS" || "FAILED", // required + * // StatusMessage: "STRING_VALUE", + * // DataFormat: "CSV" || "JSONL" || "ORC", // required + * // EncryptionKey: "STRING_VALUE", + * // RoleArn: "STRING_VALUE", + * // DestinationUri: "STRING_VALUE", + * // }; + * + * ``` + * + * @param GetSegmentSnapshotCommandInput - {@link GetSegmentSnapshotCommandInput} + * @returns {@link GetSegmentSnapshotCommandOutput} + * @see {@link GetSegmentSnapshotCommandInput} for command's `input` shape. + * @see {@link GetSegmentSnapshotCommandOutput} for command's `response` shape. + * @see {@link CustomerProfilesClientResolvedConfig | config} for CustomerProfilesClient's `config` shape. + * + * @throws {@link AccessDeniedException} (client fault) + *

You do not have sufficient access to perform this action.

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

The input you provided is invalid.

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

An internal service error occurred.

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

The requested resource does not exist, or access was denied.

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

You exceeded the maximum number of requests.

+ * + * @throws {@link CustomerProfilesServiceException} + *

Base exception class for all service exceptions from CustomerProfiles service.

+ * + * @public + */ +export class GetSegmentSnapshotCommand extends $Command + .classBuilder< + GetSegmentSnapshotCommandInput, + GetSegmentSnapshotCommandOutput, + CustomerProfilesClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes + >() + .ep(commonParams) + .m(function (this: any, Command: any, cs: any, config: CustomerProfilesClientResolvedConfig, o: any) { + return [ + getSerdePlugin(config, this.serialize, this.deserialize), + getEndpointPlugin(config, Command.getEndpointParameterInstructions()), + ]; + }) + .s("CustomerProfiles_20200815", "GetSegmentSnapshot", {}) + .n("CustomerProfilesClient", "GetSegmentSnapshotCommand") + .f(void 0, void 0) + .ser(se_GetSegmentSnapshotCommand) + .de(de_GetSegmentSnapshotCommand) + .build() { + /** @internal type navigation helper, not in runtime. */ + protected declare static __types: { + api: { + input: GetSegmentSnapshotRequest; + output: GetSegmentSnapshotResponse; + }; + sdk: { + input: GetSegmentSnapshotCommandInput; + output: GetSegmentSnapshotCommandOutput; + }; + }; +} diff --git a/clients/client-customer-profiles/src/commands/ListObjectTypeAttributesCommand.ts b/clients/client-customer-profiles/src/commands/ListObjectTypeAttributesCommand.ts new file mode 100644 index 000000000000..75682db8d078 --- /dev/null +++ b/clients/client-customer-profiles/src/commands/ListObjectTypeAttributesCommand.ts @@ -0,0 +1,116 @@ +// 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 { CustomerProfilesClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../CustomerProfilesClient"; +import { commonParams } from "../endpoint/EndpointParameters"; +import { ListObjectTypeAttributesRequest, ListObjectTypeAttributesResponse } from "../models/models_0"; +import { de_ListObjectTypeAttributesCommand, se_ListObjectTypeAttributesCommand } from "../protocols/Aws_restJson1"; + +/** + * @public + */ +export type { __MetadataBearer }; +export { $Command }; +/** + * @public + * + * The input for {@link ListObjectTypeAttributesCommand}. + */ +export interface ListObjectTypeAttributesCommandInput extends ListObjectTypeAttributesRequest {} +/** + * @public + * + * The output of {@link ListObjectTypeAttributesCommand}. + */ +export interface ListObjectTypeAttributesCommandOutput extends ListObjectTypeAttributesResponse, __MetadataBearer {} + +/** + *

Fetch the possible attribute values given the attribute name.

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { CustomerProfilesClient, ListObjectTypeAttributesCommand } from "@aws-sdk/client-customer-profiles"; // ES Modules import + * // const { CustomerProfilesClient, ListObjectTypeAttributesCommand } = require("@aws-sdk/client-customer-profiles"); // CommonJS import + * const client = new CustomerProfilesClient(config); + * const input = { // ListObjectTypeAttributesRequest + * NextToken: "STRING_VALUE", + * MaxResults: Number("int"), + * DomainName: "STRING_VALUE", // required + * ObjectTypeName: "STRING_VALUE", // required + * }; + * const command = new ListObjectTypeAttributesCommand(input); + * const response = await client.send(command); + * // { // ListObjectTypeAttributesResponse + * // Items: [ // ListObjectTypeAttributesList + * // { // ListObjectTypeAttributeItem + * // AttributeName: "STRING_VALUE", // required + * // LastUpdatedAt: new Date("TIMESTAMP"), // required + * // }, + * // ], + * // NextToken: "STRING_VALUE", + * // }; + * + * ``` + * + * @param ListObjectTypeAttributesCommandInput - {@link ListObjectTypeAttributesCommandInput} + * @returns {@link ListObjectTypeAttributesCommandOutput} + * @see {@link ListObjectTypeAttributesCommandInput} for command's `input` shape. + * @see {@link ListObjectTypeAttributesCommandOutput} for command's `response` shape. + * @see {@link CustomerProfilesClientResolvedConfig | config} for CustomerProfilesClient's `config` shape. + * + * @throws {@link AccessDeniedException} (client fault) + *

You do not have sufficient access to perform this action.

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

The input you provided is invalid.

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

An internal service error occurred.

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

The requested resource does not exist, or access was denied.

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

You exceeded the maximum number of requests.

+ * + * @throws {@link CustomerProfilesServiceException} + *

Base exception class for all service exceptions from CustomerProfiles service.

+ * + * @public + */ +export class ListObjectTypeAttributesCommand extends $Command + .classBuilder< + ListObjectTypeAttributesCommandInput, + ListObjectTypeAttributesCommandOutput, + CustomerProfilesClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes + >() + .ep(commonParams) + .m(function (this: any, Command: any, cs: any, config: CustomerProfilesClientResolvedConfig, o: any) { + return [ + getSerdePlugin(config, this.serialize, this.deserialize), + getEndpointPlugin(config, Command.getEndpointParameterInstructions()), + ]; + }) + .s("CustomerProfiles_20200815", "ListObjectTypeAttributes", {}) + .n("CustomerProfilesClient", "ListObjectTypeAttributesCommand") + .f(void 0, void 0) + .ser(se_ListObjectTypeAttributesCommand) + .de(de_ListObjectTypeAttributesCommand) + .build() { + /** @internal type navigation helper, not in runtime. */ + protected declare static __types: { + api: { + input: ListObjectTypeAttributesRequest; + output: ListObjectTypeAttributesResponse; + }; + sdk: { + input: ListObjectTypeAttributesCommandInput; + output: ListObjectTypeAttributesCommandOutput; + }; + }; +} diff --git a/clients/client-customer-profiles/src/commands/ListProfileAttributeValuesCommand.ts b/clients/client-customer-profiles/src/commands/ListProfileAttributeValuesCommand.ts new file mode 100644 index 000000000000..ebbef3d892a5 --- /dev/null +++ b/clients/client-customer-profiles/src/commands/ListProfileAttributeValuesCommand.ts @@ -0,0 +1,115 @@ +// 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 { CustomerProfilesClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../CustomerProfilesClient"; +import { commonParams } from "../endpoint/EndpointParameters"; +import { ProfileAttributeValuesRequest, ProfileAttributeValuesResponse } from "../models/models_0"; +import { de_ListProfileAttributeValuesCommand, se_ListProfileAttributeValuesCommand } from "../protocols/Aws_restJson1"; + +/** + * @public + */ +export type { __MetadataBearer }; +export { $Command }; +/** + * @public + * + * The input for {@link ListProfileAttributeValuesCommand}. + */ +export interface ListProfileAttributeValuesCommandInput extends ProfileAttributeValuesRequest {} +/** + * @public + * + * The output of {@link ListProfileAttributeValuesCommand}. + */ +export interface ListProfileAttributeValuesCommandOutput extends ProfileAttributeValuesResponse, __MetadataBearer {} + +/** + *

Fetch the possible attribute values given the attribute name.

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { CustomerProfilesClient, ListProfileAttributeValuesCommand } from "@aws-sdk/client-customer-profiles"; // ES Modules import + * // const { CustomerProfilesClient, ListProfileAttributeValuesCommand } = require("@aws-sdk/client-customer-profiles"); // CommonJS import + * const client = new CustomerProfilesClient(config); + * const input = { // ProfileAttributeValuesRequest + * DomainName: "STRING_VALUE", // required + * AttributeName: "STRING_VALUE", // required + * }; + * const command = new ListProfileAttributeValuesCommand(input); + * const response = await client.send(command); + * // { // ProfileAttributeValuesResponse + * // DomainName: "STRING_VALUE", + * // AttributeName: "STRING_VALUE", + * // Items: [ // AttributeValueItemList + * // { // AttributeValueItem + * // Value: "STRING_VALUE", + * // }, + * // ], + * // StatusCode: Number("int"), + * // }; + * + * ``` + * + * @param ListProfileAttributeValuesCommandInput - {@link ListProfileAttributeValuesCommandInput} + * @returns {@link ListProfileAttributeValuesCommandOutput} + * @see {@link ListProfileAttributeValuesCommandInput} for command's `input` shape. + * @see {@link ListProfileAttributeValuesCommandOutput} for command's `response` shape. + * @see {@link CustomerProfilesClientResolvedConfig | config} for CustomerProfilesClient's `config` shape. + * + * @throws {@link AccessDeniedException} (client fault) + *

You do not have sufficient access to perform this action.

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

The input you provided is invalid.

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

An internal service error occurred.

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

The requested resource does not exist, or access was denied.

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

You exceeded the maximum number of requests.

+ * + * @throws {@link CustomerProfilesServiceException} + *

Base exception class for all service exceptions from CustomerProfiles service.

+ * + * @public + */ +export class ListProfileAttributeValuesCommand extends $Command + .classBuilder< + ListProfileAttributeValuesCommandInput, + ListProfileAttributeValuesCommandOutput, + CustomerProfilesClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes + >() + .ep(commonParams) + .m(function (this: any, Command: any, cs: any, config: CustomerProfilesClientResolvedConfig, o: any) { + return [ + getSerdePlugin(config, this.serialize, this.deserialize), + getEndpointPlugin(config, Command.getEndpointParameterInstructions()), + ]; + }) + .s("CustomerProfiles_20200815", "ListProfileAttributeValues", {}) + .n("CustomerProfilesClient", "ListProfileAttributeValuesCommand") + .f(void 0, void 0) + .ser(se_ListProfileAttributeValuesCommand) + .de(de_ListProfileAttributeValuesCommand) + .build() { + /** @internal type navigation helper, not in runtime. */ + protected declare static __types: { + api: { + input: ProfileAttributeValuesRequest; + output: ProfileAttributeValuesResponse; + }; + sdk: { + input: ListProfileAttributeValuesCommandInput; + output: ListProfileAttributeValuesCommandOutput; + }; + }; +} diff --git a/clients/client-customer-profiles/src/commands/ListSegmentDefinitionsCommand.ts b/clients/client-customer-profiles/src/commands/ListSegmentDefinitionsCommand.ts new file mode 100644 index 000000000000..75134b34106b --- /dev/null +++ b/clients/client-customer-profiles/src/commands/ListSegmentDefinitionsCommand.ts @@ -0,0 +1,125 @@ +// 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 { CustomerProfilesClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../CustomerProfilesClient"; +import { commonParams } from "../endpoint/EndpointParameters"; +import { + ListSegmentDefinitionsRequest, + ListSegmentDefinitionsResponse, + ListSegmentDefinitionsResponseFilterSensitiveLog, +} from "../models/models_0"; +import { de_ListSegmentDefinitionsCommand, se_ListSegmentDefinitionsCommand } from "../protocols/Aws_restJson1"; + +/** + * @public + */ +export type { __MetadataBearer }; +export { $Command }; +/** + * @public + * + * The input for {@link ListSegmentDefinitionsCommand}. + */ +export interface ListSegmentDefinitionsCommandInput extends ListSegmentDefinitionsRequest {} +/** + * @public + * + * The output of {@link ListSegmentDefinitionsCommand}. + */ +export interface ListSegmentDefinitionsCommandOutput extends ListSegmentDefinitionsResponse, __MetadataBearer {} + +/** + *

Lists all segment definitions under a domain.

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { CustomerProfilesClient, ListSegmentDefinitionsCommand } from "@aws-sdk/client-customer-profiles"; // ES Modules import + * // const { CustomerProfilesClient, ListSegmentDefinitionsCommand } = require("@aws-sdk/client-customer-profiles"); // CommonJS import + * const client = new CustomerProfilesClient(config); + * const input = { // ListSegmentDefinitionsRequest + * DomainName: "STRING_VALUE", // required + * MaxResults: Number("int"), + * NextToken: "STRING_VALUE", + * }; + * const command = new ListSegmentDefinitionsCommand(input); + * const response = await client.send(command); + * // { // ListSegmentDefinitionsResponse + * // NextToken: "STRING_VALUE", + * // Items: [ // SegmentDefinitionsList + * // { // SegmentDefinitionItem + * // SegmentDefinitionName: "STRING_VALUE", + * // DisplayName: "STRING_VALUE", + * // Description: "STRING_VALUE", + * // SegmentDefinitionArn: "STRING_VALUE", + * // CreatedAt: new Date("TIMESTAMP"), + * // Tags: { // TagMap + * // "": "STRING_VALUE", + * // }, + * // }, + * // ], + * // }; + * + * ``` + * + * @param ListSegmentDefinitionsCommandInput - {@link ListSegmentDefinitionsCommandInput} + * @returns {@link ListSegmentDefinitionsCommandOutput} + * @see {@link ListSegmentDefinitionsCommandInput} for command's `input` shape. + * @see {@link ListSegmentDefinitionsCommandOutput} for command's `response` shape. + * @see {@link CustomerProfilesClientResolvedConfig | config} for CustomerProfilesClient's `config` shape. + * + * @throws {@link AccessDeniedException} (client fault) + *

You do not have sufficient access to perform this action.

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

The input you provided is invalid.

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

An internal service error occurred.

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

The requested resource does not exist, or access was denied.

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

You exceeded the maximum number of requests.

+ * + * @throws {@link CustomerProfilesServiceException} + *

Base exception class for all service exceptions from CustomerProfiles service.

+ * + * @public + */ +export class ListSegmentDefinitionsCommand extends $Command + .classBuilder< + ListSegmentDefinitionsCommandInput, + ListSegmentDefinitionsCommandOutput, + CustomerProfilesClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes + >() + .ep(commonParams) + .m(function (this: any, Command: any, cs: any, config: CustomerProfilesClientResolvedConfig, o: any) { + return [ + getSerdePlugin(config, this.serialize, this.deserialize), + getEndpointPlugin(config, Command.getEndpointParameterInstructions()), + ]; + }) + .s("CustomerProfiles_20200815", "ListSegmentDefinitions", {}) + .n("CustomerProfilesClient", "ListSegmentDefinitionsCommand") + .f(void 0, ListSegmentDefinitionsResponseFilterSensitiveLog) + .ser(se_ListSegmentDefinitionsCommand) + .de(de_ListSegmentDefinitionsCommand) + .build() { + /** @internal type navigation helper, not in runtime. */ + protected declare static __types: { + api: { + input: ListSegmentDefinitionsRequest; + output: ListSegmentDefinitionsResponse; + }; + sdk: { + input: ListSegmentDefinitionsCommandInput; + output: ListSegmentDefinitionsCommandOutput; + }; + }; +} diff --git a/clients/client-customer-profiles/src/commands/PutProfileObjectTypeCommand.ts b/clients/client-customer-profiles/src/commands/PutProfileObjectTypeCommand.ts index 4589560e4c16..ee7d1b786e45 100644 --- a/clients/client-customer-profiles/src/commands/PutProfileObjectTypeCommand.ts +++ b/clients/client-customer-profiles/src/commands/PutProfileObjectTypeCommand.ts @@ -63,7 +63,7 @@ export interface PutProfileObjectTypeCommandOutput extends PutProfileObjectTypeR * "": [ // ObjectTypeKeyList * { // ObjectTypeKey * StandardIdentifiers: [ // StandardIdentifierList - * "PROFILE" || "ASSET" || "CASE" || "UNIQUE" || "SECONDARY" || "LOOKUP_ONLY" || "NEW_ONLY" || "ORDER", + * "PROFILE" || "ASSET" || "CASE" || "ORDER" || "COMMUNICATION_RECORD" || "UNIQUE" || "SECONDARY" || "LOOKUP_ONLY" || "NEW_ONLY", * ], * FieldNames: [ // FieldNameList * "STRING_VALUE", @@ -98,7 +98,7 @@ export interface PutProfileObjectTypeCommandOutput extends PutProfileObjectTypeR * // "": [ // ObjectTypeKeyList * // { // ObjectTypeKey * // StandardIdentifiers: [ // StandardIdentifierList - * // "PROFILE" || "ASSET" || "CASE" || "UNIQUE" || "SECONDARY" || "LOOKUP_ONLY" || "NEW_ONLY" || "ORDER", + * // "PROFILE" || "ASSET" || "CASE" || "ORDER" || "COMMUNICATION_RECORD" || "UNIQUE" || "SECONDARY" || "LOOKUP_ONLY" || "NEW_ONLY", * // ], * // FieldNames: [ // FieldNameList * // "STRING_VALUE", diff --git a/clients/client-customer-profiles/src/commands/index.ts b/clients/client-customer-profiles/src/commands/index.ts index 9f09cb8c2a7b..3fc679176eb8 100644 --- a/clients/client-customer-profiles/src/commands/index.ts +++ b/clients/client-customer-profiles/src/commands/index.ts @@ -1,10 +1,15 @@ // smithy-typescript generated code export * from "./AddProfileKeyCommand"; +export * from "./BatchGetCalculatedAttributeForProfileCommand"; +export * from "./BatchGetProfileCommand"; export * from "./CreateCalculatedAttributeDefinitionCommand"; export * from "./CreateDomainCommand"; export * from "./CreateEventStreamCommand"; export * from "./CreateIntegrationWorkflowCommand"; export * from "./CreateProfileCommand"; +export * from "./CreateSegmentDefinitionCommand"; +export * from "./CreateSegmentEstimateCommand"; +export * from "./CreateSegmentSnapshotCommand"; export * from "./DeleteCalculatedAttributeDefinitionCommand"; export * from "./DeleteDomainCommand"; export * from "./DeleteEventStreamCommand"; @@ -13,6 +18,7 @@ export * from "./DeleteProfileCommand"; export * from "./DeleteProfileKeyCommand"; export * from "./DeleteProfileObjectCommand"; export * from "./DeleteProfileObjectTypeCommand"; +export * from "./DeleteSegmentDefinitionCommand"; export * from "./DeleteWorkflowCommand"; export * from "./DetectProfileObjectTypeCommand"; export * from "./GetAutoMergingPreviewCommand"; @@ -25,6 +31,10 @@ export * from "./GetIntegrationCommand"; export * from "./GetMatchesCommand"; export * from "./GetProfileObjectTypeCommand"; export * from "./GetProfileObjectTypeTemplateCommand"; +export * from "./GetSegmentDefinitionCommand"; +export * from "./GetSegmentEstimateCommand"; +export * from "./GetSegmentMembershipCommand"; +export * from "./GetSegmentSnapshotCommand"; export * from "./GetSimilarProfilesCommand"; export * from "./GetWorkflowCommand"; export * from "./GetWorkflowStepsCommand"; @@ -35,10 +45,13 @@ export * from "./ListDomainsCommand"; export * from "./ListEventStreamsCommand"; export * from "./ListIdentityResolutionJobsCommand"; export * from "./ListIntegrationsCommand"; +export * from "./ListObjectTypeAttributesCommand"; +export * from "./ListProfileAttributeValuesCommand"; export * from "./ListProfileObjectTypeTemplatesCommand"; export * from "./ListProfileObjectTypesCommand"; export * from "./ListProfileObjectsCommand"; export * from "./ListRuleBasedMatchesCommand"; +export * from "./ListSegmentDefinitionsCommand"; export * from "./ListTagsForResourceCommand"; export * from "./ListWorkflowsCommand"; export * from "./MergeProfilesCommand"; diff --git a/clients/client-customer-profiles/src/models/models_0.ts b/clients/client-customer-profiles/src/models/models_0.ts index cfe0ab37c728..af17003997d1 100644 --- a/clients/client-customer-profiles/src/models/models_0.ts +++ b/clients/client-customer-profiles/src/models/models_0.ts @@ -250,6 +250,83 @@ export interface Address { PostalCode?: string | undefined; } +/** + * @public + * @enum + */ +export const StringDimensionType = { + BEGINS_WITH: "BEGINS_WITH", + CONTAINS: "CONTAINS", + ENDS_WITH: "ENDS_WITH", + EXCLUSIVE: "EXCLUSIVE", + INCLUSIVE: "INCLUSIVE", +} as const; + +/** + * @public + */ +export type StringDimensionType = (typeof StringDimensionType)[keyof typeof StringDimensionType]; + +/** + *

Object to hold the dimensions of a profile's fields to segment on.

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

The action to segment on.

+ * @public + */ + DimensionType: StringDimensionType | undefined; + + /** + *

The values to apply the DimensionType on.

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

Object that segments on Customer Profile's address object.

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

The city belonging to the address.

+ * @public + */ + City?: ProfileDimension | undefined; + + /** + *

The country belonging to the address.

+ * @public + */ + Country?: ProfileDimension | undefined; + + /** + *

The county belonging to the address.

+ * @public + */ + County?: ProfileDimension | undefined; + + /** + *

The postal code belonging to the address.

+ * @public + */ + PostalCode?: ProfileDimension | undefined; + + /** + *

The province belonging to the address.

+ * @public + */ + Province?: ProfileDimension | undefined; + + /** + *

The state belonging to the address.

+ * @public + */ + State?: ProfileDimension | undefined; +} + /** *

Batch defines the boundaries for ingestion for each step in * APPFLOW_INTEGRATION workflow. APPFLOW_INTEGRATION workflow @@ -1074,6 +1151,96 @@ export interface AttributeDetails { Expression: string | undefined; } +/** + * @public + * @enum + */ +export const AttributeDimensionType = { + AFTER: "AFTER", + BEFORE: "BEFORE", + BEGINS_WITH: "BEGINS_WITH", + BETWEEN: "BETWEEN", + CONTAINS: "CONTAINS", + ENDS_WITH: "ENDS_WITH", + EQUAL: "EQUAL", + EXCLUSIVE: "EXCLUSIVE", + GREATER_THAN: "GREATER_THAN", + GREATER_THAN_OR_EQUAL: "GREATER_THAN_OR_EQUAL", + INCLUSIVE: "INCLUSIVE", + LESS_THAN: "LESS_THAN", + LESS_THAN_OR_EQUAL: "LESS_THAN_OR_EQUAL", + NOT_BETWEEN: "NOT_BETWEEN", + ON: "ON", +} as const; + +/** + * @public + */ +export type AttributeDimensionType = (typeof AttributeDimensionType)[keyof typeof AttributeDimensionType]; + +/** + *

Object that segments on various Customer Profile's fields.

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

The action to segment with.

+ * @public + */ + DimensionType: AttributeDimensionType | undefined; + + /** + *

The values to apply the DimensionType on.

+ * @public + */ + Values: string[] | undefined; +} + +/** + * @public + * @enum + */ +export const FilterDimensionType = { + AFTER: "AFTER", + BEFORE: "BEFORE", + BEGINS_WITH: "BEGINS_WITH", + BETWEEN: "BETWEEN", + CONTAINS: "CONTAINS", + ENDS_WITH: "ENDS_WITH", + EQUAL: "EQUAL", + EXCLUSIVE: "EXCLUSIVE", + GREATER_THAN: "GREATER_THAN", + GREATER_THAN_OR_EQUAL: "GREATER_THAN_OR_EQUAL", + INCLUSIVE: "INCLUSIVE", + LESS_THAN: "LESS_THAN", + LESS_THAN_OR_EQUAL: "LESS_THAN_OR_EQUAL", + NOT_BETWEEN: "NOT_BETWEEN", + ON: "ON", +} as const; + +/** + * @public + */ +export type FilterDimensionType = (typeof FilterDimensionType)[keyof typeof FilterDimensionType]; + +/** + *

Object that defines how to filter the incoming objects for the calculated attribute.

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

The action to filter with.

+ * @public + */ + DimensionType: FilterDimensionType | undefined; + + /** + *

The values to apply the DimensionType on.

+ * @public + */ + Values: string[] | undefined; +} + /** * @public * @enum @@ -1183,6 +1350,18 @@ export interface AttributeTypesSelector { EmailAddress?: string[] | undefined; } +/** + *

List containing the values for the given attribute.

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

An individual value belonging to the given attribute.

+ * @public + */ + Value?: string | undefined; +} + /** * @public * @enum @@ -1278,53 +1457,88 @@ export interface AutoMerging { } /** - *

The details of a single calculated attribute definition.

* @public + * @enum */ -export interface ListCalculatedAttributeDefinitionItem { +export const RangeUnit = { + DAYS: "DAYS", +} as const; + +/** + * @public + */ +export type RangeUnit = (typeof RangeUnit)[keyof typeof RangeUnit]; + +/** + *

Overrides the original range on a calculated attribute definition.

+ * @public + */ +export interface RangeOverride { /** - *

The unique name of the calculated attribute.

+ *

The start time of when to include objects.

* @public */ - CalculatedAttributeName?: string | undefined; + Start: number | undefined; /** - *

The display name of the calculated attribute.

+ *

The end time of when to include objects.

* @public */ - DisplayName?: string | undefined; + End?: number | undefined; /** - *

The threshold for the calculated attribute.

+ *

The unit for start and end.

* @public */ - Description?: string | undefined; + Unit: RangeUnit | undefined; +} +/** + *

An object to override the original condition block of a calculated attribute.

+ * @public + */ +export interface ConditionOverrides { /** - *

The threshold for the calculated attribute.

+ *

The relative time period over which data is included in the aggregation for this override.

* @public */ - CreatedAt?: Date | undefined; + Range?: RangeOverride | undefined; +} + +/** + * @public + */ +export interface BatchGetCalculatedAttributeForProfileRequest { + /** + *

The unique name of the calculated attribute.

+ * @public + */ + CalculatedAttributeName: string | undefined; /** - *

The timestamp of when the calculated attribute definition was most recently - * edited.

+ *

The unique name of the domain.

* @public */ - LastUpdatedAt?: Date | undefined; + DomainName: string | undefined; /** - *

The tags used to organize, track, or control access for this resource.

+ *

List of unique identifiers for customer profiles to retrieve.

* @public */ - Tags?: Record | undefined; + ProfileIds: string[] | undefined; + + /** + *

Overrides the condition block within the original calculated attribute definition.

+ * @public + */ + ConditionOverrides?: ConditionOverrides | undefined; } /** - *

The details of a single calculated attribute for a profile.

+ *

The object containing the values of a single calculated attribute value.

* @public */ -export interface ListCalculatedAttributeForProfileItem { +export interface CalculatedAttributeValue { /** *

The unique name of the calculated attribute.

* @public @@ -1338,12 +1552,17 @@ export interface ListCalculatedAttributeForProfileItem { DisplayName?: string | undefined; /** - *

Indicates whether the calculated attribute’s value is based on partial data. If data is - * partial, it is set to true.

+ *

Indicates whether the calculated attribute's value is based on partial data. If the data is partial, it is set to true.

* @public */ IsDataPartial?: string | undefined; + /** + *

The profile id belonging to this calculated attribute value.

+ * @public + */ + ProfileId?: string | undefined; + /** *

The value of the calculated attribute.

* @public @@ -1352,174 +1571,350 @@ export interface ListCalculatedAttributeForProfileItem { } /** - * @public - * @enum - */ -export const Unit = { - DAYS: "DAYS", -} as const; - -/** + *

Error object describing why a specific profile and calculated attribute failed.

* @public */ -export type Unit = (typeof Unit)[keyof typeof Unit]; +export interface BatchGetCalculatedAttributeForProfileError { + /** + *

Status code for why a specific profile and calculated attribute failed.

+ * @public + */ + Code: string | undefined; -/** - *

The relative time period over which data is included in the aggregation.

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

The amount of time of the specified unit.

+ *

Message describing why a specific profile and calculated attribute failed.

* @public */ - Value: number | undefined; + Message: string | undefined; /** - *

The unit of time.

+ *

The profile id that failed.

* @public */ - Unit: Unit | undefined; + ProfileId: string | undefined; } /** * @public - * @enum */ -export const Operator = { - EQUAL_TO: "EQUAL_TO", - GREATER_THAN: "GREATER_THAN", - LESS_THAN: "LESS_THAN", - NOT_EQUAL_TO: "NOT_EQUAL_TO", -} as const; +export interface BatchGetCalculatedAttributeForProfileResponse { + /** + *

List of errors for calculated attribute values that could not be retrieved.

+ * @public + */ + Errors?: BatchGetCalculatedAttributeForProfileError[] | undefined; -/** - * @public - */ -export type Operator = (typeof Operator)[keyof typeof Operator]; + /** + *

List of calculated attribute values retrieved.

+ * @public + */ + CalculatedAttributeValues?: CalculatedAttributeValue[] | undefined; + + /** + *

Overrides the condition block within the original calculated attribute definition.

+ * @public + */ + ConditionOverrides?: ConditionOverrides | undefined; +} /** - *

The threshold for the calculated attribute.

* @public */ -export interface Threshold { +export interface BatchGetProfileRequest { /** - *

The value of the threshold.

+ *

The unique name of the domain.

* @public */ - Value: string | undefined; + DomainName: string | undefined; /** - *

The operator of the threshold.

+ *

List of unique identifiers for customer profiles to retrieve.

* @public */ - Operator: Operator | undefined; + ProfileIds: string[] | undefined; } /** - *

The conditions including range, object count, and threshold for the calculated - * attribute.

+ *

Error object describing why a specific profile failed.

* @public */ -export interface Conditions { +export interface BatchGetProfileError { /** - *

The relative time period over which data is included in the aggregation.

+ *

Status code for why a specific profile failed.

* @public */ - Range?: Range | undefined; + Code: string | undefined; /** - *

The number of profile objects used for the calculated attribute.

+ *

Message describing why a specific profile failed.

* @public */ - ObjectCount?: number | undefined; + Message: string | undefined; /** - *

The threshold for the calculated attribute.

+ *

The profile id that failed.

* @public */ - Threshold?: Threshold | undefined; + ProfileId: string | undefined; } /** + *

A data type pair that consists of a KeyName and Values list + * that were used to find a profile returned in response to a SearchProfiles request. + *

* @public - * @enum */ -export const Statistic = { - AVERAGE: "AVERAGE", - COUNT: "COUNT", - FIRST_OCCURRENCE: "FIRST_OCCURRENCE", - LAST_OCCURRENCE: "LAST_OCCURRENCE", - MAXIMUM: "MAXIMUM", - MAX_OCCURRENCE: "MAX_OCCURRENCE", - MINIMUM: "MINIMUM", - SUM: "SUM", -} as const; +export interface FoundByKeyValue { + /** + *

A searchable identifier of a customer profile.

+ * @public + */ + KeyName?: string | undefined; -/** - * @public + /** + *

A list of key values.

+ * @public + */ + Values?: string[] | undefined; +} + +/** + * @public + * @enum */ -export type Statistic = (typeof Statistic)[keyof typeof Statistic]; +export const Gender = { + FEMALE: "FEMALE", + MALE: "MALE", + UNSPECIFIED: "UNSPECIFIED", +} as const; /** * @public */ -export interface CreateCalculatedAttributeDefinitionRequest { +export type Gender = (typeof Gender)[keyof typeof Gender]; + +/** + * @public + * @enum + */ +export const PartyType = { + BUSINESS: "BUSINESS", + INDIVIDUAL: "INDIVIDUAL", + OTHER: "OTHER", +} as const; + +/** + * @public + */ +export type PartyType = (typeof PartyType)[keyof typeof PartyType]; + +/** + *

The standard profile of a customer.

+ * @public + */ +export interface Profile { /** - *

The unique name of the domain.

+ *

The unique identifier of a customer profile.

* @public */ - DomainName: string | undefined; + ProfileId?: string | undefined; /** - *

The unique name of the calculated attribute.

+ *

An account number that you have given to the customer.

* @public */ - CalculatedAttributeName: string | undefined; + AccountNumber?: string | undefined; /** - *

The display name of the calculated attribute.

+ *

Any additional information relevant to the customer’s profile.

* @public */ - DisplayName?: string | undefined; + AdditionalInformation?: string | undefined; /** - *

The description of the calculated attribute.

+ * @deprecated + * + *

The type of profile used to describe the customer.

* @public */ - Description?: string | undefined; + PartyType?: PartyType | undefined; /** - *

Mathematical expression and a list of attribute items specified in that - * expression.

+ *

The name of the customer’s business.

* @public */ - AttributeDetails: AttributeDetails | undefined; + BusinessName?: string | undefined; /** - *

The conditions including range, object count, and threshold for the calculated - * attribute.

+ *

The customer’s first name.

* @public */ - Conditions?: Conditions | undefined; + FirstName?: string | undefined; /** - *

The aggregation operation to perform for the calculated attribute.

+ *

The customer’s middle name.

* @public */ - Statistic: Statistic | undefined; + MiddleName?: string | undefined; /** - *

The tags used to organize, track, or control access for this resource.

+ *

The customer’s last name.

* @public */ - Tags?: Record | undefined; + LastName?: string | undefined; + + /** + *

The customer’s birth date.

+ * @public + */ + BirthDate?: string | undefined; + + /** + * @deprecated + * + *

The gender with which the customer identifies.

+ * @public + */ + Gender?: Gender | undefined; + + /** + *

The customer's phone number, which has not been specified as a mobile, home, or business + * number.

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

The customer’s mobile phone number.

+ * @public + */ + MobilePhoneNumber?: string | undefined; + + /** + *

The customer’s home phone number.

+ * @public + */ + HomePhoneNumber?: string | undefined; + + /** + *

The customer’s home phone number.

+ * @public + */ + BusinessPhoneNumber?: string | undefined; + + /** + *

The customer’s email address, which has not been specified as a personal or business + * address.

+ * @public + */ + EmailAddress?: string | undefined; + + /** + *

The customer’s personal email address.

+ * @public + */ + PersonalEmailAddress?: string | undefined; + + /** + *

The customer’s business email address.

+ * @public + */ + BusinessEmailAddress?: string | undefined; + + /** + *

A generic address associated with the customer that is not mailing, shipping, or + * billing.

+ * @public + */ + Address?: Address | undefined; + + /** + *

The customer’s shipping address.

+ * @public + */ + ShippingAddress?: Address | undefined; + + /** + *

The customer’s mailing address.

+ * @public + */ + MailingAddress?: Address | undefined; + + /** + *

The customer’s billing address.

+ * @public + */ + BillingAddress?: Address | undefined; + + /** + *

A key value pair of attributes of a customer profile.

+ * @public + */ + Attributes?: Record | undefined; + + /** + *

A list of items used to find a profile returned in a SearchProfiles response. + * An item is a key-value(s) pair that matches an attribute in the profile.

+ *

If the optional AdditionalSearchKeys parameter was included in the + * SearchProfiles request, the FoundByItems list should be interpreted + * based on the LogicalOperator used in the request:

+ *
    + *
  • + *

    + * AND - The profile included in the response matched all of the search + * keys specified in the request. The FoundByItems will include all of the + * key-value(s) pairs that were specified in the request (as this is a requirement of + * AND search logic).

    + *
  • + *
  • + *

    + * OR - The profile included in the response matched at least one of the + * search keys specified in the request. The FoundByItems will include each + * of the key-value(s) pairs that the profile was found by.

    + *
  • + *
+ *

The OR relationship is the default behavior if the + * LogicalOperator parameter is not included in the SearchProfiles + * request.

+ * @public + */ + FoundByItems?: FoundByKeyValue[] | undefined; + + /** + *

An alternative to PartyType which accepts any string as input.

+ * @public + */ + PartyTypeString?: string | undefined; + + /** + *

An alternative to Gender which accepts any string as input.

+ * @public + */ + GenderString?: string | undefined; } /** * @public */ -export interface CreateCalculatedAttributeDefinitionResponse { +export interface BatchGetProfileResponse { + /** + *

For information about the errors that are common to all actions, see Common Errors.

+ * @public + */ + Errors?: BatchGetProfileError[] | undefined; + + /** + *

Array of Profile Objects.

+ * @public + */ + Profiles?: Profile[] | undefined; +} + +/** + *

The details of a single calculated attribute definition.

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

The unique name of the calculated attribute.

* @public @@ -1533,480 +1928,1518 @@ export interface CreateCalculatedAttributeDefinitionResponse { DisplayName?: string | undefined; /** - *

The description of the calculated attribute.

+ *

The threshold for the calculated attribute.

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

Mathematical expression and a list of attribute items specified in that - * expression.

+ *

The threshold for the calculated attribute.

* @public */ - AttributeDetails?: AttributeDetails | undefined; + CreatedAt?: Date | undefined; /** - *

The conditions including range, object count, and threshold for the calculated - * attribute.

+ *

The timestamp of when the calculated attribute definition was most recently + * edited.

* @public */ - Conditions?: Conditions | undefined; + LastUpdatedAt?: Date | undefined; /** - *

The aggregation operation to perform for the calculated attribute.

+ *

The tags used to organize, track, or control access for this resource.

* @public */ - Statistic?: Statistic | undefined; + Tags?: Record | undefined; +} +/** + *

Object that segments on Customer Profile's Calculated Attributes.

+ * @public + */ +export interface CalculatedAttributeDimension { /** - *

The timestamp of when the calculated attribute definition was created.

+ *

The action to segment with.

* @public */ - CreatedAt?: Date | undefined; + DimensionType: AttributeDimensionType | undefined; /** - *

The timestamp of when the calculated attribute definition was most recently - * edited.

+ *

The values to apply the DimensionType with.

* @public */ - LastUpdatedAt?: Date | undefined; + Values: string[] | undefined; /** - *

The tags used to organize, track, or control access for this resource.

+ *

Applies the given condition over the initial Calculated Attribute's definition.

* @public */ - Tags?: Record | undefined; + ConditionOverrides?: ConditionOverrides | undefined; } /** - *

Configuration information about the S3 bucket where Identity Resolution Jobs write result files.

+ *

The details of a single calculated attribute for a profile.

* @public */ -export interface S3ExportingConfig { +export interface ListCalculatedAttributeForProfileItem { /** - *

The name of the S3 bucket where Identity Resolution Jobs write result files.

+ *

The unique name of the calculated attribute.

* @public */ - S3BucketName: string | undefined; + CalculatedAttributeName?: string | undefined; + + /** + *

The display name of the calculated attribute.

+ * @public + */ + DisplayName?: string | undefined; + + /** + *

Indicates whether the calculated attribute’s value is based on partial data. If data is + * partial, it is set to true.

+ * @public + */ + IsDataPartial?: string | undefined; + + /** + *

The value of the calculated attribute.

+ * @public + */ + Value?: string | undefined; +} + +/** + * @public + * @enum + */ +export const Unit = { + DAYS: "DAYS", +} as const; + +/** + * @public + */ +export type Unit = (typeof Unit)[keyof typeof Unit]; + +/** + *

The relative time period over which data is included in the aggregation.

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

The amount of time of the specified unit.

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

The unit of time.

+ * @public + */ + Unit: Unit | undefined; +} + +/** + * @public + * @enum + */ +export const Operator = { + EQUAL_TO: "EQUAL_TO", + GREATER_THAN: "GREATER_THAN", + LESS_THAN: "LESS_THAN", + NOT_EQUAL_TO: "NOT_EQUAL_TO", +} as const; + +/** + * @public + */ +export type Operator = (typeof Operator)[keyof typeof Operator]; + +/** + *

The threshold for the calculated attribute.

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

The value of the threshold.

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

The operator of the threshold.

+ * @public + */ + Operator: Operator | undefined; +} + +/** + *

The conditions including range, object count, and threshold for the calculated + * attribute.

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

The relative time period over which data is included in the aggregation.

+ * @public + */ + Range?: Range | undefined; + + /** + *

The number of profile objects used for the calculated attribute.

+ * @public + */ + ObjectCount?: number | undefined; + + /** + *

The threshold for the calculated attribute.

+ * @public + */ + Threshold?: Threshold | undefined; +} + +/** + *

Contains the map of attribute names to attribute dimensions.

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

Is the attribute within the FilterDimension map

+ * @public + */ + Attributes: Record | undefined; +} + +/** + * @public + * @enum + */ +export const Type = { + ALL: "ALL", + ANY: "ANY", + NONE: "NONE", +} as const; + +/** + * @public + */ +export type Type = (typeof Type)[keyof typeof Type]; + +/** + *

Object that holds the dimensions to filter on.

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

The type of logical relationship between the dimensions of the Filter group.

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

Object that holds the attributes to filter on.

+ * @public + */ + Dimensions: FilterDimension[] | undefined; +} + +/** + * @public + * @enum + */ +export const Include = { + ALL: "ALL", + ANY: "ANY", + NONE: "NONE", +} as const; + +/** + * @public + */ +export type Include = (typeof Include)[keyof typeof Include]; + +/** + *

Defines how to filter the objects coming in for calculated attributes.

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

Define whether to include or exclude objects for Calculated Attributed calculation that fit the filter groups criteria.

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

Holds the list of Filter groups within the Filter definition.

+ * @public + */ + Groups: FilterGroup[] | undefined; +} + +/** + * @public + * @enum + */ +export const Statistic = { + AVERAGE: "AVERAGE", + COUNT: "COUNT", + FIRST_OCCURRENCE: "FIRST_OCCURRENCE", + LAST_OCCURRENCE: "LAST_OCCURRENCE", + MAXIMUM: "MAXIMUM", + MAX_OCCURRENCE: "MAX_OCCURRENCE", + MINIMUM: "MINIMUM", + SUM: "SUM", +} as const; + +/** + * @public + */ +export type Statistic = (typeof Statistic)[keyof typeof Statistic]; + +/** + * @public + */ +export interface CreateCalculatedAttributeDefinitionRequest { + /** + *

The unique name of the domain.

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

The unique name of the calculated attribute.

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

The display name of the calculated attribute.

+ * @public + */ + DisplayName?: string | undefined; + + /** + *

The description of the calculated attribute.

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

Mathematical expression and a list of attribute items specified in that + * expression.

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

The conditions including range, object count, and threshold for the calculated + * attribute.

+ * @public + */ + Conditions?: Conditions | undefined; + + /** + *

Defines how to filter incoming objects to include part of the Calculated Attribute.

+ * @public + */ + Filter?: Filter | undefined; + + /** + *

The aggregation operation to perform for the calculated attribute.

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

The tags used to organize, track, or control access for this resource.

+ * @public + */ + Tags?: Record | undefined; +} + +/** + * @public + */ +export interface CreateCalculatedAttributeDefinitionResponse { + /** + *

The unique name of the calculated attribute.

+ * @public + */ + CalculatedAttributeName?: string | undefined; + + /** + *

The display name of the calculated attribute.

+ * @public + */ + DisplayName?: string | undefined; + + /** + *

The description of the calculated attribute.

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

Mathematical expression and a list of attribute items specified in that + * expression.

+ * @public + */ + AttributeDetails?: AttributeDetails | undefined; + + /** + *

The conditions including range, object count, and threshold for the calculated + * attribute.

+ * @public + */ + Conditions?: Conditions | undefined; + + /** + *

The filter that was used as part of the request.

+ * @public + */ + Filter?: Filter | undefined; + + /** + *

The aggregation operation to perform for the calculated attribute.

+ * @public + */ + Statistic?: Statistic | undefined; + + /** + *

The timestamp of when the calculated attribute definition was created.

+ * @public + */ + CreatedAt?: Date | undefined; + + /** + *

The timestamp of when the calculated attribute definition was most recently + * edited.

+ * @public + */ + LastUpdatedAt?: Date | undefined; + + /** + *

The tags used to organize, track, or control access for this resource.

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

Configuration information about the S3 bucket where Identity Resolution Jobs write result files.

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

The name of the S3 bucket where Identity Resolution Jobs write result files.

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

The S3 key name of the location where Identity Resolution Jobs write result files.

* @public */ - S3KeyName?: string | undefined; + S3KeyName?: string | undefined; +} + +/** + *

Configuration information about the S3 bucket where Identity Resolution Jobs writes result files.

+ * + *

You need to give Customer Profiles service principal write permission to your S3 bucket. + * Otherwise, you'll get an exception in the API response. For an example policy, see + * Amazon Connect Customer Profiles cross-service confused deputy prevention.

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

The S3 location where Identity Resolution Jobs write result files.

+ * @public + */ + S3Exporting?: S3ExportingConfig | undefined; +} + +/** + * @public + * @enum + */ +export const JobScheduleDayOfTheWeek = { + FRIDAY: "FRIDAY", + MONDAY: "MONDAY", + SATURDAY: "SATURDAY", + SUNDAY: "SUNDAY", + THURSDAY: "THURSDAY", + TUESDAY: "TUESDAY", + WEDNESDAY: "WEDNESDAY", +} as const; + +/** + * @public + */ +export type JobScheduleDayOfTheWeek = (typeof JobScheduleDayOfTheWeek)[keyof typeof JobScheduleDayOfTheWeek]; + +/** + *

The day and time when do you want to start the Identity Resolution Job every week.

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

The day when the Identity Resolution Job should run every week.

+ * @public + */ + DayOfTheWeek: JobScheduleDayOfTheWeek | undefined; + + /** + *

The time when the Identity Resolution Job should run every week.

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

The flag that enables the matching process of duplicate profiles.

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

The flag that enables the matching process of duplicate profiles.

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

The day and time when do you want to start the Identity Resolution Job every week.

+ * @public + */ + JobSchedule?: JobSchedule | undefined; + + /** + *

Configuration information about the auto-merging process.

+ * @public + */ + AutoMerging?: AutoMerging | undefined; + + /** + *

Configuration information for exporting Identity Resolution results, for example, to an S3 + * bucket.

+ * @public + */ + ExportingConfig?: ExportingConfig | undefined; +} + +/** + *

Specifies how does the rule-based matching process should match profiles. You can choose + * from the following attributes to build the matching Rule:

+ *
    + *
  • + *

    AccountNumber

    + *
  • + *
  • + *

    Address.Address

    + *
  • + *
  • + *

    Address.City

    + *
  • + *
  • + *

    Address.Country

    + *
  • + *
  • + *

    Address.County

    + *
  • + *
  • + *

    Address.PostalCode

    + *
  • + *
  • + *

    Address.State

    + *
  • + *
  • + *

    Address.Province

    + *
  • + *
  • + *

    BirthDate

    + *
  • + *
  • + *

    BusinessName

    + *
  • + *
  • + *

    EmailAddress

    + *
  • + *
  • + *

    FirstName

    + *
  • + *
  • + *

    Gender

    + *
  • + *
  • + *

    LastName

    + *
  • + *
  • + *

    MiddleName

    + *
  • + *
  • + *

    PhoneNumber

    + *
  • + *
  • + *

    Any customized profile attributes that start with the + * Attributes + *

    + *
  • + *
+ * @public + */ +export interface MatchingRule { + /** + *

A single rule level of the MatchRules. Configures how the rule-based + * matching process should match profiles.

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

The request to enable the rule-based matching.

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

The flag that enables the rule-based matching process of duplicate profiles.

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

Configures how the rule-based matching process should match profiles. You can have up to + * 15 MatchingRule in the MatchingRules.

+ * @public + */ + MatchingRules?: MatchingRule[] | undefined; + + /** + *

+ * MatchingRule + *

+ * @public + */ + MaxAllowedRuleLevelForMerging?: number | undefined; + + /** + *

Indicates the maximum allowed rule level.

+ * @public + */ + MaxAllowedRuleLevelForMatching?: number | undefined; + + /** + *

Configures information about the AttributeTypesSelector where the + * rule-based identity resolution uses to match profiles.

+ * @public + */ + AttributeTypesSelector?: AttributeTypesSelector | undefined; + + /** + *

How the auto-merging process should resolve conflicts between different profiles.

+ * @public + */ + ConflictResolution?: ConflictResolution | undefined; + + /** + *

Configuration information about the S3 bucket where Identity Resolution Jobs writes result files.

+ * + *

You need to give Customer Profiles service principal write permission to your S3 bucket. + * Otherwise, you'll get an exception in the API response. For an example policy, see + * Amazon Connect Customer Profiles cross-service confused deputy prevention.

+ *
+ * @public + */ + ExportingConfig?: ExportingConfig | undefined; +} + +/** + * @public + */ +export interface CreateDomainRequest { + /** + *

The unique name of the domain.

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

The default number of days until the data within the domain expires.

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

The default encryption key, which is an AWS managed key, is used when no specific type + * of encryption key is specified. It is used to encrypt all data before it is placed in + * permanent or semi-permanent storage.

+ * @public + */ + DefaultEncryptionKey?: string | undefined; + + /** + *

The URL of the SQS dead letter queue, which is used for reporting errors associated with + * ingesting data from third party applications. You must set up a policy on the + * DeadLetterQueue for the SendMessage operation to enable Amazon Connect Customer Profiles to send + * messages to the DeadLetterQueue.

+ * @public + */ + DeadLetterQueueUrl?: string | undefined; + + /** + *

The process of matching duplicate profiles. If Matching = true, Amazon Connect Customer Profiles starts a weekly + * batch process called Identity Resolution Job. If you do not specify a date and time for Identity Resolution Job to run, by default it runs every + * Saturday at 12AM UTC to detect duplicate profiles in your domains.

+ *

After the Identity Resolution Job completes, use the + * GetMatches + * API to return and review the results. Or, if you have configured ExportingConfig in the MatchingRequest, you can download the results from + * S3.

+ * @public + */ + Matching?: MatchingRequest | undefined; + + /** + *

The process of matching duplicate profiles using the Rule-Based matching. If + * RuleBasedMatching = true, Amazon Connect Customer Profiles will start + * to match and merge your profiles according to your configuration in the + * RuleBasedMatchingRequest. You can use the ListRuleBasedMatches + * and GetSimilarProfiles API to return and review the results. Also, if you have + * configured ExportingConfig in the RuleBasedMatchingRequest, you + * can download the results from S3.

+ * @public + */ + RuleBasedMatching?: RuleBasedMatchingRequest | undefined; + + /** + *

The tags used to organize, track, or control access for this resource.

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

The flag that enables the matching process of duplicate profiles.

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

The flag that enables the matching process of duplicate profiles.

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

The day and time when do you want to start the Identity Resolution Job every week.

+ * @public + */ + JobSchedule?: JobSchedule | undefined; + + /** + *

Configuration information about the auto-merging process.

+ * @public + */ + AutoMerging?: AutoMerging | undefined; + + /** + *

Configuration information for exporting Identity Resolution results, for example, to an S3 + * bucket.

+ * @public + */ + ExportingConfig?: ExportingConfig | undefined; +} + +/** + * @public + * @enum + */ +export const RuleBasedMatchingStatus = { + ACTIVE: "ACTIVE", + IN_PROGRESS: "IN_PROGRESS", + PENDING: "PENDING", +} as const; + +/** + * @public + */ +export type RuleBasedMatchingStatus = (typeof RuleBasedMatchingStatus)[keyof typeof RuleBasedMatchingStatus]; + +/** + *

The response of the Rule-based matching request.

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

The flag that enables the rule-based matching process of duplicate profiles.

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

Configures how the rule-based matching process should match profiles. You can have up to + * 15 MatchingRule in the MatchingRules.

+ * @public + */ + MatchingRules?: MatchingRule[] | undefined; + + /** + *

PENDING

+ *
    + *
  • + *

    The first status after configuration a rule-based matching rule. If it is an + * existing domain, the rule-based Identity Resolution waits one hour before creating the matching + * rule. If it is a new domain, the system will skip the PENDING + * stage.

    + *
  • + *
+ *

IN_PROGRESS

+ *
    + *
  • + *

    The system is creating the rule-based matching rule. Under this status, the system + * is evaluating the existing data and you can no longer change the Rule-based matching + * configuration.

    + *
  • + *
+ *

ACTIVE

+ *
    + *
  • + *

    The rule is ready to use. You can change the rule a day after the status is in + * ACTIVE.

    + *
  • + *
+ * @public + */ + Status?: RuleBasedMatchingStatus | undefined; + + /** + *

+ * MatchingRule + *

+ * @public + */ + MaxAllowedRuleLevelForMerging?: number | undefined; + + /** + *

Indicates the maximum allowed rule level.

+ * @public + */ + MaxAllowedRuleLevelForMatching?: number | undefined; + + /** + *

Configures information about the AttributeTypesSelector where the + * rule-based identity resolution uses to match profiles.

+ * @public + */ + AttributeTypesSelector?: AttributeTypesSelector | undefined; + + /** + *

How the auto-merging process should resolve conflicts between different profiles.

+ * @public + */ + ConflictResolution?: ConflictResolution | undefined; + + /** + *

Configuration information about the S3 bucket where Identity Resolution Jobs writes result files.

+ * + *

You need to give Customer Profiles service principal write permission to your S3 bucket. + * Otherwise, you'll get an exception in the API response. For an example policy, see + * Amazon Connect Customer Profiles cross-service confused deputy prevention.

+ *
+ * @public + */ + ExportingConfig?: ExportingConfig | undefined; +} + +/** + * @public + */ +export interface CreateDomainResponse { + /** + *

The unique name of the domain.

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

The default number of days until the data within the domain expires.

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

The default encryption key, which is an AWS managed key, is used when no specific type + * of encryption key is specified. It is used to encrypt all data before it is placed in + * permanent or semi-permanent storage.

+ * @public + */ + DefaultEncryptionKey?: string | undefined; + + /** + *

The URL of the SQS dead letter queue, which is used for reporting errors associated with + * ingesting data from third party applications.

+ * @public + */ + DeadLetterQueueUrl?: string | undefined; + + /** + *

The process of matching duplicate profiles. If Matching = true, Amazon Connect Customer Profiles starts a weekly + * batch process called Identity Resolution Job. If you do not specify a date and time for Identity Resolution Job to run, by default it runs every + * Saturday at 12AM UTC to detect duplicate profiles in your domains.

+ *

After the Identity Resolution Job completes, use the + * GetMatches + * API to return and review the results. Or, if you have configured ExportingConfig in the MatchingRequest, you can download the results from + * S3.

+ * @public + */ + Matching?: MatchingResponse | undefined; + + /** + *

The process of matching duplicate profiles using the Rule-Based matching. If + * RuleBasedMatching = true, Amazon Connect Customer Profiles will start + * to match and merge your profiles according to your configuration in the + * RuleBasedMatchingRequest. You can use the ListRuleBasedMatches + * and GetSimilarProfiles API to return and review the results. Also, if you have + * configured ExportingConfig in the RuleBasedMatchingRequest, you + * can download the results from S3.

+ * @public + */ + RuleBasedMatching?: RuleBasedMatchingResponse | undefined; + + /** + *

The timestamp of when the domain was created.

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

The timestamp of when the domain was most recently edited.

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

The tags used to organize, track, or control access for this resource.

+ * @public + */ + Tags?: Record | undefined; +} + +/** + * @public + */ +export interface CreateEventStreamRequest { + /** + *

The unique name of the domain.

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

The StreamARN of the destination to deliver profile events to. For example, + * arn:aws:kinesis:region:account-id:stream/stream-name

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

The name of the event stream.

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

The tags used to organize, track, or control access for this resource.

+ * @public + */ + Tags?: Record | undefined; +} + +/** + * @public + */ +export interface CreateEventStreamResponse { + /** + *

A unique identifier for the event stream.

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

The tags used to organize, track, or control access for this resource.

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

Configuration data for integration workflow.

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

Configuration data for APPFLOW_INTEGRATION workflow type.

+ * @public + */ + AppflowIntegration?: AppflowIntegration | undefined; +} + +/** + * @public + * @enum + */ +export const WorkflowType = { + APPFLOW_INTEGRATION: "APPFLOW_INTEGRATION", +} as const; + +/** + * @public + */ +export type WorkflowType = (typeof WorkflowType)[keyof typeof WorkflowType]; + +/** + * @public + */ +export interface CreateIntegrationWorkflowRequest { + /** + *

The unique name of the domain.

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

The type of workflow. The only supported value is APPFLOW_INTEGRATION.

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

Configuration data for integration workflow.

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

The name of the profile object type.

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

The Amazon Resource Name (ARN) of the IAM role. Customer Profiles assumes this role to create resources on your behalf as part of workflow execution.

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

The tags used to organize, track, or control access for this resource.

+ * @public + */ + Tags?: Record | undefined; +} + +/** + * @public + */ +export interface CreateIntegrationWorkflowResponse { + /** + *

Unique identifier for the workflow.

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

A message indicating create request was received.

+ * @public + */ + Message: string | undefined; +} + +/** + * @public + */ +export interface CreateProfileRequest { + /** + *

The unique name of the domain.

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

An account number that you have given to the customer.

+ * @public + */ + AccountNumber?: string | undefined; + + /** + *

Any additional information relevant to the customer’s profile.

+ * @public + */ + AdditionalInformation?: string | undefined; + + /** + * @deprecated + * + *

The type of profile used to describe the customer.

+ * @public + */ + PartyType?: PartyType | undefined; + + /** + *

The name of the customer’s business.

+ * @public + */ + BusinessName?: string | undefined; + + /** + *

The customer’s first name.

+ * @public + */ + FirstName?: string | undefined; + + /** + *

The customer’s middle name.

+ * @public + */ + MiddleName?: string | undefined; + + /** + *

The customer’s last name.

+ * @public + */ + LastName?: string | undefined; + + /** + *

The customer’s birth date.

+ * @public + */ + BirthDate?: string | undefined; + + /** + * @deprecated + * + *

The gender with which the customer identifies.

+ * @public + */ + Gender?: Gender | undefined; + + /** + *

The customer’s phone number, which has not been specified as a mobile, home, or business + * number.

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

The customer’s mobile phone number.

+ * @public + */ + MobilePhoneNumber?: string | undefined; + + /** + *

The customer’s home phone number.

+ * @public + */ + HomePhoneNumber?: string | undefined; + + /** + *

The customer’s business phone number.

+ * @public + */ + BusinessPhoneNumber?: string | undefined; + + /** + *

The customer’s email address, which has not been specified as a personal or business + * address.

+ * @public + */ + EmailAddress?: string | undefined; + + /** + *

The customer’s personal email address.

+ * @public + */ + PersonalEmailAddress?: string | undefined; + + /** + *

The customer’s business email address.

+ * @public + */ + BusinessEmailAddress?: string | undefined; + + /** + *

A generic address associated with the customer that is not mailing, shipping, or + * billing.

+ * @public + */ + Address?: Address | undefined; + + /** + *

The customer’s shipping address.

+ * @public + */ + ShippingAddress?: Address | undefined; + + /** + *

The customer’s mailing address.

+ * @public + */ + MailingAddress?: Address | undefined; + + /** + *

The customer’s billing address.

+ * @public + */ + BillingAddress?: Address | undefined; + + /** + *

A key value pair of attributes of a customer profile.

+ * @public + */ + Attributes?: Record | undefined; + + /** + *

An alternative to PartyType which accepts any string as input.

+ * @public + */ + PartyTypeString?: string | undefined; + + /** + *

An alternative to Gender which accepts any string as input.

+ * @public + */ + GenderString?: string | undefined; +} + +/** + * @public + */ +export interface CreateProfileResponse { + /** + *

The unique identifier of a customer profile.

+ * @public + */ + ProfileId: string | undefined; } /** - *

Configuration information about the S3 bucket where Identity Resolution Jobs writes result files.

- * - *

You need to give Customer Profiles service principal write permission to your S3 bucket. - * Otherwise, you'll get an exception in the API response. For an example policy, see - * Amazon Connect Customer Profiles cross-service confused deputy prevention.

- *
+ *

Object that segments on various Customer profile's fields that are larger than normal.

* @public */ -export interface ExportingConfig { +export interface ExtraLengthValueProfileDimension { /** - *

The S3 location where Identity Resolution Jobs write result files.

+ *

The action to segment with.

* @public */ - S3Exporting?: S3ExportingConfig | undefined; + DimensionType: StringDimensionType | undefined; + + /** + *

The values to apply the DimensionType on.

+ * @public + */ + Values: string[] | undefined; } /** * @public * @enum */ -export const JobScheduleDayOfTheWeek = { - FRIDAY: "FRIDAY", - MONDAY: "MONDAY", - SATURDAY: "SATURDAY", - SUNDAY: "SUNDAY", - THURSDAY: "THURSDAY", - TUESDAY: "TUESDAY", - WEDNESDAY: "WEDNESDAY", +export const DateDimensionType = { + AFTER: "AFTER", + BEFORE: "BEFORE", + BETWEEN: "BETWEEN", + NOT_BETWEEN: "NOT_BETWEEN", + ON: "ON", } as const; /** * @public */ -export type JobScheduleDayOfTheWeek = (typeof JobScheduleDayOfTheWeek)[keyof typeof JobScheduleDayOfTheWeek]; +export type DateDimensionType = (typeof DateDimensionType)[keyof typeof DateDimensionType]; /** - *

The day and time when do you want to start the Identity Resolution Job every week.

+ *

Object that segments on various Customer Profile's date fields.

* @public */ -export interface JobSchedule { +export interface DateDimension { /** - *

The day when the Identity Resolution Job should run every week.

+ *

The action to segment with.

* @public */ - DayOfTheWeek: JobScheduleDayOfTheWeek | undefined; + DimensionType: DateDimensionType | undefined; /** - *

The time when the Identity Resolution Job should run every week.

+ *

The values to apply the DimensionType on.

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

The flag that enables the matching process of duplicate profiles.

+ *

The object used to segment on attributes within the customer profile.

* @public */ -export interface MatchingRequest { +export interface ProfileAttributes { /** - *

The flag that enables the matching process of duplicate profiles.

+ *

A field to describe values to segment on within account number.

* @public */ - Enabled: boolean | undefined; + AccountNumber?: ProfileDimension | undefined; /** - *

The day and time when do you want to start the Identity Resolution Job every week.

+ *

A field to describe values to segment on within additional information.

* @public */ - JobSchedule?: JobSchedule | undefined; + AdditionalInformation?: ExtraLengthValueProfileDimension | undefined; /** - *

Configuration information about the auto-merging process.

+ *

A field to describe values to segment on within first name.

* @public */ - AutoMerging?: AutoMerging | undefined; + FirstName?: ProfileDimension | undefined; /** - *

Configuration information for exporting Identity Resolution results, for example, to an S3 - * bucket.

+ *

A field to describe values to segment on within last name.

* @public */ - ExportingConfig?: ExportingConfig | undefined; -} + LastName?: ProfileDimension | undefined; -/** - *

Specifies how does the rule-based matching process should match profiles. You can choose - * from the following attributes to build the matching Rule:

- *
    - *
  • - *

    AccountNumber

    - *
  • - *
  • - *

    Address.Address

    - *
  • - *
  • - *

    Address.City

    - *
  • - *
  • - *

    Address.Country

    - *
  • - *
  • - *

    Address.County

    - *
  • - *
  • - *

    Address.PostalCode

    - *
  • - *
  • - *

    Address.State

    - *
  • - *
  • - *

    Address.Province

    - *
  • - *
  • - *

    BirthDate

    - *
  • - *
  • - *

    BusinessName

    - *
  • - *
  • - *

    EmailAddress

    - *
  • - *
  • - *

    FirstName

    - *
  • - *
  • - *

    Gender

    - *
  • - *
  • - *

    LastName

    - *
  • - *
  • - *

    MiddleName

    - *
  • - *
  • - *

    PhoneNumber

    - *
  • - *
  • - *

    Any customized profile attributes that start with the - * Attributes - *

    - *
  • - *
- * @public - */ -export interface MatchingRule { /** - *

A single rule level of the MatchRules. Configures how the rule-based - * matching process should match profiles.

+ *

A field to describe values to segment on within middle name.

* @public */ - Rule: string[] | undefined; -} + MiddleName?: ProfileDimension | undefined; -/** - *

The request to enable the rule-based matching.

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

The flag that enables the rule-based matching process of duplicate profiles.

+ *

A field to describe values to segment on within genderString.

* @public */ - Enabled: boolean | undefined; + GenderString?: ProfileDimension | undefined; /** - *

Configures how the rule-based matching process should match profiles. You can have up to - * 15 MatchingRule in the MatchingRules.

+ *

A field to describe values to segment on within partyTypeString.

* @public */ - MatchingRules?: MatchingRule[] | undefined; + PartyTypeString?: ProfileDimension | undefined; /** - *

- * MatchingRule - *

+ *

A field to describe values to segment on within birthDate.

* @public */ - MaxAllowedRuleLevelForMerging?: number | undefined; + BirthDate?: DateDimension | undefined; /** - *

Indicates the maximum allowed rule level.

+ *

A field to describe values to segment on within phone number.

* @public */ - MaxAllowedRuleLevelForMatching?: number | undefined; + PhoneNumber?: ProfileDimension | undefined; /** - *

Configures information about the AttributeTypesSelector where the - * rule-based identity resolution uses to match profiles.

+ *

A field to describe values to segment on within business name.

* @public */ - AttributeTypesSelector?: AttributeTypesSelector | undefined; + BusinessName?: ProfileDimension | undefined; /** - *

How the auto-merging process should resolve conflicts between different profiles.

+ *

A field to describe values to segment on within business phone number.

* @public */ - ConflictResolution?: ConflictResolution | undefined; + BusinessPhoneNumber?: ProfileDimension | undefined; /** - *

Configuration information about the S3 bucket where Identity Resolution Jobs writes result files.

- * - *

You need to give Customer Profiles service principal write permission to your S3 bucket. - * Otherwise, you'll get an exception in the API response. For an example policy, see - * Amazon Connect Customer Profiles cross-service confused deputy prevention.

- *
+ *

A field to describe values to segment on within home phone number.

* @public */ - ExportingConfig?: ExportingConfig | undefined; -} + HomePhoneNumber?: ProfileDimension | undefined; -/** - * @public - */ -export interface CreateDomainRequest { /** - *

The unique name of the domain.

+ *

A field to describe values to segment on within mobile phone number.

* @public */ - DomainName: string | undefined; + MobilePhoneNumber?: ProfileDimension | undefined; /** - *

The default number of days until the data within the domain expires.

+ *

A field to describe values to segment on within email address.

* @public */ - DefaultExpirationDays: number | undefined; + EmailAddress?: ProfileDimension | undefined; /** - *

The default encryption key, which is an AWS managed key, is used when no specific type - * of encryption key is specified. It is used to encrypt all data before it is placed in - * permanent or semi-permanent storage.

+ *

A field to describe values to segment on within personal email address.

* @public */ - DefaultEncryptionKey?: string | undefined; + PersonalEmailAddress?: ProfileDimension | undefined; /** - *

The URL of the SQS dead letter queue, which is used for reporting errors associated with - * ingesting data from third party applications. You must set up a policy on the - * DeadLetterQueue for the SendMessage operation to enable Amazon Connect Customer Profiles to send - * messages to the DeadLetterQueue.

+ *

A field to describe values to segment on within business email address.

* @public */ - DeadLetterQueueUrl?: string | undefined; + BusinessEmailAddress?: ProfileDimension | undefined; /** - *

The process of matching duplicate profiles. If Matching = true, Amazon Connect Customer Profiles starts a weekly - * batch process called Identity Resolution Job. If you do not specify a date and time for Identity Resolution Job to run, by default it runs every - * Saturday at 12AM UTC to detect duplicate profiles in your domains.

- *

After the Identity Resolution Job completes, use the - * GetMatches - * API to return and review the results. Or, if you have configured ExportingConfig in the MatchingRequest, you can download the results from - * S3.

+ *

A field to describe values to segment on within address.

* @public */ - Matching?: MatchingRequest | undefined; + Address?: AddressDimension | undefined; /** - *

The process of matching duplicate profiles using the Rule-Based matching. If - * RuleBasedMatching = true, Amazon Connect Customer Profiles will start - * to match and merge your profiles according to your configuration in the - * RuleBasedMatchingRequest. You can use the ListRuleBasedMatches - * and GetSimilarProfiles API to return and review the results. Also, if you have - * configured ExportingConfig in the RuleBasedMatchingRequest, you - * can download the results from S3.

+ *

A field to describe values to segment on within shipping address.

* @public */ - RuleBasedMatching?: RuleBasedMatchingRequest | undefined; + ShippingAddress?: AddressDimension | undefined; /** - *

The tags used to organize, track, or control access for this resource.

+ *

A field to describe values to segment on within mailing address.

* @public */ - Tags?: Record | undefined; + MailingAddress?: AddressDimension | undefined; + + /** + *

A field to describe values to segment on within billing address.

+ * @public + */ + BillingAddress?: AddressDimension | undefined; + + /** + *

A field to describe values to segment on within attributes.

+ * @public + */ + Attributes?: Record | undefined; } /** - *

The flag that enables the matching process of duplicate profiles.

+ *

Object that holds what profile and calculated attributes to segment on.

* @public */ -export interface MatchingResponse { +export type Dimension = + | Dimension.CalculatedAttributesMember + | Dimension.ProfileAttributesMember + | Dimension.$UnknownMember; + +/** + * @public + */ +export namespace Dimension { /** - *

The flag that enables the matching process of duplicate profiles.

+ *

Object that holds the profile attributes to segment on.

* @public */ - Enabled?: boolean | undefined; + export interface ProfileAttributesMember { + ProfileAttributes: ProfileAttributes; + CalculatedAttributes?: never; + $unknown?: never; + } /** - *

The day and time when do you want to start the Identity Resolution Job every week.

+ *

Object that holds the calculated attributes to segment on.

* @public */ - JobSchedule?: JobSchedule | undefined; + export interface CalculatedAttributesMember { + ProfileAttributes?: never; + CalculatedAttributes: Record; + $unknown?: never; + } /** - *

Configuration information about the auto-merging process.

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

The source segments to build off of.

+ * @public + */ +export interface SourceSegment { /** - *

Configuration information for exporting Identity Resolution results, for example, to an S3 - * bucket.

+ *

The unique name of the segment definition.

* @public */ - ExportingConfig?: ExportingConfig | undefined; + SegmentDefinitionName?: string | undefined; } /** * @public * @enum */ -export const RuleBasedMatchingStatus = { - ACTIVE: "ACTIVE", - IN_PROGRESS: "IN_PROGRESS", - PENDING: "PENDING", +export const IncludeOptions = { + ALL: "ALL", + ANY: "ANY", + NONE: "NONE", } as const; /** * @public */ -export type RuleBasedMatchingStatus = (typeof RuleBasedMatchingStatus)[keyof typeof RuleBasedMatchingStatus]; +export type IncludeOptions = (typeof IncludeOptions)[keyof typeof IncludeOptions]; /** - *

The response of the Rule-based matching request.

+ *

Contains dimensions that determine what to segment on.

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

The flag that enables the rule-based matching process of duplicate profiles.

- * @public - */ - Enabled?: boolean | undefined; - - /** - *

Configures how the rule-based matching process should match profiles. You can have up to - * 15 MatchingRule in the MatchingRules.

- * @public - */ - MatchingRules?: MatchingRule[] | undefined; - +export interface Group { /** - *

PENDING

- *
    - *
  • - *

    The first status after configuration a rule-based matching rule. If it is an - * existing domain, the rule-based Identity Resolution waits one hour before creating the matching - * rule. If it is a new domain, the system will skip the PENDING - * stage.

    - *
  • - *
- *

IN_PROGRESS

- *
    - *
  • - *

    The system is creating the rule-based matching rule. Under this status, the system - * is evaluating the existing data and you can no longer change the Rule-based matching - * configuration.

    - *
  • - *
- *

ACTIVE

- *
    - *
  • - *

    The rule is ready to use. You can change the rule a day after the status is in - * ACTIVE.

    - *
  • - *
+ *

Defines the attributes to segment on.

* @public */ - Status?: RuleBasedMatchingStatus | undefined; + Dimensions?: Dimension[] | undefined; /** - *

- * MatchingRule - *

+ *

Defines the starting source of data.

* @public */ - MaxAllowedRuleLevelForMerging?: number | undefined; + SourceSegments?: SourceSegment[] | undefined; /** - *

Indicates the maximum allowed rule level.

+ *

Defines how to interact with the source data.

* @public */ - MaxAllowedRuleLevelForMatching?: number | undefined; + SourceType?: IncludeOptions | undefined; /** - *

Configures information about the AttributeTypesSelector where the - * rule-based identity resolution uses to match profiles.

+ *

Defines how to interact with the profiles found in the current filtering.

* @public */ - AttributeTypesSelector?: AttributeTypesSelector | undefined; + Type?: IncludeOptions | undefined; +} +/** + *

Contains all groups of the segment definition.

+ * @public + */ +export interface SegmentGroup { /** - *

How the auto-merging process should resolve conflicts between different profiles.

+ *

Holds the list of groups within the segment definition.

* @public */ - ConflictResolution?: ConflictResolution | undefined; + Groups?: Group[] | undefined; /** - *

Configuration information about the S3 bucket where Identity Resolution Jobs writes result files.

- * - *

You need to give Customer Profiles service principal write permission to your S3 bucket. - * Otherwise, you'll get an exception in the API response. For an example policy, see - * Amazon Connect Customer Profiles cross-service confused deputy prevention.

- *
+ *

Defines whether to include or exclude the profiles that fit the segment criteria.

* @public */ - ExportingConfig?: ExportingConfig | undefined; + Include?: IncludeOptions | undefined; } /** * @public */ -export interface CreateDomainResponse { +export interface CreateSegmentDefinitionRequest { /** *

The unique name of the domain.

* @public @@ -2014,61 +3447,69 @@ export interface CreateDomainResponse { DomainName: string | undefined; /** - *

The default number of days until the data within the domain expires.

+ *

The unique name of the segment definition.

* @public */ - DefaultExpirationDays: number | undefined; + SegmentDefinitionName: string | undefined; /** - *

The default encryption key, which is an AWS managed key, is used when no specific type - * of encryption key is specified. It is used to encrypt all data before it is placed in - * permanent or semi-permanent storage.

+ *

The display name of the segment definition.

* @public */ - DefaultEncryptionKey?: string | undefined; + DisplayName: string | undefined; /** - *

The URL of the SQS dead letter queue, which is used for reporting errors associated with - * ingesting data from third party applications.

+ *

The description of the segment definition.

* @public */ - DeadLetterQueueUrl?: string | undefined; + Description?: string | undefined; /** - *

The process of matching duplicate profiles. If Matching = true, Amazon Connect Customer Profiles starts a weekly - * batch process called Identity Resolution Job. If you do not specify a date and time for Identity Resolution Job to run, by default it runs every - * Saturday at 12AM UTC to detect duplicate profiles in your domains.

- *

After the Identity Resolution Job completes, use the - * GetMatches - * API to return and review the results. Or, if you have configured ExportingConfig in the MatchingRequest, you can download the results from - * S3.

+ *

Specifies the base segments and dimensions for a segment definition along with their respective relationship.

* @public */ - Matching?: MatchingResponse | undefined; + SegmentGroups: SegmentGroup | undefined; /** - *

The process of matching duplicate profiles using the Rule-Based matching. If - * RuleBasedMatching = true, Amazon Connect Customer Profiles will start - * to match and merge your profiles according to your configuration in the - * RuleBasedMatchingRequest. You can use the ListRuleBasedMatches - * and GetSimilarProfiles API to return and review the results. Also, if you have - * configured ExportingConfig in the RuleBasedMatchingRequest, you - * can download the results from S3.

+ *

The tags used to organize, track, or control access for this resource.

* @public */ - RuleBasedMatching?: RuleBasedMatchingResponse | undefined; + Tags?: Record | undefined; +} +/** + * @public + */ +export interface CreateSegmentDefinitionResponse { /** - *

The timestamp of when the domain was created.

+ *

The name of the segment definition.

* @public */ - CreatedAt: Date | undefined; + SegmentDefinitionName: string | undefined; /** - *

The timestamp of when the domain was most recently edited.

+ *

The display name of the segment definition.

* @public */ - LastUpdatedAt: Date | undefined; + DisplayName?: string | undefined; + + /** + *

The description of the segment definition.

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

The timestamp of when the segment definition was created.

+ * @public + */ + CreatedAt?: Date | undefined; + + /** + *

The arn of the segment definition.

+ * @public + */ + SegmentDefinitionArn?: string | undefined; /** *

The tags used to organize, track, or control access for this resource.

@@ -2078,81 +3519,82 @@ export interface CreateDomainResponse { } /** + *

Contains all groups of the segment definition.

* @public */ -export interface CreateEventStreamRequest { +export interface SegmentGroupStructure { /** - *

The unique name of the domain.

+ *

Holds the list of groups within the segment definition.

* @public */ - DomainName: string | undefined; + Groups?: Group[] | undefined; /** - *

The StreamARN of the destination to deliver profile events to. For example, - * arn:aws:kinesis:region:account-id:stream/stream-name

+ *

Define whether to include or exclude the profiles that fit the segment criteria.

* @public */ - Uri: string | undefined; + Include?: IncludeOptions | undefined; +} +/** + * @public + */ +export interface CreateSegmentEstimateRequest { /** - *

The name of the event stream.

+ *

The unique name of the domain.

* @public */ - EventStreamName: string | undefined; + DomainName: string | undefined; /** - *

The tags used to organize, track, or control access for this resource.

+ *

The segment query for calculating a segment estimate.

* @public */ - Tags?: Record | undefined; + SegmentQuery: SegmentGroupStructure | undefined; } /** * @public */ -export interface CreateEventStreamResponse { +export interface CreateSegmentEstimateResponse { /** - *

A unique identifier for the event stream.

+ *

The unique name of the domain.

* @public */ - EventStreamArn: string | undefined; + DomainName?: string | undefined; /** - *

The tags used to organize, track, or control access for this resource.

+ *

A unique identifier for the resource. The value can be passed to GetSegmentEstimate to retrieve the result of segment estimate status.

* @public */ - Tags?: Record | undefined; -} + EstimateId?: string | undefined; -/** - *

Configuration data for integration workflow.

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

Configuration data for APPFLOW_INTEGRATION workflow type.

+ *

The status code for the response.

* @public */ - AppflowIntegration?: AppflowIntegration | undefined; + StatusCode?: number | undefined; } /** * @public * @enum */ -export const WorkflowType = { - APPFLOW_INTEGRATION: "APPFLOW_INTEGRATION", +export const DataFormat = { + CSV: "CSV", + JSONL: "JSONL", + ORC: "ORC", } as const; /** * @public */ -export type WorkflowType = (typeof WorkflowType)[keyof typeof WorkflowType]; +export type DataFormat = (typeof DataFormat)[keyof typeof DataFormat]; /** * @public */ -export interface CreateIntegrationWorkflowRequest { +export interface CreateSegmentSnapshotRequest { /** *

The unique name of the domain.

* @public @@ -2160,48 +3602,86 @@ export interface CreateIntegrationWorkflowRequest { DomainName: string | undefined; /** - *

The type of workflow. The only supported value is APPFLOW_INTEGRATION.

+ *

The name of the segment definition used in this snapshot request.

* @public */ - WorkflowType: WorkflowType | undefined; + SegmentDefinitionName: string | undefined; /** - *

Configuration data for integration workflow.

+ *

The format in which the segment will be exported.

* @public */ - IntegrationConfig: IntegrationConfig | undefined; + DataFormat: DataFormat | undefined; /** - *

The name of the profile object type.

+ *

The Amazon Resource Name (ARN) of the KMS key used to encrypt the exported segment.

* @public */ - ObjectTypeName: string | undefined; + EncryptionKey?: string | undefined; /** - *

The Amazon Resource Name (ARN) of the IAM role. Customer Profiles assumes this role to create resources on your behalf as part of workflow execution.

+ *

The Amazon Resource Name (ARN) of the IAM role that allows Customer Profiles service principal to assume the role for conducting KMS and S3 operations.

* @public */ - RoleArn: string | undefined; + RoleArn?: string | undefined; /** - *

The tags used to organize, track, or control access for this resource.

+ *

The destination to which the segment will be exported. This field must be provided if the request is not submitted from the Amazon Connect Admin Website.

* @public */ - Tags?: Record | undefined; + DestinationUri?: string | undefined; } /** * @public */ -export interface CreateIntegrationWorkflowResponse { +export interface CreateSegmentSnapshotResponse { /** - *

Unique identifier for the workflow.

+ *

The unique identifier of the segment snapshot.

* @public */ - WorkflowId: string | undefined; + SnapshotId: string | undefined; +} +/** + * @public + */ +export interface DeleteCalculatedAttributeDefinitionRequest { /** - *

A message indicating create request was received.

+ *

The unique name of the domain.

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

The unique name of the calculated attribute.

+ * @public + */ + CalculatedAttributeName: string | undefined; +} + +/** + * @public + */ +export interface DeleteCalculatedAttributeDefinitionResponse {} + +/** + * @public + */ +export interface DeleteDomainRequest { + /** + *

The unique name of the domain.

+ * @public + */ + DomainName: string | undefined; +} + +/** + * @public + */ +export interface DeleteDomainResponse { + /** + *

A message that indicates the delete request is done.

* @public */ Message: string | undefined; @@ -2209,249 +3689,389 @@ export interface CreateIntegrationWorkflowResponse { /** * @public - * @enum */ -export const Gender = { - FEMALE: "FEMALE", - MALE: "MALE", - UNSPECIFIED: "UNSPECIFIED", -} as const; +export interface DeleteEventStreamRequest { + /** + *

The unique name of the domain.

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

The name of the event stream

+ * @public + */ + EventStreamName: string | undefined; +} /** * @public */ -export type Gender = (typeof Gender)[keyof typeof Gender]; +export interface DeleteEventStreamResponse {} /** * @public - * @enum */ -export const PartyType = { - BUSINESS: "BUSINESS", - INDIVIDUAL: "INDIVIDUAL", - OTHER: "OTHER", -} as const; +export interface DeleteIntegrationRequest { + /** + *

The unique name of the domain.

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

The URI of the S3 bucket or any other type of data source.

+ * @public + */ + Uri: string | undefined; +} /** * @public */ -export type PartyType = (typeof PartyType)[keyof typeof PartyType]; +export interface DeleteIntegrationResponse { + /** + *

A message that indicates the delete request is done.

+ * @public + */ + Message: string | undefined; +} /** * @public */ -export interface CreateProfileRequest { +export interface DeleteProfileRequest { + /** + *

The unique identifier of a customer profile.

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

The unique name of the domain.

* @public */ DomainName: string | undefined; +} +/** + * @public + */ +export interface DeleteProfileResponse { /** - *

An account number that you have given to the customer.

+ *

A message that indicates the delete request is done.

* @public */ - AccountNumber?: string | undefined; + Message?: string | undefined; +} +/** + * @public + */ +export interface DeleteProfileKeyRequest { /** - *

Any additional information relevant to the customer’s profile.

+ *

The unique identifier of a customer profile.

* @public */ - AdditionalInformation?: string | undefined; + ProfileId: string | undefined; /** - * @deprecated - * - *

The type of profile used to describe the customer.

+ *

A searchable identifier of a customer profile.

* @public */ - PartyType?: PartyType | undefined; + KeyName: string | undefined; /** - *

The name of the customer’s business.

+ *

A list of key values.

* @public */ - BusinessName?: string | undefined; + Values: string[] | undefined; /** - *

The customer’s first name.

+ *

The unique name of the domain.

+ * @public + */ + DomainName: string | undefined; +} + +/** + * @public + */ +export interface DeleteProfileKeyResponse { + /** + *

A message that indicates the delete request is done.

* @public */ - FirstName?: string | undefined; + Message?: string | undefined; +} +/** + * @public + */ +export interface DeleteProfileObjectRequest { /** - *

The customer’s middle name.

+ *

The unique identifier of a customer profile.

* @public */ - MiddleName?: string | undefined; + ProfileId: string | undefined; /** - *

The customer’s last name.

+ *

The unique identifier of the profile object generated by the service.

* @public */ - LastName?: string | undefined; + ProfileObjectUniqueKey: string | undefined; /** - *

The customer’s birth date.

+ *

The name of the profile object type.

* @public */ - BirthDate?: string | undefined; + ObjectTypeName: string | undefined; /** - * @deprecated - * - *

The gender with which the customer identifies.

+ *

The unique name of the domain.

* @public */ - Gender?: Gender | undefined; + DomainName: string | undefined; +} +/** + * @public + */ +export interface DeleteProfileObjectResponse { /** - *

The customer’s phone number, which has not been specified as a mobile, home, or business - * number.

+ *

A message that indicates the delete request is done.

* @public */ - PhoneNumber?: string | undefined; + Message?: string | undefined; +} +/** + * @public + */ +export interface DeleteProfileObjectTypeRequest { /** - *

The customer’s mobile phone number.

+ *

The unique name of the domain.

* @public */ - MobilePhoneNumber?: string | undefined; + DomainName: string | undefined; /** - *

The customer’s home phone number.

+ *

The name of the profile object type.

* @public */ - HomePhoneNumber?: string | undefined; + ObjectTypeName: string | undefined; +} +/** + * @public + */ +export interface DeleteProfileObjectTypeResponse { /** - *

The customer’s business phone number.

+ *

A message that indicates the delete request is done.

* @public */ - BusinessPhoneNumber?: string | undefined; + Message: string | undefined; +} +/** + * @public + */ +export interface DeleteSegmentDefinitionRequest { /** - *

The customer’s email address, which has not been specified as a personal or business - * address.

+ *

The unique name of the domain.

* @public */ - EmailAddress?: string | undefined; + DomainName: string | undefined; /** - *

The customer’s personal email address.

+ *

The unique name of the segment definition.

* @public */ - PersonalEmailAddress?: string | undefined; + SegmentDefinitionName: string | undefined; +} +/** + * @public + */ +export interface DeleteSegmentDefinitionResponse { /** - *

The customer’s business email address.

+ *

A message that indicates the delete request is done.

* @public */ - BusinessEmailAddress?: string | undefined; + Message?: string | undefined; +} +/** + * @public + */ +export interface DeleteWorkflowRequest { /** - *

A generic address associated with the customer that is not mailing, shipping, or - * billing.

+ *

The unique name of the domain.

* @public */ - Address?: Address | undefined; + DomainName: string | undefined; /** - *

The customer’s shipping address.

+ *

Unique identifier for the workflow.

* @public */ - ShippingAddress?: Address | undefined; + WorkflowId: string | undefined; +} + +/** + * @public + */ +export interface DeleteWorkflowResponse {} +/** + * @public + */ +export interface DetectProfileObjectTypeRequest { /** - *

The customer’s mailing address.

+ *

A string that is serialized from a JSON object.

* @public */ - MailingAddress?: Address | undefined; + Objects: string[] | undefined; /** - *

The customer’s billing address.

+ *

The unique name of the domain.

* @public */ - BillingAddress?: Address | undefined; + DomainName: string | undefined; +} + +/** + * @public + * @enum + */ +export const FieldContentType = { + EMAIL_ADDRESS: "EMAIL_ADDRESS", + NAME: "NAME", + NUMBER: "NUMBER", + PHONE_NUMBER: "PHONE_NUMBER", + STRING: "STRING", +} as const; + +/** + * @public + */ +export type FieldContentType = (typeof FieldContentType)[keyof typeof FieldContentType]; +/** + *

Represents a field in a ProfileObjectType.

+ * @public + */ +export interface ObjectTypeField { /** - *

A key value pair of attributes of a customer profile.

+ *

A field of a ProfileObject. For example: _source.FirstName, where “_source” is a + * ProfileObjectType of a Zendesk user and “FirstName” is a field in that ObjectType.

* @public */ - Attributes?: Record | undefined; + Source?: string | undefined; /** - *

An alternative to PartyType which accepts any string as input.

+ *

The location of the data in the standard ProfileObject model. For example: + * _profile.Address.PostalCode.

* @public */ - PartyTypeString?: string | undefined; + Target?: string | undefined; /** - *

An alternative to Gender which accepts any string as input.

+ *

The content type of the field. Used for determining equality when searching.

* @public */ - GenderString?: string | undefined; + ContentType?: FieldContentType | undefined; } /** * @public + * @enum */ -export interface CreateProfileResponse { - /** - *

The unique identifier of a customer profile.

- * @public - */ - ProfileId: string | undefined; -} +export const StandardIdentifier = { + ASSET: "ASSET", + CASE: "CASE", + COMMUNICATION_RECORD: "COMMUNICATION_RECORD", + LOOKUP_ONLY: "LOOKUP_ONLY", + NEW_ONLY: "NEW_ONLY", + ORDER: "ORDER", + PROFILE: "PROFILE", + SECONDARY: "SECONDARY", + UNIQUE: "UNIQUE", +} as const; /** * @public */ -export interface DeleteCalculatedAttributeDefinitionRequest { +export type StandardIdentifier = (typeof StandardIdentifier)[keyof typeof StandardIdentifier]; + +/** + *

An object that defines the Key element of a ProfileObject. A Key is a special element + * that can be used to search for a customer profile.

+ * @public + */ +export interface ObjectTypeKey { /** - *

The unique name of the domain.

+ *

The types of keys that a ProfileObject can have. Each ProfileObject can have only 1 + * UNIQUE key but multiple PROFILE keys. PROFILE, ASSET, CASE, or ORDER means that this key + * can be used to tie an object to a PROFILE, ASSET, CASE, or ORDER respectively. UNIQUE means + * that it can be used to uniquely identify an object. If a key a is marked as SECONDARY, it + * will be used to search for profiles after all other PROFILE keys have been searched. A + * LOOKUP_ONLY key is only used to match a profile but is not persisted to be used for + * searching of the profile. A NEW_ONLY key is only used if the profile does not already exist + * before the object is ingested, otherwise it is only used for matching objects to + * profiles.

* @public */ - DomainName: string | undefined; + StandardIdentifiers?: StandardIdentifier[] | undefined; /** - *

The unique name of the calculated attribute.

+ *

The reference for the key name of the fields map.

* @public */ - CalculatedAttributeName: string | undefined; + FieldNames?: string[] | undefined; } /** + *

Contains ProfileObjectType mapping information from the model.

* @public */ -export interface DeleteCalculatedAttributeDefinitionResponse {} +export interface DetectedProfileObjectType { + /** + *

The format of sourceLastUpdatedTimestamp that was detected in + * fields.

+ * @public + */ + SourceLastUpdatedTimestampFormat?: string | undefined; -/** - * @public - */ -export interface DeleteDomainRequest { /** - *

The unique name of the domain.

+ *

A map of the name and the ObjectType field.

* @public */ - DomainName: string | undefined; + Fields?: Record | undefined; + + /** + *

A list of unique keys that can be used to map data to a profile.

+ * @public + */ + Keys?: Record | undefined; } /** * @public */ -export interface DeleteDomainResponse { +export interface DetectProfileObjectTypeResponse { /** - *

A message that indicates the delete request is done.

+ *

Detected ProfileObjectType mappings from given objects. A maximum of one + * mapping is supported.

* @public */ - Message: string | undefined; + DetectedProfileObjectTypes?: DetectedProfileObjectType[] | undefined; } /** * @public */ -export interface DeleteEventStreamRequest { +export interface GetAutoMergingPreviewRequest { /** *

The unique name of the domain.

* @public @@ -2459,21 +4079,29 @@ export interface DeleteEventStreamRequest { DomainName: string | undefined; /** - *

The name of the event stream

+ *

A list of matching attributes that represent matching criteria.

* @public */ - EventStreamName: string | undefined; -} + Consolidation: Consolidation | undefined; -/** - * @public - */ -export interface DeleteEventStreamResponse {} + /** + *

How the auto-merging process should resolve conflicts between different profiles.

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

Minimum confidence score required for profiles within a matching group to be merged + * during the auto-merge process.

+ * @public + */ + MinAllowedConfidenceScoreForMerging?: number | undefined; +} /** * @public */ -export interface DeleteIntegrationRequest { +export interface GetAutoMergingPreviewResponse { /** *

The unique name of the domain.

* @public @@ -2481,135 +4109,114 @@ export interface DeleteIntegrationRequest { DomainName: string | undefined; /** - *

The URI of the S3 bucket or any other type of data source.

+ *

The number of match groups in the domain that have been reviewed in this preview dry + * run.

* @public */ - Uri: string | undefined; -} + NumberOfMatchesInSample?: number | undefined; + + /** + *

The number of profiles found in this preview dry run.

+ * @public + */ + NumberOfProfilesInSample?: number | undefined; -/** - * @public - */ -export interface DeleteIntegrationResponse { /** - *

A message that indicates the delete request is done.

+ *

The number of profiles that would be merged if this wasn't a preview dry run.

* @public */ - Message: string | undefined; + NumberOfProfilesWillBeMerged?: number | undefined; } /** * @public */ -export interface DeleteProfileRequest { - /** - *

The unique identifier of a customer profile.

- * @public - */ - ProfileId: string | undefined; - +export interface GetCalculatedAttributeDefinitionRequest { /** *

The unique name of the domain.

* @public */ DomainName: string | undefined; -} -/** - * @public - */ -export interface DeleteProfileResponse { /** - *

A message that indicates the delete request is done.

+ *

The unique name of the calculated attribute.

* @public */ - Message?: string | undefined; + CalculatedAttributeName: string | undefined; } /** * @public */ -export interface DeleteProfileKeyRequest { +export interface GetCalculatedAttributeDefinitionResponse { /** - *

The unique identifier of a customer profile.

+ *

The unique name of the calculated attribute.

* @public */ - ProfileId: string | undefined; + CalculatedAttributeName?: string | undefined; /** - *

A searchable identifier of a customer profile.

+ *

The display name of the calculated attribute.

* @public */ - KeyName: string | undefined; + DisplayName?: string | undefined; /** - *

A list of key values.

+ *

The description of the calculated attribute.

* @public */ - Values: string[] | undefined; + Description?: string | undefined; /** - *

The unique name of the domain.

+ *

The timestamp of when the calculated attribute definition was created.

* @public */ - DomainName: string | undefined; -} + CreatedAt?: Date | undefined; -/** - * @public - */ -export interface DeleteProfileKeyResponse { /** - *

A message that indicates the delete request is done.

+ *

The timestamp of when the calculated attribute definition was most recently + * edited.

* @public */ - Message?: string | undefined; -} + LastUpdatedAt?: Date | undefined; -/** - * @public - */ -export interface DeleteProfileObjectRequest { /** - *

The unique identifier of a customer profile.

+ *

The aggregation operation to perform for the calculated attribute.

* @public */ - ProfileId: string | undefined; + Statistic?: Statistic | undefined; /** - *

The unique identifier of the profile object generated by the service.

+ *

The filter assigned to this calculated attribute definition.

* @public */ - ProfileObjectUniqueKey: string | undefined; + Filter?: Filter | undefined; /** - *

The name of the profile object type.

+ *

The conditions including range, object count, and threshold for the calculated + * attribute.

* @public */ - ObjectTypeName: string | undefined; + Conditions?: Conditions | undefined; /** - *

The unique name of the domain.

+ *

Mathematical expression and a list of attribute items specified in that + * expression.

* @public */ - DomainName: string | undefined; -} + AttributeDetails?: AttributeDetails | undefined; -/** - * @public - */ -export interface DeleteProfileObjectResponse { /** - *

A message that indicates the delete request is done.

+ *

The tags used to organize, track, or control access for this resource.

* @public */ - Message?: string | undefined; + Tags?: Record | undefined; } /** * @public */ -export interface DeleteProfileObjectTypeRequest { +export interface GetCalculatedAttributeForProfileRequest { /** *

The unique name of the domain.

* @public @@ -2617,223 +4224,175 @@ export interface DeleteProfileObjectTypeRequest { DomainName: string | undefined; /** - *

The name of the profile object type.

+ *

The unique identifier of a customer profile.

* @public */ - ObjectTypeName: string | undefined; -} + ProfileId: string | undefined; -/** - * @public - */ -export interface DeleteProfileObjectTypeResponse { /** - *

A message that indicates the delete request is done.

+ *

The unique name of the calculated attribute.

* @public */ - Message: string | undefined; + CalculatedAttributeName: string | undefined; } /** * @public */ -export interface DeleteWorkflowRequest { +export interface GetCalculatedAttributeForProfileResponse { /** - *

The unique name of the domain.

+ *

The unique name of the calculated attribute.

* @public */ - DomainName: string | undefined; + CalculatedAttributeName?: string | undefined; /** - *

Unique identifier for the workflow.

+ *

The display name of the calculated attribute.

* @public */ - WorkflowId: string | undefined; -} - -/** - * @public - */ -export interface DeleteWorkflowResponse {} + DisplayName?: string | undefined; -/** - * @public - */ -export interface DetectProfileObjectTypeRequest { /** - *

A string that is serialized from a JSON object.

+ *

Indicates whether the calculated attribute’s value is based on partial data. If data is + * partial, it is set to true.

* @public */ - Objects: string[] | undefined; + IsDataPartial?: string | undefined; /** - *

The unique name of the domain.

+ *

The value of the calculated attribute.

* @public */ - DomainName: string | undefined; + Value?: string | undefined; } /** * @public - * @enum */ -export const FieldContentType = { - EMAIL_ADDRESS: "EMAIL_ADDRESS", - NAME: "NAME", - NUMBER: "NUMBER", - PHONE_NUMBER: "PHONE_NUMBER", - STRING: "STRING", -} as const; +export interface GetDomainRequest { + /** + *

The unique name of the domain.

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

Usage-specific statistics about the domain.

* @public */ -export type FieldContentType = (typeof FieldContentType)[keyof typeof FieldContentType]; +export interface DomainStats { + /** + *

The total number of profiles currently in the domain.

+ * @public + */ + ProfileCount?: number | undefined; -/** - *

Represents a field in a ProfileObjectType.

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

A field of a ProfileObject. For example: _source.FirstName, where “_source” is a - * ProfileObjectType of a Zendesk user and “FirstName” is a field in that ObjectType.

+ *

The number of profiles that you are currently paying for in the domain. If you have more + * than 100 objects associated with a single profile, that profile counts as two profiles. If + * you have more than 200 objects, that profile counts as three, and so on.

* @public */ - Source?: string | undefined; + MeteringProfileCount?: number | undefined; /** - *

The location of the data in the standard ProfileObject model. For example: - * _profile.Address.PostalCode.

+ *

The total number of objects in domain.

* @public */ - Target?: string | undefined; + ObjectCount?: number | undefined; /** - *

The content type of the field. Used for determining equality when searching.

+ *

The total size, in bytes, of all objects in the domain.

* @public */ - ContentType?: FieldContentType | undefined; + TotalSize?: number | undefined; } /** - * @public - * @enum - */ -export const StandardIdentifier = { - ASSET: "ASSET", - CASE: "CASE", - LOOKUP_ONLY: "LOOKUP_ONLY", - NEW_ONLY: "NEW_ONLY", - ORDER: "ORDER", - PROFILE: "PROFILE", - SECONDARY: "SECONDARY", - UNIQUE: "UNIQUE", -} as const; - -/** - * @public - */ -export type StandardIdentifier = (typeof StandardIdentifier)[keyof typeof StandardIdentifier]; - -/** - *

An object that defines the Key element of a ProfileObject. A Key is a special element - * that can be used to search for a customer profile.

* @public */ -export interface ObjectTypeKey { +export interface GetDomainResponse { /** - *

The types of keys that a ProfileObject can have. Each ProfileObject can have only 1 - * UNIQUE key but multiple PROFILE keys. PROFILE, ASSET, CASE, or ORDER means that this key - * can be used to tie an object to a PROFILE, ASSET, CASE, or ORDER respectively. UNIQUE means - * that it can be used to uniquely identify an object. If a key a is marked as SECONDARY, it - * will be used to search for profiles after all other PROFILE keys have been searched. A - * LOOKUP_ONLY key is only used to match a profile but is not persisted to be used for - * searching of the profile. A NEW_ONLY key is only used if the profile does not already exist - * before the object is ingested, otherwise it is only used for matching objects to - * profiles.

+ *

The unique name of the domain.

* @public */ - StandardIdentifiers?: StandardIdentifier[] | undefined; + DomainName: string | undefined; /** - *

The reference for the key name of the fields map.

+ *

The default number of days until the data within the domain expires.

* @public */ - FieldNames?: string[] | undefined; -} + DefaultExpirationDays?: number | undefined; -/** - *

Contains ProfileObjectType mapping information from the model.

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

The format of sourceLastUpdatedTimestamp that was detected in - * fields.

+ *

The default encryption key, which is an AWS managed key, is used when no specific type + * of encryption key is specified. It is used to encrypt all data before it is placed in + * permanent or semi-permanent storage.

* @public */ - SourceLastUpdatedTimestampFormat?: string | undefined; + DefaultEncryptionKey?: string | undefined; /** - *

A map of the name and the ObjectType field.

+ *

The URL of the SQS dead letter queue, which is used for reporting errors associated with + * ingesting data from third party applications.

* @public */ - Fields?: Record | undefined; + DeadLetterQueueUrl?: string | undefined; /** - *

A list of unique keys that can be used to map data to a profile.

+ *

Usage-specific statistics about the domain.

* @public */ - Keys?: Record | undefined; -} + Stats?: DomainStats | undefined; -/** - * @public - */ -export interface DetectProfileObjectTypeResponse { /** - *

Detected ProfileObjectType mappings from given objects. A maximum of one - * mapping is supported.

+ *

The process of matching duplicate profiles. If Matching = true, Amazon Connect Customer Profiles starts a weekly + * batch process called Identity Resolution Job. If you do not specify a date and time for Identity Resolution Job to run, by default it runs every + * Saturday at 12AM UTC to detect duplicate profiles in your domains.

+ *

After the Identity Resolution Job completes, use the + * GetMatches + * API to return and review the results. Or, if you have configured ExportingConfig in the MatchingRequest, you can download the results from + * S3.

* @public - */ - DetectedProfileObjectTypes?: DetectedProfileObjectType[] | undefined; -} - -/** - * @public - */ -export interface GetAutoMergingPreviewRequest { + */ + Matching?: MatchingResponse | undefined; + /** - *

The unique name of the domain.

+ *

The process of matching duplicate profiles using the Rule-Based matching. If + * RuleBasedMatching = true, Amazon Connect Customer Profiles will start + * to match and merge your profiles according to your configuration in the + * RuleBasedMatchingRequest. You can use the ListRuleBasedMatches + * and GetSimilarProfiles API to return and review the results. Also, if you have + * configured ExportingConfig in the RuleBasedMatchingRequest, you + * can download the results from S3.

* @public */ - DomainName: string | undefined; + RuleBasedMatching?: RuleBasedMatchingResponse | undefined; /** - *

A list of matching attributes that represent matching criteria.

+ *

The timestamp of when the domain was created.

* @public */ - Consolidation: Consolidation | undefined; + CreatedAt: Date | undefined; /** - *

How the auto-merging process should resolve conflicts between different profiles.

+ *

The timestamp of when the domain was most recently edited.

* @public */ - ConflictResolution: ConflictResolution | undefined; + LastUpdatedAt: Date | undefined; /** - *

Minimum confidence score required for profiles within a matching group to be merged - * during the auto-merge process.

+ *

The tags used to organize, track, or control access for this resource.

* @public */ - MinAllowedConfidenceScoreForMerging?: number | undefined; + Tags?: Record | undefined; } /** * @public */ -export interface GetAutoMergingPreviewResponse { +export interface GetEventStreamRequest { /** *

The unique name of the domain.

* @public @@ -2841,96 +4400,112 @@ export interface GetAutoMergingPreviewResponse { DomainName: string | undefined; /** - *

The number of match groups in the domain that have been reviewed in this preview dry - * run.

+ *

The name of the event stream provided during create operations.

* @public */ - NumberOfMatchesInSample?: number | undefined; + EventStreamName: string | undefined; +} + +/** + * @public + * @enum + */ +export const EventStreamDestinationStatus = { + HEALTHY: "HEALTHY", + UNHEALTHY: "UNHEALTHY", +} as const; + +/** + * @public + */ +export type EventStreamDestinationStatus = + (typeof EventStreamDestinationStatus)[keyof typeof EventStreamDestinationStatus]; +/** + *

Details of the destination being used for the EventStream.

+ * @public + */ +export interface EventStreamDestinationDetails { /** - *

The number of profiles found in this preview dry run.

+ *

The StreamARN of the destination to deliver profile events to. For example, + * arn:aws:kinesis:region:account-id:stream/stream-name.

* @public */ - NumberOfProfilesInSample?: number | undefined; + Uri: string | undefined; /** - *

The number of profiles that would be merged if this wasn't a preview dry run.

+ *

The status of enabling the Kinesis stream as a destination for export.

* @public */ - NumberOfProfilesWillBeMerged?: number | undefined; -} + Status: EventStreamDestinationStatus | undefined; -/** - * @public - */ -export interface GetCalculatedAttributeDefinitionRequest { /** - *

The unique name of the domain.

+ *

The timestamp when the status last changed to UNHEALHY.

* @public */ - DomainName: string | undefined; + UnhealthySince?: Date | undefined; /** - *

The unique name of the calculated attribute.

+ *

The human-readable string that corresponds to the error or success while enabling the + * streaming destination.

* @public */ - CalculatedAttributeName: string | undefined; + Message?: string | undefined; } /** * @public + * @enum */ -export interface GetCalculatedAttributeDefinitionResponse { - /** - *

The unique name of the calculated attribute.

- * @public - */ - CalculatedAttributeName?: string | undefined; +export const EventStreamState = { + RUNNING: "RUNNING", + STOPPED: "STOPPED", +} as const; - /** - *

The display name of the calculated attribute.

- * @public - */ - DisplayName?: string | undefined; +/** + * @public + */ +export type EventStreamState = (typeof EventStreamState)[keyof typeof EventStreamState]; +/** + * @public + */ +export interface GetEventStreamResponse { /** - *

The description of the calculated attribute.

+ *

The unique name of the domain.

* @public */ - Description?: string | undefined; + DomainName: string | undefined; /** - *

The timestamp of when the calculated attribute definition was created.

+ *

A unique identifier for the event stream.

* @public */ - CreatedAt?: Date | undefined; + EventStreamArn: string | undefined; /** - *

The timestamp of when the calculated attribute definition was most recently - * edited.

+ *

The timestamp of when the export was created.

* @public */ - LastUpdatedAt?: Date | undefined; + CreatedAt: Date | undefined; /** - *

The aggregation operation to perform for the calculated attribute.

+ *

The operational state of destination stream for export.

* @public */ - Statistic?: Statistic | undefined; + State: EventStreamState | undefined; /** - *

The conditions including range, object count, and threshold for the calculated - * attribute.

+ *

The timestamp when the State changed to STOPPED.

* @public */ - Conditions?: Conditions | undefined; + StoppedSince?: Date | undefined; /** - *

Mathematical expression and a list of attribute items specified in that - * expression.

+ *

Details regarding the Kinesis stream.

* @public */ - AttributeDetails?: AttributeDetails | undefined; + DestinationDetails: EventStreamDestinationDetails | undefined; /** *

The tags used to organize, track, or control access for this resource.

@@ -2942,7 +4517,7 @@ export interface GetCalculatedAttributeDefinitionResponse { /** * @public */ -export interface GetCalculatedAttributeForProfileRequest { +export interface GetIdentityResolutionJobRequest { /** *

The unique name of the domain.

* @public @@ -2950,175 +4525,196 @@ export interface GetCalculatedAttributeForProfileRequest { DomainName: string | undefined; /** - *

The unique identifier of a customer profile.

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

The unique name of the calculated attribute.

+ *

The unique identifier of the Identity Resolution Job.

* @public */ - CalculatedAttributeName: string | undefined; + JobId: string | undefined; } /** + *

The S3 location where Identity Resolution Jobs write result files.

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

The unique name of the calculated attribute.

- * @public - */ - CalculatedAttributeName?: string | undefined; - - /** - *

The display name of the calculated attribute.

- * @public - */ - DisplayName?: string | undefined; - +export interface S3ExportingLocation { /** - *

Indicates whether the calculated attribute’s value is based on partial data. If data is - * partial, it is set to true.

+ *

The name of the S3 bucket name where Identity Resolution Jobs write result files.

* @public */ - IsDataPartial?: string | undefined; + S3BucketName?: string | undefined; /** - *

The value of the calculated attribute.

+ *

The S3 key name of the location where Identity Resolution Jobs write result files.

* @public */ - Value?: string | undefined; + S3KeyName?: string | undefined; } /** + *

The S3 location where Identity Resolution Jobs write result files.

* @public */ -export interface GetDomainRequest { +export interface ExportingLocation { /** - *

The unique name of the domain.

+ *

Information about the S3 location where Identity Resolution Jobs write result files.

* @public */ - DomainName: string | undefined; + S3Exporting?: S3ExportingLocation | undefined; } /** - *

Usage-specific statistics about the domain.

+ *

Statistics about the Identity Resolution Job.

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

The total number of profiles currently in the domain.

- * @public - */ - ProfileCount?: number | undefined; - +export interface JobStats { /** - *

The number of profiles that you are currently paying for in the domain. If you have more - * than 100 objects associated with a single profile, that profile counts as two profiles. If - * you have more than 200 objects, that profile counts as three, and so on.

+ *

The number of profiles reviewed.

* @public */ - MeteringProfileCount?: number | undefined; + NumberOfProfilesReviewed?: number | undefined; /** - *

The total number of objects in domain.

+ *

The number of matches found.

* @public */ - ObjectCount?: number | undefined; + NumberOfMatchesFound?: number | undefined; /** - *

The total size, in bytes, of all objects in the domain.

+ *

The number of merges completed.

* @public */ - TotalSize?: number | undefined; + NumberOfMergesDone?: number | undefined; } /** * @public + * @enum */ -export interface GetDomainResponse { +export const IdentityResolutionJobStatus = { + COMPLETED: "COMPLETED", + FAILED: "FAILED", + FIND_MATCHING: "FIND_MATCHING", + MERGING: "MERGING", + PARTIAL_SUCCESS: "PARTIAL_SUCCESS", + PENDING: "PENDING", + PREPROCESSING: "PREPROCESSING", +} as const; + +/** + * @public + */ +export type IdentityResolutionJobStatus = + (typeof IdentityResolutionJobStatus)[keyof typeof IdentityResolutionJobStatus]; + +/** + * @public + */ +export interface GetIdentityResolutionJobResponse { /** *

The unique name of the domain.

* @public */ - DomainName: string | undefined; + DomainName?: string | undefined; /** - *

The default number of days until the data within the domain expires.

+ *

The unique identifier of the Identity Resolution Job.

+ * @public + */ + JobId?: string | undefined; + + /** + *

The status of the Identity Resolution Job.

+ *
    + *
  • + *

    + * PENDING: The Identity Resolution Job is scheduled but has not started yet. If you turn + * off the Identity Resolution feature in your domain, jobs in the PENDING state are + * deleted.

    + *
  • + *
  • + *

    + * PREPROCESSING: The Identity Resolution Job is loading your data.

    + *
  • + *
  • + *

    + * FIND_MATCHING: The Identity Resolution Job is using the machine learning model to + * identify profiles that belong to the same matching group.

    + *
  • + *
  • + *

    + * MERGING: The Identity Resolution Job is merging duplicate profiles.

    + *
  • + *
  • + *

    + * COMPLETED: The Identity Resolution Job completed successfully.

    + *
  • + *
  • + *

    + * PARTIAL_SUCCESS: There's a system error and not all of the data is + * merged. The Identity Resolution Job writes a message indicating the source of the problem.

    + *
  • + *
  • + *

    + * FAILED: The Identity Resolution Job did not merge any data. It writes a message + * indicating the source of the problem.

    + *
  • + *
* @public */ - DefaultExpirationDays?: number | undefined; + Status?: IdentityResolutionJobStatus | undefined; /** - *

The default encryption key, which is an AWS managed key, is used when no specific type - * of encryption key is specified. It is used to encrypt all data before it is placed in - * permanent or semi-permanent storage.

+ *

The error messages that are generated when the Identity Resolution Job runs.

* @public */ - DefaultEncryptionKey?: string | undefined; + Message?: string | undefined; /** - *

The URL of the SQS dead letter queue, which is used for reporting errors associated with - * ingesting data from third party applications.

+ *

The timestamp of when the Identity Resolution Job was started or will be started.

* @public */ - DeadLetterQueueUrl?: string | undefined; + JobStartTime?: Date | undefined; /** - *

Usage-specific statistics about the domain.

+ *

The timestamp of when the Identity Resolution Job was completed.

* @public */ - Stats?: DomainStats | undefined; + JobEndTime?: Date | undefined; /** - *

The process of matching duplicate profiles. If Matching = true, Amazon Connect Customer Profiles starts a weekly - * batch process called Identity Resolution Job. If you do not specify a date and time for Identity Resolution Job to run, by default it runs every - * Saturday at 12AM UTC to detect duplicate profiles in your domains.

- *

After the Identity Resolution Job completes, use the - * GetMatches - * API to return and review the results. Or, if you have configured ExportingConfig in the MatchingRequest, you can download the results from - * S3.

+ *

The timestamp of when the Identity Resolution Job was most recently edited.

* @public */ - Matching?: MatchingResponse | undefined; + LastUpdatedAt?: Date | undefined; /** - *

The process of matching duplicate profiles using the Rule-Based matching. If - * RuleBasedMatching = true, Amazon Connect Customer Profiles will start - * to match and merge your profiles according to your configuration in the - * RuleBasedMatchingRequest. You can use the ListRuleBasedMatches - * and GetSimilarProfiles API to return and review the results. Also, if you have - * configured ExportingConfig in the RuleBasedMatchingRequest, you - * can download the results from S3.

+ *

The timestamp of when the Identity Resolution Job will expire.

* @public */ - RuleBasedMatching?: RuleBasedMatchingResponse | undefined; + JobExpirationTime?: Date | undefined; /** - *

The timestamp of when the domain was created.

+ *

Configuration settings for how to perform the auto-merging of profiles.

* @public */ - CreatedAt: Date | undefined; + AutoMerging?: AutoMerging | undefined; /** - *

The timestamp of when the domain was most recently edited.

+ *

The S3 location where the Identity Resolution Job writes result files.

* @public */ - LastUpdatedAt: Date | undefined; + ExportingLocation?: ExportingLocation | undefined; /** - *

The tags used to organize, track, or control access for this resource.

+ *

Statistics about the Identity Resolution Job.

* @public */ - Tags?: Record | undefined; + JobStats?: JobStats | undefined; } /** * @public */ -export interface GetEventStreamRequest { +export interface GetIntegrationRequest { /** *

The unique name of the domain.

* @public @@ -3126,660 +4722,668 @@ export interface GetEventStreamRequest { DomainName: string | undefined; /** - *

The name of the event stream provided during create operations.

+ *

The URI of the S3 bucket or any other type of data source.

* @public */ - EventStreamName: string | undefined; + Uri: string | undefined; } /** - * @public - * @enum - */ -export const EventStreamDestinationStatus = { - HEALTHY: "HEALTHY", - UNHEALTHY: "UNHEALTHY", -} as const; - -/** - * @public - */ -export type EventStreamDestinationStatus = - (typeof EventStreamDestinationStatus)[keyof typeof EventStreamDestinationStatus]; - -/** - *

Details of the destination being used for the EventStream.

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

The StreamARN of the destination to deliver profile events to. For example, - * arn:aws:kinesis:region:account-id:stream/stream-name.

- * @public - */ - Uri: string | undefined; - +export interface GetIntegrationResponse { /** - *

The status of enabling the Kinesis stream as a destination for export.

+ *

The unique name of the domain.

* @public */ - Status: EventStreamDestinationStatus | undefined; + DomainName: string | undefined; /** - *

The timestamp when the status last changed to UNHEALHY.

+ *

The URI of the S3 bucket or any other type of data source.

* @public */ - UnhealthySince?: Date | undefined; + Uri: string | undefined; /** - *

The human-readable string that corresponds to the error or success while enabling the - * streaming destination.

+ *

The name of the profile object type.

* @public */ - Message?: string | undefined; -} - -/** - * @public - * @enum - */ -export const EventStreamState = { - RUNNING: "RUNNING", - STOPPED: "STOPPED", -} as const; - -/** - * @public - */ -export type EventStreamState = (typeof EventStreamState)[keyof typeof EventStreamState]; + ObjectTypeName?: string | undefined; -/** - * @public - */ -export interface GetEventStreamResponse { /** - *

The unique name of the domain.

+ *

The timestamp of when the domain was created.

* @public */ - DomainName: string | undefined; + CreatedAt: Date | undefined; /** - *

A unique identifier for the event stream.

+ *

The timestamp of when the domain was most recently edited.

* @public */ - EventStreamArn: string | undefined; + LastUpdatedAt: Date | undefined; /** - *

The timestamp of when the export was created.

+ *

The tags used to organize, track, or control access for this resource.

* @public */ - CreatedAt: Date | undefined; + Tags?: Record | undefined; /** - *

The operational state of destination stream for export.

+ *

A map in which each key is an event type from an external application such as Segment or Shopify, and each value is an ObjectTypeName (template) used to ingest the event. + * It supports the following event types: SegmentIdentify, ShopifyCreateCustomers, ShopifyUpdateCustomers, ShopifyCreateDraftOrders, + * ShopifyUpdateDraftOrders, ShopifyCreateOrders, and ShopifyUpdatedOrders.

* @public */ - State: EventStreamState | undefined; + ObjectTypeNames?: Record | undefined; /** - *

The timestamp when the State changed to STOPPED.

+ *

Unique identifier for the workflow.

* @public */ - StoppedSince?: Date | undefined; + WorkflowId?: string | undefined; /** - *

Details regarding the Kinesis stream.

+ *

Boolean that shows if the Flow that's associated with the Integration is created in + * Amazon Appflow, or with ObjectTypeName equals _unstructured via API/CLI in + * flowDefinition.

* @public */ - DestinationDetails: EventStreamDestinationDetails | undefined; + IsUnstructured?: boolean | undefined; /** - *

The tags used to organize, track, or control access for this resource.

+ *

The Amazon Resource Name (ARN) of the IAM role. The Integration uses this role to make + * Customer Profiles requests on your behalf.

* @public */ - Tags?: Record | undefined; + RoleArn?: string | undefined; } /** * @public */ -export interface GetIdentityResolutionJobRequest { +export interface GetMatchesRequest { /** - *

The unique name of the domain.

+ *

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 */ - DomainName: string | undefined; + NextToken?: string | undefined; /** - *

The unique identifier of the Identity Resolution Job.

+ *

The maximum number of results to return per page.

* @public */ - JobId: string | undefined; + MaxResults?: number | undefined; + + /** + *

The unique name of the domain.

+ * @public + */ + DomainName: string | undefined; } /** - *

The S3 location where Identity Resolution Jobs write result files.

+ *

The Match group object.

* @public */ -export interface S3ExportingLocation { +export interface MatchItem { /** - *

The name of the S3 bucket name where Identity Resolution Jobs write result files.

+ *

The unique identifiers for this group of profiles that match.

* @public */ - S3BucketName?: string | undefined; + MatchId?: string | undefined; /** - *

The S3 key name of the location where Identity Resolution Jobs write result files.

+ *

A list of identifiers for profiles that match.

* @public */ - S3KeyName?: string | undefined; -} + ProfileIds?: string[] | undefined; -/** - *

The S3 location where Identity Resolution Jobs write result files.

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

Information about the S3 location where Identity Resolution Jobs write result files.

+ *

A number between 0 and 1, where a higher score means higher similarity. Examining match + * confidence scores lets you distinguish between groups of similar records in which the + * system is highly confident (which you may decide to merge), groups of similar records about + * which the system is uncertain (which you may decide to have reviewed by a human), and + * groups of similar records that the system deems to be unlikely (which you may decide to + * reject). Given confidence scores vary as per the data input, it should not be used an + * absolute measure of matching quality.

* @public */ - S3Exporting?: S3ExportingLocation | undefined; + ConfidenceScore?: number | undefined; } /** - *

Statistics about the Identity Resolution Job.

* @public */ -export interface JobStats { +export interface GetMatchesResponse { /** - *

The number of profiles reviewed.

+ *

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

* @public */ - NumberOfProfilesReviewed?: number | undefined; + NextToken?: string | undefined; /** - *

The number of matches found.

+ *

The timestamp this version of Match Result generated.

* @public */ - NumberOfMatchesFound?: number | undefined; + MatchGenerationDate?: Date | undefined; /** - *

The number of merges completed.

+ *

The number of potential matches found.

* @public */ - NumberOfMergesDone?: number | undefined; + PotentialMatches?: number | undefined; + + /** + *

The list of matched profiles for this instance.

+ * @public + */ + Matches?: MatchItem[] | undefined; } /** * @public - * @enum */ -export const IdentityResolutionJobStatus = { - COMPLETED: "COMPLETED", - FAILED: "FAILED", - FIND_MATCHING: "FIND_MATCHING", - MERGING: "MERGING", - PARTIAL_SUCCESS: "PARTIAL_SUCCESS", - PENDING: "PENDING", - PREPROCESSING: "PREPROCESSING", -} as const; +export interface GetProfileObjectTypeRequest { + /** + *

The unique name of the domain.

+ * @public + */ + DomainName: string | undefined; -/** - * @public - */ -export type IdentityResolutionJobStatus = - (typeof IdentityResolutionJobStatus)[keyof typeof IdentityResolutionJobStatus]; + /** + *

The name of the profile object type.

+ * @public + */ + ObjectTypeName: string | undefined; +} /** * @public */ -export interface GetIdentityResolutionJobResponse { +export interface GetProfileObjectTypeResponse { /** - *

The unique name of the domain.

+ *

The name of the profile object type.

* @public */ - DomainName?: string | undefined; + ObjectTypeName: string | undefined; + + /** + *

The description of the profile object type.

+ * @public + */ + Description: string | undefined; /** - *

The unique identifier of the Identity Resolution Job.

+ *

A unique identifier for the object template.

* @public */ - JobId?: string | undefined; + TemplateId?: string | undefined; /** - *

The status of the Identity Resolution Job.

- *
    - *
  • - *

    - * PENDING: The Identity Resolution Job is scheduled but has not started yet. If you turn - * off the Identity Resolution feature in your domain, jobs in the PENDING state are - * deleted.

    - *
  • - *
  • - *

    - * PREPROCESSING: The Identity Resolution Job is loading your data.

    - *
  • - *
  • - *

    - * FIND_MATCHING: The Identity Resolution Job is using the machine learning model to - * identify profiles that belong to the same matching group.

    - *
  • - *
  • - *

    - * MERGING: The Identity Resolution Job is merging duplicate profiles.

    - *
  • - *
  • - *

    - * COMPLETED: The Identity Resolution Job completed successfully.

    - *
  • - *
  • - *

    - * PARTIAL_SUCCESS: There's a system error and not all of the data is - * merged. The Identity Resolution Job writes a message indicating the source of the problem.

    - *
  • - *
  • - *

    - * FAILED: The Identity Resolution Job did not merge any data. It writes a message - * indicating the source of the problem.

    - *
  • - *
+ *

The number of days until the data in the object expires.

* @public */ - Status?: IdentityResolutionJobStatus | undefined; + ExpirationDays?: number | undefined; /** - *

The error messages that are generated when the Identity Resolution Job runs.

+ *

The customer-provided key to encrypt the profile object that will be created in this + * profile object type.

* @public */ - Message?: string | undefined; + EncryptionKey?: string | undefined; /** - *

The timestamp of when the Identity Resolution Job was started or will be started.

+ *

Indicates whether a profile should be created when data is received if one doesn’t exist + * for an object of this type. The default is FALSE. If the AllowProfileCreation + * flag is set to FALSE, then the service tries to fetch a standard profile and + * associate this object with the profile. If it is set to TRUE, and if no match + * is found, then the service creates a new standard profile.

* @public */ - JobStartTime?: Date | undefined; + AllowProfileCreation?: boolean | undefined; /** - *

The timestamp of when the Identity Resolution Job was completed.

+ *

The format of your sourceLastUpdatedTimestamp that was previously set + * up.

* @public */ - JobEndTime?: Date | undefined; + SourceLastUpdatedTimestampFormat?: string | undefined; /** - *

The timestamp of when the Identity Resolution Job was most recently edited.

+ *

The amount of provisioned profile object max count available.

* @public */ - LastUpdatedAt?: Date | undefined; + MaxAvailableProfileObjectCount?: number | undefined; /** - *

The timestamp of when the Identity Resolution Job will expire.

+ *

The amount of profile object max count assigned to the object type.

* @public */ - JobExpirationTime?: Date | undefined; + MaxProfileObjectCount?: number | undefined; /** - *

Configuration settings for how to perform the auto-merging of profiles.

+ *

A map of the name and ObjectType field.

* @public */ - AutoMerging?: AutoMerging | undefined; + Fields?: Record | undefined; /** - *

The S3 location where the Identity Resolution Job writes result files.

+ *

A list of unique keys that can be used to map data to the profile.

* @public */ - ExportingLocation?: ExportingLocation | undefined; + Keys?: Record | undefined; /** - *

Statistics about the Identity Resolution Job.

+ *

The timestamp of when the domain was created.

* @public */ - JobStats?: JobStats | undefined; -} + CreatedAt?: Date | undefined; -/** - * @public - */ -export interface GetIntegrationRequest { /** - *

The unique name of the domain.

+ *

The timestamp of when the domain was most recently edited.

* @public */ - DomainName: string | undefined; + LastUpdatedAt?: Date | undefined; /** - *

The URI of the S3 bucket or any other type of data source.

+ *

The tags used to organize, track, or control access for this resource.

* @public */ - Uri: string | undefined; + Tags?: Record | undefined; } /** * @public */ -export interface GetIntegrationResponse { +export interface GetProfileObjectTypeTemplateRequest { /** - *

The unique name of the domain.

+ *

A unique identifier for the object template.

* @public */ - DomainName: string | undefined; + TemplateId: string | undefined; +} +/** + * @public + */ +export interface GetProfileObjectTypeTemplateResponse { /** - *

The URI of the S3 bucket or any other type of data source.

+ *

A unique identifier for the object template.

* @public */ - Uri: string | undefined; + TemplateId?: string | undefined; /** - *

The name of the profile object type.

+ *

The name of the source of the object template.

* @public */ - ObjectTypeName?: string | undefined; + SourceName?: string | undefined; /** - *

The timestamp of when the domain was created.

+ *

The source of the object template.

* @public */ - CreatedAt: Date | undefined; + SourceObject?: string | undefined; /** - *

The timestamp of when the domain was most recently edited.

+ *

Indicates whether a profile should be created when data is received if one doesn’t exist + * for an object of this type. The default is FALSE. If the AllowProfileCreation + * flag is set to FALSE, then the service tries to fetch a standard profile and + * associate this object with the profile. If it is set to TRUE, and if no match + * is found, then the service creates a new standard profile.

* @public */ - LastUpdatedAt: Date | undefined; + AllowProfileCreation?: boolean | undefined; /** - *

The tags used to organize, track, or control access for this resource.

+ *

The format of your sourceLastUpdatedTimestamp that was previously set + * up.

* @public */ - Tags?: Record | undefined; + SourceLastUpdatedTimestampFormat?: string | undefined; /** - *

A map in which each key is an event type from an external application such as Segment or Shopify, and each value is an ObjectTypeName (template) used to ingest the event. - * It supports the following event types: SegmentIdentify, ShopifyCreateCustomers, ShopifyUpdateCustomers, ShopifyCreateDraftOrders, - * ShopifyUpdateDraftOrders, ShopifyCreateOrders, and ShopifyUpdatedOrders.

+ *

A map of the name and ObjectType field.

* @public */ - ObjectTypeNames?: Record | undefined; + Fields?: Record | undefined; /** - *

Unique identifier for the workflow.

+ *

A list of unique keys that can be used to map data to the profile.

* @public */ - WorkflowId?: string | undefined; + Keys?: Record | undefined; +} +/** + * @public + */ +export interface GetSegmentDefinitionRequest { /** - *

Boolean that shows if the Flow that's associated with the Integration is created in - * Amazon Appflow, or with ObjectTypeName equals _unstructured via API/CLI in - * flowDefinition.

+ *

The unique name of the domain.

* @public */ - IsUnstructured?: boolean | undefined; + DomainName: string | undefined; /** - *

The Amazon Resource Name (ARN) of the IAM role. The Integration uses this role to make - * Customer Profiles requests on your behalf.

+ *

The unique name of the segment definition.

* @public */ - RoleArn?: string | undefined; + SegmentDefinitionName: string | undefined; } /** * @public */ -export interface GetMatchesRequest { +export interface GetSegmentDefinitionResponse { /** - *

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.

+ *

The name of the segment definition.

* @public */ - NextToken?: string | undefined; + SegmentDefinitionName?: string | undefined; /** - *

The maximum number of results to return per page.

+ *

The display name of the segment definition.

* @public */ - MaxResults?: number | undefined; + DisplayName?: string | undefined; /** - *

The unique name of the domain.

+ *

The description of the segment definition.

* @public */ - DomainName: string | undefined; -} + Description?: string | undefined; -/** - *

The Match group object.

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

The unique identifiers for this group of profiles that match.

+ *

The segment criteria associated with this definition.

* @public */ - MatchId?: string | undefined; + SegmentGroups?: SegmentGroup | undefined; /** - *

A list of identifiers for profiles that match.

+ *

The arn of the segment definition.

* @public */ - ProfileIds?: string[] | undefined; + SegmentDefinitionArn: string | undefined; /** - *

A number between 0 and 1, where a higher score means higher similarity. Examining match - * confidence scores lets you distinguish between groups of similar records in which the - * system is highly confident (which you may decide to merge), groups of similar records about - * which the system is uncertain (which you may decide to have reviewed by a human), and - * groups of similar records that the system deems to be unlikely (which you may decide to - * reject). Given confidence scores vary as per the data input, it should not be used an - * absolute measure of matching quality.

+ *

The timestamp of when the segment definition was created.

* @public */ - ConfidenceScore?: number | undefined; + CreatedAt?: Date | undefined; + + /** + *

The tags used to organize, track, or control access for this resource.

+ * @public + */ + Tags?: Record | undefined; } /** * @public */ -export interface GetMatchesResponse { +export interface GetSegmentEstimateRequest { /** - *

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

+ *

The unique name of the domain.

* @public */ - NextToken?: string | undefined; + DomainName: string | undefined; /** - *

The timestamp this version of Match Result generated.

+ *

The query Id passed by a previous CreateSegmentEstimate operation.

* @public */ - MatchGenerationDate?: Date | undefined; + EstimateId: string | undefined; +} + +/** + * @public + * @enum + */ +export const EstimateStatus = { + FAILED: "FAILED", + RUNNING: "RUNNING", + SUCCEEDED: "SUCCEEDED", +} as const; + +/** + * @public + */ +export type EstimateStatus = (typeof EstimateStatus)[keyof typeof EstimateStatus]; +/** + * @public + */ +export interface GetSegmentEstimateResponse { /** - *

The number of potential matches found.

+ *

The unique name of the domain.

* @public */ - PotentialMatches?: number | undefined; + DomainName?: string | undefined; /** - *

The list of matched profiles for this instance.

+ *

The QueryId which is the same as the value passed in QueryId.

* @public */ - Matches?: MatchItem[] | undefined; -} + EstimateId?: string | undefined; -/** - * @public - */ -export interface GetProfileObjectTypeRequest { /** - *

The unique name of the domain.

+ *

The current status of the query.

* @public */ - DomainName: string | undefined; + Status?: EstimateStatus | undefined; /** - *

The name of the profile object type.

+ *

The estimated number of profiles contained in the segment.

* @public */ - ObjectTypeName: string | undefined; + Estimate?: string | undefined; + + /** + *

The error message if there is any error.

+ * @public + */ + Message?: string | undefined; + + /** + *

The status code of the segment estimate.

+ * @public + */ + StatusCode?: number | undefined; } /** * @public */ -export interface GetProfileObjectTypeResponse { +export interface GetSegmentMembershipRequest { /** - *

The name of the profile object type.

+ *

The unique name of the domain.

* @public */ - ObjectTypeName: string | undefined; + DomainName: string | undefined; /** - *

The description of the profile object type.

+ *

The Id of the wanted segment. Needs to be a valid, and existing segment Id.

* @public */ - Description: string | undefined; + SegmentDefinitionName: string | undefined; /** - *

A unique identifier for the object template.

+ *

The list of profile IDs to query for.

* @public */ - TemplateId?: string | undefined; + ProfileIds: string[] | undefined; +} + +/** + *

Object that holds failures for membership.

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

The profile id the failure belongs to.

+ * @public + */ + ProfileId: string | undefined; /** - *

The number of days until the data in the object expires.

+ *

A message describing the failure.

* @public */ - ExpirationDays?: number | undefined; + Message: string | undefined; /** - *

The customer-provided key to encrypt the profile object that will be created in this - * profile object type.

+ *

The status describing the failure.

* @public */ - EncryptionKey?: string | undefined; + Status?: number | undefined; +} + +/** + * @public + * @enum + */ +export const QueryResult = { + ABSENT: "ABSENT", + PRESENT: "PRESENT", +} as const; + +/** + * @public + */ +export type QueryResult = (typeof QueryResult)[keyof typeof QueryResult]; +/** + *

Object that holds the results for membership.

+ * @public + */ +export interface ProfileQueryResult { /** - *

Indicates whether a profile should be created when data is received if one doesn’t exist - * for an object of this type. The default is FALSE. If the AllowProfileCreation - * flag is set to FALSE, then the service tries to fetch a standard profile and - * associate this object with the profile. If it is set to TRUE, and if no match - * is found, then the service creates a new standard profile.

+ *

The profile id the result belongs to.

* @public */ - AllowProfileCreation?: boolean | undefined; + ProfileId: string | undefined; /** - *

The format of your sourceLastUpdatedTimestamp that was previously set - * up.

+ *

Describes whether the profile was absent or present in the segment.

* @public */ - SourceLastUpdatedTimestampFormat?: string | undefined; + QueryResult: QueryResult | undefined; /** - *

The amount of provisioned profile object max count available.

+ *

The standard profile of a customer.

* @public */ - MaxAvailableProfileObjectCount?: number | undefined; + Profile?: Profile | undefined; +} +/** + * @public + */ +export interface GetSegmentMembershipResponse { /** - *

The amount of profile object max count assigned to the object type.

+ *

The unique name of the segment definition.

* @public */ - MaxProfileObjectCount?: number | undefined; + SegmentDefinitionName?: string | undefined; /** - *

A map of the name and ObjectType field.

+ *

An array of maps where each contains a response per profile requested.

* @public */ - Fields?: Record | undefined; + Profiles?: ProfileQueryResult[] | undefined; /** - *

A list of unique keys that can be used to map data to the profile.

+ *

An array of maps where each contains a response per profile failed for the request.

* @public */ - Keys?: Record | undefined; + Failures?: ProfileQueryFailures[] | undefined; +} +/** + * @public + */ +export interface GetSegmentSnapshotRequest { /** - *

The timestamp of when the domain was created.

+ *

The unique identifier of the domain.

* @public */ - CreatedAt?: Date | undefined; + DomainName: string | undefined; /** - *

The timestamp of when the domain was most recently edited.

+ *

The unique name of the segment definition.

* @public */ - LastUpdatedAt?: Date | undefined; + SegmentDefinitionName: string | undefined; /** - *

The tags used to organize, track, or control access for this resource.

+ *

The unique identifier of the segment snapshot.

* @public */ - Tags?: Record | undefined; + SnapshotId: string | undefined; } /** * @public + * @enum */ -export interface GetProfileObjectTypeTemplateRequest { - /** - *

A unique identifier for the object template.

- * @public - */ - TemplateId: string | undefined; -} +export const SegmentSnapshotStatus = { + COMPLETED: "COMPLETED", + FAILED: "FAILED", + IN_PROGRESS: "IN_PROGRESS", +} as const; /** * @public */ -export interface GetProfileObjectTypeTemplateResponse { +export type SegmentSnapshotStatus = (typeof SegmentSnapshotStatus)[keyof typeof SegmentSnapshotStatus]; + +/** + * @public + */ +export interface GetSegmentSnapshotResponse { /** - *

A unique identifier for the object template.

+ *

The unique identifier of the segment snapshot.

* @public */ - TemplateId?: string | undefined; + SnapshotId: string | undefined; /** - *

The name of the source of the object template.

+ *

The status of the asynchronous job for exporting the segment snapshot.

* @public */ - SourceName?: string | undefined; + Status: SegmentSnapshotStatus | undefined; /** - *

The source of the object template.

+ *

The status message of the asynchronous job for exporting the segment snapshot.

* @public */ - SourceObject?: string | undefined; + StatusMessage?: string | undefined; /** - *

Indicates whether a profile should be created when data is received if one doesn’t exist - * for an object of this type. The default is FALSE. If the AllowProfileCreation - * flag is set to FALSE, then the service tries to fetch a standard profile and - * associate this object with the profile. If it is set to TRUE, and if no match - * is found, then the service creates a new standard profile.

+ *

The format in which the segment will be exported.

* @public */ - AllowProfileCreation?: boolean | undefined; + DataFormat: DataFormat | undefined; /** - *

The format of your sourceLastUpdatedTimestamp that was previously set - * up.

+ *

The Amazon Resource Name (ARN) of the KMS key used to encrypt the exported segment.

* @public */ - SourceLastUpdatedTimestampFormat?: string | undefined; + EncryptionKey?: string | undefined; /** - *

A map of the name and ObjectType field.

+ *

The Amazon Resource Name (ARN) of the IAM role that allows Customer Profiles service principal to assume the role for conducting KMS and S3 operations.

* @public */ - Fields?: Record | undefined; + RoleArn?: string | undefined; /** - *

A list of unique keys that can be used to map data to the profile.

+ *

The destination to which the segment will be exported. This field must be provided if the request is not submitted from the Amazon Connect Admin Website.

* @public */ - Keys?: Record | undefined; + DestinationUri?: string | undefined; } /** @@ -4610,6 +6214,116 @@ export interface ListIntegrationsResponse { NextToken?: string | undefined; } +/** + * @public + */ +export interface ListObjectTypeAttributesRequest { + /** + *

The pagination token from the previous call.

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

The maximum number of objects returned per page.

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

The unique identifier of the domain.

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

The name of the profile object type.

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

Item that contains the attribute and when it was last updated.

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

Name of the attribute.

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

When the attribute was last updated.

+ * @public + */ + LastUpdatedAt: Date | undefined; +} + +/** + * @public + */ +export interface ListObjectTypeAttributesResponse { + /** + *

The items returned as part of the response.

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

The pagination token from the previous call.

+ * @public + */ + NextToken?: string | undefined; +} + +/** + * @public + */ +export interface ProfileAttributeValuesRequest { + /** + *

The unique identifier of the domain.

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

The attribute name.

+ * @public + */ + AttributeName: string | undefined; +} + +/** + * @public + */ +export interface ProfileAttributeValuesResponse { + /** + *

The name of the domain.

+ * @public + */ + DomainName?: string | undefined; + + /** + *

The attribute name.

+ * @public + */ + AttributeName?: string | undefined; + + /** + *

The items returned as part of the response.

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

The status code for the response.

+ * @public + */ + StatusCode?: number | undefined; +} + /** *

The filter applied to ListProfileObjects response to include profile * objects with the specified index values.

@@ -4816,93 +6530,175 @@ export interface ListProfileObjectTypeTemplatesRequest { NextToken?: string | undefined; /** - *

The maximum number of objects returned per page.

+ *

The maximum number of objects returned per page.

+ * @public + */ + MaxResults?: number | undefined; +} + +/** + *

A ProfileObjectTypeTemplate in a list of ProfileObjectTypeTemplates.

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

A unique identifier for the object template.

+ * @public + */ + TemplateId?: string | undefined; + + /** + *

The name of the source of the object template.

+ * @public + */ + SourceName?: string | undefined; + + /** + *

The source of the object template.

+ * @public + */ + SourceObject?: string | undefined; +} + +/** + * @public + */ +export interface ListProfileObjectTypeTemplatesResponse { + /** + *

The list of ListProfileObjectType template instances.

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

The pagination token from the previous ListObjectTypeTemplates API call.

+ * @public + */ + NextToken?: string | undefined; +} + +/** + * @public + */ +export interface ListRuleBasedMatchesRequest { + /** + *

The pagination token from the previous ListRuleBasedMatches API + * call.

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

The maximum number of MatchIds returned per page.

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

The unique name of the domain.

+ * @public + */ + DomainName: string | undefined; +} + +/** + * @public + */ +export interface ListRuleBasedMatchesResponse { + /** + *

The list of MatchIds for the given domain.

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

The pagination token from the previous ListRuleBasedMatches API + * call.

* @public */ - MaxResults?: number | undefined; + NextToken?: string | undefined; } /** - *

A ProfileObjectTypeTemplate in a list of ProfileObjectTypeTemplates.

* @public */ -export interface ListProfileObjectTypeTemplateItem { +export interface ListSegmentDefinitionsRequest { /** - *

A unique identifier for the object template.

+ *

The unique identifier of the domain.

* @public */ - TemplateId?: string | undefined; + DomainName: string | undefined; /** - *

The name of the source of the object template.

+ *

The maximum number of objects returned per page.

* @public */ - SourceName?: string | undefined; + MaxResults?: number | undefined; /** - *

The source of the object template.

+ *

The pagination token from the previous call.

* @public */ - SourceObject?: string | undefined; + NextToken?: string | undefined; } /** + *

Object holding the segment definition fields.

* @public */ -export interface ListProfileObjectTypeTemplatesResponse { +export interface SegmentDefinitionItem { /** - *

The list of ListProfileObjectType template instances.

+ *

Name of the segment definition.

* @public */ - Items?: ListProfileObjectTypeTemplateItem[] | undefined; + SegmentDefinitionName?: string | undefined; /** - *

The pagination token from the previous ListObjectTypeTemplates API call.

+ *

Display name of the segment definition.

* @public */ - NextToken?: string | undefined; -} + DisplayName?: string | undefined; -/** - * @public - */ -export interface ListRuleBasedMatchesRequest { /** - *

The pagination token from the previous ListRuleBasedMatches API - * call.

+ *

The description of the segment definition.

* @public */ - NextToken?: string | undefined; + Description?: string | undefined; /** - *

The maximum number of MatchIds returned per page.

+ *

The arn of the segment definition.

* @public */ - MaxResults?: number | undefined; + SegmentDefinitionArn?: string | undefined; /** - *

The unique name of the domain.

+ *

When the segment definition was created.

* @public */ - DomainName: string | undefined; + CreatedAt?: Date | undefined; + + /** + *

The tags belonging to the segment definition.

+ * @public + */ + Tags?: Record | undefined; } /** * @public */ -export interface ListRuleBasedMatchesResponse { +export interface ListSegmentDefinitionsResponse { /** - *

The list of MatchIds for the given domain.

+ *

The pagination token from the previous call.

* @public */ - MatchIds?: string[] | undefined; + NextToken?: string | undefined; /** - *

The pagination token from the previous ListRuleBasedMatches API - * call.

+ *

List of segment definitions.

* @public */ - NextToken?: string | undefined; + Items?: SegmentDefinitionItem[] | undefined; } /** @@ -5557,290 +7353,85 @@ export const LogicalOperator = { OR: "OR", } as const; -/** - * @public - */ -export type LogicalOperator = (typeof LogicalOperator)[keyof typeof LogicalOperator]; - -/** - * @public - */ -export interface SearchProfilesRequest { - /** - *

The pagination token from the previous SearchProfiles API call.

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

The maximum number of objects returned per page.

- *

The default is 20 if this parameter is not included in the request.

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

The unique name of the domain.

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

A searchable identifier of a customer profile. The predefined keys you can use to search include: _account, _profileId, - * _assetId, _caseId, _orderId, _fullName, _phone, _email, _ctrContactId, _marketoLeadId, - * _salesforceAccountId, _salesforceContactId, _salesforceAssetId, _zendeskUserId, - * _zendeskExternalId, _zendeskTicketId, _serviceNowSystemId, _serviceNowIncidentId, - * _segmentUserId, _shopifyCustomerId, _shopifyOrderId.

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

A list of key values.

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

A list of AdditionalSearchKey objects that are each searchable identifiers - * of a profile. Each AdditionalSearchKey object contains a KeyName - * and a list of Values associated with that specific key (i.e., a key-value(s) - * pair). These additional search keys will be used in conjunction with the - * LogicalOperator and the required KeyName and - * Values parameters to search for profiles that satisfy the search criteria. - *

- * @public - */ - AdditionalSearchKeys?: AdditionalSearchKey[] | undefined; - - /** - *

Relationship between all specified search keys that will be used to search for profiles. - * This includes the required KeyName and Values parameters as well - * as any key-value(s) pairs specified in the AdditionalSearchKeys list.

- *

This parameter influences which profiles will be returned in the response in the - * following manner:

- *
    - *
  • - *

    - * AND - The response only includes profiles that match all of the - * search keys.

    - *
  • - *
  • - *

    - * OR - The response includes profiles that match at least one of the - * search keys.

    - *
  • - *
- *

The OR relationship is the default behavior if this parameter is not - * included in the request.

- * @public - */ - LogicalOperator?: LogicalOperator | undefined; -} - -/** - *

A data type pair that consists of a KeyName and Values list - * that were used to find a profile returned in response to a SearchProfiles request. - *

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

A searchable identifier of a customer profile.

- * @public - */ - KeyName?: string | undefined; - - /** - *

A list of key values.

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

The standard profile of a customer.

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

The unique identifier of a customer profile.

- * @public - */ - ProfileId?: string | undefined; - - /** - *

An account number that you have given to the customer.

- * @public - */ - AccountNumber?: string | undefined; - - /** - *

Any additional information relevant to the customer’s profile.

- * @public - */ - AdditionalInformation?: string | undefined; - - /** - * @deprecated - * - *

The type of profile used to describe the customer.

- * @public - */ - PartyType?: PartyType | undefined; - - /** - *

The name of the customer’s business.

- * @public - */ - BusinessName?: string | undefined; - - /** - *

The customer’s first name.

- * @public - */ - FirstName?: string | undefined; - - /** - *

The customer’s middle name.

- * @public - */ - MiddleName?: string | undefined; - - /** - *

The customer’s last name.

- * @public - */ - LastName?: string | undefined; - - /** - *

The customer’s birth date.

- * @public - */ - BirthDate?: string | undefined; - - /** - * @deprecated - * - *

The gender with which the customer identifies.

- * @public - */ - Gender?: Gender | undefined; - - /** - *

The customer's phone number, which has not been specified as a mobile, home, or business - * number.

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

The customer’s mobile phone number.

- * @public - */ - MobilePhoneNumber?: string | undefined; - - /** - *

The customer’s home phone number.

- * @public - */ - HomePhoneNumber?: string | undefined; - - /** - *

The customer’s home phone number.

- * @public - */ - BusinessPhoneNumber?: string | undefined; - - /** - *

The customer’s email address, which has not been specified as a personal or business - * address.

- * @public - */ - EmailAddress?: string | undefined; - - /** - *

The customer’s personal email address.

- * @public - */ - PersonalEmailAddress?: string | undefined; +/** + * @public + */ +export type LogicalOperator = (typeof LogicalOperator)[keyof typeof LogicalOperator]; +/** + * @public + */ +export interface SearchProfilesRequest { /** - *

The customer’s business email address.

+ *

The pagination token from the previous SearchProfiles API call.

* @public */ - BusinessEmailAddress?: string | undefined; + NextToken?: string | undefined; /** - *

A generic address associated with the customer that is not mailing, shipping, or - * billing.

+ *

The maximum number of objects returned per page.

+ *

The default is 20 if this parameter is not included in the request.

* @public */ - Address?: Address | undefined; + MaxResults?: number | undefined; /** - *

The customer’s shipping address.

+ *

The unique name of the domain.

* @public */ - ShippingAddress?: Address | undefined; + DomainName: string | undefined; /** - *

The customer’s mailing address.

+ *

A searchable identifier of a customer profile. The predefined keys you can use to search include: _account, _profileId, + * _assetId, _caseId, _orderId, _fullName, _phone, _email, _ctrContactId, _marketoLeadId, + * _salesforceAccountId, _salesforceContactId, _salesforceAssetId, _zendeskUserId, + * _zendeskExternalId, _zendeskTicketId, _serviceNowSystemId, _serviceNowIncidentId, + * _segmentUserId, _shopifyCustomerId, _shopifyOrderId.

* @public */ - MailingAddress?: Address | undefined; + KeyName: string | undefined; /** - *

The customer’s billing address.

+ *

A list of key values.

* @public */ - BillingAddress?: Address | undefined; + Values: string[] | undefined; /** - *

A key value pair of attributes of a customer profile.

+ *

A list of AdditionalSearchKey objects that are each searchable identifiers + * of a profile. Each AdditionalSearchKey object contains a KeyName + * and a list of Values associated with that specific key (i.e., a key-value(s) + * pair). These additional search keys will be used in conjunction with the + * LogicalOperator and the required KeyName and + * Values parameters to search for profiles that satisfy the search criteria. + *

* @public */ - Attributes?: Record | undefined; + AdditionalSearchKeys?: AdditionalSearchKey[] | undefined; /** - *

A list of items used to find a profile returned in a SearchProfiles response. - * An item is a key-value(s) pair that matches an attribute in the profile.

- *

If the optional AdditionalSearchKeys parameter was included in the - * SearchProfiles request, the FoundByItems list should be interpreted - * based on the LogicalOperator used in the request:

+ *

Relationship between all specified search keys that will be used to search for profiles. + * This includes the required KeyName and Values parameters as well + * as any key-value(s) pairs specified in the AdditionalSearchKeys list.

+ *

This parameter influences which profiles will be returned in the response in the + * following manner:

*
    *
  • *

    - * AND - The profile included in the response matched all of the search - * keys specified in the request. The FoundByItems will include all of the - * key-value(s) pairs that were specified in the request (as this is a requirement of - * AND search logic).

    + * AND - The response only includes profiles that match all of the + * search keys.

    *
  • *
  • *

    - * OR - The profile included in the response matched at least one of the - * search keys specified in the request. The FoundByItems will include each - * of the key-value(s) pairs that the profile was found by.

    + * OR - The response includes profiles that match at least one of the + * search keys.

    *
  • *
- *

The OR relationship is the default behavior if the - * LogicalOperator parameter is not included in the SearchProfiles - * request.

- * @public - */ - FoundByItems?: FoundByKeyValue[] | undefined; - - /** - *

An alternative to PartyType which accepts any string as input.

- * @public - */ - PartyTypeString?: string | undefined; - - /** - *

An alternative to Gender which accepts any string as input.

+ *

The OR relationship is the default behavior if this parameter is not + * included in the request.

* @public */ - GenderString?: string | undefined; + LogicalOperator?: LogicalOperator | undefined; } /** @@ -6410,6 +8001,71 @@ export const AttributeDetailsFilterSensitiveLog = (obj: AttributeDetails): any = ...obj, }); +/** + * @internal + */ +export const ConditionOverridesFilterSensitiveLog = (obj: ConditionOverrides): any => ({ + ...obj, +}); + +/** + * @internal + */ +export const BatchGetCalculatedAttributeForProfileRequestFilterSensitiveLog = ( + obj: BatchGetCalculatedAttributeForProfileRequest +): any => ({ + ...obj, + ...(obj.ConditionOverrides && { ConditionOverrides: SENSITIVE_STRING }), +}); + +/** + * @internal + */ +export const BatchGetCalculatedAttributeForProfileResponseFilterSensitiveLog = ( + obj: BatchGetCalculatedAttributeForProfileResponse +): any => ({ + ...obj, + ...(obj.ConditionOverrides && { ConditionOverrides: SENSITIVE_STRING }), +}); + +/** + * @internal + */ +export const ProfileFilterSensitiveLog = (obj: Profile): any => ({ + ...obj, + ...(obj.AccountNumber && { AccountNumber: SENSITIVE_STRING }), + ...(obj.AdditionalInformation && { AdditionalInformation: SENSITIVE_STRING }), + ...(obj.PartyType && { PartyType: SENSITIVE_STRING }), + ...(obj.BusinessName && { BusinessName: SENSITIVE_STRING }), + ...(obj.FirstName && { FirstName: SENSITIVE_STRING }), + ...(obj.MiddleName && { MiddleName: SENSITIVE_STRING }), + ...(obj.LastName && { LastName: SENSITIVE_STRING }), + ...(obj.BirthDate && { BirthDate: SENSITIVE_STRING }), + ...(obj.Gender && { Gender: SENSITIVE_STRING }), + ...(obj.PhoneNumber && { PhoneNumber: SENSITIVE_STRING }), + ...(obj.MobilePhoneNumber && { MobilePhoneNumber: SENSITIVE_STRING }), + ...(obj.HomePhoneNumber && { HomePhoneNumber: SENSITIVE_STRING }), + ...(obj.BusinessPhoneNumber && { BusinessPhoneNumber: SENSITIVE_STRING }), + ...(obj.EmailAddress && { EmailAddress: SENSITIVE_STRING }), + ...(obj.PersonalEmailAddress && { PersonalEmailAddress: SENSITIVE_STRING }), + ...(obj.BusinessEmailAddress && { BusinessEmailAddress: SENSITIVE_STRING }), + ...(obj.Address && { Address: SENSITIVE_STRING }), + ...(obj.ShippingAddress && { ShippingAddress: SENSITIVE_STRING }), + ...(obj.MailingAddress && { MailingAddress: SENSITIVE_STRING }), + ...(obj.BillingAddress && { BillingAddress: SENSITIVE_STRING }), + ...(obj.Attributes && { Attributes: SENSITIVE_STRING }), + ...(obj.PartyTypeString && { PartyTypeString: SENSITIVE_STRING }), + ...(obj.GenderString && { GenderString: SENSITIVE_STRING }), +}); + +/** + * @internal + */ +export const BatchGetProfileResponseFilterSensitiveLog = (obj: BatchGetProfileResponse): any => ({ + ...obj, + ...(obj.Profiles && { Profiles: obj.Profiles.map((item) => ProfileFilterSensitiveLog(item)) }), +}); + /** * @internal */ @@ -6420,6 +8076,14 @@ export const ListCalculatedAttributeDefinitionItemFilterSensitiveLog = ( ...(obj.Description && { Description: SENSITIVE_STRING }), }); +/** + * @internal + */ +export const CalculatedAttributeDimensionFilterSensitiveLog = (obj: CalculatedAttributeDimension): any => ({ + ...obj, + ...(obj.ConditionOverrides && { ConditionOverrides: SENSITIVE_STRING }), +}); + /** * @internal */ @@ -6499,6 +8163,79 @@ export const CreateProfileRequestFilterSensitiveLog = (obj: CreateProfileRequest ...(obj.GenderString && { GenderString: SENSITIVE_STRING }), }); +/** + * @internal + */ +export const ProfileAttributesFilterSensitiveLog = (obj: ProfileAttributes): any => ({ + ...obj, +}); + +/** + * @internal + */ +export const DimensionFilterSensitiveLog = (obj: Dimension): any => { + if (obj.ProfileAttributes !== undefined) return { ProfileAttributes: SENSITIVE_STRING }; + if (obj.CalculatedAttributes !== undefined) + return { + CalculatedAttributes: Object.entries(obj.CalculatedAttributes).reduce( + (acc: any, [key, value]: [string, CalculatedAttributeDimension]) => ( + (acc[key] = CalculatedAttributeDimensionFilterSensitiveLog(value)), acc + ), + {} + ), + }; + if (obj.$unknown !== undefined) return { [obj.$unknown[0]]: "UNKNOWN" }; +}; + +/** + * @internal + */ +export const GroupFilterSensitiveLog = (obj: Group): any => ({ + ...obj, + ...(obj.Dimensions && { Dimensions: obj.Dimensions.map((item) => DimensionFilterSensitiveLog(item)) }), +}); + +/** + * @internal + */ +export const SegmentGroupFilterSensitiveLog = (obj: SegmentGroup): any => ({ + ...obj, + ...(obj.Groups && { Groups: obj.Groups.map((item) => GroupFilterSensitiveLog(item)) }), +}); + +/** + * @internal + */ +export const CreateSegmentDefinitionRequestFilterSensitiveLog = (obj: CreateSegmentDefinitionRequest): any => ({ + ...obj, + ...(obj.Description && { Description: SENSITIVE_STRING }), + ...(obj.SegmentGroups && { SegmentGroups: SENSITIVE_STRING }), +}); + +/** + * @internal + */ +export const CreateSegmentDefinitionResponseFilterSensitiveLog = (obj: CreateSegmentDefinitionResponse): any => ({ + ...obj, + ...(obj.Description && { Description: SENSITIVE_STRING }), +}); + +/** + * @internal + */ +export const SegmentGroupStructureFilterSensitiveLog = (obj: SegmentGroupStructure): any => ({ + ...obj, + ...(obj.Groups && { Groups: obj.Groups.map((item) => GroupFilterSensitiveLog(item)) }), +}); + +/** + * @internal + */ +export const CreateSegmentEstimateRequestFilterSensitiveLog = (obj: CreateSegmentEstimateRequest): any => ({ + ...obj, + ...(obj.SegmentQuery && { SegmentQuery: SegmentGroupStructureFilterSensitiveLog(obj.SegmentQuery) }), +}); + /** * @internal */ @@ -6562,6 +8299,31 @@ export const GetProfileObjectTypeTemplateResponseFilterSensitiveLog = ( ...(obj.Keys && { Keys: SENSITIVE_STRING }), }); +/** + * @internal + */ +export const GetSegmentDefinitionResponseFilterSensitiveLog = (obj: GetSegmentDefinitionResponse): any => ({ + ...obj, + ...(obj.Description && { Description: SENSITIVE_STRING }), + ...(obj.SegmentGroups && { SegmentGroups: SENSITIVE_STRING }), +}); + +/** + * @internal + */ +export const ProfileQueryResultFilterSensitiveLog = (obj: ProfileQueryResult): any => ({ + ...obj, + ...(obj.Profile && { Profile: ProfileFilterSensitiveLog(obj.Profile) }), +}); + +/** + * @internal + */ +export const GetSegmentMembershipResponseFilterSensitiveLog = (obj: GetSegmentMembershipResponse): any => ({ + ...obj, + ...(obj.Profiles && { Profiles: obj.Profiles.map((item) => ProfileQueryResultFilterSensitiveLog(item)) }), +}); + /** * @internal */ @@ -6596,6 +8358,22 @@ export const ListProfileObjectTypesResponseFilterSensitiveLog = (obj: ListProfil ...(obj.Items && { Items: SENSITIVE_STRING }), }); +/** + * @internal + */ +export const SegmentDefinitionItemFilterSensitiveLog = (obj: SegmentDefinitionItem): any => ({ + ...obj, + ...(obj.Description && { Description: SENSITIVE_STRING }), +}); + +/** + * @internal + */ +export const ListSegmentDefinitionsResponseFilterSensitiveLog = (obj: ListSegmentDefinitionsResponse): any => ({ + ...obj, + ...(obj.Items && { Items: obj.Items.map((item) => SegmentDefinitionItemFilterSensitiveLog(item)) }), +}); + /** * @internal */ @@ -6632,36 +8410,6 @@ export const PutProfileObjectTypeResponseFilterSensitiveLog = (obj: PutProfileOb ...(obj.Keys && { Keys: SENSITIVE_STRING }), }); -/** - * @internal - */ -export const ProfileFilterSensitiveLog = (obj: Profile): any => ({ - ...obj, - ...(obj.AccountNumber && { AccountNumber: SENSITIVE_STRING }), - ...(obj.AdditionalInformation && { AdditionalInformation: SENSITIVE_STRING }), - ...(obj.PartyType && { PartyType: SENSITIVE_STRING }), - ...(obj.BusinessName && { BusinessName: SENSITIVE_STRING }), - ...(obj.FirstName && { FirstName: SENSITIVE_STRING }), - ...(obj.MiddleName && { MiddleName: SENSITIVE_STRING }), - ...(obj.LastName && { LastName: SENSITIVE_STRING }), - ...(obj.BirthDate && { BirthDate: SENSITIVE_STRING }), - ...(obj.Gender && { Gender: SENSITIVE_STRING }), - ...(obj.PhoneNumber && { PhoneNumber: SENSITIVE_STRING }), - ...(obj.MobilePhoneNumber && { MobilePhoneNumber: SENSITIVE_STRING }), - ...(obj.HomePhoneNumber && { HomePhoneNumber: SENSITIVE_STRING }), - ...(obj.BusinessPhoneNumber && { BusinessPhoneNumber: SENSITIVE_STRING }), - ...(obj.EmailAddress && { EmailAddress: SENSITIVE_STRING }), - ...(obj.PersonalEmailAddress && { PersonalEmailAddress: SENSITIVE_STRING }), - ...(obj.BusinessEmailAddress && { BusinessEmailAddress: SENSITIVE_STRING }), - ...(obj.Address && { Address: SENSITIVE_STRING }), - ...(obj.ShippingAddress && { ShippingAddress: SENSITIVE_STRING }), - ...(obj.MailingAddress && { MailingAddress: SENSITIVE_STRING }), - ...(obj.BillingAddress && { BillingAddress: SENSITIVE_STRING }), - ...(obj.Attributes && { Attributes: SENSITIVE_STRING }), - ...(obj.PartyTypeString && { PartyTypeString: SENSITIVE_STRING }), - ...(obj.GenderString && { GenderString: SENSITIVE_STRING }), -}); - /** * @internal */ diff --git a/clients/client-customer-profiles/src/pagination/GetSimilarProfilesPaginator.ts b/clients/client-customer-profiles/src/pagination/GetSimilarProfilesPaginator.ts new file mode 100644 index 000000000000..f3101502703b --- /dev/null +++ b/clients/client-customer-profiles/src/pagination/GetSimilarProfilesPaginator.ts @@ -0,0 +1,24 @@ +// smithy-typescript generated code +import { createPaginator } from "@smithy/core"; +import { Paginator } from "@smithy/types"; + +import { + GetSimilarProfilesCommand, + GetSimilarProfilesCommandInput, + GetSimilarProfilesCommandOutput, +} from "../commands/GetSimilarProfilesCommand"; +import { CustomerProfilesClient } from "../CustomerProfilesClient"; +import { CustomerProfilesPaginationConfiguration } from "./Interfaces"; + +/** + * @public + */ +export const paginateGetSimilarProfiles: ( + config: CustomerProfilesPaginationConfiguration, + input: GetSimilarProfilesCommandInput, + ...rest: any[] +) => Paginator = createPaginator< + CustomerProfilesPaginationConfiguration, + GetSimilarProfilesCommandInput, + GetSimilarProfilesCommandOutput +>(CustomerProfilesClient, GetSimilarProfilesCommand, "NextToken", "NextToken", "MaxResults"); diff --git a/clients/client-customer-profiles/src/pagination/ListObjectTypeAttributesPaginator.ts b/clients/client-customer-profiles/src/pagination/ListObjectTypeAttributesPaginator.ts new file mode 100644 index 000000000000..98cd7bdf2627 --- /dev/null +++ b/clients/client-customer-profiles/src/pagination/ListObjectTypeAttributesPaginator.ts @@ -0,0 +1,24 @@ +// smithy-typescript generated code +import { createPaginator } from "@smithy/core"; +import { Paginator } from "@smithy/types"; + +import { + ListObjectTypeAttributesCommand, + ListObjectTypeAttributesCommandInput, + ListObjectTypeAttributesCommandOutput, +} from "../commands/ListObjectTypeAttributesCommand"; +import { CustomerProfilesClient } from "../CustomerProfilesClient"; +import { CustomerProfilesPaginationConfiguration } from "./Interfaces"; + +/** + * @public + */ +export const paginateListObjectTypeAttributes: ( + config: CustomerProfilesPaginationConfiguration, + input: ListObjectTypeAttributesCommandInput, + ...rest: any[] +) => Paginator = createPaginator< + CustomerProfilesPaginationConfiguration, + ListObjectTypeAttributesCommandInput, + ListObjectTypeAttributesCommandOutput +>(CustomerProfilesClient, ListObjectTypeAttributesCommand, "NextToken", "NextToken", "MaxResults"); diff --git a/clients/client-customer-profiles/src/pagination/ListRuleBasedMatchesPaginator.ts b/clients/client-customer-profiles/src/pagination/ListRuleBasedMatchesPaginator.ts new file mode 100644 index 000000000000..141a4935f736 --- /dev/null +++ b/clients/client-customer-profiles/src/pagination/ListRuleBasedMatchesPaginator.ts @@ -0,0 +1,24 @@ +// smithy-typescript generated code +import { createPaginator } from "@smithy/core"; +import { Paginator } from "@smithy/types"; + +import { + ListRuleBasedMatchesCommand, + ListRuleBasedMatchesCommandInput, + ListRuleBasedMatchesCommandOutput, +} from "../commands/ListRuleBasedMatchesCommand"; +import { CustomerProfilesClient } from "../CustomerProfilesClient"; +import { CustomerProfilesPaginationConfiguration } from "./Interfaces"; + +/** + * @public + */ +export const paginateListRuleBasedMatches: ( + config: CustomerProfilesPaginationConfiguration, + input: ListRuleBasedMatchesCommandInput, + ...rest: any[] +) => Paginator = createPaginator< + CustomerProfilesPaginationConfiguration, + ListRuleBasedMatchesCommandInput, + ListRuleBasedMatchesCommandOutput +>(CustomerProfilesClient, ListRuleBasedMatchesCommand, "NextToken", "NextToken", "MaxResults"); diff --git a/clients/client-customer-profiles/src/pagination/ListSegmentDefinitionsPaginator.ts b/clients/client-customer-profiles/src/pagination/ListSegmentDefinitionsPaginator.ts new file mode 100644 index 000000000000..aa56e6465561 --- /dev/null +++ b/clients/client-customer-profiles/src/pagination/ListSegmentDefinitionsPaginator.ts @@ -0,0 +1,24 @@ +// smithy-typescript generated code +import { createPaginator } from "@smithy/core"; +import { Paginator } from "@smithy/types"; + +import { + ListSegmentDefinitionsCommand, + ListSegmentDefinitionsCommandInput, + ListSegmentDefinitionsCommandOutput, +} from "../commands/ListSegmentDefinitionsCommand"; +import { CustomerProfilesClient } from "../CustomerProfilesClient"; +import { CustomerProfilesPaginationConfiguration } from "./Interfaces"; + +/** + * @public + */ +export const paginateListSegmentDefinitions: ( + config: CustomerProfilesPaginationConfiguration, + input: ListSegmentDefinitionsCommandInput, + ...rest: any[] +) => Paginator = createPaginator< + CustomerProfilesPaginationConfiguration, + ListSegmentDefinitionsCommandInput, + ListSegmentDefinitionsCommandOutput +>(CustomerProfilesClient, ListSegmentDefinitionsCommand, "NextToken", "NextToken", "MaxResults"); diff --git a/clients/client-customer-profiles/src/pagination/index.ts b/clients/client-customer-profiles/src/pagination/index.ts index f58a4be7ba12..c1400ec33e80 100644 --- a/clients/client-customer-profiles/src/pagination/index.ts +++ b/clients/client-customer-profiles/src/pagination/index.ts @@ -1,3 +1,7 @@ +export * from "./GetSimilarProfilesPaginator"; // smithy-typescript generated code export * from "./Interfaces"; export * from "./ListEventStreamsPaginator"; +export * from "./ListObjectTypeAttributesPaginator"; +export * from "./ListRuleBasedMatchesPaginator"; +export * from "./ListSegmentDefinitionsPaginator"; diff --git a/clients/client-customer-profiles/src/protocols/Aws_restJson1.ts b/clients/client-customer-profiles/src/protocols/Aws_restJson1.ts index 2bdbd2d69e7d..b46a40a429a2 100644 --- a/clients/client-customer-profiles/src/protocols/Aws_restJson1.ts +++ b/clients/client-customer-profiles/src/protocols/Aws_restJson1.ts @@ -1,5 +1,10 @@ // smithy-typescript generated code -import { loadRestJsonErrorCode, parseJsonBody as parseBody, parseJsonErrorBody as parseErrorBody } from "@aws-sdk/core"; +import { + awsExpectUnion as __expectUnion, + loadRestJsonErrorCode, + parseJsonBody as parseBody, + parseJsonErrorBody as parseErrorBody, +} from "@aws-sdk/core"; import { requestBuilder as rb } from "@smithy/core"; import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@smithy/protocol-http"; import { @@ -29,6 +34,11 @@ import { } from "@smithy/types"; import { AddProfileKeyCommandInput, AddProfileKeyCommandOutput } from "../commands/AddProfileKeyCommand"; +import { + BatchGetCalculatedAttributeForProfileCommandInput, + BatchGetCalculatedAttributeForProfileCommandOutput, +} from "../commands/BatchGetCalculatedAttributeForProfileCommand"; +import { BatchGetProfileCommandInput, BatchGetProfileCommandOutput } from "../commands/BatchGetProfileCommand"; import { CreateCalculatedAttributeDefinitionCommandInput, CreateCalculatedAttributeDefinitionCommandOutput, @@ -40,6 +50,18 @@ import { CreateIntegrationWorkflowCommandOutput, } from "../commands/CreateIntegrationWorkflowCommand"; import { CreateProfileCommandInput, CreateProfileCommandOutput } from "../commands/CreateProfileCommand"; +import { + CreateSegmentDefinitionCommandInput, + CreateSegmentDefinitionCommandOutput, +} from "../commands/CreateSegmentDefinitionCommand"; +import { + CreateSegmentEstimateCommandInput, + CreateSegmentEstimateCommandOutput, +} from "../commands/CreateSegmentEstimateCommand"; +import { + CreateSegmentSnapshotCommandInput, + CreateSegmentSnapshotCommandOutput, +} from "../commands/CreateSegmentSnapshotCommand"; import { DeleteCalculatedAttributeDefinitionCommandInput, DeleteCalculatedAttributeDefinitionCommandOutput, @@ -57,6 +79,10 @@ import { DeleteProfileObjectTypeCommandInput, DeleteProfileObjectTypeCommandOutput, } from "../commands/DeleteProfileObjectTypeCommand"; +import { + DeleteSegmentDefinitionCommandInput, + DeleteSegmentDefinitionCommandOutput, +} from "../commands/DeleteSegmentDefinitionCommand"; import { DeleteWorkflowCommandInput, DeleteWorkflowCommandOutput } from "../commands/DeleteWorkflowCommand"; import { DetectProfileObjectTypeCommandInput, @@ -90,6 +116,16 @@ import { GetProfileObjectTypeTemplateCommandInput, GetProfileObjectTypeTemplateCommandOutput, } from "../commands/GetProfileObjectTypeTemplateCommand"; +import { + GetSegmentDefinitionCommandInput, + GetSegmentDefinitionCommandOutput, +} from "../commands/GetSegmentDefinitionCommand"; +import { GetSegmentEstimateCommandInput, GetSegmentEstimateCommandOutput } from "../commands/GetSegmentEstimateCommand"; +import { + GetSegmentMembershipCommandInput, + GetSegmentMembershipCommandOutput, +} from "../commands/GetSegmentMembershipCommand"; +import { GetSegmentSnapshotCommandInput, GetSegmentSnapshotCommandOutput } from "../commands/GetSegmentSnapshotCommand"; import { GetSimilarProfilesCommandInput, GetSimilarProfilesCommandOutput } from "../commands/GetSimilarProfilesCommand"; import { GetWorkflowCommandInput, GetWorkflowCommandOutput } from "../commands/GetWorkflowCommand"; import { GetWorkflowStepsCommandInput, GetWorkflowStepsCommandOutput } from "../commands/GetWorkflowStepsCommand"; @@ -112,6 +148,14 @@ import { ListIdentityResolutionJobsCommandOutput, } from "../commands/ListIdentityResolutionJobsCommand"; import { ListIntegrationsCommandInput, ListIntegrationsCommandOutput } from "../commands/ListIntegrationsCommand"; +import { + ListObjectTypeAttributesCommandInput, + ListObjectTypeAttributesCommandOutput, +} from "../commands/ListObjectTypeAttributesCommand"; +import { + ListProfileAttributeValuesCommandInput, + ListProfileAttributeValuesCommandOutput, +} from "../commands/ListProfileAttributeValuesCommand"; import { ListProfileObjectsCommandInput, ListProfileObjectsCommandOutput } from "../commands/ListProfileObjectsCommand"; import { ListProfileObjectTypesCommandInput, @@ -125,6 +169,10 @@ import { ListRuleBasedMatchesCommandInput, ListRuleBasedMatchesCommandOutput, } from "../commands/ListRuleBasedMatchesCommand"; +import { + ListSegmentDefinitionsCommandInput, + ListSegmentDefinitionsCommandOutput, +} from "../commands/ListSegmentDefinitionsCommand"; import { ListTagsForResourceCommandInput, ListTagsForResourceCommandOutput, @@ -151,24 +199,36 @@ import { AccessDeniedException, AdditionalSearchKey, Address, + AddressDimension, AppflowIntegration, AppflowIntegrationWorkflowStep, AttributeDetails, + AttributeDimension, AttributeItem, AttributeTypesSelector, AutoMerging, BadRequestException, Batch, + CalculatedAttributeDimension, + ConditionOverrides, Conditions, ConflictResolution, ConnectorOperator, Consolidation, + DateDimension, DestinationSummary, + Dimension, EventStreamDestinationDetails, EventStreamSummary, ExportingConfig, + ExtraLengthValueProfileDimension, FieldSourceProfileIds, + Filter, + FilterAttributeDimension, + FilterDimension, + FilterGroup, FlowDefinition, + Group, IdentityResolutionJob, IncrementalPullConfig, IntegrationConfig, @@ -177,6 +237,7 @@ import { ListCalculatedAttributeDefinitionItem, ListDomainItem, ListIntegrationItem, + ListObjectTypeAttributeItem, ListProfileObjectTypeItem, ListWorkflowsItem, MarketoSourceProperties, @@ -188,16 +249,25 @@ import { ObjectTypeField, ObjectTypeKey, OperatorPropertiesKeys, + ProfileAttributes, + ProfileDimension, + ProfileQueryFailures, + ProfileQueryResult, Range, + RangeOverride, ResourceNotFoundException, RuleBasedMatchingRequest, S3ExportingConfig, S3SourceProperties, SalesforceSourceProperties, ScheduledTriggerProperties, + SegmentDefinitionItem, + SegmentGroup, + SegmentGroupStructure, ServiceNowSourceProperties, SourceConnectorProperties, SourceFlowConfig, + SourceSegment, StandardIdentifier, Task, Threshold, @@ -234,6 +304,54 @@ export const se_AddProfileKeyCommand = async ( return b.build(); }; +/** + * serializeAws_restJson1BatchGetCalculatedAttributeForProfileCommand + */ +export const se_BatchGetCalculatedAttributeForProfileCommand = async ( + input: BatchGetCalculatedAttributeForProfileCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const b = rb(input, context); + const headers: any = { + "content-type": "application/json", + }; + b.bp("/domains/{DomainName}/calculated-attributes/{CalculatedAttributeName}/batch-get-for-profiles"); + b.p("CalculatedAttributeName", () => input.CalculatedAttributeName!, "{CalculatedAttributeName}", false); + b.p("DomainName", () => input.DomainName!, "{DomainName}", false); + let body: any; + body = JSON.stringify( + take(input, { + ConditionOverrides: (_) => _json(_), + ProfileIds: (_) => _json(_), + }) + ); + b.m("POST").h(headers).b(body); + return b.build(); +}; + +/** + * serializeAws_restJson1BatchGetProfileCommand + */ +export const se_BatchGetProfileCommand = async ( + input: BatchGetProfileCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const b = rb(input, context); + const headers: any = { + "content-type": "application/json", + }; + b.bp("/domains/{DomainName}/batch-get-profiles"); + b.p("DomainName", () => input.DomainName!, "{DomainName}", false); + let body: any; + body = JSON.stringify( + take(input, { + ProfileIds: (_) => _json(_), + }) + ); + b.m("POST").h(headers).b(body); + return b.build(); +}; + /** * serializeAws_restJson1CreateCalculatedAttributeDefinitionCommand */ @@ -255,6 +373,7 @@ export const se_CreateCalculatedAttributeDefinitionCommand = async ( Conditions: (_) => _json(_), Description: [], DisplayName: [], + Filter: (_) => _json(_), Statistic: [], Tags: (_) => _json(_), }) @@ -388,6 +507,83 @@ export const se_CreateProfileCommand = async ( return b.build(); }; +/** + * serializeAws_restJson1CreateSegmentDefinitionCommand + */ +export const se_CreateSegmentDefinitionCommand = async ( + input: CreateSegmentDefinitionCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const b = rb(input, context); + const headers: any = { + "content-type": "application/json", + }; + b.bp("/domains/{DomainName}/segment-definitions/{SegmentDefinitionName}"); + b.p("DomainName", () => input.DomainName!, "{DomainName}", false); + b.p("SegmentDefinitionName", () => input.SegmentDefinitionName!, "{SegmentDefinitionName}", false); + let body: any; + body = JSON.stringify( + take(input, { + Description: [], + DisplayName: [], + SegmentGroups: (_) => se_SegmentGroup(_, context), + Tags: (_) => _json(_), + }) + ); + b.m("POST").h(headers).b(body); + return b.build(); +}; + +/** + * serializeAws_restJson1CreateSegmentEstimateCommand + */ +export const se_CreateSegmentEstimateCommand = async ( + input: CreateSegmentEstimateCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const b = rb(input, context); + const headers: any = { + "content-type": "application/json", + }; + b.bp("/domains/{DomainName}/segment-estimates"); + b.p("DomainName", () => input.DomainName!, "{DomainName}", false); + let body: any; + body = JSON.stringify( + take(input, { + SegmentQuery: (_) => se_SegmentGroupStructure(_, context), + }) + ); + b.m("POST").h(headers).b(body); + return b.build(); +}; + +/** + * serializeAws_restJson1CreateSegmentSnapshotCommand + */ +export const se_CreateSegmentSnapshotCommand = async ( + input: CreateSegmentSnapshotCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const b = rb(input, context); + const headers: any = { + "content-type": "application/json", + }; + b.bp("/domains/{DomainName}/segments/{SegmentDefinitionName}/snapshots"); + b.p("DomainName", () => input.DomainName!, "{DomainName}", false); + b.p("SegmentDefinitionName", () => input.SegmentDefinitionName!, "{SegmentDefinitionName}", false); + let body: any; + body = JSON.stringify( + take(input, { + DataFormat: [], + DestinationUri: [], + EncryptionKey: [], + RoleArn: [], + }) + ); + b.m("POST").h(headers).b(body); + return b.build(); +}; + /** * serializeAws_restJson1DeleteCalculatedAttributeDefinitionCommand */ @@ -551,6 +747,23 @@ export const se_DeleteProfileObjectTypeCommand = async ( return b.build(); }; +/** + * serializeAws_restJson1DeleteSegmentDefinitionCommand + */ +export const se_DeleteSegmentDefinitionCommand = async ( + input: DeleteSegmentDefinitionCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const b = rb(input, context); + const headers: any = {}; + b.bp("/domains/{DomainName}/segment-definitions/{SegmentDefinitionName}"); + b.p("DomainName", () => input.DomainName!, "{DomainName}", false); + b.p("SegmentDefinitionName", () => input.SegmentDefinitionName!, "{SegmentDefinitionName}", false); + let body: any; + b.m("DELETE").h(headers).b(body); + return b.build(); +}; + /** * serializeAws_restJson1DeleteWorkflowCommand */ @@ -777,6 +990,82 @@ export const se_GetProfileObjectTypeTemplateCommand = async ( return b.build(); }; +/** + * serializeAws_restJson1GetSegmentDefinitionCommand + */ +export const se_GetSegmentDefinitionCommand = async ( + input: GetSegmentDefinitionCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const b = rb(input, context); + const headers: any = {}; + b.bp("/domains/{DomainName}/segment-definitions/{SegmentDefinitionName}"); + b.p("DomainName", () => input.DomainName!, "{DomainName}", false); + b.p("SegmentDefinitionName", () => input.SegmentDefinitionName!, "{SegmentDefinitionName}", false); + let body: any; + b.m("GET").h(headers).b(body); + return b.build(); +}; + +/** + * serializeAws_restJson1GetSegmentEstimateCommand + */ +export const se_GetSegmentEstimateCommand = async ( + input: GetSegmentEstimateCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const b = rb(input, context); + const headers: any = {}; + b.bp("/domains/{DomainName}/segment-estimates/{EstimateId}"); + b.p("DomainName", () => input.DomainName!, "{DomainName}", false); + b.p("EstimateId", () => input.EstimateId!, "{EstimateId}", false); + let body: any; + b.m("GET").h(headers).b(body); + return b.build(); +}; + +/** + * serializeAws_restJson1GetSegmentMembershipCommand + */ +export const se_GetSegmentMembershipCommand = async ( + input: GetSegmentMembershipCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const b = rb(input, context); + const headers: any = { + "content-type": "application/json", + }; + b.bp("/domains/{DomainName}/segments/{SegmentDefinitionName}/membership"); + b.p("DomainName", () => input.DomainName!, "{DomainName}", false); + b.p("SegmentDefinitionName", () => input.SegmentDefinitionName!, "{SegmentDefinitionName}", false); + let body: any; + body = JSON.stringify( + take(input, { + ProfileIds: [, (_) => _json(_), `ProfileIds`], + }) + ); + b.m("POST").h(headers).b(body); + return b.build(); +}; + +/** + * serializeAws_restJson1GetSegmentSnapshotCommand + */ +export const se_GetSegmentSnapshotCommand = async ( + input: GetSegmentSnapshotCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const b = rb(input, context); + const headers: any = {}; + b.bp("/domains/{DomainName}/segments/{SegmentDefinitionName}/snapshots/{SnapshotId}"); + b.p("DomainName", () => input.DomainName!, "{DomainName}", false); + b.p("SegmentDefinitionName", () => input.SegmentDefinitionName!, "{SegmentDefinitionName}", false); + b.p("SnapshotId", () => input.SnapshotId!, "{SnapshotId}", false); + let body: any; + b.m("GET").h(headers).b(body); + return b.build(); +}; + /** * serializeAws_restJson1GetSimilarProfilesCommand */ @@ -992,6 +1281,44 @@ export const se_ListIntegrationsCommand = async ( return b.build(); }; +/** + * serializeAws_restJson1ListObjectTypeAttributesCommand + */ +export const se_ListObjectTypeAttributesCommand = async ( + input: ListObjectTypeAttributesCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const b = rb(input, context); + const headers: any = {}; + b.bp("/domains/{DomainName}/object-types/{ObjectTypeName}/attributes"); + b.p("DomainName", () => input.DomainName!, "{DomainName}", false); + b.p("ObjectTypeName", () => input.ObjectTypeName!, "{ObjectTypeName}", false); + const query: any = map({ + [_nt]: [, input[_NT]!], + [_mr]: [() => input.MaxResults !== void 0, () => input[_MR]!.toString()], + }); + let body: any; + b.m("GET").h(headers).q(query).b(body); + return b.build(); +}; + +/** + * serializeAws_restJson1ListProfileAttributeValuesCommand + */ +export const se_ListProfileAttributeValuesCommand = async ( + input: ListProfileAttributeValuesCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const b = rb(input, context); + const headers: any = {}; + b.bp("/domains/{DomainName}/profile-attributes/{AttributeName}/values"); + b.p("DomainName", () => input.DomainName!, "{DomainName}", false); + b.p("AttributeName", () => input.AttributeName!, "{AttributeName}", false); + let body: any; + b.m("GET").h(headers).b(body); + return b.build(); +}; + /** * serializeAws_restJson1ListProfileObjectsCommand */ @@ -1080,6 +1407,26 @@ export const se_ListRuleBasedMatchesCommand = async ( return b.build(); }; +/** + * serializeAws_restJson1ListSegmentDefinitionsCommand + */ +export const se_ListSegmentDefinitionsCommand = async ( + input: ListSegmentDefinitionsCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const b = rb(input, context); + const headers: any = {}; + b.bp("/domains/{DomainName}/segment-definitions"); + b.p("DomainName", () => input.DomainName!, "{DomainName}", false); + const query: any = map({ + [_mr]: [() => input.MaxResults !== void 0, () => input[_MR]!.toString()], + [_nt]: [, input[_NT]!], + }); + let body: any; + b.m("GET").h(headers).q(query).b(body); + return b.build(); +}; + /** * serializeAws_restJson1ListTagsForResourceCommand */ @@ -1430,6 +1777,51 @@ export const de_AddProfileKeyCommand = async ( return contents; }; +/** + * deserializeAws_restJson1BatchGetCalculatedAttributeForProfileCommand + */ +export const de_BatchGetCalculatedAttributeForProfileCommand = 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, { + CalculatedAttributeValues: _json, + ConditionOverrides: _json, + Errors: _json, + }); + Object.assign(contents, doc); + return contents; +}; + +/** + * deserializeAws_restJson1BatchGetProfileCommand + */ +export const de_BatchGetProfileCommand = 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, + Profiles: _json, + }); + Object.assign(contents, doc); + return contents; +}; + /** * deserializeAws_restJson1CreateCalculatedAttributeDefinitionCommand */ @@ -1451,6 +1843,7 @@ export const de_CreateCalculatedAttributeDefinitionCommand = async ( CreatedAt: (_) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))), Description: __expectString, DisplayName: __expectString, + Filter: _json, LastUpdatedAt: (_) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))), Statistic: __expectString, Tags: _json, @@ -1554,19 +1947,91 @@ export const de_CreateProfileCommand = async ( }; /** - * deserializeAws_restJson1DeleteCalculatedAttributeDefinitionCommand + * deserializeAws_restJson1CreateSegmentDefinitionCommand */ -export const de_DeleteCalculatedAttributeDefinitionCommand = async ( +export const de_CreateSegmentDefinitionCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): 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); + const data: Record = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); + const doc = take(data, { + CreatedAt: [, (_) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))), `CreatedAt`], + Description: [, __expectString, `Description`], + DisplayName: [, __expectString, `DisplayName`], + SegmentDefinitionArn: [, __expectString, `SegmentDefinitionArn`], + SegmentDefinitionName: [, __expectString, `SegmentDefinitionName`], + Tags: [, _json, `Tags`], + }); + Object.assign(contents, doc); + return contents; +}; + +/** + * deserializeAws_restJson1CreateSegmentEstimateCommand + */ +export const de_CreateSegmentEstimateCommand = 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, { + DomainName: __expectString, + EstimateId: __expectString, + }); + Object.assign(contents, doc); + map(contents, { + StatusCode: [, output.statusCode], + }); + return contents; +}; + +/** + * deserializeAws_restJson1CreateSegmentSnapshotCommand + */ +export const de_CreateSegmentSnapshotCommand = 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, { + SnapshotId: __expectString, + }); + Object.assign(contents, doc); + return contents; +}; + +/** + * deserializeAws_restJson1DeleteCalculatedAttributeDefinitionCommand + */ +export const de_DeleteCalculatedAttributeDefinitionCommand = 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; }; @@ -1713,6 +2178,27 @@ export const de_DeleteProfileObjectTypeCommand = async ( return contents; }; +/** + * deserializeAws_restJson1DeleteSegmentDefinitionCommand + */ +export const de_DeleteSegmentDefinitionCommand = 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, { + Message: [, __expectString, `Message`], + }); + Object.assign(contents, doc); + return contents; +}; + /** * deserializeAws_restJson1DeleteWorkflowCommand */ @@ -1796,6 +2282,7 @@ export const de_GetCalculatedAttributeDefinitionCommand = async ( CreatedAt: (_) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))), Description: __expectString, DisplayName: __expectString, + Filter: _json, LastUpdatedAt: (_) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))), Statistic: __expectString, Tags: _json, @@ -2031,6 +2518,111 @@ export const de_GetProfileObjectTypeTemplateCommand = async ( return contents; }; +/** + * deserializeAws_restJson1GetSegmentDefinitionCommand + */ +export const de_GetSegmentDefinitionCommand = 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, { + CreatedAt: [, (_) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))), `CreatedAt`], + Description: [, __expectString, `Description`], + DisplayName: [, __expectString, `DisplayName`], + SegmentDefinitionArn: [, __expectString, `SegmentDefinitionArn`], + SegmentDefinitionName: [, __expectString, `SegmentDefinitionName`], + SegmentGroups: [, (_) => de_SegmentGroup(_, context), `SegmentGroups`], + Tags: [, _json, `Tags`], + }); + Object.assign(contents, doc); + return contents; +}; + +/** + * deserializeAws_restJson1GetSegmentEstimateCommand + */ +export const de_GetSegmentEstimateCommand = 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, { + DomainName: __expectString, + Estimate: __expectString, + EstimateId: __expectString, + Message: __expectString, + Status: __expectString, + }); + Object.assign(contents, doc); + map(contents, { + StatusCode: [, output.statusCode], + }); + return contents; +}; + +/** + * deserializeAws_restJson1GetSegmentMembershipCommand + */ +export const de_GetSegmentMembershipCommand = 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, { + Failures: [, (_) => de_Failures(_, context), `Failures`], + Profiles: [, (_) => de_Profiles(_, context), `Profiles`], + SegmentDefinitionName: [, __expectString, `SegmentDefinitionName`], + }); + Object.assign(contents, doc); + return contents; +}; + +/** + * deserializeAws_restJson1GetSegmentSnapshotCommand + */ +export const de_GetSegmentSnapshotCommand = 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, { + DataFormat: __expectString, + DestinationUri: __expectString, + EncryptionKey: __expectString, + RoleArn: __expectString, + SnapshotId: __expectString, + Status: __expectString, + StatusMessage: __expectString, + }); + Object.assign(contents, doc); + return contents; +}; + /** * deserializeAws_restJson1GetSimilarProfilesCommand */ @@ -2263,6 +2855,54 @@ export const de_ListIntegrationsCommand = async ( return contents; }; +/** + * deserializeAws_restJson1ListObjectTypeAttributesCommand + */ +export const de_ListObjectTypeAttributesCommand = 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, { + Items: (_) => de_ListObjectTypeAttributesList(_, context), + NextToken: __expectString, + }); + Object.assign(contents, doc); + return contents; +}; + +/** + * deserializeAws_restJson1ListProfileAttributeValuesCommand + */ +export const de_ListProfileAttributeValuesCommand = 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, { + AttributeName: __expectString, + DomainName: __expectString, + Items: _json, + }); + Object.assign(contents, doc); + map(contents, { + StatusCode: [, output.statusCode], + }); + return contents; +}; + /** * deserializeAws_restJson1ListProfileObjectsCommand */ @@ -2351,6 +2991,28 @@ export const de_ListRuleBasedMatchesCommand = async ( return contents; }; +/** + * deserializeAws_restJson1ListSegmentDefinitionsCommand + */ +export const de_ListSegmentDefinitionsCommand = 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, { + Items: [, (_) => de_SegmentDefinitionsList(_, context), `Items`], + NextToken: [, __expectString, `NextToken`], + }); + Object.assign(contents, doc); + return contents; +}; + /** * deserializeAws_restJson1ListTagsForResourceCommand */ @@ -2771,6 +3433,20 @@ const de_ThrottlingExceptionRes = async (parsedOutput: any, context: __SerdeCont // se_Address omitted. +/** + * serializeAws_restJson1AddressDimension + */ +const se_AddressDimension = (input: AddressDimension, context: __SerdeContext): any => { + return take(input, { + City: [, (_) => se_ProfileDimension(_, context), `City`], + Country: [, (_) => se_ProfileDimension(_, context), `Country`], + County: [, (_) => se_ProfileDimension(_, context), `County`], + PostalCode: [, (_) => se_ProfileDimension(_, context), `PostalCode`], + Province: [, (_) => se_ProfileDimension(_, context), `Province`], + State: [, (_) => se_ProfileDimension(_, context), `State`], + }); +}; + // se_AddressList omitted. /** @@ -2785,10 +3461,22 @@ const se_AppflowIntegration = (input: AppflowIntegration, context: __SerdeContex // se_AttributeDetails omitted. +/** + * serializeAws_restJson1AttributeDimension + */ +const se_AttributeDimension = (input: AttributeDimension, context: __SerdeContext): any => { + return take(input, { + DimensionType: [, , `DimensionType`], + Values: [, _json, `Values`], + }); +}; + // se_AttributeItem omitted. // se_AttributeList omitted. +// se_AttributeMap omitted. + // se_Attributes omitted. // se_AttributeSourceIdMap omitted. @@ -2828,6 +3516,39 @@ const se_Batches = (input: Batch[], context: __SerdeContext): any => { }); }; +// se_BatchGetCalculatedAttributeForProfileIdList omitted. + +// se_BatchGetProfileIdList omitted. + +/** + * serializeAws_restJson1CalculatedAttributeDimension + */ +const se_CalculatedAttributeDimension = (input: CalculatedAttributeDimension, context: __SerdeContext): any => { + return take(input, { + ConditionOverrides: [, _json, `ConditionOverrides`], + DimensionType: [, , `DimensionType`], + Values: [, _json, `Values`], + }); +}; + +/** + * serializeAws_restJson1CalculatedCustomAttributes + */ +const se_CalculatedCustomAttributes = ( + input: Record, + context: __SerdeContext +): any => { + return Object.entries(input).reduce((acc: Record, [key, value]: [string, any]) => { + if (value === null) { + return acc; + } + acc[key] = se_CalculatedAttributeDimension(value, context); + return acc; + }, {}); +}; + +// se_ConditionOverrides omitted. + // se_Conditions omitted. // se_ConflictResolution omitted. @@ -2836,16 +3557,85 @@ const se_Batches = (input: Batch[], context: __SerdeContext): any => { // se_Consolidation omitted. +/** + * serializeAws_restJson1CustomAttributes + */ +const se_CustomAttributes = (input: Record, context: __SerdeContext): any => { + return Object.entries(input).reduce((acc: Record, [key, value]: [string, any]) => { + if (value === null) { + return acc; + } + acc[key] = se_AttributeDimension(value, context); + return acc; + }, {}); +}; + +/** + * serializeAws_restJson1DateDimension + */ +const se_DateDimension = (input: DateDimension, context: __SerdeContext): any => { + return take(input, { + DimensionType: [, , `DimensionType`], + Values: [, _json, `Values`], + }); +}; + +// se_DateValues omitted. + +/** + * serializeAws_restJson1Dimension + */ +const se_Dimension = (input: Dimension, context: __SerdeContext): any => { + return Dimension.visit(input, { + CalculatedAttributes: (value) => ({ CalculatedAttributes: se_CalculatedCustomAttributes(value, context) }), + ProfileAttributes: (value) => ({ ProfileAttributes: se_ProfileAttributes(value, context) }), + _: (name, value) => ({ name: value } as any), + }); +}; + +/** + * serializeAws_restJson1DimensionList + */ +const se_DimensionList = (input: Dimension[], context: __SerdeContext): any => { + return input + .filter((e: any) => e != null) + .map((entry) => { + return se_Dimension(entry, context); + }); +}; + // se_EmailList omitted. // se_ExportingConfig omitted. +/** + * serializeAws_restJson1ExtraLengthValueProfileDimension + */ +const se_ExtraLengthValueProfileDimension = (input: ExtraLengthValueProfileDimension, context: __SerdeContext): any => { + return take(input, { + DimensionType: [, , `DimensionType`], + Values: [, _json, `Values`], + }); +}; + +// se_ExtraLengthValues omitted. + // se_FieldMap omitted. // se_FieldNameList omitted. // se_FieldSourceProfileIds omitted. +// se_Filter omitted. + +// se_FilterAttributeDimension omitted. + +// se_FilterDimension omitted. + +// se_FilterDimensionList omitted. + +// se_FilterGroup omitted. + /** * serializeAws_restJson1FlowDefinition */ @@ -2860,6 +3650,20 @@ const se_FlowDefinition = (input: FlowDefinition, context: __SerdeContext): any }); }; +/** + * serializeAws_restJson1Group + */ +const se_Group = (input: Group, context: __SerdeContext): any => { + return take(input, { + Dimensions: [, (_) => se_DimensionList(_, context), `Dimensions`], + SourceSegments: [, (_) => se_SourceSegmentList(_, context), `SourceSegments`], + SourceType: [, , `SourceType`], + Type: [, , `Type`], + }); +}; + +// se_GroupList omitted. + // se_IncrementalPullConfig omitted. /** @@ -2913,10 +3717,53 @@ const se_MatchingRequest = (input: MatchingRequest, context: __SerdeContext): an // se_PhoneNumberList omitted. +/** + * serializeAws_restJson1ProfileAttributes + */ +const se_ProfileAttributes = (input: ProfileAttributes, context: __SerdeContext): any => { + return take(input, { + AccountNumber: [, (_) => se_ProfileDimension(_, context), `AccountNumber`], + AdditionalInformation: [, (_) => se_ExtraLengthValueProfileDimension(_, context), `AdditionalInformation`], + Address: [, (_) => se_AddressDimension(_, context), `Address`], + Attributes: [, (_) => se_CustomAttributes(_, context), `Attributes`], + BillingAddress: [, (_) => se_AddressDimension(_, context), `BillingAddress`], + BirthDate: [, (_) => se_DateDimension(_, context), `BirthDate`], + BusinessEmailAddress: [, (_) => se_ProfileDimension(_, context), `BusinessEmailAddress`], + BusinessName: [, (_) => se_ProfileDimension(_, context), `BusinessName`], + BusinessPhoneNumber: [, (_) => se_ProfileDimension(_, context), `BusinessPhoneNumber`], + EmailAddress: [, (_) => se_ProfileDimension(_, context), `EmailAddress`], + FirstName: [, (_) => se_ProfileDimension(_, context), `FirstName`], + GenderString: [, (_) => se_ProfileDimension(_, context), `GenderString`], + HomePhoneNumber: [, (_) => se_ProfileDimension(_, context), `HomePhoneNumber`], + LastName: [, (_) => se_ProfileDimension(_, context), `LastName`], + MailingAddress: [, (_) => se_AddressDimension(_, context), `MailingAddress`], + MiddleName: [, (_) => se_ProfileDimension(_, context), `MiddleName`], + MobilePhoneNumber: [, (_) => se_ProfileDimension(_, context), `MobilePhoneNumber`], + PartyTypeString: [, (_) => se_ProfileDimension(_, context), `PartyTypeString`], + PersonalEmailAddress: [, (_) => se_ProfileDimension(_, context), `PersonalEmailAddress`], + PhoneNumber: [, (_) => se_ProfileDimension(_, context), `PhoneNumber`], + ShippingAddress: [, (_) => se_AddressDimension(_, context), `ShippingAddress`], + }); +}; + +/** + * serializeAws_restJson1ProfileDimension + */ +const se_ProfileDimension = (input: ProfileDimension, context: __SerdeContext): any => { + return take(input, { + DimensionType: [, , `DimensionType`], + Values: [, _json, `Values`], + }); +}; + +// se_ProfileIds omitted. + // se_ProfileIdToBeMergedList omitted. // se_Range omitted. +// se_RangeOverride omitted. + // se_requestValueList omitted. // se_RuleBasedMatchingRequest omitted. @@ -2942,6 +3789,37 @@ const se_ScheduledTriggerProperties = (input: ScheduledTriggerProperties, contex }); }; +/** + * serializeAws_restJson1SegmentGroup + */ +const se_SegmentGroup = (input: SegmentGroup, context: __SerdeContext): any => { + return take(input, { + Groups: [, (_) => se_SegmentGroupList(_, context), `Groups`], + Include: [, , `Include`], + }); +}; + +/** + * serializeAws_restJson1SegmentGroupList + */ +const se_SegmentGroupList = (input: Group[], context: __SerdeContext): any => { + return input + .filter((e: any) => e != null) + .map((entry) => { + return se_Group(entry, context); + }); +}; + +/** + * serializeAws_restJson1SegmentGroupStructure + */ +const se_SegmentGroupStructure = (input: SegmentGroupStructure, context: __SerdeContext): any => { + return take(input, { + Groups: (_) => se_SegmentGroupList(_, context), + Include: [], + }); +}; + // se_ServiceNowSourceProperties omitted. // se_SourceConnectorProperties omitted. @@ -2950,6 +3828,26 @@ const se_ScheduledTriggerProperties = (input: ScheduledTriggerProperties, contex // se_SourceFlowConfig omitted. +/** + * serializeAws_restJson1SourceSegment + */ +const se_SourceSegment = (input: SourceSegment, context: __SerdeContext): any => { + return take(input, { + SegmentDefinitionName: [, , `SegmentDefinitionName`], + }); +}; + +/** + * serializeAws_restJson1SourceSegmentList + */ +const se_SourceSegmentList = (input: SourceSegment[], context: __SerdeContext): any => { + return input + .filter((e: any) => e != null) + .map((entry) => { + return se_SourceSegment(entry, context); + }); +}; + // se_StandardIdentifierList omitted. // se_TagMap omitted. @@ -2985,10 +3883,28 @@ const se_TriggerProperties = (input: TriggerProperties, context: __SerdeContext) // se_UpdateAttributes omitted. +// se_ValueList omitted. + +// se_Values omitted. + // se_ZendeskSourceProperties omitted. // de_Address omitted. +/** + * deserializeAws_restJson1AddressDimension + */ +const de_AddressDimension = (output: any, context: __SerdeContext): AddressDimension => { + return take(output, { + City: [, (_: any) => de_ProfileDimension(_, context), `City`], + Country: [, (_: any) => de_ProfileDimension(_, context), `Country`], + County: [, (_: any) => de_ProfileDimension(_, context), `County`], + PostalCode: [, (_: any) => de_ProfileDimension(_, context), `PostalCode`], + Province: [, (_: any) => de_ProfileDimension(_, context), `Province`], + State: [, (_: any) => de_ProfileDimension(_, context), `State`], + }) as any; +}; + // de_AddressList omitted. // de_AppflowIntegrationWorkflowAttributes omitted. @@ -3013,14 +3929,30 @@ const de_AppflowIntegrationWorkflowStep = (output: any, context: __SerdeContext) // de_AttributeDetails omitted. +/** + * deserializeAws_restJson1AttributeDimension + */ +const de_AttributeDimension = (output: any, context: __SerdeContext): AttributeDimension => { + return take(output, { + DimensionType: [, __expectString, `DimensionType`], + Values: [, _json, `Values`], + }) as any; +}; + // de_AttributeItem omitted. // de_AttributeList omitted. +// de_AttributeMap omitted. + // de_Attributes omitted. // de_AttributeTypesSelector omitted. +// de_AttributeValueItem omitted. + +// de_AttributeValueItemList omitted. + /** * deserializeAws_restJson1AutoMerging */ @@ -3033,6 +3965,14 @@ const de_AutoMerging = (output: any, context: __SerdeContext): AutoMerging => { }) as any; }; +// de_BatchGetCalculatedAttributeForProfileError omitted. + +// de_BatchGetCalculatedAttributeForProfileErrorList omitted. + +// de_BatchGetProfileError omitted. + +// de_BatchGetProfileErrorList omitted. + /** * deserializeAws_restJson1CalculatedAttributeDefinitionsList */ @@ -3048,14 +3988,75 @@ const de_CalculatedAttributeDefinitionsList = ( return retVal; }; +/** + * deserializeAws_restJson1CalculatedAttributeDimension + */ +const de_CalculatedAttributeDimension = (output: any, context: __SerdeContext): CalculatedAttributeDimension => { + return take(output, { + ConditionOverrides: [, _json, `ConditionOverrides`], + DimensionType: [, __expectString, `DimensionType`], + Values: [, _json, `Values`], + }) as any; +}; + // de_CalculatedAttributesForProfileList omitted. +// de_CalculatedAttributeValue omitted. + +// de_CalculatedAttributeValueList omitted. + +/** + * deserializeAws_restJson1CalculatedCustomAttributes + */ +const de_CalculatedCustomAttributes = ( + output: any, + context: __SerdeContext +): Record => { + return Object.entries(output).reduce( + (acc: Record, [key, value]: [string, any]) => { + if (value === null) { + return acc; + } + acc[key as string] = de_CalculatedAttributeDimension(value, context); + return acc; + }, + {} as Record + ); +}; + +// de_ConditionOverrides omitted. + // de_Conditions omitted. // de_ConflictResolution omitted. // de_Consolidation omitted. +/** + * deserializeAws_restJson1CustomAttributes + */ +const de_CustomAttributes = (output: any, context: __SerdeContext): Record => { + return Object.entries(output).reduce((acc: Record, [key, value]: [string, any]) => { + if (value === null) { + return acc; + } + acc[key as string] = de_AttributeDimension(value, context); + return acc; + }, {} as Record); +}; + +/** + * deserializeAws_restJson1DateDimension + */ +const de_DateDimension = (output: any, context: __SerdeContext): DateDimension => { + return take(output, { + DimensionType: [, __expectString, `DimensionType`], + Values: [, _json, `Values`], + }) as any; +}; + +// de_DateValues omitted. + /** * deserializeAws_restJson1DestinationSummary */ @@ -3071,6 +4072,35 @@ const de_DestinationSummary = (output: any, context: __SerdeContext): Destinatio // de_DetectedProfileObjectTypes omitted. +/** + * deserializeAws_restJson1Dimension + */ +const de_Dimension = (output: any, context: __SerdeContext): Dimension => { + if (output.CalculatedAttributes != null) { + return { + CalculatedAttributes: de_CalculatedCustomAttributes(output.CalculatedAttributes, context), + }; + } + if (output.ProfileAttributes != null) { + return { + ProfileAttributes: de_ProfileAttributes(output.ProfileAttributes, context), + }; + } + return { $unknown: Object.entries(output)[0] }; +}; + +/** + * deserializeAws_restJson1DimensionList + */ +const de_DimensionList = (output: any, context: __SerdeContext): Dimension[] => { + const retVal = (output || []) + .filter((e: any) => e != null) + .map((entry: any) => { + return de_Dimension(__expectUnion(entry), context); + }); + return retVal; +}; + /** * deserializeAws_restJson1DomainList */ @@ -3130,14 +4160,65 @@ const de_EventStreamSummaryList = (output: any, context: __SerdeContext): EventS // de_ExportingLocation omitted. +/** + * deserializeAws_restJson1ExtraLengthValueProfileDimension + */ +const de_ExtraLengthValueProfileDimension = ( + output: any, + context: __SerdeContext +): ExtraLengthValueProfileDimension => { + return take(output, { + DimensionType: [, __expectString, `DimensionType`], + Values: [, _json, `Values`], + }) as any; +}; + +// de_ExtraLengthValues omitted. + +/** + * deserializeAws_restJson1Failures + */ +const de_Failures = (output: any, context: __SerdeContext): ProfileQueryFailures[] => { + const retVal = (output || []) + .filter((e: any) => e != null) + .map((entry: any) => { + return de_ProfileQueryFailures(entry, context); + }); + return retVal; +}; + // de_FieldMap omitted. // de_FieldNameList omitted. +// de_Filter omitted. + +// de_FilterAttributeDimension omitted. + +// de_FilterDimension omitted. + +// de_FilterDimensionList omitted. + +// de_FilterGroup omitted. + // de_FoundByKeyValue omitted. // de_foundByList omitted. +/** + * deserializeAws_restJson1Group + */ +const de_Group = (output: any, context: __SerdeContext): Group => { + return take(output, { + Dimensions: [, (_: any) => de_DimensionList(_, context), `Dimensions`], + SourceSegments: [, (_: any) => de_SourceSegmentList(_, context), `SourceSegments`], + SourceType: [, __expectString, `SourceType`], + Type: [, __expectString, `Type`], + }) as any; +}; + +// de_GroupList omitted. + /** * deserializeAws_restJson1IdentityResolutionJob */ @@ -3233,6 +4314,28 @@ const de_ListIntegrationItem = (output: any, context: __SerdeContext): ListInteg }) as any; }; +/** + * deserializeAws_restJson1ListObjectTypeAttributeItem + */ +const de_ListObjectTypeAttributeItem = (output: any, context: __SerdeContext): ListObjectTypeAttributeItem => { + return take(output, { + AttributeName: __expectString, + LastUpdatedAt: (_: any) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))), + }) as any; +}; + +/** + * deserializeAws_restJson1ListObjectTypeAttributesList + */ +const de_ListObjectTypeAttributesList = (output: any, context: __SerdeContext): ListObjectTypeAttributeItem[] => { + const retVal = (output || []) + .filter((e: any) => e != null) + .map((entry: any) => { + return de_ListObjectTypeAttributeItem(entry, context); + }); + return retVal; +}; + // de_ListProfileObjectsItem omitted. /** @@ -3325,6 +4428,45 @@ const de_MatchItem = (output: any, context: __SerdeContext): MatchItem => { // de_Profile omitted. +/** + * deserializeAws_restJson1ProfileAttributes + */ +const de_ProfileAttributes = (output: any, context: __SerdeContext): ProfileAttributes => { + return take(output, { + AccountNumber: [, (_: any) => de_ProfileDimension(_, context), `AccountNumber`], + AdditionalInformation: [, (_: any) => de_ExtraLengthValueProfileDimension(_, context), `AdditionalInformation`], + Address: [, (_: any) => de_AddressDimension(_, context), `Address`], + Attributes: [, (_: any) => de_CustomAttributes(_, context), `Attributes`], + BillingAddress: [, (_: any) => de_AddressDimension(_, context), `BillingAddress`], + BirthDate: [, (_: any) => de_DateDimension(_, context), `BirthDate`], + BusinessEmailAddress: [, (_: any) => de_ProfileDimension(_, context), `BusinessEmailAddress`], + BusinessName: [, (_: any) => de_ProfileDimension(_, context), `BusinessName`], + BusinessPhoneNumber: [, (_: any) => de_ProfileDimension(_, context), `BusinessPhoneNumber`], + EmailAddress: [, (_: any) => de_ProfileDimension(_, context), `EmailAddress`], + FirstName: [, (_: any) => de_ProfileDimension(_, context), `FirstName`], + GenderString: [, (_: any) => de_ProfileDimension(_, context), `GenderString`], + HomePhoneNumber: [, (_: any) => de_ProfileDimension(_, context), `HomePhoneNumber`], + LastName: [, (_: any) => de_ProfileDimension(_, context), `LastName`], + MailingAddress: [, (_: any) => de_AddressDimension(_, context), `MailingAddress`], + MiddleName: [, (_: any) => de_ProfileDimension(_, context), `MiddleName`], + MobilePhoneNumber: [, (_: any) => de_ProfileDimension(_, context), `MobilePhoneNumber`], + PartyTypeString: [, (_: any) => de_ProfileDimension(_, context), `PartyTypeString`], + PersonalEmailAddress: [, (_: any) => de_ProfileDimension(_, context), `PersonalEmailAddress`], + PhoneNumber: [, (_: any) => de_ProfileDimension(_, context), `PhoneNumber`], + ShippingAddress: [, (_: any) => de_AddressDimension(_, context), `ShippingAddress`], + }) as any; +}; + +/** + * deserializeAws_restJson1ProfileDimension + */ +const de_ProfileDimension = (output: any, context: __SerdeContext): ProfileDimension => { + return take(output, { + DimensionType: [, __expectString, `DimensionType`], + Values: [, _json, `Values`], + }) as any; +}; + // de_ProfileIdList omitted. // de_ProfileList omitted. @@ -3345,8 +4487,44 @@ const de_ProfileObjectTypeList = (output: any, context: __SerdeContext): ListPro // de_ProfileObjectTypeTemplateList omitted. +/** + * deserializeAws_restJson1ProfileQueryFailures + */ +const de_ProfileQueryFailures = (output: any, context: __SerdeContext): ProfileQueryFailures => { + return take(output, { + Message: [, __expectString, `Message`], + ProfileId: [, __expectString, `ProfileId`], + Status: [, __expectInt32, `Status`], + }) as any; +}; + +/** + * deserializeAws_restJson1ProfileQueryResult + */ +const de_ProfileQueryResult = (output: any, context: __SerdeContext): ProfileQueryResult => { + return take(output, { + Profile: [, _json, `Profile`], + ProfileId: [, __expectString, `ProfileId`], + QueryResult: [, __expectString, `QueryResult`], + }) as any; +}; + +/** + * deserializeAws_restJson1Profiles + */ +const de_Profiles = (output: any, context: __SerdeContext): ProfileQueryResult[] => { + const retVal = (output || []) + .filter((e: any) => e != null) + .map((entry: any) => { + return de_ProfileQueryResult(entry, context); + }); + return retVal; +}; + // de_Range omitted. +// de_RangeOverride omitted. + // de_requestValueList omitted. // de_RuleBasedMatchingResponse omitted. @@ -3355,12 +4533,85 @@ const de_ProfileObjectTypeList = (output: any, context: __SerdeContext): ListPro // de_S3ExportingLocation omitted. +/** + * deserializeAws_restJson1SegmentDefinitionItem + */ +const de_SegmentDefinitionItem = (output: any, context: __SerdeContext): SegmentDefinitionItem => { + return take(output, { + CreatedAt: [, (_: any) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))), `CreatedAt`], + Description: [, __expectString, `Description`], + DisplayName: [, __expectString, `DisplayName`], + SegmentDefinitionArn: [, __expectString, `SegmentDefinitionArn`], + SegmentDefinitionName: [, __expectString, `SegmentDefinitionName`], + Tags: [, _json, `Tags`], + }) as any; +}; + +/** + * deserializeAws_restJson1SegmentDefinitionsList + */ +const de_SegmentDefinitionsList = (output: any, context: __SerdeContext): SegmentDefinitionItem[] => { + const retVal = (output || []) + .filter((e: any) => e != null) + .map((entry: any) => { + return de_SegmentDefinitionItem(entry, context); + }); + return retVal; +}; + +/** + * deserializeAws_restJson1SegmentGroup + */ +const de_SegmentGroup = (output: any, context: __SerdeContext): SegmentGroup => { + return take(output, { + Groups: [, (_: any) => de_SegmentGroupList(_, context), `Groups`], + Include: [, __expectString, `Include`], + }) as any; +}; + +/** + * deserializeAws_restJson1SegmentGroupList + */ +const de_SegmentGroupList = (output: any, context: __SerdeContext): Group[] => { + const retVal = (output || []) + .filter((e: any) => e != null) + .map((entry: any) => { + return de_Group(entry, context); + }); + return retVal; +}; + +/** + * deserializeAws_restJson1SourceSegment + */ +const de_SourceSegment = (output: any, context: __SerdeContext): SourceSegment => { + return take(output, { + SegmentDefinitionName: [, __expectString, `SegmentDefinitionName`], + }) as any; +}; + +/** + * deserializeAws_restJson1SourceSegmentList + */ +const de_SourceSegmentList = (output: any, context: __SerdeContext): SourceSegment[] => { + const retVal = (output || []) + .filter((e: any) => e != null) + .map((entry: any) => { + return de_SourceSegment(entry, context); + }); + return retVal; +}; + // de_StandardIdentifierList omitted. // de_TagMap omitted. // de_Threshold omitted. +// de_ValueList omitted. + +// de_Values omitted. + // de_WorkflowAttributes omitted. /** diff --git a/codegen/sdk-codegen/aws-models/customer-profiles.json b/codegen/sdk-codegen/aws-models/customer-profiles.json index 48659c6541b1..b62f5d09ac8e 100644 --- a/codegen/sdk-codegen/aws-models/customer-profiles.json +++ b/codegen/sdk-codegen/aws-models/customer-profiles.json @@ -224,6 +224,56 @@ "smithy.api#sensitive": {} } }, + "com.amazonaws.customerprofiles#AddressDimension": { + "type": "structure", + "members": { + "City": { + "target": "com.amazonaws.customerprofiles#ProfileDimension", + "traits": { + "smithy.api#documentation": "

The city belonging to the address.

", + "smithy.api#jsonName": "City" + } + }, + "Country": { + "target": "com.amazonaws.customerprofiles#ProfileDimension", + "traits": { + "smithy.api#documentation": "

The country belonging to the address.

", + "smithy.api#jsonName": "Country" + } + }, + "County": { + "target": "com.amazonaws.customerprofiles#ProfileDimension", + "traits": { + "smithy.api#documentation": "

The county belonging to the address.

", + "smithy.api#jsonName": "County" + } + }, + "PostalCode": { + "target": "com.amazonaws.customerprofiles#ProfileDimension", + "traits": { + "smithy.api#documentation": "

The postal code belonging to the address.

", + "smithy.api#jsonName": "PostalCode" + } + }, + "Province": { + "target": "com.amazonaws.customerprofiles#ProfileDimension", + "traits": { + "smithy.api#documentation": "

The province belonging to the address.

", + "smithy.api#jsonName": "Province" + } + }, + "State": { + "target": "com.amazonaws.customerprofiles#ProfileDimension", + "traits": { + "smithy.api#documentation": "

The state belonging to the address.

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

Object that segments on Customer Profile's address object.

" + } + }, "com.amazonaws.customerprofiles#AddressList": { "type": "list", "member": { @@ -404,6 +454,125 @@ "smithy.api#sensitive": {} } }, + "com.amazonaws.customerprofiles#AttributeDimension": { + "type": "structure", + "members": { + "DimensionType": { + "target": "com.amazonaws.customerprofiles#AttributeDimensionType", + "traits": { + "smithy.api#documentation": "

The action to segment with.

", + "smithy.api#jsonName": "DimensionType", + "smithy.api#required": {} + } + }, + "Values": { + "target": "com.amazonaws.customerprofiles#Values", + "traits": { + "smithy.api#documentation": "

The values to apply the DimensionType on.

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

Object that segments on various Customer Profile's fields.

" + } + }, + "com.amazonaws.customerprofiles#AttributeDimensionType": { + "type": "enum", + "members": { + "INCLUSIVE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "INCLUSIVE" + } + }, + "EXCLUSIVE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "EXCLUSIVE" + } + }, + "CONTAINS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CONTAINS" + } + }, + "BEGINS_WITH": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "BEGINS_WITH" + } + }, + "ENDS_WITH": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ENDS_WITH" + } + }, + "BEFORE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "BEFORE" + } + }, + "AFTER": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AFTER" + } + }, + "BETWEEN": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "BETWEEN" + } + }, + "NOT_BETWEEN": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "NOT_BETWEEN" + } + }, + "ON": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ON" + } + }, + "GREATER_THAN": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "GREATER_THAN" + } + }, + "LESS_THAN": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "LESS_THAN" + } + }, + "GREATER_THAN_OR_EQUAL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "GREATER_THAN_OR_EQUAL" + } + }, + "LESS_THAN_OR_EQUAL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "LESS_THAN_OR_EQUAL" + } + }, + "EQUAL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "EQUAL" + } + } + } + }, "com.amazonaws.customerprofiles#AttributeItem": { "type": "structure", "members": { @@ -431,6 +600,15 @@ } } }, + "com.amazonaws.customerprofiles#AttributeMap": { + "type": "map", + "key": { + "target": "com.amazonaws.customerprofiles#attributeName" + }, + "value": { + "target": "com.amazonaws.customerprofiles#FilterAttributeDimension" + } + }, "com.amazonaws.customerprofiles#AttributeMatchingModel": { "type": "enum", "members": { @@ -490,6 +668,26 @@ "smithy.api#documentation": "

Configuration information about the AttributeTypesSelector where the\n rule-based identity resolution uses to match profiles. You can choose how profiles are\n compared across attribute types and which attribute to use for matching from each type.\n There are three attribute types you can configure:

\n
    \n
  • \n

    Email type

    \n
      \n
    • \n

      You can choose from Email, BusinessEmail, and\n PersonalEmail\n

      \n
    • \n
    \n
  • \n
  • \n

    Phone number type

    \n
      \n
    • \n

      You can choose from Phone, HomePhone, and\n MobilePhone\n

      \n
    • \n
    \n
  • \n
  • \n

    Address type

    \n
      \n
    • \n

      You can choose from Address, BusinessAddress,\n MaillingAddress, and ShippingAddress\n

      \n
    • \n
    \n
  • \n
\n

You can either choose ONE_TO_ONE or MANY_TO_MANY as the\n AttributeMatchingModel. When choosing MANY_TO_MANY, the system\n can match attribute across the sub-types of an attribute type. For example, if the value of\n the Email field of Profile A and the value of BusinessEmail field\n of Profile B matches, the two profiles are matched on the Email type. When choosing\n ONE_TO_ONE the system can only match if the sub-types are exact matches.\n For example, only when the value of the Email field of Profile A and the value\n of the Email field of Profile B matches, the two profiles are matched on the\n Email type.

" } }, + "com.amazonaws.customerprofiles#AttributeValueItem": { + "type": "structure", + "members": { + "Value": { + "target": "com.amazonaws.customerprofiles#string1To255", + "traits": { + "smithy.api#documentation": "

An individual value belonging to the given attribute.

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

List containing the values for the given attribute.

" + } + }, + "com.amazonaws.customerprofiles#AttributeValueItemList": { + "type": "list", + "member": { + "target": "com.amazonaws.customerprofiles#AttributeValueItem" + } + }, "com.amazonaws.customerprofiles#Attributes": { "type": "map", "key": { @@ -570,182 +768,157 @@ "smithy.api#documentation": "

Batch defines the boundaries for ingestion for each step in\n APPFLOW_INTEGRATION workflow. APPFLOW_INTEGRATION workflow\n splits ingestion based on these boundaries.

" } }, - "com.amazonaws.customerprofiles#Batches": { - "type": "list", - "member": { - "target": "com.amazonaws.customerprofiles#Batch" - } - }, - "com.amazonaws.customerprofiles#BucketName": { - "type": "string", - "traits": { - "smithy.api#length": { - "min": 3, - "max": 63 + "com.amazonaws.customerprofiles#BatchGetCalculatedAttributeForProfile": { + "type": "operation", + "input": { + "target": "com.amazonaws.customerprofiles#BatchGetCalculatedAttributeForProfileRequest" + }, + "output": { + "target": "com.amazonaws.customerprofiles#BatchGetCalculatedAttributeForProfileResponse" + }, + "errors": [ + { + "target": "com.amazonaws.customerprofiles#AccessDeniedException" }, - "smithy.api#pattern": "^\\S+$" + { + "target": "com.amazonaws.customerprofiles#BadRequestException" + }, + { + "target": "com.amazonaws.customerprofiles#InternalServerException" + }, + { + "target": "com.amazonaws.customerprofiles#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.customerprofiles#ThrottlingException" + } + ], + "traits": { + "smithy.api#documentation": "

Fetch the possible attribute values given the attribute name.

", + "smithy.api#http": { + "method": "POST", + "uri": "/domains/{DomainName}/calculated-attributes/{CalculatedAttributeName}/batch-get-for-profiles", + "code": 200 + } } }, - "com.amazonaws.customerprofiles#BucketPrefix": { - "type": "string", - "traits": { - "smithy.api#length": { - "min": 0, - "max": 512 + "com.amazonaws.customerprofiles#BatchGetCalculatedAttributeForProfileError": { + "type": "structure", + "members": { + "Code": { + "target": "com.amazonaws.customerprofiles#string1To255", + "traits": { + "smithy.api#documentation": "

Status code for why a specific profile and calculated attribute failed.

", + "smithy.api#required": {} + } }, - "smithy.api#pattern": ".*" + "Message": { + "target": "com.amazonaws.customerprofiles#string1To1000", + "traits": { + "smithy.api#documentation": "

Message describing why a specific profile and calculated attribute failed.

", + "smithy.api#required": {} + } + }, + "ProfileId": { + "target": "com.amazonaws.customerprofiles#uuid", + "traits": { + "smithy.api#documentation": "

The profile id that failed.

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

Error object describing why a specific profile and calculated attribute failed.

" } }, - "com.amazonaws.customerprofiles#CalculatedAttributeDefinitionsList": { + "com.amazonaws.customerprofiles#BatchGetCalculatedAttributeForProfileErrorList": { "type": "list", "member": { - "target": "com.amazonaws.customerprofiles#ListCalculatedAttributeDefinitionItem" - }, - "traits": { - "smithy.api#sensitive": {} + "target": "com.amazonaws.customerprofiles#BatchGetCalculatedAttributeForProfileError" } }, - "com.amazonaws.customerprofiles#CalculatedAttributesForProfileList": { + "com.amazonaws.customerprofiles#BatchGetCalculatedAttributeForProfileIdList": { "type": "list", "member": { - "target": "com.amazonaws.customerprofiles#ListCalculatedAttributeForProfileItem" + "target": "com.amazonaws.customerprofiles#uuid" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 100 + } } }, - "com.amazonaws.customerprofiles#Conditions": { + "com.amazonaws.customerprofiles#BatchGetCalculatedAttributeForProfileRequest": { "type": "structure", "members": { - "Range": { - "target": "com.amazonaws.customerprofiles#Range", + "CalculatedAttributeName": { + "target": "com.amazonaws.customerprofiles#typeName", "traits": { - "smithy.api#documentation": "

The relative time period over which data is included in the aggregation.

" + "smithy.api#documentation": "

The unique name of the calculated attribute.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} } }, - "ObjectCount": { - "target": "com.amazonaws.customerprofiles#ObjectCount", + "DomainName": { + "target": "com.amazonaws.customerprofiles#name", "traits": { - "smithy.api#documentation": "

The number of profile objects used for the calculated attribute.

" + "smithy.api#documentation": "

The unique name of the domain.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} } }, - "Threshold": { - "target": "com.amazonaws.customerprofiles#Threshold", + "ProfileIds": { + "target": "com.amazonaws.customerprofiles#BatchGetCalculatedAttributeForProfileIdList", "traits": { - "smithy.api#documentation": "

The threshold for the calculated attribute.

" + "smithy.api#documentation": "

List of unique identifiers for customer profiles to retrieve.

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

Overrides the condition block within the original calculated attribute definition.

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

The conditions including range, object count, and threshold for the calculated\n attribute.

", - "smithy.api#sensitive": {} + "smithy.api#input": {} } }, - "com.amazonaws.customerprofiles#ConflictResolution": { + "com.amazonaws.customerprofiles#BatchGetCalculatedAttributeForProfileResponse": { "type": "structure", "members": { - "ConflictResolvingModel": { - "target": "com.amazonaws.customerprofiles#ConflictResolvingModel", + "Errors": { + "target": "com.amazonaws.customerprofiles#BatchGetCalculatedAttributeForProfileErrorList", "traits": { - "smithy.api#documentation": "

How the auto-merging process should resolve conflicts between different profiles.

\n
    \n
  • \n

    \n RECENCY: Uses the data that was most recently updated.

    \n
  • \n
  • \n

    \n SOURCE: Uses the data from a specific source. For example, if a\n company has been aquired or two departments have merged, data from the specified\n source is used. If two duplicate profiles are from the same source, then\n RECENCY is used again.

    \n
  • \n
", - "smithy.api#required": {} + "smithy.api#documentation": "

List of errors for calculated attribute values that could not be retrieved.

" } }, - "SourceName": { - "target": "com.amazonaws.customerprofiles#string1To255", + "CalculatedAttributeValues": { + "target": "com.amazonaws.customerprofiles#CalculatedAttributeValueList", "traits": { - "smithy.api#documentation": "

The ObjectType name that is used to resolve profile merging conflicts when\n choosing SOURCE as the ConflictResolvingModel.

" + "smithy.api#documentation": "

List of calculated attribute values retrieved.

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

How the auto-merging process should resolve conflicts between different profiles.

" - } - }, - "com.amazonaws.customerprofiles#ConflictResolvingModel": { - "type": "enum", - "members": { - "RECENCY": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "RECENCY" - } - }, - "SOURCE": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "SOURCE" - } - } - } - }, - "com.amazonaws.customerprofiles#ConnectorOperator": { - "type": "structure", - "members": { - "Marketo": { - "target": "com.amazonaws.customerprofiles#MarketoConnectorOperator", - "traits": { - "smithy.api#documentation": "

The operation to be performed on the provided Marketo source fields.

" - } - }, - "S3": { - "target": "com.amazonaws.customerprofiles#S3ConnectorOperator", - "traits": { - "smithy.api#documentation": "

The operation to be performed on the provided Amazon S3 source fields.

" - } - }, - "Salesforce": { - "target": "com.amazonaws.customerprofiles#SalesforceConnectorOperator", - "traits": { - "smithy.api#documentation": "

The operation to be performed on the provided Salesforce source fields.

" - } - }, - "ServiceNow": { - "target": "com.amazonaws.customerprofiles#ServiceNowConnectorOperator", - "traits": { - "smithy.api#documentation": "

The operation to be performed on the provided ServiceNow source fields.

" - } - }, - "Zendesk": { - "target": "com.amazonaws.customerprofiles#ZendeskConnectorOperator", - "traits": { - "smithy.api#documentation": "

The operation to be performed on the provided Zendesk source fields.

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

The operation to be performed on the provided source fields.

" - } - }, - "com.amazonaws.customerprofiles#ConnectorProfileName": { - "type": "string", - "traits": { - "smithy.api#length": { - "min": 0, - "max": 256 }, - "smithy.api#pattern": "^[\\w/!@#+=.-]+$" - } - }, - "com.amazonaws.customerprofiles#Consolidation": { - "type": "structure", - "members": { - "MatchingAttributesList": { - "target": "com.amazonaws.customerprofiles#MatchingAttributesList", + "ConditionOverrides": { + "target": "com.amazonaws.customerprofiles#ConditionOverrides", "traits": { - "smithy.api#documentation": "

A list of matching criteria.

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

Overrides the condition block within the original calculated attribute definition.

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

The matching criteria to be used during the auto-merging process.

" + "smithy.api#output": {} } }, - "com.amazonaws.customerprofiles#CreateCalculatedAttributeDefinition": { + "com.amazonaws.customerprofiles#BatchGetProfile": { "type": "operation", "input": { - "target": "com.amazonaws.customerprofiles#CreateCalculatedAttributeDefinitionRequest" + "target": "com.amazonaws.customerprofiles#BatchGetProfileRequest" }, "output": { - "target": "com.amazonaws.customerprofiles#CreateCalculatedAttributeDefinitionResponse" + "target": "com.amazonaws.customerprofiles#BatchGetProfileResponse" }, "errors": [ { @@ -765,15 +938,62 @@ } ], "traits": { - "smithy.api#documentation": "

Creates a new calculated attribute definition. After creation, new object data ingested\n into Customer Profiles will be included in the calculated attribute, which can be retrieved\n for a profile using the GetCalculatedAttributeForProfile API. Defining a calculated attribute makes it\n available for all profiles within a domain. Each calculated attribute can only reference\n one ObjectType and at most, two fields from that\n ObjectType.

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

Get a batch of profiles.

", "smithy.api#http": { "method": "POST", - "uri": "/domains/{DomainName}/calculated-attributes/{CalculatedAttributeName}", + "uri": "/domains/{DomainName}/batch-get-profiles", "code": 200 } } }, - "com.amazonaws.customerprofiles#CreateCalculatedAttributeDefinitionRequest": { + "com.amazonaws.customerprofiles#BatchGetProfileError": { + "type": "structure", + "members": { + "Code": { + "target": "com.amazonaws.customerprofiles#string1To255", + "traits": { + "smithy.api#documentation": "

Status code for why a specific profile failed.

", + "smithy.api#required": {} + } + }, + "Message": { + "target": "com.amazonaws.customerprofiles#string1To1000", + "traits": { + "smithy.api#documentation": "

Message describing why a specific profile failed.

", + "smithy.api#required": {} + } + }, + "ProfileId": { + "target": "com.amazonaws.customerprofiles#uuid", + "traits": { + "smithy.api#documentation": "

The profile id that failed.

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

Error object describing why a specific profile failed.

" + } + }, + "com.amazonaws.customerprofiles#BatchGetProfileErrorList": { + "type": "list", + "member": { + "target": "com.amazonaws.customerprofiles#BatchGetProfileError" + } + }, + "com.amazonaws.customerprofiles#BatchGetProfileIdList": { + "type": "list", + "member": { + "target": "com.amazonaws.customerprofiles#uuid" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 20 + } + } + }, + "com.amazonaws.customerprofiles#BatchGetProfileRequest": { "type": "structure", "members": { "DomainName": { @@ -784,58 +1004,105 @@ "smithy.api#required": {} } }, - "CalculatedAttributeName": { - "target": "com.amazonaws.customerprofiles#typeName", + "ProfileIds": { + "target": "com.amazonaws.customerprofiles#BatchGetProfileIdList", "traits": { - "smithy.api#documentation": "

The unique name of the calculated attribute.

", - "smithy.api#httpLabel": {}, + "smithy.api#documentation": "

List of unique identifiers for customer profiles to retrieve.

", "smithy.api#required": {} } - }, - "DisplayName": { - "target": "com.amazonaws.customerprofiles#displayName", + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.customerprofiles#BatchGetProfileResponse": { + "type": "structure", + "members": { + "Errors": { + "target": "com.amazonaws.customerprofiles#BatchGetProfileErrorList", "traits": { - "smithy.api#documentation": "

The display name of the calculated attribute.

" + "smithy.api#documentation": "

For information about the errors that are common to all actions, see Common Errors.

" } }, - "Description": { - "target": "com.amazonaws.customerprofiles#sensitiveText", + "Profiles": { + "target": "com.amazonaws.customerprofiles#ProfileList", "traits": { - "smithy.api#documentation": "

The description of the calculated attribute.

" + "smithy.api#documentation": "

Array of Profile Objects.

" } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.customerprofiles#Batches": { + "type": "list", + "member": { + "target": "com.amazonaws.customerprofiles#Batch" + } + }, + "com.amazonaws.customerprofiles#BucketName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 3, + "max": 63 }, - "AttributeDetails": { - "target": "com.amazonaws.customerprofiles#AttributeDetails", - "traits": { - "smithy.api#documentation": "

Mathematical expression and a list of attribute items specified in that\n expression.

", - "smithy.api#required": {} - } + "smithy.api#pattern": "^\\S+$" + } + }, + "com.amazonaws.customerprofiles#BucketPrefix": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 512 }, - "Conditions": { - "target": "com.amazonaws.customerprofiles#Conditions", + "smithy.api#pattern": ".*" + } + }, + "com.amazonaws.customerprofiles#CalculatedAttributeDefinitionsList": { + "type": "list", + "member": { + "target": "com.amazonaws.customerprofiles#ListCalculatedAttributeDefinitionItem" + }, + "traits": { + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.customerprofiles#CalculatedAttributeDimension": { + "type": "structure", + "members": { + "DimensionType": { + "target": "com.amazonaws.customerprofiles#AttributeDimensionType", "traits": { - "smithy.api#documentation": "

The conditions including range, object count, and threshold for the calculated\n attribute.

" + "smithy.api#documentation": "

The action to segment with.

", + "smithy.api#jsonName": "DimensionType", + "smithy.api#required": {} } }, - "Statistic": { - "target": "com.amazonaws.customerprofiles#Statistic", + "Values": { + "target": "com.amazonaws.customerprofiles#Values", "traits": { - "smithy.api#documentation": "

The aggregation operation to perform for the calculated attribute.

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

The values to apply the DimensionType with.

", + "smithy.api#jsonName": "Values", "smithy.api#required": {} } }, - "Tags": { - "target": "com.amazonaws.customerprofiles#TagMap", + "ConditionOverrides": { + "target": "com.amazonaws.customerprofiles#ConditionOverrides", "traits": { - "smithy.api#documentation": "

The tags used to organize, track, or control access for this resource.

" + "smithy.api#documentation": "

Applies the given condition over the initial Calculated Attribute's definition.

", + "smithy.api#jsonName": "ConditionOverrides" } } }, "traits": { - "smithy.api#input": {} + "smithy.api#documentation": "

Object that segments on Customer Profile's Calculated Attributes.

" } }, - "com.amazonaws.customerprofiles#CreateCalculatedAttributeDefinitionResponse": { + "com.amazonaws.customerprofiles#CalculatedAttributeValue": { "type": "structure", "members": { "CalculatedAttributeName": { @@ -850,213 +1117,200 @@ "smithy.api#documentation": "

The display name of the calculated attribute.

" } }, - "Description": { - "target": "com.amazonaws.customerprofiles#sensitiveText", - "traits": { - "smithy.api#documentation": "

The description of the calculated attribute.

" - } - }, - "AttributeDetails": { - "target": "com.amazonaws.customerprofiles#AttributeDetails", - "traits": { - "smithy.api#documentation": "

Mathematical expression and a list of attribute items specified in that\n expression.

" - } - }, - "Conditions": { - "target": "com.amazonaws.customerprofiles#Conditions", - "traits": { - "smithy.api#documentation": "

The conditions including range, object count, and threshold for the calculated\n attribute.

" - } - }, - "Statistic": { - "target": "com.amazonaws.customerprofiles#Statistic", - "traits": { - "smithy.api#documentation": "

The aggregation operation to perform for the calculated attribute.

" - } - }, - "CreatedAt": { - "target": "com.amazonaws.customerprofiles#timestamp", + "IsDataPartial": { + "target": "com.amazonaws.customerprofiles#string1To255", "traits": { - "smithy.api#documentation": "

The timestamp of when the calculated attribute definition was created.

" + "smithy.api#documentation": "

Indicates whether the calculated attribute's value is based on partial data. If the data is partial, it is set to true.

" } }, - "LastUpdatedAt": { - "target": "com.amazonaws.customerprofiles#timestamp", + "ProfileId": { + "target": "com.amazonaws.customerprofiles#uuid", "traits": { - "smithy.api#documentation": "

The timestamp of when the calculated attribute definition was most recently\n edited.

" + "smithy.api#documentation": "

The profile id belonging to this calculated attribute value.

" } }, - "Tags": { - "target": "com.amazonaws.customerprofiles#TagMap", + "Value": { + "target": "com.amazonaws.customerprofiles#string1To255", "traits": { - "smithy.api#documentation": "

The tags used to organize, track, or control access for this resource.

" + "smithy.api#documentation": "

The value of the calculated attribute.

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

The object containing the values of a single calculated attribute value.

" } }, - "com.amazonaws.customerprofiles#CreateDomain": { - "type": "operation", - "input": { - "target": "com.amazonaws.customerprofiles#CreateDomainRequest" - }, - "output": { - "target": "com.amazonaws.customerprofiles#CreateDomainResponse" - }, - "errors": [ - { - "target": "com.amazonaws.customerprofiles#AccessDeniedException" - }, - { - "target": "com.amazonaws.customerprofiles#BadRequestException" - }, - { - "target": "com.amazonaws.customerprofiles#InternalServerException" - }, - { - "target": "com.amazonaws.customerprofiles#ResourceNotFoundException" - }, - { - "target": "com.amazonaws.customerprofiles#ThrottlingException" - } - ], - "traits": { - "smithy.api#documentation": "

Creates a domain, which is a container for all customer data, such as customer profile\n attributes, object types, profile keys, and encryption keys. You can create multiple\n domains, and each domain can have multiple third-party integrations.

\n

Each Amazon Connect instance can be associated with only one domain. Multiple\n Amazon Connect instances can be associated with one domain.

\n

Use this API or UpdateDomain to\n enable identity\n resolution: set Matching to true.

\n

To prevent cross-service impersonation when you call this API, see Cross-service confused deputy prevention for sample policies that you should\n apply.

\n \n

It is not possible to associate a Customer Profiles domain with an Amazon Connect Instance directly from\n the API. If you would like to create a domain and associate a Customer Profiles domain, use the Amazon Connect\n admin website. For more information, see Enable Customer Profiles.

\n

Each Amazon Connect instance can be associated with only one domain. Multiple Amazon Connect instances\n can be associated with one domain.

\n
", - "smithy.api#http": { - "method": "POST", - "uri": "/domains/{DomainName}", - "code": 200 - } + "com.amazonaws.customerprofiles#CalculatedAttributeValueList": { + "type": "list", + "member": { + "target": "com.amazonaws.customerprofiles#CalculatedAttributeValue" } }, - "com.amazonaws.customerprofiles#CreateDomainRequest": { + "com.amazonaws.customerprofiles#CalculatedAttributesForProfileList": { + "type": "list", + "member": { + "target": "com.amazonaws.customerprofiles#ListCalculatedAttributeForProfileItem" + } + }, + "com.amazonaws.customerprofiles#CalculatedCustomAttributes": { + "type": "map", + "key": { + "target": "com.amazonaws.customerprofiles#typeName" + }, + "value": { + "target": "com.amazonaws.customerprofiles#CalculatedAttributeDimension" + } + }, + "com.amazonaws.customerprofiles#ConditionOverrides": { "type": "structure", "members": { - "DomainName": { - "target": "com.amazonaws.customerprofiles#name", - "traits": { - "smithy.api#documentation": "

The unique name of the domain.

", - "smithy.api#httpLabel": {}, - "smithy.api#required": {} - } - }, - "DefaultExpirationDays": { - "target": "com.amazonaws.customerprofiles#expirationDaysInteger", + "Range": { + "target": "com.amazonaws.customerprofiles#RangeOverride", "traits": { - "smithy.api#documentation": "

The default number of days until the data within the domain expires.

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

The relative time period over which data is included in the aggregation for this override.

" } - }, - "DefaultEncryptionKey": { - "target": "com.amazonaws.customerprofiles#encryptionKey", + } + }, + "traits": { + "smithy.api#documentation": "

An object to override the original condition block of a calculated attribute.

", + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.customerprofiles#Conditions": { + "type": "structure", + "members": { + "Range": { + "target": "com.amazonaws.customerprofiles#Range", "traits": { - "smithy.api#documentation": "

The default encryption key, which is an AWS managed key, is used when no specific type\n of encryption key is specified. It is used to encrypt all data before it is placed in\n permanent or semi-permanent storage.

" + "smithy.api#documentation": "

The relative time period over which data is included in the aggregation.

" } }, - "DeadLetterQueueUrl": { - "target": "com.amazonaws.customerprofiles#sqsQueueUrl", + "ObjectCount": { + "target": "com.amazonaws.customerprofiles#ObjectCount", "traits": { - "smithy.api#documentation": "

The URL of the SQS dead letter queue, which is used for reporting errors associated with\n ingesting data from third party applications. You must set up a policy on the\n DeadLetterQueue for the SendMessage operation to enable Amazon Connect Customer Profiles to send\n messages to the DeadLetterQueue.

" + "smithy.api#documentation": "

The number of profile objects used for the calculated attribute.

" } }, - "Matching": { - "target": "com.amazonaws.customerprofiles#MatchingRequest", + "Threshold": { + "target": "com.amazonaws.customerprofiles#Threshold", "traits": { - "smithy.api#documentation": "

The process of matching duplicate profiles. If Matching = true, Amazon Connect Customer Profiles starts a weekly\nbatch process called Identity Resolution Job. If you do not specify a date and time for Identity Resolution Job to run, by default it runs every \nSaturday at 12AM UTC to detect duplicate profiles in your domains.

\n

After the Identity Resolution Job completes, use the \nGetMatches\nAPI to return and review the results. Or, if you have configured ExportingConfig in the MatchingRequest, you can download the results from\nS3.

" + "smithy.api#documentation": "

The threshold for the calculated attribute.

" } - }, - "RuleBasedMatching": { - "target": "com.amazonaws.customerprofiles#RuleBasedMatchingRequest", + } + }, + "traits": { + "smithy.api#documentation": "

The conditions including range, object count, and threshold for the calculated\n attribute.

", + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.customerprofiles#ConflictResolution": { + "type": "structure", + "members": { + "ConflictResolvingModel": { + "target": "com.amazonaws.customerprofiles#ConflictResolvingModel", "traits": { - "smithy.api#documentation": "

The process of matching duplicate profiles using the Rule-Based matching. If\n RuleBasedMatching = true, Amazon Connect Customer Profiles will start\n to match and merge your profiles according to your configuration in the\n RuleBasedMatchingRequest. You can use the ListRuleBasedMatches\n and GetSimilarProfiles API to return and review the results. Also, if you have\n configured ExportingConfig in the RuleBasedMatchingRequest, you\n can download the results from S3.

" + "smithy.api#documentation": "

How the auto-merging process should resolve conflicts between different profiles.

\n
    \n
  • \n

    \n RECENCY: Uses the data that was most recently updated.

    \n
  • \n
  • \n

    \n SOURCE: Uses the data from a specific source. For example, if a\n company has been aquired or two departments have merged, data from the specified\n source is used. If two duplicate profiles are from the same source, then\n RECENCY is used again.

    \n
  • \n
", + "smithy.api#required": {} } }, - "Tags": { - "target": "com.amazonaws.customerprofiles#TagMap", + "SourceName": { + "target": "com.amazonaws.customerprofiles#string1To255", "traits": { - "smithy.api#documentation": "

The tags used to organize, track, or control access for this resource.

" + "smithy.api#documentation": "

The ObjectType name that is used to resolve profile merging conflicts when\n choosing SOURCE as the ConflictResolvingModel.

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

How the auto-merging process should resolve conflicts between different profiles.

" } }, - "com.amazonaws.customerprofiles#CreateDomainResponse": { - "type": "structure", + "com.amazonaws.customerprofiles#ConflictResolvingModel": { + "type": "enum", "members": { - "DomainName": { - "target": "com.amazonaws.customerprofiles#name", + "RECENCY": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "

The unique name of the domain.

", - "smithy.api#required": {} + "smithy.api#enumValue": "RECENCY" } }, - "DefaultExpirationDays": { - "target": "com.amazonaws.customerprofiles#expirationDaysInteger", + "SOURCE": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "

The default number of days until the data within the domain expires.

", - "smithy.api#required": {} + "smithy.api#enumValue": "SOURCE" } - }, - "DefaultEncryptionKey": { - "target": "com.amazonaws.customerprofiles#encryptionKey", + } + } + }, + "com.amazonaws.customerprofiles#ConnectorOperator": { + "type": "structure", + "members": { + "Marketo": { + "target": "com.amazonaws.customerprofiles#MarketoConnectorOperator", "traits": { - "smithy.api#documentation": "

The default encryption key, which is an AWS managed key, is used when no specific type\n of encryption key is specified. It is used to encrypt all data before it is placed in\n permanent or semi-permanent storage.

" + "smithy.api#documentation": "

The operation to be performed on the provided Marketo source fields.

" } }, - "DeadLetterQueueUrl": { - "target": "com.amazonaws.customerprofiles#sqsQueueUrl", + "S3": { + "target": "com.amazonaws.customerprofiles#S3ConnectorOperator", "traits": { - "smithy.api#documentation": "

The URL of the SQS dead letter queue, which is used for reporting errors associated with\n ingesting data from third party applications.

" + "smithy.api#documentation": "

The operation to be performed on the provided Amazon S3 source fields.

" } }, - "Matching": { - "target": "com.amazonaws.customerprofiles#MatchingResponse", + "Salesforce": { + "target": "com.amazonaws.customerprofiles#SalesforceConnectorOperator", "traits": { - "smithy.api#documentation": "

The process of matching duplicate profiles. If Matching = true, Amazon Connect Customer Profiles starts a weekly\nbatch process called Identity Resolution Job. If you do not specify a date and time for Identity Resolution Job to run, by default it runs every \nSaturday at 12AM UTC to detect duplicate profiles in your domains.

\n

After the Identity Resolution Job completes, use the \nGetMatches\nAPI to return and review the results. Or, if you have configured ExportingConfig in the MatchingRequest, you can download the results from\nS3.

" + "smithy.api#documentation": "

The operation to be performed on the provided Salesforce source fields.

" } }, - "RuleBasedMatching": { - "target": "com.amazonaws.customerprofiles#RuleBasedMatchingResponse", + "ServiceNow": { + "target": "com.amazonaws.customerprofiles#ServiceNowConnectorOperator", "traits": { - "smithy.api#documentation": "

The process of matching duplicate profiles using the Rule-Based matching. If\n RuleBasedMatching = true, Amazon Connect Customer Profiles will start\n to match and merge your profiles according to your configuration in the\n RuleBasedMatchingRequest. You can use the ListRuleBasedMatches\n and GetSimilarProfiles API to return and review the results. Also, if you have\n configured ExportingConfig in the RuleBasedMatchingRequest, you\n can download the results from S3.

" + "smithy.api#documentation": "

The operation to be performed on the provided ServiceNow source fields.

" } }, - "CreatedAt": { - "target": "com.amazonaws.customerprofiles#timestamp", + "Zendesk": { + "target": "com.amazonaws.customerprofiles#ZendeskConnectorOperator", "traits": { - "smithy.api#documentation": "

The timestamp of when the domain was created.

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

The operation to be performed on the provided Zendesk source fields.

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

The operation to be performed on the provided source fields.

" + } + }, + "com.amazonaws.customerprofiles#ConnectorProfileName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 256 }, - "LastUpdatedAt": { - "target": "com.amazonaws.customerprofiles#timestamp", + "smithy.api#pattern": "^[\\w/!@#+=.-]+$" + } + }, + "com.amazonaws.customerprofiles#Consolidation": { + "type": "structure", + "members": { + "MatchingAttributesList": { + "target": "com.amazonaws.customerprofiles#MatchingAttributesList", "traits": { - "smithy.api#documentation": "

The timestamp of when the domain was most recently edited.

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

A list of matching criteria.

", "smithy.api#required": {} } - }, - "Tags": { - "target": "com.amazonaws.customerprofiles#TagMap", - "traits": { - "smithy.api#documentation": "

The tags used to organize, track, or control access for this resource.

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

The matching criteria to be used during the auto-merging process.

" } }, - "com.amazonaws.customerprofiles#CreateEventStream": { + "com.amazonaws.customerprofiles#CreateCalculatedAttributeDefinition": { "type": "operation", "input": { - "target": "com.amazonaws.customerprofiles#CreateEventStreamRequest" + "target": "com.amazonaws.customerprofiles#CreateCalculatedAttributeDefinitionRequest" }, "output": { - "target": "com.amazonaws.customerprofiles#CreateEventStreamResponse" + "target": "com.amazonaws.customerprofiles#CreateCalculatedAttributeDefinitionResponse" }, "errors": [ { @@ -1076,15 +1330,15 @@ } ], "traits": { - "smithy.api#documentation": "

Creates an event stream, which is a subscription to real-time events, such as when\n profiles are created and updated through Amazon Connect Customer Profiles.

\n

Each event stream can be associated with only one Kinesis Data Stream destination in the\n same region and Amazon Web Services account as the customer profiles domain

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

Creates a new calculated attribute definition. After creation, new object data ingested\n into Customer Profiles will be included in the calculated attribute, which can be retrieved\n for a profile using the GetCalculatedAttributeForProfile API. Defining a calculated attribute makes it\n available for all profiles within a domain. Each calculated attribute can only reference\n one ObjectType and at most, two fields from that\n ObjectType.

", "smithy.api#http": { "method": "POST", - "uri": "/domains/{DomainName}/event-streams/{EventStreamName}", + "uri": "/domains/{DomainName}/calculated-attributes/{CalculatedAttributeName}", "code": 200 } } }, - "com.amazonaws.customerprofiles#CreateEventStreamRequest": { + "com.amazonaws.customerprofiles#CreateCalculatedAttributeDefinitionRequest": { "type": "structure", "members": { "DomainName": { @@ -1095,39 +1349,49 @@ "smithy.api#required": {} } }, - "Uri": { - "target": "com.amazonaws.customerprofiles#string1To255", + "CalculatedAttributeName": { + "target": "com.amazonaws.customerprofiles#typeName", "traits": { - "smithy.api#documentation": "

The StreamARN of the destination to deliver profile events to. For example,\n arn:aws:kinesis:region:account-id:stream/stream-name

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

The unique name of the calculated attribute.

", + "smithy.api#httpLabel": {}, "smithy.api#required": {} } }, - "EventStreamName": { - "target": "com.amazonaws.customerprofiles#name", + "DisplayName": { + "target": "com.amazonaws.customerprofiles#displayName", "traits": { - "smithy.api#documentation": "

The name of the event stream.

", - "smithy.api#httpLabel": {}, + "smithy.api#documentation": "

The display name of the calculated attribute.

" + } + }, + "Description": { + "target": "com.amazonaws.customerprofiles#sensitiveText", + "traits": { + "smithy.api#documentation": "

The description of the calculated attribute.

" + } + }, + "AttributeDetails": { + "target": "com.amazonaws.customerprofiles#AttributeDetails", + "traits": { + "smithy.api#documentation": "

Mathematical expression and a list of attribute items specified in that\n expression.

", "smithy.api#required": {} } }, - "Tags": { - "target": "com.amazonaws.customerprofiles#TagMap", + "Conditions": { + "target": "com.amazonaws.customerprofiles#Conditions", "traits": { - "smithy.api#documentation": "

The tags used to organize, track, or control access for this resource.

" + "smithy.api#documentation": "

The conditions including range, object count, and threshold for the calculated\n attribute.

" } - } - }, - "traits": { - "smithy.api#input": {} - } - }, - "com.amazonaws.customerprofiles#CreateEventStreamResponse": { - "type": "structure", - "members": { - "EventStreamArn": { - "target": "com.amazonaws.customerprofiles#string1To255", + }, + "Filter": { + "target": "com.amazonaws.customerprofiles#Filter", "traits": { - "smithy.api#documentation": "

A unique identifier for the event stream.

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

Defines how to filter incoming objects to include part of the Calculated Attribute.

" + } + }, + "Statistic": { + "target": "com.amazonaws.customerprofiles#Statistic", + "traits": { + "smithy.api#documentation": "

The aggregation operation to perform for the calculated attribute.

", "smithy.api#required": {} } }, @@ -1139,16 +1403,84 @@ } }, "traits": { - "smithy.api#output": {} + "smithy.api#input": {} } }, - "com.amazonaws.customerprofiles#CreateIntegrationWorkflow": { + "com.amazonaws.customerprofiles#CreateCalculatedAttributeDefinitionResponse": { + "type": "structure", + "members": { + "CalculatedAttributeName": { + "target": "com.amazonaws.customerprofiles#typeName", + "traits": { + "smithy.api#documentation": "

The unique name of the calculated attribute.

" + } + }, + "DisplayName": { + "target": "com.amazonaws.customerprofiles#displayName", + "traits": { + "smithy.api#documentation": "

The display name of the calculated attribute.

" + } + }, + "Description": { + "target": "com.amazonaws.customerprofiles#sensitiveText", + "traits": { + "smithy.api#documentation": "

The description of the calculated attribute.

" + } + }, + "AttributeDetails": { + "target": "com.amazonaws.customerprofiles#AttributeDetails", + "traits": { + "smithy.api#documentation": "

Mathematical expression and a list of attribute items specified in that\n expression.

" + } + }, + "Conditions": { + "target": "com.amazonaws.customerprofiles#Conditions", + "traits": { + "smithy.api#documentation": "

The conditions including range, object count, and threshold for the calculated\n attribute.

" + } + }, + "Filter": { + "target": "com.amazonaws.customerprofiles#Filter", + "traits": { + "smithy.api#documentation": "

The filter that was used as part of the request.

" + } + }, + "Statistic": { + "target": "com.amazonaws.customerprofiles#Statistic", + "traits": { + "smithy.api#documentation": "

The aggregation operation to perform for the calculated attribute.

" + } + }, + "CreatedAt": { + "target": "com.amazonaws.customerprofiles#timestamp", + "traits": { + "smithy.api#documentation": "

The timestamp of when the calculated attribute definition was created.

" + } + }, + "LastUpdatedAt": { + "target": "com.amazonaws.customerprofiles#timestamp", + "traits": { + "smithy.api#documentation": "

The timestamp of when the calculated attribute definition was most recently\n edited.

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

The tags used to organize, track, or control access for this resource.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.customerprofiles#CreateDomain": { "type": "operation", "input": { - "target": "com.amazonaws.customerprofiles#CreateIntegrationWorkflowRequest" + "target": "com.amazonaws.customerprofiles#CreateDomainRequest" }, "output": { - "target": "com.amazonaws.customerprofiles#CreateIntegrationWorkflowResponse" + "target": "com.amazonaws.customerprofiles#CreateDomainResponse" }, "errors": [ { @@ -1168,15 +1500,15 @@ } ], "traits": { - "smithy.api#documentation": "

Creates an integration workflow. An integration workflow is an async process which\n ingests historic data and sets up an integration for ongoing updates. The supported Amazon AppFlow sources are Salesforce, ServiceNow, and Marketo.

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

Creates a domain, which is a container for all customer data, such as customer profile\n attributes, object types, profile keys, and encryption keys. You can create multiple\n domains, and each domain can have multiple third-party integrations.

\n

Each Amazon Connect instance can be associated with only one domain. Multiple\n Amazon Connect instances can be associated with one domain.

\n

Use this API or UpdateDomain to\n enable identity\n resolution: set Matching to true.

\n

To prevent cross-service impersonation when you call this API, see Cross-service confused deputy prevention for sample policies that you should\n apply.

\n \n

It is not possible to associate a Customer Profiles domain with an Amazon Connect Instance directly from\n the API. If you would like to create a domain and associate a Customer Profiles domain, use the Amazon Connect\n admin website. For more information, see Enable Customer Profiles.

\n

Each Amazon Connect instance can be associated with only one domain. Multiple Amazon Connect instances\n can be associated with one domain.

\n
", "smithy.api#http": { "method": "POST", - "uri": "/domains/{DomainName}/workflows/integrations", + "uri": "/domains/{DomainName}", "code": 200 } } }, - "com.amazonaws.customerprofiles#CreateIntegrationWorkflowRequest": { + "com.amazonaws.customerprofiles#CreateDomainRequest": { "type": "structure", "members": { "DomainName": { @@ -1187,32 +1519,35 @@ "smithy.api#required": {} } }, - "WorkflowType": { - "target": "com.amazonaws.customerprofiles#WorkflowType", + "DefaultExpirationDays": { + "target": "com.amazonaws.customerprofiles#expirationDaysInteger", "traits": { - "smithy.api#documentation": "

The type of workflow. The only supported value is APPFLOW_INTEGRATION.

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

The default number of days until the data within the domain expires.

", "smithy.api#required": {} } }, - "IntegrationConfig": { - "target": "com.amazonaws.customerprofiles#IntegrationConfig", + "DefaultEncryptionKey": { + "target": "com.amazonaws.customerprofiles#encryptionKey", "traits": { - "smithy.api#documentation": "

Configuration data for integration workflow.

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

The default encryption key, which is an AWS managed key, is used when no specific type\n of encryption key is specified. It is used to encrypt all data before it is placed in\n permanent or semi-permanent storage.

" } }, - "ObjectTypeName": { - "target": "com.amazonaws.customerprofiles#typeName", + "DeadLetterQueueUrl": { + "target": "com.amazonaws.customerprofiles#sqsQueueUrl", "traits": { - "smithy.api#documentation": "

The name of the profile object type.

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

The URL of the SQS dead letter queue, which is used for reporting errors associated with\n ingesting data from third party applications. You must set up a policy on the\n DeadLetterQueue for the SendMessage operation to enable Amazon Connect Customer Profiles to send\n messages to the DeadLetterQueue.

" } }, - "RoleArn": { - "target": "com.amazonaws.customerprofiles#RoleArn", + "Matching": { + "target": "com.amazonaws.customerprofiles#MatchingRequest", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the IAM role. Customer Profiles assumes this role to create resources on your behalf as part of workflow execution.

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

The process of matching duplicate profiles. If Matching = true, Amazon Connect Customer Profiles starts a weekly\nbatch process called Identity Resolution Job. If you do not specify a date and time for Identity Resolution Job to run, by default it runs every \nSaturday at 12AM UTC to detect duplicate profiles in your domains.

\n

After the Identity Resolution Job completes, use the \nGetMatches\nAPI to return and review the results. Or, if you have configured ExportingConfig in the MatchingRequest, you can download the results from\nS3.

" + } + }, + "RuleBasedMatching": { + "target": "com.amazonaws.customerprofiles#RuleBasedMatchingRequest", + "traits": { + "smithy.api#documentation": "

The process of matching duplicate profiles using the Rule-Based matching. If\n RuleBasedMatching = true, Amazon Connect Customer Profiles will start\n to match and merge your profiles according to your configuration in the\n RuleBasedMatchingRequest. You can use the ListRuleBasedMatches\n and GetSimilarProfiles API to return and review the results. Also, if you have\n configured ExportingConfig in the RuleBasedMatchingRequest, you\n can download the results from S3.

" } }, "Tags": { @@ -1226,35 +1561,79 @@ "smithy.api#input": {} } }, - "com.amazonaws.customerprofiles#CreateIntegrationWorkflowResponse": { + "com.amazonaws.customerprofiles#CreateDomainResponse": { "type": "structure", "members": { - "WorkflowId": { - "target": "com.amazonaws.customerprofiles#uuid", + "DomainName": { + "target": "com.amazonaws.customerprofiles#name", "traits": { - "smithy.api#documentation": "

Unique identifier for the workflow.

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

The unique name of the domain.

", "smithy.api#required": {} } }, - "Message": { - "target": "com.amazonaws.customerprofiles#string1To255", + "DefaultExpirationDays": { + "target": "com.amazonaws.customerprofiles#expirationDaysInteger", "traits": { - "smithy.api#documentation": "

A message indicating create request was received.

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

The default number of days until the data within the domain expires.

", + "smithy.api#required": {} + } + }, + "DefaultEncryptionKey": { + "target": "com.amazonaws.customerprofiles#encryptionKey", + "traits": { + "smithy.api#documentation": "

The default encryption key, which is an AWS managed key, is used when no specific type\n of encryption key is specified. It is used to encrypt all data before it is placed in\n permanent or semi-permanent storage.

" + } + }, + "DeadLetterQueueUrl": { + "target": "com.amazonaws.customerprofiles#sqsQueueUrl", + "traits": { + "smithy.api#documentation": "

The URL of the SQS dead letter queue, which is used for reporting errors associated with\n ingesting data from third party applications.

" + } + }, + "Matching": { + "target": "com.amazonaws.customerprofiles#MatchingResponse", + "traits": { + "smithy.api#documentation": "

The process of matching duplicate profiles. If Matching = true, Amazon Connect Customer Profiles starts a weekly\nbatch process called Identity Resolution Job. If you do not specify a date and time for Identity Resolution Job to run, by default it runs every \nSaturday at 12AM UTC to detect duplicate profiles in your domains.

\n

After the Identity Resolution Job completes, use the \nGetMatches\nAPI to return and review the results. Or, if you have configured ExportingConfig in the MatchingRequest, you can download the results from\nS3.

" + } + }, + "RuleBasedMatching": { + "target": "com.amazonaws.customerprofiles#RuleBasedMatchingResponse", + "traits": { + "smithy.api#documentation": "

The process of matching duplicate profiles using the Rule-Based matching. If\n RuleBasedMatching = true, Amazon Connect Customer Profiles will start\n to match and merge your profiles according to your configuration in the\n RuleBasedMatchingRequest. You can use the ListRuleBasedMatches\n and GetSimilarProfiles API to return and review the results. Also, if you have\n configured ExportingConfig in the RuleBasedMatchingRequest, you\n can download the results from S3.

" + } + }, + "CreatedAt": { + "target": "com.amazonaws.customerprofiles#timestamp", + "traits": { + "smithy.api#documentation": "

The timestamp of when the domain was created.

", + "smithy.api#required": {} + } + }, + "LastUpdatedAt": { + "target": "com.amazonaws.customerprofiles#timestamp", + "traits": { + "smithy.api#documentation": "

The timestamp of when the domain was most recently edited.

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

The tags used to organize, track, or control access for this resource.

" + } } }, "traits": { "smithy.api#output": {} } }, - "com.amazonaws.customerprofiles#CreateProfile": { + "com.amazonaws.customerprofiles#CreateEventStream": { "type": "operation", "input": { - "target": "com.amazonaws.customerprofiles#CreateProfileRequest" + "target": "com.amazonaws.customerprofiles#CreateEventStreamRequest" }, "output": { - "target": "com.amazonaws.customerprofiles#CreateProfileResponse" + "target": "com.amazonaws.customerprofiles#CreateEventStreamResponse" }, "errors": [ { @@ -1274,15 +1653,15 @@ } ], "traits": { - "smithy.api#documentation": "

Creates a standard profile.

\n

A standard profile represents the following attributes for a customer profile in a\n domain.

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

Creates an event stream, which is a subscription to real-time events, such as when\n profiles are created and updated through Amazon Connect Customer Profiles.

\n

Each event stream can be associated with only one Kinesis Data Stream destination in the\n same region and Amazon Web Services account as the customer profiles domain

", "smithy.api#http": { "method": "POST", - "uri": "/domains/{DomainName}/profiles", + "uri": "/domains/{DomainName}/event-streams/{EventStreamName}", "code": 200 } } }, - "com.amazonaws.customerprofiles#CreateProfileRequest": { + "com.amazonaws.customerprofiles#CreateEventStreamRequest": { "type": "structure", "members": { "DomainName": { @@ -1293,50 +1672,248 @@ "smithy.api#required": {} } }, - "AccountNumber": { - "target": "com.amazonaws.customerprofiles#sensitiveString1To255", + "Uri": { + "target": "com.amazonaws.customerprofiles#string1To255", "traits": { - "smithy.api#documentation": "

An account number that you have given to the customer.

" + "smithy.api#documentation": "

The StreamARN of the destination to deliver profile events to. For example,\n arn:aws:kinesis:region:account-id:stream/stream-name

", + "smithy.api#required": {} } }, - "AdditionalInformation": { - "target": "com.amazonaws.customerprofiles#sensitiveString1To1000", + "EventStreamName": { + "target": "com.amazonaws.customerprofiles#name", "traits": { - "smithy.api#documentation": "

Any additional information relevant to the customer’s profile.

" + "smithy.api#documentation": "

The name of the event stream.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} } }, - "PartyType": { - "target": "com.amazonaws.customerprofiles#PartyType", + "Tags": { + "target": "com.amazonaws.customerprofiles#TagMap", "traits": { - "smithy.api#documentation": "

The type of profile used to describe the customer.

" + "smithy.api#documentation": "

The tags used to organize, track, or control access for this resource.

" } - }, - "BusinessName": { - "target": "com.amazonaws.customerprofiles#sensitiveString1To255", + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.customerprofiles#CreateEventStreamResponse": { + "type": "structure", + "members": { + "EventStreamArn": { + "target": "com.amazonaws.customerprofiles#string1To255", "traits": { - "smithy.api#documentation": "

The name of the customer’s business.

" + "smithy.api#documentation": "

A unique identifier for the event stream.

", + "smithy.api#required": {} } }, - "FirstName": { - "target": "com.amazonaws.customerprofiles#sensitiveString1To255", + "Tags": { + "target": "com.amazonaws.customerprofiles#TagMap", "traits": { - "smithy.api#documentation": "

The customer’s first name.

" + "smithy.api#documentation": "

The tags used to organize, track, or control access for this resource.

" } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.customerprofiles#CreateIntegrationWorkflow": { + "type": "operation", + "input": { + "target": "com.amazonaws.customerprofiles#CreateIntegrationWorkflowRequest" + }, + "output": { + "target": "com.amazonaws.customerprofiles#CreateIntegrationWorkflowResponse" + }, + "errors": [ + { + "target": "com.amazonaws.customerprofiles#AccessDeniedException" }, - "MiddleName": { - "target": "com.amazonaws.customerprofiles#sensitiveString1To255", - "traits": { - "smithy.api#documentation": "

The customer’s middle name.

" - } + { + "target": "com.amazonaws.customerprofiles#BadRequestException" }, - "LastName": { - "target": "com.amazonaws.customerprofiles#sensitiveString1To255", - "traits": { - "smithy.api#documentation": "

The customer’s last name.

" - } + { + "target": "com.amazonaws.customerprofiles#InternalServerException" }, - "BirthDate": { - "target": "com.amazonaws.customerprofiles#sensitiveString1To255", + { + "target": "com.amazonaws.customerprofiles#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.customerprofiles#ThrottlingException" + } + ], + "traits": { + "smithy.api#documentation": "

Creates an integration workflow. An integration workflow is an async process which\n ingests historic data and sets up an integration for ongoing updates. The supported Amazon AppFlow sources are Salesforce, ServiceNow, and Marketo.

", + "smithy.api#http": { + "method": "POST", + "uri": "/domains/{DomainName}/workflows/integrations", + "code": 200 + } + } + }, + "com.amazonaws.customerprofiles#CreateIntegrationWorkflowRequest": { + "type": "structure", + "members": { + "DomainName": { + "target": "com.amazonaws.customerprofiles#name", + "traits": { + "smithy.api#documentation": "

The unique name of the domain.

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

The type of workflow. The only supported value is APPFLOW_INTEGRATION.

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

Configuration data for integration workflow.

", + "smithy.api#required": {} + } + }, + "ObjectTypeName": { + "target": "com.amazonaws.customerprofiles#typeName", + "traits": { + "smithy.api#documentation": "

The name of the profile object type.

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

The Amazon Resource Name (ARN) of the IAM role. Customer Profiles assumes this role to create resources on your behalf as part of workflow execution.

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

The tags used to organize, track, or control access for this resource.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.customerprofiles#CreateIntegrationWorkflowResponse": { + "type": "structure", + "members": { + "WorkflowId": { + "target": "com.amazonaws.customerprofiles#uuid", + "traits": { + "smithy.api#documentation": "

Unique identifier for the workflow.

", + "smithy.api#required": {} + } + }, + "Message": { + "target": "com.amazonaws.customerprofiles#string1To255", + "traits": { + "smithy.api#documentation": "

A message indicating create request was received.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.customerprofiles#CreateProfile": { + "type": "operation", + "input": { + "target": "com.amazonaws.customerprofiles#CreateProfileRequest" + }, + "output": { + "target": "com.amazonaws.customerprofiles#CreateProfileResponse" + }, + "errors": [ + { + "target": "com.amazonaws.customerprofiles#AccessDeniedException" + }, + { + "target": "com.amazonaws.customerprofiles#BadRequestException" + }, + { + "target": "com.amazonaws.customerprofiles#InternalServerException" + }, + { + "target": "com.amazonaws.customerprofiles#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.customerprofiles#ThrottlingException" + } + ], + "traits": { + "smithy.api#documentation": "

Creates a standard profile.

\n

A standard profile represents the following attributes for a customer profile in a\n domain.

", + "smithy.api#http": { + "method": "POST", + "uri": "/domains/{DomainName}/profiles", + "code": 200 + } + } + }, + "com.amazonaws.customerprofiles#CreateProfileRequest": { + "type": "structure", + "members": { + "DomainName": { + "target": "com.amazonaws.customerprofiles#name", + "traits": { + "smithy.api#documentation": "

The unique name of the domain.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "AccountNumber": { + "target": "com.amazonaws.customerprofiles#sensitiveString1To255", + "traits": { + "smithy.api#documentation": "

An account number that you have given to the customer.

" + } + }, + "AdditionalInformation": { + "target": "com.amazonaws.customerprofiles#sensitiveString1To1000", + "traits": { + "smithy.api#documentation": "

Any additional information relevant to the customer’s profile.

" + } + }, + "PartyType": { + "target": "com.amazonaws.customerprofiles#PartyType", + "traits": { + "smithy.api#documentation": "

The type of profile used to describe the customer.

" + } + }, + "BusinessName": { + "target": "com.amazonaws.customerprofiles#sensitiveString1To255", + "traits": { + "smithy.api#documentation": "

The name of the customer’s business.

" + } + }, + "FirstName": { + "target": "com.amazonaws.customerprofiles#sensitiveString1To255", + "traits": { + "smithy.api#documentation": "

The customer’s first name.

" + } + }, + "MiddleName": { + "target": "com.amazonaws.customerprofiles#sensitiveString1To255", + "traits": { + "smithy.api#documentation": "

The customer’s middle name.

" + } + }, + "LastName": { + "target": "com.amazonaws.customerprofiles#sensitiveString1To255", + "traits": { + "smithy.api#documentation": "

The customer’s last name.

" + } + }, + "BirthDate": { + "target": "com.amazonaws.customerprofiles#sensitiveString1To255", "traits": { "smithy.api#documentation": "

The customer’s birth date.

" } @@ -1451,177 +2028,544 @@ "smithy.api#output": {} } }, - "com.amazonaws.customerprofiles#CustomerProfiles_20200815": { - "type": "service", - "version": "2020-08-15", - "operations": [ - { - "target": "com.amazonaws.customerprofiles#AddProfileKey" - }, - { - "target": "com.amazonaws.customerprofiles#CreateCalculatedAttributeDefinition" - }, - { - "target": "com.amazonaws.customerprofiles#CreateDomain" - }, - { - "target": "com.amazonaws.customerprofiles#CreateEventStream" - }, + "com.amazonaws.customerprofiles#CreateSegmentDefinition": { + "type": "operation", + "input": { + "target": "com.amazonaws.customerprofiles#CreateSegmentDefinitionRequest" + }, + "output": { + "target": "com.amazonaws.customerprofiles#CreateSegmentDefinitionResponse" + }, + "errors": [ { - "target": "com.amazonaws.customerprofiles#CreateIntegrationWorkflow" + "target": "com.amazonaws.customerprofiles#AccessDeniedException" }, { - "target": "com.amazonaws.customerprofiles#CreateProfile" + "target": "com.amazonaws.customerprofiles#BadRequestException" }, { - "target": "com.amazonaws.customerprofiles#DeleteCalculatedAttributeDefinition" + "target": "com.amazonaws.customerprofiles#InternalServerException" }, { - "target": "com.amazonaws.customerprofiles#DeleteDomain" + "target": "com.amazonaws.customerprofiles#ResourceNotFoundException" }, { - "target": "com.amazonaws.customerprofiles#DeleteEventStream" + "target": "com.amazonaws.customerprofiles#ThrottlingException" + } + ], + "traits": { + "smithy.api#documentation": "

Creates a segment definition associated to the given domain.

", + "smithy.api#http": { + "method": "POST", + "uri": "/domains/{DomainName}/segment-definitions/{SegmentDefinitionName}", + "code": 200 }, - { - "target": "com.amazonaws.customerprofiles#DeleteIntegration" + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.customerprofiles#CreateSegmentDefinitionRequest": { + "type": "structure", + "members": { + "DomainName": { + "target": "com.amazonaws.customerprofiles#name", + "traits": { + "smithy.api#documentation": "

The unique name of the domain.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } }, - { - "target": "com.amazonaws.customerprofiles#DeleteProfile" + "SegmentDefinitionName": { + "target": "com.amazonaws.customerprofiles#name", + "traits": { + "smithy.api#documentation": "

The unique name of the segment definition.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } }, - { - "target": "com.amazonaws.customerprofiles#DeleteProfileKey" + "DisplayName": { + "target": "com.amazonaws.customerprofiles#string1To255", + "traits": { + "smithy.api#documentation": "

The display name of the segment definition.

", + "smithy.api#required": {} + } }, - { - "target": "com.amazonaws.customerprofiles#DeleteProfileObject" + "Description": { + "target": "com.amazonaws.customerprofiles#sensitiveText", + "traits": { + "smithy.api#documentation": "

The description of the segment definition.

" + } }, - { - "target": "com.amazonaws.customerprofiles#DeleteProfileObjectType" + "SegmentGroups": { + "target": "com.amazonaws.customerprofiles#SegmentGroup", + "traits": { + "smithy.api#documentation": "

Specifies the base segments and dimensions for a segment definition along with their respective relationship.

", + "smithy.api#required": {} + } }, - { - "target": "com.amazonaws.customerprofiles#DeleteWorkflow" + "Tags": { + "target": "com.amazonaws.customerprofiles#TagMap", + "traits": { + "smithy.api#documentation": "

The tags used to organize, track, or control access for this resource.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.customerprofiles#CreateSegmentDefinitionResponse": { + "type": "structure", + "members": { + "SegmentDefinitionName": { + "target": "com.amazonaws.customerprofiles#name", + "traits": { + "smithy.api#documentation": "

The name of the segment definition.

", + "smithy.api#jsonName": "SegmentDefinitionName", + "smithy.api#required": {} + } }, - { - "target": "com.amazonaws.customerprofiles#DetectProfileObjectType" + "DisplayName": { + "target": "com.amazonaws.customerprofiles#string1To255", + "traits": { + "smithy.api#documentation": "

The display name of the segment definition.

", + "smithy.api#jsonName": "DisplayName" + } + }, + "Description": { + "target": "com.amazonaws.customerprofiles#sensitiveText", + "traits": { + "smithy.api#documentation": "

The description of the segment definition.

", + "smithy.api#jsonName": "Description" + } + }, + "CreatedAt": { + "target": "com.amazonaws.customerprofiles#timestamp", + "traits": { + "smithy.api#documentation": "

The timestamp of when the segment definition was created.

", + "smithy.api#jsonName": "CreatedAt" + } + }, + "SegmentDefinitionArn": { + "target": "com.amazonaws.customerprofiles#SegmentDefinitionArn", + "traits": { + "smithy.api#documentation": "

The arn of the segment definition.

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

The tags used to organize, track, or control access for this resource.

", + "smithy.api#jsonName": "Tags" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.customerprofiles#CreateSegmentEstimate": { + "type": "operation", + "input": { + "target": "com.amazonaws.customerprofiles#CreateSegmentEstimateRequest" + }, + "output": { + "target": "com.amazonaws.customerprofiles#CreateSegmentEstimateResponse" + }, + "errors": [ { - "target": "com.amazonaws.customerprofiles#GetAutoMergingPreview" + "target": "com.amazonaws.customerprofiles#AccessDeniedException" }, { - "target": "com.amazonaws.customerprofiles#GetCalculatedAttributeDefinition" + "target": "com.amazonaws.customerprofiles#BadRequestException" }, { - "target": "com.amazonaws.customerprofiles#GetCalculatedAttributeForProfile" + "target": "com.amazonaws.customerprofiles#InternalServerException" }, { - "target": "com.amazonaws.customerprofiles#GetDomain" + "target": "com.amazonaws.customerprofiles#ResourceNotFoundException" }, { - "target": "com.amazonaws.customerprofiles#GetEventStream" + "target": "com.amazonaws.customerprofiles#ThrottlingException" + } + ], + "traits": { + "smithy.api#documentation": "

Creates a segment estimate query.

", + "smithy.api#http": { + "method": "POST", + "uri": "/domains/{DomainName}/segment-estimates", + "code": 200 + } + } + }, + "com.amazonaws.customerprofiles#CreateSegmentEstimateRequest": { + "type": "structure", + "members": { + "DomainName": { + "target": "com.amazonaws.customerprofiles#name", + "traits": { + "smithy.api#documentation": "

The unique name of the domain.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "SegmentQuery": { + "target": "com.amazonaws.customerprofiles#SegmentGroupStructure", + "traits": { + "smithy.api#documentation": "

The segment query for calculating a segment estimate.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.customerprofiles#CreateSegmentEstimateResponse": { + "type": "structure", + "members": { + "DomainName": { + "target": "com.amazonaws.customerprofiles#name", + "traits": { + "smithy.api#documentation": "

The unique name of the domain.

" + } + }, + "EstimateId": { + "target": "com.amazonaws.customerprofiles#string1To255", + "traits": { + "smithy.api#documentation": "

A unique identifier for the resource. The value can be passed to GetSegmentEstimate to retrieve the result of segment estimate status.

" + } }, + "StatusCode": { + "target": "com.amazonaws.customerprofiles#StatusCode", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

The status code for the response.

", + "smithy.api#httpResponseCode": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.customerprofiles#CreateSegmentSnapshot": { + "type": "operation", + "input": { + "target": "com.amazonaws.customerprofiles#CreateSegmentSnapshotRequest" + }, + "output": { + "target": "com.amazonaws.customerprofiles#CreateSegmentSnapshotResponse" + }, + "errors": [ { - "target": "com.amazonaws.customerprofiles#GetIdentityResolutionJob" + "target": "com.amazonaws.customerprofiles#AccessDeniedException" }, { - "target": "com.amazonaws.customerprofiles#GetIntegration" + "target": "com.amazonaws.customerprofiles#BadRequestException" }, { - "target": "com.amazonaws.customerprofiles#GetMatches" + "target": "com.amazonaws.customerprofiles#InternalServerException" }, { - "target": "com.amazonaws.customerprofiles#GetProfileObjectType" + "target": "com.amazonaws.customerprofiles#ResourceNotFoundException" }, { - "target": "com.amazonaws.customerprofiles#GetProfileObjectTypeTemplate" + "target": "com.amazonaws.customerprofiles#ThrottlingException" + } + ], + "traits": { + "smithy.api#documentation": "

Triggers a job to export a segment to a specified destination.

", + "smithy.api#http": { + "method": "POST", + "uri": "/domains/{DomainName}/segments/{SegmentDefinitionName}/snapshots", + "code": 200 + } + } + }, + "com.amazonaws.customerprofiles#CreateSegmentSnapshotRequest": { + "type": "structure", + "members": { + "DomainName": { + "target": "com.amazonaws.customerprofiles#name", + "traits": { + "smithy.api#documentation": "

The unique name of the domain.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "SegmentDefinitionName": { + "target": "com.amazonaws.customerprofiles#name", + "traits": { + "smithy.api#documentation": "

The name of the segment definition used in this snapshot request.

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

The format in which the segment will be exported.

", + "smithy.api#required": {} + } + }, + "EncryptionKey": { + "target": "com.amazonaws.customerprofiles#encryptionKey", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the KMS key used to encrypt the exported segment.

" + } }, + "RoleArn": { + "target": "com.amazonaws.customerprofiles#RoleArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the IAM role that allows Customer Profiles service principal to assume the role for conducting KMS and S3 operations.

" + } + }, + "DestinationUri": { + "target": "com.amazonaws.customerprofiles#string1To255", + "traits": { + "smithy.api#documentation": "

The destination to which the segment will be exported. This field must be provided if the request is not submitted from the Amazon Connect Admin Website.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.customerprofiles#CreateSegmentSnapshotResponse": { + "type": "structure", + "members": { + "SnapshotId": { + "target": "com.amazonaws.customerprofiles#uuid", + "traits": { + "smithy.api#documentation": "

The unique identifier of the segment snapshot.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.customerprofiles#CustomAttributes": { + "type": "map", + "key": { + "target": "com.amazonaws.customerprofiles#typeName" + }, + "value": { + "target": "com.amazonaws.customerprofiles#AttributeDimension" + } + }, + "com.amazonaws.customerprofiles#CustomerProfiles_20200815": { + "type": "service", + "version": "2020-08-15", + "operations": [ { - "target": "com.amazonaws.customerprofiles#GetSimilarProfiles" + "target": "com.amazonaws.customerprofiles#AddProfileKey" }, { - "target": "com.amazonaws.customerprofiles#GetWorkflow" + "target": "com.amazonaws.customerprofiles#BatchGetCalculatedAttributeForProfile" }, { - "target": "com.amazonaws.customerprofiles#GetWorkflowSteps" + "target": "com.amazonaws.customerprofiles#BatchGetProfile" }, { - "target": "com.amazonaws.customerprofiles#ListAccountIntegrations" + "target": "com.amazonaws.customerprofiles#CreateCalculatedAttributeDefinition" }, { - "target": "com.amazonaws.customerprofiles#ListCalculatedAttributeDefinitions" + "target": "com.amazonaws.customerprofiles#CreateDomain" }, { - "target": "com.amazonaws.customerprofiles#ListCalculatedAttributesForProfile" + "target": "com.amazonaws.customerprofiles#CreateEventStream" }, { - "target": "com.amazonaws.customerprofiles#ListDomains" + "target": "com.amazonaws.customerprofiles#CreateIntegrationWorkflow" }, { - "target": "com.amazonaws.customerprofiles#ListEventStreams" + "target": "com.amazonaws.customerprofiles#CreateProfile" }, { - "target": "com.amazonaws.customerprofiles#ListIdentityResolutionJobs" + "target": "com.amazonaws.customerprofiles#CreateSegmentDefinition" }, { - "target": "com.amazonaws.customerprofiles#ListIntegrations" + "target": "com.amazonaws.customerprofiles#CreateSegmentEstimate" }, { - "target": "com.amazonaws.customerprofiles#ListProfileObjects" + "target": "com.amazonaws.customerprofiles#CreateSegmentSnapshot" }, { - "target": "com.amazonaws.customerprofiles#ListProfileObjectTypes" + "target": "com.amazonaws.customerprofiles#DeleteCalculatedAttributeDefinition" }, { - "target": "com.amazonaws.customerprofiles#ListProfileObjectTypeTemplates" + "target": "com.amazonaws.customerprofiles#DeleteDomain" }, { - "target": "com.amazonaws.customerprofiles#ListRuleBasedMatches" + "target": "com.amazonaws.customerprofiles#DeleteEventStream" }, { - "target": "com.amazonaws.customerprofiles#ListTagsForResource" + "target": "com.amazonaws.customerprofiles#DeleteIntegration" }, { - "target": "com.amazonaws.customerprofiles#ListWorkflows" + "target": "com.amazonaws.customerprofiles#DeleteProfile" }, { - "target": "com.amazonaws.customerprofiles#MergeProfiles" + "target": "com.amazonaws.customerprofiles#DeleteProfileKey" }, { - "target": "com.amazonaws.customerprofiles#PutIntegration" + "target": "com.amazonaws.customerprofiles#DeleteProfileObject" }, { - "target": "com.amazonaws.customerprofiles#PutProfileObject" + "target": "com.amazonaws.customerprofiles#DeleteProfileObjectType" }, { - "target": "com.amazonaws.customerprofiles#PutProfileObjectType" + "target": "com.amazonaws.customerprofiles#DeleteSegmentDefinition" }, { - "target": "com.amazonaws.customerprofiles#SearchProfiles" + "target": "com.amazonaws.customerprofiles#DeleteWorkflow" }, { - "target": "com.amazonaws.customerprofiles#TagResource" + "target": "com.amazonaws.customerprofiles#DetectProfileObjectType" }, { - "target": "com.amazonaws.customerprofiles#UntagResource" + "target": "com.amazonaws.customerprofiles#GetAutoMergingPreview" }, { - "target": "com.amazonaws.customerprofiles#UpdateCalculatedAttributeDefinition" + "target": "com.amazonaws.customerprofiles#GetCalculatedAttributeDefinition" }, { - "target": "com.amazonaws.customerprofiles#UpdateDomain" + "target": "com.amazonaws.customerprofiles#GetCalculatedAttributeForProfile" }, { - "target": "com.amazonaws.customerprofiles#UpdateProfile" - } - ], - "traits": { - "aws.api#service": { - "sdkId": "Customer Profiles", - "arnNamespace": "profile", - "cloudFormationName": "CustomerProfiles", - "cloudTrailEventSource": "profile.amazonaws.com", - "endpointPrefix": "profile" + "target": "com.amazonaws.customerprofiles#GetDomain" }, - "aws.auth#sigv4": { - "name": "profile" + { + "target": "com.amazonaws.customerprofiles#GetEventStream" + }, + { + "target": "com.amazonaws.customerprofiles#GetIdentityResolutionJob" + }, + { + "target": "com.amazonaws.customerprofiles#GetIntegration" + }, + { + "target": "com.amazonaws.customerprofiles#GetMatches" + }, + { + "target": "com.amazonaws.customerprofiles#GetProfileObjectType" + }, + { + "target": "com.amazonaws.customerprofiles#GetProfileObjectTypeTemplate" + }, + { + "target": "com.amazonaws.customerprofiles#GetSegmentDefinition" + }, + { + "target": "com.amazonaws.customerprofiles#GetSegmentEstimate" + }, + { + "target": "com.amazonaws.customerprofiles#GetSegmentMembership" + }, + { + "target": "com.amazonaws.customerprofiles#GetSegmentSnapshot" + }, + { + "target": "com.amazonaws.customerprofiles#GetSimilarProfiles" + }, + { + "target": "com.amazonaws.customerprofiles#GetWorkflow" + }, + { + "target": "com.amazonaws.customerprofiles#GetWorkflowSteps" + }, + { + "target": "com.amazonaws.customerprofiles#ListAccountIntegrations" + }, + { + "target": "com.amazonaws.customerprofiles#ListCalculatedAttributeDefinitions" + }, + { + "target": "com.amazonaws.customerprofiles#ListCalculatedAttributesForProfile" + }, + { + "target": "com.amazonaws.customerprofiles#ListDomains" + }, + { + "target": "com.amazonaws.customerprofiles#ListEventStreams" + }, + { + "target": "com.amazonaws.customerprofiles#ListIdentityResolutionJobs" + }, + { + "target": "com.amazonaws.customerprofiles#ListIntegrations" + }, + { + "target": "com.amazonaws.customerprofiles#ListObjectTypeAttributes" + }, + { + "target": "com.amazonaws.customerprofiles#ListProfileAttributeValues" + }, + { + "target": "com.amazonaws.customerprofiles#ListProfileObjects" + }, + { + "target": "com.amazonaws.customerprofiles#ListProfileObjectTypes" + }, + { + "target": "com.amazonaws.customerprofiles#ListProfileObjectTypeTemplates" + }, + { + "target": "com.amazonaws.customerprofiles#ListRuleBasedMatches" + }, + { + "target": "com.amazonaws.customerprofiles#ListSegmentDefinitions" + }, + { + "target": "com.amazonaws.customerprofiles#ListTagsForResource" + }, + { + "target": "com.amazonaws.customerprofiles#ListWorkflows" + }, + { + "target": "com.amazonaws.customerprofiles#MergeProfiles" + }, + { + "target": "com.amazonaws.customerprofiles#PutIntegration" + }, + { + "target": "com.amazonaws.customerprofiles#PutProfileObject" + }, + { + "target": "com.amazonaws.customerprofiles#PutProfileObjectType" + }, + { + "target": "com.amazonaws.customerprofiles#SearchProfiles" + }, + { + "target": "com.amazonaws.customerprofiles#TagResource" + }, + { + "target": "com.amazonaws.customerprofiles#UntagResource" + }, + { + "target": "com.amazonaws.customerprofiles#UpdateCalculatedAttributeDefinition" + }, + { + "target": "com.amazonaws.customerprofiles#UpdateDomain" + }, + { + "target": "com.amazonaws.customerprofiles#UpdateProfile" + } + ], + "traits": { + "aws.api#service": { + "sdkId": "Customer Profiles", + "arnNamespace": "profile", + "cloudFormationName": "CustomerProfiles", + "cloudTrailEventSource": "profile.amazonaws.com", + "endpointPrefix": "profile" + }, + "aws.auth#sigv4": { + "name": "profile" }, "aws.protocols#restJson1": {}, "smithy.api#documentation": "Amazon Connect Customer Profiles\n \n

Amazon Connect Customer Profiles is a unified customer profile for your contact\n center that has pre-built connectors powered by AppFlow that make it easy to combine\n customer information from third party applications, such as Salesforce (CRM), ServiceNow\n (ITSM), and your enterprise resource planning (ERP), with contact history from your Amazon Connect contact center.

\n

For more information about the Amazon Connect Customer Profiles feature, see Use Customer\n Profiles in the Amazon Connect Administrator's Guide.

", @@ -2373,6 +3317,29 @@ } } }, + "com.amazonaws.customerprofiles#DataFormat": { + "type": "enum", + "members": { + "CSV": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CSV" + } + }, + "JSONL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "JSONL" + } + }, + "ORC": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ORC" + } + } + } + }, "com.amazonaws.customerprofiles#DataPullMode": { "type": "enum", "members": { @@ -2393,6 +3360,77 @@ "com.amazonaws.customerprofiles#Date": { "type": "timestamp" }, + "com.amazonaws.customerprofiles#DateDimension": { + "type": "structure", + "members": { + "DimensionType": { + "target": "com.amazonaws.customerprofiles#DateDimensionType", + "traits": { + "smithy.api#documentation": "

The action to segment with.

", + "smithy.api#jsonName": "DimensionType", + "smithy.api#required": {} + } + }, + "Values": { + "target": "com.amazonaws.customerprofiles#DateValues", + "traits": { + "smithy.api#documentation": "

The values to apply the DimensionType on.

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

Object that segments on various Customer Profile's date fields.

" + } + }, + "com.amazonaws.customerprofiles#DateDimensionType": { + "type": "enum", + "members": { + "BEFORE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "BEFORE" + } + }, + "AFTER": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "AFTER" + } + }, + "BETWEEN": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "BETWEEN" + } + }, + "NOT_BETWEEN": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "NOT_BETWEEN" + } + }, + "ON": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ON" + } + } + } + }, + "com.amazonaws.customerprofiles#DateValues": { + "type": "list", + "member": { + "target": "smithy.api#String" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 50 + } + } + }, "com.amazonaws.customerprofiles#DatetimeTypeFieldName": { "type": "string", "traits": { @@ -2915,815 +3953,1631 @@ "DomainName": { "target": "com.amazonaws.customerprofiles#name", "traits": { - "smithy.api#documentation": "

The unique name of the domain.

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

The unique name of the domain.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "ObjectTypeName": { + "target": "com.amazonaws.customerprofiles#typeName", + "traits": { + "smithy.api#documentation": "

The name of the profile object type.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.customerprofiles#DeleteProfileObjectTypeResponse": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.customerprofiles#message", + "traits": { + "smithy.api#documentation": "

A message that indicates the delete request is done.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.customerprofiles#DeleteProfileRequest": { + "type": "structure", + "members": { + "ProfileId": { + "target": "com.amazonaws.customerprofiles#uuid", + "traits": { + "smithy.api#documentation": "

The unique identifier of a customer profile.

", + "smithy.api#required": {} + } + }, + "DomainName": { + "target": "com.amazonaws.customerprofiles#name", + "traits": { + "smithy.api#documentation": "

The unique name of the domain.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.customerprofiles#DeleteProfileResponse": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.customerprofiles#message", + "traits": { + "smithy.api#documentation": "

A message that indicates the delete request is done.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.customerprofiles#DeleteSegmentDefinition": { + "type": "operation", + "input": { + "target": "com.amazonaws.customerprofiles#DeleteSegmentDefinitionRequest" + }, + "output": { + "target": "com.amazonaws.customerprofiles#DeleteSegmentDefinitionResponse" + }, + "errors": [ + { + "target": "com.amazonaws.customerprofiles#AccessDeniedException" + }, + { + "target": "com.amazonaws.customerprofiles#BadRequestException" + }, + { + "target": "com.amazonaws.customerprofiles#InternalServerException" + }, + { + "target": "com.amazonaws.customerprofiles#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.customerprofiles#ThrottlingException" + } + ], + "traits": { + "smithy.api#documentation": "

Deletes a segment definition from the domain.

", + "smithy.api#http": { + "method": "DELETE", + "uri": "/domains/{DomainName}/segment-definitions/{SegmentDefinitionName}", + "code": 200 + }, + "smithy.api#idempotent": {} + } + }, + "com.amazonaws.customerprofiles#DeleteSegmentDefinitionRequest": { + "type": "structure", + "members": { + "DomainName": { + "target": "com.amazonaws.customerprofiles#name", + "traits": { + "smithy.api#documentation": "

The unique name of the domain.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "SegmentDefinitionName": { + "target": "com.amazonaws.customerprofiles#name", + "traits": { + "smithy.api#documentation": "

The unique name of the segment definition.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.customerprofiles#DeleteSegmentDefinitionResponse": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.customerprofiles#string1To1000", + "traits": { + "smithy.api#documentation": "

A message that indicates the delete request is done.

", + "smithy.api#jsonName": "Message" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.customerprofiles#DeleteWorkflow": { + "type": "operation", + "input": { + "target": "com.amazonaws.customerprofiles#DeleteWorkflowRequest" + }, + "output": { + "target": "com.amazonaws.customerprofiles#DeleteWorkflowResponse" + }, + "errors": [ + { + "target": "com.amazonaws.customerprofiles#AccessDeniedException" + }, + { + "target": "com.amazonaws.customerprofiles#BadRequestException" + }, + { + "target": "com.amazonaws.customerprofiles#InternalServerException" + }, + { + "target": "com.amazonaws.customerprofiles#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.customerprofiles#ThrottlingException" + } + ], + "traits": { + "smithy.api#documentation": "

Deletes the specified workflow and all its corresponding resources. This is an async\n process.

", + "smithy.api#http": { + "method": "DELETE", + "uri": "/domains/{DomainName}/workflows/{WorkflowId}", + "code": 200 + } + } + }, + "com.amazonaws.customerprofiles#DeleteWorkflowRequest": { + "type": "structure", + "members": { + "DomainName": { + "target": "com.amazonaws.customerprofiles#name", + "traits": { + "smithy.api#documentation": "

The unique name of the domain.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "WorkflowId": { + "target": "com.amazonaws.customerprofiles#string1To255", + "traits": { + "smithy.api#documentation": "

Unique identifier for the workflow.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.customerprofiles#DeleteWorkflowResponse": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.customerprofiles#DestinationField": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 256 + }, + "smithy.api#pattern": ".*" + } + }, + "com.amazonaws.customerprofiles#DestinationSummary": { + "type": "structure", + "members": { + "Uri": { + "target": "com.amazonaws.customerprofiles#string1To255", + "traits": { + "smithy.api#documentation": "

The StreamARN of the destination to deliver profile events to. For example,\n arn:aws:kinesis:region:account-id:stream/stream-name.

", + "smithy.api#required": {} + } + }, + "Status": { + "target": "com.amazonaws.customerprofiles#EventStreamDestinationStatus", + "traits": { + "smithy.api#documentation": "

The status of enabling the Kinesis stream as a destination for export.

", + "smithy.api#required": {} + } + }, + "UnhealthySince": { + "target": "com.amazonaws.customerprofiles#timestamp", + "traits": { + "smithy.api#documentation": "

The timestamp when the status last changed to UNHEALHY.

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

Summary information about the Kinesis data stream

" + } + }, + "com.amazonaws.customerprofiles#DetectProfileObjectType": { + "type": "operation", + "input": { + "target": "com.amazonaws.customerprofiles#DetectProfileObjectTypeRequest" + }, + "output": { + "target": "com.amazonaws.customerprofiles#DetectProfileObjectTypeResponse" + }, + "errors": [ + { + "target": "com.amazonaws.customerprofiles#AccessDeniedException" + }, + { + "target": "com.amazonaws.customerprofiles#BadRequestException" + }, + { + "target": "com.amazonaws.customerprofiles#InternalServerException" + }, + { + "target": "com.amazonaws.customerprofiles#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.customerprofiles#ThrottlingException" + } + ], + "traits": { + "smithy.api#documentation": "

The process of detecting profile object type mapping by using given objects.

", + "smithy.api#http": { + "method": "POST", + "uri": "/domains/{DomainName}/detect/object-types", + "code": 200 + } + } + }, + "com.amazonaws.customerprofiles#DetectProfileObjectTypeRequest": { + "type": "structure", + "members": { + "Objects": { + "target": "com.amazonaws.customerprofiles#Objects", + "traits": { + "smithy.api#documentation": "

A string that is serialized from a JSON object.

", + "smithy.api#required": {} + } + }, + "DomainName": { + "target": "com.amazonaws.customerprofiles#name", + "traits": { + "smithy.api#documentation": "

The unique name of the domain.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.customerprofiles#DetectProfileObjectTypeResponse": { + "type": "structure", + "members": { + "DetectedProfileObjectTypes": { + "target": "com.amazonaws.customerprofiles#DetectedProfileObjectTypes", + "traits": { + "smithy.api#documentation": "

Detected ProfileObjectType mappings from given objects. A maximum of one\n mapping is supported.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.customerprofiles#DetectedProfileObjectType": { + "type": "structure", + "members": { + "SourceLastUpdatedTimestampFormat": { + "target": "com.amazonaws.customerprofiles#string1To255", + "traits": { + "smithy.api#documentation": "

The format of sourceLastUpdatedTimestamp that was detected in\n fields.

" + } + }, + "Fields": { + "target": "com.amazonaws.customerprofiles#FieldMap", + "traits": { + "smithy.api#documentation": "

A map of the name and the ObjectType field.

" + } + }, + "Keys": { + "target": "com.amazonaws.customerprofiles#KeyMap", + "traits": { + "smithy.api#documentation": "

A list of unique keys that can be used to map data to a profile.

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

Contains ProfileObjectType mapping information from the model.

" + } + }, + "com.amazonaws.customerprofiles#DetectedProfileObjectTypes": { + "type": "list", + "member": { + "target": "com.amazonaws.customerprofiles#DetectedProfileObjectType" + } + }, + "com.amazonaws.customerprofiles#Dimension": { + "type": "union", + "members": { + "ProfileAttributes": { + "target": "com.amazonaws.customerprofiles#ProfileAttributes", + "traits": { + "smithy.api#documentation": "

Object that holds the profile attributes to segment on.

", + "smithy.api#jsonName": "ProfileAttributes" + } + }, + "CalculatedAttributes": { + "target": "com.amazonaws.customerprofiles#CalculatedCustomAttributes", + "traits": { + "smithy.api#documentation": "

Object that holds the calculated attributes to segment on.

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

Object that holds what profile and calculated attributes to segment on.

" + } + }, + "com.amazonaws.customerprofiles#DimensionList": { + "type": "list", + "member": { + "target": "com.amazonaws.customerprofiles#Dimension" + } + }, + "com.amazonaws.customerprofiles#DomainList": { + "type": "list", + "member": { + "target": "com.amazonaws.customerprofiles#ListDomainItem" + } + }, + "com.amazonaws.customerprofiles#DomainStats": { + "type": "structure", + "members": { + "ProfileCount": { + "target": "com.amazonaws.customerprofiles#long", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

The total number of profiles currently in the domain.

" + } + }, + "MeteringProfileCount": { + "target": "com.amazonaws.customerprofiles#long", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

The number of profiles that you are currently paying for in the domain. If you have more\n than 100 objects associated with a single profile, that profile counts as two profiles. If\n you have more than 200 objects, that profile counts as three, and so on.

" + } + }, + "ObjectCount": { + "target": "com.amazonaws.customerprofiles#long", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

The total number of objects in domain.

" + } + }, + "TotalSize": { + "target": "com.amazonaws.customerprofiles#long", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

The total size, in bytes, of all objects in the domain.

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

Usage-specific statistics about the domain.

" + } + }, + "com.amazonaws.customerprofiles#Double": { + "type": "double" + }, + "com.amazonaws.customerprofiles#Double0To1": { + "type": "double", + "traits": { + "smithy.api#range": { + "min": 0.0, + "max": 1.0 + } + } + }, + "com.amazonaws.customerprofiles#EmailList": { + "type": "list", + "member": { + "target": "com.amazonaws.customerprofiles#string1To255" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 3 + } + } + }, + "com.amazonaws.customerprofiles#End": { + "type": "integer", + "traits": { + "smithy.api#default": 0, + "smithy.api#range": { + "min": 0, + "max": 366 + } + } + }, + "com.amazonaws.customerprofiles#EstimateStatus": { + "type": "enum", + "members": { + "RUNNING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "RUNNING" + } + }, + "SUCCEEDED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SUCCEEDED" + } + }, + "FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "FAILED" + } + } + } + }, + "com.amazonaws.customerprofiles#EventStreamDestinationDetails": { + "type": "structure", + "members": { + "Uri": { + "target": "com.amazonaws.customerprofiles#string1To255", + "traits": { + "smithy.api#documentation": "

The StreamARN of the destination to deliver profile events to. For example,\n arn:aws:kinesis:region:account-id:stream/stream-name.

", + "smithy.api#required": {} + } + }, + "Status": { + "target": "com.amazonaws.customerprofiles#EventStreamDestinationStatus", + "traits": { + "smithy.api#documentation": "

The status of enabling the Kinesis stream as a destination for export.

", + "smithy.api#required": {} + } + }, + "UnhealthySince": { + "target": "com.amazonaws.customerprofiles#timestamp", + "traits": { + "smithy.api#documentation": "

The timestamp when the status last changed to UNHEALHY.

" + } + }, + "Message": { + "target": "com.amazonaws.customerprofiles#string1To1000", + "traits": { + "smithy.api#documentation": "

The human-readable string that corresponds to the error or success while enabling the\n streaming destination.

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

Details of the destination being used for the EventStream.

" + } + }, + "com.amazonaws.customerprofiles#EventStreamDestinationStatus": { + "type": "enum", + "members": { + "HEALTHY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "HEALTHY" + } + }, + "UNHEALTHY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "UNHEALTHY" + } + } + } + }, + "com.amazonaws.customerprofiles#EventStreamState": { + "type": "enum", + "members": { + "RUNNING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "RUNNING" + } + }, + "STOPPED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "STOPPED" + } + } + } + }, + "com.amazonaws.customerprofiles#EventStreamSummary": { + "type": "structure", + "members": { + "DomainName": { + "target": "com.amazonaws.customerprofiles#name", + "traits": { + "smithy.api#documentation": "

The unique name of the domain.

", + "smithy.api#required": {} + } + }, + "EventStreamName": { + "target": "com.amazonaws.customerprofiles#name", + "traits": { + "smithy.api#documentation": "

The name of the event stream.

", + "smithy.api#required": {} + } + }, + "EventStreamArn": { + "target": "com.amazonaws.customerprofiles#string1To255", + "traits": { + "smithy.api#documentation": "

A unique identifier for the event stream.

", + "smithy.api#required": {} + } + }, + "State": { + "target": "com.amazonaws.customerprofiles#EventStreamState", + "traits": { + "smithy.api#documentation": "

The operational state of destination stream for export.

", + "smithy.api#required": {} + } + }, + "StoppedSince": { + "target": "com.amazonaws.customerprofiles#timestamp", + "traits": { + "smithy.api#documentation": "

The timestamp when the State changed to STOPPED.

" + } + }, + "DestinationSummary": { + "target": "com.amazonaws.customerprofiles#DestinationSummary", + "traits": { + "smithy.api#documentation": "

Summary information about the Kinesis data stream.

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

The tags used to organize, track, or control access for this resource.

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

An instance of EventStream in a list of EventStreams.

" + } + }, + "com.amazonaws.customerprofiles#EventStreamSummaryList": { + "type": "list", + "member": { + "target": "com.amazonaws.customerprofiles#EventStreamSummary" + } + }, + "com.amazonaws.customerprofiles#ExportingConfig": { + "type": "structure", + "members": { + "S3Exporting": { + "target": "com.amazonaws.customerprofiles#S3ExportingConfig", + "traits": { + "smithy.api#documentation": "

The S3 location where Identity Resolution Jobs write result files.

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

Configuration information about the S3 bucket where Identity Resolution Jobs writes result files.

\n \n

You need to give Customer Profiles service principal write permission to your S3 bucket.\n Otherwise, you'll get an exception in the API response. For an example policy, see\n Amazon Connect Customer Profiles cross-service confused deputy prevention.

\n
" + } + }, + "com.amazonaws.customerprofiles#ExportingLocation": { + "type": "structure", + "members": { + "S3Exporting": { + "target": "com.amazonaws.customerprofiles#S3ExportingLocation", + "traits": { + "smithy.api#documentation": "

Information about the S3 location where Identity Resolution Jobs write result files.

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

The S3 location where Identity Resolution Jobs write result files.

" + } + }, + "com.amazonaws.customerprofiles#ExtraLengthValueProfileDimension": { + "type": "structure", + "members": { + "DimensionType": { + "target": "com.amazonaws.customerprofiles#StringDimensionType", + "traits": { + "smithy.api#documentation": "

The action to segment with.

", + "smithy.api#jsonName": "DimensionType", + "smithy.api#required": {} + } + }, + "Values": { + "target": "com.amazonaws.customerprofiles#ExtraLengthValues", + "traits": { + "smithy.api#documentation": "

The values to apply the DimensionType on.

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

Object that segments on various Customer profile's fields that are larger than normal.

" + } + }, + "com.amazonaws.customerprofiles#ExtraLengthValues": { + "type": "list", + "member": { + "target": "com.amazonaws.customerprofiles#string1To1000" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 50 + } + } + }, + "com.amazonaws.customerprofiles#Failures": { + "type": "list", + "member": { + "target": "com.amazonaws.customerprofiles#ProfileQueryFailures" + } + }, + "com.amazonaws.customerprofiles#FieldContentType": { + "type": "enum", + "members": { + "STRING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "STRING" + } + }, + "NUMBER": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "NUMBER" + } + }, + "PHONE_NUMBER": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PHONE_NUMBER" + } + }, + "EMAIL_ADDRESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "EMAIL_ADDRESS" + } + }, + "NAME": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "NAME" + } + } + } + }, + "com.amazonaws.customerprofiles#FieldMap": { + "type": "map", + "key": { + "target": "com.amazonaws.customerprofiles#name" + }, + "value": { + "target": "com.amazonaws.customerprofiles#ObjectTypeField" + }, + "traits": { + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.customerprofiles#FieldNameList": { + "type": "list", + "member": { + "target": "com.amazonaws.customerprofiles#name" + } + }, + "com.amazonaws.customerprofiles#FieldSourceProfileIds": { + "type": "structure", + "members": { + "AccountNumber": { + "target": "com.amazonaws.customerprofiles#uuid", + "traits": { + "smithy.api#documentation": "

A unique identifier for the account number field to be merged.

" + } + }, + "AdditionalInformation": { + "target": "com.amazonaws.customerprofiles#uuid", + "traits": { + "smithy.api#documentation": "

A unique identifier for the additional information field to be merged.

" + } + }, + "PartyType": { + "target": "com.amazonaws.customerprofiles#uuid", + "traits": { + "smithy.api#documentation": "

A unique identifier for the party type field to be merged.

" + } + }, + "BusinessName": { + "target": "com.amazonaws.customerprofiles#uuid", + "traits": { + "smithy.api#documentation": "

A unique identifier for the business name field to be merged.

" + } + }, + "FirstName": { + "target": "com.amazonaws.customerprofiles#uuid", + "traits": { + "smithy.api#documentation": "

A unique identifier for the first name field to be merged.

" + } + }, + "MiddleName": { + "target": "com.amazonaws.customerprofiles#uuid", + "traits": { + "smithy.api#documentation": "

A unique identifier for the middle name field to be merged.

" + } + }, + "LastName": { + "target": "com.amazonaws.customerprofiles#uuid", + "traits": { + "smithy.api#documentation": "

A unique identifier for the last name field to be merged.

" + } + }, + "BirthDate": { + "target": "com.amazonaws.customerprofiles#uuid", + "traits": { + "smithy.api#documentation": "

A unique identifier for the birthdate field to be merged.

" + } + }, + "Gender": { + "target": "com.amazonaws.customerprofiles#uuid", + "traits": { + "smithy.api#documentation": "

A unique identifier for the gender field to be merged.

" + } + }, + "PhoneNumber": { + "target": "com.amazonaws.customerprofiles#uuid", + "traits": { + "smithy.api#documentation": "

A unique identifier for the phone number field to be merged.

" + } + }, + "MobilePhoneNumber": { + "target": "com.amazonaws.customerprofiles#uuid", + "traits": { + "smithy.api#documentation": "

A unique identifier for the mobile phone number field to be merged.

" + } + }, + "HomePhoneNumber": { + "target": "com.amazonaws.customerprofiles#uuid", + "traits": { + "smithy.api#documentation": "

A unique identifier for the home phone number field to be merged.

" + } + }, + "BusinessPhoneNumber": { + "target": "com.amazonaws.customerprofiles#uuid", + "traits": { + "smithy.api#documentation": "

A unique identifier for the business phone number field to be merged.

" + } + }, + "EmailAddress": { + "target": "com.amazonaws.customerprofiles#uuid", + "traits": { + "smithy.api#documentation": "

A unique identifier for the email address field to be merged.

" + } + }, + "PersonalEmailAddress": { + "target": "com.amazonaws.customerprofiles#uuid", + "traits": { + "smithy.api#documentation": "

A unique identifier for the personal email address field to be merged.

" + } + }, + "BusinessEmailAddress": { + "target": "com.amazonaws.customerprofiles#uuid", + "traits": { + "smithy.api#documentation": "

A unique identifier for the party type field to be merged.

" + } + }, + "Address": { + "target": "com.amazonaws.customerprofiles#uuid", + "traits": { + "smithy.api#documentation": "

A unique identifier for the party type field to be merged.

" + } + }, + "ShippingAddress": { + "target": "com.amazonaws.customerprofiles#uuid", + "traits": { + "smithy.api#documentation": "

A unique identifier for the shipping address field to be merged.

" + } + }, + "MailingAddress": { + "target": "com.amazonaws.customerprofiles#uuid", + "traits": { + "smithy.api#documentation": "

A unique identifier for the mailing address field to be merged.

" + } + }, + "BillingAddress": { + "target": "com.amazonaws.customerprofiles#uuid", + "traits": { + "smithy.api#documentation": "

A unique identifier for the billing type field to be merged.

" } }, - "ObjectTypeName": { - "target": "com.amazonaws.customerprofiles#typeName", + "Attributes": { + "target": "com.amazonaws.customerprofiles#AttributeSourceIdMap", "traits": { - "smithy.api#documentation": "

The name of the profile object type.

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

A unique identifier for the attributes field to be merged.

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

A duplicate customer profile that is to be merged into a main profile.

" } }, - "com.amazonaws.customerprofiles#DeleteProfileObjectTypeResponse": { + "com.amazonaws.customerprofiles#Filter": { "type": "structure", "members": { - "Message": { - "target": "com.amazonaws.customerprofiles#message", + "Include": { + "target": "com.amazonaws.customerprofiles#Include", "traits": { - "smithy.api#documentation": "

A message that indicates the delete request is done.

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

Define whether to include or exclude objects for Calculated Attributed calculation that fit the filter groups criteria.

", + "smithy.api#required": {} + } + }, + "Groups": { + "target": "com.amazonaws.customerprofiles#GroupList", + "traits": { + "smithy.api#documentation": "

Holds the list of Filter groups within the Filter definition.

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

Defines how to filter the objects coming in for calculated attributes.

" } }, - "com.amazonaws.customerprofiles#DeleteProfileRequest": { + "com.amazonaws.customerprofiles#FilterAttributeDimension": { "type": "structure", "members": { - "ProfileId": { - "target": "com.amazonaws.customerprofiles#uuid", + "DimensionType": { + "target": "com.amazonaws.customerprofiles#FilterDimensionType", "traits": { - "smithy.api#documentation": "

The unique identifier of a customer profile.

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

The action to filter with.

", "smithy.api#required": {} } }, - "DomainName": { - "target": "com.amazonaws.customerprofiles#name", + "Values": { + "target": "com.amazonaws.customerprofiles#ValueList", "traits": { - "smithy.api#documentation": "

The unique name of the domain.

", - "smithy.api#httpLabel": {}, + "smithy.api#documentation": "

The values to apply the DimensionType on.

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

Object that defines how to filter the incoming objects for the calculated attribute.

" } }, - "com.amazonaws.customerprofiles#DeleteProfileResponse": { + "com.amazonaws.customerprofiles#FilterDimension": { "type": "structure", "members": { - "Message": { - "target": "com.amazonaws.customerprofiles#message", + "Attributes": { + "target": "com.amazonaws.customerprofiles#AttributeMap", "traits": { - "smithy.api#documentation": "

A message that indicates the delete request is done.

" + "smithy.api#documentation": "

Is the attribute within the FilterDimension map

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

Contains the map of attribute names to attribute dimensions.

" } }, - "com.amazonaws.customerprofiles#DeleteWorkflow": { - "type": "operation", - "input": { - "target": "com.amazonaws.customerprofiles#DeleteWorkflowRequest" - }, - "output": { - "target": "com.amazonaws.customerprofiles#DeleteWorkflowResponse" + "com.amazonaws.customerprofiles#FilterDimensionList": { + "type": "list", + "member": { + "target": "com.amazonaws.customerprofiles#FilterDimension" }, - "errors": [ - { - "target": "com.amazonaws.customerprofiles#AccessDeniedException" - }, - { - "target": "com.amazonaws.customerprofiles#BadRequestException" - }, - { - "target": "com.amazonaws.customerprofiles#InternalServerException" - }, - { - "target": "com.amazonaws.customerprofiles#ResourceNotFoundException" - }, - { - "target": "com.amazonaws.customerprofiles#ThrottlingException" - } - ], "traits": { - "smithy.api#documentation": "

Deletes the specified workflow and all its corresponding resources. This is an async\n process.

", - "smithy.api#http": { - "method": "DELETE", - "uri": "/domains/{DomainName}/workflows/{WorkflowId}", - "code": 200 + "smithy.api#length": { + "min": 1, + "max": 10 } } }, - "com.amazonaws.customerprofiles#DeleteWorkflowRequest": { - "type": "structure", + "com.amazonaws.customerprofiles#FilterDimensionType": { + "type": "enum", "members": { - "DomainName": { - "target": "com.amazonaws.customerprofiles#name", + "INCLUSIVE": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "

The unique name of the domain.

", - "smithy.api#httpLabel": {}, - "smithy.api#required": {} + "smithy.api#enumValue": "INCLUSIVE" } }, - "WorkflowId": { - "target": "com.amazonaws.customerprofiles#string1To255", + "EXCLUSIVE": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "

Unique identifier for the workflow.

", - "smithy.api#httpLabel": {}, - "smithy.api#required": {} + "smithy.api#enumValue": "EXCLUSIVE" } - } - }, - "traits": { - "smithy.api#input": {} - } - }, - "com.amazonaws.customerprofiles#DeleteWorkflowResponse": { - "type": "structure", - "members": {}, - "traits": { - "smithy.api#output": {} - } - }, - "com.amazonaws.customerprofiles#DestinationField": { - "type": "string", - "traits": { - "smithy.api#length": { - "min": 0, - "max": 256 }, - "smithy.api#pattern": ".*" - } - }, - "com.amazonaws.customerprofiles#DestinationSummary": { - "type": "structure", - "members": { - "Uri": { - "target": "com.amazonaws.customerprofiles#string1To255", + "CONTAINS": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "

The StreamARN of the destination to deliver profile events to. For example,\n arn:aws:kinesis:region:account-id:stream/stream-name.

", - "smithy.api#required": {} + "smithy.api#enumValue": "CONTAINS" } }, - "Status": { - "target": "com.amazonaws.customerprofiles#EventStreamDestinationStatus", + "BEGINS_WITH": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "

The status of enabling the Kinesis stream as a destination for export.

", - "smithy.api#required": {} + "smithy.api#enumValue": "BEGINS_WITH" } }, - "UnhealthySince": { - "target": "com.amazonaws.customerprofiles#timestamp", + "ENDS_WITH": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "

The timestamp when the status last changed to UNHEALHY.

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

Summary information about the Kinesis data stream

" - } - }, - "com.amazonaws.customerprofiles#DetectProfileObjectType": { - "type": "operation", - "input": { - "target": "com.amazonaws.customerprofiles#DetectProfileObjectTypeRequest" - }, - "output": { - "target": "com.amazonaws.customerprofiles#DetectProfileObjectTypeResponse" - }, - "errors": [ - { - "target": "com.amazonaws.customerprofiles#AccessDeniedException" - }, - { - "target": "com.amazonaws.customerprofiles#BadRequestException" - }, - { - "target": "com.amazonaws.customerprofiles#InternalServerException" - }, - { - "target": "com.amazonaws.customerprofiles#ResourceNotFoundException" }, - { - "target": "com.amazonaws.customerprofiles#ThrottlingException" - } - ], - "traits": { - "smithy.api#documentation": "

The process of detecting profile object type mapping by using given objects.

", - "smithy.api#http": { - "method": "POST", - "uri": "/domains/{DomainName}/detect/object-types", - "code": 200 - } - } - }, - "com.amazonaws.customerprofiles#DetectProfileObjectTypeRequest": { - "type": "structure", - "members": { - "Objects": { - "target": "com.amazonaws.customerprofiles#Objects", + "BEFORE": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "

A string that is serialized from a JSON object.

", - "smithy.api#required": {} + "smithy.api#enumValue": "BEFORE" } }, - "DomainName": { - "target": "com.amazonaws.customerprofiles#name", + "AFTER": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "

The unique name of the domain.

", - "smithy.api#httpLabel": {}, - "smithy.api#required": {} + "smithy.api#enumValue": "AFTER" } - } - }, - "traits": { - "smithy.api#input": {} - } - }, - "com.amazonaws.customerprofiles#DetectProfileObjectTypeResponse": { - "type": "structure", - "members": { - "DetectedProfileObjectTypes": { - "target": "com.amazonaws.customerprofiles#DetectedProfileObjectTypes", + }, + "BETWEEN": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "

Detected ProfileObjectType mappings from given objects. A maximum of one\n mapping is supported.

" + "smithy.api#enumValue": "BETWEEN" } - } - }, - "traits": { - "smithy.api#output": {} - } - }, - "com.amazonaws.customerprofiles#DetectedProfileObjectType": { - "type": "structure", - "members": { - "SourceLastUpdatedTimestampFormat": { - "target": "com.amazonaws.customerprofiles#string1To255", + }, + "NOT_BETWEEN": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "

The format of sourceLastUpdatedTimestamp that was detected in\n fields.

" + "smithy.api#enumValue": "NOT_BETWEEN" } }, - "Fields": { - "target": "com.amazonaws.customerprofiles#FieldMap", + "ON": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "

A map of the name and the ObjectType field.

" + "smithy.api#enumValue": "ON" } }, - "Keys": { - "target": "com.amazonaws.customerprofiles#KeyMap", + "GREATER_THAN": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#documentation": "

A list of unique keys that can be used to map data to a profile.

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

Contains ProfileObjectType mapping information from the model.

" - } - }, - "com.amazonaws.customerprofiles#DetectedProfileObjectTypes": { - "type": "list", - "member": { - "target": "com.amazonaws.customerprofiles#DetectedProfileObjectType" - } - }, - "com.amazonaws.customerprofiles#DomainList": { - "type": "list", - "member": { - "target": "com.amazonaws.customerprofiles#ListDomainItem" - } - }, - "com.amazonaws.customerprofiles#DomainStats": { - "type": "structure", - "members": { - "ProfileCount": { - "target": "com.amazonaws.customerprofiles#long", - "traits": { - "smithy.api#default": 0, - "smithy.api#documentation": "

The total number of profiles currently in the domain.

" + }, + "LESS_THAN": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "LESS_THAN" } }, - "MeteringProfileCount": { - "target": "com.amazonaws.customerprofiles#long", + "GREATER_THAN_OR_EQUAL": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#default": 0, - "smithy.api#documentation": "

The number of profiles that you are currently paying for in the domain. If you have more\n than 100 objects associated with a single profile, that profile counts as two profiles. If\n you have more than 200 objects, that profile counts as three, and so on.

" + "smithy.api#enumValue": "GREATER_THAN_OR_EQUAL" } }, - "ObjectCount": { - "target": "com.amazonaws.customerprofiles#long", + "LESS_THAN_OR_EQUAL": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#default": 0, - "smithy.api#documentation": "

The total number of objects in domain.

" + "smithy.api#enumValue": "LESS_THAN_OR_EQUAL" } }, - "TotalSize": { - "target": "com.amazonaws.customerprofiles#long", + "EQUAL": { + "target": "smithy.api#Unit", "traits": { - "smithy.api#default": 0, - "smithy.api#documentation": "

The total size, in bytes, of all objects in the domain.

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

Usage-specific statistics about the domain.

" } }, - "com.amazonaws.customerprofiles#Double": { - "type": "double" - }, - "com.amazonaws.customerprofiles#Double0To1": { - "type": "double", - "traits": { - "smithy.api#range": { - "min": 0.0, - "max": 1.0 + "com.amazonaws.customerprofiles#FilterGroup": { + "type": "structure", + "members": { + "Type": { + "target": "com.amazonaws.customerprofiles#Type", + "traits": { + "smithy.api#documentation": "

The type of logical relationship between the dimensions of the Filter group.

", + "smithy.api#required": {} + } + }, + "Dimensions": { + "target": "com.amazonaws.customerprofiles#FilterDimensionList", + "traits": { + "smithy.api#documentation": "

Object that holds the attributes to filter on.

", + "smithy.api#required": {} + } } - } - }, - "com.amazonaws.customerprofiles#EmailList": { - "type": "list", - "member": { - "target": "com.amazonaws.customerprofiles#string1To255" }, "traits": { - "smithy.api#length": { - "min": 1, - "max": 3 - } + "smithy.api#documentation": "

Object that holds the dimensions to filter on.

" } }, - "com.amazonaws.customerprofiles#EventStreamDestinationDetails": { + "com.amazonaws.customerprofiles#FlowDefinition": { "type": "structure", "members": { - "Uri": { - "target": "com.amazonaws.customerprofiles#string1To255", + "Description": { + "target": "com.amazonaws.customerprofiles#FlowDescription", "traits": { - "smithy.api#documentation": "

The StreamARN of the destination to deliver profile events to. For example,\n arn:aws:kinesis:region:account-id:stream/stream-name.

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

A description of the flow you want to create.

" + } + }, + "FlowName": { + "target": "com.amazonaws.customerprofiles#FlowName", + "traits": { + "smithy.api#documentation": "

The specified name of the flow. Use underscores (_) or hyphens (-) only. Spaces are not\n allowed.

", "smithy.api#required": {} } }, - "Status": { - "target": "com.amazonaws.customerprofiles#EventStreamDestinationStatus", + "KmsArn": { + "target": "com.amazonaws.customerprofiles#KmsArn", "traits": { - "smithy.api#documentation": "

The status of enabling the Kinesis stream as a destination for export.

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

The Amazon Resource Name of the AWS Key Management Service (KMS) key you provide for encryption.

", "smithy.api#required": {} } }, - "UnhealthySince": { - "target": "com.amazonaws.customerprofiles#timestamp", + "SourceFlowConfig": { + "target": "com.amazonaws.customerprofiles#SourceFlowConfig", "traits": { - "smithy.api#documentation": "

The timestamp when the status last changed to UNHEALHY.

" + "smithy.api#documentation": "

The configuration that controls how Customer Profiles retrieves data from the\n source.

", + "smithy.api#required": {} } }, - "Message": { - "target": "com.amazonaws.customerprofiles#string1To1000", + "Tasks": { + "target": "com.amazonaws.customerprofiles#Tasks", "traits": { - "smithy.api#documentation": "

The human-readable string that corresponds to the error or success while enabling the\n streaming destination.

" + "smithy.api#documentation": "

A list of tasks that Customer Profiles performs while transferring the data in the flow\n run.

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

The trigger settings that determine how and when the flow runs.

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

Details of the destination being used for the EventStream.

" + "smithy.api#documentation": "

The configurations that control how Customer Profiles retrieves data from the source,\n Amazon AppFlow. Customer Profiles uses this information to create an AppFlow flow on behalf of\n customers.

", + "smithy.api#sensitive": {} } }, - "com.amazonaws.customerprofiles#EventStreamDestinationStatus": { - "type": "enum", + "com.amazonaws.customerprofiles#FlowDescription": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 2048 + }, + "smithy.api#pattern": "^[\\w!@#\\-.?,\\s]*$" + } + }, + "com.amazonaws.customerprofiles#FlowName": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 256 + }, + "smithy.api#pattern": "^[a-zA-Z0-9][\\w!@#.-]+$" + } + }, + "com.amazonaws.customerprofiles#FoundByKeyValue": { + "type": "structure", "members": { - "HEALTHY": { - "target": "smithy.api#Unit", + "KeyName": { + "target": "com.amazonaws.customerprofiles#name", "traits": { - "smithy.api#enumValue": "HEALTHY" + "smithy.api#documentation": "

A searchable identifier of a customer profile.

" } }, - "UNHEALTHY": { - "target": "smithy.api#Unit", + "Values": { + "target": "com.amazonaws.customerprofiles#requestValueList", "traits": { - "smithy.api#enumValue": "UNHEALTHY" + "smithy.api#documentation": "

A list of key values.

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

A data type pair that consists of a KeyName and Values list\n that were used to find a profile returned in response to a SearchProfiles request.\n

" } }, - "com.amazonaws.customerprofiles#EventStreamState": { + "com.amazonaws.customerprofiles#Gender": { "type": "enum", "members": { - "RUNNING": { + "MALE": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "RUNNING" + "smithy.api#enumValue": "MALE" } }, - "STOPPED": { + "FEMALE": { "target": "smithy.api#Unit", "traits": { - "smithy.api#enumValue": "STOPPED" + "smithy.api#enumValue": "FEMALE" + } + }, + "UNSPECIFIED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "UNSPECIFIED" } } + }, + "traits": { + "smithy.api#deprecated": {}, + "smithy.api#sensitive": {} } }, - "com.amazonaws.customerprofiles#EventStreamSummary": { + "com.amazonaws.customerprofiles#GetAutoMergingPreview": { + "type": "operation", + "input": { + "target": "com.amazonaws.customerprofiles#GetAutoMergingPreviewRequest" + }, + "output": { + "target": "com.amazonaws.customerprofiles#GetAutoMergingPreviewResponse" + }, + "errors": [ + { + "target": "com.amazonaws.customerprofiles#AccessDeniedException" + }, + { + "target": "com.amazonaws.customerprofiles#BadRequestException" + }, + { + "target": "com.amazonaws.customerprofiles#InternalServerException" + }, + { + "target": "com.amazonaws.customerprofiles#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.customerprofiles#ThrottlingException" + } + ], + "traits": { + "smithy.api#documentation": "

Tests the auto-merging settings of your Identity Resolution Job without merging your data. It randomly\n selects a sample of matching groups from the existing matching results, and applies the\n automerging settings that you provided. You can then view the number of profiles in the\n sample, the number of matches, and the number of profiles identified to be merged. This\n enables you to evaluate the accuracy of the attributes in your matching list.

\n

You can't view which profiles are matched and would be merged.

\n \n

We strongly recommend you use this API to do a dry run of the automerging process\n before running the Identity Resolution Job. Include at least two matching\n attributes. If your matching list includes too few attributes (such as only\n FirstName or only LastName), there may be a large number of\n matches. This increases the chances of erroneous merges.

\n
", + "smithy.api#http": { + "method": "POST", + "uri": "/domains/{DomainName}/identity-resolution-jobs/auto-merging-preview", + "code": 200 + } + } + }, + "com.amazonaws.customerprofiles#GetAutoMergingPreviewRequest": { "type": "structure", "members": { "DomainName": { "target": "com.amazonaws.customerprofiles#name", "traits": { "smithy.api#documentation": "

The unique name of the domain.

", + "smithy.api#httpLabel": {}, "smithy.api#required": {} } }, - "EventStreamName": { - "target": "com.amazonaws.customerprofiles#name", - "traits": { - "smithy.api#documentation": "

The name of the event stream.

", - "smithy.api#required": {} - } - }, - "EventStreamArn": { - "target": "com.amazonaws.customerprofiles#string1To255", + "Consolidation": { + "target": "com.amazonaws.customerprofiles#Consolidation", "traits": { - "smithy.api#documentation": "

A unique identifier for the event stream.

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

A list of matching attributes that represent matching criteria.

", "smithy.api#required": {} } }, - "State": { - "target": "com.amazonaws.customerprofiles#EventStreamState", + "ConflictResolution": { + "target": "com.amazonaws.customerprofiles#ConflictResolution", "traits": { - "smithy.api#documentation": "

The operational state of destination stream for export.

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

How the auto-merging process should resolve conflicts between different profiles.

", "smithy.api#required": {} } }, - "StoppedSince": { - "target": "com.amazonaws.customerprofiles#timestamp", - "traits": { - "smithy.api#documentation": "

The timestamp when the State changed to STOPPED.

" - } - }, - "DestinationSummary": { - "target": "com.amazonaws.customerprofiles#DestinationSummary", - "traits": { - "smithy.api#documentation": "

Summary information about the Kinesis data stream.

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

The tags used to organize, track, or control access for this resource.

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

An instance of EventStream in a list of EventStreams.

" - } - }, - "com.amazonaws.customerprofiles#EventStreamSummaryList": { - "type": "list", - "member": { - "target": "com.amazonaws.customerprofiles#EventStreamSummary" - } - }, - "com.amazonaws.customerprofiles#ExportingConfig": { - "type": "structure", - "members": { - "S3Exporting": { - "target": "com.amazonaws.customerprofiles#S3ExportingConfig", - "traits": { - "smithy.api#documentation": "

The S3 location where Identity Resolution Jobs write result files.

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

Configuration information about the S3 bucket where Identity Resolution Jobs writes result files.

\n \n

You need to give Customer Profiles service principal write permission to your S3 bucket.\n Otherwise, you'll get an exception in the API response. For an example policy, see\n Amazon Connect Customer Profiles cross-service confused deputy prevention.

\n
" - } - }, - "com.amazonaws.customerprofiles#ExportingLocation": { - "type": "structure", - "members": { - "S3Exporting": { - "target": "com.amazonaws.customerprofiles#S3ExportingLocation", + "MinAllowedConfidenceScoreForMerging": { + "target": "com.amazonaws.customerprofiles#Double0To1", "traits": { - "smithy.api#documentation": "

Information about the S3 location where Identity Resolution Jobs write result files.

" + "smithy.api#documentation": "

Minimum confidence score required for profiles within a matching group to be merged\n during the auto-merge process.

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

The S3 location where Identity Resolution Jobs write result files.

" + "smithy.api#input": {} } }, - "com.amazonaws.customerprofiles#FieldContentType": { - "type": "enum", + "com.amazonaws.customerprofiles#GetAutoMergingPreviewResponse": { + "type": "structure", "members": { - "STRING": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "STRING" - } - }, - "NUMBER": { - "target": "smithy.api#Unit", + "DomainName": { + "target": "com.amazonaws.customerprofiles#name", "traits": { - "smithy.api#enumValue": "NUMBER" + "smithy.api#documentation": "

The unique name of the domain.

", + "smithy.api#required": {} } }, - "PHONE_NUMBER": { - "target": "smithy.api#Unit", + "NumberOfMatchesInSample": { + "target": "com.amazonaws.customerprofiles#long", "traits": { - "smithy.api#enumValue": "PHONE_NUMBER" + "smithy.api#default": 0, + "smithy.api#documentation": "

The number of match groups in the domain that have been reviewed in this preview dry\n run.

" } }, - "EMAIL_ADDRESS": { - "target": "smithy.api#Unit", + "NumberOfProfilesInSample": { + "target": "com.amazonaws.customerprofiles#long", "traits": { - "smithy.api#enumValue": "EMAIL_ADDRESS" + "smithy.api#default": 0, + "smithy.api#documentation": "

The number of profiles found in this preview dry run.

" } }, - "NAME": { - "target": "smithy.api#Unit", + "NumberOfProfilesWillBeMerged": { + "target": "com.amazonaws.customerprofiles#long", "traits": { - "smithy.api#enumValue": "NAME" + "smithy.api#default": 0, + "smithy.api#documentation": "

The number of profiles that would be merged if this wasn't a preview dry run.

" } } + }, + "traits": { + "smithy.api#output": {} } }, - "com.amazonaws.customerprofiles#FieldMap": { - "type": "map", - "key": { - "target": "com.amazonaws.customerprofiles#name" + "com.amazonaws.customerprofiles#GetCalculatedAttributeDefinition": { + "type": "operation", + "input": { + "target": "com.amazonaws.customerprofiles#GetCalculatedAttributeDefinitionRequest" }, - "value": { - "target": "com.amazonaws.customerprofiles#ObjectTypeField" + "output": { + "target": "com.amazonaws.customerprofiles#GetCalculatedAttributeDefinitionResponse" }, + "errors": [ + { + "target": "com.amazonaws.customerprofiles#AccessDeniedException" + }, + { + "target": "com.amazonaws.customerprofiles#BadRequestException" + }, + { + "target": "com.amazonaws.customerprofiles#InternalServerException" + }, + { + "target": "com.amazonaws.customerprofiles#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.customerprofiles#ThrottlingException" + } + ], "traits": { - "smithy.api#sensitive": {} - } - }, - "com.amazonaws.customerprofiles#FieldNameList": { - "type": "list", - "member": { - "target": "com.amazonaws.customerprofiles#name" + "smithy.api#documentation": "

Provides more information on a calculated attribute definition for Customer\n Profiles.

", + "smithy.api#http": { + "method": "GET", + "uri": "/domains/{DomainName}/calculated-attributes/{CalculatedAttributeName}", + "code": 200 + } } }, - "com.amazonaws.customerprofiles#FieldSourceProfileIds": { + "com.amazonaws.customerprofiles#GetCalculatedAttributeDefinitionRequest": { "type": "structure", "members": { - "AccountNumber": { - "target": "com.amazonaws.customerprofiles#uuid", + "DomainName": { + "target": "com.amazonaws.customerprofiles#name", "traits": { - "smithy.api#documentation": "

A unique identifier for the account number field to be merged.

" + "smithy.api#documentation": "

The unique name of the domain.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} } }, - "AdditionalInformation": { - "target": "com.amazonaws.customerprofiles#uuid", + "CalculatedAttributeName": { + "target": "com.amazonaws.customerprofiles#typeName", "traits": { - "smithy.api#documentation": "

A unique identifier for the additional information field to be merged.

" + "smithy.api#documentation": "

The unique name of the calculated attribute.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} } - }, - "PartyType": { - "target": "com.amazonaws.customerprofiles#uuid", + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.customerprofiles#GetCalculatedAttributeDefinitionResponse": { + "type": "structure", + "members": { + "CalculatedAttributeName": { + "target": "com.amazonaws.customerprofiles#typeName", "traits": { - "smithy.api#documentation": "

A unique identifier for the party type field to be merged.

" + "smithy.api#documentation": "

The unique name of the calculated attribute.

" } }, - "BusinessName": { - "target": "com.amazonaws.customerprofiles#uuid", + "DisplayName": { + "target": "com.amazonaws.customerprofiles#displayName", "traits": { - "smithy.api#documentation": "

A unique identifier for the business name field to be merged.

" + "smithy.api#documentation": "

The display name of the calculated attribute.

" } }, - "FirstName": { - "target": "com.amazonaws.customerprofiles#uuid", + "Description": { + "target": "com.amazonaws.customerprofiles#sensitiveText", "traits": { - "smithy.api#documentation": "

A unique identifier for the first name field to be merged.

" + "smithy.api#documentation": "

The description of the calculated attribute.

" } }, - "MiddleName": { - "target": "com.amazonaws.customerprofiles#uuid", + "CreatedAt": { + "target": "com.amazonaws.customerprofiles#timestamp", "traits": { - "smithy.api#documentation": "

A unique identifier for the middle name field to be merged.

" + "smithy.api#documentation": "

The timestamp of when the calculated attribute definition was created.

" } }, - "LastName": { - "target": "com.amazonaws.customerprofiles#uuid", + "LastUpdatedAt": { + "target": "com.amazonaws.customerprofiles#timestamp", "traits": { - "smithy.api#documentation": "

A unique identifier for the last name field to be merged.

" + "smithy.api#documentation": "

The timestamp of when the calculated attribute definition was most recently\n edited.

" } }, - "BirthDate": { - "target": "com.amazonaws.customerprofiles#uuid", + "Statistic": { + "target": "com.amazonaws.customerprofiles#Statistic", "traits": { - "smithy.api#documentation": "

A unique identifier for the birthdate field to be merged.

" + "smithy.api#documentation": "

The aggregation operation to perform for the calculated attribute.

" } }, - "Gender": { - "target": "com.amazonaws.customerprofiles#uuid", + "Filter": { + "target": "com.amazonaws.customerprofiles#Filter", "traits": { - "smithy.api#documentation": "

A unique identifier for the gender field to be merged.

" + "smithy.api#documentation": "

The filter assigned to this calculated attribute definition.

" } }, - "PhoneNumber": { - "target": "com.amazonaws.customerprofiles#uuid", + "Conditions": { + "target": "com.amazonaws.customerprofiles#Conditions", "traits": { - "smithy.api#documentation": "

A unique identifier for the phone number field to be merged.

" + "smithy.api#documentation": "

The conditions including range, object count, and threshold for the calculated\n attribute.

" } }, - "MobilePhoneNumber": { - "target": "com.amazonaws.customerprofiles#uuid", + "AttributeDetails": { + "target": "com.amazonaws.customerprofiles#AttributeDetails", "traits": { - "smithy.api#documentation": "

A unique identifier for the mobile phone number field to be merged.

" + "smithy.api#documentation": "

Mathematical expression and a list of attribute items specified in that\n expression.

" } }, - "HomePhoneNumber": { - "target": "com.amazonaws.customerprofiles#uuid", + "Tags": { + "target": "com.amazonaws.customerprofiles#TagMap", "traits": { - "smithy.api#documentation": "

A unique identifier for the home phone number field to be merged.

" + "smithy.api#documentation": "

The tags used to organize, track, or control access for this resource.

" } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.customerprofiles#GetCalculatedAttributeForProfile": { + "type": "operation", + "input": { + "target": "com.amazonaws.customerprofiles#GetCalculatedAttributeForProfileRequest" + }, + "output": { + "target": "com.amazonaws.customerprofiles#GetCalculatedAttributeForProfileResponse" + }, + "errors": [ + { + "target": "com.amazonaws.customerprofiles#AccessDeniedException" }, - "BusinessPhoneNumber": { - "target": "com.amazonaws.customerprofiles#uuid", - "traits": { - "smithy.api#documentation": "

A unique identifier for the business phone number field to be merged.

" - } + { + "target": "com.amazonaws.customerprofiles#BadRequestException" }, - "EmailAddress": { - "target": "com.amazonaws.customerprofiles#uuid", - "traits": { - "smithy.api#documentation": "

A unique identifier for the email address field to be merged.

" - } + { + "target": "com.amazonaws.customerprofiles#InternalServerException" }, - "PersonalEmailAddress": { - "target": "com.amazonaws.customerprofiles#uuid", + { + "target": "com.amazonaws.customerprofiles#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.customerprofiles#ThrottlingException" + } + ], + "traits": { + "smithy.api#documentation": "

Retrieve a calculated attribute for a customer profile.

", + "smithy.api#http": { + "method": "GET", + "uri": "/domains/{DomainName}/profile/{ProfileId}/calculated-attributes/{CalculatedAttributeName}", + "code": 200 + } + } + }, + "com.amazonaws.customerprofiles#GetCalculatedAttributeForProfileRequest": { + "type": "structure", + "members": { + "DomainName": { + "target": "com.amazonaws.customerprofiles#name", "traits": { - "smithy.api#documentation": "

A unique identifier for the personal email address field to be merged.

" + "smithy.api#documentation": "

The unique name of the domain.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} } }, - "BusinessEmailAddress": { + "ProfileId": { "target": "com.amazonaws.customerprofiles#uuid", "traits": { - "smithy.api#documentation": "

A unique identifier for the party type field to be merged.

" + "smithy.api#documentation": "

The unique identifier of a customer profile.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} } }, - "Address": { - "target": "com.amazonaws.customerprofiles#uuid", + "CalculatedAttributeName": { + "target": "com.amazonaws.customerprofiles#typeName", "traits": { - "smithy.api#documentation": "

A unique identifier for the party type field to be merged.

" + "smithy.api#documentation": "

The unique name of the calculated attribute.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} } - }, - "ShippingAddress": { - "target": "com.amazonaws.customerprofiles#uuid", + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.customerprofiles#GetCalculatedAttributeForProfileResponse": { + "type": "structure", + "members": { + "CalculatedAttributeName": { + "target": "com.amazonaws.customerprofiles#typeName", "traits": { - "smithy.api#documentation": "

A unique identifier for the shipping address field to be merged.

" + "smithy.api#documentation": "

The unique name of the calculated attribute.

" } }, - "MailingAddress": { - "target": "com.amazonaws.customerprofiles#uuid", + "DisplayName": { + "target": "com.amazonaws.customerprofiles#displayName", "traits": { - "smithy.api#documentation": "

A unique identifier for the mailing address field to be merged.

" + "smithy.api#documentation": "

The display name of the calculated attribute.

" } }, - "BillingAddress": { - "target": "com.amazonaws.customerprofiles#uuid", + "IsDataPartial": { + "target": "com.amazonaws.customerprofiles#string1To255", "traits": { - "smithy.api#documentation": "

A unique identifier for the billing type field to be merged.

" + "smithy.api#documentation": "

Indicates whether the calculated attribute’s value is based on partial data. If data is\n partial, it is set to true.

" } }, - "Attributes": { - "target": "com.amazonaws.customerprofiles#AttributeSourceIdMap", + "Value": { + "target": "com.amazonaws.customerprofiles#string1To255", "traits": { - "smithy.api#documentation": "

A unique identifier for the attributes field to be merged.

" + "smithy.api#documentation": "

The value of the calculated attribute.

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

A duplicate customer profile that is to be merged into a main profile.

" + "smithy.api#output": {} } }, - "com.amazonaws.customerprofiles#FlowDefinition": { + "com.amazonaws.customerprofiles#GetDomain": { + "type": "operation", + "input": { + "target": "com.amazonaws.customerprofiles#GetDomainRequest" + }, + "output": { + "target": "com.amazonaws.customerprofiles#GetDomainResponse" + }, + "errors": [ + { + "target": "com.amazonaws.customerprofiles#AccessDeniedException" + }, + { + "target": "com.amazonaws.customerprofiles#BadRequestException" + }, + { + "target": "com.amazonaws.customerprofiles#InternalServerException" + }, + { + "target": "com.amazonaws.customerprofiles#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.customerprofiles#ThrottlingException" + } + ], + "traits": { + "smithy.api#documentation": "

Returns information about a specific domain.

", + "smithy.api#http": { + "method": "GET", + "uri": "/domains/{DomainName}", + "code": 200 + } + } + }, + "com.amazonaws.customerprofiles#GetDomainRequest": { "type": "structure", "members": { - "Description": { - "target": "com.amazonaws.customerprofiles#FlowDescription", + "DomainName": { + "target": "com.amazonaws.customerprofiles#name", "traits": { - "smithy.api#documentation": "

A description of the flow you want to create.

" + "smithy.api#documentation": "

The unique name of the domain.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} } - }, - "FlowName": { - "target": "com.amazonaws.customerprofiles#FlowName", + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.customerprofiles#GetDomainResponse": { + "type": "structure", + "members": { + "DomainName": { + "target": "com.amazonaws.customerprofiles#name", "traits": { - "smithy.api#documentation": "

The specified name of the flow. Use underscores (_) or hyphens (-) only. Spaces are not\n allowed.

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

The unique name of the domain.

", "smithy.api#required": {} } }, - "KmsArn": { - "target": "com.amazonaws.customerprofiles#KmsArn", + "DefaultExpirationDays": { + "target": "com.amazonaws.customerprofiles#expirationDaysInteger", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name of the AWS Key Management Service (KMS) key you provide for encryption.

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

The default number of days until the data within the domain expires.

" } }, - "SourceFlowConfig": { - "target": "com.amazonaws.customerprofiles#SourceFlowConfig", + "DefaultEncryptionKey": { + "target": "com.amazonaws.customerprofiles#encryptionKey", "traits": { - "smithy.api#documentation": "

The configuration that controls how Customer Profiles retrieves data from the\n source.

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

The default encryption key, which is an AWS managed key, is used when no specific type\n of encryption key is specified. It is used to encrypt all data before it is placed in\n permanent or semi-permanent storage.

" } }, - "Tasks": { - "target": "com.amazonaws.customerprofiles#Tasks", + "DeadLetterQueueUrl": { + "target": "com.amazonaws.customerprofiles#sqsQueueUrl", "traits": { - "smithy.api#documentation": "

A list of tasks that Customer Profiles performs while transferring the data in the flow\n run.

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

The URL of the SQS dead letter queue, which is used for reporting errors associated with\n ingesting data from third party applications.

" } }, - "TriggerConfig": { - "target": "com.amazonaws.customerprofiles#TriggerConfig", + "Stats": { + "target": "com.amazonaws.customerprofiles#DomainStats", "traits": { - "smithy.api#documentation": "

The trigger settings that determine how and when the flow runs.

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

Usage-specific statistics about the domain.

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

The configurations that control how Customer Profiles retrieves data from the source,\n Amazon AppFlow. Customer Profiles uses this information to create an AppFlow flow on behalf of\n customers.

", - "smithy.api#sensitive": {} - } - }, - "com.amazonaws.customerprofiles#FlowDescription": { - "type": "string", - "traits": { - "smithy.api#length": { - "min": 0, - "max": 2048 - }, - "smithy.api#pattern": "^[\\w!@#\\-.?,\\s]*$" - } - }, - "com.amazonaws.customerprofiles#FlowName": { - "type": "string", - "traits": { - "smithy.api#length": { - "min": 0, - "max": 256 }, - "smithy.api#pattern": "^[a-zA-Z0-9][\\w!@#.-]+$" - } - }, - "com.amazonaws.customerprofiles#FoundByKeyValue": { - "type": "structure", - "members": { - "KeyName": { - "target": "com.amazonaws.customerprofiles#name", + "Matching": { + "target": "com.amazonaws.customerprofiles#MatchingResponse", "traits": { - "smithy.api#documentation": "

A searchable identifier of a customer profile.

" + "smithy.api#documentation": "

The process of matching duplicate profiles. If Matching = true, Amazon Connect Customer Profiles starts a weekly\nbatch process called Identity Resolution Job. If you do not specify a date and time for Identity Resolution Job to run, by default it runs every \nSaturday at 12AM UTC to detect duplicate profiles in your domains.

\n

After the Identity Resolution Job completes, use the \nGetMatches\nAPI to return and review the results. Or, if you have configured ExportingConfig in the MatchingRequest, you can download the results from\nS3.

" } }, - "Values": { - "target": "com.amazonaws.customerprofiles#requestValueList", + "RuleBasedMatching": { + "target": "com.amazonaws.customerprofiles#RuleBasedMatchingResponse", "traits": { - "smithy.api#documentation": "

A list of key values.

" + "smithy.api#documentation": "

The process of matching duplicate profiles using the Rule-Based matching. If\n RuleBasedMatching = true, Amazon Connect Customer Profiles will start\n to match and merge your profiles according to your configuration in the\n RuleBasedMatchingRequest. You can use the ListRuleBasedMatches\n and GetSimilarProfiles API to return and review the results. Also, if you have\n configured ExportingConfig in the RuleBasedMatchingRequest, you\n can download the results from S3.

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

A data type pair that consists of a KeyName and Values list\n that were used to find a profile returned in response to a SearchProfiles request.\n

" - } - }, - "com.amazonaws.customerprofiles#Gender": { - "type": "enum", - "members": { - "MALE": { - "target": "smithy.api#Unit", + }, + "CreatedAt": { + "target": "com.amazonaws.customerprofiles#timestamp", "traits": { - "smithy.api#enumValue": "MALE" + "smithy.api#documentation": "

The timestamp of when the domain was created.

", + "smithy.api#required": {} } }, - "FEMALE": { - "target": "smithy.api#Unit", + "LastUpdatedAt": { + "target": "com.amazonaws.customerprofiles#timestamp", "traits": { - "smithy.api#enumValue": "FEMALE" + "smithy.api#documentation": "

The timestamp of when the domain was most recently edited.

", + "smithy.api#required": {} } }, - "UNSPECIFIED": { - "target": "smithy.api#Unit", + "Tags": { + "target": "com.amazonaws.customerprofiles#TagMap", "traits": { - "smithy.api#enumValue": "UNSPECIFIED" + "smithy.api#documentation": "

The tags used to organize, track, or control access for this resource.

" } } }, "traits": { - "smithy.api#deprecated": {}, - "smithy.api#sensitive": {} + "smithy.api#output": {} } }, - "com.amazonaws.customerprofiles#GetAutoMergingPreview": { + "com.amazonaws.customerprofiles#GetEventStream": { "type": "operation", "input": { - "target": "com.amazonaws.customerprofiles#GetAutoMergingPreviewRequest" + "target": "com.amazonaws.customerprofiles#GetEventStreamRequest" }, "output": { - "target": "com.amazonaws.customerprofiles#GetAutoMergingPreviewResponse" + "target": "com.amazonaws.customerprofiles#GetEventStreamResponse" }, "errors": [ { @@ -3743,15 +5597,15 @@ } ], "traits": { - "smithy.api#documentation": "

Tests the auto-merging settings of your Identity Resolution Job without merging your data. It randomly\n selects a sample of matching groups from the existing matching results, and applies the\n automerging settings that you provided. You can then view the number of profiles in the\n sample, the number of matches, and the number of profiles identified to be merged. This\n enables you to evaluate the accuracy of the attributes in your matching list.

\n

You can't view which profiles are matched and would be merged.

\n \n

We strongly recommend you use this API to do a dry run of the automerging process\n before running the Identity Resolution Job. Include at least two matching\n attributes. If your matching list includes too few attributes (such as only\n FirstName or only LastName), there may be a large number of\n matches. This increases the chances of erroneous merges.

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

Returns information about the specified event stream in a specific domain.

", "smithy.api#http": { - "method": "POST", - "uri": "/domains/{DomainName}/identity-resolution-jobs/auto-merging-preview", + "method": "GET", + "uri": "/domains/{DomainName}/event-streams/{EventStreamName}", "code": 200 } } }, - "com.amazonaws.customerprofiles#GetAutoMergingPreviewRequest": { + "com.amazonaws.customerprofiles#GetEventStreamRequest": { "type": "structure", "members": { "DomainName": { @@ -3762,32 +5616,20 @@ "smithy.api#required": {} } }, - "Consolidation": { - "target": "com.amazonaws.customerprofiles#Consolidation", - "traits": { - "smithy.api#documentation": "

A list of matching attributes that represent matching criteria.

", - "smithy.api#required": {} - } - }, - "ConflictResolution": { - "target": "com.amazonaws.customerprofiles#ConflictResolution", + "EventStreamName": { + "target": "com.amazonaws.customerprofiles#name", "traits": { - "smithy.api#documentation": "

How the auto-merging process should resolve conflicts between different profiles.

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

The name of the event stream provided during create operations.

", + "smithy.api#httpLabel": {}, "smithy.api#required": {} } - }, - "MinAllowedConfidenceScoreForMerging": { - "target": "com.amazonaws.customerprofiles#Double0To1", - "traits": { - "smithy.api#documentation": "

Minimum confidence score required for profiles within a matching group to be merged\n during the auto-merge process.

" - } } }, "traits": { "smithy.api#input": {} } }, - "com.amazonaws.customerprofiles#GetAutoMergingPreviewResponse": { + "com.amazonaws.customerprofiles#GetEventStreamResponse": { "type": "structure", "members": { "DomainName": { @@ -3797,25 +5639,44 @@ "smithy.api#required": {} } }, - "NumberOfMatchesInSample": { - "target": "com.amazonaws.customerprofiles#long", + "EventStreamArn": { + "target": "com.amazonaws.customerprofiles#string1To255", "traits": { - "smithy.api#default": 0, - "smithy.api#documentation": "

The number of match groups in the domain that have been reviewed in this preview dry\n run.

" + "smithy.api#documentation": "

A unique identifier for the event stream.

", + "smithy.api#required": {} } }, - "NumberOfProfilesInSample": { - "target": "com.amazonaws.customerprofiles#long", + "CreatedAt": { + "target": "com.amazonaws.customerprofiles#timestamp", "traits": { - "smithy.api#default": 0, - "smithy.api#documentation": "

The number of profiles found in this preview dry run.

" + "smithy.api#documentation": "

The timestamp of when the export was created.

", + "smithy.api#required": {} + } + }, + "State": { + "target": "com.amazonaws.customerprofiles#EventStreamState", + "traits": { + "smithy.api#documentation": "

The operational state of destination stream for export.

", + "smithy.api#required": {} + } + }, + "StoppedSince": { + "target": "com.amazonaws.customerprofiles#timestamp", + "traits": { + "smithy.api#documentation": "

The timestamp when the State changed to STOPPED.

" + } + }, + "DestinationDetails": { + "target": "com.amazonaws.customerprofiles#EventStreamDestinationDetails", + "traits": { + "smithy.api#documentation": "

Details regarding the Kinesis stream.

", + "smithy.api#required": {} } }, - "NumberOfProfilesWillBeMerged": { - "target": "com.amazonaws.customerprofiles#long", + "Tags": { + "target": "com.amazonaws.customerprofiles#TagMap", "traits": { - "smithy.api#default": 0, - "smithy.api#documentation": "

The number of profiles that would be merged if this wasn't a preview dry run.

" + "smithy.api#documentation": "

The tags used to organize, track, or control access for this resource.

" } } }, @@ -3823,13 +5684,13 @@ "smithy.api#output": {} } }, - "com.amazonaws.customerprofiles#GetCalculatedAttributeDefinition": { + "com.amazonaws.customerprofiles#GetIdentityResolutionJob": { "type": "operation", "input": { - "target": "com.amazonaws.customerprofiles#GetCalculatedAttributeDefinitionRequest" + "target": "com.amazonaws.customerprofiles#GetIdentityResolutionJobRequest" }, "output": { - "target": "com.amazonaws.customerprofiles#GetCalculatedAttributeDefinitionResponse" + "target": "com.amazonaws.customerprofiles#GetIdentityResolutionJobResponse" }, "errors": [ { @@ -3849,15 +5710,15 @@ } ], "traits": { - "smithy.api#documentation": "

Provides more information on a calculated attribute definition for Customer\n Profiles.

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

Returns information about an Identity Resolution Job in a specific domain.

\n

Identity Resolution Jobs are set up using the Amazon Connect admin console. For more information, see Use\n Identity Resolution to consolidate similar profiles.

", "smithy.api#http": { "method": "GET", - "uri": "/domains/{DomainName}/calculated-attributes/{CalculatedAttributeName}", + "uri": "/domains/{DomainName}/identity-resolution-jobs/{JobId}", "code": 200 } } }, - "com.amazonaws.customerprofiles#GetCalculatedAttributeDefinitionRequest": { + "com.amazonaws.customerprofiles#GetIdentityResolutionJobRequest": { "type": "structure", "members": { "DomainName": { @@ -3868,10 +5729,10 @@ "smithy.api#required": {} } }, - "CalculatedAttributeName": { - "target": "com.amazonaws.customerprofiles#typeName", + "JobId": { + "target": "com.amazonaws.customerprofiles#uuid", "traits": { - "smithy.api#documentation": "

The unique name of the calculated attribute.

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

The unique identifier of the Identity Resolution Job.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -3881,61 +5742,73 @@ "smithy.api#input": {} } }, - "com.amazonaws.customerprofiles#GetCalculatedAttributeDefinitionResponse": { + "com.amazonaws.customerprofiles#GetIdentityResolutionJobResponse": { "type": "structure", "members": { - "CalculatedAttributeName": { - "target": "com.amazonaws.customerprofiles#typeName", + "DomainName": { + "target": "com.amazonaws.customerprofiles#name", "traits": { - "smithy.api#documentation": "

The unique name of the calculated attribute.

" + "smithy.api#documentation": "

The unique name of the domain.

" } }, - "DisplayName": { - "target": "com.amazonaws.customerprofiles#displayName", + "JobId": { + "target": "com.amazonaws.customerprofiles#uuid", "traits": { - "smithy.api#documentation": "

The display name of the calculated attribute.

" + "smithy.api#documentation": "

The unique identifier of the Identity Resolution Job.

" } }, - "Description": { - "target": "com.amazonaws.customerprofiles#sensitiveText", + "Status": { + "target": "com.amazonaws.customerprofiles#IdentityResolutionJobStatus", "traits": { - "smithy.api#documentation": "

The description of the calculated attribute.

" + "smithy.api#documentation": "

The status of the Identity Resolution Job.

\n
    \n
  • \n

    \n PENDING: The Identity Resolution Job is scheduled but has not started yet. If you turn\n off the Identity Resolution feature in your domain, jobs in the PENDING state are\n deleted.

    \n
  • \n
  • \n

    \n PREPROCESSING: The Identity Resolution Job is loading your data.

    \n
  • \n
  • \n

    \n FIND_MATCHING: The Identity Resolution Job is using the machine learning model to\n identify profiles that belong to the same matching group.

    \n
  • \n
  • \n

    \n MERGING: The Identity Resolution Job is merging duplicate profiles.

    \n
  • \n
  • \n

    \n COMPLETED: The Identity Resolution Job completed successfully.

    \n
  • \n
  • \n

    \n PARTIAL_SUCCESS: There's a system error and not all of the data is\n merged. The Identity Resolution Job writes a message indicating the source of the problem.

    \n
  • \n
  • \n

    \n FAILED: The Identity Resolution Job did not merge any data. It writes a message\n indicating the source of the problem.

    \n
  • \n
" } }, - "CreatedAt": { + "Message": { + "target": "com.amazonaws.customerprofiles#stringTo2048", + "traits": { + "smithy.api#documentation": "

The error messages that are generated when the Identity Resolution Job runs.

" + } + }, + "JobStartTime": { "target": "com.amazonaws.customerprofiles#timestamp", "traits": { - "smithy.api#documentation": "

The timestamp of when the calculated attribute definition was created.

" + "smithy.api#documentation": "

The timestamp of when the Identity Resolution Job was started or will be started.

" + } + }, + "JobEndTime": { + "target": "com.amazonaws.customerprofiles#timestamp", + "traits": { + "smithy.api#documentation": "

The timestamp of when the Identity Resolution Job was completed.

" } }, "LastUpdatedAt": { "target": "com.amazonaws.customerprofiles#timestamp", "traits": { - "smithy.api#documentation": "

The timestamp of when the calculated attribute definition was most recently\n edited.

" + "smithy.api#documentation": "

The timestamp of when the Identity Resolution Job was most recently edited.

" } }, - "Statistic": { - "target": "com.amazonaws.customerprofiles#Statistic", + "JobExpirationTime": { + "target": "com.amazonaws.customerprofiles#timestamp", "traits": { - "smithy.api#documentation": "

The aggregation operation to perform for the calculated attribute.

" + "smithy.api#documentation": "

The timestamp of when the Identity Resolution Job will expire.

" } }, - "Conditions": { - "target": "com.amazonaws.customerprofiles#Conditions", + "AutoMerging": { + "target": "com.amazonaws.customerprofiles#AutoMerging", "traits": { - "smithy.api#documentation": "

The conditions including range, object count, and threshold for the calculated\n attribute.

" + "smithy.api#documentation": "

Configuration settings for how to perform the auto-merging of profiles.

" } }, - "AttributeDetails": { - "target": "com.amazonaws.customerprofiles#AttributeDetails", + "ExportingLocation": { + "target": "com.amazonaws.customerprofiles#ExportingLocation", "traits": { - "smithy.api#documentation": "

Mathematical expression and a list of attribute items specified in that\n expression.

" + "smithy.api#documentation": "

The S3 location where the Identity Resolution Job writes result files.

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

The tags used to organize, track, or control access for this resource.

" + "smithy.api#documentation": "

Statistics about the Identity Resolution Job.

" } } }, @@ -3943,13 +5816,13 @@ "smithy.api#output": {} } }, - "com.amazonaws.customerprofiles#GetCalculatedAttributeForProfile": { + "com.amazonaws.customerprofiles#GetIntegration": { "type": "operation", "input": { - "target": "com.amazonaws.customerprofiles#GetCalculatedAttributeForProfileRequest" + "target": "com.amazonaws.customerprofiles#GetIntegrationRequest" }, "output": { - "target": "com.amazonaws.customerprofiles#GetCalculatedAttributeForProfileResponse" + "target": "com.amazonaws.customerprofiles#GetIntegrationResponse" }, "errors": [ { @@ -3969,15 +5842,15 @@ } ], "traits": { - "smithy.api#documentation": "

Retrieve a calculated attribute for a customer profile.

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

Returns an integration for a domain.

", "smithy.api#http": { - "method": "GET", - "uri": "/domains/{DomainName}/profile/{ProfileId}/calculated-attributes/{CalculatedAttributeName}", + "method": "POST", + "uri": "/domains/{DomainName}/integrations", "code": 200 } } }, - "com.amazonaws.customerprofiles#GetCalculatedAttributeForProfileRequest": { + "com.amazonaws.customerprofiles#GetIntegrationRequest": { "type": "structure", "members": { "DomainName": { @@ -3988,19 +5861,10 @@ "smithy.api#required": {} } }, - "ProfileId": { - "target": "com.amazonaws.customerprofiles#uuid", - "traits": { - "smithy.api#documentation": "

The unique identifier of a customer profile.

", - "smithy.api#httpLabel": {}, - "smithy.api#required": {} - } - }, - "CalculatedAttributeName": { - "target": "com.amazonaws.customerprofiles#typeName", + "Uri": { + "target": "com.amazonaws.customerprofiles#string1To255", "traits": { - "smithy.api#documentation": "

The unique name of the calculated attribute.

", - "smithy.api#httpLabel": {}, + "smithy.api#documentation": "

The URI of the S3 bucket or any other type of data source.

", "smithy.api#required": {} } } @@ -4009,31 +5873,71 @@ "smithy.api#input": {} } }, - "com.amazonaws.customerprofiles#GetCalculatedAttributeForProfileResponse": { + "com.amazonaws.customerprofiles#GetIntegrationResponse": { "type": "structure", "members": { - "CalculatedAttributeName": { + "DomainName": { + "target": "com.amazonaws.customerprofiles#name", + "traits": { + "smithy.api#documentation": "

The unique name of the domain.

", + "smithy.api#required": {} + } + }, + "Uri": { + "target": "com.amazonaws.customerprofiles#string1To255", + "traits": { + "smithy.api#documentation": "

The URI of the S3 bucket or any other type of data source.

", + "smithy.api#required": {} + } + }, + "ObjectTypeName": { "target": "com.amazonaws.customerprofiles#typeName", "traits": { - "smithy.api#documentation": "

The unique name of the calculated attribute.

" + "smithy.api#documentation": "

The name of the profile object type.

" } }, - "DisplayName": { - "target": "com.amazonaws.customerprofiles#displayName", + "CreatedAt": { + "target": "com.amazonaws.customerprofiles#timestamp", "traits": { - "smithy.api#documentation": "

The display name of the calculated attribute.

" + "smithy.api#documentation": "

The timestamp of when the domain was created.

", + "smithy.api#required": {} } }, - "IsDataPartial": { - "target": "com.amazonaws.customerprofiles#string1To255", + "LastUpdatedAt": { + "target": "com.amazonaws.customerprofiles#timestamp", "traits": { - "smithy.api#documentation": "

Indicates whether the calculated attribute’s value is based on partial data. If data is\n partial, it is set to true.

" + "smithy.api#documentation": "

The timestamp of when the domain was most recently edited.

", + "smithy.api#required": {} } }, - "Value": { + "Tags": { + "target": "com.amazonaws.customerprofiles#TagMap", + "traits": { + "smithy.api#documentation": "

The tags used to organize, track, or control access for this resource.

" + } + }, + "ObjectTypeNames": { + "target": "com.amazonaws.customerprofiles#ObjectTypeNames", + "traits": { + "smithy.api#documentation": "

A map in which each key is an event type from an external application such as Segment or Shopify, and each value is an ObjectTypeName (template) used to ingest the event.\nIt supports the following event types: SegmentIdentify, ShopifyCreateCustomers, ShopifyUpdateCustomers, ShopifyCreateDraftOrders, \nShopifyUpdateDraftOrders, ShopifyCreateOrders, and ShopifyUpdatedOrders.

" + } + }, + "WorkflowId": { "target": "com.amazonaws.customerprofiles#string1To255", "traits": { - "smithy.api#documentation": "

The value of the calculated attribute.

" + "smithy.api#documentation": "

Unique identifier for the workflow.

" + } + }, + "IsUnstructured": { + "target": "com.amazonaws.customerprofiles#optionalBoolean", + "traits": { + "smithy.api#documentation": "

Boolean that shows if the Flow that's associated with the Integration is created in\n Amazon Appflow, or with ObjectTypeName equals _unstructured via API/CLI in\n flowDefinition.

" + } + }, + "RoleArn": { + "target": "com.amazonaws.customerprofiles#RoleArn", + "traits": { + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the IAM role. The Integration uses this role to make\n Customer Profiles requests on your behalf.

" } } }, @@ -4041,13 +5945,13 @@ "smithy.api#output": {} } }, - "com.amazonaws.customerprofiles#GetDomain": { + "com.amazonaws.customerprofiles#GetMatches": { "type": "operation", "input": { - "target": "com.amazonaws.customerprofiles#GetDomainRequest" + "target": "com.amazonaws.customerprofiles#GetMatchesRequest" }, "output": { - "target": "com.amazonaws.customerprofiles#GetDomainResponse" + "target": "com.amazonaws.customerprofiles#GetMatchesResponse" }, "errors": [ { @@ -4067,17 +5971,31 @@ } ], "traits": { - "smithy.api#documentation": "

Returns information about a specific domain.

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

Before calling this API, use CreateDomain or\n UpdateDomain to\n enable identity resolution: set Matching to true.

\n

GetMatches returns potentially matching profiles, based on the results of the latest run\n of a machine learning process.

\n \n

The process of matching duplicate profiles. If Matching = true, Amazon Connect Customer Profiles starts a weekly\nbatch process called Identity Resolution Job. If you do not specify a date and time for Identity Resolution Job to run, by default it runs every \nSaturday at 12AM UTC to detect duplicate profiles in your domains.

\n

After the Identity Resolution Job completes, use the \nGetMatches\nAPI to return and review the results. Or, if you have configured ExportingConfig in the MatchingRequest, you can download the results from\nS3.

\n
\n

Amazon Connect uses the following profile attributes to identify matches:

\n
    \n
  • \n

    PhoneNumber

    \n
  • \n
  • \n

    HomePhoneNumber

    \n
  • \n
  • \n

    BusinessPhoneNumber

    \n
  • \n
  • \n

    MobilePhoneNumber

    \n
  • \n
  • \n

    EmailAddress

    \n
  • \n
  • \n

    PersonalEmailAddress

    \n
  • \n
  • \n

    BusinessEmailAddress

    \n
  • \n
  • \n

    FullName

    \n
  • \n
\n

For example, two or more profiles—with spelling mistakes such as John Doe and Jhn Doe, or different casing\n email addresses such as JOHN_DOE@ANYCOMPANY.COM and\n johndoe@anycompany.com, or different phone number\n formats such as 555-010-0000 and +1-555-010-0000—can be detected as belonging to the same customer John Doe and merged into a unified profile.

", "smithy.api#http": { "method": "GET", - "uri": "/domains/{DomainName}", + "uri": "/domains/{DomainName}/matches", "code": 200 } } }, - "com.amazonaws.customerprofiles#GetDomainRequest": { + "com.amazonaws.customerprofiles#GetMatchesRequest": { "type": "structure", "members": { + "NextToken": { + "target": "com.amazonaws.customerprofiles#token", + "traits": { + "smithy.api#documentation": "

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

", + "smithy.api#httpQuery": "next-token" + } + }, + "MaxResults": { + "target": "com.amazonaws.customerprofiles#maxSize100", + "traits": { + "smithy.api#documentation": "

The maximum number of results to return per page.

", + "smithy.api#httpQuery": "max-results" + } + }, "DomainName": { "target": "com.amazonaws.customerprofiles#name", "traits": { @@ -4091,70 +6009,31 @@ "smithy.api#input": {} } }, - "com.amazonaws.customerprofiles#GetDomainResponse": { + "com.amazonaws.customerprofiles#GetMatchesResponse": { "type": "structure", "members": { - "DomainName": { - "target": "com.amazonaws.customerprofiles#name", - "traits": { - "smithy.api#documentation": "

The unique name of the domain.

", - "smithy.api#required": {} - } - }, - "DefaultExpirationDays": { - "target": "com.amazonaws.customerprofiles#expirationDaysInteger", - "traits": { - "smithy.api#documentation": "

The default number of days until the data within the domain expires.

" - } - }, - "DefaultEncryptionKey": { - "target": "com.amazonaws.customerprofiles#encryptionKey", - "traits": { - "smithy.api#documentation": "

The default encryption key, which is an AWS managed key, is used when no specific type\n of encryption key is specified. It is used to encrypt all data before it is placed in\n permanent or semi-permanent storage.

" - } - }, - "DeadLetterQueueUrl": { - "target": "com.amazonaws.customerprofiles#sqsQueueUrl", - "traits": { - "smithy.api#documentation": "

The URL of the SQS dead letter queue, which is used for reporting errors associated with\n ingesting data from third party applications.

" - } - }, - "Stats": { - "target": "com.amazonaws.customerprofiles#DomainStats", - "traits": { - "smithy.api#documentation": "

Usage-specific statistics about the domain.

" - } - }, - "Matching": { - "target": "com.amazonaws.customerprofiles#MatchingResponse", - "traits": { - "smithy.api#documentation": "

The process of matching duplicate profiles. If Matching = true, Amazon Connect Customer Profiles starts a weekly\nbatch process called Identity Resolution Job. If you do not specify a date and time for Identity Resolution Job to run, by default it runs every \nSaturday at 12AM UTC to detect duplicate profiles in your domains.

\n

After the Identity Resolution Job completes, use the \nGetMatches\nAPI to return and review the results. Or, if you have configured ExportingConfig in the MatchingRequest, you can download the results from\nS3.

" - } - }, - "RuleBasedMatching": { - "target": "com.amazonaws.customerprofiles#RuleBasedMatchingResponse", + "NextToken": { + "target": "com.amazonaws.customerprofiles#token", "traits": { - "smithy.api#documentation": "

The process of matching duplicate profiles using the Rule-Based matching. If\n RuleBasedMatching = true, Amazon Connect Customer Profiles will start\n to match and merge your profiles according to your configuration in the\n RuleBasedMatchingRequest. You can use the ListRuleBasedMatches\n and GetSimilarProfiles API to return and review the results. Also, if you have\n configured ExportingConfig in the RuleBasedMatchingRequest, you\n can download the results from S3.

" + "smithy.api#documentation": "

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

" } }, - "CreatedAt": { + "MatchGenerationDate": { "target": "com.amazonaws.customerprofiles#timestamp", "traits": { - "smithy.api#documentation": "

The timestamp of when the domain was created.

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

The timestamp this version of Match Result generated.

" } }, - "LastUpdatedAt": { - "target": "com.amazonaws.customerprofiles#timestamp", + "PotentialMatches": { + "target": "com.amazonaws.customerprofiles#matchesNumber", "traits": { - "smithy.api#documentation": "

The timestamp of when the domain was most recently edited.

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

The number of potential matches found.

" } }, - "Tags": { - "target": "com.amazonaws.customerprofiles#TagMap", + "Matches": { + "target": "com.amazonaws.customerprofiles#MatchesList", "traits": { - "smithy.api#documentation": "

The tags used to organize, track, or control access for this resource.

" + "smithy.api#documentation": "

The list of matched profiles for this instance.

" } } }, @@ -4162,13 +6041,13 @@ "smithy.api#output": {} } }, - "com.amazonaws.customerprofiles#GetEventStream": { + "com.amazonaws.customerprofiles#GetProfileObjectType": { "type": "operation", "input": { - "target": "com.amazonaws.customerprofiles#GetEventStreamRequest" + "target": "com.amazonaws.customerprofiles#GetProfileObjectTypeRequest" }, "output": { - "target": "com.amazonaws.customerprofiles#GetEventStreamResponse" + "target": "com.amazonaws.customerprofiles#GetProfileObjectTypeResponse" }, "errors": [ { @@ -4188,15 +6067,15 @@ } ], "traits": { - "smithy.api#documentation": "

Returns information about the specified event stream in a specific domain.

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

Returns the object types for a specific domain.

", "smithy.api#http": { "method": "GET", - "uri": "/domains/{DomainName}/event-streams/{EventStreamName}", + "uri": "/domains/{DomainName}/object-types/{ObjectTypeName}", "code": 200 } } }, - "com.amazonaws.customerprofiles#GetEventStreamRequest": { + "com.amazonaws.customerprofiles#GetProfileObjectTypeRequest": { "type": "structure", "members": { "DomainName": { @@ -4207,10 +6086,10 @@ "smithy.api#required": {} } }, - "EventStreamName": { - "target": "com.amazonaws.customerprofiles#name", + "ObjectTypeName": { + "target": "com.amazonaws.customerprofiles#typeName", "traits": { - "smithy.api#documentation": "

The name of the event stream provided during create operations.

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

The name of the profile object type.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -4220,48 +6099,88 @@ "smithy.api#input": {} } }, - "com.amazonaws.customerprofiles#GetEventStreamResponse": { + "com.amazonaws.customerprofiles#GetProfileObjectTypeResponse": { "type": "structure", "members": { - "DomainName": { - "target": "com.amazonaws.customerprofiles#name", + "ObjectTypeName": { + "target": "com.amazonaws.customerprofiles#typeName", "traits": { - "smithy.api#documentation": "

The unique name of the domain.

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

The name of the profile object type.

", "smithy.api#required": {} } }, - "EventStreamArn": { - "target": "com.amazonaws.customerprofiles#string1To255", + "Description": { + "target": "com.amazonaws.customerprofiles#sensitiveText", "traits": { - "smithy.api#documentation": "

A unique identifier for the event stream.

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

The description of the profile object type.

", "smithy.api#required": {} } }, - "CreatedAt": { - "target": "com.amazonaws.customerprofiles#timestamp", + "TemplateId": { + "target": "com.amazonaws.customerprofiles#name", "traits": { - "smithy.api#documentation": "

The timestamp of when the export was created.

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

A unique identifier for the object template.

" } }, - "State": { - "target": "com.amazonaws.customerprofiles#EventStreamState", + "ExpirationDays": { + "target": "com.amazonaws.customerprofiles#expirationDaysInteger", "traits": { - "smithy.api#documentation": "

The operational state of destination stream for export.

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

The number of days until the data in the object expires.

" } }, - "StoppedSince": { + "EncryptionKey": { + "target": "com.amazonaws.customerprofiles#encryptionKey", + "traits": { + "smithy.api#documentation": "

The customer-provided key to encrypt the profile object that will be created in this\n profile object type.

" + } + }, + "AllowProfileCreation": { + "target": "com.amazonaws.customerprofiles#boolean", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

Indicates whether a profile should be created when data is received if one doesn’t exist\n for an object of this type. The default is FALSE. If the AllowProfileCreation\n flag is set to FALSE, then the service tries to fetch a standard profile and\n associate this object with the profile. If it is set to TRUE, and if no match\n is found, then the service creates a new standard profile.

" + } + }, + "SourceLastUpdatedTimestampFormat": { + "target": "com.amazonaws.customerprofiles#string1To255", + "traits": { + "smithy.api#documentation": "

The format of your sourceLastUpdatedTimestamp that was previously set\n up.

" + } + }, + "MaxAvailableProfileObjectCount": { + "target": "com.amazonaws.customerprofiles#minSize0", + "traits": { + "smithy.api#documentation": "

The amount of provisioned profile object max count available.

" + } + }, + "MaxProfileObjectCount": { + "target": "com.amazonaws.customerprofiles#minSize1", + "traits": { + "smithy.api#documentation": "

The amount of profile object max count assigned to the object type.

" + } + }, + "Fields": { + "target": "com.amazonaws.customerprofiles#FieldMap", + "traits": { + "smithy.api#documentation": "

A map of the name and ObjectType field.

" + } + }, + "Keys": { + "target": "com.amazonaws.customerprofiles#KeyMap", + "traits": { + "smithy.api#documentation": "

A list of unique keys that can be used to map data to the profile.

" + } + }, + "CreatedAt": { "target": "com.amazonaws.customerprofiles#timestamp", "traits": { - "smithy.api#documentation": "

The timestamp when the State changed to STOPPED.

" + "smithy.api#documentation": "

The timestamp of when the domain was created.

" } }, - "DestinationDetails": { - "target": "com.amazonaws.customerprofiles#EventStreamDestinationDetails", + "LastUpdatedAt": { + "target": "com.amazonaws.customerprofiles#timestamp", "traits": { - "smithy.api#documentation": "

Details regarding the Kinesis stream.

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

The timestamp of when the domain was most recently edited.

" } }, "Tags": { @@ -4275,13 +6194,13 @@ "smithy.api#output": {} } }, - "com.amazonaws.customerprofiles#GetIdentityResolutionJob": { + "com.amazonaws.customerprofiles#GetProfileObjectTypeTemplate": { "type": "operation", "input": { - "target": "com.amazonaws.customerprofiles#GetIdentityResolutionJobRequest" + "target": "com.amazonaws.customerprofiles#GetProfileObjectTypeTemplateRequest" }, "output": { - "target": "com.amazonaws.customerprofiles#GetIdentityResolutionJobResponse" + "target": "com.amazonaws.customerprofiles#GetProfileObjectTypeTemplateResponse" }, "errors": [ { @@ -4301,29 +6220,21 @@ } ], "traits": { - "smithy.api#documentation": "

Returns information about an Identity Resolution Job in a specific domain.

\n

Identity Resolution Jobs are set up using the Amazon Connect admin console. For more information, see Use\n Identity Resolution to consolidate similar profiles.

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

Returns the template information for a specific object type.

\n

A template is a predefined ProfileObjectType, such as “Salesforce-Account” or\n “Salesforce-Contact.” When a user sends a ProfileObject, using the PutProfileObject API,\n with an ObjectTypeName that matches one of the TemplateIds, it uses the mappings from the\n template.

", "smithy.api#http": { "method": "GET", - "uri": "/domains/{DomainName}/identity-resolution-jobs/{JobId}", + "uri": "/templates/{TemplateId}", "code": 200 } } }, - "com.amazonaws.customerprofiles#GetIdentityResolutionJobRequest": { + "com.amazonaws.customerprofiles#GetProfileObjectTypeTemplateRequest": { "type": "structure", "members": { - "DomainName": { + "TemplateId": { "target": "com.amazonaws.customerprofiles#name", "traits": { - "smithy.api#documentation": "

The unique name of the domain.

", - "smithy.api#httpLabel": {}, - "smithy.api#required": {} - } - }, - "JobId": { - "target": "com.amazonaws.customerprofiles#uuid", - "traits": { - "smithy.api#documentation": "

The unique identifier of the Identity Resolution Job.

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

A unique identifier for the object template.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -4333,73 +6244,50 @@ "smithy.api#input": {} } }, - "com.amazonaws.customerprofiles#GetIdentityResolutionJobResponse": { + "com.amazonaws.customerprofiles#GetProfileObjectTypeTemplateResponse": { "type": "structure", "members": { - "DomainName": { + "TemplateId": { "target": "com.amazonaws.customerprofiles#name", "traits": { - "smithy.api#documentation": "

The unique name of the domain.

" - } - }, - "JobId": { - "target": "com.amazonaws.customerprofiles#uuid", - "traits": { - "smithy.api#documentation": "

The unique identifier of the Identity Resolution Job.

" - } - }, - "Status": { - "target": "com.amazonaws.customerprofiles#IdentityResolutionJobStatus", - "traits": { - "smithy.api#documentation": "

The status of the Identity Resolution Job.

\n
    \n
  • \n

    \n PENDING: The Identity Resolution Job is scheduled but has not started yet. If you turn\n off the Identity Resolution feature in your domain, jobs in the PENDING state are\n deleted.

    \n
  • \n
  • \n

    \n PREPROCESSING: The Identity Resolution Job is loading your data.

    \n
  • \n
  • \n

    \n FIND_MATCHING: The Identity Resolution Job is using the machine learning model to\n identify profiles that belong to the same matching group.

    \n
  • \n
  • \n

    \n MERGING: The Identity Resolution Job is merging duplicate profiles.

    \n
  • \n
  • \n

    \n COMPLETED: The Identity Resolution Job completed successfully.

    \n
  • \n
  • \n

    \n PARTIAL_SUCCESS: There's a system error and not all of the data is\n merged. The Identity Resolution Job writes a message indicating the source of the problem.

    \n
  • \n
  • \n

    \n FAILED: The Identity Resolution Job did not merge any data. It writes a message\n indicating the source of the problem.

    \n
  • \n
" - } - }, - "Message": { - "target": "com.amazonaws.customerprofiles#stringTo2048", - "traits": { - "smithy.api#documentation": "

The error messages that are generated when the Identity Resolution Job runs.

" - } - }, - "JobStartTime": { - "target": "com.amazonaws.customerprofiles#timestamp", - "traits": { - "smithy.api#documentation": "

The timestamp of when the Identity Resolution Job was started or will be started.

" + "smithy.api#documentation": "

A unique identifier for the object template.

" } }, - "JobEndTime": { - "target": "com.amazonaws.customerprofiles#timestamp", + "SourceName": { + "target": "com.amazonaws.customerprofiles#name", "traits": { - "smithy.api#documentation": "

The timestamp of when the Identity Resolution Job was completed.

" + "smithy.api#documentation": "

The name of the source of the object template.

" } }, - "LastUpdatedAt": { - "target": "com.amazonaws.customerprofiles#timestamp", + "SourceObject": { + "target": "com.amazonaws.customerprofiles#name", "traits": { - "smithy.api#documentation": "

The timestamp of when the Identity Resolution Job was most recently edited.

" + "smithy.api#documentation": "

The source of the object template.

" } }, - "JobExpirationTime": { - "target": "com.amazonaws.customerprofiles#timestamp", + "AllowProfileCreation": { + "target": "com.amazonaws.customerprofiles#boolean", "traits": { - "smithy.api#documentation": "

The timestamp of when the Identity Resolution Job will expire.

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

Indicates whether a profile should be created when data is received if one doesn’t exist\n for an object of this type. The default is FALSE. If the AllowProfileCreation\n flag is set to FALSE, then the service tries to fetch a standard profile and\n associate this object with the profile. If it is set to TRUE, and if no match\n is found, then the service creates a new standard profile.

" } }, - "AutoMerging": { - "target": "com.amazonaws.customerprofiles#AutoMerging", + "SourceLastUpdatedTimestampFormat": { + "target": "com.amazonaws.customerprofiles#string1To255", "traits": { - "smithy.api#documentation": "

Configuration settings for how to perform the auto-merging of profiles.

" + "smithy.api#documentation": "

The format of your sourceLastUpdatedTimestamp that was previously set\n up.

" } }, - "ExportingLocation": { - "target": "com.amazonaws.customerprofiles#ExportingLocation", + "Fields": { + "target": "com.amazonaws.customerprofiles#FieldMap", "traits": { - "smithy.api#documentation": "

The S3 location where the Identity Resolution Job writes result files.

" + "smithy.api#documentation": "

A map of the name and ObjectType field.

" } }, - "JobStats": { - "target": "com.amazonaws.customerprofiles#JobStats", + "Keys": { + "target": "com.amazonaws.customerprofiles#KeyMap", "traits": { - "smithy.api#documentation": "

Statistics about the Identity Resolution Job.

" + "smithy.api#documentation": "

A list of unique keys that can be used to map data to the profile.

" } } }, @@ -4407,13 +6295,13 @@ "smithy.api#output": {} } }, - "com.amazonaws.customerprofiles#GetIntegration": { + "com.amazonaws.customerprofiles#GetSegmentDefinition": { "type": "operation", "input": { - "target": "com.amazonaws.customerprofiles#GetIntegrationRequest" + "target": "com.amazonaws.customerprofiles#GetSegmentDefinitionRequest" }, "output": { - "target": "com.amazonaws.customerprofiles#GetIntegrationResponse" + "target": "com.amazonaws.customerprofiles#GetSegmentDefinitionResponse" }, "errors": [ { @@ -4433,15 +6321,15 @@ } ], "traits": { - "smithy.api#documentation": "

Returns an integration for a domain.

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

Gets a segment definition from the domain.

", "smithy.api#http": { - "method": "POST", - "uri": "/domains/{DomainName}/integrations", + "method": "GET", + "uri": "/domains/{DomainName}/segment-definitions/{SegmentDefinitionName}", "code": 200 } } }, - "com.amazonaws.customerprofiles#GetIntegrationRequest": { + "com.amazonaws.customerprofiles#GetSegmentDefinitionRequest": { "type": "structure", "members": { "DomainName": { @@ -4452,10 +6340,11 @@ "smithy.api#required": {} } }, - "Uri": { - "target": "com.amazonaws.customerprofiles#string1To255", + "SegmentDefinitionName": { + "target": "com.amazonaws.customerprofiles#name", "traits": { - "smithy.api#documentation": "

The URI of the S3 bucket or any other type of data source.

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

The unique name of the segment definition.

", + "smithy.api#httpLabel": {}, "smithy.api#required": {} } } @@ -4464,71 +6353,57 @@ "smithy.api#input": {} } }, - "com.amazonaws.customerprofiles#GetIntegrationResponse": { + "com.amazonaws.customerprofiles#GetSegmentDefinitionResponse": { "type": "structure", "members": { - "DomainName": { + "SegmentDefinitionName": { "target": "com.amazonaws.customerprofiles#name", "traits": { - "smithy.api#documentation": "

The unique name of the domain.

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

The name of the segment definition.

", + "smithy.api#jsonName": "SegmentDefinitionName" } }, - "Uri": { + "DisplayName": { "target": "com.amazonaws.customerprofiles#string1To255", "traits": { - "smithy.api#documentation": "

The URI of the S3 bucket or any other type of data source.

", - "smithy.api#required": {} - } - }, - "ObjectTypeName": { - "target": "com.amazonaws.customerprofiles#typeName", - "traits": { - "smithy.api#documentation": "

The name of the profile object type.

" - } - }, - "CreatedAt": { - "target": "com.amazonaws.customerprofiles#timestamp", - "traits": { - "smithy.api#documentation": "

The timestamp of when the domain was created.

", - "smithy.api#required": {} - } - }, - "LastUpdatedAt": { - "target": "com.amazonaws.customerprofiles#timestamp", - "traits": { - "smithy.api#documentation": "

The timestamp of when the domain was most recently edited.

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

The display name of the segment definition.

", + "smithy.api#jsonName": "DisplayName" } }, - "Tags": { - "target": "com.amazonaws.customerprofiles#TagMap", + "Description": { + "target": "com.amazonaws.customerprofiles#sensitiveText", "traits": { - "smithy.api#documentation": "

The tags used to organize, track, or control access for this resource.

" + "smithy.api#documentation": "

The description of the segment definition.

", + "smithy.api#jsonName": "Description" } }, - "ObjectTypeNames": { - "target": "com.amazonaws.customerprofiles#ObjectTypeNames", + "SegmentGroups": { + "target": "com.amazonaws.customerprofiles#SegmentGroup", "traits": { - "smithy.api#documentation": "

A map in which each key is an event type from an external application such as Segment or Shopify, and each value is an ObjectTypeName (template) used to ingest the event.\nIt supports the following event types: SegmentIdentify, ShopifyCreateCustomers, ShopifyUpdateCustomers, ShopifyCreateDraftOrders, \nShopifyUpdateDraftOrders, ShopifyCreateOrders, and ShopifyUpdatedOrders.

" + "smithy.api#documentation": "

The segment criteria associated with this definition.

", + "smithy.api#jsonName": "SegmentGroups" } }, - "WorkflowId": { - "target": "com.amazonaws.customerprofiles#string1To255", + "SegmentDefinitionArn": { + "target": "com.amazonaws.customerprofiles#SegmentDefinitionArn", "traits": { - "smithy.api#documentation": "

Unique identifier for the workflow.

" + "smithy.api#documentation": "

The arn of the segment definition.

", + "smithy.api#jsonName": "SegmentDefinitionArn", + "smithy.api#required": {} } }, - "IsUnstructured": { - "target": "com.amazonaws.customerprofiles#optionalBoolean", + "CreatedAt": { + "target": "com.amazonaws.customerprofiles#timestamp", "traits": { - "smithy.api#documentation": "

Boolean that shows if the Flow that's associated with the Integration is created in\n Amazon Appflow, or with ObjectTypeName equals _unstructured via API/CLI in\n flowDefinition.

" + "smithy.api#documentation": "

The timestamp of when the segment definition was created.

", + "smithy.api#jsonName": "CreatedAt" } }, - "RoleArn": { - "target": "com.amazonaws.customerprofiles#RoleArn", + "Tags": { + "target": "com.amazonaws.customerprofiles#TagMap", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the IAM role. The Integration uses this role to make\n Customer Profiles requests on your behalf.

" + "smithy.api#documentation": "

The tags used to organize, track, or control access for this resource.

", + "smithy.api#jsonName": "Tags" } } }, @@ -4536,13 +6411,13 @@ "smithy.api#output": {} } }, - "com.amazonaws.customerprofiles#GetMatches": { + "com.amazonaws.customerprofiles#GetSegmentEstimate": { "type": "operation", "input": { - "target": "com.amazonaws.customerprofiles#GetMatchesRequest" + "target": "com.amazonaws.customerprofiles#GetSegmentEstimateRequest" }, "output": { - "target": "com.amazonaws.customerprofiles#GetMatchesResponse" + "target": "com.amazonaws.customerprofiles#GetSegmentEstimateResponse" }, "errors": [ { @@ -4562,31 +6437,17 @@ } ], "traits": { - "smithy.api#documentation": "

Before calling this API, use CreateDomain or\n UpdateDomain to\n enable identity resolution: set Matching to true.

\n

GetMatches returns potentially matching profiles, based on the results of the latest run\n of a machine learning process.

\n \n

The process of matching duplicate profiles. If Matching = true, Amazon Connect Customer Profiles starts a weekly\nbatch process called Identity Resolution Job. If you do not specify a date and time for Identity Resolution Job to run, by default it runs every \nSaturday at 12AM UTC to detect duplicate profiles in your domains.

\n

After the Identity Resolution Job completes, use the \nGetMatches\nAPI to return and review the results. Or, if you have configured ExportingConfig in the MatchingRequest, you can download the results from\nS3.

\n
\n

Amazon Connect uses the following profile attributes to identify matches:

\n
    \n
  • \n

    PhoneNumber

    \n
  • \n
  • \n

    HomePhoneNumber

    \n
  • \n
  • \n

    BusinessPhoneNumber

    \n
  • \n
  • \n

    MobilePhoneNumber

    \n
  • \n
  • \n

    EmailAddress

    \n
  • \n
  • \n

    PersonalEmailAddress

    \n
  • \n
  • \n

    BusinessEmailAddress

    \n
  • \n
  • \n

    FullName

    \n
  • \n
\n

For example, two or more profiles—with spelling mistakes such as John Doe and Jhn Doe, or different casing\n email addresses such as JOHN_DOE@ANYCOMPANY.COM and\n johndoe@anycompany.com, or different phone number\n formats such as 555-010-0000 and +1-555-010-0000—can be detected as belonging to the same customer John Doe and merged into a unified profile.

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

Gets the result of a segment estimate query.

", "smithy.api#http": { "method": "GET", - "uri": "/domains/{DomainName}/matches", + "uri": "/domains/{DomainName}/segment-estimates/{EstimateId}", "code": 200 } } }, - "com.amazonaws.customerprofiles#GetMatchesRequest": { + "com.amazonaws.customerprofiles#GetSegmentEstimateRequest": { "type": "structure", "members": { - "NextToken": { - "target": "com.amazonaws.customerprofiles#token", - "traits": { - "smithy.api#documentation": "

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

", - "smithy.api#httpQuery": "next-token" - } - }, - "MaxResults": { - "target": "com.amazonaws.customerprofiles#maxSize100", - "traits": { - "smithy.api#documentation": "

The maximum number of results to return per page.

", - "smithy.api#httpQuery": "max-results" - } - }, "DomainName": { "target": "com.amazonaws.customerprofiles#name", "traits": { @@ -4594,37 +6455,59 @@ "smithy.api#httpLabel": {}, "smithy.api#required": {} } + }, + "EstimateId": { + "target": "com.amazonaws.customerprofiles#string1To255", + "traits": { + "smithy.api#documentation": "

The query Id passed by a previous CreateSegmentEstimate operation.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } } }, "traits": { "smithy.api#input": {} } }, - "com.amazonaws.customerprofiles#GetMatchesResponse": { + "com.amazonaws.customerprofiles#GetSegmentEstimateResponse": { "type": "structure", "members": { - "NextToken": { - "target": "com.amazonaws.customerprofiles#token", + "DomainName": { + "target": "com.amazonaws.customerprofiles#name", "traits": { - "smithy.api#documentation": "

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

" + "smithy.api#documentation": "

The unique name of the domain.

" } }, - "MatchGenerationDate": { - "target": "com.amazonaws.customerprofiles#timestamp", + "EstimateId": { + "target": "com.amazonaws.customerprofiles#string1To255", "traits": { - "smithy.api#documentation": "

The timestamp this version of Match Result generated.

" + "smithy.api#documentation": "

The QueryId which is the same as the value passed in QueryId.

" } }, - "PotentialMatches": { - "target": "com.amazonaws.customerprofiles#matchesNumber", + "Status": { + "target": "com.amazonaws.customerprofiles#EstimateStatus", "traits": { - "smithy.api#documentation": "

The number of potential matches found.

" + "smithy.api#documentation": "

The current status of the query.

" } }, - "Matches": { - "target": "com.amazonaws.customerprofiles#MatchesList", + "Estimate": { + "target": "com.amazonaws.customerprofiles#string1To255", "traits": { - "smithy.api#documentation": "

The list of matched profiles for this instance.

" + "smithy.api#documentation": "

The estimated number of profiles contained in the segment.

" + } + }, + "Message": { + "target": "com.amazonaws.customerprofiles#string1To255", + "traits": { + "smithy.api#documentation": "

The error message if there is any error.

" + } + }, + "StatusCode": { + "target": "com.amazonaws.customerprofiles#StatusCode", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

The status code of the segment estimate.

", + "smithy.api#httpResponseCode": {} } } }, @@ -4632,13 +6515,13 @@ "smithy.api#output": {} } }, - "com.amazonaws.customerprofiles#GetProfileObjectType": { + "com.amazonaws.customerprofiles#GetSegmentMembership": { "type": "operation", "input": { - "target": "com.amazonaws.customerprofiles#GetProfileObjectTypeRequest" + "target": "com.amazonaws.customerprofiles#GetSegmentMembershipRequest" }, "output": { - "target": "com.amazonaws.customerprofiles#GetProfileObjectTypeResponse" + "target": "com.amazonaws.customerprofiles#GetSegmentMembershipResponse" }, "errors": [ { @@ -4658,15 +6541,19 @@ } ], "traits": { - "smithy.api#documentation": "

Returns the object types for a specific domain.

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

Determines if the given profiles are within a segment.

", "smithy.api#http": { - "method": "GET", - "uri": "/domains/{DomainName}/object-types/{ObjectTypeName}", + "method": "POST", + "uri": "/domains/{DomainName}/segments/{SegmentDefinitionName}/membership", "code": 200 - } + }, + "smithy.api#idempotent": {} } }, - "com.amazonaws.customerprofiles#GetProfileObjectTypeRequest": { + "com.amazonaws.customerprofiles#GetSegmentMembershipMessage": { + "type": "string" + }, + "com.amazonaws.customerprofiles#GetSegmentMembershipRequest": { "type": "structure", "members": { "DomainName": { @@ -4677,107 +6564,49 @@ "smithy.api#required": {} } }, - "ObjectTypeName": { - "target": "com.amazonaws.customerprofiles#typeName", + "SegmentDefinitionName": { + "target": "com.amazonaws.customerprofiles#name", "traits": { - "smithy.api#documentation": "

The name of the profile object type.

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

The Id of the wanted segment. Needs to be a valid, and existing segment Id.

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

The list of profile IDs to query for.

", + "smithy.api#jsonName": "ProfileIds", + "smithy.api#required": {} + } } }, "traits": { "smithy.api#input": {} } }, - "com.amazonaws.customerprofiles#GetProfileObjectTypeResponse": { + "com.amazonaws.customerprofiles#GetSegmentMembershipResponse": { "type": "structure", "members": { - "ObjectTypeName": { - "target": "com.amazonaws.customerprofiles#typeName", - "traits": { - "smithy.api#documentation": "

The name of the profile object type.

", - "smithy.api#required": {} - } - }, - "Description": { - "target": "com.amazonaws.customerprofiles#sensitiveText", - "traits": { - "smithy.api#documentation": "

The description of the profile object type.

", - "smithy.api#required": {} - } - }, - "TemplateId": { + "SegmentDefinitionName": { "target": "com.amazonaws.customerprofiles#name", "traits": { - "smithy.api#documentation": "

A unique identifier for the object template.

" - } - }, - "ExpirationDays": { - "target": "com.amazonaws.customerprofiles#expirationDaysInteger", - "traits": { - "smithy.api#documentation": "

The number of days until the data in the object expires.

" - } - }, - "EncryptionKey": { - "target": "com.amazonaws.customerprofiles#encryptionKey", - "traits": { - "smithy.api#documentation": "

The customer-provided key to encrypt the profile object that will be created in this\n profile object type.

" - } - }, - "AllowProfileCreation": { - "target": "com.amazonaws.customerprofiles#boolean", - "traits": { - "smithy.api#default": false, - "smithy.api#documentation": "

Indicates whether a profile should be created when data is received if one doesn’t exist\n for an object of this type. The default is FALSE. If the AllowProfileCreation\n flag is set to FALSE, then the service tries to fetch a standard profile and\n associate this object with the profile. If it is set to TRUE, and if no match\n is found, then the service creates a new standard profile.

" - } - }, - "SourceLastUpdatedTimestampFormat": { - "target": "com.amazonaws.customerprofiles#string1To255", - "traits": { - "smithy.api#documentation": "

The format of your sourceLastUpdatedTimestamp that was previously set\n up.

" - } - }, - "MaxAvailableProfileObjectCount": { - "target": "com.amazonaws.customerprofiles#minSize0", - "traits": { - "smithy.api#documentation": "

The amount of provisioned profile object max count available.

" - } - }, - "MaxProfileObjectCount": { - "target": "com.amazonaws.customerprofiles#minSize1", - "traits": { - "smithy.api#documentation": "

The amount of profile object max count assigned to the object type.

" - } - }, - "Fields": { - "target": "com.amazonaws.customerprofiles#FieldMap", - "traits": { - "smithy.api#documentation": "

A map of the name and ObjectType field.

" - } - }, - "Keys": { - "target": "com.amazonaws.customerprofiles#KeyMap", - "traits": { - "smithy.api#documentation": "

A list of unique keys that can be used to map data to the profile.

" - } - }, - "CreatedAt": { - "target": "com.amazonaws.customerprofiles#timestamp", - "traits": { - "smithy.api#documentation": "

The timestamp of when the domain was created.

" + "smithy.api#documentation": "

The unique name of the segment definition.

", + "smithy.api#jsonName": "SegmentDefinitionName" } }, - "LastUpdatedAt": { - "target": "com.amazonaws.customerprofiles#timestamp", + "Profiles": { + "target": "com.amazonaws.customerprofiles#Profiles", "traits": { - "smithy.api#documentation": "

The timestamp of when the domain was most recently edited.

" + "smithy.api#documentation": "

An array of maps where each contains a response per profile requested.

", + "smithy.api#jsonName": "Profiles" } }, - "Tags": { - "target": "com.amazonaws.customerprofiles#TagMap", + "Failures": { + "target": "com.amazonaws.customerprofiles#Failures", "traits": { - "smithy.api#documentation": "

The tags used to organize, track, or control access for this resource.

" + "smithy.api#documentation": "

An array of maps where each contains a response per profile failed for the request.

", + "smithy.api#jsonName": "Failures" } } }, @@ -4785,13 +6614,16 @@ "smithy.api#output": {} } }, - "com.amazonaws.customerprofiles#GetProfileObjectTypeTemplate": { + "com.amazonaws.customerprofiles#GetSegmentMembershipStatus": { + "type": "integer" + }, + "com.amazonaws.customerprofiles#GetSegmentSnapshot": { "type": "operation", "input": { - "target": "com.amazonaws.customerprofiles#GetProfileObjectTypeTemplateRequest" + "target": "com.amazonaws.customerprofiles#GetSegmentSnapshotRequest" }, "output": { - "target": "com.amazonaws.customerprofiles#GetProfileObjectTypeTemplateResponse" + "target": "com.amazonaws.customerprofiles#GetSegmentSnapshotResponse" }, "errors": [ { @@ -4811,21 +6643,37 @@ } ], "traits": { - "smithy.api#documentation": "

Returns the template information for a specific object type.

\n

A template is a predefined ProfileObjectType, such as “Salesforce-Account” or\n “Salesforce-Contact.” When a user sends a ProfileObject, using the PutProfileObject API,\n with an ObjectTypeName that matches one of the TemplateIds, it uses the mappings from the\n template.

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

Retrieve the latest status of a segment snapshot.

", "smithy.api#http": { "method": "GET", - "uri": "/templates/{TemplateId}", + "uri": "/domains/{DomainName}/segments/{SegmentDefinitionName}/snapshots/{SnapshotId}", "code": 200 } } }, - "com.amazonaws.customerprofiles#GetProfileObjectTypeTemplateRequest": { + "com.amazonaws.customerprofiles#GetSegmentSnapshotRequest": { "type": "structure", "members": { - "TemplateId": { + "DomainName": { "target": "com.amazonaws.customerprofiles#name", "traits": { - "smithy.api#documentation": "

A unique identifier for the object template.

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

The unique identifier of the domain.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "SegmentDefinitionName": { + "target": "com.amazonaws.customerprofiles#name", + "traits": { + "smithy.api#documentation": "

The unique name of the segment definition.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "SnapshotId": { + "target": "com.amazonaws.customerprofiles#uuid", + "traits": { + "smithy.api#documentation": "

The unique identifier of the segment snapshot.

", "smithy.api#httpLabel": {}, "smithy.api#required": {} } @@ -4835,50 +6683,52 @@ "smithy.api#input": {} } }, - "com.amazonaws.customerprofiles#GetProfileObjectTypeTemplateResponse": { + "com.amazonaws.customerprofiles#GetSegmentSnapshotResponse": { "type": "structure", "members": { - "TemplateId": { - "target": "com.amazonaws.customerprofiles#name", + "SnapshotId": { + "target": "com.amazonaws.customerprofiles#uuid", "traits": { - "smithy.api#documentation": "

A unique identifier for the object template.

" + "smithy.api#documentation": "

The unique identifier of the segment snapshot.

", + "smithy.api#required": {} } }, - "SourceName": { - "target": "com.amazonaws.customerprofiles#name", + "Status": { + "target": "com.amazonaws.customerprofiles#SegmentSnapshotStatus", "traits": { - "smithy.api#documentation": "

The name of the source of the object template.

" + "smithy.api#documentation": "

The status of the asynchronous job for exporting the segment snapshot.

", + "smithy.api#required": {} } }, - "SourceObject": { - "target": "com.amazonaws.customerprofiles#name", + "StatusMessage": { + "target": "com.amazonaws.customerprofiles#string1To1000", "traits": { - "smithy.api#documentation": "

The source of the object template.

" + "smithy.api#documentation": "

The status message of the asynchronous job for exporting the segment snapshot.

" } }, - "AllowProfileCreation": { - "target": "com.amazonaws.customerprofiles#boolean", + "DataFormat": { + "target": "com.amazonaws.customerprofiles#DataFormat", "traits": { - "smithy.api#default": false, - "smithy.api#documentation": "

Indicates whether a profile should be created when data is received if one doesn’t exist\n for an object of this type. The default is FALSE. If the AllowProfileCreation\n flag is set to FALSE, then the service tries to fetch a standard profile and\n associate this object with the profile. If it is set to TRUE, and if no match\n is found, then the service creates a new standard profile.

" + "smithy.api#documentation": "

The format in which the segment will be exported.

", + "smithy.api#required": {} } }, - "SourceLastUpdatedTimestampFormat": { - "target": "com.amazonaws.customerprofiles#string1To255", + "EncryptionKey": { + "target": "com.amazonaws.customerprofiles#encryptionKey", "traits": { - "smithy.api#documentation": "

The format of your sourceLastUpdatedTimestamp that was previously set\n up.

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the KMS key used to encrypt the exported segment.

" } }, - "Fields": { - "target": "com.amazonaws.customerprofiles#FieldMap", + "RoleArn": { + "target": "com.amazonaws.customerprofiles#RoleArn", "traits": { - "smithy.api#documentation": "

A map of the name and ObjectType field.

" + "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the IAM role that allows Customer Profiles service principal to assume the role for conducting KMS and S3 operations.

" } }, - "Keys": { - "target": "com.amazonaws.customerprofiles#KeyMap", + "DestinationUri": { + "target": "com.amazonaws.customerprofiles#string1To255", "traits": { - "smithy.api#documentation": "

A list of unique keys that can be used to map data to the profile.

" + "smithy.api#documentation": "

The destination to which the segment will be exported. This field must be provided if the request is not submitted from the Amazon Connect Admin Website.

" } } }, @@ -4917,6 +6767,12 @@ "method": "POST", "uri": "/domains/{DomainName}/matches", "code": 200 + }, + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "ProfileIds", + "pageSize": "MaxResults" } } }, @@ -5233,6 +7089,56 @@ "smithy.api#output": {} } }, + "com.amazonaws.customerprofiles#Group": { + "type": "structure", + "members": { + "Dimensions": { + "target": "com.amazonaws.customerprofiles#DimensionList", + "traits": { + "smithy.api#documentation": "

Defines the attributes to segment on.

", + "smithy.api#jsonName": "Dimensions" + } + }, + "SourceSegments": { + "target": "com.amazonaws.customerprofiles#SourceSegmentList", + "traits": { + "smithy.api#documentation": "

Defines the starting source of data.

", + "smithy.api#jsonName": "SourceSegments" + } + }, + "SourceType": { + "target": "com.amazonaws.customerprofiles#IncludeOptions", + "traits": { + "smithy.api#default": "ALL", + "smithy.api#documentation": "

Defines how to interact with the source data.

", + "smithy.api#jsonName": "SourceType" + } + }, + "Type": { + "target": "com.amazonaws.customerprofiles#IncludeOptions", + "traits": { + "smithy.api#default": "ALL", + "smithy.api#documentation": "

Defines how to interact with the profiles found in the current filtering.

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

Contains dimensions that determine what to segment on.

" + } + }, + "com.amazonaws.customerprofiles#GroupList": { + "type": "list", + "member": { + "target": "com.amazonaws.customerprofiles#FilterGroup" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 2 + } + } + }, "com.amazonaws.customerprofiles#IdentityResolutionJob": { "type": "structure", "members": { @@ -5342,6 +7248,52 @@ "target": "com.amazonaws.customerprofiles#IdentityResolutionJob" } }, + "com.amazonaws.customerprofiles#Include": { + "type": "enum", + "members": { + "ALL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ALL" + } + }, + "ANY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ANY" + } + }, + "NONE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "NONE" + } + } + } + }, + "com.amazonaws.customerprofiles#IncludeOptions": { + "type": "enum", + "members": { + "ALL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ALL" + } + }, + "ANY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ANY" + } + }, + "NONE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "NONE" + } + } + } + }, "com.amazonaws.customerprofiles#IncrementalPullConfig": { "type": "structure", "members": { @@ -6309,6 +8261,166 @@ "smithy.api#output": {} } }, + "com.amazonaws.customerprofiles#ListObjectTypeAttributeItem": { + "type": "structure", + "members": { + "AttributeName": { + "target": "com.amazonaws.customerprofiles#name", + "traits": { + "smithy.api#documentation": "

Name of the attribute.

", + "smithy.api#required": {} + } + }, + "LastUpdatedAt": { + "target": "com.amazonaws.customerprofiles#timestamp", + "traits": { + "smithy.api#documentation": "

When the attribute was last updated.

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

Item that contains the attribute and when it was last updated.

" + } + }, + "com.amazonaws.customerprofiles#ListObjectTypeAttributes": { + "type": "operation", + "input": { + "target": "com.amazonaws.customerprofiles#ListObjectTypeAttributesRequest" + }, + "output": { + "target": "com.amazonaws.customerprofiles#ListObjectTypeAttributesResponse" + }, + "errors": [ + { + "target": "com.amazonaws.customerprofiles#AccessDeniedException" + }, + { + "target": "com.amazonaws.customerprofiles#BadRequestException" + }, + { + "target": "com.amazonaws.customerprofiles#InternalServerException" + }, + { + "target": "com.amazonaws.customerprofiles#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.customerprofiles#ThrottlingException" + } + ], + "traits": { + "smithy.api#documentation": "

Fetch the possible attribute values given the attribute name.

", + "smithy.api#http": { + "method": "GET", + "uri": "/domains/{DomainName}/object-types/{ObjectTypeName}/attributes", + "code": 200 + }, + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "Items", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.customerprofiles#ListObjectTypeAttributesList": { + "type": "list", + "member": { + "target": "com.amazonaws.customerprofiles#ListObjectTypeAttributeItem" + } + }, + "com.amazonaws.customerprofiles#ListObjectTypeAttributesRequest": { + "type": "structure", + "members": { + "NextToken": { + "target": "com.amazonaws.customerprofiles#token", + "traits": { + "smithy.api#documentation": "

The pagination token from the previous call.

", + "smithy.api#httpQuery": "next-token" + } + }, + "MaxResults": { + "target": "com.amazonaws.customerprofiles#maxSize100", + "traits": { + "smithy.api#documentation": "

The maximum number of objects returned per page.

", + "smithy.api#httpQuery": "max-results" + } + }, + "DomainName": { + "target": "com.amazonaws.customerprofiles#name", + "traits": { + "smithy.api#documentation": "

The unique identifier of the domain.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "ObjectTypeName": { + "target": "com.amazonaws.customerprofiles#typeName", + "traits": { + "smithy.api#documentation": "

The name of the profile object type.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.customerprofiles#ListObjectTypeAttributesResponse": { + "type": "structure", + "members": { + "Items": { + "target": "com.amazonaws.customerprofiles#ListObjectTypeAttributesList", + "traits": { + "smithy.api#documentation": "

The items returned as part of the response.

" + } + }, + "NextToken": { + "target": "com.amazonaws.customerprofiles#token", + "traits": { + "smithy.api#documentation": "

The pagination token from the previous call.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.customerprofiles#ListProfileAttributeValues": { + "type": "operation", + "input": { + "target": "com.amazonaws.customerprofiles#ProfileAttributeValuesRequest" + }, + "output": { + "target": "com.amazonaws.customerprofiles#ProfileAttributeValuesResponse" + }, + "errors": [ + { + "target": "com.amazonaws.customerprofiles#AccessDeniedException" + }, + { + "target": "com.amazonaws.customerprofiles#BadRequestException" + }, + { + "target": "com.amazonaws.customerprofiles#InternalServerException" + }, + { + "target": "com.amazonaws.customerprofiles#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.customerprofiles#ThrottlingException" + } + ], + "traits": { + "smithy.api#documentation": "

Fetch the possible attribute values given the attribute name.

", + "smithy.api#http": { + "method": "GET", + "uri": "/domains/{DomainName}/profile-attributes/{AttributeName}/values", + "code": 200 + } + } + }, "com.amazonaws.customerprofiles#ListProfileObjectTypeItem": { "type": "structure", "members": { @@ -6660,16 +8772,106 @@ "com.amazonaws.customerprofiles#ListProfileObjectsResponse": { "type": "structure", "members": { - "Items": { - "target": "com.amazonaws.customerprofiles#ProfileObjectList", + "Items": { + "target": "com.amazonaws.customerprofiles#ProfileObjectList", + "traits": { + "smithy.api#documentation": "

The list of ListProfileObject instances.

" + } + }, + "NextToken": { + "target": "com.amazonaws.customerprofiles#token", + "traits": { + "smithy.api#documentation": "

The pagination token from the previous call to ListProfileObjects.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.customerprofiles#ListRuleBasedMatches": { + "type": "operation", + "input": { + "target": "com.amazonaws.customerprofiles#ListRuleBasedMatchesRequest" + }, + "output": { + "target": "com.amazonaws.customerprofiles#ListRuleBasedMatchesResponse" + }, + "errors": [ + { + "target": "com.amazonaws.customerprofiles#AccessDeniedException" + }, + { + "target": "com.amazonaws.customerprofiles#BadRequestException" + }, + { + "target": "com.amazonaws.customerprofiles#InternalServerException" + }, + { + "target": "com.amazonaws.customerprofiles#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.customerprofiles#ThrottlingException" + } + ], + "traits": { + "smithy.api#documentation": "

Returns a set of MatchIds that belong to the given domain.

", + "smithy.api#http": { + "method": "GET", + "uri": "/domains/{DomainName}/profiles/ruleBasedMatches", + "code": 200 + }, + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "MatchIds", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.customerprofiles#ListRuleBasedMatchesRequest": { + "type": "structure", + "members": { + "NextToken": { + "target": "com.amazonaws.customerprofiles#token", + "traits": { + "smithy.api#documentation": "

The pagination token from the previous ListRuleBasedMatches API\n call.

", + "smithy.api#httpQuery": "next-token" + } + }, + "MaxResults": { + "target": "com.amazonaws.customerprofiles#maxSize100", + "traits": { + "smithy.api#documentation": "

The maximum number of MatchIds returned per page.

", + "smithy.api#httpQuery": "max-results" + } + }, + "DomainName": { + "target": "com.amazonaws.customerprofiles#name", + "traits": { + "smithy.api#documentation": "

The unique name of the domain.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.customerprofiles#ListRuleBasedMatchesResponse": { + "type": "structure", + "members": { + "MatchIds": { + "target": "com.amazonaws.customerprofiles#MatchIdList", "traits": { - "smithy.api#documentation": "

The list of ListProfileObject instances.

" + "smithy.api#documentation": "

The list of MatchIds for the given domain.

" } }, "NextToken": { "target": "com.amazonaws.customerprofiles#token", "traits": { - "smithy.api#documentation": "

The pagination token from the previous call to ListProfileObjects.

" + "smithy.api#documentation": "

The pagination token from the previous ListRuleBasedMatches API\n call.

" } } }, @@ -6677,13 +8879,13 @@ "smithy.api#output": {} } }, - "com.amazonaws.customerprofiles#ListRuleBasedMatches": { + "com.amazonaws.customerprofiles#ListSegmentDefinitions": { "type": "operation", "input": { - "target": "com.amazonaws.customerprofiles#ListRuleBasedMatchesRequest" + "target": "com.amazonaws.customerprofiles#ListSegmentDefinitionsRequest" }, "output": { - "target": "com.amazonaws.customerprofiles#ListRuleBasedMatchesResponse" + "target": "com.amazonaws.customerprofiles#ListSegmentDefinitionsResponse" }, "errors": [ { @@ -6703,37 +8905,43 @@ } ], "traits": { - "smithy.api#documentation": "

Returns a set of MatchIds that belong to the given domain.

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

Lists all segment definitions under a domain.

", "smithy.api#http": { "method": "GET", - "uri": "/domains/{DomainName}/profiles/ruleBasedMatches", + "uri": "/domains/{DomainName}/segment-definitions", "code": 200 + }, + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "Items", + "pageSize": "MaxResults" } } }, - "com.amazonaws.customerprofiles#ListRuleBasedMatchesRequest": { + "com.amazonaws.customerprofiles#ListSegmentDefinitionsRequest": { "type": "structure", "members": { - "NextToken": { - "target": "com.amazonaws.customerprofiles#token", + "DomainName": { + "target": "com.amazonaws.customerprofiles#name", "traits": { - "smithy.api#documentation": "

The pagination token from the previous ListRuleBasedMatches API\n call.

", - "smithy.api#httpQuery": "next-token" + "smithy.api#documentation": "

The unique identifier of the domain.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} } }, "MaxResults": { - "target": "com.amazonaws.customerprofiles#maxSize100", + "target": "com.amazonaws.customerprofiles#MaxSize500", "traits": { - "smithy.api#documentation": "

The maximum number of MatchIds returned per page.

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

The maximum number of objects returned per page.

", "smithy.api#httpQuery": "max-results" } }, - "DomainName": { - "target": "com.amazonaws.customerprofiles#name", + "NextToken": { + "target": "com.amazonaws.customerprofiles#token", "traits": { - "smithy.api#documentation": "

The unique name of the domain.

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

The pagination token from the previous call.

", + "smithy.api#httpQuery": "next-token" } } }, @@ -6741,19 +8949,21 @@ "smithy.api#input": {} } }, - "com.amazonaws.customerprofiles#ListRuleBasedMatchesResponse": { + "com.amazonaws.customerprofiles#ListSegmentDefinitionsResponse": { "type": "structure", "members": { - "MatchIds": { - "target": "com.amazonaws.customerprofiles#MatchIdList", + "NextToken": { + "target": "com.amazonaws.customerprofiles#token", "traits": { - "smithy.api#documentation": "

The list of MatchIds for the given domain.

" + "smithy.api#documentation": "

The pagination token from the previous call.

", + "smithy.api#jsonName": "NextToken" } }, - "NextToken": { - "target": "com.amazonaws.customerprofiles#token", + "Items": { + "target": "com.amazonaws.customerprofiles#SegmentDefinitionsList", "traits": { - "smithy.api#documentation": "

The pagination token from the previous ListRuleBasedMatches API\n call.

" + "smithy.api#documentation": "

List of segment definitions.

", + "smithy.api#jsonName": "Items" } } }, @@ -7294,6 +9504,15 @@ } } }, + "com.amazonaws.customerprofiles#MaxSize500": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1, + "max": 500 + } + } + }, "com.amazonaws.customerprofiles#MergeProfiles": { "type": "operation", "input": { @@ -7805,6 +10024,247 @@ "smithy.api#documentation": "

The standard profile of a customer.

" } }, + "com.amazonaws.customerprofiles#ProfileAttributeValuesRequest": { + "type": "structure", + "members": { + "DomainName": { + "target": "com.amazonaws.customerprofiles#name", + "traits": { + "smithy.api#documentation": "

The unique identifier of the domain.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + }, + "AttributeName": { + "target": "com.amazonaws.customerprofiles#string1To255", + "traits": { + "smithy.api#documentation": "

The attribute name.

", + "smithy.api#httpLabel": {}, + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.customerprofiles#ProfileAttributeValuesResponse": { + "type": "structure", + "members": { + "DomainName": { + "target": "com.amazonaws.customerprofiles#name", + "traits": { + "smithy.api#documentation": "

The name of the domain.

" + } + }, + "AttributeName": { + "target": "com.amazonaws.customerprofiles#string1To255", + "traits": { + "smithy.api#documentation": "

The attribute name.

" + } + }, + "Items": { + "target": "com.amazonaws.customerprofiles#AttributeValueItemList", + "traits": { + "smithy.api#documentation": "

The items returned as part of the response.

" + } + }, + "StatusCode": { + "target": "com.amazonaws.customerprofiles#StatusCode", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

The status code for the response.

", + "smithy.api#httpResponseCode": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.customerprofiles#ProfileAttributes": { + "type": "structure", + "members": { + "AccountNumber": { + "target": "com.amazonaws.customerprofiles#ProfileDimension", + "traits": { + "smithy.api#documentation": "

A field to describe values to segment on within account number.

", + "smithy.api#jsonName": "AccountNumber" + } + }, + "AdditionalInformation": { + "target": "com.amazonaws.customerprofiles#ExtraLengthValueProfileDimension", + "traits": { + "smithy.api#documentation": "

A field to describe values to segment on within additional information.

", + "smithy.api#jsonName": "AdditionalInformation" + } + }, + "FirstName": { + "target": "com.amazonaws.customerprofiles#ProfileDimension", + "traits": { + "smithy.api#documentation": "

A field to describe values to segment on within first name.

", + "smithy.api#jsonName": "FirstName" + } + }, + "LastName": { + "target": "com.amazonaws.customerprofiles#ProfileDimension", + "traits": { + "smithy.api#documentation": "

A field to describe values to segment on within last name.

", + "smithy.api#jsonName": "LastName" + } + }, + "MiddleName": { + "target": "com.amazonaws.customerprofiles#ProfileDimension", + "traits": { + "smithy.api#documentation": "

A field to describe values to segment on within middle name.

", + "smithy.api#jsonName": "MiddleName" + } + }, + "GenderString": { + "target": "com.amazonaws.customerprofiles#ProfileDimension", + "traits": { + "smithy.api#documentation": "

A field to describe values to segment on within genderString.

", + "smithy.api#jsonName": "GenderString" + } + }, + "PartyTypeString": { + "target": "com.amazonaws.customerprofiles#ProfileDimension", + "traits": { + "smithy.api#documentation": "

A field to describe values to segment on within partyTypeString.

", + "smithy.api#jsonName": "PartyTypeString" + } + }, + "BirthDate": { + "target": "com.amazonaws.customerprofiles#DateDimension", + "traits": { + "smithy.api#documentation": "

A field to describe values to segment on within birthDate.

", + "smithy.api#jsonName": "BirthDate" + } + }, + "PhoneNumber": { + "target": "com.amazonaws.customerprofiles#ProfileDimension", + "traits": { + "smithy.api#documentation": "

A field to describe values to segment on within phone number.

", + "smithy.api#jsonName": "PhoneNumber" + } + }, + "BusinessName": { + "target": "com.amazonaws.customerprofiles#ProfileDimension", + "traits": { + "smithy.api#documentation": "

A field to describe values to segment on within business name.

", + "smithy.api#jsonName": "BusinessName" + } + }, + "BusinessPhoneNumber": { + "target": "com.amazonaws.customerprofiles#ProfileDimension", + "traits": { + "smithy.api#documentation": "

A field to describe values to segment on within business phone number.

", + "smithy.api#jsonName": "BusinessPhoneNumber" + } + }, + "HomePhoneNumber": { + "target": "com.amazonaws.customerprofiles#ProfileDimension", + "traits": { + "smithy.api#documentation": "

A field to describe values to segment on within home phone number.

", + "smithy.api#jsonName": "HomePhoneNumber" + } + }, + "MobilePhoneNumber": { + "target": "com.amazonaws.customerprofiles#ProfileDimension", + "traits": { + "smithy.api#documentation": "

A field to describe values to segment on within mobile phone number.

", + "smithy.api#jsonName": "MobilePhoneNumber" + } + }, + "EmailAddress": { + "target": "com.amazonaws.customerprofiles#ProfileDimension", + "traits": { + "smithy.api#documentation": "

A field to describe values to segment on within email address.

", + "smithy.api#jsonName": "EmailAddress" + } + }, + "PersonalEmailAddress": { + "target": "com.amazonaws.customerprofiles#ProfileDimension", + "traits": { + "smithy.api#documentation": "

A field to describe values to segment on within personal email address.

", + "smithy.api#jsonName": "PersonalEmailAddress" + } + }, + "BusinessEmailAddress": { + "target": "com.amazonaws.customerprofiles#ProfileDimension", + "traits": { + "smithy.api#documentation": "

A field to describe values to segment on within business email address.

", + "smithy.api#jsonName": "BusinessEmailAddress" + } + }, + "Address": { + "target": "com.amazonaws.customerprofiles#AddressDimension", + "traits": { + "smithy.api#documentation": "

A field to describe values to segment on within address.

", + "smithy.api#jsonName": "Address" + } + }, + "ShippingAddress": { + "target": "com.amazonaws.customerprofiles#AddressDimension", + "traits": { + "smithy.api#documentation": "

A field to describe values to segment on within shipping address.

", + "smithy.api#jsonName": "ShippingAddress" + } + }, + "MailingAddress": { + "target": "com.amazonaws.customerprofiles#AddressDimension", + "traits": { + "smithy.api#documentation": "

A field to describe values to segment on within mailing address.

", + "smithy.api#jsonName": "MailingAddress" + } + }, + "BillingAddress": { + "target": "com.amazonaws.customerprofiles#AddressDimension", + "traits": { + "smithy.api#documentation": "

A field to describe values to segment on within billing address.

", + "smithy.api#jsonName": "BillingAddress" + } + }, + "Attributes": { + "target": "com.amazonaws.customerprofiles#CustomAttributes", + "traits": { + "smithy.api#documentation": "

A field to describe values to segment on within attributes.

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

The object used to segment on attributes within the customer profile.

", + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.customerprofiles#ProfileDimension": { + "type": "structure", + "members": { + "DimensionType": { + "target": "com.amazonaws.customerprofiles#StringDimensionType", + "traits": { + "smithy.api#documentation": "

The action to segment on.

", + "smithy.api#jsonName": "DimensionType", + "smithy.api#required": {} + } + }, + "Values": { + "target": "com.amazonaws.customerprofiles#Values", + "traits": { + "smithy.api#documentation": "

The values to apply the DimensionType on.

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

Object to hold the dimensions of a profile's fields to segment on.

" + } + }, + "com.amazonaws.customerprofiles#ProfileId": { + "type": "string" + }, "com.amazonaws.customerprofiles#ProfileIdList": { "type": "list", "member": { @@ -7823,6 +10283,18 @@ } } }, + "com.amazonaws.customerprofiles#ProfileIds": { + "type": "list", + "member": { + "target": "com.amazonaws.customerprofiles#uuid" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 100 + } + } + }, "com.amazonaws.customerprofiles#ProfileList": { "type": "list", "member": { @@ -7841,13 +10313,80 @@ "target": "com.amazonaws.customerprofiles#ListProfileObjectTypeItem" }, "traits": { - "smithy.api#sensitive": {} + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.customerprofiles#ProfileObjectTypeTemplateList": { + "type": "list", + "member": { + "target": "com.amazonaws.customerprofiles#ListProfileObjectTypeTemplateItem" + } + }, + "com.amazonaws.customerprofiles#ProfileQueryFailures": { + "type": "structure", + "members": { + "ProfileId": { + "target": "com.amazonaws.customerprofiles#ProfileId", + "traits": { + "smithy.api#documentation": "

The profile id the failure belongs to.

", + "smithy.api#jsonName": "ProfileId", + "smithy.api#required": {} + } + }, + "Message": { + "target": "com.amazonaws.customerprofiles#GetSegmentMembershipMessage", + "traits": { + "smithy.api#documentation": "

A message describing the failure.

", + "smithy.api#jsonName": "Message", + "smithy.api#required": {} + } + }, + "Status": { + "target": "com.amazonaws.customerprofiles#GetSegmentMembershipStatus", + "traits": { + "smithy.api#documentation": "

The status describing the failure.

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

Object that holds failures for membership.

" + } + }, + "com.amazonaws.customerprofiles#ProfileQueryResult": { + "type": "structure", + "members": { + "ProfileId": { + "target": "com.amazonaws.customerprofiles#ProfileId", + "traits": { + "smithy.api#documentation": "

The profile id the result belongs to.

", + "smithy.api#jsonName": "ProfileId", + "smithy.api#required": {} + } + }, + "QueryResult": { + "target": "com.amazonaws.customerprofiles#QueryResult", + "traits": { + "smithy.api#documentation": "

Describes whether the profile was absent or present in the segment.

", + "smithy.api#jsonName": "QueryResult", + "smithy.api#required": {} + } + }, + "Profile": { + "target": "com.amazonaws.customerprofiles#Profile", + "traits": { + "smithy.api#jsonName": "Profile" + } + } + }, + "traits": { + "smithy.api#documentation": "

Object that holds the results for membership.

" } }, - "com.amazonaws.customerprofiles#ProfileObjectTypeTemplateList": { + "com.amazonaws.customerprofiles#Profiles": { "type": "list", "member": { - "target": "com.amazonaws.customerprofiles#ListProfileObjectTypeTemplateItem" + "target": "com.amazonaws.customerprofiles#ProfileQueryResult" } }, "com.amazonaws.customerprofiles#Property": { @@ -8311,6 +10850,23 @@ "smithy.api#output": {} } }, + "com.amazonaws.customerprofiles#QueryResult": { + "type": "enum", + "members": { + "PRESENT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PRESENT" + } + }, + "ABSENT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ABSENT" + } + } + } + }, "com.amazonaws.customerprofiles#Range": { "type": "structure", "members": { @@ -8333,6 +10889,47 @@ "smithy.api#documentation": "

The relative time period over which data is included in the aggregation.

" } }, + "com.amazonaws.customerprofiles#RangeOverride": { + "type": "structure", + "members": { + "Start": { + "target": "com.amazonaws.customerprofiles#Start", + "traits": { + "smithy.api#default": 366, + "smithy.api#documentation": "

The start time of when to include objects.

", + "smithy.api#required": {} + } + }, + "End": { + "target": "com.amazonaws.customerprofiles#End", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

The end time of when to include objects.

" + } + }, + "Unit": { + "target": "com.amazonaws.customerprofiles#RangeUnit", + "traits": { + "smithy.api#documentation": "

The unit for start and end.

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

Overrides the original range on a calculated attribute definition.

" + } + }, + "com.amazonaws.customerprofiles#RangeUnit": { + "type": "enum", + "members": { + "DAYS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DAYS" + } + } + } + }, "com.amazonaws.customerprofiles#ResourceNotFoundException": { "type": "structure", "members": { @@ -9012,6 +11609,144 @@ "smithy.api#output": {} } }, + "com.amazonaws.customerprofiles#SegmentDefinitionArn": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 255 + } + } + }, + "com.amazonaws.customerprofiles#SegmentDefinitionItem": { + "type": "structure", + "members": { + "SegmentDefinitionName": { + "target": "com.amazonaws.customerprofiles#name", + "traits": { + "smithy.api#documentation": "

Name of the segment definition.

", + "smithy.api#jsonName": "SegmentDefinitionName" + } + }, + "DisplayName": { + "target": "com.amazonaws.customerprofiles#string1To255", + "traits": { + "smithy.api#documentation": "

Display name of the segment definition.

", + "smithy.api#jsonName": "DisplayName" + } + }, + "Description": { + "target": "com.amazonaws.customerprofiles#sensitiveText", + "traits": { + "smithy.api#documentation": "

The description of the segment definition.

", + "smithy.api#jsonName": "Description" + } + }, + "SegmentDefinitionArn": { + "target": "com.amazonaws.customerprofiles#SegmentDefinitionArn", + "traits": { + "smithy.api#documentation": "

The arn of the segment definition.

", + "smithy.api#jsonName": "SegmentDefinitionArn" + } + }, + "CreatedAt": { + "target": "com.amazonaws.customerprofiles#timestamp", + "traits": { + "smithy.api#documentation": "

When the segment definition was created.

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

The tags belonging to the segment definition.

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

Object holding the segment definition fields.

" + } + }, + "com.amazonaws.customerprofiles#SegmentDefinitionsList": { + "type": "list", + "member": { + "target": "com.amazonaws.customerprofiles#SegmentDefinitionItem" + } + }, + "com.amazonaws.customerprofiles#SegmentGroup": { + "type": "structure", + "members": { + "Groups": { + "target": "com.amazonaws.customerprofiles#SegmentGroupList", + "traits": { + "smithy.api#documentation": "

Holds the list of groups within the segment definition.

", + "smithy.api#jsonName": "Groups" + } + }, + "Include": { + "target": "com.amazonaws.customerprofiles#IncludeOptions", + "traits": { + "smithy.api#default": "ALL", + "smithy.api#documentation": "

Defines whether to include or exclude the profiles that fit the segment criteria.

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

Contains all groups of the segment definition.

", + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.customerprofiles#SegmentGroupList": { + "type": "list", + "member": { + "target": "com.amazonaws.customerprofiles#Group" + } + }, + "com.amazonaws.customerprofiles#SegmentGroupStructure": { + "type": "structure", + "members": { + "Groups": { + "target": "com.amazonaws.customerprofiles#SegmentGroupList", + "traits": { + "smithy.api#documentation": "

Holds the list of groups within the segment definition.

" + } + }, + "Include": { + "target": "com.amazonaws.customerprofiles#IncludeOptions", + "traits": { + "smithy.api#documentation": "

Define whether to include or exclude the profiles that fit the segment criteria.

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

Contains all groups of the segment definition.

" + } + }, + "com.amazonaws.customerprofiles#SegmentSnapshotStatus": { + "type": "enum", + "members": { + "COMPLETED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "COMPLETED" + } + }, + "IN_PROGRESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "IN_PROGRESS" + } + }, + "FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "FAILED" + } + } + } + }, "com.amazonaws.customerprofiles#ServiceNowConnectorOperator": { "type": "enum", "members": { @@ -9271,6 +12006,27 @@ "smithy.api#documentation": "

Contains information about the configuration of the source connector used in the\n flow.

" } }, + "com.amazonaws.customerprofiles#SourceSegment": { + "type": "structure", + "members": { + "SegmentDefinitionName": { + "target": "com.amazonaws.customerprofiles#name", + "traits": { + "smithy.api#documentation": "

The unique name of the segment definition.

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

The source segments to build off of.

" + } + }, + "com.amazonaws.customerprofiles#SourceSegmentList": { + "type": "list", + "member": { + "target": "com.amazonaws.customerprofiles#SourceSegment" + } + }, "com.amazonaws.customerprofiles#StandardIdentifier": { "type": "enum", "members": { @@ -9292,6 +12048,18 @@ "smithy.api#enumValue": "CASE" } }, + "ORDER": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ORDER" + } + }, + "COMMUNICATION_RECORD": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "COMMUNICATION_RECORD" + } + }, "UNIQUE": { "target": "smithy.api#Unit", "traits": { @@ -9315,12 +12083,6 @@ "traits": { "smithy.api#enumValue": "NEW_ONLY" } - }, - "ORDER": { - "target": "smithy.api#Unit", - "traits": { - "smithy.api#enumValue": "ORDER" - } } } }, @@ -9330,6 +12092,15 @@ "target": "com.amazonaws.customerprofiles#StandardIdentifier" } }, + "com.amazonaws.customerprofiles#Start": { + "type": "integer", + "traits": { + "smithy.api#range": { + "min": 1, + "max": 366 + } + } + }, "com.amazonaws.customerprofiles#Statistic": { "type": "enum", "members": { @@ -9433,6 +12204,47 @@ } } }, + "com.amazonaws.customerprofiles#StatusCode": { + "type": "integer", + "traits": { + "smithy.api#default": 0 + } + }, + "com.amazonaws.customerprofiles#StringDimensionType": { + "type": "enum", + "members": { + "INCLUSIVE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "INCLUSIVE" + } + }, + "EXCLUSIVE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "EXCLUSIVE" + } + }, + "CONTAINS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "CONTAINS" + } + }, + "BEGINS_WITH": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "BEGINS_WITH" + } + }, + "ENDS_WITH": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ENDS_WITH" + } + } + } + }, "com.amazonaws.customerprofiles#TagArn": { "type": "string", "traits": { @@ -9752,6 +12564,29 @@ } } }, + "com.amazonaws.customerprofiles#Type": { + "type": "enum", + "members": { + "ALL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ALL" + } + }, + "ANY": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ANY" + } + }, + "NONE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "NONE" + } + } + } + }, "com.amazonaws.customerprofiles#Unit": { "type": "enum", "members": { @@ -10411,6 +13246,30 @@ } } }, + "com.amazonaws.customerprofiles#ValueList": { + "type": "list", + "member": { + "target": "com.amazonaws.customerprofiles#string1To255" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 10 + } + } + }, + "com.amazonaws.customerprofiles#Values": { + "type": "list", + "member": { + "target": "com.amazonaws.customerprofiles#string1To255" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 50 + } + } + }, "com.amazonaws.customerprofiles#WorkflowAttributes": { "type": "structure", "members": {