Skip to content

Commit fe4fa7f

Browse files
author
awstools
committed
feat(client-cleanrooms): AWS Clean Rooms Differential Privacy is now fully available. Differential privacy protects against user-identification attempts.
1 parent 8c32c69 commit fe4fa7f

File tree

8 files changed

+245
-0
lines changed

8 files changed

+245
-0
lines changed

clients/client-cleanrooms/src/commands/BatchGetCollaborationAnalysisTemplateCommand.ts

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,17 @@ export interface BatchGetCollaborationAnalysisTemplateCommandOutput
8080
* // defaultValue: "STRING_VALUE",
8181
* // },
8282
* // ],
83+
* // validations: [ // AnalysisTemplateValidationStatusDetailList
84+
* // { // AnalysisTemplateValidationStatusDetail
85+
* // type: "DIFFERENTIAL_PRIVACY", // required
86+
* // status: "VALID" || "INVALID" || "UNABLE_TO_VALIDATE", // required
87+
* // reasons: [ // AnalysisTemplateValidationStatusReasonList
88+
* // { // AnalysisTemplateValidationStatusReason
89+
* // message: "STRING_VALUE", // required
90+
* // },
91+
* // ],
92+
* // },
93+
* // ],
8394
* // },
8495
* // ],
8596
* // errors: [ // BatchGetCollaborationAnalysisTemplateErrorList // required

clients/client-cleanrooms/src/commands/CreateAnalysisTemplateCommand.ts

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,17 @@ export interface CreateAnalysisTemplateCommandOutput extends CreateAnalysisTempl
8888
* // defaultValue: "STRING_VALUE",
8989
* // },
9090
* // ],
91+
* // validations: [ // AnalysisTemplateValidationStatusDetailList
92+
* // { // AnalysisTemplateValidationStatusDetail
93+
* // type: "DIFFERENTIAL_PRIVACY", // required
94+
* // status: "VALID" || "INVALID" || "UNABLE_TO_VALIDATE", // required
95+
* // reasons: [ // AnalysisTemplateValidationStatusReasonList
96+
* // { // AnalysisTemplateValidationStatusReason
97+
* // message: "STRING_VALUE", // required
98+
* // },
99+
* // ],
100+
* // },
101+
* // ],
91102
* // },
92103
* // };
93104
*

clients/client-cleanrooms/src/commands/GetAnalysisTemplateCommand.ts

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,17 @@ export interface GetAnalysisTemplateCommandOutput extends GetAnalysisTemplateOut
7272
* // defaultValue: "STRING_VALUE",
7373
* // },
7474
* // ],
75+
* // validations: [ // AnalysisTemplateValidationStatusDetailList
76+
* // { // AnalysisTemplateValidationStatusDetail
77+
* // type: "DIFFERENTIAL_PRIVACY", // required
78+
* // status: "VALID" || "INVALID" || "UNABLE_TO_VALIDATE", // required
79+
* // reasons: [ // AnalysisTemplateValidationStatusReasonList
80+
* // { // AnalysisTemplateValidationStatusReason
81+
* // message: "STRING_VALUE", // required
82+
* // },
83+
* // ],
84+
* // },
85+
* // ],
7586
* // },
7687
* // };
7788
*

clients/client-cleanrooms/src/commands/GetCollaborationAnalysisTemplateCommand.ts

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,17 @@ export interface GetCollaborationAnalysisTemplateCommandOutput
7676
* // defaultValue: "STRING_VALUE",
7777
* // },
7878
* // ],
79+
* // validations: [ // AnalysisTemplateValidationStatusDetailList
80+
* // { // AnalysisTemplateValidationStatusDetail
81+
* // type: "DIFFERENTIAL_PRIVACY", // required
82+
* // status: "VALID" || "INVALID" || "UNABLE_TO_VALIDATE", // required
83+
* // reasons: [ // AnalysisTemplateValidationStatusReasonList
84+
* // { // AnalysisTemplateValidationStatusReason
85+
* // message: "STRING_VALUE", // required
86+
* // },
87+
* // ],
88+
* // },
89+
* // ],
7990
* // },
8091
* // };
8192
*

