aws-sdk-cleanroomsml 1.38.0 → 1.39.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: d3614617eb7eb0224a10e8f4362c96020bc2d0daa4e50c1625ba421b5484d8d1
4
- data.tar.gz: dadf2dd1f266247ca3c575b8e92b7d88e63c48307cbb4471a7cf59d4cc3657af
3
+ metadata.gz: d3437a4e2d42f2f39d0f31de9c9766d902fb32c8074be7451c7137e8012a06c9
4
+ data.tar.gz: 8932bad2568b77b43f51a066f4ba5129b973ae2b125590f87c0f459553a6dd6a
5
5
  SHA512:
6
- metadata.gz: 48118f34667f9f420cf6a8a6ca480aba71104e922a12d0ef00cd1d5e4b447757e1b55d6e38178b0f41026095793ef79a042cd027aa331967394e92f674779b2a
7
- data.tar.gz: 682194b30b3b6f8b849d4ac2edf11d11c0b8200064e4b8fab20801251026eb51c7ff45f9715467d6c21baf817f0be71210026302c8d9f1f5822be97125bf0601
6
+ metadata.gz: 2c98c3bb0fc74ebbba9aad8f5f0f0dee1d699b69077a851874908c5de818894759ff3d18df2e0cb5d297c3a0bc6c25148bce77d3f9ea6c388baca95a29b1faa4
7
+ data.tar.gz: f8297a3b7811f4f71eb11c9f268ac4348864299a449cabdc227d0030b857807a2844a4ac1163d8b0d912814cafb15c0512bbaf0ae070e5d99168e9ca532726d4
data/CHANGELOG.md CHANGED
@@ -1,6 +1,11 @@
1
1
  Unreleased Changes
2
2
  ------------------
3
3
 
4
+ 1.39.0 (2025-12-01)
5
+ ------------------
6
+
7
+ * Feature - AWS Clean Rooms ML now supports privacy-enhancing synthetic dataset generation for custom ML training.
8
+
4
9
  1.38.0 (2025-11-21)
5
10
  ------------------
6
11
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.38.0
1
+ 1.39.0
@@ -1855,6 +1855,7 @@ module Aws::CleanRoomsML
1855
1855
  # * {Types::GetCollaborationMLInputChannelResponse#number_of_records #number_of_records} => Integer
1856
1856
  # * {Types::GetCollaborationMLInputChannelResponse#privacy_budgets #privacy_budgets} => Types::PrivacyBudgets
1857
1857
  # * {Types::GetCollaborationMLInputChannelResponse#description #description} => String
1858
+ # * {Types::GetCollaborationMLInputChannelResponse#synthetic_data_configuration #synthetic_data_configuration} => Types::SyntheticDataConfiguration
1858
1859
  # * {Types::GetCollaborationMLInputChannelResponse#create_time #create_time} => Time
1859
1860
  # * {Types::GetCollaborationMLInputChannelResponse#update_time #update_time} => Time
1860
1861
  # * {Types::GetCollaborationMLInputChannelResponse#creator_account_id #creator_account_id} => String
@@ -1890,6 +1891,15 @@ module Aws::CleanRoomsML
1890
1891
  # resp.privacy_budgets.access_budgets[0].details[0].auto_refresh #=> String, one of "ENABLED", "DISABLED"
1891
1892
  # resp.privacy_budgets.access_budgets[0].aggregate_remaining_budget #=> Integer
1892
1893
  # resp.description #=> String
1894
+ # resp.synthetic_data_configuration.synthetic_data_parameters.epsilon #=> Float
1895
+ # resp.synthetic_data_configuration.synthetic_data_parameters.max_membership_inference_attack_score #=> Float
1896
+ # resp.synthetic_data_configuration.synthetic_data_parameters.column_classification.column_mapping #=> Array
1897
+ # resp.synthetic_data_configuration.synthetic_data_parameters.column_classification.column_mapping[0].column_name #=> String
1898
+ # resp.synthetic_data_configuration.synthetic_data_parameters.column_classification.column_mapping[0].column_type #=> String, one of "CATEGORICAL", "NUMERICAL"
1899
+ # resp.synthetic_data_configuration.synthetic_data_parameters.column_classification.column_mapping[0].is_predictive_value #=> Boolean
1900
+ # resp.synthetic_data_configuration.synthetic_data_evaluation_scores.data_privacy_scores.membership_inference_attack_scores #=> Array
1901
+ # resp.synthetic_data_configuration.synthetic_data_evaluation_scores.data_privacy_scores.membership_inference_attack_scores[0].attack_version #=> String, one of "DISTANCE_TO_CLOSEST_RECORD_V1"
1902
+ # resp.synthetic_data_configuration.synthetic_data_evaluation_scores.data_privacy_scores.membership_inference_attack_scores[0].score #=> Float
1893
1903
  # resp.create_time #=> Time
1894
1904
  # resp.update_time #=> Time
1895
1905
  # resp.creator_account_id #=> String
@@ -2273,6 +2283,7 @@ module Aws::CleanRoomsML
2273
2283
  # * {Types::GetMLInputChannelResponse#number_of_records #number_of_records} => Integer
2274
2284
  # * {Types::GetMLInputChannelResponse#privacy_budgets #privacy_budgets} => Types::PrivacyBudgets
2275
2285
  # * {Types::GetMLInputChannelResponse#description #description} => String
2286
+ # * {Types::GetMLInputChannelResponse#synthetic_data_configuration #synthetic_data_configuration} => Types::SyntheticDataConfiguration
2276
2287
  # * {Types::GetMLInputChannelResponse#create_time #create_time} => Time
2277
2288
  # * {Types::GetMLInputChannelResponse#update_time #update_time} => Time
2278
2289
  # * {Types::GetMLInputChannelResponse#input_channel #input_channel} => Types::InputChannel
@@ -2313,6 +2324,15 @@ module Aws::CleanRoomsML
2313
2324
  # resp.privacy_budgets.access_budgets[0].details[0].auto_refresh #=> String, one of "ENABLED", "DISABLED"
2314
2325
  # resp.privacy_budgets.access_budgets[0].aggregate_remaining_budget #=> Integer
2315
2326
  # resp.description #=> String
2327
+ # resp.synthetic_data_configuration.synthetic_data_parameters.epsilon #=> Float
2328
+ # resp.synthetic_data_configuration.synthetic_data_parameters.max_membership_inference_attack_score #=> Float
2329
+ # resp.synthetic_data_configuration.synthetic_data_parameters.column_classification.column_mapping #=> Array
2330
+ # resp.synthetic_data_configuration.synthetic_data_parameters.column_classification.column_mapping[0].column_name #=> String
2331
+ # resp.synthetic_data_configuration.synthetic_data_parameters.column_classification.column_mapping[0].column_type #=> String, one of "CATEGORICAL", "NUMERICAL"
2332
+ # resp.synthetic_data_configuration.synthetic_data_parameters.column_classification.column_mapping[0].is_predictive_value #=> Boolean
2333
+ # resp.synthetic_data_configuration.synthetic_data_evaluation_scores.data_privacy_scores.membership_inference_attack_scores #=> Array
2334
+ # resp.synthetic_data_configuration.synthetic_data_evaluation_scores.data_privacy_scores.membership_inference_attack_scores[0].attack_version #=> String, one of "DISTANCE_TO_CLOSEST_RECORD_V1"
2335
+ # resp.synthetic_data_configuration.synthetic_data_evaluation_scores.data_privacy_scores.membership_inference_attack_scores[0].score #=> Float
2316
2336
  # resp.create_time #=> Time
2317
2337
  # resp.update_time #=> Time
2318
2338
  # resp.input_channel.data_source.protected_query_input_parameters.sql_parameters.query_string #=> String
@@ -4075,7 +4095,7 @@ module Aws::CleanRoomsML
4075
4095
  tracer: tracer
4076
4096
  )
4077
4097
  context[:gem_name] = 'aws-sdk-cleanroomsml'
4078
- context[:gem_version] = '1.38.0'
4098
+ context[:gem_version] = '1.39.0'
4079
4099
  Seahorse::Client::Request.new(handlers, context)
4080
4100
  end
4081
4101
 
@@ -61,6 +61,8 @@ module Aws::CleanRoomsML
61
61
  CollaborationTrainedModelInferenceJobSummary = Shapes::StructureShape.new(name: 'CollaborationTrainedModelInferenceJobSummary')
62
62
  CollaborationTrainedModelList = Shapes::ListShape.new(name: 'CollaborationTrainedModelList')
63
63
  CollaborationTrainedModelSummary = Shapes::StructureShape.new(name: 'CollaborationTrainedModelSummary')
64
+ ColumnClassificationDetails = Shapes::StructureShape.new(name: 'ColumnClassificationDetails')
65
+ ColumnMappingList = Shapes::ListShape.new(name: 'ColumnMappingList')
64
66
  ColumnName = Shapes::StringShape.new(name: 'ColumnName')
65
67
  ColumnSchema = Shapes::StructureShape.new(name: 'ColumnSchema')
66
68
  ColumnType = Shapes::StringShape.new(name: 'ColumnType')
@@ -103,6 +105,7 @@ module Aws::CleanRoomsML
103
105
  CustomDataIdentifier = Shapes::StringShape.new(name: 'CustomDataIdentifier')
104
106
  CustomDataIdentifierList = Shapes::ListShape.new(name: 'CustomDataIdentifierList')
105
107
  CustomEntityConfig = Shapes::StructureShape.new(name: 'CustomEntityConfig')
108
+ DataPrivacyScores = Shapes::StructureShape.new(name: 'DataPrivacyScores')
106
109
  DataSource = Shapes::StructureShape.new(name: 'DataSource')
