AWS Clean Rooms Service

2026/08/13 - AWS Clean Rooms Service - 8 updated api methods

Changes  This release adds support for minimum aggregation thresholds and comparison controls to the Custom analysis rule type.

BatchGetSchemaAnalysisRule (updated) Link ¶
Changes (response)
{'analysisRules': {'consolidatedPolicy': {'v1': {'custom': {'aggregationThresholds': [{'allowedAggregateExpressionType': 'COLUMNS_ONLY '
                                                                                                                         '| '
                                                                                                                         'ANY_EXPRESSION',
                                                                                       'identityColumns': ['string'],
                                                                                       'minimumIdentityCount': 'integer',
                                                                                       'outputColumnThresholds': [{'minimumIdentityCount': 'integer',
                                                                                                                   'outputColumnName': 'string'}],
                                                                                       'type': 'COUNT_DISTINCT'}],
                                                            'comparisonControls': {'allowedColumnComparisonColumns': ['string'],
                                                                                   'allowedLiteralComparisonColumns': ['string']}}}},
                   'policy': {'v1': {'custom': {'aggregationThresholds': [{'allowedAggregateExpressionType': 'COLUMNS_ONLY '
                                                                                                             '| '
                                                                                                             'ANY_EXPRESSION',
                                                                           'identityColumns': ['string'],
                                                                           'minimumIdentityCount': 'integer',
                                                                           'outputColumnThresholds': [{'minimumIdentityCount': 'integer',
                                                                                                       'outputColumnName': 'string'}],
                                                                           'type': 'COUNT_DISTINCT'}],
                                                'comparisonControls': {'allowedColumnComparisonColumns': ['string'],
                                                                       'allowedLiteralComparisonColumns': ['string']}}}}}}

Retrieves multiple analysis rule schemas.

See also: AWS API Documentation

Request Syntax

client.batch_get_schema_analysis_rule(
    collaborationIdentifier='string',
    schemaAnalysisRuleRequests=[
        {
            'name': 'string',
            'type': 'AGGREGATION'|'LIST'|'CUSTOM'|'ID_MAPPING_TABLE'
        },
    ]
)
type collaborationIdentifier:

string

param collaborationIdentifier:

[REQUIRED]

The unique identifier of the collaboration that contains the schema analysis rule.

type schemaAnalysisRuleRequests:

list

param schemaAnalysisRuleRequests:

[REQUIRED]

The information that's necessary to retrieve a schema analysis rule.

  • (dict) --

    Defines the information that's necessary to retrieve an analysis rule schema. Schema analysis rules are uniquely identified by a combination of the schema name and the analysis rule type for a given collaboration.

    • name (string) -- [REQUIRED]

      The name of the analysis rule schema that you are requesting.

    • type (string) -- [REQUIRED]

      The type of analysis rule schema that you are requesting.

rtype:

dict

returns:

Response Syntax

{
    'analysisRules': [
        {
            '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',
                        ]
                    }
                }
            }
        },
    ],
    'errors': [
        {
            'name': 'string',
            'type': 'AGGREGATION'|'LIST'|'CUSTOM'|'ID_MAPPING_TABLE',
            'code': 'string',
            'message': 'string'
        },
    ]
}

Response Structure

  • (dict) --

    • analysisRules (list) --

      The retrieved list of analysis rules.

      • (dict) --

        A specification about how data from the configured table can be used in a query.

        • 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.

          • v1 (dict) --

            Controls on the query specifications that can be run on configured table.

            • 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 additionalAnalyses parameter 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 allowedAnalyses is ANY_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 allowedAnalyses allows 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 uses minimumIdentityCount.

                    • (dict) --

                      Specifies the minimum number of distinct identities for an individual output column. This value overrides the table-wide minimumIdentityCount that you set in AggregationThreshold.

                      • 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 as SUM(amount), or a constant. Clean Rooms rejects a query that transforms a column and then aggregates it, such as SUM(amount * 2) or SUM(ROUND(amount)).

                    ANY_EXPRESSION – A query can aggregate any expression. This includes arithmetic, such as SUM(price * quantity); a cast, such as SUM(CAST(amount AS DECIMAL)); a nested function call, such as SUM(COALESCE(amount, 0)); and a conditional, such as SUM(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 allowedAnalyses allows 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.

                  • 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.

          • v1 (dict) --

            The policy for the configured table association analysis rule.

            • 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 allowedAdditionalAnalyses parameter 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.

          • v1 (dict) --

            The consolidated policy version 1.

            • 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 uses minimumIdentityCount.

                    • (dict) --

                      Specifies the minimum number of distinct identities for an individual output column. This value overrides the table-wide minimumIdentityCount that you set in AggregationThreshold.

                      • 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 as SUM(amount), or a constant. Clean Rooms rejects a query that transforms a column and then aggregates it, such as SUM(amount * 2) or SUM(ROUND(amount)).

                    ANY_EXPRESSION – A query can aggregate any expression. This includes arithmetic, such as SUM(price * quantity); a cast, such as SUM(CAST(amount AS DECIMAL)); a nested function call, such as SUM(COALESCE(amount, 0)); and a conditional, such as SUM(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) --

    • errors (list) --

      Error reasons for schemas that could not be retrieved. One error is returned for every schema that could not be retrieved.

      • (dict) --

        An error that describes why a schema could not be fetched.

        • name (string) --

          An error name for the error.

        • type (string) --

          The analysis rule type.

        • code (string) --

          An error code for the error.

        • message (string) --

          A description of why the call failed.

CreateConfiguredTableAnalysisRule (updated) Link ¶
Changes (request, response)
Request
{'analysisRulePolicy': {'v1': {'custom': {'aggregationThresholds': [{'allowedAggregateExpressionType': 'COLUMNS_ONLY '
                                                                                                       '| '
                                                                                                       'ANY_EXPRESSION',
                                                                     'identityColumns': ['string'],
                                                                     'minimumIdentityCount': 'integer',
                                                                     'outputColumnThresholds': [{'minimumIdentityCount': 'integer',
                                                                                                 'outputColumnName': 'string'}],
                                                                     'type': 'COUNT_DISTINCT'}],
                                          'comparisonControls': {'allowedColumnComparisonColumns': ['string'],
                                                                 'allowedLiteralComparisonColumns': ['string']}}}}}
Response
{'analysisRule': {'policy': {'v1': {'custom': {'aggregationThresholds': [{'allowedAggregateExpressionType': 'COLUMNS_ONLY '
                                                                                                            '| '
                                                                                                            'ANY_EXPRESSION',
                                                                          'identityColumns': ['string'],
                                                                          'minimumIdentityCount': 'integer',
                                                                          'outputColumnThresholds': [{'minimumIdentityCount': 'integer',
                                                                                                      'outputColumnName': 'string'}],
                                                                          'type': 'COUNT_DISTINCT'}],
                                               'comparisonControls': {'allowedColumnComparisonColumns': ['string'],
                                                                      'allowedLiteralComparisonColumns': ['string']}}}}}}

Creates a new analysis rule for a configured table. Currently, only one analysis rule can be created for a given configured table.

See also: AWS API Documentation

Request Syntax

client.create_configured_table_analysis_rule(
    configuredTableIdentifier='string',
    analysisRuleType='AGGREGATION'|'LIST'|'CUSTOM',
    analysisRulePolicy={
        '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',
                ]
            }
        }
    }
)
type configuredTableIdentifier:

