metadata.yaml (251 lines of code) (raw):
# Copyright 2023 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
apiVersion: blueprints.cloud.google.com/v1alpha1
kind: BlueprintMetadata
metadata:
name: terraform-google-bigquery
annotations:
config.kubernetes.io/local-config: "true"
spec:
info:
title: terraform-google-bigquery
source:
repo: https://github.com/terraform-google-modules/terraform-google-bigquery
sourceType: git
version: 7.0.0
actuationTool:
flavor: Terraform
version: ">= 0.13"
description: {}
content:
subBlueprints:
- name: authorization
location: modules/authorization
- name: data_warehouse
location: modules/data_warehouse
- name: scheduled_queries
location: modules/scheduled_queries
- name: udf
location: modules/udf
examples:
- name: basic_bq
location: examples/basic_bq
- name: basic_view
location: examples/basic_view
- name: data_warehouse
location: examples/data_warehouse
- name: multiple_tables
location: examples/multiple_tables
- name: scheduled_queries
location: examples/scheduled_queries
interfaces:
variables:
- name: access
description: An array of objects that define dataset access for one or more entities.
varType: any
defaultValue:
- role: roles/bigquery.dataOwner
special_group: projectOwners
- name: dataset_id
description: Unique ID for the dataset being provisioned.
varType: string
defaultValue: null
required: true
- name: dataset_labels
description: Key value pairs in a map for dataset labels
varType: map(string)
defaultValue: {}
- name: dataset_name
description: Friendly name for the dataset being provisioned.
varType: string
defaultValue: null
- name: default_table_expiration_ms
description: TTL of tables using the dataset in MS
varType: number
defaultValue: null
- name: delete_contents_on_destroy
description: (Optional) If set to true, delete all the tables in the dataset when destroying the resource; otherwise, destroying the resource will fail if tables are present.
varType: bool
defaultValue: null
- name: deletion_protection
description: Whether or not to allow Terraform to destroy the instance. Unless this field is set to false in Terraform state, a terraform destroy or terraform apply that would delete the instance will fail
varType: bool
defaultValue: false
- name: description
description: Dataset description.
varType: string
defaultValue: null
- name: encryption_key
description: Default encryption key to apply to the dataset. Defaults to null (Google-managed).
varType: string
defaultValue: null
- name: external_tables
description: A list of objects which include table_id, expiration_time, external_data_configuration, and labels.
varType: |-
list(object({
table_id = string,
description = optional(string),
autodetect = bool,
compression = string,
ignore_unknown_values = bool,
max_bad_records = number,
schema = string,
source_format = string,
source_uris = list(string),
csv_options = object({
quote = string,
allow_jagged_rows = bool,
allow_quoted_newlines = bool,
encoding = string,
field_delimiter = string,
skip_leading_rows = number,
}),
google_sheets_options = object({
range = string,
skip_leading_rows = number,
}),
hive_partitioning_options = object({
mode = string,
source_uri_prefix = string,
}),
expiration_time = string,
max_staleness = optional(string),
labels = map(string),
}))
defaultValue: []
- name: location
description: The regional location for the dataset only US and EU are allowed in module
varType: string
defaultValue: US
- name: materialized_views
description: A list of objects which includes view_id, view_query, clustering, time_partitioning, range_partitioning, expiration_time and labels
varType: |-
list(object({
view_id = string,
description = optional(string),
query = string,
enable_refresh = bool,
refresh_interval_ms = string,
clustering = list(string),
time_partitioning = object({
expiration_ms = string,
field = string,
type = string,
require_partition_filter = bool,
}),
range_partitioning = object({
field = string,
range = object({
start = string,
end = string,
interval = string,
}),
}),
expiration_time = string,
max_staleness = optional(string),
labels = map(string),
}))
defaultValue: []
- name: max_time_travel_hours
description: Defines the time travel window in hours
varType: number
defaultValue: null
- name: project_id
description: Project where the dataset and table are created
varType: string
defaultValue: null
required: true
- name: routines
description: A list of objects which include routine_id, routine_type, routine_language, definition_body, return_type, routine_description and arguments.
varType: |-
list(object({
routine_id = string,
routine_type = string,
language = string,
definition_body = string,
return_type = string,
description = string,
arguments = list(object({
name = string,
data_type = string,
argument_kind = string,
mode = string,
})),
}))
defaultValue: []
- name: tables
description: A list of objects which include table_id, table_name, schema, clustering, time_partitioning, range_partitioning, expiration_time and labels.
varType: |-
list(object({
table_id = string,
description = optional(string),
table_name = optional(string),
schema = string,
clustering = list(string),
time_partitioning = object({
expiration_ms = string,
field = string,
type = string,
require_partition_filter = bool,
}),
range_partitioning = object({
field = string,
range = object({
start = string,
end = string,
interval = string,
}),
}),
expiration_time = string,
labels = map(string),
}))
defaultValue: []
- name: views
description: A list of objects which include view_id and view query
varType: |-
list(object({
view_id = string,
description = optional(string),
query = string,
use_legacy_sql = bool,
labels = map(string),
}))
defaultValue: []
outputs:
- name: bigquery_dataset
description: Bigquery dataset resource.
- name: bigquery_external_tables
description: Map of BigQuery external table resources being provisioned.
- name: bigquery_tables
description: Map of bigquery table resources being provisioned.
- name: bigquery_views
description: Map of bigquery view resources being provisioned.
- name: external_table_ids
description: Unique IDs for any external tables being provisioned
- name: external_table_names
description: Friendly names for any external tables being provisioned
- name: project
description: Project where the dataset and tables are created
- name: routine_ids
description: Unique IDs for any routine being provisioned
- name: table_ids
description: Unique id for the table being provisioned
- name: table_names
description: Friendly name for the table being provisioned
- name: view_ids
description: Unique id for the view being provisioned
- name: view_names
description: friendlyname for the view being provisioned
requirements:
roles:
- level: Project
roles:
- roles/bigquery.admin
- roles/cloudkms.cryptoKeyEncrypterDecrypter
- roles/owner
services:
- cloudkms.googleapis.com
- cloudresourcemanager.googleapis.com
- bigquery.googleapis.com
- bigquerystorage.googleapis.com
- bigqueryconnection.googleapis.com
- serviceusage.googleapis.com
- iam.googleapis.com