clients/client-cleanrooms/src/commands/UpdateAnalysisTemplateCommand.ts

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,17 @@ export interface UpdateAnalysisTemplateCommandOutput extends UpdateAnalysisTempl
7373
* // defaultValue: "STRING_VALUE",
7474
* // },
7575
* // ],
76+
* // validations: [ // AnalysisTemplateValidationStatusDetailList
77+
* // { // AnalysisTemplateValidationStatusDetail
78+
* // type: "DIFFERENTIAL_PRIVACY", // required
79+
* // status: "VALID" || "INVALID" || "UNABLE_TO_VALIDATE", // required
80+
* // reasons: [ // AnalysisTemplateValidationStatusReasonList
81+
* // { // AnalysisTemplateValidationStatusReason
82+
* // message: "STRING_VALUE", // required
83+
* // },
84+
* // ],
85+
* // },
86+
* // ],
7687
* // },
7788
* // };
7889
*

clients/client-cleanrooms/src/models/models_0.ts

Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -611,6 +611,73 @@ export namespace AnalysisSource {
611611
};
612612
}
613613

614+
/**
615+
* <p>The reasons for the validation results.</p>
616+
* @public
617+
*/
618+
export interface AnalysisTemplateValidationStatusReason {
619+
/**
620+
* <p>The validation message.</p>
621+
* @public
622+
*/
623+
message: string | undefined;
624+
}
625+
626+
/**
627+
* @public
628+
* @enum
629+
*/
630+
export const AnalysisTemplateValidationStatus = {
631+
INVALID: "INVALID",
632+
UNABLE_TO_VALIDATE: "UNABLE_TO_VALIDATE",
633+
VALID: "VALID",
634+
} as const;
635+
636+
/**
637+
* @public
638+
*/
639+
export type AnalysisTemplateValidationStatus =
640+
(typeof AnalysisTemplateValidationStatus)[keyof typeof AnalysisTemplateValidationStatus];
641+
642+
/**
643+
* @public
644+
* @enum
645+
*/
646+
export const AnalysisTemplateValidationType = {
647+
DIFFERENTIAL_PRIVACY: "DIFFERENTIAL_PRIVACY",
648+
} as const;
649+
650+
/**
651+
* @public
652+
*/
653+
export type AnalysisTemplateValidationType =
654+
(typeof AnalysisTemplateValidationType)[keyof typeof AnalysisTemplateValidationType];
655+
656+
/**
657+
* <p>The status details of the analysis template validation. Clean Rooms Differential Privacy uses a general-purpose query structure to support complex SQL queries and validates whether an analysis template fits that general-purpose query structure. Validation is performed when analysis templates are created and fetched. Because analysis templates are immutable by design, we recommend that you create analysis templates after you associate the configured tables with their analysis rule to your collaboration.</p>
658+
* <p>For more information, see <a href="https://docs.aws.amazon.com/clean-rooms/latest/userguide/analysis-rules-custom.html#custom-diff-privacy">https://docs.aws.amazon.com/clean-rooms/latest/userguide/analysis-rules-custom.html#custom-diff-privacy</a>.</p>
659+
* @public
660+
*/
661+
export interface AnalysisTemplateValidationStatusDetail {
662+
/**
663+
* <p>The type of validation that was performed.</p>
664+
* @public
665+
*/
666+
type: AnalysisTemplateValidationType | undefined;
667+
668+
/**
669+
* <p>The status of the validation.</p>
670+
* @public
671+
*/
672+
status: AnalysisTemplateValidationStatus | undefined;
673+
674+
/**
675+
* <p>The reasons for the validation results.</p>
676+
* @public
677+
*/
678+
reasons?: AnalysisTemplateValidationStatusReason[];
679+
}
680+
614681
/**
615682
* <p>The analysis template.</p>
616683
* @public
@@ -699,6 +766,12 @@ export interface AnalysisTemplate {
699766
* @public
700767
*/
701768
analysisParameters?: AnalysisParameter[];
769+
770+
/**
771+
* <p>Information about the validations performed on the analysis template.</p>
772+
* @public
773+
*/
774+
validations?: AnalysisTemplateValidationStatusDetail[];
702775
}
703776

