diff --git a/.changelog/6387.txt b/.changelog/6387.txt new file mode 100644 index 0000000000..b0d62f4ad5 --- /dev/null +++ b/.changelog/6387.txt @@ -0,0 +1,3 @@ +```release-note:bug +bigquery: Data Transfer: removed force replacement for `display_name` on `google_bigquery_data_transfer_config` +``` diff --git a/google-beta/resource_bigquery_data_transfer_config.go b/google-beta/resource_bigquery_data_transfer_config.go index 1576e34161..9f51dec6b7 100644 --- a/google-beta/resource_bigquery_data_transfer_config.go +++ b/google-beta/resource_bigquery_data_transfer_config.go @@ -67,7 +67,6 @@ func resourceBigqueryDataTransferConfig() *schema.Resource { "display_name": { Type: schema.TypeString, Required: true, - ForceNew: true, Description: `The user specified display name for the transfer config.`, }, "params": { @@ -460,6 +459,12 @@ func resourceBigqueryDataTransferConfigUpdate(d *schema.ResourceData, meta inter billingProject = project obj := make(map[string]interface{}) + displayNameProp, err := expandBigqueryDataTransferConfigDisplayName(d.Get("display_name"), d, config) + if err != nil { + return err + } else if v, ok := d.GetOkExists("display_name"); !isEmptyValue(reflect.ValueOf(v)) && (ok || !reflect.DeepEqual(v, displayNameProp)) { + obj["displayName"] = displayNameProp + } destinationDatasetIdProp, err := expandBigqueryDataTransferConfigDestinationDatasetId(d.Get("destination_dataset_id"), d, config) if err != nil { return err @@ -522,6 +527,10 @@ func resourceBigqueryDataTransferConfigUpdate(d *schema.ResourceData, meta inter log.Printf("[DEBUG] Updating Config %q: %#v", d.Id(), obj) updateMask := []string{} + if d.HasChange("display_name") { + updateMask = append(updateMask, "displayName") + } + if d.HasChange("destination_dataset_id") { updateMask = append(updateMask, "destinationDatasetId") } diff --git a/google-beta/resource_bigquery_data_transfer_config_test.go b/google-beta/resource_bigquery_data_transfer_config_test.go index 2c0ab80538..90feba9124 100644 --- a/google-beta/resource_bigquery_data_transfer_config_test.go +++ b/google-beta/resource_bigquery_data_transfer_config_test.go @@ -47,7 +47,7 @@ func testAccBigqueryDataTransferConfig_scheduledQuery_basic(t *testing.T) { CheckDestroy: testAccCheckBigqueryDataTransferConfigDestroyProducer(t), Steps: []resource.TestStep{ { - Config: testAccBigqueryDataTransferConfig_scheduledQuery(random_suffix, "third", start_time, end_time, "y"), + Config: testAccBigqueryDataTransferConfig_scheduledQuery(random_suffix, random_suffix, "third", start_time, end_time, "y"), }, { ResourceName: "google_bigquery_data_transfer_config.query_config", @@ -68,6 +68,7 @@ func testAccBigqueryDataTransferConfig_scheduledQuery_update(t *testing.T) { first_end_time := now.AddDate(0, 1, 0).Format(time.RFC3339) second_start_time := now.Add(2 * time.Hour).Format(time.RFC3339) second_end_time := now.AddDate(0, 2, 0).Format(time.RFC3339) + random_suffix2 := randString(t, 10) vcrTest(t, resource.TestCase{ PreCheck: func() { testAccPreCheck(t) }, @@ -75,10 +76,19 @@ func testAccBigqueryDataTransferConfig_scheduledQuery_update(t *testing.T) { CheckDestroy: testAccCheckBigqueryDataTransferConfigDestroyProducer(t), Steps: []resource.TestStep{ { - Config: testAccBigqueryDataTransferConfig_scheduledQuery(random_suffix, "first", first_start_time, first_end_time, "y"), + Config: testAccBigqueryDataTransferConfig_scheduledQuery(random_suffix, random_suffix, "first", first_start_time, first_end_time, "y"), }, { - Config: testAccBigqueryDataTransferConfig_scheduledQuery(random_suffix, "second", second_start_time, second_end_time, "z"), + Config: testAccBigqueryDataTransferConfig_scheduledQuery(random_suffix, random_suffix, "second", second_start_time, second_end_time, "z"), + }, + { + ResourceName: "google_bigquery_data_transfer_config.query_config", + ImportState: true, + ImportStateVerify: true, + ImportStateVerifyIgnore: []string{"location"}, + }, + { + Config: testAccBigqueryDataTransferConfig_scheduledQuery(random_suffix, random_suffix2, "second", second_start_time, second_end_time, "z"), }, { ResourceName: "google_bigquery_data_transfer_config.query_config", @@ -185,7 +195,7 @@ func testAccCheckBigqueryDataTransferConfigDestroyProducer(t *testing.T) func(s } } -func testAccBigqueryDataTransferConfig_scheduledQuery(random_suffix, schedule, start_time, end_time, letter string) string { +func testAccBigqueryDataTransferConfig_scheduledQuery(random_suffix, random_suffix2, schedule, start_time, end_time, letter string) string { return fmt.Sprintf(` data "google_project" "project" {} @@ -233,7 +243,7 @@ resource "google_bigquery_data_transfer_config" "query_config" { query = "SELECT name FROM tabl WHERE x = '%s'" } } -`, random_suffix, random_suffix, random_suffix, schedule, start_time, end_time, letter) +`, random_suffix, random_suffix, random_suffix2, schedule, start_time, end_time, letter) } func testAccBigqueryDataTransferConfig_scheduledQuery_service_account(random_suffix string) string {