variable "region_code" { description = "Short region code this host serves (e.g. pi, hq)." type = string } variable "data_bucket_name" { description = "Name of this region's data bucket (created here)." type = string } variable "deployment_bucket_arn" { description = "ARN of the existing deployment bucket the host reads releases/status from and writes heartbeats to. Optional (default \"\"): a fleet-API box (fleet API surface, issue #73) reaches the platform's deployment bucket over the console's edge with its tunnel token, not a direct IAM grant — leave this unset and no deployment-bucket statement is emitted. Only a grandfathered direct-S3 box needs it set." type = string default = "" } variable "sibling_staging_arns" { description = "Sibling regions' data-bucket ARNs this host may STAGE residence-moves into (instance-move spec, issue #331). moves/*-scoped push-only, exactly region-host's statement shape: Put/Delete on staging objects + prefix-conditioned ListBucket; never instances/*, never GetObject. Empty (the default): no cross-bucket statement." type = list(string) default = [] } 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." } }