aws-sdk-customerprofiles 1.34.0 → 1.35.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b9feca08f2fee542d7df1d1b6d42ec6ba17cd821b0164d1adbbf53799e989aa4
4
- data.tar.gz: 8879c8150a2f143c8966750661f7249b11b5aa88f4122b80cf8b9c4714b5941c
3
+ metadata.gz: 3847894d76e1158f0a0c5509d8ec22aae467b67a1b1c362cc9051402c52d992e
4
+ data.tar.gz: 8bcf0ba3fa492543be704ba0c05fe17b6735f8332c2524b925dc9d848cfdf229
5
5
  SHA512:
6
- metadata.gz: 7bd33840823b1c608b8887a32852071d3cc85e88be08f1f418a7a9990a6a172a9b11f3eb60becafec11be0dea3089adcb87fea7e58e49f78d6c4160c0d339a43
7
- data.tar.gz: a8b5b9fb704d94b7fd889a38f41327b04fda1b93f025cba070ae9f44cb7a9f82d0eec2600118a3282a77a560cf4f9ce79c0ac65ec5403ffe3736be59998c1ae3
6
+ metadata.gz: da2b1470141ec4944abf55c78e1c25416d54440bedfe1f40b9ab9421a37d24b684f4e9c7df6f39acb4243a22ba751c7f95aae2a223fdbc3d2fcdd7a16bd82b1c
7
+ data.tar.gz: ceb6ae46e835a86ffaec735e4a8930f1909cf78a555358300e49e443f0d892f427a69d8434a3d0baabaf97e5a486ad033e0d18a0fd3822fd4042134878795b29
data/CHANGELOG.md CHANGED
@@ -1,6 +1,11 @@
1
1
  Unreleased Changes
2
2
  ------------------
3
3
 
4
+ 1.35.0 (2023-07-25)
5
+ ------------------
6
+
7
+ * Feature - Amazon Connect Customer Profiles now supports rule-based resolution to match and merge similar profiles into unified profiles, helping companies deliver faster and more personalized customer service by providing access to relevant customer information for agents and automated experiences.
8
+
4
9
  1.34.0 (2023-07-11)
5
10
  ------------------
6
11
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.34.0
1
+ 1.35.0
@@ -607,6 +607,15 @@ module Aws::CustomerProfiles
607
607
  #
608
608
  # [1]: https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_GetMatches.html
609
609
  #
610
+ # @option params [Types::RuleBasedMatchingRequest] :rule_based_matching
611
+ # The process of matching duplicate profiles using the Rule-Based
612
+ # matching. If `RuleBasedMatching` = true, Amazon Connect Customer
613
+ # Profiles will start to match and merge your profiles according to your
614
+ # configuration in the `RuleBasedMatchingRequest`. You can use the
615
+ # `ListRuleBasedMatches` and `GetSimilarProfiles` API to return and
616
+ # review the results. Also, if you have configured `ExportingConfig` in
617
+ # the `RuleBasedMatchingRequest`, you can download the results from S3.
618
+ #
610
619
  # @option params [Hash<String,String>] :tags
611
620
  # The tags used to organize, track, or control access for this resource.
612
621
  #
@@ -617,6 +626,7 @@ module Aws::CustomerProfiles
617
626
  # * {Types::CreateDomainResponse#default_encryption_key #default_encryption_key} => String
618
627
  # * {Types::CreateDomainResponse#dead_letter_queue_url #dead_letter_queue_url} => String
619
628
  # * {Types::CreateDomainResponse#matching #matching} => Types::MatchingResponse
629
+ # * {Types::CreateDomainResponse#rule_based_matching #rule_based_matching} => Types::RuleBasedMatchingResponse
620
630
  # * {Types::CreateDomainResponse#created_at #created_at} => Time
621
631
  # * {Types::CreateDomainResponse#last_updated_at #last_updated_at} => Time
622
632
  # * {Types::CreateDomainResponse#tags #tags} => Hash&lt;String,String&gt;
@@ -654,6 +664,32 @@ module Aws::CustomerProfiles
654
664
  # },
655
665
  # },
656
666
  # },
667
+ # rule_based_matching: {
668
+ # enabled: false, # required
669
+ # matching_rules: [
670
+ # {
671
+ # rule: ["string1To255"], # required
672
+ # },
673
+ # ],
674
+ # max_allowed_rule_level_for_merging: 1,
675
+ # max_allowed_rule_level_for_matching: 1,
676
+ # attribute_types_selector: {
677
+ # attribute_matching_model: "ONE_TO_ONE", # required, accepts ONE_TO_ONE, MANY_TO_MANY
678
+ # address: ["string1To255"],
679
+ # phone_number: ["string1To255"],
680
+ # email_address: ["string1To255"],
681
+ # },
682
+ # conflict_resolution: {
683
+ # conflict_resolving_model: "RECENCY", # required, accepts RECENCY, SOURCE
684
+ # source_name: "string1To255",
685
+ # },
686
+ # exporting_config: {
687
+ # s3_exporting: {
688
+ # s3_bucket_name: "s3BucketName", # required
689
+ # s3_key_name: "s3KeyNameCustomerOutputConfig",
690
+ # },
691
+ # },
692
+ # },
657
693
  # tags: {
658
694
  # "TagKey" => "TagValue",
659
695
  # },
@@ -677,6 +713,24 @@ module Aws::CustomerProfiles
677
713
  # resp.matching.auto_merging.min_allowed_confidence_score_for_merging #=> Float
678
714
  # resp.matching.exporting_config.s3_exporting.s3_bucket_name #=> String
679
715
  # resp.matching.exporting_config.s3_exporting.s3_key_name #=> String
716
+ # resp.rule_based_matching.enabled #=> Boolean
717
+ # resp.rule_based_matching.matching_rules #=> Array
718
+ # resp.rule_based_matching.matching_rules[0].rule #=> Array
719
+ # resp.rule_based_matching.matching_rules[0].rule[0] #=> String
720
+ # resp.rule_based_matching.status #=> String, one of "PENDING", "IN_PROGRESS", "ACTIVE"
721
+ # resp.rule_based_matching.max_allowed_rule_level_for_merging #=> Integer
722
+ # resp.rule_based_matching.max_allowed_rule_level_for_matching #=> Integer
723
+ # resp.rule_based_matching.attribute_types_selector.attribute_matching_model #=> String, one of "ONE_TO_ONE", "MANY_TO_MANY"
724
+ # resp.rule_based_matching.attribute_types_selector.address #=> Array
725
+ # resp.rule_based_matching.attribute_types_selector.address[0] #=> String
726
+ # resp.rule_based_matching.attribute_types_selector.phone_number #=> Array
727
+ # resp.rule_based_matching.attribute_types_selector.phone_number[0] #=> String
728
+ # resp.rule_based_matching.attribute_types_selector.email_address #=> Array
729
+ # resp.rule_based_matching.attribute_types_selector.email_address[0] #=> String
730
+ # resp.rule_based_matching.conflict_resolution.conflict_resolving_model #=> String, one of "RECENCY", "SOURCE"
731
+ # resp.rule_based_matching.conflict_resolution.source_name #=> String
732
+ # resp.rule_based_matching.exporting_config.s3_exporting.s3_bucket_name #=> String
733
+ # resp.rule_based_matching.exporting_config.s3_exporting.s3_key_name #=> String
680
734
  # resp.created_at #=> Time
681
735
  # resp.last_updated_at #=> Time
682
736
  # resp.tags #=> Hash
@@ -1520,6 +1574,7 @@ module Aws::CustomerProfiles
1520
1574
  # * {Types::GetDomainResponse#dead_letter_queue_url #dead_letter_queue_url} => String
1521
1575
  # * {Types::GetDomainResponse#stats #stats} => Types::DomainStats
1522
1576
  # * {Types::GetDomainResponse#matching #matching} => Types::MatchingResponse
1577
+ # * {Types::GetDomainResponse#rule_based_matching #rule_based_matching} => Types::RuleBasedMatchingResponse
1523
1578
  # * {Types::GetDomainResponse#created_at #created_at} => Time
1524
1579
  # * {Types::GetDomainResponse#last_updated_at #last_updated_at} => Time
1525
1580
  # * {Types::GetDomainResponse#tags #tags} => Hash&lt;String,String&gt;
@@ -1552,6 +1607,24 @@ module Aws::CustomerProfiles
1552
1607
  # resp.matching.auto_merging.min_allowed_confidence_score_for_merging #=> Float
1553
1608
  # resp.matching.exporting_config.s3_exporting.s3_bucket_name #=> String
1554
1609
  # resp.matching.exporting_config.s3_exporting.s3_key_name #=> String
1610
+ # resp.rule_based_matching.enabled #=> Boolean
1611
+ # resp.rule_based_matching.matching_rules #=> Array
1612
+ # resp.rule_based_matching.matching_rules[0].rule #=> Array
1613
+ # resp.rule_based_matching.matching_rules[0].rule[0] #=> String
1614
+ # resp.rule_based_matching.status #=> String, one of "PENDING", "IN_PROGRESS", "ACTIVE"
1615
+ # resp.rule_based_matching.max_allowed_rule_level_for_merging #=> Integer
1616
+ # resp.rule_based_matching.max_allowed_rule_level_for_matching #=> Integer
1617
+ # resp.rule_based_matching.attribute_types_selector.attribute_matching_model #=> String, one of "ONE_TO_ONE", "MANY_TO_MANY"
1618
+ # resp.rule_based_matching.attribute_types_selector.address #=> Array
1619
+ # resp.rule_based_matching.attribute_types_selector.address[0] #=> String
1620
+ # resp.rule_based_matching.attribute_types_selector.phone_number #=> Array
1621
+ # resp.rule_based_matching.attribute_types_selector.phone_number[0] #=> String
1622
+ # resp.rule_based_matching.attribute_types_selector.email_address #=> Array
1623
+ # resp.rule_based_matching.attribute_types_selector.email_address[0] #=> String
1624
+ # resp.rule_based_matching.conflict_resolution.conflict_resolving_model #=> String, one of "RECENCY", "SOURCE"
1625
+ # resp.rule_based_matching.conflict_resolution.source_name #=> String
1626
+ # resp.rule_based_matching.exporting_config.s3_exporting.s3_bucket_name #=> String
1627
+ # resp.rule_based_matching.exporting_config.s3_exporting.s3_key_name #=> String
1555
1628
  # resp.created_at #=> Time
