aws-sdk-cleanrooms 1.78.0 → 1.79.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9ee4b145ab4b3b8ad48b61363156e2566a95237615e00d6bd75ffd5a2ebc79dd
4
- data.tar.gz: 1fb9663a7bcd3f972412a8d854657b755064f8c5f0fa0d833407b509e7d9fea1
3
+ metadata.gz: 0d8550804d74a502536f4f9c930a37e62ca67fad461dc70acb662d2f5920ce1a
4
+ data.tar.gz: 06e917b3c97577cb0452468f2d7bb46bd95ed22caec2af9f747f05e98951ab3d
5
5
  SHA512:
6
- metadata.gz: 3306352b3b3cb5b7f81b1cf4bbfbacaad1d673b0281a41ec8a446561388466ae5b5581a6eb7728b231f7a8c349ff36aa659c7640c5882ff299332f7b969a5bd8
7
- data.tar.gz: 679dacef3b29f1581af991adf095befcbd00a895039c6ef6d91c52a07742a1d6637fca372833e5607337a234ca8a02104fdffd8c0b1928abba06b664656170a2
6
+ metadata.gz: ac000af3b5b18ee7ef1c5128f2f194c2cc77aea445e7e5cf68387d69df6ce5675ac0989e8a11e6e3e06e3370e54b948fc8b76dd71a5e42885a4310ea5e6e2323
7
+ data.tar.gz: 199069119529203020be2ecd0f98d27895ebd0d22eabcfe7eeb0b6850a06599c3f77c13ea932756e4bc242202ca17f729db6efe7a4bd746f9da096e59f12d950
data/CHANGELOG.md CHANGED
@@ -1,6 +1,11 @@
1
1
  Unreleased Changes
2
2
  ------------------
3
3
 
4
+ 1.79.0 (2026-08-13)
5
+ ------------------
6
+
7
+ * Feature - This release adds support for minimum aggregation thresholds and comparison controls to the Custom analysis rule type.
8
+
4
9
  1.78.0 (2026-08-11)
5
10
  ------------------
6
11
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.78.0
1
+ 1.79.0
@@ -693,6 +693,19 @@ module Aws::CleanRooms
693
693
  # resp.analysis_rules[0].policy.v1.custom.disallowed_output_columns[0] #=> String
694
694
  # resp.analysis_rules[0].policy.v1.custom.differential_privacy.columns #=> Array
695
695
  # resp.analysis_rules[0].policy.v1.custom.differential_privacy.columns[0].name #=> String
696
+ # resp.analysis_rules[0].policy.v1.custom.aggregation_thresholds #=> Array
697
+ # resp.analysis_rules[0].policy.v1.custom.aggregation_thresholds[0].identity_columns #=> Array
698
+ # resp.analysis_rules[0].policy.v1.custom.aggregation_thresholds[0].identity_columns[0] #=> String
699
+ # resp.analysis_rules[0].policy.v1.custom.aggregation_thresholds[0].minimum_identity_count #=> Integer
700
+ # resp.analysis_rules[0].policy.v1.custom.aggregation_thresholds[0].type #=> String, one of "COUNT_DISTINCT"
701
+ # resp.analysis_rules[0].policy.v1.custom.aggregation_thresholds[0].output_column_thresholds #=> Array
702
+ # resp.analysis_rules[0].policy.v1.custom.aggregation_thresholds[0].output_column_thresholds[0].output_column_name #=> String
703
+ # resp.analysis_rules[0].policy.v1.custom.aggregation_thresholds[0].output_column_thresholds[0].minimum_identity_count #=> Integer
704
+ # resp.analysis_rules[0].policy.v1.custom.aggregation_thresholds[0].allowed_aggregate_expression_type #=> String, one of "COLUMNS_ONLY", "ANY_EXPRESSION"
705
+ # resp.analysis_rules[0].policy.v1.custom.comparison_controls.allowed_literal_comparison_columns #=> Array
706
+ # resp.analysis_rules[0].policy.v1.custom.comparison_controls.allowed_literal_comparison_columns[0] #=> String
707
+ # resp.analysis_rules[0].policy.v1.custom.comparison_controls.allowed_column_comparison_columns #=> Array
708
+ # resp.analysis_rules[0].policy.v1.custom.comparison_controls.allowed_column_comparison_columns[0] #=> String
696
709
  # resp.analysis_rules[0].policy.v1.custom.allowed_result_receivers #=> Array
697
710
  # resp.analysis_rules[0].policy.v1.custom.allowed_result_receivers[0] #=> String
698
711
  # resp.analysis_rules[0].policy.v1.custom.allowed_additional_analyses #=> Array
@@ -758,6 +771,19 @@ module Aws::CleanRooms
758
771
  # resp.analysis_rules[0].consolidated_policy.v1.custom.disallowed_output_columns[0] #=> String
759
772
  # resp.analysis_rules[0].consolidated_policy.v1.custom.differential_privacy.columns #=> Array
760
773
  # resp.analysis_rules[0].consolidated_policy.v1.custom.differential_privacy.columns[0].name #=> String
774
+ # resp.analysis_rules[0].consolidated_policy.v1.custom.aggregation_thresholds #=> Array
775
+ # resp.analysis_rules[0].consolidated_policy.v1.custom.aggregation_thresholds[0].identity_columns #=> Array
776
+ # resp.analysis_rules[0].consolidated_policy.v1.custom.aggregation_thresholds[0].identity_columns[0] #=> String
777
+ # resp.analysis_rules[0].consolidated_policy.v1.custom.aggregation_thresholds[0].minimum_identity_count #=> Integer
778
+ # resp.analysis_rules[0].consolidated_policy.v1.custom.aggregation_thresholds[0].type #=> String, one of "COUNT_DISTINCT"
779
+ # resp.analysis_rules[0].consolidated_policy.v1.custom.aggregation_thresholds[0].output_column_thresholds #=> Array
780
+ # resp.analysis_rules[0].consolidated_policy.v1.custom.aggregation_thresholds[0].output_column_thresholds[0].output_column_name #=> String
781
+ # resp.analysis_rules[0].consolidated_policy.v1.custom.aggregation_thresholds[0].output_column_thresholds[0].minimum_identity_count #=> Integer
782
+ # resp.analysis_rules[0].consolidated_policy.v1.custom.aggregation_thresholds[0].allowed_aggregate_expression_type #=> String, one of "COLUMNS_ONLY", "ANY_EXPRESSION"
783
+ # resp.analysis_rules[0].consolidated_policy.v1.custom.comparison_controls.allowed_literal_comparison_columns #=> Array
784
+ # resp.analysis_rules[0].consolidated_policy.v1.custom.comparison_controls.allowed_literal_comparison_columns[0] #=> String
785
+ # resp.analysis_rules[0].consolidated_policy.v1.custom.comparison_controls.allowed_column_comparison_columns #=> Array
786
+ # resp.analysis_rules[0].consolidated_policy.v1.custom.comparison_controls.allowed_column_comparison_columns[0] #=> String
761
787
  # resp.analysis_rules[0].consolidated_policy.v1.custom.allowed_result_receivers #=> Array
762
788
  # resp.analysis_rules[0].consolidated_policy.v1.custom.allowed_result_receivers[0] #=> String
763
789
  # resp.analysis_rules[0].consolidated_policy.v1.custom.allowed_additional_analyses #=> Array
@@ -1491,6 +1517,24 @@ module Aws::CleanRooms
1491
1517
  # },
1492
1518
  # ],
1493
1519
  # },
1520
+ # aggregation_thresholds: [
1521
+ # {
1522
+ # identity_columns: ["AnalysisRuleColumnName"], # required
1523
+ # minimum_identity_count: 1, # required
1524
+ # type: "COUNT_DISTINCT", # required, accepts COUNT_DISTINCT
1525
+ # output_column_thresholds: [
1526
+ # {
1527
+ # output_column_name: "AnalysisRuleColumnName", # required
1528
+ # minimum_identity_count: 1, # required
1529
+ # },
1530
+ # ],
1531
+ # allowed_aggregate_expression_type: "COLUMNS_ONLY", # required, accepts COLUMNS_ONLY, ANY_EXPRESSION
1532
+ # },
1533
+ # ],
1534
+ # comparison_controls: {
1535
+ # allowed_literal_comparison_columns: ["AnalysisRuleColumnName"], # required
1536
+ # allowed_column_comparison_columns: ["AnalysisRuleColumnName"], # required
1537
+ # },
1494
1538
  # allowed_result_receivers: ["AccountId"],
