Hello Everyone,
I am facing following issue.
Below is are my main.tf,variable.tf,terraform.tfvars.json
main.tf
resource "azuredevops_group" "azuredevops_group_creation" {
for_each = toset(var.azureGroupName)
display_name = each.value
scope = "455a47fd-9688-409d-b6f7"
description = "These group managed by terraform"
}
resource "azuredevops_group_membership" "membership" {
group = azuredevops_group.azuredevops_group_creation[each.key].descriptor
for_each = var.azureUsrDetails
members = [each.value]
}
variable.tf
variable "azureGroupName" {
type = list
}
variable "azureUsrDetails" {
type = map
}
terraform.tfvars.json
{
"azureGroupName": [
"keystone",
"waf",
"cs"
],
"azureUsrDetails": {
"keystone": {
"aad.YjI4MTE1ZGEtN2Y1Mi03ZWNlLWIxY": "om.k@testing",
"aad.ZWYwODk4MzItZThjMS03MmJkLTg": "kal.v@testing"
},
"waf": {
"aad.ZWYwODk4MzItZThjMS03MmJkaa": "kal.v@testing"
}
}
}
When i do terraform apply i get following error
MacBook-Pro testing-2 % terraform plan
│ Error: Incorrect attribute value type
│ on main.tf line 10, in resource "azuredevops_group_membership" "membership":
│ 10: members = [each.value]
│ ├───────────────
│ │ each.value is map of string with 1 element
│ Inappropriate value for attribute "members": element 0: string required.
│ Error: Incorrect attribute value type
│ on main.tf line 10, in resource "azuredevops_group_membership" "membership":
│ 10: members = [each.value]
│ ├────────────────
│ │ each.value is map of string with 2 elements
│ Inappropriate value for attribute "members": element 0: string required
I know i am making a mistake,I am not able to properly fetch map values
In terraform.tfvars.json…azureUsrDetails is list–under it we have dir and then maps.Some how i am not sure, how to fetch it correctly.
{
"azureGroupName": [
"keystone",
"waf",
"cs"
],
"azureUsrDetails": {
"keystone": {
"aad.YjI4MTE1ZGEtN2Y1Mi03ZWNlLWIxY": "om.k@testing",
"aad.ZWYwODk4MzItZThjMS03MmJkLTg": "kal.v@testing"
},
"waf": {
"aad.ZWYwODk4MzItZThjMS03MmJkaa": "kal.v@testing"
}
}
}
Requesting for help