Skip to content

Commit 9fadbec

Browse files
Add Azure odic support for BQ Omni connections (#7188) (#13614)
Signed-off-by: Modular Magician <[email protected]> Co-authored-by: Cameron Thornton <[email protected]>
1 parent edb1e92 commit 9fadbec

File tree

4 files changed

+33
-1
lines changed

4 files changed

+33
-1
lines changed

.changelog/7188.txt

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
```release-note:enhancement
2+
bigquery: Added support for federated Azure identities to BigQuery Omni connections.
3+
```

google/resource_bigquery_connection.go

+24-1
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,11 @@ func resourceBigqueryConnectionConnection() *schema.Resource {
8585
Required: true,
8686
Description: `The id of customer's directory that host the data.`,
8787
},
88+
"federated_application_client_id": {
89+
Type: schema.TypeString,
90+
Optional: true,
91+
Description: `The Azure Application (client) ID where the federated credentials will be hosted.`,
92+
},
8893
"application": {
8994
Type: schema.TypeString,
9095
Computed: true,
@@ -533,7 +538,8 @@ func resourceBigqueryConnectionConnectionUpdate(d *schema.ResourceData, meta int
533538
}
534539

535540
if d.HasChange("azure") {
536-
updateMask = append(updateMask, "azure")
541+
updateMask = append(updateMask, "azure.customer_tenant_id",
542+
"azure.federated_application_client_id")
537543
}
538544

539545
if d.HasChange("cloud_spanner") {
@@ -743,6 +749,8 @@ func flattenBigqueryConnectionConnectionAzure(v interface{}, d *schema.ResourceD
743749
flattenBigqueryConnectionConnectionAzureObjectId(original["objectId"], d, config)
744750
transformed["customer_tenant_id"] =
745751
flattenBigqueryConnectionConnectionAzureCustomerTenantId(original["customerTenantId"], d, config)
752+
transformed["federated_application_client_id"] =
753+
flattenBigqueryConnectionConnectionAzureFederatedApplicationClientId(original["federatedApplicationClientId"], d, config)
746754
transformed["redirect_uri"] =
747755
flattenBigqueryConnectionConnectionAzureRedirectUri(original["redirectUri"], d, config)
748756
transformed["identity"] =
@@ -765,6 +773,10 @@ func flattenBigqueryConnectionConnectionAzureCustomerTenantId(v interface{}, d *
765773
return v
766774
}
767775

776+
func flattenBigqueryConnectionConnectionAzureFederatedApplicationClientId(v interface{}, d *schema.ResourceData, config *Config) interface{} {
777+
return v
778+
}
779+
768780
func flattenBigqueryConnectionConnectionAzureRedirectUri(v interface{}, d *schema.ResourceData, config *Config) interface{} {
769781
return v
770782
}
@@ -1018,6 +1030,13 @@ func expandBigqueryConnectionConnectionAzure(v interface{}, d TerraformResourceD
10181030
transformed["customerTenantId"] = transformedCustomerTenantId
10191031
}
10201032

1033+
transformedFederatedApplicationClientId, err := expandBigqueryConnectionConnectionAzureFederatedApplicationClientId(original["federated_application_client_id"], d, config)
1034+
if err != nil {
1035+
return nil, err
1036+
} else if val := reflect.ValueOf(transformedFederatedApplicationClientId); val.IsValid() && !isEmptyValue(val) {
1037+
transformed["federatedApplicationClientId"] = transformedFederatedApplicationClientId
1038+
}
1039+
10211040
transformedRedirectUri, err := expandBigqueryConnectionConnectionAzureRedirectUri(original["redirect_uri"], d, config)
10221041
if err != nil {
10231042
return nil, err
@@ -1051,6 +1070,10 @@ func expandBigqueryConnectionConnectionAzureCustomerTenantId(v interface{}, d Te
10511070
return v, nil
10521071
}
10531072

1073+
func expandBigqueryConnectionConnectionAzureFederatedApplicationClientId(v interface{}, d TerraformResourceData, config *Config) (interface{}, error) {
1074+
return v, nil
1075+
}
1076+
10541077
func expandBigqueryConnectionConnectionAzureRedirectUri(v interface{}, d TerraformResourceData, config *Config) (interface{}, error) {
10551078
return v, nil
10561079
}

google/resource_bigquery_connection_generated_test.go

+1
Original file line numberDiff line numberDiff line change
@@ -302,6 +302,7 @@ resource "google_bigquery_connection" "connection" {
302302
description = "a riveting description"
303303
azure {
304304
customer_tenant_id = "tf-test-customer-tenant-id%{random_suffix}"
305+
federated_application_client_id = "tf-test-b43eeeee-eeee-eeee-eeee-a480155501ce%{random_suffix}"
305306
}
306307
}
307308
`, context)

website/docs/r/bigquery_connection.html.markdown

+5
Original file line numberDiff line numberDiff line change
@@ -188,6 +188,7 @@ resource "google_bigquery_connection" "connection" {
188188
description = "a riveting description"
189189
azure {
190190
customer_tenant_id = "customer-tenant-id"
191+
federated_application_client_id = "b43eeeee-eeee-eeee-eeee-a480155501ce"
191192
}
192193
}
193194
```
@@ -338,6 +339,10 @@ The following arguments are supported:
338339
(Required)
339340
The id of customer's directory that host the data.
340341

342+
* `federated_application_client_id` -
343+
(Optional)
344+
The Azure Application (client) ID where the federated credentials will be hosted.
345+
341346
* `redirect_uri` -
342347
The URL user will be redirected to after granting consent during connection setup.
343348

0 commit comments

Comments
 (0)