terraform/stacks/common/variables.tf (174 lines of code) (raw):
# Copyright 2021 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 "project" {
type = string
}
variable "compute_region" {
type = string
}
variable "data_region" {
type = string
}
variable "source_data_regions" {
description = "Supported GCP regions for DLP inspection and tagging. These are the regions to run DLP jobs in and deploy policy tags taxonomies."
type = set(string)
}
variable "bigquery_dataset_name" {
type = string
}
variable "auto_dlp_results_table_name" {
type = string
}
variable "standard_dlp_results_table_name" {
type = string
}
variable "sa_tagging_dispatcher" {
type = string
}
variable "sa_tagging_dispatcher_tasks" {
type = string
}
variable "sa_tagger" {
type = string
}
variable "sa_tagger_tasks" {
type = string
}
variable "tagger_role" {
type = string
}
variable "log_sink_name" {
type = string
}
variable "scheduler_name" {
type = string
}
variable "dispatcher_service_name" {
type = string
}
variable "tagger_service_name" {
type = string
}
variable "dispatcher_pubsub_topic" {
type = string
}
variable "dispatcher_pubsub_sub" {
type = string
}
variable "tagger_pubsub_topic" {
type = string
}
variable "tagger_pubsub_sub" {
type = string
}
variable "dispatcher_service_image" {
type = string
}
variable "tagger_service_image" {
type = string
}
# DLP scanning scope
# Optional fields. At least one should be provided among the _INCLUDE configs
# format: project.dataset.table1, project.dataset.table2, etc
variable "datasets_include_list" {
type = list(string)
}
variable "projects_include_list" {
type = list(string)
}
variable "datasets_exclude_list" {
type = list(string)
}
variable "tables_exclude_list" {
type = list(string)
}
variable "classification_taxonomy" {
type = list(object({
info_type = string
info_type_category = string
# (standard | custom)
policy_tag = string
classification = string
labels = list(object({key = string, value = string}))
inspection_template_number = number
taxonomy_number = number
}))
}
variable "domain_mapping" {
type = list(object({
project = string,
domain = string,
datasets = list(object({
name = string,
domain = string
})) // leave empty if no dataset overrides is required for this project
}))
description = "Mapping between domains and GCP projects or BQ Datasets. Dataset-level mapping will overwrite project-level mapping for a given project."
}
variable "iam_mapping" {
type = map(map(list(string)))
description = "Dictionary of mappings between domains/classification and IAM members to grant required permissions to read sensitive BQ columns belonging to that domain/classification"
}
variable "dlp_service_account" {
type = string
description = "service account email for DLP to grant permissions to via Terraform"
}
variable "cloud_scheduler_account" {
type = string
description = "Service agent account for Cloud Scheduler. Format service-<project number>@gcp-sa-cloudscheduler.iam.gserviceaccount.com"
}
variable "is_dry_run_tags" {
type = string
}
variable "is_dry_run_labels" {
type = string
}
variable "cron_expression" {
type = string
}
variable "is_auto_dlp_mode" {
type = bool
}
variable "data_catalog_taxonomy_activated_policy_types" {
type = list(string)
}
variable "gcs_flags_bucket_name" {
type = string
}
# Dispatcher settings.
variable "dispatcher_service_timeout_seconds" {
type = number
}
variable "dispatcher_subscription_ack_deadline_seconds" {
type = number
}
variable "dispatcher_subscription_message_retention_duration" {
type = string
}
# Tagger settings.
variable "tagger_service_timeout_seconds" {
type = number
}
variable "tagger_subscription_ack_deadline_seconds" {
type = number
}
variable "tagger_subscription_message_retention_duration" {
type = string
}
variable "promote_mixed_info_types" {
type = bool
}
variable "custom_info_types_dictionaries" {
type = list(object({
name = string
likelihood = string
dictionary =list(string)
}))
}
variable "custom_info_types_regex" {
type = list(object({
name = string
likelihood = string
regex = string
}))
}
variable "taxonomy_name_suffix" {
type = string
default = ""
description = "Suffix added to taxonomy display name to make it unique within an org"
}
variable "terraform_data_deletion_protection" {
type = bool
}