diff --git a/google/resource_compute_network_peering.go b/google/resource_compute_network_peering.go index 593b3063201..e5181881a1b 100644 --- a/google/resource_compute_network_peering.go +++ b/google/resource_compute_network_peering.go @@ -18,7 +18,9 @@ func resourceComputeNetworkPeering() *schema.Resource { Create: resourceComputeNetworkPeeringCreate, Read: resourceComputeNetworkPeeringRead, Delete: resourceComputeNetworkPeeringDelete, - + Importer: &schema.ResourceImporter{ + State: resourceComputeNetworkPeeringImporter, + }, Schema: map[string]*schema.Schema{ "name": { Type: schema.TypeString, @@ -61,6 +63,22 @@ func resourceComputeNetworkPeering() *schema.Resource { } } +func resourceComputeNetworkPeeringImporter(d *schema.ResourceData, meta interface{}) ([]*schema.ResourceData, error) { + config := meta.(*Config) + if err := parseImportId([]string{"(?P[^/]+)/(?P[^/]+)"}, d, config); err != nil { + return nil, err + } + + // Replace import id for the resource id + id, err := replaceVars(d, config, "{{name}}") + if err != nil { + return nil, fmt.Errorf("Error constructing id: %s", err) + } + d.SetId(id) + + return []*schema.ResourceData{d}, nil +} + func resourceComputeNetworkPeeringCreate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) networkFieldValue, err := ParseNetworkFieldValue(d.Get("network").(string), d, config) diff --git a/google/resource_compute_network_peering_test.go b/google/resource_compute_network_peering_test.go index 4de93ae9dbc..c3a8df33c1c 100644 --- a/google/resource_compute_network_peering_test.go +++ b/google/resource_compute_network_peering_test.go @@ -29,6 +29,11 @@ func TestAccComputeNetworkPeering_basic(t *testing.T) { testAccCheckComputeNetworkPeeringAutoCreateRoutes(true, &peering_beta), ), }, + { + ResourceName: "google_compute_network_peering.foo", + ImportState: true, + ImportStateVerify: true, + }, }, }) diff --git a/website/docs/r/compute_network_peering.html.markdown b/website/docs/r/compute_network_peering.html.markdown index e649c0ee2ac..5d5d7cf3046 100644 --- a/website/docs/r/compute_network_peering.html.markdown +++ b/website/docs/r/compute_network_peering.html.markdown @@ -64,3 +64,10 @@ exported: * `state` - State for the peering. * `state_details` - Details about the current state of the peering. + +## Import +VPC Peering Networks can be imported using the name of the network the peering exists in and the name of the peering network + +``` +$ terraform import google_compute_network_peering.peering_network network-name/peering-network-name +``` \ No newline at end of file