I have a module where the input is a list of objects, I’m trying to add a random_string as a new key/value within this variable, how can I achieve this? is it possible?
vms = [
{
region = "dfw"
plan = "vhf-2c-2gb"
label = "tf-dev-dns-dfw1-01"
tag = "dns-dev"
id = "387"
},
Hi @amjanoni
You can use a “for expression” to iterate over the value and create new objects with the desired structure:
input = [ for v in local.vms : {
region = v.region
plan = v.plan
label = v.label
tag = v.tag
id = v.id
random_string = "new random string"
}
]
And in this case since the desired changes are all simple key-values at the top level of the object, you can simplify that by merging the new keys into the existing object value
input = [ for v in local.vms : merge({random_string = "new random string"}, v) ]