107
110
  Dataset = Shapes::StructureShape.new(name: 'Dataset')
108
111
  DatasetInputConfig = Shapes::StructureShape.new(name: 'DatasetInputConfig')
@@ -237,7 +240,14 @@ module Aws::CleanRoomsML
237
240
  MLInputChannelSummaryConfiguredModelAlgorithmAssociationsList = Shapes::ListShape.new(name: 'MLInputChannelSummaryConfiguredModelAlgorithmAssociationsList')
238
241
  MLInputChannelsList = Shapes::ListShape.new(name: 'MLInputChannelsList')
239
242
  MLOutputConfiguration = Shapes::StructureShape.new(name: 'MLOutputConfiguration')
243
+ MLSyntheticDataParameters = Shapes::StructureShape.new(name: 'MLSyntheticDataParameters')
244
+ MLSyntheticDataParametersEpsilonDouble = Shapes::FloatShape.new(name: 'MLSyntheticDataParametersEpsilonDouble')
245
+ MLSyntheticDataParametersMaxMembershipInferenceAttackScoreDouble = Shapes::FloatShape.new(name: 'MLSyntheticDataParametersMaxMembershipInferenceAttackScoreDouble')
240
246
  MaxResults = Shapes::IntegerShape.new(name: 'MaxResults')
247
+ MembershipInferenceAttackScore = Shapes::StructureShape.new(name: 'MembershipInferenceAttackScore')
248
+ MembershipInferenceAttackScoreList = Shapes::ListShape.new(name: 'MembershipInferenceAttackScoreList')
249
+ MembershipInferenceAttackScoreScoreDouble = Shapes::FloatShape.new(name: 'MembershipInferenceAttackScoreScoreDouble')
250
+ MembershipInferenceAttackVersion = Shapes::StringShape.new(name: 'MembershipInferenceAttackVersion')
241
251
  MetricDefinition = Shapes::StructureShape.new(name: 'MetricDefinition')
242
252
  MetricDefinitionList = Shapes::ListShape.new(name: 'MetricDefinitionList')
243
253
  MetricName = Shapes::StringShape.new(name: 'MetricName')
@@ -292,6 +302,11 @@ module Aws::CleanRoomsML
292
302
  StoppingCondition = Shapes::StructureShape.new(name: 'StoppingCondition')
293
303
  StoppingConditionMaxRuntimeInSecondsInteger = Shapes::IntegerShape.new(name: 'StoppingConditionMaxRuntimeInSecondsInteger')
294
304
  String = Shapes::StringShape.new(name: 'String')
305
+ SyntheticDataColumnName = Shapes::StringShape.new(name: 'SyntheticDataColumnName')
306
+ SyntheticDataColumnProperties = Shapes::StructureShape.new(name: 'SyntheticDataColumnProperties')
307
+ SyntheticDataColumnType = Shapes::StringShape.new(name: 'SyntheticDataColumnType')
308
+ SyntheticDataConfiguration = Shapes::StructureShape.new(name: 'SyntheticDataConfiguration')
309
+ SyntheticDataEvaluationScores = Shapes::StructureShape.new(name: 'SyntheticDataEvaluationScores')
295
310
  SyntheticTimestamp_date_time = Shapes::TimestampShape.new(name: 'SyntheticTimestamp_date_time', timestampFormat: "iso8601")
296
311
  TagKey = Shapes::StringShape.new(name: 'TagKey')
297
312
  TagKeys = Shapes::ListShape.new(name: 'TagKeys')
@@ -516,6 +531,11 @@ module Aws::CleanRoomsML
516
531
  CollaborationTrainedModelSummary.add_member(:creator_account_id, Shapes::ShapeRef.new(shape: AccountId, required: true, location_name: "creatorAccountId"))
517
532
  CollaborationTrainedModelSummary.struct_class = Types::CollaborationTrainedModelSummary
518
533
 
534
+ ColumnClassificationDetails.add_member(:column_mapping, Shapes::ShapeRef.new(shape: ColumnMappingList, required: true, location_name: "columnMapping"))
535
+ ColumnClassificationDetails.struct_class = Types::ColumnClassificationDetails
536
+
537
+ ColumnMappingList.member = Shapes::ShapeRef.new(shape: SyntheticDataColumnProperties)
538
+
519
539
  ColumnSchema.add_member(:column_name, Shapes::ShapeRef.new(shape: ColumnName, required: true, location_name: "columnName"))
520
540
  ColumnSchema.add_member(:column_types, Shapes::ShapeRef.new(shape: ColumnTypeList, required: true, location_name: "columnTypes"))
521
541
  ColumnSchema.struct_class = Types::ColumnSchema
@@ -678,6 +698,9 @@ module Aws::CleanRoomsML
678
698
  CustomEntityConfig.add_member(:custom_data_identifiers, Shapes::ShapeRef.new(shape: CustomDataIdentifierList, required: true, location_name: "customDataIdentifiers"))
