in deployment/hierarchy.go [130:151]
func (h *Hierarchy) AddDefaultPolicyAssignmentValue(ctx context.Context, defaultName string, defaultValue *armpolicy.ParameterValuesValue) error {
defs := h.alzlib.PolicyDefaultValue(defaultName)
if defs == nil {
return fmt.Errorf("Hierarchy.AddDefaultPolicyAssignmentValue: A default with name `%s` does not exist", defaultName)
}
// Get the policy assignments for each management group.
for _, mg := range h.mgs {
for assignment, params := range defs.PolicyAssignment2ParameterMap() {
if _, ok := mg.policyAssignments[assignment]; !ok {
continue
}
newParams := make(map[string]*armpolicy.ParameterValuesValue)
for param := range params.Iter() {
newParams[param] = defaultValue
}
if err := mg.ModifyPolicyAssignment(assignment, newParams, nil, nil, nil, nil, nil); err != nil {
return fmt.Errorf("Hierarchy.AddDefaultPolicyAssignmentValue: error adding default `%s` policy assignment value to management group `%s` for policy assignment `%s`: %w", defaultName, mg.id, assignment, err)
}
}
}
return nil
}