:doc:`DataZone <../../datazone>` / Client / list_rules

**********
list_rules
**********



.. py:method:: DataZone.Client.list_rules(**kwargs)

  

  Lists existing rules. In Amazon DataZone, a rule is a formal agreement that enforces specific requirements across user workflows (e.g., publishing assets to the catalog, requesting subscriptions, creating projects) within the Amazon DataZone data portal. These rules help maintain consistency, ensure compliance, and uphold governance standards in data management processes. For instance, a metadata enforcement rule can specify the required information for creating a subscription request or publishing a data asset to the catalog, ensuring alignment with organizational standards.

  

  See also: `AWS API Documentation <https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/ListRules>`_  


  **Request Syntax**
  ::

    response = client.list_rules(
        domainIdentifier='string',
        targetType='DOMAIN_UNIT',
        targetIdentifier='string',
        ruleType='METADATA_FORM_ENFORCEMENT'|'GLOSSARY_TERM_ENFORCEMENT',
        action='CREATE_LISTING_CHANGE_SET'|'CREATE_SUBSCRIPTION_REQUEST',
        projectIds=[
            'string',
        ],
        assetTypes=[
            'string',
        ],
        dataProduct=True|False,
        includeCascaded=True|False,
        maxResults=123,
        nextToken='string'
    )
    
  :type domainIdentifier: string
  :param domainIdentifier: **[REQUIRED]** 

    The ID of the domain in which the rules are to be listed.

    

  
  :type targetType: string
  :param targetType: **[REQUIRED]** 

    The target type of the rule.

    

  
  :type targetIdentifier: string
  :param targetIdentifier: **[REQUIRED]** 

    The target ID of the rule.

    

  
  :type ruleType: string
  :param ruleType: 

    The type of the rule.

    

  
  :type action: string
  :param action: 

    The action of the rule.

    

  
  :type projectIds: list
  :param projectIds: 

    The IDs of projects in which rules are to be listed.

    

  
    - *(string) --* 

    

  :type assetTypes: list
  :param assetTypes: 

    The asset types of the rule.

    

  
    - *(string) --* 

    

  :type dataProduct: boolean
  :param dataProduct: 

    The data product of the rule.

    

  
  :type includeCascaded: boolean
  :param includeCascaded: 

    Specifies whether to include cascading rules in the results.

    

  
  :type maxResults: integer
  :param maxResults: 

    The maximum number of rules to return in a single call to ``ListRules``. When the number of rules to be listed is greater than the value of ``MaxResults``, the response contains a ``NextToken`` value that you can use in a subsequent call to ``ListRules`` to list the next set of rules.

    

  
  :type nextToken: string
  :param nextToken: 

    When the number of rules is greater than the default value for the ``MaxResults`` parameter, or if you explicitly specify a value for ``MaxResults`` that is less than the number of rules, the response includes a pagination token named ``NextToken``. You can specify this ``NextToken`` value in a subsequent call to ``ListRules`` to list the next set of rules.

    

  
  
  :rtype: dict
  :returns: 
    
    **Response Syntax**

    
    ::

      {
          'items': [
              {
                  'identifier': 'string',
                  'revision': 'string',
                  'ruleType': 'METADATA_FORM_ENFORCEMENT'|'GLOSSARY_TERM_ENFORCEMENT',
                  'name': 'string',
                  'targetType': 'DOMAIN_UNIT',
                  'target': {
                      'domainUnitTarget': {
                          'domainUnitId': 'string',
                          'includeChildDomainUnits': True|False
                      }
                  },
                  'action': 'CREATE_LISTING_CHANGE_SET'|'CREATE_SUBSCRIPTION_REQUEST',
                  'scope': {
                      'assetType': {
                          'selectionMode': 'ALL'|'SPECIFIC',
                          'specificAssetTypes': [
                              'string',
                          ]
                      },
                      'dataProduct': True|False,
                      'project': {
                          'selectionMode': 'ALL'|'SPECIFIC',
                          'specificProjects': [
                              'string',
                          ]
                      }
                  },
                  'updatedAt': datetime(2015, 1, 1),
                  'lastUpdatedBy': 'string'
              },
          ],
          'nextToken': 'string'
      }
      
    **Response Structure**

    

    - *(dict) --* 
      

      - **items** *(list) --* 

        The results of the ``ListRules`` action.

        
        

        - *(dict) --* 

          The summary of the rule.

          
          

          - **identifier** *(string) --* 

            The ID of the rule.

            
          

          - **revision** *(string) --* 

            The revision of the rule.

            
          

          - **ruleType** *(string) --* 

            The type of the rule.

            
          

          - **name** *(string) --* 

            The name of the rule.

            
          

          - **targetType** *(string) --* 

            The target type of the rule.

            
          

          - **target** *(dict) --* 

            The target of the rule.

            .. note::    This is a Tagged Union structure. Only one of the     following top level keys will be set: ``domainUnitTarget``.     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'}


          
            

            - **domainUnitTarget** *(dict) --* 

              The ID of the domain unit.

              
              

              - **domainUnitId** *(string) --* 

                The ID of the domain unit.

                
              

              - **includeChildDomainUnits** *(boolean) --* 

                Specifies whether to apply a rule to the child domain units.

                
          
        
          

          - **action** *(string) --* 

            The action of the rule.

            
          

          - **scope** *(dict) --* 

            The scope of the rule.

            
            

            - **assetType** *(dict) --* 

              The asset type included in the rule scope.

              
              

              - **selectionMode** *(string) --* 

                The selection mode for the rule.

                
              

              - **specificAssetTypes** *(list) --* 

                The specific asset types that are included in the rule.

                
                

                - *(string) --* 
            
          
            

            - **dataProduct** *(boolean) --* 

              The data product included in the rule scope.

              
            

            - **project** *(dict) --* 

              The project included in the rule scope.

              
              

              - **selectionMode** *(string) --* 

                The selection mode of the rule.

                
              

              - **specificProjects** *(list) --* 

                The specific projects in which the rule is created.

                
                

                - *(string) --* 
            
          
        
          

          - **updatedAt** *(datetime) --* 

            The timestamp at which the rule was last updated.

            
          

          - **lastUpdatedBy** *(string) --* 

            The timestamp at which the rule was last updated.

            
      
    
      

      - **nextToken** *(string) --* 

        When the number of rules is greater than the default value for the ``MaxResults`` parameter, or if you explicitly specify a value for ``MaxResults`` that is less than the number of rules, the response includes a pagination token named ``NextToken``. You can specify this ``NextToken`` value in a subsequent call to ``ListRules`` to list the next set of rules.

        
  
  **Exceptions**
  
  *   :py:class:`DataZone.Client.exceptions.InternalServerException`

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

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

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

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

  
  *   :py:class:`DataZone.Client.exceptions.UnauthorizedException`

  