import { Value } from '../../cloudformation/Value';
import { EgressProps } from './securitygroup/EgressProps';
import { IngressProps } from './securitygroup/IngressProps';
import { Tag } from '../Tag';
import { Attribute } from '../../cloudformation/Attribute';
import { AwsResource } from '../../cloudformation/resources/AwsResource';
export type SecurityGroupAttributes = {
    GroupId: Attribute<string>;
    VpcId: Attribute<string>;
};
export type SecurityGroup = AwsResource<'AWS::EC2::SecurityGroup', SecurityGroupProperties, SecurityGroupAttributes>;
/**
  Specifies a security group. To create a security group, use the <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group.html#cfn-ec2-securitygroup-vpcid">VpcId</a> property to specify the VPC for which to create the security group.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group.html">the AWS Docs</a>
*/
export declare function securityGroup(securityGroupProps: SecurityGroupProperties): SecurityGroup;
/**
  Specifies a security group. To create a security group, use the <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group.html#cfn-ec2-securitygroup-vpcid">VpcId</a> property to specify the VPC for which to create the security group.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group.html">the AWS Docs</a>
*/
export interface SecurityGroupProperties {
    /** <code>GroupDescription</code>  <a name="cfn-ec2-securitygroup-groupdescription"></a>
  A description for the security group.<br />
  Constraints: Up to 255 characters in length<br />
  Valid characters: a-z, A-Z, 0-9, spaces, and ._-:/()#,@[]+=&amp;;{}!$*<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> */
    groupDescription: Value<string>;
    /** <code>GroupName</code>  <a name="cfn-ec2-securitygroup-groupname"></a>
  The name of the security group.<br />
  Constraints: Up to 255 characters in length. Cannot start with <code>sg-</code>.<br />
  Valid characters: a-z, A-Z, 0-9, spaces, and ._-:/()#,@[]+=&amp;;{}!$*<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement">Replacement</a> */
    groupName?: Value<string>;
    /** <code>SecurityGroupEgress</code>  <a name="cfn-ec2-securitygroup-securitygroupegress"></a>
  The outbound rules associated with the security group. There is a short interruption during which you cannot connect to the security 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-some-interrupt">Some interruptions</a> */
    securityGroupEgress?: EgressProps[];
    /** <code>SecurityGroupIngress</code>  <a name="cfn-ec2-securitygroup-securitygroupingress"></a>
  The inbound rules associated with the security group. There is a short interruption during which you cannot connect to the security 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-some-interrupt">Some interruptions</a> */
    securityGroupIngress?: IngressProps[];
    /** <code>Tags</code>  <a name="cfn-ec2-securitygroup-tags"></a>
  Any tags assigned to the security 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> */
    tags?: Tag[];
    /** <code>VpcId</code>  <a name="cfn-ec2-securitygroup-vpcid"></a>
  The ID of the VPC for the security 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-replacement">Replacement</a> */
    vpcId?: Value<string>;
}
