domain.tf (29 lines of code) (raw):

resource "azapi_resource" "domain_join" { count = length(var.domain_to_join) > 0 ? 1 : 0 type = "Microsoft.HybridCompute/machines/extensions@2023-10-03-preview" body = { properties = { publisher = "Microsoft.Compute" type = "JsonADDomainExtension" typeHandlerVersion = var.type_handler_version autoUpgradeMinorVersion = var.auto_upgrade_minor_version settings = { name = var.domain_to_join OUPath = var.domain_target_ou User = "${var.domain_to_join}\\${var.domain_join_user_name}" Restart = true Options = 3 } protectedSettings = { Password = local.domain_join_password } } } location = var.location name = "domainJoinExtension" parent_id = azapi_resource.hybrid_compute_machine.id tags = var.domain_join_extension_tags depends_on = [ azapi_resource.virtual_machine ] }