string

param configuredTableIdentifier:

[REQUIRED]

The identifier for the configured table to create the analysis rule for. Currently accepts the configured table ID.

type analysisRuleType:

string

param analysisRuleType:

[REQUIRED]

The type of analysis rule.

type analysisRulePolicy:

dict

param analysisRulePolicy:

[REQUIRED]

The analysis rule policy that was created for the configured table.

  • v1 (dict) --

    Controls on the query specifications that can be run on a configured table.

    • list (dict) --

      Analysis rule type that enables only list queries on a configured table.

      • joinColumns (list) -- [REQUIRED]

        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) -- [REQUIRED]

        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) -- [REQUIRED]

        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) -- [REQUIRED]

            Column names in configured table of aggregate columns.

            • (string) --

          • function (string) -- [REQUIRED]

            Aggregation function that can be applied to aggregate column in query.

      • joinColumns (list) -- [REQUIRED]

        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) -- [REQUIRED]

        The columns that query runners are allowed to select, group by, or filter by.

        • (string) --

      • scalarFunctions (list) -- [REQUIRED]

        Set of scalar functions that are allowed to be used on dimension columns and the output of aggregation of metrics.

        • (string) --

      • outputConstraints (list) -- [REQUIRED]

        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) -- [REQUIRED]

            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) -- [REQUIRED]

            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) -- [REQUIRED]

            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 additionalAnalyses parameter is currently supported for the list analysis rule ( AnalysisRuleList) and the custom analysis rule ( AnalysisRuleCustom).

    • custom (dict) --

      A type of analysis rule that enables the table owner to approve custom SQL queries on their configured tables. It supports differential privacy, minimum aggregation thresholds, and comparison controls.

      • allowedAnalyses (list) -- [REQUIRED]

        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 allowedAnalyses is ANY_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) -- [REQUIRED]

          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) -- [REQUIRED]

              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 allowedAnalyses allows only jobs.

        • (dict) --

          Specifies the minimum number of distinct identities that each query output group must represent.

          • identityColumns (list) -- [REQUIRED]

            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) -- [REQUIRED]

            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) -- [REQUIRED]

            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 uses minimumIdentityCount.

            • (dict) --

              Specifies the minimum number of distinct identities for an individual output column. This value overrides the table-wide minimumIdentityCount that you set in AggregationThreshold.

              • outputColumnName (string) -- [REQUIRED]

                The name of the output column that the override applies to. You can specify each column only once.

              • minimumIdentityCount (integer) -- [REQUIRED]

                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) -- [REQUIRED]

            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 as SUM(amount), or a constant. Clean Rooms rejects a query that transforms a column and then aggregates it, such as SUM(amount * 2) or SUM(ROUND(amount)).

            ANY_EXPRESSION – A query can aggregate any expression. This includes arithmetic, such as SUM(price * quantity); a cast, such as SUM(CAST(amount AS DECIMAL)); a nested function call, such as SUM(COALESCE(amount, 0)); and a conditional, such as SUM(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 allowedAnalyses allows only jobs.

        • allowedLiteralComparisonColumns (list) -- [REQUIRED]

          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) -- [REQUIRED]

          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) --

rtype:

dict

returns:

Response Syntax

{
    'analysisRule': {
        'configuredTableId': 'string',
        'configuredTableArn': 'string',
        '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',
                    ]
                }
            }
        },
        'type': 'AGGREGATION'|'LIST'|'CUSTOM',
        'createTime': datetime(2015, 1, 1),
        'updateTime': datetime(2015, 1, 1)
    }
}

Response Structure

  • (dict) --

    • analysisRule (dict) --

      The analysis rule that was created for the configured table.

      • configuredTableId (string) --

        The unique ID for the configured table.

      • configuredTableArn (string) --

        The unique ARN for the configured table.

      • policy (dict) --

        The policy that controls SQL query rules.

        • v1 (dict) --

          Controls on the query specifications that can be run on a configured table.

          • 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 additionalAnalyses parameter is currently supported for the list analysis rule ( AnalysisRuleList) and the custom analysis rule ( AnalysisRuleCustom).

          • custom (dict) --

            A type of analysis rule that enables the table owner to approve custom SQL queries on their configured tables. It supports differential privacy, minimum aggregation thresholds, and comparison controls.

            • 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 allowedAnalyses is ANY_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 allowedAnalyses allows 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 uses minimumIdentityCount.

                  • (dict) --

                    Specifies the minimum number of distinct identities for an individual output column. This value overrides the table-wide minimumIdentityCount that you set in AggregationThreshold.

                    • 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 as SUM(amount), or a constant. Clean Rooms rejects a query that transforms a column and then aggregates it, such as SUM(amount * 2) or SUM(ROUND(amount)).

                  ANY_EXPRESSION – A query can aggregate any expression. This includes arithmetic, such as SUM(price * quantity); a cast, such as SUM(CAST(amount AS DECIMAL)); a nested function call, such as SUM(COALESCE(amount, 0)); and a conditional, such as SUM(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 allowedAnalyses allows 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) --

      • type (string) --

        The type of configured table analysis rule.

      • createTime (datetime) --

        The time the configured table analysis rule was created.

      • updateTime (datetime) --

        The time the configured table analysis rule was last updated.

CreateIntermediateTableAnalysisRule (updated) Link ¶
Changes (request, response)
Request
{'analysisRulePolicy': {'v1': {'custom': {'aggregationThresholds': [{'allowedAggregateExpressionType': 'COLUMNS_ONLY '
                                                                                                       '| '
                                                                                                       'ANY_EXPRESSION',
                                                                     'identityColumns': ['string'],
                                                                     'minimumIdentityCount': 'integer',
                                                                     'outputColumnThresholds': [{'minimumIdentityCount': 'integer',
                                                                                                 'outputColumnName': 'string'}],
                                                                     'type': 'COUNT_DISTINCT'}],
                                          'comparisonControls': {'allowedColumnComparisonColumns': ['string'],
                                                                 'allowedLiteralComparisonColumns': ['string']}}}}}
Response
{'analysisRule': {'analysisRulePolicy': {'v1': {'custom': {'aggregationThresholds': [{'allowedAggregateExpressionType': 'COLUMNS_ONLY '
                                                                                                                        '| '
                                                                                                                        'ANY_EXPRESSION',
                                                                                      'identityColumns': ['string'],
                                                                                      'minimumIdentityCount': 'integer',
                                                                                      'outputColumnThresholds': [{'minimumIdentityCount': 'integer',
                                                                                                                  'outputColumnName': 'string'}],
                                                                                      'type': 'COUNT_DISTINCT'}],
                                                           'comparisonControls': {'allowedColumnComparisonColumns': ['string'],
                                                                                  'allowedLiteralComparisonColumns': ['string']}}}}}}

Creates an analysis rule for an intermediate table. Only the CUSTOM analysis rule type is supported. Only the intermediate table owner can call this operation.

See also: AWS API Documentation

Request Syntax

client.create_intermediate_table_analysis_rule(
    membershipIdentifier='string',
    intermediateTableIdentifier='string',
    analysisRuleType='CUSTOM',
    analysisRulePolicy={
        'v1': {
            'custom': {
                'allowedAnalyses': [
                    'string',
                ],
                'additionalAnalyses': 'ALLOWED'|'REQUIRED'|'NOT_ALLOWED',
                'allowedAdditionalAnalyses': [
                    'string',
                ],
                'allowedAnalysisProviders': [
                    'string',
                ],
                'allowedResultReceivers': [
                    'string',
                ],
                'differentialPrivacy': {
                    'columns': [
                        {
                            'name': 'string'
                        },
                    ]
                },
                'disallowedOutputColumns': [
                    'string',
                ],
                'aggregationThresholds': [
                    {
                        'identityColumns': [
                            'string',
                        ],
                        'minimumIdentityCount': 123,
                        'type': 'COUNT_DISTINCT',
                        'outputColumnThresholds': [
                            {
                                'outputColumnName': 'string',
                                'minimumIdentityCount': 123
                            },
                        ],
                        'allowedAggregateExpressionType': 'COLUMNS_ONLY'|'ANY_EXPRESSION'
                    },
                ],
                'comparisonControls': {
                    'allowedLiteralComparisonColumns': [
                        'string',
                    ],
                    'allowedColumnComparisonColumns': [
                        'string',
                    ]
                }
            }
        }
    }
)
type membershipIdentifier:

string

param membershipIdentifier:

[REQUIRED]

The unique identifier of the membership that contains the intermediate table.

type intermediateTableIdentifier:

string

param intermediateTableIdentifier:

[REQUIRED]

The unique identifier of the intermediate table for which to create the analysis rule.

type analysisRuleType:

string

param analysisRuleType:

[REQUIRED]

The type of analysis rule to create. Currently, only CUSTOM is supported.

type analysisRulePolicy:

dict

param analysisRulePolicy:

[REQUIRED]

The analysis rule policy to apply to the intermediate table.

  • v1 (dict) --

    The version 1 policy for the analysis rule.

    • custom (dict) --

      The custom analysis rule policy.

      • allowedAnalyses (list) --

        The list of allowed analyses that can be performed on the intermediate table.

        • (string) --

      • additionalAnalyses (string) --

        The setting that controls whether additional analyses are allowed on the intermediate table.

      • allowedAdditionalAnalyses (list) --

        The list of allowed additional analyses for the intermediate table.

        • (string) --

      • allowedAnalysisProviders (list) --

        The list of Amazon Web Services account IDs for the allowed analysis providers.

        • (string) --

      • allowedResultReceivers (list) --

        The list of Amazon Web Services account IDs that are allowed to receive results from queries run on the intermediate table.

        • (string) --

      • differentialPrivacy (dict) --

        Specifies the unique identifier for your users.

        • columns (list) -- [REQUIRED]

          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) -- [REQUIRED]

              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.

      • disallowedOutputColumns (list) --

        The list of columns that are not allowed in the query output.

        • (string) --

      • 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 allowedAnalyses allows only jobs.

        • (dict) --

          Specifies the minimum number of distinct identities that each query output group must represent.

          • identityColumns (list) -- [REQUIRED]

            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) -- [REQUIRED]

            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) -- [REQUIRED]

            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 uses minimumIdentityCount.

            • (dict) --

              Specifies the minimum number of distinct identities for an individual output column. This value overrides the table-wide minimumIdentityCount that you set in AggregationThreshold.

              • outputColumnName (string) -- [REQUIRED]

                The name of the output column that the override applies to. You can specify each column only once.

              • minimumIdentityCount (integer) -- [REQUIRED]

                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) -- [REQUIRED]

            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 as SUM(amount), or a constant. Clean Rooms rejects a query that transforms a column and then aggregates it, such as SUM(amount * 2) or SUM(ROUND(amount)).

            ANY_EXPRESSION – A query can aggregate any expression. This includes arithmetic, such as SUM(price * quantity); a cast, such as SUM(CAST(amount AS DECIMAL)); a nested function call, such as SUM(COALESCE(amount, 0)); and a conditional, such as SUM(CASE WHEN region = 'EU' THEN amount ELSE 0 END).

      • comparisonControls (dict) --

        The controls that restrict how a query can compare the columns in the intermediate table. You can't use comparison controls with differential privacy, or when allowedAnalyses allows only jobs.

        • allowedLiteralComparisonColumns (list) -- [REQUIRED]

          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) -- [REQUIRED]

          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) --

rtype:

dict

returns:

Response Syntax

{
    'analysisRule': {
        'intermediateTableIdentifier': 'string',
        'intermediateTableArn': 'string',
        'analysisRulePolicy': {
            'v1': {
                'custom': {
                    'allowedAnalyses': [
                        'string',
                    ],
                    'additionalAnalyses': 'ALLOWED'|'REQUIRED'|'NOT_ALLOWED',
                    'allowedAdditionalAnalyses': [
                        'string',
                    ],
                    'allowedAnalysisProviders': [
                        'string',
                    ],
                    'allowedResultReceivers': [
                        'string',
                    ],
                    'differentialPrivacy': {
                        'columns': [
                            {
                                'name': 'string'
                            },
                        ]
                    },
                    'disallowedOutputColumns': [
                        'string',
                    ],
                    'aggregationThresholds': [
                        {
                            'identityColumns': [
                                'string',
                            ],
                            'minimumIdentityCount': 123,
                            'type': 'COUNT_DISTINCT',
                            'outputColumnThresholds': [
                                {
                                    'outputColumnName': 'string',
                                    'minimumIdentityCount': 123
                                },
                            ],
                            'allowedAggregateExpressionType': 'COLUMNS_ONLY'|'ANY_EXPRESSION'
                        },
                    ],
                    'comparisonControls': {
                        'allowedLiteralComparisonColumns': [
                            'string',
                        ],
                        'allowedColumnComparisonColumns': [
                            'string',
                        ]
                    }
                }
            }
        },
        'analysisRuleType': 'CUSTOM',
        'createTime': datetime(2015, 1, 1),
        'updateTime': datetime(2015, 1, 1)
    }
}

