func policyAssignmentType2ArmPolicyValues()

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
}