679
699
  CustomEntityConfig.struct_class = Types::CustomEntityConfig
680
700
 
701
+ DataPrivacyScores.add_member(:membership_inference_attack_scores, Shapes::ShapeRef.new(shape: MembershipInferenceAttackScoreList, required: true, location_name: "membershipInferenceAttackScores"))
702
+ DataPrivacyScores.struct_class = Types::DataPrivacyScores
703
+
681
704
  DataSource.add_member(:glue_data_source, Shapes::ShapeRef.new(shape: GlueDataSource, required: true, location_name: "glueDataSource"))
682
705
  DataSource.struct_class = Types::DataSource
683
706
 
@@ -803,6 +826,7 @@ module Aws::CleanRoomsML
803
826
  GetCollaborationMLInputChannelResponse.add_member(:number_of_records, Shapes::ShapeRef.new(shape: GetCollaborationMLInputChannelResponseNumberOfRecordsLong, location_name: "numberOfRecords"))
804
827
  GetCollaborationMLInputChannelResponse.add_member(:privacy_budgets, Shapes::ShapeRef.new(shape: PrivacyBudgets, location_name: "privacyBudgets"))
805
828
  GetCollaborationMLInputChannelResponse.add_member(:description, Shapes::ShapeRef.new(shape: ResourceDescription, location_name: "description"))
829
+ GetCollaborationMLInputChannelResponse.add_member(:synthetic_data_configuration, Shapes::ShapeRef.new(shape: SyntheticDataConfiguration, location_name: "syntheticDataConfiguration"))
806
830
  GetCollaborationMLInputChannelResponse.add_member(:create_time, Shapes::ShapeRef.new(shape: SyntheticTimestamp_date_time, required: true, location_name: "createTime"))
807
831
  GetCollaborationMLInputChannelResponse.add_member(:update_time, Shapes::ShapeRef.new(shape: SyntheticTimestamp_date_time, required: true, location_name: "updateTime"))
808
832
  GetCollaborationMLInputChannelResponse.add_member(:creator_account_id, Shapes::ShapeRef.new(shape: AccountId, required: true, location_name: "creatorAccountId"))
@@ -919,6 +943,7 @@ module Aws::CleanRoomsML
919
943
  GetMLInputChannelResponse.add_member(:number_of_records, Shapes::ShapeRef.new(shape: GetMLInputChannelResponseNumberOfRecordsLong, location_name: "numberOfRecords"))
920
944
  GetMLInputChannelResponse.add_member(:privacy_budgets, Shapes::ShapeRef.new(shape: PrivacyBudgets, location_name: "privacyBudgets"))
921
945
  GetMLInputChannelResponse.add_member(:description, Shapes::ShapeRef.new(shape: ResourceDescription, location_name: "description"))
946
+ GetMLInputChannelResponse.add_member(:synthetic_data_configuration, Shapes::ShapeRef.new(shape: SyntheticDataConfiguration, location_name: "syntheticDataConfiguration"))
922
947
  GetMLInputChannelResponse.add_member(:create_time, Shapes::ShapeRef.new(shape: SyntheticTimestamp_date_time, required: true, location_name: "createTime"))
923
948
  GetMLInputChannelResponse.add_member(:update_time, Shapes::ShapeRef.new(shape: SyntheticTimestamp_date_time, required: true, location_name: "updateTime"))
924
949
  GetMLInputChannelResponse.add_member(:input_channel, Shapes::ShapeRef.new(shape: InputChannel, required: true, location_name: "inputChannel"))
@@ -1250,6 +1275,17 @@ module Aws::CleanRoomsML
1250
1275
  MLOutputConfiguration.add_member(:role_arn, Shapes::ShapeRef.new(shape: IamRoleArn, required: true, location_name: "roleArn"))
1251
1276
  MLOutputConfiguration.struct_class = Types::MLOutputConfiguration
1252
1277
 
1278
+ MLSyntheticDataParameters.add_member(:epsilon, Shapes::ShapeRef.new(shape: MLSyntheticDataParametersEpsilonDouble, required: true, location_name: "epsilon"))
1279
+ MLSyntheticDataParameters.add_member(:max_membership_inference_attack_score, Shapes::ShapeRef.new(shape: MLSyntheticDataParametersMaxMembershipInferenceAttackScoreDouble, required: true, location_name: "maxMembershipInferenceAttackScore"))
1280
+ MLSyntheticDataParameters.add_member(:column_classification, Shapes::ShapeRef.new(shape: ColumnClassificationDetails, required: true, location_name: "columnClassification"))
1281
+ MLSyntheticDataParameters.struct_class = Types::MLSyntheticDataParameters
1282
+
1283
+ MembershipInferenceAttackScore.add_member(:attack_version, Shapes::ShapeRef.new(shape: MembershipInferenceAttackVersion, required: true, location_name: "attackVersion"))
1284
+ MembershipInferenceAttackScore.add_member(:score, Shapes::ShapeRef.new(shape: MembershipInferenceAttackScoreScoreDouble, required: true, location_name: "score"))
1285
+ MembershipInferenceAttackScore.struct_class = Types::MembershipInferenceAttackScore
1286
+
1287
+ MembershipInferenceAttackScoreList.member = Shapes::ShapeRef.new(shape: MembershipInferenceAttackScore)
1288
+
1253
1289
  MetricDefinition.add_member(:name, Shapes::ShapeRef.new(shape: MetricName, required: true, location_name: "name"))
