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