1495
1539
  # allowed_additional_analyses: ["AdditionalAnalysesResourceArn"],
1496
1540
  # },
@@ -1536,6 +1580,19 @@ module Aws::CleanRooms
1536
1580
  # resp.analysis_rule.policy.v1.custom.disallowed_output_columns[0] #=> String
1537
1581
  # resp.analysis_rule.policy.v1.custom.differential_privacy.columns #=> Array
1538
1582
  # resp.analysis_rule.policy.v1.custom.differential_privacy.columns[0].name #=> String
1583
+ # resp.analysis_rule.policy.v1.custom.aggregation_thresholds #=> Array
1584
+ # resp.analysis_rule.policy.v1.custom.aggregation_thresholds[0].identity_columns #=> Array
1585
+ # resp.analysis_rule.policy.v1.custom.aggregation_thresholds[0].identity_columns[0] #=> String
1586
+ # resp.analysis_rule.policy.v1.custom.aggregation_thresholds[0].minimum_identity_count #=> Integer
1587
+ # resp.analysis_rule.policy.v1.custom.aggregation_thresholds[0].type #=> String, one of "COUNT_DISTINCT"
1588
+ # resp.analysis_rule.policy.v1.custom.aggregation_thresholds[0].output_column_thresholds #=> Array
1589
+ # resp.analysis_rule.policy.v1.custom.aggregation_thresholds[0].output_column_thresholds[0].output_column_name #=> String
1590
+ # resp.analysis_rule.policy.v1.custom.aggregation_thresholds[0].output_column_thresholds[0].minimum_identity_count #=> Integer
1591
+ # resp.analysis_rule.policy.v1.custom.aggregation_thresholds[0].allowed_aggregate_expression_type #=> String, one of "COLUMNS_ONLY", "ANY_EXPRESSION"
1592
+ # resp.analysis_rule.policy.v1.custom.comparison_controls.allowed_literal_comparison_columns #=> Array
1593
+ # resp.analysis_rule.policy.v1.custom.comparison_controls.allowed_literal_comparison_columns[0] #=> String
1594
+ # resp.analysis_rule.policy.v1.custom.comparison_controls.allowed_column_comparison_columns #=> Array
1595
+ # resp.analysis_rule.policy.v1.custom.comparison_controls.allowed_column_comparison_columns[0] #=> String
1539
1596
  # resp.analysis_rule.policy.v1.custom.allowed_result_receivers #=> Array
1540
1597
  # resp.analysis_rule.policy.v1.custom.allowed_result_receivers[0] #=> String
1541
1598
  # resp.analysis_rule.policy.v1.custom.allowed_additional_analyses #=> Array
@@ -2045,6 +2102,24 @@ module Aws::CleanRooms
2045
2102
  # ],
2046
2103
  # },
2047
2104
  # disallowed_output_columns: ["AnalysisRuleColumnName"],
2105
+ # aggregation_thresholds: [
2106
+ # {
2107
+ # identity_columns: ["AnalysisRuleColumnName"], # required
2108
+ # minimum_identity_count: 1, # required
2109
+ # type: "COUNT_DISTINCT", # required, accepts COUNT_DISTINCT
2110
+ # output_column_thresholds: [
2111
+ # {
2112
+ # output_column_name: "AnalysisRuleColumnName", # required
2113
+ # minimum_identity_count: 1, # required
2114
+ # },
2115
+ # ],
2116
+ # allowed_aggregate_expression_type: "COLUMNS_ONLY", # required, accepts COLUMNS_ONLY, ANY_EXPRESSION
2117
+ # },
2118
+ # ],
2119
+ # comparison_controls: {
2120
+ # allowed_literal_comparison_columns: ["AnalysisRuleColumnName"], # required
2121
+ # allowed_column_comparison_columns: ["AnalysisRuleColumnName"], # required
2122
+ # },
2048
2123
  # },
2049
2124
  # },
2050
2125
  # },
@@ -2067,6 +2142,19 @@ module Aws::CleanRooms
2067
2142
  # resp.analysis_rule.analysis_rule_policy.v1.custom.differential_privacy.columns[0].name #=> String
2068
2143
  # resp.analysis_rule.analysis_rule_policy.v1.custom.disallowed_output_columns #=> Array
2069
2144
  # resp.analysis_rule.analysis_rule_policy.v1.custom.disallowed_output_columns[0] #=> String
2145
+ # resp.analysis_rule.analysis_rule_policy.v1.custom.aggregation_thresholds #=> Array
2146
+ # resp.analysis_rule.analysis_rule_policy.v1.custom.aggregation_thresholds[0].identity_columns #=> Array
2147
+ # resp.analysis_rule.analysis_rule_policy.v1.custom.aggregation_thresholds[0].identity_columns[0] #=> String
2148
+ # resp.analysis_rule.analysis_rule_policy.v1.custom.aggregation_thresholds[0].minimum_identity_count #=> Integer
2149
+ # resp.analysis_rule.analysis_rule_policy.v1.custom.aggregation_thresholds[0].type #=> String, one of "COUNT_DISTINCT"
2150
+ # resp.analysis_rule.analysis_rule_policy.v1.custom.aggregation_thresholds[0].output_column_thresholds #=> Array
2151
+ # resp.analysis_rule.analysis_rule_policy.v1.custom.aggregation_thresholds[0].output_column_thresholds[0].output_column_name #=> String
2152
+ # resp.analysis_rule.analysis_rule_policy.v1.custom.aggregation_thresholds[0].output_column_thresholds[0].minimum_identity_count #=> Integer
2153
+ # resp.analysis_rule.analysis_rule_policy.v1.custom.aggregation_thresholds[0].allowed_aggregate_expression_type #=> String, one of "COLUMNS_ONLY", "ANY_EXPRESSION"
2154
+ # resp.analysis_rule.analysis_rule_policy.v1.custom.comparison_controls.allowed_literal_comparison_columns #=> Array
2155
+ # resp.analysis_rule.analysis_rule_policy.v1.custom.comparison_controls.allowed_literal_comparison_columns[0] #=> String
2156
+ # resp.analysis_rule.analysis_rule_policy.v1.custom.comparison_controls.allowed_column_comparison_columns #=> Array
2157
+ # resp.analysis_rule.analysis_rule_policy.v1.custom.comparison_controls.allowed_column_comparison_columns[0] #=> String
2070
2158
  # resp.analysis_rule.analysis_rule_type #=> String, one of "CUSTOM"
2071
2159
  # resp.analysis_rule.create_time #=> Time
2072
2160
  # resp.analysis_rule.update_time #=> Time
@@ -3347,6 +3435,19 @@ module Aws::CleanRooms
3347
3435
  # resp.analysis_rule.policy.v1.custom.disallowed_output_columns[0] #=> String
3348
3436
  # resp.analysis_rule.policy.v1.custom.differential_privacy.columns #=> Array
3349
3437
  # resp.analysis_rule.policy.v1.custom.differential_privacy.columns[0].name #=> String
