dataflow-example/main.tf (44 lines of code) (raw):

data "google_client_config" "current" {} locals { # https://cloud.google.com/bigquery/docs/locations#regions us_locations = ["us-central1", "us-west4", "us-west2", "northamerica-northeast1", "us-east4", "us-west1", "us-west3", "southamerica-east1", "southamerica-west1", "us-east1", "northamerica-northeast2"] dataset_name = replace(var.dataset_name, "/[[:punct:]]/", "_") location = contains(local.us_locations, var.location) ? "US" : "EU" } module "bigquery" { source = "terraform-google-modules/bigquery/google" version = "~> 5.4" dataset_id = local.dataset_name dataset_name = local.dataset_name description = var.description project_id = data.google_client_config.current.project location = local.location delete_contents_on_destroy = var.delete_contents_on_destroy tables = [ { table_id = var.table_name schema = file("table-schema.json") time_partitioning = null range_partitioning = null clustering = [] expiration_time = null labels = {} } ] } resource "google_bigquery_dataset_iam_member" "data_owner" { dataset_id = local.dataset_name role = "roles/bigquery.dataOwner" member = "serviceAccount:${var.compute_service_account}" depends_on = [ module.bigquery ] } resource "google_bigquery_table_iam_member" "data_owner" { dataset_id = local.dataset_name table_id = var.table_name role = "roles/bigquery.dataOwner" member = "serviceAccount:${var.compute_service_account}" depends_on = [ module.bigquery ] }