{
  "name": "vpc",
  "version": "1.0.0",
  "kind": "l1",
  "type": "aws:ec2:vpc",
  "description": "VPC primitive (engine-agnostic stack types aws:ec2:vpc + aws:ec2:subnet + aws:ec2:routetable; the Terraform adapter translates to aws_vpc/aws_subnet/aws_route_table).",
  "inputs": {
    "cidr": {
      "type": "string",
      "description": "VPC CIDR block, e.g. 10.0.0.0/16.",
      "required": true
    },
    "azs": {
      "type": "string",
      "description": "Comma-separated availability zones, e.g. us-east-1a,us-east-1b.",
      "required": true
    },
    "name": {
      "type": "string",
      "description": "Name tag for the VPC and child resources.",
      "required": true
    },
    "region": {
      "type": "string",
      "description": "AWS region the VPC is created in.",
      "required": true
    },
    "enabled": {
      "type": "boolean",
      "default": true,
      "description": "Feature flag: enable/disable this module. Set to false to skip resource creation."
    }
  },
  "outputs": {
    "vpc_id": {
      "type": "string",
      "description": "The VPC id."
    },
    "subnet_ids": {
      "type": "string",
      "description": "Comma-separated subnet ids."
    }
  },
  "nfrs": {
    "encryption_enabled": {
      "type": "boolean",
      "description": "Enable KMS-encrypted VPC flow logs.",
      "default": true
    },
    "flow_logs_encrypted": {
      "type": "boolean",
      "description": "Encrypt VPC flow logs with KMS.",
      "default": true
    },
    "deletion_protection": {
      "type": "boolean",
      "description": "Prevent resource destruction via Terraform lifecycle prevent_destroy",
      "default": true
    }
  },
  "resources": [
    {
      "type": "aws:ec2:vpc",
      "description": "The VPC itself.",
      "inputs": [
        "cidr",
        "name"
      ],
      "outputs": [
        "vpc_id"
      ]
    },
    {
      "type": "aws:ec2:subnet",
      "description": "One subnet per availability zone (azs split on comma).",
      "inputs": [
        "cidr",
        "az",
        "vpc_id",
        "name"
      ],
      "outputs": [
        "subnet_ids"
      ]
    },
    {
      "type": "aws:ec2:routetable",
      "description": "Route table bound to the VPC with an internet gateway + default route.",
      "inputs": [
        "vpc_id"
      ],
      "outputs": []
    }
  ],
  "intra_refs": [
    {
      "from": "aws:ec2:subnet.vpc_id",
      "to": "aws:ec2:vpc.vpc_id"
    },
    {
      "from": "aws:ec2:routetable.vpc_id",
      "to": "aws:ec2:vpc.vpc_id"
    }
  ]
}