1254
1290
  MetricDefinition.add_member(:regex, Shapes::ShapeRef.new(shape: MetricRegex, required: true, location_name: "regex"))
1255
1291
  MetricDefinition.struct_class = Types::MetricDefinition
@@ -1385,6 +1421,18 @@ module Aws::CleanRoomsML
1385
1421
  StoppingCondition.add_member(:max_runtime_in_seconds, Shapes::ShapeRef.new(shape: StoppingConditionMaxRuntimeInSecondsInteger, location_name: "maxRuntimeInSeconds"))
1386
1422
  StoppingCondition.struct_class = Types::StoppingCondition
1387
1423
 
1424
+ SyntheticDataColumnProperties.add_member(:column_name, Shapes::ShapeRef.new(shape: SyntheticDataColumnName, required: true, location_name: "columnName"))
1425
+ SyntheticDataColumnProperties.add_member(:column_type, Shapes::ShapeRef.new(shape: SyntheticDataColumnType, required: true, location_name: "columnType"))
1426
+ SyntheticDataColumnProperties.add_member(:is_predictive_value, Shapes::ShapeRef.new(shape: Boolean, required: true, location_name: "isPredictiveValue"))
1427
+ SyntheticDataColumnProperties.struct_class = Types::SyntheticDataColumnProperties
1428
+
1429
+ SyntheticDataConfiguration.add_member(:synthetic_data_parameters, Shapes::ShapeRef.new(shape: MLSyntheticDataParameters, required: true, location_name: "syntheticDataParameters"))
1430
+ SyntheticDataConfiguration.add_member(:synthetic_data_evaluation_scores, Shapes::ShapeRef.new(shape: SyntheticDataEvaluationScores, location_name: "syntheticDataEvaluationScores"))
1431
+ SyntheticDataConfiguration.struct_class = Types::SyntheticDataConfiguration
1432
+
1433
+ SyntheticDataEvaluationScores.add_member(:data_privacy_scores, Shapes::ShapeRef.new(shape: DataPrivacyScores, required: true, location_name: "dataPrivacyScores"))
1434
+ SyntheticDataEvaluationScores.struct_class = Types::SyntheticDataEvaluationScores
1435
+
1388
1436
  TagKeys.member = Shapes::ShapeRef.new(shape: TagKey)
1389
1437
 
1390
1438
  TagMap.key = Shapes::ShapeRef.new(shape: TagKey)
@@ -804,6 +804,24 @@ module Aws::CleanRoomsML
804
804
  include Aws::Structure
805
805
  end
806
806
 
807
+ # Contains classification information for data columns, including
808
+ # mappings that specify how columns should be handled during synthetic
809
+ # data generation and privacy analysis.
810
+ #
811
+ # @!attribute [rw] column_mapping
812
+ # A mapping that defines the classification of data columns for
813
+ # synthetic data generation and specifies how each column should be
814
+ # handled during the privacy-preserving data synthesis process.
815
+ # @return [Array<Types::SyntheticDataColumnProperties>]
816
+ #
817
+ # @see http://docs.aws.amazon.com/goto/WebAPI/cleanroomsml-2023-09-06/ColumnClassificationDetails AWS API Documentation
818
+ #
819
+ class ColumnClassificationDetails < Struct.new(
820
+ :column_mapping)
821
+ SENSITIVE = []
822
+ include Aws::Structure
823
+ end
824
+
807
825
  # Metadata for a column.
808
826
  #
809
827
  # @!attribute [rw] column_name
@@ -1802,6 +1820,24 @@ module Aws::CleanRoomsML
1802
1820
  include Aws::Structure
1803
1821
  end
1804
1822
 
1823
+ # Privacy evaluation scores that measure the privacy characteristics of
1824
+ # the generated synthetic data, including assessments of potential
1825
+ # privacy risks such as membership inference attacks.
1826
+ #
1827
+ # @!attribute [rw] membership_inference_attack_scores
1828
+ # Scores that evaluate the vulnerability of the synthetic data to
1829
+ # membership inference attacks, which attempt to determine whether a
1830
+ # specific individual was a member of the original dataset.
1831
+ # @return [Array<Types::MembershipInferenceAttackScore>]
1832
+ #
1833
+ # @see http://docs.aws.amazon.com/goto/WebAPI/cleanroomsml-2023-09-06/DataPrivacyScores AWS API Documentation
1834
+ #
1835
+ class DataPrivacyScores < Struct.new(
1836
+ :membership_inference_attack_scores)
1837
+ SENSITIVE = []
1838
+ include Aws::Structure
1839
+ end
1840
+
1805
1841
  # Defines information about the Glue data source that contains the
