fast/project-templates/secops-anonymization-pipeline/variables.tf (106 lines of code) (raw):
/**
* Copyright 2025 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 "anonymization_scheduler" {
description = "Schedule for triggering export, anonymization and import of data."
type = object({
trigger-export = string
anonymize-data = string
import-data = string
})
default = {
trigger-export = "0 8 29 2 *"
anonymize-data = "0 12 29 2 *"
import-data = "0 13 29 2 *"
}
}
variable "cloud_function_config" {
description = "Optional Cloud Function configuration."
type = object({
build_worker_pool_id = optional(string)
build_sa = optional(string)
debug = optional(bool, false)
cpu = optional(number, 1)
memory_mb = optional(number, 2048)
timeout_seconds = optional(number, 3600)
vpc_connector = optional(object({
name = string
egress_settings = optional(string, "ALL_TRAFFIC")
}))
})
default = {}
nullable = false
}
variable "dlp_config" {
description = "Data Loss prevention configuration."
type = object({
region = string
deidentify_template_id = string
inspect_template_id = string
})
default = null
}
variable "prefix" {
description = "Prefix used for resource names."
type = string
nullable = false
validation {
condition = var.prefix != ""
error_message = "Prefix cannot be empty."
}
}
variable "project_create_config" {
description = "Create project instead of using an existing one."
type = object({
billing_account = string
parent = optional(string)
})
default = null
}
variable "project_id" {
description = "Project id that references existing project."
type = string
}
variable "regions" {
description = "Regions: primary for all resources and secondary for clouds scheduler since the latter is available in few regions."
type = object({
primary = string
secondary = string
})
default = {
primary = "europe-west1"
secondary = "europe-west1"
}
}
variable "secops_config" {
description = "SecOps config."
type = object({
region = string
source_tenant = object({
customer_id = string
gcp_project = string
})
target_tenant = object({
gcp_project = string
customer_id = string
forwarder_id = string
})
})
}
variable "skip_anonymization" {
description = "Whether to skip anonymization step and just import data exported from source tenant."
type = bool
default = false
}