subnet resource¶
Description¶
SubnetResource is an EC2 subnet: an IP range carved out of a VPC in one Availability Zone. The VPC, the zone, the IPv4 and IPv6 ranges, and an Outpost ARN are fixed when the subnet is created, so a change to any of them replaces the subnet; the launch-time options are reconciled in place. CreateSubnet accepts only the address and placement fields. The launch-time options each have no create-time setting and are applied after the subnet exists, one ModifySubnetAttribute call per option. A nil option is never sent: the value is AWS's to decide, the default for a new subnet or whatever an earlier apply set. EC2 has no reset call, so restoring a default after an apply set the option means setting the default explicitly.
Source: internal/service/ec2/subnet_rsrc.go:29
Example usage:
imports: {
aws-ec2: 'github.com/cloudboss/unobin-library-aws//service/ec2'
}
resources: {
example: aws-ec2.subnet {
# Set input fields here.
}
}
Inputs¶
vpc-id
string
availability-zone
optional(string)
availability-zone-id
optional(string)
cidr-block
optional(string)
ipv4-ipam-pool-id
optional(string)
ipv4-netmask-length
optional(integer)
ipv6-cidr-block
optional(string)
ipv6-ipam-pool-id
optional(string)
ipv6-native
optional(boolean)
ipv6-netmask-length
optional(integer)
outpost-arn
optional(string)
tags
optional(map(string))
assign-ipv6-address-on-creation
optional(boolean)
The remaining fields each back a ModifySubnetAttribute call after create.
enable-dns64
optional(boolean)
enable-lni-at-device-index
optional(integer)
enable-resource-name-dns-aaaa-record-on-launch
optional(boolean)
enable-resource-name-dns-a-record-on-launch
optional(boolean)
map-public-ip-on-launch
optional(boolean)
private-dns-hostname-type-on-launch
optional(string)
customer-owned-ipv4-pool
optional(string)
map-customer-owned-ip-on-launch
optional(boolean)
Input Constraints¶
Field combinations
At most one of availability-zone or availability-zone-id.
Forbidden with ipv4-netmask-length: cidr-block and customer-owned-ipv4-pool.
Required with ipv4-netmask-length: ipv4-ipam-pool-id.
At most one of ipv4-ipam-pool-id or customer-owned-ipv4-pool.
Required with customer-owned-ipv4-pool: map-customer-owned-ip-on-launch and outpost-arn.
Required with map-customer-owned-ip-on-launch: customer-owned-ipv4-pool and outpost-arn.
Forbidden with ipv6-netmask-length: ipv6-cidr-block.
Required with ipv6-netmask-length: ipv6-ipam-pool-id.
Private dns hostname type on launch rules
private-dns-hostname-type-on-launch must be ip-name or resource-name.
Rule logic
- When
input.private-dns-hostname-type-on-launch != null- Require
input.private-dns-hostname-type-on-launch == 'ip-name'
|| input.private-dns-hostname-type-on-launch == 'resource-name'
Enable lni at device index rules
enable-lni-at-device-index must be a positive device position.
Rule logic
- When
input.enable-lni-at-device-index != null- Require
input.enable-lni-at-device-index > 0
Outputs¶
arn
string
id
string
owner-id
string
availability-zone
string
availability-zone-id
string
cidr-block
string
ipv6-cidr-block
string
ipv6-cidr-block-association-id
string