Skip to content

Commit acdbf81

Browse files
This release introduces data access budgets to control how many times a table can be used for queries and jobs in a collaboration.
1 parent 3d86130 commit acdbf81

35 files changed

+2129
-9
lines changed

generator/ServiceModels/cleanrooms/cleanrooms-2022-02-17.api.json

Lines changed: 146 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1580,6 +1580,80 @@
15801580
}
15811581
},
15821582
"shapes":{
1583+
"AccessBudget":{
1584+
"type":"structure",
1585+
"required":[
1586+
"resourceArn",
1587+
"details",
1588+
"aggregateRemainingBudget"
1589+
],
1590+
"members":{
1591+
"resourceArn":{"shape":"BudgetedResourceArn"},
1592+
"details":{"shape":"AccessBudgetDetailsList"},
1593+
"aggregateRemainingBudget":{"shape":"RemainingBudget"}
1594+
}
1595+
},
1596+
"AccessBudgetDetails":{
1597+
"type":"structure",
1598+
"required":[
1599+
"startTime",
1600+
"remainingBudget",
1601+
"budget",
1602+
"budgetType"
1603+
],
1604+
"members":{
1605+
"startTime":{"shape":"Timestamp"},
1606+
"endTime":{"shape":"Timestamp"},
1607+
"remainingBudget":{"shape":"RemainingBudget"},
1608+
"budget":{"shape":"Budget"},
1609+
"budgetType":{"shape":"AccessBudgetType"},
1610+
"autoRefresh":{"shape":"AutoRefreshMode"}
1611+
}
1612+
},
1613+
"AccessBudgetDetailsList":{
1614+
"type":"list",
1615+
"member":{"shape":"AccessBudgetDetails"},
1616+
"max":2,
1617+
"min":1
1618+
},
1619+
"AccessBudgetType":{
1620+
"type":"string",
1621+
"enum":[
1622+
"CALENDAR_DAY",
1623+
"CALENDAR_MONTH",
1624+
"CALENDAR_WEEK",
1625+
"LIFETIME"
1626+
]
1627+
},
1628+
"AccessBudgetsPrivacyTemplateParametersInput":{
1629+
"type":"structure",
1630+
"required":[
1631+
"budgetParameters",
1632+
"resourceArn"
1633+
],
1634+
"members":{
1635+
"budgetParameters":{"shape":"BudgetParameters"},
1636+
"resourceArn":{"shape":"BudgetedResourceArn"}
1637+
}
1638+
},
1639+
"AccessBudgetsPrivacyTemplateParametersOutput":{
1640+
"type":"structure",
1641+
"required":[
1642+
"budgetParameters",
1643+
"resourceArn"
1644+
],
1645+
"members":{
1646+
"budgetParameters":{"shape":"BudgetParameters"},
1647+
"resourceArn":{"shape":"BudgetedResourceArn"}
1648+
}
1649+
},
1650+
"AccessBudgetsPrivacyTemplateUpdateParameters":{
1651+
"type":"structure",
1652+
"required":["budgetParameters"],
1653+
"members":{
1654+
"budgetParameters":{"shape":"BudgetParameters"}
1655+
}
1656+
},
15831657
"AccessDeniedException":{
15841658
"type":"structure",
15851659
"members":{
@@ -2111,6 +2185,13 @@
21112185
"type":"list",
21122186
"member":{"shape":"AutoApprovedChangeType"}
21132187
},
2188+
"AutoRefreshMode":{
2189+
"type":"string",
2190+
"enum":[
2191+
"ENABLED",
2192+
"DISABLED"
2193+
]
2194+
},
21142195
"BatchGetCollaborationAnalysisTemplateError":{
21152196
"type":"structure",
21162197
"required":[
@@ -2266,6 +2347,36 @@
22662347
"type":"boolean",
22672348
"box":true
22682349
},
2350+
"Budget":{
2351+
"type":"integer",
2352+
"box":true,
2353+
"max":1000000,
2354+
"min":0
2355+
},
2356+
"BudgetParameter":{
2357+
"type":"structure",
2358+
"required":[
2359+
"type",
2360+
"budget"
2361+
],
2362+
"members":{
2363+
"type":{"shape":"AccessBudgetType"},
2364+
"budget":{"shape":"Budget"},
2365+
"autoRefresh":{"shape":"AutoRefreshMode"}
2366+
}
2367+
},
2368+
"BudgetParameters":{
2369+
"type":"list",
2370+
"member":{"shape":"BudgetParameter"},
2371+
"max":2,
2372+
"min":1
2373+
},
2374+
"BudgetedResourceArn":{
2375+
"type":"string",
2376+
"max":200,
2377+
"min":0,
2378+
"pattern":"arn:aws:[\\w]+:[\\w]{2}-[\\w]{4,9}-[\\d]:[\\d]{12}:membership/[\\d\\w-]+/configuredtableassociation/[\\d\\w-]+"
2379+
},
22692380
"Change":{
22702381
"type":"structure",
22712382
"required":[
@@ -3545,7 +3656,6 @@
35453656
"type":"structure",
35463657
"required":[
35473658
"membershipIdentifier",
3548-
"autoRefresh",
35493659
"privacyBudgetType",
35503660
"parameters"
35513661
],
@@ -5124,6 +5234,11 @@
51245234
"shape":"PaginationToken",
51255235
"location":"querystring",
51265236
"locationName":"nextToken"
5237+
},
5238+
"accessBudgetResourceArn":{
5239+
"shape":"BudgetedResourceArn",
5240+
"location":"querystring",
5241+
"locationName":"accessBudgetResourceArn"
51275242
}
51285243
}
51295244
},
@@ -5414,6 +5529,11 @@
54145529
"shape":"MaxResults",
54155530
"location":"querystring",
54165531
"locationName":"maxResults"
5532+
},
5533+
"accessBudgetResourceArn":{
5534+
"shape":"BudgetedResourceArn",
5535+
"location":"querystring",
5536+
"locationName":"accessBudgetResourceArn"
54175537
}
54185538
}
54195539
},
@@ -5971,7 +6091,8 @@
59716091
"PrivacyBudget":{
59726092
"type":"structure",
59736093
"members":{
5974-
"differentialPrivacy":{"shape":"DifferentialPrivacyPrivacyBudget"}
6094+
"differentialPrivacy":{"shape":"DifferentialPrivacyPrivacyBudget"},
6095+
"accessBudget":{"shape":"AccessBudget"}
59756096
},
59766097
"union":true
59776098
},
@@ -6059,14 +6180,16 @@
60596180
"PrivacyBudgetTemplateParametersInput":{
60606181
"type":"structure",
60616182
"members":{
6062-
"differentialPrivacy":{"shape":"DifferentialPrivacyTemplateParametersInput"}
6183+
"differentialPrivacy":{"shape":"DifferentialPrivacyTemplateParametersInput"},
6184+
"accessBudget":{"shape":"AccessBudgetsPrivacyTemplateParametersInput"}
60636185
},
60646186
"union":true
60656187
},
60666188
"PrivacyBudgetTemplateParametersOutput":{
60676189
"type":"structure",
60686190
"members":{
6069-
"differentialPrivacy":{"shape":"DifferentialPrivacyTemplateParametersOutput"}
6191+
"differentialPrivacy":{"shape":"DifferentialPrivacyTemplateParametersOutput"},
6192+
"accessBudget":{"shape":"AccessBudgetsPrivacyTemplateParametersOutput"}
60706193
},
60716194
"union":true
60726195
},
@@ -6102,13 +6225,17 @@
61026225
"PrivacyBudgetTemplateUpdateParameters":{
61036226
"type":"structure",
61046227
"members":{
6105-
"differentialPrivacy":{"shape":"DifferentialPrivacyTemplateUpdateParameters"}
6228+
"differentialPrivacy":{"shape":"DifferentialPrivacyTemplateUpdateParameters"},
6229+
"accessBudget":{"shape":"AccessBudgetsPrivacyTemplateUpdateParameters"}
61066230
},
61076231
"union":true
61086232
},
61096233
"PrivacyBudgetType":{
61106234
"type":"string",
6111-
"enum":["DIFFERENTIAL_PRIVACY"]
6235+
"enum":[
6236+
"DIFFERENTIAL_PRIVACY",
6237+
"ACCESS_BUDGET"
6238+
]
61126239
},
61136240
"PrivacyImpact":{
61146241
"type":"structure",
@@ -6626,6 +6753,11 @@
66266753
"type":"list",
66276754
"member":{"shape":"ReceiverConfiguration"}
66286755
},
6756+
"RemainingBudget":{
6757+
"type":"integer",
6758+
"box":true,
6759+
"min":0
6760+
},
66296761
"ResourceAlias":{
66306762
"type":"string",
66316763
"max":128,
@@ -6763,6 +6895,7 @@
67636895
"updateTime":{"shape":"Timestamp"},
67646896
"type":{"shape":"SchemaType"},
67656897
"schemaStatusDetails":{"shape":"SchemaStatusDetailList"},
6898+
"resourceArn":{"shape":"SchemaResourceArn"},
67666899
"schemaTypeProperties":{"shape":"SchemaTypeProperties"}
67676900
}
67686901
},
@@ -6803,6 +6936,12 @@
68036936
"max":25,
68046937
"min":0
68056938
},
6939+
"SchemaResourceArn":{
6940+
"type":"string",
6941+
"max":200,
6942+
"min":0,
6943+
"pattern":"arn:aws:cleanrooms:[\\w]{2}-[\\w]{4,9}-[\\d]:[\\d]{12}:membership\\/[\\d\\w-]+\\/(configuredtableassociation|idmappingtable)\\/[\\d\\w-]+"
6944+
},
68066945
"SchemaStatus":{
68076946
"type":"string",
68086947
"enum":[
@@ -6881,6 +7020,7 @@
68817020
"collaborationArn":{"shape":"CollaborationArn"},
68827021
"analysisRuleTypes":{"shape":"AnalysisRuleTypeList"},
68837022
"analysisMethod":{"shape":"AnalysisMethod"},
7023+
"resourceArn":{"shape":"SchemaResourceArn"},
68847024
"selectedAnalysisMethods":{"shape":"SelectedAnalysisMethods"}
68857025
}
68867026
},

