import { Value } from '../../../cloudformation/Value';
import { PrivateIpAddressSpecificationProps } from './PrivateIpAddressSpecificationProps';
import { InstanceIpv6AddressProps } from './InstanceIpv6AddressProps';
/**
  Describes a network interface.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-spotfleet-instancenetworkinterfacespecification.html">the AWS Docs</a>
*/
export interface InstanceNetworkInterfaceSpecificationProps {
    /** <code>Description</code>  <a name="cfn-ec2-spotfleet-instancenetworkinterfacespecification-description"></a>
  The description of the network interface. Applies only if creating a network interface when launching an instance.<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> */
    description?: Value<string>;
    /** <code>PrivateIpAddresses</code>  <a name="cfn-ec2-spotfleet-instancenetworkinterfacespecification-privateipaddresses"></a>
  The private IPv4 addresses to assign to the network interface. Only one private IPv4 address can be designated as primary. You cannot specify this option if you’re launching more than one instance in a <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html">RunInstances</a> request.<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> */
    privateIpAddresses?: PrivateIpAddressSpecificationProps[];
    /** <code>SecondaryPrivateIpAddressCount</code>  <a name="cfn-ec2-spotfleet-instancenetworkinterfacespecification-secondaryprivateipaddresscount"></a>
  The number of secondary private IPv4 addresses. You can’t specify this option and specify more than one private IP address using the private IP addresses option. You cannot specify this option if you’re launching more than one instance in a <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html">RunInstances</a> request.<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> */
    secondaryPrivateIpAddressCount?: Value<number>;
    /** <code>DeviceIndex</code>  <a name="cfn-ec2-spotfleet-instancenetworkinterfacespecification-deviceindex"></a>
  The position of the network interface in the attachment order. A primary network interface has a device index of 0.<br />
  If you specify a network interface when launching an instance, you must specify the device index.<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> */
    deviceIndex?: Value<number>;
    /** <code>Groups</code>  <a name="cfn-ec2-spotfleet-instancenetworkinterfacespecification-groups"></a>
  The IDs of the security groups for the network interface. Applies only if creating a network interface when launching an instance.<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> */
    groups?: Value<Value<string>[]>;
    /** <code>Ipv6AddressCount</code>  <a name="cfn-ec2-spotfleet-instancenetworkinterfacespecification-ipv6addresscount"></a>
  A number of IPv6 addresses to assign to the network interface. Amazon EC2 chooses the IPv6 addresses from the range of the subnet. You cannot specify this option and the option to assign specific IPv6 addresses in the same request. You can specify this option if you’ve specified a minimum number of instances to launch.<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> */
    ipv6AddressCount?: Value<number>;
    /** <code>Ipv6Addresses</code>  <a name="cfn-ec2-spotfleet-instancenetworkinterfacespecification-ipv6addresses"></a>
  The IPv6 addresses to assign to the network interface. You cannot specify this option and the option to assign a number of IPv6 addresses in the same request. You cannot specify this option if you’ve specified a minimum number of instances to launch.<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> */
    ipv6Addresses?: InstanceIpv6AddressProps[];
    /** <code>SubnetId</code>  <a name="cfn-ec2-spotfleet-instancenetworkinterfacespecification-subnetid"></a>
  The ID of the subnet associated with the network interface. Applies only if creating a network interface when launching an instance.<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> */
    subnetId?: Value<string>;
    /** <code>AssociatePublicIpAddress</code>  <a name="cfn-ec2-spotfleet-instancenetworkinterfacespecification-associatepublicipaddress"></a>
  Indicates whether to assign a public IPv4 address to an instance you launch in a VPC. The public IP address can only be assigned to a network interface for eth0, and can only be assigned to a new network interface, not an existing one. You cannot specify more than one network interface in the request. If launching into a default subnet, the default value is <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-replacement">Replacement</a> */
    associatePublicIpAddress?: Value<boolean>;
    /** <code>NetworkInterfaceId</code>  <a name="cfn-ec2-spotfleet-instancenetworkinterfacespecification-networkinterfaceid"></a>
  The ID of the network interface.<br />
  If you are creating a Spot Fleet, omit this parameter because you can’t specify a network interface ID in a launch specification.<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> */
    networkInterfaceId?: Value<string>;
    /** <code>DeleteOnTermination</code>  <a name="cfn-ec2-spotfleet-instancenetworkinterfacespecification-deleteontermination"></a>
  Indicates whether the network interface is deleted when the instance is terminated.<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> */
    deleteOnTermination?: Value<boolean>;
}
