Skip to content

Commit 9e84eab

Browse files
nika-qubitNing Kang
andauthored
Added IAM support for the IcebergCatalog resource. (#15950)
Co-authored-by: Ning Kang <[email protected]>
1 parent 44bb3c2 commit 9e84eab

File tree

4 files changed

+26
-5
lines changed

4 files changed

+26
-5
lines changed

mmv1/products/biglakeiceberg/IcebergCatalog.yaml

Lines changed: 23 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,18 +18,38 @@ description: |
1818
references:
1919
guides:
2020
'Use the BigLake metastore Iceberg REST catalog': 'https://docs.cloud.google.com/biglake/docs/blms-rest-catalog'
21-
base_url: 'restcatalog/extensions/projects/{{project}}/catalogs'
22-
self_link: 'restcatalog/extensions/projects/{{project}}/catalogs/{{name}}'
21+
docs:
22+
warning: |
23+
If you are using User ADCs (Application Default Credentials) with this resource's IAM,
24+
you must specify a `billing_project` and set `user_project_override` to true
25+
in the provider configuration. Otherwise the IAM API will return 403s.
26+
Your account must have the `serviceusage.services.use` permission on the
27+
`billing_project` you defined.
28+
supports_indirect_user_project_override: true
29+
base_url: 'iceberg/v1/restcatalog/extensions/projects/{{project}}/catalogs'
30+
self_link: 'iceberg/v1/restcatalog/extensions/projects/{{project}}/catalogs/{{name}}'
2331
immutable: false
24-
create_url: 'restcatalog/extensions/projects/{{project}}/catalogs?iceberg-catalog-id={{name}}'
32+
create_url: 'iceberg/v1/restcatalog/extensions/projects/{{project}}/catalogs?iceberg-catalog-id={{name}}'
2533
custom_code:
2634
custom_update:
2735
templates/terraform/custom_update/biglake_iceberg_catalog_update.go.tmpl
36+
iam_policy:
37+
base_url: 'v1/projects/{{project}}/catalogs/{{name}}'
38+
parent_resource_attribute: 'name'
39+
method_name_separator: ":"
40+
fetch_iam_policy_verb: 'GET'
41+
import_format:
42+
- 'projects/{{project}}/catalogs/{{name}}'
43+
- '{{name}}'
44+
allowed_iam_role: 'roles/biglake.editor'
2845
examples:
2946
- name: 'biglake_iceberg_catalog'
3047
primary_resource_id: 'my_iceberg_catalog'
3148
vars:
3249
name: 'my_iceberg_catalog'
50+
test_env_vars:
51+
GOOGLE_BILLING_PROJECT: 'PROJECT'
52+
USER_PROJECT_OVERRIDE: 'true'
3353
parameters:
3454
- name: 'name'
3555
type: String

mmv1/products/biglakeiceberg/product.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ legacy_name: 'biglake'
1717
display_name: 'Biglake'
1818
versions:
1919
- name: 'ga'
20-
base_url: 'https://biglake.googleapis.com/iceberg/v1/'
20+
base_url: 'https://biglake.googleapis.com/'
2121
scopes:
2222
- 'https://www.googleapis.com/auth/bigquery'
2323
- 'https://www.googleapis.com/auth/cloud-platform'

mmv1/templates/terraform/custom_update/biglake_iceberg_catalog_update.go.tmpl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ if err != nil {
1919
obj["credential-mode"] = credentialModeProp
2020
}
2121

22-
url, err := tpgresource.ReplaceVars(d, config, "{{"{{"}}BiglakeIcebergBasePath{{"}}"}}restcatalog/extensions/projects/{{"{{"}}project{{"}}"}}/catalogs/{{"{{"}}name{{"}}"}}")
22+
url, err := tpgresource.ReplaceVars(d, config, "{{"{{"}}BiglakeIcebergBasePath{{"}}"}}iceberg/v1/restcatalog/extensions/projects/{{"{{"}}project{{"}}"}}/catalogs/{{"{{"}}name{{"}}"}}")
2323
if err != nil {
2424
return err
2525
}

mmv1/third_party/tgc/resource_converters.go.tmpl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ import (
3636
"github.com/GoogleCloudPlatform/terraform-google-conversion/v7/tfplan2cai/converters/google/resources/services/appengine"
3737
"github.com/GoogleCloudPlatform/terraform-google-conversion/v7/tfplan2cai/converters/google/resources/services/artifactregistry"
3838
"github.com/GoogleCloudPlatform/terraform-google-conversion/v7/tfplan2cai/converters/google/resources/services/beyondcorp"
39+
"github.com/GoogleCloudPlatform/terraform-google-conversion/v7/tfplan2cai/converters/google/resources/services/biglakeiceberg"
3940
"github.com/GoogleCloudPlatform/terraform-google-conversion/v7/tfplan2cai/converters/google/resources/services/bigquery"
4041
"github.com/GoogleCloudPlatform/terraform-google-conversion/v7/tfplan2cai/converters/google/resources/services/bigqueryanalyticshub"
4142
"github.com/GoogleCloudPlatform/terraform-google-conversion/v7/tfplan2cai/converters/google/resources/services/bigqueryconnection"

0 commit comments

Comments
 (0)