{"id":22398751,"url":"https://github.com/schubergphilis/terraform-aws-mcaf-vpc","last_synced_at":"2025-10-07T10:27:46.831Z","repository":{"id":44893761,"uuid":"195976935","full_name":"schubergphilis/terraform-aws-mcaf-vpc","owner":"schubergphilis","description":"Terraform module to manage an AWS VPC","archived":false,"fork":false,"pushed_at":"2024-12-03T23:10:17.000Z","size":130,"stargazers_count":2,"open_issues_count":1,"forks_count":10,"subscribers_count":22,"default_branch":"master","last_synced_at":"2024-12-04T00:20:04.163Z","etag":null,"topics":["aws","terraform","terraform-module"],"latest_commit_sha":null,"homepage":"https://registry.terraform.io/modules/schubergphilis/mcaf-vpc/aws/latest","language":"HCL","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/schubergphilis.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-07-09T09:26:59.000Z","updated_at":"2024-12-03T23:10:21.000Z","dependencies_parsed_at":"2024-12-04T00:19:37.765Z","dependency_job_id":"fab6cb72-7f89-4f19-854c-ed3a6985f8d5","html_url":"https://github.com/schubergphilis/terraform-aws-mcaf-vpc","commit_stats":null,"previous_names":[],"tags_count":42,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/schubergphilis%2Fterraform-aws-mcaf-vpc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/schubergphilis%2Fterraform-aws-mcaf-vpc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/schubergphilis%2Fterraform-aws-mcaf-vpc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/schubergphilis%2Fterraform-aws-mcaf-vpc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/schubergphilis","download_url":"https://codeload.github.com/schubergphilis/terraform-aws-mcaf-vpc/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":228249352,"owners_count":17891461,"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":["aws","terraform","terraform-module"],"created_at":"2024-12-05T07:12:03.739Z","updated_at":"2025-10-07T10:27:46.821Z","avatar_url":"https://github.com/schubergphilis.png","language":"HCL","funding_links":[],"categories":[],"sub_categories":[],"readme":"# mcaf-terraform-aws-vpc\n\nThis module creates a VPC layout with private, public and lambda\nsubnets. It also sets up by default the necessary networking components like\ngateways and routers.\n\nAll subnets are optional so you can decide which ones make sense for your\nenvironment. See the examples directory for reference material.\n\n```terraform\nmodule \"full_vpc\" {\n  source              = \"github.com/schubergphilis/terraform-aws-mcaf-vpc\"\n  name                = \"test\"\n  cidr_block          = \"192.168.0.0/24\"\n  availability_zones  = [\"eu-west-1a\", \"eu-west-1b\", \"eu-west-1c\"]\n  public_subnet_bits  = 28\n  private_subnet_bits = 28\n\n  tags = {\n    environment = \"test\"\n  }\n}\n```\n\n\u003c!-- BEGIN_TF_DOCS --\u003e\n## Requirements\n\n| Name | Version |\n|------|---------|\n| \u003ca name=\"requirement_terraform\"\u003e\u003c/a\u003e [terraform](#requirement\\_terraform) | \u003e= 1.3.0 |\n| \u003ca name=\"requirement_aws\"\u003e\u003c/a\u003e [aws](#requirement\\_aws) | ~\u003e 6.0 |\n\n## Providers\n\n| Name | Version |\n|------|---------|\n| \u003ca name=\"provider_aws\"\u003e\u003c/a\u003e [aws](#provider\\_aws) | ~\u003e 6.0 |\n\n## Modules\n\n| Name | Source | Version |\n|------|--------|---------|\n| \u003ca name=\"module_flow_logs_role\"\u003e\u003c/a\u003e [flow\\_logs\\_role](#module\\_flow\\_logs\\_role) | schubergphilis/mcaf-role/aws | ~\u003e 0.5.3 |\n| \u003ca name=\"module_log_bucket\"\u003e\u003c/a\u003e [log\\_bucket](#module\\_log\\_bucket) | schubergphilis/mcaf-s3/aws | ~\u003e 2.0.0 |\n\n## Resources\n\n| Name | Type |\n|------|------|\n| [aws_cloudwatch_log_group.flow_logs](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/cloudwatch_log_group) | resource |\n| [aws_default_security_group.default](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/default_security_group) | resource |\n| [aws_eip.nat](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/eip) | resource |\n| [aws_flow_log.flow_logs](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/flow_log) | resource |\n| [aws_flow_log.flow_logs_s3](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/flow_log) | resource |\n| [aws_internet_gateway.default](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/internet_gateway) | resource |\n| [aws_nat_gateway.default](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/nat_gateway) | resource |\n| [aws_ram_resource_association.private_subnets](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/ram_resource_association) | resource |\n| [aws_ram_resource_association.public_subnets](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/ram_resource_association) | resource |\n| [aws_ram_resource_share.subnet_sharing](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/ram_resource_share) | resource |\n| [aws_route.lambda](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/route) | resource |\n| [aws_route.private](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_table.lambda](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.lambda](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.lambda](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| [aws_vpc.default](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/vpc) | resource |\n| [aws_vpc_dhcp_options.default](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/vpc_dhcp_options) | resource |\n| [aws_vpc_dhcp_options_association.default](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/vpc_dhcp_options_association) | resource |\n| [aws_vpc_endpoint.codebuild_interface_endpoint](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/vpc_endpoint) | resource |\n| [aws_vpc_endpoint.dynamodb](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/vpc_endpoint) | resource |\n| [aws_vpc_endpoint.ebs_endpoint](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/vpc_endpoint) | resource |\n| [aws_vpc_endpoint.ec2_endpoint](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/vpc_endpoint) | resource |\n| [aws_vpc_endpoint.ec2messages_endpoint](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/vpc_endpoint) | resource |\n| [aws_vpc_endpoint.ecr_api_endpoint](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/vpc_endpoint) | resource |\n| [aws_vpc_endpoint.ecr_dkr_endpoint](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/vpc_endpoint) | resource |\n| [aws_vpc_endpoint.logs_endpoint](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/vpc_endpoint) | resource |\n| [aws_vpc_endpoint.mgn_endpoint](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/vpc_endpoint) | resource |\n| [aws_vpc_endpoint.s3](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/vpc_endpoint) | resource |\n| [aws_vpc_endpoint.s3_interface_endpoint](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/vpc_endpoint) | resource |\n| [aws_vpc_endpoint.ssm_endpoint](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/vpc_endpoint) | resource |\n| [aws_vpc_endpoint.ssmmessages_endpoint](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/vpc_endpoint) | resource |\n| [aws_vpc_endpoint.transfer_server](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/vpc_endpoint) | resource |\n| [aws_caller_identity.current](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/caller_identity) | data source |\n| [aws_iam_policy_document.flow_logs](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/iam_policy_document) | data source |\n| [aws_region.current](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/region) | data source |\n| [aws_vpc_endpoint_service.ebs_endpoint](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/vpc_endpoint_service) | data source |\n| [aws_vpc_endpoint_service.ec2_endpoint](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/vpc_endpoint_service) | data source |\n| [aws_vpc_endpoint_service.ec2messages_endpoint](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/vpc_endpoint_service) | data source |\n| [aws_vpc_endpoint_service.ssm_endpoint](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/vpc_endpoint_service) | data source |\n| [aws_vpc_endpoint_service.ssmmessages_endpoint](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/vpc_endpoint_service) | data source |\n| [aws_vpc_endpoint_service.transfer_server](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/vpc_endpoint_service) | data source |\n\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) | A list of availability zones for the subnets | `list(string)` | n/a | yes |\n| \u003ca name=\"input_name\"\u003e\u003c/a\u003e [name](#input\\_name) | Used as part of the resource names to indicate they are created and used within a specific name | `string` | n/a | yes |\n| \u003ca name=\"input_cidr_block\"\u003e\u003c/a\u003e [cidr\\_block](#input\\_cidr\\_block) | The CIDR block for the VPC | `string` | `null` | no |\n| \u003ca name=\"input_codebuild_interface_endpoint\"\u003e\u003c/a\u003e [codebuild\\_interface\\_endpoint](#input\\_codebuild\\_interface\\_endpoint) | Variables to provision a CodeBuild endpoint to the VPC | \u003cpre\u003eobject({\u003cbr/\u003e    private_dns_enabled = bool\u003cbr/\u003e    security_group_ids  = list(string)\u003cbr/\u003e    subnet_ids          = list(string)\u003cbr/\u003e  })\u003c/pre\u003e | `null` | no |\n| \u003ca name=\"input_dhcp_options\"\u003e\u003c/a\u003e [dhcp\\_options](#input\\_dhcp\\_options) | DHCP options to assign to the VPC | \u003cpre\u003eobject({\u003cbr/\u003e    domain_name          = string\u003cbr/\u003e    domain_name_servers  = list(string)\u003cbr/\u003e    netbios_name_servers = list(string)\u003cbr/\u003e    netbios_node_type    = number\u003cbr/\u003e    ntp_servers          = list(string)\u003cbr/\u003e  })\u003c/pre\u003e | `null` | no |\n| \u003ca name=\"input_ebs_endpoint\"\u003e\u003c/a\u003e [ebs\\_endpoint](#input\\_ebs\\_endpoint) | Variables to provision an EBS endpoint to the VPC | \u003cpre\u003eobject({\u003cbr/\u003e    private_dns_enabled = bool\u003cbr/\u003e    security_group_ids  = list(string)\u003cbr/\u003e    subnet_ids          = list(string)\u003cbr/\u003e  })\u003c/pre\u003e | `null` | no |\n| \u003ca name=\"input_ec2_endpoint\"\u003e\u003c/a\u003e [ec2\\_endpoint](#input\\_ec2\\_endpoint) | Variables to provision an EC2 endpoint to the VPC | \u003cpre\u003eobject({\u003cbr/\u003e    private_dns_enabled = bool\u003cbr/\u003e    security_group_ids  = list(string)\u003cbr/\u003e    subnet_ids          = list(string)\u003cbr/\u003e  })\u003c/pre\u003e | `null` | no |\n| \u003ca name=\"input_ec2messages_endpoint\"\u003e\u003c/a\u003e [ec2messages\\_endpoint](#input\\_ec2messages\\_endpoint) | Variables to provision an EC2 messages endpoint to the VPC | \u003cpre\u003eobject({\u003cbr/\u003e    private_dns_enabled = bool\u003cbr/\u003e    security_group_ids  = list(string)\u003cbr/\u003e    subnet_ids          = list(string)\u003cbr/\u003e  })\u003c/pre\u003e | `null` | no |\n| \u003ca name=\"input_ecr_api_endpoint\"\u003e\u003c/a\u003e [ecr\\_api\\_endpoint](#input\\_ecr\\_api\\_endpoint) | Variables to provision an ECR endpoint to the VPC | \u003cpre\u003eobject({\u003cbr/\u003e    private_dns_enabled = bool\u003cbr/\u003e    security_group_ids  = list(string)\u003cbr/\u003e    subnet_ids          = list(string)\u003cbr/\u003e  })\u003c/pre\u003e | `null` | no |\n| \u003ca name=\"input_enable_nat_gateway\"\u003e\u003c/a\u003e [enable\\_nat\\_gateway](#input\\_enable\\_nat\\_gateway) | Set to true to provision a NAT Gateway for each private subnet | `bool` | `true` | no |\n| \u003ca name=\"input_enable_private_default_route\"\u003e\u003c/a\u003e [enable\\_private\\_default\\_route](#input\\_enable\\_private\\_default\\_route) | Set to true to add a default route to the NAT gateway for each private subnet | `bool` | `true` | no |\n| \u003ca name=\"input_flow_logs_cloudwatch\"\u003e\u003c/a\u003e [flow\\_logs\\_cloudwatch](#input\\_flow\\_logs\\_cloudwatch) | Variables to enable flow logs for the VPC | \u003cpre\u003eobject({\u003cbr/\u003e    iam_role_name                = optional(string, \"VpcFlowLogs\")\u003cbr/\u003e    iam_role_name_prefix         = optional(string)\u003cbr/\u003e    iam_role_postfix             = optional(bool, true)\u003cbr/\u003e    iam_role_path                = optional(string, \"/\")\u003cbr/\u003e    iam_role_permission_boundary = optional(string)\u003cbr/\u003e    kms_key_arn                  = optional(string)\u003cbr/\u003e    log_format                   = optional(string)\u003cbr/\u003e    log_group_name               = optional(string)\u003cbr/\u003e    max_aggregation_interval     = optional(number, 60)\u003cbr/\u003e    retention_in_days            = optional(number, 90)\u003cbr/\u003e    traffic_type                 = optional(string, \"ALL\")\u003cbr/\u003e  })\u003c/pre\u003e | `null` | no |\n| \u003ca name=\"input_flow_logs_s3\"\u003e\u003c/a\u003e [flow\\_logs\\_s3](#input\\_flow\\_logs\\_s3) | Variables to enable flow logs stored in S3 for the VPC. Use 'bucket\\_name' to log to an S3 bucket created by this module. Alternatively, use 'log\\_destination' to specify a self-managed S3 bucket. The 'log\\_destination' variable accepts full S3 ARNs, optionally including object keys. | \u003cpre\u003eobject({\u003cbr/\u003e    bucket_name              = optional(string)\u003cbr/\u003e    kms_key_arn              = optional(string)\u003cbr/\u003e    log_destination          = optional(string)\u003cbr/\u003e    log_format               = optional(string)\u003cbr/\u003e    max_aggregation_interval = optional(number, 60)\u003cbr/\u003e    retention_in_days        = optional(number, 90)\u003cbr/\u003e    traffic_type             = optional(string, \"ALL\")\u003cbr/\u003e\u003cbr/\u003e    destination_options = optional(object({\u003cbr/\u003e      file_format                = optional(string)\u003cbr/\u003e      hive_compatible_partitions = optional(bool)\u003cbr/\u003e      per_hour_partition         = optional(bool, true)\u003cbr/\u003e    }), {})\u003cbr/\u003e  })\u003c/pre\u003e | `null` | no |\n| \u003ca name=\"input_internet_gateway_tags\"\u003e\u003c/a\u003e [internet\\_gateway\\_tags](#input\\_internet\\_gateway\\_tags) | Additional tags to set on the internet gateway | `map(string)` | `{}` | no |\n| \u003ca name=\"input_ipv4_ipam\"\u003e\u003c/a\u003e [ipv4\\_ipam](#input\\_ipv4\\_ipam) | The IPv4 IPAM configuration to use for the VPC | \u003cpre\u003eobject({\u003cbr/\u003e    pool_id        = string\u003cbr/\u003e    netmask_length = number\u003cbr/\u003e  })\u003c/pre\u003e | `null` | no |\n| \u003ca name=\"input_lambda_subnet_bits\"\u003e\u003c/a\u003e [lambda\\_subnet\\_bits](#input\\_lambda\\_subnet\\_bits) | The number of bits used for the subnet mask | `number` | `null` | no |\n| \u003ca name=\"input_logs_endpoint\"\u003e\u003c/a\u003e [logs\\_endpoint](#input\\_logs\\_endpoint) | Variables to provision a log endpoint to the VPC | \u003cpre\u003eobject({\u003cbr/\u003e    private_dns_enabled = bool\u003cbr/\u003e    security_group_ids  = list(string)\u003cbr/\u003e    subnet_ids          = list(string)\u003cbr/\u003e  })\u003c/pre\u003e | `null` | 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) | Whether public IP addresses are assigned on instance launch | `bool` | `false` | no |\n| \u003ca name=\"input_mgn_endpoint\"\u003e\u003c/a\u003e [mgn\\_endpoint](#input\\_mgn\\_endpoint) | Variables to provision an MGN endpoint to the VPC | \u003cpre\u003eobject({\u003cbr/\u003e    private_dns_enabled = bool\u003cbr/\u003e    security_group_ids  = list(string)\u003cbr/\u003e    subnet_ids          = list(string)\u003cbr/\u003e  })\u003c/pre\u003e | `null` | no |\n| \u003ca name=\"input_private_dynamodb_endpoint\"\u003e\u003c/a\u003e [private\\_dynamodb\\_endpoint](#input\\_private\\_dynamodb\\_endpoint) | Deploy a DynamoDB endpoint for your private subnets | `bool` | `false` | no |\n| \u003ca name=\"input_private_s3_endpoint\"\u003e\u003c/a\u003e [private\\_s3\\_endpoint](#input\\_private\\_s3\\_endpoint) | Deploy an S3 endpoint for your private subnets | `bool` | `false` | no |\n| \u003ca name=\"input_private_subnet_bits\"\u003e\u003c/a\u003e [private\\_subnet\\_bits](#input\\_private\\_subnet\\_bits) | The number of bits used for the subnet mask | `number` | `null` | no |\n| \u003ca name=\"input_private_subnet_tags\"\u003e\u003c/a\u003e [private\\_subnet\\_tags](#input\\_private\\_subnet\\_tags) | Additional tags to set on the private subnets | `map(string)` | `{}` | no |\n| \u003ca name=\"input_public_subnet_bits\"\u003e\u003c/a\u003e [public\\_subnet\\_bits](#input\\_public\\_subnet\\_bits) | The number of bits used for the subnet mask | `number` | `null` | no |\n| \u003ca name=\"input_public_subnet_tags\"\u003e\u003c/a\u003e [public\\_subnet\\_tags](#input\\_public\\_subnet\\_tags) | Additional tags to set on the public subnets | `map(string)` | `{}` | no |\n| \u003ca name=\"input_region\"\u003e\u003c/a\u003e [region](#input\\_region) | The AWS region where resources will be created; if omitted the default provider region is used | `string` | `null` | no |\n| \u003ca name=\"input_restrict_default_security_group\"\u003e\u003c/a\u003e [restrict\\_default\\_security\\_group](#input\\_restrict\\_default\\_security\\_group) | Set to true to remove all rules from the default security group | `bool` | `true` | no |\n| \u003ca name=\"input_s3_interface_endpoint\"\u003e\u003c/a\u003e [s3\\_interface\\_endpoint](#input\\_s3\\_interface\\_endpoint) | Variables to provision an S3 interface endpoint to the VPC | \u003cpre\u003eobject({\u003cbr/\u003e    security_group_ids = list(string)\u003cbr/\u003e    subnet_ids         = list(string)\u003cbr/\u003e  })\u003c/pre\u003e | `null` | no |\n| \u003ca name=\"input_s3_route_table_ids\"\u003e\u003c/a\u003e [s3\\_route\\_table\\_ids](#input\\_s3\\_route\\_table\\_ids) | Custom route table IDs for the S3 endpoint | `list(string)` | `null` | no |\n| \u003ca name=\"input_share_private_subnets\"\u003e\u003c/a\u003e [share\\_private\\_subnets](#input\\_share\\_private\\_subnets) | If set it will share the private subnets through resource access manager | `bool` | `false` | no |\n| \u003ca name=\"input_share_public_subnets\"\u003e\u003c/a\u003e [share\\_public\\_subnets](#input\\_share\\_public\\_subnets) | If set it will share the public subnets through resource access manager | `bool` | `false` | no |\n| \u003ca name=\"input_shared_public_route_table\"\u003e\u003c/a\u003e [shared\\_public\\_route\\_table](#input\\_shared\\_public\\_route\\_table) | Determines weather to use a single route table for all public networks | `bool` | `true` | no |\n| \u003ca name=\"input_ssm_endpoint\"\u003e\u003c/a\u003e [ssm\\_endpoint](#input\\_ssm\\_endpoint) | Variables to provision an SSM endpoint to the VPC | \u003cpre\u003eobject({\u003cbr/\u003e    private_dns_enabled = bool\u003cbr/\u003e    security_group_ids  = list(string)\u003cbr/\u003e    subnet_ids          = list(string)\u003cbr/\u003e  })\u003c/pre\u003e | `null` | no |\n| \u003ca name=\"input_ssmmessages_endpoint\"\u003e\u003c/a\u003e [ssmmessages\\_endpoint](#input\\_ssmmessages\\_endpoint) | Variables to provision an SSM messages endpoint to the VPC | \u003cpre\u003eobject({\u003cbr/\u003e    private_dns_enabled = bool\u003cbr/\u003e    security_group_ids  = list(string)\u003cbr/\u003e    subnet_ids          = list(string)\u003cbr/\u003e  })\u003c/pre\u003e | `null` | no |\n| \u003ca name=\"input_subnet_sharing_custom_tags\"\u003e\u003c/a\u003e [subnet\\_sharing\\_custom\\_tags](#input\\_subnet\\_sharing\\_custom\\_tags) | Custom tags to be added to a resource share for subnets | `map(string)` | `{}` | no |\n| \u003ca name=\"input_tags\"\u003e\u003c/a\u003e [tags](#input\\_tags) | A mapping of tags to assign to all resources | `map(string)` | `{}` | no |\n| \u003ca name=\"input_transfer_server\"\u003e\u003c/a\u003e [transfer\\_server](#input\\_transfer\\_server) | Variables to provision a Transfer Server endpoint to the VPC | \u003cpre\u003eobject({\u003cbr/\u003e    security_group_ids  = list(string)\u003cbr/\u003e    subnet_ids          = list(string)\u003cbr/\u003e    private_dns_enabled = bool\u003cbr/\u003e  })\u003c/pre\u003e | `null` | no |\n| \u003ca name=\"input_vpc_tags\"\u003e\u003c/a\u003e [vpc\\_tags](#input\\_vpc\\_tags) | Additional tags to set on the VPC | `map(string)` | `{}` | no |\n\n## Outputs\n\n| Name | Description |\n|------|-------------|\n| \u003ca name=\"output_cidr_block\"\u003e\u003c/a\u003e [cidr\\_block](#output\\_cidr\\_block) | CIDR block of the VPC |\n| \u003ca name=\"output_id\"\u003e\u003c/a\u003e [id](#output\\_id) | ID of the VPC |\n| \u003ca name=\"output_igw_id\"\u003e\u003c/a\u003e [igw\\_id](#output\\_igw\\_id) | ID of the Internet Gateway |\n| \u003ca name=\"output_lambda_route_table_ids\"\u003e\u003c/a\u003e [lambda\\_route\\_table\\_ids](#output\\_lambda\\_route\\_table\\_ids) | IDs of the Lambda route tables |\n| \u003ca name=\"output_lambda_subnet_arns\"\u003e\u003c/a\u003e [lambda\\_subnet\\_arns](#output\\_lambda\\_subnet\\_arns) | ARNs of the Lambda subnets |\n| \u003ca name=\"output_lambda_subnet_cidr_blocks\"\u003e\u003c/a\u003e [lambda\\_subnet\\_cidr\\_blocks](#output\\_lambda\\_subnet\\_cidr\\_blocks) | CIDR blocks of the Lambda subnets |\n| \u003ca name=\"output_lambda_subnet_ids\"\u003e\u003c/a\u003e [lambda\\_subnet\\_ids](#output\\_lambda\\_subnet\\_ids) | IDs of the Lambda subnets |\n| \u003ca name=\"output_name\"\u003e\u003c/a\u003e [name](#output\\_name) | The name provided for the VPC |\n| \u003ca name=\"output_nat_gateway_ids\"\u003e\u003c/a\u003e [nat\\_gateway\\_ids](#output\\_nat\\_gateway\\_ids) | IDs of the NAT gateways |\n| \u003ca name=\"output_private_route_table_ids\"\u003e\u003c/a\u003e [private\\_route\\_table\\_ids](#output\\_private\\_route\\_table\\_ids) | IDs of the private route tables |\n| \u003ca name=\"output_private_subnet_arns\"\u003e\u003c/a\u003e [private\\_subnet\\_arns](#output\\_private\\_subnet\\_arns) | ARNs of the private subnets |\n| \u003ca name=\"output_private_subnet_cidr_blocks\"\u003e\u003c/a\u003e [private\\_subnet\\_cidr\\_blocks](#output\\_private\\_subnet\\_cidr\\_blocks) | CIDR blocks of the private subnets |\n| \u003ca name=\"output_private_subnet_ids\"\u003e\u003c/a\u003e [private\\_subnet\\_ids](#output\\_private\\_subnet\\_ids) | IDs of the private subnets |\n| \u003ca name=\"output_public_route_table_id\"\u003e\u003c/a\u003e [public\\_route\\_table\\_id](#output\\_public\\_route\\_table\\_id) | ID of the single public route table when a shared public route table is used |\n| \u003ca name=\"output_public_route_table_ids\"\u003e\u003c/a\u003e [public\\_route\\_table\\_ids](#output\\_public\\_route\\_table\\_ids) | IDs of the public route tables when a shared public route table is not used |\n| \u003ca name=\"output_public_subnet_arns\"\u003e\u003c/a\u003e [public\\_subnet\\_arns](#output\\_public\\_subnet\\_arns) | ARNs of the public subnets |\n| \u003ca name=\"output_public_subnet_cidr_blocks\"\u003e\u003c/a\u003e [public\\_subnet\\_cidr\\_blocks](#output\\_public\\_subnet\\_cidr\\_blocks) | CIDR blocks of the public subnets |\n| \u003ca name=\"output_public_subnet_ids\"\u003e\u003c/a\u003e [public\\_subnet\\_ids](#output\\_public\\_subnet\\_ids) | IDs of the public subnets |\n| \u003ca name=\"output_subnet_share_arn\"\u003e\u003c/a\u003e [subnet\\_share\\_arn](#output\\_subnet\\_share\\_arn) | The ARN of the subnet share in resource access manager if any |\n| \u003ca name=\"output_subnet_share_id\"\u003e\u003c/a\u003e [subnet\\_share\\_id](#output\\_subnet\\_share\\_id) | The ID of the subnet share in resource access manager if any |\n| \u003ca name=\"output_vpc_endpoint_ids\"\u003e\u003c/a\u003e [vpc\\_endpoint\\_ids](#output\\_vpc\\_endpoint\\_ids) | An object containing the ID of each created VPC endpoint |\n\u003c!-- END_TF_DOCS --\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fschubergphilis%2Fterraform-aws-mcaf-vpc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fschubergphilis%2Fterraform-aws-mcaf-vpc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fschubergphilis%2Fterraform-aws-mcaf-vpc/lists"}