3438
+ # resp.analysis_rule.policy.v1.custom.aggregation_thresholds #=> Array
3439
+ # resp.analysis_rule.policy.v1.custom.aggregation_thresholds[0].identity_columns #=> Array
3440
+ # resp.analysis_rule.policy.v1.custom.aggregation_thresholds[0].identity_columns[0] #=> String
3441
+ # resp.analysis_rule.policy.v1.custom.aggregation_thresholds[0].minimum_identity_count #=> Integer
3442
+ # resp.analysis_rule.policy.v1.custom.aggregation_thresholds[0].type #=> String, one of "COUNT_DISTINCT"
3443
+ # resp.analysis_rule.policy.v1.custom.aggregation_thresholds[0].output_column_thresholds #=> Array
3444
+ # resp.analysis_rule.policy.v1.custom.aggregation_thresholds[0].output_column_thresholds[0].output_column_name #=> String
3445
+ # resp.analysis_rule.policy.v1.custom.aggregation_thresholds[0].output_column_thresholds[0].minimum_identity_count #=> Integer
3446
+ # resp.analysis_rule.policy.v1.custom.aggregation_thresholds[0].allowed_aggregate_expression_type #=> String, one of "COLUMNS_ONLY", "ANY_EXPRESSION"
3447
+ # resp.analysis_rule.policy.v1.custom.comparison_controls.allowed_literal_comparison_columns #=> Array
3448
+ # resp.analysis_rule.policy.v1.custom.comparison_controls.allowed_literal_comparison_columns[0] #=> String
3449
+ # resp.analysis_rule.policy.v1.custom.comparison_controls.allowed_column_comparison_columns #=> Array
3450
+ # resp.analysis_rule.policy.v1.custom.comparison_controls.allowed_column_comparison_columns[0] #=> String
3350
3451
  # resp.analysis_rule.policy.v1.custom.allowed_result_receivers #=> Array
3351
3452
  # resp.analysis_rule.policy.v1.custom.allowed_result_receivers[0] #=> String
3352
3453
  # resp.analysis_rule.policy.v1.custom.allowed_additional_analyses #=> Array
@@ -3726,6 +3827,19 @@ module Aws::CleanRooms
3726
3827
  # resp.analysis_rule.analysis_rule_policy.v1.custom.differential_privacy.columns[0].name #=> String
3727
3828
  # resp.analysis_rule.analysis_rule_policy.v1.custom.disallowed_output_columns #=> Array
3728
3829
  # resp.analysis_rule.analysis_rule_policy.v1.custom.disallowed_output_columns[0] #=> String
3830
+ # resp.analysis_rule.analysis_rule_policy.v1.custom.aggregation_thresholds #=> Array
3831
+ # resp.analysis_rule.analysis_rule_policy.v1.custom.aggregation_thresholds[0].identity_columns #=> Array
3832
+ # resp.analysis_rule.analysis_rule_policy.v1.custom.aggregation_thresholds[0].identity_columns[0] #=> String
3833
+ # resp.analysis_rule.analysis_rule_policy.v1.custom.aggregation_thresholds[0].minimum_identity_count #=> Integer
3834
+ # resp.analysis_rule.analysis_rule_policy.v1.custom.aggregation_thresholds[0].type #=> String, one of "COUNT_DISTINCT"
3835
+ # resp.analysis_rule.analysis_rule_policy.v1.custom.aggregation_thresholds[0].output_column_thresholds #=> Array
3836
+ # resp.analysis_rule.analysis_rule_policy.v1.custom.aggregation_thresholds[0].output_column_thresholds[0].output_column_name #=> String
3837
+ # resp.analysis_rule.analysis_rule_policy.v1.custom.aggregation_thresholds[0].output_column_thresholds[0].minimum_identity_count #=> Integer
3838
+ # resp.analysis_rule.analysis_rule_policy.v1.custom.aggregation_thresholds[0].allowed_aggregate_expression_type #=> String, one of "COLUMNS_ONLY", "ANY_EXPRESSION"
3839
+ # resp.analysis_rule.analysis_rule_policy.v1.custom.comparison_controls.allowed_literal_comparison_columns #=> Array
3840
+ # resp.analysis_rule.analysis_rule_policy.v1.custom.comparison_controls.allowed_literal_comparison_columns[0] #=> String
3841
+ # resp.analysis_rule.analysis_rule_policy.v1.custom.comparison_controls.allowed_column_comparison_columns #=> Array
3842
+ # resp.analysis_rule.analysis_rule_policy.v1.custom.comparison_controls.allowed_column_comparison_columns[0] #=> String
3729
3843
  # resp.analysis_rule.analysis_rule_type #=> String, one of "CUSTOM"
3730
3844
  # resp.analysis_rule.create_time #=> Time
3731
3845
  # resp.analysis_rule.update_time #=> Time
@@ -4109,6 +4223,19 @@ module Aws::CleanRooms
4109
4223
  # resp.analysis_rule.policy.v1.custom.disallowed_output_columns[0] #=> String
4110
4224
  # resp.analysis_rule.policy.v1.custom.differential_privacy.columns #=> Array
4111
4225
  # resp.analysis_rule.policy.v1.custom.differential_privacy.columns[0].name #=> String
4226
+ # resp.analysis_rule.policy.v1.custom.aggregation_thresholds #=> Array
4227
+ # resp.analysis_rule.policy.v1.custom.aggregation_thresholds[0].identity_columns #=> Array
4228
+ # resp.analysis_rule.policy.v1.custom.aggregation_thresholds[0].identity_columns[0] #=> String
4229
+ # resp.analysis_rule.policy.v1.custom.aggregation_thresholds[0].minimum_identity_count #=> Integer
4230
+ # resp.analysis_rule.policy.v1.custom.aggregation_thresholds[0].type #=> String, one of "COUNT_DISTINCT"
4231
+ # resp.analysis_rule.policy.v1.custom.aggregation_thresholds[0].output_column_thresholds #=> Array
4232
+ # resp.analysis_rule.policy.v1.custom.aggregation_thresholds[0].output_column_thresholds[0].output_column_name #=> String
4233
+ # resp.analysis_rule.policy.v1.custom.aggregation_thresholds[0].output_column_thresholds[0].minimum_identity_count #=> Integer
4234
+ # resp.analysis_rule.policy.v1.custom.aggregation_thresholds[0].allowed_aggregate_expression_type #=> String, one of "COLUMNS_ONLY", "ANY_EXPRESSION"
4235
+ # resp.analysis_rule.policy.v1.custom.comparison_controls.allowed_literal_comparison_columns #=> Array
4236
+ # resp.analysis_rule.policy.v1.custom.comparison_controls.allowed_literal_comparison_columns[0] #=> String
4237
+ # resp.analysis_rule.policy.v1.custom.comparison_controls.allowed_column_comparison_columns #=> Array
4238
+ # resp.analysis_rule.policy.v1.custom.comparison_controls.allowed_column_comparison_columns[0] #=> String
4112
4239
  # resp.analysis_rule.policy.v1.custom.allowed_result_receivers #=> Array
4113
4240
  # resp.analysis_rule.policy.v1.custom.allowed_result_receivers[0] #=> String
4114
4241
  # resp.analysis_rule.policy.v1.custom.allowed_additional_analyses #=> Array
@@ -4174,6 +4301,19 @@ module Aws::CleanRooms
4174
4301
  # resp.analysis_rule.consolidated_policy.v1.custom.disallowed_output_columns[0] #=> String
4175
4302
  # resp.analysis_rule.consolidated_policy.v1.custom.differential_privacy.columns #=> Array
4176
4303
  # resp.analysis_rule.consolidated_policy.v1.custom.differential_privacy.columns[0].name #=> String
