![JAR search and dependency download from the Maven repository](/logo.png)
com.amazonaws.services.waf.model.ByteMatchTuple Maven / Gradle / Ivy
Show all versions of aws-java-sdk-waf Show documentation
/*
* Copyright 2010-2016 Amazon.com, Inc. or its affiliates. All Rights
* Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License").
* You may not use this file except in compliance with the License.
* A copy of the License is located at
*
* http://aws.amazon.com/apache2.0
*
* or in the "license" file accompanying this file. This file is distributed
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied. See the License for the specific language governing
* permissions and limitations under the License.
*/
package com.amazonaws.services.waf.model;
import java.io.Serializable;
/**
*
* The bytes (typically a string that corresponds with ASCII characters) that
* you want AWS WAF to search for in web requests, the location in requests that
* you want AWS WAF to search, and other settings.
*
*/
public class ByteMatchTuple implements Serializable, Cloneable {
/**
*
* The part of a web request that you want AWS WAF to search, such as a
* specified header or a query string. For more information, see
* FieldToMatch.
*
*/
private FieldToMatch fieldToMatch;
/**
*
* The value that you want AWS WAF to search for. AWS WAF searches for the
* specified string in the part of web requests that you specified in
* FieldToMatch
. The maximum length of the value is 50 bytes.
*
*
* Valid values depend on the values that you specified for
* FieldToMatch
:
*
*
* HEADER
: The value that you want AWS WAF to search for in
* the request header that you specified in FieldToMatch, for
* example, the value of the User-Agent
or Referer
* header.
* METHOD
: The HTTP method, which indicates the type of
* operation specified in the request. CloudFront supports the following
* methods: DELETE
, GET
, HEAD
,
* OPTIONS
, PATCH
, POST
, and
* PUT
.
* QUERY_STRING
: The value that you want AWS WAF to search
* for in the query string, which is the part of a URL that appears after a
* ?
character.
* URI
: The value that you want AWS WAF to search for in
* the part of a URL that identifies a resource, for example,
* /images/daily-ad.jpg
.
* BODY
: The part of a request that contains any additional
* data that you want to send to your web server as the HTTP request body,
* such as data from a form. The request body immediately follows the
* request headers. Note that only the first 8192
bytes of the
* request body are forwarded to AWS WAF for inspection. To allow or block
* requests based on the length of the body, you can create a size
* constraint set. For more information, see CreateSizeConstraintSet.
*
*
*
* If TargetString
includes alphabetic characters A-Z and a-z,
* note that the value is case sensitive.
*
*
* If you're using the AWS WAF API
*
*
* Specify a base64-encoded version of the value. The maximum length of the
* value before you base64-encode it is 50 bytes.
*
*
* For example, suppose the value of Type
is
* HEADER
and the value of Data
is
* User-Agent
. If you want to search the
* User-Agent
header for the value BadBot
, you
* base64-encode BadBot
using MIME base64 encoding and include
* the resulting value, QmFkQm90
, in the value of
* TargetString
.
*
*
* If you're using the AWS CLI or one of the AWS SDKs
*
*
* The value that you want AWS WAF to search for. The SDK automatically
* base64 encodes the value.
*
*/
private java.nio.ByteBuffer targetString;
/**
*
* Text transformations eliminate some of the unusual formatting that
* attackers use in web requests in an effort to bypass AWS WAF. If you
* specify a transformation, AWS WAF performs the transformation on
* TargetString
before inspecting a request for a match.
*
*
* CMD_LINE
*
*
* When you're concerned that attackers are injecting an operating system
* commandline command and using unusual formatting to disguise some or all
* of the command, use this option to perform the following transformations:
*
*
* - Delete the following characters: \ " ' ^
* - Delete spaces before the following characters: / (
* - Replace the following characters with a space: , ;
* - Replace multiple spaces with one space
* - Convert uppercase letters (A-Z) to lowercase (a-z)
*
*
* COMPRESS_WHITE_SPACE
*
*
* Use this option to replace the following characters with a space
* character (decimal 32):
*
*
* - \f, formfeed, decimal 12
* - \t, tab, decimal 9
* - \n, newline, decimal 10
* - \r, carriage return, decimal 13
* - \v, vertical tab, decimal 11
* - non-breaking space, decimal 160
*
*
* COMPRESS_WHITE_SPACE
also replaces multiple spaces with one
* space.
*
*
* HTML_ENTITY_DECODE
*
*
* Use this option to replace HTML-encoded characters with unencoded
* characters. HTML_ENTITY_DECODE
performs the following
* operations:
*
*
* - Replaces
(ampersand)quot;
with "
* - Replaces
(ampersand)nbsp;
with a non-breaking space,
* decimal 160
* - Replaces
(ampersand)lt;
with a "less than" symbol
* - Replaces
(ampersand)gt;
with >
* - Replaces characters that are represented in hexadecimal format,
*
(ampersand)#xhhhh;
, with the corresponding characters
* - Replaces characters that are represented in decimal format,
*
(ampersand)#nnnn;
, with the corresponding characters
*
*
* LOWERCASE
*
*
* Use this option to convert uppercase letters (A-Z) to lowercase (a-z).
*
*
* URL_DECODE
*
*
* Use this option to decode a URL-encoded value.
*
*
* NONE
*
*
* Specify NONE
if you don't want to perform any text
* transformations.
*
*/
private String textTransformation;
/**
*
* Within the portion of a web request that you want to search (for example,
* in the query string, if any), specify where you want AWS WAF to search.
* Valid values include the following:
*
*
* CONTAINS
*
*
* The specified part of the web request must include the value of
* TargetString
, but the location doesn't matter.
*
*
* CONTAINS_WORD
*
*
* The specified part of the web request must include the value of
* TargetString
, and TargetString
must contain
* only alphanumeric characters or underscore (A-Z, a-z, 0-9, or _). In
* addition, TargetString
must be a word, which means one of
* the following:
*
*
* TargetString
exactly matches the value of the specified
* part of the web request, such as the value of a header.
* TargetString
is at the beginning of the specified part
* of the web request and is followed by a character other than an
* alphanumeric character or underscore (_), for example,
* BadBot;
.
* TargetString
is at the end of the specified part of the
* web request and is preceded by a character other than an alphanumeric
* character or underscore (_), for example, ;BadBot
.
* TargetString
is in the middle of the specified part of
* the web request and is preceded and followed by characters other than
* alphanumeric characters or underscore (_), for example,
* -BadBot;
.
*
*
* EXACTLY
*
*
* The value of the specified part of the web request must exactly match the
* value of TargetString
.
*
*
* STARTS_WITH
*
*
* The value of TargetString
must appear at the beginning of
* the specified part of the web request.
*
*
* ENDS_WITH
*
*
* The value of TargetString
must appear at the end of the
* specified part of the web request.
*
*/
private String positionalConstraint;
/**
*
* The part of a web request that you want AWS WAF to search, such as a
* specified header or a query string. For more information, see
* FieldToMatch.
*
*
* @param fieldToMatch
* The part of a web request that you want AWS WAF to search, such as
* a specified header or a query string. For more information, see
* FieldToMatch.
*/
public void setFieldToMatch(FieldToMatch fieldToMatch) {
this.fieldToMatch = fieldToMatch;
}
/**
*
* The part of a web request that you want AWS WAF to search, such as a
* specified header or a query string. For more information, see
* FieldToMatch.
*
*
* @return The part of a web request that you want AWS WAF to search, such
* as a specified header or a query string. For more information,
* see FieldToMatch.
*/
public FieldToMatch getFieldToMatch() {
return this.fieldToMatch;
}
/**
*
* The part of a web request that you want AWS WAF to search, such as a
* specified header or a query string. For more information, see
* FieldToMatch.
*
*
* @param fieldToMatch
* The part of a web request that you want AWS WAF to search, such as
* a specified header or a query string. For more information, see
* FieldToMatch.
* @return Returns a reference to this object so that method calls can be
* chained together.
*/
public ByteMatchTuple withFieldToMatch(FieldToMatch fieldToMatch) {
setFieldToMatch(fieldToMatch);
return this;
}
/**
*
* The value that you want AWS WAF to search for. AWS WAF searches for the
* specified string in the part of web requests that you specified in
* FieldToMatch
. The maximum length of the value is 50 bytes.
*
*
* Valid values depend on the values that you specified for
* FieldToMatch
:
*
*
* HEADER
: The value that you want AWS WAF to search for in
* the request header that you specified in FieldToMatch, for
* example, the value of the User-Agent
or Referer
* header.
* METHOD
: The HTTP method, which indicates the type of
* operation specified in the request. CloudFront supports the following
* methods: DELETE
, GET
, HEAD
,
* OPTIONS
, PATCH
, POST
, and
* PUT
.
* QUERY_STRING
: The value that you want AWS WAF to search
* for in the query string, which is the part of a URL that appears after a
* ?
character.
* URI
: The value that you want AWS WAF to search for in
* the part of a URL that identifies a resource, for example,
* /images/daily-ad.jpg
.
* BODY
: The part of a request that contains any additional
* data that you want to send to your web server as the HTTP request body,
* such as data from a form. The request body immediately follows the
* request headers. Note that only the first 8192
bytes of the
* request body are forwarded to AWS WAF for inspection. To allow or block
* requests based on the length of the body, you can create a size
* constraint set. For more information, see CreateSizeConstraintSet.
*
*
*
* If TargetString
includes alphabetic characters A-Z and a-z,
* note that the value is case sensitive.
*
*
* If you're using the AWS WAF API
*
*
* Specify a base64-encoded version of the value. The maximum length of the
* value before you base64-encode it is 50 bytes.
*
*
* For example, suppose the value of Type
is
* HEADER
and the value of Data
is
* User-Agent
. If you want to search the
* User-Agent
header for the value BadBot
, you
* base64-encode BadBot
using MIME base64 encoding and include
* the resulting value, QmFkQm90
, in the value of
* TargetString
.
*
*
* If you're using the AWS CLI or one of the AWS SDKs
*
*
* The value that you want AWS WAF to search for. The SDK automatically
* base64 encodes the value.
*
*
* AWS SDK for Java performs a Base64 encoding on this field before sending
* this request to AWS service by default. Users of the SDK should not
* perform Base64 encoding on this field.
*
*
* Warning: ByteBuffers returned by the SDK are mutable. Changes to the
* content or position of the byte buffer will be seen by all objects that
* have a reference to this object. It is recommended to call
* ByteBuffer.duplicate() or ByteBuffer.asReadOnlyBuffer() before using or
* reading from the buffer. This behavior will be changed in a future major
* version of the SDK.
*
*
* @param targetString
* The value that you want AWS WAF to search for. AWS WAF searches
* for the specified string in the part of web requests that you
* specified in FieldToMatch
. The maximum length of the
* value is 50 bytes.
*
* Valid values depend on the values that you specified for
* FieldToMatch
:
*
*
* HEADER
: The value that you want AWS WAF to search
* for in the request header that you specified in
* FieldToMatch, for example, the value of the
* User-Agent
or Referer
header.
* METHOD
: The HTTP method, which indicates the type
* of operation specified in the request. CloudFront supports the
* following methods: DELETE
, GET
,
* HEAD
, OPTIONS
, PATCH
,
* POST
, and PUT
.
* QUERY_STRING
: The value that you want AWS WAF to
* search for in the query string, which is the part of a URL that
* appears after a ?
character.
* URI
: The value that you want AWS WAF to search
* for in the part of a URL that identifies a resource, for example,
* /images/daily-ad.jpg
.
* BODY
: The part of a request that contains any
* additional data that you want to send to your web server as the
* HTTP request body, such as data from a form. The request body
* immediately follows the request headers. Note that only the first
* 8192
bytes of the request body are forwarded to AWS
* WAF for inspection. To allow or block requests based on the length
* of the body, you can create a size constraint set. For more
* information, see CreateSizeConstraintSet.
*
*
* If TargetString
includes alphabetic characters A-Z
* and a-z, note that the value is case sensitive.
*
*
* If you're using the AWS WAF API
*
*
* Specify a base64-encoded version of the value. The maximum length
* of the value before you base64-encode it is 50 bytes.
*
*
* For example, suppose the value of Type
is
* HEADER
and the value of Data
is
* User-Agent
. If you want to search the
* User-Agent
header for the value BadBot
,
* you base64-encode BadBot
using MIME base64 encoding
* and include the resulting value, QmFkQm90
, in the
* value of TargetString
.
*
*
* If you're using the AWS CLI or one of the AWS SDKs
*
*
* The value that you want AWS WAF to search for. The SDK
* automatically base64 encodes the value.
*/
public void setTargetString(java.nio.ByteBuffer targetString) {
this.targetString = targetString;
}
/**
*
* The value that you want AWS WAF to search for. AWS WAF searches for the
* specified string in the part of web requests that you specified in
* FieldToMatch
. The maximum length of the value is 50 bytes.
*
*
* Valid values depend on the values that you specified for
* FieldToMatch
:
*
*
* HEADER
: The value that you want AWS WAF to search for in
* the request header that you specified in FieldToMatch, for
* example, the value of the User-Agent
or Referer
* header.
* METHOD
: The HTTP method, which indicates the type of
* operation specified in the request. CloudFront supports the following
* methods: DELETE
, GET
, HEAD
,
* OPTIONS
, PATCH
, POST
, and
* PUT
.
* QUERY_STRING
: The value that you want AWS WAF to search
* for in the query string, which is the part of a URL that appears after a
* ?
character.
* URI
: The value that you want AWS WAF to search for in
* the part of a URL that identifies a resource, for example,
* /images/daily-ad.jpg
.
* BODY
: The part of a request that contains any additional
* data that you want to send to your web server as the HTTP request body,
* such as data from a form. The request body immediately follows the
* request headers. Note that only the first 8192
bytes of the
* request body are forwarded to AWS WAF for inspection. To allow or block
* requests based on the length of the body, you can create a size
* constraint set. For more information, see CreateSizeConstraintSet.
*
*
*
* If TargetString
includes alphabetic characters A-Z and a-z,
* note that the value is case sensitive.
*
*
* If you're using the AWS WAF API
*
*
* Specify a base64-encoded version of the value. The maximum length of the
* value before you base64-encode it is 50 bytes.
*
*
* For example, suppose the value of Type
is
* HEADER
and the value of Data
is
* User-Agent
. If you want to search the
* User-Agent
header for the value BadBot
, you
* base64-encode BadBot
using MIME base64 encoding and include
* the resulting value, QmFkQm90
, in the value of
* TargetString
.
*
*
* If you're using the AWS CLI or one of the AWS SDKs
*
*
* The value that you want AWS WAF to search for. The SDK automatically
* base64 encodes the value.
*
*
* {@code ByteBuffer}s are stateful. Calling their {@code get} methods
* changes their {@code position}. We recommend using
* {@link java.nio.ByteBuffer#asReadOnlyBuffer()} to create a read-only view
* of the buffer with an independent {@code position}, and calling
* {@code get} methods on this rather than directly on the returned
* {@code ByteBuffer}. Doing so will ensure that anyone else using the
* {@code ByteBuffer} will not be affected by changes to the {@code position}
* .
*
*
* @return The value that you want AWS WAF to search for. AWS WAF searches
* for the specified string in the part of web requests that you
* specified in FieldToMatch
. The maximum length of the
* value is 50 bytes.
*
* Valid values depend on the values that you specified for
* FieldToMatch
:
*
*
* HEADER
: The value that you want AWS WAF to
* search for in the request header that you specified in
* FieldToMatch, for example, the value of the
* User-Agent
or Referer
header.
* METHOD
: The HTTP method, which indicates the
* type of operation specified in the request. CloudFront supports
* the following methods: DELETE
, GET
,
* HEAD
, OPTIONS
, PATCH
,
* POST
, and PUT
.
* QUERY_STRING
: The value that you want AWS WAF to
* search for in the query string, which is the part of a URL that
* appears after a ?
character.
* URI
: The value that you want AWS WAF to search
* for in the part of a URL that identifies a resource, for example,
* /images/daily-ad.jpg
.
* BODY
: The part of a request that contains any
* additional data that you want to send to your web server as the
* HTTP request body, such as data from a form. The request body
* immediately follows the request headers. Note that only the first
* 8192
bytes of the request body are forwarded to AWS
* WAF for inspection. To allow or block requests based on the
* length of the body, you can create a size constraint set. For
* more information, see CreateSizeConstraintSet.
*
*
* If TargetString
includes alphabetic characters A-Z
* and a-z, note that the value is case sensitive.
*
*
* If you're using the AWS WAF API
*
*
* Specify a base64-encoded version of the value. The maximum length
* of the value before you base64-encode it is 50 bytes.
*
*
* For example, suppose the value of Type
is
* HEADER
and the value of Data
is
* User-Agent
. If you want to search the
* User-Agent
header for the value BadBot
,
* you base64-encode BadBot
using MIME base64 encoding
* and include the resulting value, QmFkQm90
, in the
* value of TargetString
.
*
*
* If you're using the AWS CLI or one of the AWS SDKs
*
*
* The value that you want AWS WAF to search for. The SDK
* automatically base64 encodes the value.
*/
public java.nio.ByteBuffer getTargetString() {
return this.targetString;
}
/**
*
* The value that you want AWS WAF to search for. AWS WAF searches for the
* specified string in the part of web requests that you specified in
* FieldToMatch
. The maximum length of the value is 50 bytes.
*
*
* Valid values depend on the values that you specified for
* FieldToMatch
:
*
*
* HEADER
: The value that you want AWS WAF to search for in
* the request header that you specified in FieldToMatch, for
* example, the value of the User-Agent
or Referer
* header.
* METHOD
: The HTTP method, which indicates the type of
* operation specified in the request. CloudFront supports the following
* methods: DELETE
, GET
, HEAD
,
* OPTIONS
, PATCH
, POST
, and
* PUT
.
* QUERY_STRING
: The value that you want AWS WAF to search
* for in the query string, which is the part of a URL that appears after a
* ?
character.
* URI
: The value that you want AWS WAF to search for in
* the part of a URL that identifies a resource, for example,
* /images/daily-ad.jpg
.
* BODY
: The part of a request that contains any additional
* data that you want to send to your web server as the HTTP request body,
* such as data from a form. The request body immediately follows the
* request headers. Note that only the first 8192
bytes of the
* request body are forwarded to AWS WAF for inspection. To allow or block
* requests based on the length of the body, you can create a size
* constraint set. For more information, see CreateSizeConstraintSet.
*
*
*
* If TargetString
includes alphabetic characters A-Z and a-z,
* note that the value is case sensitive.
*
*
* If you're using the AWS WAF API
*
*
* Specify a base64-encoded version of the value. The maximum length of the
* value before you base64-encode it is 50 bytes.
*
*
* For example, suppose the value of Type
is
* HEADER
and the value of Data
is
* User-Agent
. If you want to search the
* User-Agent
header for the value BadBot
, you
* base64-encode BadBot
using MIME base64 encoding and include
* the resulting value, QmFkQm90
, in the value of
* TargetString
.
*
*
* If you're using the AWS CLI or one of the AWS SDKs
*
*
* The value that you want AWS WAF to search for. The SDK automatically
* base64 encodes the value.
*
*
* @param targetString
* The value that you want AWS WAF to search for. AWS WAF searches
* for the specified string in the part of web requests that you
* specified in FieldToMatch
. The maximum length of the
* value is 50 bytes.
*
* Valid values depend on the values that you specified for
* FieldToMatch
:
*
*
* HEADER
: The value that you want AWS WAF to search
* for in the request header that you specified in
* FieldToMatch, for example, the value of the
* User-Agent
or Referer
header.
* METHOD
: The HTTP method, which indicates the type
* of operation specified in the request. CloudFront supports the
* following methods: DELETE
, GET
,
* HEAD
, OPTIONS
, PATCH
,
* POST
, and PUT
.
* QUERY_STRING
: The value that you want AWS WAF to
* search for in the query string, which is the part of a URL that
* appears after a ?
character.
* URI
: The value that you want AWS WAF to search
* for in the part of a URL that identifies a resource, for example,
* /images/daily-ad.jpg
.
* BODY
: The part of a request that contains any
* additional data that you want to send to your web server as the
* HTTP request body, such as data from a form. The request body
* immediately follows the request headers. Note that only the first
* 8192
bytes of the request body are forwarded to AWS
* WAF for inspection. To allow or block requests based on the length
* of the body, you can create a size constraint set. For more
* information, see CreateSizeConstraintSet.
*
*
* If TargetString
includes alphabetic characters A-Z
* and a-z, note that the value is case sensitive.
*
*
* If you're using the AWS WAF API
*
*
* Specify a base64-encoded version of the value. The maximum length
* of the value before you base64-encode it is 50 bytes.
*
*
* For example, suppose the value of Type
is
* HEADER
and the value of Data
is
* User-Agent
. If you want to search the
* User-Agent
header for the value BadBot
,
* you base64-encode BadBot
using MIME base64 encoding
* and include the resulting value, QmFkQm90
, in the
* value of TargetString
.
*
*
* If you're using the AWS CLI or one of the AWS SDKs
*
*
* The value that you want AWS WAF to search for. The SDK
* automatically base64 encodes the value.
* @return Returns a reference to this object so that method calls can be
* chained together.
*/
public ByteMatchTuple withTargetString(java.nio.ByteBuffer targetString) {
setTargetString(targetString);
return this;
}
/**
*
* Text transformations eliminate some of the unusual formatting that
* attackers use in web requests in an effort to bypass AWS WAF. If you
* specify a transformation, AWS WAF performs the transformation on
* TargetString
before inspecting a request for a match.
*
*
* CMD_LINE
*
*
* When you're concerned that attackers are injecting an operating system
* commandline command and using unusual formatting to disguise some or all
* of the command, use this option to perform the following transformations:
*
*
* - Delete the following characters: \ " ' ^
* - Delete spaces before the following characters: / (
* - Replace the following characters with a space: , ;
* - Replace multiple spaces with one space
* - Convert uppercase letters (A-Z) to lowercase (a-z)
*
*
* COMPRESS_WHITE_SPACE
*
*
* Use this option to replace the following characters with a space
* character (decimal 32):
*
*
* - \f, formfeed, decimal 12
* - \t, tab, decimal 9
* - \n, newline, decimal 10
* - \r, carriage return, decimal 13
* - \v, vertical tab, decimal 11
* - non-breaking space, decimal 160
*
*
* COMPRESS_WHITE_SPACE
also replaces multiple spaces with one
* space.
*
*
* HTML_ENTITY_DECODE
*
*
* Use this option to replace HTML-encoded characters with unencoded
* characters. HTML_ENTITY_DECODE
performs the following
* operations:
*
*
* - Replaces
(ampersand)quot;
with "
* - Replaces
(ampersand)nbsp;
with a non-breaking space,
* decimal 160
* - Replaces
(ampersand)lt;
with a "less than" symbol
* - Replaces
(ampersand)gt;
with >
* - Replaces characters that are represented in hexadecimal format,
*
(ampersand)#xhhhh;
, with the corresponding characters
* - Replaces characters that are represented in decimal format,
*
(ampersand)#nnnn;
, with the corresponding characters
*
*
* LOWERCASE
*
*
* Use this option to convert uppercase letters (A-Z) to lowercase (a-z).
*
*
* URL_DECODE
*
*
* Use this option to decode a URL-encoded value.
*
*
* NONE
*
*
* Specify NONE
if you don't want to perform any text
* transformations.
*
*
* @param textTransformation
* Text transformations eliminate some of the unusual formatting that
* attackers use in web requests in an effort to bypass AWS WAF. If
* you specify a transformation, AWS WAF performs the transformation
* on TargetString
before inspecting a request for a
* match.
*
* CMD_LINE
*
*
* When you're concerned that attackers are injecting an operating
* system commandline command and using unusual formatting to
* disguise some or all of the command, use this option to perform
* the following transformations:
*
*
* - Delete the following characters: \ " ' ^
* - Delete spaces before the following characters: / (
* - Replace the following characters with a space: , ;
* - Replace multiple spaces with one space
* - Convert uppercase letters (A-Z) to lowercase (a-z)
*
*
* COMPRESS_WHITE_SPACE
*
*
* Use this option to replace the following characters with a space
* character (decimal 32):
*
*
* - \f, formfeed, decimal 12
* - \t, tab, decimal 9
* - \n, newline, decimal 10
* - \r, carriage return, decimal 13
* - \v, vertical tab, decimal 11
* - non-breaking space, decimal 160
*
*
* COMPRESS_WHITE_SPACE
also replaces multiple spaces
* with one space.
*
*
* HTML_ENTITY_DECODE
*
*
* Use this option to replace HTML-encoded characters with unencoded
* characters. HTML_ENTITY_DECODE
performs the following
* operations:
*
*
* - Replaces
(ampersand)quot;
with "
* - Replaces
(ampersand)nbsp;
with a non-breaking
* space, decimal 160
* - Replaces
(ampersand)lt;
with a "less than" symbol
*
* - Replaces
(ampersand)gt;
with >
* - Replaces characters that are represented in hexadecimal
* format,
(ampersand)#xhhhh;
, with the corresponding
* characters
* - Replaces characters that are represented in decimal format,
*
(ampersand)#nnnn;
, with the corresponding characters
*
*
* LOWERCASE
*
*
* Use this option to convert uppercase letters (A-Z) to lowercase
* (a-z).
*
*
* URL_DECODE
*
*
* Use this option to decode a URL-encoded value.
*
*
* NONE
*
*
* Specify NONE
if you don't want to perform any text
* transformations.
* @see TextTransformation
*/
public void setTextTransformation(String textTransformation) {
this.textTransformation = textTransformation;
}
/**
*
* Text transformations eliminate some of the unusual formatting that
* attackers use in web requests in an effort to bypass AWS WAF. If you
* specify a transformation, AWS WAF performs the transformation on
* TargetString
before inspecting a request for a match.
*
*
* CMD_LINE
*
*
* When you're concerned that attackers are injecting an operating system
* commandline command and using unusual formatting to disguise some or all
* of the command, use this option to perform the following transformations:
*
*
* - Delete the following characters: \ " ' ^
* - Delete spaces before the following characters: / (
* - Replace the following characters with a space: , ;
* - Replace multiple spaces with one space
* - Convert uppercase letters (A-Z) to lowercase (a-z)
*
*
* COMPRESS_WHITE_SPACE
*
*
* Use this option to replace the following characters with a space
* character (decimal 32):
*
*
* - \f, formfeed, decimal 12
* - \t, tab, decimal 9
* - \n, newline, decimal 10
* - \r, carriage return, decimal 13
* - \v, vertical tab, decimal 11
* - non-breaking space, decimal 160
*
*
* COMPRESS_WHITE_SPACE
also replaces multiple spaces with one
* space.
*
*
* HTML_ENTITY_DECODE
*
*
* Use this option to replace HTML-encoded characters with unencoded
* characters. HTML_ENTITY_DECODE
performs the following
* operations:
*
*
* - Replaces
(ampersand)quot;
with "
* - Replaces
(ampersand)nbsp;
with a non-breaking space,
* decimal 160
* - Replaces
(ampersand)lt;
with a "less than" symbol
* - Replaces
(ampersand)gt;
with >
* - Replaces characters that are represented in hexadecimal format,
*
(ampersand)#xhhhh;
, with the corresponding characters
* - Replaces characters that are represented in decimal format,
*
(ampersand)#nnnn;
, with the corresponding characters
*
*
* LOWERCASE
*
*
* Use this option to convert uppercase letters (A-Z) to lowercase (a-z).
*
*
* URL_DECODE
*
*
* Use this option to decode a URL-encoded value.
*
*
* NONE
*
*
* Specify NONE
if you don't want to perform any text
* transformations.
*
*
* @return Text transformations eliminate some of the unusual formatting
* that attackers use in web requests in an effort to bypass AWS
* WAF. If you specify a transformation, AWS WAF performs the
* transformation on TargetString
before inspecting a
* request for a match.
*
* CMD_LINE
*
*
* When you're concerned that attackers are injecting an operating
* system commandline command and using unusual formatting to
* disguise some or all of the command, use this option to perform
* the following transformations:
*
*
* - Delete the following characters: \ " ' ^
* - Delete spaces before the following characters: / (
* - Replace the following characters with a space: , ;
* - Replace multiple spaces with one space
* - Convert uppercase letters (A-Z) to lowercase (a-z)
*
*
* COMPRESS_WHITE_SPACE
*
*
* Use this option to replace the following characters with a space
* character (decimal 32):
*
*
* - \f, formfeed, decimal 12
* - \t, tab, decimal 9
* - \n, newline, decimal 10
* - \r, carriage return, decimal 13
* - \v, vertical tab, decimal 11
* - non-breaking space, decimal 160
*
*
* COMPRESS_WHITE_SPACE
also replaces multiple spaces
* with one space.
*
*
* HTML_ENTITY_DECODE
*
*
* Use this option to replace HTML-encoded characters with unencoded
* characters. HTML_ENTITY_DECODE
performs the
* following operations:
*
*
* - Replaces
(ampersand)quot;
with "
* - Replaces
(ampersand)nbsp;
with a non-breaking
* space, decimal 160
* - Replaces
(ampersand)lt;
with a "less than"
* symbol
* - Replaces
(ampersand)gt;
with >
* - Replaces characters that are represented in hexadecimal
* format,
(ampersand)#xhhhh;
, with the corresponding
* characters
* - Replaces characters that are represented in decimal format,
*
(ampersand)#nnnn;
, with the corresponding characters
*
*
*
* LOWERCASE
*
*
* Use this option to convert uppercase letters (A-Z) to lowercase
* (a-z).
*
*
* URL_DECODE
*
*
* Use this option to decode a URL-encoded value.
*
*
* NONE
*
*
* Specify NONE
if you don't want to perform any text
* transformations.
* @see TextTransformation
*/
public String getTextTransformation() {
return this.textTransformation;
}
/**
*
* Text transformations eliminate some of the unusual formatting that
* attackers use in web requests in an effort to bypass AWS WAF. If you
* specify a transformation, AWS WAF performs the transformation on
* TargetString
before inspecting a request for a match.
*
*
* CMD_LINE
*
*
* When you're concerned that attackers are injecting an operating system
* commandline command and using unusual formatting to disguise some or all
* of the command, use this option to perform the following transformations:
*
*
* - Delete the following characters: \ " ' ^
* - Delete spaces before the following characters: / (
* - Replace the following characters with a space: , ;
* - Replace multiple spaces with one space
* - Convert uppercase letters (A-Z) to lowercase (a-z)
*
*
* COMPRESS_WHITE_SPACE
*
*
* Use this option to replace the following characters with a space
* character (decimal 32):
*
*
* - \f, formfeed, decimal 12
* - \t, tab, decimal 9
* - \n, newline, decimal 10
* - \r, carriage return, decimal 13
* - \v, vertical tab, decimal 11
* - non-breaking space, decimal 160
*
*
* COMPRESS_WHITE_SPACE
also replaces multiple spaces with one
* space.
*
*
* HTML_ENTITY_DECODE
*
*
* Use this option to replace HTML-encoded characters with unencoded
* characters. HTML_ENTITY_DECODE
performs the following
* operations:
*
*
* - Replaces
(ampersand)quot;
with "
* - Replaces
(ampersand)nbsp;
with a non-breaking space,
* decimal 160
* - Replaces
(ampersand)lt;
with a "less than" symbol
* - Replaces
(ampersand)gt;
with >
* - Replaces characters that are represented in hexadecimal format,
*
(ampersand)#xhhhh;
, with the corresponding characters
* - Replaces characters that are represented in decimal format,
*
(ampersand)#nnnn;
, with the corresponding characters
*
*
* LOWERCASE
*
*
* Use this option to convert uppercase letters (A-Z) to lowercase (a-z).
*
*
* URL_DECODE
*
*
* Use this option to decode a URL-encoded value.
*
*
* NONE
*
*
* Specify NONE
if you don't want to perform any text
* transformations.
*
*
* @param textTransformation
* Text transformations eliminate some of the unusual formatting that
* attackers use in web requests in an effort to bypass AWS WAF. If
* you specify a transformation, AWS WAF performs the transformation
* on TargetString
before inspecting a request for a
* match.
*
* CMD_LINE
*
*
* When you're concerned that attackers are injecting an operating
* system commandline command and using unusual formatting to
* disguise some or all of the command, use this option to perform
* the following transformations:
*
*
* - Delete the following characters: \ " ' ^
* - Delete spaces before the following characters: / (
* - Replace the following characters with a space: , ;
* - Replace multiple spaces with one space
* - Convert uppercase letters (A-Z) to lowercase (a-z)
*
*
* COMPRESS_WHITE_SPACE
*
*
* Use this option to replace the following characters with a space
* character (decimal 32):
*
*
* - \f, formfeed, decimal 12
* - \t, tab, decimal 9
* - \n, newline, decimal 10
* - \r, carriage return, decimal 13
* - \v, vertical tab, decimal 11
* - non-breaking space, decimal 160
*
*
* COMPRESS_WHITE_SPACE
also replaces multiple spaces
* with one space.
*
*
* HTML_ENTITY_DECODE
*
*
* Use this option to replace HTML-encoded characters with unencoded
* characters. HTML_ENTITY_DECODE
performs the following
* operations:
*
*
* - Replaces
(ampersand)quot;
with "
* - Replaces
(ampersand)nbsp;
with a non-breaking
* space, decimal 160
* - Replaces
(ampersand)lt;
with a "less than" symbol
*
* - Replaces
(ampersand)gt;
with >
* - Replaces characters that are represented in hexadecimal
* format,
(ampersand)#xhhhh;
, with the corresponding
* characters
* - Replaces characters that are represented in decimal format,
*
(ampersand)#nnnn;
, with the corresponding characters
*
*
* LOWERCASE
*
*
* Use this option to convert uppercase letters (A-Z) to lowercase
* (a-z).
*
*
* URL_DECODE
*
*
* Use this option to decode a URL-encoded value.
*
*
* NONE
*
*
* Specify NONE
if you don't want to perform any text
* transformations.
* @return Returns a reference to this object so that method calls can be
* chained together.
* @see TextTransformation
*/
public ByteMatchTuple withTextTransformation(String textTransformation) {
setTextTransformation(textTransformation);
return this;
}
/**
*
* Text transformations eliminate some of the unusual formatting that
* attackers use in web requests in an effort to bypass AWS WAF. If you
* specify a transformation, AWS WAF performs the transformation on
* TargetString
before inspecting a request for a match.
*
*
* CMD_LINE
*
*
* When you're concerned that attackers are injecting an operating system
* commandline command and using unusual formatting to disguise some or all
* of the command, use this option to perform the following transformations:
*
*
* - Delete the following characters: \ " ' ^
* - Delete spaces before the following characters: / (
* - Replace the following characters with a space: , ;
* - Replace multiple spaces with one space
* - Convert uppercase letters (A-Z) to lowercase (a-z)
*
*
* COMPRESS_WHITE_SPACE
*
*
* Use this option to replace the following characters with a space
* character (decimal 32):
*
*
* - \f, formfeed, decimal 12
* - \t, tab, decimal 9
* - \n, newline, decimal 10
* - \r, carriage return, decimal 13
* - \v, vertical tab, decimal 11
* - non-breaking space, decimal 160
*
*
* COMPRESS_WHITE_SPACE
also replaces multiple spaces with one
* space.
*
*
* HTML_ENTITY_DECODE
*
*
* Use this option to replace HTML-encoded characters with unencoded
* characters. HTML_ENTITY_DECODE
performs the following
* operations:
*
*
* - Replaces
(ampersand)quot;
with "
* - Replaces
(ampersand)nbsp;
with a non-breaking space,
* decimal 160
* - Replaces
(ampersand)lt;
with a "less than" symbol
* - Replaces
(ampersand)gt;
with >
* - Replaces characters that are represented in hexadecimal format,
*
(ampersand)#xhhhh;
, with the corresponding characters
* - Replaces characters that are represented in decimal format,
*
(ampersand)#nnnn;
, with the corresponding characters
*
*
* LOWERCASE
*
*
* Use this option to convert uppercase letters (A-Z) to lowercase (a-z).
*
*
* URL_DECODE
*
*
* Use this option to decode a URL-encoded value.
*
*
* NONE
*
*
* Specify NONE
if you don't want to perform any text
* transformations.
*
*
* @param textTransformation
* Text transformations eliminate some of the unusual formatting that
* attackers use in web requests in an effort to bypass AWS WAF. If
* you specify a transformation, AWS WAF performs the transformation
* on TargetString
before inspecting a request for a
* match.
*
* CMD_LINE
*
*
* When you're concerned that attackers are injecting an operating
* system commandline command and using unusual formatting to
* disguise some or all of the command, use this option to perform
* the following transformations:
*
*
* - Delete the following characters: \ " ' ^
* - Delete spaces before the following characters: / (
* - Replace the following characters with a space: , ;
* - Replace multiple spaces with one space
* - Convert uppercase letters (A-Z) to lowercase (a-z)
*
*
* COMPRESS_WHITE_SPACE
*
*
* Use this option to replace the following characters with a space
* character (decimal 32):
*
*
* - \f, formfeed, decimal 12
* - \t, tab, decimal 9
* - \n, newline, decimal 10
* - \r, carriage return, decimal 13
* - \v, vertical tab, decimal 11
* - non-breaking space, decimal 160
*
*
* COMPRESS_WHITE_SPACE
also replaces multiple spaces
* with one space.
*
*
* HTML_ENTITY_DECODE
*
*
* Use this option to replace HTML-encoded characters with unencoded
* characters. HTML_ENTITY_DECODE
performs the following
* operations:
*
*
* - Replaces
(ampersand)quot;
with "
* - Replaces
(ampersand)nbsp;
with a non-breaking
* space, decimal 160
* - Replaces
(ampersand)lt;
with a "less than" symbol
*
* - Replaces
(ampersand)gt;
with >
* - Replaces characters that are represented in hexadecimal
* format,
(ampersand)#xhhhh;
, with the corresponding
* characters
* - Replaces characters that are represented in decimal format,
*
(ampersand)#nnnn;
, with the corresponding characters
*
*
* LOWERCASE
*
*
* Use this option to convert uppercase letters (A-Z) to lowercase
* (a-z).
*
*
* URL_DECODE
*
*
* Use this option to decode a URL-encoded value.
*
*
* NONE
*
*
* Specify NONE
if you don't want to perform any text
* transformations.
* @see TextTransformation
*/
public void setTextTransformation(TextTransformation textTransformation) {
this.textTransformation = textTransformation.toString();
}
/**
*
* Text transformations eliminate some of the unusual formatting that
* attackers use in web requests in an effort to bypass AWS WAF. If you
* specify a transformation, AWS WAF performs the transformation on
* TargetString
before inspecting a request for a match.
*
*
* CMD_LINE
*
*
* When you're concerned that attackers are injecting an operating system
* commandline command and using unusual formatting to disguise some or all
* of the command, use this option to perform the following transformations:
*
*
* - Delete the following characters: \ " ' ^
* - Delete spaces before the following characters: / (
* - Replace the following characters with a space: , ;
* - Replace multiple spaces with one space
* - Convert uppercase letters (A-Z) to lowercase (a-z)
*
*
* COMPRESS_WHITE_SPACE
*
*
* Use this option to replace the following characters with a space
* character (decimal 32):
*
*
* - \f, formfeed, decimal 12
* - \t, tab, decimal 9
* - \n, newline, decimal 10
* - \r, carriage return, decimal 13
* - \v, vertical tab, decimal 11
* - non-breaking space, decimal 160
*
*
* COMPRESS_WHITE_SPACE
also replaces multiple spaces with one
* space.
*
*
* HTML_ENTITY_DECODE
*
*
* Use this option to replace HTML-encoded characters with unencoded
* characters. HTML_ENTITY_DECODE
performs the following
* operations:
*
*
* - Replaces
(ampersand)quot;
with "
* - Replaces
(ampersand)nbsp;
with a non-breaking space,
* decimal 160
* - Replaces
(ampersand)lt;
with a "less than" symbol
* - Replaces
(ampersand)gt;
with >
* - Replaces characters that are represented in hexadecimal format,
*
(ampersand)#xhhhh;
, with the corresponding characters
* - Replaces characters that are represented in decimal format,
*
(ampersand)#nnnn;
, with the corresponding characters
*
*
* LOWERCASE
*
*
* Use this option to convert uppercase letters (A-Z) to lowercase (a-z).
*
*
* URL_DECODE
*
*
* Use this option to decode a URL-encoded value.
*
*
* NONE
*
*
* Specify NONE
if you don't want to perform any text
* transformations.
*
*
* @param textTransformation
* Text transformations eliminate some of the unusual formatting that
* attackers use in web requests in an effort to bypass AWS WAF. If
* you specify a transformation, AWS WAF performs the transformation
* on TargetString
before inspecting a request for a
* match.
*
* CMD_LINE
*
*
* When you're concerned that attackers are injecting an operating
* system commandline command and using unusual formatting to
* disguise some or all of the command, use this option to perform
* the following transformations:
*
*
* - Delete the following characters: \ " ' ^
* - Delete spaces before the following characters: / (
* - Replace the following characters with a space: , ;
* - Replace multiple spaces with one space
* - Convert uppercase letters (A-Z) to lowercase (a-z)
*
*
* COMPRESS_WHITE_SPACE
*
*
* Use this option to replace the following characters with a space
* character (decimal 32):
*
*
* - \f, formfeed, decimal 12
* - \t, tab, decimal 9
* - \n, newline, decimal 10
* - \r, carriage return, decimal 13
* - \v, vertical tab, decimal 11
* - non-breaking space, decimal 160
*
*
* COMPRESS_WHITE_SPACE
also replaces multiple spaces
* with one space.
*
*
* HTML_ENTITY_DECODE
*
*
* Use this option to replace HTML-encoded characters with unencoded
* characters. HTML_ENTITY_DECODE
performs the following
* operations:
*
*
* - Replaces
(ampersand)quot;
with "
* - Replaces
(ampersand)nbsp;
with a non-breaking
* space, decimal 160
* - Replaces
(ampersand)lt;
with a "less than" symbol
*
* - Replaces
(ampersand)gt;
with >
* - Replaces characters that are represented in hexadecimal
* format,
(ampersand)#xhhhh;
, with the corresponding
* characters
* - Replaces characters that are represented in decimal format,
*
(ampersand)#nnnn;
, with the corresponding characters
*
*
* LOWERCASE
*
*
* Use this option to convert uppercase letters (A-Z) to lowercase
* (a-z).
*
*
* URL_DECODE
*
*
* Use this option to decode a URL-encoded value.
*
*
* NONE
*
*
* Specify NONE
if you don't want to perform any text
* transformations.
* @return Returns a reference to this object so that method calls can be
* chained together.
* @see TextTransformation
*/
public ByteMatchTuple withTextTransformation(
TextTransformation textTransformation) {
setTextTransformation(textTransformation);
return this;
}
/**
*
* Within the portion of a web request that you want to search (for example,
* in the query string, if any), specify where you want AWS WAF to search.
* Valid values include the following:
*
*
* CONTAINS
*
*
* The specified part of the web request must include the value of
* TargetString
, but the location doesn't matter.
*
*
* CONTAINS_WORD
*
*
* The specified part of the web request must include the value of
* TargetString
, and TargetString
must contain
* only alphanumeric characters or underscore (A-Z, a-z, 0-9, or _). In
* addition, TargetString
must be a word, which means one of
* the following:
*
*
* TargetString
exactly matches the value of the specified
* part of the web request, such as the value of a header.
* TargetString
is at the beginning of the specified part
* of the web request and is followed by a character other than an
* alphanumeric character or underscore (_), for example,
* BadBot;
.
* TargetString
is at the end of the specified part of the
* web request and is preceded by a character other than an alphanumeric
* character or underscore (_), for example, ;BadBot
.
* TargetString
is in the middle of the specified part of
* the web request and is preceded and followed by characters other than
* alphanumeric characters or underscore (_), for example,
* -BadBot;
.
*
*
* EXACTLY
*
*
* The value of the specified part of the web request must exactly match the
* value of TargetString
.
*
*
* STARTS_WITH
*
*
* The value of TargetString
must appear at the beginning of
* the specified part of the web request.
*
*
* ENDS_WITH
*
*
* The value of TargetString
must appear at the end of the
* specified part of the web request.
*
*
* @param positionalConstraint
* Within the portion of a web request that you want to search (for
* example, in the query string, if any), specify where you want AWS
* WAF to search. Valid values include the following:
*
* CONTAINS
*
*
* The specified part of the web request must include the value of
* TargetString
, but the location doesn't matter.
*
*
* CONTAINS_WORD
*
*
* The specified part of the web request must include the value of
* TargetString
, and TargetString
must
* contain only alphanumeric characters or underscore (A-Z, a-z, 0-9,
* or _). In addition, TargetString
must be a word,
* which means one of the following:
*
*
* TargetString
exactly matches the value of the
* specified part of the web request, such as the value of a header.
* TargetString
is at the beginning of the specified
* part of the web request and is followed by a character other than
* an alphanumeric character or underscore (_), for example,
* BadBot;
.
* TargetString
is at the end of the specified part
* of the web request and is preceded by a character other than an
* alphanumeric character or underscore (_), for example,
* ;BadBot
.
* TargetString
is in the middle of the specified
* part of the web request and is preceded and followed by characters
* other than alphanumeric characters or underscore (_), for example,
* -BadBot;
.
*
*
* EXACTLY
*
*
* The value of the specified part of the web request must exactly
* match the value of TargetString
.
*
*
* STARTS_WITH
*
*
* The value of TargetString
must appear at the
* beginning of the specified part of the web request.
*
*
* ENDS_WITH
*
*
* The value of TargetString
must appear at the end of
* the specified part of the web request.
* @see PositionalConstraint
*/
public void setPositionalConstraint(String positionalConstraint) {
this.positionalConstraint = positionalConstraint;
}
/**
*
* Within the portion of a web request that you want to search (for example,
* in the query string, if any), specify where you want AWS WAF to search.
* Valid values include the following:
*
*
* CONTAINS
*
*
* The specified part of the web request must include the value of
* TargetString
, but the location doesn't matter.
*
*
* CONTAINS_WORD
*
*
* The specified part of the web request must include the value of
* TargetString
, and TargetString
must contain
* only alphanumeric characters or underscore (A-Z, a-z, 0-9, or _). In
* addition, TargetString
must be a word, which means one of
* the following:
*
*
* TargetString
exactly matches the value of the specified
* part of the web request, such as the value of a header.
* TargetString
is at the beginning of the specified part
* of the web request and is followed by a character other than an
* alphanumeric character or underscore (_), for example,
* BadBot;
.
* TargetString
is at the end of the specified part of the
* web request and is preceded by a character other than an alphanumeric
* character or underscore (_), for example, ;BadBot
.
* TargetString
is in the middle of the specified part of
* the web request and is preceded and followed by characters other than
* alphanumeric characters or underscore (_), for example,
* -BadBot;
.
*
*
* EXACTLY
*
*
* The value of the specified part of the web request must exactly match the
* value of TargetString
.
*
*
* STARTS_WITH
*
*
* The value of TargetString
must appear at the beginning of
* the specified part of the web request.
*
*
* ENDS_WITH
*
*
* The value of TargetString
must appear at the end of the
* specified part of the web request.
*
*
* @return Within the portion of a web request that you want to search (for
* example, in the query string, if any), specify where you want AWS
* WAF to search. Valid values include the following:
*
* CONTAINS
*
*
* The specified part of the web request must include the value of
* TargetString
, but the location doesn't matter.
*
*
* CONTAINS_WORD
*
*
* The specified part of the web request must include the value of
* TargetString
, and TargetString
must
* contain only alphanumeric characters or underscore (A-Z, a-z,
* 0-9, or _). In addition, TargetString
must be a
* word, which means one of the following:
*
*
* TargetString
exactly matches the value of the
* specified part of the web request, such as the value of a header.
*
* TargetString
is at the beginning of the
* specified part of the web request and is followed by a character
* other than an alphanumeric character or underscore (_), for
* example, BadBot;
.
* TargetString
is at the end of the specified part
* of the web request and is preceded by a character other than an
* alphanumeric character or underscore (_), for example,
* ;BadBot
.
* TargetString
is in the middle of the specified
* part of the web request and is preceded and followed by
* characters other than alphanumeric characters or underscore (_),
* for example, -BadBot;
.
*
*
* EXACTLY
*
*
* The value of the specified part of the web request must exactly
* match the value of TargetString
.
*
*
* STARTS_WITH
*
*
* The value of TargetString
must appear at the
* beginning of the specified part of the web request.
*
*
* ENDS_WITH
*
*
* The value of TargetString
must appear at the end of
* the specified part of the web request.
* @see PositionalConstraint
*/
public String getPositionalConstraint() {
return this.positionalConstraint;
}
/**
*
* Within the portion of a web request that you want to search (for example,
* in the query string, if any), specify where you want AWS WAF to search.
* Valid values include the following:
*
*
* CONTAINS
*
*
* The specified part of the web request must include the value of
* TargetString
, but the location doesn't matter.
*
*
* CONTAINS_WORD
*
*
* The specified part of the web request must include the value of
* TargetString
, and TargetString
must contain
* only alphanumeric characters or underscore (A-Z, a-z, 0-9, or _). In
* addition, TargetString
must be a word, which means one of
* the following:
*
*
* TargetString
exactly matches the value of the specified
* part of the web request, such as the value of a header.
* TargetString
is at the beginning of the specified part
* of the web request and is followed by a character other than an
* alphanumeric character or underscore (_), for example,
* BadBot;
.
* TargetString
is at the end of the specified part of the
* web request and is preceded by a character other than an alphanumeric
* character or underscore (_), for example, ;BadBot
.
* TargetString
is in the middle of the specified part of
* the web request and is preceded and followed by characters other than
* alphanumeric characters or underscore (_), for example,
* -BadBot;
.
*
*
* EXACTLY
*
*
* The value of the specified part of the web request must exactly match the
* value of TargetString
.
*
*
* STARTS_WITH
*
*
* The value of TargetString
must appear at the beginning of
* the specified part of the web request.
*
*
* ENDS_WITH
*
*
* The value of TargetString
must appear at the end of the
* specified part of the web request.
*
*
* @param positionalConstraint
* Within the portion of a web request that you want to search (for
* example, in the query string, if any), specify where you want AWS
* WAF to search. Valid values include the following:
*
* CONTAINS
*
*
* The specified part of the web request must include the value of
* TargetString
, but the location doesn't matter.
*
*
* CONTAINS_WORD
*
*
* The specified part of the web request must include the value of
* TargetString
, and TargetString
must
* contain only alphanumeric characters or underscore (A-Z, a-z, 0-9,
* or _). In addition, TargetString
must be a word,
* which means one of the following:
*
*
* TargetString
exactly matches the value of the
* specified part of the web request, such as the value of a header.
* TargetString
is at the beginning of the specified
* part of the web request and is followed by a character other than
* an alphanumeric character or underscore (_), for example,
* BadBot;
.
* TargetString
is at the end of the specified part
* of the web request and is preceded by a character other than an
* alphanumeric character or underscore (_), for example,
* ;BadBot
.
* TargetString
is in the middle of the specified
* part of the web request and is preceded and followed by characters
* other than alphanumeric characters or underscore (_), for example,
* -BadBot;
.
*
*
* EXACTLY
*
*
* The value of the specified part of the web request must exactly
* match the value of TargetString
.
*
*
* STARTS_WITH
*
*
* The value of TargetString
must appear at the
* beginning of the specified part of the web request.
*
*
* ENDS_WITH
*
*
* The value of TargetString
must appear at the end of
* the specified part of the web request.
* @return Returns a reference to this object so that method calls can be
* chained together.
* @see PositionalConstraint
*/
public ByteMatchTuple withPositionalConstraint(String positionalConstraint) {
setPositionalConstraint(positionalConstraint);
return this;
}
/**
*
* Within the portion of a web request that you want to search (for example,
* in the query string, if any), specify where you want AWS WAF to search.
* Valid values include the following:
*
*
* CONTAINS
*
*
* The specified part of the web request must include the value of
* TargetString
, but the location doesn't matter.
*
*
* CONTAINS_WORD
*
*
* The specified part of the web request must include the value of
* TargetString
, and TargetString
must contain
* only alphanumeric characters or underscore (A-Z, a-z, 0-9, or _). In
* addition, TargetString
must be a word, which means one of
* the following:
*
*
* TargetString
exactly matches the value of the specified
* part of the web request, such as the value of a header.
* TargetString
is at the beginning of the specified part
* of the web request and is followed by a character other than an
* alphanumeric character or underscore (_), for example,
* BadBot;
.
* TargetString
is at the end of the specified part of the
* web request and is preceded by a character other than an alphanumeric
* character or underscore (_), for example, ;BadBot
.
* TargetString
is in the middle of the specified part of
* the web request and is preceded and followed by characters other than
* alphanumeric characters or underscore (_), for example,
* -BadBot;
.
*
*
* EXACTLY
*
*
* The value of the specified part of the web request must exactly match the
* value of TargetString
.
*
*
* STARTS_WITH
*
*
* The value of TargetString
must appear at the beginning of
* the specified part of the web request.
*
*
* ENDS_WITH
*
*
* The value of TargetString
must appear at the end of the
* specified part of the web request.
*
*
* @param positionalConstraint
* Within the portion of a web request that you want to search (for
* example, in the query string, if any), specify where you want AWS
* WAF to search. Valid values include the following:
*
* CONTAINS
*
*
* The specified part of the web request must include the value of
* TargetString
, but the location doesn't matter.
*
*
* CONTAINS_WORD
*
*
* The specified part of the web request must include the value of
* TargetString
, and TargetString
must
* contain only alphanumeric characters or underscore (A-Z, a-z, 0-9,
* or _). In addition, TargetString
must be a word,
* which means one of the following:
*
*
* TargetString
exactly matches the value of the
* specified part of the web request, such as the value of a header.
* TargetString
is at the beginning of the specified
* part of the web request and is followed by a character other than
* an alphanumeric character or underscore (_), for example,
* BadBot;
.
* TargetString
is at the end of the specified part
* of the web request and is preceded by a character other than an
* alphanumeric character or underscore (_), for example,
* ;BadBot
.
* TargetString
is in the middle of the specified
* part of the web request and is preceded and followed by characters
* other than alphanumeric characters or underscore (_), for example,
* -BadBot;
.
*
*
* EXACTLY
*
*
* The value of the specified part of the web request must exactly
* match the value of TargetString
.
*
*
* STARTS_WITH
*
*
* The value of TargetString
must appear at the
* beginning of the specified part of the web request.
*
*
* ENDS_WITH
*
*
* The value of TargetString
must appear at the end of
* the specified part of the web request.
* @see PositionalConstraint
*/
public void setPositionalConstraint(
PositionalConstraint positionalConstraint) {
this.positionalConstraint = positionalConstraint.toString();
}
/**
*
* Within the portion of a web request that you want to search (for example,
* in the query string, if any), specify where you want AWS WAF to search.
* Valid values include the following:
*
*
* CONTAINS
*
*
* The specified part of the web request must include the value of
* TargetString
, but the location doesn't matter.
*
*
* CONTAINS_WORD
*
*
* The specified part of the web request must include the value of
* TargetString
, and TargetString
must contain
* only alphanumeric characters or underscore (A-Z, a-z, 0-9, or _). In
* addition, TargetString
must be a word, which means one of
* the following:
*
*
* TargetString
exactly matches the value of the specified
* part of the web request, such as the value of a header.
* TargetString
is at the beginning of the specified part
* of the web request and is followed by a character other than an
* alphanumeric character or underscore (_), for example,
* BadBot;
.
* TargetString
is at the end of the specified part of the
* web request and is preceded by a character other than an alphanumeric
* character or underscore (_), for example, ;BadBot
.
* TargetString
is in the middle of the specified part of
* the web request and is preceded and followed by characters other than
* alphanumeric characters or underscore (_), for example,
* -BadBot;
.
*
*
* EXACTLY
*
*
* The value of the specified part of the web request must exactly match the
* value of TargetString
.
*
*
* STARTS_WITH
*
*
* The value of TargetString
must appear at the beginning of
* the specified part of the web request.
*
*
* ENDS_WITH
*
*
* The value of TargetString
must appear at the end of the
* specified part of the web request.
*
*
* @param positionalConstraint
* Within the portion of a web request that you want to search (for
* example, in the query string, if any), specify where you want AWS
* WAF to search. Valid values include the following:
*
* CONTAINS
*
*
* The specified part of the web request must include the value of
* TargetString
, but the location doesn't matter.
*
*
* CONTAINS_WORD
*
*
* The specified part of the web request must include the value of
* TargetString
, and TargetString
must
* contain only alphanumeric characters or underscore (A-Z, a-z, 0-9,
* or _). In addition, TargetString
must be a word,
* which means one of the following:
*
*
* TargetString
exactly matches the value of the
* specified part of the web request, such as the value of a header.
* TargetString
is at the beginning of the specified
* part of the web request and is followed by a character other than
* an alphanumeric character or underscore (_), for example,
* BadBot;
.
* TargetString
is at the end of the specified part
* of the web request and is preceded by a character other than an
* alphanumeric character or underscore (_), for example,
* ;BadBot
.
* TargetString
is in the middle of the specified
* part of the web request and is preceded and followed by characters
* other than alphanumeric characters or underscore (_), for example,
* -BadBot;
.
*
*
* EXACTLY
*
*
* The value of the specified part of the web request must exactly
* match the value of TargetString
.
*
*
* STARTS_WITH
*
*
* The value of TargetString
must appear at the
* beginning of the specified part of the web request.
*
*
* ENDS_WITH
*
*
* The value of TargetString
must appear at the end of
* the specified part of the web request.
* @return Returns a reference to this object so that method calls can be
* chained together.
* @see PositionalConstraint
*/
public ByteMatchTuple withPositionalConstraint(
PositionalConstraint positionalConstraint) {
setPositionalConstraint(positionalConstraint);
return this;
}
/**
* Returns a string representation of this object; useful for testing and
* debugging.
*
* @return A string representation of this object.
*
* @see java.lang.Object#toString()
*/
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append("{");
if (getFieldToMatch() != null)
sb.append("FieldToMatch: " + getFieldToMatch() + ",");
if (getTargetString() != null)
sb.append("TargetString: " + getTargetString() + ",");
if (getTextTransformation() != null)
sb.append("TextTransformation: " + getTextTransformation() + ",");
if (getPositionalConstraint() != null)
sb.append("PositionalConstraint: " + getPositionalConstraint());
sb.append("}");
return sb.toString();
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (obj instanceof ByteMatchTuple == false)
return false;
ByteMatchTuple other = (ByteMatchTuple) obj;
if (other.getFieldToMatch() == null ^ this.getFieldToMatch() == null)
return false;
if (other.getFieldToMatch() != null
&& other.getFieldToMatch().equals(this.getFieldToMatch()) == false)
return false;
if (other.getTargetString() == null ^ this.getTargetString() == null)
return false;
if (other.getTargetString() != null
&& other.getTargetString().equals(this.getTargetString()) == false)
return false;
if (other.getTextTransformation() == null
^ this.getTextTransformation() == null)
return false;
if (other.getTextTransformation() != null
&& other.getTextTransformation().equals(
this.getTextTransformation()) == false)
return false;
if (other.getPositionalConstraint() == null
^ this.getPositionalConstraint() == null)
return false;
if (other.getPositionalConstraint() != null
&& other.getPositionalConstraint().equals(
this.getPositionalConstraint()) == false)
return false;
return true;
}
@Override
public int hashCode() {
final int prime = 31;
int hashCode = 1;
hashCode = prime
* hashCode
+ ((getFieldToMatch() == null) ? 0 : getFieldToMatch()
.hashCode());
hashCode = prime
* hashCode
+ ((getTargetString() == null) ? 0 : getTargetString()
.hashCode());
hashCode = prime
* hashCode
+ ((getTextTransformation() == null) ? 0
: getTextTransformation().hashCode());
hashCode = prime
* hashCode
+ ((getPositionalConstraint() == null) ? 0
: getPositionalConstraint().hashCode());
return hashCode;
}
@Override
public ByteMatchTuple clone() {
try {
return (ByteMatchTuple) super.clone();
} catch (CloneNotSupportedException e) {
throw new IllegalStateException(
"Got a CloneNotSupportedException from Object.clone() "
+ "even though we're Cloneable!", e);
}
}
}