AWS Clean Rooms Service

2024/04/04 - AWS Clean Rooms Service - 1 new 6 updated api methods

Changes  Feature: New schemaStatusDetails field to the existing Schema object that displays a status on Schema API responses to show whether a schema is queryable or not. New BatchGetSchemaAnalysisRule API to retrieve multiple schemaAnalysisRules using a single API call.

BatchGetSchemaAnalysisRule (new) Link ¶

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'
        },
    ]
)
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',
            'name': 'string',
            'createTime': datetime(2015, 1, 1),
            'updateTime': datetime(2015, 1, 1),
            'policy': {
                'v1': {
                    'list': {
                        'joinColumns': [
                            'string',
                        ],
                        'allowedJoinOperators': [
                            'OR'|'AND',
                        ],
                        'listColumns': [
                            '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'
                            },
                        ]
                    },
                    'custom': {
                        'allowedAnalyses': [
                            'string',
                        ],
                        'allowedAnalysisProviders': [
                            'string',
                        ],
                        'differentialPrivacy': {
                            'columns': [
                                {
                                    'name': 'string'
                                },
                            ]
                        }
                    }
                }
            }
        },
    ],
    'errors': [
        {
            'name': 'string',
            'type': 'AGGREGATION'|'LIST'|'CUSTOM',
            '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.

          Note

          This is a Tagged Union structure. Only one of the following top level keys will be set: v1. If a client receives an unknown member it will set SDK_UNKNOWN_MEMBER as the top level key, which maps to the name or tag of the unknown member. The structure of SDK_UNKNOWN_MEMBER is as follows:

          'SDK_UNKNOWN_MEMBER': {'name': 'UnknownMemberName'}
          • v1 (dict) --

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

            Note

            This is a Tagged Union structure. Only one of the following top level keys will be set: list, aggregation, custom. If a client receives an unknown member it will set SDK_UNKNOWN_MEMBER as the top level key, which maps to the name or tag of the unknown member. The structure of SDK_UNKNOWN_MEMBER is as follows:

            'SDK_UNKNOWN_MEMBER': {'name': 'UnknownMemberName'}
            • list (dict) --

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

              • joinColumns (list) --

                Columns that can be used to join a configured table with the table of the member who can query and other members' configured tables.

                • (string) --

              • allowedJoinOperators (list) --

                The logical operators (if any) that are to be used in an INNER JOIN match condition. Default is AND .

                • (string) --

              • listColumns (list) --

                Columns that can be listed in the output.

                • (string) --

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

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

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

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

BatchGetSchema (updated) Link ¶
Changes (response)
{'schemas': {'schemaStatusDetails': [{'analysisRuleType': 'AGGREGATION | LIST '
                                                          '| CUSTOM',
                                      'configurations': ['DIFFERENTIAL_PRIVACY'],
                                      'reasons': [{'code': 'ANALYSIS_RULE_MISSING '
                                                           '| '
                                                           'ANALYSIS_TEMPLATES_NOT_CONFIGURED '
                                                           '| '
                                                           'ANALYSIS_PROVIDERS_NOT_CONFIGURED '
                                                           '| '
                                                           'DIFFERENTIAL_PRIVACY_POLICY_NOT_CONFIGURED',
                                                   'message': 'string'}],
                                      'status': 'READY | NOT_READY'}]}}

Retrieves multiple schemas by their identifiers.

See also: AWS API Documentation

Request Syntax

client.batch_get_schema(
    collaborationIdentifier='string',
    names=[
        'string',
    ]
)
type collaborationIdentifier

string

param collaborationIdentifier

[REQUIRED]

A unique identifier for the collaboration that the schemas belong to. Currently accepts collaboration ID.

type names

list

param names

[REQUIRED]

The names for the schema objects to retrieve.

  • (string) --

rtype

dict

returns

Response Syntax

{
    'schemas': [
        {
            'columns': [
                {
                    'name': 'string',
                    'type': 'string'
                },
            ],
            'partitionKeys': [
                {
                    'name': 'string',
                    'type': 'string'
                },
            ],
            'analysisRuleTypes': [
                'AGGREGATION'|'LIST'|'CUSTOM',
            ],
            'analysisMethod': 'DIRECT_QUERY',
            'creatorAccountId': 'string',
            'name': 'string',
            'collaborationId': 'string',
            'collaborationArn': 'string',
            'description': 'string',
            'createTime': datetime(2015, 1, 1),
            'updateTime': datetime(2015, 1, 1),
            'type': 'TABLE',
            'schemaStatusDetails': [
                {
                    'status': 'READY'|'NOT_READY',
                    'reasons': [
                        {
                            'code': 'ANALYSIS_RULE_MISSING'|'ANALYSIS_TEMPLATES_NOT_CONFIGURED'|'ANALYSIS_PROVIDERS_NOT_CONFIGURED'|'DIFFERENTIAL_PRIVACY_POLICY_NOT_CONFIGURED',
                            'message': 'string'
                        },
                    ],
                    'analysisRuleType': 'AGGREGATION'|'LIST'|'CUSTOM',
                    'configurations': [
                        'DIFFERENTIAL_PRIVACY',
                    ]
                },
            ]
        },
    ],
    'errors': [
        {
            'name': 'string',
            'code': 'string',
            'message': 'string'
        },
    ]
}

Response Structure

  • (dict) --

    • schemas (list) --

      The retrieved list of schemas.

      • (dict) --

        A schema is a relation within a collaboration.

        • columns (list) --

          The columns for the relation this schema represents.

          • (dict) --

            A column within a schema relation, derived from the underlying Glue table.

            • name (string) --

              The name of the column.

            • type (string) --

              The type of the column.

        • partitionKeys (list) --

          The partition keys for the dataset underlying this schema.

          • (dict) --

            A column within a schema relation, derived from the underlying Glue table.

            • name (string) --

              The name of the column.

            • type (string) --

              The type of the column.

        • analysisRuleTypes (list) --

          The analysis rule types associated with the schema. Currently, only one entry is present.

          • (string) --

        • analysisMethod (string) --

          The analysis method for the schema. The only valid value is currently DIRECT_QUERY.

        • creatorAccountId (string) --

          The unique account ID for the Amazon Web Services account that owns the schema.

        • name (string) --

          A name for the schema. The schema relation is referred to by this name when queried by a protected query.

        • collaborationId (string) --

          The unique ID for the collaboration that the schema belongs to.

        • collaborationArn (string) --

          The unique ARN for the collaboration that the schema belongs to.

        • description (string) --

          A description for the schema.

        • createTime (datetime) --

          The time the schema was created.

        • updateTime (datetime) --

          The time the schema was last updated.

        • type (string) --

          The type of schema. The only valid value is currently TABLE.

        • schemaStatusDetails (list) --

          Details about the status of the schema. Currently, only one entry is present.

          • (dict) --

            Information about the schema status.

            A status of READY means that based on the schema analysis rule, queries of the given analysis rule type are properly configured to run queries on this schema.

            • status (string) --

              The status of the schema.

            • reasons (list) --

              The reasons why the schema status is set to its current state.

              • (dict) --

                A reason why the schema status is set to its current value.

                • code (string) --

                  The schema status reason code.

                • message (string) --

                  An explanation of the schema status reason code.

            • analysisRuleType (string) --

              The analysis rule type for which the schema status has been evaluated.

            • configurations (list) --

              The configuration details of the schema analysis rule for the given type.

              • (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 describing why a schema could not be fetched.

        • name (string) --

          An error name for the error.

        • code (string) --

          An error code for the error.

        • message (string) --

          An error message for the error.

CreateConfiguredTableAnalysisRule (updated) Link ¶
Changes (request, response)
Request
{'analysisRulePolicy': {'v1': {'aggregation': {'scalarFunctions': {'CONVERT',
                                                                   'CURRENT_DATE',
                                                                   'DATEADD',
                                                                   'EXTRACT',
                                                                   'GETDATE',
                                                                   'SUBSTRING',
                                                                   'TO_CHAR',
                                                                   'TO_DATE',
                                                                   'TO_NUMBER',
                                                                   'TO_TIMESTAMP',
                                                                   'TRIM'}}}}}
Response
{'analysisRule': {'policy': {'v1': {'aggregation': {'scalarFunctions': {'CONVERT',
                                                                        'CURRENT_DATE',
                                                                        'DATEADD',
                                                                        'EXTRACT',
                                                                        'GETDATE',
                                                                        'SUBSTRING',
                                                                        'TO_CHAR',
                                                                        'TO_DATE',
                                                                        'TO_NUMBER',
                                                                        'TO_TIMESTAMP',
                                                                        'TRIM'}}}}}}

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',
                ]
            },
            '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'
                    },
                ]
            },
            'custom': {
                'allowedAnalyses': [
                    'string',
                ],
                'allowedAnalysisProviders': [
                    'string',
                ],
                'differentialPrivacy': {
                    'columns': [
                        {
                            'name': '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 entire created configured table analysis rule object.

Note

This is a Tagged Union structure. Only one of the following top level keys can be set: v1.

  • v1 (dict) --

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

    Note

    This is a Tagged Union structure. Only one of the following top level keys can be set: list, aggregation, custom.

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

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

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

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

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

rtype

dict

returns

Response Syntax

{
    'analysisRule': {
        'configuredTableId': 'string',
        'configuredTableArn': 'string',
        'policy': {
            'v1': {
                'list': {
                    'joinColumns': [
                        'string',
                    ],
                    'allowedJoinOperators': [
                        'OR'|'AND',
                    ],
                    'listColumns': [
                        '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'
                        },
                    ]
                },
                'custom': {
                    'allowedAnalyses': [
                        'string',
                    ],
                    'allowedAnalysisProviders': [
                        'string',
                    ],
                    'differentialPrivacy': {
                        'columns': [
                            {
                                'name': 'string'
                            },
                        ]
                    }
                }
            }
        },
        'type': 'AGGREGATION'|'LIST'|'CUSTOM',
        'createTime': datetime(2015, 1, 1),
        'updateTime': datetime(2015, 1, 1)
    }
}

Response Structure

  • (dict) --

    • analysisRule (dict) --

      The entire created 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.

        Note

        This is a Tagged Union structure. Only one of the following top level keys will be set: v1. If a client receives an unknown member it will set SDK_UNKNOWN_MEMBER as the top level key, which maps to the name or tag of the unknown member. The structure of SDK_UNKNOWN_MEMBER is as follows:

        'SDK_UNKNOWN_MEMBER': {'name': 'UnknownMemberName'}
        • v1 (dict) --

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

          Note

          This is a Tagged Union structure. Only one of the following top level keys will be set: list, aggregation, custom. If a client receives an unknown member it will set SDK_UNKNOWN_MEMBER as the top level key, which maps to the name or tag of the unknown member. The structure of SDK_UNKNOWN_MEMBER is as follows:

          'SDK_UNKNOWN_MEMBER': {'name': 'UnknownMemberName'}
          • list (dict) --

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

            • joinColumns (list) --

              Columns that can be used to join a configured table with the table of the member who can query and other members' configured tables.

              • (string) --

            • allowedJoinOperators (list) --

              The logical operators (if any) that are to be used in an INNER JOIN match condition. Default is AND .

              • (string) --

            • listColumns (list) --

              Columns that can be listed in the output.

              • (string) --

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

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

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

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

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

GetConfiguredTableAnalysisRule (updated) Link ¶
Changes (response)
{'analysisRule': {'policy': {'v1': {'aggregation': {'scalarFunctions': {'CONVERT',
                                                                        'CURRENT_DATE',
                                                                        'DATEADD',
                                                                        'EXTRACT',
                                                                        'GETDATE',
                                                                        'SUBSTRING',
                                                                        'TO_CHAR',
                                                                        'TO_DATE',
                                                                        'TO_NUMBER',
                                                                        'TO_TIMESTAMP',
                                                                        'TRIM'}}}}}}

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',
                    ]
                },
                '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'
                        },
                    ]
                },
                'custom': {
                    'allowedAnalyses': [
                        'string',
                    ],
                    'allowedAnalysisProviders': [
                        'string',
                    ],
                    'differentialPrivacy': {
                        'columns': [
                            {
                                'name': '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.

        Note

        This is a Tagged Union structure. Only one of the following top level keys will be set: v1. If a client receives an unknown member it will set SDK_UNKNOWN_MEMBER as the top level key, which maps to the name or tag of the unknown member. The structure of SDK_UNKNOWN_MEMBER is as follows:

        'SDK_UNKNOWN_MEMBER': {'name': 'UnknownMemberName'}
        • v1 (dict) --

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

          Note

          This is a Tagged Union structure. Only one of the following top level keys will be set: list, aggregation, custom. If a client receives an unknown member it will set SDK_UNKNOWN_MEMBER as the top level key, which maps to the name or tag of the unknown member. The structure of SDK_UNKNOWN_MEMBER is as follows:

          'SDK_UNKNOWN_MEMBER': {'name': 'UnknownMemberName'}
          • list (dict) --

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

            • joinColumns (list) --

              Columns that can be used to join a configured table with the table of the member who can query and other members' configured tables.

              • (string) --

            • allowedJoinOperators (list) --

              The logical operators (if any) that are to be used in an INNER JOIN match condition. Default is AND .

              • (string) --

            • listColumns (list) --

              Columns that can be listed in the output.

              • (string) --

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

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

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

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

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

GetSchema (updated) Link ¶
Changes (response)
{'schema': {'schemaStatusDetails': [{'analysisRuleType': 'AGGREGATION | LIST | '
                                                         'CUSTOM',
                                     'configurations': ['DIFFERENTIAL_PRIVACY'],
                                     'reasons': [{'code': 'ANALYSIS_RULE_MISSING '
                                                          '| '
                                                          'ANALYSIS_TEMPLATES_NOT_CONFIGURED '
                                                          '| '
                                                          'ANALYSIS_PROVIDERS_NOT_CONFIGURED '
                                                          '| '
                                                          'DIFFERENTIAL_PRIVACY_POLICY_NOT_CONFIGURED',
                                                  'message': 'string'}],
                                     'status': 'READY | NOT_READY'}]}}

Retrieves the schema for a relation within a collaboration.

See also: AWS API Documentation

Request Syntax

client.get_schema(
    collaborationIdentifier='string',
    name='string'
)
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 relation to retrieve the schema for.

rtype

dict

returns

Response Syntax

{
    'schema': {
        'columns': [
            {
                'name': 'string',
                'type': 'string'
            },
        ],
        'partitionKeys': [
            {
                'name': 'string',
                'type': 'string'
            },
        ],
        'analysisRuleTypes': [
            'AGGREGATION'|'LIST'|'CUSTOM',
        ],
        'analysisMethod': 'DIRECT_QUERY',
        'creatorAccountId': 'string',
        'name': 'string',
        'collaborationId': 'string',
        'collaborationArn': 'string',
        'description': 'string',
        'createTime': datetime(2015, 1, 1),
        'updateTime': datetime(2015, 1, 1),
        'type': 'TABLE',
        'schemaStatusDetails': [
            {
                'status': 'READY'|'NOT_READY',
                'reasons': [
                    {
                        'code': 'ANALYSIS_RULE_MISSING'|'ANALYSIS_TEMPLATES_NOT_CONFIGURED'|'ANALYSIS_PROVIDERS_NOT_CONFIGURED'|'DIFFERENTIAL_PRIVACY_POLICY_NOT_CONFIGURED',
                        'message': 'string'
                    },
                ],
                'analysisRuleType': 'AGGREGATION'|'LIST'|'CUSTOM',
                'configurations': [
                    'DIFFERENTIAL_PRIVACY',
                ]
            },
        ]
    }
}

Response Structure

  • (dict) --

    • schema (dict) --

      The entire schema object.

      • columns (list) --

        The columns for the relation this schema represents.

        • (dict) --

          A column within a schema relation, derived from the underlying Glue table.

          • name (string) --

            The name of the column.

          • type (string) --

            The type of the column.

      • partitionKeys (list) --

        The partition keys for the dataset underlying this schema.

        • (dict) --

          A column within a schema relation, derived from the underlying Glue table.

          • name (string) --

            The name of the column.

          • type (string) --

            The type of the column.

      • analysisRuleTypes (list) --

        The analysis rule types associated with the schema. Currently, only one entry is present.

        • (string) --

      • analysisMethod (string) --

        The analysis method for the schema. The only valid value is currently DIRECT_QUERY.

      • creatorAccountId (string) --

        The unique account ID for the Amazon Web Services account that owns the schema.

      • name (string) --

        A name for the schema. The schema relation is referred to by this name when queried by a protected query.

      • collaborationId (string) --

        The unique ID for the collaboration that the schema belongs to.

      • collaborationArn (string) --

        The unique ARN for the collaboration that the schema belongs to.

      • description (string) --

        A description for the schema.

      • createTime (datetime) --

        The time the schema was created.

      • updateTime (datetime) --

        The time the schema was last updated.

      • type (string) --

        The type of schema. The only valid value is currently TABLE.

      • schemaStatusDetails (list) --

        Details about the status of the schema. Currently, only one entry is present.

        • (dict) --

          Information about the schema status.

          A status of READY means that based on the schema analysis rule, queries of the given analysis rule type are properly configured to run queries on this schema.

          • status (string) --

            The status of the schema.

          • reasons (list) --

            The reasons why the schema status is set to its current state.

            • (dict) --

              A reason why the schema status is set to its current value.

              • code (string) --

                The schema status reason code.

              • message (string) --

                An explanation of the schema status reason code.

          • analysisRuleType (string) --

            The analysis rule type for which the schema status has been evaluated.

          • configurations (list) --

            The configuration details of the schema analysis rule for the given type.

            • (string) --

GetSchemaAnalysisRule (updated) Link ¶
Changes (response)
{'analysisRule': {'policy': {'v1': {'aggregation': {'scalarFunctions': {'CONVERT',
                                                                        'CURRENT_DATE',
                                                                        'DATEADD',
                                                                        'EXTRACT',
                                                                        'GETDATE',
                                                                        'SUBSTRING',
                                                                        'TO_CHAR',
                                                                        'TO_DATE',
                                                                        'TO_NUMBER',
                                                                        'TO_TIMESTAMP',
                                                                        'TRIM'}}}}}}

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'
)
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',
        'name': 'string',
        'createTime': datetime(2015, 1, 1),
        'updateTime': datetime(2015, 1, 1),
        'policy': {
            'v1': {
                'list': {
                    'joinColumns': [
                        'string',
                    ],
                    'allowedJoinOperators': [
                        'OR'|'AND',
                    ],
                    'listColumns': [
                        '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'
                        },
                    ]
                },
                'custom': {
                    'allowedAnalyses': [
                        'string',
                    ],
                    'allowedAnalysisProviders': [
                        'string',
                    ],
                    'differentialPrivacy': {
                        'columns': [
                            {
                                'name': 'string'
                            },
                        ]
                    }
                }
            }
        }
    }
}