4304
+ # resp.analysis_rule.consolidated_policy.v1.custom.aggregation_thresholds #=> Array
4305
+ # resp.analysis_rule.consolidated_policy.v1.custom.aggregation_thresholds[0].identity_columns #=> Array
4306
+ # resp.analysis_rule.consolidated_policy.v1.custom.aggregation_thresholds[0].identity_columns[0] #=> String
4307
+ # resp.analysis_rule.consolidated_policy.v1.custom.aggregation_thresholds[0].minimum_identity_count #=> Integer
4308
+ # resp.analysis_rule.consolidated_policy.v1.custom.aggregation_thresholds[0].type #=> String, one of "COUNT_DISTINCT"
4309
+ # resp.analysis_rule.consolidated_policy.v1.custom.aggregation_thresholds[0].output_column_thresholds #=> Array
4310
+ # resp.analysis_rule.consolidated_policy.v1.custom.aggregation_thresholds[0].output_column_thresholds[0].output_column_name #=> String
4311
+ # resp.analysis_rule.consolidated_policy.v1.custom.aggregation_thresholds[0].output_column_thresholds[0].minimum_identity_count #=> Integer
4312
+ # resp.analysis_rule.consolidated_policy.v1.custom.aggregation_thresholds[0].allowed_aggregate_expression_type #=> String, one of "COLUMNS_ONLY", "ANY_EXPRESSION"
4313
+ # resp.analysis_rule.consolidated_policy.v1.custom.comparison_controls.allowed_literal_comparison_columns #=> Array
4314
+ # resp.analysis_rule.consolidated_policy.v1.custom.comparison_controls.allowed_literal_comparison_columns[0] #=> String
4315
+ # resp.analysis_rule.consolidated_policy.v1.custom.comparison_controls.allowed_column_comparison_columns #=> Array
4316
+ # resp.analysis_rule.consolidated_policy.v1.custom.comparison_controls.allowed_column_comparison_columns[0] #=> String
4177
4317
  # resp.analysis_rule.consolidated_policy.v1.custom.allowed_result_receivers #=> Array
4178
4318
  # resp.analysis_rule.consolidated_policy.v1.custom.allowed_result_receivers[0] #=> String
4179
4319
  # resp.analysis_rule.consolidated_policy.v1.custom.allowed_additional_analyses #=> Array
@@ -6580,6 +6720,24 @@ module Aws::CleanRooms
6580
6720
  # },
6581
6721
  # ],
6582
6722
  # },
6723
+ # aggregation_thresholds: [
6724
+ # {
6725
+ # identity_columns: ["AnalysisRuleColumnName"], # required
6726
+ # minimum_identity_count: 1, # required
6727
+ # type: "COUNT_DISTINCT", # required, accepts COUNT_DISTINCT
6728
+ # output_column_thresholds: [
6729
+ # {
6730
+ # output_column_name: "AnalysisRuleColumnName", # required
6731
+ # minimum_identity_count: 1, # required
6732
+ # },
6733
+ # ],
6734
+ # allowed_aggregate_expression_type: "COLUMNS_ONLY", # required, accepts COLUMNS_ONLY, ANY_EXPRESSION
6735
+ # },
6736
+ # ],
6737
+ # comparison_controls: {
6738
+ # allowed_literal_comparison_columns: ["AnalysisRuleColumnName"], # required
6739
+ # allowed_column_comparison_columns: ["AnalysisRuleColumnName"], # required
6740
+ # },
6583
6741
  # allowed_result_receivers: ["AccountId"],
6584
6742
  # allowed_additional_analyses: ["AdditionalAnalysesResourceArn"],
6585
6743
  # },
@@ -6625,6 +6783,19 @@ module Aws::CleanRooms
6625
6783
  # resp.analysis_rule.policy.v1.custom.disallowed_output_columns[0] #=> String
6626
6784
  # resp.analysis_rule.policy.v1.custom.differential_privacy.columns #=> Array
6627
6785
  # resp.analysis_rule.policy.v1.custom.differential_privacy.columns[0].name #=> String
6786
+ # resp.analysis_rule.policy.v1.custom.aggregation_thresholds #=> Array
6787
+ # resp.analysis_rule.policy.v1.custom.aggregation_thresholds[0].identity_columns #=> Array
6788
+ # resp.analysis_rule.policy.v1.custom.aggregation_thresholds[0].identity_columns[0] #=> String
6789
+ # resp.analysis_rule.policy.v1.custom.aggregation_thresholds[0].minimum_identity_count #=> Integer
6790
+ # resp.analysis_rule.policy.v1.custom.aggregation_thresholds[0].type #=> String, one of "COUNT_DISTINCT"
6791
+ # resp.analysis_rule.policy.v1.custom.aggregation_thresholds[0].output_column_thresholds #=> Array
6792
+ # resp.analysis_rule.policy.v1.custom.aggregation_thresholds[0].output_column_thresholds[0].output_column_name #=> String
6793
+ # resp.analysis_rule.policy.v1.custom.aggregation_thresholds[0].output_column_thresholds[0].minimum_identity_count #=> Integer
6794
+ # resp.analysis_rule.policy.v1.custom.aggregation_thresholds[0].allowed_aggregate_expression_type #=> String, one of "COLUMNS_ONLY", "ANY_EXPRESSION"
6795
+ # resp.analysis_rule.policy.v1.custom.comparison_controls.allowed_literal_comparison_columns #=> Array
6796
+ # resp.analysis_rule.policy.v1.custom.comparison_controls.allowed_literal_comparison_columns[0] #=> String
6797
+ # resp.analysis_rule.policy.v1.custom.comparison_controls.allowed_column_comparison_columns #=> Array
6798
+ # resp.analysis_rule.policy.v1.custom.comparison_controls.allowed_column_comparison_columns[0] #=> String
6628
6799
  # resp.analysis_rule.policy.v1.custom.allowed_result_receivers #=> Array
6629
6800
  # resp.analysis_rule.policy.v1.custom.allowed_result_receivers[0] #=> String
6630
6801
  # resp.analysis_rule.policy.v1.custom.allowed_additional_analyses #=> Array
@@ -7072,6 +7243,24 @@ module Aws::CleanRooms
7072
7243
  # ],
7073
7244
  # },
7074
7245
  # disallowed_output_columns: ["AnalysisRuleColumnName"],
7246
+ # aggregation_thresholds: [
7247
+ # {
7248
+ # identity_columns: ["AnalysisRuleColumnName"], # required
7249
+ # minimum_identity_count: 1, # required
7250
+ # type: "COUNT_DISTINCT", # required, accepts COUNT_DISTINCT
7251
+ # output_column_thresholds: [
7252
+ # {
7253
+ # output_column_name: "AnalysisRuleColumnName", # required
7254
+ # minimum_identity_count: 1, # required
7255
+ # },
7256
+ # ],
7257
+ # allowed_aggregate_expression_type: "COLUMNS_ONLY", # required, accepts COLUMNS_ONLY, ANY_EXPRESSION
7258
+ # },
7259
+ # ],
7260
+ # comparison_controls: {
7261
+ # allowed_literal_comparison_columns: ["AnalysisRuleColumnName"], # required
7262
+ # allowed_column_comparison_columns: ["AnalysisRuleColumnName"], # required
7263
+ # },
7075
7264
  # },
7076
7265
  # },
7077
7266
  # },
@@ -7094,6 +7283,19 @@ module Aws::CleanRooms
7094
7283
  # resp.analysis_rule.analysis_rule_policy.v1.custom.differential_privacy.columns[0].name #=> String
7095
7284
  # resp.analysis_rule.analysis_rule_policy.v1.custom.disallowed_output_columns #=> Array
7096
7285
  # resp.analysis_rule.analysis_rule_policy.v1.custom.disallowed_output_columns[0] #=> String
7286
+ # resp.analysis_rule.analysis_rule_policy.v1.custom.aggregation_thresholds #=> Array
7287
+ # resp.analysis_rule.analysis_rule_policy.v1.custom.aggregation_thresholds[0].identity_columns #=> Array
7288
+ # resp.analysis_rule.analysis_rule_policy.v1.custom.aggregation_thresholds[0].identity_columns[0] #=> String
7289
+ # resp.analysis_rule.analysis_rule_policy.v1.custom.aggregation_thresholds[0].minimum_identity_count #=> Integer
7290
+ # resp.analysis_rule.analysis_rule_policy.v1.custom.aggregation_thresholds[0].type #=> String, one of "COUNT_DISTINCT"
7291
+ # resp.analysis_rule.analysis_rule_policy.v1.custom.aggregation_thresholds[0].output_column_thresholds #=> Array
7292
+ # resp.analysis_rule.analysis_rule_policy.v1.custom.aggregation_thresholds[0].output_column_thresholds[0].output_column_name #=> String
7293
+ # resp.analysis_rule.analysis_rule_policy.v1.custom.aggregation_thresholds[0].output_column_thresholds[0].minimum_identity_count #=> Integer
7294
+ # resp.analysis_rule.analysis_rule_policy.v1.custom.aggregation_thresholds[0].allowed_aggregate_expression_type #=> String, one of "COLUMNS_ONLY", "ANY_EXPRESSION"
7295
+ # resp.analysis_rule.analysis_rule_policy.v1.custom.comparison_controls.allowed_literal_comparison_columns #=> Array
7296
+ # resp.analysis_rule.analysis_rule_policy.v1.custom.comparison_controls.allowed_literal_comparison_columns[0] #=> String
7297
+ # resp.analysis_rule.analysis_rule_policy.v1.custom.comparison_controls.allowed_column_comparison_columns #=> Array
7298
+ # resp.analysis_rule.analysis_rule_policy.v1.custom.comparison_controls.allowed_column_comparison_columns[0] #=> String
7097
7299
  # resp.analysis_rule.analysis_rule_type #=> String, one of "CUSTOM"