Response Structure

  • (dict) --

    • analysisRule (dict) --

      The analysis rule that was created for the intermediate table.

      • intermediateTableIdentifier (string) --

        The unique identifier of the intermediate table associated with this analysis rule.

      • intermediateTableArn (string) --

        The Amazon Resource Name (ARN) of the intermediate table associated with this analysis rule.

      • analysisRulePolicy (dict) --

        The policy of the analysis rule.

        • v1 (dict) --

          The version 1 policy for the analysis rule.

          • custom (dict) --

            The custom analysis rule policy.

            • allowedAnalyses (list) --

              The list of allowed analyses that can be performed on the intermediate table.

              • (string) --

            • additionalAnalyses (string) --

              The setting that controls whether additional analyses are allowed on the intermediate table.

            • allowedAdditionalAnalyses (list) --

              The list of allowed additional analyses for the intermediate table.

              • (string) --

            • allowedAnalysisProviders (list) --

              The list of Amazon Web Services account IDs for the allowed analysis providers.

              • (string) --

            • allowedResultReceivers (list) --

              The list of Amazon Web Services account IDs that are allowed to receive results from queries run on the intermediate table.

              • (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.

            • disallowedOutputColumns (list) --

              The list of columns that are not allowed in the query output.

              • (string) --

            • 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 allowedAnalyses allows 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 uses minimumIdentityCount.

                  • (dict) --

                    Specifies the minimum number of distinct identities for an individual output column. This value overrides the table-wide minimumIdentityCount that you set in AggregationThreshold.

                    • 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 as SUM(amount), or a constant. Clean Rooms rejects a query that transforms a column and then aggregates it, such as SUM(amount * 2) or SUM(ROUND(amount)).

                  ANY_EXPRESSION – A query can aggregate any expression. This includes arithmetic, such as SUM(price * quantity); a cast, such as SUM(CAST(amount AS DECIMAL)); a nested function call, such as SUM(COALESCE(amount, 0)); and a conditional, such as SUM(CASE WHEN region = 'EU' THEN amount ELSE 0 END).

            • comparisonControls (dict) --

              The controls that restrict how a query can compare the columns in the intermediate table. You can't use comparison controls with differential privacy, or when allowedAnalyses allows 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) --

      • analysisRuleType (string) --

        The type of the analysis rule.

      • createTime (datetime) --

        The time the analysis rule was created.

      • updateTime (datetime) --

        The time the analysis rule was last updated.

GetConfiguredTableAnalysisRule (updated) Link ¶
Changes (response)
{'analysisRule': {'policy': {'v1': {'custom': {'aggregationThresholds': [{'allowedAggregateExpressionType': 'COLUMNS_ONLY '
                                                                                                            '| '
                                                                                                            'ANY_EXPRESSION',
                                                                          'identityColumns': ['string'],
                                                                          'minimumIdentityCount': 'integer',
                                                                          'outputColumnThresholds': [{'minimumIdentityCount': 'integer',
                                                                                                      'outputColumnName': 'string'}],
                                                                          'type': 'COUNT_DISTINCT'}],
                                               'comparisonControls': {'allowedColumnComparisonColumns': ['string'],
                                                                      'allowedLiteralComparisonColumns': ['string']}}}}}}

Retrieves a configured table analysis rule.

See also: AWS API Documentation

Request Syntax

client.get_configured_table_analysis_rule(
    configuredTableIdentifier='string',
    analysisRuleType='AGGREGATION'|'LIST'|'CUSTOM'
)
type configuredTableIdentifier:

string

param configuredTableIdentifier:

[REQUIRED]

The unique identifier for the configured table to retrieve. Currently accepts the configured table ID.

type analysisRuleType:

string

param analysisRuleType:

[REQUIRED]

The analysis rule to be retrieved. Configured table analysis rules are uniquely identified by their configured table identifier and analysis rule type.

rtype:

dict

returns:

Response Syntax

{
    'analysisRule': {
        'configuredTableId': 'string',
        'configuredTableArn': 'string',
        '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',
                    ]
                }
            }
        },
        'type': 'AGGREGATION'|'LIST'|'CUSTOM',
        'createTime': datetime(2015, 1, 1),
        'updateTime': datetime(2015, 1, 1)
    }
}

Response Structure

  • (dict) --

    • analysisRule (dict) --

      The entire analysis rule output.

      • configuredTableId (string) --

        The unique ID for the configured table.

      • configuredTableArn (string) --

        The unique ARN for the configured table.

      • policy (dict) --

        The policy that controls SQL query rules.

        • v1 (dict) --

          Controls on the query specifications that can be run on a configured table.

          • 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 additionalAnalyses parameter is currently supported for the list analysis rule ( AnalysisRuleList) and the custom analysis rule ( AnalysisRuleCustom).

          • custom (dict) --

            A type of analysis rule that enables the table owner to approve custom SQL queries on their configured tables. It supports differential privacy, minimum aggregation thresholds, and comparison controls.

            • 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 allowedAnalyses is ANY_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 allowedAnalyses allows 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 uses minimumIdentityCount.

                  • (dict) --

                    Specifies the minimum number of distinct identities for an individual output column. This value overrides the table-wide minimumIdentityCount that you set in AggregationThreshold.

                    • 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 as SUM(amount), or a constant. Clean Rooms rejects a query that transforms a column and then aggregates it, such as SUM(amount * 2) or SUM(ROUND(amount)).

                  ANY_EXPRESSION – A query can aggregate any expression. This includes arithmetic, such as SUM(price * quantity); a cast, such as SUM(CAST(amount AS DECIMAL)); a nested function call, such as SUM(COALESCE(amount, 0)); and a conditional, such as SUM(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 allowedAnalyses allows 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) --

      • type (string) --

        The type of configured table analysis rule.

      • createTime (datetime) --

        The time the configured table analysis rule was created.

      • updateTime (datetime) --

        The time the configured table analysis rule was last updated.

