Paste a subnet plan. Pick a target. Copy production-ready Infrastructure-as-Code. Terraform, CloudFormation, Bicep, Pulumi, Ansible, Cisco IOS, Kubernetes YAML — eight formats, zero translation work.
aws_vpc + aws_subnet resources with availability_zone, ready for terraform apply.
azurerm_virtual_network + azurerm_subnet, with name-derived resource IDs.
google_compute_network + google_compute_subnetwork in your chosen region.
YAML template with AWS::EC2::VPC and AWS::EC2::Subnet resources.
Azure Bicep with virtualNetwork + subnet array. Cleaner than ARM JSON.
Modern programmatic IaC. Uses @pulumi/aws or @pulumi/azure.
Playbook with amazon.aws.ec2_vpc_subnet tasks, idempotent.
Interface configs, route statements, and ACL examples ready to paste.
Interface, static route, and firewall filter blocks. Ready for load merge.
NetworkPolicy, calico IPPool, or Cilium CIDRGroup based on your subnets.
The IaC Export tool generates Terraform from a subnet plan in your browser, but you can also do it from a script. The snippets below print a Terraform aws_subnet resource for 10.0.1.0/24. The same template works for CloudFormation (swap to YAML) and Pulumi (swap to the appropriate SDK call).
def aws_subnet_tf(name, cidr):
return (
f'resource "aws_subnet" "{name}" {{\n'
f' vpc_id = aws_vpc.{name}.id\n'
f' cidr_block = "{cidr}"\n'
f' tags = {{\n'
f' Name = "{name}"\n'
f' }}\n'
f'}}'
)
print(aws_subnet_tf("main", "10.0.1.0/24"))package main
import "fmt"
func awsSubnetTF(name, cidr string) string {
return fmt.Sprintf(`resource "aws_subnet" "%s" {
vpc_id = aws_vpc.%s.id
cidr_block = "%s"
tags = {
Name = "%s"
}
}`, name, name, cidr, name)
}
func main() {
fmt.Println(awsSubnetTF("main", "10.0.1.0/24"))
}function awsSubnetTF(name, cidr) {
return [
`resource "aws_subnet" "${name}" {`,
` vpc_id = aws_vpc.${name}.id`,
` cidr_block = "${cidr}"`,
` tags = {`,
` Name = "${name}"`,
` }`,
`}`
].join('\n');
}
console.log(awsSubnetTF('main', '10.0.1.0/24'));#!/usr/bin/env bash
# Render a Terraform aws_subnet resource for a given CIDR.
aws_subnet_tf() {
local name=$1 cidr=$2
cat <<EOF
resource "aws_subnet" "${name}" {
vpc_id = aws_vpc.${name}.id
cidr_block = "${cidr}"
tags = {
Name = "${name}"
}
}
EOF
}
aws_subnet_tf "main" "10.0.1.0/24"public class TfSubnet {
static String awsSubnetTF(String name, String cidr) {
return String.format(
"resource \"aws_subnet\" \"%s\" {%n" +
" vpc_id = aws_vpc.%s.id%n" +
" cidr_block = \"%s\"%n" +
" tags = {%n" +
" Name = \"%s\"%n" +
" }%n" +
"}",
name, name, cidr, name);
}
public static void main(String[] args) {
System.out.println(awsSubnetTF("main", "10.0.1.0/24"));
}
}#include <stdio.h>
void aws_subnet_tf(const char *name, const char *cidr) {
printf("resource \"aws_subnet\" \"%s\" {\n", name);
printf(" vpc_id = aws_vpc.%s.id\n", name);
printf(" cidr_block = \"%s\"\n", cidr);
printf(" tags = {\n");
printf(" Name = \"%s\"\n", name);
printf(" }\n");
printf("}\n");
}
int main(void) {
aws_subnet_tf("main", "10.0.1.0/24");
return 0;
}resource "aws_subnet" "main" {
vpc_id = aws_vpc.main.id
cidr_block = "10.0.1.0/24"
tags = {
Name = "main"
}
}