WAF / Client / update_rule
update_rule#
- WAF.Client.update_rule(**kwargs)#
- Note - This is AWS WAF Classic documentation. For more information, see AWS WAF Classic in the developer guide. - For the latest version of AWS WAF , use the AWS WAFV2 API and see the AWS WAF Developer Guide. With the latest version, AWS WAF has a single set of endpoints for regional and global use. - Inserts or deletes Predicate objects in a - Rule. Each- Predicateobject identifies a predicate, such as a ByteMatchSet or an IPSet, that specifies the web requests that you want to allow, block, or count. If you add more than one predicate to a- Rule, a request must match all of the specifications to be allowed, blocked, or counted. For example, suppose that you add the following to a- Rule:- A - ByteMatchSetthat matches the value- BadBotin the- User-Agentheader
- An - IPSetthat matches the IP address- 192.0.2.44
 - You then add the - Ruleto a- WebACLand specify that you want to block requests that satisfy the- Rule. For a request to be blocked, the- User-Agentheader in the request must contain the value- BadBotand the request must originate from the IP address 192.0.2.44.- To create and configure a - Rule, perform the following steps:- Create and update the predicates that you want to include in the - Rule.
- Create the - Rule. See CreateRule.
- Use - GetChangeTokento get the change token that you provide in the- ChangeTokenparameter of an UpdateRule request.
- Submit an - UpdateRulerequest to add predicates to the- Rule.
- Create and update a - WebACLthat contains the- Rule. See CreateWebACL.
 - If you want to replace one - ByteMatchSetor- IPSetwith another, you delete the existing one and add the new one.- For more information about how to use the AWS WAF API to allow or block HTTP requests, see the AWS WAF Developer Guide. - See also: AWS API Documentation - Request Syntax - response = client.update_rule( RuleId='string', ChangeToken='string', Updates=[ { 'Action': 'INSERT'|'DELETE', 'Predicate': { 'Negated': True|False, 'Type': 'IPMatch'|'ByteMatch'|'SqlInjectionMatch'|'GeoMatch'|'SizeConstraint'|'XssMatch'|'RegexMatch', 'DataId': 'string' } }, ] ) - Parameters:
- RuleId (string) – - [REQUIRED] - The - RuleIdof the- Rulethat you want to update.- RuleIdis returned by- CreateRuleand by ListRules.
- ChangeToken (string) – - [REQUIRED] - The value returned by the most recent call to GetChangeToken. 
- Updates (list) – - [REQUIRED] - An array of - RuleUpdateobjects that you want to insert into or delete from a Rule. For more information, see the applicable data types:- RuleUpdate: Contains - Actionand- Predicate
- Predicate: Contains - DataId,- Negated, and- Type
- FieldToMatch: Contains - Dataand- Type
 - (dict) – - Note - This is AWS WAF Classic documentation. For more information, see AWS WAF Classic in the developer guide. - For the latest version of AWS WAF , use the AWS WAFV2 API and see the AWS WAF Developer Guide. With the latest version, AWS WAF has a single set of endpoints for regional and global use. - Specifies a - Predicate(such as an- IPSet) and indicates whether you want to add it to a- Ruleor delete it from a- Rule.- Action (string) – [REQUIRED] - Specify - INSERTto add a- Predicateto a- Rule. Use- DELETEto remove a- Predicatefrom a- Rule.
- Predicate (dict) – [REQUIRED] - The ID of the - Predicate(such as an- IPSet) that you want to add to a- Rule.- Negated (boolean) – [REQUIRED] - Set - Negatedto- Falseif 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- IPSetincludes the IP address- 192.0.2.44, AWS WAF will allow or block requests based on that IP address.- Set - Negatedto- Trueif 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- IPSetincludes 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) – [REQUIRED] - The type of predicate in a - Rule, such as- ByteMatchor- IPSet.
- DataId (string) – [REQUIRED] - A unique identifier for a predicate in a - Rule, such as- ByteMatchSetIdor- IPSetId. The ID is returned by the corresponding- Createor- Listcommand.
 
 
 
 
- Return type:
- dict 
- Returns:
- Response Syntax - { 'ChangeToken': 'string' } - Response Structure - (dict) – - ChangeToken (string) – - The - ChangeTokenthat you used to submit the- UpdateRulerequest. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus.
 
 
 - Exceptions - WAF.Client.exceptions.WAFStaleDataException
- WAF.Client.exceptions.WAFInternalErrorException
- WAF.Client.exceptions.WAFInvalidAccountException
- WAF.Client.exceptions.WAFInvalidOperationException
- WAF.Client.exceptions.WAFInvalidParameterException
- WAF.Client.exceptions.WAFNonexistentContainerException
- WAF.Client.exceptions.WAFNonexistentItemException
- WAF.Client.exceptions.WAFReferencedItemException
- WAF.Client.exceptions.WAFLimitsExceededException
 - Examples - The following example deletes a Predicate object in a rule with the ID example1ds3t-46da-4fdb-b8d5-abc321j569j5. - response = client.update_rule( ChangeToken='abcd12f2-46da-4fdb-b8d5-fbd4c466928f', RuleId='example1ds3t-46da-4fdb-b8d5-abc321j569j5', Updates=[ { 'Action': 'DELETE', 'Predicate': { 'DataId': 'MyByteMatchSetID', 'Negated': False, 'Type': 'ByteMatch', }, }, ], ) print(response) - Expected Output: - { 'ChangeToken': 'abcd12f2-46da-4fdb-b8d5-fbd4c466928f', 'ResponseMetadata': { '...': '...', }, }