GetIntermediateTableAnalysisRule (updated) Link ¶
Changes (response)
{'analysisRule': {'analysisRulePolicy': {'v1': {'custom': {'aggregationThresholds': [{'allowedAggregateExpressionType': 'COLUMNS_ONLY '
                                                                                                                        '| '
                                                                                                                        'ANY_EXPRESSION',
                                                                                      'identityColumns': ['string'],
                                                                                      'minimumIdentityCount': 'integer',
                                                                                      'outputColumnThresholds': [{'minimumIdentityCount': 'integer',
                                                                                                                  'outputColumnName': 'string'}],
                                                                                      'type': 'COUNT_DISTINCT'}],
                                                           'comparisonControls': {'allowedColumnComparisonColumns': ['string'],
                                                                                  'allowedLiteralComparisonColumns': ['string']}}}}}}

Retrieves the analysis rule for an intermediate table.

See also: AWS API Documentation

Request Syntax

client.get_intermediate_table_analysis_rule(
    membershipIdentifier='string',
    intermediateTableIdentifier='string',
    analysisRuleType='CUSTOM'
)
type membershipIdentifier:

string

param membershipIdentifier:

[REQUIRED]

The unique identifier of the membership that contains the intermediate table.

type intermediateTableIdentifier:

string

param intermediateTableIdentifier:

[REQUIRED]

The unique identifier of the intermediate table for which to retrieve the analysis rule.

type analysisRuleType:

string

param analysisRuleType:

[REQUIRED]

The type of analysis rule to retrieve. Currently, only CUSTOM is supported.

rtype:

dict

returns:

Response Syntax

{
    'analysisRule': {
        'intermediateTableIdentifier': 'string',
        'intermediateTableArn': 'string',
        'analysisRulePolicy': {
            'v1': {
                'custom': {
                    'allowedAnalyses': [
                        'string',
                    ],
                    'additionalAnalyses': 'ALLOWED'|'REQUIRED'|'NOT_ALLOWED',
                    'allowedAdditionalAnalyses': [
                        'string',
                    ],
                    'allowedAnalysisProviders': [
                        'string',
                    ],
                    'allowedResultReceivers': [
                        'string',
                    ],
                    'differentialPrivacy': {
                        'columns': [
                            {
                                'name': 'string'
                            },
                        ]
                    },
                    'disallowedOutputColumns': [
                        'string',
                    ],
                    'aggregationThresholds': [
                        {
                            'identityColumns': [
                                'string',
                            ],
                            'minimumIdentityCount': 123,
                            'type': 'COUNT_DISTINCT',
                            'outputColumnThresholds': [
                                {
                                    'outputColumnName': 'string',
                                    'minimumIdentityCount': 123
                                },
                            ],
                            'allowedAggregateExpressionType': 'COLUMNS_ONLY'|'ANY_EXPRESSION'
                        },
                    ],
                    'comparisonControls': {
                        'allowedLiteralComparisonColumns': [
                            'string',
                        ],
                        'allowedColumnComparisonColumns': [
                            'string',
                        ]
                    }
                }
            }
        },
        'analysisRuleType': 'CUSTOM',
        'createTime': datetime(2015, 1, 1),
        'updateTime': datetime(2015, 1, 1)
    }
}