1556
1629
  # resp.last_updated_at #=> Time
1557
1630
  # resp.tags #=> Hash
@@ -1947,6 +2020,68 @@ module Aws::CustomerProfiles
1947
2020
  req.send_request(options)
1948
2021
  end
1949
2022
 
2023
+ # Returns a set of profiles that belong to the same matching group using
2024
+ # the `matchId` or `profileId`. You can also specify the type of
2025
+ # matching that you want for finding similar profiles using either
2026
+ # `RULE_BASED_MATCHING` or `ML_BASED_MATCHING`.
2027
+ #
2028
+ # @option params [String] :next_token
2029
+ # The pagination token from the previous `GetSimilarProfiles` API call.
2030
+ #
2031
+ # @option params [Integer] :max_results
2032
+ # The maximum number of objects returned per page.
2033
+ #
2034
+ # @option params [required, String] :domain_name
2035
+ # The unique name of the domain.
2036
+ #
2037
+ # @option params [required, String] :match_type
2038
+ # Specify the type of matching to get similar profiles for.
2039
+ #
2040
+ # @option params [required, String] :search_key
2041
+ # The string indicating the search key to be used.
2042
+ #
2043
+ # @option params [required, String] :search_value
2044
+ # The string based on `SearchKey` to be searched for similar profiles.
2045
+ #
2046
+ # @return [Types::GetSimilarProfilesResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2047
+ #
2048
+ # * {Types::GetSimilarProfilesResponse#profile_ids #profile_ids} => Array&lt;String&gt;
2049
+ # * {Types::GetSimilarProfilesResponse#match_id #match_id} => String
2050
+ # * {Types::GetSimilarProfilesResponse#match_type #match_type} => String
2051
+ # * {Types::GetSimilarProfilesResponse#rule_level #rule_level} => Integer
2052
+ # * {Types::GetSimilarProfilesResponse#confidence_score #confidence_score} => Float
2053
+ # * {Types::GetSimilarProfilesResponse#next_token #next_token} => String
2054
+ #
2055
+ # @example Request syntax with placeholder values
2056
+ #
2057
+ # resp = client.get_similar_profiles({
2058
+ # next_token: "token",
2059
+ # max_results: 1,
2060
+ # domain_name: "name", # required
2061
+ # match_type: "RULE_BASED_MATCHING", # required, accepts RULE_BASED_MATCHING, ML_BASED_MATCHING
2062
+ # search_key: "string1To255", # required
2063
+ # search_value: "string1To255", # required
2064
+ # })
2065
+ #
2066
+ # @example Response structure
2067
+ #
2068
+ # resp.profile_ids #=> Array
2069
+ # resp.profile_ids[0] #=> String
2070
+ # resp.match_id #=> String
2071
+ # resp.match_type #=> String, one of "RULE_BASED_MATCHING", "ML_BASED_MATCHING"
2072
+ # resp.rule_level #=> Integer
2073
+ # resp.confidence_score #=> Float
2074
+ # resp.next_token #=> String
2075
+ #
2076
+ # @see http://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/GetSimilarProfiles AWS API Documentation
2077
+ #
2078
+ # @overload get_similar_profiles(params = {})
2079
+ # @param [Hash] params ({})
2080
+ def get_similar_profiles(params = {}, options = {})
2081
+ req = build_request(:get_similar_profiles, params)
2082
+ req.send_request(options)
2083
+ end
2084
+
1950
2085
  # Get details of specified workflow.
1951
2086
  #
1952
2087
  # @option params [required, String] :domain_name
@@ -2539,6 +2674,46 @@ module Aws::CustomerProfiles
2539
2674
  req.send_request(options)
2540
2675
  end
2541
2676
 
2677
+ # Returns a set of `MatchIds` that belong to the given domain.
2678
+ #
2679
+ # @option params [String] :next_token
2680
+ # The pagination token from the previous `ListRuleBasedMatches` API
2681
+ # call.
2682
+ #
2683
+ # @option params [Integer] :max_results
2684
+ # The maximum number of `MatchIds` returned per page.
2685
+ #
2686
+ # @option params [required, String] :domain_name
2687
+ # The unique name of the domain.
2688
+ #
2689
+ # @return [Types::ListRuleBasedMatchesResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2690
+ #
2691
+ # * {Types::ListRuleBasedMatchesResponse#match_ids #match_ids} => Array&lt;String&gt;
2692
+ # * {Types::ListRuleBasedMatchesResponse#next_token #next_token} => String
2693
+ #
2694
+ # @example Request syntax with placeholder values
2695
+ #
2696
+ # resp = client.list_rule_based_matches({
2697
+ # next_token: "token",
2698
+ # max_results: 1,
2699
+ # domain_name: "name", # required
2700
+ # })
2701
+ #
2702
+ # @example Response structure
2703
+ #
2704
+ # resp.match_ids #=> Array
2705
+ # resp.match_ids[0] #=> String
2706
+ # resp.next_token #=> String
2707
+ #
2708
+ # @see http://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/ListRuleBasedMatches AWS API Documentation
2709
+ #
2710
+ # @overload list_rule_based_matches(params = {})
2711
+ # @param [Hash] params ({})
2712
+ def list_rule_based_matches(params = {}, options = {})
2713
+ req = build_request(:list_rule_based_matches, params)
2714
+ req.send_request(options)
2715
+ end
2716
+
2542
2717
  # Displays the tags associated with an Amazon Connect Customer Profiles
2543
2718
  # resource. In Connect Customer Profiles, domains, profile object types,
2544
2719
  # and integrations can be tagged.
@@ -3440,6 +3615,15 @@ module Aws::CustomerProfiles
3440
3615
  #
3441
3616
  # [1]: https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_GetMatches.html
3442
3617
  #
3618
+ # @option params [Types::RuleBasedMatchingRequest] :rule_based_matching
3619
+ # The process of matching duplicate profiles using the rule-Based
3620
+ # matching. If `RuleBasedMatching` = true, Amazon Connect Customer
3621
+ # Profiles will start to match and merge your profiles according to your
3622
+ # configuration in the `RuleBasedMatchingRequest`. You can use the
3623
+ # `ListRuleBasedMatches` and `GetSimilarProfiles` API to return and
3624
+ # review the results. Also, if you have configured `ExportingConfig` in
3625
+ # the `RuleBasedMatchingRequest`, you can download the results from S3.
3626
+ #
3443
3627
  # @option params [Hash<String,String>] :tags
3444
3628
  # The tags used to organize, track, or control access for this resource.
3445
3629
  #
@@ -3450,6 +3634,7 @@ module Aws::CustomerProfiles
3450
3634
  # * {Types::UpdateDomainResponse#default_encryption_key #default_encryption_key} => String
3451
3635
  # * {Types::UpdateDomainResponse#dead_letter_queue_url #dead_letter_queue_url} => String
3452
3636
  # * {Types::UpdateDomainResponse#matching #matching} => Types::MatchingResponse
3637
+ # * {Types::UpdateDomainResponse#rule_based_matching #rule_based_matching} => Types::RuleBasedMatchingResponse
3453
3638
  # * {Types::UpdateDomainResponse#created_at #created_at} => Time
3454
3639
  # * {Types::UpdateDomainResponse#last_updated_at #last_updated_at} => Time
3455
3640
  # * {Types::UpdateDomainResponse#tags #tags} => Hash&lt;String,String&gt;
@@ -3487,6 +3672,32 @@ module Aws::CustomerProfiles
3487
3672
  # },
3488
3673
  # },
3489
3674
  # },
3675
+ # rule_based_matching: {
3676
+ # enabled: false, # required
3677
+ # matching_rules: [
3678
+ # {
3679
+ # rule: ["string1To255"], # required
3680
+ # },
3681
+ # ],
3682
+ # max_allowed_rule_level_for_merging: 1,
3683
+ # max_allowed_rule_level_for_matching: 1,
3684
+ # attribute_types_selector: {
3685
+ # attribute_matching_model: "ONE_TO_ONE", # required, accepts ONE_TO_ONE, MANY_TO_MANY
3686
+ # address: ["string1To255"],
3687
+ # phone_number: ["string1To255"],
3688
+ # email_address: ["string1To255"],
3689
+ # },
3690
+ # conflict_resolution: {
3691
+ # conflict_resolving_model: "RECENCY", # required, accepts RECENCY, SOURCE
3692
+ # source_name: "string1To255",
3693
+ # },
3694
+ # exporting_config: {
3695
+ # s3_exporting: {
3696
+ # s3_bucket_name: "s3BucketName", # required
3697
+ # s3_key_name: "s3KeyNameCustomerOutputConfig",
3698
+ # },
3699
+ # },
3700
+ # },
3490
3701
  # tags: {
3491
3702
  # "TagKey" => "TagValue",
3492
3703
  # },
@@ -3510,6 +3721,24 @@ module Aws::CustomerProfiles
3510
3721
  # resp.matching.auto_merging.min_allowed_confidence_score_for_merging #=> Float
3511
3722
  # resp.matching.exporting_config.s3_exporting.s3_bucket_name #=> String
3512
3723
  # resp.matching.exporting_config.s3_exporting.s3_key_name #=> String
