import { StatelessRulesAndCustomActionsProps } from './StatelessRulesAndCustomActionsProps';
import { StatefulRuleProps } from './StatefulRuleProps';
import { Value } from '../../../cloudformation/Value';
import { RulesSourceListProps } from './RulesSourceListProps';
/**
  The stateless or stateful rules definitions for use in a single rule group. Each rule group requires a single <code>RulesSource</code>. You can use an instance of this for either stateless rules or stateful rules.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-networkfirewall-rulegroup-rulessource.html">the AWS Docs</a>
*/
export interface RulesSourceProps {
    /** <code>StatelessRulesAndCustomActions</code>  <a name="cfn-networkfirewall-rulegroup-rulessource-statelessrulesandcustomactions"></a>
  Stateless inspection criteria to be used in a stateless rule group.<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> */
    statelessRulesAndCustomActions?: StatelessRulesAndCustomActionsProps;
    /** <code>StatefulRules</code>  <a name="cfn-networkfirewall-rulegroup-rulessource-statefulrules"></a>
  An array of individual stateful rules inspection criteria to be used together in a stateful rule group. Use this option to specify simple Suricata rules with protocol, source and destination, ports, direction, and rule options. For information about the Suricata <code>Rules</code> format, see <a href="https://suricata.readthedocs.io/en/suricata-6.0.9/rules/intro.html">Rules Format</a>.<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> */
    statefulRules?: StatefulRuleProps[];
    /** <code>RulesString</code>  <a name="cfn-networkfirewall-rulegroup-rulessource-rulesstring"></a>
  Stateful inspection criteria, provided in Suricata compatible intrusion prevention system (IPS) rules. Suricata is an open-source network IPS that includes a standard rule-based language for network traffic inspection.<br />
  These rules contain the inspection criteria and the action to take for traffic that matches the criteria, so this type of rule group doesn’t have a separate action setting.<br />
  
  Required: No<br />
  
  Minimum: <code>0</code><br />
  
  Maximum: <code>2000000</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> */
    rulesString?: Value<string>;
    /** <code>RulesSourceList</code>  <a name="cfn-networkfirewall-rulegroup-rulessource-rulessourcelist"></a>
  Stateful inspection criteria for a domain list rule group.<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> */
    rulesSourceList?: RulesSourceListProps;
}
