in alzlib.go [154:171]
func (az *AlzLib) AddRoleDefinitions(rds ...*assets.RoleDefinition) error {
az.mu.Lock()
defer az.mu.Unlock()
for _, rd := range rds {
if rd == nil || rd.Name == nil || *rd.Name == "" {
continue
}
if _, exists := az.policyDefinitions[*rd.Name]; exists && !az.Options.AllowOverwrite {
return fmt.Errorf("Alzlib.AddPolicyAssignments: role definition with name %s already exists and allow overwrite not set", *rd.Name)
}
cpy, err := deep.Copy(rd)
if err != nil {
return fmt.Errorf("Alzlib.AddPolicyAssignments: error making deep copy of role definition %s: %w", *rd.Name, err)
}
az.roleDefinitions[*rd.Name] = cpy
}
return nil
}