3724
+ # resp.rule_based_matching.enabled #=> Boolean
3725
+ # resp.rule_based_matching.matching_rules #=> Array
3726
+ # resp.rule_based_matching.matching_rules[0].rule #=> Array
3727
+ # resp.rule_based_matching.matching_rules[0].rule[0] #=> String
3728
+ # resp.rule_based_matching.status #=> String, one of "PENDING", "IN_PROGRESS", "ACTIVE"
3729
+ # resp.rule_based_matching.max_allowed_rule_level_for_merging #=> Integer
3730
+ # resp.rule_based_matching.max_allowed_rule_level_for_matching #=> Integer
3731
+ # resp.rule_based_matching.attribute_types_selector.attribute_matching_model #=> String, one of "ONE_TO_ONE", "MANY_TO_MANY"
3732
+ # resp.rule_based_matching.attribute_types_selector.address #=> Array
3733
+ # resp.rule_based_matching.attribute_types_selector.address[0] #=> String
3734
+ # resp.rule_based_matching.attribute_types_selector.phone_number #=> Array
3735
+ # resp.rule_based_matching.attribute_types_selector.phone_number[0] #=> String
3736
+ # resp.rule_based_matching.attribute_types_selector.email_address #=> Array
3737
+ # resp.rule_based_matching.attribute_types_selector.email_address[0] #=> String
3738
+ # resp.rule_based_matching.conflict_resolution.conflict_resolving_model #=> String, one of "RECENCY", "SOURCE"
3739
+ # resp.rule_based_matching.conflict_resolution.source_name #=> String
3740
+ # resp.rule_based_matching.exporting_config.s3_exporting.s3_bucket_name #=> String
3741
+ # resp.rule_based_matching.exporting_config.s3_exporting.s3_key_name #=> String
3513
3742
  # resp.created_at #=> Time
3514
3743
  # resp.last_updated_at #=> Time
3515
3744
  # resp.tags #=> Hash
@@ -3715,7 +3944,7 @@ module Aws::CustomerProfiles
3715
3944
  params: params,
3716
3945
  config: config)
3717
3946
  context[:gem_name] = 'aws-sdk-customerprofiles'
3718
- context[:gem_version] = '1.34.0'
3947
+ context[:gem_version] = '1.35.0'
3719
3948
  Seahorse::Client::Request.new(handlers, context)
3720
3949
  end
3721
3950
 
@@ -18,6 +18,7 @@ module Aws::CustomerProfiles
18
18
  AddProfileKeyResponse = Shapes::StructureShape.new(name: 'AddProfileKeyResponse')
19
19
  AdditionalSearchKey = Shapes::StructureShape.new(name: 'AdditionalSearchKey')
20
20
  Address = Shapes::StructureShape.new(name: 'Address')
21
+ AddressList = Shapes::ListShape.new(name: 'AddressList')
21
22
  AppflowIntegration = Shapes::StructureShape.new(name: 'AppflowIntegration')
22
23
  AppflowIntegrationWorkflowAttributes = Shapes::StructureShape.new(name: 'AppflowIntegrationWorkflowAttributes')
23
24
  AppflowIntegrationWorkflowMetrics = Shapes::StructureShape.new(name: 'AppflowIntegrationWorkflowMetrics')
@@ -25,7 +26,9 @@ module Aws::CustomerProfiles
25
26
  AttributeDetails = Shapes::StructureShape.new(name: 'AttributeDetails')
26
27
  AttributeItem = Shapes::StructureShape.new(name: 'AttributeItem')
27
28
  AttributeList = Shapes::ListShape.new(name: 'AttributeList')
29
+ AttributeMatchingModel = Shapes::StringShape.new(name: 'AttributeMatchingModel')
28
30
  AttributeSourceIdMap = Shapes::MapShape.new(name: 'AttributeSourceIdMap')
31
+ AttributeTypesSelector = Shapes::StructureShape.new(name: 'AttributeTypesSelector')
29
32
  Attributes = Shapes::MapShape.new(name: 'Attributes')
30
33
  AutoMerging = Shapes::StructureShape.new(name: 'AutoMerging')
31
34
  BadRequestException = Shapes::StructureShape.new(name: 'BadRequestException')
@@ -78,6 +81,7 @@ module Aws::CustomerProfiles
78
81
  DomainStats = Shapes::StructureShape.new(name: 'DomainStats')
79
82
  Double = Shapes::FloatShape.new(name: 'Double')
80
83
  Double0To1 = Shapes::FloatShape.new(name: 'Double0To1')
84
+ EmailList = Shapes::ListShape.new(name: 'EmailList')
81
85
  EventStreamDestinationDetails = Shapes::StructureShape.new(name: 'EventStreamDestinationDetails')
82
86
  EventStreamDestinationStatus = Shapes::StringShape.new(name: 'EventStreamDestinationStatus')
83
87
  EventStreamState = Shapes::StringShape.new(name: 'EventStreamState')
@@ -114,6 +118,8 @@ module Aws::CustomerProfiles
114
118
  GetProfileObjectTypeResponse = Shapes::StructureShape.new(name: 'GetProfileObjectTypeResponse')
115
119
  GetProfileObjectTypeTemplateRequest = Shapes::StructureShape.new(name: 'GetProfileObjectTypeTemplateRequest')
116
120
  GetProfileObjectTypeTemplateResponse = Shapes::StructureShape.new(name: 'GetProfileObjectTypeTemplateResponse')
121
+ GetSimilarProfilesRequest = Shapes::StructureShape.new(name: 'GetSimilarProfilesRequest')
122
+ GetSimilarProfilesResponse = Shapes::StructureShape.new(name: 'GetSimilarProfilesResponse')
117
123
  GetWorkflowRequest = Shapes::StructureShape.new(name: 'GetWorkflowRequest')
118
124
  GetWorkflowResponse = Shapes::StructureShape.new(name: 'GetWorkflowResponse')
119
125
  GetWorkflowStepsRequest = Shapes::StructureShape.new(name: 'GetWorkflowStepsRequest')
@@ -158,6 +164,8 @@ module Aws::CustomerProfiles
158
164
  ListProfileObjectsItem = Shapes::StructureShape.new(name: 'ListProfileObjectsItem')
159
165
  ListProfileObjectsRequest = Shapes::StructureShape.new(name: 'ListProfileObjectsRequest')
160
166
  ListProfileObjectsResponse = Shapes::StructureShape.new(name: 'ListProfileObjectsResponse')
167
+ ListRuleBasedMatchesRequest = Shapes::StructureShape.new(name: 'ListRuleBasedMatchesRequest')
168
+ ListRuleBasedMatchesResponse = Shapes::StructureShape.new(name: 'ListRuleBasedMatchesResponse')
161
169
  ListTagsForResourceRequest = Shapes::StructureShape.new(name: 'ListTagsForResourceRequest')
162
170
  ListTagsForResourceResponse = Shapes::StructureShape.new(name: 'ListTagsForResourceResponse')
163
171
  ListWorkflowsItem = Shapes::StructureShape.new(name: 'ListWorkflowsItem')
@@ -165,12 +173,19 @@ module Aws::CustomerProfiles
165
173
  ListWorkflowsResponse = Shapes::StructureShape.new(name: 'ListWorkflowsResponse')
166
174
  MarketoConnectorOperator = Shapes::StringShape.new(name: 'MarketoConnectorOperator')
167
175
  MarketoSourceProperties = Shapes::StructureShape.new(name: 'MarketoSourceProperties')
176
+ MatchIdList = Shapes::ListShape.new(name: 'MatchIdList')
168
177
  MatchItem = Shapes::StructureShape.new(name: 'MatchItem')
178
+ MatchType = Shapes::StringShape.new(name: 'MatchType')
169
179
  MatchesList = Shapes::ListShape.new(name: 'MatchesList')
170
180
  MatchingAttributes = Shapes::ListShape.new(name: 'MatchingAttributes')
171
181
  MatchingAttributesList = Shapes::ListShape.new(name: 'MatchingAttributesList')
172
182
  MatchingRequest = Shapes::StructureShape.new(name: 'MatchingRequest')
173
183
  MatchingResponse = Shapes::StructureShape.new(name: 'MatchingResponse')
184
+ MatchingRule = Shapes::StructureShape.new(name: 'MatchingRule')
185
+ MatchingRuleAttributeList = Shapes::ListShape.new(name: 'MatchingRuleAttributeList')
186
+ MatchingRules = Shapes::ListShape.new(name: 'MatchingRules')
187
+ MaxAllowedRuleLevelForMatching = Shapes::IntegerShape.new(name: 'MaxAllowedRuleLevelForMatching')
188
+ MaxAllowedRuleLevelForMerging = Shapes::IntegerShape.new(name: 'MaxAllowedRuleLevelForMerging')
174
189
  MergeProfilesRequest = Shapes::StructureShape.new(name: 'MergeProfilesRequest')
175
190
  MergeProfilesResponse = Shapes::StructureShape.new(name: 'MergeProfilesResponse')
176
191
  Object = Shapes::StringShape.new(name: 'Object')
@@ -183,6 +198,7 @@ module Aws::CustomerProfiles
183
198
  Operator = Shapes::StringShape.new(name: 'Operator')
184
199
  OperatorPropertiesKeys = Shapes::StringShape.new(name: 'OperatorPropertiesKeys')
185
200
  PartyType = Shapes::StringShape.new(name: 'PartyType')
201
+ PhoneNumberList = Shapes::ListShape.new(name: 'PhoneNumberList')
186
202
  Profile = Shapes::StructureShape.new(name: 'Profile')
187
203
  ProfileIdList = Shapes::ListShape.new(name: 'ProfileIdList')
188
204
  ProfileIdToBeMergedList = Shapes::ListShape.new(name: 'ProfileIdToBeMergedList')
@@ -200,6 +216,10 @@ module Aws::CustomerProfiles
200
216
  Range = Shapes::StructureShape.new(name: 'Range')
201
217
  ResourceNotFoundException = Shapes::StructureShape.new(name: 'ResourceNotFoundException')
202
218
  RoleArn = Shapes::StringShape.new(name: 'RoleArn')
219
+ RuleBasedMatchingRequest = Shapes::StructureShape.new(name: 'RuleBasedMatchingRequest')
220
+ RuleBasedMatchingResponse = Shapes::StructureShape.new(name: 'RuleBasedMatchingResponse')
221
+ RuleBasedMatchingStatus = Shapes::StringShape.new(name: 'RuleBasedMatchingStatus')
222
+ RuleLevel = Shapes::IntegerShape.new(name: 'RuleLevel')
203
223
  S3ConnectorOperator = Shapes::StringShape.new(name: 'S3ConnectorOperator')
204
224
  S3ExportingConfig = Shapes::StructureShape.new(name: 'S3ExportingConfig')
205
225
  S3ExportingLocation = Shapes::StructureShape.new(name: 'S3ExportingLocation')
@@ -318,6 +338,8 @@ module Aws::CustomerProfiles
318
338
  Address.add_member(:postal_code, Shapes::ShapeRef.new(shape: string1To255, location_name: "PostalCode"))
