Changes
Add Fabric Private Link Private DNS Zone
- Added 
privatelink.fabric.microsoft.comPrivate DNS Zone to module defaults for Fabric workspace-level private link. See https://learn.microsoft.com/fabric/security/security-workspace-level-private-links-set-up 
Thanks @cloudchristoph for the PR 👍
Breaking Change: Removed ability to create resource group as part of module
- We have made the decision to remove the ability to create a resource group as part of this module.
 - We have therefore removed the following input variables:
resource_group_nameresource_group_creation_enabled
 - We now require the 
parent_idvariable to be provided as an input when calling the module that should contain the resource ID of the resource group, that is created and managed, outside of this module. 
How to handle the breaking change
We suggest creating the Resource Group in your existing .tf files either by declaring natively with azapi or azurerm, or you can use the AVM Resource Module for the Resoruce Group (avm/res/resources/resource-group).
You can then use a terraform moved block to handle the state file migration to avoid deletion of the resource group.
The terraform resource address for the resource group from the module was: module.<symbolic name>.azapi_resource.rg
Example resource declaration and moved block
module "plpdns_resource_group" {
  source  = "Azure/avm-res-resources-resourcegroup/azurerm"
  version = "0.2.1"
  
  location = var.location
  name     = "rg-example-plpdns-dns-zones-001"
}
moved {
  from = module.<symbolic name>.azapi_resource.rg
  to   = module.plpdns_resource_group.azurerm_resource_group.this
}vNet link moves & resolution policy per vNet link
Summary of changes
- Moved virtual network link configuration inside each zone entry via the new 
virtual_network_linksobject, streamlining how virtual network links and overrides are declared for custom and default zones. This only changes how inputs are supplied. Resource addressing stays the same, so upgrades fromv0.18.0tov0.19.0do not need moved or refactoring blocks. - Added per–virtual network link 
resolution_policysupport within bothprivate_link_private_dns_zonesandprivate_link_private_dns_zones_additional, enablingNXDomainRedirectconfigurations on individual links (closes #103). - Extended name templating: 
virtual_network_link_name_template(and per-link overrides) now accept{vnet_name}and{location}placeholders alongside the already existing{zone_key}and{vnet_key}placeholders for region-aware naming patterns. 
Important
If you are upgrading from a release earlier than v0.18.0, you must still follow the migration steps documented in the README
Example of Configuration Changes
v0.18.0 and prior
module "test" {
  source  = "Azure/avm-ptn-network-private-link-private-dns-zones/azurerm"
  version = "0.18.0"
  location            = azurerm_resource_group.this.location
  resource_group_name = azurerm_resource_group.this.name
  enable_telemetry    = var.enable_telemetry
  private_link_private_dns_zones = {
    "custom_zone_1" = {
      zone_name                              = "custom-example-1.int"
      private_dns_zone_supports_private_link = false
    }
    "custom_zone_2" = {
      zone_name                              = "custom-example-2.local"
      private_dns_zone_supports_private_link = false
    }
    "custom_zone_3" = {
      zone_name                              = "custom-example-3-{regionName}.local"
      private_dns_zone_supports_private_link = false
    }
    "custom_zone_4" = {
      zone_name                              = "custom-example-4-{regionCode}.local"
      private_dns_zone_supports_private_link = false
    }
  }
  virtual_network_resource_ids_to_link_to = {
    "vnet1" = {
      vnet_resource_id  = azurerm_virtual_network.this_1.id
      resolution_policy = "Default"
    }
    "vnet2" = {
      vnet_resource_id  = azurerm_virtual_network.this_2.id
      resolution_policy = "NxDomainRedirect" # This won't be passed through as the zones above are marked as not supporting private link
    }
  }
  resource_group_creation_enabled = false
  tags = {
    "env"             = "example"
    "example-tag-key" = "example tag value"
  }
}v0.19.0 and later
module "test" {
  source  = "Azure/avm-ptn-network-private-link-private-dns-zones/azurerm"
  version = "0.19.0"
  location            = azurerm_resource_group.this.location
  parent_id           = azurerm_resource_group.this.id
  enable_telemetry    = var.enable_telemetry
  private_link_private_dns_zones = {
    "custom_zone_1" = {
      zone_name                              = "custom-example-1.int"
      private_dns_zone_supports_private_link = false
      virtual_network_links = {
        "vnet1" = {
          virtual_network_resource_id = azurerm_virtual_network.this_1.id
          resolution_policy           = "Default"
        }
        "vnet2" = {
          virtual_network_resource_id = azurerm_virtual_network.this_2.id
          resolution_policy           = "NxDomainRedirect" # This won't be passed through as the zones above are marked as not supporting private link
        }
      }
    }
    "custom_zone_2" = {
      zone_name                              = "custom-example-2.local"
      private_dns_zone_supports_private_link = false
      virtual_network_links = {
        "vnet1" = {
          virtual_network_resource_id = azurerm_virtual_network.this_1.id
          resolution_policy           = "Default"
        }
        "vnet2" = {
          virtual_network_resource_id = azurerm_virtual_network.this_2.id
          resolution_policy           = "NxDomainRedirect" # This won't be passed through as the zones above are marked as not supporting private link
        }
      }
    }
    "custom_zone_3" = {
      zone_name                              = "custom-example-3-{regionName}.local"
      private_dns_zone_supports_private_link = false
      virtual_network_links = {
        "vnet1" = {
          virtual_network_resource_id = azurerm_virtual_network.this_1.id
          resolution_policy           = "Default"
        }
        "vnet2" = {
          virtual_network_resource_id = azurerm_virtual_network.this_2.id
          resolution_policy           = "NxDomainRedirect" # This won't be passed through as the zones above are marked as not supporting private link
        }
      }
    }
    "custom_zone_4" = {
      zone_name                              = "custom-example-4-{regionCode}.local"
      private_dns_zone_supports_private_link = false
      virtual_network_links = {
        "vnet1" = {
          virtual_network_resource_id = azurerm_virtual_network.this_1.id
          resolution_policy           = "Default"
        }
        "vnet2" = {
          virtual_network_resource_id = azurerm_virtual_network.this_2.id
          resolution_policy           = "NxDomainRedirect" # This won't be passed through as the zones above are marked as not supporting private link
        }
      }
    }
  }
  tags = {
    "env"             = "example"
    "example-tag-key" = "example tag value"
  }
}