Skip to content

Commit e71998f

Browse files
Add BQ SA datasource to the sidebar, plus docs and test. (#3317) (#1907)
* Add BQ SA datasource to the sidebar, plus docs and test. * email_address -> email Signed-off-by: Modular Magician <[email protected]>
1 parent 7189fae commit e71998f

File tree

5 files changed

+59
-11
lines changed

5 files changed

+59
-11
lines changed

.changelog/3317.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
```release-note:none
2+
3+
```

google-beta/data_source_google_bigquery_default_service_account.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ func dataSourceGoogleBigqueryDefaultServiceAccountRead(d *schema.ResourceData, m
3131

3232
projectResource, err := config.clientBigQuery.Projects.GetServiceAccount(project).Do()
3333
if err != nil {
34-
return handleNotFoundError(err, d, "GCE service account not found")
34+
return handleNotFoundError(err, d, "BigQuery service account not found")
3535
}
3636

3737
d.SetId(projectResource.Email)
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
package google
2+
3+
import (
4+
"testing"
5+
6+
"github.com/hashicorp/terraform-plugin-sdk/helper/resource"
7+
)
8+
9+
func TestAccDataSourceGoogleBigqueryDefaultServiceAccount_basic(t *testing.T) {
10+
t.Parallel()
11+
12+
resourceName := "data.google_bigquery_default_service_account.bq_account"
13+
14+
resource.Test(t, resource.TestCase{
15+
PreCheck: func() { testAccPreCheck(t) },
16+
Providers: testAccProviders,
17+
Steps: []resource.TestStep{
18+
{
19+
Config: testAccCheckGoogleBigqueryDefaultServiceAccount_basic,
20+
Check: resource.ComposeTestCheckFunc(
21+
resource.TestCheckResourceAttrSet(resourceName, "email"),
22+
),
23+
},
24+
},
25+
})
26+
}
27+
28+
const testAccCheckGoogleBigqueryDefaultServiceAccount_basic = `
29+
data "google_bigquery_default_service_account" "bq_account" {
30+
}
31+
`

website/docs/d/google_bigquery_default_service_account.html.markdown

Lines changed: 21 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,32 +4,43 @@ layout: "google"
44
page_title: "Google: google_bigquery_default_service_account"
55
sidebar_current: "docs-google-datasource-bigquery-default-service-account"
66
description: |-
7-
Retrieve default service account used by bigquery encryption in this project
7+
Get the email address of the project's BigQuery service account
88
---
99

1010
# google\_bigquery\_default\_service\_account
1111

12-
Use this data source to retrieve default service account for this project
12+
Get the email address of a project's unique BigQuery service account.
13+
14+
Each Google Cloud project has a unique service account used by BigQuery. When using
15+
BigQuery with [customer-managed encryption keys](https://cloud.google.com/bigquery/docs/customer-managed-encryption),
16+
this account needs to be granted the
17+
`cloudkms.cryptoKeyEncrypterDecrypter` IAM role on the customer-managed Cloud KMS key used to protect the data.
18+
19+
For more information see
20+
[the API reference](https://cloud.google.com/bigquery/docs/reference/rest/v2/projects/getServiceAccount).
1321

1422
## Example Usage
1523

1624
```hcl
17-
data "google_bigquery_default_service_account" "default" { }
18-
19-
output "default_account" {
20-
value = "${data.google_bigquery_default_service_account.default.email}"
21-
}
25+
data "google_bigquery_default_service_account" "bq_sa" {
26+
}
27+
28+
resource "google_kms_crypto_key_iam_member" "key_sa_user" {
29+
crypto_key_id = google_kms_crypto_key.key.id
30+
role = "roles/cloudkms.cryptoKeyEncrypterDecrypter"
31+
member = "serviceAccount:${data.google_bigquery_default_service_account.bq_sa.email}"
32+
}
2233
```
2334

2435
## Argument Reference
2536

2637
The following arguments are supported:
2738

28-
* `project` - (Optional) The project ID. If it is not provided, the provider project is used.
29-
39+
* `project` - (Optional) The project the unique service account was created for. If it is not provided, the provider project is used.
3040

3141
## Attributes Reference
3242

3343
The following attributes are exported:
3444

35-
* `email` - Email address of the default service account used by bigquery encryption in this project
45+
* `email` - The email address of the service account. This value is often used to refer to the service account
46+
in order to grant IAM permissions.

website/google.erb

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,9 @@
3636
<li<%= sidebar_current("docs-google-datasource-active-folder") %>>
3737
<a href="/docs/providers/google/d/google_active_folder.html">google_active_folder</a>
3838
</li>
39+
<li<%= sidebar_current("docs-google-datasource-bigquery-default-service-account") %>>
40+
<a href="/docs/providers/google/d/google_bigquery_default_service_account.html">google_bigquery_default_service_account</a>
41+
</li>
3942
<li<%= sidebar_current("docs-google-datasource-billing-account") %>>
4043
<a href="/docs/providers/google/d/google_billing_account.html">google_billing_account</a>
4144
</li>

0 commit comments

Comments
 (0)