{"id":28202150,"url":"https://github.com/opszero/terraform-aws-subnets","last_synced_at":"2026-01-24T07:01:52.242Z","repository":{"id":291688460,"uuid":"974738854","full_name":"opszero/terraform-aws-subnets","owner":"opszero","description":null,"archived":false,"fork":false,"pushed_at":"2025-05-13T04:47:47.000Z","size":72,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-16T23:14:22.466Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"HCL","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/opszero.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":"SUPPORT","governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":["abhiyerra"],"custom":["https://www.opszero.com"]}},"created_at":"2025-04-29T08:28:58.000Z","updated_at":"2025-05-13T04:47:49.000Z","dependencies_parsed_at":"2025-05-06T03:35:41.718Z","dependency_job_id":null,"html_url":"https://github.com/opszero/terraform-aws-subnets","commit_stats":null,"previous_names":["opszero/terraform-aws-subnets"],"tags_count":0,"template":false,"template_full_name":"opszero/terraform-template","purl":"pkg:github/opszero/terraform-aws-subnets","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opszero%2Fterraform-aws-subnets","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opszero%2Fterraform-aws-subnets/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opszero%2Fterraform-aws-subnets/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opszero%2Fterraform-aws-subnets/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/opszero","download_url":"https://codeload.github.com/opszero/terraform-aws-subnets/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opszero%2Fterraform-aws-subnets/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259561603,"owners_count":22876841,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-05-16T23:14:21.294Z","updated_at":"2026-01-24T07:01:52.231Z","avatar_url":"https://github.com/opszero.png","language":"HCL","funding_links":["https://github.com/sponsors/abhiyerra","https://www.opszero.com"],"categories":[],"sub_categories":[],"readme":"# Terraform-aws-subnet\n# Terraform AWS Cloud Subnet Modules\n## Table of Contents\n\n- [Introduction](#introduction)\n- [Usage](#usage)\n- [Examples](#Examples)\n- [Author](#Author)\n- [License](#license)\n- [Inputs](#inputs)\n- [Outputs](#outputs)\n\n\n## Introduction\nThis Terraform module creates AWS subnet along with additional configuration options.\n\n## Usage\nTo use this module, include it in your Terraform configuration file and provide the required input variables. Below is an example of how to use the module:\n# Examples:\n# Example: private-subnet\n\n```hcl\nmodule \"private-subnets\" {\n  source              = \"git::https://github.com/opszero/terraform-aws-subnets.git?ref=v1.0.0\"\n  name                = \"app\"\n  environment         = \"test\"\n  nat_gateway_enabled = true\n  availability_zones  = [\"eu-west-1a\"]\n  vpc_id              = module.vpc.vpc_id\n  type                = \"private\"\n  cidr_block          = module.vpc.vpc_cidr_block\n  ipv6_cidr_block     = module.vpc.ipv6_cidr_block\n  ipv4_private_cidrs  = [\"10.0.3.0/24\"]\n  public_subnet_ids   = [\"subnet-01ef5b61799cc9943\", \"subnet-0542749d02b264baa\"]\n  enable_ipv6         = false\n}\n```\n# Example: public-private-subnet-single-nat-gateway\n\n```hcl\nmodule \"subnets\" {\n  source              = \"git::https://github.com/opszero/terraform-aws-subnets.git?ref=v1.0.0\"\n  name                = \"app\"\n  environment         = \"test\"\n  nat_gateway_enabled = true\n  single_nat_gateway  = true\n  availability_zones  = [\"eu-west-1a\", \"eu-west-1b\", \"eu-west-1c\"]\n  vpc_id              = module.vpc.vpc_id\n  type                = \"public-private\"\n  igw_id              = module.vpc.igw_id\n  cidr_block          = module.vpc.vpc_cidr_block\n  ipv6_cidr_block     = module.vpc.ipv6_cidr_block\n  enable_ipv6         = true\n}\n\n```\n# Example: public-private\n\n```hcl\nmodule \"subnets\" {\n  source              = \"git::https://github.com/opszero/terraform-aws-subnets.git?ref=v1.0.0\"\n  name                = \"app\"\n  environment         = \"test\"\n  nat_gateway_enabled = true\n  availability_zones  = [\"eu-west-1a\", \"eu-west-1b\"]\n  vpc_id              = module.vpc.vpc_id\n  type                = \"public-private\"\n  igw_id              = module.vpc.igw_id\n  cidr_block          = module.vpc.vpc_cidr_block\n  ipv6_cidr_block     = module.vpc.ipv6_cidr_block\n  enable_ipv6         = true\n}\n```\n\n# Example: public-subnet\n\n```hcl\nmodule \"subnet\" {\n  source             = \"git::https://github.com/opszero/terraform-aws-subnets.git?ref=v1.0.0\"\n  name               = \"app\"\n  environment        = \"test\"\n  availability_zones = [\"eu-west-1a\", \"eu-west-1b\", ]\n  type               = \"public\"\n  vpc_id             = module.vpc.vpc_id\n  cidr_block         = module.vpc.vpc_cidr_block\n  igw_id             = module.vpc.igw_id\n  enable_ipv6        = true\n  ipv6_cidr_block    = module.vpc.ipv6_cidr_block\n}\n```\n\n# Example: database-subnet\n\n```hcl\nmodule \"subnet\" {\n  source             = \"git::https://github.com/opszero/terraform-aws-subnets.git?ref=v1.0.0\"\n  name               = \"app\"\n  environment        = \"test\"\n  availability_zones = [\"eu-west-1a\", \"eu-west-1b\", \"eu-west-1c\"]\n  vpc_id             = module.vpc.vpc_id\n  cidr_block         = module.vpc.vpc_cidr_block\n  type               = \"database\"\n  enable_ipv6        = true\n  ipv6_cidr_block    = module.vpc.ipv6_cidr_block\n}\n```\nYou can customize the input variables according to your specific requirements.\n\n# Example: public-private-database-subnet\n\n```hcl\nmodule \"subnet\" {\n  source              = \"git::https://github.com/opszero/terraform-aws-subnets.git?ref=v1.0.0\"\n  name                = \"app\"\n  environment         = \"test\"\n  availability_zones  = [\"eu-west-1a\", \"eu-west-1b\", ]\n  vpc_id              = module.vpc.vpc_id\n  type                = \"public-private-database\"\n  nat_gateway_enabled = true\n  single_nat_gateway  = true\n  cidr_block          = module.vpc.vpc_cidr_block\n  ipv6_cidr_block     = module.vpc.ipv6_cidr_block\n  igw_id              = module.vpc.igw_id\n  enable_ipv6         = true\n}\n```\n\n## Examples\nFor detailed examples on how to use this module, please refer to the [Examples](https://github.com/opszero/terraform-aws-subnets/tree/master/_example) directory within this repository.\n\n## Author\nYour Name Replace **MIT** and **opszero** with the appropriate license and your information. Feel free to expand this README with additional details or usage instructions as needed for your specific use case.\n\n## License\nThis project is licensed under the **MIT** License - see the [LICENSE](https://github.com/opszero/terraform-aws-subnets/blob/master/LICENSE) file for details.\n\n\u003c!-- BEGIN_TF_DOCS --\u003e\n\n## Providers\n\n| Name | Version |\n|------|---------|\n| \u003ca name=\"provider_aws\"\u003e\u003c/a\u003e [aws](#provider\\_aws) | \u003e=5.67.0 |\n## Inputs\n\n| Name | Description | Type | Default | Required |\n|------|-------------|------|---------|:--------:|\n| \u003ca name=\"input_availability_zones\"\u003e\u003c/a\u003e [availability\\_zones](#input\\_availability\\_zones) | List of Availability Zones (e.g. `['us-east-1a', 'us-east-1b', 'us-east-1c']`). | `list(string)` | `[]` | no |\n| \u003ca name=\"input_cidr_block\"\u003e\u003c/a\u003e [cidr\\_block](#input\\_cidr\\_block) | Base CIDR block which is divided into subnet CIDR blocks (e.g. `10.0.0.0/16`). | `string` | `null` | no |\n| \u003ca name=\"input_customer_owned_ipv4_pool\"\u003e\u003c/a\u003e [customer\\_owned\\_ipv4\\_pool](#input\\_customer\\_owned\\_ipv4\\_pool) | The customer-owned IPv4 address pool for the subnet | `string` | `\"\"` | no |\n| \u003ca name=\"input_database_inbound_acl_rules\"\u003e\u003c/a\u003e [database\\_inbound\\_acl\\_rules](#input\\_database\\_inbound\\_acl\\_rules) | database subnets inbound network ACLs | `list(map(string))` | \u003cpre\u003e[\u003cbr/\u003e  {\u003cbr/\u003e    \"cidr_block\": \"0.0.0.0/0\",\u003cbr/\u003e    \"from_port\": 0,\u003cbr/\u003e    \"protocol\": \"-1\",\u003cbr/\u003e    \"rule_action\": \"allow\",\u003cbr/\u003e    \"rule_number\": 100,\u003cbr/\u003e    \"to_port\": 0\u003cbr/\u003e  }\u003cbr/\u003e]\u003c/pre\u003e | no |\n| \u003ca name=\"input_database_ipv6_cidrs\"\u003e\u003c/a\u003e [database\\_ipv6\\_cidrs](#input\\_database\\_ipv6\\_cidrs) | database Subnet CIDR blocks (e.g. `2a05:d018:832:ca02::/64`). | `list(any)` | `[]` | no |\n| \u003ca name=\"input_database_outbound_acl_rules\"\u003e\u003c/a\u003e [database\\_outbound\\_acl\\_rules](#input\\_database\\_outbound\\_acl\\_rules) | database subnets outbound network ACLs | `list(map(string))` | \u003cpre\u003e[\u003cbr/\u003e  {\u003cbr/\u003e    \"cidr_block\": \"0.0.0.0/0\",\u003cbr/\u003e    \"from_port\": 0,\u003cbr/\u003e    \"protocol\": \"-1\",\u003cbr/\u003e    \"rule_action\": \"allow\",\u003cbr/\u003e    \"rule_number\": 100,\u003cbr/\u003e    \"to_port\": 0\u003cbr/\u003e  }\u003cbr/\u003e]\u003c/pre\u003e | no |\n| \u003ca name=\"input_database_subnet_assign_ipv6_address_on_creation\"\u003e\u003c/a\u003e [database\\_subnet\\_assign\\_ipv6\\_address\\_on\\_creation](#input\\_database\\_subnet\\_assign\\_ipv6\\_address\\_on\\_creation) | Specify true to indicate that network interfaces created in the specified subnet should be assigned an IPv6 address. | `bool` | `false` | no |\n| \u003ca name=\"input_database_subnet_enable_dns64\"\u003e\u003c/a\u003e [database\\_subnet\\_enable\\_dns64](#input\\_database\\_subnet\\_enable\\_dns64) | Indicates whether DNS queries made to the Amazon-provided DNS Resolver in this subnet should return synthetic IPv6 addresses for IPv4-only destinations. Default: `true` | `bool` | `false` | no |\n| \u003ca name=\"input_database_subnet_enable_resource_name_dns_a_record_on_launch\"\u003e\u003c/a\u003e [database\\_subnet\\_enable\\_resource\\_name\\_dns\\_a\\_record\\_on\\_launch](#input\\_database\\_subnet\\_enable\\_resource\\_name\\_dns\\_a\\_record\\_on\\_launch) | Indicates whether to respond to DNS queries for instance hostnames with DNS A records. Default: `false` | `bool` | `false` | no |\n| \u003ca name=\"input_database_subnet_enable_resource_name_dns_aaaa_record_on_launch\"\u003e\u003c/a\u003e [database\\_subnet\\_enable\\_resource\\_name\\_dns\\_aaaa\\_record\\_on\\_launch](#input\\_database\\_subnet\\_enable\\_resource\\_name\\_dns\\_aaaa\\_record\\_on\\_launch) | Indicates whether to respond to DNS queries for instance hostnames with DNS AAAA records. Default: `true` | `bool` | `false` | no |\n| \u003ca name=\"input_database_subnet_ipv6_native\"\u003e\u003c/a\u003e [database\\_subnet\\_ipv6\\_native](#input\\_database\\_subnet\\_ipv6\\_native) | Indicates whether to create an IPv6-only database subnet. Default: `false` | `bool` | `false` | no |\n| \u003ca name=\"input_database_subnet_private_dns_hostname_type_on_launch\"\u003e\u003c/a\u003e [database\\_subnet\\_private\\_dns\\_hostname\\_type\\_on\\_launch](#input\\_database\\_subnet\\_private\\_dns\\_hostname\\_type\\_on\\_launch) | The type of hostnames to assign to instances in the subnet at launch. For IPv6-only subnets, an instance DNS name must be based on the instance ID. For dual-stack and IPv4-only subnets, you can specify whether DNS names use the instance IPv4 address or the instance ID. Valid values: `ip-name`, `resource-name` | `string` | `null` | no |\n| \u003ca name=\"input_delimiter\"\u003e\u003c/a\u003e [delimiter](#input\\_delimiter) | Delimiter to be used between `organization`, `environment`, `name` and `attributes`. | `string` | `\"-\"` | no |\n| \u003ca name=\"input_deliver_cross_account_role\"\u003e\u003c/a\u003e [deliver\\_cross\\_account\\_role](#input\\_deliver\\_cross\\_account\\_role) | ARN of the IAM role that allows Amazon EC2 to publish flow logs across accounts. | `string` | `null` | no |\n| \u003ca name=\"input_enable_database_acl\"\u003e\u003c/a\u003e [enable\\_database\\_acl](#input\\_enable\\_database\\_acl) | Set to false to prevent the module from creating any resources. | `bool` | `true` | no |\n| \u003ca name=\"input_enable_flow_log\"\u003e\u003c/a\u003e [enable\\_flow\\_log](#input\\_enable\\_flow\\_log) | Enable subnet\\_flow\\_log logs. | `bool` | `false` | no |\n| \u003ca name=\"input_enable_ipv6\"\u003e\u003c/a\u003e [enable\\_ipv6](#input\\_enable\\_ipv6) | Requests an Amazon-provided IPv6 CIDR block with a /56 prefix length for the VPC. You cannot specify the range of IP addresses, or the size of the CIDR block | `bool` | `false` | no |\n| \u003ca name=\"input_enable_lni_at_device_index\"\u003e\u003c/a\u003e [enable\\_lni\\_at\\_device\\_index](#input\\_enable\\_lni\\_at\\_device\\_index) | Indicates the device position for local network interfaces in this subnet. This is used for AWS Outposts only. | `number` | `null` | no |\n| \u003ca name=\"input_enable_private_acl\"\u003e\u003c/a\u003e [enable\\_private\\_acl](#input\\_enable\\_private\\_acl) | Set to false to prevent the module from creating any resources. | `bool` | `true` | no |\n| \u003ca name=\"input_enable_public_acl\"\u003e\u003c/a\u003e [enable\\_public\\_acl](#input\\_enable\\_public\\_acl) | Set to false to prevent the module from creating any resources. | `bool` | `true` | no |\n| \u003ca name=\"input_enabled\"\u003e\u003c/a\u003e [enabled](#input\\_enabled) | Set to false to prevent the module from creating any resources. | `bool` | `true` | no |\n| \u003ca name=\"input_eni_id\"\u003e\u003c/a\u003e [eni\\_id](#input\\_eni\\_id) | Elastic Network Interface ID to attach to. | `string` | `null` | no |\n| \u003ca name=\"input_environment\"\u003e\u003c/a\u003e [environment](#input\\_environment) | Environment (e.g. `prod`, `dev`, `staging`). | `string` | `\"\"` | no |\n| \u003ca name=\"input_extra_database_tags\"\u003e\u003c/a\u003e [extra\\_database\\_tags](#input\\_extra\\_database\\_tags) | Additional private subnet tags. | `map(any)` | `{}` | no |\n| \u003ca name=\"input_extra_private_tags\"\u003e\u003c/a\u003e [extra\\_private\\_tags](#input\\_extra\\_private\\_tags) | Additional private subnet tags. | `map(any)` | `{}` | no |\n| \u003ca name=\"input_extra_public_tags\"\u003e\u003c/a\u003e [extra\\_public\\_tags](#input\\_extra\\_public\\_tags) | Additional tags (e.g. map(`BusinessUnit`,`XYZ`). | `map(any)` | `{}` | no |\n| \u003ca name=\"input_flow_log_deliver_cross_account_role\"\u003e\u003c/a\u003e [flow\\_log\\_deliver\\_cross\\_account\\_role](#input\\_flow\\_log\\_deliver\\_cross\\_account\\_role) | The ARN of the IAM role that allows Amazon EC2 to publish flow logs across accounts. | `string` | `null` | no |\n| \u003ca name=\"input_flow_log_destination_arn\"\u003e\u003c/a\u003e [flow\\_log\\_destination\\_arn](#input\\_flow\\_log\\_destination\\_arn) | ARN of resource in which flow log will be sent. | `string` | `null` | no |\n| \u003ca name=\"input_flow_log_destination_type\"\u003e\u003c/a\u003e [flow\\_log\\_destination\\_type](#input\\_flow\\_log\\_destination\\_type) | Type of flow log destination. Can be s3 or cloud-watch-logs | `string` | `\"cloud-watch-logs\"` | no |\n| \u003ca name=\"input_flow_log_eni_id\"\u003e\u003c/a\u003e [flow\\_log\\_eni\\_id](#input\\_flow\\_log\\_eni\\_id) | Elastic Network Interface ID to attach to. | `string` | `null` | no |\n| \u003ca name=\"input_flow_log_file_format\"\u003e\u003c/a\u003e [flow\\_log\\_file\\_format](#input\\_flow\\_log\\_file\\_format) | (Optional) The format for the flow log. Valid values: `plain-text`, `parquet` | `string` | `null` | no |\n| \u003ca name=\"input_flow_log_hive_compatible_partitions\"\u003e\u003c/a\u003e [flow\\_log\\_hive\\_compatible\\_partitions](#input\\_flow\\_log\\_hive\\_compatible\\_partitions) | (Optional) Indicates whether to use Hive-compatible prefixes for flow logs stored in Amazon S3 | `bool` | `false` | no |\n| \u003ca name=\"input_flow_log_iam_role_arn\"\u003e\u003c/a\u003e [flow\\_log\\_iam\\_role\\_arn](#input\\_flow\\_log\\_iam\\_role\\_arn) | The ARN for the IAM role that's used to post flow logs to a CloudWatch Logs log group. When flow\\_log\\_destination\\_arn is set to ARN of Cloudwatch Logs, this argument needs to be provided | `string` | `null` | no |\n| \u003ca name=\"input_flow_log_log_format\"\u003e\u003c/a\u003e [flow\\_log\\_log\\_format](#input\\_flow\\_log\\_log\\_format) | The fields to include in the flow log record, in the order in which they should appear | `string` | `null` | no |\n| \u003ca name=\"input_flow_log_max_aggregation_interval\"\u003e\u003c/a\u003e [flow\\_log\\_max\\_aggregation\\_interval](#input\\_flow\\_log\\_max\\_aggregation\\_interval) | The maximum interval of time during which a flow of packets is captured and aggregated into a flow log record. Valid Values: `60` seconds or `600` seconds | `number` | `600` | no |\n| \u003ca name=\"input_flow_log_per_hour_partition\"\u003e\u003c/a\u003e [flow\\_log\\_per\\_hour\\_partition](#input\\_flow\\_log\\_per\\_hour\\_partition) | (Optional) Indicates whether to partition the flow log per hour. This reduces the cost and response time for queries | `bool` | `false` | no |\n| \u003ca name=\"input_flow_log_traffic_type\"\u003e\u003c/a\u003e [flow\\_log\\_traffic\\_type](#input\\_flow\\_log\\_traffic\\_type) | Type of traffic to capture. Valid values: ACCEPT,REJECT, ALL. | `string` | `\"ALL\"` | no |\n| \u003ca name=\"input_flow_log_transit_gateway_attachment_id\"\u003e\u003c/a\u003e [flow\\_log\\_transit\\_gateway\\_attachment\\_id](#input\\_flow\\_log\\_transit\\_gateway\\_attachment\\_id) | Transit Gateway Attachment ID to attach to. | `string` | `null` | no |\n| \u003ca name=\"input_flow_log_transit_gateway_id\"\u003e\u003c/a\u003e [flow\\_log\\_transit\\_gateway\\_id](#input\\_flow\\_log\\_transit\\_gateway\\_id) | Transit Gateway ID to attach to. | `string` | `null` | no |\n| \u003ca name=\"input_flow_log_vpc_id\"\u003e\u003c/a\u003e [flow\\_log\\_vpc\\_id](#input\\_flow\\_log\\_vpc\\_id) | VPC ID to attach to. | `string` | `null` | no |\n| \u003ca name=\"input_igw_id\"\u003e\u003c/a\u003e [igw\\_id](#input\\_igw\\_id) | Internet Gateway ID that is used as a default route when creating public subnets (e.g. `igw-9c26a123`). | `string` | `\"\"` | no |\n| \u003ca name=\"input_ipv4_database_cidrs\"\u003e\u003c/a\u003e [ipv4\\_database\\_cidrs](#input\\_ipv4\\_database\\_cidrs) | Subnet CIDR blocks (e.g. `10.0.0.0/16`). | `list(any)` | `[]` | no |\n| \u003ca name=\"input_ipv4_private_cidrs\"\u003e\u003c/a\u003e [ipv4\\_private\\_cidrs](#input\\_ipv4\\_private\\_cidrs) | Subnet CIDR blocks (e.g. `10.0.0.0/16`). | `list(any)` | `[]` | no |\n| \u003ca name=\"input_ipv4_public_cidrs\"\u003e\u003c/a\u003e [ipv4\\_public\\_cidrs](#input\\_ipv4\\_public\\_cidrs) | Subnet CIDR blocks (e.g. `10.0.0.0/16`). | `list(any)` | `[]` | no |\n| \u003ca name=\"input_ipv6_cidr_block\"\u003e\u003c/a\u003e [ipv6\\_cidr\\_block](#input\\_ipv6\\_cidr\\_block) | Base CIDR block which is divided into subnet CIDR blocks (e.g. `10.0.0.0/16`). | `string` | `null` | no |\n| \u003ca name=\"input_managedby\"\u003e\u003c/a\u003e [managedby](#input\\_managedby) | ManagedBy, eg 'info@opszero.com' | `string` | `\"info@opszero.com\"` | no |\n| \u003ca name=\"input_map_customer_owned_ip_on_launch\"\u003e\u003c/a\u003e [map\\_customer\\_owned\\_ip\\_on\\_launch](#input\\_map\\_customer\\_owned\\_ip\\_on\\_launch) | Whether to map customer-owned IPs on launch | `bool` | `false` | no |\n| \u003ca name=\"input_map_database_ip_on_launch\"\u003e\u003c/a\u003e [map\\_database\\_ip\\_on\\_launch](#input\\_map\\_database\\_ip\\_on\\_launch) | Specify true to indicate that instances launched into the database subnet should be assigned a public IP address. | `bool` | `false` | no |\n| \u003ca name=\"input_map_public_ip_on_launch\"\u003e\u003c/a\u003e [map\\_public\\_ip\\_on\\_launch](#input\\_map\\_public\\_ip\\_on\\_launch) | Specify true to indicate that instances launched into the public subnet should be assigned a public IP address. | `bool` | `false` | no |\n| \u003ca name=\"input_name\"\u003e\u003c/a\u003e [name](#input\\_name) | Name  (e.g. `prod-subnet` or `subnet`). | `string` | `\"\"` | no |\n| \u003ca name=\"input_nat_gateway_destination_cidr_block\"\u003e\u003c/a\u003e [nat\\_gateway\\_destination\\_cidr\\_block](#input\\_nat\\_gateway\\_destination\\_cidr\\_block) | The CIDR block for the NAT gateway route. | `string` | `\"0.0.0.0/0\"` | no |\n| \u003ca name=\"input_nat_gateway_enabled\"\u003e\u003c/a\u003e [nat\\_gateway\\_enabled](#input\\_nat\\_gateway\\_enabled) | Flag to enable/disable NAT Gateways creation in public subnets. | `bool` | `false` | no |\n| \u003ca name=\"input_outpost_arn\"\u003e\u003c/a\u003e [outpost\\_arn](#input\\_outpost\\_arn) | The ARN of the Outpost to create the subnet in | `string` | `\"\"` | no |\n| \u003ca name=\"input_private_inbound_acl_rules\"\u003e\u003c/a\u003e [private\\_inbound\\_acl\\_rules](#input\\_private\\_inbound\\_acl\\_rules) | Private subnets inbound network ACLs | `list(map(string))` | \u003cpre\u003e[\u003cbr/\u003e  {\u003cbr/\u003e    \"cidr_block\": \"0.0.0.0/0\",\u003cbr/\u003e    \"from_port\": 0,\u003cbr/\u003e    \"protocol\": \"-1\",\u003cbr/\u003e    \"rule_action\": \"allow\",\u003cbr/\u003e    \"rule_number\": 100,\u003cbr/\u003e    \"to_port\": 0\u003cbr/\u003e  }\u003cbr/\u003e]\u003c/pre\u003e | no |\n| \u003ca name=\"input_private_ipv6_cidrs\"\u003e\u003c/a\u003e [private\\_ipv6\\_cidrs](#input\\_private\\_ipv6\\_cidrs) | Private Subnet CIDR blocks (e.g. `2a05:d018:832:ca02::/64`). | `list(any)` | `[]` | no |\n| \u003ca name=\"input_private_outbound_acl_rules\"\u003e\u003c/a\u003e [private\\_outbound\\_acl\\_rules](#input\\_private\\_outbound\\_acl\\_rules) | Private subnets outbound network ACLs | `list(map(string))` | \u003cpre\u003e[\u003cbr/\u003e  {\u003cbr/\u003e    \"cidr_block\": \"0.0.0.0/0\",\u003cbr/\u003e    \"from_port\": 0,\u003cbr/\u003e    \"protocol\": \"-1\",\u003cbr/\u003e    \"rule_action\": \"allow\",\u003cbr/\u003e    \"rule_number\": 100,\u003cbr/\u003e    \"to_port\": 0\u003cbr/\u003e  }\u003cbr/\u003e]\u003c/pre\u003e | no |\n| \u003ca name=\"input_private_subnet_assign_ipv6_address_on_creation\"\u003e\u003c/a\u003e [private\\_subnet\\_assign\\_ipv6\\_address\\_on\\_creation](#input\\_private\\_subnet\\_assign\\_ipv6\\_address\\_on\\_creation) | Specify true to indicate that network interfaces created in the specified subnet should be assigned an IPv6 address. | `bool` | `false` | no |\n| \u003ca name=\"input_private_subnet_enable_dns64\"\u003e\u003c/a\u003e [private\\_subnet\\_enable\\_dns64](#input\\_private\\_subnet\\_enable\\_dns64) | Indicates whether DNS queries made to the Amazon-provided DNS Resolver in this subnet should return synthetic IPv6 addresses for IPv4-only destinations. Default: `true` | `bool` | `false` | no |\n| \u003ca name=\"input_private_subnet_enable_resource_name_dns_a_record_on_launch\"\u003e\u003c/a\u003e [private\\_subnet\\_enable\\_resource\\_name\\_dns\\_a\\_record\\_on\\_launch](#input\\_private\\_subnet\\_enable\\_resource\\_name\\_dns\\_a\\_record\\_on\\_launch) | Indicates whether to respond to DNS queries for instance hostnames with DNS A records. Default: `false` | `bool` | `false` | no |\n| \u003ca name=\"input_private_subnet_enable_resource_name_dns_aaaa_record_on_launch\"\u003e\u003c/a\u003e [private\\_subnet\\_enable\\_resource\\_name\\_dns\\_aaaa\\_record\\_on\\_launch](#input\\_private\\_subnet\\_enable\\_resource\\_name\\_dns\\_aaaa\\_record\\_on\\_launch) | Indicates whether to respond to DNS queries for instance hostnames with DNS AAAA records. Default: `true` | `bool` | `false` | no |\n| \u003ca name=\"input_private_subnet_ipv6_native\"\u003e\u003c/a\u003e [private\\_subnet\\_ipv6\\_native](#input\\_private\\_subnet\\_ipv6\\_native) | Indicates whether to create an IPv6-only private subnet. Default: `false` | `bool` | `false` | no |\n| \u003ca name=\"input_private_subnet_private_dns_hostname_type_on_launch\"\u003e\u003c/a\u003e [private\\_subnet\\_private\\_dns\\_hostname\\_type\\_on\\_launch](#input\\_private\\_subnet\\_private\\_dns\\_hostname\\_type\\_on\\_launch) | The type of hostnames to assign to instances in the subnet at launch. For IPv6-only subnets, an instance DNS name must be based on the instance ID. For dual-stack and IPv4-only subnets, you can specify whether DNS names use the instance IPv4 address or the instance ID. Valid values: `ip-name`, `resource-name` | `string` | `null` | no |\n| \u003ca name=\"input_public_inbound_acl_rules\"\u003e\u003c/a\u003e [public\\_inbound\\_acl\\_rules](#input\\_public\\_inbound\\_acl\\_rules) | Public subnets inbound network ACLs | `list(map(string))` | \u003cpre\u003e[\u003cbr/\u003e  {\u003cbr/\u003e    \"cidr_block\": \"0.0.0.0/0\",\u003cbr/\u003e    \"from_port\": 0,\u003cbr/\u003e    \"protocol\": \"-1\",\u003cbr/\u003e    \"rule_action\": \"allow\",\u003cbr/\u003e    \"rule_number\": 100,\u003cbr/\u003e    \"to_port\": 0\u003cbr/\u003e  }\u003cbr/\u003e]\u003c/pre\u003e | no |\n| \u003ca name=\"input_public_ipv6_cidrs\"\u003e\u003c/a\u003e [public\\_ipv6\\_cidrs](#input\\_public\\_ipv6\\_cidrs) | Public Subnet CIDR blocks (e.g. `2a05:d018:832:ca02::/64`). | `list(any)` | `[]` | no |\n| \u003ca name=\"input_public_outbound_acl_rules\"\u003e\u003c/a\u003e [public\\_outbound\\_acl\\_rules](#input\\_public\\_outbound\\_acl\\_rules) | Public subnets outbound network ACLs | `list(map(string))` | \u003cpre\u003e[\u003cbr/\u003e  {\u003cbr/\u003e    \"cidr_block\": \"0.0.0.0/0\",\u003cbr/\u003e    \"from_port\": 0,\u003cbr/\u003e    \"protocol\": \"-1\",\u003cbr/\u003e    \"rule_action\": \"allow\",\u003cbr/\u003e    \"rule_number\": 100,\u003cbr/\u003e    \"to_port\": 0\u003cbr/\u003e  }\u003cbr/\u003e]\u003c/pre\u003e | no |\n| \u003ca name=\"input_public_rt_ipv4_destination_cidr\"\u003e\u003c/a\u003e [public\\_rt\\_ipv4\\_destination\\_cidr](#input\\_public\\_rt\\_ipv4\\_destination\\_cidr) | The destination ipv4 CIDR block. | `string` | `\"0.0.0.0/0\"` | no |\n| \u003ca name=\"input_public_rt_ipv6_destination_cidr\"\u003e\u003c/a\u003e [public\\_rt\\_ipv6\\_destination\\_cidr](#input\\_public\\_rt\\_ipv6\\_destination\\_cidr) | The destination ipv6 CIDR block. | `string` | `\"::/0\"` | no |\n| \u003ca name=\"input_public_subnet_assign_ipv6_address_on_creation\"\u003e\u003c/a\u003e [public\\_subnet\\_assign\\_ipv6\\_address\\_on\\_creation](#input\\_public\\_subnet\\_assign\\_ipv6\\_address\\_on\\_creation) | Specify true to indicate that network interfaces created in the specified subnet should be assigned an IPv6 address. | `bool` | `false` | no |\n| \u003ca name=\"input_public_subnet_enable_dns64\"\u003e\u003c/a\u003e [public\\_subnet\\_enable\\_dns64](#input\\_public\\_subnet\\_enable\\_dns64) | Indicates whether DNS queries made to the Amazon-provided DNS Resolver in this subnet should return synthetic IPv6 addresses for IPv4-only destinations. Default: `true` | `bool` | `false` | no |\n| \u003ca name=\"input_public_subnet_enable_resource_name_dns_a_record_on_launch\"\u003e\u003c/a\u003e [public\\_subnet\\_enable\\_resource\\_name\\_dns\\_a\\_record\\_on\\_launch](#input\\_public\\_subnet\\_enable\\_resource\\_name\\_dns\\_a\\_record\\_on\\_launch) | Indicates whether to respond to DNS queries for instance hostnames with DNS A records. Default: `false` | `bool` | `false` | no |\n| \u003ca name=\"input_public_subnet_enable_resource_name_dns_aaaa_record_on_launch\"\u003e\u003c/a\u003e [public\\_subnet\\_enable\\_resource\\_name\\_dns\\_aaaa\\_record\\_on\\_launch](#input\\_public\\_subnet\\_enable\\_resource\\_name\\_dns\\_aaaa\\_record\\_on\\_launch) | Indicates whether to respond to DNS queries for instance hostnames with DNS AAAA records. Default: `true` | `bool` | `false` | no |\n| \u003ca name=\"input_public_subnet_ids\"\u003e\u003c/a\u003e [public\\_subnet\\_ids](#input\\_public\\_subnet\\_ids) | A list of public subnet ids. | `list(string)` | `[]` | no |\n| \u003ca name=\"input_public_subnet_ipv6_native\"\u003e\u003c/a\u003e [public\\_subnet\\_ipv6\\_native](#input\\_public\\_subnet\\_ipv6\\_native) | Indicates whether to create an IPv6-only public subnet. Default: `false` | `bool` | `false` | no |\n| \u003ca name=\"input_public_subnet_private_dns_hostname_type_on_launch\"\u003e\u003c/a\u003e [public\\_subnet\\_private\\_dns\\_hostname\\_type\\_on\\_launch](#input\\_public\\_subnet\\_private\\_dns\\_hostname\\_type\\_on\\_launch) | The type of private DNS hostname to assign to instances in this subnet at launch. Must be either 'ip-name' or 'resource-name'. | `string` | `\"ip-name\"` | no |\n| \u003ca name=\"input_single_nat_gateway\"\u003e\u003c/a\u003e [single\\_nat\\_gateway](#input\\_single\\_nat\\_gateway) | Enable for only single NAT Gateway in one Availability Zone | `bool` | `false` | no |\n| \u003ca name=\"input_tags\"\u003e\u003c/a\u003e [tags](#input\\_tags) | Global tags to apply to resources. | `map(string)` | \u003cpre\u003e{\u003cbr/\u003e  \"Environment\": \"production\",\u003cbr/\u003e  \"ManagedBy\": \"Terraform\",\u003cbr/\u003e  \"Name\": \"my-resource-name\"\u003cbr/\u003e}\u003c/pre\u003e | no |\n| \u003ca name=\"input_transit_gateway_id\"\u003e\u003c/a\u003e [transit\\_gateway\\_id](#input\\_transit\\_gateway\\_id) | Transit Gateway ID to attach to. | `string` | `null` | no |\n| \u003ca name=\"input_type\"\u003e\u003c/a\u003e [type](#input\\_type) | Type of subnets to create (`private` or `public`). | `string` | `\"\"` | no |\n| \u003ca name=\"input_vpc_id\"\u003e\u003c/a\u003e [vpc\\_id](#input\\_vpc\\_id) | The VPC ID where the public and private subnets will be created. | `string` | n/a | yes |\n## Resources\n\n| Name | Type |\n|------|------|\n| [aws_eip.private](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/eip) | resource |\n| [aws_flow_log.database_subnet_flow_log](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/flow_log) | resource |\n| [aws_flow_log.private_subnet_flow_log](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/flow_log) | resource |\n| [aws_flow_log.public_subnet_flow_log](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/flow_log) | resource |\n| [aws_nat_gateway.private](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/nat_gateway) | resource |\n| [aws_network_acl.database](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/network_acl) | resource |\n| [aws_network_acl.private](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/network_acl) | resource |\n| [aws_network_acl.public](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/network_acl) | resource |\n| [aws_network_acl_rule.database_inbound](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/network_acl_rule) | resource |\n| [aws_network_acl_rule.database_outbound](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/network_acl_rule) | resource |\n| [aws_network_acl_rule.private_inbound](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/network_acl_rule) | resource |\n| [aws_network_acl_rule.private_outbound](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/network_acl_rule) | resource |\n| [aws_network_acl_rule.public_inbound](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/network_acl_rule) | resource |\n| [aws_network_acl_rule.public_outbound](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/network_acl_rule) | resource |\n| [aws_route.nat_gateway](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/route) | resource |\n| [aws_route.public](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/route) | resource |\n| [aws_route.public_ipv6](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/route) | resource |\n| [aws_route_table.database](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/route_table) | resource |\n| [aws_route_table.private](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/route_table) | resource |\n| [aws_route_table.public](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/route_table) | resource |\n| [aws_route_table_association.database](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/route_table_association) | resource |\n| [aws_route_table_association.private](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/route_table_association) | resource |\n| [aws_route_table_association.public](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/route_table_association) | resource |\n| [aws_subnet.database](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/subnet) | resource |\n| [aws_subnet.private](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/subnet) | resource |\n| [aws_subnet.public](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/subnet) | resource |\n## Outputs\n\n| Name | Description |\n|------|-------------|\n| \u003ca name=\"output_created_subnet_ids\"\u003e\u003c/a\u003e [created\\_subnet\\_ids](#output\\_created\\_subnet\\_ids) | The IDs of the subnets created in the public availability zones. |\n| \u003ca name=\"output_database_acl\"\u003e\u003c/a\u003e [database\\_acl](#output\\_database\\_acl) | The ID of the network ACL. |\n| \u003ca name=\"output_database_route_tables_id\"\u003e\u003c/a\u003e [database\\_route\\_tables\\_id](#output\\_database\\_route\\_tables\\_id) | The ID of the routing table. |\n| \u003ca name=\"output_database_subnet_arn\"\u003e\u003c/a\u003e [database\\_subnet\\_arn](#output\\_database\\_subnet\\_arn) | ARNs of all database subnets |\n| \u003ca name=\"output_database_subnet_cidrs\"\u003e\u003c/a\u003e [database\\_subnet\\_cidrs](#output\\_database\\_subnet\\_cidrs) | CIDR blocks of the created database subnets. |\n| \u003ca name=\"output_database_subnet_cidrs_ipv6\"\u003e\u003c/a\u003e [database\\_subnet\\_cidrs\\_ipv6](#output\\_database\\_subnet\\_cidrs\\_ipv6) | CIDR blocks of the created database subnets. |\n| \u003ca name=\"output_database_subnet_id\"\u003e\u003c/a\u003e [database\\_subnet\\_id](#output\\_database\\_subnet\\_id) | The ID of the subnet. |\n| \u003ca name=\"output_database_subnet_ipv6_cidr_block_association_id\"\u003e\u003c/a\u003e [database\\_subnet\\_ipv6\\_cidr\\_block\\_association\\_id](#output\\_database\\_subnet\\_ipv6\\_cidr\\_block\\_association\\_id) | IPv6 CIDR block association IDs for database subnets |\n| \u003ca name=\"output_database_subnet_owner_id\"\u003e\u003c/a\u003e [database\\_subnet\\_owner\\_id](#output\\_database\\_subnet\\_owner\\_id) | Owner IDs of all database subnets |\n| \u003ca name=\"output_database_subnet_tags_all\"\u003e\u003c/a\u003e [database\\_subnet\\_tags\\_all](#output\\_database\\_subnet\\_tags\\_all) | All tags for database subnets |\n| \u003ca name=\"output_database_tags\"\u003e\u003c/a\u003e [database\\_tags](#output\\_database\\_tags) | A mapping of public tags to assign to the resource. |\n| \u003ca name=\"output_flow_log_arn\"\u003e\u003c/a\u003e [flow\\_log\\_arn](#output\\_flow\\_log\\_arn) | The ARN of the Flow Log. |\n| \u003ca name=\"output_flow_log_id\"\u003e\u003c/a\u003e [flow\\_log\\_id](#output\\_flow\\_log\\_id) | The Flow Log ID. |\n| \u003ca name=\"output_flow_log_tags_all\"\u003e\u003c/a\u003e [flow\\_log\\_tags\\_all](#output\\_flow\\_log\\_tags\\_all) | A map of tags assigned to the resource, including those inherited from the provider default\\_tags configuration block. |\n| \u003ca name=\"output_nat_gateway_ids\"\u003e\u003c/a\u003e [nat\\_gateway\\_ids](#output\\_nat\\_gateway\\_ids) | IDs of all NAT gateways |\n| \u003ca name=\"output_nat_gateway_subnet_id\"\u003e\u003c/a\u003e [nat\\_gateway\\_subnet\\_id](#output\\_nat\\_gateway\\_subnet\\_id) | Subnet IDs for all NAT gateways |\n| \u003ca name=\"output_private_acl\"\u003e\u003c/a\u003e [private\\_acl](#output\\_private\\_acl) | The ID of the network ACL. |\n| \u003ca name=\"output_private_route_tables_id\"\u003e\u003c/a\u003e [private\\_route\\_tables\\_id](#output\\_private\\_route\\_tables\\_id) | The ID of the routing table. |\n| \u003ca name=\"output_private_subnet_arn\"\u003e\u003c/a\u003e [private\\_subnet\\_arn](#output\\_private\\_subnet\\_arn) | ARNs of all private subnets |\n| \u003ca name=\"output_private_subnet_cidrs\"\u003e\u003c/a\u003e [private\\_subnet\\_cidrs](#output\\_private\\_subnet\\_cidrs) | CIDR blocks of the created private subnets. |\n| \u003ca name=\"output_private_subnet_cidrs_ipv6\"\u003e\u003c/a\u003e [private\\_subnet\\_cidrs\\_ipv6](#output\\_private\\_subnet\\_cidrs\\_ipv6) | CIDR blocks of the created private subnets. |\n| \u003ca name=\"output_private_subnet_id\"\u003e\u003c/a\u003e [private\\_subnet\\_id](#output\\_private\\_subnet\\_id) | The ID of the private subnet. |\n| \u003ca name=\"output_private_subnet_owner_id\"\u003e\u003c/a\u003e [private\\_subnet\\_owner\\_id](#output\\_private\\_subnet\\_owner\\_id) | Owner ID of the first private subnet, if it exists |\n| \u003ca name=\"output_private_subnet_tags_all\"\u003e\u003c/a\u003e [private\\_subnet\\_tags\\_all](#output\\_private\\_subnet\\_tags\\_all) | All tags for the first private subnet, if it exists |\n| \u003ca name=\"output_private_subnet_vpc_id\"\u003e\u003c/a\u003e [private\\_subnet\\_vpc\\_id](#output\\_private\\_subnet\\_vpc\\_id) | VPC IDs of all private subnets |\n| \u003ca name=\"output_private_tags\"\u003e\u003c/a\u003e [private\\_tags](#output\\_private\\_tags) | A mapping of private tags to assign to the resource. |\n| \u003ca name=\"output_public_acl\"\u003e\u003c/a\u003e [public\\_acl](#output\\_public\\_acl) | The ID of the network ACL. |\n| \u003ca name=\"output_public_private_subnet_arn\"\u003e\u003c/a\u003e [public\\_private\\_subnet\\_arn](#output\\_public\\_private\\_subnet\\_arn) | ARNs of all public/private subnets |\n| \u003ca name=\"output_public_private_subnet_id\"\u003e\u003c/a\u003e [public\\_private\\_subnet\\_id](#output\\_public\\_private\\_subnet\\_id) | ID of the first private subnet, if it exists |\n| \u003ca name=\"output_public_private_subnet_ipv6_cidr_block_association_id\"\u003e\u003c/a\u003e [public\\_private\\_subnet\\_ipv6\\_cidr\\_block\\_association\\_id](#output\\_public\\_private\\_subnet\\_ipv6\\_cidr\\_block\\_association\\_id) | IPv6 CIDR block association IDs for public/private subnets |\n| \u003ca name=\"output_public_private_subnet_owner_id\"\u003e\u003c/a\u003e [public\\_private\\_subnet\\_owner\\_id](#output\\_public\\_private\\_subnet\\_owner\\_id) | Owner IDs of all public/private subnets |\n| \u003ca name=\"output_public_private_subnet_tags_all\"\u003e\u003c/a\u003e [public\\_private\\_subnet\\_tags\\_all](#output\\_public\\_private\\_subnet\\_tags\\_all) | All tags for public/private subnets |\n| \u003ca name=\"output_public_route_tables_id\"\u003e\u003c/a\u003e [public\\_route\\_tables\\_id](#output\\_public\\_route\\_tables\\_id) | The ID of the routing table. |\n| \u003ca name=\"output_public_subnet_arn\"\u003e\u003c/a\u003e [public\\_subnet\\_arn](#output\\_public\\_subnet\\_arn) | ARNs of all public subnets |\n| \u003ca name=\"output_public_subnet_cidrs\"\u003e\u003c/a\u003e [public\\_subnet\\_cidrs](#output\\_public\\_subnet\\_cidrs) | CIDR blocks of the created public subnets. |\n| \u003ca name=\"output_public_subnet_cidrs_ipv6\"\u003e\u003c/a\u003e [public\\_subnet\\_cidrs\\_ipv6](#output\\_public\\_subnet\\_cidrs\\_ipv6) | CIDR blocks of the created public subnets. |\n| \u003ca name=\"output_public_subnet_id\"\u003e\u003c/a\u003e [public\\_subnet\\_id](#output\\_public\\_subnet\\_id) | The ID of the subnet. |\n| \u003ca name=\"output_public_subnet_ids\"\u003e\u003c/a\u003e [public\\_subnet\\_ids](#output\\_public\\_subnet\\_ids) | IDs of all public subnets |\n| \u003ca name=\"output_public_subnet_ipv6_cidr_block_association_id\"\u003e\u003c/a\u003e [public\\_subnet\\_ipv6\\_cidr\\_block\\_association\\_id](#output\\_public\\_subnet\\_ipv6\\_cidr\\_block\\_association\\_id) | IPv6 CIDR block association IDs for public subnets |\n| \u003ca name=\"output_public_subnet_owner_id\"\u003e\u003c/a\u003e [public\\_subnet\\_owner\\_id](#output\\_public\\_subnet\\_owner\\_id) | Owner IDs of all public subnets |\n| \u003ca name=\"output_public_subnet_tags_all\"\u003e\u003c/a\u003e [public\\_subnet\\_tags\\_all](#output\\_public\\_subnet\\_tags\\_all) | All tags for public subnets |\n| \u003ca name=\"output_public_tags\"\u003e\u003c/a\u003e [public\\_tags](#output\\_public\\_tags) | A mapping of public tags to assign to the resource. |\n| \u003ca name=\"output_route_table_vpc_id\"\u003e\u003c/a\u003e [route\\_table\\_vpc\\_id](#output\\_route\\_table\\_vpc\\_id) | VPC IDs of all private route tables |\n# 🚀 Built by opsZero!\n\n\u003ca href=\"https://opszero.com\"\u003e\u003cimg src=\"https://opszero.com/img/common/opsZero-Logo-Large.webp\" width=\"300px\"/\u003e\u003c/a\u003e\n\n[opsZero](https://opszero.com) provides software and consulting for Cloud + AI. With our decade plus of experience scaling some of the world’s most innovative companies we have developed deep expertise in Kubernetes, DevOps, FinOps, and Compliance.\n\nOur software and consulting solutions enable organizations to:\n\n- migrate workloads to the Cloud\n- setup compliance frameworks including SOC2, HIPAA, PCI-DSS, ITAR, FedRamp, CMMC, and more.\n- FinOps solutions to reduce the cost of running Cloud workloads\n- Kubernetes optimized for web scale and AI workloads\n- finding underutilized Cloud resources\n- setting up custom AI training and delivery\n- building data integrations and scrapers\n- modernizing onto modern ARM based processors\n\nWe do this with a high-touch support model where you:\n\n- Get access to us on Slack, Microsoft Teams or Email\n- Get 24/7 coverage of your infrastructure\n- Get an accelerated migration to Kubernetes\n\nPlease [schedule a call](https://calendly.com/opszero-llc/discovery) if you need support.\n\n\u003cbr/\u003e\u003cbr/\u003e\n\n\u003cdiv style=\"display: block\"\u003e\n  \u003cimg src=\"https://opszero.com/img/common/aws-advanced.png\" alt=\"AWS Advanced Tier\" width=\"150px\" \u003e\n  \u003cimg src=\"https://opszero.com/img/common/aws-devops-competency.png\" alt=\"AWS DevOps Competency\" width=\"150px\" \u003e\n  \u003cimg src=\"https://opszero.com/img/common/aws-eks.png\" alt=\"AWS EKS Delivery\" width=\"150px\" \u003e\n  \u003cimg src=\"https://opszero.com/img/common/aws-public-sector.png\" alt=\"AWS Public Sector\" width=\"150px\" \u003e\n\u003c/div\u003e\n\u003c!-- END_TF_DOCS --\u003e","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopszero%2Fterraform-aws-subnets","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopszero%2Fterraform-aws-subnets","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopszero%2Fterraform-aws-subnets/lists"}