Response Structure

  • (dict) --

    • analysisRule (dict) --

      The analysis rule for the intermediate table.

      • intermediateTableIdentifier (string) --

        The unique identifier of the intermediate table associated with this analysis rule.

      • intermediateTableArn (string) --

        The Amazon Resource Name (ARN) of the intermediate table associated with this analysis rule.

      • analysisRulePolicy (dict) --

        The policy of the analysis rule.

        • v1 (dict) --

          The version 1 policy for the analysis rule.

          • custom (dict) --

            The custom analysis rule policy.

            • allowedAnalyses (list) --

              The list of allowed analyses that can be performed on the intermediate table.

              • (string) --

            • additionalAnalyses (string) --

              The setting that controls whether additional analyses are allowed on the intermediate table.

            • allowedAdditionalAnalyses (list) --

              The list of allowed additional analyses for the intermediate table.

              • (string) --

            • allowedAnalysisProviders (list) --

              The list of Amazon Web Services account IDs for the allowed analysis providers.

              • (string) --

            • allowedResultReceivers (list) --

              The list of Amazon Web Services account IDs that are allowed to receive results from queries run on the intermediate table.

              • (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.

            • disallowedOutputColumns (list) --

              The list of columns that are not allowed in the query output.

              • (string) --

            • 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 allowedAnalyses allows 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 uses minimumIdentityCount.

                  • (dict) --

                    Specifies the minimum number of distinct identities for an individual output column. This value overrides the table-wide minimumIdentityCount that you set in AggregationThreshold.

                    • 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 as SUM(amount), or a constant. Clean Rooms rejects a query that transforms a column and then aggregates it, such as SUM(amount * 2) or SUM(ROUND(amount)).

                  ANY_EXPRESSION – A query can aggregate any expression. This includes arithmetic, such as SUM(price * quantity); a cast, such as SUM(CAST(amount AS DECIMAL)); a nested function call, such as SUM(COALESCE(amount, 0)); and a conditional, such as SUM(CASE WHEN region = 'EU' THEN amount ELSE 0 END).

            • comparisonControls (dict) --

              The controls that restrict how a query can compare the columns in the intermediate table. You can't use comparison controls with differential privacy, or when allowedAnalyses allows 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) --

      • analysisRuleType (string) --

        The type of the analysis rule.

      • createTime (datetime) --

        The time the analysis rule was created.

      • updateTime (datetime) --

        The time the analysis rule was last updated.

GetSchemaAnalysisRule (updated) Link ¶
Changes (response)
{'analysisRule': {'consolidatedPolicy': {'v1': {'custom': {'aggregationThresholds': [{'allowedAggregateExpressionType': 'COLUMNS_ONLY '
                                                                                                                        '| '
                                                                                                                        'ANY_EXPRESSION',
                                                                                      'identityColumns': ['string'],
                                                                                      'minimumIdentityCount': 'integer',
                                                                                      'outputColumnThresholds': [{'minimumIdentityCount': 'integer',
                                                                                                                  'outputColumnName': 'string'}],
                                                                                      'type': 'COUNT_DISTINCT'}],
                                                           'comparisonControls': {'allowedColumnComparisonColumns': ['string'],
                                                                                  'allowedLiteralComparisonColumns': ['string']}}}},
                  'policy': {'v1': {'custom': {'aggregationThresholds': [{'allowedAggregateExpressionType': 'COLUMNS_ONLY '
                                                                                                            '| '
                                                                                                            'ANY_EXPRESSION',
                                                                          'identityColumns': ['string'],
                                                                          'minimumIdentityCount': 'integer',
                                                                          'outputColumnThresholds': [{'minimumIdentityCount': 'integer',
                                                                                                      'outputColumnName': 'string'}],
                                                                          'type': 'COUNT_DISTINCT'}],
                                               'comparisonControls': {'allowedColumnComparisonColumns': ['string'],
                                                                      'allowedLiteralComparisonColumns': ['string']}}}}}}

Retrieves a schema analysis rule.

See also: AWS API Documentation

Request Syntax

client.get_schema_analysis_rule(
    collaborationIdentifier='string',
    name='string',
    type='AGGREGATION'|'LIST'|'CUSTOM'|'ID_MAPPING_TABLE'
)
type collaborationIdentifier:

string

param collaborationIdentifier:

[REQUIRED]

A unique identifier for the collaboration that the schema belongs to. Currently accepts a collaboration ID.

type name:

string

param name:

[REQUIRED]

The name of the schema to retrieve the analysis rule for.

type type:

string

param type:

[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.

rtype:

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.

        • v1 (dict) --

          Controls on the query specifications that can be run on configured table.

          • 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 additionalAnalyses parameter 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 allowedAnalyses is ANY_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 allowedAnalyses allows 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 uses minimumIdentityCount.

                  • (dict) --

                    Specifies the minimum number of distinct identities for an individual output column. This value overrides the table-wide minimumIdentityCount that you set in AggregationThreshold.

                    • 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 as SUM(amount), or a constant. Clean Rooms rejects a query that transforms a column and then aggregates it, such as SUM(amount * 2) or SUM(ROUND(amount)).

                  ANY_EXPRESSION – A query can aggregate any expression. This includes arithmetic, such as SUM(price * quantity); a cast, such as SUM(CAST(amount AS DECIMAL)); a nested function call, such as SUM(COALESCE(amount, 0)); and a conditional, such as SUM(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 allowedAnalyses allows 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.

                • 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.

        • v1 (dict) --

          The policy for the configured table association analysis rule.

          • 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 allowedAdditionalAnalyses parameter 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.

        • v1 (dict) --

          The consolidated policy version 1.

          • 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 uses minimumIdentityCount.

                  • (dict) --

                    Specifies the minimum number of distinct identities for an individual output column. This value overrides the table-wide minimumIdentityCount that you set in AggregationThreshold.

                    • 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 as SUM(amount), or a constant. Clean Rooms rejects a query that transforms a column and then aggregates it, such as SUM(amount * 2) or SUM(ROUND(amount)).

                  ANY_EXPRESSION – A query can aggregate any expression. This includes arithmetic, such as SUM(price * quantity); a cast, such as SUM(CAST(amount AS DECIMAL)); a nested function call, such as SUM(COALESCE(amount, 0)); and a conditional, such as SUM(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) --

UpdateConfiguredTableAnalysisRule (updated) Link ¶
Changes (request, response)
Request
{'analysisRulePolicy': {'v1': {'custom': {'aggregationThresholds': [{'allowedAggregateExpressionType': 'COLUMNS_ONLY '
                                                                                                       '| '
                                                                                                       'ANY_EXPRESSION',
                                                                     'identityColumns': ['string'],
                                                                     'minimumIdentityCount': 'integer',
                                                                     'outputColumnThresholds': [{'minimumIdentityCount': 'integer',
                                                                                                 'outputColumnName': 'string'}],
                                                                     'type': 'COUNT_DISTINCT'}],
                                          'comparisonControls': {'allowedColumnComparisonColumns': ['string'],
                                                                 'allowedLiteralComparisonColumns': ['string']}}}}}
Response
{'analysisRule': {'policy': {'v1': {'custom': {'aggregationThresholds': [{'allowedAggregateExpressionType': 'COLUMNS_ONLY '
                                                                                                            '| '
                                                                                                            'ANY_EXPRESSION',
                                                                          'identityColumns': ['string'],
                                                                          'minimumIdentityCount': 'integer',
                                                                          'outputColumnThresholds': [{'minimumIdentityCount': 'integer',
                                                                                                      'outputColumnName': 'string'}],
                                                                          'type': 'COUNT_DISTINCT'}],
                                               'comparisonControls': {'allowedColumnComparisonColumns': ['string'],
                                                                      'allowedLiteralComparisonColumns': ['string']}}}}}}

Updates a configured table analysis rule.

See also: AWS API Documentation

Request Syntax

client.update_configured_table_analysis_rule(
    configuredTableIdentifier='string',
    analysisRuleType='AGGREGATION'|'LIST'|'CUSTOM',
    analysisRulePolicy={
        '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',
                ]
            }
        }
    }
)
type configuredTableIdentifier:

string

param configuredTableIdentifier:

[REQUIRED]

The unique identifier for the configured table that the analysis rule applies to. Currently accepts the configured table ID.

type analysisRuleType:

string

param analysisRuleType:

[REQUIRED]

The analysis rule type to be updated. Configured table analysis rules are uniquely identified by their configured table identifier and analysis rule type.

type analysisRulePolicy:

dict

param analysisRulePolicy:

[REQUIRED]

The new analysis rule policy for the configured table analysis rule.

  • v1 (dict) --

    Controls on the query specifications that can be run on a configured table.

    • list (dict) --

      Analysis rule type that enables only list queries on a configured table.

      • joinColumns (list) -- [REQUIRED]

        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) -- [REQUIRED]

        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) -- [REQUIRED]

        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) -- [REQUIRED]

            Column names in configured table of aggregate columns.

            • (string) --

          • function (string) -- [REQUIRED]

            Aggregation function that can be applied to aggregate column in query.

      • joinColumns (list) -- [REQUIRED]

        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) -- [REQUIRED]

        The columns that query runners are allowed to select, group by, or filter by.

        • (string) --

      • scalarFunctions (list) -- [REQUIRED]

        Set of scalar functions that are allowed to be used on dimension columns and the output of aggregation of metrics.

        • (string) --

      • outputConstraints (list) -- [REQUIRED]

        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) -- [REQUIRED]

            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) -- [REQUIRED]

            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) -- [REQUIRED]

            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 additionalAnalyses parameter is currently supported for the list analysis rule ( AnalysisRuleList) and the custom analysis rule ( AnalysisRuleCustom).

    • custom (dict) --

      A type of analysis rule that enables the table owner to approve custom SQL queries on their configured tables. It supports differential privacy, minimum aggregation thresholds, and comparison controls.

      • allowedAnalyses (list) -- [REQUIRED]

        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 allowedAnalyses is ANY_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) -- [REQUIRED]

          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) -- [REQUIRED]

              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 allowedAnalyses allows only jobs.

        • (dict) --

          Specifies the minimum number of distinct identities that each query output group must represent.

          • identityColumns (list) -- [REQUIRED]

            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) -- [REQUIRED]

            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) -- [REQUIRED]

            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 uses minimumIdentityCount.

            • (dict) --

              Specifies the minimum number of distinct identities for an individual output column. This value overrides the table-wide minimumIdentityCount that you set in AggregationThreshold.

              • outputColumnName (string) -- [REQUIRED]

                The name of the output column that the override applies to. You can specify each column only once.

              • minimumIdentityCount (integer) -- [REQUIRED]

                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) -- [REQUIRED]

            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 as SUM(amount), or a constant. Clean Rooms rejects a query that transforms a column and then aggregates it, such as SUM(amount * 2) or SUM(ROUND(amount)).

            ANY_EXPRESSION – A query can aggregate any expression. This includes arithmetic, such as SUM(price * quantity); a cast, such as SUM(CAST(amount AS DECIMAL)); a nested function call, such as SUM(COALESCE(amount, 0)); and a conditional, such as SUM(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 allowedAnalyses allows only jobs.

        • allowedLiteralComparisonColumns (list) -- [REQUIRED]

          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) -- [REQUIRED]

          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) --