generator/ServiceModels/cleanrooms/cleanrooms-2022-02-17.docs.json

Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,49 @@
9191
"UpdateProtectedQuery": "<p>Updates the processing of a currently running query.</p>"
9292
},
9393
"shapes": {
94+
"AccessBudget": {
95+
"base": "<p>Controls and tracks usage limits for associated configured tables within a collaboration across queries and job. Supports both period-based budgets that can renew (daily, weekly, or monthly) and fixed lifetime budgets. Contains the resource ARN, remaining budget information, and up to two budget configurations (period-based and lifetime). By default, table usage is unlimited unless a budget is configured.</p>",
96+
"refs": {
97+
"PrivacyBudget$accessBudget": "<p>Access budget information associated with this privacy budget.</p>"
98+
}
99+
},
100+
"AccessBudgetDetails": {
101+
"base": "<p>Detailed information about an access budget including time bounds, budget allocation, and configuration settings.</p>",
102+
"refs": {
103+
"AccessBudgetDetailsList$member": null
104+
}
105+
},
106+
"AccessBudgetDetailsList": {
107+
"base": null,
108+
"refs": {
109+
"AccessBudget$details": "<p>Detailed budget information including time bounds, remaining budget, and refresh settings.</p>"
110+
}
111+
},
112+
"AccessBudgetType": {
113+
"base": null,
114+
"refs": {
115+
"AccessBudgetDetails$budgetType": "<p>Specifies the time period for limiting table usage in queries and jobs. For calendar-based periods, the budget can renew if auto refresh is enabled. For lifetime budgets, the limit applies to the total usage throughout the collaboration. Valid values are:</p> <p> <code>CALENDAR_DAY</code> - Limit table usage per day.</p> <p> <code>CALENDAR_WEEK</code> - Limit table usage per week.</p> <p> <code>CALENDAR_MONTH</code> - Limit table usage per month.</p> <p> <code>LIFETIME</code> - Limit total table usage for the collaboration duration.</p>",
116+
"BudgetParameter$type": "<p>The type of budget parameter being configured.</p>"
117+
}
118+
},
119+
"AccessBudgetsPrivacyTemplateParametersInput": {
120+
"base": "<p>Input parameters for privacy budget templates that support access budgets functionality, enabling enhanced budget management capabilities.</p>",
121+
"refs": {
122+
"PrivacyBudgetTemplateParametersInput$accessBudget": "<p>Access budget configuration for the privacy budget template input, enabling integration with access budget functionality.</p>"
123+
}
124+
},
125+
"AccessBudgetsPrivacyTemplateParametersOutput": {
126+
"base": "<p>Output parameters for privacy budget templates with access budgets support, containing the configured budget information.</p>",
127+
"refs": {
128+
"PrivacyBudgetTemplateParametersOutput$accessBudget": "<p>Access budget configuration returned from the privacy budget template, containing the configured access budget settings.</p>"
129+
}
130+
},
131+
"AccessBudgetsPrivacyTemplateUpdateParameters": {
132+
"base": "<p>Update parameters for privacy budget templates with access budgets functionality, allowing modification of existing budget configurations.</p>",
133+
"refs": {
134+
"PrivacyBudgetTemplateUpdateParameters$accessBudget": "<p> The new access budget configuration that completely replaces the existing access budget settings in the privacy budget template.</p>"
135+
}
136+
},
94137
"AccessDeniedException": {
95138
"base": "<p>Caller does not have sufficient access to perform this action.</p>",
96139
"refs": {}
@@ -588,6 +631,13 @@
588631
"CreateCollaborationInput$autoApprovedChangeRequestTypes": "<p>The types of change requests that are automatically approved for this collaboration.</p>"
589632
}
590633
},
634+
"AutoRefreshMode": {
635+
"base": null,
636+
"refs": {
637+
"AccessBudgetDetails$autoRefresh": "<p>Indicates whether the budget automatically refreshes for each time period specified in <code>budgetType</code>. Valid values are:</p> <p> <code>ENABLED</code> - The budget refreshes automatically at the start of each period.</p> <p> <code>DISABLED</code> - The budget must be refreshed manually.</p> <p> <code>NULL</code> - The value is null when <code>budgetType</code> is set to <code>LIFETIME</code>.</p>",
638+
"BudgetParameter$autoRefresh": "<p>Whether this individual budget parameter automatically refreshes when the budget period resets.</p>"
639+
}
640+
},
591641
"BatchGetCollaborationAnalysisTemplateError": {
592642
"base": "<p>Details of errors thrown by the call to retrieve multiple analysis templates within a collaboration by their identifiers.</p>",
593643
"refs": {
@@ -685,6 +735,37 @@
685735
"QueryComputePaymentConfig$isResponsible": "<p>Indicates whether the collaboration creator has configured the collaboration member to pay for query compute costs (<code>TRUE</code>) or has not configured the collaboration member to pay for query compute costs (<code>FALSE</code>).</p> <p>Exactly one member can be configured to pay for query compute costs. An error is returned if the collaboration creator sets a <code>TRUE</code> value for more than one member in the collaboration. </p> <p>If the collaboration creator hasn't specified anyone as the member paying for query compute costs, then the member who can query is the default payer. An error is returned if the collaboration creator sets a <code>FALSE</code> value for the member who can query.</p>"
686736
}
687737
},
738+
"Budget": {
739+
"base": null,
740+
"refs": {
741+
"AccessBudgetDetails$budget": "<p>The total budget allocation amount for this access budget.</p>",
742+
"BudgetParameter$budget": "<p>The budget allocation amount for this specific parameter.</p>"
743+
}
744+
},
745+
"BudgetParameter": {
746+
"base": "<p>Individual budget parameter configuration that defines specific budget allocation settings for access budgets.</p>",
747+
"refs": {
748+
"BudgetParameters$member": null
749+
}
750+
},
751+
"BudgetParameters": {
752+
"base": null,
753+
"refs": {
754+
"AccessBudgetsPrivacyTemplateParametersInput$budgetParameters": "<p>An array of budget parameters that define the access budget configuration for the privacy template.</p>",
755+
"AccessBudgetsPrivacyTemplateParametersOutput$budgetParameters": "<p>An array of budget parameters returned from the access budget configuration.</p>",
756+
"AccessBudgetsPrivacyTemplateUpdateParameters$budgetParameters": "<p>Updated array of budget parameters for the access budget configuration.</p>"
757+
}
758+
},
759+
"BudgetedResourceArn": {
760+
"base": null,
761+
"refs": {
762+
"AccessBudget$resourceArn": "<p>The Amazon Resource Name (ARN) of the access budget resource.</p>",
763+
"AccessBudgetsPrivacyTemplateParametersInput$resourceArn": "<p>The Amazon Resource Name (ARN) of the resource associated with this privacy budget template.</p>",
764+
"AccessBudgetsPrivacyTemplateParametersOutput$resourceArn": "<p>The Amazon Resource Name (ARN) of the resource associated with this privacy budget template.</p>",
765+
"ListCollaborationPrivacyBudgetsInput$accessBudgetResourceArn": "<p>The Amazon Resource Name (ARN) of the Configured Table Association (ConfiguredTableAssociation) used to filter privacy budgets.</p>",
766+
"ListPrivacyBudgetsInput$accessBudgetResourceArn": "<p>The Amazon Resource Name (ARN) of the access budget resource to filter privacy budgets by.</p>"
767+
}
768+
},
688769
"Change": {
689770
"base": "<p>Represents a single change within a collaboration change request, containing the change identifier and specification.</p>",
690771
"refs": {
@@ -3279,6 +3360,13 @@
32793360
"ProtectedQuerySummary$receiverConfigurations": "<p> The receiver configuration.</p>"
32803361
}
32813362
},
3363+
"RemainingBudget": {
3364+
"base": null,
3365+
"refs": {
3366+
"AccessBudget$aggregateRemainingBudget": "<p>The total remaining budget across all budget parameters, showing the lower value between the per-period budget and lifetime budget for this access budget. For individual parameter budgets, see <code>remainingBudget</code>.</p>",
3367+
"AccessBudgetDetails$remainingBudget": "<p>The remaining budget amount available for use within this access budget.</p>"
3368+
}
3369+
},
32823370
"ResourceAlias": {
32833371
"base": null,
32843372
"refs": {
@@ -3420,6 +3508,13 @@
34203508
"BatchGetSchemaOutput$schemas": "<p>The retrieved list of schemas.</p>"
34213509
}
34223510
},
3511+
"SchemaResourceArn": {
3512+
"base": null,
3513+
"refs": {
3514+
"Schema$resourceArn": "<p>The Amazon Resource Name (ARN) of the schema resource.</p>",
3515+
"SchemaSummary$resourceArn": "<p>The Amazon Resource Name (ARN) of the schema summary resource.</p>"
3516+
}
3517+
},
34233518
"SchemaStatus": {
34243519
"base": null,
34253520
"refs": {
@@ -3714,6 +3809,8 @@
37143809
"Timestamp": {
37153810
"base": null,
37163811
"refs": {
3812+
"AccessBudgetDetails$startTime": "<p>The start time for the access budget period.</p>",
3813+
"AccessBudgetDetails$endTime": "<p>The end time for the access budget period.</p>",
37173814
"AnalysisRule$createTime": "<p>The time the analysis rule was created.</p>",
37183815
"AnalysisRule$updateTime": "<p>The time the analysis rule was last updated.</p>",
37193816
"AnalysisTemplate$createTime": "<p>The time that the analysis template was created.</p>",

0 commit comments

Comments
 (0)