variable "volumes" { description = "Map of EBS volumes to create" type = map(object({ availability_zone = string size = number type = optional(string, "gp3") iops = optional(number, null) throughput = optional(number, null) encrypted = optional(bool, true) kms_key_id = optional(string, null) multi_attach_enabled = optional(bool, false) snapshot_id = optional(string, null) final_snapshot = optional(bool, false) # Attachment instance_name = optional(string, null) # data lookup key device_name = optional(string, null) force_detach = optional(bool, false) })) default = {} } variable "dlm_policy_name" { description = "Name for the Data Lifecycle Manager policy" type = string default = "ebs-snapshot-policy" } variable "dlm_execution_role_arn" { description = "ARN of the IAM role for DLM (optional — creates role when null)" type = string default = null } variable "snapshot_schedules" { description = "Map of DLM snapshot schedules" type = map(object({ name = string interval = optional(number, 24) interval_unit = optional(string, "HOURS") times = optional(list(string), ["03:00"]) retain_count = optional(number, 7) target_tags = map(string) })) default = {} } variable "tags" { description = "Resource tags to apply to all resources" type = map(string) default = {} }