import { WafActionProps } from './webacl/WafActionProps';
import { Value } from '../../cloudformation/Value';
import { ActivatedRuleProps } from './webacl/ActivatedRuleProps';
import { AwsResource } from '../../cloudformation/resources/AwsResource';
/**
  <strong>Note</strong><br />
This is ** AWS WAF Classic** documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.<br />
**For the latest version of AWS WAF **, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-waf-webacl.html">the AWS Docs</a>
*/
export type WebACL = AwsResource<'AWS::WAF::WebACL', WebACLProperties>;
export declare function webACL(webACLProps: WebACLProperties): WebACL;
/**
  <strong>Note</strong><br />
This is ** AWS WAF Classic** documentation. For more information, see <a href="https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html">AWS WAF Classic</a> in the developer guide.<br />
**For the latest version of AWS WAF **, use the AWS WAFV2 API and see the <a href="https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html">AWS WAF Developer Guide</a>. With the latest version, AWS WAF has a single set of endpoints for regional and global use.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-waf-webacl.html">the AWS Docs</a>
*/
export interface WebACLProperties {
    /** <code>DefaultAction</code>  <a name="cfn-waf-webacl-defaultaction"></a>
  The action to perform if none of the <code>Rules</code> contained in the <code>WebACL</code> match. The action is specified by the <code>WafAction</code> object.<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> */
    defaultAction: WafActionProps;
    /** <code>MetricName</code>  <a name="cfn-waf-webacl-metricname"></a>
  The name of the metrics for this <code>WebACL</code>. 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 <code>MetricName</code> after you create the <code>WebACL</code>.<br />
  
  Required: Yes<br />
  
  Minimum: <code>1</code><br />
  
  Maximum: <code>128</code><br />
  
  Pattern: <code>.*\S.*</code><br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement">Replacement</a> */
    metricName: Value<string>;
    /** <code>Name</code>  <a name="cfn-waf-webacl-name"></a>
  A friendly name or description of the <code>WebACL</code>. You can’t change the name of a <code>WebACL</code> after you create it.<br />
  
  Required: Yes<br />
  
  Minimum: <code>1</code><br />
  
  Maximum: <code>128</code><br />
  
  Pattern: <code>.*\S.*</code><br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement">Replacement</a> */
    name: Value<string>;
    /** <code>Rules</code>  <a name="cfn-waf-webacl-rules"></a>
  An array that contains the action for each <code>Rule</code> in a <code>WebACL</code>, the priority of the <code>Rule</code>, and the ID of the <code>Rule</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> */
    rules?: ActivatedRuleProps[];
}