7098
7300
  # resp.analysis_rule.create_time #=> Time
7099
7301
  # resp.analysis_rule.update_time #=> Time
@@ -7462,7 +7664,7 @@ module Aws::CleanRooms
7462
7664
  tracer: tracer
7463
7665
  )
7464
7666
  context[:gem_name] = 'aws-sdk-cleanrooms'
7465
- context[:gem_version] = '1.78.0'
7667
+ context[:gem_version] = '1.79.0'
7466
7668
  Seahorse::Client::Request.new(handlers, context)
7467
7669
  end
7468
7670
 
@@ -33,8 +33,14 @@ module Aws::CleanRooms
33
33
  AggregationConstraint = Shapes::StructureShape.new(name: 'AggregationConstraint')
34
34
  AggregationConstraintMinimumInteger = Shapes::IntegerShape.new(name: 'AggregationConstraintMinimumInteger')
35
35
  AggregationConstraints = Shapes::ListShape.new(name: 'AggregationConstraints')
36
+ AggregationThreshold = Shapes::StructureShape.new(name: 'AggregationThreshold')
37
+ AggregationThresholdIdentityColumnsList = Shapes::ListShape.new(name: 'AggregationThresholdIdentityColumnsList')
38
+ AggregationThresholdList = Shapes::ListShape.new(name: 'AggregationThresholdList')
39
+ AggregationThresholdMinimumIdentityCountInteger = Shapes::IntegerShape.new(name: 'AggregationThresholdMinimumIdentityCountInteger')
40
+ AggregationThresholdType = Shapes::StringShape.new(name: 'AggregationThresholdType')
36
41
  AggregationType = Shapes::StringShape.new(name: 'AggregationType')
37
42
  AllowedAdditionalAnalyses = Shapes::ListShape.new(name: 'AllowedAdditionalAnalyses')
43
+ AllowedAggregateExpressionType = Shapes::StringShape.new(name: 'AllowedAggregateExpressionType')
38
44
  AllowedAnalysesList = Shapes::ListShape.new(name: 'AllowedAnalysesList')
39
45
  AllowedAnalysisProviderList = Shapes::ListShape.new(name: 'AllowedAnalysisProviderList')
40
46
  AllowedColumnList = Shapes::ListShape.new(name: 'AllowedColumnList')
@@ -180,6 +186,7 @@ module Aws::CleanRooms
180
186
  ColumnName = Shapes::StringShape.new(name: 'ColumnName')
181
187
  ColumnTypeString = Shapes::StringShape.new(name: 'ColumnTypeString')
182
188
  CommercialRegion = Shapes::StringShape.new(name: 'CommercialRegion')
189
+ ComparisonControls = Shapes::StructureShape.new(name: 'ComparisonControls')
183
190
  ComputeConfiguration = Shapes::UnionShape.new(name: 'ComputeConfiguration')
184
191
  ConfigurationDetails = Shapes::UnionShape.new(name: 'ConfigurationDetails')
185
192
  ConfiguredAudienceModelArn = Shapes::StringShape.new(name: 'ConfiguredAudienceModelArn')
@@ -524,6 +531,9 @@ module Aws::CleanRooms
524
531
  MembershipSyntheticDataGenerationPaymentConfig = Shapes::StructureShape.new(name: 'MembershipSyntheticDataGenerationPaymentConfig')
525
532
  ModelInferencePaymentConfig = Shapes::StructureShape.new(name: 'ModelInferencePaymentConfig')
526
533
  ModelTrainingPaymentConfig = Shapes::StructureShape.new(name: 'ModelTrainingPaymentConfig')
534
+ OutputColumnThreshold = Shapes::StructureShape.new(name: 'OutputColumnThreshold')
535
+ OutputColumnThresholdList = Shapes::ListShape.new(name: 'OutputColumnThresholdList')
536
+ OutputColumnThresholdMinimumIdentityCountInteger = Shapes::IntegerShape.new(name: 'OutputColumnThresholdMinimumIdentityCountInteger')
527
537
  PaginationToken = Shapes::StringShape.new(name: 'PaginationToken')
528
538
  ParameterMap = Shapes::MapShape.new(name: 'ParameterMap')
529
539
  ParameterName = Shapes::StringShape.new(name: 'ParameterName')
@@ -785,6 +795,17 @@ module Aws::CleanRooms
785
795
 
786
796
  AggregationConstraints.member = Shapes::ShapeRef.new(shape: AggregationConstraint)
787
797
 
798
+ AggregationThreshold.add_member(:identity_columns, Shapes::ShapeRef.new(shape: AggregationThresholdIdentityColumnsList, required: true, location_name: "identityColumns"))
799
+ AggregationThreshold.add_member(:minimum_identity_count, Shapes::ShapeRef.new(shape: AggregationThresholdMinimumIdentityCountInteger, required: true, location_name: "minimumIdentityCount"))
800
+ AggregationThreshold.add_member(:type, Shapes::ShapeRef.new(shape: AggregationThresholdType, required: true, location_name: "type"))
801
+ AggregationThreshold.add_member(:output_column_thresholds, Shapes::ShapeRef.new(shape: OutputColumnThresholdList, location_name: "outputColumnThresholds"))
802
+ AggregationThreshold.add_member(:allowed_aggregate_expression_type, Shapes::ShapeRef.new(shape: AllowedAggregateExpressionType, required: true, location_name: "allowedAggregateExpressionType"))
803
+ AggregationThreshold.struct_class = Types::AggregationThreshold
804
+
805
+ AggregationThresholdIdentityColumnsList.member = Shapes::ShapeRef.new(shape: AnalysisRuleColumnName)
806
+
807
+ AggregationThresholdList.member = Shapes::ShapeRef.new(shape: AggregationThreshold)
808
+
788
809
  AllowedAdditionalAnalyses.member = Shapes::ShapeRef.new(shape: AdditionalAnalysesResourceArn)
789
810
 
790
811
  AllowedAnalysesList.member = Shapes::ShapeRef.new(shape: AnalysisTemplateArnOrQueryWildcard)
@@ -869,6 +890,8 @@ module Aws::CleanRooms
869
890
  AnalysisRuleCustom.add_member(:additional_analyses, Shapes::ShapeRef.new(shape: AdditionalAnalyses, location_name: "additionalAnalyses"))
870
891
  AnalysisRuleCustom.add_member(:disallowed_output_columns, Shapes::ShapeRef.new(shape: AnalysisRuleColumnList, location_name: "disallowedOutputColumns"))
871
892
  AnalysisRuleCustom.add_member(:differential_privacy, Shapes::ShapeRef.new(shape: DifferentialPrivacyConfiguration, location_name: "differentialPrivacy"))
893
+ AnalysisRuleCustom.add_member(:aggregation_thresholds, Shapes::ShapeRef.new(shape: AggregationThresholdList, location_name: "aggregationThresholds"))
894
+ AnalysisRuleCustom.add_member(:comparison_controls, Shapes::ShapeRef.new(shape: ComparisonControls, location_name: "comparisonControls"))
872
895
  AnalysisRuleCustom.add_member(:allowed_result_receivers, Shapes::ShapeRef.new(shape: AllowedResultReceivers, location_name: "allowedResultReceivers"))
873
896
  AnalysisRuleCustom.add_member(:allowed_additional_analyses, Shapes::ShapeRef.new(shape: AllowedAdditionalAnalyses, location_name: "allowedAdditionalAnalyses"))
874
897
  AnalysisRuleCustom.struct_class = Types::AnalysisRuleCustom
@@ -1307,6 +1330,10 @@ module Aws::CleanRooms
1307
1330
 
1308
1331
  ColumnMappingList.member = Shapes::ShapeRef.new(shape: SyntheticDataColumnProperties)
1309
1332
 
1333
+ ComparisonControls.add_member(:allowed_literal_comparison_columns, Shapes::ShapeRef.new(shape: AnalysisRuleColumnList, required: true, location_name: "allowedLiteralComparisonColumns"))
1334
+ ComparisonControls.add_member(:allowed_column_comparison_columns, Shapes::ShapeRef.new(shape: AnalysisRuleColumnList, required: true, location_name: "allowedColumnComparisonColumns"))
1335
+ ComparisonControls.struct_class = Types::ComparisonControls
1336
+
1310
1337
  ComputeConfiguration.add_member(:worker, Shapes::ShapeRef.new(shape: WorkerComputeConfiguration, location_name: "worker"))
1311
1338
  ComputeConfiguration.add_member(:unknown, Shapes::ShapeRef.new(shape: nil, location_name: 'unknown'))
1312
1339
  ComputeConfiguration.add_member_subclass(:worker, Types::ComputeConfiguration::Worker)
@@ -1500,6 +1527,8 @@ module Aws::CleanRooms
1500
1527
  ConsolidatedPolicyCustom.add_member(:additional_analyses, Shapes::ShapeRef.new(shape: AdditionalAnalyses, location_name: "additionalAnalyses"))
1501
1528
  ConsolidatedPolicyCustom.add_member(:disallowed_output_columns, Shapes::ShapeRef.new(shape: AnalysisRuleColumnList, location_name: "disallowedOutputColumns"))
1502
1529
  ConsolidatedPolicyCustom.add_member(:differential_privacy, Shapes::ShapeRef.new(shape: DifferentialPrivacyConfiguration, location_name: "differentialPrivacy"))
1530
+ ConsolidatedPolicyCustom.add_member(:aggregation_thresholds, Shapes::ShapeRef.new(shape: AggregationThresholdList, location_name: "aggregationThresholds"))
1531
+ ConsolidatedPolicyCustom.add_member(:comparison_controls, Shapes::ShapeRef.new(shape: ComparisonControls, location_name: "comparisonControls"))
1503
1532
  ConsolidatedPolicyCustom.add_member(:allowed_result_receivers, Shapes::ShapeRef.new(shape: AllowedResultReceivers, location_name: "allowedResultReceivers"))
1504
1533
  ConsolidatedPolicyCustom.add_member(:allowed_additional_analyses, Shapes::ShapeRef.new(shape: AllowedAdditionalAnalyses, location_name: "allowedAdditionalAnalyses"))
1505
1534
  ConsolidatedPolicyCustom.struct_class = Types::ConsolidatedPolicyCustom
@@ -2204,6 +2233,8 @@ module Aws::CleanRooms
2204
2233
  IntermediateTableAnalysisRuleCustom.add_member(:allowed_result_receivers, Shapes::ShapeRef.new(shape: AllowedResultReceivers, location_name: "allowedResultReceivers"))
2205
2234
  IntermediateTableAnalysisRuleCustom.add_member(:differential_privacy, Shapes::ShapeRef.new(shape: DifferentialPrivacyConfiguration, location_name: "differentialPrivacy"))
2206
2235
  IntermediateTableAnalysisRuleCustom.add_member(:disallowed_output_columns, Shapes::ShapeRef.new(shape: AnalysisRuleColumnList, location_name: "disallowedOutputColumns"))
2236
+ IntermediateTableAnalysisRuleCustom.add_member(:aggregation_thresholds, Shapes::ShapeRef.new(shape: AggregationThresholdList, location_name: "aggregationThresholds"))
2237
+ IntermediateTableAnalysisRuleCustom.add_member(:comparison_controls, Shapes::ShapeRef.new(shape: ComparisonControls, location_name: "comparisonControls"))
2207
2238
  IntermediateTableAnalysisRuleCustom.struct_class = Types::IntermediateTableAnalysisRuleCustom
2208
2239
 
2209
2240
  IntermediateTableAnalysisRulePolicy.add_member(:v1, Shapes::ShapeRef.new(shape: IntermediateTableAnalysisRulePolicyV1, location_name: "v1"))
@@ -2652,6 +2683,12 @@ module Aws::CleanRooms
2652
2683
  ModelTrainingPaymentConfig.add_member(:is_responsible, Shapes::ShapeRef.new(shape: Boolean, required: true, location_name: "isResponsible"))
2653
2684
  ModelTrainingPaymentConfig.struct_class = Types::ModelTrainingPaymentConfig
2654
2685
 
2686
+ OutputColumnThreshold.add_member(:output_column_name, Shapes::ShapeRef.new(shape: AnalysisRuleColumnName, required: true, location_name: "outputColumnName"))
2687
+ OutputColumnThreshold.add_member(:minimum_identity_count, Shapes::ShapeRef.new(shape: OutputColumnThresholdMinimumIdentityCountInteger, required: true, location_name: "minimumIdentityCount"))
2688
+ OutputColumnThreshold.struct_class = Types::OutputColumnThreshold
2689
+
2690
+ OutputColumnThresholdList.member = Shapes::ShapeRef.new(shape: OutputColumnThreshold)
2691
+
2655
2692
  ParameterMap.key = Shapes::ShapeRef.new(shape: ParameterName)
2656
2693
  ParameterMap.value = Shapes::ShapeRef.new(shape: ParameterValue)
2657
2694
 
@@ -236,6 +236,63 @@ module Aws::CleanRooms
236
236
  include Aws::Structure
237
237
  end
238
238
 
239
+ # Specifies the minimum number of distinct identities that each query
240
+ # output group must represent.
241
+ #
242
+ # @!attribute [rw] identity_columns
243
+ # The identity column, such as `user_id`, whose distinct values Clean
244
+ # Rooms counts to enforce minimum aggregation thresholds. Currently,
245
+ # you can specify only one column, and its data type must be string,
246
+ # varchar, or char.
247
+ # @return [Array<String>]
248
+ #
249
+ # @!attribute [rw] minimum_identity_count
250
+ # The minimum number of distinct identities that each query output
251
+ # group must represent. This threshold applies to all output columns
252
+ # in the table. To override this threshold for a specific column, use
253
+ # `outputColumnThresholds`.
254
+ # @return [Integer]
255
+ #
256
+ # @!attribute [rw] type
257
+ # The type of aggregation that the threshold enforces. Currently, the
258
+ # only supported value is `COUNT_DISTINCT`, which counts the distinct
259
+ # values in the identity column.
260
+ # @return [String]
261
+ #
262
+ # @!attribute [rw] output_column_thresholds
263
+ # The per-column overrides of `minimumIdentityCount`. An output column
264
+ # without an override uses `minimumIdentityCount`.
265
+ # @return [Array<Types::OutputColumnThreshold>]
266
+ #
267
+ # @!attribute [rw] allowed_aggregate_expression_type
268
+ # Specifies whether a query can aggregate a transformed column. This
269
+ # applies to the arguments of both aggregate and window functions.
270
+ # Valid values are:
271
+ #
272
+ # `COLUMNS_ONLY` – A query can aggregate only a direct column
273
+ # reference, such as `SUM(amount)`, or a constant. Clean Rooms rejects
274
+ # a query that transforms a column and then aggregates it, such as
275
+ # `SUM(amount * 2)` or `SUM(ROUND(amount))`.
276
+ #
277
+ # `ANY_EXPRESSION` – A query can aggregate any expression. This
278
+ # includes arithmetic, such as `SUM(price * quantity)`; a cast, such
279
+ # as `SUM(CAST(amount AS DECIMAL))`; a nested function call, such as
280
+ # `SUM(COALESCE(amount, 0))`; and a conditional, such as `SUM(CASE
281
+ # WHEN region = 'EU' THEN amount ELSE 0 END)`.
282
+ # @return [String]
283
+ #
284
+ # @see http://docs.aws.amazon.com/goto/WebAPI/cleanrooms-2022-02-17/AggregationThreshold AWS API Documentation
285
+ #
286
+ class AggregationThreshold < Struct.new(
287
+ :identity_columns,
288
+ :minimum_identity_count,
289
+ :type,
290
+ :output_column_thresholds,
291
+ :allowed_aggregate_expression_type)
292
+ SENSITIVE = []
293
+ include Aws::Structure
294
+ end
295
+
239
296
  # An export of the redacted Apache Spark logs for a protected query.
