# Cloud NAT Module
Simple Cloud NAT management, with optional router creation.
## Example
```hcl
module "nat" {
source = "../modules/net-cloudnat"
project_id = "my-project"
region = "europe-west1"
name = "default"
router_network = "my-vpc"
}
```
## Variables
| name | description | type | required | default |
|---|---|:---: |:---:|:---:|
| name | Name of the Cloud NAT resource. | string
| ✓ | |
| project_id | Project where resources will be created. | string
| ✓ | |
| region | Region where resources will be created. | string
| ✓ | |
| *addresses* | Optional list of external address self links. | list(string)
| | []
|
| *config_min_ports_per_vm* | Minimum number of ports allocated to a VM from this NAT config. | number
| | 64
|
| *config_source_subnets* | Subnetwork configuration (ALL_SUBNETWORKS_ALL_IP_RANGES, ALL_SUBNETWORKS_ALL_PRIMARY_IP_RANGES, LIST_OF_SUBNETWORKS). | string
| | ALL_SUBNETWORKS_ALL_IP_RANGES
|
| *config_timeouts* | Timeout configurations. | object({...})
| | ...
|
| *router_asn* | Router ASN used for auto-created router. | number
| | 64514
|
| *router_create* | Create router. | bool
| | true
|
| *router_name* | Router name, leave blank if router will be created to use auto generated name. | string
| | null
|
| *router_network* | Name of the VPC used for auto-created router. | string
| | null
|
| *subnetworks* | Subnetworks to NAT, only used when config_source_subnets equals LIST_OF_SUBNETWORKS. | list(object({...}))
| | []
|
## Outputs
| name | description | sensitive |
|---|---|:---:|
| name | Name of the Cloud NAT. | |
| nat_ip_allocate_option | NAT IP allocation mode. | |
| region | Cloud NAT region. | |
| router | Cloud NAT router resources (if auto created). | |
| router_name | Cloud NAT router name. | |