CleanRoomsService / Client / get_schema_analysis_rule
get_schema_analysis_rule¶
- CleanRoomsService.Client.get_schema_analysis_rule(**kwargs)¶
Retrieves a schema analysis rule.
See also: AWS API Documentation
Request Syntax
response = client.get_schema_analysis_rule( collaborationIdentifier='string', name='string', type='AGGREGATION'|'LIST'|'CUSTOM'|'ID_MAPPING_TABLE' )
- Parameters:
collaborationIdentifier (string) –
[REQUIRED]
A unique identifier for the collaboration that the schema belongs to. Currently accepts a collaboration ID.
name (string) –
[REQUIRED]
The name of the schema to retrieve the analysis rule for.
type (string) –
[REQUIRED]
The type of the schema analysis rule to retrieve. Schema analysis rules are uniquely identified by a combination of the collaboration, the schema name, and their type.
- Return type:
dict
- Returns:
Response Syntax
{ 'analysisRule': { 'collaborationId': 'string', 'type': 'AGGREGATION'|'LIST'|'CUSTOM'|'ID_MAPPING_TABLE', 'name': 'string', 'createTime': datetime(2015, 1, 1), 'updateTime': datetime(2015, 1, 1), 'policy': { 'v1': { 'list': { 'joinColumns': [ 'string', ], 'allowedJoinOperators': [ 'OR'|'AND', ], 'listColumns': [ 'string', ], 'additionalAnalyses': 'ALLOWED'|'REQUIRED'|'NOT_ALLOWED' }, 'aggregation': { 'aggregateColumns': [ { 'columnNames': [ 'string', ], 'function': 'SUM'|'SUM_DISTINCT'|'COUNT'|'COUNT_DISTINCT'|'AVG' }, ], 'joinColumns': [ 'string', ], 'joinRequired': 'QUERY_RUNNER', 'allowedJoinOperators': [ 'OR'|'AND', ], 'dimensionColumns': [ 'string', ], 'scalarFunctions': [ 'ABS'|'CAST'|'CEILING'|'COALESCE'|'CONVERT'|'CURRENT_DATE'|'DATEADD'|'EXTRACT'|'FLOOR'|'GETDATE'|'LN'|'LOG'|'LOWER'|'ROUND'|'RTRIM'|'SQRT'|'SUBSTRING'|'TO_CHAR'|'TO_DATE'|'TO_NUMBER'|'TO_TIMESTAMP'|'TRIM'|'TRUNC'|'UPPER', ], 'outputConstraints': [ { 'columnName': 'string', 'minimum': 123, 'type': 'COUNT_DISTINCT' }, ], 'additionalAnalyses': 'ALLOWED'|'REQUIRED'|'NOT_ALLOWED' }, 'custom': { 'allowedAnalyses': [ 'string', ], 'allowedAnalysisProviders': [ 'string', ], 'additionalAnalyses': 'ALLOWED'|'REQUIRED'|'NOT_ALLOWED', 'disallowedOutputColumns': [ 'string', ], 'differentialPrivacy': { 'columns': [ { 'name': 'string' }, ] }, 'aggregationThresholds': [ { 'identityColumns': [ 'string', ], 'minimumIdentityCount': 123, 'type': 'COUNT_DISTINCT', 'outputColumnThresholds': [ { 'outputColumnName': 'string', 'minimumIdentityCount': 123 }, ], 'allowedAggregateExpressionType': 'COLUMNS_ONLY'|'ANY_EXPRESSION' }, ], 'comparisonControls': { 'allowedLiteralComparisonColumns': [ 'string', ], 'allowedColumnComparisonColumns': [ 'string', ] }, 'allowedResultReceivers': [ 'string', ], 'allowedAdditionalAnalyses': [ 'string', ] }, 'idMappingTable': { 'joinColumns': [ 'string', ], 'queryConstraints': [ { 'requireOverlap': { 'columns': [ 'string', ] } }, ], 'dimensionColumns': [ 'string', ] } } }, 'collaborationPolicy': { 'v1': { 'list': { 'allowedResultReceivers': [ 'string', ], 'allowedAdditionalAnalyses': [ 'string', ] }, 'aggregation': { 'allowedResultReceivers': [ 'string', ], 'allowedAdditionalAnalyses': [ 'string', ] }, 'custom': { 'allowedResultReceivers': [ 'string', ], 'allowedAdditionalAnalyses': [ 'string', ] } } }, 'consolidatedPolicy': { 'v1': { 'list': { 'joinColumns': [ 'string', ], 'allowedJoinOperators': [ 'OR'|'AND', ], 'listColumns': [ 'string', ], 'additionalAnalyses': 'ALLOWED'|'REQUIRED'|'NOT_ALLOWED', 'allowedResultReceivers': [ 'string', ], 'allowedAdditionalAnalyses': [ 'string', ] }, 'aggregation': { 'aggregateColumns': [ { 'columnNames': [ 'string', ], 'function': 'SUM'|'SUM_DISTINCT'|'COUNT'|'COUNT_DISTINCT'|'AVG' }, ], 'joinColumns': [ 'string', ], 'joinRequired': 'QUERY_RUNNER', 'allowedJoinOperators': [ 'OR'|'AND', ], 'dimensionColumns': [ 'string', ], 'scalarFunctions': [ 'ABS'|'CAST'|'CEILING'|'COALESCE'|'CONVERT'|'CURRENT_DATE'|'DATEADD'|'EXTRACT'|'FLOOR'|'GETDATE'|'LN'|'LOG'|'LOWER'|'ROUND'|'RTRIM'|'SQRT'|'SUBSTRING'|'TO_CHAR'|'TO_DATE'|'TO_NUMBER'|'TO_TIMESTAMP'|'TRIM'|'TRUNC'|'UPPER', ], 'outputConstraints': [ { 'columnName': 'string', 'minimum': 123, 'type': 'COUNT_DISTINCT' }, ], 'additionalAnalyses': 'ALLOWED'|'REQUIRED'|'NOT_ALLOWED', 'allowedResultReceivers': [ 'string', ], 'allowedAdditionalAnalyses': [ 'string', ] }, 'custom': { 'allowedAnalyses': [ 'string', ], 'allowedAnalysisProviders': [ 'string', ], 'additionalAnalyses': 'ALLOWED'|'REQUIRED'|'NOT_ALLOWED', 'disallowedOutputColumns': [ 'string', ], 'differentialPrivacy': { 'columns': [ { 'name': 'string' }, ] }, 'aggregationThresholds': [ { 'identityColumns': [ 'string', ], 'minimumIdentityCount': 123, 'type': 'COUNT_DISTINCT', 'outputColumnThresholds': [ { 'outputColumnName': 'string', 'minimumIdentityCount': 123 }, ], 'allowedAggregateExpressionType': 'COLUMNS_ONLY'|'ANY_EXPRESSION' }, ], 'comparisonControls': { 'allowedLiteralComparisonColumns': [ 'string', ], 'allowedColumnComparisonColumns': [ 'string', ] }, 'allowedResultReceivers': [ 'string', ], 'allowedAdditionalAnalyses': [ 'string', ] } } } } }
Response Structure
(dict) –
analysisRule (dict) –
A specification about how data from the configured table can be used.
collaborationId (string) –
The unique ID for the associated collaboration.
type (string) –
The type of analysis rule.
name (string) –
The name for the analysis rule.
createTime (datetime) –
The time the analysis rule was created.
updateTime (datetime) –
The time the analysis rule was last updated.
policy (dict) –
A policy that describes the associated data usage limitations.
Note
This is a Tagged Union structure. Only one of the following top level keys will be set:
v1. If a client receives an unknown member it will setSDK_UNKNOWN_MEMBERas the top level key, which maps to the name or tag of the unknown member. The structure ofSDK_UNKNOWN_MEMBERis as follows:'SDK_UNKNOWN_MEMBER': {'name': 'UnknownMemberName'}
v1 (dict) –
Controls on the query specifications that can be run on configured table.
Note
This is a Tagged Union structure. Only one of the following top level keys will be set:
list,aggregation,custom,idMappingTable. If a client receives an unknown member it will setSDK_UNKNOWN_MEMBERas the top level key, which maps to the name or tag of the unknown member. The structure ofSDK_UNKNOWN_MEMBERis as follows:'SDK_UNKNOWN_MEMBER': {'name': 'UnknownMemberName'}
list (dict) –
Analysis rule type that enables only list queries on a configured table.
joinColumns (list) –
Columns that can be used to join a configured table with the table of the member who can query and other members’ configured tables.
(string) –
allowedJoinOperators (list) –
The logical operators (if any) that are to be used in an INNER JOIN match condition. Default is
AND.(string) –
listColumns (list) –
Columns that can be listed in the output.
(string) –
additionalAnalyses (string) –
An indicator as to whether additional analyses (such as Clean Rooms ML) can be applied to the output of the direct query.
aggregation (dict) –
Analysis rule type that enables only aggregation queries on a configured table.
aggregateColumns (list) –
The columns that query runners are allowed to use in aggregation queries.
(dict) –
Column in configured table that can be used in aggregate function in query.
columnNames (list) –
Column names in configured table of aggregate columns.
(string) –
function (string) –
Aggregation function that can be applied to aggregate column in query.
joinColumns (list) –
Columns in configured table that can be used in join statements and/or as aggregate columns. They can never be outputted directly.
(string) –
joinRequired (string) –
Control that requires member who runs query to do a join with their configured table and/or other configured table in query.
allowedJoinOperators (list) –
Which logical operators (if any) are to be used in an INNER JOIN match condition. Default is
AND.(string) –
dimensionColumns (list) –
The columns that query runners are allowed to select, group by, or filter by.
(string) –
scalarFunctions (list) –
Set of scalar functions that are allowed to be used on dimension columns and the output of aggregation of metrics.
(string) –
outputConstraints (list) –
Columns that must meet a specific threshold value (after an aggregation function is applied to it) for each output row to be returned.
(dict) –
Constraint on query output removing output rows that do not meet a minimum number of distinct values of a specified column.
columnName (string) –
Column in aggregation constraint for which there must be a minimum number of distinct values in an output row for it to be in the query output.
minimum (integer) –
The minimum number of distinct values that an output row must be an aggregation of. Minimum threshold of distinct values for a specified column that must exist in an output row for it to be in the query output.
type (string) –
The type of aggregation the constraint allows. The only valid value is currently COUNT_DISTINCT.
additionalAnalyses (string) –
An indicator as to whether additional analyses (such as Clean Rooms ML) can be applied to the output of the direct query.
The
additionalAnalysesparameter is currently supported for the list analysis rule (AnalysisRuleList) and the custom analysis rule (AnalysisRuleCustom).
custom (dict) –
Analysis rule type that enables custom SQL queries on a configured table.
allowedAnalyses (list) –
The ARN of the analysis templates that are allowed by the custom analysis rule.
(string) –
allowedAnalysisProviders (list) –
The IDs of the Amazon Web Services accounts that are allowed to query by the custom analysis rule. Required when
allowedAnalysesisANY_QUERY.(string) –
additionalAnalyses (string) –
An indicator as to whether additional analyses (such as Clean Rooms ML) can be applied to the output of the direct query.
disallowedOutputColumns (list) –
A list of columns that aren’t allowed to be shown in the query output.
(string) –
differentialPrivacy (dict) –
The differential privacy configuration.
columns (list) –
The name of the column (such as user_id) that contains the unique identifier of your users whose privacy you want to protect. If you want to turn on differential privacy for two or more tables in a collaboration, you must configure the same column as the user identifier column in both analysis rules.
(dict) –
Specifies the name of the column that contains the unique identifier of your users, whose privacy you want to protect.
name (string) –
The name of the column, such as user_id, that contains the unique identifier of your users, whose privacy you want to protect. If you want to turn on differential privacy for two or more tables in a collaboration, you must configure the same column as the user identifier column in both analysis rules.
aggregationThresholds (list) –
The aggregation thresholds that each query output group must satisfy. Clean Rooms filters out any group that represents fewer than the specified number of distinct identities. You can specify at most one threshold. You can’t use aggregation thresholds with differential privacy, or when
allowedAnalysesallows only jobs.(dict) –
Specifies the minimum number of distinct identities that each query output group must represent.
identityColumns (list) –
The identity column, such as
user_id, whose distinct values Clean Rooms counts to enforce minimum aggregation thresholds. Currently, you can specify only one column, and its data type must be string, varchar, or char.(string) –
minimumIdentityCount (integer) –
The minimum number of distinct identities that each query output group must represent. This threshold applies to all output columns in the table. To override this threshold for a specific column, use
outputColumnThresholds.type (string) –
The type of aggregation that the threshold enforces. Currently, the only supported value is
COUNT_DISTINCT, which counts the distinct values in the identity column.outputColumnThresholds (list) –
The per-column overrides of
minimumIdentityCount. An output column without an override usesminimumIdentityCount.(dict) –
Specifies the minimum number of distinct identities for an individual output column. This value overrides the table-wide
minimumIdentityCountthat you set inAggregationThreshold.outputColumnName (string) –
The name of the output column that the override applies to. You can specify each column only once.
minimumIdentityCount (integer) –
The minimum number of distinct identities that each query output group must represent for this column. Specify 0 to exempt the column from the threshold, or a value of 2 or greater to enforce a threshold.
allowedAggregateExpressionType (string) –
Specifies whether a query can aggregate a transformed column. This applies to the arguments of both aggregate and window functions. Valid values are:
COLUMNS_ONLY– A query can aggregate only a direct column reference, such asSUM(amount), or a constant. Clean Rooms rejects a query that transforms a column and then aggregates it, such asSUM(amount * 2)orSUM(ROUND(amount)).ANY_EXPRESSION– A query can aggregate any expression. This includes arithmetic, such asSUM(price * quantity); a cast, such asSUM(CAST(amount AS DECIMAL)); a nested function call, such asSUM(COALESCE(amount, 0)); and a conditional, such asSUM(CASE WHEN region = 'EU' THEN amount ELSE 0 END).
comparisonControls (dict) –
The controls that restrict how a query can compare the columns in the configured table. You can’t use comparison controls with differential privacy, or when
allowedAnalysesallows only jobs.allowedLiteralComparisonColumns (list) –
The columns that a query can compare to literal values, for example, in a WHERE clause. Clean Rooms rejects a query that compares any other column to a literal value. Specify an empty list to block literal comparison on every column. You can’t specify a column that you also use as an identity column in an aggregation threshold.
(string) –
allowedColumnComparisonColumns (list) –
The columns that a query can compare to another column, for example, in a join, a WHERE clause, a GROUP BY clause, or a window function. Clean Rooms rejects a query that uses any other column in a column-to-column comparison. Specify an empty list to block column-to-column comparison on every column.
(string) –
allowedResultReceivers (list) –
The list of Amazon Web Services account IDs that are allowed to receive results from queries run on the configured table.
(string) –
allowedAdditionalAnalyses (list) –
The list of allowed additional analyses for the custom analysis rule.
(string) –
idMappingTable (dict) –
The ID mapping table.
joinColumns (list) –
The columns that query runners are allowed to use in an INNER JOIN statement.
(string) –
queryConstraints (list) –
The query constraints of the analysis rule ID mapping table.
(dict) –
Provides any necessary query constraint information.
Note
This is a Tagged Union structure. Only one of the following top level keys will be set:
requireOverlap. If a client receives an unknown member it will setSDK_UNKNOWN_MEMBERas the top level key, which maps to the name or tag of the unknown member. The structure ofSDK_UNKNOWN_MEMBERis as follows:'SDK_UNKNOWN_MEMBER': {'name': 'UnknownMemberName'}
requireOverlap (dict) –
An array of column names that specifies which columns are required in the JOIN statement.
columns (list) –
The columns that are required to overlap.
(string) –
dimensionColumns (list) –
The columns that query runners are allowed to select, group by, or filter by.
(string) –
collaborationPolicy (dict) –
Controls on the query specifications that can be run on an associated configured table.
Note
This is a Tagged Union structure. Only one of the following top level keys will be set:
v1. If a client receives an unknown member it will setSDK_UNKNOWN_MEMBERas the top level key, which maps to the name or tag of the unknown member. The structure ofSDK_UNKNOWN_MEMBERis as follows:'SDK_UNKNOWN_MEMBER': {'name': 'UnknownMemberName'}
v1 (dict) –
The policy for the configured table association analysis rule.
Note
This is a Tagged Union structure. Only one of the following top level keys will be set:
list,aggregation,custom. If a client receives an unknown member it will setSDK_UNKNOWN_MEMBERas the top level key, which maps to the name or tag of the unknown member. The structure ofSDK_UNKNOWN_MEMBERis as follows:'SDK_UNKNOWN_MEMBER': {'name': 'UnknownMemberName'}
list (dict) –
Analysis rule type that enables only list queries on a configured table.
allowedResultReceivers (list) –
The list of collaboration members who are allowed to receive results of queries run with this configured table.
(string) –
allowedAdditionalAnalyses (list) –
The list of resources or wildcards (ARNs) that are allowed to perform additional analysis on query output.
(string) –
aggregation (dict) –
Analysis rule type that enables only aggregation queries on a configured table.
allowedResultReceivers (list) –
The list of collaboration members who are allowed to receive results of queries run with this configured table.
(string) –
allowedAdditionalAnalyses (list) –
The list of resources or wildcards (ARNs) that are allowed to perform additional analysis on query output.
The
allowedAdditionalAnalysesparameter is currently supported for the list analysis rule (AnalysisRuleList) and the custom analysis rule (AnalysisRuleCustom).(string) –
custom (dict) –
Analysis rule type that enables the table owner to approve custom SQL queries on their configured tables. It supports differential privacy.
allowedResultReceivers (list) –
The list of collaboration members who are allowed to receive results of queries run with this configured table.
(string) –
allowedAdditionalAnalyses (list) –
The list of resources or wildcards (ARNs) that are allowed to perform additional analysis on query output.
(string) –
consolidatedPolicy (dict) –
The consolidated policy for the analysis rule.
Note
This is a Tagged Union structure. Only one of the following top level keys will be set:
v1. If a client receives an unknown member it will setSDK_UNKNOWN_MEMBERas the top level key, which maps to the name or tag of the unknown member. The structure ofSDK_UNKNOWN_MEMBERis as follows:'SDK_UNKNOWN_MEMBER': {'name': 'UnknownMemberName'}
v1 (dict) –
The consolidated policy version 1.
Note
This is a Tagged Union structure. Only one of the following top level keys will be set:
list,aggregation,custom. If a client receives an unknown member it will setSDK_UNKNOWN_MEMBERas the top level key, which maps to the name or tag of the unknown member. The structure ofSDK_UNKNOWN_MEMBERis as follows:'SDK_UNKNOWN_MEMBER': {'name': 'UnknownMemberName'}
list (dict) –
The list of consolidated policies.
joinColumns (list) –
The columns to join on.
(string) –
allowedJoinOperators (list) –
The allowed join operators in the consolidated policy list.
(string) –
listColumns (list) –
The columns in the consolidated policy list.
(string) –
additionalAnalyses (string) –
Additional analyses for the consolidated policy list.
allowedResultReceivers (list) –
The allowed result receivers.
(string) –
allowedAdditionalAnalyses (list) –
The additional analyses allowed by the consolidated policy list.
(string) –
aggregation (dict) –
The aggregation setting for the consolidated policy.
aggregateColumns (list) –
Aggregate columns in consolidated policy aggregation.
(dict) –
Column in configured table that can be used in aggregate function in query.
columnNames (list) –
Column names in configured table of aggregate columns.
(string) –
function (string) –
Aggregation function that can be applied to aggregate column in query.
joinColumns (list) –
The columns to join on.
(string) –
joinRequired (string) –
Join required
allowedJoinOperators (list) –
The allowed join operators.
(string) –
dimensionColumns (list) –
The dimension columns of the consolidated policy aggregation.
(string) –
scalarFunctions (list) –
The scalar functions.
(string) –
outputConstraints (list) –
The output constraints of the consolidated policy aggregation.
(dict) –
Constraint on query output removing output rows that do not meet a minimum number of distinct values of a specified column.
columnName (string) –
Column in aggregation constraint for which there must be a minimum number of distinct values in an output row for it to be in the query output.
minimum (integer) –
The minimum number of distinct values that an output row must be an aggregation of. Minimum threshold of distinct values for a specified column that must exist in an output row for it to be in the query output.
type (string) –
The type of aggregation the constraint allows. The only valid value is currently COUNT_DISTINCT.
additionalAnalyses (string) –
Additional analyses for the consolidated policy aggregation.
allowedResultReceivers (list) –
The allowed result receivers.
(string) –
allowedAdditionalAnalyses (list) –
The additional analyses allowed by the consolidated policy aggregation.
(string) –
custom (dict) –
Custom policy
allowedAnalyses (list) –
The allowed analyses.
(string) –
allowedAnalysisProviders (list) –
The allowed analysis providers.
(string) –
additionalAnalyses (string) –
Additional analyses for the consolidated policy.
disallowedOutputColumns (list) –
Disallowed output columns
(string) –
differentialPrivacy (dict) –
Specifies the unique identifier for your users.
columns (list) –
The name of the column (such as user_id) that contains the unique identifier of your users whose privacy you want to protect. If you want to turn on differential privacy for two or more tables in a collaboration, you must configure the same column as the user identifier column in both analysis rules.
(dict) –
Specifies the name of the column that contains the unique identifier of your users, whose privacy you want to protect.
name (string) –
The name of the column, such as user_id, that contains the unique identifier of your users, whose privacy you want to protect. If you want to turn on differential privacy for two or more tables in a collaboration, you must configure the same column as the user identifier column in both analysis rules.
aggregationThresholds (list) –
The aggregation thresholds for the consolidated policy.
(dict) –
Specifies the minimum number of distinct identities that each query output group must represent.
identityColumns (list) –
The identity column, such as
user_id, whose distinct values Clean Rooms counts to enforce minimum aggregation thresholds. Currently, you can specify only one column, and its data type must be string, varchar, or char.(string) –
minimumIdentityCount (integer) –
The minimum number of distinct identities that each query output group must represent. This threshold applies to all output columns in the table. To override this threshold for a specific column, use
outputColumnThresholds.type (string) –
The type of aggregation that the threshold enforces. Currently, the only supported value is
COUNT_DISTINCT, which counts the distinct values in the identity column.outputColumnThresholds (list) –
The per-column overrides of
minimumIdentityCount. An output column without an override usesminimumIdentityCount.(dict) –
Specifies the minimum number of distinct identities for an individual output column. This value overrides the table-wide
minimumIdentityCountthat you set inAggregationThreshold.outputColumnName (string) –
The name of the output column that the override applies to. You can specify each column only once.
minimumIdentityCount (integer) –
The minimum number of distinct identities that each query output group must represent for this column. Specify 0 to exempt the column from the threshold, or a value of 2 or greater to enforce a threshold.
allowedAggregateExpressionType (string) –
Specifies whether a query can aggregate a transformed column. This applies to the arguments of both aggregate and window functions. Valid values are:
COLUMNS_ONLY– A query can aggregate only a direct column reference, such asSUM(amount), or a constant. Clean Rooms rejects a query that transforms a column and then aggregates it, such asSUM(amount * 2)orSUM(ROUND(amount)).ANY_EXPRESSION– A query can aggregate any expression. This includes arithmetic, such asSUM(price * quantity); a cast, such asSUM(CAST(amount AS DECIMAL)); a nested function call, such asSUM(COALESCE(amount, 0)); and a conditional, such asSUM(CASE WHEN region = 'EU' THEN amount ELSE 0 END).
comparisonControls (dict) –
The comparison controls for the consolidated policy.
allowedLiteralComparisonColumns (list) –
The columns that a query can compare to literal values, for example, in a WHERE clause. Clean Rooms rejects a query that compares any other column to a literal value. Specify an empty list to block literal comparison on every column. You can’t specify a column that you also use as an identity column in an aggregation threshold.
(string) –
allowedColumnComparisonColumns (list) –
The columns that a query can compare to another column, for example, in a join, a WHERE clause, a GROUP BY clause, or a window function. Clean Rooms rejects a query that uses any other column in a column-to-column comparison. Specify an empty list to block column-to-column comparison on every column.
(string) –
allowedResultReceivers (list) –
The allowed result receivers.
(string) –
allowedAdditionalAnalyses (list) –
The additional analyses allowed by the consolidated policy.
(string) –
Exceptions
CleanRoomsService.Client.exceptions.ResourceNotFoundExceptionCleanRoomsService.Client.exceptions.InternalServerExceptionCleanRoomsService.Client.exceptions.ValidationExceptionCleanRoomsService.Client.exceptions.ThrottlingExceptionCleanRoomsService.Client.exceptions.AccessDeniedException