rtype:

dict

returns:

Response Syntax

{
    'analysisRule': {
        'configuredTableId': 'string',
        'configuredTableArn': 'string',
        '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',
                    ]
                }
            }
        },
        'type': 'AGGREGATION'|'LIST'|'CUSTOM',
        'createTime': datetime(2015, 1, 1),
        'updateTime': datetime(2015, 1, 1)
    }
}

Response Structure

  • (dict) --

    • analysisRule (dict) --

      The entire updated analysis rule.

      • configuredTableId (string) --

        The unique ID for the configured table.

      • configuredTableArn (string) --

        The unique ARN for the configured table.

      • policy (dict) --

        The policy that controls SQL query rules.

        • v1 (dict) --

          Controls on the query specifications that can be run on a configured table.

          • 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 additionalAnalyses parameter is currently supported for the list analysis rule ( AnalysisRuleList) and the custom analysis rule ( AnalysisRuleCustom).

          • custom (dict) --

            A type of analysis rule that enables the table owner to approve custom SQL queries on their configured tables. It supports differential privacy, minimum aggregation thresholds, and comparison controls.

            • 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 allowedAnalyses is ANY_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 allowedAnalyses allows 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 uses minimumIdentityCount.

                  • (dict) --

                    Specifies the minimum number of distinct identities for an individual output column. This value overrides the table-wide minimumIdentityCount that you set in AggregationThreshold.

                    • 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 as SUM(amount), or a constant. Clean Rooms rejects a query that transforms a column and then aggregates it, such as SUM(amount * 2) or SUM(ROUND(amount)).

                  ANY_EXPRESSION – A query can aggregate any expression. This includes arithmetic, such as SUM(price * quantity); a cast, such as SUM(CAST(amount AS DECIMAL)); a nested function call, such as SUM(COALESCE(amount, 0)); and a conditional, such as SUM(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 allowedAnalyses allows 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) --

      • type (string) --

        The type of configured table analysis rule.

      • createTime (datetime) --

        The time the configured table analysis rule was created.

      • updateTime (datetime) --

        The time the configured table analysis rule was last updated.

UpdateIntermediateTableAnalysisRule (updated) Link ¶
Changes (request, response)
Request
{'analysisRulePolicy': {'v1': {'custom': {'aggregationThresholds': [{'allowedAggregateExpressionType': 'COLUMNS_ONLY '
                                                                                                       '| '
                                                                                                       'ANY_EXPRESSION',
                                                                     'identityColumns': ['string'],
                                                                     'minimumIdentityCount': 'integer',
                                                                     'outputColumnThresholds': [{'minimumIdentityCount': 'integer',
                                                                                                 'outputColumnName': 'string'}],
                                                                     'type': 'COUNT_DISTINCT'}],
                                          'comparisonControls': {'allowedColumnComparisonColumns': ['string'],
                                                                 'allowedLiteralComparisonColumns': ['string']}}}}}
Response
{'analysisRule': {'analysisRulePolicy': {'v1': {'custom': {'aggregationThresholds': [{'allowedAggregateExpressionType': 'COLUMNS_ONLY '
                                                                                                                        '| '
                                                                                                                        'ANY_EXPRESSION',
                                                                                      'identityColumns': ['string'],
                                                                                      'minimumIdentityCount': 'integer',
                                                                                      'outputColumnThresholds': [{'minimumIdentityCount': 'integer',
                                                                                                                  'outputColumnName': 'string'}],
                                                                                      'type': 'COUNT_DISTINCT'}],
                                                           'comparisonControls': {'allowedColumnComparisonColumns': ['string'],
                                                                                  'allowedLiteralComparisonColumns': ['string']}}}}}}

Updates the analysis rule policy for an intermediate table. Only the intermediate table owner can call this operation.

See also: AWS API Documentation

Request Syntax

client.update_intermediate_table_analysis_rule(
    membershipIdentifier='string',
    intermediateTableIdentifier='string',
    analysisRuleType='CUSTOM',
    analysisRulePolicy={
        'v1': {
            'custom': {
                'allowedAnalyses': [
                    'string',
                ],
                'additionalAnalyses': 'ALLOWED'|'REQUIRED'|'NOT_ALLOWED',
                'allowedAdditionalAnalyses': [
                    'string',
                ],
                'allowedAnalysisProviders': [
                    'string',
                ],
                'allowedResultReceivers': [
                    'string',
                ],
                'differentialPrivacy': {
                    'columns': [
                        {
                            'name': 'string'
                        },
                    ]
                },
                'disallowedOutputColumns': [
                    'string',
                ],
                'aggregationThresholds': [
                    {
                        'identityColumns': [
                            'string',
                        ],
                        'minimumIdentityCount': 123,
                        'type': 'COUNT_DISTINCT',
                        'outputColumnThresholds': [
                            {
                                'outputColumnName': 'string',
                                'minimumIdentityCount': 123
                            },
                        ],
                        'allowedAggregateExpressionType': 'COLUMNS_ONLY'|'ANY_EXPRESSION'
                    },
                ],
                'comparisonControls': {
                    'allowedLiteralComparisonColumns': [
                        'string',
                    ],
                    'allowedColumnComparisonColumns': [
                        'string',
                    ]
                }
            }
        }
    }
)
type membershipIdentifier:

string

param membershipIdentifier:

[REQUIRED]

The unique identifier of the membership that contains the intermediate table.

type intermediateTableIdentifier:

string

param intermediateTableIdentifier:

[REQUIRED]

The unique identifier of the intermediate table for which to update the analysis rule.

type analysisRuleType:

string

param analysisRuleType:

[REQUIRED]

The type of analysis rule to update. Currently, only CUSTOM is supported.

type analysisRulePolicy:

dict

