main.management_groups.tf (230 lines of code) (raw):

resource "azapi_resource" "management_groups_level_0" { for_each = local.management_groups_level_0 type = "Microsoft.Management/managementGroups@2023-04-01" body = { properties = { details = { parent = { id = "/providers/Microsoft.Management/managementGroups/${each.value.parent_id}" } } displayName = each.value.display_name } } name = each.value.id parent_id = "/" replace_triggers_external_values = [ each.value.parent_id, ] retry = var.retries.management_groups.error_message_regex != null ? { error_message_regex = var.retries.management_groups.error_message_regex interval_seconds = lookup(var.retries.management_groups, "interval_seconds", null) max_interval_seconds = lookup(var.retries.management_groups, "max_interval_seconds", null) multiplier = lookup(var.retries.management_groups, "multiplier", null) randomization_factor = lookup(var.retries.management_groups, "randomization_factor", null) } : null timeouts { create = var.timeouts.management_group.create delete = var.timeouts.management_group.delete read = var.timeouts.management_group.read update = var.timeouts.management_group.update } } resource "azapi_resource" "management_groups_level_1" { for_each = local.management_groups_level_1 type = "Microsoft.Management/managementGroups@2023-04-01" body = { properties = { details = { parent = { id = "/providers/Microsoft.Management/managementGroups/${each.value.parent_id}" } } displayName = each.value.display_name } } name = each.value.id parent_id = "/" replace_triggers_external_values = [ each.value.parent_id, ] retry = var.retries.management_groups.error_message_regex != null ? { error_message_regex = var.retries.management_groups.error_message_regex interval_seconds = lookup(var.retries.management_groups, "interval_seconds", null) max_interval_seconds = lookup(var.retries.management_groups, "max_interval_seconds", null) multiplier = lookup(var.retries.management_groups, "multiplier", null) randomization_factor = lookup(var.retries.management_groups, "randomization_factor", null) } : null timeouts { create = var.timeouts.management_group.create delete = var.timeouts.management_group.delete read = var.timeouts.management_group.read update = var.timeouts.management_group.update } depends_on = [azapi_resource.management_groups_level_0] } resource "azapi_resource" "management_groups_level_2" { for_each = local.management_groups_level_2 type = "Microsoft.Management/managementGroups@2023-04-01" body = { properties = { details = { parent = { id = "/providers/Microsoft.Management/managementGroups/${each.value.parent_id}" } } displayName = each.value.display_name } } name = each.value.id parent_id = "/" replace_triggers_external_values = [ each.value.parent_id, ] retry = var.retries.management_groups.error_message_regex != null ? { error_message_regex = var.retries.management_groups.error_message_regex interval_seconds = lookup(var.retries.management_groups, "interval_seconds", null) max_interval_seconds = lookup(var.retries.management_groups, "max_interval_seconds", null) multiplier = lookup(var.retries.management_groups, "multiplier", null) randomization_factor = lookup(var.retries.management_groups, "randomization_factor", null) } : null timeouts { create = var.timeouts.management_group.create delete = var.timeouts.management_group.delete read = var.timeouts.management_group.read update = var.timeouts.management_group.update } depends_on = [azapi_resource.management_groups_level_1] } resource "azapi_resource" "management_groups_level_3" { for_each = local.management_groups_level_3 type = "Microsoft.Management/managementGroups@2023-04-01" body = { properties = { details = { parent = { id = "/providers/Microsoft.Management/managementGroups/${each.value.parent_id}" } } displayName = each.value.display_name } } name = each.value.id parent_id = "/" replace_triggers_external_values = [ each.value.parent_id, ] retry = var.retries.management_groups.error_message_regex != null ? { error_message_regex = var.retries.management_groups.error_message_regex interval_seconds = lookup(var.retries.management_groups, "interval_seconds", null) max_interval_seconds = lookup(var.retries.management_groups, "max_interval_seconds", null) multiplier = lookup(var.retries.management_groups, "multiplier", null) randomization_factor = lookup(var.retries.management_groups, "randomization_factor", null) } : null timeouts { create = var.timeouts.management_group.create delete = var.timeouts.management_group.delete read = var.timeouts.management_group.read update = var.timeouts.management_group.update } depends_on = [azapi_resource.management_groups_level_2] } resource "azapi_resource" "management_groups_level_4" { for_each = local.management_groups_level_4 type = "Microsoft.Management/managementGroups@2023-04-01" body = { properties = { details = { parent = { id = "/providers/Microsoft.Management/managementGroups/${each.value.parent_id}" } } displayName = each.value.display_name } } name = each.value.id parent_id = "/" replace_triggers_external_values = [ each.value.parent_id, ] retry = var.retries.management_groups.error_message_regex != null ? { error_message_regex = var.retries.management_groups.error_message_regex interval_seconds = lookup(var.retries.management_groups, "interval_seconds", null) max_interval_seconds = lookup(var.retries.management_groups, "max_interval_seconds", null) multiplier = lookup(var.retries.management_groups, "multiplier", null) randomization_factor = lookup(var.retries.management_groups, "randomization_factor", null) } : null timeouts { create = var.timeouts.management_group.create delete = var.timeouts.management_group.delete read = var.timeouts.management_group.read update = var.timeouts.management_group.update } depends_on = [azapi_resource.management_groups_level_3] } resource "azapi_resource" "management_groups_level_5" { for_each = local.management_groups_level_5 type = "Microsoft.Management/managementGroups@2023-04-01" body = { properties = { details = { parent = { id = "/providers/Microsoft.Management/managementGroups/${each.value.parent_id}" } } displayName = each.value.display_name } } name = each.value.id parent_id = "/" replace_triggers_external_values = [ each.value.parent_id, ] retry = var.retries.management_groups.error_message_regex != null ? { error_message_regex = var.retries.management_groups.error_message_regex interval_seconds = lookup(var.retries.management_groups, "interval_seconds", null) max_interval_seconds = lookup(var.retries.management_groups, "max_interval_seconds", null) multiplier = lookup(var.retries.management_groups, "multiplier", null) randomization_factor = lookup(var.retries.management_groups, "randomization_factor", null) } : null timeouts { create = var.timeouts.management_group.create delete = var.timeouts.management_group.delete read = var.timeouts.management_group.read update = var.timeouts.management_group.update } depends_on = [azapi_resource.management_groups_level_4] } resource "azapi_resource" "management_groups_level_6" { for_each = local.management_groups_level_6 type = "Microsoft.Management/managementGroups@2023-04-01" body = { properties = { details = { parent = { id = "/providers/Microsoft.Management/managementGroups/${each.value.parent_id}" } } displayName = each.value.display_name } } name = each.value.id parent_id = "/" replace_triggers_external_values = [ each.value.parent_id, ] retry = var.retries.management_groups.error_message_regex != null ? { error_message_regex = var.retries.management_groups.error_message_regex interval_seconds = lookup(var.retries.management_groups, "interval_seconds", null) max_interval_seconds = lookup(var.retries.management_groups, "max_interval_seconds", null) multiplier = lookup(var.retries.management_groups, "multiplier", null) randomization_factor = lookup(var.retries.management_groups, "randomization_factor", null) } : null timeouts { create = var.timeouts.management_group.create delete = var.timeouts.management_group.delete read = var.timeouts.management_group.read update = var.timeouts.management_group.update } depends_on = [azapi_resource.management_groups_level_5] }