:doc:`WAFRegional <../../waf-regional>` / Client / get_rate_based_rule

*******************
get_rate_based_rule
*******************



.. py:method:: WAFRegional.Client.get_rate_based_rule(**kwargs)

  

  .. note::

    

    This is **AWS WAF Classic** documentation. For more information, see `AWS WAF Classic <https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html>`__ in the developer guide.

     

    **For the latest version of AWS WAF**, use the AWS WAFV2 API and see the `AWS WAF Developer Guide <https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html>`__. With the latest version, AWS WAF has a single set of endpoints for regional and global use.

    

   

  Returns the  RateBasedRule that is specified by the ``RuleId`` that you included in the ``GetRateBasedRule`` request.

  

  See also: `AWS API Documentation <https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/GetRateBasedRule>`_  


  **Request Syntax**
  ::

    response = client.get_rate_based_rule(
        RuleId='string'
    )
    
  :type RuleId: string
  :param RuleId: **[REQUIRED]** 

    The ``RuleId`` of the  RateBasedRule that you want to get. ``RuleId`` is returned by  CreateRateBasedRule and by  ListRateBasedRules.

    

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

    
    ::

      {
          'Rule': {
              'RuleId': 'string',
              'Name': 'string',
              'MetricName': 'string',
              'MatchPredicates': [
                  {
                      'Negated': True|False,
                      'Type': 'IPMatch'|'ByteMatch'|'SqlInjectionMatch'|'GeoMatch'|'SizeConstraint'|'XssMatch'|'RegexMatch',
                      'DataId': 'string'
                  },
              ],
              'RateKey': 'IP',
              'RateLimit': 123
          }
      }
      
    **Response Structure**

    

    - *(dict) --* 
      

      - **Rule** *(dict) --* 

        Information about the  RateBasedRule that you specified in the ``GetRateBasedRule`` request.

        
        

        - **RuleId** *(string) --* 

          A unique identifier for a ``RateBasedRule``. You use ``RuleId`` to get more information about a ``RateBasedRule`` (see  GetRateBasedRule), update a ``RateBasedRule`` (see  UpdateRateBasedRule), insert a ``RateBasedRule`` into a ``WebACL`` or delete one from a ``WebACL`` (see  UpdateWebACL), or delete a ``RateBasedRule`` from AWS WAF (see  DeleteRateBasedRule).

          
        

        - **Name** *(string) --* 

          A friendly name or description for a ``RateBasedRule``. You can't change the name of a ``RateBasedRule`` after you create it.

          
        

        - **MetricName** *(string) --* 

          A friendly name or description for the metrics for a ``RateBasedRule``. The name can contain only alphanumeric characters (A-Z, a-z, 0-9), with maximum length 128 and minimum length one. It can't contain whitespace or metric names reserved for AWS WAF, including "All" and "Default_Action." You can't change the name of the metric after you create the ``RateBasedRule``.

          
        

        - **MatchPredicates** *(list) --* 

          The ``Predicates`` object contains one ``Predicate`` element for each  ByteMatchSet,  IPSet, or  SqlInjectionMatchSet object that you want to include in a ``RateBasedRule``.

          
          

          - *(dict) --* 

            .. note::

              

              This is **AWS WAF Classic** documentation. For more information, see `AWS WAF Classic <https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html>`__ in the developer guide.

               

              **For the latest version of AWS WAF**, use the AWS WAFV2 API and see the `AWS WAF Developer Guide <https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html>`__. With the latest version, AWS WAF has a single set of endpoints for regional and global use.

              

             

            Specifies the  ByteMatchSet,  IPSet,  SqlInjectionMatchSet,  XssMatchSet,  RegexMatchSet,  GeoMatchSet, and  SizeConstraintSet objects that you want to add to a ``Rule`` and, for each object, indicates whether you want to negate the settings, for example, requests that do NOT originate from the IP address 192.0.2.44.

            
            

            - **Negated** *(boolean) --* 

              Set ``Negated`` to ``False`` if you want AWS WAF to allow, block, or count requests based on the settings in the specified  ByteMatchSet,  IPSet,  SqlInjectionMatchSet,  XssMatchSet,  RegexMatchSet,  GeoMatchSet, or  SizeConstraintSet. For example, if an ``IPSet`` includes the IP address ``192.0.2.44``, AWS WAF will allow or block requests based on that IP address.

               

              Set ``Negated`` to ``True`` if you want AWS WAF to allow or block a request based on the negation of the settings in the  ByteMatchSet,  IPSet,  SqlInjectionMatchSet,  XssMatchSet,  RegexMatchSet,  GeoMatchSet, or  SizeConstraintSet. For example, if an ``IPSet`` includes the IP address ``192.0.2.44``, AWS WAF will allow, block, or count requests based on all IP addresses *except* ``192.0.2.44``.

              
            

            - **Type** *(string) --* 

              The type of predicate in a ``Rule``, such as ``ByteMatch`` or ``IPSet``.

              
            

            - **DataId** *(string) --* 

              A unique identifier for a predicate in a ``Rule``, such as ``ByteMatchSetId`` or ``IPSetId``. The ID is returned by the corresponding ``Create`` or ``List`` command.

              
        
      
        

        - **RateKey** *(string) --* 

          The field that AWS WAF uses to determine if requests are likely arriving from single source and thus subject to rate monitoring. The only valid value for ``RateKey`` is ``IP``. ``IP`` indicates that requests arriving from the same IP address are subject to the ``RateLimit`` that is specified in the ``RateBasedRule``.

          
        

        - **RateLimit** *(integer) --* 

          The maximum number of requests, which have an identical value in the field specified by the ``RateKey``, allowed in a five-minute period. If the number of requests exceeds the ``RateLimit`` and the other predicates specified in the rule are also met, AWS WAF triggers the action that is specified for this rule.

          
    
  
  **Exceptions**
  
  *   :py:class:`WAFRegional.Client.exceptions.WAFInternalErrorException`

  
  *   :py:class:`WAFRegional.Client.exceptions.WAFInvalidAccountException`

  
  *   :py:class:`WAFRegional.Client.exceptions.WAFNonexistentItemException`

  