319
339
  Address.struct_class = Types::Address
320
340
 
341
+ AddressList.member = Shapes::ShapeRef.new(shape: string1To255)
342
+
321
343
  AppflowIntegration.add_member(:flow_definition, Shapes::ShapeRef.new(shape: FlowDefinition, required: true, location_name: "FlowDefinition"))
322
344
  AppflowIntegration.add_member(:batches, Shapes::ShapeRef.new(shape: Batches, location_name: "Batches"))
323
345
  AppflowIntegration.struct_class = Types::AppflowIntegration
@@ -354,6 +376,12 @@ module Aws::CustomerProfiles
354
376
  AttributeSourceIdMap.key = Shapes::ShapeRef.new(shape: string1To255)
355
377
  AttributeSourceIdMap.value = Shapes::ShapeRef.new(shape: uuid)
356
378
 
379
+ AttributeTypesSelector.add_member(:attribute_matching_model, Shapes::ShapeRef.new(shape: AttributeMatchingModel, required: true, location_name: "AttributeMatchingModel"))
380
+ AttributeTypesSelector.add_member(:address, Shapes::ShapeRef.new(shape: AddressList, location_name: "Address"))
381
+ AttributeTypesSelector.add_member(:phone_number, Shapes::ShapeRef.new(shape: PhoneNumberList, location_name: "PhoneNumber"))
382
+ AttributeTypesSelector.add_member(:email_address, Shapes::ShapeRef.new(shape: EmailList, location_name: "EmailAddress"))
383
+ AttributeTypesSelector.struct_class = Types::AttributeTypesSelector
384
+
357
385
  Attributes.key = Shapes::ShapeRef.new(shape: string1To255)
358
386
  Attributes.value = Shapes::ShapeRef.new(shape: string1To255)
359
387
 
@@ -421,6 +449,7 @@ module Aws::CustomerProfiles
421
449
  CreateDomainRequest.add_member(:default_encryption_key, Shapes::ShapeRef.new(shape: encryptionKey, location_name: "DefaultEncryptionKey"))
422
450
  CreateDomainRequest.add_member(:dead_letter_queue_url, Shapes::ShapeRef.new(shape: sqsQueueUrl, location_name: "DeadLetterQueueUrl"))
423
451
  CreateDomainRequest.add_member(:matching, Shapes::ShapeRef.new(shape: MatchingRequest, location_name: "Matching"))
452
+ CreateDomainRequest.add_member(:rule_based_matching, Shapes::ShapeRef.new(shape: RuleBasedMatchingRequest, location_name: "RuleBasedMatching"))
424
453
  CreateDomainRequest.add_member(:tags, Shapes::ShapeRef.new(shape: TagMap, location_name: "Tags"))
425
454
  CreateDomainRequest.struct_class = Types::CreateDomainRequest
426
455
 
@@ -429,6 +458,7 @@ module Aws::CustomerProfiles
429
458
  CreateDomainResponse.add_member(:default_encryption_key, Shapes::ShapeRef.new(shape: encryptionKey, location_name: "DefaultEncryptionKey"))
430
459
  CreateDomainResponse.add_member(:dead_letter_queue_url, Shapes::ShapeRef.new(shape: sqsQueueUrl, location_name: "DeadLetterQueueUrl"))
431
460
  CreateDomainResponse.add_member(:matching, Shapes::ShapeRef.new(shape: MatchingResponse, location_name: "Matching"))
461
+ CreateDomainResponse.add_member(:rule_based_matching, Shapes::ShapeRef.new(shape: RuleBasedMatchingResponse, location_name: "RuleBasedMatching"))
432
462
  CreateDomainResponse.add_member(:created_at, Shapes::ShapeRef.new(shape: timestamp, required: true, location_name: "CreatedAt"))
433
463
  CreateDomainResponse.add_member(:last_updated_at, Shapes::ShapeRef.new(shape: timestamp, required: true, location_name: "LastUpdatedAt"))
434
464
  CreateDomainResponse.add_member(:tags, Shapes::ShapeRef.new(shape: TagMap, location_name: "Tags"))
@@ -561,6 +591,8 @@ module Aws::CustomerProfiles
561
591
  DomainStats.add_member(:total_size, Shapes::ShapeRef.new(shape: long, location_name: "TotalSize"))
562
592
  DomainStats.struct_class = Types::DomainStats
563
593
 
594
+ EmailList.member = Shapes::ShapeRef.new(shape: string1To255)
595
+
564
596
  EventStreamDestinationDetails.add_member(:uri, Shapes::ShapeRef.new(shape: string1To255, required: true, location_name: "Uri"))
565
597
  EventStreamDestinationDetails.add_member(:status, Shapes::ShapeRef.new(shape: EventStreamDestinationStatus, required: true, location_name: "Status"))
566
598
  EventStreamDestinationDetails.add_member(:unhealthy_since, Shapes::ShapeRef.new(shape: timestamp, location_name: "UnhealthySince"))
@@ -671,6 +703,7 @@ module Aws::CustomerProfiles
671
703
  GetDomainResponse.add_member(:dead_letter_queue_url, Shapes::ShapeRef.new(shape: sqsQueueUrl, location_name: "DeadLetterQueueUrl"))
672
704
  GetDomainResponse.add_member(:stats, Shapes::ShapeRef.new(shape: DomainStats, location_name: "Stats"))
673
705
  GetDomainResponse.add_member(:matching, Shapes::ShapeRef.new(shape: MatchingResponse, location_name: "Matching"))
706
+ GetDomainResponse.add_member(:rule_based_matching, Shapes::ShapeRef.new(shape: RuleBasedMatchingResponse, location_name: "RuleBasedMatching"))
674
707
  GetDomainResponse.add_member(:created_at, Shapes::ShapeRef.new(shape: timestamp, required: true, location_name: "CreatedAt"))
675
708
  GetDomainResponse.add_member(:last_updated_at, Shapes::ShapeRef.new(shape: timestamp, required: true, location_name: "LastUpdatedAt"))
676
709
  GetDomainResponse.add_member(:tags, Shapes::ShapeRef.new(shape: TagMap, location_name: "Tags"))
@@ -762,6 +795,22 @@ module Aws::CustomerProfiles
762
795
  GetProfileObjectTypeTemplateResponse.add_member(:keys, Shapes::ShapeRef.new(shape: KeyMap, location_name: "Keys"))
763
796
  GetProfileObjectTypeTemplateResponse.struct_class = Types::GetProfileObjectTypeTemplateResponse
764
797
 
798
+ GetSimilarProfilesRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: token, location: "querystring", location_name: "next-token"))
799
+ GetSimilarProfilesRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: maxSize100, location: "querystring", location_name: "max-results"))
800
+ GetSimilarProfilesRequest.add_member(:domain_name, Shapes::ShapeRef.new(shape: name, required: true, location: "uri", location_name: "DomainName"))
801
+ GetSimilarProfilesRequest.add_member(:match_type, Shapes::ShapeRef.new(shape: MatchType, required: true, location_name: "MatchType"))
802
+ GetSimilarProfilesRequest.add_member(:search_key, Shapes::ShapeRef.new(shape: string1To255, required: true, location_name: "SearchKey"))
803
+ GetSimilarProfilesRequest.add_member(:search_value, Shapes::ShapeRef.new(shape: string1To255, required: true, location_name: "SearchValue"))
804
+ GetSimilarProfilesRequest.struct_class = Types::GetSimilarProfilesRequest
805
+
806
+ GetSimilarProfilesResponse.add_member(:profile_ids, Shapes::ShapeRef.new(shape: ProfileIdList, location_name: "ProfileIds"))
807
+ GetSimilarProfilesResponse.add_member(:match_id, Shapes::ShapeRef.new(shape: string1To255, location_name: "MatchId"))
808
+ GetSimilarProfilesResponse.add_member(:match_type, Shapes::ShapeRef.new(shape: MatchType, location_name: "MatchType"))
809
+ GetSimilarProfilesResponse.add_member(:rule_level, Shapes::ShapeRef.new(shape: RuleLevel, location_name: "RuleLevel"))
810
+ GetSimilarProfilesResponse.add_member(:confidence_score, Shapes::ShapeRef.new(shape: Double, location_name: "ConfidenceScore"))
811
+ GetSimilarProfilesResponse.add_member(:next_token, Shapes::ShapeRef.new(shape: token, location_name: "NextToken"))
812
+ GetSimilarProfilesResponse.struct_class = Types::GetSimilarProfilesResponse
813
+
765
814
  GetWorkflowRequest.add_member(:domain_name, Shapes::ShapeRef.new(shape: name, required: true, location: "uri", location_name: "DomainName"))
766
815
  GetWorkflowRequest.add_member(:workflow_id, Shapes::ShapeRef.new(shape: uuid, required: true, location: "uri", location_name: "WorkflowId"))
767
816
  GetWorkflowRequest.struct_class = Types::GetWorkflowRequest
@@ -965,6 +1014,15 @@ module Aws::CustomerProfiles
965
1014
  ListProfileObjectsResponse.add_member(:next_token, Shapes::ShapeRef.new(shape: token, location_name: "NextToken"))
966
1015
  ListProfileObjectsResponse.struct_class = Types::ListProfileObjectsResponse
967
1016
 
1017
+ ListRuleBasedMatchesRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: token, location: "querystring", location_name: "next-token"))
1018
+ ListRuleBasedMatchesRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: maxSize100, location: "querystring", location_name: "max-results"))
1019
+ ListRuleBasedMatchesRequest.add_member(:domain_name, Shapes::ShapeRef.new(shape: name, required: true, location: "uri", location_name: "DomainName"))
1020
+ ListRuleBasedMatchesRequest.struct_class = Types::ListRuleBasedMatchesRequest
1021
+
1022
+ ListRuleBasedMatchesResponse.add_member(:match_ids, Shapes::ShapeRef.new(shape: MatchIdList, location_name: "MatchIds"))
1023
+ ListRuleBasedMatchesResponse.add_member(:next_token, Shapes::ShapeRef.new(shape: token, location_name: "NextToken"))
1024
+ ListRuleBasedMatchesResponse.struct_class = Types::ListRuleBasedMatchesResponse
1025
+
968
1026
  ListTagsForResourceRequest.add_member(:resource_arn, Shapes::ShapeRef.new(shape: TagArn, required: true, location: "uri", location_name: "resourceArn"))