1806
1842
  # training data.
1807
1843
  #
@@ -2370,6 +2406,13 @@ module Aws::CleanRoomsML
2370
2406
  # The description of the ML input channel.
2371
2407
  # @return [String]
2372
2408
  #
2409
+ # @!attribute [rw] synthetic_data_configuration
2410
+ # The synthetic data configuration for this ML input channel,
2411
+ # including parameters for generating privacy-preserving synthetic
2412
+ # data and evaluation scores for measuring the privacy of the
2413
+ # generated data.
2414
+ # @return [Types::SyntheticDataConfiguration]
2415
+ #
2373
2416
  # @!attribute [rw] create_time
2374
2417
  # The time at which the ML input channel was created.
2375
2418
  # @return [Time]
@@ -2396,6 +2439,7 @@ module Aws::CleanRoomsML
2396
2439
  :number_of_records,
2397
2440
  :privacy_budgets,
2398
2441
  :description,
2442
+ :synthetic_data_configuration,
2399
2443
  :create_time,
2400
2444
  :update_time,
2401
2445
  :creator_account_id)
@@ -3007,6 +3051,13 @@ module Aws::CleanRoomsML
3007
3051
  # The description of the ML input channel.
3008
3052
  # @return [String]
3009
3053
  #
3054
+ # @!attribute [rw] synthetic_data_configuration
3055
+ # The synthetic data configuration for this ML input channel,
3056
+ # including parameters for generating privacy-preserving synthetic
3057
+ # data and evaluation scores for measuring the privacy of the
3058
+ # generated data.
3059
+ # @return [Types::SyntheticDataConfiguration]
3060
+ #
3010
3061
  # @!attribute [rw] create_time
3011
3062
  # The time at which the ML input channel was created.
3012
3063
  # @return [Time]
@@ -3084,6 +3135,7 @@ module Aws::CleanRoomsML
3084
3135
  :number_of_records,
3085
3136
  :privacy_budgets,
3086
3137
  :description,
3138
+ :synthetic_data_configuration,
3087
3139
  :create_time,
3088
3140
  :update_time,
3089
3141
  :input_channel,
@@ -4643,6 +4695,61 @@ module Aws::CleanRoomsML
4643
4695
  include Aws::Structure
4644
4696
  end
4645
4697
 
4698
+ # Parameters that control the generation of synthetic data for custom
4699
+ # model training, including privacy settings and column classification
4700
+ # details.
4701
+ #
4702
+ # @!attribute [rw] epsilon
4703
+ # The epsilon value for differential privacy, which controls the
4704
+ # privacy-utility tradeoff in synthetic data generation. Lower values
4705
+ # provide stronger privacy guarantees but may reduce data utility.
4706
+ # @return [Float]
4707
+ #
4708
+ # @!attribute [rw] max_membership_inference_attack_score
4709
+ # The maximum acceptable score for membership inference attack
4710
+ # vulnerability. Synthetic data generation fails if the score for the
4711
+ # resulting data exceeds this threshold.
4712
+ # @return [Float]
4713
+ #
4714
+ # @!attribute [rw] column_classification
4715
+ # Classification details for data columns that specify how each column
4716
+ # should be treated during synthetic data generation.
4717
+ # @return [Types::ColumnClassificationDetails]
4718
+ #
4719
+ # @see http://docs.aws.amazon.com/goto/WebAPI/cleanroomsml-2023-09-06/MLSyntheticDataParameters AWS API Documentation
4720
+ #
4721
+ class MLSyntheticDataParameters < Struct.new(
4722
+ :epsilon,
4723
+ :max_membership_inference_attack_score,
4724
+ :column_classification)
4725
+ SENSITIVE = []
4726
+ include Aws::Structure
4727
+ end
4728
+
4729
+ # A score that measures the vulnerability of synthetic data to
4730
+ # membership inference attacks and provides both the numerical score and
4731
+ # the version of the attack methodology used for evaluation.
4732
+ #
4733
+ # @!attribute [rw] attack_version
4734
+ # The version of the membership inference attack, which consists of
4735
+ # the attack type and its version number, used to generate this
4736
+ # privacy score.
4737
+ # @return [String]
4738
+ #
4739
+ # @!attribute [rw] score
4740
+ # The numerical score representing the vulnerability to membership
4741
+ # inference attacks.
4742
+ # @return [Float]
4743
+ #
4744
+ # @see http://docs.aws.amazon.com/goto/WebAPI/cleanroomsml-2023-09-06/MembershipInferenceAttackScore AWS API Documentation
4745
+ #
4746
+ class MembershipInferenceAttackScore < Struct.new(
4747
+ :attack_version,
4748
+ :score)
4749
+ SENSITIVE = []
4750
+ include Aws::Structure
4751
+ end
4752
+
4646
4753
  # Information about the model metric that is reported for a trained
