@pulumi/aws-native
Version:
The Pulumi AWS Cloud Control Provider enables you to build, deploy, and manage [any AWS resource that's supported by the AWS Cloud Control API](https://github.com/pulumi/pulumi-aws-native/blob/master/provider/cmd/pulumi-gen-aws-native/supported-types.txt)
209 lines (208 loc) • 10.8 kB
TypeScript
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>;
}