import { Value } from '../../../cloudformation/Value';
import { TextTransformationProps } from './TextTransformationProps';
import { FieldToMatchProps } from './FieldToMatchProps';
/**
  A rule statement that defines a string match search for AWS WAF to apply to web requests. The byte match statement provides the bytes to search for, the location in requests that you want AWS WAF to search, and other settings. The bytes to search for are typically a string that corresponds with ASCII characters. In the AWS WAF console and the developer guide, this is called a string match statement.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-webacl-bytematchstatement.html">the AWS Docs</a>
*/
export interface ByteMatchStatementProps {
    /** <code>SearchStringBase64</code>  <a name="cfn-wafv2-webacl-bytematchstatement-searchstringbase64"></a>
  String to search for in a web request component, base64-encoded. If you don’t want to encode the string, specify the unencoded value in <code>SearchString</code> instead.<br />
  You must specify either <code>SearchString</code> or <code>SearchStringBase64</code> in a <code>ByteMatchStatement</code>.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    searchStringBase64?: Value<string>;
    /** <code>TextTransformations</code>  <a name="cfn-wafv2-webacl-bytematchstatement-texttransformations"></a>
  Text transformations eliminate some of the unusual formatting that attackers use in web requests in an effort to bypass detection. If you specify one or more transformations in a rule statement, AWS WAF performs all transformations on the content of the request component identified by <code>FieldToMatch</code>, starting from the lowest priority setting, before inspecting the content for a match.<br />
  
  Required: Yes<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    textTransformations: TextTransformationProps[];
    /** <p> */
    positionalConstraint: Value<string>;
    /** <code>SearchString</code>  <a name="cfn-wafv2-webacl-bytematchstatement-searchstring"></a>
  A string value that you want AWS WAF to search for. AWS WAF searches only in the part of web requests that you designate for inspection in <code>FieldToMatch</code>. The maximum length of the value is 200 bytes. For alphabetic characters A-Z and a-z, the value is case sensitive.<br />
  Don’t encode this string. Provide the value that you want AWS WAF to search for. AWS CloudFormation automatically base64 encodes the value for you.<br />
  For example, suppose the value of <code>Type</code> is <code>HEADER</code> and the value of <code>Data</code> is <code>User-Agent</code>. If you want to search the <code>User-Agent</code> header for the value <code>BadBot</code>, you provide the string <code>BadBot</code> in the value of <code>SearchString</code>.<br />
  You must specify either <code>SearchString</code> or <code>SearchStringBase64</code> in a <code>ByteMatchStatement</code>.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    searchString?: Value<string>;
    /** <code>FieldToMatch</code>  <a name="cfn-wafv2-webacl-bytematchstatement-fieldtomatch"></a>
  The part of the web request that you want AWS WAF to inspect.<br />
  
  Required: Yes<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    fieldToMatch: FieldToMatchProps;
}