4647
4754
  # model.
4648
4755
  #
@@ -5324,6 +5431,81 @@ module Aws::CleanRoomsML
5324
5431
  include Aws::Structure
5325
5432
  end
5326
5433
 
5434
+ # Properties that define how a specific data column should be handled
5435
+ # during synthetic data generation, including its name, type, and role
5436
+ # in predictive modeling.
5437
+ #
5438
+ # @!attribute [rw] column_name
5439
+ # The name of the data column as it appears in the dataset.
5440
+ # @return [String]
5441
+ #
5442
+ # @!attribute [rw] column_type
5443
+ # The data type of the column, which determines how the synthetic data
5444
+ # generation algorithm processes and synthesizes values for this
5445
+ # column.
5446
+ # @return [String]
5447
+ #
5448
+ # @!attribute [rw] is_predictive_value
5449
+ # Indicates if this column contains predictive values that should be
5450
+ # treated as target variables in machine learning models. This affects
5451
+ # how the synthetic data generation preserves statistical
5452
+ # relationships.
5453
+ # @return [Boolean]
5454
+ #
5455
+ # @see http://docs.aws.amazon.com/goto/WebAPI/cleanroomsml-2023-09-06/SyntheticDataColumnProperties AWS API Documentation
5456
+ #
5457
+ class SyntheticDataColumnProperties < Struct.new(
5458
+ :column_name,
5459
+ :column_type,
5460
+ :is_predictive_value)
5461
+ SENSITIVE = []
5462
+ include Aws::Structure
5463
+ end
5464
+
5465
+ # Configuration settings for synthetic data generation, including the
5466
+ # parameters that control data synthesis and the evaluation scores that
5467
+ # measure the quality and privacy characteristics of the generated
5468
+ # synthetic data.
5469
+ #
5470
+ # @!attribute [rw] synthetic_data_parameters
5471
+ # The parameters that control how synthetic data is generated,
5472
+ # including privacy settings, column classifications, and other
5473
+ # configuration options that affect the data synthesis process.
5474
+ # @return [Types::MLSyntheticDataParameters]
5475
+ #
5476
+ # @!attribute [rw] synthetic_data_evaluation_scores
5477
+ # Evaluation scores that assess the quality and privacy
5478
+ # characteristics of the generated synthetic data, providing metrics
5479
+ # on data utility and privacy preservation.
5480
+ # @return [Types::SyntheticDataEvaluationScores]
5481
+ #
5482
+ # @see http://docs.aws.amazon.com/goto/WebAPI/cleanroomsml-2023-09-06/SyntheticDataConfiguration AWS API Documentation
5483
+ #
5484
+ class SyntheticDataConfiguration < Struct.new(
5485
+ :synthetic_data_parameters,
5486
+ :synthetic_data_evaluation_scores)
5487
+ SENSITIVE = []
5488
+ include Aws::Structure
5489
+ end
5490
+
5491
+ # Comprehensive evaluation metrics for synthetic data that assess both
5492
+ # the utility of the generated data for machine learning tasks and its
5493
+ # privacy preservation characteristics.
5494
+ #
5495
+ # @!attribute [rw] data_privacy_scores
5496
+ # Privacy-specific evaluation scores that measure how well the
5497
+ # synthetic data protects individual privacy, including assessments of
5498
+ # potential privacy risks such as membership inference attacks.
5499
+ # @return [Types::DataPrivacyScores]
5500
+ #
5501
+ # @see http://docs.aws.amazon.com/goto/WebAPI/cleanroomsml-2023-09-06/SyntheticDataEvaluationScores AWS API Documentation
5502
+ #
5503
+ class SyntheticDataEvaluationScores < Struct.new(
5504
+ :data_privacy_scores)
5505
+ SENSITIVE = []
5506
+ include Aws::Structure
5507
+ end
5508
+
5327
5509
  # @!attribute [rw] resource_arn
5328
5510
  # The Amazon Resource Name (ARN) of the resource that you want to
5329
5511
  # assign tags.
@@ -55,7 +55,7 @@ module Aws::CleanRoomsML
55
55
  autoload :EndpointProvider, 'aws-sdk-cleanroomsml/endpoint_provider'
56
56
  autoload :Endpoints, 'aws-sdk-cleanroomsml/endpoints'
57
57
 
58
- GEM_VERSION = '1.38.0'
58
+ GEM_VERSION = '1.39.0'
59
59
 
60
60
  end
61
61
 
data/sig/client.rbs CHANGED
@@ -482,6 +482,7 @@ module Aws
482
482
  def number_of_records: () -> ::Integer
483
483
  def privacy_budgets: () -> Types::PrivacyBudgets
484
484
  def description: () -> ::String
485
+ def synthetic_data_configuration: () -> Types::SyntheticDataConfiguration
485
486
  def create_time: () -> ::Time
