in internal/provider/architecture_data_source.go [374:431]
func convertPolicyAssignmentOverridesToSdkType(ctx context.Context, input []gen.OverridesValue, resp *datasource.ReadResponse) []*armpolicy.Override {
if len(input) == 0 {
return nil
}
res := make([]*armpolicy.Override, len(input))
for i, o := range input {
selectors := make([]*armpolicy.Selector, len(o.OverrideSelectors.Elements()))
for j, s := range o.OverrideSelectors.Elements() {
osv, ok := s.(gen.OverrideSelectorsValue)
if !ok {
resp.Diagnostics.AddError(
"convertPolicyAssignmentOverridesToSdkType: error",
"unable to convert override selectors attr.Value to concrete type",
)
}
// Convert In to a go slice, start off from an uninitialized slice so that the value is nil if the input is empty.
var in []*string
if len(osv.In.Elements()) != 0 {
var err error
in, err = frameworktype.SliceOfPrimitiveToGo[string](ctx, osv.In.Elements())
if err != nil {
resp.Diagnostics.AddError(
"convertPolicyAssignmentOverridesToSdkType: error",
fmt.Sprintf("unable to convert OverrideSelctorsValue.In elements to Go slice: %s", err.Error()),
)
return nil
}
}
// Convert NotIn to a go slice, start off from an uninitialized slice so that the value is nil if the input is empty.
var notIn []*string
if len(osv.NotIn.Elements()) != 0 {
var err error
notIn, err = frameworktype.SliceOfPrimitiveToGo[string](ctx, osv.NotIn.Elements())
if err != nil {
resp.Diagnostics.AddError(
"convertPolicyAssignmentOverridesToSdkType: error",
fmt.Sprintf("unable to convert OverrideSelctorsValue.NotIn elements to Go slice: %s", err.Error()),
)
return nil
}
}
selectors[j] = &armpolicy.Selector{
Kind: to.Ptr(armpolicy.SelectorKind(osv.Kind.ValueString())),
In: in,
NotIn: notIn,
}
}
res[i] = &armpolicy.Override{
Kind: to.Ptr(armpolicy.OverrideKind(o.Kind.ValueString())),
Value: to.Ptr(o.Value.ValueString()),
Selectors: selectors,
}
}
return res
}