diff --git a/google/resource_google_project.go b/google/resource_google_project.go index 4e71d0d4..68ab2dc6 100644 --- a/google/resource_google_project.go +++ b/google/resource_google_project.go @@ -200,8 +200,9 @@ func resourceGoogleProjectUpdate(d *schema.ResourceData, meta interface{}) error // Billing account has changed if ok := d.HasChange("billing_account"); ok { name := d.Get("billing_account").(string) - ba := cloudbilling.ProjectBillingInfo{ - BillingAccountName: "billingAccounts/" + name, + ba := cloudbilling.ProjectBillingInfo{} + if name != "" { + ba.BillingAccountName = "billingAccounts/" + name } _, err = config.clientBilling.Projects.UpdateBillingInfo(prefixedProject(pid), &ba).Do() if err != nil { diff --git a/google/resource_google_project_test.go b/google/resource_google_project_test.go index fea4c746..ccafbb8d 100644 --- a/google/resource_google_project_test.go +++ b/google/resource_google_project_test.go @@ -115,6 +115,13 @@ func TestAccGoogleProject_updateBilling(t *testing.T) { testAccCheckGoogleProjectHasBillingAccount("google_project.acceptance", pid, billingId2), ), }, + // Unlink the billing account + resource.TestStep{ + Config: testAccGoogleProject_create(pid, pname, org), + Check: resource.ComposeTestCheckFunc( + testAccCheckGoogleProjectHasBillingAccount("google_project.acceptance", pid, ""), + ), + }, }, }) }