main_policy_assignment.tf (28 lines of code) (raw):

# azapi provider!! 1.14 --> # ignore pipeline output avm/pr-check : # output guidance: https://azure.github.io/Azure-Verified-Modules/specs/terraform/#id-tffr2---category-outputs---additional-terraform-outputs resource "azapi_resource" "policy_assignment" { type = "Microsoft.Authorization/policyAssignments@2024-04-01" body = { properties = { # assignmentType = "string" # TODO MISSING metadata = try(var.metadata, {}) description = try(var.description, "") displayName = try(var.display_name, "") enforcementMode = try(var.enforce, "Default") == "Default" ? "Default" : "DoNotEnforce" # TODO: agree on default nonComplianceMessages = try(var.non_compliance_messages, []) notScopes = try(var.not_scopes, []) overrides = try(var.overrides, []) parameters = var.parameters policyDefinitionId = var.policy_definition_id resourceSelectors = try(var.resource_selectors, []) } } location = try(var.location, null) name = var.name parent_id = var.scope schema_validation_enabled = var.schema_validation_enabled dynamic "identity" { for_each = try(var.identity.type, "None") != "None" ? [var.identity] : [] content { type = identity.value.type identity_ids = identity.value.type == "SystemAssigned" ? [] : toset(keys(identity.value.userAssignedIdentities)) } } }