import { Value } from '../../cloudformation/Value';
import { Tag } from '../Tag';
import { SubnetMappingProps } from './firewall/SubnetMappingProps';
import { Attribute } from '../../cloudformation/Attribute';
import { AwsResource } from '../../cloudformation/resources/AwsResource';
export type FirewallAttributes = {
    FirewallArn: Attribute<string>;
    EndpointIds: Attribute<string[]>;
    FirewallId: Attribute<string>;
};
export type Firewall = AwsResource<'AWS::NetworkFirewall::Firewall', FirewallProperties, FirewallAttributes>;
/**
  Use the <a href="#aws-resource-networkfirewall-firewall">AWS::NetworkFirewall::Firewall</a> to provide stateful, managed, network firewall and intrusion detection and prevention filtering for your VPCs in Amazon VPC.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkfirewall-firewall.html">the AWS Docs</a>
*/
export declare function firewall(firewallProps: FirewallProperties): Firewall;
/**
  Use the <a href="#aws-resource-networkfirewall-firewall">AWS::NetworkFirewall::Firewall</a> to provide stateful, managed, network firewall and intrusion detection and prevention filtering for your VPCs in Amazon VPC.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-networkfirewall-firewall.html">the AWS Docs</a>
*/
export interface FirewallProperties {
    /** <code>FirewallPolicyArn</code>  <a name="cfn-networkfirewall-firewall-firewallpolicyarn"></a>
  The Amazon Resource Name (ARN) of the firewall policy.<br />
  The relationship of firewall to firewall policy is many to one. Each firewall requires one firewall policy association, and you can use the same firewall policy for multiple firewalls.<br />
  
  Required: Yes<br />
  
  Minimum: <code>1</code><br />
  
  Maximum: <code>256</code><br />
  
  Pattern: <code>^arn:aws.*</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> */
    firewallPolicyArn: Value<string>;
    /** <code>SubnetChangeProtection</code>  <a name="cfn-networkfirewall-firewall-subnetchangeprotection"></a>
  A setting indicating whether the firewall is protected against changes to the subnet associations. Use this setting to protect against accidentally modifying the subnet associations for a firewall that is in use. When you create a firewall, the operation initializes this setting to <code>TRUE</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> */
    subnetChangeProtection?: Value<boolean>;
    /** <code>Description</code>  <a name="cfn-networkfirewall-firewall-description"></a>
  A description of the firewall.<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>FirewallName</code>  <a name="cfn-networkfirewall-firewall-firewallname"></a>
  The descriptive name of the firewall. You can’t change the name of a firewall 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> */
    firewallName: Value<string>;
    /** <code>VpcId</code>  <a name="cfn-networkfirewall-firewall-vpcid"></a>
  The unique identifier of the VPC where the firewall is in use. You can’t change the VPC of a firewall after you create the firewall.<br />
  
  Required: Yes<br />
  
  Minimum: <code>1</code><br />
  
  Maximum: <code>128</code><br />
  
  Pattern: <code>^vpc-[0-9a-f]+$</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> */
    vpcId: Value<string>;
    /** <code>DeleteProtection</code>  <a name="cfn-networkfirewall-firewall-deleteprotection"></a>
  A flag indicating whether it is possible to delete the firewall. A setting of <code>TRUE</code> indicates that the firewall is protected against deletion. Use this setting to protect against accidentally deleting a firewall that is in use. When you create a firewall, the operation initializes this flag to <code>TRUE</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> */
    deleteProtection?: Value<boolean>;
    /** <code>FirewallPolicyChangeProtection</code>  <a name="cfn-networkfirewall-firewall-firewallpolicychangeprotection"></a>
  A setting indicating whether the firewall is protected against a change to the firewall policy association. Use this setting to protect against accidentally modifying the firewall policy for a firewall that is in use. When you create a firewall, the operation initializes this setting to <code>TRUE</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> */
    firewallPolicyChangeProtection?: Value<boolean>;
    /** <code>Tags</code>  <a name="cfn-networkfirewall-firewall-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 />
  
  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[];
    /** <code>SubnetMappings</code>  <a name="cfn-networkfirewall-firewall-subnetmappings"></a>
  The public subnets that Network Firewall is using for the firewall. Each subnet must belong to a different Availability Zone.<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> */
    subnetMappings: SubnetMappingProps[];
}
