import * as core from "@terrascript/core";
export interface AttachmentArgs extends core.SchemaArgs {
    attachmentId: string | core.StringOut;
    deviceIndex: number | core.NumberOut;
    instance: string | core.StringOut;
}
export declare class Attachment extends core.Schema<AttachmentArgs> {
    attachmentId: string | core.StringOut;
    deviceIndex: number | core.NumberOut;
    instance: string | core.StringOut;
}
export interface NetworkInterfaceArgs extends core.ResourceArgs {
    /**
     * (Optional) Configuration block to define the attachment of the ENI. See [Attachment](#attachment) be
     * low for more details!
     */
    attachment?: core.Array<Attachment> | core.ArrayOut<Attachment>;
    /**
     * (Optional) Description for the network interface.
     */
    description?: string | core.StringOut;
    /**
     * (Optional) Type of network interface to create. Set to `efa` for Elastic Fabric Adapter. Changing `i
     * nterface_type` will cause the resource to be destroyed and re-created.
     */
    interfaceType?: string | core.StringOut;
    /**
     * (Optional) Number of IPv4 prefixes that AWS automatically assigns to the network interface.
     */
    ipv4PrefixCount?: number | core.NumberOut;
    /**
     * (Optional) One or more IPv4 prefixes assigned to the network interface.
     */
    ipv4Prefixes?: core.Array<string> | core.ArrayOut<core.StringOut>;
    /**
     * (Optional) Number of IPv6 addresses to assign to a network interface. You can't use this option if s
     * pecifying specific `ipv6_addresses`. If your subnet has the AssignIpv6AddressOnCreation attribute se
     * t to `true`, you can specify `0` to override this setting.
     */
    ipv6AddressCount?: number | core.NumberOut;
    /**
     * (Optional) List of private IPs to assign to the ENI in sequential order.
     */
    ipv6AddressList?: core.Array<string> | core.ArrayOut<core.StringOut>;
    ipv6AddressListEnabled?: boolean | core.BooleanOut;
    /**
     * (Optional) One or more specific IPv6 addresses from the IPv6 CIDR block range of your subnet. Addres
     * ses are assigned without regard to order. You can't use this option if you're specifying `ipv6_addre
     * ss_count`.
     */
    ipv6Addresses?: core.Array<string> | core.ArrayOut<core.StringOut>;
    /**
     * (Optional) Number of IPv6 prefixes that AWS automatically assigns to the network interface.
     */
    ipv6PrefixCount?: number | core.NumberOut;
    /**
     * (Optional) One or more IPv6 prefixes assigned to the network interface.
     */
    ipv6Prefixes?: core.Array<string> | core.ArrayOut<core.StringOut>;
    privateIp?: string | core.StringOut;
    /**
     * (Optional) List of private IPs to assign to the ENI in sequential order. Requires setting `private_i
     * p_list_enabled` to `true`.
     */
    privateIpList?: core.Array<string> | core.ArrayOut<core.StringOut>;
    /**
     * (Optional) Whether `private_ip_list` is allowed and controls the IPs to assign to the ENI and `priva
     * te_ips` and `private_ips_count` become read-only. Default false.
     */
    privateIpListEnabled?: boolean | core.BooleanOut;
    /**
     * (Optional) List of private IPs to assign to the ENI without regard to order.
     */
    privateIps?: core.Array<string> | core.ArrayOut<core.StringOut>;
    /**
     * (Optional) Number of secondary private IPs to assign to the ENI. The total number of private IPs wil
     * l be 1 + `private_ips_count`, as a primary private IP will be assiged to an ENI by default.
     */
    privateIpsCount?: number | core.NumberOut;
    /**
     * (Optional) List of security group IDs to assign to the ENI.
     */
    securityGroups?: core.Array<string> | core.ArrayOut<core.StringOut>;
    /**
     * (Optional) Whether to enable source destination checking for the ENI. Default true.
     */
    sourceDestCheck?: boolean | core.BooleanOut;
    /**
     * (Required) Subnet ID to create the ENI in.
     */
    subnetId: string | core.StringOut;
    /**
     * (Optional) Map of tags to assign to the resource. If configured with a provider [`default_tags` conf
     * iguration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags-conf
     * iguration-block) present, tags with matching keys will overwrite those defined at the provider-level
     * .
     */
    tags?: core.Map<string, string> | core.MapOut<core.StringOut>;
    /**
     * Map of tags assigned to the resource, including those inherited from the provider [`default_tags` co
     * nfiguration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags-co
     * nfiguration-block).
     */
    tagsAll?: core.Map<string, string> | core.MapOut<core.StringOut>;
}
export declare class NetworkInterface extends core.Resource<NetworkInterfaceArgs> {
    /**
     * ARN of the network interface.
     */
    arn: string | core.StringOut;
    /**
     * (Optional) Configuration block to define the attachment of the ENI. See [Attachment](#attachment) be
     * low for more details!
     */
    attachment?: core.Array<Attachment> | core.ArrayOut<Attachment>;
    /**
     * (Optional) Description for the network interface.
     */
    description?: string | core.StringOut;
    /**
     * ID of the network interface.
     */
    id: string | core.StringOut;
    /**
     * (Optional) Type of network interface to create. Set to `efa` for Elastic Fabric Adapter. Changing `i
     * nterface_type` will cause the resource to be destroyed and re-created.
     */
    interfaceType?: string | core.StringOut;
    /**
     * (Optional) Number of IPv4 prefixes that AWS automatically assigns to the network interface.
     */
    ipv4PrefixCount?: number | core.NumberOut;
    /**
     * (Optional) One or more IPv4 prefixes assigned to the network interface.
     */
    ipv4Prefixes?: core.Array<string> | core.ArrayOut<core.StringOut>;
    /**
     * (Optional) Number of IPv6 addresses to assign to a network interface. You can't use this option if s
     * pecifying specific `ipv6_addresses`. If your subnet has the AssignIpv6AddressOnCreation attribute se
     * t to `true`, you can specify `0` to override this setting.
     */
    ipv6AddressCount?: number | core.NumberOut;
    /**
     * (Optional) List of private IPs to assign to the ENI in sequential order.
     */
    ipv6AddressList?: core.Array<string> | core.ArrayOut<core.StringOut>;
    ipv6AddressListEnabled?: boolean | core.BooleanOut;
    /**
     * (Optional) One or more specific IPv6 addresses from the IPv6 CIDR block range of your subnet. Addres
     * ses are assigned without regard to order. You can't use this option if you're specifying `ipv6_addre
     * ss_count`.
     */
    ipv6Addresses?: core.Array<string> | core.ArrayOut<core.StringOut>;
    /**
     * (Optional) Number of IPv6 prefixes that AWS automatically assigns to the network interface.
     */
    ipv6PrefixCount?: number | core.NumberOut;
    /**
     * (Optional) One or more IPv6 prefixes assigned to the network interface.
     */
    ipv6Prefixes?: core.Array<string> | core.ArrayOut<core.StringOut>;
    /**
     * MAC address of the network interface.
     */
    macAddress: string | core.StringOut;
    outpostArn: string | core.StringOut;
    /**
     * AWS account ID of the owner of the network interface.
     */
    ownerId: string | core.StringOut;
    /**
     * Private DNS name of the network interface (IPv4).
     */
    privateDnsName: string | core.StringOut;
    privateIp?: string | core.StringOut;
    /**
     * (Optional) List of private IPs to assign to the ENI in sequential order. Requires setting `private_i
     * p_list_enabled` to `true`.
     */
    privateIpList?: core.Array<string> | core.ArrayOut<core.StringOut>;
    /**
     * (Optional) Whether `private_ip_list` is allowed and controls the IPs to assign to the ENI and `priva
     * te_ips` and `private_ips_count` become read-only. Default false.
     */
    privateIpListEnabled?: boolean | core.BooleanOut;
    /**
     * (Optional) List of private IPs to assign to the ENI without regard to order.
     */
    privateIps?: core.Array<string> | core.ArrayOut<core.StringOut>;
    /**
     * (Optional) Number of secondary private IPs to assign to the ENI. The total number of private IPs wil
     * l be 1 + `private_ips_count`, as a primary private IP will be assiged to an ENI by default.
     */
    privateIpsCount?: number | core.NumberOut;
    /**
     * (Optional) List of security group IDs to assign to the ENI.
     */
    securityGroups?: core.Array<string> | core.ArrayOut<core.StringOut>;
    /**
     * (Optional) Whether to enable source destination checking for the ENI. Default true.
     */
    sourceDestCheck?: boolean | core.BooleanOut;
    /**
     * (Required) Subnet ID to create the ENI in.
     */
    subnetId: string | core.StringOut;
    /**
     * (Optional) Map of tags to assign to the resource. If configured with a provider [`default_tags` conf
     * iguration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags-conf
     * iguration-block) present, tags with matching keys will overwrite those defined at the provider-level
     * .
     */
    tags?: core.Map<string, string> | core.MapOut<core.StringOut>;
    /**
     * Map of tags assigned to the resource, including those inherited from the provider [`default_tags` co
     * nfiguration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags-co
     * nfiguration-block).
     */
    tagsAll?: core.Map<string, string> | core.MapOut<core.StringOut>;
    constructor(name: string, args?: NetworkInterfaceArgs);
    getNamespace(): string;
}
//# sourceMappingURL=network_interface.d.ts.map