Response Structure

  • (dict) --

    • analysisRule (dict) --

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

      • collaborationId (string) --

        The unique ID for the associated collaboration.

      • type (string) --

        The type of analysis rule.

      • name (string) --

        The name for the analysis rule.

      • createTime (datetime) --

        The time the analysis rule was created.

      • updateTime (datetime) --

        The time the analysis rule was last updated.

      • policy (dict) --

        A policy that describes the associated data usage limitations.

        Note

        This is a Tagged Union structure. Only one of the following top level keys will be set: v1. If a client receives an unknown member it will set SDK_UNKNOWN_MEMBER as the top level key, which maps to the name or tag of the unknown member. The structure of SDK_UNKNOWN_MEMBER is as follows:

        'SDK_UNKNOWN_MEMBER': {'name': 'UnknownMemberName'}
        • v1 (dict) --

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

          Note

          This is a Tagged Union structure. Only one of the following top level keys will be set: list, aggregation, custom. If a client receives an unknown member it will set SDK_UNKNOWN_MEMBER as the top level key, which maps to the name or tag of the unknown member. The structure of SDK_UNKNOWN_MEMBER is as follows:

          'SDK_UNKNOWN_MEMBER': {'name': 'UnknownMemberName'}
          • list (dict) --

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

            • joinColumns (list) --

              Columns that can be used to join a configured table with the table of the member who can query and other members' configured tables.

              • (string) --

            • allowedJoinOperators (list) --

              The logical operators (if any) that are to be used in an INNER JOIN match condition. Default is AND .

              • (string) --

            • listColumns (list) --

              Columns that can be listed in the output.

              • (string) --

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

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

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

