platform/alz/scripts/CreatePrivateDnsZoneDefaultArray.ps1 (93 lines of code) (raw):
$privateDnsZoneIds = @(
"azureManagedGrafanaWorkspacePrivateDnsZoneId",
"azureArcKubernetesConfigurationPrivateDnsZoneId",
"azureArcHybridResourceProviderPrivateDnsZoneId",
"azureArcGuestconfigurationPrivateDnsZoneId",
"azureAppPrivateDnsZoneId",
"azureAppServicesPrivateDnsZoneId",
"azureAsrPrivateDnsZoneId",
"azureAutomationDSCHybridPrivateDnsZoneId",
"azureAutomationWebhookPrivateDnsZoneId",
"azureBatchPrivateDnsZoneId",
"azureCognitiveSearchPrivateDnsZoneId",
"azureCognitiveServicesPrivateDnsZoneId",
"azureCosmosCassandraPrivateDnsZoneId",
"azureCosmosGremlinPrivateDnsZoneId",
"azureCosmosMongoPrivateDnsZoneId",
"azureCosmosSQLPrivateDnsZoneId",
"azureCosmosTablePrivateDnsZoneId",
"azureDataFactoryPortalPrivateDnsZoneId",
"azureDataFactoryPrivateDnsZoneId",
"azureDiskAccessPrivateDnsZoneId",
"azureEventGridDomainsPrivateDnsZoneId",
"azureEventGridTopicsPrivateDnsZoneId",
"azureEventHubNamespacePrivateDnsZoneId",
"azureFilePrivateDnsZoneId",
"azureHDInsightPrivateDnsZoneId",
"azureIotHubsPrivateDnsZoneId",
"azureIotPrivateDnsZoneId",
"azureKeyVaultPrivateDnsZoneId",
"azureMachineLearningWorkspacePrivateDnsZoneId",
"azureMediaServicesKeyPrivateDnsZoneId",
"azureMediaServicesLivePrivateDnsZoneId",
"azureMediaServicesStreamPrivateDnsZoneId",
"azureMigratePrivateDnsZoneId",
"azureMonitorPrivateDnsZoneId1",
"azureMonitorPrivateDnsZoneId2",
"azureMonitorPrivateDnsZoneId3",
"azureMonitorPrivateDnsZoneId4",
"azureMonitorPrivateDnsZoneId5",
"azureRedisCachePrivateDnsZoneId",
"azureServiceBusNamespacePrivateDnsZoneId",
"azureSignalRPrivateDnsZoneId",
"azureStorageBlobPrivateDnsZoneId",
"azureStorageBlobSecPrivateDnsZoneId",
"azureStorageDFSPrivateDnsZoneId",
"azureStorageDFSSecPrivateDnsZoneId",
"azureStorageFilePrivateDnsZoneId",
"azureStorageQueuePrivateDnsZoneId",
"azureStorageQueueSecPrivateDnsZoneId",
"azureStorageStaticWebPrivateDnsZoneId",
"azureStorageStaticWebSecPrivateDnsZoneId",
"azureSynapseDevPrivateDnsZoneId",
"azureSynapseSQLODPrivateDnsZoneId",
"azureSynapseSQLPrivateDnsZoneId",
"azureWebPrivateDnsZoneId",
"azureVirtualDesktopHostpoolPrivateDnsZoneId",
"azureVirtualDesktopWorkspacePrivateDnsZoneId",
"azureSiteRecoveryBlobPrivateDnsZoneID",
"azureSiteRecoveryQueuePrivateDnsZoneID"
)
$results = @()
foreach ($privateDnsZoneId in $privateDnsZoneIds) {
$camelCase = ""
$wasPreviousUpperI = $false
foreach ($character in $privateDnsZoneId.ToCharArray()) {
if ([System.Char]::IsUpper($character)) {
if (!$wasPreviousUpper) {
$camelCase += "_"
}
$wasPreviousUpper = $true
}
else {
$wasPreviousUpper = $false
}
$camelCase += $character.ToString().ToLower()
}
$camelCase = $camelCase.Replace("sql", "_sql_").Replace("dfs", "_dfs_").Replace("dsc", "_dsc_").Replace("signal_r", "_signal_r_").Replace("private_dns_zone_id", "_private_dns_zone_id_").Replace("___", "_").Replace("__", "_").Trim("_")
$finalName = $camelCase.Replace("_private_dns_zone_id", "").Replace("azure_", "").Trim("_")
$finalName = "private_dns_zone_$finalName"
$jsonObject = @{
"default_name" = $finalName
"policy_assignments" = @(
@{
"policy_assignment_name" = "Deploy-Private-DNS-Zones"
"parameter_names" = @(
$privateDnsZoneId
)
}
)
}
$results += $jsonObject
}
Write-Output $results | ConvertTo-Json -Depth 10