From cf269e7256ef62345e1039ff69a49c77c6cf05f7 Mon Sep 17 00:00:00 2001 From: The Magician Date: Wed, 26 Aug 2020 10:27:12 -0700 Subject: [PATCH] Add `billing_project` configuration to the provider (#3886) (#7113) Signed-off-by: Modular Magician --- .changelog/3886.txt | 3 + google/config.go | 1 + google/field_helpers.go | 11 +++ google/provider.go | 12 +++ ...esource_access_approval_folder_settings.go | 28 ++++++- ...e_access_approval_organization_settings.go | 28 ++++++- ...source_access_approval_project_settings.go | 33 +++++++- ...rce_access_context_manager_access_level.go | 37 ++++++++- ...ce_access_context_manager_access_levels.go | 28 ++++++- ...ce_access_context_manager_access_policy.go | 37 ++++++++- ...ccess_context_manager_service_perimeter.go | 37 ++++++++- ...text_manager_service_perimeter_resource.go | 27 +++++- ...cess_context_manager_service_perimeters.go | 28 ++++++- google/resource_active_directory_domain.go | 43 +++++++++- .../resource_active_directory_domain_trust.go | 33 +++++++- ...p_engine_application_url_dispatch_rules.go | 43 +++++++++- google/resource_app_engine_domain_mapping.go | 43 +++++++++- google/resource_app_engine_firewall_rule.go | 54 ++++++++++-- ...esource_app_engine_flexible_app_version.go | 33 +++++++- ...source_app_engine_service_split_traffic.go | 33 +++++++- ...esource_app_engine_standard_app_version.go | 33 +++++++- google/resource_big_query_dataset.go | 43 +++++++++- google/resource_big_query_dataset_access.go | 32 ++++++- google/resource_big_query_job.go | 33 +++++++- .../resource_bigquery_data_transfer_config.go | 43 +++++++++- google/resource_bigtable_app_profile.go | 43 +++++++++- .../resource_binary_authorization_attestor.go | 43 +++++++++- .../resource_binary_authorization_policy.go | 43 +++++++++- google/resource_cloud_asset_folder_feed.go | 64 ++++++++------ .../resource_cloud_asset_organization_feed.go | 64 ++++++++------ google/resource_cloud_asset_project_feed.go | 54 ++++++++---- google/resource_cloud_build_trigger.go | 43 +++++++++- google/resource_cloud_iot_device.go | 37 ++++++++- google/resource_cloud_iot_device_registry.go | 43 +++++++++- google/resource_cloud_run_domain_mapping.go | 43 +++++++++- google/resource_cloud_run_service.go | 54 ++++++++++-- google/resource_cloud_scheduler_job.go | 32 ++++++- google/resource_cloud_tasks_queue.go | 43 +++++++++- google/resource_compute_address.go | 32 ++++++- google/resource_compute_autoscaler.go | 43 +++++++++- google/resource_compute_backend_bucket.go | 43 +++++++++- ...e_compute_backend_bucket_signed_url_key.go | 32 ++++++- google/resource_compute_backend_service.go | 43 +++++++++- ..._compute_backend_service_signed_url_key.go | 32 ++++++- google/resource_compute_disk.go | 51 ++++++++++-- ...compute_disk_resource_policy_attachment.go | 32 ++++++- google/resource_compute_firewall.go | 43 +++++++++- google/resource_compute_forwarding_rule.go | 51 ++++++++++-- google/resource_compute_global_address.go | 32 ++++++- ...resource_compute_global_forwarding_rule.go | 43 +++++++++- ...esource_compute_global_network_endpoint.go | 32 ++++++- ...e_compute_global_network_endpoint_group.go | 32 ++++++- google/resource_compute_health_check.go | 43 +++++++++- google/resource_compute_http_health_check.go | 43 +++++++++- google/resource_compute_https_health_check.go | 43 +++++++++- google/resource_compute_image.go | 43 +++++++++- ...ource_compute_instance_group_named_port.go | 32 ++++++- ...esource_compute_interconnect_attachment.go | 43 +++++++++- google/resource_compute_network.go | 43 +++++++++- google/resource_compute_network_endpoint.go | 32 ++++++- ...resource_compute_network_endpoint_group.go | 32 ++++++- ...e_compute_network_peering_routes_config.go | 33 +++++++- google/resource_compute_node_group.go | 43 +++++++++- google/resource_compute_node_template.go | 32 ++++++- google/resource_compute_region_autoscaler.go | 43 +++++++++- ...resource_compute_region_backend_service.go | 43 +++++++++- google/resource_compute_region_disk.go | 51 ++++++++++-- ..._region_disk_resource_policy_attachment.go | 32 ++++++- .../resource_compute_region_health_check.go | 43 +++++++++- ...resource_compute_region_ssl_certificate.go | 32 ++++++- ...source_compute_region_target_http_proxy.go | 43 +++++++++- ...ource_compute_region_target_https_proxy.go | 51 ++++++++++-- google/resource_compute_region_url_map.go | 43 +++++++++- google/resource_compute_reservation.go | 43 +++++++++- google/resource_compute_resource_policy.go | 32 ++++++- google/resource_compute_route.go | 32 ++++++- google/resource_compute_router.go | 43 +++++++++- google/resource_compute_router_bgp_peer.go | 43 +++++++++- google/resource_compute_router_nat.go | 43 +++++++++- google/resource_compute_snapshot.go | 43 +++++++++- google/resource_compute_ssl_certificate.go | 32 ++++++- google/resource_compute_ssl_policy.go | 43 +++++++++- google/resource_compute_subnetwork.go | 83 +++++++++++++++++-- google/resource_compute_target_http_proxy.go | 43 +++++++++- google/resource_compute_target_https_proxy.go | 67 +++++++++++++-- google/resource_compute_target_instance.go | 32 ++++++- google/resource_compute_target_ssl_proxy.go | 67 +++++++++++++-- google/resource_compute_target_tcp_proxy.go | 51 ++++++++++-- google/resource_compute_url_map.go | 43 +++++++++- google/resource_compute_vpn_gateway.go | 32 ++++++- google/resource_compute_vpn_tunnel.go | 32 ++++++- google/resource_container_analysis_note.go | 43 +++++++++- .../resource_container_analysis_occurrence.go | 43 +++++++++- google/resource_data_catalog_entry.go | 53 +++++++++--- google/resource_data_catalog_entry_group.go | 43 +++++++++- google/resource_data_catalog_tag.go | 37 ++++++++- google/resource_data_catalog_tag_template.go | 43 +++++++++- .../resource_dataproc_autoscaling_policy.go | 43 +++++++++- google/resource_datastore_index.go | 32 ++++++- .../resource_deployment_manager_deployment.go | 67 +++++++++++++-- google/resource_dialogflow_agent.go | 43 +++++++++- google/resource_dialogflow_entity_type.go | 43 +++++++++- google/resource_dialogflow_intent.go | 43 +++++++++- google/resource_dns_managed_zone.go | 43 +++++++++- google/resource_dns_policy.go | 43 +++++++++- google/resource_filestore_instance.go | 43 +++++++++- google/resource_firestore_index.go | 32 ++++++- ...ource_game_services_game_server_cluster.go | 43 +++++++++- ...source_game_services_game_server_config.go | 32 ++++++- ...ce_game_services_game_server_deployment.go | 43 +++++++++- ...services_game_server_deployment_rollout.go | 32 ++++++- google/resource_game_services_realm.go | 43 +++++++++- google/resource_healthcare_dataset.go | 43 +++++++++- google/resource_healthcare_dicom_store.go | 37 ++++++++- google/resource_healthcare_fhir_store.go | 37 ++++++++- google/resource_healthcare_hl7_v2_store.go | 37 ++++++++- google/resource_iap_brand.go | 33 +++++++- google/resource_iap_client.go | 27 +++++- ...y_platform_default_supported_idp_config.go | 43 +++++++++- ...e_identity_platform_inbound_saml_config.go | 43 +++++++++- ...urce_identity_platform_oauth_idp_config.go | 43 +++++++++- google/resource_identity_platform_tenant.go | 43 +++++++++- ...orm_tenant_default_supported_idp_config.go | 43 +++++++++- ...ity_platform_tenant_inbound_saml_config.go | 43 +++++++++- ...entity_platform_tenant_oauth_idp_config.go | 43 +++++++++- google/resource_kms_crypto_key.go | 39 +++++++-- google/resource_kms_key_ring.go | 22 ++++- google/resource_kms_key_ring_import_job.go | 27 +++++- google/resource_kms_secret_ciphertext.go | 26 ++++-- google/resource_logging_metric.go | 43 +++++++++- google/resource_ml_engine_model.go | 32 ++++++- google/resource_monitoring_alert_policy.go | 43 +++++++++- google/resource_monitoring_group.go | 43 +++++++++- .../resource_monitoring_metric_descriptor.go | 54 ++++++++++-- ...esource_monitoring_notification_channel.go | 43 +++++++++- google/resource_monitoring_service.go | 43 +++++++++- google/resource_monitoring_slo.go | 43 +++++++++- ...resource_monitoring_uptime_check_config.go | 43 +++++++++- ...k_management_connectivity_test_resource.go | 43 +++++++++- google/resource_os_config_patch_deployment.go | 32 ++++++- google/resource_os_login_ssh_public_key.go | 37 ++++++++- google/resource_pubsub_subscription.go | 54 ++++++++++-- google/resource_pubsub_topic.go | 54 ++++++++++-- google/resource_redis_instance.go | 43 +++++++++- google/resource_resource_manager_lien.go | 27 +++++- google/resource_secret_manager_secret.go | 43 +++++++++- .../resource_secret_manager_secret_version.go | 27 +++++- google/resource_security_center_source.go | 28 ++++++- google/resource_source_repo_repository.go | 43 +++++++++- google/resource_spanner_database.go | 32 ++++++- google/resource_spanner_instance.go | 43 +++++++++- google/resource_sql_database.go | 43 +++++++++- ...urce_sql_source_representation_instance.go | 32 ++++++- .../resource_storage_bucket_access_control.go | 37 ++++++++- ...e_storage_default_object_access_control.go | 37 ++++++++- google/resource_storage_hmac_key.go | 51 ++++++++++-- .../resource_storage_object_access_control.go | 37 ++++++++- google/resource_tpu_node.go | 43 +++++++++- google/resource_vpc_access_connector.go | 32 ++++++- google/utils.go | 6 ++ .../guides/provider_reference.html.markdown | 15 +++- ...context_manager_access_level.html.markdown | 6 ++ ...ontext_manager_access_policy.html.markdown | 6 ++ ...xt_manager_service_perimeter.html.markdown | 6 ++ ...r_service_perimeter_resource.html.markdown | 6 ++ 165 files changed, 5673 insertions(+), 663 deletions(-) create mode 100644 .changelog/3886.txt diff --git a/.changelog/3886.txt b/.changelog/3886.txt new file mode 100644 index 00000000000..7a2d310b60e --- /dev/null +++ b/.changelog/3886.txt @@ -0,0 +1,3 @@ +```release-note:enhancement +provider: added a new field `billing_project` to the provider that's associated as a billing/quota project with most requests when `user_project_override` true +``` diff --git a/google/config.go b/google/config.go index 88680f15830..0fd13f563b6 100644 --- a/google/config.go +++ b/google/config.go @@ -60,6 +60,7 @@ type Config struct { Credentials string AccessToken string Project string + BillingProject string Region string Zone string Scopes []string diff --git a/google/field_helpers.go b/google/field_helpers.go index cb81f103070..cb246f39531 100644 --- a/google/field_helpers.go +++ b/google/field_helpers.go @@ -231,6 +231,17 @@ func getProjectFromSchema(projectSchemaField string, d TerraformResourceData, co return "", fmt.Errorf("%s: required field is not set", projectSchemaField) } +func getBillingProjectFromSchema(billingProjectSchemaField string, d TerraformResourceData, config *Config) (string, error) { + res, ok := d.GetOk(billingProjectSchemaField) + if ok && billingProjectSchemaField != "" { + return res.(string), nil + } + if config.BillingProject != "" { + return config.BillingProject, nil + } + return "", fmt.Errorf("%s: required field is not set", billingProjectSchemaField) +} + type OrganizationFieldValue struct { OrgId string Name string diff --git a/google/provider.go b/google/provider.go index dcfdd8c946f..8fff4e5dbb2 100644 --- a/google/provider.go +++ b/google/provider.go @@ -51,6 +51,14 @@ func Provider() terraform.ResourceProvider { }, nil), }, + "billing_project": { + Type: schema.TypeString, + Optional: true, + DefaultFunc: schema.MultiEnvDefaultFunc([]string{ + "GOOGLE_BILLING_PROJECT", + }, nil), + }, + "region": { Type: schema.TypeString, Optional: true, @@ -101,6 +109,9 @@ func Provider() terraform.ResourceProvider { "user_project_override": { Type: schema.TypeBool, Optional: true, + DefaultFunc: schema.MultiEnvDefaultFunc([]string{ + "USER_PROJECT_OVERRIDE", + }, nil), }, "request_timeout": { @@ -987,6 +998,7 @@ func providerConfigure(d *schema.ResourceData, p *schema.Provider, terraformVers Region: d.Get("region").(string), Zone: d.Get("zone").(string), UserProjectOverride: d.Get("user_project_override").(bool), + BillingProject: d.Get("billing_project").(string), terraformVersion: terraformVersion, } diff --git a/google/resource_access_approval_folder_settings.go b/google/resource_access_approval_folder_settings.go index 35efc1421b2..cdb2e99a8b7 100644 --- a/google/resource_access_approval_folder_settings.go +++ b/google/resource_access_approval_folder_settings.go @@ -139,6 +139,13 @@ func resourceAccessApprovalFolderSettingsCreate(d *schema.ResourceData, meta int } log.Printf("[DEBUG] Creating new FolderSettings: %#v", obj) + billingProject := "" + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + updateMask := []string{} if d.HasChange("notification_emails") { @@ -154,7 +161,7 @@ func resourceAccessApprovalFolderSettingsCreate(d *schema.ResourceData, meta int if err != nil { return err } - res, err := sendRequestWithTimeout(config, "PATCH", "", url, obj, d.Timeout(schema.TimeoutCreate)) + res, err := sendRequestWithTimeout(config, "PATCH", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating FolderSettings: %s", err) } @@ -182,7 +189,14 @@ func resourceAccessApprovalFolderSettingsRead(d *schema.ResourceData, meta inter return err } - res, err := sendRequest(config, "GET", "", url, nil) + billingProject := "" + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("AccessApprovalFolderSettings %q", d.Id())) } @@ -206,6 +220,8 @@ func resourceAccessApprovalFolderSettingsRead(d *schema.ResourceData, meta inter func resourceAccessApprovalFolderSettingsUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + obj := make(map[string]interface{}) notificationEmailsProp, err := expandAccessApprovalFolderSettingsNotificationEmails(d.Get("notification_emails"), d, config) if err != nil { @@ -241,7 +257,13 @@ func resourceAccessApprovalFolderSettingsUpdate(d *schema.ResourceData, meta int if err != nil { return err } - res, err := sendRequestWithTimeout(config, "PATCH", "", url, obj, d.Timeout(schema.TimeoutUpdate)) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "PATCH", billingProject, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating FolderSettings %q: %s", d.Id(), err) diff --git a/google/resource_access_approval_organization_settings.go b/google/resource_access_approval_organization_settings.go index 0665e8ee846..e0882455ba3 100644 --- a/google/resource_access_approval_organization_settings.go +++ b/google/resource_access_approval_organization_settings.go @@ -139,6 +139,13 @@ func resourceAccessApprovalOrganizationSettingsCreate(d *schema.ResourceData, me } log.Printf("[DEBUG] Creating new OrganizationSettings: %#v", obj) + billingProject := "" + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + updateMask := []string{} if d.HasChange("notification_emails") { @@ -154,7 +161,7 @@ func resourceAccessApprovalOrganizationSettingsCreate(d *schema.ResourceData, me if err != nil { return err } - res, err := sendRequestWithTimeout(config, "PATCH", "", url, obj, d.Timeout(schema.TimeoutCreate)) + res, err := sendRequestWithTimeout(config, "PATCH", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating OrganizationSettings: %s", err) } @@ -182,7 +189,14 @@ func resourceAccessApprovalOrganizationSettingsRead(d *schema.ResourceData, meta return err } - res, err := sendRequest(config, "GET", "", url, nil) + billingProject := "" + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("AccessApprovalOrganizationSettings %q", d.Id())) } @@ -206,6 +220,8 @@ func resourceAccessApprovalOrganizationSettingsRead(d *schema.ResourceData, meta func resourceAccessApprovalOrganizationSettingsUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + obj := make(map[string]interface{}) notificationEmailsProp, err := expandAccessApprovalOrganizationSettingsNotificationEmails(d.Get("notification_emails"), d, config) if err != nil { @@ -241,7 +257,13 @@ func resourceAccessApprovalOrganizationSettingsUpdate(d *schema.ResourceData, me if err != nil { return err } - res, err := sendRequestWithTimeout(config, "PATCH", "", url, obj, d.Timeout(schema.TimeoutUpdate)) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "PATCH", billingProject, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating OrganizationSettings %q: %s", d.Id(), err) diff --git a/google/resource_access_approval_project_settings.go b/google/resource_access_approval_project_settings.go index 33fbb8ef603..fd9da19877b 100644 --- a/google/resource_access_approval_project_settings.go +++ b/google/resource_access_approval_project_settings.go @@ -145,10 +145,19 @@ func resourceAccessApprovalProjectSettingsCreate(d *schema.ResourceData, meta in } log.Printf("[DEBUG] Creating new ProjectSettings: %#v", obj) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + updateMask := []string{} if d.HasChange("notification_emails") { @@ -164,7 +173,7 @@ func resourceAccessApprovalProjectSettingsCreate(d *schema.ResourceData, meta in if err != nil { return err } - res, err := sendRequestWithTimeout(config, "PATCH", project, url, obj, d.Timeout(schema.TimeoutCreate)) + res, err := sendRequestWithTimeout(config, "PATCH", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating ProjectSettings: %s", err) } @@ -192,11 +201,20 @@ func resourceAccessApprovalProjectSettingsRead(d *schema.ResourceData, meta inte return err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequest(config, "GET", project, url, nil) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("AccessApprovalProjectSettings %q", d.Id())) } @@ -224,10 +242,13 @@ func resourceAccessApprovalProjectSettingsRead(d *schema.ResourceData, meta inte func resourceAccessApprovalProjectSettingsUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project obj := make(map[string]interface{}) notificationEmailsProp, err := expandAccessApprovalProjectSettingsNotificationEmails(d.Get("notification_emails"), d, config) @@ -264,7 +285,13 @@ func resourceAccessApprovalProjectSettingsUpdate(d *schema.ResourceData, meta in if err != nil { return err } - res, err := sendRequestWithTimeout(config, "PATCH", project, url, obj, d.Timeout(schema.TimeoutUpdate)) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "PATCH", billingProject, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating ProjectSettings %q: %s", d.Id(), err) diff --git a/google/resource_access_context_manager_access_level.go b/google/resource_access_context_manager_access_level.go index 84d3534a154..5a9c0eae5ee 100644 --- a/google/resource_access_context_manager_access_level.go +++ b/google/resource_access_context_manager_access_level.go @@ -332,7 +332,14 @@ func resourceAccessContextManagerAccessLevelCreate(d *schema.ResourceData, meta } log.Printf("[DEBUG] Creating new AccessLevel: %#v", obj) - res, err := sendRequestWithTimeout(config, "POST", "", url, obj, d.Timeout(schema.TimeoutCreate)) + billingProject := "" + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating AccessLevel: %s", err) } @@ -380,7 +387,14 @@ func resourceAccessContextManagerAccessLevelRead(d *schema.ResourceData, meta in return err } - res, err := sendRequest(config, "GET", "", url, nil) + billingProject := "" + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("AccessContextManagerAccessLevel %q", d.Id())) } @@ -407,6 +421,8 @@ func resourceAccessContextManagerAccessLevelRead(d *schema.ResourceData, meta in func resourceAccessContextManagerAccessLevelUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + obj := make(map[string]interface{}) titleProp, err := expandAccessContextManagerAccessLevelTitle(d.Get("title"), d, config) if err != nil { @@ -467,7 +483,13 @@ func resourceAccessContextManagerAccessLevelUpdate(d *schema.ResourceData, meta if err != nil { return err } - res, err := sendRequestWithTimeout(config, "PATCH", "", url, obj, d.Timeout(schema.TimeoutUpdate)) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "PATCH", billingProject, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating AccessLevel %q: %s", d.Id(), err) @@ -489,6 +511,8 @@ func resourceAccessContextManagerAccessLevelUpdate(d *schema.ResourceData, meta func resourceAccessContextManagerAccessLevelDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + url, err := replaceVars(d, config, "{{AccessContextManagerBasePath}}{{name}}") if err != nil { return err @@ -497,7 +521,12 @@ func resourceAccessContextManagerAccessLevelDelete(d *schema.ResourceData, meta var obj map[string]interface{} log.Printf("[DEBUG] Deleting AccessLevel %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", "", url, obj, d.Timeout(schema.TimeoutDelete)) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "DELETE", billingProject, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "AccessLevel") } diff --git a/google/resource_access_context_manager_access_levels.go b/google/resource_access_context_manager_access_levels.go index 48dca069bc9..dda6e3e1ec7 100644 --- a/google/resource_access_context_manager_access_levels.go +++ b/google/resource_access_context_manager_access_levels.go @@ -308,7 +308,14 @@ func resourceAccessContextManagerAccessLevelsCreate(d *schema.ResourceData, meta } log.Printf("[DEBUG] Creating new AccessLevels: %#v", obj) - res, err := sendRequestWithTimeout(config, "POST", "", url, obj, d.Timeout(schema.TimeoutCreate)) + billingProject := "" + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating AccessLevels: %s", err) } @@ -343,7 +350,14 @@ func resourceAccessContextManagerAccessLevelsRead(d *schema.ResourceData, meta i return err } - res, err := sendRequest(config, "GET", "", url, nil) + billingProject := "" + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("AccessContextManagerAccessLevels %q", d.Id())) } @@ -358,6 +372,8 @@ func resourceAccessContextManagerAccessLevelsRead(d *schema.ResourceData, meta i func resourceAccessContextManagerAccessLevelsUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + obj := make(map[string]interface{}) accessLevelsProp, err := expandAccessContextManagerAccessLevelsAccessLevels(d.Get("access_levels"), d, config) if err != nil { @@ -372,7 +388,13 @@ func resourceAccessContextManagerAccessLevelsUpdate(d *schema.ResourceData, meta } log.Printf("[DEBUG] Updating AccessLevels %q: %#v", d.Id(), obj) - res, err := sendRequestWithTimeout(config, "POST", "", url, obj, d.Timeout(schema.TimeoutUpdate)) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating AccessLevels %q: %s", d.Id(), err) diff --git a/google/resource_access_context_manager_access_policy.go b/google/resource_access_context_manager_access_policy.go index 18bdb9610e1..53b5874913a 100644 --- a/google/resource_access_context_manager_access_policy.go +++ b/google/resource_access_context_manager_access_policy.go @@ -96,7 +96,14 @@ func resourceAccessContextManagerAccessPolicyCreate(d *schema.ResourceData, meta } log.Printf("[DEBUG] Creating new AccessPolicy: %#v", obj) - res, err := sendRequestWithTimeout(config, "POST", "", url, obj, d.Timeout(schema.TimeoutCreate)) + billingProject := "" + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating AccessPolicy: %s", err) } @@ -154,7 +161,14 @@ func resourceAccessContextManagerAccessPolicyRead(d *schema.ResourceData, meta i return err } - res, err := sendRequest(config, "GET", "", url, nil) + billingProject := "" + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("AccessContextManagerAccessPolicy %q", d.Id())) } @@ -181,6 +195,8 @@ func resourceAccessContextManagerAccessPolicyRead(d *schema.ResourceData, meta i func resourceAccessContextManagerAccessPolicyUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + obj := make(map[string]interface{}) titleProp, err := expandAccessContextManagerAccessPolicyTitle(d.Get("title"), d, config) if err != nil { @@ -206,7 +222,13 @@ func resourceAccessContextManagerAccessPolicyUpdate(d *schema.ResourceData, meta if err != nil { return err } - res, err := sendRequestWithTimeout(config, "PATCH", "", url, obj, d.Timeout(schema.TimeoutUpdate)) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "PATCH", billingProject, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating AccessPolicy %q: %s", d.Id(), err) @@ -228,6 +250,8 @@ func resourceAccessContextManagerAccessPolicyUpdate(d *schema.ResourceData, meta func resourceAccessContextManagerAccessPolicyDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + url, err := replaceVars(d, config, "{{AccessContextManagerBasePath}}accessPolicies/{{name}}") if err != nil { return err @@ -236,7 +260,12 @@ func resourceAccessContextManagerAccessPolicyDelete(d *schema.ResourceData, meta var obj map[string]interface{} log.Printf("[DEBUG] Deleting AccessPolicy %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", "", url, obj, d.Timeout(schema.TimeoutDelete)) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "DELETE", billingProject, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "AccessPolicy") } diff --git a/google/resource_access_context_manager_service_perimeter.go b/google/resource_access_context_manager_service_perimeter.go index 96b6743feac..a33e329b6f2 100644 --- a/google/resource_access_context_manager_service_perimeter.go +++ b/google/resource_access_context_manager_service_perimeter.go @@ -353,7 +353,14 @@ func resourceAccessContextManagerServicePerimeterCreate(d *schema.ResourceData, } log.Printf("[DEBUG] Creating new ServicePerimeter: %#v", obj) - res, err := sendRequestWithTimeout(config, "POST", "", url, obj, d.Timeout(schema.TimeoutCreate)) + billingProject := "" + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating ServicePerimeter: %s", err) } @@ -401,7 +408,14 @@ func resourceAccessContextManagerServicePerimeterRead(d *schema.ResourceData, me return err } - res, err := sendRequest(config, "GET", "", url, nil) + billingProject := "" + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("AccessContextManagerServicePerimeter %q", d.Id())) } @@ -440,6 +454,8 @@ func resourceAccessContextManagerServicePerimeterRead(d *schema.ResourceData, me func resourceAccessContextManagerServicePerimeterUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + obj := make(map[string]interface{}) titleProp, err := expandAccessContextManagerServicePerimeterTitle(d.Get("title"), d, config) if err != nil { @@ -517,7 +533,13 @@ func resourceAccessContextManagerServicePerimeterUpdate(d *schema.ResourceData, if err != nil { return err } - res, err := sendRequestWithTimeout(config, "PATCH", "", url, obj, d.Timeout(schema.TimeoutUpdate)) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "PATCH", billingProject, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating ServicePerimeter %q: %s", d.Id(), err) @@ -539,6 +561,8 @@ func resourceAccessContextManagerServicePerimeterUpdate(d *schema.ResourceData, func resourceAccessContextManagerServicePerimeterDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + lockName, err := replaceVars(d, config, "{{name}}") if err != nil { return err @@ -554,7 +578,12 @@ func resourceAccessContextManagerServicePerimeterDelete(d *schema.ResourceData, var obj map[string]interface{} log.Printf("[DEBUG] Deleting ServicePerimeter %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", "", url, obj, d.Timeout(schema.TimeoutDelete)) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "DELETE", billingProject, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "ServicePerimeter") } diff --git a/google/resource_access_context_manager_service_perimeter_resource.go b/google/resource_access_context_manager_service_perimeter_resource.go index bd1a1d7df7d..6eda4a95446 100644 --- a/google/resource_access_context_manager_service_perimeter_resource.go +++ b/google/resource_access_context_manager_service_perimeter_resource.go @@ -92,7 +92,14 @@ func resourceAccessContextManagerServicePerimeterResourceCreate(d *schema.Resour if err != nil { return err } - res, err := sendRequestWithTimeout(config, "PATCH", "", url, obj, d.Timeout(schema.TimeoutCreate)) + billingProject := "" + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "PATCH", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating ServicePerimeterResource: %s", err) } @@ -150,7 +157,14 @@ func resourceAccessContextManagerServicePerimeterResourceRead(d *schema.Resource return err } - res, err := sendRequest(config, "GET", "", url, nil) + billingProject := "" + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("AccessContextManagerServicePerimeterResource %q", d.Id())) } @@ -177,6 +191,8 @@ func resourceAccessContextManagerServicePerimeterResourceRead(d *schema.Resource func resourceAccessContextManagerServicePerimeterResourceDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + lockName, err := replaceVars(d, config, "{{perimeter_name}}") if err != nil { return err @@ -201,7 +217,12 @@ func resourceAccessContextManagerServicePerimeterResourceDelete(d *schema.Resour } log.Printf("[DEBUG] Deleting ServicePerimeterResource %q", d.Id()) - res, err := sendRequestWithTimeout(config, "PATCH", "", url, obj, d.Timeout(schema.TimeoutDelete)) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "PATCH", billingProject, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "ServicePerimeterResource") } diff --git a/google/resource_access_context_manager_service_perimeters.go b/google/resource_access_context_manager_service_perimeters.go index 1f1805b4a84..4944a490781 100644 --- a/google/resource_access_context_manager_service_perimeters.go +++ b/google/resource_access_context_manager_service_perimeters.go @@ -312,7 +312,14 @@ func resourceAccessContextManagerServicePerimetersCreate(d *schema.ResourceData, } log.Printf("[DEBUG] Creating new ServicePerimeters: %#v", obj) - res, err := sendRequestWithTimeout(config, "POST", "", url, obj, d.Timeout(schema.TimeoutCreate)) + billingProject := "" + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating ServicePerimeters: %s", err) } @@ -347,7 +354,14 @@ func resourceAccessContextManagerServicePerimetersRead(d *schema.ResourceData, m return err } - res, err := sendRequest(config, "GET", "", url, nil) + billingProject := "" + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("AccessContextManagerServicePerimeters %q", d.Id())) } @@ -362,6 +376,8 @@ func resourceAccessContextManagerServicePerimetersRead(d *schema.ResourceData, m func resourceAccessContextManagerServicePerimetersUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + obj := make(map[string]interface{}) servicePerimetersProp, err := expandAccessContextManagerServicePerimetersServicePerimeters(d.Get("service_perimeters"), d, config) if err != nil { @@ -382,7 +398,13 @@ func resourceAccessContextManagerServicePerimetersUpdate(d *schema.ResourceData, } log.Printf("[DEBUG] Updating ServicePerimeters %q: %#v", d.Id(), obj) - res, err := sendRequestWithTimeout(config, "POST", "", url, obj, d.Timeout(schema.TimeoutUpdate)) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating ServicePerimeters %q: %s", d.Id(), err) diff --git a/google/resource_active_directory_domain.go b/google/resource_active_directory_domain.go index 7e9a6c34d05..169668f87cc 100644 --- a/google/resource_active_directory_domain.go +++ b/google/resource_active_directory_domain.go @@ -152,11 +152,20 @@ func resourceActiveDirectoryDomainCreate(d *schema.ResourceData, meta interface{ } log.Printf("[DEBUG] Creating new Domain: %#v", obj) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating Domain: %s", err) } @@ -204,11 +213,20 @@ func resourceActiveDirectoryDomainRead(d *schema.ResourceData, meta interface{}) return err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequest(config, "GET", project, url, nil) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("ActiveDirectoryDomain %q", d.Id())) } @@ -245,10 +263,13 @@ func resourceActiveDirectoryDomainRead(d *schema.ResourceData, meta interface{}) func resourceActiveDirectoryDomainUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project obj := make(map[string]interface{}) labelsProp, err := expandActiveDirectoryDomainLabels(d.Get("labels"), d, config) @@ -295,7 +316,13 @@ func resourceActiveDirectoryDomainUpdate(d *schema.ResourceData, meta interface{ if err != nil { return err } - res, err := sendRequestWithTimeout(config, "PATCH", project, url, obj, d.Timeout(schema.TimeoutUpdate)) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "PATCH", billingProject, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating Domain %q: %s", d.Id(), err) @@ -317,10 +344,13 @@ func resourceActiveDirectoryDomainUpdate(d *schema.ResourceData, meta interface{ func resourceActiveDirectoryDomainDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project url, err := replaceVars(d, config, "{{ActiveDirectoryBasePath}}{{name}}") if err != nil { @@ -330,7 +360,12 @@ func resourceActiveDirectoryDomainDelete(d *schema.ResourceData, meta interface{ var obj map[string]interface{} log.Printf("[DEBUG] Deleting Domain %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "DELETE", billingProject, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "Domain") } diff --git a/google/resource_active_directory_domain_trust.go b/google/resource_active_directory_domain_trust.go index 9590cbf36f9..e32e6b46092 100644 --- a/google/resource_active_directory_domain_trust.go +++ b/google/resource_active_directory_domain_trust.go @@ -152,11 +152,20 @@ func resourceActiveDirectoryDomainTrustCreate(d *schema.ResourceData, meta inter } log.Printf("[DEBUG] Creating new DomainTrust: %#v", obj) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating DomainTrust: %s", err) } @@ -222,11 +231,20 @@ func resourceActiveDirectoryDomainTrustRead(d *schema.ResourceData, meta interfa return err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequest(config, "GET", project, url, nil) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("ActiveDirectoryDomainTrust %q", d.Id())) } @@ -281,10 +299,13 @@ func resourceActiveDirectoryDomainTrustRead(d *schema.ResourceData, meta interfa func resourceActiveDirectoryDomainTrustUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project obj := make(map[string]interface{}) targetDomainNameProp, err := expandNestedActiveDirectoryDomainTrustTargetDomainName(d.Get("target_domain_name"), d, config) @@ -335,7 +356,13 @@ func resourceActiveDirectoryDomainTrustUpdate(d *schema.ResourceData, meta inter } log.Printf("[DEBUG] Updating DomainTrust %q: %#v", d.Id(), obj) - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutUpdate)) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating DomainTrust %q: %s", d.Id(), err) diff --git a/google/resource_app_engine_application_url_dispatch_rules.go b/google/resource_app_engine_application_url_dispatch_rules.go index 3c90f9a4af9..41edd4780c8 100644 --- a/google/resource_app_engine_application_url_dispatch_rules.go +++ b/google/resource_app_engine_application_url_dispatch_rules.go @@ -103,11 +103,20 @@ func resourceAppEngineApplicationUrlDispatchRulesCreate(d *schema.ResourceData, } log.Printf("[DEBUG] Creating new ApplicationUrlDispatchRules: %#v", obj) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequestWithTimeout(config, "PATCH", project, url, obj, d.Timeout(schema.TimeoutCreate), isAppEngineRetryableError) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "PATCH", billingProject, url, obj, d.Timeout(schema.TimeoutCreate), isAppEngineRetryableError) if err != nil { return fmt.Errorf("Error creating ApplicationUrlDispatchRules: %s", err) } @@ -142,11 +151,20 @@ func resourceAppEngineApplicationUrlDispatchRulesRead(d *schema.ResourceData, me return err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequest(config, "GET", project, url, nil, isAppEngineRetryableError) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil, isAppEngineRetryableError) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("AppEngineApplicationUrlDispatchRules %q", d.Id())) } @@ -165,10 +183,13 @@ func resourceAppEngineApplicationUrlDispatchRulesRead(d *schema.ResourceData, me func resourceAppEngineApplicationUrlDispatchRulesUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project obj := make(map[string]interface{}) dispatchRulesProp, err := expandAppEngineApplicationUrlDispatchRulesDispatchRules(d.Get("dispatch_rules"), d, config) @@ -191,7 +212,13 @@ func resourceAppEngineApplicationUrlDispatchRulesUpdate(d *schema.ResourceData, } log.Printf("[DEBUG] Updating ApplicationUrlDispatchRules %q: %#v", d.Id(), obj) - res, err := sendRequestWithTimeout(config, "PATCH", project, url, obj, d.Timeout(schema.TimeoutUpdate), isAppEngineRetryableError) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "PATCH", billingProject, url, obj, d.Timeout(schema.TimeoutUpdate), isAppEngineRetryableError) if err != nil { return fmt.Errorf("Error updating ApplicationUrlDispatchRules %q: %s", d.Id(), err) @@ -213,10 +240,13 @@ func resourceAppEngineApplicationUrlDispatchRulesUpdate(d *schema.ResourceData, func resourceAppEngineApplicationUrlDispatchRulesDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project lockName, err := replaceVars(d, config, "apps/{{project}}") if err != nil { @@ -233,7 +263,12 @@ func resourceAppEngineApplicationUrlDispatchRulesDelete(d *schema.ResourceData, var obj map[string]interface{} log.Printf("[DEBUG] Deleting ApplicationUrlDispatchRules %q", d.Id()) - res, err := sendRequestWithTimeout(config, "PATCH", project, url, obj, d.Timeout(schema.TimeoutDelete), isAppEngineRetryableError) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "PATCH", billingProject, url, obj, d.Timeout(schema.TimeoutDelete), isAppEngineRetryableError) if err != nil { return handleNotFoundError(err, d, "ApplicationUrlDispatchRules") } diff --git a/google/resource_app_engine_domain_mapping.go b/google/resource_app_engine_domain_mapping.go index 055ec64769c..a402cc157de 100644 --- a/google/resource_app_engine_domain_mapping.go +++ b/google/resource_app_engine_domain_mapping.go @@ -180,11 +180,20 @@ func resourceAppEngineDomainMappingCreate(d *schema.ResourceData, meta interface } log.Printf("[DEBUG] Creating new DomainMapping: %#v", obj) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating DomainMapping: %s", err) } @@ -232,11 +241,20 @@ func resourceAppEngineDomainMappingRead(d *schema.ResourceData, meta interface{} return err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequest(config, "GET", project, url, nil) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("AppEngineDomainMapping %q", d.Id())) } @@ -264,10 +282,13 @@ func resourceAppEngineDomainMappingRead(d *schema.ResourceData, meta interface{} func resourceAppEngineDomainMappingUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project obj := make(map[string]interface{}) sslSettingsProp, err := expandAppEngineDomainMappingSslSettings(d.Get("ssl_settings"), d, config) @@ -302,7 +323,13 @@ func resourceAppEngineDomainMappingUpdate(d *schema.ResourceData, meta interface if err != nil { return err } - res, err := sendRequestWithTimeout(config, "PATCH", project, url, obj, d.Timeout(schema.TimeoutUpdate)) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "PATCH", billingProject, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating DomainMapping %q: %s", d.Id(), err) @@ -324,10 +351,13 @@ func resourceAppEngineDomainMappingUpdate(d *schema.ResourceData, meta interface func resourceAppEngineDomainMappingDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project lockName, err := replaceVars(d, config, "apps/{{project}}") if err != nil { @@ -344,7 +374,12 @@ func resourceAppEngineDomainMappingDelete(d *schema.ResourceData, meta interface var obj map[string]interface{} log.Printf("[DEBUG] Deleting DomainMapping %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "DELETE", billingProject, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "DomainMapping") } diff --git a/google/resource_app_engine_firewall_rule.go b/google/resource_app_engine_firewall_rule.go index e41f14475c0..0a930d5bb9c 100644 --- a/google/resource_app_engine_firewall_rule.go +++ b/google/resource_app_engine_firewall_rule.go @@ -122,11 +122,20 @@ func resourceAppEngineFirewallRuleCreate(d *schema.ResourceData, meta interface{ } log.Printf("[DEBUG] Creating new FirewallRule: %#v", obj) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating FirewallRule: %s", err) } @@ -157,11 +166,20 @@ func resourceAppEngineFirewallRulePollRead(d *schema.ResourceData, meta interfac return nil, err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return nil, err } - res, err := sendRequest(config, "GET", project, url, nil) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return res, err } @@ -177,11 +195,20 @@ func resourceAppEngineFirewallRuleRead(d *schema.ResourceData, meta interface{}) return err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequest(config, "GET", project, url, nil) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("AppEngineFirewallRule %q", d.Id())) } @@ -209,10 +236,13 @@ func resourceAppEngineFirewallRuleRead(d *schema.ResourceData, meta interface{}) func resourceAppEngineFirewallRuleUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project obj := make(map[string]interface{}) descriptionProp, err := expandAppEngineFirewallRuleDescription(d.Get("description"), d, config) @@ -276,7 +306,13 @@ func resourceAppEngineFirewallRuleUpdate(d *schema.ResourceData, meta interface{ if err != nil { return err } - res, err := sendRequestWithTimeout(config, "PATCH", project, url, obj, d.Timeout(schema.TimeoutUpdate)) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "PATCH", billingProject, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating FirewallRule %q: %s", d.Id(), err) @@ -290,10 +326,13 @@ func resourceAppEngineFirewallRuleUpdate(d *schema.ResourceData, meta interface{ func resourceAppEngineFirewallRuleDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project lockName, err := replaceVars(d, config, "apps/{{project}}") if err != nil { @@ -310,7 +349,12 @@ func resourceAppEngineFirewallRuleDelete(d *schema.ResourceData, meta interface{ var obj map[string]interface{} log.Printf("[DEBUG] Deleting FirewallRule %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "DELETE", billingProject, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "FirewallRule") } diff --git a/google/resource_app_engine_flexible_app_version.go b/google/resource_app_engine_flexible_app_version.go index 9b6de57df88..cd20f4714b7 100644 --- a/google/resource_app_engine_flexible_app_version.go +++ b/google/resource_app_engine_flexible_app_version.go @@ -1022,11 +1022,20 @@ func resourceAppEngineFlexibleAppVersionCreate(d *schema.ResourceData, meta inte } log.Printf("[DEBUG] Creating new FlexibleAppVersion: %#v", obj) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate), isAppEngineRetryableError) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate), isAppEngineRetryableError) if err != nil { return fmt.Errorf("Error creating FlexibleAppVersion: %s", err) } @@ -1061,11 +1070,20 @@ func resourceAppEngineFlexibleAppVersionRead(d *schema.ResourceData, meta interf return err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequest(config, "GET", project, url, nil, isAppEngineRetryableError) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil, isAppEngineRetryableError) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("AppEngineFlexibleAppVersion %q", d.Id())) } @@ -1151,10 +1169,13 @@ func resourceAppEngineFlexibleAppVersionRead(d *schema.ResourceData, meta interf func resourceAppEngineFlexibleAppVersionUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project obj := make(map[string]interface{}) idProp, err := expandAppEngineFlexibleAppVersionVersionId(d.Get("version_id"), d, config) @@ -1320,7 +1341,13 @@ func resourceAppEngineFlexibleAppVersionUpdate(d *schema.ResourceData, meta inte } log.Printf("[DEBUG] Updating FlexibleAppVersion %q: %#v", d.Id(), obj) - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutUpdate), isAppEngineRetryableError) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutUpdate), isAppEngineRetryableError) if err != nil { return fmt.Errorf("Error updating FlexibleAppVersion %q: %s", d.Id(), err) diff --git a/google/resource_app_engine_service_split_traffic.go b/google/resource_app_engine_service_split_traffic.go index 998826032d2..dc82a2e0329 100644 --- a/google/resource_app_engine_service_split_traffic.go +++ b/google/resource_app_engine_service_split_traffic.go @@ -115,11 +115,20 @@ func resourceAppEngineServiceSplitTrafficCreate(d *schema.ResourceData, meta int } log.Printf("[DEBUG] Creating new ServiceSplitTraffic: %#v", obj) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequestWithTimeout(config, "PATCH", project, url, obj, d.Timeout(schema.TimeoutCreate)) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "PATCH", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating ServiceSplitTraffic: %s", err) } @@ -154,11 +163,20 @@ func resourceAppEngineServiceSplitTrafficRead(d *schema.ResourceData, meta inter return err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequest(config, "GET", project, url, nil) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("AppEngineServiceSplitTraffic %q", d.Id())) } @@ -177,10 +195,13 @@ func resourceAppEngineServiceSplitTrafficRead(d *schema.ResourceData, meta inter func resourceAppEngineServiceSplitTrafficUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project obj := make(map[string]interface{}) idProp, err := expandAppEngineServiceSplitTrafficService(d.Get("service"), d, config) @@ -224,7 +245,13 @@ func resourceAppEngineServiceSplitTrafficUpdate(d *schema.ResourceData, meta int if err != nil { return err } - res, err := sendRequestWithTimeout(config, "PATCH", project, url, obj, d.Timeout(schema.TimeoutUpdate)) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "PATCH", billingProject, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating ServiceSplitTraffic %q: %s", d.Id(), err) diff --git a/google/resource_app_engine_standard_app_version.go b/google/resource_app_engine_standard_app_version.go index 64d79f7ff30..a3cb33d5dc1 100644 --- a/google/resource_app_engine_standard_app_version.go +++ b/google/resource_app_engine_standard_app_version.go @@ -554,11 +554,20 @@ func resourceAppEngineStandardAppVersionCreate(d *schema.ResourceData, meta inte } log.Printf("[DEBUG] Creating new StandardAppVersion: %#v", obj) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate), isAppEngineRetryableError) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate), isAppEngineRetryableError) if err != nil { return fmt.Errorf("Error creating StandardAppVersion: %s", err) } @@ -593,11 +602,20 @@ func resourceAppEngineStandardAppVersionRead(d *schema.ResourceData, meta interf return err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequest(config, "GET", project, url, nil, isAppEngineRetryableError) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil, isAppEngineRetryableError) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("AppEngineStandardAppVersion %q", d.Id())) } @@ -656,10 +674,13 @@ func resourceAppEngineStandardAppVersionRead(d *schema.ResourceData, meta interf func resourceAppEngineStandardAppVersionUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project obj := make(map[string]interface{}) idProp, err := expandAppEngineStandardAppVersionVersionId(d.Get("version_id"), d, config) @@ -766,7 +787,13 @@ func resourceAppEngineStandardAppVersionUpdate(d *schema.ResourceData, meta inte } log.Printf("[DEBUG] Updating StandardAppVersion %q: %#v", d.Id(), obj) - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutUpdate), isAppEngineRetryableError) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutUpdate), isAppEngineRetryableError) if err != nil { return fmt.Errorf("Error updating StandardAppVersion %q: %s", d.Id(), err) diff --git a/google/resource_big_query_dataset.go b/google/resource_big_query_dataset.go index 870ef74f615..8f1553f9666 100644 --- a/google/resource_big_query_dataset.go +++ b/google/resource_big_query_dataset.go @@ -369,11 +369,20 @@ func resourceBigQueryDatasetCreate(d *schema.ResourceData, meta interface{}) err } log.Printf("[DEBUG] Creating new Dataset: %#v", obj) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating Dataset: %s", err) } @@ -398,11 +407,20 @@ func resourceBigQueryDatasetRead(d *schema.ResourceData, meta interface{}) error return err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequest(config, "GET", project, url, nil) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("BigQueryDataset %q", d.Id())) } @@ -471,10 +489,13 @@ func resourceBigQueryDatasetRead(d *schema.ResourceData, meta interface{}) error func resourceBigQueryDatasetUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project obj := make(map[string]interface{}) accessProp, err := expandBigQueryDatasetAccess(d.Get("access"), d, config) @@ -538,7 +559,13 @@ func resourceBigQueryDatasetUpdate(d *schema.ResourceData, meta interface{}) err } log.Printf("[DEBUG] Updating Dataset %q: %#v", d.Id(), obj) - res, err := sendRequestWithTimeout(config, "PUT", project, url, obj, d.Timeout(schema.TimeoutUpdate)) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "PUT", billingProject, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating Dataset %q: %s", d.Id(), err) @@ -552,10 +579,13 @@ func resourceBigQueryDatasetUpdate(d *schema.ResourceData, meta interface{}) err func resourceBigQueryDatasetDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project url, err := replaceVars(d, config, "{{BigQueryBasePath}}projects/{{project}}/datasets/{{dataset_id}}?deleteContents={{delete_contents_on_destroy}}") if err != nil { @@ -565,7 +595,12 @@ func resourceBigQueryDatasetDelete(d *schema.ResourceData, meta interface{}) err var obj map[string]interface{} log.Printf("[DEBUG] Deleting Dataset %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "DELETE", billingProject, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "Dataset") } diff --git a/google/resource_big_query_dataset_access.go b/google/resource_big_query_dataset_access.go index 6ace5bbbb85..637ca7cbcbf 100644 --- a/google/resource_big_query_dataset_access.go +++ b/google/resource_big_query_dataset_access.go @@ -349,11 +349,20 @@ func resourceBigQueryDatasetAccessCreate(d *schema.ResourceData, meta interface{ if err != nil { return err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequestWithTimeout(config, "PATCH", project, url, obj, d.Timeout(schema.TimeoutCreate)) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "PATCH", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating DatasetAccess: %s", err) } @@ -398,11 +407,20 @@ func resourceBigQueryDatasetAccessRead(d *schema.ResourceData, meta interface{}) return err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequest(config, "GET", project, url, nil) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("BigQueryDatasetAccess %q", d.Id())) } @@ -451,10 +469,13 @@ func resourceBigQueryDatasetAccessRead(d *schema.ResourceData, meta interface{}) func resourceBigQueryDatasetAccessDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project lockName, err := replaceVars(d, config, "{{dataset_id}}") if err != nil { @@ -476,7 +497,12 @@ func resourceBigQueryDatasetAccessDelete(d *schema.ResourceData, meta interface{ } log.Printf("[DEBUG] Deleting DatasetAccess %q", d.Id()) - res, err := sendRequestWithTimeout(config, "PATCH", project, url, obj, d.Timeout(schema.TimeoutDelete)) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "PATCH", billingProject, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "DatasetAccess") } diff --git a/google/resource_big_query_job.go b/google/resource_big_query_job.go index 370eb2f0565..187e2f0f259 100644 --- a/google/resource_big_query_job.go +++ b/google/resource_big_query_job.go @@ -885,11 +885,20 @@ func resourceBigQueryJobCreate(d *schema.ResourceData, meta interface{}) error { } log.Printf("[DEBUG] Creating new Job: %#v", obj) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating Job: %s", err) } @@ -920,11 +929,20 @@ func resourceBigQueryJobPollRead(d *schema.ResourceData, meta interface{}) PollR return nil, err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return nil, err } - res, err := sendRequest(config, "GET", project, url, nil) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return res, err } @@ -940,11 +958,20 @@ func resourceBigQueryJobRead(d *schema.ResourceData, meta interface{}) error { return err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequest(config, "GET", project, url, nil) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("BigQueryJob %q", d.Id())) } diff --git a/google/resource_bigquery_data_transfer_config.go b/google/resource_bigquery_data_transfer_config.go index d6b083712b2..fb1d30b2ae5 100644 --- a/google/resource_bigquery_data_transfer_config.go +++ b/google/resource_bigquery_data_transfer_config.go @@ -192,11 +192,20 @@ func resourceBigqueryDataTransferConfigCreate(d *schema.ResourceData, meta inter } log.Printf("[DEBUG] Creating new Config: %#v", obj) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate), iamMemberMissing) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate), iamMemberMissing) if err != nil { return fmt.Errorf("Error creating Config: %s", err) } @@ -240,11 +249,20 @@ func resourceBigqueryDataTransferConfigRead(d *schema.ResourceData, meta interfa return err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequest(config, "GET", project, url, nil, iamMemberMissing) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil, iamMemberMissing) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("BigqueryDataTransferConfig %q", d.Id())) } @@ -287,10 +305,13 @@ func resourceBigqueryDataTransferConfigRead(d *schema.ResourceData, meta interfa func resourceBigqueryDataTransferConfigUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project obj := make(map[string]interface{}) destinationDatasetIdProp, err := expandBigqueryDataTransferConfigDestinationDatasetId(d.Get("destination_dataset_id"), d, config) @@ -367,7 +388,13 @@ func resourceBigqueryDataTransferConfigUpdate(d *schema.ResourceData, meta inter if err != nil { return err } - res, err := sendRequestWithTimeout(config, "PATCH", project, url, obj, d.Timeout(schema.TimeoutUpdate), iamMemberMissing) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "PATCH", billingProject, url, obj, d.Timeout(schema.TimeoutUpdate), iamMemberMissing) if err != nil { return fmt.Errorf("Error updating Config %q: %s", d.Id(), err) @@ -381,10 +408,13 @@ func resourceBigqueryDataTransferConfigUpdate(d *schema.ResourceData, meta inter func resourceBigqueryDataTransferConfigDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project url, err := replaceVars(d, config, "{{BigqueryDataTransferBasePath}}{{name}}") if err != nil { @@ -394,7 +424,12 @@ func resourceBigqueryDataTransferConfigDelete(d *schema.ResourceData, meta inter var obj map[string]interface{} log.Printf("[DEBUG] Deleting Config %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete), iamMemberMissing) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "DELETE", billingProject, url, obj, d.Timeout(schema.TimeoutDelete), iamMemberMissing) if err != nil { return handleNotFoundError(err, d, "Config") } diff --git a/google/resource_bigtable_app_profile.go b/google/resource_bigtable_app_profile.go index 4e534d27e58..fb9020cd503 100644 --- a/google/resource_bigtable_app_profile.go +++ b/google/resource_bigtable_app_profile.go @@ -148,11 +148,20 @@ func resourceBigtableAppProfileCreate(d *schema.ResourceData, meta interface{}) } log.Printf("[DEBUG] Creating new AppProfile: %#v", obj) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating AppProfile: %s", err) } @@ -180,11 +189,20 @@ func resourceBigtableAppProfileRead(d *schema.ResourceData, meta interface{}) er return err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequest(config, "GET", project, url, nil) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("BigtableAppProfile %q", d.Id())) } @@ -212,10 +230,13 @@ func resourceBigtableAppProfileRead(d *schema.ResourceData, meta interface{}) er func resourceBigtableAppProfileUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project obj := make(map[string]interface{}) descriptionProp, err := expandBigtableAppProfileDescription(d.Get("description"), d, config) @@ -247,7 +268,13 @@ func resourceBigtableAppProfileUpdate(d *schema.ResourceData, meta interface{}) if err != nil { return err } - res, err := sendRequestWithTimeout(config, "PATCH", project, url, obj, d.Timeout(schema.TimeoutUpdate)) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "PATCH", billingProject, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating AppProfile %q: %s", d.Id(), err) @@ -261,10 +288,13 @@ func resourceBigtableAppProfileUpdate(d *schema.ResourceData, meta interface{}) func resourceBigtableAppProfileDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project url, err := replaceVars(d, config, "{{BigtableBasePath}}projects/{{project}}/instances/{{instance}}/appProfiles/{{app_profile_id}}?ignoreWarnings={{ignore_warnings}}") if err != nil { @@ -274,7 +304,12 @@ func resourceBigtableAppProfileDelete(d *schema.ResourceData, meta interface{}) var obj map[string]interface{} log.Printf("[DEBUG] Deleting AppProfile %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "DELETE", billingProject, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "AppProfile") } diff --git a/google/resource_binary_authorization_attestor.go b/google/resource_binary_authorization_attestor.go index b36f338c652..a2b442b3915 100644 --- a/google/resource_binary_authorization_attestor.go +++ b/google/resource_binary_authorization_attestor.go @@ -203,11 +203,20 @@ func resourceBinaryAuthorizationAttestorCreate(d *schema.ResourceData, meta inte } log.Printf("[DEBUG] Creating new Attestor: %#v", obj) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating Attestor: %s", err) } @@ -232,11 +241,20 @@ func resourceBinaryAuthorizationAttestorRead(d *schema.ResourceData, meta interf return err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequest(config, "GET", project, url, nil) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("BinaryAuthorizationAttestor %q", d.Id())) } @@ -261,10 +279,13 @@ func resourceBinaryAuthorizationAttestorRead(d *schema.ResourceData, meta interf func resourceBinaryAuthorizationAttestorUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project obj := make(map[string]interface{}) nameProp, err := expandBinaryAuthorizationAttestorName(d.Get("name"), d, config) @@ -292,7 +313,13 @@ func resourceBinaryAuthorizationAttestorUpdate(d *schema.ResourceData, meta inte } log.Printf("[DEBUG] Updating Attestor %q: %#v", d.Id(), obj) - res, err := sendRequestWithTimeout(config, "PUT", project, url, obj, d.Timeout(schema.TimeoutUpdate)) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "PUT", billingProject, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating Attestor %q: %s", d.Id(), err) @@ -306,10 +333,13 @@ func resourceBinaryAuthorizationAttestorUpdate(d *schema.ResourceData, meta inte func resourceBinaryAuthorizationAttestorDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project url, err := replaceVars(d, config, "{{BinaryAuthorizationBasePath}}projects/{{project}}/attestors/{{name}}") if err != nil { @@ -319,7 +349,12 @@ func resourceBinaryAuthorizationAttestorDelete(d *schema.ResourceData, meta inte var obj map[string]interface{} log.Printf("[DEBUG] Deleting Attestor %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "DELETE", billingProject, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "Attestor") } diff --git a/google/resource_binary_authorization_policy.go b/google/resource_binary_authorization_policy.go index b751cb7551d..100bfff1214 100644 --- a/google/resource_binary_authorization_policy.go +++ b/google/resource_binary_authorization_policy.go @@ -260,11 +260,20 @@ func resourceBinaryAuthorizationPolicyCreate(d *schema.ResourceData, meta interf } log.Printf("[DEBUG] Creating new Policy: %#v", obj) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequestWithTimeout(config, "PUT", project, url, obj, d.Timeout(schema.TimeoutCreate)) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "PUT", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating Policy: %s", err) } @@ -289,11 +298,20 @@ func resourceBinaryAuthorizationPolicyRead(d *schema.ResourceData, meta interfac return err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequest(config, "GET", project, url, nil) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("BinaryAuthorizationPolicy %q", d.Id())) } @@ -324,10 +342,13 @@ func resourceBinaryAuthorizationPolicyRead(d *schema.ResourceData, meta interfac func resourceBinaryAuthorizationPolicyUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project obj := make(map[string]interface{}) descriptionProp, err := expandBinaryAuthorizationPolicyDescription(d.Get("description"), d, config) @@ -367,7 +388,13 @@ func resourceBinaryAuthorizationPolicyUpdate(d *schema.ResourceData, meta interf } log.Printf("[DEBUG] Updating Policy %q: %#v", d.Id(), obj) - res, err := sendRequestWithTimeout(config, "PUT", project, url, obj, d.Timeout(schema.TimeoutUpdate)) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "PUT", billingProject, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating Policy %q: %s", d.Id(), err) @@ -381,10 +408,13 @@ func resourceBinaryAuthorizationPolicyUpdate(d *schema.ResourceData, meta interf func resourceBinaryAuthorizationPolicyDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project url, err := replaceVars(d, config, "{{BinaryAuthorizationBasePath}}projects/{{project}}/policy") if err != nil { @@ -395,7 +425,12 @@ func resourceBinaryAuthorizationPolicyDelete(d *schema.ResourceData, meta interf obj = defaultBinaryAuthorizationPolicy(d.Get("project").(string)) log.Printf("[DEBUG] Deleting Policy %q", d.Id()) - res, err := sendRequestWithTimeout(config, "PUT", project, url, obj, d.Timeout(schema.TimeoutDelete)) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "PUT", billingProject, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "Policy") } diff --git a/google/resource_cloud_asset_folder_feed.go b/google/resource_cloud_asset_folder_feed.go index f62f30e1399..d9b87d91295 100644 --- a/google/resource_cloud_asset_folder_feed.go +++ b/google/resource_cloud_asset_folder_feed.go @@ -173,27 +173,21 @@ func resourceCloudAssetFolderFeedCreate(d *schema.ResourceData, meta interface{} } log.Printf("[DEBUG] Creating new FolderFeed: %#v", obj) - var project string + billingProject := "" + if parts := regexp.MustCompile(`projects\/([^\/]+)\/`).FindStringSubmatch(url); parts != nil { - project = parts[1] + billingProject = parts[1] } - // This should never happen, but the linter complains otherwise with ineffectual assignment to `project` - if project == "dummy lint" { - log.Printf("[DEBUG] Found project in url: %s", project) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp } + // Send the project ID in the X-Goog-User-Project header. origUserProjectOverride := config.UserProjectOverride config.UserProjectOverride = true - // If we have a billing project, use that one in the header. - bp, bpok := d.GetOk("billing_project") - if bpok && bp != "" { - project = bp.(string) - } else { - // otherwise, use the resource's project - rp, _ := d.GetOk("project") - project = rp.(string) - } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating FolderFeed: %s", err) } @@ -224,11 +218,18 @@ func resourceCloudAssetFolderFeedRead(d *schema.ResourceData, meta interface{}) return err } - var project string + billingProject := "" + if parts := regexp.MustCompile(`projects\/([^\/]+)\/`).FindStringSubmatch(url); parts != nil { - project = parts[1] + billingProject = parts[1] + } + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp } - res, err := sendRequest(config, "GET", project, url, nil) + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("CloudAssetFolderFeed %q", d.Id())) } @@ -258,6 +259,8 @@ func resourceCloudAssetFolderFeedRead(d *schema.ResourceData, meta interface{}) func resourceCloudAssetFolderFeedUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + obj := make(map[string]interface{}) assetNamesProp, err := expandCloudAssetFolderFeedAssetNames(d.Get("asset_names"), d, config) if err != nil { @@ -318,11 +321,16 @@ func resourceCloudAssetFolderFeedUpdate(d *schema.ResourceData, meta interface{} if err != nil { return err } - var project string if parts := regexp.MustCompile(`projects\/([^\/]+)\/`).FindStringSubmatch(url); parts != nil { - project = parts[1] + billingProject = parts[1] + } + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp } - res, err := sendRequestWithTimeout(config, "PATCH", project, url, obj, d.Timeout(schema.TimeoutUpdate)) + + res, err := sendRequestWithTimeout(config, "PATCH", billingProject, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating FolderFeed %q: %s", d.Id(), err) @@ -336,19 +344,27 @@ func resourceCloudAssetFolderFeedUpdate(d *schema.ResourceData, meta interface{} func resourceCloudAssetFolderFeedDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + url, err := replaceVars(d, config, "{{CloudAssetBasePath}}{{name}}") if err != nil { return err } var obj map[string]interface{} - var project string + if parts := regexp.MustCompile(`projects\/([^\/]+)\/`).FindStringSubmatch(url); parts != nil { - project = parts[1] + billingProject = parts[1] } + log.Printf("[DEBUG] Deleting FolderFeed %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "DELETE", billingProject, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "FolderFeed") } diff --git a/google/resource_cloud_asset_organization_feed.go b/google/resource_cloud_asset_organization_feed.go index b529fef2b74..27387f898dc 100644 --- a/google/resource_cloud_asset_organization_feed.go +++ b/google/resource_cloud_asset_organization_feed.go @@ -167,27 +167,21 @@ func resourceCloudAssetOrganizationFeedCreate(d *schema.ResourceData, meta inter } log.Printf("[DEBUG] Creating new OrganizationFeed: %#v", obj) - var project string + billingProject := "" + if parts := regexp.MustCompile(`projects\/([^\/]+)\/`).FindStringSubmatch(url); parts != nil { - project = parts[1] + billingProject = parts[1] } - // This should never happen, but the linter complains otherwise with ineffectual assignment to `project` - if project == "dummy lint" { - log.Printf("[DEBUG] Found project in url: %s", project) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp } + // Send the project ID in the X-Goog-User-Project header. origUserProjectOverride := config.UserProjectOverride config.UserProjectOverride = true - // If we have a billing project, use that one in the header. - bp, bpok := d.GetOk("billing_project") - if bpok && bp != "" { - project = bp.(string) - } else { - // otherwise, use the resource's project - rp, _ := d.GetOk("project") - project = rp.(string) - } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating OrganizationFeed: %s", err) } @@ -218,11 +212,18 @@ func resourceCloudAssetOrganizationFeedRead(d *schema.ResourceData, meta interfa return err } - var project string + billingProject := "" + if parts := regexp.MustCompile(`projects\/([^\/]+)\/`).FindStringSubmatch(url); parts != nil { - project = parts[1] + billingProject = parts[1] + } + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp } - res, err := sendRequest(config, "GET", project, url, nil) + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("CloudAssetOrganizationFeed %q", d.Id())) } @@ -249,6 +250,8 @@ func resourceCloudAssetOrganizationFeedRead(d *schema.ResourceData, meta interfa func resourceCloudAssetOrganizationFeedUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + obj := make(map[string]interface{}) assetNamesProp, err := expandCloudAssetOrganizationFeedAssetNames(d.Get("asset_names"), d, config) if err != nil { @@ -309,11 +312,16 @@ func resourceCloudAssetOrganizationFeedUpdate(d *schema.ResourceData, meta inter if err != nil { return err } - var project string if parts := regexp.MustCompile(`projects\/([^\/]+)\/`).FindStringSubmatch(url); parts != nil { - project = parts[1] + billingProject = parts[1] + } + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp } - res, err := sendRequestWithTimeout(config, "PATCH", project, url, obj, d.Timeout(schema.TimeoutUpdate)) + + res, err := sendRequestWithTimeout(config, "PATCH", billingProject, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating OrganizationFeed %q: %s", d.Id(), err) @@ -327,19 +335,27 @@ func resourceCloudAssetOrganizationFeedUpdate(d *schema.ResourceData, meta inter func resourceCloudAssetOrganizationFeedDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + url, err := replaceVars(d, config, "{{CloudAssetBasePath}}{{name}}") if err != nil { return err } var obj map[string]interface{} - var project string + if parts := regexp.MustCompile(`projects\/([^\/]+)\/`).FindStringSubmatch(url); parts != nil { - project = parts[1] + billingProject = parts[1] } + log.Printf("[DEBUG] Deleting OrganizationFeed %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "DELETE", billingProject, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "OrganizationFeed") } diff --git a/google/resource_cloud_asset_project_feed.go b/google/resource_cloud_asset_project_feed.go index 7c3279a29bd..022c9e58158 100644 --- a/google/resource_cloud_asset_project_feed.go +++ b/google/resource_cloud_asset_project_feed.go @@ -167,27 +167,23 @@ func resourceCloudAssetProjectFeedCreate(d *schema.ResourceData, meta interface{ } log.Printf("[DEBUG] Creating new ProjectFeed: %#v", obj) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - // This should never happen, but the linter complains otherwise with ineffectual assignment to `project` - if project == "dummy lint" { - log.Printf("[DEBUG] Found project in url: %s", project) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp } + // Send the project ID in the X-Goog-User-Project header. origUserProjectOverride := config.UserProjectOverride config.UserProjectOverride = true - // If we have a billing project, use that one in the header. - bp, bpok := d.GetOk("billing_project") - if bpok && bp != "" { - project = bp.(string) - } else { - // otherwise, use the resource's project - rp, _ := d.GetOk("project") - project = rp.(string) - } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating ProjectFeed: %s", err) } @@ -218,11 +214,20 @@ func resourceCloudAssetProjectFeedRead(d *schema.ResourceData, meta interface{}) return err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequest(config, "GET", project, url, nil) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("CloudAssetProjectFeed %q", d.Id())) } @@ -253,10 +258,13 @@ func resourceCloudAssetProjectFeedRead(d *schema.ResourceData, meta interface{}) func resourceCloudAssetProjectFeedUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project obj := make(map[string]interface{}) assetNamesProp, err := expandCloudAssetProjectFeedAssetNames(d.Get("asset_names"), d, config) @@ -318,7 +326,13 @@ func resourceCloudAssetProjectFeedUpdate(d *schema.ResourceData, meta interface{ if err != nil { return err } - res, err := sendRequestWithTimeout(config, "PATCH", project, url, obj, d.Timeout(schema.TimeoutUpdate)) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "PATCH", billingProject, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating ProjectFeed %q: %s", d.Id(), err) @@ -332,10 +346,13 @@ func resourceCloudAssetProjectFeedUpdate(d *schema.ResourceData, meta interface{ func resourceCloudAssetProjectFeedDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project url, err := replaceVars(d, config, "{{CloudAssetBasePath}}{{name}}") if err != nil { @@ -345,7 +362,12 @@ func resourceCloudAssetProjectFeedDelete(d *schema.ResourceData, meta interface{ var obj map[string]interface{} log.Printf("[DEBUG] Deleting ProjectFeed %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "DELETE", billingProject, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "ProjectFeed") } diff --git a/google/resource_cloud_build_trigger.go b/google/resource_cloud_build_trigger.go index 5fcb9ff969a..63a1bb110fe 100644 --- a/google/resource_cloud_build_trigger.go +++ b/google/resource_cloud_build_trigger.go @@ -636,11 +636,20 @@ func resourceCloudBuildTriggerCreate(d *schema.ResourceData, meta interface{}) e } log.Printf("[DEBUG] Creating new Trigger: %#v", obj) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating Trigger: %s", err) } @@ -680,11 +689,20 @@ func resourceCloudBuildTriggerRead(d *schema.ResourceData, meta interface{}) err return err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequest(config, "GET", project, url, nil) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("CloudBuildTrigger %q", d.Id())) } @@ -736,10 +754,13 @@ func resourceCloudBuildTriggerRead(d *schema.ResourceData, meta interface{}) err func resourceCloudBuildTriggerUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project obj := make(map[string]interface{}) nameProp, err := expandCloudBuildTriggerName(d.Get("name"), d, config) @@ -810,7 +831,13 @@ func resourceCloudBuildTriggerUpdate(d *schema.ResourceData, meta interface{}) e log.Printf("[DEBUG] Updating Trigger %q: %#v", d.Id(), obj) obj["id"] = d.Get("trigger_id") - res, err := sendRequestWithTimeout(config, "PATCH", project, url, obj, d.Timeout(schema.TimeoutUpdate)) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "PATCH", billingProject, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating Trigger %q: %s", d.Id(), err) @@ -824,10 +851,13 @@ func resourceCloudBuildTriggerUpdate(d *schema.ResourceData, meta interface{}) e func resourceCloudBuildTriggerDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project url, err := replaceVars(d, config, "{{CloudBuildBasePath}}projects/{{project}}/triggers/{{trigger_id}}") if err != nil { @@ -837,7 +867,12 @@ func resourceCloudBuildTriggerDelete(d *schema.ResourceData, meta interface{}) e var obj map[string]interface{} log.Printf("[DEBUG] Deleting Trigger %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "DELETE", billingProject, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "Trigger") } diff --git a/google/resource_cloud_iot_device.go b/google/resource_cloud_iot_device.go index f96da26b89a..4e45ccf17b0 100644 --- a/google/resource_cloud_iot_device.go +++ b/google/resource_cloud_iot_device.go @@ -310,7 +310,14 @@ func resourceCloudIotDeviceCreate(d *schema.ResourceData, meta interface{}) erro } log.Printf("[DEBUG] Creating new Device: %#v", obj) - res, err := sendRequestWithTimeout(config, "POST", "", url, obj, d.Timeout(schema.TimeoutCreate)) + billingProject := "" + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating Device: %s", err) } @@ -335,7 +342,14 @@ func resourceCloudIotDeviceRead(d *schema.ResourceData, meta interface{}) error return err } - res, err := sendRequest(config, "GET", "", url, nil) + billingProject := "" + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("CloudIotDevice %q", d.Id())) } @@ -395,6 +409,8 @@ func resourceCloudIotDeviceRead(d *schema.ResourceData, meta interface{}) error func resourceCloudIotDeviceUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + obj := make(map[string]interface{}) credentialsProp, err := expandCloudIotDeviceCredentials(d.Get("credentials"), d, config) if err != nil { @@ -460,7 +476,13 @@ func resourceCloudIotDeviceUpdate(d *schema.ResourceData, meta interface{}) erro if err != nil { return err } - res, err := sendRequestWithTimeout(config, "PATCH", "", url, obj, d.Timeout(schema.TimeoutUpdate)) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "PATCH", billingProject, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating Device %q: %s", d.Id(), err) @@ -474,6 +496,8 @@ func resourceCloudIotDeviceUpdate(d *schema.ResourceData, meta interface{}) erro func resourceCloudIotDeviceDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + url, err := replaceVars(d, config, "{{CloudIotBasePath}}{{registry}}/devices/{{name}}") if err != nil { return err @@ -482,7 +506,12 @@ func resourceCloudIotDeviceDelete(d *schema.ResourceData, meta interface{}) erro var obj map[string]interface{} log.Printf("[DEBUG] Deleting Device %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", "", url, obj, d.Timeout(schema.TimeoutDelete)) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "DELETE", billingProject, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "Device") } diff --git a/google/resource_cloud_iot_device_registry.go b/google/resource_cloud_iot_device_registry.go index 48d15c4deb7..79ce550234f 100644 --- a/google/resource_cloud_iot_device_registry.go +++ b/google/resource_cloud_iot_device_registry.go @@ -464,11 +464,20 @@ func resourceCloudIotDeviceRegistryCreate(d *schema.ResourceData, meta interface } log.Printf("[DEBUG] Creating new DeviceRegistry: %#v", obj) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating DeviceRegistry: %s", err) } @@ -493,11 +502,20 @@ func resourceCloudIotDeviceRegistryRead(d *schema.ResourceData, meta interface{} return err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequest(config, "GET", project, url, nil) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("CloudIotDeviceRegistry %q", d.Id())) } @@ -542,10 +560,13 @@ func resourceCloudIotDeviceRegistryRead(d *schema.ResourceData, meta interface{} func resourceCloudIotDeviceRegistryUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project obj := make(map[string]interface{}) eventNotificationConfigsProp, err := expandCloudIotDeviceRegistryEventNotificationConfigs(d.Get("event_notification_configs"), d, config) @@ -622,7 +643,13 @@ func resourceCloudIotDeviceRegistryUpdate(d *schema.ResourceData, meta interface } log.Printf("[DEBUG] Update URL %q: %v", d.Id(), url) - res, err := sendRequestWithTimeout(config, "PATCH", project, url, obj, d.Timeout(schema.TimeoutUpdate)) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "PATCH", billingProject, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating DeviceRegistry %q: %s", d.Id(), err) @@ -636,10 +663,13 @@ func resourceCloudIotDeviceRegistryUpdate(d *schema.ResourceData, meta interface func resourceCloudIotDeviceRegistryDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project url, err := replaceVars(d, config, "{{CloudIotBasePath}}projects/{{project}}/locations/{{region}}/registries/{{name}}") if err != nil { @@ -649,7 +679,12 @@ func resourceCloudIotDeviceRegistryDelete(d *schema.ResourceData, meta interface var obj map[string]interface{} log.Printf("[DEBUG] Deleting DeviceRegistry %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "DELETE", billingProject, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "DeviceRegistry") } diff --git a/google/resource_cloud_run_domain_mapping.go b/google/resource_cloud_run_domain_mapping.go index a94a0015459..74541449f28 100644 --- a/google/resource_cloud_run_domain_mapping.go +++ b/google/resource_cloud_run_domain_mapping.go @@ -277,11 +277,20 @@ func resourceCloudRunDomainMappingCreate(d *schema.ResourceData, meta interface{ } log.Printf("[DEBUG] Creating new DomainMapping: %#v", obj) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating DomainMapping: %s", err) } @@ -312,11 +321,20 @@ func resourceCloudRunDomainMappingPollRead(d *schema.ResourceData, meta interfac return nil, err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return nil, err } - res, err := sendRequest(config, "GET", project, url, nil) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return res, err } @@ -344,11 +362,20 @@ func resourceCloudRunDomainMappingRead(d *schema.ResourceData, meta interface{}) return err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequest(config, "GET", project, url, nil) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("CloudRunDomainMapping %q", d.Id())) } @@ -385,10 +412,13 @@ func resourceCloudRunDomainMappingRead(d *schema.ResourceData, meta interface{}) func resourceCloudRunDomainMappingDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project url, err := replaceVars(d, config, "{{CloudRunBasePath}}apis/domains.cloudrun.com/v1/namespaces/{{project}}/domainmappings/{{name}}") if err != nil { @@ -398,7 +428,12 @@ func resourceCloudRunDomainMappingDelete(d *schema.ResourceData, meta interface{ var obj map[string]interface{} log.Printf("[DEBUG] Deleting DomainMapping %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "DELETE", billingProject, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "DomainMapping") } diff --git a/google/resource_cloud_run_service.go b/google/resource_cloud_run_service.go index 5272970f952..cb5a1e09346 100644 --- a/google/resource_cloud_run_service.go +++ b/google/resource_cloud_run_service.go @@ -654,11 +654,20 @@ func resourceCloudRunServiceCreate(d *schema.ResourceData, meta interface{}) err } log.Printf("[DEBUG] Creating new Service: %#v", obj) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating Service: %s", err) } @@ -689,11 +698,20 @@ func resourceCloudRunServicePollRead(d *schema.ResourceData, meta interface{}) P return nil, err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return nil, err } - res, err := sendRequest(config, "GET", project, url, nil) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return res, err } @@ -721,11 +739,20 @@ func resourceCloudRunServiceRead(d *schema.ResourceData, meta interface{}) error return err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequest(config, "GET", project, url, nil) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("CloudRunService %q", d.Id())) } @@ -776,10 +803,13 @@ func resourceCloudRunServiceRead(d *schema.ResourceData, meta interface{}) error func resourceCloudRunServiceUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project obj := make(map[string]interface{}) specProp, err := expandCloudRunServiceSpec(nil, d, config) @@ -806,7 +836,13 @@ func resourceCloudRunServiceUpdate(d *schema.ResourceData, meta interface{}) err } log.Printf("[DEBUG] Updating Service %q: %#v", d.Id(), obj) - res, err := sendRequestWithTimeout(config, "PUT", project, url, obj, d.Timeout(schema.TimeoutUpdate)) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "PUT", billingProject, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating Service %q: %s", d.Id(), err) @@ -825,10 +861,13 @@ func resourceCloudRunServiceUpdate(d *schema.ResourceData, meta interface{}) err func resourceCloudRunServiceDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project url, err := replaceVars(d, config, "{{CloudRunBasePath}}apis/serving.knative.dev/v1/namespaces/{{project}}/services/{{name}}") if err != nil { @@ -838,7 +877,12 @@ func resourceCloudRunServiceDelete(d *schema.ResourceData, meta interface{}) err var obj map[string]interface{} log.Printf("[DEBUG] Deleting Service %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "DELETE", billingProject, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "Service") } diff --git a/google/resource_cloud_scheduler_job.go b/google/resource_cloud_scheduler_job.go index 18e2187a009..82bf90aa8d6 100644 --- a/google/resource_cloud_scheduler_job.go +++ b/google/resource_cloud_scheduler_job.go @@ -496,11 +496,20 @@ func resourceCloudSchedulerJobCreate(d *schema.ResourceData, meta interface{}) e } log.Printf("[DEBUG] Creating new Job: %#v", obj) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating Job: %s", err) } @@ -525,11 +534,20 @@ func resourceCloudSchedulerJobRead(d *schema.ResourceData, meta interface{}) err return err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequest(config, "GET", project, url, nil) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("CloudSchedulerJob %q", d.Id())) } @@ -580,10 +598,13 @@ func resourceCloudSchedulerJobRead(d *schema.ResourceData, meta interface{}) err func resourceCloudSchedulerJobDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project url, err := replaceVars(d, config, "{{CloudSchedulerBasePath}}projects/{{project}}/locations/{{region}}/jobs/{{name}}") if err != nil { @@ -593,7 +614,12 @@ func resourceCloudSchedulerJobDelete(d *schema.ResourceData, meta interface{}) e var obj map[string]interface{} log.Printf("[DEBUG] Deleting Job %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "DELETE", billingProject, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "Job") } diff --git a/google/resource_cloud_tasks_queue.go b/google/resource_cloud_tasks_queue.go index 9c2b9c01ec4..dcbe36cf170 100644 --- a/google/resource_cloud_tasks_queue.go +++ b/google/resource_cloud_tasks_queue.go @@ -247,11 +247,20 @@ func resourceCloudTasksQueueCreate(d *schema.ResourceData, meta interface{}) err } log.Printf("[DEBUG] Creating new Queue: %#v", obj) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating Queue: %s", err) } @@ -276,11 +285,20 @@ func resourceCloudTasksQueueRead(d *schema.ResourceData, meta interface{}) error return err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequest(config, "GET", project, url, nil) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("CloudTasksQueue %q", d.Id())) } @@ -308,10 +326,13 @@ func resourceCloudTasksQueueRead(d *schema.ResourceData, meta interface{}) error func resourceCloudTasksQueueUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project obj := make(map[string]interface{}) appEngineRoutingOverrideProp, err := expandCloudTasksQueueAppEngineRoutingOverride(d.Get("app_engine_routing_override"), d, config) @@ -358,7 +379,13 @@ func resourceCloudTasksQueueUpdate(d *schema.ResourceData, meta interface{}) err if err != nil { return err } - res, err := sendRequestWithTimeout(config, "PATCH", project, url, obj, d.Timeout(schema.TimeoutUpdate)) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "PATCH", billingProject, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating Queue %q: %s", d.Id(), err) @@ -372,10 +399,13 @@ func resourceCloudTasksQueueUpdate(d *schema.ResourceData, meta interface{}) err func resourceCloudTasksQueueDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project url, err := replaceVars(d, config, "{{CloudTasksBasePath}}projects/{{project}}/locations/{{location}}/queues/{{name}}") if err != nil { @@ -385,7 +415,12 @@ func resourceCloudTasksQueueDelete(d *schema.ResourceData, meta interface{}) err var obj map[string]interface{} log.Printf("[DEBUG] Deleting Queue %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "DELETE", billingProject, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "Queue") } diff --git a/google/resource_compute_address.go b/google/resource_compute_address.go index 45017345508..c03ab8143d8 100644 --- a/google/resource_compute_address.go +++ b/google/resource_compute_address.go @@ -203,11 +203,20 @@ func resourceComputeAddressCreate(d *schema.ResourceData, meta interface{}) erro } log.Printf("[DEBUG] Creating new Address: %#v", obj) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating Address: %s", err) } @@ -242,11 +251,20 @@ func resourceComputeAddressRead(d *schema.ResourceData, meta interface{}) error return err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequest(config, "GET", project, url, nil) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("ComputeAddress %q", d.Id())) } @@ -295,10 +313,13 @@ func resourceComputeAddressRead(d *schema.ResourceData, meta interface{}) error func resourceComputeAddressDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project url, err := replaceVars(d, config, "{{ComputeBasePath}}projects/{{project}}/regions/{{region}}/addresses/{{name}}") if err != nil { @@ -308,7 +329,12 @@ func resourceComputeAddressDelete(d *schema.ResourceData, meta interface{}) erro var obj map[string]interface{} log.Printf("[DEBUG] Deleting Address %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "DELETE", billingProject, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "Address") } diff --git a/google/resource_compute_autoscaler.go b/google/resource_compute_autoscaler.go index e7cb9db00ee..09987e2dfcc 100644 --- a/google/resource_compute_autoscaler.go +++ b/google/resource_compute_autoscaler.go @@ -270,11 +270,20 @@ func resourceComputeAutoscalerCreate(d *schema.ResourceData, meta interface{}) e } log.Printf("[DEBUG] Creating new Autoscaler: %#v", obj) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating Autoscaler: %s", err) } @@ -309,11 +318,20 @@ func resourceComputeAutoscalerRead(d *schema.ResourceData, meta interface{}) err return err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequest(config, "GET", project, url, nil) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("ComputeAutoscaler %q", d.Id())) } @@ -350,10 +368,13 @@ func resourceComputeAutoscalerRead(d *schema.ResourceData, meta interface{}) err func resourceComputeAutoscalerUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project obj := make(map[string]interface{}) nameProp, err := expandComputeAutoscalerName(d.Get("name"), d, config) @@ -393,7 +414,13 @@ func resourceComputeAutoscalerUpdate(d *schema.ResourceData, meta interface{}) e } log.Printf("[DEBUG] Updating Autoscaler %q: %#v", d.Id(), obj) - res, err := sendRequestWithTimeout(config, "PUT", project, url, obj, d.Timeout(schema.TimeoutUpdate)) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "PUT", billingProject, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating Autoscaler %q: %s", d.Id(), err) @@ -415,10 +442,13 @@ func resourceComputeAutoscalerUpdate(d *schema.ResourceData, meta interface{}) e func resourceComputeAutoscalerDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project url, err := replaceVars(d, config, "{{ComputeBasePath}}projects/{{project}}/zones/{{zone}}/autoscalers/{{name}}") if err != nil { @@ -428,7 +458,12 @@ func resourceComputeAutoscalerDelete(d *schema.ResourceData, meta interface{}) e var obj map[string]interface{} log.Printf("[DEBUG] Deleting Autoscaler %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "DELETE", billingProject, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "Autoscaler") } diff --git a/google/resource_compute_backend_bucket.go b/google/resource_compute_backend_bucket.go index 77618436ffc..2d0a8308226 100644 --- a/google/resource_compute_backend_bucket.go +++ b/google/resource_compute_backend_bucket.go @@ -154,11 +154,20 @@ func resourceComputeBackendBucketCreate(d *schema.ResourceData, meta interface{} } log.Printf("[DEBUG] Creating new BackendBucket: %#v", obj) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating BackendBucket: %s", err) } @@ -193,11 +202,20 @@ func resourceComputeBackendBucketRead(d *schema.ResourceData, meta interface{}) return err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequest(config, "GET", project, url, nil) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("ComputeBackendBucket %q", d.Id())) } @@ -234,10 +252,13 @@ func resourceComputeBackendBucketRead(d *schema.ResourceData, meta interface{}) func resourceComputeBackendBucketUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project obj := make(map[string]interface{}) bucketNameProp, err := expandComputeBackendBucketBucketName(d.Get("bucket_name"), d, config) @@ -277,7 +298,13 @@ func resourceComputeBackendBucketUpdate(d *schema.ResourceData, meta interface{} } log.Printf("[DEBUG] Updating BackendBucket %q: %#v", d.Id(), obj) - res, err := sendRequestWithTimeout(config, "PUT", project, url, obj, d.Timeout(schema.TimeoutUpdate)) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "PUT", billingProject, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating BackendBucket %q: %s", d.Id(), err) @@ -299,10 +326,13 @@ func resourceComputeBackendBucketUpdate(d *schema.ResourceData, meta interface{} func resourceComputeBackendBucketDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project url, err := replaceVars(d, config, "{{ComputeBasePath}}projects/{{project}}/global/backendBuckets/{{name}}") if err != nil { @@ -312,7 +342,12 @@ func resourceComputeBackendBucketDelete(d *schema.ResourceData, meta interface{} var obj map[string]interface{} log.Printf("[DEBUG] Deleting BackendBucket %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "DELETE", billingProject, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "BackendBucket") } diff --git a/google/resource_compute_backend_bucket_signed_url_key.go b/google/resource_compute_backend_bucket_signed_url_key.go index 052ddfba91c..695c1fcc1a1 100644 --- a/google/resource_compute_backend_bucket_signed_url_key.go +++ b/google/resource_compute_backend_bucket_signed_url_key.go @@ -103,11 +103,20 @@ func resourceComputeBackendBucketSignedUrlKeyCreate(d *schema.ResourceData, meta } log.Printf("[DEBUG] Creating new BackendBucketSignedUrlKey: %#v", obj) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating BackendBucketSignedUrlKey: %s", err) } @@ -142,11 +151,20 @@ func resourceComputeBackendBucketSignedUrlKeyRead(d *schema.ResourceData, meta i return err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequest(config, "GET", project, url, nil) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("ComputeBackendBucketSignedUrlKey %q", d.Id())) } @@ -177,10 +195,13 @@ func resourceComputeBackendBucketSignedUrlKeyRead(d *schema.ResourceData, meta i func resourceComputeBackendBucketSignedUrlKeyDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project lockName, err := replaceVars(d, config, "signedUrlKey/{{project}}/backendBuckets/{{backend_bucket}}/") if err != nil { @@ -197,7 +218,12 @@ func resourceComputeBackendBucketSignedUrlKeyDelete(d *schema.ResourceData, meta var obj map[string]interface{} log.Printf("[DEBUG] Deleting BackendBucketSignedUrlKey %q", d.Id()) - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutDelete)) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "BackendBucketSignedUrlKey") } diff --git a/google/resource_compute_backend_service.go b/google/resource_compute_backend_service.go index a10a8c278f8..7aae878e79c 100644 --- a/google/resource_compute_backend_service.go +++ b/google/resource_compute_backend_service.go @@ -1051,11 +1051,20 @@ func resourceComputeBackendServiceCreate(d *schema.ResourceData, meta interface{ } log.Printf("[DEBUG] Creating new BackendService: %#v", obj) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating BackendService: %s", err) } @@ -1110,11 +1119,20 @@ func resourceComputeBackendServiceRead(d *schema.ResourceData, meta interface{}) return err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequest(config, "GET", project, url, nil) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("ComputeBackendService %q", d.Id())) } @@ -1224,10 +1242,13 @@ func resourceComputeBackendServiceRead(d *schema.ResourceData, meta interface{}) func resourceComputeBackendServiceUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project obj := make(map[string]interface{}) affinityCookieTtlSecProp, err := expandComputeBackendServiceAffinityCookieTtlSec(d.Get("affinity_cookie_ttl_sec"), d, config) @@ -1374,7 +1395,13 @@ func resourceComputeBackendServiceUpdate(d *schema.ResourceData, meta interface{ } log.Printf("[DEBUG] Updating BackendService %q: %#v", d.Id(), obj) - res, err := sendRequestWithTimeout(config, "PUT", project, url, obj, d.Timeout(schema.TimeoutUpdate)) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "PUT", billingProject, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating BackendService %q: %s", d.Id(), err) @@ -1415,10 +1442,13 @@ func resourceComputeBackendServiceUpdate(d *schema.ResourceData, meta interface{ func resourceComputeBackendServiceDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project url, err := replaceVars(d, config, "{{ComputeBasePath}}projects/{{project}}/global/backendServices/{{name}}") if err != nil { @@ -1428,7 +1458,12 @@ func resourceComputeBackendServiceDelete(d *schema.ResourceData, meta interface{ var obj map[string]interface{} log.Printf("[DEBUG] Deleting BackendService %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "DELETE", billingProject, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "BackendService") } diff --git a/google/resource_compute_backend_service_signed_url_key.go b/google/resource_compute_backend_service_signed_url_key.go index 5e083630299..6ee20550f19 100644 --- a/google/resource_compute_backend_service_signed_url_key.go +++ b/google/resource_compute_backend_service_signed_url_key.go @@ -103,11 +103,20 @@ func resourceComputeBackendServiceSignedUrlKeyCreate(d *schema.ResourceData, met } log.Printf("[DEBUG] Creating new BackendServiceSignedUrlKey: %#v", obj) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating BackendServiceSignedUrlKey: %s", err) } @@ -142,11 +151,20 @@ func resourceComputeBackendServiceSignedUrlKeyRead(d *schema.ResourceData, meta return err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequest(config, "GET", project, url, nil) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("ComputeBackendServiceSignedUrlKey %q", d.Id())) } @@ -177,10 +195,13 @@ func resourceComputeBackendServiceSignedUrlKeyRead(d *schema.ResourceData, meta func resourceComputeBackendServiceSignedUrlKeyDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project lockName, err := replaceVars(d, config, "signedUrlKey/{{project}}/backendServices/{{backend_service}}/") if err != nil { @@ -197,7 +218,12 @@ func resourceComputeBackendServiceSignedUrlKeyDelete(d *schema.ResourceData, met var obj map[string]interface{} log.Printf("[DEBUG] Deleting BackendServiceSignedUrlKey %q", d.Id()) - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutDelete)) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "BackendServiceSignedUrlKey") } diff --git a/google/resource_compute_disk.go b/google/resource_compute_disk.go index 628fa1eaa6b..7ae1e44ac0f 100644 --- a/google/resource_compute_disk.go +++ b/google/resource_compute_disk.go @@ -613,11 +613,20 @@ func resourceComputeDiskCreate(d *schema.ResourceData, meta interface{}) error { } log.Printf("[DEBUG] Creating new Disk: %#v", obj) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating Disk: %s", err) } @@ -652,11 +661,20 @@ func resourceComputeDiskRead(d *schema.ResourceData, meta interface{}) error { return err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequest(config, "GET", project, url, nil) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("ComputeDisk %q", d.Id())) } @@ -744,10 +762,13 @@ func resourceComputeDiskRead(d *schema.ResourceData, meta interface{}) error { func resourceComputeDiskUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project d.Partial(true) @@ -771,7 +792,13 @@ func resourceComputeDiskUpdate(d *schema.ResourceData, meta interface{}) error { if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutUpdate)) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating Disk %q: %s", d.Id(), err) } else { @@ -802,7 +829,13 @@ func resourceComputeDiskUpdate(d *schema.ResourceData, meta interface{}) error { if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutUpdate)) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating Disk %q: %s", d.Id(), err) } else { @@ -827,10 +860,13 @@ func resourceComputeDiskUpdate(d *schema.ResourceData, meta interface{}) error { func resourceComputeDiskDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project url, err := replaceVars(d, config, "{{ComputeBasePath}}projects/{{project}}/zones/{{zone}}/disks/{{name}}") if err != nil { @@ -894,7 +930,12 @@ func resourceComputeDiskDelete(d *schema.ResourceData, meta interface{}) error { } log.Printf("[DEBUG] Deleting Disk %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "DELETE", billingProject, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "Disk") } diff --git a/google/resource_compute_disk_resource_policy_attachment.go b/google/resource_compute_disk_resource_policy_attachment.go index c3c387cd02a..81f72ac4d1a 100644 --- a/google/resource_compute_disk_resource_policy_attachment.go +++ b/google/resource_compute_disk_resource_policy_attachment.go @@ -93,11 +93,20 @@ func resourceComputeDiskResourcePolicyAttachmentCreate(d *schema.ResourceData, m } log.Printf("[DEBUG] Creating new DiskResourcePolicyAttachment: %#v", obj) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating DiskResourcePolicyAttachment: %s", err) } @@ -132,11 +141,20 @@ func resourceComputeDiskResourcePolicyAttachmentRead(d *schema.ResourceData, met return err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequest(config, "GET", project, url, nil) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("ComputeDiskResourcePolicyAttachment %q", d.Id())) } @@ -179,10 +197,13 @@ func resourceComputeDiskResourcePolicyAttachmentRead(d *schema.ResourceData, met func resourceComputeDiskResourcePolicyAttachmentDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project url, err := replaceVars(d, config, "{{ComputeBasePath}}projects/{{project}}/zones/{{zone}}/disks/{{disk}}/removeResourcePolicies") if err != nil { @@ -216,7 +237,12 @@ func resourceComputeDiskResourcePolicyAttachmentDelete(d *schema.ResourceData, m } log.Printf("[DEBUG] Deleting DiskResourcePolicyAttachment %q", d.Id()) - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutDelete)) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "DiskResourcePolicyAttachment") } diff --git a/google/resource_compute_firewall.go b/google/resource_compute_firewall.go index 940a732c99e..4fd8f5dac00 100644 --- a/google/resource_compute_firewall.go +++ b/google/resource_compute_firewall.go @@ -477,11 +477,20 @@ func resourceComputeFirewallCreate(d *schema.ResourceData, meta interface{}) err } log.Printf("[DEBUG] Creating new Firewall: %#v", obj) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating Firewall: %s", err) } @@ -516,11 +525,20 @@ func resourceComputeFirewallRead(d *schema.ResourceData, meta interface{}) error return err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequest(config, "GET", project, url, nil) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("ComputeFirewall %q", d.Id())) } @@ -587,10 +605,13 @@ func resourceComputeFirewallRead(d *schema.ResourceData, meta interface{}) error func resourceComputeFirewallUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project obj := make(map[string]interface{}) allowedProp, err := expandComputeFirewallAllow(d.Get("allow"), d, config) @@ -678,7 +699,13 @@ func resourceComputeFirewallUpdate(d *schema.ResourceData, meta interface{}) err } log.Printf("[DEBUG] Updating Firewall %q: %#v", d.Id(), obj) - res, err := sendRequestWithTimeout(config, "PATCH", project, url, obj, d.Timeout(schema.TimeoutUpdate)) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "PATCH", billingProject, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating Firewall %q: %s", d.Id(), err) @@ -700,10 +727,13 @@ func resourceComputeFirewallUpdate(d *schema.ResourceData, meta interface{}) err func resourceComputeFirewallDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project url, err := replaceVars(d, config, "{{ComputeBasePath}}projects/{{project}}/global/firewalls/{{name}}") if err != nil { @@ -713,7 +743,12 @@ func resourceComputeFirewallDelete(d *schema.ResourceData, meta interface{}) err var obj map[string]interface{} log.Printf("[DEBUG] Deleting Firewall %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "DELETE", billingProject, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "Firewall") } diff --git a/google/resource_compute_forwarding_rule.go b/google/resource_compute_forwarding_rule.go index 4daeb73855a..67446d9c8e5 100644 --- a/google/resource_compute_forwarding_rule.go +++ b/google/resource_compute_forwarding_rule.go @@ -394,11 +394,20 @@ func resourceComputeForwardingRuleCreate(d *schema.ResourceData, meta interface{ } log.Printf("[DEBUG] Creating new ForwardingRule: %#v", obj) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating ForwardingRule: %s", err) } @@ -433,11 +442,20 @@ func resourceComputeForwardingRuleRead(d *schema.ResourceData, meta interface{}) return err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequest(config, "GET", project, url, nil) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("ComputeForwardingRule %q", d.Id())) } @@ -510,10 +528,13 @@ func resourceComputeForwardingRuleRead(d *schema.ResourceData, meta interface{}) func resourceComputeForwardingRuleUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project d.Partial(true) @@ -531,7 +552,13 @@ func resourceComputeForwardingRuleUpdate(d *schema.ResourceData, meta interface{ if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutUpdate)) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating ForwardingRule %q: %s", d.Id(), err) } else { @@ -561,7 +588,13 @@ func resourceComputeForwardingRuleUpdate(d *schema.ResourceData, meta interface{ if err != nil { return err } - res, err := sendRequestWithTimeout(config, "PATCH", project, url, obj, d.Timeout(schema.TimeoutUpdate)) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "PATCH", billingProject, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating ForwardingRule %q: %s", d.Id(), err) } else { @@ -586,10 +619,13 @@ func resourceComputeForwardingRuleUpdate(d *schema.ResourceData, meta interface{ func resourceComputeForwardingRuleDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project url, err := replaceVars(d, config, "{{ComputeBasePath}}projects/{{project}}/regions/{{region}}/forwardingRules/{{name}}") if err != nil { @@ -599,7 +635,12 @@ func resourceComputeForwardingRuleDelete(d *schema.ResourceData, meta interface{ var obj map[string]interface{} log.Printf("[DEBUG] Deleting ForwardingRule %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "DELETE", billingProject, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "ForwardingRule") } diff --git a/google/resource_compute_global_address.go b/google/resource_compute_global_address.go index 7ca47c1d180..9d0a7fb0af7 100644 --- a/google/resource_compute_global_address.go +++ b/google/resource_compute_global_address.go @@ -197,11 +197,20 @@ func resourceComputeGlobalAddressCreate(d *schema.ResourceData, meta interface{} } log.Printf("[DEBUG] Creating new GlobalAddress: %#v", obj) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating GlobalAddress: %s", err) } @@ -236,11 +245,20 @@ func resourceComputeGlobalAddressRead(d *schema.ResourceData, meta interface{}) return err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequest(config, "GET", project, url, nil) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("ComputeGlobalAddress %q", d.Id())) } @@ -286,10 +304,13 @@ func resourceComputeGlobalAddressRead(d *schema.ResourceData, meta interface{}) func resourceComputeGlobalAddressDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project url, err := replaceVars(d, config, "{{ComputeBasePath}}projects/{{project}}/global/addresses/{{name}}") if err != nil { @@ -299,7 +320,12 @@ func resourceComputeGlobalAddressDelete(d *schema.ResourceData, meta interface{} var obj map[string]interface{} log.Printf("[DEBUG] Deleting GlobalAddress %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "DELETE", billingProject, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "GlobalAddress") } diff --git a/google/resource_compute_global_forwarding_rule.go b/google/resource_compute_global_forwarding_rule.go index 3302e361aef..c7201035259 100644 --- a/google/resource_compute_global_forwarding_rule.go +++ b/google/resource_compute_global_forwarding_rule.go @@ -305,11 +305,20 @@ func resourceComputeGlobalForwardingRuleCreate(d *schema.ResourceData, meta inte } log.Printf("[DEBUG] Creating new GlobalForwardingRule: %#v", obj) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating GlobalForwardingRule: %s", err) } @@ -344,11 +353,20 @@ func resourceComputeGlobalForwardingRuleRead(d *schema.ResourceData, meta interf return err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequest(config, "GET", project, url, nil) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("ComputeGlobalForwardingRule %q", d.Id())) } @@ -394,10 +412,13 @@ func resourceComputeGlobalForwardingRuleRead(d *schema.ResourceData, meta interf func resourceComputeGlobalForwardingRuleUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project d.Partial(true) @@ -415,7 +436,13 @@ func resourceComputeGlobalForwardingRuleUpdate(d *schema.ResourceData, meta inte if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutUpdate)) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating GlobalForwardingRule %q: %s", d.Id(), err) } else { @@ -440,10 +467,13 @@ func resourceComputeGlobalForwardingRuleUpdate(d *schema.ResourceData, meta inte func resourceComputeGlobalForwardingRuleDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project url, err := replaceVars(d, config, "{{ComputeBasePath}}projects/{{project}}/global/forwardingRules/{{name}}") if err != nil { @@ -453,7 +483,12 @@ func resourceComputeGlobalForwardingRuleDelete(d *schema.ResourceData, meta inte var obj map[string]interface{} log.Printf("[DEBUG] Deleting GlobalForwardingRule %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "DELETE", billingProject, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "GlobalForwardingRule") } diff --git a/google/resource_compute_global_network_endpoint.go b/google/resource_compute_global_network_endpoint.go index 94b90b29617..0e6bd2a8bc1 100644 --- a/google/resource_compute_global_network_endpoint.go +++ b/google/resource_compute_global_network_endpoint.go @@ -117,11 +117,20 @@ func resourceComputeGlobalNetworkEndpointCreate(d *schema.ResourceData, meta int } log.Printf("[DEBUG] Creating new GlobalNetworkEndpoint: %#v", obj) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating GlobalNetworkEndpoint: %s", err) } @@ -156,11 +165,20 @@ func resourceComputeGlobalNetworkEndpointRead(d *schema.ResourceData, meta inter return err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequest(config, "POST", project, url, nil) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "POST", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("ComputeGlobalNetworkEndpoint %q", d.Id())) } @@ -209,10 +227,13 @@ func resourceComputeGlobalNetworkEndpointRead(d *schema.ResourceData, meta inter func resourceComputeGlobalNetworkEndpointDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project lockName, err := replaceVars(d, config, "networkEndpoint/{{project}}/{{global_network_endpoint_group}}") if err != nil { @@ -257,7 +278,12 @@ func resourceComputeGlobalNetworkEndpointDelete(d *schema.ResourceData, meta int } log.Printf("[DEBUG] Deleting GlobalNetworkEndpoint %q", d.Id()) - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutDelete)) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "GlobalNetworkEndpoint") } diff --git a/google/resource_compute_global_network_endpoint_group.go b/google/resource_compute_global_network_endpoint_group.go index d9973f33ee8..4becfbe5efd 100644 --- a/google/resource_compute_global_network_endpoint_group.go +++ b/google/resource_compute_global_network_endpoint_group.go @@ -124,11 +124,20 @@ func resourceComputeGlobalNetworkEndpointGroupCreate(d *schema.ResourceData, met } log.Printf("[DEBUG] Creating new GlobalNetworkEndpointGroup: %#v", obj) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating GlobalNetworkEndpointGroup: %s", err) } @@ -163,11 +172,20 @@ func resourceComputeGlobalNetworkEndpointGroupRead(d *schema.ResourceData, meta return err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequest(config, "GET", project, url, nil) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("ComputeGlobalNetworkEndpointGroup %q", d.Id())) } @@ -198,10 +216,13 @@ func resourceComputeGlobalNetworkEndpointGroupRead(d *schema.ResourceData, meta func resourceComputeGlobalNetworkEndpointGroupDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project url, err := replaceVars(d, config, "{{ComputeBasePath}}projects/{{project}}/global/networkEndpointGroups/{{name}}") if err != nil { @@ -211,7 +232,12 @@ func resourceComputeGlobalNetworkEndpointGroupDelete(d *schema.ResourceData, met var obj map[string]interface{} log.Printf("[DEBUG] Deleting GlobalNetworkEndpointGroup %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "DELETE", billingProject, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "GlobalNetworkEndpointGroup") } diff --git a/google/resource_compute_health_check.go b/google/resource_compute_health_check.go index 600d408468d..ce04108e439 100644 --- a/google/resource_compute_health_check.go +++ b/google/resource_compute_health_check.go @@ -726,11 +726,20 @@ func resourceComputeHealthCheckCreate(d *schema.ResourceData, meta interface{}) } log.Printf("[DEBUG] Creating new HealthCheck: %#v", obj) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating HealthCheck: %s", err) } @@ -765,11 +774,20 @@ func resourceComputeHealthCheckRead(d *schema.ResourceData, meta interface{}) er return err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequest(config, "GET", project, url, nil) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("ComputeHealthCheck %q", d.Id())) } @@ -830,10 +848,13 @@ func resourceComputeHealthCheckRead(d *schema.ResourceData, meta interface{}) er func resourceComputeHealthCheckUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project obj := make(map[string]interface{}) checkIntervalSecProp, err := expandComputeHealthCheckCheckIntervalSec(d.Get("check_interval_sec"), d, config) @@ -920,7 +941,13 @@ func resourceComputeHealthCheckUpdate(d *schema.ResourceData, meta interface{}) } log.Printf("[DEBUG] Updating HealthCheck %q: %#v", d.Id(), obj) - res, err := sendRequestWithTimeout(config, "PUT", project, url, obj, d.Timeout(schema.TimeoutUpdate)) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "PUT", billingProject, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating HealthCheck %q: %s", d.Id(), err) @@ -942,10 +969,13 @@ func resourceComputeHealthCheckUpdate(d *schema.ResourceData, meta interface{}) func resourceComputeHealthCheckDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project url, err := replaceVars(d, config, "{{ComputeBasePath}}projects/{{project}}/global/healthChecks/{{name}}") if err != nil { @@ -955,7 +985,12 @@ func resourceComputeHealthCheckDelete(d *schema.ResourceData, meta interface{}) var obj map[string]interface{} log.Printf("[DEBUG] Deleting HealthCheck %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "DELETE", billingProject, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "HealthCheck") } diff --git a/google/resource_compute_http_health_check.go b/google/resource_compute_http_health_check.go index dcb80db0fed..e86ab84990b 100644 --- a/google/resource_compute_http_health_check.go +++ b/google/resource_compute_http_health_check.go @@ -194,11 +194,20 @@ func resourceComputeHttpHealthCheckCreate(d *schema.ResourceData, meta interface } log.Printf("[DEBUG] Creating new HttpHealthCheck: %#v", obj) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating HttpHealthCheck: %s", err) } @@ -233,11 +242,20 @@ func resourceComputeHttpHealthCheckRead(d *schema.ResourceData, meta interface{} return err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequest(config, "GET", project, url, nil) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("ComputeHttpHealthCheck %q", d.Id())) } @@ -286,10 +304,13 @@ func resourceComputeHttpHealthCheckRead(d *schema.ResourceData, meta interface{} func resourceComputeHttpHealthCheckUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project obj := make(map[string]interface{}) checkIntervalSecProp, err := expandComputeHttpHealthCheckCheckIntervalSec(d.Get("check_interval_sec"), d, config) @@ -353,7 +374,13 @@ func resourceComputeHttpHealthCheckUpdate(d *schema.ResourceData, meta interface } log.Printf("[DEBUG] Updating HttpHealthCheck %q: %#v", d.Id(), obj) - res, err := sendRequestWithTimeout(config, "PUT", project, url, obj, d.Timeout(schema.TimeoutUpdate)) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "PUT", billingProject, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating HttpHealthCheck %q: %s", d.Id(), err) @@ -375,10 +402,13 @@ func resourceComputeHttpHealthCheckUpdate(d *schema.ResourceData, meta interface func resourceComputeHttpHealthCheckDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project url, err := replaceVars(d, config, "{{ComputeBasePath}}projects/{{project}}/global/httpHealthChecks/{{name}}") if err != nil { @@ -388,7 +418,12 @@ func resourceComputeHttpHealthCheckDelete(d *schema.ResourceData, meta interface var obj map[string]interface{} log.Printf("[DEBUG] Deleting HttpHealthCheck %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "DELETE", billingProject, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "HttpHealthCheck") } diff --git a/google/resource_compute_https_health_check.go b/google/resource_compute_https_health_check.go index 7e852d4d71c..6569f2f7aa9 100644 --- a/google/resource_compute_https_health_check.go +++ b/google/resource_compute_https_health_check.go @@ -194,11 +194,20 @@ func resourceComputeHttpsHealthCheckCreate(d *schema.ResourceData, meta interfac } log.Printf("[DEBUG] Creating new HttpsHealthCheck: %#v", obj) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating HttpsHealthCheck: %s", err) } @@ -233,11 +242,20 @@ func resourceComputeHttpsHealthCheckRead(d *schema.ResourceData, meta interface{ return err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequest(config, "GET", project, url, nil) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("ComputeHttpsHealthCheck %q", d.Id())) } @@ -286,10 +304,13 @@ func resourceComputeHttpsHealthCheckRead(d *schema.ResourceData, meta interface{ func resourceComputeHttpsHealthCheckUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project obj := make(map[string]interface{}) checkIntervalSecProp, err := expandComputeHttpsHealthCheckCheckIntervalSec(d.Get("check_interval_sec"), d, config) @@ -353,7 +374,13 @@ func resourceComputeHttpsHealthCheckUpdate(d *schema.ResourceData, meta interfac } log.Printf("[DEBUG] Updating HttpsHealthCheck %q: %#v", d.Id(), obj) - res, err := sendRequestWithTimeout(config, "PUT", project, url, obj, d.Timeout(schema.TimeoutUpdate)) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "PUT", billingProject, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating HttpsHealthCheck %q: %s", d.Id(), err) @@ -375,10 +402,13 @@ func resourceComputeHttpsHealthCheckUpdate(d *schema.ResourceData, meta interfac func resourceComputeHttpsHealthCheckDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project url, err := replaceVars(d, config, "{{ComputeBasePath}}projects/{{project}}/global/httpsHealthChecks/{{name}}") if err != nil { @@ -388,7 +418,12 @@ func resourceComputeHttpsHealthCheckDelete(d *schema.ResourceData, meta interfac var obj map[string]interface{} log.Printf("[DEBUG] Deleting HttpsHealthCheck %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "DELETE", billingProject, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "HttpsHealthCheck") } diff --git a/google/resource_compute_image.go b/google/resource_compute_image.go index 6e17ce372b7..da29082a821 100644 --- a/google/resource_compute_image.go +++ b/google/resource_compute_image.go @@ -308,11 +308,20 @@ func resourceComputeImageCreate(d *schema.ResourceData, meta interface{}) error } log.Printf("[DEBUG] Creating new Image: %#v", obj) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating Image: %s", err) } @@ -347,11 +356,20 @@ func resourceComputeImageRead(d *schema.ResourceData, meta interface{}) error { return err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequest(config, "GET", project, url, nil) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("ComputeImage %q", d.Id())) } @@ -409,10 +427,13 @@ func resourceComputeImageRead(d *schema.ResourceData, meta interface{}) error { func resourceComputeImageUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project d.Partial(true) @@ -436,7 +457,13 @@ func resourceComputeImageUpdate(d *schema.ResourceData, meta interface{}) error if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutUpdate)) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating Image %q: %s", d.Id(), err) } else { @@ -462,10 +489,13 @@ func resourceComputeImageUpdate(d *schema.ResourceData, meta interface{}) error func resourceComputeImageDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project url, err := replaceVars(d, config, "{{ComputeBasePath}}projects/{{project}}/global/images/{{name}}") if err != nil { @@ -475,7 +505,12 @@ func resourceComputeImageDelete(d *schema.ResourceData, meta interface{}) error var obj map[string]interface{} log.Printf("[DEBUG] Deleting Image %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "DELETE", billingProject, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "Image") } diff --git a/google/resource_compute_instance_group_named_port.go b/google/resource_compute_instance_group_named_port.go index 1edf750f61b..6613cc8d532 100644 --- a/google/resource_compute_instance_group_named_port.go +++ b/google/resource_compute_instance_group_named_port.go @@ -119,11 +119,20 @@ func resourceComputeInstanceGroupNamedPortCreate(d *schema.ResourceData, meta in if err != nil { return err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating InstanceGroupNamedPort: %s", err) } @@ -158,11 +167,20 @@ func resourceComputeInstanceGroupNamedPortRead(d *schema.ResourceData, meta inte return err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequest(config, "GET", project, url, nil) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("ComputeInstanceGroupNamedPort %q", d.Id())) } @@ -196,10 +214,13 @@ func resourceComputeInstanceGroupNamedPortRead(d *schema.ResourceData, meta inte func resourceComputeInstanceGroupNamedPortDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project lockName, err := replaceVars(d, config, "projects/{{project}}/zones/{{zone}}/instanceGroups/{{group}}") if err != nil { @@ -221,7 +242,12 @@ func resourceComputeInstanceGroupNamedPortDelete(d *schema.ResourceData, meta in } log.Printf("[DEBUG] Deleting InstanceGroupNamedPort %q", d.Id()) - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutDelete)) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "InstanceGroupNamedPort") } diff --git a/google/resource_compute_interconnect_attachment.go b/google/resource_compute_interconnect_attachment.go index 0de816af976..fb574a5da19 100644 --- a/google/resource_compute_interconnect_attachment.go +++ b/google/resource_compute_interconnect_attachment.go @@ -319,11 +319,20 @@ func resourceComputeInterconnectAttachmentCreate(d *schema.ResourceData, meta in } log.Printf("[DEBUG] Creating new InterconnectAttachment: %#v", obj) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating InterconnectAttachment: %s", err) } @@ -362,11 +371,20 @@ func resourceComputeInterconnectAttachmentRead(d *schema.ResourceData, meta inte return err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequest(config, "GET", project, url, nil) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("ComputeInterconnectAttachment %q", d.Id())) } @@ -439,10 +457,13 @@ func resourceComputeInterconnectAttachmentRead(d *schema.ResourceData, meta inte func resourceComputeInterconnectAttachmentUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project obj := make(map[string]interface{}) adminEnabledProp, err := expandComputeInterconnectAttachmentAdminEnabled(d.Get("admin_enabled"), d, config) @@ -470,7 +491,13 @@ func resourceComputeInterconnectAttachmentUpdate(d *schema.ResourceData, meta in } log.Printf("[DEBUG] Updating InterconnectAttachment %q: %#v", d.Id(), obj) - res, err := sendRequestWithTimeout(config, "PATCH", project, url, obj, d.Timeout(schema.TimeoutUpdate)) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "PATCH", billingProject, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating InterconnectAttachment %q: %s", d.Id(), err) @@ -492,10 +519,13 @@ func resourceComputeInterconnectAttachmentUpdate(d *schema.ResourceData, meta in func resourceComputeInterconnectAttachmentDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project url, err := replaceVars(d, config, "{{ComputeBasePath}}projects/{{project}}/regions/{{region}}/interconnectAttachments/{{name}}") if err != nil { @@ -508,7 +538,12 @@ func resourceComputeInterconnectAttachmentDelete(d *schema.ResourceData, meta in } log.Printf("[DEBUG] Deleting InterconnectAttachment %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "DELETE", billingProject, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "InterconnectAttachment") } diff --git a/google/resource_compute_network.go b/google/resource_compute_network.go index 863a90c6060..e04680d1f5a 100644 --- a/google/resource_compute_network.go +++ b/google/resource_compute_network.go @@ -151,11 +151,20 @@ func resourceComputeNetworkCreate(d *schema.ResourceData, meta interface{}) erro } log.Printf("[DEBUG] Creating new Network: %#v", obj) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating Network: %s", err) } @@ -219,11 +228,20 @@ func resourceComputeNetworkRead(d *schema.ResourceData, meta interface{}) error return err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequest(config, "GET", project, url, nil) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("ComputeNetwork %q", d.Id())) } @@ -271,10 +289,13 @@ func resourceComputeNetworkRead(d *schema.ResourceData, meta interface{}) error func resourceComputeNetworkUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project d.Partial(true) @@ -292,7 +313,13 @@ func resourceComputeNetworkUpdate(d *schema.ResourceData, meta interface{}) erro if err != nil { return err } - res, err := sendRequestWithTimeout(config, "PATCH", project, url, obj, d.Timeout(schema.TimeoutUpdate)) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "PATCH", billingProject, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating Network %q: %s", d.Id(), err) } else { @@ -317,10 +344,13 @@ func resourceComputeNetworkUpdate(d *schema.ResourceData, meta interface{}) erro func resourceComputeNetworkDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project url, err := replaceVars(d, config, "{{ComputeBasePath}}projects/{{project}}/global/networks/{{name}}") if err != nil { @@ -330,7 +360,12 @@ func resourceComputeNetworkDelete(d *schema.ResourceData, meta interface{}) erro var obj map[string]interface{} log.Printf("[DEBUG] Deleting Network %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "DELETE", billingProject, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "Network") } diff --git a/google/resource_compute_network_endpoint.go b/google/resource_compute_network_endpoint.go index a2521c7425f..5f0c63e12cc 100644 --- a/google/resource_compute_network_endpoint.go +++ b/google/resource_compute_network_endpoint.go @@ -128,11 +128,20 @@ func resourceComputeNetworkEndpointCreate(d *schema.ResourceData, meta interface } log.Printf("[DEBUG] Creating new NetworkEndpoint: %#v", obj) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating NetworkEndpoint: %s", err) } @@ -167,11 +176,20 @@ func resourceComputeNetworkEndpointRead(d *schema.ResourceData, meta interface{} return err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequest(config, "POST", project, url, nil) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "POST", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("ComputeNetworkEndpoint %q", d.Id())) } @@ -220,10 +238,13 @@ func resourceComputeNetworkEndpointRead(d *schema.ResourceData, meta interface{} func resourceComputeNetworkEndpointDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project lockName, err := replaceVars(d, config, "networkEndpoint/{{project}}/{{zone}}/{{network_endpoint_group}}") if err != nil { @@ -262,7 +283,12 @@ func resourceComputeNetworkEndpointDelete(d *schema.ResourceData, meta interface } log.Printf("[DEBUG] Deleting NetworkEndpoint %q", d.Id()) - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutDelete)) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "NetworkEndpoint") } diff --git a/google/resource_compute_network_endpoint_group.go b/google/resource_compute_network_endpoint_group.go index 1c8b3bfa02d..84cb3f5ed9d 100644 --- a/google/resource_compute_network_endpoint_group.go +++ b/google/resource_compute_network_endpoint_group.go @@ -171,11 +171,20 @@ func resourceComputeNetworkEndpointGroupCreate(d *schema.ResourceData, meta inte } log.Printf("[DEBUG] Creating new NetworkEndpointGroup: %#v", obj) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating NetworkEndpointGroup: %s", err) } @@ -210,11 +219,20 @@ func resourceComputeNetworkEndpointGroupRead(d *schema.ResourceData, meta interf return err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequest(config, "GET", project, url, nil) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("ComputeNetworkEndpointGroup %q", d.Id())) } @@ -257,10 +275,13 @@ func resourceComputeNetworkEndpointGroupRead(d *schema.ResourceData, meta interf func resourceComputeNetworkEndpointGroupDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project url, err := replaceVars(d, config, "{{ComputeBasePath}}projects/{{project}}/zones/{{zone}}/networkEndpointGroups/{{name}}") if err != nil { @@ -270,7 +291,12 @@ func resourceComputeNetworkEndpointGroupDelete(d *schema.ResourceData, meta inte var obj map[string]interface{} log.Printf("[DEBUG] Deleting NetworkEndpointGroup %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "DELETE", billingProject, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "NetworkEndpointGroup") } diff --git a/google/resource_compute_network_peering_routes_config.go b/google/resource_compute_network_peering_routes_config.go index 52e42af8788..454ba1ecd13 100644 --- a/google/resource_compute_network_peering_routes_config.go +++ b/google/resource_compute_network_peering_routes_config.go @@ -113,11 +113,20 @@ func resourceComputeNetworkPeeringRoutesConfigCreate(d *schema.ResourceData, met } log.Printf("[DEBUG] Creating new NetworkPeeringRoutesConfig: %#v", obj) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequestWithTimeout(config, "PATCH", project, url, obj, d.Timeout(schema.TimeoutCreate)) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "PATCH", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating NetworkPeeringRoutesConfig: %s", err) } @@ -152,11 +161,20 @@ func resourceComputeNetworkPeeringRoutesConfigRead(d *schema.ResourceData, meta return err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequest(config, "GET", project, url, nil) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("ComputeNetworkPeeringRoutesConfig %q", d.Id())) } @@ -193,10 +211,13 @@ func resourceComputeNetworkPeeringRoutesConfigRead(d *schema.ResourceData, meta func resourceComputeNetworkPeeringRoutesConfigUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project obj := make(map[string]interface{}) nameProp, err := expandNestedComputeNetworkPeeringRoutesConfigPeering(d.Get("peering"), d, config) @@ -236,7 +257,13 @@ func resourceComputeNetworkPeeringRoutesConfigUpdate(d *schema.ResourceData, met } log.Printf("[DEBUG] Updating NetworkPeeringRoutesConfig %q: %#v", d.Id(), obj) - res, err := sendRequestWithTimeout(config, "PATCH", project, url, obj, d.Timeout(schema.TimeoutUpdate)) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "PATCH", billingProject, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating NetworkPeeringRoutesConfig %q: %s", d.Id(), err) diff --git a/google/resource_compute_node_group.go b/google/resource_compute_node_group.go index 2c4603dbdce..d04284eda0a 100644 --- a/google/resource_compute_node_group.go +++ b/google/resource_compute_node_group.go @@ -134,11 +134,20 @@ func resourceComputeNodeGroupCreate(d *schema.ResourceData, meta interface{}) er } log.Printf("[DEBUG] Creating new NodeGroup: %#v", obj) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating NodeGroup: %s", err) } @@ -173,11 +182,20 @@ func resourceComputeNodeGroupRead(d *schema.ResourceData, meta interface{}) erro return err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequest(config, "GET", project, url, nil) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("ComputeNodeGroup %q", d.Id())) } @@ -214,10 +232,13 @@ func resourceComputeNodeGroupRead(d *schema.ResourceData, meta interface{}) erro func resourceComputeNodeGroupUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project d.Partial(true) @@ -235,7 +256,13 @@ func resourceComputeNodeGroupUpdate(d *schema.ResourceData, meta interface{}) er if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutUpdate)) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating NodeGroup %q: %s", d.Id(), err) } else { @@ -260,10 +287,13 @@ func resourceComputeNodeGroupUpdate(d *schema.ResourceData, meta interface{}) er func resourceComputeNodeGroupDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project url, err := replaceVars(d, config, "{{ComputeBasePath}}projects/{{project}}/zones/{{zone}}/nodeGroups/{{name}}") if err != nil { @@ -273,7 +303,12 @@ func resourceComputeNodeGroupDelete(d *schema.ResourceData, meta interface{}) er var obj map[string]interface{} log.Printf("[DEBUG] Deleting NodeGroup %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "DELETE", billingProject, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "NodeGroup") } diff --git a/google/resource_compute_node_template.go b/google/resource_compute_node_template.go index e113bc26492..31093126487 100644 --- a/google/resource_compute_node_template.go +++ b/google/resource_compute_node_template.go @@ -176,11 +176,20 @@ func resourceComputeNodeTemplateCreate(d *schema.ResourceData, meta interface{}) } log.Printf("[DEBUG] Creating new NodeTemplate: %#v", obj) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating NodeTemplate: %s", err) } @@ -215,11 +224,20 @@ func resourceComputeNodeTemplateRead(d *schema.ResourceData, meta interface{}) e return err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequest(config, "GET", project, url, nil) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("ComputeNodeTemplate %q", d.Id())) } @@ -259,10 +277,13 @@ func resourceComputeNodeTemplateRead(d *schema.ResourceData, meta interface{}) e func resourceComputeNodeTemplateDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project url, err := replaceVars(d, config, "{{ComputeBasePath}}projects/{{project}}/regions/{{region}}/nodeTemplates/{{name}}") if err != nil { @@ -272,7 +293,12 @@ func resourceComputeNodeTemplateDelete(d *schema.ResourceData, meta interface{}) var obj map[string]interface{} log.Printf("[DEBUG] Deleting NodeTemplate %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "DELETE", billingProject, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "NodeTemplate") } diff --git a/google/resource_compute_region_autoscaler.go b/google/resource_compute_region_autoscaler.go index cc341b93e78..1a7463d16c4 100644 --- a/google/resource_compute_region_autoscaler.go +++ b/google/resource_compute_region_autoscaler.go @@ -270,11 +270,20 @@ func resourceComputeRegionAutoscalerCreate(d *schema.ResourceData, meta interfac } log.Printf("[DEBUG] Creating new RegionAutoscaler: %#v", obj) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating RegionAutoscaler: %s", err) } @@ -309,11 +318,20 @@ func resourceComputeRegionAutoscalerRead(d *schema.ResourceData, meta interface{ return err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequest(config, "GET", project, url, nil) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("ComputeRegionAutoscaler %q", d.Id())) } @@ -350,10 +368,13 @@ func resourceComputeRegionAutoscalerRead(d *schema.ResourceData, meta interface{ func resourceComputeRegionAutoscalerUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project obj := make(map[string]interface{}) nameProp, err := expandComputeRegionAutoscalerName(d.Get("name"), d, config) @@ -393,7 +414,13 @@ func resourceComputeRegionAutoscalerUpdate(d *schema.ResourceData, meta interfac } log.Printf("[DEBUG] Updating RegionAutoscaler %q: %#v", d.Id(), obj) - res, err := sendRequestWithTimeout(config, "PUT", project, url, obj, d.Timeout(schema.TimeoutUpdate)) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "PUT", billingProject, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating RegionAutoscaler %q: %s", d.Id(), err) @@ -415,10 +442,13 @@ func resourceComputeRegionAutoscalerUpdate(d *schema.ResourceData, meta interfac func resourceComputeRegionAutoscalerDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project url, err := replaceVars(d, config, "{{ComputeBasePath}}projects/{{project}}/regions/{{region}}/autoscalers/{{name}}") if err != nil { @@ -428,7 +458,12 @@ func resourceComputeRegionAutoscalerDelete(d *schema.ResourceData, meta interfac var obj map[string]interface{} log.Printf("[DEBUG] Deleting RegionAutoscaler %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "DELETE", billingProject, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "RegionAutoscaler") } diff --git a/google/resource_compute_region_backend_service.go b/google/resource_compute_region_backend_service.go index 37514e3305d..82e2599ffc6 100644 --- a/google/resource_compute_region_backend_service.go +++ b/google/resource_compute_region_backend_service.go @@ -945,11 +945,20 @@ func resourceComputeRegionBackendServiceCreate(d *schema.ResourceData, meta inte } log.Printf("[DEBUG] Creating new RegionBackendService: %#v", obj) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating RegionBackendService: %s", err) } @@ -984,11 +993,20 @@ func resourceComputeRegionBackendServiceRead(d *schema.ResourceData, meta interf return err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequest(config, "GET", project, url, nil) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("ComputeRegionBackendService %q", d.Id())) } @@ -1092,10 +1110,13 @@ func resourceComputeRegionBackendServiceRead(d *schema.ResourceData, meta interf func resourceComputeRegionBackendServiceUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project obj := make(map[string]interface{}) affinityCookieTtlSecProp, err := expandComputeRegionBackendServiceAffinityCookieTtlSec(d.Get("affinity_cookie_ttl_sec"), d, config) @@ -1230,7 +1251,13 @@ func resourceComputeRegionBackendServiceUpdate(d *schema.ResourceData, meta inte } log.Printf("[DEBUG] Updating RegionBackendService %q: %#v", d.Id(), obj) - res, err := sendRequestWithTimeout(config, "PUT", project, url, obj, d.Timeout(schema.TimeoutUpdate)) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "PUT", billingProject, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating RegionBackendService %q: %s", d.Id(), err) @@ -1252,10 +1279,13 @@ func resourceComputeRegionBackendServiceUpdate(d *schema.ResourceData, meta inte func resourceComputeRegionBackendServiceDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project url, err := replaceVars(d, config, "{{ComputeBasePath}}projects/{{project}}/regions/{{region}}/backendServices/{{name}}") if err != nil { @@ -1265,7 +1295,12 @@ func resourceComputeRegionBackendServiceDelete(d *schema.ResourceData, meta inte var obj map[string]interface{} log.Printf("[DEBUG] Deleting RegionBackendService %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "DELETE", billingProject, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "RegionBackendService") } diff --git a/google/resource_compute_region_disk.go b/google/resource_compute_region_disk.go index 3bcac131c57..8d5c35607e3 100644 --- a/google/resource_compute_region_disk.go +++ b/google/resource_compute_region_disk.go @@ -345,11 +345,20 @@ func resourceComputeRegionDiskCreate(d *schema.ResourceData, meta interface{}) e } log.Printf("[DEBUG] Creating new RegionDisk: %#v", obj) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating RegionDisk: %s", err) } @@ -384,11 +393,20 @@ func resourceComputeRegionDiskRead(d *schema.ResourceData, meta interface{}) err return err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequest(config, "GET", project, url, nil) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("ComputeRegionDisk %q", d.Id())) } @@ -470,10 +488,13 @@ func resourceComputeRegionDiskRead(d *schema.ResourceData, meta interface{}) err func resourceComputeRegionDiskUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project d.Partial(true) @@ -497,7 +518,13 @@ func resourceComputeRegionDiskUpdate(d *schema.ResourceData, meta interface{}) e if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutUpdate)) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating RegionDisk %q: %s", d.Id(), err) } else { @@ -528,7 +555,13 @@ func resourceComputeRegionDiskUpdate(d *schema.ResourceData, meta interface{}) e if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutUpdate)) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating RegionDisk %q: %s", d.Id(), err) } else { @@ -553,10 +586,13 @@ func resourceComputeRegionDiskUpdate(d *schema.ResourceData, meta interface{}) e func resourceComputeRegionDiskDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project url, err := replaceVars(d, config, "{{ComputeBasePath}}projects/{{project}}/regions/{{region}}/disks/{{name}}") if err != nil { @@ -620,7 +656,12 @@ func resourceComputeRegionDiskDelete(d *schema.ResourceData, meta interface{}) e } log.Printf("[DEBUG] Deleting RegionDisk %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "DELETE", billingProject, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "RegionDisk") } diff --git a/google/resource_compute_region_disk_resource_policy_attachment.go b/google/resource_compute_region_disk_resource_policy_attachment.go index 43237e18e82..7b13831be09 100644 --- a/google/resource_compute_region_disk_resource_policy_attachment.go +++ b/google/resource_compute_region_disk_resource_policy_attachment.go @@ -93,11 +93,20 @@ func resourceComputeRegionDiskResourcePolicyAttachmentCreate(d *schema.ResourceD } log.Printf("[DEBUG] Creating new RegionDiskResourcePolicyAttachment: %#v", obj) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating RegionDiskResourcePolicyAttachment: %s", err) } @@ -132,11 +141,20 @@ func resourceComputeRegionDiskResourcePolicyAttachmentRead(d *schema.ResourceDat return err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequest(config, "GET", project, url, nil) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("ComputeRegionDiskResourcePolicyAttachment %q", d.Id())) } @@ -179,10 +197,13 @@ func resourceComputeRegionDiskResourcePolicyAttachmentRead(d *schema.ResourceDat func resourceComputeRegionDiskResourcePolicyAttachmentDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project url, err := replaceVars(d, config, "{{ComputeBasePath}}projects/{{project}}/regions/{{region}}/disks/{{disk}}/removeResourcePolicies") if err != nil { @@ -208,7 +229,12 @@ func resourceComputeRegionDiskResourcePolicyAttachmentDelete(d *schema.ResourceD } log.Printf("[DEBUG] Deleting RegionDiskResourcePolicyAttachment %q", d.Id()) - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutDelete)) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "RegionDiskResourcePolicyAttachment") } diff --git a/google/resource_compute_region_health_check.go b/google/resource_compute_region_health_check.go index b4e673b2f5f..2af01dae34c 100644 --- a/google/resource_compute_region_health_check.go +++ b/google/resource_compute_region_health_check.go @@ -657,11 +657,20 @@ func resourceComputeRegionHealthCheckCreate(d *schema.ResourceData, meta interfa } log.Printf("[DEBUG] Creating new RegionHealthCheck: %#v", obj) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating RegionHealthCheck: %s", err) } @@ -696,11 +705,20 @@ func resourceComputeRegionHealthCheckRead(d *schema.ResourceData, meta interface return err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequest(config, "GET", project, url, nil) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("ComputeRegionHealthCheck %q", d.Id())) } @@ -764,10 +782,13 @@ func resourceComputeRegionHealthCheckRead(d *schema.ResourceData, meta interface func resourceComputeRegionHealthCheckUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project obj := make(map[string]interface{}) checkIntervalSecProp, err := expandComputeRegionHealthCheckCheckIntervalSec(d.Get("check_interval_sec"), d, config) @@ -860,7 +881,13 @@ func resourceComputeRegionHealthCheckUpdate(d *schema.ResourceData, meta interfa } log.Printf("[DEBUG] Updating RegionHealthCheck %q: %#v", d.Id(), obj) - res, err := sendRequestWithTimeout(config, "PUT", project, url, obj, d.Timeout(schema.TimeoutUpdate)) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "PUT", billingProject, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating RegionHealthCheck %q: %s", d.Id(), err) @@ -882,10 +909,13 @@ func resourceComputeRegionHealthCheckUpdate(d *schema.ResourceData, meta interfa func resourceComputeRegionHealthCheckDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project url, err := replaceVars(d, config, "{{ComputeBasePath}}projects/{{project}}/regions/{{region}}/healthChecks/{{name}}") if err != nil { @@ -895,7 +925,12 @@ func resourceComputeRegionHealthCheckDelete(d *schema.ResourceData, meta interfa var obj map[string]interface{} log.Printf("[DEBUG] Deleting RegionHealthCheck %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "DELETE", billingProject, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "RegionHealthCheck") } diff --git a/google/resource_compute_region_ssl_certificate.go b/google/resource_compute_region_ssl_certificate.go index c7e8e350e85..804c09c67a6 100644 --- a/google/resource_compute_region_ssl_certificate.go +++ b/google/resource_compute_region_ssl_certificate.go @@ -172,11 +172,20 @@ func resourceComputeRegionSslCertificateCreate(d *schema.ResourceData, meta inte } log.Printf("[DEBUG] Creating new RegionSslCertificate: %#v", obj) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating RegionSslCertificate: %s", err) } @@ -211,11 +220,20 @@ func resourceComputeRegionSslCertificateRead(d *schema.ResourceData, meta interf return err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequest(config, "GET", project, url, nil) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("ComputeRegionSslCertificate %q", d.Id())) } @@ -252,10 +270,13 @@ func resourceComputeRegionSslCertificateRead(d *schema.ResourceData, meta interf func resourceComputeRegionSslCertificateDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project url, err := replaceVars(d, config, "{{ComputeBasePath}}projects/{{project}}/regions/{{region}}/sslCertificates/{{name}}") if err != nil { @@ -265,7 +286,12 @@ func resourceComputeRegionSslCertificateDelete(d *schema.ResourceData, meta inte var obj map[string]interface{} log.Printf("[DEBUG] Deleting RegionSslCertificate %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "DELETE", billingProject, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "RegionSslCertificate") } diff --git a/google/resource_compute_region_target_http_proxy.go b/google/resource_compute_region_target_http_proxy.go index b61f37f6e6f..7078820ea48 100644 --- a/google/resource_compute_region_target_http_proxy.go +++ b/google/resource_compute_region_target_http_proxy.go @@ -135,11 +135,20 @@ func resourceComputeRegionTargetHttpProxyCreate(d *schema.ResourceData, meta int } log.Printf("[DEBUG] Creating new RegionTargetHttpProxy: %#v", obj) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating RegionTargetHttpProxy: %s", err) } @@ -174,11 +183,20 @@ func resourceComputeRegionTargetHttpProxyRead(d *schema.ResourceData, meta inter return err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequest(config, "GET", project, url, nil) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("ComputeRegionTargetHttpProxy %q", d.Id())) } @@ -215,10 +233,13 @@ func resourceComputeRegionTargetHttpProxyRead(d *schema.ResourceData, meta inter func resourceComputeRegionTargetHttpProxyUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project d.Partial(true) @@ -236,7 +257,13 @@ func resourceComputeRegionTargetHttpProxyUpdate(d *schema.ResourceData, meta int if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutUpdate)) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating RegionTargetHttpProxy %q: %s", d.Id(), err) } else { @@ -261,10 +288,13 @@ func resourceComputeRegionTargetHttpProxyUpdate(d *schema.ResourceData, meta int func resourceComputeRegionTargetHttpProxyDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project url, err := replaceVars(d, config, "{{ComputeBasePath}}projects/{{project}}/regions/{{region}}/targetHttpProxies/{{name}}") if err != nil { @@ -274,7 +304,12 @@ func resourceComputeRegionTargetHttpProxyDelete(d *schema.ResourceData, meta int var obj map[string]interface{} log.Printf("[DEBUG] Deleting RegionTargetHttpProxy %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "DELETE", billingProject, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "RegionTargetHttpProxy") } diff --git a/google/resource_compute_region_target_https_proxy.go b/google/resource_compute_region_target_https_proxy.go index c6e83821a45..0eaa6410e38 100644 --- a/google/resource_compute_region_target_https_proxy.go +++ b/google/resource_compute_region_target_https_proxy.go @@ -152,11 +152,20 @@ func resourceComputeRegionTargetHttpsProxyCreate(d *schema.ResourceData, meta in } log.Printf("[DEBUG] Creating new RegionTargetHttpsProxy: %#v", obj) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating RegionTargetHttpsProxy: %s", err) } @@ -191,11 +200,20 @@ func resourceComputeRegionTargetHttpsProxyRead(d *schema.ResourceData, meta inte return err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequest(config, "GET", project, url, nil) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("ComputeRegionTargetHttpsProxy %q", d.Id())) } @@ -235,10 +253,13 @@ func resourceComputeRegionTargetHttpsProxyRead(d *schema.ResourceData, meta inte func resourceComputeRegionTargetHttpsProxyUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project d.Partial(true) @@ -256,7 +277,13 @@ func resourceComputeRegionTargetHttpsProxyUpdate(d *schema.ResourceData, meta in if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutUpdate)) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating RegionTargetHttpsProxy %q: %s", d.Id(), err) } else { @@ -286,7 +313,13 @@ func resourceComputeRegionTargetHttpsProxyUpdate(d *schema.ResourceData, meta in if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutUpdate)) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating RegionTargetHttpsProxy %q: %s", d.Id(), err) } else { @@ -311,10 +344,13 @@ func resourceComputeRegionTargetHttpsProxyUpdate(d *schema.ResourceData, meta in func resourceComputeRegionTargetHttpsProxyDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project url, err := replaceVars(d, config, "{{ComputeBasePath}}projects/{{project}}/regions/{{region}}/targetHttpsProxies/{{name}}") if err != nil { @@ -324,7 +360,12 @@ func resourceComputeRegionTargetHttpsProxyDelete(d *schema.ResourceData, meta in var obj map[string]interface{} log.Printf("[DEBUG] Deleting RegionTargetHttpsProxy %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "DELETE", billingProject, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "RegionTargetHttpsProxy") } diff --git a/google/resource_compute_region_url_map.go b/google/resource_compute_region_url_map.go index 1c4168d3658..393cf8b1312 100644 --- a/google/resource_compute_region_url_map.go +++ b/google/resource_compute_region_url_map.go @@ -1802,11 +1802,20 @@ func resourceComputeRegionUrlMapCreate(d *schema.ResourceData, meta interface{}) } log.Printf("[DEBUG] Creating new RegionUrlMap: %#v", obj) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating RegionUrlMap: %s", err) } @@ -1841,11 +1850,20 @@ func resourceComputeRegionUrlMapRead(d *schema.ResourceData, meta interface{}) e return err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequest(config, "GET", project, url, nil) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("ComputeRegionUrlMap %q", d.Id())) } @@ -1897,10 +1915,13 @@ func resourceComputeRegionUrlMapRead(d *schema.ResourceData, meta interface{}) e func resourceComputeRegionUrlMapUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project obj := make(map[string]interface{}) defaultServiceProp, err := expandComputeRegionUrlMapDefaultService(d.Get("default_service"), d, config) @@ -1964,7 +1985,13 @@ func resourceComputeRegionUrlMapUpdate(d *schema.ResourceData, meta interface{}) } log.Printf("[DEBUG] Updating RegionUrlMap %q: %#v", d.Id(), obj) - res, err := sendRequestWithTimeout(config, "PUT", project, url, obj, d.Timeout(schema.TimeoutUpdate)) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "PUT", billingProject, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating RegionUrlMap %q: %s", d.Id(), err) @@ -1986,10 +2013,13 @@ func resourceComputeRegionUrlMapUpdate(d *schema.ResourceData, meta interface{}) func resourceComputeRegionUrlMapDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project url, err := replaceVars(d, config, "{{ComputeBasePath}}projects/{{project}}/regions/{{region}}/urlMaps/{{name}}") if err != nil { @@ -1999,7 +2029,12 @@ func resourceComputeRegionUrlMapDelete(d *schema.ResourceData, meta interface{}) var obj map[string]interface{} log.Printf("[DEBUG] Deleting RegionUrlMap %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "DELETE", billingProject, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "RegionUrlMap") } diff --git a/google/resource_compute_reservation.go b/google/resource_compute_reservation.go index be27c9b2cf9..b8808538918 100644 --- a/google/resource_compute_reservation.go +++ b/google/resource_compute_reservation.go @@ -248,11 +248,20 @@ func resourceComputeReservationCreate(d *schema.ResourceData, meta interface{}) } log.Printf("[DEBUG] Creating new Reservation: %#v", obj) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating Reservation: %s", err) } @@ -287,11 +296,20 @@ func resourceComputeReservationRead(d *schema.ResourceData, meta interface{}) er return err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequest(config, "GET", project, url, nil) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("ComputeReservation %q", d.Id())) } @@ -334,10 +352,13 @@ func resourceComputeReservationRead(d *schema.ResourceData, meta interface{}) er func resourceComputeReservationUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project d.Partial(true) @@ -360,7 +381,13 @@ func resourceComputeReservationUpdate(d *schema.ResourceData, meta interface{}) if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutUpdate)) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating Reservation %q: %s", d.Id(), err) } else { @@ -385,10 +412,13 @@ func resourceComputeReservationUpdate(d *schema.ResourceData, meta interface{}) func resourceComputeReservationDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project url, err := replaceVars(d, config, "{{ComputeBasePath}}projects/{{project}}/zones/{{zone}}/reservations/{{name}}") if err != nil { @@ -398,7 +428,12 @@ func resourceComputeReservationDelete(d *schema.ResourceData, meta interface{}) var obj map[string]interface{} log.Printf("[DEBUG] Deleting Reservation %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "DELETE", billingProject, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "Reservation") } diff --git a/google/resource_compute_resource_policy.go b/google/resource_compute_resource_policy.go index e21339fbebd..be5e6245647 100644 --- a/google/resource_compute_resource_policy.go +++ b/google/resource_compute_resource_policy.go @@ -333,11 +333,20 @@ func resourceComputeResourcePolicyCreate(d *schema.ResourceData, meta interface{ } log.Printf("[DEBUG] Creating new ResourcePolicy: %#v", obj) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating ResourcePolicy: %s", err) } @@ -372,11 +381,20 @@ func resourceComputeResourcePolicyRead(d *schema.ResourceData, meta interface{}) return err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequest(config, "GET", project, url, nil) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("ComputeResourcePolicy %q", d.Id())) } @@ -407,10 +425,13 @@ func resourceComputeResourcePolicyRead(d *schema.ResourceData, meta interface{}) func resourceComputeResourcePolicyDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project url, err := replaceVars(d, config, "{{ComputeBasePath}}projects/{{project}}/regions/{{region}}/resourcePolicies/{{name}}") if err != nil { @@ -420,7 +441,12 @@ func resourceComputeResourcePolicyDelete(d *schema.ResourceData, meta interface{ var obj map[string]interface{} log.Printf("[DEBUG] Deleting ResourcePolicy %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "DELETE", billingProject, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "ResourcePolicy") } diff --git a/google/resource_compute_route.go b/google/resource_compute_route.go index d547f9f4d52..adfdce0abdf 100644 --- a/google/resource_compute_route.go +++ b/google/resource_compute_route.go @@ -260,11 +260,20 @@ func resourceComputeRouteCreate(d *schema.ResourceData, meta interface{}) error } log.Printf("[DEBUG] Creating new Route: %#v", obj) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate), isPeeringOperationInProgress) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate), isPeeringOperationInProgress) if err != nil { return fmt.Errorf("Error creating Route: %s", err) } @@ -299,11 +308,20 @@ func resourceComputeRouteRead(d *schema.ResourceData, meta interface{}) error { return err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequest(config, "GET", project, url, nil, isPeeringOperationInProgress) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil, isPeeringOperationInProgress) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("ComputeRoute %q", d.Id())) } @@ -370,10 +388,13 @@ func resourceComputeRouteRead(d *schema.ResourceData, meta interface{}) error { func resourceComputeRouteDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project lockName, err := replaceVars(d, config, "projects/{{project}}/global/networks/{{network}}/peerings") if err != nil { @@ -390,7 +411,12 @@ func resourceComputeRouteDelete(d *schema.ResourceData, meta interface{}) error var obj map[string]interface{} log.Printf("[DEBUG] Deleting Route %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete), isPeeringOperationInProgress) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "DELETE", billingProject, url, obj, d.Timeout(schema.TimeoutDelete), isPeeringOperationInProgress) if err != nil { return handleNotFoundError(err, d, "Route") } diff --git a/google/resource_compute_router.go b/google/resource_compute_router.go index 57128f493d2..d3121e93477 100644 --- a/google/resource_compute_router.go +++ b/google/resource_compute_router.go @@ -226,11 +226,20 @@ func resourceComputeRouterCreate(d *schema.ResourceData, meta interface{}) error } log.Printf("[DEBUG] Creating new Router: %#v", obj) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating Router: %s", err) } @@ -265,11 +274,20 @@ func resourceComputeRouterRead(d *schema.ResourceData, meta interface{}) error { return err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequest(config, "GET", project, url, nil) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("ComputeRouter %q", d.Id())) } @@ -306,10 +324,13 @@ func resourceComputeRouterRead(d *schema.ResourceData, meta interface{}) error { func resourceComputeRouterUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project obj := make(map[string]interface{}) descriptionProp, err := expandComputeRouterDescription(d.Get("description"), d, config) @@ -338,7 +359,13 @@ func resourceComputeRouterUpdate(d *schema.ResourceData, meta interface{}) error } log.Printf("[DEBUG] Updating Router %q: %#v", d.Id(), obj) - res, err := sendRequestWithTimeout(config, "PATCH", project, url, obj, d.Timeout(schema.TimeoutUpdate)) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "PATCH", billingProject, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating Router %q: %s", d.Id(), err) @@ -360,10 +387,13 @@ func resourceComputeRouterUpdate(d *schema.ResourceData, meta interface{}) error func resourceComputeRouterDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project lockName, err := replaceVars(d, config, "router/{{region}}/{{name}}") if err != nil { @@ -380,7 +410,12 @@ func resourceComputeRouterDelete(d *schema.ResourceData, meta interface{}) error var obj map[string]interface{} log.Printf("[DEBUG] Deleting Router %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "DELETE", billingProject, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "Router") } diff --git a/google/resource_compute_router_bgp_peer.go b/google/resource_compute_router_bgp_peer.go index ad4b05cd7a7..251cc371524 100644 --- a/google/resource_compute_router_bgp_peer.go +++ b/google/resource_compute_router_bgp_peer.go @@ -253,11 +253,20 @@ func resourceComputeRouterBgpPeerCreate(d *schema.ResourceData, meta interface{} if err != nil { return err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequestWithTimeout(config, "PATCH", project, url, obj, d.Timeout(schema.TimeoutCreate)) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "PATCH", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating RouterBgpPeer: %s", err) } @@ -292,11 +301,20 @@ func resourceComputeRouterBgpPeerRead(d *schema.ResourceData, meta interface{}) return err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequest(config, "GET", project, url, nil) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("ComputeRouterBgpPeer %q", d.Id())) } @@ -354,10 +372,13 @@ func resourceComputeRouterBgpPeerRead(d *schema.ResourceData, meta interface{}) func resourceComputeRouterBgpPeerUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project obj := make(map[string]interface{}) advertisedRoutePriorityProp, err := expandNestedComputeRouterBgpPeerAdvertisedRoutePriority(d.Get("advertised_route_priority"), d, config) @@ -391,7 +412,13 @@ func resourceComputeRouterBgpPeerUpdate(d *schema.ResourceData, meta interface{} if err != nil { return err } - res, err := sendRequestWithTimeout(config, "PATCH", project, url, obj, d.Timeout(schema.TimeoutUpdate)) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "PATCH", billingProject, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating RouterBgpPeer %q: %s", d.Id(), err) @@ -413,10 +440,13 @@ func resourceComputeRouterBgpPeerUpdate(d *schema.ResourceData, meta interface{} func resourceComputeRouterBgpPeerDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project lockName, err := replaceVars(d, config, "router/{{region}}/{{router}}") if err != nil { @@ -438,7 +468,12 @@ func resourceComputeRouterBgpPeerDelete(d *schema.ResourceData, meta interface{} } log.Printf("[DEBUG] Deleting RouterBgpPeer %q", d.Id()) - res, err := sendRequestWithTimeout(config, "PATCH", project, url, obj, d.Timeout(schema.TimeoutDelete)) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "PATCH", billingProject, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "RouterBgpPeer") } diff --git a/google/resource_compute_router_nat.go b/google/resource_compute_router_nat.go index 74da8b167e2..7150c94c0a9 100644 --- a/google/resource_compute_router_nat.go +++ b/google/resource_compute_router_nat.go @@ -394,11 +394,20 @@ func resourceComputeRouterNatCreate(d *schema.ResourceData, meta interface{}) er if err != nil { return err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequestWithTimeout(config, "PATCH", project, url, obj, d.Timeout(schema.TimeoutCreate)) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "PATCH", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating RouterNat: %s", err) } @@ -433,11 +442,20 @@ func resourceComputeRouterNatRead(d *schema.ResourceData, meta interface{}) erro return err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequest(config, "GET", project, url, nil) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("ComputeRouterNat %q", d.Id())) } @@ -501,10 +519,13 @@ func resourceComputeRouterNatRead(d *schema.ResourceData, meta interface{}) erro func resourceComputeRouterNatUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project obj := make(map[string]interface{}) natIpAllocateOptionProp, err := expandNestedComputeRouterNatNatIpAllocateOption(d.Get("nat_ip_allocate_option"), d, config) @@ -592,7 +613,13 @@ func resourceComputeRouterNatUpdate(d *schema.ResourceData, meta interface{}) er if err != nil { return err } - res, err := sendRequestWithTimeout(config, "PATCH", project, url, obj, d.Timeout(schema.TimeoutUpdate)) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "PATCH", billingProject, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating RouterNat %q: %s", d.Id(), err) @@ -614,10 +641,13 @@ func resourceComputeRouterNatUpdate(d *schema.ResourceData, meta interface{}) er func resourceComputeRouterNatDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project lockName, err := replaceVars(d, config, "router/{{region}}/{{router}}") if err != nil { @@ -639,7 +669,12 @@ func resourceComputeRouterNatDelete(d *schema.ResourceData, meta interface{}) er } log.Printf("[DEBUG] Deleting RouterNat %q", d.Id()) - res, err := sendRequestWithTimeout(config, "PATCH", project, url, obj, d.Timeout(schema.TimeoutDelete)) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "PATCH", billingProject, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "RouterNat") } diff --git a/google/resource_compute_snapshot.go b/google/resource_compute_snapshot.go index 817b0bde835..4848c46df43 100644 --- a/google/resource_compute_snapshot.go +++ b/google/resource_compute_snapshot.go @@ -245,11 +245,20 @@ func resourceComputeSnapshotCreate(d *schema.ResourceData, meta interface{}) err } log.Printf("[DEBUG] Creating new Snapshot: %#v", obj) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating Snapshot: %s", err) } @@ -284,11 +293,20 @@ func resourceComputeSnapshotRead(d *schema.ResourceData, meta interface{}) error return err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequest(config, "GET", project, url, nil) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("ComputeSnapshot %q", d.Id())) } @@ -352,10 +370,13 @@ func resourceComputeSnapshotRead(d *schema.ResourceData, meta interface{}) error func resourceComputeSnapshotUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project d.Partial(true) @@ -379,7 +400,13 @@ func resourceComputeSnapshotUpdate(d *schema.ResourceData, meta interface{}) err if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutUpdate)) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating Snapshot %q: %s", d.Id(), err) } else { @@ -405,10 +432,13 @@ func resourceComputeSnapshotUpdate(d *schema.ResourceData, meta interface{}) err func resourceComputeSnapshotDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project url, err := replaceVars(d, config, "{{ComputeBasePath}}projects/{{project}}/global/snapshots/{{name}}") if err != nil { @@ -418,7 +448,12 @@ func resourceComputeSnapshotDelete(d *schema.ResourceData, meta interface{}) err var obj map[string]interface{} log.Printf("[DEBUG] Deleting Snapshot %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "DELETE", billingProject, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "Snapshot") } diff --git a/google/resource_compute_ssl_certificate.go b/google/resource_compute_ssl_certificate.go index 886549ee34f..570f22f45ec 100644 --- a/google/resource_compute_ssl_certificate.go +++ b/google/resource_compute_ssl_certificate.go @@ -157,11 +157,20 @@ func resourceComputeSslCertificateCreate(d *schema.ResourceData, meta interface{ } log.Printf("[DEBUG] Creating new SslCertificate: %#v", obj) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating SslCertificate: %s", err) } @@ -196,11 +205,20 @@ func resourceComputeSslCertificateRead(d *schema.ResourceData, meta interface{}) return err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequest(config, "GET", project, url, nil) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("ComputeSslCertificate %q", d.Id())) } @@ -234,10 +252,13 @@ func resourceComputeSslCertificateRead(d *schema.ResourceData, meta interface{}) func resourceComputeSslCertificateDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project url, err := replaceVars(d, config, "{{ComputeBasePath}}projects/{{project}}/global/sslCertificates/{{name}}") if err != nil { @@ -247,7 +268,12 @@ func resourceComputeSslCertificateDelete(d *schema.ResourceData, meta interface{ var obj map[string]interface{} log.Printf("[DEBUG] Deleting SslCertificate %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "DELETE", billingProject, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "SslCertificate") } diff --git a/google/resource_compute_ssl_policy.go b/google/resource_compute_ssl_policy.go index ac7b34241a3..da09e8cfc79 100644 --- a/google/resource_compute_ssl_policy.go +++ b/google/resource_compute_ssl_policy.go @@ -198,11 +198,20 @@ func resourceComputeSslPolicyCreate(d *schema.ResourceData, meta interface{}) er } log.Printf("[DEBUG] Creating new SslPolicy: %#v", obj) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating SslPolicy: %s", err) } @@ -237,11 +246,20 @@ func resourceComputeSslPolicyRead(d *schema.ResourceData, meta interface{}) erro return err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequest(config, "GET", project, url, nil) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("ComputeSslPolicy %q", d.Id())) } @@ -284,10 +302,13 @@ func resourceComputeSslPolicyRead(d *schema.ResourceData, meta interface{}) erro func resourceComputeSslPolicyUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project obj := make(map[string]interface{}) profileProp, err := expandComputeSslPolicyProfile(d.Get("profile"), d, config) @@ -320,7 +341,13 @@ func resourceComputeSslPolicyUpdate(d *schema.ResourceData, meta interface{}) er } log.Printf("[DEBUG] Updating SslPolicy %q: %#v", d.Id(), obj) - res, err := sendRequestWithTimeout(config, "PATCH", project, url, obj, d.Timeout(schema.TimeoutUpdate)) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "PATCH", billingProject, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating SslPolicy %q: %s", d.Id(), err) @@ -342,10 +369,13 @@ func resourceComputeSslPolicyUpdate(d *schema.ResourceData, meta interface{}) er func resourceComputeSslPolicyDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project url, err := replaceVars(d, config, "{{ComputeBasePath}}projects/{{project}}/global/sslPolicies/{{name}}") if err != nil { @@ -355,7 +385,12 @@ func resourceComputeSslPolicyDelete(d *schema.ResourceData, meta interface{}) er var obj map[string]interface{} log.Printf("[DEBUG] Deleting SslPolicy %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "DELETE", billingProject, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "SslPolicy") } diff --git a/google/resource_compute_subnetwork.go b/google/resource_compute_subnetwork.go index ebe9d59f037..58b753ff384 100644 --- a/google/resource_compute_subnetwork.go +++ b/google/resource_compute_subnetwork.go @@ -360,11 +360,20 @@ func resourceComputeSubnetworkCreate(d *schema.ResourceData, meta interface{}) e } log.Printf("[DEBUG] Creating new Subnetwork: %#v", obj) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating Subnetwork: %s", err) } @@ -399,11 +408,20 @@ func resourceComputeSubnetworkRead(d *schema.ResourceData, meta interface{}) err return err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequest(config, "GET", project, url, nil) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("ComputeSubnetwork %q", d.Id())) } @@ -452,10 +470,13 @@ func resourceComputeSubnetworkRead(d *schema.ResourceData, meta interface{}) err func resourceComputeSubnetworkUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project d.Partial(true) @@ -473,7 +494,13 @@ func resourceComputeSubnetworkUpdate(d *schema.ResourceData, meta interface{}) e if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutUpdate)) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating Subnetwork %q: %s", d.Id(), err) } else { @@ -503,7 +530,13 @@ func resourceComputeSubnetworkUpdate(d *schema.ResourceData, meta interface{}) e if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutUpdate)) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating Subnetwork %q: %s", d.Id(), err) } else { @@ -526,7 +559,13 @@ func resourceComputeSubnetworkUpdate(d *schema.ResourceData, meta interface{}) e if err != nil { return err } - getRes, err := sendRequest(config, "GET", project, getUrl, nil) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + getRes, err := sendRequest(config, "GET", billingProject, getUrl, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("ComputeSubnetwork %q", d.Id())) } @@ -544,7 +583,13 @@ func resourceComputeSubnetworkUpdate(d *schema.ResourceData, meta interface{}) e if err != nil { return err } - res, err := sendRequestWithTimeout(config, "PATCH", project, url, obj, d.Timeout(schema.TimeoutUpdate)) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "PATCH", billingProject, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating Subnetwork %q: %s", d.Id(), err) } else { @@ -567,7 +612,13 @@ func resourceComputeSubnetworkUpdate(d *schema.ResourceData, meta interface{}) e if err != nil { return err } - getRes, err := sendRequest(config, "GET", project, getUrl, nil) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + getRes, err := sendRequest(config, "GET", billingProject, getUrl, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("ComputeSubnetwork %q", d.Id())) } @@ -585,7 +636,13 @@ func resourceComputeSubnetworkUpdate(d *schema.ResourceData, meta interface{}) e if err != nil { return err } - res, err := sendRequestWithTimeout(config, "PATCH", project, url, obj, d.Timeout(schema.TimeoutUpdate)) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "PATCH", billingProject, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating Subnetwork %q: %s", d.Id(), err) } else { @@ -610,10 +667,13 @@ func resourceComputeSubnetworkUpdate(d *schema.ResourceData, meta interface{}) e func resourceComputeSubnetworkDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project url, err := replaceVars(d, config, "{{ComputeBasePath}}projects/{{project}}/regions/{{region}}/subnetworks/{{name}}") if err != nil { @@ -623,7 +683,12 @@ func resourceComputeSubnetworkDelete(d *schema.ResourceData, meta interface{}) e var obj map[string]interface{} log.Printf("[DEBUG] Deleting Subnetwork %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "DELETE", billingProject, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "Subnetwork") } diff --git a/google/resource_compute_target_http_proxy.go b/google/resource_compute_target_http_proxy.go index 35e24043199..4cf7b074933 100644 --- a/google/resource_compute_target_http_proxy.go +++ b/google/resource_compute_target_http_proxy.go @@ -120,11 +120,20 @@ func resourceComputeTargetHttpProxyCreate(d *schema.ResourceData, meta interface } log.Printf("[DEBUG] Creating new TargetHttpProxy: %#v", obj) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating TargetHttpProxy: %s", err) } @@ -159,11 +168,20 @@ func resourceComputeTargetHttpProxyRead(d *schema.ResourceData, meta interface{} return err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequest(config, "GET", project, url, nil) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("ComputeTargetHttpProxy %q", d.Id())) } @@ -197,10 +215,13 @@ func resourceComputeTargetHttpProxyRead(d *schema.ResourceData, meta interface{} func resourceComputeTargetHttpProxyUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project d.Partial(true) @@ -218,7 +239,13 @@ func resourceComputeTargetHttpProxyUpdate(d *schema.ResourceData, meta interface if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutUpdate)) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating TargetHttpProxy %q: %s", d.Id(), err) } else { @@ -243,10 +270,13 @@ func resourceComputeTargetHttpProxyUpdate(d *schema.ResourceData, meta interface func resourceComputeTargetHttpProxyDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project url, err := replaceVars(d, config, "{{ComputeBasePath}}projects/{{project}}/global/targetHttpProxies/{{name}}") if err != nil { @@ -256,7 +286,12 @@ func resourceComputeTargetHttpProxyDelete(d *schema.ResourceData, meta interface var obj map[string]interface{} log.Printf("[DEBUG] Deleting TargetHttpProxy %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "DELETE", billingProject, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "TargetHttpProxy") } diff --git a/google/resource_compute_target_https_proxy.go b/google/resource_compute_target_https_proxy.go index e60c4adeef4..91da3f71341 100644 --- a/google/resource_compute_target_https_proxy.go +++ b/google/resource_compute_target_https_proxy.go @@ -169,11 +169,20 @@ func resourceComputeTargetHttpsProxyCreate(d *schema.ResourceData, meta interfac } log.Printf("[DEBUG] Creating new TargetHttpsProxy: %#v", obj) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating TargetHttpsProxy: %s", err) } @@ -208,11 +217,20 @@ func resourceComputeTargetHttpsProxyRead(d *schema.ResourceData, meta interface{ return err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequest(config, "GET", project, url, nil) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("ComputeTargetHttpsProxy %q", d.Id())) } @@ -255,10 +273,13 @@ func resourceComputeTargetHttpsProxyRead(d *schema.ResourceData, meta interface{ func resourceComputeTargetHttpsProxyUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project d.Partial(true) @@ -276,7 +297,13 @@ func resourceComputeTargetHttpsProxyUpdate(d *schema.ResourceData, meta interfac if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutUpdate)) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating TargetHttpsProxy %q: %s", d.Id(), err) } else { @@ -306,7 +333,13 @@ func resourceComputeTargetHttpsProxyUpdate(d *schema.ResourceData, meta interfac if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutUpdate)) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating TargetHttpsProxy %q: %s", d.Id(), err) } else { @@ -336,7 +369,13 @@ func resourceComputeTargetHttpsProxyUpdate(d *schema.ResourceData, meta interfac if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutUpdate)) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating TargetHttpsProxy %q: %s", d.Id(), err) } else { @@ -366,7 +405,13 @@ func resourceComputeTargetHttpsProxyUpdate(d *schema.ResourceData, meta interfac if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutUpdate)) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating TargetHttpsProxy %q: %s", d.Id(), err) } else { @@ -391,10 +436,13 @@ func resourceComputeTargetHttpsProxyUpdate(d *schema.ResourceData, meta interfac func resourceComputeTargetHttpsProxyDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project url, err := replaceVars(d, config, "{{ComputeBasePath}}projects/{{project}}/global/targetHttpsProxies/{{name}}") if err != nil { @@ -404,7 +452,12 @@ func resourceComputeTargetHttpsProxyDelete(d *schema.ResourceData, meta interfac var obj map[string]interface{} log.Printf("[DEBUG] Deleting TargetHttpsProxy %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "DELETE", billingProject, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "TargetHttpsProxy") } diff --git a/google/resource_compute_target_instance.go b/google/resource_compute_target_instance.go index 1f34b00a5c1..ddd9fe3e21e 100644 --- a/google/resource_compute_target_instance.go +++ b/google/resource_compute_target_instance.go @@ -148,11 +148,20 @@ func resourceComputeTargetInstanceCreate(d *schema.ResourceData, meta interface{ } log.Printf("[DEBUG] Creating new TargetInstance: %#v", obj) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating TargetInstance: %s", err) } @@ -187,11 +196,20 @@ func resourceComputeTargetInstanceRead(d *schema.ResourceData, meta interface{}) return err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequest(config, "GET", project, url, nil) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("ComputeTargetInstance %q", d.Id())) } @@ -228,10 +246,13 @@ func resourceComputeTargetInstanceRead(d *schema.ResourceData, meta interface{}) func resourceComputeTargetInstanceDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project url, err := replaceVars(d, config, "{{ComputeBasePath}}projects/{{project}}/zones/{{zone}}/targetInstances/{{name}}") if err != nil { @@ -241,7 +262,12 @@ func resourceComputeTargetInstanceDelete(d *schema.ResourceData, meta interface{ var obj map[string]interface{} log.Printf("[DEBUG] Deleting TargetInstance %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "DELETE", billingProject, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "TargetInstance") } diff --git a/google/resource_compute_target_ssl_proxy.go b/google/resource_compute_target_ssl_proxy.go index de498f74400..a7ffa99c31a 100644 --- a/google/resource_compute_target_ssl_proxy.go +++ b/google/resource_compute_target_ssl_proxy.go @@ -166,11 +166,20 @@ func resourceComputeTargetSslProxyCreate(d *schema.ResourceData, meta interface{ } log.Printf("[DEBUG] Creating new TargetSslProxy: %#v", obj) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating TargetSslProxy: %s", err) } @@ -205,11 +214,20 @@ func resourceComputeTargetSslProxyRead(d *schema.ResourceData, meta interface{}) return err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequest(config, "GET", project, url, nil) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("ComputeTargetSslProxy %q", d.Id())) } @@ -252,10 +270,13 @@ func resourceComputeTargetSslProxyRead(d *schema.ResourceData, meta interface{}) func resourceComputeTargetSslProxyUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project d.Partial(true) @@ -273,7 +294,13 @@ func resourceComputeTargetSslProxyUpdate(d *schema.ResourceData, meta interface{ if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutUpdate)) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating TargetSslProxy %q: %s", d.Id(), err) } else { @@ -303,7 +330,13 @@ func resourceComputeTargetSslProxyUpdate(d *schema.ResourceData, meta interface{ if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutUpdate)) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating TargetSslProxy %q: %s", d.Id(), err) } else { @@ -333,7 +366,13 @@ func resourceComputeTargetSslProxyUpdate(d *schema.ResourceData, meta interface{ if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutUpdate)) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating TargetSslProxy %q: %s", d.Id(), err) } else { @@ -363,7 +402,13 @@ func resourceComputeTargetSslProxyUpdate(d *schema.ResourceData, meta interface{ if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutUpdate)) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating TargetSslProxy %q: %s", d.Id(), err) } else { @@ -388,10 +433,13 @@ func resourceComputeTargetSslProxyUpdate(d *schema.ResourceData, meta interface{ func resourceComputeTargetSslProxyDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project url, err := replaceVars(d, config, "{{ComputeBasePath}}projects/{{project}}/global/targetSslProxies/{{name}}") if err != nil { @@ -401,7 +449,12 @@ func resourceComputeTargetSslProxyDelete(d *schema.ResourceData, meta interface{ var obj map[string]interface{} log.Printf("[DEBUG] Deleting TargetSslProxy %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "DELETE", billingProject, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "TargetSslProxy") } diff --git a/google/resource_compute_target_tcp_proxy.go b/google/resource_compute_target_tcp_proxy.go index e4bc025453f..92738610bf9 100644 --- a/google/resource_compute_target_tcp_proxy.go +++ b/google/resource_compute_target_tcp_proxy.go @@ -134,11 +134,20 @@ func resourceComputeTargetTcpProxyCreate(d *schema.ResourceData, meta interface{ } log.Printf("[DEBUG] Creating new TargetTcpProxy: %#v", obj) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating TargetTcpProxy: %s", err) } @@ -173,11 +182,20 @@ func resourceComputeTargetTcpProxyRead(d *schema.ResourceData, meta interface{}) return err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequest(config, "GET", project, url, nil) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("ComputeTargetTcpProxy %q", d.Id())) } @@ -214,10 +232,13 @@ func resourceComputeTargetTcpProxyRead(d *schema.ResourceData, meta interface{}) func resourceComputeTargetTcpProxyUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project d.Partial(true) @@ -235,7 +256,13 @@ func resourceComputeTargetTcpProxyUpdate(d *schema.ResourceData, meta interface{ if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutUpdate)) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating TargetTcpProxy %q: %s", d.Id(), err) } else { @@ -265,7 +292,13 @@ func resourceComputeTargetTcpProxyUpdate(d *schema.ResourceData, meta interface{ if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutUpdate)) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating TargetTcpProxy %q: %s", d.Id(), err) } else { @@ -290,10 +323,13 @@ func resourceComputeTargetTcpProxyUpdate(d *schema.ResourceData, meta interface{ func resourceComputeTargetTcpProxyDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project url, err := replaceVars(d, config, "{{ComputeBasePath}}projects/{{project}}/global/targetTcpProxies/{{name}}") if err != nil { @@ -303,7 +339,12 @@ func resourceComputeTargetTcpProxyDelete(d *schema.ResourceData, meta interface{ var obj map[string]interface{} log.Printf("[DEBUG] Deleting TargetTcpProxy %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "DELETE", billingProject, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "TargetTcpProxy") } diff --git a/google/resource_compute_url_map.go b/google/resource_compute_url_map.go index 835bb9d3021..0117ade14b2 100644 --- a/google/resource_compute_url_map.go +++ b/google/resource_compute_url_map.go @@ -2825,11 +2825,20 @@ func resourceComputeUrlMapCreate(d *schema.ResourceData, meta interface{}) error } log.Printf("[DEBUG] Creating new UrlMap: %#v", obj) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating UrlMap: %s", err) } @@ -2864,11 +2873,20 @@ func resourceComputeUrlMapRead(d *schema.ResourceData, meta interface{}) error { return err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequest(config, "GET", project, url, nil) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("ComputeUrlMap %q", d.Id())) } @@ -2923,10 +2941,13 @@ func resourceComputeUrlMapRead(d *schema.ResourceData, meta interface{}) error { func resourceComputeUrlMapUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project obj := make(map[string]interface{}) defaultServiceProp, err := expandComputeUrlMapDefaultService(d.Get("default_service"), d, config) @@ -2996,7 +3017,13 @@ func resourceComputeUrlMapUpdate(d *schema.ResourceData, meta interface{}) error } log.Printf("[DEBUG] Updating UrlMap %q: %#v", d.Id(), obj) - res, err := sendRequestWithTimeout(config, "PUT", project, url, obj, d.Timeout(schema.TimeoutUpdate)) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "PUT", billingProject, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating UrlMap %q: %s", d.Id(), err) @@ -3018,10 +3045,13 @@ func resourceComputeUrlMapUpdate(d *schema.ResourceData, meta interface{}) error func resourceComputeUrlMapDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project url, err := replaceVars(d, config, "{{ComputeBasePath}}projects/{{project}}/global/urlMaps/{{name}}") if err != nil { @@ -3031,7 +3061,12 @@ func resourceComputeUrlMapDelete(d *schema.ResourceData, meta interface{}) error var obj map[string]interface{} log.Printf("[DEBUG] Deleting UrlMap %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "DELETE", billingProject, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "UrlMap") } diff --git a/google/resource_compute_vpn_gateway.go b/google/resource_compute_vpn_gateway.go index 087fb64fc78..82ad006fc2c 100644 --- a/google/resource_compute_vpn_gateway.go +++ b/google/resource_compute_vpn_gateway.go @@ -132,11 +132,20 @@ func resourceComputeVpnGatewayCreate(d *schema.ResourceData, meta interface{}) e } log.Printf("[DEBUG] Creating new VpnGateway: %#v", obj) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating VpnGateway: %s", err) } @@ -171,11 +180,20 @@ func resourceComputeVpnGatewayRead(d *schema.ResourceData, meta interface{}) err return err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequest(config, "GET", project, url, nil) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("ComputeVpnGateway %q", d.Id())) } @@ -212,10 +230,13 @@ func resourceComputeVpnGatewayRead(d *schema.ResourceData, meta interface{}) err func resourceComputeVpnGatewayDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project url, err := replaceVars(d, config, "{{ComputeBasePath}}projects/{{project}}/regions/{{region}}/targetVpnGateways/{{name}}") if err != nil { @@ -225,7 +246,12 @@ func resourceComputeVpnGatewayDelete(d *schema.ResourceData, meta interface{}) e var obj map[string]interface{} log.Printf("[DEBUG] Deleting VpnGateway %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "DELETE", billingProject, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "VpnGateway") } diff --git a/google/resource_compute_vpn_tunnel.go b/google/resource_compute_vpn_tunnel.go index f3eaa15ac6f..1767380fff1 100644 --- a/google/resource_compute_vpn_tunnel.go +++ b/google/resource_compute_vpn_tunnel.go @@ -348,11 +348,20 @@ func resourceComputeVpnTunnelCreate(d *schema.ResourceData, meta interface{}) er } log.Printf("[DEBUG] Creating new VpnTunnel: %#v", obj) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating VpnTunnel: %s", err) } @@ -387,11 +396,20 @@ func resourceComputeVpnTunnelRead(d *schema.ResourceData, meta interface{}) erro return err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequest(config, "GET", project, url, nil) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("ComputeVpnTunnel %q", d.Id())) } @@ -449,10 +467,13 @@ func resourceComputeVpnTunnelRead(d *schema.ResourceData, meta interface{}) erro func resourceComputeVpnTunnelDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project url, err := replaceVars(d, config, "{{ComputeBasePath}}projects/{{project}}/regions/{{region}}/vpnTunnels/{{name}}") if err != nil { @@ -462,7 +483,12 @@ func resourceComputeVpnTunnelDelete(d *schema.ResourceData, meta interface{}) er var obj map[string]interface{} log.Printf("[DEBUG] Deleting VpnTunnel %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "DELETE", billingProject, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "VpnTunnel") } diff --git a/google/resource_container_analysis_note.go b/google/resource_container_analysis_note.go index b5041ec94de..0ad0a2bf485 100644 --- a/google/resource_container_analysis_note.go +++ b/google/resource_container_analysis_note.go @@ -227,11 +227,20 @@ func resourceContainerAnalysisNoteCreate(d *schema.ResourceData, meta interface{ } log.Printf("[DEBUG] Creating new Note: %#v", obj) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating Note: %s", err) } @@ -256,11 +265,20 @@ func resourceContainerAnalysisNoteRead(d *schema.ResourceData, meta interface{}) return err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequest(config, "GET", project, url, nil) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("ContainerAnalysisNote %q", d.Id())) } @@ -318,10 +336,13 @@ func resourceContainerAnalysisNoteRead(d *schema.ResourceData, meta interface{}) func resourceContainerAnalysisNoteUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project obj := make(map[string]interface{}) shortDescriptionProp, err := expandContainerAnalysisNoteShortDescription(d.Get("short_description"), d, config) @@ -410,7 +431,13 @@ func resourceContainerAnalysisNoteUpdate(d *schema.ResourceData, meta interface{ if err != nil { return err } - res, err := sendRequestWithTimeout(config, "PATCH", project, url, obj, d.Timeout(schema.TimeoutUpdate)) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "PATCH", billingProject, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating Note %q: %s", d.Id(), err) @@ -424,10 +451,13 @@ func resourceContainerAnalysisNoteUpdate(d *schema.ResourceData, meta interface{ func resourceContainerAnalysisNoteDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project lockName, err := replaceVars(d, config, "projects/{{project}}/notes/{{name}}") if err != nil { @@ -444,7 +474,12 @@ func resourceContainerAnalysisNoteDelete(d *schema.ResourceData, meta interface{ var obj map[string]interface{} log.Printf("[DEBUG] Deleting Note %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "DELETE", billingProject, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "Note") } diff --git a/google/resource_container_analysis_occurrence.go b/google/resource_container_analysis_occurrence.go index 0e42f00c4d1..f08bb0f04d2 100644 --- a/google/resource_container_analysis_occurrence.go +++ b/google/resource_container_analysis_occurrence.go @@ -209,11 +209,20 @@ func resourceContainerAnalysisOccurrenceCreate(d *schema.ResourceData, meta inte } log.Printf("[DEBUG] Creating new Occurrence: %#v", obj) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating Occurrence: %s", err) } @@ -241,11 +250,20 @@ func resourceContainerAnalysisOccurrenceRead(d *schema.ResourceData, meta interf return err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequest(config, "GET", project, url, nil) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("ContainerAnalysisOccurrence %q", d.Id())) } @@ -297,10 +315,13 @@ func resourceContainerAnalysisOccurrenceRead(d *schema.ResourceData, meta interf func resourceContainerAnalysisOccurrenceUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project obj := make(map[string]interface{}) remediationProp, err := expandContainerAnalysisOccurrenceRemediation(d.Get("remediation"), d, config) @@ -349,7 +370,13 @@ func resourceContainerAnalysisOccurrenceUpdate(d *schema.ResourceData, meta inte if err != nil { return err } - res, err := sendRequestWithTimeout(config, "PATCH", project, url, obj, d.Timeout(schema.TimeoutUpdate)) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "PATCH", billingProject, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating Occurrence %q: %s", d.Id(), err) @@ -363,10 +390,13 @@ func resourceContainerAnalysisOccurrenceUpdate(d *schema.ResourceData, meta inte func resourceContainerAnalysisOccurrenceDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project lockName, err := replaceVars(d, config, "{{note_name}}") if err != nil { @@ -383,7 +413,12 @@ func resourceContainerAnalysisOccurrenceDelete(d *schema.ResourceData, meta inte var obj map[string]interface{} log.Printf("[DEBUG] Deleting Occurrence %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "DELETE", billingProject, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "Occurrence") } diff --git a/google/resource_data_catalog_entry.go b/google/resource_data_catalog_entry.go index 9adf100fe80..04c80ac8e3a 100644 --- a/google/resource_data_catalog_entry.go +++ b/google/resource_data_catalog_entry.go @@ -318,11 +318,18 @@ func resourceDataCatalogEntryCreate(d *schema.ResourceData, meta interface{}) er } log.Printf("[DEBUG] Creating new Entry: %#v", obj) - var project string + billingProject := "" + if parts := regexp.MustCompile(`projects\/([^\/]+)\/`).FindStringSubmatch(url); parts != nil { - project = parts[1] + billingProject = parts[1] + } + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating Entry: %s", err) } @@ -350,11 +357,18 @@ func resourceDataCatalogEntryRead(d *schema.ResourceData, meta interface{}) erro return err } - var project string + billingProject := "" + if parts := regexp.MustCompile(`projects\/([^\/]+)\/`).FindStringSubmatch(url); parts != nil { - project = parts[1] + billingProject = parts[1] } - res, err := sendRequest(config, "GET", project, url, nil) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("DataCatalogEntry %q", d.Id())) } @@ -402,6 +416,8 @@ func resourceDataCatalogEntryRead(d *schema.ResourceData, meta interface{}) erro func resourceDataCatalogEntryUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + obj := make(map[string]interface{}) linkedResourceProp, err := expandDataCatalogEntryLinkedResource(d.Get("linked_resource"), d, config) if err != nil { @@ -487,11 +503,16 @@ func resourceDataCatalogEntryUpdate(d *schema.ResourceData, meta interface{}) er if err != nil { return err } - var project string if parts := regexp.MustCompile(`projects\/([^\/]+)\/`).FindStringSubmatch(url); parts != nil { - project = parts[1] + billingProject = parts[1] } - res, err := sendRequestWithTimeout(config, "PATCH", project, url, obj, d.Timeout(schema.TimeoutUpdate)) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "PATCH", billingProject, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating Entry %q: %s", d.Id(), err) @@ -505,19 +526,27 @@ func resourceDataCatalogEntryUpdate(d *schema.ResourceData, meta interface{}) er func resourceDataCatalogEntryDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + url, err := replaceVars(d, config, "{{DataCatalogBasePath}}{{name}}") if err != nil { return err } var obj map[string]interface{} - var project string + if parts := regexp.MustCompile(`projects\/([^\/]+)\/`).FindStringSubmatch(url); parts != nil { - project = parts[1] + billingProject = parts[1] } + log.Printf("[DEBUG] Deleting Entry %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "DELETE", billingProject, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "Entry") } diff --git a/google/resource_data_catalog_entry_group.go b/google/resource_data_catalog_entry_group.go index 4bf293e6b7d..8d02660a0ac 100644 --- a/google/resource_data_catalog_entry_group.go +++ b/google/resource_data_catalog_entry_group.go @@ -106,11 +106,20 @@ func resourceDataCatalogEntryGroupCreate(d *schema.ResourceData, meta interface{ } log.Printf("[DEBUG] Creating new EntryGroup: %#v", obj) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating EntryGroup: %s", err) } @@ -138,11 +147,20 @@ func resourceDataCatalogEntryGroupRead(d *schema.ResourceData, meta interface{}) return err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequest(config, "GET", project, url, nil) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("DataCatalogEntryGroup %q", d.Id())) } @@ -175,10 +193,13 @@ func resourceDataCatalogEntryGroupRead(d *schema.ResourceData, meta interface{}) func resourceDataCatalogEntryGroupUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project obj := make(map[string]interface{}) displayNameProp, err := expandDataCatalogEntryGroupDisplayName(d.Get("display_name"), d, config) @@ -215,7 +236,13 @@ func resourceDataCatalogEntryGroupUpdate(d *schema.ResourceData, meta interface{ if err != nil { return err } - res, err := sendRequestWithTimeout(config, "PATCH", project, url, obj, d.Timeout(schema.TimeoutUpdate)) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "PATCH", billingProject, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating EntryGroup %q: %s", d.Id(), err) @@ -229,10 +256,13 @@ func resourceDataCatalogEntryGroupUpdate(d *schema.ResourceData, meta interface{ func resourceDataCatalogEntryGroupDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project url, err := replaceVars(d, config, "{{DataCatalogBasePath}}{{name}}") if err != nil { @@ -242,7 +272,12 @@ func resourceDataCatalogEntryGroupDelete(d *schema.ResourceData, meta interface{ var obj map[string]interface{} log.Printf("[DEBUG] Deleting EntryGroup %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "DELETE", billingProject, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "EntryGroup") } diff --git a/google/resource_data_catalog_tag.go b/google/resource_data_catalog_tag.go index b30f43b2cf1..1d521db5602 100644 --- a/google/resource_data_catalog_tag.go +++ b/google/resource_data_catalog_tag.go @@ -165,7 +165,14 @@ func resourceDataCatalogTagCreate(d *schema.ResourceData, meta interface{}) erro } log.Printf("[DEBUG] Creating new Tag: %#v", obj) - res, err := sendRequestWithTimeout(config, "POST", "", url, obj, d.Timeout(schema.TimeoutCreate)) + billingProject := "" + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating Tag: %s", err) } @@ -193,7 +200,14 @@ func resourceDataCatalogTagRead(d *schema.ResourceData, meta interface{}) error return err } - res, err := sendRequest(config, "GET", "", url, nil) + billingProject := "" + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("DataCatalogTag %q", d.Id())) } @@ -232,6 +246,8 @@ func resourceDataCatalogTagRead(d *schema.ResourceData, meta interface{}) error func resourceDataCatalogTagUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + obj := make(map[string]interface{}) fieldsProp, err := expandNestedDataCatalogTagFields(d.Get("fields"), d, config) if err != nil { @@ -267,7 +283,13 @@ func resourceDataCatalogTagUpdate(d *schema.ResourceData, meta interface{}) erro if err != nil { return err } - res, err := sendRequestWithTimeout(config, "PATCH", "", url, obj, d.Timeout(schema.TimeoutUpdate)) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "PATCH", billingProject, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating Tag %q: %s", d.Id(), err) @@ -281,6 +303,8 @@ func resourceDataCatalogTagUpdate(d *schema.ResourceData, meta interface{}) erro func resourceDataCatalogTagDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + url, err := replaceVars(d, config, "{{DataCatalogBasePath}}{{name}}") if err != nil { return err @@ -289,7 +313,12 @@ func resourceDataCatalogTagDelete(d *schema.ResourceData, meta interface{}) erro var obj map[string]interface{} log.Printf("[DEBUG] Deleting Tag %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", "", url, obj, d.Timeout(schema.TimeoutDelete)) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "DELETE", billingProject, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "Tag") } diff --git a/google/resource_data_catalog_tag_template.go b/google/resource_data_catalog_tag_template.go index de31d1be2b2..206ed4c1d4b 100644 --- a/google/resource_data_catalog_tag_template.go +++ b/google/resource_data_catalog_tag_template.go @@ -195,11 +195,20 @@ func resourceDataCatalogTagTemplateCreate(d *schema.ResourceData, meta interface } log.Printf("[DEBUG] Creating new TagTemplate: %#v", obj) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating TagTemplate: %s", err) } @@ -227,11 +236,20 @@ func resourceDataCatalogTagTemplateRead(d *schema.ResourceData, meta interface{} return err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequest(config, "GET", project, url, nil) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("DataCatalogTagTemplate %q", d.Id())) } @@ -264,10 +282,13 @@ func resourceDataCatalogTagTemplateRead(d *schema.ResourceData, meta interface{} func resourceDataCatalogTagTemplateUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project obj := make(map[string]interface{}) displayNameProp, err := expandDataCatalogTagTemplateDisplayName(d.Get("display_name"), d, config) @@ -294,7 +315,13 @@ func resourceDataCatalogTagTemplateUpdate(d *schema.ResourceData, meta interface if err != nil { return err } - res, err := sendRequestWithTimeout(config, "PATCH", project, url, obj, d.Timeout(schema.TimeoutUpdate)) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "PATCH", billingProject, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating TagTemplate %q: %s", d.Id(), err) @@ -308,10 +335,13 @@ func resourceDataCatalogTagTemplateUpdate(d *schema.ResourceData, meta interface func resourceDataCatalogTagTemplateDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project url, err := replaceVars(d, config, "{{DataCatalogBasePath}}{{name}}?force={{force_delete}}") if err != nil { @@ -321,7 +351,12 @@ func resourceDataCatalogTagTemplateDelete(d *schema.ResourceData, meta interface var obj map[string]interface{} log.Printf("[DEBUG] Deleting TagTemplate %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "DELETE", billingProject, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "TagTemplate") } diff --git a/google/resource_dataproc_autoscaling_policy.go b/google/resource_dataproc_autoscaling_policy.go index b92fe9c0336..2dc911c5ccb 100644 --- a/google/resource_dataproc_autoscaling_policy.go +++ b/google/resource_dataproc_autoscaling_policy.go @@ -275,11 +275,20 @@ func resourceDataprocAutoscalingPolicyCreate(d *schema.ResourceData, meta interf } log.Printf("[DEBUG] Creating new AutoscalingPolicy: %#v", obj) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating AutoscalingPolicy: %s", err) } @@ -307,11 +316,20 @@ func resourceDataprocAutoscalingPolicyRead(d *schema.ResourceData, meta interfac return err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequest(config, "GET", project, url, nil) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("DataprocAutoscalingPolicy %q", d.Id())) } @@ -342,10 +360,13 @@ func resourceDataprocAutoscalingPolicyRead(d *schema.ResourceData, meta interfac func resourceDataprocAutoscalingPolicyUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project obj := make(map[string]interface{}) idProp, err := expandDataprocAutoscalingPolicyPolicyId(d.Get("policy_id"), d, config) @@ -379,7 +400,13 @@ func resourceDataprocAutoscalingPolicyUpdate(d *schema.ResourceData, meta interf } log.Printf("[DEBUG] Updating AutoscalingPolicy %q: %#v", d.Id(), obj) - res, err := sendRequestWithTimeout(config, "PUT", project, url, obj, d.Timeout(schema.TimeoutUpdate)) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "PUT", billingProject, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating AutoscalingPolicy %q: %s", d.Id(), err) @@ -393,10 +420,13 @@ func resourceDataprocAutoscalingPolicyUpdate(d *schema.ResourceData, meta interf func resourceDataprocAutoscalingPolicyDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project url, err := replaceVars(d, config, "{{DataprocBasePath}}projects/{{project}}/locations/{{location}}/autoscalingPolicies/{{policy_id}}") if err != nil { @@ -406,7 +436,12 @@ func resourceDataprocAutoscalingPolicyDelete(d *schema.ResourceData, meta interf var obj map[string]interface{} log.Printf("[DEBUG] Deleting AutoscalingPolicy %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "DELETE", billingProject, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "AutoscalingPolicy") } diff --git a/google/resource_datastore_index.go b/google/resource_datastore_index.go index b4e7d0abc49..acd484322e6 100644 --- a/google/resource_datastore_index.go +++ b/google/resource_datastore_index.go @@ -122,11 +122,20 @@ func resourceDatastoreIndexCreate(d *schema.ResourceData, meta interface{}) erro } log.Printf("[DEBUG] Creating new Index: %#v", obj) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate), datastoreIndex409Contention) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate), datastoreIndex409Contention) if err != nil { return fmt.Errorf("Error creating Index: %s", err) } @@ -174,11 +183,20 @@ func resourceDatastoreIndexRead(d *schema.ResourceData, meta interface{}) error return err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequest(config, "GET", project, url, nil, datastoreIndex409Contention) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil, datastoreIndex409Contention) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("DatastoreIndex %q", d.Id())) } @@ -206,10 +224,13 @@ func resourceDatastoreIndexRead(d *schema.ResourceData, meta interface{}) error func resourceDatastoreIndexDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project url, err := replaceVars(d, config, "{{DatastoreBasePath}}projects/{{project}}/indexes/{{index_id}}") if err != nil { @@ -219,7 +240,12 @@ func resourceDatastoreIndexDelete(d *schema.ResourceData, meta interface{}) erro var obj map[string]interface{} log.Printf("[DEBUG] Deleting Index %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete), datastoreIndex409Contention) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "DELETE", billingProject, url, obj, d.Timeout(schema.TimeoutDelete), datastoreIndex409Contention) if err != nil { return handleNotFoundError(err, d, "Index") } diff --git a/google/resource_deployment_manager_deployment.go b/google/resource_deployment_manager_deployment.go index 7210570dbae..45545c75d40 100644 --- a/google/resource_deployment_manager_deployment.go +++ b/google/resource_deployment_manager_deployment.go @@ -245,11 +245,20 @@ func resourceDeploymentManagerDeploymentCreate(d *schema.ResourceData, meta inte } log.Printf("[DEBUG] Creating new Deployment: %#v", obj) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating Deployment: %s", err) } @@ -285,11 +294,20 @@ func resourceDeploymentManagerDeploymentRead(d *schema.ResourceData, meta interf return err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequest(config, "GET", project, url, nil) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("DeploymentManagerDeployment %q", d.Id())) } @@ -323,10 +341,13 @@ func resourceDeploymentManagerDeploymentRead(d *schema.ResourceData, meta interf func resourceDeploymentManagerDeploymentUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project d.Partial(true) @@ -337,7 +358,13 @@ func resourceDeploymentManagerDeploymentUpdate(d *schema.ResourceData, meta inte if err != nil { return err } - getRes, err := sendRequest(config, "GET", project, getUrl, nil) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + getRes, err := sendRequest(config, "GET", billingProject, getUrl, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("DeploymentManagerDeployment %q", d.Id())) } @@ -348,7 +375,13 @@ func resourceDeploymentManagerDeploymentUpdate(d *schema.ResourceData, meta inte if err != nil { return err } - res, err := sendRequestWithTimeout(config, "PATCH", project, url, obj, d.Timeout(schema.TimeoutUpdate)) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "PATCH", billingProject, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating Deployment %q: %s", d.Id(), err) } else { @@ -371,7 +404,13 @@ func resourceDeploymentManagerDeploymentUpdate(d *schema.ResourceData, meta inte if err != nil { return err } - getRes, err := sendRequest(config, "GET", project, getUrl, nil) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + getRes, err := sendRequest(config, "GET", billingProject, getUrl, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("DeploymentManagerDeployment %q", d.Id())) } @@ -401,7 +440,13 @@ func resourceDeploymentManagerDeploymentUpdate(d *schema.ResourceData, meta inte if err != nil { return err } - res, err := sendRequestWithTimeout(config, "PATCH", project, url, obj, d.Timeout(schema.TimeoutUpdate)) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "PATCH", billingProject, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating Deployment %q: %s", d.Id(), err) } else { @@ -428,10 +473,13 @@ func resourceDeploymentManagerDeploymentUpdate(d *schema.ResourceData, meta inte func resourceDeploymentManagerDeploymentDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project url, err := replaceVars(d, config, "{{DeploymentManagerBasePath}}projects/{{project}}/global/deployments/{{name}}?deletePolicy={{delete_policy}}") if err != nil { @@ -441,7 +489,12 @@ func resourceDeploymentManagerDeploymentDelete(d *schema.ResourceData, meta inte var obj map[string]interface{} log.Printf("[DEBUG] Deleting Deployment %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "DELETE", billingProject, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "Deployment") } diff --git a/google/resource_dialogflow_agent.go b/google/resource_dialogflow_agent.go index 9ca6deb6015..5eb63806573 100644 --- a/google/resource_dialogflow_agent.go +++ b/google/resource_dialogflow_agent.go @@ -222,11 +222,20 @@ func resourceDialogflowAgentCreate(d *schema.ResourceData, meta interface{}) err } log.Printf("[DEBUG] Creating new Agent: %#v", obj) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating Agent: %s", err) } @@ -251,11 +260,20 @@ func resourceDialogflowAgentRead(d *schema.ResourceData, meta interface{}) error return err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequest(config, "GET", project, url, nil) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("DialogflowAgent %q", d.Id())) } @@ -301,10 +319,13 @@ func resourceDialogflowAgentRead(d *schema.ResourceData, meta interface{}) error func resourceDialogflowAgentUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project obj := make(map[string]interface{}) displayNameProp, err := expandDialogflowAgentDisplayName(d.Get("display_name"), d, config) @@ -380,7 +401,13 @@ func resourceDialogflowAgentUpdate(d *schema.ResourceData, meta interface{}) err } log.Printf("[DEBUG] Updating Agent %q: %#v", d.Id(), obj) - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutUpdate)) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating Agent %q: %s", d.Id(), err) @@ -394,10 +421,13 @@ func resourceDialogflowAgentUpdate(d *schema.ResourceData, meta interface{}) err func resourceDialogflowAgentDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project url, err := replaceVars(d, config, "{{DialogflowBasePath}}projects/{{project}}/agent") if err != nil { @@ -407,7 +437,12 @@ func resourceDialogflowAgentDelete(d *schema.ResourceData, meta interface{}) err var obj map[string]interface{} log.Printf("[DEBUG] Deleting Agent %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "DELETE", billingProject, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "Agent") } diff --git a/google/resource_dialogflow_entity_type.go b/google/resource_dialogflow_entity_type.go index f78e825118a..4de1e52552e 100644 --- a/google/resource_dialogflow_entity_type.go +++ b/google/resource_dialogflow_entity_type.go @@ -144,11 +144,20 @@ func resourceDialogflowEntityTypeCreate(d *schema.ResourceData, meta interface{} } log.Printf("[DEBUG] Creating new EntityType: %#v", obj) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating EntityType: %s", err) } @@ -192,11 +201,20 @@ func resourceDialogflowEntityTypeRead(d *schema.ResourceData, meta interface{}) return err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequest(config, "GET", project, url, nil) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("DialogflowEntityType %q", d.Id())) } @@ -227,10 +245,13 @@ func resourceDialogflowEntityTypeRead(d *schema.ResourceData, meta interface{}) func resourceDialogflowEntityTypeUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project obj := make(map[string]interface{}) displayNameProp, err := expandDialogflowEntityTypeDisplayName(d.Get("display_name"), d, config) @@ -264,7 +285,13 @@ func resourceDialogflowEntityTypeUpdate(d *schema.ResourceData, meta interface{} } log.Printf("[DEBUG] Updating EntityType %q: %#v", d.Id(), obj) - res, err := sendRequestWithTimeout(config, "PATCH", project, url, obj, d.Timeout(schema.TimeoutUpdate)) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "PATCH", billingProject, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating EntityType %q: %s", d.Id(), err) @@ -278,10 +305,13 @@ func resourceDialogflowEntityTypeUpdate(d *schema.ResourceData, meta interface{} func resourceDialogflowEntityTypeDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project url, err := replaceVars(d, config, "{{DialogflowBasePath}}{{name}}") if err != nil { @@ -291,7 +321,12 @@ func resourceDialogflowEntityTypeDelete(d *schema.ResourceData, meta interface{} var obj map[string]interface{} log.Printf("[DEBUG] Deleting EntityType %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "DELETE", billingProject, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "EntityType") } diff --git a/google/resource_dialogflow_intent.go b/google/resource_dialogflow_intent.go index c6f168f2405..b9a7ae04082 100644 --- a/google/resource_dialogflow_intent.go +++ b/google/resource_dialogflow_intent.go @@ -254,11 +254,20 @@ func resourceDialogflowIntentCreate(d *schema.ResourceData, meta interface{}) er } log.Printf("[DEBUG] Creating new Intent: %#v", obj) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating Intent: %s", err) } @@ -302,11 +311,20 @@ func resourceDialogflowIntentRead(d *schema.ResourceData, meta interface{}) erro return err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequest(config, "GET", project, url, nil) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("DialogflowIntent %q", d.Id())) } @@ -364,10 +382,13 @@ func resourceDialogflowIntentRead(d *schema.ResourceData, meta interface{}) erro func resourceDialogflowIntentUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project obj := make(map[string]interface{}) displayNameProp, err := expandDialogflowIntentDisplayName(d.Get("display_name"), d, config) @@ -437,7 +458,13 @@ func resourceDialogflowIntentUpdate(d *schema.ResourceData, meta interface{}) er } log.Printf("[DEBUG] Updating Intent %q: %#v", d.Id(), obj) - res, err := sendRequestWithTimeout(config, "PATCH", project, url, obj, d.Timeout(schema.TimeoutUpdate)) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "PATCH", billingProject, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating Intent %q: %s", d.Id(), err) @@ -451,10 +478,13 @@ func resourceDialogflowIntentUpdate(d *schema.ResourceData, meta interface{}) er func resourceDialogflowIntentDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project url, err := replaceVars(d, config, "{{DialogflowBasePath}}{{name}}") if err != nil { @@ -464,7 +494,12 @@ func resourceDialogflowIntentDelete(d *schema.ResourceData, meta interface{}) er var obj map[string]interface{} log.Printf("[DEBUG] Deleting Intent %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "DELETE", billingProject, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "Intent") } diff --git a/google/resource_dns_managed_zone.go b/google/resource_dns_managed_zone.go index c7dc2b2fe78..895cf060e38 100644 --- a/google/resource_dns_managed_zone.go +++ b/google/resource_dns_managed_zone.go @@ -366,11 +366,20 @@ func resourceDNSManagedZoneCreate(d *schema.ResourceData, meta interface{}) erro } log.Printf("[DEBUG] Creating new ManagedZone: %#v", obj) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating ManagedZone: %s", err) } @@ -395,11 +404,20 @@ func resourceDNSManagedZoneRead(d *schema.ResourceData, meta interface{}) error return err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequest(config, "GET", project, url, nil) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("DNSManagedZone %q", d.Id())) } @@ -445,10 +463,13 @@ func resourceDNSManagedZoneRead(d *schema.ResourceData, meta interface{}) error func resourceDNSManagedZoneUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project obj := make(map[string]interface{}) descriptionProp, err := expandDNSManagedZoneDescription(d.Get("description"), d, config) @@ -494,7 +515,13 @@ func resourceDNSManagedZoneUpdate(d *schema.ResourceData, meta interface{}) erro } log.Printf("[DEBUG] Updating ManagedZone %q: %#v", d.Id(), obj) - res, err := sendRequestWithTimeout(config, "PATCH", project, url, obj, d.Timeout(schema.TimeoutUpdate)) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "PATCH", billingProject, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating ManagedZone %q: %s", d.Id(), err) @@ -508,10 +535,13 @@ func resourceDNSManagedZoneUpdate(d *schema.ResourceData, meta interface{}) erro func resourceDNSManagedZoneDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project url, err := replaceVars(d, config, "{{DNSBasePath}}projects/{{project}}/managedZones/{{name}}") if err != nil { @@ -521,7 +551,12 @@ func resourceDNSManagedZoneDelete(d *schema.ResourceData, meta interface{}) erro var obj map[string]interface{} log.Printf("[DEBUG] Deleting ManagedZone %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "DELETE", billingProject, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "ManagedZone") } diff --git a/google/resource_dns_policy.go b/google/resource_dns_policy.go index 6baa3b985bc..2e5eeb4ee44 100644 --- a/google/resource_dns_policy.go +++ b/google/resource_dns_policy.go @@ -198,11 +198,20 @@ func resourceDNSPolicyCreate(d *schema.ResourceData, meta interface{}) error { } log.Printf("[DEBUG] Creating new Policy: %#v", obj) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating Policy: %s", err) } @@ -227,11 +236,20 @@ func resourceDNSPolicyRead(d *schema.ResourceData, meta interface{}) error { return err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequest(config, "GET", project, url, nil) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("DNSPolicy %q", d.Id())) } @@ -265,10 +283,13 @@ func resourceDNSPolicyRead(d *schema.ResourceData, meta interface{}) error { func resourceDNSPolicyUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project d.Partial(true) @@ -310,7 +331,13 @@ func resourceDNSPolicyUpdate(d *schema.ResourceData, meta interface{}) error { if err != nil { return err } - res, err := sendRequestWithTimeout(config, "PATCH", project, url, obj, d.Timeout(schema.TimeoutUpdate)) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "PATCH", billingProject, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating Policy %q: %s", d.Id(), err) } else { @@ -332,10 +359,13 @@ func resourceDNSPolicyUpdate(d *schema.ResourceData, meta interface{}) error { func resourceDNSPolicyDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project url, err := replaceVars(d, config, "{{DNSBasePath}}projects/{{project}}/policies/{{name}}") if err != nil { @@ -360,7 +390,12 @@ func resourceDNSPolicyDelete(d *schema.ResourceData, meta interface{}) error { } log.Printf("[DEBUG] Deleting Policy %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "DELETE", billingProject, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "Policy") } diff --git a/google/resource_filestore_instance.go b/google/resource_filestore_instance.go index c26838fc02a..0d658e2f0b0 100644 --- a/google/resource_filestore_instance.go +++ b/google/resource_filestore_instance.go @@ -203,11 +203,20 @@ func resourceFilestoreInstanceCreate(d *schema.ResourceData, meta interface{}) e } log.Printf("[DEBUG] Creating new Instance: %#v", obj) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating Instance: %s", err) } @@ -251,11 +260,20 @@ func resourceFilestoreInstanceRead(d *schema.ResourceData, meta interface{}) err return err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequest(config, "GET", project, url, nil) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("FilestoreInstance %q", d.Id())) } @@ -292,10 +310,13 @@ func resourceFilestoreInstanceRead(d *schema.ResourceData, meta interface{}) err func resourceFilestoreInstanceUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project obj := make(map[string]interface{}) descriptionProp, err := expandFilestoreInstanceDescription(d.Get("description"), d, config) @@ -342,7 +363,13 @@ func resourceFilestoreInstanceUpdate(d *schema.ResourceData, meta interface{}) e if err != nil { return err } - res, err := sendRequestWithTimeout(config, "PATCH", project, url, obj, d.Timeout(schema.TimeoutUpdate)) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "PATCH", billingProject, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating Instance %q: %s", d.Id(), err) @@ -364,10 +391,13 @@ func resourceFilestoreInstanceUpdate(d *schema.ResourceData, meta interface{}) e func resourceFilestoreInstanceDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project url, err := replaceVars(d, config, "{{FilestoreBasePath}}projects/{{project}}/locations/{{zone}}/instances/{{name}}") if err != nil { @@ -377,7 +407,12 @@ func resourceFilestoreInstanceDelete(d *schema.ResourceData, meta interface{}) e var obj map[string]interface{} log.Printf("[DEBUG] Deleting Instance %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "DELETE", billingProject, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "Instance") } diff --git a/google/resource_firestore_index.go b/google/resource_firestore_index.go index 5e873e652e4..a9e9df6f646 100644 --- a/google/resource_firestore_index.go +++ b/google/resource_firestore_index.go @@ -156,11 +156,20 @@ func resourceFirestoreIndexCreate(d *schema.ResourceData, meta interface{}) erro } log.Printf("[DEBUG] Creating new Index: %#v", obj) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating Index: %s", err) } @@ -216,11 +225,20 @@ func resourceFirestoreIndexRead(d *schema.ResourceData, meta interface{}) error return err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequest(config, "GET", project, url, nil) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("FirestoreIndex %q", d.Id())) } @@ -245,10 +263,13 @@ func resourceFirestoreIndexRead(d *schema.ResourceData, meta interface{}) error func resourceFirestoreIndexDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project url, err := replaceVars(d, config, "{{FirestoreBasePath}}{{name}}") if err != nil { @@ -258,7 +279,12 @@ func resourceFirestoreIndexDelete(d *schema.ResourceData, meta interface{}) erro var obj map[string]interface{} log.Printf("[DEBUG] Deleting Index %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "DELETE", billingProject, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "Index") } diff --git a/google/resource_game_services_game_server_cluster.go b/google/resource_game_services_game_server_cluster.go index e69f19085a5..85f22bedfa1 100644 --- a/google/resource_game_services_game_server_cluster.go +++ b/google/resource_game_services_game_server_cluster.go @@ -176,11 +176,20 @@ func resourceGameServicesGameServerClusterCreate(d *schema.ResourceData, meta in } log.Printf("[DEBUG] Creating new GameServerCluster: %#v", obj) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating GameServerCluster: %s", err) } @@ -228,11 +237,20 @@ func resourceGameServicesGameServerClusterRead(d *schema.ResourceData, meta inte return err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequest(config, "GET", project, url, nil) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("GameServicesGameServerCluster %q", d.Id())) } @@ -260,10 +278,13 @@ func resourceGameServicesGameServerClusterRead(d *schema.ResourceData, meta inte func resourceGameServicesGameServerClusterUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project obj := make(map[string]interface{}) labelsProp, err := expandGameServicesGameServerClusterLabels(d.Get("labels"), d, config) @@ -300,7 +321,13 @@ func resourceGameServicesGameServerClusterUpdate(d *schema.ResourceData, meta in if err != nil { return err } - res, err := sendRequestWithTimeout(config, "PATCH", project, url, obj, d.Timeout(schema.TimeoutUpdate)) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "PATCH", billingProject, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating GameServerCluster %q: %s", d.Id(), err) @@ -322,10 +349,13 @@ func resourceGameServicesGameServerClusterUpdate(d *schema.ResourceData, meta in func resourceGameServicesGameServerClusterDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project url, err := replaceVars(d, config, "{{GameServicesBasePath}}projects/{{project}}/locations/{{location}}/realms/{{realm_id}}/gameServerClusters/{{cluster_id}}") if err != nil { @@ -335,7 +365,12 @@ func resourceGameServicesGameServerClusterDelete(d *schema.ResourceData, meta in var obj map[string]interface{} log.Printf("[DEBUG] Deleting GameServerCluster %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "DELETE", billingProject, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "GameServerCluster") } diff --git a/google/resource_game_services_game_server_config.go b/google/resource_game_services_game_server_config.go index b5c3893af23..7c8002a794c 100644 --- a/google/resource_game_services_game_server_config.go +++ b/google/resource_game_services_game_server_config.go @@ -243,11 +243,20 @@ func resourceGameServicesGameServerConfigCreate(d *schema.ResourceData, meta int } log.Printf("[DEBUG] Creating new GameServerConfig: %#v", obj) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating GameServerConfig: %s", err) } @@ -295,11 +304,20 @@ func resourceGameServicesGameServerConfigRead(d *schema.ResourceData, meta inter return err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequest(config, "GET", project, url, nil) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("GameServicesGameServerConfig %q", d.Id())) } @@ -330,10 +348,13 @@ func resourceGameServicesGameServerConfigRead(d *schema.ResourceData, meta inter func resourceGameServicesGameServerConfigDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project url, err := replaceVars(d, config, "{{GameServicesBasePath}}projects/{{project}}/locations/{{location}}/gameServerDeployments/{{deployment_id}}/configs/{{config_id}}") if err != nil { @@ -343,7 +364,12 @@ func resourceGameServicesGameServerConfigDelete(d *schema.ResourceData, meta int var obj map[string]interface{} log.Printf("[DEBUG] Deleting GameServerConfig %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "DELETE", billingProject, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "GameServerConfig") } diff --git a/google/resource_game_services_game_server_deployment.go b/google/resource_game_services_game_server_deployment.go index 8b42cef9a0f..bf44e6aebad 100644 --- a/google/resource_game_services_game_server_deployment.go +++ b/google/resource_game_services_game_server_deployment.go @@ -109,11 +109,20 @@ func resourceGameServicesGameServerDeploymentCreate(d *schema.ResourceData, meta } log.Printf("[DEBUG] Creating new GameServerDeployment: %#v", obj) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating GameServerDeployment: %s", err) } @@ -161,11 +170,20 @@ func resourceGameServicesGameServerDeploymentRead(d *schema.ResourceData, meta i return err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequest(config, "GET", project, url, nil) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("GameServicesGameServerDeployment %q", d.Id())) } @@ -190,10 +208,13 @@ func resourceGameServicesGameServerDeploymentRead(d *schema.ResourceData, meta i func resourceGameServicesGameServerDeploymentUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project obj := make(map[string]interface{}) descriptionProp, err := expandGameServicesGameServerDeploymentDescription(d.Get("description"), d, config) @@ -230,7 +251,13 @@ func resourceGameServicesGameServerDeploymentUpdate(d *schema.ResourceData, meta if err != nil { return err } - res, err := sendRequestWithTimeout(config, "PATCH", project, url, obj, d.Timeout(schema.TimeoutUpdate)) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "PATCH", billingProject, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating GameServerDeployment %q: %s", d.Id(), err) @@ -252,10 +279,13 @@ func resourceGameServicesGameServerDeploymentUpdate(d *schema.ResourceData, meta func resourceGameServicesGameServerDeploymentDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project url, err := replaceVars(d, config, "{{GameServicesBasePath}}projects/{{project}}/locations/{{location}}/gameServerDeployments/{{deployment_id}}") if err != nil { @@ -265,7 +295,12 @@ func resourceGameServicesGameServerDeploymentDelete(d *schema.ResourceData, meta var obj map[string]interface{} log.Printf("[DEBUG] Deleting GameServerDeployment %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "DELETE", billingProject, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "GameServerDeployment") } diff --git a/google/resource_game_services_game_server_deployment_rollout.go b/google/resource_game_services_game_server_deployment_rollout.go index 5a6e6dab94c..941ab7b286e 100644 --- a/google/resource_game_services_game_server_deployment_rollout.go +++ b/google/resource_game_services_game_server_deployment_rollout.go @@ -137,11 +137,20 @@ func resourceGameServicesGameServerDeploymentRolloutRead(d *schema.ResourceData, return err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequest(config, "GET", project, url, nil) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("GameServicesGameServerDeploymentRollout %q", d.Id())) } @@ -166,10 +175,13 @@ func resourceGameServicesGameServerDeploymentRolloutRead(d *schema.ResourceData, func resourceGameServicesGameServerDeploymentRolloutUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project obj := make(map[string]interface{}) defaultGameServerConfigProp, err := expandGameServicesGameServerDeploymentRolloutDefaultGameServerConfig(d.Get("default_game_server_config"), d, config) @@ -206,7 +218,13 @@ func resourceGameServicesGameServerDeploymentRolloutUpdate(d *schema.ResourceDat if err != nil { return err } - res, err := sendRequestWithTimeout(config, "PATCH", project, url, obj, d.Timeout(schema.TimeoutUpdate)) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "PATCH", billingProject, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating GameServerDeploymentRollout %q: %s", d.Id(), err) @@ -228,10 +246,13 @@ func resourceGameServicesGameServerDeploymentRolloutUpdate(d *schema.ResourceDat func resourceGameServicesGameServerDeploymentRolloutDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project url, err := replaceVars(d, config, "{{GameServicesBasePath}}projects/{{project}}/locations/global/gameServerDeployments/{{deployment_id}}/rollout?updateMask=defaultGameServerConfig") if err != nil { @@ -241,7 +262,12 @@ func resourceGameServicesGameServerDeploymentRolloutDelete(d *schema.ResourceDat var obj map[string]interface{} log.Printf("[DEBUG] Deleting GameServerDeploymentRollout %q", d.Id()) - res, err := sendRequestWithTimeout(config, "PATCH", project, url, obj, d.Timeout(schema.TimeoutDelete)) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "PATCH", billingProject, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "GameServerDeploymentRollout") } diff --git a/google/resource_game_services_realm.go b/google/resource_game_services_realm.go index 181d4231c51..1260dd1f2b4 100644 --- a/google/resource_game_services_realm.go +++ b/google/resource_game_services_realm.go @@ -123,11 +123,20 @@ func resourceGameServicesRealmCreate(d *schema.ResourceData, meta interface{}) e } log.Printf("[DEBUG] Creating new Realm: %#v", obj) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating Realm: %s", err) } @@ -175,11 +184,20 @@ func resourceGameServicesRealmRead(d *schema.ResourceData, meta interface{}) err return err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequest(config, "GET", project, url, nil) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("GameServicesRealm %q", d.Id())) } @@ -210,10 +228,13 @@ func resourceGameServicesRealmRead(d *schema.ResourceData, meta interface{}) err func resourceGameServicesRealmUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project obj := make(map[string]interface{}) labelsProp, err := expandGameServicesRealmLabels(d.Get("labels"), d, config) @@ -260,7 +281,13 @@ func resourceGameServicesRealmUpdate(d *schema.ResourceData, meta interface{}) e if err != nil { return err } - res, err := sendRequestWithTimeout(config, "PATCH", project, url, obj, d.Timeout(schema.TimeoutUpdate)) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "PATCH", billingProject, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating Realm %q: %s", d.Id(), err) @@ -282,10 +309,13 @@ func resourceGameServicesRealmUpdate(d *schema.ResourceData, meta interface{}) e func resourceGameServicesRealmDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project url, err := replaceVars(d, config, "{{GameServicesBasePath}}projects/{{project}}/locations/{{location}}/realms/{{realm_id}}") if err != nil { @@ -295,7 +325,12 @@ func resourceGameServicesRealmDelete(d *schema.ResourceData, meta interface{}) e var obj map[string]interface{} log.Printf("[DEBUG] Deleting Realm %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "DELETE", billingProject, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "Realm") } diff --git a/google/resource_healthcare_dataset.go b/google/resource_healthcare_dataset.go index f0889f0b7fa..3ac3f62e081 100644 --- a/google/resource_healthcare_dataset.go +++ b/google/resource_healthcare_dataset.go @@ -100,11 +100,20 @@ func resourceHealthcareDatasetCreate(d *schema.ResourceData, meta interface{}) e } log.Printf("[DEBUG] Creating new Dataset: %#v", obj) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating Dataset: %s", err) } @@ -129,11 +138,20 @@ func resourceHealthcareDatasetRead(d *schema.ResourceData, meta interface{}) err return err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequest(config, "GET", project, url, nil) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("HealthcareDataset %q", d.Id())) } @@ -167,10 +185,13 @@ func resourceHealthcareDatasetRead(d *schema.ResourceData, meta interface{}) err func resourceHealthcareDatasetUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project obj := make(map[string]interface{}) timeZoneProp, err := expandHealthcareDatasetTimeZone(d.Get("time_zone"), d, config) @@ -197,7 +218,13 @@ func resourceHealthcareDatasetUpdate(d *schema.ResourceData, meta interface{}) e if err != nil { return err } - res, err := sendRequestWithTimeout(config, "PATCH", project, url, obj, d.Timeout(schema.TimeoutUpdate)) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "PATCH", billingProject, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating Dataset %q: %s", d.Id(), err) @@ -211,10 +238,13 @@ func resourceHealthcareDatasetUpdate(d *schema.ResourceData, meta interface{}) e func resourceHealthcareDatasetDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project url, err := replaceVars(d, config, "{{HealthcareBasePath}}projects/{{project}}/locations/{{location}}/datasets/{{name}}") if err != nil { @@ -224,7 +254,12 @@ func resourceHealthcareDatasetDelete(d *schema.ResourceData, meta interface{}) e var obj map[string]interface{} log.Printf("[DEBUG] Deleting Dataset %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "DELETE", billingProject, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "Dataset") } diff --git a/google/resource_healthcare_dicom_store.go b/google/resource_healthcare_dicom_store.go index e3a63c49cba..697204381b0 100644 --- a/google/resource_healthcare_dicom_store.go +++ b/google/resource_healthcare_dicom_store.go @@ -133,7 +133,14 @@ func resourceHealthcareDicomStoreCreate(d *schema.ResourceData, meta interface{} } log.Printf("[DEBUG] Creating new DicomStore: %#v", obj) - res, err := sendRequestWithTimeout(config, "POST", "", url, obj, d.Timeout(schema.TimeoutCreate)) + billingProject := "" + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating DicomStore: %s", err) } @@ -158,7 +165,14 @@ func resourceHealthcareDicomStoreRead(d *schema.ResourceData, meta interface{}) return err } - res, err := sendRequest(config, "GET", "", url, nil) + billingProject := "" + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("HealthcareDicomStore %q", d.Id())) } @@ -191,6 +205,8 @@ func resourceHealthcareDicomStoreRead(d *schema.ResourceData, meta interface{}) func resourceHealthcareDicomStoreUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + obj := make(map[string]interface{}) labelsProp, err := expandHealthcareDicomStoreLabels(d.Get("labels"), d, config) if err != nil { @@ -226,7 +242,13 @@ func resourceHealthcareDicomStoreUpdate(d *schema.ResourceData, meta interface{} if err != nil { return err } - res, err := sendRequestWithTimeout(config, "PATCH", "", url, obj, d.Timeout(schema.TimeoutUpdate)) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "PATCH", billingProject, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating DicomStore %q: %s", d.Id(), err) @@ -240,6 +262,8 @@ func resourceHealthcareDicomStoreUpdate(d *schema.ResourceData, meta interface{} func resourceHealthcareDicomStoreDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + url, err := replaceVars(d, config, "{{HealthcareBasePath}}{{dataset}}/dicomStores/{{name}}") if err != nil { return err @@ -248,7 +272,12 @@ func resourceHealthcareDicomStoreDelete(d *schema.ResourceData, meta interface{} var obj map[string]interface{} log.Printf("[DEBUG] Deleting DicomStore %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", "", url, obj, d.Timeout(schema.TimeoutDelete)) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "DELETE", billingProject, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "DicomStore") } diff --git a/google/resource_healthcare_fhir_store.go b/google/resource_healthcare_fhir_store.go index 72eef44ce4e..08de0f61af4 100644 --- a/google/resource_healthcare_fhir_store.go +++ b/google/resource_healthcare_fhir_store.go @@ -295,7 +295,14 @@ func resourceHealthcareFhirStoreCreate(d *schema.ResourceData, meta interface{}) } log.Printf("[DEBUG] Creating new FhirStore: %#v", obj) - res, err := sendRequestWithTimeout(config, "POST", "", url, obj, d.Timeout(schema.TimeoutCreate)) + billingProject := "" + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating FhirStore: %s", err) } @@ -320,7 +327,14 @@ func resourceHealthcareFhirStoreRead(d *schema.ResourceData, meta interface{}) e return err } - res, err := sendRequest(config, "GET", "", url, nil) + billingProject := "" + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("HealthcareFhirStore %q", d.Id())) } @@ -371,6 +385,8 @@ func resourceHealthcareFhirStoreRead(d *schema.ResourceData, meta interface{}) e func resourceHealthcareFhirStoreUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + obj := make(map[string]interface{}) enableUpdateCreateProp, err := expandHealthcareFhirStoreEnableUpdateCreate(d.Get("enable_update_create"), d, config) if err != nil { @@ -426,7 +442,13 @@ func resourceHealthcareFhirStoreUpdate(d *schema.ResourceData, meta interface{}) if err != nil { return err } - res, err := sendRequestWithTimeout(config, "PATCH", "", url, obj, d.Timeout(schema.TimeoutUpdate)) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "PATCH", billingProject, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating FhirStore %q: %s", d.Id(), err) @@ -440,6 +462,8 @@ func resourceHealthcareFhirStoreUpdate(d *schema.ResourceData, meta interface{}) func resourceHealthcareFhirStoreDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + url, err := replaceVars(d, config, "{{HealthcareBasePath}}{{dataset}}/fhirStores/{{name}}") if err != nil { return err @@ -448,7 +472,12 @@ func resourceHealthcareFhirStoreDelete(d *schema.ResourceData, meta interface{}) var obj map[string]interface{} log.Printf("[DEBUG] Deleting FhirStore %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", "", url, obj, d.Timeout(schema.TimeoutDelete)) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "DELETE", billingProject, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "FhirStore") } diff --git a/google/resource_healthcare_hl7_v2_store.go b/google/resource_healthcare_hl7_v2_store.go index 5045bdae489..efa9f7dcf68 100644 --- a/google/resource_healthcare_hl7_v2_store.go +++ b/google/resource_healthcare_hl7_v2_store.go @@ -220,7 +220,14 @@ func resourceHealthcareHl7V2StoreCreate(d *schema.ResourceData, meta interface{} } log.Printf("[DEBUG] Creating new Hl7V2Store: %#v", obj) - res, err := sendRequestWithTimeout(config, "POST", "", url, obj, d.Timeout(schema.TimeoutCreate)) + billingProject := "" + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating Hl7V2Store: %s", err) } @@ -245,7 +252,14 @@ func resourceHealthcareHl7V2StoreRead(d *schema.ResourceData, meta interface{}) return err } - res, err := sendRequest(config, "GET", "", url, nil) + billingProject := "" + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("HealthcareHl7V2Store %q", d.Id())) } @@ -284,6 +298,8 @@ func resourceHealthcareHl7V2StoreRead(d *schema.ResourceData, meta interface{}) func resourceHealthcareHl7V2StoreUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + obj := make(map[string]interface{}) parserConfigProp, err := expandHealthcareHl7V2StoreParserConfig(d.Get("parser_config"), d, config) if err != nil { @@ -339,7 +355,13 @@ func resourceHealthcareHl7V2StoreUpdate(d *schema.ResourceData, meta interface{} if err != nil { return err } - res, err := sendRequestWithTimeout(config, "PATCH", "", url, obj, d.Timeout(schema.TimeoutUpdate)) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "PATCH", billingProject, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating Hl7V2Store %q: %s", d.Id(), err) @@ -353,6 +375,8 @@ func resourceHealthcareHl7V2StoreUpdate(d *schema.ResourceData, meta interface{} func resourceHealthcareHl7V2StoreDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + url, err := replaceVars(d, config, "{{HealthcareBasePath}}{{dataset}}/hl7V2Stores/{{name}}") if err != nil { return err @@ -361,7 +385,12 @@ func resourceHealthcareHl7V2StoreDelete(d *schema.ResourceData, meta interface{} var obj map[string]interface{} log.Printf("[DEBUG] Deleting Hl7V2Store %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", "", url, obj, d.Timeout(schema.TimeoutDelete)) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "DELETE", billingProject, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "Hl7V2Store") } diff --git a/google/resource_iap_brand.go b/google/resource_iap_brand.go index b1d960e732a..5fd20a1c51a 100644 --- a/google/resource_iap_brand.go +++ b/google/resource_iap_brand.go @@ -102,11 +102,20 @@ func resourceIapBrandCreate(d *schema.ResourceData, meta interface{}) error { } log.Printf("[DEBUG] Creating new Brand: %#v", obj) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating Brand: %s", err) } @@ -156,11 +165,20 @@ func resourceIapBrandPollRead(d *schema.ResourceData, meta interface{}) PollRead return nil, err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return nil, err } - res, err := sendRequest(config, "GET", project, url, nil) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return res, err } @@ -176,11 +194,20 @@ func resourceIapBrandRead(d *schema.ResourceData, meta interface{}) error { return err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequest(config, "GET", project, url, nil) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("IapBrand %q", d.Id())) } diff --git a/google/resource_iap_client.go b/google/resource_iap_client.go index 2776f2ab26c..16daf39d9b6 100644 --- a/google/resource_iap_client.go +++ b/google/resource_iap_client.go @@ -86,7 +86,14 @@ func resourceIapClientCreate(d *schema.ResourceData, meta interface{}) error { } log.Printf("[DEBUG] Creating new Client: %#v", obj) - res, err := sendRequestWithTimeout(config, "POST", "", url, obj, d.Timeout(schema.TimeoutCreate)) + billingProject := "" + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating Client: %s", err) } @@ -117,7 +124,14 @@ func resourceIapClientRead(d *schema.ResourceData, meta interface{}) error { return err } - res, err := sendRequest(config, "GET", "", url, nil) + billingProject := "" + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("IapClient %q", d.Id())) } @@ -138,6 +152,8 @@ func resourceIapClientRead(d *schema.ResourceData, meta interface{}) error { func resourceIapClientDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + url, err := replaceVars(d, config, "{{IapBasePath}}{{brand}}/identityAwareProxyClients/{{client_id}}") if err != nil { return err @@ -146,7 +162,12 @@ func resourceIapClientDelete(d *schema.ResourceData, meta interface{}) error { var obj map[string]interface{} log.Printf("[DEBUG] Deleting Client %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", "", url, obj, d.Timeout(schema.TimeoutDelete)) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "DELETE", billingProject, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "Client") } diff --git a/google/resource_identity_platform_default_supported_idp_config.go b/google/resource_identity_platform_default_supported_idp_config.go index a9be3a43976..75c2631e185 100644 --- a/google/resource_identity_platform_default_supported_idp_config.go +++ b/google/resource_identity_platform_default_supported_idp_config.go @@ -127,11 +127,20 @@ func resourceIdentityPlatformDefaultSupportedIdpConfigCreate(d *schema.ResourceD } log.Printf("[DEBUG] Creating new DefaultSupportedIdpConfig: %#v", obj) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating DefaultSupportedIdpConfig: %s", err) } @@ -159,11 +168,20 @@ func resourceIdentityPlatformDefaultSupportedIdpConfigRead(d *schema.ResourceDat return err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequest(config, "GET", project, url, nil) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("IdentityPlatformDefaultSupportedIdpConfig %q", d.Id())) } @@ -191,10 +209,13 @@ func resourceIdentityPlatformDefaultSupportedIdpConfigRead(d *schema.ResourceDat func resourceIdentityPlatformDefaultSupportedIdpConfigUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project obj := make(map[string]interface{}) clientIdProp, err := expandIdentityPlatformDefaultSupportedIdpConfigClientId(d.Get("client_id"), d, config) @@ -241,7 +262,13 @@ func resourceIdentityPlatformDefaultSupportedIdpConfigUpdate(d *schema.ResourceD if err != nil { return err } - res, err := sendRequestWithTimeout(config, "PATCH", project, url, obj, d.Timeout(schema.TimeoutUpdate)) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "PATCH", billingProject, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating DefaultSupportedIdpConfig %q: %s", d.Id(), err) @@ -255,10 +282,13 @@ func resourceIdentityPlatformDefaultSupportedIdpConfigUpdate(d *schema.ResourceD func resourceIdentityPlatformDefaultSupportedIdpConfigDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project url, err := replaceVars(d, config, "{{IdentityPlatformBasePath}}projects/{{project}}/defaultSupportedIdpConfigs/{{idp_id}}") if err != nil { @@ -268,7 +298,12 @@ func resourceIdentityPlatformDefaultSupportedIdpConfigDelete(d *schema.ResourceD var obj map[string]interface{} log.Printf("[DEBUG] Deleting DefaultSupportedIdpConfig %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "DELETE", billingProject, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "DefaultSupportedIdpConfig") } diff --git a/google/resource_identity_platform_inbound_saml_config.go b/google/resource_identity_platform_inbound_saml_config.go index 55f09f8872c..1b8f1355318 100644 --- a/google/resource_identity_platform_inbound_saml_config.go +++ b/google/resource_identity_platform_inbound_saml_config.go @@ -185,11 +185,20 @@ func resourceIdentityPlatformInboundSamlConfigCreate(d *schema.ResourceData, met } log.Printf("[DEBUG] Creating new InboundSamlConfig: %#v", obj) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating InboundSamlConfig: %s", err) } @@ -214,11 +223,20 @@ func resourceIdentityPlatformInboundSamlConfigRead(d *schema.ResourceData, meta return err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequest(config, "GET", project, url, nil) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("IdentityPlatformInboundSamlConfig %q", d.Id())) } @@ -249,10 +267,13 @@ func resourceIdentityPlatformInboundSamlConfigRead(d *schema.ResourceData, meta func resourceIdentityPlatformInboundSamlConfigUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project obj := make(map[string]interface{}) displayNameProp, err := expandIdentityPlatformInboundSamlConfigDisplayName(d.Get("display_name"), d, config) @@ -309,7 +330,13 @@ func resourceIdentityPlatformInboundSamlConfigUpdate(d *schema.ResourceData, met if err != nil { return err } - res, err := sendRequestWithTimeout(config, "PATCH", project, url, obj, d.Timeout(schema.TimeoutUpdate)) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "PATCH", billingProject, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating InboundSamlConfig %q: %s", d.Id(), err) @@ -323,10 +350,13 @@ func resourceIdentityPlatformInboundSamlConfigUpdate(d *schema.ResourceData, met func resourceIdentityPlatformInboundSamlConfigDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project url, err := replaceVars(d, config, "{{IdentityPlatformBasePath}}projects/{{project}}/inboundSamlConfigs/{{name}}") if err != nil { @@ -336,7 +366,12 @@ func resourceIdentityPlatformInboundSamlConfigDelete(d *schema.ResourceData, met var obj map[string]interface{} log.Printf("[DEBUG] Deleting InboundSamlConfig %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "DELETE", billingProject, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "InboundSamlConfig") } diff --git a/google/resource_identity_platform_oauth_idp_config.go b/google/resource_identity_platform_oauth_idp_config.go index 875029cf3f0..eb42b6d884a 100644 --- a/google/resource_identity_platform_oauth_idp_config.go +++ b/google/resource_identity_platform_oauth_idp_config.go @@ -130,11 +130,20 @@ func resourceIdentityPlatformOauthIdpConfigCreate(d *schema.ResourceData, meta i } log.Printf("[DEBUG] Creating new OauthIdpConfig: %#v", obj) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating OauthIdpConfig: %s", err) } @@ -159,11 +168,20 @@ func resourceIdentityPlatformOauthIdpConfigRead(d *schema.ResourceData, meta int return err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequest(config, "GET", project, url, nil) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("IdentityPlatformOauthIdpConfig %q", d.Id())) } @@ -197,10 +215,13 @@ func resourceIdentityPlatformOauthIdpConfigRead(d *schema.ResourceData, meta int func resourceIdentityPlatformOauthIdpConfigUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project obj := make(map[string]interface{}) displayNameProp, err := expandIdentityPlatformOauthIdpConfigDisplayName(d.Get("display_name"), d, config) @@ -267,7 +288,13 @@ func resourceIdentityPlatformOauthIdpConfigUpdate(d *schema.ResourceData, meta i if err != nil { return err } - res, err := sendRequestWithTimeout(config, "PATCH", project, url, obj, d.Timeout(schema.TimeoutUpdate)) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "PATCH", billingProject, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating OauthIdpConfig %q: %s", d.Id(), err) @@ -281,10 +308,13 @@ func resourceIdentityPlatformOauthIdpConfigUpdate(d *schema.ResourceData, meta i func resourceIdentityPlatformOauthIdpConfigDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project url, err := replaceVars(d, config, "{{IdentityPlatformBasePath}}projects/{{project}}/oauthIdpConfigs/{{name}}") if err != nil { @@ -294,7 +324,12 @@ func resourceIdentityPlatformOauthIdpConfigDelete(d *schema.ResourceData, meta i var obj map[string]interface{} log.Printf("[DEBUG] Deleting OauthIdpConfig %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "DELETE", billingProject, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "OauthIdpConfig") } diff --git a/google/resource_identity_platform_tenant.go b/google/resource_identity_platform_tenant.go index b9dd7bcc3b7..be349486d20 100644 --- a/google/resource_identity_platform_tenant.go +++ b/google/resource_identity_platform_tenant.go @@ -114,11 +114,20 @@ func resourceIdentityPlatformTenantCreate(d *schema.ResourceData, meta interface } log.Printf("[DEBUG] Creating new Tenant: %#v", obj) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating Tenant: %s", err) } @@ -159,11 +168,20 @@ func resourceIdentityPlatformTenantRead(d *schema.ResourceData, meta interface{} return err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequest(config, "GET", project, url, nil) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("IdentityPlatformTenant %q", d.Id())) } @@ -194,10 +212,13 @@ func resourceIdentityPlatformTenantRead(d *schema.ResourceData, meta interface{} func resourceIdentityPlatformTenantUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project obj := make(map[string]interface{}) displayNameProp, err := expandIdentityPlatformTenantDisplayName(d.Get("display_name"), d, config) @@ -254,7 +275,13 @@ func resourceIdentityPlatformTenantUpdate(d *schema.ResourceData, meta interface if err != nil { return err } - res, err := sendRequestWithTimeout(config, "PATCH", project, url, obj, d.Timeout(schema.TimeoutUpdate)) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "PATCH", billingProject, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating Tenant %q: %s", d.Id(), err) @@ -268,10 +295,13 @@ func resourceIdentityPlatformTenantUpdate(d *schema.ResourceData, meta interface func resourceIdentityPlatformTenantDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project url, err := replaceVars(d, config, "{{IdentityPlatformBasePath}}projects/{{project}}/tenants/{{name}}") if err != nil { @@ -281,7 +311,12 @@ func resourceIdentityPlatformTenantDelete(d *schema.ResourceData, meta interface var obj map[string]interface{} log.Printf("[DEBUG] Deleting Tenant %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "DELETE", billingProject, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "Tenant") } diff --git a/google/resource_identity_platform_tenant_default_supported_idp_config.go b/google/resource_identity_platform_tenant_default_supported_idp_config.go index 500d151adc5..d5822a39a40 100644 --- a/google/resource_identity_platform_tenant_default_supported_idp_config.go +++ b/google/resource_identity_platform_tenant_default_supported_idp_config.go @@ -133,11 +133,20 @@ func resourceIdentityPlatformTenantDefaultSupportedIdpConfigCreate(d *schema.Res } log.Printf("[DEBUG] Creating new TenantDefaultSupportedIdpConfig: %#v", obj) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating TenantDefaultSupportedIdpConfig: %s", err) } @@ -165,11 +174,20 @@ func resourceIdentityPlatformTenantDefaultSupportedIdpConfigRead(d *schema.Resou return err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequest(config, "GET", project, url, nil) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("IdentityPlatformTenantDefaultSupportedIdpConfig %q", d.Id())) } @@ -197,10 +215,13 @@ func resourceIdentityPlatformTenantDefaultSupportedIdpConfigRead(d *schema.Resou func resourceIdentityPlatformTenantDefaultSupportedIdpConfigUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project obj := make(map[string]interface{}) clientIdProp, err := expandIdentityPlatformTenantDefaultSupportedIdpConfigClientId(d.Get("client_id"), d, config) @@ -247,7 +268,13 @@ func resourceIdentityPlatformTenantDefaultSupportedIdpConfigUpdate(d *schema.Res if err != nil { return err } - res, err := sendRequestWithTimeout(config, "PATCH", project, url, obj, d.Timeout(schema.TimeoutUpdate)) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "PATCH", billingProject, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating TenantDefaultSupportedIdpConfig %q: %s", d.Id(), err) @@ -261,10 +288,13 @@ func resourceIdentityPlatformTenantDefaultSupportedIdpConfigUpdate(d *schema.Res func resourceIdentityPlatformTenantDefaultSupportedIdpConfigDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project url, err := replaceVars(d, config, "{{IdentityPlatformBasePath}}projects/{{project}}/tenants/{{tenant}}/defaultSupportedIdpConfigs/{{idp_id}}") if err != nil { @@ -274,7 +304,12 @@ func resourceIdentityPlatformTenantDefaultSupportedIdpConfigDelete(d *schema.Res var obj map[string]interface{} log.Printf("[DEBUG] Deleting TenantDefaultSupportedIdpConfig %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "DELETE", billingProject, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "TenantDefaultSupportedIdpConfig") } diff --git a/google/resource_identity_platform_tenant_inbound_saml_config.go b/google/resource_identity_platform_tenant_inbound_saml_config.go index 0dd3c64388c..89003a12072 100644 --- a/google/resource_identity_platform_tenant_inbound_saml_config.go +++ b/google/resource_identity_platform_tenant_inbound_saml_config.go @@ -191,11 +191,20 @@ func resourceIdentityPlatformTenantInboundSamlConfigCreate(d *schema.ResourceDat } log.Printf("[DEBUG] Creating new TenantInboundSamlConfig: %#v", obj) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating TenantInboundSamlConfig: %s", err) } @@ -220,11 +229,20 @@ func resourceIdentityPlatformTenantInboundSamlConfigRead(d *schema.ResourceData, return err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequest(config, "GET", project, url, nil) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("IdentityPlatformTenantInboundSamlConfig %q", d.Id())) } @@ -255,10 +273,13 @@ func resourceIdentityPlatformTenantInboundSamlConfigRead(d *schema.ResourceData, func resourceIdentityPlatformTenantInboundSamlConfigUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project obj := make(map[string]interface{}) displayNameProp, err := expandIdentityPlatformTenantInboundSamlConfigDisplayName(d.Get("display_name"), d, config) @@ -315,7 +336,13 @@ func resourceIdentityPlatformTenantInboundSamlConfigUpdate(d *schema.ResourceDat if err != nil { return err } - res, err := sendRequestWithTimeout(config, "PATCH", project, url, obj, d.Timeout(schema.TimeoutUpdate)) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "PATCH", billingProject, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating TenantInboundSamlConfig %q: %s", d.Id(), err) @@ -329,10 +356,13 @@ func resourceIdentityPlatformTenantInboundSamlConfigUpdate(d *schema.ResourceDat func resourceIdentityPlatformTenantInboundSamlConfigDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project url, err := replaceVars(d, config, "{{IdentityPlatformBasePath}}projects/{{project}}/tenants/{{tenant}}/inboundSamlConfigs/{{name}}") if err != nil { @@ -342,7 +372,12 @@ func resourceIdentityPlatformTenantInboundSamlConfigDelete(d *schema.ResourceDat var obj map[string]interface{} log.Printf("[DEBUG] Deleting TenantInboundSamlConfig %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "DELETE", billingProject, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "TenantInboundSamlConfig") } diff --git a/google/resource_identity_platform_tenant_oauth_idp_config.go b/google/resource_identity_platform_tenant_oauth_idp_config.go index 4aafd1613c2..c8d4e6e4ca7 100644 --- a/google/resource_identity_platform_tenant_oauth_idp_config.go +++ b/google/resource_identity_platform_tenant_oauth_idp_config.go @@ -136,11 +136,20 @@ func resourceIdentityPlatformTenantOauthIdpConfigCreate(d *schema.ResourceData, } log.Printf("[DEBUG] Creating new TenantOauthIdpConfig: %#v", obj) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating TenantOauthIdpConfig: %s", err) } @@ -165,11 +174,20 @@ func resourceIdentityPlatformTenantOauthIdpConfigRead(d *schema.ResourceData, me return err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequest(config, "GET", project, url, nil) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("IdentityPlatformTenantOauthIdpConfig %q", d.Id())) } @@ -203,10 +221,13 @@ func resourceIdentityPlatformTenantOauthIdpConfigRead(d *schema.ResourceData, me func resourceIdentityPlatformTenantOauthIdpConfigUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project obj := make(map[string]interface{}) displayNameProp, err := expandIdentityPlatformTenantOauthIdpConfigDisplayName(d.Get("display_name"), d, config) @@ -273,7 +294,13 @@ func resourceIdentityPlatformTenantOauthIdpConfigUpdate(d *schema.ResourceData, if err != nil { return err } - res, err := sendRequestWithTimeout(config, "PATCH", project, url, obj, d.Timeout(schema.TimeoutUpdate)) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "PATCH", billingProject, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating TenantOauthIdpConfig %q: %s", d.Id(), err) @@ -287,10 +314,13 @@ func resourceIdentityPlatformTenantOauthIdpConfigUpdate(d *schema.ResourceData, func resourceIdentityPlatformTenantOauthIdpConfigDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project url, err := replaceVars(d, config, "{{IdentityPlatformBasePath}}projects/{{project}}/tenants/{{tenant}}/oauthIdpConfigs/{{name}}") if err != nil { @@ -300,7 +330,12 @@ func resourceIdentityPlatformTenantOauthIdpConfigDelete(d *schema.ResourceData, var obj map[string]interface{} log.Printf("[DEBUG] Deleting TenantOauthIdpConfig %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "DELETE", billingProject, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "TenantOauthIdpConfig") } diff --git a/google/resource_kms_crypto_key.go b/google/resource_kms_crypto_key.go index 840e0147be2..bff5afa900f 100644 --- a/google/resource_kms_crypto_key.go +++ b/google/resource_kms_crypto_key.go @@ -165,11 +165,18 @@ func resourceKMSCryptoKeyCreate(d *schema.ResourceData, meta interface{}) error } log.Printf("[DEBUG] Creating new CryptoKey: %#v", obj) - var project string + billingProject := "" + if parts := regexp.MustCompile(`projects\/([^\/]+)\/`).FindStringSubmatch(url); parts != nil { - project = parts[1] + billingProject = parts[1] + } + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating CryptoKey: %s", err) } @@ -194,11 +201,18 @@ func resourceKMSCryptoKeyRead(d *schema.ResourceData, meta interface{}) error { return err } - var project string + billingProject := "" + if parts := regexp.MustCompile(`projects\/([^\/]+)\/`).FindStringSubmatch(url); parts != nil { - project = parts[1] + billingProject = parts[1] + } + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp } - res, err := sendRequest(config, "GET", project, url, nil) + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("KMSCryptoKey %q", d.Id())) } @@ -234,6 +248,8 @@ func resourceKMSCryptoKeyRead(d *schema.ResourceData, meta interface{}) error { func resourceKMSCryptoKeyUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + obj := make(map[string]interface{}) labelsProp, err := expandKMSCryptoKeyLabels(d.Get("labels"), d, config) if err != nil { @@ -285,11 +301,16 @@ func resourceKMSCryptoKeyUpdate(d *schema.ResourceData, meta interface{}) error if err != nil { return err } - var project string if parts := regexp.MustCompile(`projects\/([^\/]+)\/`).FindStringSubmatch(url); parts != nil { - project = parts[1] + billingProject = parts[1] } - res, err := sendRequestWithTimeout(config, "PATCH", project, url, obj, d.Timeout(schema.TimeoutUpdate)) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "PATCH", billingProject, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating CryptoKey %q: %s", d.Id(), err) diff --git a/google/resource_kms_key_ring.go b/google/resource_kms_key_ring.go index 35ce9478667..77420e3a51c 100644 --- a/google/resource_kms_key_ring.go +++ b/google/resource_kms_key_ring.go @@ -94,11 +94,20 @@ func resourceKMSKeyRingCreate(d *schema.ResourceData, meta interface{}) error { } log.Printf("[DEBUG] Creating new KeyRing: %#v", obj) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating KeyRing: %s", err) } @@ -123,11 +132,20 @@ func resourceKMSKeyRingRead(d *schema.ResourceData, meta interface{}) error { return err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequest(config, "GET", project, url, nil) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("KMSKeyRing %q", d.Id())) } diff --git a/google/resource_kms_key_ring_import_job.go b/google/resource_kms_key_ring_import_job.go index f303b482208..0c64f586e6b 100644 --- a/google/resource_kms_key_ring_import_job.go +++ b/google/resource_kms_key_ring_import_job.go @@ -152,7 +152,14 @@ func resourceKMSKeyRingImportJobCreate(d *schema.ResourceData, meta interface{}) } log.Printf("[DEBUG] Creating new KeyRingImportJob: %#v", obj) - res, err := sendRequestWithTimeout(config, "POST", "", url, obj, d.Timeout(schema.TimeoutCreate)) + billingProject := "" + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating KeyRingImportJob: %s", err) } @@ -180,7 +187,14 @@ func resourceKMSKeyRingImportJobRead(d *schema.ResourceData, meta interface{}) e return err } - res, err := sendRequest(config, "GET", "", url, nil) + billingProject := "" + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("KMSKeyRingImportJob %q", d.Id())) } @@ -213,6 +227,8 @@ func resourceKMSKeyRingImportJobRead(d *schema.ResourceData, meta interface{}) e func resourceKMSKeyRingImportJobDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + url, err := replaceVars(d, config, "{{KMSBasePath}}{{name}}") if err != nil { return err @@ -221,7 +237,12 @@ func resourceKMSKeyRingImportJobDelete(d *schema.ResourceData, meta interface{}) var obj map[string]interface{} log.Printf("[DEBUG] Deleting KeyRingImportJob %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", "", url, obj, d.Timeout(schema.TimeoutDelete)) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "DELETE", billingProject, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "KeyRingImportJob") } diff --git a/google/resource_kms_secret_ciphertext.go b/google/resource_kms_secret_ciphertext.go index 3533dabcb95..5446579844d 100644 --- a/google/resource_kms_secret_ciphertext.go +++ b/google/resource_kms_secret_ciphertext.go @@ -90,11 +90,18 @@ func resourceKMSSecretCiphertextCreate(d *schema.ResourceData, meta interface{}) } log.Printf("[DEBUG] Creating new SecretCiphertext: %#v", obj) - var project string + billingProject := "" + if parts := regexp.MustCompile(`projects\/([^\/]+)\/`).FindStringSubmatch(url); parts != nil { - project = parts[1] + billingProject = parts[1] + } + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating SecretCiphertext: %s", err) } @@ -132,11 +139,18 @@ func resourceKMSSecretCiphertextRead(d *schema.ResourceData, meta interface{}) e return err } - var project string + billingProject := "" + if parts := regexp.MustCompile(`projects\/([^\/]+)\/`).FindStringSubmatch(url); parts != nil { - project = parts[1] + billingProject = parts[1] + } + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp } - res, err := sendRequest(config, "GET", project, url, nil) + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("KMSSecretCiphertext %q", d.Id())) } diff --git a/google/resource_logging_metric.go b/google/resource_logging_metric.go index 82c13d1ff4d..efd7c7918c9 100644 --- a/google/resource_logging_metric.go +++ b/google/resource_logging_metric.go @@ -319,11 +319,20 @@ func resourceLoggingMetricCreate(d *schema.ResourceData, meta interface{}) error } log.Printf("[DEBUG] Creating new Metric: %#v", obj) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating Metric: %s", err) } @@ -364,11 +373,20 @@ func resourceLoggingMetricRead(d *schema.ResourceData, meta interface{}) error { return err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequest(config, "GET", project, url, nil) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("LoggingMetric %q", d.Id())) } @@ -405,10 +423,13 @@ func resourceLoggingMetricRead(d *schema.ResourceData, meta interface{}) error { func resourceLoggingMetricUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project obj := make(map[string]interface{}) nameProp, err := expandLoggingMetricName(d.Get("name"), d, config) @@ -467,7 +488,13 @@ func resourceLoggingMetricUpdate(d *schema.ResourceData, meta interface{}) error } log.Printf("[DEBUG] Updating Metric %q: %#v", d.Id(), obj) - res, err := sendRequestWithTimeout(config, "PUT", project, url, obj, d.Timeout(schema.TimeoutUpdate)) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "PUT", billingProject, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating Metric %q: %s", d.Id(), err) @@ -481,10 +508,13 @@ func resourceLoggingMetricUpdate(d *schema.ResourceData, meta interface{}) error func resourceLoggingMetricDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project lockName, err := replaceVars(d, config, "customMetric/{{project}}") if err != nil { @@ -501,7 +531,12 @@ func resourceLoggingMetricDelete(d *schema.ResourceData, meta interface{}) error var obj map[string]interface{} log.Printf("[DEBUG] Deleting Metric %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "DELETE", billingProject, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "Metric") } diff --git a/google/resource_ml_engine_model.go b/google/resource_ml_engine_model.go index ff798bcf447..a0ac79cbb12 100644 --- a/google/resource_ml_engine_model.go +++ b/google/resource_ml_engine_model.go @@ -162,11 +162,20 @@ func resourceMLEngineModelCreate(d *schema.ResourceData, meta interface{}) error } log.Printf("[DEBUG] Creating new Model: %#v", obj) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating Model: %s", err) } @@ -191,11 +200,20 @@ func resourceMLEngineModelRead(d *schema.ResourceData, meta interface{}) error { return err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequest(config, "GET", project, url, nil) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("MLEngineModel %q", d.Id())) } @@ -232,10 +250,13 @@ func resourceMLEngineModelRead(d *schema.ResourceData, meta interface{}) error { func resourceMLEngineModelDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project url, err := replaceVars(d, config, "{{MLEngineBasePath}}projects/{{project}}/models/{{name}}") if err != nil { @@ -245,7 +266,12 @@ func resourceMLEngineModelDelete(d *schema.ResourceData, meta interface{}) error var obj map[string]interface{} log.Printf("[DEBUG] Deleting Model %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "DELETE", billingProject, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "Model") } diff --git a/google/resource_monitoring_alert_policy.go b/google/resource_monitoring_alert_policy.go index eee770478dc..97278332d54 100644 --- a/google/resource_monitoring_alert_policy.go +++ b/google/resource_monitoring_alert_policy.go @@ -781,11 +781,20 @@ func resourceMonitoringAlertPolicyCreate(d *schema.ResourceData, meta interface{ } log.Printf("[DEBUG] Creating new AlertPolicy: %#v", obj) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate), isMonitoringConcurrentEditError) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate), isMonitoringConcurrentEditError) if err != nil { return fmt.Errorf("Error creating AlertPolicy: %s", err) } @@ -829,11 +838,20 @@ func resourceMonitoringAlertPolicyRead(d *schema.ResourceData, meta interface{}) return err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequest(config, "GET", project, url, nil, isMonitoringConcurrentEditError) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil, isMonitoringConcurrentEditError) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("MonitoringAlertPolicy %q", d.Id())) } @@ -888,10 +906,13 @@ func resourceMonitoringAlertPolicyRead(d *schema.ResourceData, meta interface{}) func resourceMonitoringAlertPolicyUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project obj := make(map[string]interface{}) displayNameProp, err := expandMonitoringAlertPolicyDisplayName(d.Get("display_name"), d, config) @@ -985,7 +1006,13 @@ func resourceMonitoringAlertPolicyUpdate(d *schema.ResourceData, meta interface{ if err != nil { return err } - res, err := sendRequestWithTimeout(config, "PATCH", project, url, obj, d.Timeout(schema.TimeoutUpdate), isMonitoringConcurrentEditError) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "PATCH", billingProject, url, obj, d.Timeout(schema.TimeoutUpdate), isMonitoringConcurrentEditError) if err != nil { return fmt.Errorf("Error updating AlertPolicy %q: %s", d.Id(), err) @@ -999,10 +1026,13 @@ func resourceMonitoringAlertPolicyUpdate(d *schema.ResourceData, meta interface{ func resourceMonitoringAlertPolicyDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project lockName, err := replaceVars(d, config, "alertPolicy/{{project}}") if err != nil { @@ -1019,7 +1049,12 @@ func resourceMonitoringAlertPolicyDelete(d *schema.ResourceData, meta interface{ var obj map[string]interface{} log.Printf("[DEBUG] Deleting AlertPolicy %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete), isMonitoringConcurrentEditError) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "DELETE", billingProject, url, obj, d.Timeout(schema.TimeoutDelete), isMonitoringConcurrentEditError) if err != nil { return handleNotFoundError(err, d, "AlertPolicy") } diff --git a/google/resource_monitoring_group.go b/google/resource_monitoring_group.go index b4952755119..1337996d608 100644 --- a/google/resource_monitoring_group.go +++ b/google/resource_monitoring_group.go @@ -126,11 +126,20 @@ func resourceMonitoringGroupCreate(d *schema.ResourceData, meta interface{}) err } log.Printf("[DEBUG] Creating new Group: %#v", obj) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate), isMonitoringConcurrentEditError) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate), isMonitoringConcurrentEditError) if err != nil { return fmt.Errorf("Error creating Group: %s", err) } @@ -174,11 +183,20 @@ func resourceMonitoringGroupRead(d *schema.ResourceData, meta interface{}) error return err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequest(config, "GET", project, url, nil, isMonitoringConcurrentEditError) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil, isMonitoringConcurrentEditError) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("MonitoringGroup %q", d.Id())) } @@ -209,10 +227,13 @@ func resourceMonitoringGroupRead(d *schema.ResourceData, meta interface{}) error func resourceMonitoringGroupUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project obj := make(map[string]interface{}) parentNameProp, err := expandMonitoringGroupParentName(d.Get("parent_name"), d, config) @@ -253,7 +274,13 @@ func resourceMonitoringGroupUpdate(d *schema.ResourceData, meta interface{}) err } log.Printf("[DEBUG] Updating Group %q: %#v", d.Id(), obj) - res, err := sendRequestWithTimeout(config, "PUT", project, url, obj, d.Timeout(schema.TimeoutUpdate), isMonitoringConcurrentEditError) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "PUT", billingProject, url, obj, d.Timeout(schema.TimeoutUpdate), isMonitoringConcurrentEditError) if err != nil { return fmt.Errorf("Error updating Group %q: %s", d.Id(), err) @@ -267,10 +294,13 @@ func resourceMonitoringGroupUpdate(d *schema.ResourceData, meta interface{}) err func resourceMonitoringGroupDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project lockName, err := replaceVars(d, config, "stackdriver/groups/{{project}}") if err != nil { @@ -287,7 +317,12 @@ func resourceMonitoringGroupDelete(d *schema.ResourceData, meta interface{}) err var obj map[string]interface{} log.Printf("[DEBUG] Deleting Group %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete), isMonitoringConcurrentEditError) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "DELETE", billingProject, url, obj, d.Timeout(schema.TimeoutDelete), isMonitoringConcurrentEditError) if err != nil { return handleNotFoundError(err, d, "Group") } diff --git a/google/resource_monitoring_metric_descriptor.go b/google/resource_monitoring_metric_descriptor.go index 1c92d48dd03..123bf26313d 100644 --- a/google/resource_monitoring_metric_descriptor.go +++ b/google/resource_monitoring_metric_descriptor.go @@ -248,11 +248,20 @@ func resourceMonitoringMetricDescriptorCreate(d *schema.ResourceData, meta inter } log.Printf("[DEBUG] Creating new MetricDescriptor: %#v", obj) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate), isMonitoringConcurrentEditError) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate), isMonitoringConcurrentEditError) if err != nil { return fmt.Errorf("Error creating MetricDescriptor: %s", err) } @@ -286,11 +295,20 @@ func resourceMonitoringMetricDescriptorPollRead(d *schema.ResourceData, meta int return nil, err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return nil, err } - res, err := sendRequest(config, "GET", project, url, nil, isMonitoringConcurrentEditError) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil, isMonitoringConcurrentEditError) if err != nil { return res, err } @@ -306,11 +324,20 @@ func resourceMonitoringMetricDescriptorRead(d *schema.ResourceData, meta interfa return err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequest(config, "GET", project, url, nil, isMonitoringConcurrentEditError) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil, isMonitoringConcurrentEditError) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("MonitoringMetricDescriptor %q", d.Id())) } @@ -353,10 +380,13 @@ func resourceMonitoringMetricDescriptorRead(d *schema.ResourceData, meta interfa func resourceMonitoringMetricDescriptorUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project obj := make(map[string]interface{}) typeProp, err := expandMonitoringMetricDescriptorType(d.Get("type"), d, config) @@ -420,7 +450,13 @@ func resourceMonitoringMetricDescriptorUpdate(d *schema.ResourceData, meta inter } log.Printf("[DEBUG] Updating MetricDescriptor %q: %#v", d.Id(), obj) - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutUpdate), isMonitoringConcurrentEditError) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutUpdate), isMonitoringConcurrentEditError) if err != nil { return fmt.Errorf("Error updating MetricDescriptor %q: %s", d.Id(), err) @@ -439,10 +475,13 @@ func resourceMonitoringMetricDescriptorUpdate(d *schema.ResourceData, meta inter func resourceMonitoringMetricDescriptorDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project url, err := replaceVars(d, config, "{{MonitoringBasePath}}v3/{{name}}") if err != nil { @@ -452,7 +491,12 @@ func resourceMonitoringMetricDescriptorDelete(d *schema.ResourceData, meta inter var obj map[string]interface{} log.Printf("[DEBUG] Deleting MetricDescriptor %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete), isMonitoringConcurrentEditError) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "DELETE", billingProject, url, obj, d.Timeout(schema.TimeoutDelete), isMonitoringConcurrentEditError) if err != nil { return handleNotFoundError(err, d, "MetricDescriptor") } diff --git a/google/resource_monitoring_notification_channel.go b/google/resource_monitoring_notification_channel.go index 7ae4d743356..fc0a96e055a 100644 --- a/google/resource_monitoring_notification_channel.go +++ b/google/resource_monitoring_notification_channel.go @@ -213,11 +213,20 @@ func resourceMonitoringNotificationChannelCreate(d *schema.ResourceData, meta in } log.Printf("[DEBUG] Creating new NotificationChannel: %#v", obj) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate), isMonitoringConcurrentEditError) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate), isMonitoringConcurrentEditError) if err != nil { return fmt.Errorf("Error creating NotificationChannel: %s", err) } @@ -261,11 +270,20 @@ func resourceMonitoringNotificationChannelRead(d *schema.ResourceData, meta inte return err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequest(config, "GET", project, url, nil, isMonitoringConcurrentEditError) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil, isMonitoringConcurrentEditError) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("MonitoringNotificationChannel %q", d.Id())) } @@ -317,10 +335,13 @@ func resourceMonitoringNotificationChannelRead(d *schema.ResourceData, meta inte func resourceMonitoringNotificationChannelUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project obj := make(map[string]interface{}) labelsProp, err := expandMonitoringNotificationChannelLabels(d.Get("labels"), d, config) @@ -378,7 +399,13 @@ func resourceMonitoringNotificationChannelUpdate(d *schema.ResourceData, meta in } log.Printf("[DEBUG] Updating NotificationChannel %q: %#v", d.Id(), obj) - res, err := sendRequestWithTimeout(config, "PATCH", project, url, obj, d.Timeout(schema.TimeoutUpdate), isMonitoringConcurrentEditError) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "PATCH", billingProject, url, obj, d.Timeout(schema.TimeoutUpdate), isMonitoringConcurrentEditError) if err != nil { return fmt.Errorf("Error updating NotificationChannel %q: %s", d.Id(), err) @@ -392,10 +419,13 @@ func resourceMonitoringNotificationChannelUpdate(d *schema.ResourceData, meta in func resourceMonitoringNotificationChannelDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project lockName, err := replaceVars(d, config, "stackdriver/notifications/{{project}}") if err != nil { @@ -412,7 +442,12 @@ func resourceMonitoringNotificationChannelDelete(d *schema.ResourceData, meta in var obj map[string]interface{} log.Printf("[DEBUG] Deleting NotificationChannel %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete), isMonitoringConcurrentEditError) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "DELETE", billingProject, url, obj, d.Timeout(schema.TimeoutDelete), isMonitoringConcurrentEditError) if err != nil { return handleNotFoundError(err, d, "NotificationChannel") } diff --git a/google/resource_monitoring_service.go b/google/resource_monitoring_service.go index 5aca88ca365..8cd5459eab0 100644 --- a/google/resource_monitoring_service.go +++ b/google/resource_monitoring_service.go @@ -123,11 +123,20 @@ func resourceMonitoringServiceCreate(d *schema.ResourceData, meta interface{}) e } log.Printf("[DEBUG] Creating new Service: %#v", obj) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate), isMonitoringConcurrentEditError) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate), isMonitoringConcurrentEditError) if err != nil { return fmt.Errorf("Error creating Service: %s", err) } @@ -155,11 +164,20 @@ func resourceMonitoringServiceRead(d *schema.ResourceData, meta interface{}) err return err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequest(config, "GET", project, url, nil, isMonitoringConcurrentEditError) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil, isMonitoringConcurrentEditError) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("MonitoringService %q", d.Id())) } @@ -187,10 +205,13 @@ func resourceMonitoringServiceRead(d *schema.ResourceData, meta interface{}) err func resourceMonitoringServiceUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project obj := make(map[string]interface{}) displayNameProp, err := expandMonitoringServiceDisplayName(d.Get("display_name"), d, config) @@ -232,7 +253,13 @@ func resourceMonitoringServiceUpdate(d *schema.ResourceData, meta interface{}) e if err != nil { return err } - res, err := sendRequestWithTimeout(config, "PATCH", project, url, obj, d.Timeout(schema.TimeoutUpdate), isMonitoringConcurrentEditError) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "PATCH", billingProject, url, obj, d.Timeout(schema.TimeoutUpdate), isMonitoringConcurrentEditError) if err != nil { return fmt.Errorf("Error updating Service %q: %s", d.Id(), err) @@ -246,10 +273,13 @@ func resourceMonitoringServiceUpdate(d *schema.ResourceData, meta interface{}) e func resourceMonitoringServiceDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project url, err := replaceVars(d, config, "{{MonitoringBasePath}}v3/{{name}}") if err != nil { @@ -259,7 +289,12 @@ func resourceMonitoringServiceDelete(d *schema.ResourceData, meta interface{}) e var obj map[string]interface{} log.Printf("[DEBUG] Deleting Service %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete), isMonitoringConcurrentEditError) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "DELETE", billingProject, url, obj, d.Timeout(schema.TimeoutDelete), isMonitoringConcurrentEditError) if err != nil { return handleNotFoundError(err, d, "Service") } diff --git a/google/resource_monitoring_slo.go b/google/resource_monitoring_slo.go index 2e832e17841..f992067f7ce 100644 --- a/google/resource_monitoring_slo.go +++ b/google/resource_monitoring_slo.go @@ -745,11 +745,20 @@ func resourceMonitoringSloCreate(d *schema.ResourceData, meta interface{}) error } log.Printf("[DEBUG] Creating new Slo: %#v", obj) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating Slo: %s", err) } @@ -777,11 +786,20 @@ func resourceMonitoringSloRead(d *schema.ResourceData, meta interface{}) error { return err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequest(config, "GET", project, url, nil) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("MonitoringSlo %q", d.Id())) } @@ -828,10 +846,13 @@ func resourceMonitoringSloRead(d *schema.ResourceData, meta interface{}) error { func resourceMonitoringSloUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project obj := make(map[string]interface{}) displayNameProp, err := expandMonitoringSloDisplayName(d.Get("display_name"), d, config) @@ -934,7 +955,13 @@ func resourceMonitoringSloUpdate(d *schema.ResourceData, meta interface{}) error if err != nil { return err } - res, err := sendRequestWithTimeout(config, "PATCH", project, url, obj, d.Timeout(schema.TimeoutUpdate)) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "PATCH", billingProject, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating Slo %q: %s", d.Id(), err) @@ -948,10 +975,13 @@ func resourceMonitoringSloUpdate(d *schema.ResourceData, meta interface{}) error func resourceMonitoringSloDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project lockName, err := replaceVars(d, config, "monitoring/project/{{project}}/service/{{service}}") if err != nil { @@ -968,7 +998,12 @@ func resourceMonitoringSloDelete(d *schema.ResourceData, meta interface{}) error var obj map[string]interface{} log.Printf("[DEBUG] Deleting Slo %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "DELETE", billingProject, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "Slo") } diff --git a/google/resource_monitoring_uptime_check_config.go b/google/resource_monitoring_uptime_check_config.go index ab00d5e0ac1..12be8e031c4 100644 --- a/google/resource_monitoring_uptime_check_config.go +++ b/google/resource_monitoring_uptime_check_config.go @@ -388,11 +388,20 @@ func resourceMonitoringUptimeCheckConfigCreate(d *schema.ResourceData, meta inte } log.Printf("[DEBUG] Creating new UptimeCheckConfig: %#v", obj) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate), isMonitoringConcurrentEditError) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate), isMonitoringConcurrentEditError) if err != nil { return fmt.Errorf("Error creating UptimeCheckConfig: %s", err) } @@ -436,11 +445,20 @@ func resourceMonitoringUptimeCheckConfigRead(d *schema.ResourceData, meta interf return err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequest(config, "GET", project, url, nil, isMonitoringConcurrentEditError) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil, isMonitoringConcurrentEditError) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("MonitoringUptimeCheckConfig %q", d.Id())) } @@ -489,10 +507,13 @@ func resourceMonitoringUptimeCheckConfigRead(d *schema.ResourceData, meta interf func resourceMonitoringUptimeCheckConfigUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project obj := make(map[string]interface{}) displayNameProp, err := expandMonitoringUptimeCheckConfigDisplayName(d.Get("display_name"), d, config) @@ -576,7 +597,13 @@ func resourceMonitoringUptimeCheckConfigUpdate(d *schema.ResourceData, meta inte if err != nil { return err } - res, err := sendRequestWithTimeout(config, "PATCH", project, url, obj, d.Timeout(schema.TimeoutUpdate), isMonitoringConcurrentEditError) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "PATCH", billingProject, url, obj, d.Timeout(schema.TimeoutUpdate), isMonitoringConcurrentEditError) if err != nil { return fmt.Errorf("Error updating UptimeCheckConfig %q: %s", d.Id(), err) @@ -590,10 +617,13 @@ func resourceMonitoringUptimeCheckConfigUpdate(d *schema.ResourceData, meta inte func resourceMonitoringUptimeCheckConfigDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project lockName, err := replaceVars(d, config, "stackdriver/groups/{{project}}") if err != nil { @@ -610,7 +640,12 @@ func resourceMonitoringUptimeCheckConfigDelete(d *schema.ResourceData, meta inte var obj map[string]interface{} log.Printf("[DEBUG] Deleting UptimeCheckConfig %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete), isMonitoringConcurrentEditError) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "DELETE", billingProject, url, obj, d.Timeout(schema.TimeoutDelete), isMonitoringConcurrentEditError) if err != nil { return handleNotFoundError(err, d, "UptimeCheckConfig") } diff --git a/google/resource_network_management_connectivity_test_resource.go b/google/resource_network_management_connectivity_test_resource.go index c52598bb387..fc819a7b055 100644 --- a/google/resource_network_management_connectivity_test_resource.go +++ b/google/resource_network_management_connectivity_test_resource.go @@ -278,11 +278,20 @@ func resourceNetworkManagementConnectivityTestCreate(d *schema.ResourceData, met } log.Printf("[DEBUG] Creating new ConnectivityTest: %#v", obj) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating ConnectivityTest: %s", err) } @@ -330,11 +339,20 @@ func resourceNetworkManagementConnectivityTestRead(d *schema.ResourceData, meta return err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequest(config, "GET", project, url, nil) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("NetworkManagementConnectivityTest %q", d.Id())) } @@ -371,10 +389,13 @@ func resourceNetworkManagementConnectivityTestRead(d *schema.ResourceData, meta func resourceNetworkManagementConnectivityTestUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project obj := make(map[string]interface{}) descriptionProp, err := expandNetworkManagementConnectivityTestDescription(d.Get("description"), d, config) @@ -460,7 +481,13 @@ func resourceNetworkManagementConnectivityTestUpdate(d *schema.ResourceData, met if err != nil { return err } - res, err := sendRequestWithTimeout(config, "PATCH", project, url, obj, d.Timeout(schema.TimeoutUpdate)) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "PATCH", billingProject, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating ConnectivityTest %q: %s", d.Id(), err) @@ -482,10 +509,13 @@ func resourceNetworkManagementConnectivityTestUpdate(d *schema.ResourceData, met func resourceNetworkManagementConnectivityTestDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project url, err := replaceVars(d, config, "{{NetworkManagementBasePath}}projects/{{project}}/locations/global/connectivityTests/{{name}}") if err != nil { @@ -495,7 +525,12 @@ func resourceNetworkManagementConnectivityTestDelete(d *schema.ResourceData, met var obj map[string]interface{} log.Printf("[DEBUG] Deleting ConnectivityTest %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "DELETE", billingProject, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "ConnectivityTest") } diff --git a/google/resource_os_config_patch_deployment.go b/google/resource_os_config_patch_deployment.go index 22865e0ea62..4ff99b32eda 100644 --- a/google/resource_os_config_patch_deployment.go +++ b/google/resource_os_config_patch_deployment.go @@ -939,11 +939,20 @@ func resourceOSConfigPatchDeploymentCreate(d *schema.ResourceData, meta interfac } log.Printf("[DEBUG] Creating new PatchDeployment: %#v", obj) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating PatchDeployment: %s", err) } @@ -987,11 +996,20 @@ func resourceOSConfigPatchDeploymentRead(d *schema.ResourceData, meta interface{ return err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequest(config, "GET", project, url, nil) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("OSConfigPatchDeployment %q", d.Id())) } @@ -1049,10 +1067,13 @@ func resourceOSConfigPatchDeploymentRead(d *schema.ResourceData, meta interface{ func resourceOSConfigPatchDeploymentDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project url, err := replaceVars(d, config, "{{OSConfigBasePath}}{{name}}") if err != nil { @@ -1062,7 +1083,12 @@ func resourceOSConfigPatchDeploymentDelete(d *schema.ResourceData, meta interfac var obj map[string]interface{} log.Printf("[DEBUG] Deleting PatchDeployment %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "DELETE", billingProject, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "PatchDeployment") } diff --git a/google/resource_os_login_ssh_public_key.go b/google/resource_os_login_ssh_public_key.go index 7d11a472b1d..4f0ff899915 100644 --- a/google/resource_os_login_ssh_public_key.go +++ b/google/resource_os_login_ssh_public_key.go @@ -91,7 +91,14 @@ func resourceOSLoginSSHPublicKeyCreate(d *schema.ResourceData, meta interface{}) } log.Printf("[DEBUG] Creating new SSHPublicKey: %#v", obj) - res, err := sendRequestWithTimeout(config, "POST", "", url, obj, d.Timeout(schema.TimeoutCreate)) + billingProject := "" + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating SSHPublicKey: %s", err) } @@ -137,7 +144,14 @@ func resourceOSLoginSSHPublicKeyRead(d *schema.ResourceData, meta interface{}) e return err } - res, err := sendRequest(config, "GET", "", url, nil) + billingProject := "" + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("OSLoginSSHPublicKey %q", d.Id())) } @@ -158,6 +172,8 @@ func resourceOSLoginSSHPublicKeyRead(d *schema.ResourceData, meta interface{}) e func resourceOSLoginSSHPublicKeyUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + obj := make(map[string]interface{}) expirationTimeUsecProp, err := expandOSLoginSSHPublicKeyExpirationTimeUsec(d.Get("expiration_time_usec"), d, config) if err != nil { @@ -183,7 +199,13 @@ func resourceOSLoginSSHPublicKeyUpdate(d *schema.ResourceData, meta interface{}) if err != nil { return err } - res, err := sendRequestWithTimeout(config, "PATCH", "", url, obj, d.Timeout(schema.TimeoutUpdate)) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "PATCH", billingProject, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating SSHPublicKey %q: %s", d.Id(), err) @@ -197,6 +219,8 @@ func resourceOSLoginSSHPublicKeyUpdate(d *schema.ResourceData, meta interface{}) func resourceOSLoginSSHPublicKeyDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + url, err := replaceVars(d, config, "{{OSLoginBasePath}}users/{{user}}/sshPublicKeys/{{fingerprint}}/{{name}}") if err != nil { return err @@ -205,7 +229,12 @@ func resourceOSLoginSSHPublicKeyDelete(d *schema.ResourceData, meta interface{}) var obj map[string]interface{} log.Printf("[DEBUG] Deleting SSHPublicKey %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", "", url, obj, d.Timeout(schema.TimeoutDelete)) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "DELETE", billingProject, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "SSHPublicKey") } diff --git a/google/resource_pubsub_subscription.go b/google/resource_pubsub_subscription.go index c450f04bdb3..a299ad8aee3 100644 --- a/google/resource_pubsub_subscription.go +++ b/google/resource_pubsub_subscription.go @@ -417,11 +417,20 @@ func resourcePubsubSubscriptionCreate(d *schema.ResourceData, meta interface{}) } log.Printf("[DEBUG] Creating new Subscription: %#v", obj) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequestWithTimeout(config, "PUT", project, url, obj, d.Timeout(schema.TimeoutCreate)) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "PUT", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating Subscription: %s", err) } @@ -452,11 +461,20 @@ func resourcePubsubSubscriptionPollRead(d *schema.ResourceData, meta interface{} return nil, err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return nil, err } - res, err := sendRequest(config, "GET", project, url, nil) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return res, err } @@ -484,11 +502,20 @@ func resourcePubsubSubscriptionRead(d *schema.ResourceData, meta interface{}) er return err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequest(config, "GET", project, url, nil) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("PubsubSubscription %q", d.Id())) } @@ -552,10 +579,13 @@ func resourcePubsubSubscriptionRead(d *schema.ResourceData, meta interface{}) er func resourcePubsubSubscriptionUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project obj := make(map[string]interface{}) labelsProp, err := expandPubsubSubscriptionLabels(d.Get("labels"), d, config) @@ -667,7 +697,13 @@ func resourcePubsubSubscriptionUpdate(d *schema.ResourceData, meta interface{}) if err != nil { return err } - res, err := sendRequestWithTimeout(config, "PATCH", project, url, obj, d.Timeout(schema.TimeoutUpdate)) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "PATCH", billingProject, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating Subscription %q: %s", d.Id(), err) @@ -681,10 +717,13 @@ func resourcePubsubSubscriptionUpdate(d *schema.ResourceData, meta interface{}) func resourcePubsubSubscriptionDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project url, err := replaceVars(d, config, "{{PubsubBasePath}}projects/{{project}}/subscriptions/{{name}}") if err != nil { @@ -694,7 +733,12 @@ func resourcePubsubSubscriptionDelete(d *schema.ResourceData, meta interface{}) var obj map[string]interface{} log.Printf("[DEBUG] Deleting Subscription %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "DELETE", billingProject, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "Subscription") } diff --git a/google/resource_pubsub_topic.go b/google/resource_pubsub_topic.go index 5519dfc8bff..fa760f8c370 100644 --- a/google/resource_pubsub_topic.go +++ b/google/resource_pubsub_topic.go @@ -141,11 +141,20 @@ func resourcePubsubTopicCreate(d *schema.ResourceData, meta interface{}) error { } log.Printf("[DEBUG] Creating new Topic: %#v", obj) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequestWithTimeout(config, "PUT", project, url, obj, d.Timeout(schema.TimeoutCreate), pubsubTopicProjectNotReady) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "PUT", billingProject, url, obj, d.Timeout(schema.TimeoutCreate), pubsubTopicProjectNotReady) if err != nil { return fmt.Errorf("Error creating Topic: %s", err) } @@ -176,11 +185,20 @@ func resourcePubsubTopicPollRead(d *schema.ResourceData, meta interface{}) PollR return nil, err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return nil, err } - res, err := sendRequest(config, "GET", project, url, nil, pubsubTopicProjectNotReady) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil, pubsubTopicProjectNotReady) if err != nil { return res, err } @@ -196,11 +214,20 @@ func resourcePubsubTopicRead(d *schema.ResourceData, meta interface{}) error { return err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequest(config, "GET", project, url, nil, pubsubTopicProjectNotReady) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil, pubsubTopicProjectNotReady) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("PubsubTopic %q", d.Id())) } @@ -228,10 +255,13 @@ func resourcePubsubTopicRead(d *schema.ResourceData, meta interface{}) error { func resourcePubsubTopicUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project obj := make(map[string]interface{}) labelsProp, err := expandPubsubTopicLabels(d.Get("labels"), d, config) @@ -273,7 +303,13 @@ func resourcePubsubTopicUpdate(d *schema.ResourceData, meta interface{}) error { if err != nil { return err } - res, err := sendRequestWithTimeout(config, "PATCH", project, url, obj, d.Timeout(schema.TimeoutUpdate), pubsubTopicProjectNotReady) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "PATCH", billingProject, url, obj, d.Timeout(schema.TimeoutUpdate), pubsubTopicProjectNotReady) if err != nil { return fmt.Errorf("Error updating Topic %q: %s", d.Id(), err) @@ -287,10 +323,13 @@ func resourcePubsubTopicUpdate(d *schema.ResourceData, meta interface{}) error { func resourcePubsubTopicDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project url, err := replaceVars(d, config, "{{PubsubBasePath}}projects/{{project}}/topics/{{name}}") if err != nil { @@ -300,7 +339,12 @@ func resourcePubsubTopicDelete(d *schema.ResourceData, meta interface{}) error { var obj map[string]interface{} log.Printf("[DEBUG] Deleting Topic %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete), pubsubTopicProjectNotReady) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "DELETE", billingProject, url, obj, d.Timeout(schema.TimeoutDelete), pubsubTopicProjectNotReady) if err != nil { return handleNotFoundError(err, d, "Topic") } diff --git a/google/resource_redis_instance.go b/google/resource_redis_instance.go index 2a11a888cda..6fc727a7370 100644 --- a/google/resource_redis_instance.go +++ b/google/resource_redis_instance.go @@ -287,11 +287,20 @@ func resourceRedisInstanceCreate(d *schema.ResourceData, meta interface{}) error } log.Printf("[DEBUG] Creating new Instance: %#v", obj) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating Instance: %s", err) } @@ -339,11 +348,20 @@ func resourceRedisInstanceRead(d *schema.ResourceData, meta interface{}) error { return err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequest(config, "GET", project, url, nil) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("RedisInstance %q", d.Id())) } @@ -418,10 +436,13 @@ func resourceRedisInstanceRead(d *schema.ResourceData, meta interface{}) error { func resourceRedisInstanceUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project obj := make(map[string]interface{}) displayNameProp, err := expandRedisInstanceDisplayName(d.Get("display_name"), d, config) @@ -483,7 +504,13 @@ func resourceRedisInstanceUpdate(d *schema.ResourceData, meta interface{}) error if err != nil { return err } - res, err := sendRequestWithTimeout(config, "PATCH", project, url, obj, d.Timeout(schema.TimeoutUpdate)) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "PATCH", billingProject, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating Instance %q: %s", d.Id(), err) @@ -505,10 +532,13 @@ func resourceRedisInstanceUpdate(d *schema.ResourceData, meta interface{}) error func resourceRedisInstanceDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project url, err := replaceVars(d, config, "{{RedisBasePath}}projects/{{project}}/locations/{{region}}/instances/{{name}}") if err != nil { @@ -518,7 +548,12 @@ func resourceRedisInstanceDelete(d *schema.ResourceData, meta interface{}) error var obj map[string]interface{} log.Printf("[DEBUG] Deleting Instance %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "DELETE", billingProject, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "Instance") } diff --git a/google/resource_resource_manager_lien.go b/google/resource_resource_manager_lien.go index 17fee8448e1..f1998f5038a 100644 --- a/google/resource_resource_manager_lien.go +++ b/google/resource_resource_manager_lien.go @@ -127,7 +127,14 @@ func resourceResourceManagerLienCreate(d *schema.ResourceData, meta interface{}) } log.Printf("[DEBUG] Creating new Lien: %#v", obj) - res, err := sendRequestWithTimeout(config, "POST", "", url, obj, d.Timeout(schema.TimeoutCreate)) + billingProject := "" + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating Lien: %s", err) } @@ -165,7 +172,14 @@ func resourceResourceManagerLienRead(d *schema.ResourceData, meta interface{}) e return err } - res, err := sendRequest(config, "GET", "", url, nil) + billingProject := "" + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("ResourceManagerLien %q", d.Id())) } @@ -219,6 +233,8 @@ func resourceResourceManagerLienRead(d *schema.ResourceData, meta interface{}) e func resourceResourceManagerLienDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + url, err := replaceVars(d, config, "{{ResourceManagerBasePath}}liens?parent={{parent}}") if err != nil { return err @@ -235,7 +251,12 @@ func resourceResourceManagerLienDelete(d *schema.ResourceData, meta interface{}) } log.Printf("[DEBUG] Deleting Lien %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", "", url, obj, d.Timeout(schema.TimeoutDelete)) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "DELETE", billingProject, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "Lien") } diff --git a/google/resource_secret_manager_secret.go b/google/resource_secret_manager_secret.go index e47be4bdf54..5d8f8ab5ee4 100644 --- a/google/resource_secret_manager_secret.go +++ b/google/resource_secret_manager_secret.go @@ -153,11 +153,20 @@ func resourceSecretManagerSecretCreate(d *schema.ResourceData, meta interface{}) } log.Printf("[DEBUG] Creating new Secret: %#v", obj) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating Secret: %s", err) } @@ -185,11 +194,20 @@ func resourceSecretManagerSecretRead(d *schema.ResourceData, meta interface{}) e return err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequest(config, "GET", project, url, nil) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("SecretManagerSecret %q", d.Id())) } @@ -217,10 +235,13 @@ func resourceSecretManagerSecretRead(d *schema.ResourceData, meta interface{}) e func resourceSecretManagerSecretUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project obj := make(map[string]interface{}) labelsProp, err := expandSecretManagerSecretLabels(d.Get("labels"), d, config) @@ -247,7 +268,13 @@ func resourceSecretManagerSecretUpdate(d *schema.ResourceData, meta interface{}) if err != nil { return err } - res, err := sendRequestWithTimeout(config, "PATCH", project, url, obj, d.Timeout(schema.TimeoutUpdate)) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "PATCH", billingProject, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating Secret %q: %s", d.Id(), err) @@ -261,10 +288,13 @@ func resourceSecretManagerSecretUpdate(d *schema.ResourceData, meta interface{}) func resourceSecretManagerSecretDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project url, err := replaceVars(d, config, "{{SecretManagerBasePath}}projects/{{project}}/secrets/{{secret_id}}") if err != nil { @@ -274,7 +304,12 @@ func resourceSecretManagerSecretDelete(d *schema.ResourceData, meta interface{}) var obj map[string]interface{} log.Printf("[DEBUG] Deleting Secret %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "DELETE", billingProject, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "Secret") } diff --git a/google/resource_secret_manager_secret_version.go b/google/resource_secret_manager_secret_version.go index 54491212030..5db2d1f8108 100644 --- a/google/resource_secret_manager_secret_version.go +++ b/google/resource_secret_manager_secret_version.go @@ -120,7 +120,14 @@ func resourceSecretManagerSecretVersionCreate(d *schema.ResourceData, meta inter } log.Printf("[DEBUG] Creating new SecretVersion: %#v", obj) - res, err := sendRequestWithTimeout(config, "POST", "", url, obj, d.Timeout(schema.TimeoutCreate)) + billingProject := "" + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating SecretVersion: %s", err) } @@ -161,7 +168,14 @@ func resourceSecretManagerSecretVersionRead(d *schema.ResourceData, meta interfa return err } - res, err := sendRequest(config, "GET", "", url, nil) + billingProject := "" + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("SecretManagerSecretVersion %q", d.Id())) } @@ -198,6 +212,8 @@ func resourceSecretManagerSecretVersionRead(d *schema.ResourceData, meta interfa func resourceSecretManagerSecretVersionDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + url, err := replaceVars(d, config, "{{SecretManagerBasePath}}{{name}}:destroy") if err != nil { return err @@ -206,7 +222,12 @@ func resourceSecretManagerSecretVersionDelete(d *schema.ResourceData, meta inter var obj map[string]interface{} log.Printf("[DEBUG] Deleting SecretVersion %q", d.Id()) - res, err := sendRequestWithTimeout(config, "POST", "", url, obj, d.Timeout(schema.TimeoutDelete)) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "SecretVersion") } diff --git a/google/resource_security_center_source.go b/google/resource_security_center_source.go index cf39bfa6b9c..7eaad9bee70 100644 --- a/google/resource_security_center_source.go +++ b/google/resource_security_center_source.go @@ -99,7 +99,14 @@ func resourceSecurityCenterSourceCreate(d *schema.ResourceData, meta interface{} } log.Printf("[DEBUG] Creating new Source: %#v", obj) - res, err := sendRequestWithTimeout(config, "POST", "", url, obj, d.Timeout(schema.TimeoutCreate)) + billingProject := "" + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating Source: %s", err) } @@ -143,7 +150,14 @@ func resourceSecurityCenterSourceRead(d *schema.ResourceData, meta interface{}) return err } - res, err := sendRequest(config, "GET", "", url, nil) + billingProject := "" + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("SecurityCenterSource %q", d.Id())) } @@ -164,6 +178,8 @@ func resourceSecurityCenterSourceRead(d *schema.ResourceData, meta interface{}) func resourceSecurityCenterSourceUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + obj := make(map[string]interface{}) descriptionProp, err := expandSecurityCenterSourceDescription(d.Get("description"), d, config) if err != nil { @@ -199,7 +215,13 @@ func resourceSecurityCenterSourceUpdate(d *schema.ResourceData, meta interface{} if err != nil { return err } - res, err := sendRequestWithTimeout(config, "PATCH", "", url, obj, d.Timeout(schema.TimeoutUpdate)) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "PATCH", billingProject, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating Source %q: %s", d.Id(), err) diff --git a/google/resource_source_repo_repository.go b/google/resource_source_repo_repository.go index bab3675ac8a..9dca714f6b8 100644 --- a/google/resource_source_repo_repository.go +++ b/google/resource_source_repo_repository.go @@ -145,11 +145,20 @@ func resourceSourceRepoRepositoryCreate(d *schema.ResourceData, meta interface{} } log.Printf("[DEBUG] Creating new Repository: %#v", obj) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating Repository: %s", err) } @@ -180,11 +189,20 @@ func resourceSourceRepoRepositoryRead(d *schema.ResourceData, meta interface{}) return err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequest(config, "GET", project, url, nil) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("SourceRepoRepository %q", d.Id())) } @@ -212,10 +230,13 @@ func resourceSourceRepoRepositoryRead(d *schema.ResourceData, meta interface{}) func resourceSourceRepoRepositoryUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project obj := make(map[string]interface{}) pubsubConfigsProp, err := expandSourceRepoRepositoryPubsubConfigs(d.Get("pubsub_configs"), d, config) @@ -247,7 +268,13 @@ func resourceSourceRepoRepositoryUpdate(d *schema.ResourceData, meta interface{} if err != nil { return err } - res, err := sendRequestWithTimeout(config, "PATCH", project, url, obj, d.Timeout(schema.TimeoutUpdate)) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "PATCH", billingProject, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating Repository %q: %s", d.Id(), err) @@ -261,10 +288,13 @@ func resourceSourceRepoRepositoryUpdate(d *schema.ResourceData, meta interface{} func resourceSourceRepoRepositoryDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project url, err := replaceVars(d, config, "{{SourceRepoBasePath}}projects/{{project}}/repos/{{name}}") if err != nil { @@ -274,7 +304,12 @@ func resourceSourceRepoRepositoryDelete(d *schema.ResourceData, meta interface{} var obj map[string]interface{} log.Printf("[DEBUG] Deleting Repository %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "DELETE", billingProject, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "Repository") } diff --git a/google/resource_spanner_database.go b/google/resource_spanner_database.go index 3d76a15a930..d6b131bee09 100644 --- a/google/resource_spanner_database.go +++ b/google/resource_spanner_database.go @@ -115,11 +115,20 @@ func resourceSpannerDatabaseCreate(d *schema.ResourceData, meta interface{}) err } log.Printf("[DEBUG] Creating new Database: %#v", obj) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating Database: %s", err) } @@ -175,11 +184,20 @@ func resourceSpannerDatabaseRead(d *schema.ResourceData, meta interface{}) error return err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequest(config, "GET", project, url, nil) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("SpannerDatabase %q", d.Id())) } @@ -216,10 +234,13 @@ func resourceSpannerDatabaseRead(d *schema.ResourceData, meta interface{}) error func resourceSpannerDatabaseDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project url, err := replaceVars(d, config, "{{SpannerBasePath}}projects/{{project}}/instances/{{instance}}/databases/{{name}}") if err != nil { @@ -229,7 +250,12 @@ func resourceSpannerDatabaseDelete(d *schema.ResourceData, meta interface{}) err var obj map[string]interface{} log.Printf("[DEBUG] Deleting Database %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "DELETE", billingProject, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "Database") } diff --git a/google/resource_spanner_instance.go b/google/resource_spanner_instance.go index fb7f338248d..2f2de8c0bb0 100644 --- a/google/resource_spanner_instance.go +++ b/google/resource_spanner_instance.go @@ -149,11 +149,20 @@ func resourceSpannerInstanceCreate(d *schema.ResourceData, meta interface{}) err } log.Printf("[DEBUG] Creating new Instance: %#v", obj) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating Instance: %s", err) } @@ -214,11 +223,20 @@ func resourceSpannerInstanceRead(d *schema.ResourceData, meta interface{}) error return err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequest(config, "GET", project, url, nil) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("SpannerInstance %q", d.Id())) } @@ -264,10 +282,13 @@ func resourceSpannerInstanceRead(d *schema.ResourceData, meta interface{}) error func resourceSpannerInstanceUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project obj := make(map[string]interface{}) configProp, err := expandSpannerInstanceConfig(d.Get("config"), d, config) @@ -306,7 +327,13 @@ func resourceSpannerInstanceUpdate(d *schema.ResourceData, meta interface{}) err } log.Printf("[DEBUG] Updating Instance %q: %#v", d.Id(), obj) - res, err := sendRequestWithTimeout(config, "PATCH", project, url, obj, d.Timeout(schema.TimeoutUpdate)) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "PATCH", billingProject, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating Instance %q: %s", d.Id(), err) @@ -328,10 +355,13 @@ func resourceSpannerInstanceUpdate(d *schema.ResourceData, meta interface{}) err func resourceSpannerInstanceDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project url, err := replaceVars(d, config, "{{SpannerBasePath}}projects/{{project}}/instances/{{name}}") if err != nil { @@ -341,7 +371,12 @@ func resourceSpannerInstanceDelete(d *schema.ResourceData, meta interface{}) err var obj map[string]interface{} log.Printf("[DEBUG] Deleting Instance %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "DELETE", billingProject, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "Instance") } diff --git a/google/resource_sql_database.go b/google/resource_sql_database.go index f345b1f8e98..654e00b48cd 100644 --- a/google/resource_sql_database.go +++ b/google/resource_sql_database.go @@ -131,11 +131,20 @@ func resourceSQLDatabaseCreate(d *schema.ResourceData, meta interface{}) error { } log.Printf("[DEBUG] Creating new Database: %#v", obj) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating Database: %s", err) } @@ -170,11 +179,20 @@ func resourceSQLDatabaseRead(d *schema.ResourceData, meta interface{}) error { return err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequest(config, "GET", project, url, nil) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(transformSQLDatabaseReadError(err), d, fmt.Sprintf("SQLDatabase %q", d.Id())) } @@ -205,10 +223,13 @@ func resourceSQLDatabaseRead(d *schema.ResourceData, meta interface{}) error { func resourceSQLDatabaseUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project obj := make(map[string]interface{}) charsetProp, err := expandSQLDatabaseCharset(d.Get("charset"), d, config) @@ -249,7 +270,13 @@ func resourceSQLDatabaseUpdate(d *schema.ResourceData, meta interface{}) error { } log.Printf("[DEBUG] Updating Database %q: %#v", d.Id(), obj) - res, err := sendRequestWithTimeout(config, "PUT", project, url, obj, d.Timeout(schema.TimeoutUpdate)) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "PUT", billingProject, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating Database %q: %s", d.Id(), err) @@ -271,10 +298,13 @@ func resourceSQLDatabaseUpdate(d *schema.ResourceData, meta interface{}) error { func resourceSQLDatabaseDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project lockName, err := replaceVars(d, config, "google-sql-database-instance-{{project}}-{{instance}}") if err != nil { @@ -291,7 +321,12 @@ func resourceSQLDatabaseDelete(d *schema.ResourceData, meta interface{}) error { var obj map[string]interface{} log.Printf("[DEBUG] Deleting Database %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "DELETE", billingProject, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "Database") } diff --git a/google/resource_sql_source_representation_instance.go b/google/resource_sql_source_representation_instance.go index 1340b9c46ff..8fd7a12ef94 100644 --- a/google/resource_sql_source_representation_instance.go +++ b/google/resource_sql_source_representation_instance.go @@ -131,11 +131,20 @@ func resourceSQLSourceRepresentationInstanceCreate(d *schema.ResourceData, meta } log.Printf("[DEBUG] Creating new SourceRepresentationInstance: %#v", obj) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating SourceRepresentationInstance: %s", err) } @@ -170,11 +179,20 @@ func resourceSQLSourceRepresentationInstanceRead(d *schema.ResourceData, meta in return err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequest(config, "GET", project, url, nil) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("SQLSourceRepresentationInstance %q", d.Id())) } @@ -224,10 +242,13 @@ func resourceSQLSourceRepresentationInstanceRead(d *schema.ResourceData, meta in func resourceSQLSourceRepresentationInstanceDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project url, err := replaceVars(d, config, "{{SQLBasePath}}projects/{{project}}/instances/{{name}}") if err != nil { @@ -237,7 +258,12 @@ func resourceSQLSourceRepresentationInstanceDelete(d *schema.ResourceData, meta var obj map[string]interface{} log.Printf("[DEBUG] Deleting SourceRepresentationInstance %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "DELETE", billingProject, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "SourceRepresentationInstance") } diff --git a/google/resource_storage_bucket_access_control.go b/google/resource_storage_bucket_access_control.go index b45ac2291e2..bf798489fcb 100644 --- a/google/resource_storage_bucket_access_control.go +++ b/google/resource_storage_bucket_access_control.go @@ -125,7 +125,14 @@ func resourceStorageBucketAccessControlCreate(d *schema.ResourceData, meta inter } log.Printf("[DEBUG] Creating new BucketAccessControl: %#v", obj) - res, err := sendRequestWithTimeout(config, "POST", "", url, obj, d.Timeout(schema.TimeoutCreate)) + billingProject := "" + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating BucketAccessControl: %s", err) } @@ -150,7 +157,14 @@ func resourceStorageBucketAccessControlRead(d *schema.ResourceData, meta interfa return err } - res, err := sendRequest(config, "GET", "", url, nil) + billingProject := "" + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("StorageBucketAccessControl %q", d.Id())) } @@ -177,6 +191,8 @@ func resourceStorageBucketAccessControlRead(d *schema.ResourceData, meta interfa func resourceStorageBucketAccessControlUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + obj := make(map[string]interface{}) bucketProp, err := expandStorageBucketAccessControlBucket(d.Get("bucket"), d, config) if err != nil { @@ -210,7 +226,13 @@ func resourceStorageBucketAccessControlUpdate(d *schema.ResourceData, meta inter } log.Printf("[DEBUG] Updating BucketAccessControl %q: %#v", d.Id(), obj) - res, err := sendRequestWithTimeout(config, "PUT", "", url, obj, d.Timeout(schema.TimeoutUpdate)) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "PUT", billingProject, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating BucketAccessControl %q: %s", d.Id(), err) @@ -224,6 +246,8 @@ func resourceStorageBucketAccessControlUpdate(d *schema.ResourceData, meta inter func resourceStorageBucketAccessControlDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + lockName, err := replaceVars(d, config, "storage/buckets/{{bucket}}") if err != nil { return err @@ -239,7 +263,12 @@ func resourceStorageBucketAccessControlDelete(d *schema.ResourceData, meta inter var obj map[string]interface{} log.Printf("[DEBUG] Deleting BucketAccessControl %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", "", url, obj, d.Timeout(schema.TimeoutDelete)) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "DELETE", billingProject, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "BucketAccessControl") } diff --git a/google/resource_storage_default_object_access_control.go b/google/resource_storage_default_object_access_control.go index 398aca60358..eaf4c9d6d10 100644 --- a/google/resource_storage_default_object_access_control.go +++ b/google/resource_storage_default_object_access_control.go @@ -160,7 +160,14 @@ func resourceStorageDefaultObjectAccessControlCreate(d *schema.ResourceData, met } log.Printf("[DEBUG] Creating new DefaultObjectAccessControl: %#v", obj) - res, err := sendRequestWithTimeout(config, "POST", "", url, obj, d.Timeout(schema.TimeoutCreate)) + billingProject := "" + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating DefaultObjectAccessControl: %s", err) } @@ -185,7 +192,14 @@ func resourceStorageDefaultObjectAccessControlRead(d *schema.ResourceData, meta return err } - res, err := sendRequest(config, "GET", "", url, nil) + billingProject := "" + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("StorageDefaultObjectAccessControl %q", d.Id())) } @@ -221,6 +235,8 @@ func resourceStorageDefaultObjectAccessControlRead(d *schema.ResourceData, meta func resourceStorageDefaultObjectAccessControlUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + obj := make(map[string]interface{}) bucketProp, err := expandStorageDefaultObjectAccessControlBucket(d.Get("bucket"), d, config) if err != nil { @@ -260,7 +276,13 @@ func resourceStorageDefaultObjectAccessControlUpdate(d *schema.ResourceData, met } log.Printf("[DEBUG] Updating DefaultObjectAccessControl %q: %#v", d.Id(), obj) - res, err := sendRequestWithTimeout(config, "PUT", "", url, obj, d.Timeout(schema.TimeoutUpdate)) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "PUT", billingProject, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating DefaultObjectAccessControl %q: %s", d.Id(), err) @@ -274,6 +296,8 @@ func resourceStorageDefaultObjectAccessControlUpdate(d *schema.ResourceData, met func resourceStorageDefaultObjectAccessControlDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + lockName, err := replaceVars(d, config, "storage/buckets/{{bucket}}") if err != nil { return err @@ -289,7 +313,12 @@ func resourceStorageDefaultObjectAccessControlDelete(d *schema.ResourceData, met var obj map[string]interface{} log.Printf("[DEBUG] Deleting DefaultObjectAccessControl %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", "", url, obj, d.Timeout(schema.TimeoutDelete)) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "DELETE", billingProject, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "DefaultObjectAccessControl") } diff --git a/google/resource_storage_hmac_key.go b/google/resource_storage_hmac_key.go index 06096cb8d52..9268927006a 100644 --- a/google/resource_storage_hmac_key.go +++ b/google/resource_storage_hmac_key.go @@ -109,11 +109,20 @@ func resourceStorageHmacKeyCreate(d *schema.ResourceData, meta interface{}) erro } log.Printf("[DEBUG] Creating new HmacKey: %#v", obj) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating HmacKey: %s", err) } @@ -162,11 +171,20 @@ func resourceStorageHmacKeyRead(d *schema.ResourceData, meta interface{}) error return err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequest(config, "GET", project, url, nil) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("StorageHmacKey %q", d.Id())) } @@ -209,10 +227,13 @@ func resourceStorageHmacKeyRead(d *schema.ResourceData, meta interface{}) error func resourceStorageHmacKeyUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project d.Partial(true) @@ -223,7 +244,13 @@ func resourceStorageHmacKeyUpdate(d *schema.ResourceData, meta interface{}) erro if err != nil { return err } - getRes, err := sendRequest(config, "GET", project, getUrl, nil) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + getRes, err := sendRequest(config, "GET", billingProject, getUrl, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("StorageHmacKey %q", d.Id())) } @@ -241,7 +268,13 @@ func resourceStorageHmacKeyUpdate(d *schema.ResourceData, meta interface{}) erro if err != nil { return err } - res, err := sendRequestWithTimeout(config, "PUT", project, url, obj, d.Timeout(schema.TimeoutUpdate)) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "PUT", billingProject, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating HmacKey %q: %s", d.Id(), err) } else { @@ -259,10 +292,13 @@ func resourceStorageHmacKeyUpdate(d *schema.ResourceData, meta interface{}) erro func resourceStorageHmacKeyDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project url, err := replaceVars(d, config, "{{StorageBasePath}}projects/{{project}}/hmacKeys/{{access_id}}") if err != nil { @@ -297,7 +333,12 @@ func resourceStorageHmacKeyDelete(d *schema.ResourceData, meta interface{}) erro } log.Printf("[DEBUG] Deleting HmacKey %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "DELETE", billingProject, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "HmacKey") } diff --git a/google/resource_storage_object_access_control.go b/google/resource_storage_object_access_control.go index c81764d9a72..012b9a450f1 100644 --- a/google/resource_storage_object_access_control.go +++ b/google/resource_storage_object_access_control.go @@ -160,7 +160,14 @@ func resourceStorageObjectAccessControlCreate(d *schema.ResourceData, meta inter } log.Printf("[DEBUG] Creating new ObjectAccessControl: %#v", obj) - res, err := sendRequestWithTimeout(config, "POST", "", url, obj, d.Timeout(schema.TimeoutCreate)) + billingProject := "" + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating ObjectAccessControl: %s", err) } @@ -185,7 +192,14 @@ func resourceStorageObjectAccessControlRead(d *schema.ResourceData, meta interfa return err } - res, err := sendRequest(config, "GET", "", url, nil) + billingProject := "" + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("StorageObjectAccessControl %q", d.Id())) } @@ -224,6 +238,8 @@ func resourceStorageObjectAccessControlRead(d *schema.ResourceData, meta interfa func resourceStorageObjectAccessControlUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + obj := make(map[string]interface{}) bucketProp, err := expandStorageObjectAccessControlBucket(d.Get("bucket"), d, config) if err != nil { @@ -263,7 +279,13 @@ func resourceStorageObjectAccessControlUpdate(d *schema.ResourceData, meta inter } log.Printf("[DEBUG] Updating ObjectAccessControl %q: %#v", d.Id(), obj) - res, err := sendRequestWithTimeout(config, "PUT", "", url, obj, d.Timeout(schema.TimeoutUpdate)) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "PUT", billingProject, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating ObjectAccessControl %q: %s", d.Id(), err) @@ -277,6 +299,8 @@ func resourceStorageObjectAccessControlUpdate(d *schema.ResourceData, meta inter func resourceStorageObjectAccessControlDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + lockName, err := replaceVars(d, config, "storage/buckets/{{bucket}}/objects/{{object}}") if err != nil { return err @@ -292,7 +316,12 @@ func resourceStorageObjectAccessControlDelete(d *schema.ResourceData, meta inter var obj map[string]interface{} log.Printf("[DEBUG] Deleting ObjectAccessControl %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", "", url, obj, d.Timeout(schema.TimeoutDelete)) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "DELETE", billingProject, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "ObjectAccessControl") } diff --git a/google/resource_tpu_node.go b/google/resource_tpu_node.go index 00fe56cc6b4..81cbb243b42 100644 --- a/google/resource_tpu_node.go +++ b/google/resource_tpu_node.go @@ -254,11 +254,20 @@ func resourceTPUNodeCreate(d *schema.ResourceData, meta interface{}) error { } log.Printf("[DEBUG] Creating new Node: %#v", obj) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating Node: %s", err) } @@ -306,11 +315,20 @@ func resourceTPUNodeRead(d *schema.ResourceData, meta interface{}) error { return err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequest(config, "GET", project, url, nil) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("TPUNode %q", d.Id())) } @@ -356,10 +374,13 @@ func resourceTPUNodeRead(d *schema.ResourceData, meta interface{}) error { func resourceTPUNodeUpdate(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project d.Partial(true) @@ -377,7 +398,13 @@ func resourceTPUNodeUpdate(d *schema.ResourceData, meta interface{}) error { if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutUpdate)) + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutUpdate)) if err != nil { return fmt.Errorf("Error updating Node %q: %s", d.Id(), err) } else { @@ -402,10 +429,13 @@ func resourceTPUNodeUpdate(d *schema.ResourceData, meta interface{}) error { func resourceTPUNodeDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project url, err := replaceVars(d, config, "{{TPUBasePath}}projects/{{project}}/locations/{{zone}}/nodes/{{name}}") if err != nil { @@ -415,7 +445,12 @@ func resourceTPUNodeDelete(d *schema.ResourceData, meta interface{}) error { var obj map[string]interface{} log.Printf("[DEBUG] Deleting Node %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "DELETE", billingProject, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "Node") } diff --git a/google/resource_vpc_access_connector.go b/google/resource_vpc_access_connector.go index c0923b2a332..a9a98b21af0 100644 --- a/google/resource_vpc_access_connector.go +++ b/google/resource_vpc_access_connector.go @@ -147,11 +147,20 @@ func resourceVPCAccessConnectorCreate(d *schema.ResourceData, meta interface{}) } log.Printf("[DEBUG] Creating new Connector: %#v", obj) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequestWithTimeout(config, "POST", project, url, obj, d.Timeout(schema.TimeoutCreate)) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "POST", billingProject, url, obj, d.Timeout(schema.TimeoutCreate)) if err != nil { return fmt.Errorf("Error creating Connector: %s", err) } @@ -212,11 +221,20 @@ func resourceVPCAccessConnectorRead(d *schema.ResourceData, meta interface{}) er return err } + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } - res, err := sendRequest(config, "GET", project, url, nil) + billingProject = project + + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequest(config, "GET", billingProject, url, nil) if err != nil { return handleNotFoundError(err, d, fmt.Sprintf("VPCAccessConnector %q", d.Id())) } @@ -262,10 +280,13 @@ func resourceVPCAccessConnectorRead(d *schema.ResourceData, meta interface{}) er func resourceVPCAccessConnectorDelete(d *schema.ResourceData, meta interface{}) error { config := meta.(*Config) + billingProject := "" + project, err := getProject(d, config) if err != nil { return err } + billingProject = project url, err := replaceVars(d, config, "{{VPCAccessBasePath}}projects/{{project}}/locations/{{region}}/connectors/{{name}}") if err != nil { @@ -275,7 +296,12 @@ func resourceVPCAccessConnectorDelete(d *schema.ResourceData, meta interface{}) var obj map[string]interface{} log.Printf("[DEBUG] Deleting Connector %q", d.Id()) - res, err := sendRequestWithTimeout(config, "DELETE", project, url, obj, d.Timeout(schema.TimeoutDelete)) + // err == nil indicates that the billing_project value was found + if bp, err := getBillingProject(d, config); err == nil { + billingProject = bp + } + + res, err := sendRequestWithTimeout(config, "DELETE", billingProject, url, obj, d.Timeout(schema.TimeoutDelete)) if err != nil { return handleNotFoundError(err, d, "Connector") } diff --git a/google/utils.go b/google/utils.go index 8a5571e3b3c..d5b3cdc8e9b 100644 --- a/google/utils.go +++ b/google/utils.go @@ -55,6 +55,12 @@ func getProject(d TerraformResourceData, config *Config) (string, error) { return getProjectFromSchema("project", d, config) } +// getBillingProject reads the "billing_project" field from the given resource data and falls +// back to the provider's value if not given. If no value is found, an error is returned. +func getBillingProject(d TerraformResourceData, config *Config) (string, error) { + return getBillingProjectFromSchema("billing_project", d, config) +} + // getProjectFromDiff reads the "project" field from the given diff and falls // back to the provider's value if not given. If the provider's value is not // given, an error is returned. diff --git a/website/docs/guides/provider_reference.html.markdown b/website/docs/guides/provider_reference.html.markdown index 5ae71b387b3..796b2ca0e50 100644 --- a/website/docs/guides/provider_reference.html.markdown +++ b/website/docs/guides/provider_reference.html.markdown @@ -107,6 +107,11 @@ resource project for preconditions, quota, and billing, instead of the project the credentials belong to. Not all resources support this- see the documentation for each resource to learn whether it does. +* `billing_project` - (Optional) This fields specifies a project that's used for +preconditions, quota, and billing for requests. All resources that support user project +overrides will use this project instead of the resource's project (if available). This +field is ignored if `user_project_override` is set to false or unset. + * `{{service}}_custom_endpoint` - (Optional) The endpoint for a service's APIs, such as `compute_custom_endpoint`. Defaults to the production GCP endpoint for the service. This can be used to configure the Google provider to communicate @@ -179,6 +184,13 @@ following ordered by precedence. --- +* `billing_project` - (Optional) This fields allows Terraform to set X-Goog-User-Project +for APIs that require a billing project to be specified like Access Context Manager APIs if +User ADCs are being used. This can also be +specified using the `GOOGLE_BILLING_PROJECT` environment variable. + +--- + * `region` - (Optional) The default region to manage resources in. If another region is specified on a regional resource, it will take precedence. Alternatively, this can be specified using the `GOOGLE_REGION` environment @@ -360,7 +372,8 @@ to create the resource. This may help in those cases. * `user_project_override` - (Optional) Defaults to false. If true, uses the resource project for preconditions, quota, and billing, instead of the project the credentials belong to. Not all resources support this- see the -documentation for each resource to learn whether it does. +documentation for each resource to learn whether it does. Alternatively, this can +be specified using the `USER_PROJECT_OVERRIDE` environment variable. When set to false, the project the credentials belong to will be billed for the request, and quota / API enablement checks will be done against that project. diff --git a/website/docs/r/access_context_manager_access_level.html.markdown b/website/docs/r/access_context_manager_access_level.html.markdown index 434b209f3bf..4fe937c454b 100644 --- a/website/docs/r/access_context_manager_access_level.html.markdown +++ b/website/docs/r/access_context_manager_access_level.html.markdown @@ -33,6 +33,12 @@ To get more information about AccessLevel, see: * How-to Guides * [Access Policy Quickstart](https://cloud.google.com/access-context-manager/docs/quickstart) +~> **Warning:** If you are using User ADCs (Application Default Credentials) with this resource, +you must specify a `billing_project` and set `user_project_override` to true +in the provider configuration. Otherwise the ACM API will return a 403 error. +Your account must have the `serviceusage.services.use` permission on the +`billing_project` you defined. + ## Example Usage - Access Context Manager Access Level Basic diff --git a/website/docs/r/access_context_manager_access_policy.html.markdown b/website/docs/r/access_context_manager_access_policy.html.markdown index 7aa5911499e..249c910bab3 100644 --- a/website/docs/r/access_context_manager_access_policy.html.markdown +++ b/website/docs/r/access_context_manager_access_policy.html.markdown @@ -37,6 +37,12 @@ To get more information about AccessPolicy, see: * How-to Guides * [Access Policy Quickstart](https://cloud.google.com/access-context-manager/docs/quickstart) +~> **Warning:** If you are using User ADCs (Application Default Credentials) with this resource, +you must specify a `billing_project` and set `user_project_override` to true +in the provider configuration. Otherwise the ACM API will return a 403 error. +Your account must have the `serviceusage.services.use` permission on the +`billing_project` you defined. + ## Example Usage - Access Context Manager Access Policy Basic diff --git a/website/docs/r/access_context_manager_service_perimeter.html.markdown b/website/docs/r/access_context_manager_service_perimeter.html.markdown index 0cafb0a8868..3461c38fdeb 100644 --- a/website/docs/r/access_context_manager_service_perimeter.html.markdown +++ b/website/docs/r/access_context_manager_service_perimeter.html.markdown @@ -41,6 +41,12 @@ To get more information about ServicePerimeter, see: * How-to Guides * [Service Perimeter Quickstart](https://cloud.google.com/vpc-service-controls/docs/quickstart) +~> **Warning:** If you are using User ADCs (Application Default Credentials) with this resource, +you must specify a `billing_project` and set `user_project_override` to true +in the provider configuration. Otherwise the ACM API will return a 403 error. +Your account must have the `serviceusage.services.use` permission on the +`billing_project` you defined. + ## Example Usage - Access Context Manager Service Perimeter Basic diff --git a/website/docs/r/access_context_manager_service_perimeter_resource.html.markdown b/website/docs/r/access_context_manager_service_perimeter_resource.html.markdown index 74dcb02ce8a..f6b874f50cc 100644 --- a/website/docs/r/access_context_manager_service_perimeter_resource.html.markdown +++ b/website/docs/r/access_context_manager_service_perimeter_resource.html.markdown @@ -38,6 +38,12 @@ To get more information about ServicePerimeterResource, see: * How-to Guides * [Service Perimeter Quickstart](https://cloud.google.com/vpc-service-controls/docs/quickstart) +~> **Warning:** If you are using User ADCs (Application Default Credentials) with this resource, +you must specify a `billing_project` and set `user_project_override` to true +in the provider configuration. Otherwise the ACM API will return a 403 error. +Your account must have the `serviceusage.services.use` permission on the +`billing_project` you defined. + ## Example Usage - Access Context Manager Service Perimeter Resource Basic