486
487
  def update_time: () -> ::Time
487
488
  def creator_account_id: () -> ::String
@@ -624,6 +625,7 @@ module Aws
624
625
  def number_of_records: () -> ::Integer
625
626
  def privacy_budgets: () -> Types::PrivacyBudgets
626
627
  def description: () -> ::String
628
+ def synthetic_data_configuration: () -> Types::SyntheticDataConfiguration
627
629
  def create_time: () -> ::Time
628
630
  def update_time: () -> ::Time
629
631
  def input_channel: () -> Types::InputChannel
data/sig/types.rbs CHANGED
@@ -191,6 +191,11 @@ module Aws::CleanRoomsML
191
191
  SENSITIVE: []
192
192
  end
193
193
 
194
+ class ColumnClassificationDetails
195
+ attr_accessor column_mapping: ::Array[Types::SyntheticDataColumnProperties]
196
+ SENSITIVE: []
197
+ end
198
+
194
199
  class ColumnSchema
195
200
  attr_accessor column_name: ::String
196
201
  attr_accessor column_types: ::Array[("USER_ID" | "ITEM_ID" | "TIMESTAMP" | "CATEGORICAL_FEATURE" | "NUMERICAL_FEATURE")]
@@ -384,6 +389,11 @@ module Aws::CleanRoomsML
384
389
  SENSITIVE: []
385
390
  end
386
391
 
392
+ class DataPrivacyScores
393
+ attr_accessor membership_inference_attack_scores: ::Array[Types::MembershipInferenceAttackScore]
394
+ SENSITIVE: []
395
+ end
396
+
387
397
  class DataSource
388
398
  attr_accessor glue_data_source: Types::GlueDataSource
389
399
  SENSITIVE: []
@@ -543,6 +553,7 @@ module Aws::CleanRoomsML
543
553
  attr_accessor number_of_records: ::Integer
544
554
  attr_accessor privacy_budgets: Types::PrivacyBudgets
545
555
  attr_accessor description: ::String
556
+ attr_accessor synthetic_data_configuration: Types::SyntheticDataConfiguration
546
557
  attr_accessor create_time: ::Time
547
558
  attr_accessor update_time: ::Time
548
559
  attr_accessor creator_account_id: ::String
@@ -685,6 +696,7 @@ module Aws::CleanRoomsML
685
696
  attr_accessor number_of_records: ::Integer
686
697
  attr_accessor privacy_budgets: Types::PrivacyBudgets
687
698
  attr_accessor description: ::String
699
+ attr_accessor synthetic_data_configuration: Types::SyntheticDataConfiguration
688
700
  attr_accessor create_time: ::Time
689
701
  attr_accessor update_time: ::Time
690
702
  attr_accessor input_channel: Types::InputChannel
@@ -1110,6 +1122,19 @@ module Aws::CleanRoomsML
1110
1122
  SENSITIVE: []
1111
1123
  end
1112
1124
 
1125
+ class MLSyntheticDataParameters
1126
+ attr_accessor epsilon: ::Float
1127
+ attr_accessor max_membership_inference_attack_score: ::Float
1128
+ attr_accessor column_classification: Types::ColumnClassificationDetails
1129
+ SENSITIVE: []
1130
+ end
1131
+
1132
+ class MembershipInferenceAttackScore
1133
+ attr_accessor attack_version: ("DISTANCE_TO_CLOSEST_RECORD_V1")
1134
+ attr_accessor score: ::Float
1135
+ SENSITIVE: []
1136
+ end
1137
+
1113
1138
  class MetricDefinition
1114
1139
  attr_accessor name: ::String
1115
1140
  attr_accessor regex: ::String
@@ -1287,6 +1312,24 @@ module Aws::CleanRoomsML
1287
1312
  SENSITIVE: []
1288
1313
  end
1289
1314
 
1315
+ class SyntheticDataColumnProperties
1316
+ attr_accessor column_name: ::String
1317
+ attr_accessor column_type: ("CATEGORICAL" | "NUMERICAL")
1318
+ attr_accessor is_predictive_value: bool
1319
+ SENSITIVE: []
1320
+ end
1321
+
1322
+ class SyntheticDataConfiguration
1323
+ attr_accessor synthetic_data_parameters: Types::MLSyntheticDataParameters
1324
+ attr_accessor synthetic_data_evaluation_scores: Types::SyntheticDataEvaluationScores
1325
+ SENSITIVE: []
1326
+ end
1327
+
1328
+ class SyntheticDataEvaluationScores
1329
+ attr_accessor data_privacy_scores: Types::DataPrivacyScores
1330
+ SENSITIVE: []
1331
+ end
1332
+
1290
1333
  class TagResourceRequest
1291
1334
  attr_accessor resource_arn: ::String
1292
1335
  attr_accessor tags: ::Hash[::String, ::String]
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aws-sdk-cleanroomsml
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.38.0
4
+ version: 1.39.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Amazon Web Services