diff --git a/build/terraform b/build/terraform index 6ee10e3bf371..8e515c93631f 160000 --- a/build/terraform +++ b/build/terraform @@ -1 +1 @@ -Subproject commit 6ee10e3bf3713085d5571b9190451769b21fbe89 +Subproject commit 8e515c93631f0e4d3480987b3da613036462e276 diff --git a/build/terraform-beta b/build/terraform-beta index d5b16b6ea34f..97025afaf9f3 160000 --- a/build/terraform-beta +++ b/build/terraform-beta @@ -1 +1 @@ -Subproject commit d5b16b6ea34fd64ce65c0a8f3dcfbf204ff7c1c7 +Subproject commit 97025afaf9f30c0013ab3627062edb46818a6430 diff --git a/third_party/terraform/resources/resource_bigquery_dataset.go b/third_party/terraform/resources/resource_bigquery_dataset.go index e17f0dee7043..7b1da3554cd9 100644 --- a/third_party/terraform/resources/resource_bigquery_dataset.go +++ b/third_party/terraform/resources/resource_bigquery_dataset.go @@ -72,7 +72,7 @@ func resourceBigQueryDataset() *schema.Resource { Optional: true, ForceNew: true, Default: "US", - ValidateFunc: validation.StringInSlice([]string{"US", "EU", "asia-northeast1", "europe-west2", "australia-southeast1"}, false), + ValidateFunc: validation.StringInSlice([]string{"US", "EU", "asia-east1", "asia-northeast1", "asia-southeast1", "australia-southeast1", "europe-north1", "europe-west2", "us-east4"}, false), }, // defaultPartitionExpirationMs: [Optional] The default partition diff --git a/third_party/terraform/tests/resource_bigquery_dataset_test.go b/third_party/terraform/tests/resource_bigquery_dataset_test.go index 2aa023545e85..9b162d156bbf 100644 --- a/third_party/terraform/tests/resource_bigquery_dataset_test.go +++ b/third_party/terraform/tests/resource_bigquery_dataset_test.go @@ -87,6 +87,82 @@ func TestAccBigQueryDataset_access(t *testing.T) { }) } +func TestAccBigQueryDataset_regionalLocation(t *testing.T) { + t.Parallel() + + datasetID1 := fmt.Sprintf("tf_test_%s", acctest.RandString(10)) + datasetID2 := fmt.Sprintf("tf_test_%s", acctest.RandString(10)) + datasetID3 := fmt.Sprintf("tf_test_%s", acctest.RandString(10)) + datasetID4 := fmt.Sprintf("tf_test_%s", acctest.RandString(10)) + datasetID5 := fmt.Sprintf("tf_test_%s", acctest.RandString(10)) + datasetID6 := fmt.Sprintf("tf_test_%s", acctest.RandString(10)) + datasetID7 := fmt.Sprintf("tf_test_%s", acctest.RandString(10)) + + resource.Test(t, resource.TestCase{ + PreCheck: func() { testAccPreCheck(t) }, + Providers: testAccProviders, + CheckDestroy: testAccCheckBigQueryDatasetDestroy, + Steps: []resource.TestStep{ + { + Config: testAccBigQueryRegionalDataset(datasetID1, "asia-east1"), + }, + { + ResourceName: "google_bigquery_dataset.test", + ImportState: true, + ImportStateVerify: true, + }, + { + Config: testAccBigQueryRegionalDataset(datasetID2, "asia-northeast1"), + }, + { + ResourceName: "google_bigquery_dataset.test", + ImportState: true, + ImportStateVerify: true, + }, + { + Config: testAccBigQueryRegionalDataset(datasetID3, "asia-southeast1"), + }, + { + ResourceName: "google_bigquery_dataset.test", + ImportState: true, + ImportStateVerify: true, + }, + { + Config: testAccBigQueryRegionalDataset(datasetID4, "australia-southeast1"), + }, + { + ResourceName: "google_bigquery_dataset.test", + ImportState: true, + ImportStateVerify: true, + }, + { + Config: testAccBigQueryRegionalDataset(datasetID5, "europe-north1"), + }, + { + ResourceName: "google_bigquery_dataset.test", + ImportState: true, + ImportStateVerify: true, + }, + { + Config: testAccBigQueryRegionalDataset(datasetID6, "europe-west2"), + }, + { + ResourceName: "google_bigquery_dataset.test", + ImportState: true, + ImportStateVerify: true, + }, + { + Config: testAccBigQueryRegionalDataset(datasetID7, "us-east4"), + }, + { + ResourceName: "google_bigquery_dataset.test", + ImportState: true, + ImportStateVerify: true, + }, + }, + }) +} + func testAccCheckBigQueryDatasetDestroy(s *terraform.State) error { config := testAccProvider.Meta().(*Config) @@ -138,6 +214,22 @@ resource "google_bigquery_dataset" "test" { }`, datasetID) } +func testAccBigQueryRegionalDataset(datasetID string, location string) string { + return fmt.Sprintf(` +resource "google_bigquery_dataset" "test" { + dataset_id = "%s" + friendly_name = "foo" + description = "This is a foo description" + location = "%s" + default_table_expiration_ms = 3600000 + + labels { + env = "foo" + default_table_expiration_ms = 3600000 + } +}`, datasetID, location) +} + func testAccBigQueryDatasetWithOneAccess(datasetID string) string { return fmt.Sprintf(` resource "google_bigquery_dataset" "access_test" { diff --git a/third_party/terraform/website/docs/r/bigquery_dataset.html.markdown b/third_party/terraform/website/docs/r/bigquery_dataset.html.markdown index be394886f3f0..845d11c939aa 100644 --- a/third_party/terraform/website/docs/r/bigquery_dataset.html.markdown +++ b/third_party/terraform/website/docs/r/bigquery_dataset.html.markdown @@ -60,7 +60,9 @@ The following arguments are supported: multi-regional location is a large geographic area, such as the United States, that contains at least two geographic places - Possible regional values include: `asia-northeast1` + Possible regional values include: `asia-east1`, `asia-northeast1`, `asia-southeast1` + `australia-southeast1`, `europe-north1`, `europe-west2` and `us-east4`. + Possible multi-regional values:`EU` and `US`. The default value is multi-regional location `US`.