diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml
index ac445f785..5ad388036 100644
--- a/.github/workflows/tests.yml
+++ b/.github/workflows/tests.yml
@@ -1,4 +1,4 @@
-# Copyright 2024 Google LLC
+# Copyright 2025 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -38,7 +38,7 @@ env:
TFTEST_COPY: 1
DEFAULT_TERRAFORM_FLAVOUR: terraform
DEFAULT_TERRAFORM_VERSION: ${{ inputs.terraform_version || '1.10.2' }}
- DEFAULT_TOFU_VERSION: "1.8.0"
+ DEFAULT_TOFU_VERSION: "1.9.0"
jobs:
compute-matrix:
diff --git a/blueprints/gke/patterns/autopilot-cluster/versions.tofu b/blueprints/gke/patterns/autopilot-cluster/versions.tofu
index 095928e5d..ea84f769d 100644
--- a/blueprints/gke/patterns/autopilot-cluster/versions.tofu
+++ b/blueprints/gke/patterns/autopilot-cluster/versions.tofu
@@ -15,7 +15,7 @@
# Fabric release: v36.1.0
terraform {
- required_version = ">= 1.8.0"
+ required_version = ">= 1.9.0"
required_providers {
google = {
source = "hashicorp/google"
diff --git a/blueprints/gke/patterns/batch/versions.tofu b/blueprints/gke/patterns/batch/versions.tofu
index 773e004e9..92f1cfc09 100644
--- a/blueprints/gke/patterns/batch/versions.tofu
+++ b/blueprints/gke/patterns/batch/versions.tofu
@@ -15,7 +15,7 @@
# Fabric release: v36.1.0
terraform {
- required_version = ">= 1.8.0"
+ required_version = ">= 1.9.0"
required_providers {
google = {
source = "hashicorp/google"
diff --git a/blueprints/gke/patterns/kafka/versions.tofu b/blueprints/gke/patterns/kafka/versions.tofu
index 83fe9eb12..d3a5f3973 100644
--- a/blueprints/gke/patterns/kafka/versions.tofu
+++ b/blueprints/gke/patterns/kafka/versions.tofu
@@ -15,7 +15,7 @@
# Fabric release: v36.1.0
terraform {
- required_version = ">= 1.8.0"
+ required_version = ">= 1.9.0"
required_providers {
google = {
source = "hashicorp/google"
diff --git a/blueprints/gke/patterns/kong-cloudrun/versions.tofu b/blueprints/gke/patterns/kong-cloudrun/versions.tofu
index 4ae742a70..1eb1d159a 100644
--- a/blueprints/gke/patterns/kong-cloudrun/versions.tofu
+++ b/blueprints/gke/patterns/kong-cloudrun/versions.tofu
@@ -15,7 +15,7 @@
# Fabric release: v36.1.0
terraform {
- required_version = ">= 1.8.0"
+ required_version = ">= 1.9.0"
required_providers {
google = {
source = "hashicorp/google"
diff --git a/blueprints/gke/patterns/mysql/versions.tofu b/blueprints/gke/patterns/mysql/versions.tofu
index e9dc50169..02a859fbb 100644
--- a/blueprints/gke/patterns/mysql/versions.tofu
+++ b/blueprints/gke/patterns/mysql/versions.tofu
@@ -15,7 +15,7 @@
# Fabric release: v36.1.0
terraform {
- required_version = ">= 1.8.0"
+ required_version = ">= 1.9.0"
required_providers {
google = {
source = "hashicorp/google"
diff --git a/blueprints/gke/patterns/redis-cluster/versions.tofu b/blueprints/gke/patterns/redis-cluster/versions.tofu
index 00c5cd27f..557fb34da 100644
--- a/blueprints/gke/patterns/redis-cluster/versions.tofu
+++ b/blueprints/gke/patterns/redis-cluster/versions.tofu
@@ -15,7 +15,7 @@
# Fabric release: v36.1.0
terraform {
- required_version = ">= 1.8.0"
+ required_version = ">= 1.9.0"
required_providers {
google = {
source = "hashicorp/google"
diff --git a/blueprints/secops/secops-gke-forwarder/versions.tofu b/blueprints/secops/secops-gke-forwarder/versions.tofu
index 857dc9a51..a803dad13 100644
--- a/blueprints/secops/secops-gke-forwarder/versions.tofu
+++ b/blueprints/secops/secops-gke-forwarder/versions.tofu
@@ -15,7 +15,7 @@
# Fabric release: v36.1.0
terraform {
- required_version = ">= 1.8.0"
+ required_version = ">= 1.9.0"
required_providers {
google = {
source = "hashicorp/google"
diff --git a/default-versions.tofu b/default-versions.tofu
index 2cc33448f..b9c6880e0 100644
--- a/default-versions.tofu
+++ b/default-versions.tofu
@@ -15,7 +15,7 @@
# Fabric release: v36.1.0
terraform {
- required_version = ">= 1.8.0"
+ required_version = ">= 1.9.0"
required_providers {
google = {
source = "hashicorp/google"
diff --git a/modules/__experimental_deprecated/alloydb-instance/versions.tofu b/modules/__experimental_deprecated/alloydb-instance/versions.tofu
index e432a4e07..a8f6c582a 100644
--- a/modules/__experimental_deprecated/alloydb-instance/versions.tofu
+++ b/modules/__experimental_deprecated/alloydb-instance/versions.tofu
@@ -15,7 +15,7 @@
# Fabric release: v36.1.0
terraform {
- required_version = ">= 1.8.0"
+ required_version = ">= 1.9.0"
required_providers {
google = {
source = "hashicorp/google"
diff --git a/modules/__experimental_deprecated/net-neg/versions.tofu b/modules/__experimental_deprecated/net-neg/versions.tofu
index 0dd002ef8..35760010d 100644
--- a/modules/__experimental_deprecated/net-neg/versions.tofu
+++ b/modules/__experimental_deprecated/net-neg/versions.tofu
@@ -15,7 +15,7 @@
# Fabric release: v36.1.0
terraform {
- required_version = ">= 1.8.0"
+ required_version = ">= 1.9.0"
required_providers {
google = {
source = "hashicorp/google"
diff --git a/modules/__experimental_deprecated/project-iam-magic/versions.tofu b/modules/__experimental_deprecated/project-iam-magic/versions.tofu
index 2f2d914ea..b76e2e48a 100644
--- a/modules/__experimental_deprecated/project-iam-magic/versions.tofu
+++ b/modules/__experimental_deprecated/project-iam-magic/versions.tofu
@@ -15,7 +15,7 @@
# Fabric release: v36.1.0
terraform {
- required_version = ">= 1.8.0"
+ required_version = ">= 1.9.0"
required_providers {
google = {
source = "hashicorp/google"
diff --git a/modules/alloydb/versions.tofu b/modules/alloydb/versions.tofu
index 055371408..61a96cca3 100644
--- a/modules/alloydb/versions.tofu
+++ b/modules/alloydb/versions.tofu
@@ -15,7 +15,7 @@
# Fabric release: v36.1.0
terraform {
- required_version = ">= 1.8.0"
+ required_version = ">= 1.9.0"
required_providers {
google = {
source = "hashicorp/google"
diff --git a/modules/analytics-hub/versions.tofu b/modules/analytics-hub/versions.tofu
index a73dccbaf..10afbd0bf 100644
--- a/modules/analytics-hub/versions.tofu
+++ b/modules/analytics-hub/versions.tofu
@@ -15,7 +15,7 @@
# Fabric release: v36.1.0
terraform {
- required_version = ">= 1.8.0"
+ required_version = ">= 1.9.0"
required_providers {
google = {
source = "hashicorp/google"
diff --git a/modules/api-gateway/versions.tofu b/modules/api-gateway/versions.tofu
index 1238a154b..f0fb5427d 100644
--- a/modules/api-gateway/versions.tofu
+++ b/modules/api-gateway/versions.tofu
@@ -15,7 +15,7 @@
# Fabric release: v36.1.0
terraform {
- required_version = ">= 1.8.0"
+ required_version = ">= 1.9.0"
required_providers {
google = {
source = "hashicorp/google"
diff --git a/modules/apigee/versions.tofu b/modules/apigee/versions.tofu
index ca235cb27..4813019b9 100644
--- a/modules/apigee/versions.tofu
+++ b/modules/apigee/versions.tofu
@@ -15,7 +15,7 @@
# Fabric release: v36.1.0
terraform {
- required_version = ">= 1.8.0"
+ required_version = ">= 1.9.0"
required_providers {
google = {
source = "hashicorp/google"
diff --git a/modules/artifact-registry/versions.tofu b/modules/artifact-registry/versions.tofu
index fc9cda2d3..dc53910f9 100644
--- a/modules/artifact-registry/versions.tofu
+++ b/modules/artifact-registry/versions.tofu
@@ -15,7 +15,7 @@
# Fabric release: v36.1.0
terraform {
- required_version = ">= 1.8.0"
+ required_version = ">= 1.9.0"
required_providers {
google = {
source = "hashicorp/google"
diff --git a/modules/bigquery-dataset/versions.tofu b/modules/bigquery-dataset/versions.tofu
index f75e7f8c9..203555967 100644
--- a/modules/bigquery-dataset/versions.tofu
+++ b/modules/bigquery-dataset/versions.tofu
@@ -15,7 +15,7 @@
# Fabric release: v36.1.0
terraform {
- required_version = ">= 1.8.0"
+ required_version = ">= 1.9.0"
required_providers {
google = {
source = "hashicorp/google"
diff --git a/modules/bigtable-instance/versions.tofu b/modules/bigtable-instance/versions.tofu
index 8f68cf5cf..34141396f 100644
--- a/modules/bigtable-instance/versions.tofu
+++ b/modules/bigtable-instance/versions.tofu
@@ -15,7 +15,7 @@
# Fabric release: v36.1.0
terraform {
- required_version = ">= 1.8.0"
+ required_version = ">= 1.9.0"
required_providers {
google = {
source = "hashicorp/google"
diff --git a/modules/billing-account/versions.tofu b/modules/billing-account/versions.tofu
index 02215b425..b0277c5d1 100644
--- a/modules/billing-account/versions.tofu
+++ b/modules/billing-account/versions.tofu
@@ -15,7 +15,7 @@
# Fabric release: v36.1.0
terraform {
- required_version = ">= 1.8.0"
+ required_version = ">= 1.9.0"
required_providers {
google = {
source = "hashicorp/google"
diff --git a/modules/binauthz/versions.tofu b/modules/binauthz/versions.tofu
index ca3a723f3..e96596658 100644
--- a/modules/binauthz/versions.tofu
+++ b/modules/binauthz/versions.tofu
@@ -15,7 +15,7 @@
# Fabric release: v36.1.0
terraform {
- required_version = ">= 1.8.0"
+ required_version = ">= 1.9.0"
required_providers {
google = {
source = "hashicorp/google"
diff --git a/modules/certificate-authority-service/versions.tofu b/modules/certificate-authority-service/versions.tofu
index 65310f7c7..5b7b13adc 100644
--- a/modules/certificate-authority-service/versions.tofu
+++ b/modules/certificate-authority-service/versions.tofu
@@ -15,7 +15,7 @@
# Fabric release: v36.1.0
terraform {
- required_version = ">= 1.8.0"
+ required_version = ">= 1.9.0"
required_providers {
google = {
source = "hashicorp/google"
diff --git a/modules/certificate-manager/versions.tofu b/modules/certificate-manager/versions.tofu
index 9d5253c37..a53bf6f35 100644
--- a/modules/certificate-manager/versions.tofu
+++ b/modules/certificate-manager/versions.tofu
@@ -15,7 +15,7 @@
# Fabric release: v36.1.0
terraform {
- required_version = ">= 1.8.0"
+ required_version = ">= 1.9.0"
required_providers {
google = {
source = "hashicorp/google"
diff --git a/modules/cloud-config-container/__need_fixing/onprem/versions.tofu b/modules/cloud-config-container/__need_fixing/onprem/versions.tofu
index 600be04dd..b4e1524c6 100644
--- a/modules/cloud-config-container/__need_fixing/onprem/versions.tofu
+++ b/modules/cloud-config-container/__need_fixing/onprem/versions.tofu
@@ -15,7 +15,7 @@
# Fabric release: v36.1.0
terraform {
- required_version = ">= 1.8.0"
+ required_version = ">= 1.9.0"
required_providers {
google = {
source = "hashicorp/google"
diff --git a/modules/cloud-config-container/__need_fixing/squid/versions.tofu b/modules/cloud-config-container/__need_fixing/squid/versions.tofu
index 81d044632..fe440a375 100644
--- a/modules/cloud-config-container/__need_fixing/squid/versions.tofu
+++ b/modules/cloud-config-container/__need_fixing/squid/versions.tofu
@@ -15,7 +15,7 @@
# Fabric release: v36.1.0
terraform {
- required_version = ">= 1.8.0"
+ required_version = ">= 1.9.0"
required_providers {
google = {
source = "hashicorp/google"
diff --git a/modules/cloud-config-container/bindplane/versions.tofu b/modules/cloud-config-container/bindplane/versions.tofu
index 047bc4610..37d01736f 100644
--- a/modules/cloud-config-container/bindplane/versions.tofu
+++ b/modules/cloud-config-container/bindplane/versions.tofu
@@ -15,7 +15,7 @@
# Fabric release: v36.1.0
terraform {
- required_version = ">= 1.8.0"
+ required_version = ">= 1.9.0"
required_providers {
google = {
source = "hashicorp/google"
diff --git a/modules/cloud-config-container/coredns/versions.tofu b/modules/cloud-config-container/coredns/versions.tofu
index b836948d0..858f5f3b3 100644
--- a/modules/cloud-config-container/coredns/versions.tofu
+++ b/modules/cloud-config-container/coredns/versions.tofu
@@ -15,7 +15,7 @@
# Fabric release: v36.1.0
terraform {
- required_version = ">= 1.8.0"
+ required_version = ">= 1.9.0"
required_providers {
google = {
source = "hashicorp/google"
diff --git a/modules/cloud-config-container/cos-generic-metadata/versions.tofu b/modules/cloud-config-container/cos-generic-metadata/versions.tofu
index 35c570fde..28a8ac82d 100644
--- a/modules/cloud-config-container/cos-generic-metadata/versions.tofu
+++ b/modules/cloud-config-container/cos-generic-metadata/versions.tofu
@@ -15,7 +15,7 @@
# Fabric release: v36.1.0
terraform {
- required_version = ">= 1.8.0"
+ required_version = ">= 1.9.0"
required_providers {
google = {
source = "hashicorp/google"
diff --git a/modules/cloud-config-container/envoy-sni-dyn-fwd-proxy/versions.tofu b/modules/cloud-config-container/envoy-sni-dyn-fwd-proxy/versions.tofu
index b83abd63a..5ec0e41cb 100644
--- a/modules/cloud-config-container/envoy-sni-dyn-fwd-proxy/versions.tofu
+++ b/modules/cloud-config-container/envoy-sni-dyn-fwd-proxy/versions.tofu
@@ -15,7 +15,7 @@
# Fabric release: v36.1.0
terraform {
- required_version = ">= 1.8.0"
+ required_version = ">= 1.9.0"
required_providers {
google = {
source = "hashicorp/google"
diff --git a/modules/cloud-config-container/envoy-traffic-director/versions.tofu b/modules/cloud-config-container/envoy-traffic-director/versions.tofu
index f4ac1b245..a8fa8b30a 100644
--- a/modules/cloud-config-container/envoy-traffic-director/versions.tofu
+++ b/modules/cloud-config-container/envoy-traffic-director/versions.tofu
@@ -15,7 +15,7 @@
# Fabric release: v36.1.0
terraform {
- required_version = ">= 1.8.0"
+ required_version = ">= 1.9.0"
required_providers {
google = {
source = "hashicorp/google"
diff --git a/modules/cloud-config-container/mysql/versions.tofu b/modules/cloud-config-container/mysql/versions.tofu
index d42fed224..37e86e8f8 100644
--- a/modules/cloud-config-container/mysql/versions.tofu
+++ b/modules/cloud-config-container/mysql/versions.tofu
@@ -15,7 +15,7 @@
# Fabric release: v36.1.0
terraform {
- required_version = ">= 1.8.0"
+ required_version = ">= 1.9.0"
required_providers {
google = {
source = "hashicorp/google"
diff --git a/modules/cloud-config-container/nginx-tls/versions.tofu b/modules/cloud-config-container/nginx-tls/versions.tofu
index c6dacac30..ad57d5306 100644
--- a/modules/cloud-config-container/nginx-tls/versions.tofu
+++ b/modules/cloud-config-container/nginx-tls/versions.tofu
@@ -15,7 +15,7 @@
# Fabric release: v36.1.0
terraform {
- required_version = ">= 1.8.0"
+ required_version = ">= 1.9.0"
required_providers {
google = {
source = "hashicorp/google"
diff --git a/modules/cloud-config-container/nginx/versions.tofu b/modules/cloud-config-container/nginx/versions.tofu
index f16b93a48..7686e3c60 100644
--- a/modules/cloud-config-container/nginx/versions.tofu
+++ b/modules/cloud-config-container/nginx/versions.tofu
@@ -15,7 +15,7 @@
# Fabric release: v36.1.0
terraform {
- required_version = ">= 1.8.0"
+ required_version = ">= 1.9.0"
required_providers {
google = {
source = "hashicorp/google"
diff --git a/modules/cloud-config-container/simple-nva/versions.tofu b/modules/cloud-config-container/simple-nva/versions.tofu
index 32003c4e0..6ad2f61fa 100644
--- a/modules/cloud-config-container/simple-nva/versions.tofu
+++ b/modules/cloud-config-container/simple-nva/versions.tofu
@@ -15,7 +15,7 @@
# Fabric release: v36.1.0
terraform {
- required_version = ">= 1.8.0"
+ required_version = ">= 1.9.0"
required_providers {
google = {
source = "hashicorp/google"
diff --git a/modules/cloud-function-v1/versions.tofu b/modules/cloud-function-v1/versions.tofu
index 1eb12e3f9..92f308c67 100644
--- a/modules/cloud-function-v1/versions.tofu
+++ b/modules/cloud-function-v1/versions.tofu
@@ -15,7 +15,7 @@
# Fabric release: v36.1.0
terraform {
- required_version = ">= 1.8.0"
+ required_version = ">= 1.9.0"
required_providers {
google = {
source = "hashicorp/google"
diff --git a/modules/cloud-function-v2/versions.tofu b/modules/cloud-function-v2/versions.tofu
index d428d1478..e75e46a0a 100644
--- a/modules/cloud-function-v2/versions.tofu
+++ b/modules/cloud-function-v2/versions.tofu
@@ -15,7 +15,7 @@
# Fabric release: v36.1.0
terraform {
- required_version = ">= 1.8.0"
+ required_version = ">= 1.9.0"
required_providers {
google = {
source = "hashicorp/google"
diff --git a/modules/cloud-identity-group/versions.tofu b/modules/cloud-identity-group/versions.tofu
index 1a46f3dd0..a31bfc2f9 100644
--- a/modules/cloud-identity-group/versions.tofu
+++ b/modules/cloud-identity-group/versions.tofu
@@ -15,7 +15,7 @@
# Fabric release: v36.1.0
terraform {
- required_version = ">= 1.8.0"
+ required_version = ">= 1.9.0"
required_providers {
google = {
source = "hashicorp/google"
diff --git a/modules/cloud-run-v2/versions.tofu b/modules/cloud-run-v2/versions.tofu
index fd494e585..2901cc954 100644
--- a/modules/cloud-run-v2/versions.tofu
+++ b/modules/cloud-run-v2/versions.tofu
@@ -15,7 +15,7 @@
# Fabric release: v36.1.0
terraform {
- required_version = ">= 1.8.0"
+ required_version = ">= 1.9.0"
required_providers {
google = {
source = "hashicorp/google"
diff --git a/modules/cloud-run/versions.tofu b/modules/cloud-run/versions.tofu
index 9982aeb58..78c5da406 100644
--- a/modules/cloud-run/versions.tofu
+++ b/modules/cloud-run/versions.tofu
@@ -15,7 +15,7 @@
# Fabric release: v36.1.0
terraform {
- required_version = ">= 1.8.0"
+ required_version = ">= 1.9.0"
required_providers {
google = {
source = "hashicorp/google"
diff --git a/modules/cloudsql-instance/versions.tofu b/modules/cloudsql-instance/versions.tofu
index 2fe00e220..712efbe14 100644
--- a/modules/cloudsql-instance/versions.tofu
+++ b/modules/cloudsql-instance/versions.tofu
@@ -15,7 +15,7 @@
# Fabric release: v36.1.0
terraform {
- required_version = ">= 1.8.0"
+ required_version = ">= 1.9.0"
required_providers {
google = {
source = "hashicorp/google"
diff --git a/modules/compute-mig/versions.tofu b/modules/compute-mig/versions.tofu
index 38d3e669d..483287162 100644
--- a/modules/compute-mig/versions.tofu
+++ b/modules/compute-mig/versions.tofu
@@ -15,7 +15,7 @@
# Fabric release: v36.1.0
terraform {
- required_version = ">= 1.8.0"
+ required_version = ">= 1.9.0"
required_providers {
google = {
source = "hashicorp/google"
diff --git a/modules/compute-vm/versions.tofu b/modules/compute-vm/versions.tofu
index bdea574a9..9096198b9 100644
--- a/modules/compute-vm/versions.tofu
+++ b/modules/compute-vm/versions.tofu
@@ -15,7 +15,7 @@
# Fabric release: v36.1.0
terraform {
- required_version = ">= 1.8.0"
+ required_version = ">= 1.9.0"
required_providers {
google = {
source = "hashicorp/google"
diff --git a/modules/container-registry/versions.tofu b/modules/container-registry/versions.tofu
index 2fd678eb7..0fb0da018 100644
--- a/modules/container-registry/versions.tofu
+++ b/modules/container-registry/versions.tofu
@@ -15,7 +15,7 @@
# Fabric release: v36.1.0
terraform {
- required_version = ">= 1.8.0"
+ required_version = ">= 1.9.0"
required_providers {
google = {
source = "hashicorp/google"
diff --git a/modules/data-catalog-policy-tag/versions.tofu b/modules/data-catalog-policy-tag/versions.tofu
index 39c263350..4b7d92deb 100644
--- a/modules/data-catalog-policy-tag/versions.tofu
+++ b/modules/data-catalog-policy-tag/versions.tofu
@@ -15,7 +15,7 @@
# Fabric release: v36.1.0
terraform {
- required_version = ">= 1.8.0"
+ required_version = ">= 1.9.0"
required_providers {
google = {
source = "hashicorp/google"
diff --git a/modules/data-catalog-tag-template/versions.tofu b/modules/data-catalog-tag-template/versions.tofu
index dea102d5b..607e86971 100644
--- a/modules/data-catalog-tag-template/versions.tofu
+++ b/modules/data-catalog-tag-template/versions.tofu
@@ -15,7 +15,7 @@
# Fabric release: v36.1.0
terraform {
- required_version = ">= 1.8.0"
+ required_version = ">= 1.9.0"
required_providers {
google = {
source = "hashicorp/google"
diff --git a/modules/data-catalog-tag/versions.tofu b/modules/data-catalog-tag/versions.tofu
index 27586a0e4..64106482b 100644
--- a/modules/data-catalog-tag/versions.tofu
+++ b/modules/data-catalog-tag/versions.tofu
@@ -15,7 +15,7 @@
# Fabric release: v36.1.0
terraform {
- required_version = ">= 1.8.0"
+ required_version = ">= 1.9.0"
required_providers {
google = {
source = "hashicorp/google"
diff --git a/modules/dataform-repository/versions.tofu b/modules/dataform-repository/versions.tofu
index 81af770e2..7dac7c824 100644
--- a/modules/dataform-repository/versions.tofu
+++ b/modules/dataform-repository/versions.tofu
@@ -15,7 +15,7 @@
# Fabric release: v36.1.0
terraform {
- required_version = ">= 1.8.0"
+ required_version = ">= 1.9.0"
required_providers {
google = {
source = "hashicorp/google"
diff --git a/modules/datafusion/versions.tofu b/modules/datafusion/versions.tofu
index afdf7272d..cfe3f2bd6 100644
--- a/modules/datafusion/versions.tofu
+++ b/modules/datafusion/versions.tofu
@@ -15,7 +15,7 @@
# Fabric release: v36.1.0
terraform {
- required_version = ">= 1.8.0"
+ required_version = ">= 1.9.0"
required_providers {
google = {
source = "hashicorp/google"
diff --git a/modules/dataplex-datascan/versions.tofu b/modules/dataplex-datascan/versions.tofu
index ba723efc3..5ba991916 100644
--- a/modules/dataplex-datascan/versions.tofu
+++ b/modules/dataplex-datascan/versions.tofu
@@ -15,7 +15,7 @@
# Fabric release: v36.1.0
terraform {
- required_version = ">= 1.8.0"
+ required_version = ">= 1.9.0"
required_providers {
google = {
source = "hashicorp/google"
diff --git a/modules/dataplex/versions.tofu b/modules/dataplex/versions.tofu
index 49edb496a..522f72df4 100644
--- a/modules/dataplex/versions.tofu
+++ b/modules/dataplex/versions.tofu
@@ -15,7 +15,7 @@
# Fabric release: v36.1.0
terraform {
- required_version = ">= 1.8.0"
+ required_version = ">= 1.9.0"
required_providers {
google = {
source = "hashicorp/google"
diff --git a/modules/dataproc/versions.tofu b/modules/dataproc/versions.tofu
index 7e8b1f232..171665a6b 100644
--- a/modules/dataproc/versions.tofu
+++ b/modules/dataproc/versions.tofu
@@ -15,7 +15,7 @@
# Fabric release: v36.1.0
terraform {
- required_version = ">= 1.8.0"
+ required_version = ">= 1.9.0"
required_providers {
google = {
source = "hashicorp/google"
diff --git a/modules/dns-response-policy/versions.tofu b/modules/dns-response-policy/versions.tofu
index e020e9aa1..e157addf2 100644
--- a/modules/dns-response-policy/versions.tofu
+++ b/modules/dns-response-policy/versions.tofu
@@ -15,7 +15,7 @@
# Fabric release: v36.1.0
terraform {
- required_version = ">= 1.8.0"
+ required_version = ">= 1.9.0"
required_providers {
google = {
source = "hashicorp/google"
diff --git a/modules/dns/versions.tofu b/modules/dns/versions.tofu
index be66575e9..48f3dd8bb 100644
--- a/modules/dns/versions.tofu
+++ b/modules/dns/versions.tofu
@@ -15,7 +15,7 @@
# Fabric release: v36.1.0
terraform {
- required_version = ">= 1.8.0"
+ required_version = ">= 1.9.0"
required_providers {
google = {
source = "hashicorp/google"
diff --git a/modules/endpoints/versions.tofu b/modules/endpoints/versions.tofu
index 7084ddd35..2d9793cff 100644
--- a/modules/endpoints/versions.tofu
+++ b/modules/endpoints/versions.tofu
@@ -15,7 +15,7 @@
# Fabric release: v36.1.0
terraform {
- required_version = ">= 1.8.0"
+ required_version = ">= 1.9.0"
required_providers {
google = {
source = "hashicorp/google"
diff --git a/modules/firestore/versions.tofu b/modules/firestore/versions.tofu
index 2794b407c..45413d6ce 100644
--- a/modules/firestore/versions.tofu
+++ b/modules/firestore/versions.tofu
@@ -15,7 +15,7 @@
# Fabric release: v36.1.0
terraform {
- required_version = ">= 1.8.0"
+ required_version = ">= 1.9.0"
required_providers {
google = {
source = "hashicorp/google"
diff --git a/modules/folder/versions.tofu b/modules/folder/versions.tofu
index 2d7d6de22..9abd59155 100644
--- a/modules/folder/versions.tofu
+++ b/modules/folder/versions.tofu
@@ -15,7 +15,7 @@
# Fabric release: v36.1.0
terraform {
- required_version = ">= 1.8.0"
+ required_version = ">= 1.9.0"
required_providers {
google = {
source = "hashicorp/google"
diff --git a/modules/gcs/README.md b/modules/gcs/README.md
index 3ead1cfb1..1ec281264 100644
--- a/modules/gcs/README.md
+++ b/modules/gcs/README.md
@@ -324,38 +324,39 @@ module "bucket" {
| name | description | type | required | default |
|---|---|:---:|:---:|:---:|
-| [location](variables.tf#L168) | Bucket location. | string | ✓ | |
-| [name](variables.tf#L211) | Bucket name suffix. | string | ✓ | |
-| [project_id](variables.tf#L269) | Bucket project id. | string | ✓ | |
+| [name](variables.tf#L221) | Bucket name suffix. | string | ✓ | |
+| [project_id](variables.tf#L279) | Bucket project id. | string | ✓ | |
| [autoclass](variables.tf#L17) | Enable autoclass to automatically transition objects to appropriate storage classes based on their access pattern. If set to true, storage_class must be set to STANDARD. Defaults to false. | bool | | null |
-| [cors](variables.tf#L23) | CORS configuration for the bucket. Defaults to null. | object({…}) | | null |
-| [custom_placement_config](variables.tf#L34) | The bucket's custom location configuration, which specifies the individual regions that comprise a dual-region bucket. If the bucket is designated as REGIONAL or MULTI_REGIONAL, the parameters are empty. | list(string) | | null |
-| [default_event_based_hold](variables.tf#L40) | Enable event based hold to new objects added to specific bucket, defaults to false. | bool | | null |
-| [enable_hierarchical_namespace](variables.tf#L46) | Enables hierarchical namespace. | bool | | null |
-| [enable_object_retention](variables.tf#L52) | Enables object retention on a storage bucket. | bool | | null |
-| [encryption_key](variables.tf#L58) | KMS key that will be used for encryption. | string | | null |
-| [force_destroy](variables.tf#L64) | Optional map to set force destroy keyed by name, defaults to false. | bool | | false |
-| [iam](variables.tf#L70) | IAM bindings in {ROLE => [MEMBERS]} format. | map(list(string)) | | {} |
-| [iam_bindings](variables.tf#L76) | Authoritative IAM bindings in {KEY => {role = ROLE, members = [], condition = {}}}. Keys are arbitrary. | map(object({…})) | | {} |
-| [iam_bindings_additive](variables.tf#L91) | Individual additive IAM bindings. Keys are arbitrary. | map(object({…})) | | {} |
-| [iam_by_principals](variables.tf#L106) | Authoritative IAM binding in {PRINCIPAL => [ROLES]} format. Principals need to be statically defined to avoid cycle errors. Merged internally with the `iam` variable. | map(list(string)) | | {} |
-| [labels](variables.tf#L113) | Labels to be attached to all buckets. | map(string) | | {} |
-| [lifecycle_rules](variables.tf#L119) | Bucket lifecycle rule. | map(object({…})) | | {} |
-| [logging_config](variables.tf#L174) | Bucket logging configuration. | object({…}) | | null |
-| [managed_folders](variables.tf#L183) | Managed folders to create within the bucket in {PATH => CONFIG} format. | map(object({…})) | | {} |
-| [notification_config](variables.tf#L216) | GCS Notification configuration. | object({…}) | | null |
-| [objects_to_upload](variables.tf#L233) | Objects to be uploaded to bucket. | map(object({…})) | | {} |
-| [prefix](variables.tf#L259) | Optional prefix used to generate the bucket name. | string | | null |
-| [public_access_prevention](variables.tf#L274) | Prevents public access to the bucket. | string | | null |
-| [requester_pays](variables.tf#L284) | Enables Requester Pays on a storage bucket. | bool | | null |
-| [retention_policy](variables.tf#L290) | Bucket retention policy. | object({…}) | | null |
-| [rpo](variables.tf#L299) | Bucket recovery point objective. | string | | null |
-| [soft_delete_retention](variables.tf#L309) | The duration in seconds that soft-deleted objects in the bucket will be retained and cannot be permanently deleted. Set to 0 to override the default and disable. | number | | null |
-| [storage_class](variables.tf#L315) | Bucket storage class. | string | | "STANDARD" |
-| [tag_bindings](variables.tf#L325) | Tag bindings for this folder, in key => tag value id format. | map(string) | | {} |
-| [uniform_bucket_level_access](variables.tf#L332) | Allow using object ACLs (false) or not (true, this is the recommended behavior) , defaults to true (which is the recommended practice, but not the behavior of storage API). | bool | | true |
-| [versioning](variables.tf#L338) | Enable versioning, defaults to false. | bool | | null |
-| [website](variables.tf#L344) | Bucket website. | object({…}) | | null |
+| [bucket_create](variables.tf#L23) | Create bucket. | bool | | true |
+| [cors](variables.tf#L29) | CORS configuration for the bucket. Defaults to null. | object({…}) | | null |
+| [custom_placement_config](variables.tf#L40) | The bucket's custom location configuration, which specifies the individual regions that comprise a dual-region bucket. If the bucket is designated as REGIONAL or MULTI_REGIONAL, the parameters are empty. | list(string) | | null |
+| [default_event_based_hold](variables.tf#L46) | Enable event based hold to new objects added to specific bucket, defaults to false. | bool | | null |
+| [enable_hierarchical_namespace](variables.tf#L52) | Enables hierarchical namespace. | bool | | null |
+| [enable_object_retention](variables.tf#L58) | Enables object retention on a storage bucket. | bool | | null |
+| [encryption_key](variables.tf#L64) | KMS key that will be used for encryption. | string | | null |
+| [force_destroy](variables.tf#L70) | Optional map to set force destroy keyed by name, defaults to false. | bool | | false |
+| [iam](variables.tf#L76) | IAM bindings in {ROLE => [MEMBERS]} format. | map(list(string)) | | {} |
+| [iam_bindings](variables.tf#L82) | Authoritative IAM bindings in {KEY => {role = ROLE, members = [], condition = {}}}. Keys are arbitrary. | map(object({…})) | | {} |
+| [iam_bindings_additive](variables.tf#L97) | Individual additive IAM bindings. Keys are arbitrary. | map(object({…})) | | {} |
+| [iam_by_principals](variables.tf#L112) | Authoritative IAM binding in {PRINCIPAL => [ROLES]} format. Principals need to be statically defined to avoid cycle errors. Merged internally with the `iam` variable. | map(list(string)) | | {} |
+| [labels](variables.tf#L119) | Labels to be attached to all buckets. | map(string) | | {} |
+| [lifecycle_rules](variables.tf#L125) | Bucket lifecycle rule. | map(object({…})) | | {} |
+| [location](variables.tf#L174) | Bucket location. | string | | null |
+| [logging_config](variables.tf#L184) | Bucket logging configuration. | object({…}) | | null |
+| [managed_folders](variables.tf#L193) | Managed folders to create within the bucket in {PATH => CONFIG} format. | map(object({…})) | | {} |
+| [notification_config](variables.tf#L226) | GCS Notification configuration. | object({…}) | | null |
+| [objects_to_upload](variables.tf#L243) | Objects to be uploaded to bucket. | map(object({…})) | | {} |
+| [prefix](variables.tf#L269) | Optional prefix used to generate the bucket name. | string | | null |
+| [public_access_prevention](variables.tf#L284) | Prevents public access to the bucket. | string | | null |
+| [requester_pays](variables.tf#L294) | Enables Requester Pays on a storage bucket. | bool | | null |
+| [retention_policy](variables.tf#L300) | Bucket retention policy. | object({…}) | | null |
+| [rpo](variables.tf#L309) | Bucket recovery point objective. | string | | null |
+| [soft_delete_retention](variables.tf#L319) | The duration in seconds that soft-deleted objects in the bucket will be retained and cannot be permanently deleted. Set to 0 to override the default and disable. | number | | null |
+| [storage_class](variables.tf#L325) | Bucket storage class. | string | | "STANDARD" |
+| [tag_bindings](variables.tf#L335) | Tag bindings for this folder, in key => tag value id format. | map(string) | | {} |
+| [uniform_bucket_level_access](variables.tf#L342) | Allow using object ACLs (false) or not (true, this is the recommended behavior) , defaults to true (which is the recommended practice, but not the behavior of storage API). | bool | | true |
+| [versioning](variables.tf#L348) | Enable versioning, defaults to false. | bool | | null |
+| [website](variables.tf#L354) | Bucket website. | object({…}) | | null |
## Outputs
diff --git a/modules/gcs/iam.tf b/modules/gcs/iam.tf
index 87a975871..69a4f62ac 100644
--- a/modules/gcs/iam.tf
+++ b/modules/gcs/iam.tf
@@ -1,5 +1,5 @@
/**
- * Copyright 2024 Google LLC
+ * Copyright 2025 Google LLC
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -35,14 +35,14 @@ locals {
resource "google_storage_bucket_iam_binding" "authoritative" {
for_each = local.iam
- bucket = google_storage_bucket.bucket.name
+ bucket = local.bucket.name
role = each.key
members = each.value
}
resource "google_storage_bucket_iam_binding" "bindings" {
for_each = var.iam_bindings
- bucket = google_storage_bucket.bucket.name
+ bucket = local.bucket.name
role = each.value.role
members = each.value.members
dynamic "condition" {
@@ -57,7 +57,7 @@ resource "google_storage_bucket_iam_binding" "bindings" {
resource "google_storage_bucket_iam_member" "bindings" {
for_each = var.iam_bindings_additive
- bucket = google_storage_bucket.bucket.name
+ bucket = local.bucket.name
role = each.value.role
member = each.value.member
dynamic "condition" {
diff --git a/modules/gcs/main.tf b/modules/gcs/main.tf
index 077a2730a..f67d5f791 100644
--- a/modules/gcs/main.tf
+++ b/modules/gcs/main.tf
@@ -1,5 +1,5 @@
/**
- * Copyright 2024 Google LLC
+ * Copyright 2025 Google LLC
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -15,13 +15,32 @@
*/
locals {
+ _name = "${local.prefix}${lower(var.name)}"
prefix = var.prefix == null ? "" : "${var.prefix}-"
notification = try(var.notification_config.enabled, false)
topic_create = try(var.notification_config.create_topic, null) != null
+ bucket = (
+ var.bucket_create ? {
+ name = try(google_storage_bucket.bucket[0].name, null)
+ id = try(google_storage_bucket.bucket[0].id, null)
+ url = try(google_storage_bucket.bucket[0].url, null)
+ }
+ : {
+ name = local._name
+ id = local._name
+ url = "gs://${local._name}"
+ }
+ )
+}
+
+moved {
+ from = google_storage_bucket.bucket
+ to = google_storage_bucket.bucket[0]
}
resource "google_storage_bucket" "bucket" {
- name = "${local.prefix}${lower(var.name)}"
+ count = var.bucket_create ? 1 : 0
+ name = local._name
project = var.project_id
location = var.location
storage_class = var.storage_class
@@ -142,7 +161,7 @@ resource "google_storage_bucket" "bucket" {
resource "google_storage_bucket_object" "objects" {
for_each = var.objects_to_upload
- bucket = google_storage_bucket.bucket.id
+ bucket = local.bucket.id
name = each.value.name
metadata = each.value.metadata
content = each.value.content
@@ -170,7 +189,7 @@ resource "google_storage_bucket_object" "objects" {
resource "google_storage_notification" "notification" {
count = local.notification ? 1 : 0
- bucket = google_storage_bucket.bucket.name
+ bucket = local.bucket.name
payload_format = var.notification_config.payload_format
topic = try(
google_pubsub_topic.topic[0].id, var.notification_config.topic_name
diff --git a/modules/gcs/managed-folders.tf b/modules/gcs/managed-folders.tf
index 326615d74..b042c66ac 100644
--- a/modules/gcs/managed-folders.tf
+++ b/modules/gcs/managed-folders.tf
@@ -1,5 +1,5 @@
/**
- * Copyright 2024 Google LLC
+ * Copyright 2025 Google LLC
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -58,7 +58,7 @@ locals {
resource "google_storage_managed_folder" "folder" {
for_each = local.managed_folders
- bucket = google_storage_bucket.bucket.name
+ bucket = local.bucket.name
name = each.key
force_destroy = each.value.force_destroy
}
@@ -70,7 +70,7 @@ resource "google_storage_managed_folder_iam_binding" "authoritative" {
}
role = each.value.role
members = each.value.members
- bucket = google_storage_bucket.bucket.name
+ bucket = local.bucket.name
managed_folder = google_storage_managed_folder.folder[each.value.managed_folder].name
}
@@ -78,7 +78,7 @@ resource "google_storage_managed_folder_iam_binding" "bindings" {
for_each = local.managed_folder_iam_bindings
role = each.value.role
members = each.value.members
- bucket = google_storage_bucket.bucket.name
+ bucket = local.bucket.name
managed_folder = google_storage_managed_folder.folder[each.value.managed_folder].name
dynamic "condition" {
@@ -95,7 +95,7 @@ resource "google_storage_managed_folder_iam_member" "members" {
for_each = local.managed_folder_iam_bindings_additive
role = each.value.role
member = each.value.member
- bucket = google_storage_bucket.bucket.name
+ bucket = local.bucket.name
managed_folder = google_storage_managed_folder.folder[each.value.managed_folder].name
dynamic "condition" {
diff --git a/modules/gcs/outputs.tf b/modules/gcs/outputs.tf
index ed2f6c212..8ee19644a 100644
--- a/modules/gcs/outputs.tf
+++ b/modules/gcs/outputs.tf
@@ -1,5 +1,5 @@
/**
- * Copyright 2022 Google LLC
+ * Copyright 2025 Google LLC
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,7 +16,7 @@
output "bucket" {
description = "Bucket resource."
- value = google_storage_bucket.bucket
+ value = one(google_storage_bucket.bucket)
}
# We add `id` as an alias to `name` to simplify log sink handling.
@@ -27,7 +27,7 @@ output "bucket" {
output "id" {
description = "Fully qualified bucket id."
- value = "${local.prefix}${lower(var.name)}"
+ value = local._name
depends_on = [
google_storage_bucket.bucket,
google_storage_bucket_iam_binding.bindings,
@@ -38,7 +38,7 @@ output "id" {
output "name" {
description = "Bucket name."
- value = "${local.prefix}${lower(var.name)}"
+ value = local._name
depends_on = [
google_storage_bucket.bucket,
google_storage_bucket_iam_binding.bindings,
@@ -71,5 +71,5 @@ output "topic" {
output "url" {
description = "Bucket URL."
- value = google_storage_bucket.bucket.url
+ value = local.bucket.url
}
diff --git a/modules/gcs/tags.tf b/modules/gcs/tags.tf
index 895605432..9432411ca 100644
--- a/modules/gcs/tags.tf
+++ b/modules/gcs/tags.tf
@@ -1,5 +1,5 @@
/**
- * Copyright 2022 Google LLC
+ * Copyright 2025 Google LLC
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,7 +16,7 @@
resource "google_tags_location_tag_binding" "binding" {
for_each = var.tag_bindings
- parent = "//storage.googleapis.com/projects/_/buckets/${local.prefix}${lower(var.name)}"
+ parent = "//storage.googleapis.com/projects/_/buckets/${local._name}"
tag_value = each.value
location = var.location
depends_on = [
diff --git a/modules/gcs/variables.tf b/modules/gcs/variables.tf
index 5c66d2e51..da26b163a 100644
--- a/modules/gcs/variables.tf
+++ b/modules/gcs/variables.tf
@@ -1,5 +1,5 @@
/**
- * Copyright 2024 Google LLC
+ * Copyright 2025 Google LLC
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -20,6 +20,12 @@ variable "autoclass" {
default = null
}
+variable "bucket_create" {
+ description = "Create bucket."
+ type = bool
+ default = true
+}
+
variable "cors" {
description = "CORS configuration for the bucket. Defaults to null."
type = object({
@@ -168,7 +174,11 @@ variable "lifecycle_rules" {
variable "location" {
description = "Bucket location."
type = string
- # default = "EU"
+ default = null
+ validation {
+ condition = ((var.bucket_create == true) == (var.location != null))
+ error_message = "Bucket location is required if and only if bucket_create is true."
+ }
}
variable "logging_config" {
diff --git a/modules/gcs/versions.tofu b/modules/gcs/versions.tofu
index a07a693c5..80d3b0657 100644
--- a/modules/gcs/versions.tofu
+++ b/modules/gcs/versions.tofu
@@ -15,7 +15,7 @@
# Fabric release: v36.1.0
terraform {
- required_version = ">= 1.8.0"
+ required_version = ">= 1.9.0"
required_providers {
google = {
source = "hashicorp/google"
diff --git a/modules/gcve-private-cloud/versions.tofu b/modules/gcve-private-cloud/versions.tofu
index 0f87ad771..4f69bdc8a 100644
--- a/modules/gcve-private-cloud/versions.tofu
+++ b/modules/gcve-private-cloud/versions.tofu
@@ -15,7 +15,7 @@
# Fabric release: v36.1.0
terraform {
- required_version = ">= 1.8.0"
+ required_version = ">= 1.9.0"
required_providers {
google = {
source = "hashicorp/google"
diff --git a/modules/gke-cluster-autopilot/versions.tofu b/modules/gke-cluster-autopilot/versions.tofu
index d082ffaa7..4763f0b25 100644
--- a/modules/gke-cluster-autopilot/versions.tofu
+++ b/modules/gke-cluster-autopilot/versions.tofu
@@ -15,7 +15,7 @@
# Fabric release: v36.1.0
terraform {
- required_version = ">= 1.8.0"
+ required_version = ">= 1.9.0"
required_providers {
google = {
source = "hashicorp/google"
diff --git a/modules/gke-cluster-standard/versions.tofu b/modules/gke-cluster-standard/versions.tofu
index ce98b621d..2cc70cd8a 100644
--- a/modules/gke-cluster-standard/versions.tofu
+++ b/modules/gke-cluster-standard/versions.tofu
@@ -15,7 +15,7 @@
# Fabric release: v36.1.0
terraform {
- required_version = ">= 1.8.0"
+ required_version = ">= 1.9.0"
required_providers {
google = {
source = "hashicorp/google"
diff --git a/modules/gke-hub/versions.tofu b/modules/gke-hub/versions.tofu
index e91414b98..a99a33a1e 100644
--- a/modules/gke-hub/versions.tofu
+++ b/modules/gke-hub/versions.tofu
@@ -15,7 +15,7 @@
# Fabric release: v36.1.0
terraform {
- required_version = ">= 1.8.0"
+ required_version = ">= 1.9.0"
required_providers {
google = {
source = "hashicorp/google"
diff --git a/modules/gke-nodepool/versions.tofu b/modules/gke-nodepool/versions.tofu
index d450be994..736437af9 100644
--- a/modules/gke-nodepool/versions.tofu
+++ b/modules/gke-nodepool/versions.tofu
@@ -15,7 +15,7 @@
# Fabric release: v36.1.0
terraform {
- required_version = ">= 1.8.0"
+ required_version = ">= 1.9.0"
required_providers {
google = {
source = "hashicorp/google"
diff --git a/modules/iam-service-account/versions.tofu b/modules/iam-service-account/versions.tofu
index 7a1bf594b..e2e1a8fe1 100644
--- a/modules/iam-service-account/versions.tofu
+++ b/modules/iam-service-account/versions.tofu
@@ -15,7 +15,7 @@
# Fabric release: v36.1.0
terraform {
- required_version = ">= 1.8.0"
+ required_version = ">= 1.9.0"
required_providers {
google = {
source = "hashicorp/google"
diff --git a/modules/kms/versions.tofu b/modules/kms/versions.tofu
index 14c374258..8c321d074 100644
--- a/modules/kms/versions.tofu
+++ b/modules/kms/versions.tofu
@@ -15,7 +15,7 @@
# Fabric release: v36.1.0
terraform {
- required_version = ">= 1.8.0"
+ required_version = ">= 1.9.0"
required_providers {
google = {
source = "hashicorp/google"
diff --git a/modules/logging-bucket/versions.tofu b/modules/logging-bucket/versions.tofu
index 3edc00187..8836297bd 100644
--- a/modules/logging-bucket/versions.tofu
+++ b/modules/logging-bucket/versions.tofu
@@ -15,7 +15,7 @@
# Fabric release: v36.1.0
terraform {
- required_version = ">= 1.8.0"
+ required_version = ">= 1.9.0"
required_providers {
google = {
source = "hashicorp/google"
diff --git a/modules/looker-core/versions.tofu b/modules/looker-core/versions.tofu
index fc74ed218..f6c039e2e 100644
--- a/modules/looker-core/versions.tofu
+++ b/modules/looker-core/versions.tofu
@@ -15,7 +15,7 @@
# Fabric release: v36.1.0
terraform {
- required_version = ">= 1.8.0"
+ required_version = ">= 1.9.0"
required_providers {
google = {
source = "hashicorp/google"
diff --git a/modules/ncc-spoke-ra/versions.tofu b/modules/ncc-spoke-ra/versions.tofu
index f4cbbcc41..32caa078a 100644
--- a/modules/ncc-spoke-ra/versions.tofu
+++ b/modules/ncc-spoke-ra/versions.tofu
@@ -15,7 +15,7 @@
# Fabric release: v36.1.0
terraform {
- required_version = ">= 1.8.0"
+ required_version = ">= 1.9.0"
required_providers {
google = {
source = "hashicorp/google"
diff --git a/modules/net-address/versions.tofu b/modules/net-address/versions.tofu
index d2a5038a3..588e45845 100644
--- a/modules/net-address/versions.tofu
+++ b/modules/net-address/versions.tofu
@@ -15,7 +15,7 @@
# Fabric release: v36.1.0
terraform {
- required_version = ">= 1.8.0"
+ required_version = ">= 1.9.0"
required_providers {
google = {
source = "hashicorp/google"
diff --git a/modules/net-cloudnat/versions.tofu b/modules/net-cloudnat/versions.tofu
index 44f51d0d3..597d0fc4b 100644
--- a/modules/net-cloudnat/versions.tofu
+++ b/modules/net-cloudnat/versions.tofu
@@ -15,7 +15,7 @@
# Fabric release: v36.1.0
terraform {
- required_version = ">= 1.8.0"
+ required_version = ">= 1.9.0"
required_providers {
google = {
source = "hashicorp/google"
diff --git a/modules/net-firewall-policy/versions.tofu b/modules/net-firewall-policy/versions.tofu
index 5e5e07f67..fe14e5c98 100644
--- a/modules/net-firewall-policy/versions.tofu
+++ b/modules/net-firewall-policy/versions.tofu
@@ -15,7 +15,7 @@
# Fabric release: v36.1.0
terraform {
- required_version = ">= 1.8.0"
+ required_version = ">= 1.9.0"
required_providers {
google = {
source = "hashicorp/google"
diff --git a/modules/net-ipsec-over-interconnect/versions.tofu b/modules/net-ipsec-over-interconnect/versions.tofu
index 63616bb0b..6796a220a 100644
--- a/modules/net-ipsec-over-interconnect/versions.tofu
+++ b/modules/net-ipsec-over-interconnect/versions.tofu
@@ -15,7 +15,7 @@
# Fabric release: v36.1.0
terraform {
- required_version = ">= 1.8.0"
+ required_version = ">= 1.9.0"
required_providers {
google = {
source = "hashicorp/google"
diff --git a/modules/net-lb-app-ext-regional/versions.tofu b/modules/net-lb-app-ext-regional/versions.tofu
index efaf21c48..945a0c8c2 100644
--- a/modules/net-lb-app-ext-regional/versions.tofu
+++ b/modules/net-lb-app-ext-regional/versions.tofu
@@ -15,7 +15,7 @@
# Fabric release: v36.1.0
terraform {
- required_version = ">= 1.8.0"
+ required_version = ">= 1.9.0"
required_providers {
google = {
source = "hashicorp/google"
diff --git a/modules/net-lb-app-ext/versions.tofu b/modules/net-lb-app-ext/versions.tofu
index 728eb6f82..7735078f3 100644
--- a/modules/net-lb-app-ext/versions.tofu
+++ b/modules/net-lb-app-ext/versions.tofu
@@ -15,7 +15,7 @@
# Fabric release: v36.1.0
terraform {
- required_version = ">= 1.8.0"
+ required_version = ">= 1.9.0"
required_providers {
google = {
source = "hashicorp/google"
diff --git a/modules/net-lb-app-int-cross-region/versions.tofu b/modules/net-lb-app-int-cross-region/versions.tofu
index ba2cd42d8..db2017f5f 100644
--- a/modules/net-lb-app-int-cross-region/versions.tofu
+++ b/modules/net-lb-app-int-cross-region/versions.tofu
@@ -15,7 +15,7 @@
# Fabric release: v36.1.0
terraform {
- required_version = ">= 1.8.0"
+ required_version = ">= 1.9.0"
required_providers {
google = {
source = "hashicorp/google"
diff --git a/modules/net-lb-app-int/versions.tofu b/modules/net-lb-app-int/versions.tofu
index 52c9c29a7..344a9c9ec 100644
--- a/modules/net-lb-app-int/versions.tofu
+++ b/modules/net-lb-app-int/versions.tofu
@@ -15,7 +15,7 @@
# Fabric release: v36.1.0
terraform {
- required_version = ">= 1.8.0"
+ required_version = ">= 1.9.0"
required_providers {
google = {
source = "hashicorp/google"
diff --git a/modules/net-lb-ext/versions.tofu b/modules/net-lb-ext/versions.tofu
index 8a9d852c1..ec89ebfbd 100644
--- a/modules/net-lb-ext/versions.tofu
+++ b/modules/net-lb-ext/versions.tofu
@@ -15,7 +15,7 @@
# Fabric release: v36.1.0
terraform {
- required_version = ">= 1.8.0"
+ required_version = ">= 1.9.0"
required_providers {
google = {
source = "hashicorp/google"
diff --git a/modules/net-lb-int/versions.tofu b/modules/net-lb-int/versions.tofu
index 5c194f8e3..5ce287c2a 100644
--- a/modules/net-lb-int/versions.tofu
+++ b/modules/net-lb-int/versions.tofu
@@ -15,7 +15,7 @@
# Fabric release: v36.1.0
terraform {
- required_version = ">= 1.8.0"
+ required_version = ">= 1.9.0"
required_providers {
google = {
source = "hashicorp/google"
diff --git a/modules/net-lb-proxy-int/versions.tofu b/modules/net-lb-proxy-int/versions.tofu
index 1c8924fed..e373ab530 100644
--- a/modules/net-lb-proxy-int/versions.tofu
+++ b/modules/net-lb-proxy-int/versions.tofu
@@ -15,7 +15,7 @@
# Fabric release: v36.1.0
terraform {
- required_version = ">= 1.8.0"
+ required_version = ">= 1.9.0"
required_providers {
google = {
source = "hashicorp/google"
diff --git a/modules/net-swp/versions.tofu b/modules/net-swp/versions.tofu
index 71839a9e9..51cbdbd50 100644
--- a/modules/net-swp/versions.tofu
+++ b/modules/net-swp/versions.tofu
@@ -15,7 +15,7 @@
# Fabric release: v36.1.0
terraform {
- required_version = ">= 1.8.0"
+ required_version = ">= 1.9.0"
required_providers {
google = {
source = "hashicorp/google"
diff --git a/modules/net-vlan-attachment/versions.tofu b/modules/net-vlan-attachment/versions.tofu
index 436677e75..a64bd08b7 100644
--- a/modules/net-vlan-attachment/versions.tofu
+++ b/modules/net-vlan-attachment/versions.tofu
@@ -15,7 +15,7 @@
# Fabric release: v36.1.0
terraform {
- required_version = ">= 1.8.0"
+ required_version = ">= 1.9.0"
required_providers {
google = {
source = "hashicorp/google"
diff --git a/modules/net-vpc-firewall/versions.tofu b/modules/net-vpc-firewall/versions.tofu
index 679b31935..2908b3204 100644
--- a/modules/net-vpc-firewall/versions.tofu
+++ b/modules/net-vpc-firewall/versions.tofu
@@ -15,7 +15,7 @@
# Fabric release: v36.1.0
terraform {
- required_version = ">= 1.8.0"
+ required_version = ">= 1.9.0"
required_providers {
google = {
source = "hashicorp/google"
diff --git a/modules/net-vpc-peering/versions.tofu b/modules/net-vpc-peering/versions.tofu
index a0f159c15..e2f8768a9 100644
--- a/modules/net-vpc-peering/versions.tofu
+++ b/modules/net-vpc-peering/versions.tofu
@@ -15,7 +15,7 @@
# Fabric release: v36.1.0
terraform {
- required_version = ">= 1.8.0"
+ required_version = ">= 1.9.0"
required_providers {
google = {
source = "hashicorp/google"
diff --git a/modules/net-vpc/versions.tofu b/modules/net-vpc/versions.tofu
index d470d93e8..d176a2e89 100644
--- a/modules/net-vpc/versions.tofu
+++ b/modules/net-vpc/versions.tofu
@@ -15,7 +15,7 @@
# Fabric release: v36.1.0
terraform {
- required_version = ">= 1.8.0"
+ required_version = ">= 1.9.0"
required_providers {
google = {
source = "hashicorp/google"
diff --git a/modules/net-vpn-dynamic/versions.tofu b/modules/net-vpn-dynamic/versions.tofu
index 7e436c9a1..fac1b8b2b 100644
--- a/modules/net-vpn-dynamic/versions.tofu
+++ b/modules/net-vpn-dynamic/versions.tofu
@@ -15,7 +15,7 @@
# Fabric release: v36.1.0
terraform {
- required_version = ">= 1.8.0"
+ required_version = ">= 1.9.0"
required_providers {
google = {
source = "hashicorp/google"
diff --git a/modules/net-vpn-ha/versions.tofu b/modules/net-vpn-ha/versions.tofu
index e241379e1..03582078a 100644
--- a/modules/net-vpn-ha/versions.tofu
+++ b/modules/net-vpn-ha/versions.tofu
@@ -15,7 +15,7 @@
# Fabric release: v36.1.0
terraform {
- required_version = ">= 1.8.0"
+ required_version = ">= 1.9.0"
required_providers {
google = {
source = "hashicorp/google"
diff --git a/modules/net-vpn-static/versions.tofu b/modules/net-vpn-static/versions.tofu
index 6b1d3eb23..8ed2e84c8 100644
--- a/modules/net-vpn-static/versions.tofu
+++ b/modules/net-vpn-static/versions.tofu
@@ -15,7 +15,7 @@
# Fabric release: v36.1.0
terraform {
- required_version = ">= 1.8.0"
+ required_version = ">= 1.9.0"
required_providers {
google = {
source = "hashicorp/google"
diff --git a/modules/organization/versions.tofu b/modules/organization/versions.tofu
index a78fa4971..31f9df0df 100644
--- a/modules/organization/versions.tofu
+++ b/modules/organization/versions.tofu
@@ -15,7 +15,7 @@
# Fabric release: v36.1.0
terraform {
- required_version = ">= 1.8.0"
+ required_version = ">= 1.9.0"
required_providers {
google = {
source = "hashicorp/google"
diff --git a/modules/project/versions.tofu b/modules/project/versions.tofu
index 49760f588..645b9c8c4 100644
--- a/modules/project/versions.tofu
+++ b/modules/project/versions.tofu
@@ -15,7 +15,7 @@
# Fabric release: v36.1.0
terraform {
- required_version = ">= 1.8.0"
+ required_version = ">= 1.9.0"
required_providers {
google = {
source = "hashicorp/google"
diff --git a/modules/projects-data-source/versions.tofu b/modules/projects-data-source/versions.tofu
index 097cd6da5..476e94f8f 100644
--- a/modules/projects-data-source/versions.tofu
+++ b/modules/projects-data-source/versions.tofu
@@ -15,7 +15,7 @@
# Fabric release: v36.1.0
terraform {
- required_version = ">= 1.8.0"
+ required_version = ">= 1.9.0"
required_providers {
google = {
source = "hashicorp/google"
diff --git a/modules/pubsub/versions.tofu b/modules/pubsub/versions.tofu
index a65a01389..308f95516 100644
--- a/modules/pubsub/versions.tofu
+++ b/modules/pubsub/versions.tofu
@@ -15,7 +15,7 @@
# Fabric release: v36.1.0
terraform {
- required_version = ">= 1.8.0"
+ required_version = ">= 1.9.0"
required_providers {
google = {
source = "hashicorp/google"
diff --git a/modules/secret-manager/versions.tofu b/modules/secret-manager/versions.tofu
index 41bde2b65..bc3fc24ee 100644
--- a/modules/secret-manager/versions.tofu
+++ b/modules/secret-manager/versions.tofu
@@ -15,7 +15,7 @@
# Fabric release: v36.1.0
terraform {
- required_version = ">= 1.8.0"
+ required_version = ">= 1.9.0"
required_providers {
google = {
source = "hashicorp/google"
diff --git a/modules/secure-source-manager-instance/versions.tofu b/modules/secure-source-manager-instance/versions.tofu
index f6fd8452b..d6a05f672 100644
--- a/modules/secure-source-manager-instance/versions.tofu
+++ b/modules/secure-source-manager-instance/versions.tofu
@@ -15,7 +15,7 @@
# Fabric release: v36.1.0
terraform {
- required_version = ">= 1.8.0"
+ required_version = ">= 1.9.0"
required_providers {
google = {
source = "hashicorp/google"
diff --git a/modules/service-directory/versions.tofu b/modules/service-directory/versions.tofu
index b79d12205..0a72b91b1 100644
--- a/modules/service-directory/versions.tofu
+++ b/modules/service-directory/versions.tofu
@@ -15,7 +15,7 @@
# Fabric release: v36.1.0
terraform {
- required_version = ">= 1.8.0"
+ required_version = ">= 1.9.0"
required_providers {
google = {
source = "hashicorp/google"
diff --git a/modules/source-repository/versions.tofu b/modules/source-repository/versions.tofu
index 2f805e03c..10aa31499 100644
--- a/modules/source-repository/versions.tofu
+++ b/modules/source-repository/versions.tofu
@@ -15,7 +15,7 @@
# Fabric release: v36.1.0
terraform {
- required_version = ">= 1.8.0"
+ required_version = ">= 1.9.0"
required_providers {
google = {
source = "hashicorp/google"
diff --git a/modules/spanner-instance/versions.tofu b/modules/spanner-instance/versions.tofu
index c9e9bcd58..f946bb7ff 100644
--- a/modules/spanner-instance/versions.tofu
+++ b/modules/spanner-instance/versions.tofu
@@ -15,7 +15,7 @@
# Fabric release: v36.1.0
terraform {
- required_version = ">= 1.8.0"
+ required_version = ">= 1.9.0"
required_providers {
google = {
source = "hashicorp/google"
diff --git a/modules/vpc-sc/versions.tofu b/modules/vpc-sc/versions.tofu
index 277941ed5..47292f3d8 100644
--- a/modules/vpc-sc/versions.tofu
+++ b/modules/vpc-sc/versions.tofu
@@ -15,7 +15,7 @@
# Fabric release: v36.1.0
terraform {
- required_version = ">= 1.8.0"
+ required_version = ">= 1.9.0"
required_providers {
google = {
source = "hashicorp/google"
diff --git a/modules/workstation-cluster/versions.tofu b/modules/workstation-cluster/versions.tofu
index 1148e4f41..19d6a1b46 100644
--- a/modules/workstation-cluster/versions.tofu
+++ b/modules/workstation-cluster/versions.tofu
@@ -15,7 +15,7 @@
# Fabric release: v36.1.0
terraform {
- required_version = ">= 1.8.0"
+ required_version = ">= 1.9.0"
required_providers {
google = {
source = "hashicorp/google"
diff --git a/tests/examples_e2e/setup_module/versions.tofu b/tests/examples_e2e/setup_module/versions.tofu
index 24c09fe68..4a6e051b6 100644
--- a/tests/examples_e2e/setup_module/versions.tofu
+++ b/tests/examples_e2e/setup_module/versions.tofu
@@ -15,7 +15,7 @@
# Fabric release: v36.1.0
terraform {
- required_version = ">= 1.8.0"
+ required_version = ">= 1.9.0"
required_providers {
google = {
source = "hashicorp/google"
diff --git a/tests/fast/stages/s1_resman/simple.yaml b/tests/fast/stages/s1_resman/simple.yaml
index 0f7d2058d..b469fb0c7 100644
--- a/tests/fast/stages/s1_resman/simple.yaml
+++ b/tests/fast/stages/s1_resman/simple.yaml
@@ -1,4 +1,4 @@
-# Copyright 2024 Google LLC
+# Copyright 2025 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -16,6 +16,9 @@ values:
google_storage_bucket_object.providers["1-resman-folder-sandbox"]:
bucket: fast2-prod-iac-core-outputs
name: providers/1-resman-folder-sandbox-providers.tf
+ google_storage_bucket_object.providers["1-resman-folder-shared"]:
+ bucket: fast2-prod-iac-core-outputs
+ name: providers/1-resman-folder-shared-providers.tf
google_storage_bucket_object.providers["1-resman-folder-tenants"]:
bucket: fast2-prod-iac-core-outputs
name: providers/1-resman-folder-tenants-providers.tf
@@ -98,6 +101,8 @@ values:
description: null
disabled: false
display_name: CI/CD 2-net prod service account (read-only).
+ email: fast2-prod-resman-net-1r@fast2-prod-automation.iam.gserviceaccount.com
+ member: serviceAccount:fast2-prod-resman-net-1r@fast2-prod-automation.iam.gserviceaccount.com
project: fast2-prod-automation
timeouts: null
module.cicd-sa-ro["networking"].google_service_account_iam_binding.authoritative["roles/iam.workloadIdentityUser"]:
@@ -119,6 +124,8 @@ values:
description: null
disabled: false
display_name: CI/CD 2-sec prod service account (read-only).
+ email: fast2-prod-resman-sec-1r@fast2-prod-automation.iam.gserviceaccount.com
+ member: serviceAccount:fast2-prod-resman-sec-1r@fast2-prod-automation.iam.gserviceaccount.com
project: fast2-prod-automation
timeouts: null
module.cicd-sa-ro["security"].google_service_account_iam_binding.authoritative["roles/iam.workloadIdentityUser"]:
@@ -140,6 +147,8 @@ values:
description: null
disabled: false
display_name: CI/CD 2-net prod service account.
+ email: fast2-prod-resman-net-1@fast2-prod-automation.iam.gserviceaccount.com
+ member: serviceAccount:fast2-prod-resman-net-1@fast2-prod-automation.iam.gserviceaccount.com
project: fast2-prod-automation
timeouts: null
module.cicd-sa-rw["networking"].google_service_account_iam_binding.authoritative["roles/iam.workloadIdentityUser"]:
@@ -161,6 +170,8 @@ values:
description: null
disabled: false
display_name: CI/CD 2-sec prod service account.
+ email: fast2-prod-resman-sec-1@fast2-prod-automation.iam.gserviceaccount.com
+ member: serviceAccount:fast2-prod-resman-sec-1@fast2-prod-automation.iam.gserviceaccount.com
project: fast2-prod-automation
timeouts: null
module.cicd-sa-rw["security"].google_service_account_iam_binding.authoritative["roles/iam.workloadIdentityUser"]:
@@ -172,7 +183,7 @@ values:
: bucket: fast2-prod-iac-core-outputs
condition: []
role: roles/storage.objectViewer
- module.net-bucket[0].google_storage_bucket.bucket:
+ module.net-bucket[0].google_storage_bucket.bucket[0]:
autoclass: []
cors: []
custom_placement_config: []
@@ -403,6 +414,8 @@ values:
description: null
disabled: false
display_name: Terraform resman networking service account (read-only).
+ email: fast2-prod-resman-net-0r@fast2-prod-automation.iam.gserviceaccount.com
+ member: serviceAccount:fast2-prod-resman-net-0r@fast2-prod-automation.iam.gserviceaccount.com
project: fast2-prod-automation
timeouts: null
module.net-sa-ro[0].google_service_account_iam_binding.authoritative["roles/iam.serviceAccountTokenCreator"]:
@@ -424,6 +437,8 @@ values:
description: null
disabled: false
display_name: Terraform resman networking service account.
+ email: fast2-prod-resman-net-0@fast2-prod-automation.iam.gserviceaccount.com
+ member: serviceAccount:fast2-prod-resman-net-0@fast2-prod-automation.iam.gserviceaccount.com
project: fast2-prod-automation
timeouts: null
module.net-sa-rw[0].google_service_account_iam_binding.authoritative["roles/iam.serviceAccountTokenCreator"]:
@@ -435,7 +450,7 @@ values:
bucket: fast2-prod-iac-core-outputs
condition: []
role: roles/storage.objectAdmin
- module.nsec-bucket[0].google_storage_bucket.bucket:
+ module.nsec-bucket[0].google_storage_bucket.bucket[0]:
autoclass: []
cors: []
custom_placement_config: []
@@ -482,6 +497,8 @@ values:
description: null
disabled: false
display_name: Terraform resman network security main service account (read-only).
+ email: fast2-resman-nsec-0r@fast2-prod-automation.iam.gserviceaccount.com
+ member: serviceAccount:fast2-resman-nsec-0r@fast2-prod-automation.iam.gserviceaccount.com
project: fast2-prod-automation
timeouts: null
module.nsec-sa-ro[0].google_service_account_iam_binding.authoritative["roles/iam.serviceAccountTokenCreator"]:
@@ -502,6 +519,8 @@ values:
description: null
disabled: false
display_name: Terraform resman network security main service account.
+ email: fast2-resman-nsec-0@fast2-prod-automation.iam.gserviceaccount.com
+ member: serviceAccount:fast2-resman-nsec-0@fast2-prod-automation.iam.gserviceaccount.com
project: fast2-prod-automation
timeouts: null
module.nsec-sa-rw[0].google_service_account_iam_binding.authoritative["roles/iam.serviceAccountTokenCreator"]:
@@ -662,6 +681,10 @@ values:
description: Managed by the Terraform organization module.
short_name: security
timeouts: null
+ module.organization[0].google_tags_tag_value.default["context/shared"]:
+ description: Managed by the Terraform organization module.
+ short_name: shared
+ timeouts: null
module.organization[0].google_tags_tag_value.default["context/tenants"]:
description: Managed by the Terraform organization module.
short_name: tenants
@@ -706,7 +729,7 @@ values:
- serviceAccount:fast2-prod-resman-sec-0r@fast2-prod-automation.iam.gserviceaccount.com
- serviceAccount:fast2-resman-pf-0r@fast2-prod-automation.iam.gserviceaccount.com
role: roles/resourcemanager.tagViewer
- module.pf-bucket[0].google_storage_bucket.bucket:
+ module.pf-bucket[0].google_storage_bucket.bucket[0]:
autoclass: []
cors: []
custom_placement_config: []
@@ -753,6 +776,8 @@ values:
description: null
disabled: false
display_name: Terraform resman project factory main service account (read-only).
+ email: fast2-resman-pf-0r@fast2-prod-automation.iam.gserviceaccount.com
+ member: serviceAccount:fast2-resman-pf-0r@fast2-prod-automation.iam.gserviceaccount.com
project: fast2-prod-automation
timeouts: null
module.pf-sa-ro[0].google_service_account_iam_binding.authoritative["roles/iam.serviceAccountTokenCreator"]:
@@ -773,6 +798,8 @@ values:
description: null
disabled: false
display_name: Terraform resman project factory main service account.
+ email: fast2-resman-pf-0@fast2-prod-automation.iam.gserviceaccount.com
+ member: serviceAccount:fast2-resman-pf-0@fast2-prod-automation.iam.gserviceaccount.com
project: fast2-prod-automation
timeouts: null
module.pf-sa-rw[0].google_service_account_iam_binding.authoritative["roles/iam.serviceAccountTokenCreator"]:
@@ -783,7 +810,7 @@ values:
bucket: fast2-prod-iac-core-outputs
condition: []
role: roles/storage.objectAdmin
- module.sec-bucket[0].google_storage_bucket.bucket:
+ module.sec-bucket[0].google_storage_bucket.bucket[0]:
autoclass: []
cors: []
custom_placement_config: []
@@ -905,6 +932,8 @@ values:
description: null
disabled: false
display_name: Terraform resman security service account (read-only).
+ email: fast2-prod-resman-sec-0r@fast2-prod-automation.iam.gserviceaccount.com
+ member: serviceAccount:fast2-prod-resman-sec-0r@fast2-prod-automation.iam.gserviceaccount.com
project: fast2-prod-automation
timeouts: null
module.sec-sa-ro[0].google_service_account_iam_binding.authoritative["roles/iam.serviceAccountTokenCreator"]:
@@ -926,6 +955,8 @@ values:
description: null
disabled: false
display_name: Terraform resman security service account.
+ email: fast2-prod-resman-sec-0@fast2-prod-automation.iam.gserviceaccount.com
+ member: serviceAccount:fast2-prod-resman-sec-0@fast2-prod-automation.iam.gserviceaccount.com
project: fast2-prod-automation
timeouts: null
module.sec-sa-rw[0].google_service_account_iam_binding.authoritative["roles/iam.serviceAccountTokenCreator"]:
@@ -937,7 +968,7 @@ values:
bucket: fast2-prod-iac-core-outputs
condition: []
role: roles/storage.objectAdmin
- module.stage3-bucket["gcve-dev"].google_storage_bucket.bucket:
+ module.stage3-bucket["gcve-dev"].google_storage_bucket.bucket[0]:
autoclass: []
cors: []
custom_placement_config: []
@@ -974,7 +1005,7 @@ values:
members:
- serviceAccount:fast2-dev-resman-gcve-0r@fast2-prod-automation.iam.gserviceaccount.com
role: roles/storage.objectViewer
- module.stage3-bucket["gcve-prod"].google_storage_bucket.bucket:
+ module.stage3-bucket["gcve-prod"].google_storage_bucket.bucket[0]:
autoclass: []
cors: []
custom_placement_config: []
@@ -1011,7 +1042,7 @@ values:
members:
- serviceAccount:fast2-prod-resman-gcve-0r@fast2-prod-automation.iam.gserviceaccount.com
role: roles/storage.objectViewer
- module.stage3-bucket["gke-dev"].google_storage_bucket.bucket:
+ module.stage3-bucket["gke-dev"].google_storage_bucket.bucket[0]:
autoclass: []
cors: []
custom_placement_config: []
@@ -1048,7 +1079,7 @@ values:
members:
- serviceAccount:fast2-dev-resman-gke-0r@fast2-prod-automation.iam.gserviceaccount.com
role: roles/storage.objectViewer
- module.stage3-bucket["gke-prod"].google_storage_bucket.bucket:
+ module.stage3-bucket["gke-prod"].google_storage_bucket.bucket[0]:
autoclass: []
cors: []
custom_placement_config: []
@@ -1085,7 +1116,7 @@ values:
members:
- serviceAccount:fast2-prod-resman-gke-0r@fast2-prod-automation.iam.gserviceaccount.com
role: roles/storage.objectViewer
- module.stage3-bucket["project-factory-dev"].google_storage_bucket.bucket:
+ module.stage3-bucket["project-factory-dev"].google_storage_bucket.bucket[0]:
autoclass: []
cors: []
custom_placement_config: []
@@ -1122,7 +1153,7 @@ values:
members:
- serviceAccount:fast2-dev-resman-pf-0r@fast2-prod-automation.iam.gserviceaccount.com
role: roles/storage.objectViewer
- module.stage3-bucket["project-factory-prod"].google_storage_bucket.bucket:
+ module.stage3-bucket["project-factory-prod"].google_storage_bucket.bucket[0]:
autoclass: []
cors: []
custom_placement_config: []
@@ -1333,6 +1364,8 @@ values:
description: null
disabled: false
display_name: Terraform resman gcve-dev service account (read-only).
+ email: fast2-dev-resman-gcve-0r@fast2-prod-automation.iam.gserviceaccount.com
+ member: serviceAccount:fast2-dev-resman-gcve-0r@fast2-prod-automation.iam.gserviceaccount.com
project: fast2-prod-automation
timeouts: null
module.stage3-sa-ro["gcve-dev"].google_service_account_iam_binding.authoritative["roles/iam.serviceAccountTokenCreator"]:
@@ -1353,6 +1386,8 @@ values:
description: null
disabled: false
display_name: Terraform resman gcve-prod service account (read-only).
+ email: fast2-prod-resman-gcve-0r@fast2-prod-automation.iam.gserviceaccount.com
+ member: serviceAccount:fast2-prod-resman-gcve-0r@fast2-prod-automation.iam.gserviceaccount.com
project: fast2-prod-automation
timeouts: null
module.stage3-sa-ro["gcve-prod"].google_service_account_iam_binding.authoritative["roles/iam.serviceAccountTokenCreator"]:
@@ -1373,6 +1408,8 @@ values:
description: null
disabled: false
display_name: Terraform resman gke-dev service account (read-only).
+ email: fast2-dev-resman-gke-0r@fast2-prod-automation.iam.gserviceaccount.com
+ member: serviceAccount:fast2-dev-resman-gke-0r@fast2-prod-automation.iam.gserviceaccount.com
project: fast2-prod-automation
timeouts: null
module.stage3-sa-ro["gke-dev"].google_service_account_iam_binding.authoritative["roles/iam.serviceAccountTokenCreator"]:
@@ -1393,6 +1430,8 @@ values:
description: null
disabled: false
display_name: Terraform resman gke-prod service account (read-only).
+ email: fast2-prod-resman-gke-0r@fast2-prod-automation.iam.gserviceaccount.com
+ member: serviceAccount:fast2-prod-resman-gke-0r@fast2-prod-automation.iam.gserviceaccount.com
project: fast2-prod-automation
timeouts: null
module.stage3-sa-ro["gke-prod"].google_service_account_iam_binding.authoritative["roles/iam.serviceAccountTokenCreator"]:
@@ -1413,6 +1452,8 @@ values:
description: null
disabled: false
display_name: Terraform resman project-factory-dev service account (read-only).
+ email: fast2-dev-resman-pf-0r@fast2-prod-automation.iam.gserviceaccount.com
+ member: serviceAccount:fast2-dev-resman-pf-0r@fast2-prod-automation.iam.gserviceaccount.com
project: fast2-prod-automation
timeouts: null
? module.stage3-sa-ro["project-factory-dev"].google_service_account_iam_binding.authoritative["roles/iam.serviceAccountTokenCreator"]
@@ -1433,6 +1474,8 @@ values:
description: null
disabled: false
display_name: Terraform resman project-factory-prod service account (read-only).
+ email: fast2-prod-resman-pf-0r@fast2-prod-automation.iam.gserviceaccount.com
+ member: serviceAccount:fast2-prod-resman-pf-0r@fast2-prod-automation.iam.gserviceaccount.com
project: fast2-prod-automation
timeouts: null
? module.stage3-sa-ro["project-factory-prod"].google_service_account_iam_binding.authoritative["roles/iam.serviceAccountTokenCreator"]
@@ -1453,6 +1496,8 @@ values:
description: null
disabled: false
display_name: Terraform resman gcve-dev service account.
+ email: fast2-dev-resman-gcve-0@fast2-prod-automation.iam.gserviceaccount.com
+ member: serviceAccount:fast2-dev-resman-gcve-0@fast2-prod-automation.iam.gserviceaccount.com
project: fast2-prod-automation
timeouts: null
module.stage3-sa-rw["gcve-dev"].google_service_account_iam_binding.authoritative["roles/iam.serviceAccountTokenCreator"]:
@@ -1473,6 +1518,8 @@ values:
description: null
disabled: false
display_name: Terraform resman gcve-prod service account.
+ email: fast2-prod-resman-gcve-0@fast2-prod-automation.iam.gserviceaccount.com
+ member: serviceAccount:fast2-prod-resman-gcve-0@fast2-prod-automation.iam.gserviceaccount.com
project: fast2-prod-automation
timeouts: null
module.stage3-sa-rw["gcve-prod"].google_service_account_iam_binding.authoritative["roles/iam.serviceAccountTokenCreator"]:
@@ -1493,6 +1540,8 @@ values:
description: null
disabled: false
display_name: Terraform resman gke-dev service account.
+ email: fast2-dev-resman-gke-0@fast2-prod-automation.iam.gserviceaccount.com
+ member: serviceAccount:fast2-dev-resman-gke-0@fast2-prod-automation.iam.gserviceaccount.com
project: fast2-prod-automation
timeouts: null
module.stage3-sa-rw["gke-dev"].google_service_account_iam_binding.authoritative["roles/iam.serviceAccountTokenCreator"]:
@@ -1513,6 +1562,8 @@ values:
description: null
disabled: false
display_name: Terraform resman gke-prod service account.
+ email: fast2-prod-resman-gke-0@fast2-prod-automation.iam.gserviceaccount.com
+ member: serviceAccount:fast2-prod-resman-gke-0@fast2-prod-automation.iam.gserviceaccount.com
project: fast2-prod-automation
timeouts: null
module.stage3-sa-rw["gke-prod"].google_service_account_iam_binding.authoritative["roles/iam.serviceAccountTokenCreator"]:
@@ -1533,6 +1584,8 @@ values:
description: null
disabled: false
display_name: Terraform resman project-factory-dev service account.
+ email: fast2-dev-resman-pf-0@fast2-prod-automation.iam.gserviceaccount.com
+ member: serviceAccount:fast2-dev-resman-pf-0@fast2-prod-automation.iam.gserviceaccount.com
project: fast2-prod-automation
timeouts: null
? module.stage3-sa-rw["project-factory-dev"].google_service_account_iam_binding.authoritative["roles/iam.serviceAccountTokenCreator"]
@@ -1553,6 +1606,8 @@ values:
description: null
disabled: false
display_name: Terraform resman project-factory-prod service account.
+ email: fast2-prod-resman-pf-0@fast2-prod-automation.iam.gserviceaccount.com
+ member: serviceAccount:fast2-prod-resman-pf-0@fast2-prod-automation.iam.gserviceaccount.com
project: fast2-prod-automation
timeouts: null
? module.stage3-sa-rw["project-factory-prod"].google_service_account_iam_binding.authoritative["roles/iam.serviceAccountTokenCreator"]
@@ -1563,7 +1618,7 @@ values:
: bucket: fast2-prod-iac-core-outputs
condition: []
role: roles/storage.objectAdmin
- module.top-level-bucket["sandbox"].google_storage_bucket.bucket:
+ module.top-level-bucket["sandbox"].google_storage_bucket.bucket[0]:
autoclass: []
cors: []
custom_placement_config: []
@@ -1600,7 +1655,7 @@ values:
members:
- serviceAccount:fast2-dev-resman-sbox-0@fast2-prod-automation.iam.gserviceaccount.com
role: roles/storage.objectViewer
- module.top-level-bucket["tenants"].google_storage_bucket.bucket:
+ module.top-level-bucket["shared"].google_storage_bucket.bucket[0]:
autoclass: []
cors: []
custom_placement_config: []
@@ -1610,6 +1665,45 @@ values:
enable_object_retention: null
encryption: []
force_destroy: false
+ hierarchical_namespace: []
+ labels: null
+ lifecycle_rule: []
+ location: EU
+ logging: []
+ name: fast2-prod-resman-shared-0
+ project: fast2-prod-automation
+ requester_pays: null
+ retention_policy: []
+ storage_class: STANDARD
+ terraform_labels:
+ goog-terraform-provisioned: 'true'
+ timeouts: null
+ uniform_bucket_level_access: true
+ versioning:
+ - enabled: true
+ module.top-level-bucket["shared"].google_storage_bucket_iam_binding.authoritative["roles/storage.objectAdmin"]:
+ bucket: fast2-prod-resman-shared-0
+ condition: []
+ members:
+ - serviceAccount:fast2-prod-resman-shared-0@fast2-prod-automation.iam.gserviceaccount.com
+ role: roles/storage.objectAdmin
+ module.top-level-bucket["shared"].google_storage_bucket_iam_binding.authoritative["roles/storage.objectViewer"]:
+ bucket: fast2-prod-resman-shared-0
+ condition: []
+ members:
+ - serviceAccount:fast2-prod-resman-shared-0@fast2-prod-automation.iam.gserviceaccount.com
+ role: roles/storage.objectViewer
+ module.top-level-bucket["tenants"].google_storage_bucket.bucket[0]:
+ autoclass: []
+ cors: []
+ custom_placement_config: []
+ default_event_based_hold: null
+ effective_labels:
+ goog-terraform-provisioned: 'true'
+ enable_object_retention: null
+ encryption: []
+ force_destroy: false
+ hierarchical_namespace: []
labels: null
lifecycle_rule: []
location: EU
@@ -1681,6 +1775,14 @@ values:
timeouts: null
module.top-level-folder["sandbox"].google_tags_tag_binding.binding["context"]:
timeouts: null
+ module.top-level-folder["shared"].google_folder.folder[0]:
+ deletion_protection: false
+ display_name: Shared Infrastructure
+ parent: organizations/123456789012
+ tags: null
+ timeouts: null
+ module.top-level-folder["shared"].google_tags_tag_binding.binding["context"]:
+ timeouts: null
module.top-level-folder["teams"].google_folder.folder[0]:
deletion_protection: false
display_name: Teams
@@ -1745,6 +1847,8 @@ values:
description: null
disabled: false
display_name: Terraform resman sandbox folder service account.
+ email: fast2-dev-resman-sbox-0@fast2-prod-automation.iam.gserviceaccount.com
+ member: serviceAccount:fast2-dev-resman-sbox-0@fast2-prod-automation.iam.gserviceaccount.com
project: fast2-prod-automation
timeouts: null
module.top-level-sa["sandbox"].google_service_account_iam_binding.authoritative["roles/iam.serviceAccountTokenCreator"]:
@@ -1752,6 +1856,28 @@ values:
members: null
role: roles/iam.serviceAccountTokenCreator
? module.top-level-sa["sandbox"].google_storage_bucket_iam_member.bucket-roles["fast2-prod-iac-core-outputs-roles/storage.objectAdmin"]
+ : bucket: fast2-prod-iac-core-outputs
+ condition: []
+ role: roles/storage.objectAdmin
+ ? module.top-level-sa["shared"].google_project_iam_member.project-roles["fast2-prod-automation-roles/serviceusage.serviceUsageConsumer"]
+ : condition: []
+ project: fast2-prod-automation
+ role: roles/serviceusage.serviceUsageConsumer
+ module.top-level-sa["shared"].google_service_account.service_account[0]:
+ account_id: fast2-prod-resman-shared-0
+ create_ignore_already_exists: null
+ description: null
+ disabled: false
+ display_name: Terraform resman shared folder service account.
+ email: fast2-prod-resman-shared-0@fast2-prod-automation.iam.gserviceaccount.com
+ member: serviceAccount:fast2-prod-resman-shared-0@fast2-prod-automation.iam.gserviceaccount.com
+ project: fast2-prod-automation
+ timeouts: null
+ module.top-level-sa["shared"].google_service_account_iam_binding.authoritative["roles/iam.serviceAccountTokenCreator"]:
+ condition: []
+ members: null
+ role: roles/iam.serviceAccountTokenCreator
+ ? module.top-level-sa["shared"].google_storage_bucket_iam_member.bucket-roles["fast2-prod-iac-core-outputs-roles/storage.objectAdmin"]
: bucket: fast2-prod-iac-core-outputs
condition: []
role: roles/storage.objectAdmin
@@ -1765,6 +1891,8 @@ values:
description: null
disabled: false
display_name: Terraform resman tenants folder service account.
+ email: fast2-prod-resman-tenants-0@fast2-prod-automation.iam.gserviceaccount.com
+ member: serviceAccount:fast2-prod-resman-tenants-0@fast2-prod-automation.iam.gserviceaccount.com
project: fast2-prod-automation
timeouts: null
module.top-level-sa["tenants"].google_service_account_iam_binding.authoritative["roles/iam.serviceAccountTokenCreator"]:
diff --git a/tests/modules/folder/examples/logging.yaml b/tests/modules/folder/examples/logging.yaml
index 17379adcf..e48227619 100644
--- a/tests/modules/folder/examples/logging.yaml
+++ b/tests/modules/folder/examples/logging.yaml
@@ -1,4 +1,4 @@
-# Copyright 2024 Google LLC
+# Copyright 2025 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -120,7 +120,7 @@ values:
bucket: test-gcs_sink
condition: []
role: roles/storage.objectCreator
- module.gcs.google_storage_bucket.bucket:
+ module.gcs.google_storage_bucket.bucket[0]:
autoclass: []
cors: []
custom_placement_config: []
diff --git a/tests/modules/gcs/examples/cmek.yaml b/tests/modules/gcs/examples/cmek.yaml
index 1f20a9ef6..b467edc4c 100644
--- a/tests/modules/gcs/examples/cmek.yaml
+++ b/tests/modules/gcs/examples/cmek.yaml
@@ -1,4 +1,4 @@
-# Copyright 2023 Google LLC
+# Copyright 2025 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -13,7 +13,7 @@
# limitations under the License.
values:
- module.bucket.google_storage_bucket.bucket:
+ module.bucket.google_storage_bucket.bucket[0]:
# encryption: __missing__
# - default_kms_key_name:
name: test-my-bucket
diff --git a/tests/modules/gcs/examples/hns.yaml b/tests/modules/gcs/examples/hns.yaml
index 7c2abd5d6..f3b14a71b 100644
--- a/tests/modules/gcs/examples/hns.yaml
+++ b/tests/modules/gcs/examples/hns.yaml
@@ -1,4 +1,4 @@
-# Copyright 2024 Google LLC
+# Copyright 2025 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -13,7 +13,7 @@
# limitations under the License.
values:
- module.bucket.google_storage_bucket.bucket:
+ module.bucket.google_storage_bucket.bucket[0]:
location: EU
name: test-my-bucket
project: project-id
diff --git a/tests/modules/gcs/examples/iam-authoritative.yaml b/tests/modules/gcs/examples/iam-authoritative.yaml
index 6ff73f80d..995f61cbe 100644
--- a/tests/modules/gcs/examples/iam-authoritative.yaml
+++ b/tests/modules/gcs/examples/iam-authoritative.yaml
@@ -1,4 +1,4 @@
-# Copyright 2024 Google LLC
+# Copyright 2025 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -13,7 +13,7 @@
# limitations under the License.
values:
- module.bucket.google_storage_bucket.bucket:
+ module.bucket.google_storage_bucket.bucket[0]:
cors: []
custom_placement_config: []
default_event_based_hold: null
diff --git a/tests/modules/gcs/examples/iam-bindings-additive.yaml b/tests/modules/gcs/examples/iam-bindings-additive.yaml
index 87fdf77b6..bb0a284c3 100644
--- a/tests/modules/gcs/examples/iam-bindings-additive.yaml
+++ b/tests/modules/gcs/examples/iam-bindings-additive.yaml
@@ -1,4 +1,4 @@
-# Copyright 2024 Google LLC
+# Copyright 2025 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -13,7 +13,7 @@
# limitations under the License.
values:
- module.bucket.google_storage_bucket.bucket:
+ module.bucket.google_storage_bucket.bucket[0]:
cors: []
custom_placement_config: []
default_event_based_hold: null
diff --git a/tests/modules/gcs/examples/iam-bindings.yaml b/tests/modules/gcs/examples/iam-bindings.yaml
index 3109109a7..6fea6b837 100644
--- a/tests/modules/gcs/examples/iam-bindings.yaml
+++ b/tests/modules/gcs/examples/iam-bindings.yaml
@@ -1,4 +1,4 @@
-# Copyright 2024 Google LLC
+# Copyright 2025 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -13,7 +13,7 @@
# limitations under the License.
values:
- module.bucket.google_storage_bucket.bucket:
+ module.bucket.google_storage_bucket.bucket[0]:
cors: []
custom_placement_config: []
default_event_based_hold: null
diff --git a/tests/modules/gcs/examples/lifecycle.yaml b/tests/modules/gcs/examples/lifecycle.yaml
index 221a4a218..f4240ef9c 100644
--- a/tests/modules/gcs/examples/lifecycle.yaml
+++ b/tests/modules/gcs/examples/lifecycle.yaml
@@ -1,4 +1,4 @@
-# Copyright 2023 Google LLC
+# Copyright 2025 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -13,7 +13,7 @@
# limitations under the License.
values:
- module.bucket.google_storage_bucket.bucket:
+ module.bucket.google_storage_bucket.bucket[0]:
lifecycle_rule:
- action:
- storage_class: STANDARD
diff --git a/tests/modules/gcs/examples/managed-folders.yaml b/tests/modules/gcs/examples/managed-folders.yaml
index 30addbf13..e189c9bfc 100644
--- a/tests/modules/gcs/examples/managed-folders.yaml
+++ b/tests/modules/gcs/examples/managed-folders.yaml
@@ -1,4 +1,4 @@
-# Copyright 2024 Google LLC
+# Copyright 2025 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -13,7 +13,7 @@
# limitations under the License.
values:
- module.bucket.google_storage_bucket.bucket:
+ module.bucket.google_storage_bucket.bucket[0]:
autoclass: []
cors: []
custom_placement_config: []
diff --git a/tests/modules/gcs/examples/notification.yaml b/tests/modules/gcs/examples/notification.yaml
index 81fde73e7..4e3a374e3 100644
--- a/tests/modules/gcs/examples/notification.yaml
+++ b/tests/modules/gcs/examples/notification.yaml
@@ -1,4 +1,4 @@
-# Copyright 2023 Google LLC
+# Copyright 2025 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -15,7 +15,7 @@
values:
module.bucket-gcs-notification.google_pubsub_topic.topic[0]: {}
module.bucket-gcs-notification.google_pubsub_topic_iam_binding.binding[0]: {}
- module.bucket-gcs-notification.google_storage_bucket.bucket:
+ module.bucket-gcs-notification.google_storage_bucket.bucket[0]:
name: test-my-bucket
project: project-id
module.bucket-gcs-notification.google_storage_notification.notification[0]:
diff --git a/tests/modules/gcs/examples/object-upload.yaml b/tests/modules/gcs/examples/object-upload.yaml
index 8076e63bf..34ec0cc9a 100644
--- a/tests/modules/gcs/examples/object-upload.yaml
+++ b/tests/modules/gcs/examples/object-upload.yaml
@@ -1,4 +1,4 @@
-# Copyright 2023 Google LLC
+# Copyright 2025 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -13,7 +13,7 @@
# limitations under the License.
values:
- module.bucket.google_storage_bucket.bucket:
+ module.bucket.google_storage_bucket.bucket[0]:
name: test-my-bucket
project: project-id
module.bucket.google_storage_bucket_object.objects["sample-data"]:
diff --git a/tests/modules/gcs/examples/retention-logging.yaml b/tests/modules/gcs/examples/retention-logging.yaml
index ebe3e70dc..dfa067f93 100644
--- a/tests/modules/gcs/examples/retention-logging.yaml
+++ b/tests/modules/gcs/examples/retention-logging.yaml
@@ -1,4 +1,4 @@
-# Copyright 2023 Google LLC
+# Copyright 2025 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -13,7 +13,7 @@
# limitations under the License.
values:
- module.bucket.google_storage_bucket.bucket:
+ module.bucket.google_storage_bucket.bucket[0]:
logging:
- log_bucket: log-bucket
name: test-my-bucket
diff --git a/tests/modules/gcs/examples/simple.yaml b/tests/modules/gcs/examples/simple.yaml
index eb2476d98..dfc7b74e3 100644
--- a/tests/modules/gcs/examples/simple.yaml
+++ b/tests/modules/gcs/examples/simple.yaml
@@ -1,4 +1,4 @@
-# Copyright 2024 Google LLC
+# Copyright 2025 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -13,7 +13,7 @@
# limitations under the License.
values:
- module.bucket.google_storage_bucket.bucket:
+ module.bucket.google_storage_bucket.bucket[0]:
autoclass: []
cors: []
custom_placement_config: []
diff --git a/tests/modules/gcs/examples/tags.yaml b/tests/modules/gcs/examples/tags.yaml
index fbee98e97..0c52cf6d1 100644
--- a/tests/modules/gcs/examples/tags.yaml
+++ b/tests/modules/gcs/examples/tags.yaml
@@ -1,4 +1,4 @@
-# Copyright 2024 Google LLC
+# Copyright 2025 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -13,7 +13,7 @@
# limitations under the License.
values:
- module.bucket.google_storage_bucket.bucket:
+ module.bucket.google_storage_bucket.bucket[0]:
autoclass: []
cors: []
custom_placement_config: []
diff --git a/tests/modules/organization/examples/logging.yaml b/tests/modules/organization/examples/logging.yaml
index f358cb5cf..5cc3abc8b 100644
--- a/tests/modules/organization/examples/logging.yaml
+++ b/tests/modules/organization/examples/logging.yaml
@@ -1,4 +1,4 @@
-# Copyright 2024 Google LLC
+# Copyright 2025 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -48,7 +48,7 @@ values:
disable_on_destroy: false
project: test-dest-prj
service: logging.googleapis.com
- module.gcs.google_storage_bucket.bucket:
+ module.gcs.google_storage_bucket.bucket[0]:
autoclass: []
cors: []
custom_placement_config: []
diff --git a/tests/modules/project/examples/data.yaml b/tests/modules/project/examples/data.yaml
index c84008230..c3d28c903 100644
--- a/tests/modules/project/examples/data.yaml
+++ b/tests/modules/project/examples/data.yaml
@@ -1,4 +1,4 @@
-# Copyright 2024 Google LLC
+# Copyright 2025 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -47,7 +47,7 @@ values:
project: project-id
resource_tags: null
timeouts: null
- module.gcs.google_storage_bucket.bucket:
+ module.gcs.google_storage_bucket.bucket[0]:
autoclass: []
cors: []
custom_placement_config: []
diff --git a/tests/modules/project/examples/logging.yaml b/tests/modules/project/examples/logging.yaml
index 4b652f3a3..238762b74 100644
--- a/tests/modules/project/examples/logging.yaml
+++ b/tests/modules/project/examples/logging.yaml
@@ -1,4 +1,4 @@
-# Copyright 2024 Google LLC
+# Copyright 2025 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -48,7 +48,7 @@ values:
disable_on_destroy: false
project: test-dest-prj
service: logging.googleapis.com
- module.gcs.google_storage_bucket.bucket:
+ module.gcs.google_storage_bucket.bucket[0]:
autoclass: []
cors: []
custom_placement_config: []
diff --git a/tests/modules/project_factory/examples/example.yaml b/tests/modules/project_factory/examples/example.yaml
index a7154ae6f..1c4e6b085 100644
--- a/tests/modules/project_factory/examples/example.yaml
+++ b/tests/modules/project_factory/examples/example.yaml
@@ -1,4 +1,4 @@
-# Copyright 2024 Google LLC
+# Copyright 2025 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -13,7 +13,7 @@
# limitations under the License.
values:
- module.project-factory.module.automation-buckets["dev-tb-app0-0/state"].google_storage_bucket.bucket:
+ module.project-factory.module.automation-buckets["dev-tb-app0-0/state"].google_storage_bucket.bucket[0]:
autoclass: []
cors: []
custom_placement_config: []
diff --git a/tools/lockfile/versions.tofu b/tools/lockfile/versions.tofu
index 3cbddc823..d2b97e768 100644
--- a/tools/lockfile/versions.tofu
+++ b/tools/lockfile/versions.tofu
@@ -15,7 +15,7 @@
# Fabric release: v36.1.0
terraform {
- required_version = ">= 1.8.0"
+ required_version = ">= 1.9.0"
required_providers {
google = {
source = "hashicorp/google"