UNPKG

@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
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>; }