:doc:`CleanRoomsService <../../cleanrooms>` / Client / update_configured_table_analysis_rule

*************************************
update_configured_table_analysis_rule
*************************************



.. py:method:: CleanRoomsService.Client.update_configured_table_analysis_rule(**kwargs)

  

  Updates a configured table analysis rule.

  

  See also: `AWS API Documentation <https://docs.aws.amazon.com/goto/WebAPI/cleanrooms-2022-02-17/UpdateConfiguredTableAnalysisRule>`_  


  **Request Syntax**
  ::

    response = 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'
                            },
                        ]
                    }
                }
            }
        }
    )
    
  :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) --* 

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

        

      
        - **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 diﬀerential privacy for two or more tables in a collaboration, you must conﬁgure the same column as the user identiﬁer 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',
                          ],
                          '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'
                                  },
                              ]
                          }
                      }
                  }
              },
              '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) --* 
            
              

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

              
              

              - **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 diﬀerential privacy for two or more tables in a collaboration, you must conﬁgure the same column as the user identiﬁer 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.

          
    
  
  **Exceptions**
  
  *   :py:class:`CleanRoomsService.Client.exceptions.ConflictException`

  
  *   :py:class:`CleanRoomsService.Client.exceptions.ResourceNotFoundException`

  
  *   :py:class:`CleanRoomsService.Client.exceptions.InternalServerException`

  
  *   :py:class:`CleanRoomsService.Client.exceptions.ValidationException`

  
  *   :py:class:`CleanRoomsService.Client.exceptions.ThrottlingException`

  
  *   :py:class:`CleanRoomsService.Client.exceptions.AccessDeniedException`

  