func modifyPolicyAssignments()

in internal/provider/architecture_data_source.go [207:251]


func modifyPolicyAssignments(ctx context.Context, depl *deployment.Hierarchy, data gen.ArchitectureModel, resp *datasource.ReadResponse) {
	for mgName, pa2modValue := range data.PolicyAssignmentsToModify.Elements() {
		mg := depl.ManagementGroup(mgName)
		if mg == nil {
			resp.Diagnostics.AddWarning(
				"architectureDataSource.Read() Warning modifying policy assignments",
				fmt.Sprintf("Management group `%s` not found in hierarchy", mgName),
			)
			continue
		}
		pa2mod, ok := pa2modValue.(gen.PolicyAssignmentsToModifyValue)
		if !ok {
			resp.Diagnostics.AddError(
				"architectureDataSource.Read() Error converting policy assignments to modify",
				"Error converting policy assignments to modify element to `gen.PolicyAssignmentsToModifyValue`",
			)
			return
		}
		for paName, modValue := range pa2mod.PolicyAssignments.Elements() {
			mod, ok := modValue.(gen.PolicyAssignmentsValue)
			if !ok {
				resp.Diagnostics.AddError(
					"architectureDataSource.Read() Error converting policy assignment to modify",
					"Error converting policy assignments element to `gen.PolicyAssignmentsValue`",
				)
				return
			}
			enf, ident, noncompl, params, resourceSel, overrides := policyAssignmentType2ArmPolicyValues(ctx, mod, resp)
			if resp.Diagnostics.HasError() {
				resp.Diagnostics.AddError(
					"architectureDataSource.Read() Error converting policy assignment values to Azure SDK types",
					fmt.Sprintf("Error modifying policy assignment values for `%s` at mg `%s`", paName, mgName),
				)
				return
			}
			if err := mg.ModifyPolicyAssignment(paName, params, enf, noncompl, ident, resourceSel, overrides); err != nil {
				resp.Diagnostics.AddError(
					"architectureDataSource.Read() Error modifying policy assignment values in alzlib",
					fmt.Sprintf("Error modifying policy assignment values for `%s` at mg `%s`: %s", paName, mgName, err.Error()),
				)
				return
			}
		}
	}
}