in internal/provider/architecture_data_source.go [207:251]
func modifyPolicyAssignments(ctx context.Context, depl *deployment.Hierarchy, data gen.ArchitectureModel, resp *datasource.ReadResponse) {
for mgName, pa2modValue := range data.PolicyAssignmentsToModify.Elements() {
mg := depl.ManagementGroup(mgName)
if mg == nil {
resp.Diagnostics.AddWarning(
"architectureDataSource.Read() Warning modifying policy assignments",
fmt.Sprintf("Management group `%s` not found in hierarchy", mgName),
)
continue
}
pa2mod, ok := pa2modValue.(gen.PolicyAssignmentsToModifyValue)
if !ok {
resp.Diagnostics.AddError(
"architectureDataSource.Read() Error converting policy assignments to modify",
"Error converting policy assignments to modify element to `gen.PolicyAssignmentsToModifyValue`",
)
return
}
for paName, modValue := range pa2mod.PolicyAssignments.Elements() {
mod, ok := modValue.(gen.PolicyAssignmentsValue)
if !ok {
resp.Diagnostics.AddError(
"architectureDataSource.Read() Error converting policy assignment to modify",
"Error converting policy assignments element to `gen.PolicyAssignmentsValue`",
)
return
}
enf, ident, noncompl, params, resourceSel, overrides := policyAssignmentType2ArmPolicyValues(ctx, mod, resp)
if resp.Diagnostics.HasError() {
resp.Diagnostics.AddError(
"architectureDataSource.Read() Error converting policy assignment values to Azure SDK types",
fmt.Sprintf("Error modifying policy assignment values for `%s` at mg `%s`", paName, mgName),
)
return
}
if err := mg.ModifyPolicyAssignment(paName, params, enf, noncompl, ident, resourceSel, overrides); err != nil {
resp.Diagnostics.AddError(
"architectureDataSource.Read() Error modifying policy assignment values in alzlib",
fmt.Sprintf("Error modifying policy assignment values for `%s` at mg `%s`: %s", paName, mgName, err.Error()),
)
return
}
}
}
}