terraform/data-cloud/variables.tf (91 lines of code) (raw):

/** * Copyright 2024 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. */ variable "organization" { description = "Organization details." type = object({ domain = string id = number customer_id = string }) } variable "prefix" { description = "Prefix used for resources that need unique names. Use 9 characters or less." type = string validation { condition = try(length(var.prefix), 0) < 10 error_message = "Use a maximum of 9 characters for prefix." } } variable "billing_account" { description = "Billing account id. If billing account is not part of the same org set `is_org_level` to `false`. To disable handling of billing IAM roles set `no_iam` to `true`." type = object({ id = string is_org_level = optional(bool, true) no_iam = optional(bool, false) }) nullable = false } variable "locations" { description = "Optional locations for GCS, BigQuery, and logging buckets created here." type = object({ bq = optional(string, "EU") gcs = optional(string, "EU") logging = optional(string, "global") pubsub = optional(list(string), []) }) nullable = false default = {} } variable "groups" { # https://cloud.google.com/docs/enterprise/setup-checklist description = "Group names or emails to grant organization-level permissions. If just the name is provided, the default organization domain is assumed." type = object({ gcp-billing-admins = string gcp-devops = string gcp-network-admins = string gcp-organization-admins = string gcp-security-admins = string gcp-support = string }) nullable = false } variable "region" { description = "GCP region for regional resources to be hosted" type = string nullable = false default = "us-central1" } variable "state_bucket" { description = "GCS bucket to hold pasture state file" type = string nullable = false } variable "state_dir" { description = "Top-level directory in GCS bucket where state will be stored" type = string nullable = false } variable "pasture_size" { description = "Course-grain sizing estimate of pasture" type = string nullable = false default = "small" } variable "internal_env" { description = "Internal Googler environment with reservation restrictions" type = string default = "false" nullable = false }