969
1027
  ListTagsForResourceRequest.struct_class = Types::ListTagsForResourceRequest
970
1028
 
@@ -995,6 +1053,8 @@ module Aws::CustomerProfiles
995
1053
  MarketoSourceProperties.add_member(:object, Shapes::ShapeRef.new(shape: Object, required: true, location_name: "Object"))
996
1054
  MarketoSourceProperties.struct_class = Types::MarketoSourceProperties
997
1055
 
1056
+ MatchIdList.member = Shapes::ShapeRef.new(shape: string1To255)
1057
+
998
1058
  MatchItem.add_member(:match_id, Shapes::ShapeRef.new(shape: string1To255, location_name: "MatchId"))
999
1059
  MatchItem.add_member(:profile_ids, Shapes::ShapeRef.new(shape: ProfileIdList, location_name: "ProfileIds"))
1000
1060
  MatchItem.add_member(:confidence_score, Shapes::ShapeRef.new(shape: Double, location_name: "ConfidenceScore"))
@@ -1018,6 +1078,13 @@ module Aws::CustomerProfiles
1018
1078
  MatchingResponse.add_member(:exporting_config, Shapes::ShapeRef.new(shape: ExportingConfig, location_name: "ExportingConfig"))
1019
1079
  MatchingResponse.struct_class = Types::MatchingResponse
1020
1080
 
1081
+ MatchingRule.add_member(:rule, Shapes::ShapeRef.new(shape: MatchingRuleAttributeList, required: true, location_name: "Rule"))
1082
+ MatchingRule.struct_class = Types::MatchingRule
1083
+
1084
+ MatchingRuleAttributeList.member = Shapes::ShapeRef.new(shape: string1To255)
1085
+
1086
+ MatchingRules.member = Shapes::ShapeRef.new(shape: MatchingRule)
1087
+
1021
1088
  MergeProfilesRequest.add_member(:domain_name, Shapes::ShapeRef.new(shape: name, required: true, location: "uri", location_name: "DomainName"))
1022
1089
  MergeProfilesRequest.add_member(:main_profile_id, Shapes::ShapeRef.new(shape: uuid, required: true, location_name: "MainProfileId"))
1023
1090
  MergeProfilesRequest.add_member(:profile_ids_to_be_merged, Shapes::ShapeRef.new(shape: ProfileIdToBeMergedList, required: true, location_name: "ProfileIdsToBeMerged"))
@@ -1045,6 +1112,8 @@ module Aws::CustomerProfiles
1045
1112
  ObjectTypeNames.key = Shapes::ShapeRef.new(shape: string1To255)
1046
1113
  ObjectTypeNames.value = Shapes::ShapeRef.new(shape: typeName)
1047
1114
 
1115
+ PhoneNumberList.member = Shapes::ShapeRef.new(shape: string1To255)
1116
+
1048
1117
  Profile.add_member(:profile_id, Shapes::ShapeRef.new(shape: uuid, location_name: "ProfileId"))
1049
1118
  Profile.add_member(:account_number, Shapes::ShapeRef.new(shape: string1To255, location_name: "AccountNumber"))
1050
1119
  Profile.add_member(:additional_information, Shapes::ShapeRef.new(shape: string1To1000, location_name: "AdditionalInformation"))
@@ -1145,6 +1214,25 @@ module Aws::CustomerProfiles
1145
1214
  ResourceNotFoundException.add_member(:message, Shapes::ShapeRef.new(shape: message, location_name: "Message"))
1146
1215
  ResourceNotFoundException.struct_class = Types::ResourceNotFoundException
1147
1216
 
1217
+ RuleBasedMatchingRequest.add_member(:enabled, Shapes::ShapeRef.new(shape: optionalBoolean, required: true, location_name: "Enabled"))
1218
+ RuleBasedMatchingRequest.add_member(:matching_rules, Shapes::ShapeRef.new(shape: MatchingRules, location_name: "MatchingRules"))
1219
+ RuleBasedMatchingRequest.add_member(:max_allowed_rule_level_for_merging, Shapes::ShapeRef.new(shape: MaxAllowedRuleLevelForMerging, location_name: "MaxAllowedRuleLevelForMerging"))
1220
+ RuleBasedMatchingRequest.add_member(:max_allowed_rule_level_for_matching, Shapes::ShapeRef.new(shape: MaxAllowedRuleLevelForMatching, location_name: "MaxAllowedRuleLevelForMatching"))
1221
+ RuleBasedMatchingRequest.add_member(:attribute_types_selector, Shapes::ShapeRef.new(shape: AttributeTypesSelector, location_name: "AttributeTypesSelector"))
1222
+ RuleBasedMatchingRequest.add_member(:conflict_resolution, Shapes::ShapeRef.new(shape: ConflictResolution, location_name: "ConflictResolution"))
1223
+ RuleBasedMatchingRequest.add_member(:exporting_config, Shapes::ShapeRef.new(shape: ExportingConfig, location_name: "ExportingConfig"))
1224
+ RuleBasedMatchingRequest.struct_class = Types::RuleBasedMatchingRequest
1225
+
1226
+ RuleBasedMatchingResponse.add_member(:enabled, Shapes::ShapeRef.new(shape: optionalBoolean, location_name: "Enabled"))
1227
+ RuleBasedMatchingResponse.add_member(:matching_rules, Shapes::ShapeRef.new(shape: MatchingRules, location_name: "MatchingRules"))
1228
+ RuleBasedMatchingResponse.add_member(:status, Shapes::ShapeRef.new(shape: RuleBasedMatchingStatus, location_name: "Status"))
1229
+ RuleBasedMatchingResponse.add_member(:max_allowed_rule_level_for_merging, Shapes::ShapeRef.new(shape: MaxAllowedRuleLevelForMerging, location_name: "MaxAllowedRuleLevelForMerging"))
1230
+ RuleBasedMatchingResponse.add_member(:max_allowed_rule_level_for_matching, Shapes::ShapeRef.new(shape: MaxAllowedRuleLevelForMatching, location_name: "MaxAllowedRuleLevelForMatching"))
1231
+ RuleBasedMatchingResponse.add_member(:attribute_types_selector, Shapes::ShapeRef.new(shape: AttributeTypesSelector, location_name: "AttributeTypesSelector"))
1232
+ RuleBasedMatchingResponse.add_member(:conflict_resolution, Shapes::ShapeRef.new(shape: ConflictResolution, location_name: "ConflictResolution"))
1233
+ RuleBasedMatchingResponse.add_member(:exporting_config, Shapes::ShapeRef.new(shape: ExportingConfig, location_name: "ExportingConfig"))
1234
+ RuleBasedMatchingResponse.struct_class = Types::RuleBasedMatchingResponse
1235
+
1148
1236
  S3ExportingConfig.add_member(:s3_bucket_name, Shapes::ShapeRef.new(shape: s3BucketName, required: true, location_name: "S3BucketName"))
1149
1237
  S3ExportingConfig.add_member(:s3_key_name, Shapes::ShapeRef.new(shape: s3KeyNameCustomerOutputConfig, location_name: "S3KeyName"))
1150
1238
  S3ExportingConfig.struct_class = Types::S3ExportingConfig
@@ -1285,6 +1373,7 @@ module Aws::CustomerProfiles
1285
1373
  UpdateDomainRequest.add_member(:default_encryption_key, Shapes::ShapeRef.new(shape: encryptionKey, location_name: "DefaultEncryptionKey"))
1286
1374
  UpdateDomainRequest.add_member(:dead_letter_queue_url, Shapes::ShapeRef.new(shape: sqsQueueUrl, location_name: "DeadLetterQueueUrl"))
1287
1375
  UpdateDomainRequest.add_member(:matching, Shapes::ShapeRef.new(shape: MatchingRequest, location_name: "Matching"))
1376
+ UpdateDomainRequest.add_member(:rule_based_matching, Shapes::ShapeRef.new(shape: RuleBasedMatchingRequest, location_name: "RuleBasedMatching"))
1288
1377
  UpdateDomainRequest.add_member(:tags, Shapes::ShapeRef.new(shape: TagMap, location_name: "Tags"))
1289
1378
  UpdateDomainRequest.struct_class = Types::UpdateDomainRequest
1290
1379
 
@@ -1293,6 +1382,7 @@ module Aws::CustomerProfiles
1293
1382
  UpdateDomainResponse.add_member(:default_encryption_key, Shapes::ShapeRef.new(shape: encryptionKey, location_name: "DefaultEncryptionKey"))
1294
1383
  UpdateDomainResponse.add_member(:dead_letter_queue_url, Shapes::ShapeRef.new(shape: sqsQueueUrl, location_name: "DeadLetterQueueUrl"))
1295
1384
  UpdateDomainResponse.add_member(:matching, Shapes::ShapeRef.new(shape: MatchingResponse, location_name: "Matching"))
1385
+ UpdateDomainResponse.add_member(:rule_based_matching, Shapes::ShapeRef.new(shape: RuleBasedMatchingResponse, location_name: "RuleBasedMatching"))
1296
1386
  UpdateDomainResponse.add_member(:created_at, Shapes::ShapeRef.new(shape: timestamp, required: true, location_name: "CreatedAt"))
1297
1387
  UpdateDomainResponse.add_member(:last_updated_at, Shapes::ShapeRef.new(shape: timestamp, required: true, location_name: "LastUpdatedAt"))
1298
1388
  UpdateDomainResponse.add_member(:tags, Shapes::ShapeRef.new(shape: TagMap, location_name: "Tags"))
@@ -1694,6 +1784,19 @@ module Aws::CustomerProfiles
1694
1784
  o.errors << Shapes::ShapeRef.new(shape: InternalServerException)
1695
1785
  end)
1696
1786
 
