variable "deployment_bucket_name" { description = "Name of the deployment bucket (apps, releases, channels, instance records, host config)." type = string } variable "data_bucket_name" { description = "Name of the regional data bucket (parked databases, WAL streams, leases, blobs)." type = string } variable "operator_role_arns" { description = "IAM role ARNs of human operators. Only these may write a box bind (control/boxes/*.bind.json). Empty means nobody can: the safe default until operators are named." type = list(string) default = [] } variable "box_fence_writer_role_arns" { description = "Exact enrolled box role ARNs allowed to create termination fences. Empty refuses every writer." type = list(string) default = [] validation { condition = alltrue([ for arn in var.box_fence_writer_role_arns : can(regex("^arn:[a-z0-9-]+:iam::[0-9]{12}:role/[^*?]+$", arn)) ]) error_message = "Fence writers must be exact IAM role ARNs without wildcards." } } variable "data_noncurrent_days" { description = "Days a replaced or deleted object in the data bucket is kept as a noncurrent version before it expires. Defaults to the 7-day restore window. Longer retention for a plan belongs in litestream's per-instance retention, not here." type = number default = 7 validation { condition = var.data_noncurrent_days >= 1 && floor(var.data_noncurrent_days) == var.data_noncurrent_days error_message = "data_noncurrent_days must be a whole number of days, at least 1." } }