I need to create a datadog synthetics monitors with the resource `datadog_synthetics_test` I need to monitor multiples cluster, with multiple point of view : # Clusters variable "datadog_gke_clusters" { default = [ # NPRD { name = "cluster01" environment = "nprd" url = { private = "https://private.domain-priv.com" public = "https://public.domain.com" } }, # PROD { name = "cluster02" environment = "nprd" url = { private = "https://private.domain-priv.com" public = "https://public.domain.com" } } ] } # Point of views variable "gke_slo" { description = "Response time threshold in ms to respond to a request." default = [ { zone = private monitor_threshold = 50 }, { zone = public monitor_threshold = 100 }, ] } `for_each` need a map or a list of strings resource "datadog_synthetics_test" "gke-monitoring" { for_each = ... # cartesian product of lists type = "api" subtype = "http" .... } There is a function `[setproduct(sets...)][1]` which produce a list which combine values of each list, but not a map. I would need to produce a map which look like this : { "cluster01-private" = { name = "cluster01" environment = "nprd" url = { private = "https://private.cluster01.domain-priv.com" public = "https://public.cluster01.domain.com" } zone = private monitor_threshold = 50 }, "cluster01-public" = { name = "cluster01" environment = "nprd" url = { private = "https://private.cluster01.domain-priv.com" public = "https://public.cluster01.domain.com" } zone = public monitor_threshold = 100 }, # PROD .... etc } How could I do that ? [1]: https://www.terraform.io/docs/configuration/functions/setproduct.html