1787
+ api.add_operation(:get_similar_profiles, Seahorse::Model::Operation.new.tap do |o|
1788
+ o.name = "GetSimilarProfiles"
1789
+ o.http_method = "POST"
1790
+ o.http_request_uri = "/domains/{DomainName}/matches"
1791
+ o.input = Shapes::ShapeRef.new(shape: GetSimilarProfilesRequest)
1792
+ o.output = Shapes::ShapeRef.new(shape: GetSimilarProfilesResponse)
1793
+ o.errors << Shapes::ShapeRef.new(shape: BadRequestException)
1794
+ o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException)
1795
+ o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
1796
+ o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
1797
+ o.errors << Shapes::ShapeRef.new(shape: InternalServerException)
1798
+ end)
1799
+
1697
1800
  api.add_operation(:get_workflow, Seahorse::Model::Operation.new.tap do |o|
1698
1801
  o.name = "GetWorkflow"
1699
1802
  o.http_method = "GET"
@@ -1856,6 +1959,19 @@ module Aws::CustomerProfiles
1856
1959
  o.errors << Shapes::ShapeRef.new(shape: InternalServerException)
1857
1960
  end)
1858
1961
 
1962
+ api.add_operation(:list_rule_based_matches, Seahorse::Model::Operation.new.tap do |o|
1963
+ o.name = "ListRuleBasedMatches"
1964
+ o.http_method = "GET"
1965
+ o.http_request_uri = "/domains/{DomainName}/profiles/ruleBasedMatches"
1966
+ o.input = Shapes::ShapeRef.new(shape: ListRuleBasedMatchesRequest)
1967
+ o.output = Shapes::ShapeRef.new(shape: ListRuleBasedMatchesResponse)
1968
+ o.errors << Shapes::ShapeRef.new(shape: BadRequestException)
1969
+ o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException)
1970
+ o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
1971
+ o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
1972
+ o.errors << Shapes::ShapeRef.new(shape: InternalServerException)
1973
+ end)
1974
+
1859
1975
  api.add_operation(:list_tags_for_resource, Seahorse::Model::Operation.new.tap do |o|
1860
1976
  o.name = "ListTagsForResource"
1861
1977
  o.http_method = "GET"
@@ -362,6 +362,20 @@ module Aws::CustomerProfiles
362
362
  end
363
363
  end
364
364
 
365
+ class GetSimilarProfiles
366
+ def self.build(context)
367
+ unless context.config.regional_endpoint
368
+ endpoint = context.config.endpoint.to_s
369
+ end
370
+ Aws::CustomerProfiles::EndpointParameters.new(
371
+ region: context.config.region,
372
+ use_dual_stack: context.config.use_dualstack_endpoint,
373
+ use_fips: context.config.use_fips_endpoint,
374
+ endpoint: endpoint,
375
+ )
376
+ end
377
+ end
378
+
365
379
  class GetWorkflow
366
380
  def self.build(context)
367
381
  unless context.config.regional_endpoint
@@ -530,6 +544,20 @@ module Aws::CustomerProfiles
530
544
  end
531
545
  end
532
546
 
547
+ class ListRuleBasedMatches
548
+ def self.build(context)
549
+ unless context.config.regional_endpoint
550
+ endpoint = context.config.endpoint.to_s
551
+ end
552
+ Aws::CustomerProfiles::EndpointParameters.new(
553
+ region: context.config.region,
554
+ use_dual_stack: context.config.use_dualstack_endpoint,
555
+ use_fips: context.config.use_fips_endpoint,
556
+ endpoint: endpoint,
557
+ )
558
+ end
559
+ end
560
+
533
561
  class ListTagsForResource
534
562
  def self.build(context)
535
563
  unless context.config.regional_endpoint
@@ -106,6 +106,8 @@ module Aws::CustomerProfiles
106
106
  Aws::CustomerProfiles::Endpoints::GetProfileObjectType.build(context)
107
107
  when :get_profile_object_type_template
108
108
  Aws::CustomerProfiles::Endpoints::GetProfileObjectTypeTemplate.build(context)
109
+ when :get_similar_profiles
110
+ Aws::CustomerProfiles::Endpoints::GetSimilarProfiles.build(context)
109
111
  when :get_workflow
110
112
  Aws::CustomerProfiles::Endpoints::GetWorkflow.build(context)
111
113
  when :get_workflow_steps
@@ -130,6 +132,8 @@ module Aws::CustomerProfiles
130
132
  Aws::CustomerProfiles::Endpoints::ListProfileObjectTypes.build(context)
131
133
  when :list_profile_objects
132
134
  Aws::CustomerProfiles::Endpoints::ListProfileObjects.build(context)
135
+ when :list_rule_based_matches
136
+ Aws::CustomerProfiles::Endpoints::ListRuleBasedMatches.build(context)
133
137
  when :list_tags_for_resource
134
138
  Aws::CustomerProfiles::Endpoints::ListTagsForResource.build(context)
135
139
  when :list_workflows
@@ -329,6 +329,92 @@ module Aws::CustomerProfiles
329
329
  include Aws::Structure
330
330
  end
331
331
 
332
+ # Configuration information about the `AttributeTypesSelector `where the
333
+ # rule-based identity resolution uses to match profiles. You can choose
334
+ # how profiles are compared across attribute types and which attribute
335
+ # to use for matching from each type. There are three attribute types
336
+ # you can configure:
337
+ #
338
+ # * Email type
339
+ #
340
+ # * You can choose from `Email`, `BusinessEmail`, and `PersonalEmail`
341
+ #
342
+ # ^
343
+ #
344
+ # * Phone number type
345
+ #
346
+ # * You can choose from `Phone`, `HomePhone`, and `MobilePhone`
347
+ #
348
+ # ^
349
+ #
350
+ # * Address type
351
+ #
352
+ # * You can choose from `Address`, `BusinessAddress`,
353
+ # `MaillingAddress`, and `ShippingAddress`
354
+ #
355
+ # ^
356
+ #
357
+ # You can either choose `ONE_TO_ONE` or `MANY_TO_MANY` as the
358
+ # `AttributeMatchingModel`. When choosing `MANY_TO_MANY`, the system can
359
+ # match attribute across the sub-types of an attribute type. For
360
+ # example, if the value of the `Email` field of Profile A and the value
361
+ # of `BusinessEmail` field of Profile B matches, the two profiles are
362
+ # matched on the Email type. When choosing `ONE_TO_ONE` the system can
363
+ # only match if the sub-types are exact matches. For example, only when
364
+ # the value of the `Email` field of Profile A and the value of the
365
+ # `Email` field of Profile B matches, the two profiles are matched on
366
+ # the Email type.
367
+ #
368
+ # @!attribute [rw] attribute_matching_model
369
+ # Configures the `AttributeMatchingModel`, you can either choose
370
+ # `ONE_TO_ONE` or `MANY_TO_MANY`.
371
+ # @return [String]
372
+ #
373
+ # @!attribute [rw] address
374
+ # The `Address` type. You can choose from `Address`,
375
+ # `BusinessAddress`, `MaillingAddress`, and `ShippingAddress`.
376
+ #
377
+ # You only can use the Address type in the `MatchingRule`. For
378
+ # example, if you want to match profile based on
379
+ # `BusinessAddress.City` or `MaillingAddress.City`, you need to choose
380
+ # the `BusinessAddress` and the `MaillingAddress` to represent the
381
+ # Address type and specify the `Address.City` on the matching rule.
382
+ # @return [Array<String>]
383
+ #
384
+ # @!attribute [rw] phone_number
385
+ # The `PhoneNumber` type. You can choose from `PhoneNumber`,
386
+ # `HomePhoneNumber`, and `MobilePhoneNumber`.
387
+ #
388
+ # You only can use the `PhoneNumber` type in the `MatchingRule`. For
389
+ # example, if you want to match a profile based on `Phone` or
390
+ # `HomePhone`, you need to choose the `Phone` and the `HomePhone` to
391
+ # represent the `PhoneNumber` type and only specify the `PhoneNumber`
392
+ # on the matching rule.
393
+ # @return [Array<String>]
394
+ #
395
+ # @!attribute [rw] email_address
396
+ # The `Email` type. You can choose from `EmailAddress`,
397
+ # `BusinessEmailAddress` and `PersonalEmailAddress`.
398
+ #
399
+ # You only can use the `EmailAddress` type in the `MatchingRule`. For
400
+ # example, if you want to match profile based on
401
+ # `PersonalEmailAddress` or `BusinessEmailAddress`, you need to choose
402
+ # the `PersonalEmailAddress` and the `BusinessEmailAddress` to
403
+ # represent the `EmailAddress` type and only specify the
404
+ # `EmailAddress` on the matching rule.
405
+ # @return [Array<String>]
406
+ #
407
+ # @see http://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/AttributeTypesSelector AWS API Documentation
408
+ #
409
+ class AttributeTypesSelector < Struct.new(
410
+ :attribute_matching_model,
411
+ :address,
412
+ :phone_number,
413
+ :email_address)
414
+ SENSITIVE = []
415
+ include Aws::Structure
416
+ end
417
+
332
418
  # Configuration settings for how to perform the auto-merging of
333
419
  # profiles.
334
420
  #
@@ -654,6 +740,17 @@ module Aws::CustomerProfiles
654
740
  # [1]: https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_GetMatches.html
655
741
  # @return [Types::MatchingRequest]
656
742
  #
743
+ # @!attribute [rw] rule_based_matching
744
+ # The process of matching duplicate profiles using the Rule-Based
745
+ # matching. If `RuleBasedMatching` = true, Amazon Connect Customer
746
+ # Profiles will start to match and merge your profiles according to
747
+ # your configuration in the `RuleBasedMatchingRequest`. You can use
748
+ # the `ListRuleBasedMatches` and `GetSimilarProfiles` API to return
749
+ # and review the results. Also, if you have configured
750
+ # `ExportingConfig` in the `RuleBasedMatchingRequest`, you can
751
+ # download the results from S3.
752
+ # @return [Types::RuleBasedMatchingRequest]
753
+ #
657
754
  # @!attribute [rw] tags
658
755
  # The tags used to organize, track, or control access for this
659
756
  # resource.
@@ -667,6 +764,7 @@ module Aws::CustomerProfiles
667
764
  :default_encryption_key,
668
765
  :dead_letter_queue_url,
669
766
  :matching,
767
+ :rule_based_matching,
670
768
  :tags)
671
769
  SENSITIVE = []
672
770
  include Aws::Structure
