variable "tables" { description = "Map of DynamoDB table definitions" type = map(object({ name = string billing_mode = optional(string, "PAY_PER_REQUEST") read_capacity = optional(number, null) write_capacity = optional(number, null) hash_key = string range_key = optional(string, null) kms_key_arn = optional(string, null) point_in_time_recovery = optional(bool, true) ttl_attribute = optional(string, null) stream_enabled = optional(bool, false) stream_view_type = optional(string, "NEW_AND_OLD_IMAGES") table_class = optional(string, "STANDARD") attributes = list(object({ name = string type = string })) global_secondary_indexes = optional(list(object({ name = string hash_key = string range_key = optional(string, null) projection_type = optional(string, "ALL") non_key_attributes = optional(list(string), []) read_capacity = optional(number, null) write_capacity = optional(number, null) })), []) local_secondary_indexes = optional(list(object({ name = string range_key = string projection_type = optional(string, "ALL") non_key_attributes = optional(list(string), []) })), []) autoscaling = optional(object({ read_min_capacity = optional(number, 5) read_max_capacity = optional(number, 20) write_min_capacity = optional(number, 5) write_max_capacity = optional(number, 20) target_utilization = optional(number, 70) }), null) })) default = {} } variable "tags" { description = "Resource tags to apply to all resources" type = map(string) default = {} }