import { Value } from '../../cloudformation/Value';
import { AwsResource } from '../../cloudformation/resources/AwsResource';
/**
  Adds an inbound rule to a security group.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group-ingress.html">the AWS Docs</a>
*/
export type SecurityGroupIngress = AwsResource<'AWS::EC2::SecurityGroupIngress', SecurityGroupIngressProperties>;
export declare function securityGroupIngress(securityGroupIngressProps: SecurityGroupIngressProperties): SecurityGroupIngress;
/**
  Adds an inbound rule to a security group.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group-ingress.html">the AWS Docs</a>
*/
export interface SecurityGroupIngressProperties {
    /** <code>CidrIp</code>  <a name="cfn-ec2-security-group-ingress-cidrip"></a>
  The IPv4 address range, in CIDR format.<br />
  You must specify a source security group (<code>SourcePrefixListId</code> or <code>SourceSecurityGroupId</code>) or a CIDR range (<code>CidrIp</code> or <code>CidrIpv6</code>).<br />
  For examples of rules that you can add to security groups for specific access scenarios, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-rules-reference.html">Security group rules for different use cases</a> in the
  Amazon EC2 User Guide: 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> */
    cidrIp?: Value<string>;
    /** <code>CidrIpv6</code>  <a name="cfn-ec2-security-group-ingress-cidripv6"></a>
  The IPv6 address range, in CIDR format.<br />
  You must specify a source security group (<code>SourcePrefixListId</code> or <code>SourceSecurityGroupId</code>) or a CIDR range (<code>CidrIp</code> or <code>CidrIpv6</code>).<br />
  For examples of rules that you can add to security groups for specific access scenarios, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-rules-reference.html">Security group rules for different use cases</a> in the
  Amazon EC2 User Guide: 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> */
    cidrIpv6?: Value<string>;
    /** <code>Description</code>  <a name="cfn-ec2-security-group-ingress-description"></a>
  Updates the description of an ingress (inbound) security group rule. You can replace an existing description, or add a description to a rule that did not have one previously.<br />
  Constraints: Up to 255 characters in length. Allowed characters are a-z, A-Z, 0-9, spaces, and ._-:/()#,@[]+=;{}!$*<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> */
    description?: Value<string>;
    /** <code>FromPort</code>  <a name="cfn-ec2-security-group-ingress-fromport"></a>
  The start of port range for the TCP and UDP protocols, or an ICMP/ICMPv6 type number. A value of <code>-1</code> indicates all ICMP/ICMPv6 types. If you specify all ICMP/ICMPv6 types, you must specify all codes.<br />
  Use this for ICMP and any protocol that uses ports.<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> */
    fromPort?: Value<number>;
    /** <code>GroupId</code>  <a name="cfn-ec2-security-group-ingress-groupid"></a>
  The ID of 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> */
    groupId?: Value<string>;
    /** <code>GroupName</code>  <a name="cfn-ec2-security-group-ingress-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>IpProtocol</code>  <a name="cfn-ec2-security-group-ingress-ipprotocol"></a>
  The IP protocol name (<code>tcp</code>, <code>udp</code>, <code>icmp</code>, <code>icmpv6</code>) or number (see <a href="http://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml">Protocol Numbers</a>).<br />
  Use <code>-1</code> to specify all protocols. When authorizing security group rules, specifying <code>-1</code> or a protocol number other than <code>tcp</code>, <code>udp</code>, <code>icmp</code>, or <code>icmpv6</code> allows traffic on all ports, regardless of any port range you specify. For <code>tcp</code>, <code>udp</code>, and <code>icmp</code>, you must specify a port range. For <code>icmpv6</code>, the port range is optional; if you omit the port range, traffic for all types and codes is allowed.<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> */
    ipProtocol: Value<string>;
    /** <code>SourcePrefixListId</code>  <a name="cfn-ec2-securitygroupingress-sourceprefixlistid"></a>
  The ID of a prefix list.<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> */
    sourcePrefixListId?: Value<string>;
    /** <code>SourceSecurityGroupId</code>  <a name="cfn-ec2-security-group-ingress-sourcesecuritygroupid"></a>
  The ID of the security group. You must specify either the security group ID or the security group name. For security groups in a nondefault VPC, you must specify the security group ID.<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> */
    sourceSecurityGroupId?: Value<string>;
    /** <code>SourceSecurityGroupName</code>  <a name="cfn-ec2-security-group-ingress-sourcesecuritygroupname"></a>
  [Default VPC] The name of the source security group. You must specify either the security group ID or the security group name. You can’t specify the group name in combination with an IP address range. Creates rules that grant full ICMP, UDP, and TCP access.<br />
  For security groups in a nondefault VPC, you must specify the group ID.<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> */
    sourceSecurityGroupName?: Value<string>;
    /** <code>SourceSecurityGroupOwnerId</code>  <a name="cfn-ec2-security-group-ingress-sourcesecuritygroupownerid"></a>
  [nondefault VPC] The AWS account ID for the source security group, if the source security group is in a different account. You can’t specify this property with an IP address range. Creates rules that grant full ICMP, UDP, and TCP access.<br />
  If you specify <code>SourceSecurityGroupName</code> or <code>SourceSecurityGroupId</code> and that security group is owned by a different account than the account creating the stack, you must specify <code>SourceSecurityGroupOwnerId</code>; otherwise, this property is optional.<br />
  
  Required: Conditional<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement">Replacement</a> */
    sourceSecurityGroupOwnerId?: Value<string>;
    /** <code>ToPort</code>  <a name="cfn-ec2-security-group-ingress-toport"></a>
  The end of port range for the TCP and UDP protocols, or an ICMP/ICMPv6 code. A value of <code>-1</code> indicates all ICMP/ICMPv6 codes for the specified ICMP type. If you specify all ICMP/ICMPv6 types, you must specify all codes.<br />
  Use this for ICMP and any protocol that uses ports.<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> */
    toPort?: Value<number>;
}