@@ -709,6 +807,17 @@ module Aws::CustomerProfiles
709
807
  # [1]: https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_GetMatches.html
710
808
  # @return [Types::MatchingResponse]
711
809
  #
810
+ # @!attribute [rw] rule_based_matching
811
+ # The process of matching duplicate profiles using the Rule-Based
812
+ # matching. If `RuleBasedMatching` = true, Amazon Connect Customer
813
+ # Profiles will start to match and merge your profiles according to
814
+ # your configuration in the `RuleBasedMatchingRequest`. You can use
815
+ # the `ListRuleBasedMatches` and `GetSimilarProfiles` API to return
816
+ # and review the results. Also, if you have configured
817
+ # `ExportingConfig` in the `RuleBasedMatchingRequest`, you can
818
+ # download the results from S3.
819
+ # @return [Types::RuleBasedMatchingResponse]
820
+ #
712
821
  # @!attribute [rw] created_at
713
822
  # The timestamp of when the domain was created.
714
823
  # @return [Time]
@@ -730,6 +839,7 @@ module Aws::CustomerProfiles
730
839
  :default_encryption_key,
731
840
  :dead_letter_queue_url,
732
841
  :matching,
842
+ :rule_based_matching,
733
843
  :created_at,
734
844
  :last_updated_at,
735
845
  :tags)
@@ -1835,6 +1945,17 @@ module Aws::CustomerProfiles
1835
1945
  # [1]: https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_GetMatches.html
1836
1946
  # @return [Types::MatchingResponse]
1837
1947
  #
1948
+ # @!attribute [rw] rule_based_matching
1949
+ # The process of matching duplicate profiles using the Rule-Based
1950
+ # matching. If `RuleBasedMatching` = true, Amazon Connect Customer
1951
+ # Profiles will start to match and merge your profiles according to
1952
+ # your configuration in the `RuleBasedMatchingRequest`. You can use
1953
+ # the `ListRuleBasedMatches` and `GetSimilarProfiles` API to return
1954
+ # and review the results. Also, if you have configured
1955
+ # `ExportingConfig` in the `RuleBasedMatchingRequest`, you can
1956
+ # download the results from S3.
1957
+ # @return [Types::RuleBasedMatchingResponse]
1958
+ #
1838
1959
  # @!attribute [rw] created_at
1839
1960
  # The timestamp of when the domain was created.
1840
1961
  # @return [Time]
@@ -1857,6 +1978,7 @@ module Aws::CustomerProfiles
1857
1978
  :dead_letter_queue_url,
1858
1979
  :stats,
1859
1980
  :matching,
1981
+ :rule_based_matching,
1860
1982
  :created_at,
1861
1983
  :last_updated_at,
1862
1984
  :tags)
@@ -2312,6 +2434,91 @@ module Aws::CustomerProfiles
2312
2434
  include Aws::Structure
2313
2435
  end
2314
2436
 
2437
+ # @!attribute [rw] next_token
2438
+ # The pagination token from the previous `GetSimilarProfiles` API
2439
+ # call.
2440
+ # @return [String]
2441
+ #
2442
+ # @!attribute [rw] max_results
2443
+ # The maximum number of objects returned per page.
2444
+ # @return [Integer]
2445
+ #
2446
+ # @!attribute [rw] domain_name
2447
+ # The unique name of the domain.
2448
+ # @return [String]
2449
+ #
2450
+ # @!attribute [rw] match_type
2451
+ # Specify the type of matching to get similar profiles for.
2452
+ # @return [String]
2453
+ #
2454
+ # @!attribute [rw] search_key
2455
+ # The string indicating the search key to be used.
2456
+ # @return [String]
2457
+ #
2458
+ # @!attribute [rw] search_value
2459
+ # The string based on `SearchKey` to be searched for similar profiles.
2460
+ # @return [String]
2461
+ #
2462
+ # @see http://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/GetSimilarProfilesRequest AWS API Documentation
2463
+ #
2464
+ class GetSimilarProfilesRequest < Struct.new(
2465
+ :next_token,
2466
+ :max_results,
2467
+ :domain_name,
2468
+ :match_type,
2469
+ :search_key,
2470
+ :search_value)
2471
+ SENSITIVE = []
2472
+ include Aws::Structure
2473
+ end
2474
+
2475
+ # @!attribute [rw] profile_ids
2476
+ # Set of `profileId`s that belong to the same matching group.
2477
+ # @return [Array<String>]
2478
+ #
2479
+ # @!attribute [rw] match_id
2480
+ # The string `matchId` that the similar profiles belong to.
2481
+ # @return [String]
2482
+ #
2483
+ # @!attribute [rw] match_type
2484
+ # Specify the type of matching to get similar profiles for.
2485
+ # @return [String]
2486
+ #
2487
+ # @!attribute [rw] rule_level
2488
+ # The integer rule level that the profiles matched on.
2489
+ # @return [Integer]
2490
+ #
2491
+ # @!attribute [rw] confidence_score
2492
+ # It only has value when the `MatchType` is `ML_BASED_MATCHING`.A
2493
+ # number between 0 and 1, where a higher score means higher
2494
+ # similarity. Examining match confidence scores lets you distinguish
2495
+ # between groups of similar records in which the system is highly
2496
+ # confident (which you may decide to merge), groups of similar records
2497
+ # about which the system is uncertain (which you may decide to have
2498
+ # reviewed by a human), and groups of similar records that the system
2499
+ # deems to be unlikely (which you may decide to reject). Given
2500
+ # confidence scores vary as per the data input, it should not be used
2501
+ # as an absolute measure of matching quality.
2502
+ # @return [Float]
2503
+ #
2504
+ # @!attribute [rw] next_token
2505
+ # The pagination token from the previous `GetSimilarProfiles` API
2506
+ # call.
2507
+ # @return [String]
2508
+ #
2509
+ # @see http://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/GetSimilarProfilesResponse AWS API Documentation
2510
+ #
2511
+ class GetSimilarProfilesResponse < Struct.new(
2512
+ :profile_ids,
2513
+ :match_id,
2514
+ :match_type,
2515
+ :rule_level,
2516
+ :confidence_score,
2517
+ :next_token)
2518
+ SENSITIVE = []
2519
+ include Aws::Structure
2520
+ end
2521
+
2315
2522
  # @!attribute [rw] domain_name
2316
2523
  # The unique name of the domain.
2317
2524
  # @return [String]
@@ -3268,6 +3475,47 @@ module Aws::CustomerProfiles
3268
3475
  include Aws::Structure
3269
3476
  end
3270
3477
 
3478
+ # @!attribute [rw] next_token
3479
+ # The pagination token from the previous `ListRuleBasedMatches` API
3480
+ # call.
3481
+ # @return [String]
3482
+ #
3483
+ # @!attribute [rw] max_results
3484
+ # The maximum number of `MatchIds` returned per page.
3485
+ # @return [Integer]
3486
+ #
3487
+ # @!attribute [rw] domain_name
3488
+ # The unique name of the domain.
3489
+ # @return [String]
3490
+ #
3491
+ # @see http://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/ListRuleBasedMatchesRequest AWS API Documentation
3492
+ #
3493
+ class ListRuleBasedMatchesRequest < Struct.new(
3494
+ :next_token,
3495
+ :max_results,
3496
+ :domain_name)
3497
+ SENSITIVE = []
3498
+ include Aws::Structure
3499
+ end
3500
+
3501
+ # @!attribute [rw] match_ids
3502
+ # The list of `MatchIds` for the given domain.
3503
+ # @return [Array<String>]
3504
+ #
3505
+ # @!attribute [rw] next_token
3506
+ # The pagination token from the previous `ListRuleBasedMatches` API
3507
+ # call.
3508
+ # @return [String]
3509
+ #
3510
+ # @see http://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/ListRuleBasedMatchesResponse AWS API Documentation
3511
+ #
3512
+ class ListRuleBasedMatchesResponse < Struct.new(
3513
+ :match_ids,
3514
+ :next_token)
3515
+ SENSITIVE = []
3516
+ include Aws::Structure
3517
+ end
3518
+
3271
3519
  # @!attribute [rw] resource_arn
3272
3520
  # The ARN of the resource for which you want to view tags.
3273
3521
  # @return [String]
@@ -3505,6 +3753,57 @@ module Aws::CustomerProfiles
3505
3753
  include Aws::Structure
3506
3754
  end
3507
3755
 
3756
+ # Specifies how does the rule-based matching process should match
3757
+ # profiles. You can choose from the following attributes to build the
3758
+ # matching Rule:
3759
+ #
3760
+ # * AccountNumber
3761
+ #
3762
+ # * Address.Address
3763
+ #
3764
+ # * Address.City
3765
+ #
3766
+ # * Address.Country
3767
+ #
3768
+ # * Address.County
3769
+ #
3770
+ # * Address.PostalCode
3771
+ #
3772
+ # * Address.State
3773
+ #
3774
+ # * Address.Province
3775
+ #
3776
+ # * BirthDate
3777
+ #
3778
+ # * BusinessName
3779
+ #
3780
+ # * EmailAddress
3781
+ #
3782
+ # * FirstName
3783
+ #
3784
+ # * Gender
3785
+ #
3786
+ # * LastName
3787
+ #
3788
+ # * MiddleName
3789
+ #
3790
+ # * PhoneNumber
3791
+ #
3792
+ # * Any customized profile attributes that start with the `Attributes`
3793
+ #
3794
+ # @!attribute [rw] rule
3795
+ # A single rule level of the `MatchRules`. Configures how the
3796
+ # rule-based matching process should match profiles.
3797
+ # @return [Array<String>]
3798
+ #
3799
+ # @see http://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/MatchingRule AWS API Documentation
3800
+ #
3801
+ class MatchingRule < Struct.new(
3802
+ :rule)
3803
+ SENSITIVE = []
3804
+ include Aws::Structure
3805
+ end
3806
+
3508
3807
  # @!attribute [rw] domain_name
3509
3808
  # The unique name of the domain.
3510
3809
  # @return [String]
@@ -4122,6 +4421,163 @@ module Aws::CustomerProfiles
4122
4421
  include Aws::Structure
4123
4422
  end
4124
4423
 