704777
/**
@@ -1307,6 +1380,12 @@ export interface CollaborationAnalysisTemplate {
13071380
* @public
13081381
*/
13091382
analysisParameters?: AnalysisParameter[];
1383+
1384+
/**
1385+
* <p>The validations that were performed.</p>
1386+
* @public
1387+
*/
1388+
validations?: AnalysisTemplateValidationStatusDetail[];
13101389
}
13111390

13121391
/**

clients/client-cleanrooms/src/protocols/Aws_restJson1.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3327,6 +3327,7 @@ const de_AnalysisTemplate = (output: any, context: __SerdeContext): AnalysisTemp
33273327
schema: _json,
33283328
source: (_: any) => _json(__expectUnion(_)),
33293329
updateTime: (_: any) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))),
3330+
validations: _json,
33303331
}) as any;
33313332
};
33323333

@@ -3360,6 +3361,14 @@ const de_AnalysisTemplateSummaryList = (output: any, context: __SerdeContext): A
33603361
return retVal;
33613362
};
33623363

3364+
// de_AnalysisTemplateValidationStatusDetail omitted.
3365+
3366+
// de_AnalysisTemplateValidationStatusDetailList omitted.
3367+
3368+
// de_AnalysisTemplateValidationStatusReason omitted.
3369+
3370+
// de_AnalysisTemplateValidationStatusReasonList omitted.
3371+
33633372
// de_BatchGetCollaborationAnalysisTemplateError omitted.
33643373

33653374
// de_BatchGetCollaborationAnalysisTemplateErrorList omitted.
@@ -3411,6 +3420,7 @@ const de_CollaborationAnalysisTemplate = (output: any, context: __SerdeContext):
34113420
schema: _json,
34123421
source: (_: any) => _json(__expectUnion(_)),
34133422
updateTime: (_: any) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))),
3423+
validations: _json,
34143424
}) as any;
34153425
};
34163426

codegen/sdk-codegen/aws-models/cleanrooms.json

Lines changed: 101 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1365,6 +1365,12 @@
13651365
"traits": {
13661366
"smithy.api#documentation": "<p>The parameters of the analysis template.</p>"
13671367
}
1368+
},
1369+
"validations": {
1370+
"target": "com.amazonaws.cleanrooms#AnalysisTemplateValidationStatusDetailList",
1371+
"traits": {
1372+
"smithy.api#documentation": "<p>Information about the validations performed on the analysis template.</p>"
1373+
}
13681374
}
13691375
},
13701376
"traits": {
@@ -1539,6 +1545,95 @@
15391545
}
15401546
}
15411547
},
1548+
"com.amazonaws.cleanrooms#AnalysisTemplateValidationStatus": {
1549+
"type": "enum",
1550+
"members": {
1551+
"VALID": {
1552+
"target": "smithy.api#Unit",
1553+
"traits": {
1554+
"smithy.api#enumValue": "VALID"
1555+
}
1556+
},
1557+
"INVALID": {
1558+
"target": "smithy.api#Unit",
1559+
"traits": {
1560+
"smithy.api#enumValue": "INVALID"
1561+
}
1562+
},
1563+
"UNABLE_TO_VALIDATE": {
1564+
"target": "smithy.api#Unit",
1565+
"traits": {
1566+
"smithy.api#enumValue": "UNABLE_TO_VALIDATE"
1567+
}
1568+
}
1569+
}
1570+
},
1571+
"com.amazonaws.cleanrooms#AnalysisTemplateValidationStatusDetail": {
1572+
"type": "structure",
1573+
"members": {
1574+
"type": {
1575+
"target": "com.amazonaws.cleanrooms#AnalysisTemplateValidationType",
1576+
"traits": {
1577+
"smithy.api#documentation": "<p>The type of validation that was performed.</p>",
1578+
"smithy.api#required": {}
1579+
}
1580+
},
1581+
"status": {
1582+
"target": "com.amazonaws.cleanrooms#AnalysisTemplateValidationStatus",
1583+
"traits": {
1584+
"smithy.api#documentation": "<p>The status of the validation.</p>",
1585+
"smithy.api#required": {}
1586+
}
1587+
},
1588+
"reasons": {
1589+
"target": "com.amazonaws.cleanrooms#AnalysisTemplateValidationStatusReasonList",
1590+
"traits": {
1591+
"smithy.api#documentation": "<p>The reasons for the validation results.</p>"
1592+
}
1593+
}
1594+
},
1595+
"traits": {
1596+
"smithy.api#documentation": "<p>The status details of the analysis template validation. Clean Rooms Differential Privacy uses a general-purpose query structure to support complex SQL queries and validates whether an analysis template fits that general-purpose query structure. Validation is performed when analysis templates are created and fetched. Because analysis templates are immutable by design, we recommend that you create analysis templates after you associate the configured tables with their analysis rule to your collaboration.</p>\n <p>For more information, see <a href=\"https://docs.aws.amazon.com/clean-rooms/latest/userguide/analysis-rules-custom.html#custom-diff-privacy\">https://docs.aws.amazon.com/clean-rooms/latest/userguide/analysis-rules-custom.html#custom-diff-privacy</a>.</p>"
1597+
}
1598+
},
1599+
"com.amazonaws.cleanrooms#AnalysisTemplateValidationStatusDetailList": {
1600+
"type": "list",
1601+
"member": {
1602+
"target": "com.amazonaws.cleanrooms#AnalysisTemplateValidationStatusDetail"
1603+
}
1604+
},
1605+
"com.amazonaws.cleanrooms#AnalysisTemplateValidationStatusReason": {
1606+
"type": "structure",
1607+
"members": {
1608+
"message": {
1609+
"target": "smithy.api#String",
1610+
"traits": {
1611+
"smithy.api#documentation": "<p>The validation message.</p>",
1612+
"smithy.api#required": {}
1613+
}
1614+
}
1615+
},
1616+
"traits": {
1617+
"smithy.api#documentation": "<p>The reasons for the validation results.</p>"
1618+
}
1619+
},
1620+
"com.amazonaws.cleanrooms#AnalysisTemplateValidationStatusReasonList": {
1621+
"type": "list",
1622+
"member": {
1623+
"target": "com.amazonaws.cleanrooms#AnalysisTemplateValidationStatusReason"
1624+
}
1625+
},
1626+
"com.amazonaws.cleanrooms#AnalysisTemplateValidationType": {
1627+
"type": "enum",
1628+
"members": {
1629+
"DIFFERENTIAL_PRIVACY": {
1630+
"target": "smithy.api#Unit",
1631+
"traits": {
1632+
"smithy.api#enumValue": "DIFFERENTIAL_PRIVACY"
1633+
}
1634+
}
1635+
}
1636+
},
15421637
"com.amazonaws.cleanrooms#BatchGetCollaborationAnalysisTemplate": {
15431638
"type": "operation",
15441639
"input": {
@@ -2097,6 +2192,12 @@
20972192
"traits": {
20982193
"smithy.api#documentation": "<p>The analysis parameters that have been specified in the analysis template.</p>"
20992194
}
2195+
},
2196+
"validations": {
2197+
"target": "com.amazonaws.cleanrooms#AnalysisTemplateValidationStatusDetailList",
2198+
"traits": {
2199+
"smithy.api#documentation": "<p>The validations that were performed.</p>"
2200+
}
21002201
}
21012202
},
21022203
"traits": {

0 commit comments

Comments
 (0)