import { Value } from '../../cloudformation/Value';
import { RuleGroupProps } from './rulegroup/RuleGroupProps';
import { Tag } from '../Tag';
import { Attribute } from '../../cloudformation/Attribute';
import { AwsResource } from '../../cloudformation/resources/AwsResource';
export type RuleGroupAttributes = {
    RuleGroupId: Attribute<string>;
    RuleGroupArn: Attribute<string>;
};
export type RuleGroup = AwsResource<'AWS::NetworkFirewall::RuleGroup', RuleGroupProperties, RuleGroupAttributes>;
/**
  Use the <a href="#aws-resource-networkfirewall-rulegroup">AWS::NetworkFirewall::RuleGroup</a> to define a reusable collection of stateless or stateful network traffic filtering rules. You use rule groups in an <a href="aws-resource-networkfirewall-firewallpolicy.md">AWS::NetworkFirewall::FirewallPolicy</a> to specify the filtering behavior of an <a href="aws-resource-networkfirewall-firewall.md">AWS::NetworkFirewall::Firewall</a>.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkfirewall-rulegroup.html">the AWS Docs</a>
*/
export declare function ruleGroup(ruleGroupProps: RuleGroupProperties): RuleGroup;
/**
  Use the <a href="#aws-resource-networkfirewall-rulegroup">AWS::NetworkFirewall::RuleGroup</a> to define a reusable collection of stateless or stateful network traffic filtering rules. You use rule groups in an <a href="aws-resource-networkfirewall-firewallpolicy.md">AWS::NetworkFirewall::FirewallPolicy</a> to specify the filtering behavior of an <a href="aws-resource-networkfirewall-firewall.md">AWS::NetworkFirewall::Firewall</a>.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkfirewall-rulegroup.html">the AWS Docs</a>
*/
export interface RuleGroupProperties {
    /** <code>Type</code>  <a name="cfn-networkfirewall-rulegroup-type"></a>
  Indicates whether the rule group is stateless or stateful. If the rule group is stateless, it contains stateless rules. If it is stateful, it contains stateful rules.<br />
  
  Required: Yes<br />
  
  Allowed values: <code>STATEFUL | STATELESS</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> */
    type: Value<'STATEFUL' | 'STATELESS'>;
    /** <code>Description</code>  <a name="cfn-networkfirewall-rulegroup-description"></a>
  A description of the rule group.<br />
  
  Required: No<br />
  
  Maximum: <code>512</code><br />
  
  Pattern: <code>^.*$</code><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> */
    description?: Value<string>;
    /** <code>Capacity</code>  <a name="cfn-networkfirewall-rulegroup-capacity"></a>
  The maximum operating resources that this rule group can use. You can’t change a rule group’s capacity setting after you create the rule group. When you update a rule group, you are limited to this capacity. When you reference a rule group from a firewall policy, Network Firewall reserves this capacity for the rule group.<br />
  
  Required: Yes<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement">Replacement</a> */
    capacity: Value<number>;
    /** <code>RuleGroupName</code>  <a name="cfn-networkfirewall-rulegroup-rulegroupname"></a>
  The descriptive name of the rule group. You can’t change the name of a rule group after you create it.<br />
  
  Required: Yes<br />
  
  Minimum: <code>1</code><br />
  
  Maximum: <code>128</code><br />
  
  Pattern: <code>^[a-zA-Z0-9-]+$</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> */
    ruleGroupName: Value<string>;
    /** <code>RuleGroup</code>  <a name="cfn-networkfirewall-rulegroup-rulegroup"></a>
  An object that defines the rule group rules.<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> */
    ruleGroup?: RuleGroupProps;
    /** <code>Tags</code>  <a name="cfn-networkfirewall-rulegroup-tags"></a>
  An array of key-value pairs to apply to this resource.<br />
  For more information, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html">Tag</a>.<br />
  
  Required: No<br />
  
  Maximum: <code>200</code><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> */
    tags?: Tag[];
}