240
297
  #
241
298
  # @!attribute [rw] analysis_log_export_id
@@ -577,7 +634,7 @@ module Aws::CleanRooms
577
634
 
578
635
  # A type of analysis rule that enables the table owner to approve custom
579
636
  # SQL queries on their configured tables. It supports differential
580
- # privacy.
637
+ # privacy, minimum aggregation thresholds, and comparison controls.
581
638
  #
582
639
  # @!attribute [rw] allowed_analyses
583
640
  # The ARN of the analysis templates that are allowed by the custom
@@ -604,6 +661,20 @@ module Aws::CleanRooms
604
661
  # The differential privacy configuration.
605
662
  # @return [Types::DifferentialPrivacyConfiguration]
606
663
  #
664
+ # @!attribute [rw] aggregation_thresholds
665
+ # The aggregation thresholds that each query output group must
666
+ # satisfy. Clean Rooms filters out any group that represents fewer
667
+ # than the specified number of distinct identities. You can specify at
668
+ # most one threshold. You can't use aggregation thresholds with
669
+ # differential privacy, or when `allowedAnalyses` allows only jobs.
670
+ # @return [Array<Types::AggregationThreshold>]
671
+ #
672
+ # @!attribute [rw] comparison_controls
673
+ # The controls that restrict how a query can compare the columns in
674
+ # the configured table. You can't use comparison controls with
675
+ # differential privacy, or when `allowedAnalyses` allows only jobs.
676
+ # @return [Types::ComparisonControls]
677
+ #
607
678
  # @!attribute [rw] allowed_result_receivers
608
679
  # The list of Amazon Web Services account IDs that are allowed to
609
680
  # receive results from queries run on the configured table.
@@ -622,6 +693,8 @@ module Aws::CleanRooms
622
693
  :additional_analyses,
623
694
  :disallowed_output_columns,
624
695
  :differential_privacy,
696
+ :aggregation_thresholds,
697
+ :comparison_controls,
625
698
  :allowed_result_receivers,
626
699
  :allowed_additional_analyses)
627
700
  SENSITIVE = []
@@ -2553,6 +2626,34 @@ module Aws::CleanRooms
2553
2626
  include Aws::Structure
2554
2627
  end
2555
2628
 
2629
+ # Specifies how a query can compare the columns in a table, including
2630
+ # literal comparisons and column-to-column comparisons.
2631
+ #
2632
+ # @!attribute [rw] allowed_literal_comparison_columns
2633
+ # The columns that a query can compare to literal values, for example,
2634
+ # in a WHERE clause. Clean Rooms rejects a query that compares any
2635
+ # other column to a literal value. Specify an empty list to block
2636
+ # literal comparison on every column. You can't specify a column that
2637
+ # you also use as an identity column in an aggregation threshold.
2638
+ # @return [Array<String>]
2639
+ #
2640
+ # @!attribute [rw] allowed_column_comparison_columns
2641
+ # The columns that a query can compare to another column, for example,
2642
+ # in a join, a WHERE clause, a GROUP BY clause, or a window function.
2643
+ # Clean Rooms rejects a query that uses any other column in a
2644
+ # column-to-column comparison. Specify an empty list to block
2645
+ # column-to-column comparison on every column.
2646
+ # @return [Array<String>]
2647
+ #
2648
+ # @see http://docs.aws.amazon.com/goto/WebAPI/cleanrooms-2022-02-17/ComparisonControls AWS API Documentation
2649
+ #
2650
+ class ComparisonControls < Struct.new(
2651
+ :allowed_literal_comparison_columns,
2652
+ :allowed_column_comparison_columns)
2653
+ SENSITIVE = []
2654
+ include Aws::Structure
2655
+ end
2656
+
2556
2657
  # The configuration of the compute resources for an analysis with the
2557
2658
  # Spark analytics engine.
2558
2659
  #
@@ -2910,7 +3011,8 @@ module Aws::CleanRooms
2910
3011
  # @!attribute [rw] custom
2911
3012
  # A type of analysis rule that enables the table owner to approve
2912
3013
  # custom SQL queries on their configured tables. It supports
2913
- # differential privacy.
3014
+ # differential privacy, minimum aggregation thresholds, and comparison
3015
+ # controls.
2914
3016
  # @return [Types::AnalysisRuleCustom]
2915
3017
  #
2916
3018
  # @see http://docs.aws.amazon.com/goto/WebAPI/cleanrooms-2022-02-17/ConfiguredTableAnalysisRulePolicyV1 AWS API Documentation
@@ -3462,6 +3564,14 @@ module Aws::CleanRooms
3462
3564
  # Specifies the unique identifier for your users.
3463
3565
  # @return [Types::DifferentialPrivacyConfiguration]
3464
3566
  #
3567
+ # @!attribute [rw] aggregation_thresholds
3568
+ # The aggregation thresholds for the consolidated policy.
3569
+ # @return [Array<Types::AggregationThreshold>]
3570
+ #
3571
+ # @!attribute [rw] comparison_controls
3572
+ # The comparison controls for the consolidated policy.
3573
+ # @return [Types::ComparisonControls]
3574
+ #
3465
3575
  # @!attribute [rw] allowed_result_receivers
3466
3576
  # The allowed result receivers.
3467
3577
  # @return [Array<String>]
@@ -3478,6 +3588,8 @@ module Aws::CleanRooms
3478
3588
  :additional_analyses,
3479
3589
  :disallowed_output_columns,
3480
3590
  :differential_privacy,
3591
+ :aggregation_thresholds,
3592
+ :comparison_controls,
3481
3593
  :allowed_result_receivers,
3482
3594
  :allowed_additional_analyses)
3483
3595
  SENSITIVE = []
@@ -6739,6 +6851,20 @@ module Aws::CleanRooms
6739
6851
  # The list of columns that are not allowed in the query output.
6740
6852
  # @return [Array<String>]
6741
6853
  #
6854
+ # @!attribute [rw] aggregation_thresholds
6855
+ # The aggregation thresholds that each query output group must
6856
+ # satisfy. Clean Rooms filters out any group that represents fewer
6857
+ # than the specified number of distinct identities. You can specify at
6858
+ # most one threshold. You can't use aggregation thresholds with
6859
+ # differential privacy, or when `allowedAnalyses` allows only jobs.
6860
+ # @return [Array<Types::AggregationThreshold>]
6861
+ #
6862
+ # @!attribute [rw] comparison_controls
6863
+ # The controls that restrict how a query can compare the columns in
6864
+ # the intermediate table. You can't use comparison controls with
6865
+ # differential privacy, or when `allowedAnalyses` allows only jobs.
6866
+ # @return [Types::ComparisonControls]
6867
+ #
6742
6868
  # @see http://docs.aws.amazon.com/goto/WebAPI/cleanrooms-2022-02-17/IntermediateTableAnalysisRuleCustom AWS API Documentation
6743
6869
  #
6744
6870
  class IntermediateTableAnalysisRuleCustom < Struct.new(
@@ -6748,7 +6874,9 @@ module Aws::CleanRooms
6748
6874
  :allowed_analysis_providers,
6749
6875
  :allowed_result_receivers,
6750
6876
  :differential_privacy,
6751
- :disallowed_output_columns)
6877
+ :disallowed_output_columns,
6878
+ :aggregation_thresholds,
6879
+ :comparison_controls)
6752
6880
  SENSITIVE = []