4424
+ # The request to enable the rule-based matching.
4425
+ #
4426
+ # @!attribute [rw] enabled
4427
+ # The flag that enables the rule-based matching process of duplicate
4428
+ # profiles.
4429
+ # @return [Boolean]
4430
+ #
4431
+ # @!attribute [rw] matching_rules
4432
+ # Configures how the rule-based matching process should match
4433
+ # profiles. You can have up to 15 `MatchingRule` in the
4434
+ # `MatchingRules`.
4435
+ # @return [Array<Types::MatchingRule>]
4436
+ #
4437
+ # @!attribute [rw] max_allowed_rule_level_for_merging
4438
+ # [MatchingRule][1]
4439
+ #
4440
+ #
4441
+ #
4442
+ # [1]: https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_MatchingRule.html
4443
+ # @return [Integer]
4444
+ #
4445
+ # @!attribute [rw] max_allowed_rule_level_for_matching
4446
+ # Indicates the maximum allowed rule level.
4447
+ # @return [Integer]
4448
+ #
4449
+ # @!attribute [rw] attribute_types_selector
4450
+ # Configures information about the `AttributeTypesSelector` where the
4451
+ # rule-based identity resolution uses to match profiles.
4452
+ # @return [Types::AttributeTypesSelector]
4453
+ #
4454
+ # @!attribute [rw] conflict_resolution
4455
+ # How the auto-merging process should resolve conflicts between
4456
+ # different profiles.
4457
+ # @return [Types::ConflictResolution]
4458
+ #
4459
+ # @!attribute [rw] exporting_config
4460
+ # Configuration information about the S3 bucket where Identity
4461
+ # Resolution Jobs writes result files.
4462
+ #
4463
+ # <note markdown="1"> You need to give Customer Profiles service principal write
4464
+ # permission to your S3 bucket. Otherwise, you'll get an exception in
4465
+ # the API response. For an example policy, see [Amazon Connect
4466
+ # Customer Profiles cross-service confused deputy prevention][1].
4467
+ #
4468
+ # </note>
4469
+ #
4470
+ #
4471
+ #
4472
+ # [1]: https://docs.aws.amazon.com/connect/latest/adminguide/cross-service-confused-deputy-prevention.html#customer-profiles-cross-service
4473
+ # @return [Types::ExportingConfig]
4474
+ #
4475
+ # @see http://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/RuleBasedMatchingRequest AWS API Documentation
4476
+ #
4477
+ class RuleBasedMatchingRequest < Struct.new(
4478
+ :enabled,
4479
+ :matching_rules,
4480
+ :max_allowed_rule_level_for_merging,
4481
+ :max_allowed_rule_level_for_matching,
4482
+ :attribute_types_selector,
4483
+ :conflict_resolution,
4484
+ :exporting_config)
4485
+ SENSITIVE = []
4486
+ include Aws::Structure
4487
+ end
4488
+
4489
+ # The response of the Rule-based matching request.
4490
+ #
4491
+ # @!attribute [rw] enabled
4492
+ # The flag that enables the rule-based matching process of duplicate
4493
+ # profiles.
4494
+ # @return [Boolean]
4495
+ #
4496
+ # @!attribute [rw] matching_rules
4497
+ # Configures how the rule-based matching process should match
4498
+ # profiles. You can have up to 15 `MatchingRule` in the
4499
+ # `MatchingRules`.
4500
+ # @return [Array<Types::MatchingRule>]
4501
+ #
4502
+ # @!attribute [rw] status
4503
+ # PENDING
4504
+ #
4505
+ # * The first status after configuration a rule-based matching rule.
4506
+ # If it is an existing domain, the rule-based Identity Resolution
4507
+ # waits one hour before creating the matching rule. If it is a new
4508
+ # domain, the system will skip the `PENDING` stage.
4509
+ #
4510
+ # ^
4511
+ #
4512
+ # IN\_PROGRESS
4513
+ #
4514
+ # * The system is creating the rule-based matching rule. Under this
4515
+ # status, the system is evaluating the existing data and you can no
4516
+ # longer change the Rule-based matching configuration.
4517
+ #
4518
+ # ^
4519
+ #
4520
+ # ACTIVE
4521
+ #
4522
+ # * The rule is ready to use. You can change the rule a day after the
4523
+ # status is in `ACTIVE`.
4524
+ #
4525
+ # ^
4526
+ # @return [String]
4527
+ #
4528
+ # @!attribute [rw] max_allowed_rule_level_for_merging
4529
+ # [MatchingRule][1]
4530
+ #
4531
+ #
4532
+ #
4533
+ # [1]: https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_MatchingRule.html
4534
+ # @return [Integer]
4535
+ #
4536
+ # @!attribute [rw] max_allowed_rule_level_for_matching
4537
+ # Indicates the maximum allowed rule level.
4538
+ # @return [Integer]
4539
+ #
4540
+ # @!attribute [rw] attribute_types_selector
4541
+ # Configures information about the `AttributeTypesSelector` where the
4542
+ # rule-based identity resolution uses to match profiles.
4543
+ # @return [Types::AttributeTypesSelector]
4544
+ #
4545
+ # @!attribute [rw] conflict_resolution
4546
+ # How the auto-merging process should resolve conflicts between
4547
+ # different profiles.
4548
+ # @return [Types::ConflictResolution]
4549
+ #
4550
+ # @!attribute [rw] exporting_config
4551
+ # Configuration information about the S3 bucket where Identity
4552
+ # Resolution Jobs writes result files.
4553
+ #
4554
+ # <note markdown="1"> You need to give Customer Profiles service principal write
4555
+ # permission to your S3 bucket. Otherwise, you'll get an exception in
4556
+ # the API response. For an example policy, see [Amazon Connect
4557
+ # Customer Profiles cross-service confused deputy prevention][1].
4558
+ #
4559
+ # </note>
4560
+ #
4561
+ #
4562
+ #
4563
+ # [1]: https://docs.aws.amazon.com/connect/latest/adminguide/cross-service-confused-deputy-prevention.html#customer-profiles-cross-service
4564
+ # @return [Types::ExportingConfig]
4565
+ #
4566
+ # @see http://docs.aws.amazon.com/goto/WebAPI/customer-profiles-2020-08-15/RuleBasedMatchingResponse AWS API Documentation
4567
+ #
4568
+ class RuleBasedMatchingResponse < Struct.new(
4569
+ :enabled,
4570
+ :matching_rules,
4571
+ :status,
4572
+ :max_allowed_rule_level_for_merging,
4573
+ :max_allowed_rule_level_for_matching,
4574
+ :attribute_types_selector,
4575
+ :conflict_resolution,
4576
+ :exporting_config)
4577
+ SENSITIVE = []
4578
+ include Aws::Structure
4579
+ end
4580
+
4125
4581
  # Configuration information about the S3 bucket where Identity
4126
4582
  # Resolution Jobs write result files.
4127
4583
  #
@@ -4785,6 +5241,17 @@ module Aws::CustomerProfiles
4785
5241
  # [1]: https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_GetMatches.html
4786
5242
  # @return [Types::MatchingRequest]
4787
5243
  #
5244
+ # @!attribute [rw] rule_based_matching
5245
+ # The process of matching duplicate profiles using the rule-Based
5246
+ # matching. If `RuleBasedMatching` = true, Amazon Connect Customer
5247
+ # Profiles will start to match and merge your profiles according to
5248
+ # your configuration in the `RuleBasedMatchingRequest`. You can use
5249
+ # the `ListRuleBasedMatches` and `GetSimilarProfiles` API to return
5250
+ # and review the results. Also, if you have configured
5251
+ # `ExportingConfig` in the `RuleBasedMatchingRequest`, you can
5252
+ # download the results from S3.
5253
+ # @return [Types::RuleBasedMatchingRequest]
5254
+ #
4788
5255
  # @!attribute [rw] tags
4789
5256
  # The tags used to organize, track, or control access for this
4790
5257
  # resource.
@@ -4798,6 +5265,7 @@ module Aws::CustomerProfiles
4798
5265
  :default_encryption_key,
4799
5266
  :dead_letter_queue_url,
4800
5267
  :matching,
5268
+ :rule_based_matching,
4801
5269
  :tags)
4802
5270
  SENSITIVE = []
4803
5271
  include Aws::Structure
@@ -4840,6 +5308,17 @@ module Aws::CustomerProfiles
4840
5308
  # [1]: https://docs.aws.amazon.com/customerprofiles/latest/APIReference/API_GetMatches.html
4841
5309
  # @return [Types::MatchingResponse]
4842
5310
  #
5311
+ # @!attribute [rw] rule_based_matching
5312
+ # The process of matching duplicate profiles using the rule-Based
5313
+ # matching. If `RuleBasedMatching` = true, Amazon Connect Customer
5314
+ # Profiles will start to match and merge your profiles according to
5315
+ # your configuration in the `RuleBasedMatchingRequest`. You can use
5316
+ # the `ListRuleBasedMatches` and `GetSimilarProfiles` API to return
5317
+ # and review the results. Also, if you have configured
5318
+ # `ExportingConfig` in the `RuleBasedMatchingRequest`, you can
5319
+ # download the results from S3.
5320
+ # @return [Types::RuleBasedMatchingResponse]
5321
+ #
4843
5322
  # @!attribute [rw] created_at
4844
5323
  # The timestamp of when the domain was created.
4845
5324
  # @return [Time]
@@ -4861,6 +5340,7 @@ module Aws::CustomerProfiles
4861
5340
  :default_encryption_key,
4862
5341
  :dead_letter_queue_url,
4863
5342
  :matching,
5343
+ :rule_based_matching,
4864
5344
  :created_at,
4865
5345
  :last_updated_at,
4866
5346
  :tags)
@@ -52,6 +52,6 @@ require_relative 'aws-sdk-customerprofiles/customizations'
52
52
  # @!group service
53
53
  module Aws::CustomerProfiles
54
54
 
55
- GEM_VERSION = '1.34.0'
55
+ GEM_VERSION = '1.35.0'
56
56
 
57
57
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aws-sdk-customerprofiles
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.34.0
4
+ version: 1.35.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Amazon Web Services
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-07-11 00:00:00.000000000 Z
11
+ date: 2023-07-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aws-sdk-core