in internal/provider/architecture_data_source.go [310:372]
func policyAssignmentType2ArmPolicyValues(ctx context.Context, pa gen.PolicyAssignmentsValue, resp *datasource.ReadResponse) (
enforcementMode *armpolicy.EnforcementMode,
identity *armpolicy.Identity,
nonComplianceMessages []*armpolicy.NonComplianceMessage,
parameters map[string]*armpolicy.ParameterValuesValue,
resourceSelectors []*armpolicy.ResourceSelector,
overrides []*armpolicy.Override) {
// Set enforcement mode.
enforcementMode = convertPolicyAssignmentEnforcementModeToSdkType(pa.EnforcementMode)
// set identity
identity = convertPolicyAssignmentIdentityToSdkType(pa.Identity, pa.IdentityIds, resp)
if resp.Diagnostics.HasError() {
return nil, nil, nil, nil, nil, nil
}
// set non-compliance message
if isKnown(pa.NonComplianceMessages) {
nonCompl := make([]gen.NonComplianceMessagesValue, len(pa.NonComplianceMessages.Elements()))
for i, msg := range pa.NonComplianceMessages.Elements() {
frameworkMsg, ok := msg.(gen.NonComplianceMessagesValue)
if !ok {
resp.Diagnostics.AddError(
"policyAssignmentType2ArmPolicyValues: error",
"unable to convert non-compliance message attr.Value to concrete type",
)
}
nonCompl[i] = frameworkMsg
}
if resp.Diagnostics.HasError() {
return nil, nil, nil, nil, nil, nil
}
nonComplianceMessages = convertPolicyAssignmentNonComplianceMessagesToSdkType(nonCompl)
}
// set parameters
parameters = convertPolicyAssignmentParametersMapToSdkType(pa.Parameters, resp)
if resp.Diagnostics.HasError() {
return nil, nil, nil, nil, nil, nil
}
// set resource selectors
if isKnown(pa.ResourceSelectors) {
rS := make([]gen.ResourceSelectorsValue, len(pa.ResourceSelectors.Elements()))
resp.Diagnostics.Append(pa.ResourceSelectors.ElementsAs(ctx, &rS, false)...)
resourceSelectors = convertPolicyAssignmentResourceSelectorsToSdkType(ctx, rS, resp)
if resp.Diagnostics.HasError() {
return nil, nil, nil, nil, nil, nil
}
}
// set overrides
if isKnown(pa.Overrides) {
ovr := make([]gen.OverridesValue, len(pa.Overrides.Elements()))
resp.Diagnostics.Append(pa.Overrides.ElementsAs(ctx, &ovr, false)...)
overrides = convertPolicyAssignmentOverridesToSdkType(ctx, ovr, resp)
if resp.Diagnostics.HasError() {
return nil, nil, nil, nil, nil, nil
}
}
return enforcementMode, identity, nonComplianceMessages, parameters, resourceSelectors, overrides
}