CreateByteMatchSet
Note
Amazon WAF Classic support will end on September 30, 2025.
This is Amazon WAF Classic documentation. For more information, see Amazon WAF Classic in the developer guide.
For the latest version of Amazon WAF , use the Amazon WAFV2 API and see the Amazon WAF Developer Guide. With the latest version, Amazon WAF has a single set of endpoints for regional and global use.
Creates a ByteMatchSet. You then use UpdateByteMatchSet to identify the part of a 
                    web request that you want Amazon WAF to inspect, such as the values of the User-Agent header or the query string. 
			For example, you can create a ByteMatchSet that matches any requests with User-Agent headers 
                            that contain the string BadBot. You can then configure Amazon WAF to reject those requests.
To create and configure a ByteMatchSet, perform the following steps:
- 
         
Use GetChangeToken to get the change token that you provide in the
ChangeTokenparameter of aCreateByteMatchSetrequest. - 
         
Submit a
CreateByteMatchSetrequest. - 
         
Use
GetChangeTokento get the change token that you provide in theChangeTokenparameter of anUpdateByteMatchSetrequest. - 
         
Submit an UpdateByteMatchSet request to specify the part of the request that you want Amazon WAF to inspect (for example, the header or the URI path) and the value that you want Amazon WAF to watch for.
 
For more information about how to use the Amazon WAF API to allow or block HTTP requests, see the Amazon WAF Developer Guide.
Request Syntax
{
   "ChangeToken": "string",
   "Name": "string"
}
    
      Request Parameters
For information about the parameters that are common to all actions, see Common Parameters.
The request accepts the following data in JSON format.
- ChangeToken
 - 
               
The value returned by the most recent call to GetChangeToken.
Type: String
Length Constraints: Minimum length of 1. Maximum length of 128.
Pattern:
.*\S.*Required: Yes
 - Name
 - 
               
A friendly name or description of the ByteMatchSet. You can't change
Nameafter you create aByteMatchSet.Type: String
Length Constraints: Minimum length of 1. Maximum length of 128.
Pattern:
.*\S.*Required: Yes
 
Response Syntax
{
   "ByteMatchSet": { 
      "ByteMatchSetId": "string",
      "ByteMatchTuples": [ 
         { 
            "FieldToMatch": { 
               "Data": "string",
               "Type": "string"
            },
            "PositionalConstraint": "string",
            "TargetString": blob,
            "TextTransformation": "string"
         }
      ],
      "Name": "string"
   },
   "ChangeToken": "string"
}
    
      Response Elements
If the action is successful, the service sends back an HTTP 200 response.
The following data is returned in JSON format by the service.
- ByteMatchSet
 - 
               
A ByteMatchSet that contains no
ByteMatchTupleobjects.Type: ByteMatchSet object
 - ChangeToken
 - 
               
The
ChangeTokenthat you used to submit theCreateByteMatchSetrequest. You can also use this value to query the status of the request. For more information, see GetChangeTokenStatus.Type: String
Length Constraints: Minimum length of 1. Maximum length of 128.
Pattern:
.*\S.* 
Errors
For information about the errors that are common to all actions, see Common Errors.
- WAFDisallowedNameException
 - 
               
The name specified is invalid.
HTTP Status Code: 400
 - WAFInternalErrorException
 - 
               
The operation failed because of a system problem, even though the request was valid. Retry your request.
HTTP Status Code: 500
 - WAFInvalidAccountException
 - 
               
The operation failed because you tried to create, update, or delete an object by using an invalid account identifier.
HTTP Status Code: 400
 - WAFInvalidParameterException
 - 
               
The operation failed because Amazon WAF didn't recognize a parameter in the request. For example:
- 
                     
You specified an invalid parameter name.
 - 
                     
You specified an invalid value.
 - 
                     
You tried to update an object (
ByteMatchSet,IPSet,Rule, orWebACL) using an action other thanINSERTorDELETE. - 
                     
You tried to create a
WebACLwith aDefaultActionTypeother thanALLOW,BLOCK, orCOUNT. - 
                     
You tried to create a
RateBasedRulewith aRateKeyvalue other thanIP. - 
                     
You tried to update a
WebACLwith aWafActionTypeother thanALLOW,BLOCK, orCOUNT. - 
                     
You tried to update a
ByteMatchSetwith aFieldToMatchTypeother than HEADER, METHOD, QUERY_STRING, URI, or BODY. - 
                     
You tried to update a
ByteMatchSetwith aFieldofHEADERbut no value forData. - 
                     
Your request references an ARN that is malformed, or corresponds to a resource with which a web ACL cannot be associated.
 
HTTP Status Code: 400
 - 
                     
 - WAFLimitsExceededException
 - 
               
The operation exceeds a resource limit, for example, the maximum number of
WebACLobjects that you can create for an Amazon Web Services account. For more information, see Amazon WAF Classic quotas in the Amazon WAF Developer Guide.HTTP Status Code: 400
 - WAFStaleDataException
 - 
               
The operation failed because you tried to create, update, or delete an object by using a change token that has already been used.
HTTP Status Code: 400
 
See Also
For more information about using this API in one of the language-specific Amazon SDKs, see the following: