blob: 736f9a10fca6986865fd8edf0cd9b455db6e1e17 [file] [log] [blame]
---
subcategory: "Compute Engine"
description: |-
Manages a Cloud Router interface.
---
# google\_compute\_router_interface
Manages a Cloud Router interface. For more information see
[the official documentation](https://cloud.google.com/compute/docs/cloudrouter)
and
[API](https://cloud.google.com/compute/docs/reference/latest/routers).
## Example Usage
```hcl
resource "google_compute_router_interface" "foobar" {
name = "interface-1"
router = "router-1"
region = "us-central1"
ip_range = "169.254.1.1/30"
vpn_tunnel = "tunnel-1"
}
```
## Argument Reference
The following arguments are supported:
* `name` - (Required) A unique name for the interface, required by GCE. Changing
this forces a new interface to be created.
* `router` - (Required) The name of the router this interface will be attached to.
Changing this forces a new interface to be created.
In addition to the above required fields, a router interface must have specified either `ip_range` or exactly one of `vpn_tunnel`, `interconnect_attachment` or `subnetwork`, or both.
- - -
* `ip_range` - (Optional) IP address and range of the interface. The IP range must be
in the RFC3927 link-local IP space. Changing this forces a new interface to be created.
* `vpn_tunnel` - (Optional) The name or resource link to the VPN tunnel this
interface will be linked to. Changing this forces a new interface to be created. Only
one of `vpn_tunnel`, `interconnect_attachment` or `subnetwork` can be specified.
* `interconnect_attachment` - (Optional) The name or resource link to the
VLAN interconnect for this interface. Changing this forces a new interface to
be created. Only one of `vpn_tunnel`, `interconnect_attachment` or `subnetwork` can be specified.
* `redundant_interface` - (Optional) The name of the interface that is redundant to
this interface. Changing this forces a new interface to be created.
* `project` - (Optional) The ID of the project in which this interface's router belongs.
If it is not provided, the provider project is used. Changing this forces a new interface to be created.
* `subnetwork` - (Optional) The URI of the subnetwork resource that this interface
belongs to, which must be in the same region as the Cloud Router. When you establish a BGP session to a VM instance using this interface, the VM instance must belong to the same subnetwork as the subnetwork specified here. Changing this forces a new interface to be created. Only one of `vpn_tunnel`, `interconnect_attachment` or `subnetwork` can be specified.
* `private_ip_address` - (Optional) The regional private internal IP address that is used
to establish BGP sessions to a VM instance acting as a third-party Router Appliance. Changing this forces a new interface to be created.
* `project` - (Optional) The ID of the project in which this interface's routerbelongs.
If it is not provided, the provider project is used. Changing this forces a new interface to be created.
* `region` - (Optional) The region this interface's router sits in.
If not specified, the project region will be used. Changing this forces a new interface to be created.
## Attributes Reference
In addition to the arguments listed above, the following computed attributes are exported:
* `id` - an identifier for the resource with format `{{region}}/{{router}}/{{name}}`
## Timeouts
This resource provides the following
[Timeouts](https://developer.hashicorp.com/terraform/plugin/sdkv2/resources/retries-and-customizable-timeouts) configuration options: configuration options:
- `create` - Default is 4 minutes.
- `delete` - Default is 4 minutes.
## Import
Router interfaces can be imported using the `project` (optional), `region`, `router`, and `name`, e.g.
* `{{project_id}}/{{region}}/{{router}}/{{name}}`
* `{{region}}/{{router}}/{{name}}`
In Terraform v1.5.0 and later, use an [`import` block](https://developer.hashicorp.com/terraform/language/import) to import router interfaces using one of the formats above. For example:
```tf
import {
id = "{{project_id}}/{{region}}/{{router}}/{{name}}"
to = google_compute_router_interface.default
}
```
When using the [`terraform import` command](https://developer.hashicorp.com/terraform/cli/commands/import), router interfaces can be imported using one of the formats above. For example:
```
$ terraform import google_compute_router_interface.default {{project_id}}/{{region}}/{{router}}/{{name}}
$ terraform import google_compute_router_interface.default {{region}}/{{router}}/{{name}}
```