6753
6881
  include Aws::Structure
6754
6882
  end
@@ -8945,6 +9073,31 @@ module Aws::CleanRooms
8945
9073
  include Aws::Structure
8946
9074
  end
8947
9075
 
9076
+ # Specifies the minimum number of distinct identities for an individual
9077
+ # output column. This value overrides the table-wide
9078
+ # `minimumIdentityCount` that you set in `AggregationThreshold`.
9079
+ #
9080
+ # @!attribute [rw] output_column_name
9081
+ # The name of the output column that the override applies to. You can
9082
+ # specify each column only once.
9083
+ # @return [String]
9084
+ #
9085
+ # @!attribute [rw] minimum_identity_count
9086
+ # The minimum number of distinct identities that each query output
9087
+ # group must represent for this column. Specify 0 to exempt the column
9088
+ # from the threshold, or a value of 2 or greater to enforce a
9089
+ # threshold.
9090
+ # @return [Integer]
9091
+ #
9092
+ # @see http://docs.aws.amazon.com/goto/WebAPI/cleanrooms-2022-02-17/OutputColumnThreshold AWS API Documentation
9093
+ #
9094
+ class OutputColumnThreshold < Struct.new(
9095
+ :output_column_name,
9096
+ :minimum_identity_count)
9097
+ SENSITIVE = []
9098
+ include Aws::Structure
9099
+ end
9100
+
8948
9101
  # An object representing the collaboration member's payment
8949
9102
  # responsibilities set by the collaboration creator.
8950
9103
  #
@@ -55,7 +55,7 @@ module Aws::CleanRooms
55
55
  autoload :EndpointProvider, 'aws-sdk-cleanrooms/endpoint_provider'
56
56
  autoload :Endpoints, 'aws-sdk-cleanrooms/endpoints'
57
57
 
58
- GEM_VERSION = '1.78.0'
58
+ GEM_VERSION = '1.79.0'
59
59
 
60
60
  end
61
61
 
data/sig/params.rbs CHANGED
@@ -99,6 +99,13 @@ module Aws
99
99
  }
100
100
  ]
101
101
  }?,
102
+ aggregation_thresholds: Array[
103
+ Params::aggregation_threshold
104
+ ]?,
105
+ comparison_controls: {
106
+ allowed_literal_comparison_columns: Array[::String],
107
+ allowed_column_comparison_columns: Array[::String]
108
+ }?,
102
109
  allowed_result_receivers: Array[::String]?,
103
110
  allowed_additional_analyses: Array[::String]?
104
111
  }
@@ -118,6 +125,19 @@ module Aws
118
125
  v1: Params::configured_table_analysis_rule_policy_v1?
119
126
  }
120
127
 
128
+ type aggregation_threshold = {
129
+ identity_columns: Array[::String],
130
+ minimum_identity_count: ::Integer,
131
+ type: ("COUNT_DISTINCT"),
132
+ output_column_thresholds: Array[
133
+ {
134
+ output_column_name: ::String,
135
+ minimum_identity_count: ::Integer
136
+ }
137
+ ]?,
138
+ allowed_aggregate_expression_type: ("COLUMNS_ONLY" | "ANY_EXPRESSION")
139
+ }
140
+
121
141
  type configured_table_association_analysis_rule_policy_v1 = {
122
142
  list: {
123
143
  allowed_result_receivers: Array[::String]?,
@@ -150,7 +170,14 @@ module Aws
150
170
  }
151
171
  ]
152
172
  }?,
153
- disallowed_output_columns: Array[::String]?
173
+ disallowed_output_columns: Array[::String]?,
174
+ aggregation_thresholds: Array[
175
+ Params::aggregation_threshold
176
+ ]?,
177
+ comparison_controls: {
178
+ allowed_literal_comparison_columns: Array[::String],
179
+ allowed_column_comparison_columns: Array[::String]
180
+ }?
154
181
  }
155
182
 
156
183
  type intermediate_table_analysis_rule_policy_v1 = {
data/sig/types.rbs CHANGED
@@ -61,6 +61,15 @@ module Aws::CleanRooms
61
61
  SENSITIVE: []
62
62
  end
63
63
 
64
+ class AggregationThreshold
65
+ attr_accessor identity_columns: ::Array[::String]
66
+ attr_accessor minimum_identity_count: ::Integer
67
+ attr_accessor type: ("COUNT_DISTINCT")
68
+ attr_accessor output_column_thresholds: ::Array[Types::OutputColumnThreshold]
69
+ attr_accessor allowed_aggregate_expression_type: ("COLUMNS_ONLY" | "ANY_EXPRESSION")
70
+ SENSITIVE: []
71
+ end
72
+
64
73
  class AnalysisLogExport
65
74
  attr_accessor analysis_log_export_id: ::String
66
75
  attr_accessor analysis_id: ::String
@@ -142,6 +151,8 @@ module Aws::CleanRooms
142
151
  attr_accessor additional_analyses: ("ALLOWED" | "REQUIRED" | "NOT_ALLOWED")
143
152
  attr_accessor disallowed_output_columns: ::Array[::String]
144
153
  attr_accessor differential_privacy: Types::DifferentialPrivacyConfiguration
154
+ attr_accessor aggregation_thresholds: ::Array[Types::AggregationThreshold]
155
+ attr_accessor comparison_controls: Types::ComparisonControls
145
156
  attr_accessor allowed_result_receivers: ::Array[::String]
146
157
  attr_accessor allowed_additional_analyses: ::Array[::String]
147
158
  SENSITIVE: []
@@ -636,6 +647,12 @@ module Aws::CleanRooms
636
647
  SENSITIVE: []
637
648
  end
638
649
 
650
+ class ComparisonControls
651
+ attr_accessor allowed_literal_comparison_columns: ::Array[::String]
652
+ attr_accessor allowed_column_comparison_columns: ::Array[::String]
653
+ SENSITIVE: []
654
+ end
655
+
639
656
  class ComputeConfiguration
640
657
  attr_accessor worker: Types::WorkerComputeConfiguration
641
658
  attr_accessor unknown: untyped
@@ -885,6 +902,8 @@ module Aws::CleanRooms
885
902
  attr_accessor additional_analyses: ("ALLOWED" | "REQUIRED" | "NOT_ALLOWED")
886
903
  attr_accessor disallowed_output_columns: ::Array[::String]
887
904
  attr_accessor differential_privacy: Types::DifferentialPrivacyConfiguration
905
+ attr_accessor aggregation_thresholds: ::Array[Types::AggregationThreshold]
906
+ attr_accessor comparison_controls: Types::ComparisonControls
888
907
  attr_accessor allowed_result_receivers: ::Array[::String]
889
908
  attr_accessor allowed_additional_analyses: ::Array[::String]
890
909
  SENSITIVE: []
@@ -1837,6 +1856,8 @@ module Aws::CleanRooms
1837
1856
  attr_accessor allowed_result_receivers: ::Array[::String]
1838
1857
  attr_accessor differential_privacy: Types::DifferentialPrivacyConfiguration
1839
1858
  attr_accessor disallowed_output_columns: ::Array[::String]
1859
+ attr_accessor aggregation_thresholds: ::Array[Types::AggregationThreshold]
1860
+ attr_accessor comparison_controls: Types::ComparisonControls
1840
1861
  SENSITIVE: []
1841
1862
  end
1842
1863
 
@@ -2444,6 +2465,12 @@ module Aws::CleanRooms
2444
2465
  SENSITIVE: []
2445
2466
  end
2446
2467
 
2468
+ class OutputColumnThreshold
2469
+ attr_accessor output_column_name: ::String
2470
+ attr_accessor minimum_identity_count: ::Integer
2471
+ SENSITIVE: []
2472
+ end
2473
+
2447
2474
  class PaymentConfiguration
2448
2475
  attr_accessor query_compute: Types::QueryComputePaymentConfig
2449
2476
  attr_accessor machine_learning: Types::MLPaymentConfig
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aws-sdk-cleanrooms
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.78.0
4
+ version: 1.79.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Amazon Web Services