UpdateConfiguredTableAnalysisRule (updated) Link ¶
Changes (request, response)
Request
{'analysisRulePolicy': {'v1': {'aggregation': {'scalarFunctions': {'CONVERT',
                                                                   'CURRENT_DATE',
                                                                   'DATEADD',
                                                                   'EXTRACT',
                                                                   'GETDATE',
                                                                   'SUBSTRING',
                                                                   'TO_CHAR',
                                                                   'TO_DATE',
                                                                   'TO_NUMBER',
                                                                   'TO_TIMESTAMP',
                                                                   'TRIM'}}}}}
Response
{'analysisRule': {'policy': {'v1': {'aggregation': {'scalarFunctions': {'CONVERT',
                                                                        'CURRENT_DATE',
                                                                        'DATEADD',
                                                                        'EXTRACT',
                                                                        'GETDATE',
                                                                        'SUBSTRING',
                                                                        'TO_CHAR',
                                                                        'TO_DATE',
                                                                        'TO_NUMBER',
                                                                        'TO_TIMESTAMP',
                                                                        'TRIM'}}}}}}

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',
                ]
            },
            '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'
                    },
                ]
            },
            'custom': {
                'allowedAnalyses': [
                    'string',
                ],
                'allowedAnalysisProviders': [
                    'string',
                ],
                'differentialPrivacy': {
                    'columns': [
                        {
                            'name': '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.

Note

This is a Tagged Union structure. Only one of the following top level keys can be set: v1.

  • v1 (dict) --

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

    Note

    This is a Tagged Union structure. Only one of the following top level keys can be set: list, aggregation, custom.

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

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

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

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

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

rtype

dict

returns

Response Syntax

{
    'analysisRule': {
        'configuredTableId': 'string',
        'configuredTableArn': 'string',
        'policy': {
            'v1': {
                'list': {
                    'joinColumns': [
                        'string',
                    ],
                    'allowedJoinOperators': [
                        'OR'|'AND',
                    ],
                    'listColumns': [
                        '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'
                        },
                    ]
                },
                'custom': {
                    'allowedAnalyses': [
                        'string',
                    ],
                    'allowedAnalysisProviders': [
                        'string',
                    ],
                    'differentialPrivacy': {
                        'columns': [
                            {
                                'name': '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.

        Note

        This is a Tagged Union structure. Only one of the following top level keys will be set: v1. If a client receives an unknown member it will set SDK_UNKNOWN_MEMBER as the top level key, which maps to the name or tag of the unknown member. The structure of SDK_UNKNOWN_MEMBER is as follows:

        'SDK_UNKNOWN_MEMBER': {'name': 'UnknownMemberName'}
        • v1 (dict) --

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

          Note

          This is a Tagged Union structure. Only one of the following top level keys will be set: list, aggregation, custom. If a client receives an unknown member it will set SDK_UNKNOWN_MEMBER as the top level key, which maps to the name or tag of the unknown member. The structure of SDK_UNKNOWN_MEMBER is as follows:

          'SDK_UNKNOWN_MEMBER': {'name': 'UnknownMemberName'}
          • list (dict) --

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

            • joinColumns (list) --

              Columns that can be used to join a configured table with the table of the member who can query and other members' configured tables.

              • (string) --

            • allowedJoinOperators (list) --

              The logical operators (if any) that are to be used in an INNER JOIN match condition. Default is AND .

              • (string) --

            • listColumns (list) --

              Columns that can be listed in the output.

              • (string) --

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

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

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

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

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