import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
import * as outputs from "../types/output";
/**
 * Specifies a subnet for the specified VPC.
 *  For an IPv4 only subnet, specify an IPv4 CIDR block. If the VPC has an IPv6 CIDR block, you can create an IPv6 only subnet or a dual stack subnet instead. For an IPv6 only subnet, specify an IPv6 CIDR block. For a dual stack subnet, specify both an IPv4 CIDR block and an IPv6 CIDR block.
 *  For more information, see [Subnets for your VPC](https://docs.aws.amazon.com/vpc/latest/userguide/configure-subnets.html) in the *Amazon VPC User Guide*.
 */
export declare class Subnet extends pulumi.CustomResource {
    /**
     * Get an existing Subnet resource's state with the given name, ID, and optional extra
     * properties used to qualify the lookup.
     *
     * @param name The _unique_ name of the resulting resource.
     * @param id The _unique_ provider ID of the resource to lookup.
     * @param opts Optional settings to control the behavior of the CustomResource.
     */
    static get(name: string, id: pulumi.Input<pulumi.ID>, opts?: pulumi.CustomResourceOptions): Subnet;
    /**
     * Returns true if the given object is an instance of Subnet.  This is designed to work even
     * when multiple copies of the Pulumi SDK have been loaded into the same process.
     */
    static isInstance(obj: any): obj is Subnet;
    /**
     * Indicates whether a network interface created in this subnet receives an IPv6 address. The default value is ``false``.
     *  If you specify ``AssignIpv6AddressOnCreation``, you must also specify an IPv6 CIDR block.
     */
    readonly assignIpv6AddressOnCreation: pulumi.Output<boolean | undefined>;
    /**
     * The Availability Zone of the subnet.
     *  If you update this property, you must also update the ``CidrBlock`` property.
     */
    readonly availabilityZone: pulumi.Output<string | undefined>;
    /**
     * The AZ ID of the subnet.
     */
    readonly availabilityZoneId: pulumi.Output<string | undefined>;
    readonly blockPublicAccessStates: pulumi.Output<outputs.ec2.BlockPublicAccessStatesProperties>;
    /**
     * The IPv4 CIDR block assigned to the subnet.
     *  If you update this property, we create a new subnet, and then delete the existing one.
     */
    readonly cidrBlock: pulumi.Output<string | undefined>;
    /**
     * Indicates whether DNS queries made to the Amazon-provided DNS Resolver in this subnet should return synthetic IPv6 addresses for IPv4-only destinations.
     *   You must first configure a NAT gateway in a public subnet (separate from the subnet containing the IPv6-only workloads). For example, the subnet containing the NAT gateway should have a ``0.0.0.0/0`` route pointing to the internet gateway. For more information, see [Configure DNS64 and NAT64](https://docs.aws.amazon.com/vpc/latest/userguide/nat-gateway-nat64-dns64.html#nat-gateway-nat64-dns64-walkthrough) in the *User Guide*.
     */
    readonly enableDns64: pulumi.Output<boolean | undefined>;
    /**
     * Indicates the device position for local network interfaces in this subnet. For example, ``1`` indicates local network interfaces in this subnet are the secondary network interface (eth1).
     */
    readonly enableLniAtDeviceIndex: pulumi.Output<number | undefined>;
    /**
     * An IPv4 IPAM pool ID for the subnet.
     */
    readonly ipv4IpamPoolId: pulumi.Output<string | undefined>;
    /**
     * An IPv4 netmask length for the subnet.
     */
    readonly ipv4NetmaskLength: pulumi.Output<number | undefined>;
    /**
     * The IPv6 CIDR block.
     *  If you specify ``AssignIpv6AddressOnCreation``, you must also specify an IPv6 CIDR block.
     */
    readonly ipv6CidrBlock: pulumi.Output<string | undefined>;
    /**
     * The IPv6 CIDR blocks that are associated with the subnet.
     */
    readonly ipv6CidrBlocks: pulumi.Output<string[]>;
    /**
     * An IPv6 IPAM pool ID for the subnet.
     */
    readonly ipv6IpamPoolId: pulumi.Output<string | undefined>;
    /**
     * Indicates whether this is an IPv6 only subnet. For more information, see [Subnet basics](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html#subnet-basics) in the *User Guide*.
     */
    readonly ipv6Native: pulumi.Output<boolean | undefined>;
    /**
     * An IPv6 netmask length for the subnet.
     */
    readonly ipv6NetmaskLength: pulumi.Output<number | undefined>;
    /**
     * Indicates whether instances launched in this subnet receive a public IPv4 address. The default value is ``false``.
     *  AWS charges for all public IPv4 addresses, including public IPv4 addresses associated with running instances and Elastic IP addresses. For more information, see the *Public IPv4 Address* tab on the [VPC pricing page](https://docs.aws.amazon.com/vpc/pricing/).
     */
    readonly mapPublicIpOnLaunch: pulumi.Output<boolean | undefined>;
    /**
     * The ID of the network ACL that is associated with the subnet's VPC, such as `acl-5fb85d36` .
     */
    readonly networkAclAssociationId: pulumi.Output<string>;
    /**
     * The Amazon Resource Name (ARN) of the Outpost.
     */
    readonly outpostArn: pulumi.Output<string | undefined>;
    /**
     * The hostname type for EC2 instances launched into this subnet and how DNS A and AAAA record queries to the instances should be handled. For more information, see [Amazon EC2 instance hostname types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-naming.html) in the *User Guide*.
     *  Available options:
     *   +  EnableResourceNameDnsAAAARecord (true | false)
     *   +  EnableResourceNameDnsARecord (true | false)
     *   +  HostnameType (ip-name | resource-name)
     */
    readonly privateDnsNameOptionsOnLaunch: pulumi.Output<outputs.ec2.PrivateDnsNameOptionsOnLaunchProperties | undefined>;
    /**
     * The ID of the subnet.
     */
    readonly subnetId: pulumi.Output<string>;
    /**
     * Any tags assigned to the subnet.
     */
    readonly tags: pulumi.Output<outputs.Tag[] | undefined>;
    /**
     * The ID of the VPC the subnet is in.
     *  If you update this property, you must also update the ``CidrBlock`` property.
     */
    readonly vpcId: pulumi.Output<string>;
    /**
     * Create a Subnet resource with the given unique name, arguments, and options.
     *
     * @param name The _unique_ name of the resource.
     * @param args The arguments to use to populate this resource's properties.
     * @param opts A bag of options that control this resource's behavior.
     */
    constructor(name: string, args: SubnetArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * The set of arguments for constructing a Subnet resource.
 */
export interface SubnetArgs {
    /**
     * Indicates whether a network interface created in this subnet receives an IPv6 address. The default value is ``false``.
     *  If you specify ``AssignIpv6AddressOnCreation``, you must also specify an IPv6 CIDR block.
     */
    assignIpv6AddressOnCreation?: pulumi.Input<boolean>;
    /**
     * The Availability Zone of the subnet.
     *  If you update this property, you must also update the ``CidrBlock`` property.
     */
    availabilityZone?: pulumi.Input<string>;
    /**
     * The AZ ID of the subnet.
     */
    availabilityZoneId?: pulumi.Input<string>;
    /**
     * The IPv4 CIDR block assigned to the subnet.
     *  If you update this property, we create a new subnet, and then delete the existing one.
     */
    cidrBlock?: pulumi.Input<string>;
    /**
     * Indicates whether DNS queries made to the Amazon-provided DNS Resolver in this subnet should return synthetic IPv6 addresses for IPv4-only destinations.
     *   You must first configure a NAT gateway in a public subnet (separate from the subnet containing the IPv6-only workloads). For example, the subnet containing the NAT gateway should have a ``0.0.0.0/0`` route pointing to the internet gateway. For more information, see [Configure DNS64 and NAT64](https://docs.aws.amazon.com/vpc/latest/userguide/nat-gateway-nat64-dns64.html#nat-gateway-nat64-dns64-walkthrough) in the *User Guide*.
     */
    enableDns64?: pulumi.Input<boolean>;
    /**
     * Indicates the device position for local network interfaces in this subnet. For example, ``1`` indicates local network interfaces in this subnet are the secondary network interface (eth1).
     */
    enableLniAtDeviceIndex?: pulumi.Input<number>;
    /**
     * An IPv4 IPAM pool ID for the subnet.
     */
    ipv4IpamPoolId?: pulumi.Input<string>;
    /**
     * An IPv4 netmask length for the subnet.
     */
    ipv4NetmaskLength?: pulumi.Input<number>;
    /**
     * The IPv6 CIDR block.
     *  If you specify ``AssignIpv6AddressOnCreation``, you must also specify an IPv6 CIDR block.
     */
    ipv6CidrBlock?: pulumi.Input<string>;
    /**
     * An IPv6 IPAM pool ID for the subnet.
     */
    ipv6IpamPoolId?: pulumi.Input<string>;
    /**
     * Indicates whether this is an IPv6 only subnet. For more information, see [Subnet basics](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html#subnet-basics) in the *User Guide*.
     */
    ipv6Native?: pulumi.Input<boolean>;
    /**
     * An IPv6 netmask length for the subnet.
     */
    ipv6NetmaskLength?: pulumi.Input<number>;
    /**
     * Indicates whether instances launched in this subnet receive a public IPv4 address. The default value is ``false``.
     *  AWS charges for all public IPv4 addresses, including public IPv4 addresses associated with running instances and Elastic IP addresses. For more information, see the *Public IPv4 Address* tab on the [VPC pricing page](https://docs.aws.amazon.com/vpc/pricing/).
     */
    mapPublicIpOnLaunch?: pulumi.Input<boolean>;
    /**
     * The Amazon Resource Name (ARN) of the Outpost.
     */
    outpostArn?: pulumi.Input<string>;
    /**
     * The hostname type for EC2 instances launched into this subnet and how DNS A and AAAA record queries to the instances should be handled. For more information, see [Amazon EC2 instance hostname types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-naming.html) in the *User Guide*.
     *  Available options:
     *   +  EnableResourceNameDnsAAAARecord (true | false)
     *   +  EnableResourceNameDnsARecord (true | false)
     *   +  HostnameType (ip-name | resource-name)
     */
    privateDnsNameOptionsOnLaunch?: pulumi.Input<inputs.ec2.PrivateDnsNameOptionsOnLaunchPropertiesArgs>;
    /**
     * Any tags assigned to the subnet.
     */
    tags?: pulumi.Input<pulumi.Input<inputs.TagArgs>[]>;
    /**
     * The ID of the VPC the subnet is in.
     *  If you update this property, you must also update the ``CidrBlock`` property.
     */
    vpcId: pulumi.Input<string>;
}