param analysisRulePolicy:

[REQUIRED]

The updated analysis rule policy for the intermediate table.

  • v1 (dict) --

    The version 1 policy for the analysis rule.

    • custom (dict) --

      The custom analysis rule policy.

      • allowedAnalyses (list) --

        The list of allowed analyses that can be performed on the intermediate table.

        • (string) --

      • additionalAnalyses (string) --

        The setting that controls whether additional analyses are allowed on the intermediate table.

      • allowedAdditionalAnalyses (list) --

        The list of allowed additional analyses for the intermediate table.

        • (string) --

      • allowedAnalysisProviders (list) --

        The list of Amazon Web Services account IDs for the allowed analysis providers.

        • (string) --

      • allowedResultReceivers (list) --

        The list of Amazon Web Services account IDs that are allowed to receive results from queries run on the intermediate table.

        • (string) --

      • differentialPrivacy (dict) --

        Specifies the unique identifier for your users.

        • columns (list) -- [REQUIRED]

          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) -- [REQUIRED]

              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.

      • disallowedOutputColumns (list) --

        The list of columns that are not allowed in the query output.

        • (string) --

      • 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 allowedAnalyses allows only jobs.

        • (dict) --

          Specifies the minimum number of distinct identities that each query output group must represent.

          • identityColumns (list) -- [REQUIRED]

            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) -- [REQUIRED]

            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) -- [REQUIRED]

            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 uses minimumIdentityCount.

            • (dict) --

              Specifies the minimum number of distinct identities for an individual output column. This value overrides the table-wide minimumIdentityCount that you set in AggregationThreshold.

              • outputColumnName (string) -- [REQUIRED]

                The name of the output column that the override applies to. You can specify each column only once.

              • minimumIdentityCount (integer) -- [REQUIRED]

                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) -- [REQUIRED]

            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 as SUM(amount), or a constant. Clean Rooms rejects a query that transforms a column and then aggregates it, such as SUM(amount * 2) or SUM(ROUND(amount)).

            ANY_EXPRESSION – A query can aggregate any expression. This includes arithmetic, such as SUM(price * quantity); a cast, such as SUM(CAST(amount AS DECIMAL)); a nested function call, such as SUM(COALESCE(amount, 0)); and a conditional, such as SUM(CASE WHEN region = 'EU' THEN amount ELSE 0 END).

      • comparisonControls (dict) --

        The controls that restrict how a query can compare the columns in the intermediate table. You can't use comparison controls with differential privacy, or when allowedAnalyses allows only jobs.

        • allowedLiteralComparisonColumns (list) -- [REQUIRED]

          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) -- [REQUIRED]

          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) --

rtype:

dict

returns:

Response Syntax

{
    'analysisRule': {
        'intermediateTableIdentifier': 'string',
        'intermediateTableArn': 'string',
        'analysisRulePolicy': {
            'v1': {
                'custom': {
                    'allowedAnalyses': [
                        'string',
                    ],
                    'additionalAnalyses': 'ALLOWED'|'REQUIRED'|'NOT_ALLOWED',
                    'allowedAdditionalAnalyses': [
                        'string',
                    ],
                    'allowedAnalysisProviders': [
                        'string',
                    ],
                    'allowedResultReceivers': [
                        'string',
                    ],
                    'differentialPrivacy': {
                        'columns': [
                            {
                                'name': 'string'
                            },
                        ]
                    },
                    'disallowedOutputColumns': [
                        'string',
                    ],
                    'aggregationThresholds': [
                        {
                            'identityColumns': [
                                'string',
                            ],
                            'minimumIdentityCount': 123,
                            'type': 'COUNT_DISTINCT',
                            'outputColumnThresholds': [
                                {
                                    'outputColumnName': 'string',
                                    'minimumIdentityCount': 123
                                },
                            ],
                            'allowedAggregateExpressionType': 'COLUMNS_ONLY'|'ANY_EXPRESSION'
                        },
                    ],
                    'comparisonControls': {
                        'allowedLiteralComparisonColumns': [
                            'string',
                        ],
                        'allowedColumnComparisonColumns': [
                            'string',
                        ]
                    }
                }
            }
        },
        'analysisRuleType': 'CUSTOM',
        'createTime': datetime(2015, 1, 1),
        'updateTime': datetime(2015, 1, 1)
    }
}

Response Structure

  • (dict) --

    • analysisRule (dict) --

      The updated analysis rule for the intermediate table.

      • intermediateTableIdentifier (string) --

        The unique identifier of the intermediate table associated with this analysis rule.

      • intermediateTableArn (string) --

        The Amazon Resource Name (ARN) of the intermediate table associated with this analysis rule.

      • analysisRulePolicy (dict) --

        The policy of the analysis rule.

        • v1 (dict) --

          The version 1 policy for the analysis rule.

          • custom (dict) --

            The custom analysis rule policy.

            • allowedAnalyses (list) --

              The list of allowed analyses that can be performed on the intermediate table.

              • (string) --

            • additionalAnalyses (string) --

              The setting that controls whether additional analyses are allowed on the intermediate table.

            • allowedAdditionalAnalyses (list) --

              The list of allowed additional analyses for the intermediate table.

              • (string) --

            • allowedAnalysisProviders (list) --

              The list of Amazon Web Services account IDs for the allowed analysis providers.

              • (string) --

            • allowedResultReceivers (list) --

              The list of Amazon Web Services account IDs that are allowed to receive results from queries run on the intermediate table.

              • (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.

            • disallowedOutputColumns (list) --

              The list of columns that are not allowed in the query output.

              • (string) --

            • 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 allowedAnalyses allows 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 uses minimumIdentityCount.

                  • (dict) --

                    Specifies the minimum number of distinct identities for an individual output column. This value overrides the table-wide minimumIdentityCount that you set in AggregationThreshold.

                    • 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 as SUM(amount), or a constant. Clean Rooms rejects a query that transforms a column and then aggregates it, such as SUM(amount * 2) or SUM(ROUND(amount)).

                  ANY_EXPRESSION – A query can aggregate any expression. This includes arithmetic, such as SUM(price * quantity); a cast, such as SUM(CAST(amount AS DECIMAL)); a nested function call, such as SUM(COALESCE(amount, 0)); and a conditional, such as SUM(CASE WHEN region = 'EU' THEN amount ELSE 0 END).

            • comparisonControls (dict) --

              The controls that restrict how a query can compare the columns in the intermediate table. You can't use comparison controls with differential privacy, or when allowedAnalyses allows 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) --

      • analysisRuleType (string) --

        The type of the analysis rule.

      • createTime (datetime) --

        The time the analysis rule was created.

      • updateTime (datetime) --

        The time the analysis rule was last updated.