From 3949fdc28303509028e1ba21295b0674c77bfebf Mon Sep 17 00:00:00 2001
From: devuonocar <65766241+devuonocar@users.noreply.github.com>
Date: Fri, 13 Oct 2023 17:02:47 +0200
Subject: [PATCH] Add outputs to BigQuery dataset module (#1752)
* Add outputs
* Fix checks
* Fix order
* Fix order
* Fix var
* Fix outputs
* Fix README.md
---
modules/bigquery-dataset/README.md | 14 ++++++++------
modules/bigquery-dataset/outputs.tf | 10 ++++++++++
modules/bigquery-dataset/variables.tf | 4 ++--
3 files changed, 20 insertions(+), 8 deletions(-)
diff --git a/modules/bigquery-dataset/README.md b/modules/bigquery-dataset/README.md
index 67ec6273..ab523129 100644
--- a/modules/bigquery-dataset/README.md
+++ b/modules/bigquery-dataset/README.md
@@ -294,7 +294,7 @@ module "bigquery-dataset" {
| [iam](variables.tf#L92) | IAM bindings in {ROLE => [MEMBERS]} format. Mutually exclusive with the access_* variables used for basic roles. | map(list(string))
| | {}
|
| [labels](variables.tf#L103) | Dataset labels. | map(string)
| | {}
|
| [location](variables.tf#L109) | Dataset location. | string
| | "EU"
|
-| [materialized_views](variables.tf#L115) | Materialized views definitions. | map(object({…}))
| | {}
|
+| [materialized_views](variables.tf#L115) | Materialized views definitions. | map(object({…}))
| | {}
|
| [options](variables.tf#L148) | Dataset options. | object({…})
| | {}
|
| [tables](variables.tf#L167) | Table definitions. Options and partitioning default to null. Partitioning can only use `range` or `time`, set the unused one to null. | map(object({…}))
| | {}
|
| [views](variables.tf#L198) | View definitions. | map(object({…}))
| | {}
|
@@ -306,9 +306,11 @@ module "bigquery-dataset" {
| [dataset](outputs.tf#L17) | Dataset resource. | |
| [dataset_id](outputs.tf#L22) | Dataset id. | |
| [id](outputs.tf#L36) | Fully qualified dataset id. | |
-| [self_link](outputs.tf#L50) | Dataset self link. | |
-| [table_ids](outputs.tf#L64) | Map of fully qualified table ids keyed by table ids. | |
-| [tables](outputs.tf#L69) | Table resources. | |
-| [view_ids](outputs.tf#L74) | Map of fully qualified view ids keyed by view ids. | |
-| [views](outputs.tf#L79) | View resources. | |
+| [materialized_view_ids](outputs.tf#L50) | Map of fully qualified materialized view ids keyed by view ids. | |
+| [materialized_views](outputs.tf#L55) | Materialized view resources. | |
+| [self_link](outputs.tf#L60) | Dataset self link. | |
+| [table_ids](outputs.tf#L74) | Map of fully qualified table ids keyed by table ids. | |
+| [tables](outputs.tf#L79) | Table resources. | |
+| [view_ids](outputs.tf#L84) | Map of fully qualified view ids keyed by view ids. | |
+| [views](outputs.tf#L89) | View resources. | |
diff --git a/modules/bigquery-dataset/outputs.tf b/modules/bigquery-dataset/outputs.tf
index 5c2ee466..3beb5f82 100644
--- a/modules/bigquery-dataset/outputs.tf
+++ b/modules/bigquery-dataset/outputs.tf
@@ -47,6 +47,16 @@ output "id" {
]
}
+output "materialized_view_ids" {
+ description = "Map of fully qualified materialized view ids keyed by view ids."
+ value = { for k, v in google_bigquery_table.materialized_view : v.table_id => v.id }
+}
+
+output "materialized_views" {
+ description = "Materialized view resources."
+ value = google_bigquery_table.materialized_view
+}
+
output "self_link" {
description = "Dataset self link."
value = google_bigquery_dataset.default.self_link
diff --git a/modules/bigquery-dataset/variables.tf b/modules/bigquery-dataset/variables.tf
index ecf7c6c3..8a33c057 100644
--- a/modules/bigquery-dataset/variables.tf
+++ b/modules/bigquery-dataset/variables.tf
@@ -116,13 +116,13 @@ variable "materialized_views" {
description = "Materialized views definitions."
type = map(object({
query = string
+ allow_non_incremental_definition = optional(bool)
deletion_protection = optional(bool)
description = optional(string, "Terraform managed.")
+ enable_refresh = optional(bool)
friendly_name = optional(string)
labels = optional(map(string), {})
- enable_refresh = optional(bool)
refresh_interval_ms = optional(bool)
- allow_non_incremental_definition = optional(bool)
options = optional(object({
clustering = optional(list(string))
expiration_time = optional(number)