From c8d9a3edb237477bdf5c9b9d545e01acc321e81a Mon Sep 17 00:00:00 2001 From: Travis Kinney Date: Thu, 1 Oct 2020 00:20:30 -0700 Subject: [PATCH] Add support for azurerm_function_app (and misc. housekeeping) (#36) * Add support for azurerm_function_app Adds support for the azurerm_function_app resource type. * Fix resources with inconsistent naming conventions Fixes the naming convention used in the bot_channel_email and container_group resources, converting them to lower_snake_case. * Fix resource template formatting Fixes the resource template formatting to align with the output of terraform fmt, so the files don't have to be formatted afterward. Also noticed a diff between the provider in the template and the Terraform files, so I merged in pull request #35 to fix. * Sort all resources alphabetically Sorts the resource definitions in both JSON documents alphabetically, and updates the build script to alphabetize the output Terraform files. --- README.md | 5 +- main.go | 8 +- main.tf | 3748 ++++++++++++++------------- outputs.tf | 1228 ++++----- resourceDefinition.json | 2199 ++++++++-------- resourceDefinition_out_of_docs.json | 252 +- templates/main.tmpl | 16 +- 7 files changed, 3746 insertions(+), 3710 deletions(-) diff --git a/README.md b/README.md index 5032009..cb866e0 100644 --- a/README.md +++ b/README.md @@ -130,7 +130,7 @@ postgresql_server = { | batch\_application | n/a | | batch\_certificate | n/a | | batch\_pool | n/a | -| bot\_channel\_Email | n/a | +| bot\_channel\_email | n/a | | bot\_channel\_directline | n/a | | bot\_channel\_ms\_teams | n/a | | bot\_channel\_slack | n/a | @@ -140,7 +140,7 @@ postgresql_server = { | cdn\_endpoint | n/a | | cdn\_profile | n/a | | cognitive\_account | n/a | -| containerGroups | n/a | +| container\_group | n/a | | container\_registry | n/a | | container\_registry\_webhook | n/a | | cosmosdb\_account | n/a | @@ -200,6 +200,7 @@ postgresql_server = { | firewall\_network\_rule\_collection | n/a | | frontdoor | n/a | | frontdoor\_firewall\_policy | n/a | +| function\_app | n/a | | hdinsight\_hadoop\_cluster | n/a | | hdinsight\_hbase\_cluster | n/a | | hdinsight\_interactive\_query\_cluster | n/a | diff --git a/main.go b/main.go index 4ae621f..5d3d587 100644 --- a/main.go +++ b/main.go @@ -6,10 +6,11 @@ import ( "log" "os" "regexp" + "sort" "text/template" ) -// Resource definityion for the package +// Resource definition for the package type Resource struct { Name string `json:"name"` Length *Length `json:"length,omitempty"` @@ -67,6 +68,11 @@ func main() { } data = append(data, dataUndocumented...) + // Sort the documented and undocumented resources alphabetically + sort.Slice(data, func(i, j int) bool { + return data[i].Name < data[j].Name + }) + mainFile, err := os.OpenFile("main.tf", os.O_TRUNC|os.O_CREATE|os.O_WRONLY, 0644) if err != nil { log.Fatal(err) diff --git a/main.tf b/main.tf index f9295a7..e3daf1b 100644 --- a/main.tf +++ b/main.tf @@ -66,6 +66,16 @@ locals { scope = "resourceGroup" regex = "^[a-zA-Z0-9_-]+$" } + application_gateway = { + name = substr(join("-", compact([local.prefix, "agw", local.suffix])), 0, 80) + name_unique = substr(join("-", compact([local.prefix, "agw", local.suffix_unique])), 0, 80) + dashes = true + slug = "agw" + min_length = 1 + max_length = 80 + scope = "resourceGroup" + regex = "^[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9_]$" + } application_insights = { name = substr(join("-", compact([local.prefix, "appi", local.suffix])), 0, 260) name_unique = substr(join("-", compact([local.prefix, "appi", local.suffix_unique])), 0, 260) @@ -76,25 +86,15 @@ locals { scope = "resourceGroup" regex = "^[^%\\&?/]+$" } - role_assignment = { - name = substr(join("-", compact([local.prefix, "ra", local.suffix])), 0, 64) - name_unique = substr(join("-", compact([local.prefix, "ra", local.suffix_unique])), 0, 64) + application_security_group = { + name = substr(join("-", compact([local.prefix, "asg", local.suffix])), 0, 80) + name_unique = substr(join("-", compact([local.prefix, "asg", local.suffix_unique])), 0, 80) dashes = true - slug = "ra" + slug = "asg" min_length = 1 - max_length = 64 - scope = "assignment" - regex = "^[^%]+[^ %.]$" - } - role_definition = { - name = substr(join("-", compact([local.prefix, "rd", local.suffix])), 0, 64) - name_unique = substr(join("-", compact([local.prefix, "rd", local.suffix_unique])), 0, 64) - dashes = true - slug = "rd" - min_length = 1 - max_length = 64 - scope = "definition" - regex = "^[^%]+[^ %.]$" + max_length = 80 + scope = "resourceGroup" + regex = "^[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9_]$" } automation_account = { name = substr(join("-", compact([local.prefix, "aa", local.suffix])), 0, 50) @@ -156,6 +156,26 @@ locals { scope = "parent" regex = "^[^<>*%:.?\\+\\/]+[^<>*%:.?\\+\\/ ]$" } + availability_set = { + name = substr(join("-", compact([local.prefix, "avail", local.suffix])), 0, 80) + name_unique = substr(join("-", compact([local.prefix, "avail", local.suffix_unique])), 0, 80) + dashes = true + slug = "avail" + min_length = 1 + max_length = 80 + scope = "resourceGroup" + regex = "^[a-zA-Z0-9][a-zA-Z0-9-_.]+[a-zA-Z0-9_]$" + } + bastion_host = { + name = substr(join("-", compact([local.prefix, "snap", local.suffix])), 0, 80) + name_unique = substr(join("-", compact([local.prefix, "snap", local.suffix_unique])), 0, 80) + dashes = true + slug = "snap" + min_length = 1 + max_length = 80 + scope = "parent" + regex = "^[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9_]$" + } batch_account = { name = substr(join("", compact([local.prefix_safe, "ba", local.suffix_safe])), 0, 24) name_unique = substr(join("", compact([local.prefix_safe, "ba", local.suffix_unique_safe])), 0, 24) @@ -196,17 +216,17 @@ locals { scope = "parent" regex = "^[a-zA-Z0-9_-]+$" } - bot_web_app = { - name = substr(join("-", compact([local.prefix, "bot", local.suffix])), 0, 64) - name_unique = substr(join("-", compact([local.prefix, "bot", local.suffix_unique])), 0, 64) + bot_channel_directline = { + name = substr(join("-", compact([local.prefix, "botline", local.suffix])), 0, 64) + name_unique = substr(join("-", compact([local.prefix, "botline", local.suffix_unique])), 0, 64) dashes = true - slug = "bot" + slug = "botline" min_length = 2 max_length = 64 - scope = "global" + scope = "parent" regex = "^[a-zA-Z0-9][a-zA-Z0-9-_.]+$" } - bot_channel_Email = { + bot_channel_email = { name = substr(join("-", compact([local.prefix, "botmail", local.suffix])), 0, 64) name_unique = substr(join("-", compact([local.prefix, "botmail", local.suffix_unique])), 0, 64) dashes = true @@ -236,16 +256,6 @@ locals { scope = "parent" regex = "^[a-zA-Z0-9][a-zA-Z0-9-_.]+$" } - bot_channel_directline = { - name = substr(join("-", compact([local.prefix, "botline", local.suffix])), 0, 64) - name_unique = substr(join("-", compact([local.prefix, "botline", local.suffix_unique])), 0, 64) - dashes = true - slug = "botline" - min_length = 2 - max_length = 64 - scope = "parent" - regex = "^[a-zA-Z0-9][a-zA-Z0-9-_.]+$" - } bot_channels_registration = { name = substr(join("-", compact([local.prefix, "botchan", local.suffix])), 0, 64) name_unique = substr(join("-", compact([local.prefix, "botchan", local.suffix_unique])), 0, 64) @@ -266,35 +276,15 @@ locals { scope = "parent" regex = "^[a-zA-Z0-9][a-zA-Z0-9-_.]+$" } - redis_cache = { - name = substr(join("-", compact([local.prefix, "redis", local.suffix])), 0, 63) - name_unique = substr(join("-", compact([local.prefix, "redis", local.suffix_unique])), 0, 63) + bot_web_app = { + name = substr(join("-", compact([local.prefix, "bot", local.suffix])), 0, 64) + name_unique = substr(join("-", compact([local.prefix, "bot", local.suffix_unique])), 0, 64) dashes = true - slug = "redis" - min_length = 1 - max_length = 63 + slug = "bot" + min_length = 2 + max_length = 64 scope = "global" - regex = "^[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]$" - } - redis_firewall_rule = { - name = substr(join("", compact([local.prefix_safe, "redisfw", local.suffix_safe])), 0, 256) - name_unique = substr(join("", compact([local.prefix_safe, "redisfw", local.suffix_unique_safe])), 0, 256) - dashes = false - slug = "redisfw" - min_length = 1 - max_length = 256 - scope = "parent" - regex = "^[a-zA-Z0-9]+$" - } - cdn_profile = { - name = substr(join("-", compact([local.prefix, "cdnprof", local.suffix])), 0, 260) - name_unique = substr(join("-", compact([local.prefix, "cdnprof", local.suffix_unique])), 0, 260) - dashes = true - slug = "cdnprof" - min_length = 1 - max_length = 260 - scope = "resourceGroup" - regex = "^[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]$" + regex = "^[a-zA-Z0-9][a-zA-Z0-9-_.]+$" } cdn_endpoint = { name = substr(join("-", compact([local.prefix, "cdn", local.suffix])), 0, 50) @@ -306,6 +296,16 @@ locals { scope = "global" regex = "^[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]$" } + cdn_profile = { + name = substr(join("-", compact([local.prefix, "cdnprof", local.suffix])), 0, 260) + name_unique = substr(join("-", compact([local.prefix, "cdnprof", local.suffix_unique])), 0, 260) + dashes = true + slug = "cdnprof" + min_length = 1 + max_length = 260 + scope = "resourceGroup" + regex = "^[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]$" + } cognitive_account = { name = substr(join("-", compact([local.prefix, "cog", local.suffix])), 0, 64) name_unique = substr(join("-", compact([local.prefix, "cog", local.suffix_unique])), 0, 64) @@ -316,107 +316,7 @@ locals { scope = "resourceGroup" regex = "^[a-zA-Z0-9][a-zA-Z0-9-]+$" } - availability_set = { - name = substr(join("-", compact([local.prefix, "avail", local.suffix])), 0, 80) - name_unique = substr(join("-", compact([local.prefix, "avail", local.suffix_unique])), 0, 80) - dashes = true - slug = "avail" - min_length = 1 - max_length = 80 - scope = "resourceGroup" - regex = "^[a-zA-Z0-9][a-zA-Z0-9-_.]+[a-zA-Z0-9_]$" - } - disk_encryption_set = { - name = substr(join("-", compact([local.prefix, "des", local.suffix])), 0, 80) - name_unique = substr(join("-", compact([local.prefix, "des", local.suffix_unique])), 0, 80) - dashes = true - slug = "des" - min_length = 1 - max_length = 80 - scope = "resourceGroup" - regex = "^[a-zA-Z0-9_]+$" - } - image = { - name = substr(join("-", compact([local.prefix, "img", local.suffix])), 0, 80) - name_unique = substr(join("-", compact([local.prefix, "img", local.suffix_unique])), 0, 80) - dashes = true - slug = "img" - min_length = 1 - max_length = 80 - scope = "resourceGroup" - regex = "^[a-zA-Z0-9][a-zA-Z0-9-_.]+[a-zA-Z0-9_]$" - } - linux_virtual_machine = { - name = substr(join("-", compact([local.prefix, "vm", local.suffix])), 0, 64) - name_unique = substr(join("-", compact([local.prefix, "vm", local.suffix_unique])), 0, 64) - dashes = true - slug = "vm" - min_length = 1 - max_length = 64 - scope = "resourceGroup" - regex = "^[^\\/\"\\[\\]:|<>+=;,?*@&_][^\\/\"\\[\\]:|<>+=;,?*@&]+[^\\/\"\\[\\]:|<>+=;,?*@&.-]$" - } - linux_virtual_machine_scale_set = { - name = substr(join("-", compact([local.prefix, "vmss", local.suffix])), 0, 64) - name_unique = substr(join("-", compact([local.prefix, "vmss", local.suffix_unique])), 0, 64) - dashes = true - slug = "vmss" - min_length = 1 - max_length = 64 - scope = "resourceGroup" - regex = "^[^\\/\"\\[\\]:|<>+=;,?*@&_][^\\/\"\\[\\]:|<>+=;,?*@&]+[^\\/\"\\[\\]:|<>+=;,?*@&.-]$" - } - managed_disk = { - name = substr(join("-", compact([local.prefix, "dsk", local.suffix])), 0, 80) - name_unique = substr(join("-", compact([local.prefix, "dsk", local.suffix_unique])), 0, 80) - dashes = true - slug = "dsk" - min_length = 1 - max_length = 80 - scope = "resourceGroup" - regex = "^[a-zA-Z0-9_]+$" - } - virtual_machine = { - name = substr(join("-", compact([local.prefix, "vm", local.suffix])), 0, 15) - name_unique = substr(join("-", compact([local.prefix, "vm", local.suffix_unique])), 0, 15) - dashes = true - slug = "vm" - min_length = 1 - max_length = 15 - scope = "resourceGroup" - regex = "^[^\\/\"\\[\\]:|<>+=;,?*@&_][^\\/\"\\[\\]:|<>+=;,?*@&]+[^\\/\"\\[\\]:|<>+=;,?*@&.-]$" - } - virtual_machine_scale_set = { - name = substr(join("-", compact([local.prefix, "vmss", local.suffix])), 0, 15) - name_unique = substr(join("-", compact([local.prefix, "vmss", local.suffix_unique])), 0, 15) - dashes = true - slug = "vmss" - min_length = 1 - max_length = 15 - scope = "resourceGroup" - regex = "^[^\\/\"\\[\\]:|<>+=;,?*@&_][^\\/\"\\[\\]:|<>+=;,?*@&]+[^\\/\"\\[\\]:|<>+=;,?*@&.-]$" - } - windows_virtual_machine = { - name = substr(join("-", compact([local.prefix, "vm", local.suffix])), 0, 15) - name_unique = substr(join("-", compact([local.prefix, "vm", local.suffix_unique])), 0, 15) - dashes = true - slug = "vm" - min_length = 1 - max_length = 15 - scope = "resourceGroup" - regex = "^[^\\/\"\\[\\]:|<>+=;,?*@&_][^\\/\"\\[\\]:|<>+=;,?*@&]+[^\\/\"\\[\\]:|<>+=;,?*@&.-]$" - } - windows_virtual_machine_scale_set = { - name = substr(join("-", compact([local.prefix, "vmss", local.suffix])), 0, 15) - name_unique = substr(join("-", compact([local.prefix, "vmss", local.suffix_unique])), 0, 15) - dashes = true - slug = "vmss" - min_length = 1 - max_length = 15 - scope = "resourceGroup" - regex = "^[^\\/\"\\[\\]:|<>+=;,?*@&_][^\\/\"\\[\\]:|<>+=;,?*@&]+[^\\/\"\\[\\]:|<>+=;,?*@&.-]$" - } - containerGroups = { + container_group = { name = substr(join("-", compact([local.prefix, "cg", local.suffix])), 0, 63) name_unique = substr(join("-", compact([local.prefix, "cg", local.suffix_unique])), 0, 63) dashes = true @@ -446,16 +346,6 @@ locals { scope = "resourceGroup" regex = "^[a-zA-Z0-9]+$" } - kubernetes_cluster = { - name = substr(join("-", compact([local.prefix, "aks", local.suffix])), 0, 63) - name_unique = substr(join("-", compact([local.prefix, "aks", local.suffix_unique])), 0, 63) - dashes = true - slug = "aks" - min_length = 1 - max_length = 63 - scope = "resourceGroup" - regex = "^[a-zA-Z0-9][a-zA-Z0-9-_.]+[a-zA-Z0-9]$" - } cosmosdb_account = { name = substr(join("-", compact([local.prefix, "cosmos", local.suffix])), 0, 63) name_unique = substr(join("-", compact([local.prefix, "cosmos", local.suffix_unique])), 0, 63) @@ -476,185 +366,15 @@ locals { scope = "resourceGroup" regex = "^[^&%?\\/]+[^&%.?\\/ ]$" } - mariadb_server = { - name = substr(join("-", compact([local.prefix, "maria", local.suffix])), 0, 63) - name_unique = substr(join("-", compact([local.prefix, "maria", local.suffix_unique])), 0, 63) + dashboard = { + name = substr(join("-", compact([local.prefix, "dsb", local.suffix])), 0, 160) + name_unique = substr(join("-", compact([local.prefix, "dsb", local.suffix_unique])), 0, 160) dashes = true - slug = "maria" + slug = "dsb" min_length = 3 - max_length = 63 - scope = "global" - regex = "^[a-z0-9][a-zA-Z0-9-]+[a-z0-9]$" - } - mariadb_firewall_rule = { - name = substr(join("-", compact([local.prefix, "mariafw", local.suffix])), 0, 128) - name_unique = substr(join("-", compact([local.prefix, "mariafw", local.suffix_unique])), 0, 128) - dashes = true - slug = "mariafw" - min_length = 1 - max_length = 128 + max_length = 160 scope = "parent" - regex = "^[a-zA-Z0-9-_]+$" - } - mariadb_database = { - name = substr(join("-", compact([local.prefix, "mariadb", local.suffix])), 0, 63) - name_unique = substr(join("-", compact([local.prefix, "mariadb", local.suffix_unique])), 0, 63) - dashes = true - slug = "mariadb" - min_length = 1 - max_length = 63 - scope = "parent" - regex = "^[a-zA-Z0-9-_]+$" - } - mariadb_virtual_network_rule = { - name = substr(join("-", compact([local.prefix, "mariavn", local.suffix])), 0, 128) - name_unique = substr(join("-", compact([local.prefix, "mariavn", local.suffix_unique])), 0, 128) - dashes = true - slug = "mariavn" - min_length = 1 - max_length = 128 - scope = "parent" - regex = "^[a-zA-Z0-9-_]+$" - } - mysql_server = { - name = substr(join("-", compact([local.prefix, "mysql", local.suffix])), 0, 63) - name_unique = substr(join("-", compact([local.prefix, "mysql", local.suffix_unique])), 0, 63) - dashes = true - slug = "mysql" - min_length = 3 - max_length = 63 - scope = "global" - regex = "^[a-z0-9][a-zA-Z0-9-]+[a-z0-9]$" - } - mysql_firewall_rule = { - name = substr(join("-", compact([local.prefix, "mysqlfw", local.suffix])), 0, 128) - name_unique = substr(join("-", compact([local.prefix, "mysqlfw", local.suffix_unique])), 0, 128) - dashes = true - slug = "mysqlfw" - min_length = 1 - max_length = 128 - scope = "parent" - regex = "^[a-zA-Z0-9-_]+$" - } - mysql_database = { - name = substr(join("-", compact([local.prefix, "mysqldb", local.suffix])), 0, 63) - name_unique = substr(join("-", compact([local.prefix, "mysqldb", local.suffix_unique])), 0, 63) - dashes = true - slug = "mysqldb" - min_length = 1 - max_length = 63 - scope = "parent" - regex = "^[a-zA-Z0-9-_]+$" - } - mysql_virtual_network_rule = { - name = substr(join("-", compact([local.prefix, "mysqlvn", local.suffix])), 0, 128) - name_unique = substr(join("-", compact([local.prefix, "mysqlvn", local.suffix_unique])), 0, 128) - dashes = true - slug = "mysqlvn" - min_length = 1 - max_length = 128 - scope = "parent" - regex = "^[a-zA-Z0-9-_]+$" - } - postgresql_server = { - name = substr(join("-", compact([local.prefix, "psql", local.suffix])), 0, 63) - name_unique = substr(join("-", compact([local.prefix, "psql", local.suffix_unique])), 0, 63) - dashes = true - slug = "psql" - min_length = 3 - max_length = 63 - scope = "global" - regex = "^[a-z0-9][a-zA-Z0-9-]+[a-z0-9]$" - } - postgresql_firewall_rule = { - name = substr(join("-", compact([local.prefix, "psqlfw", local.suffix])), 0, 128) - name_unique = substr(join("-", compact([local.prefix, "psqlfw", local.suffix_unique])), 0, 128) - dashes = true - slug = "psqlfw" - min_length = 1 - max_length = 128 - scope = "parent" - regex = "^[a-zA-Z0-9-_]+$" - } - postgresql_database = { - name = substr(join("-", compact([local.prefix, "psqldb", local.suffix])), 0, 63) - name_unique = substr(join("-", compact([local.prefix, "psqldb", local.suffix_unique])), 0, 63) - dashes = true - slug = "psqldb" - min_length = 1 - max_length = 63 - scope = "parent" - regex = "^[a-zA-Z0-9-_]+$" - } - postgresql_virtual_network_rule = { - name = substr(join("-", compact([local.prefix, "psqlvn", local.suffix])), 0, 128) - name_unique = substr(join("-", compact([local.prefix, "psqlvn", local.suffix_unique])), 0, 128) - dashes = true - slug = "psqlvn" - min_length = 1 - max_length = 128 - scope = "parent" - regex = "^[a-zA-Z0-9-_]+$" - } - database_migration_project = { - name = substr(join("-", compact([local.prefix, "migr", local.suffix])), 0, 57) - name_unique = substr(join("-", compact([local.prefix, "migr", local.suffix_unique])), 0, 57) - dashes = true - slug = "migr" - min_length = 2 - max_length = 57 - scope = "parent" - regex = "^[a-zA-Z0-9][a-zA-Z0-9-_.]+$" - } - database_migration_service = { - name = substr(join("-", compact([local.prefix, "dms", local.suffix])), 0, 62) - name_unique = substr(join("-", compact([local.prefix, "dms", local.suffix_unique])), 0, 62) - dashes = true - slug = "dms" - min_length = 2 - max_length = 62 - scope = "resourceGroup" - regex = "^[a-zA-Z0-9][a-zA-Z0-9-_.]+$" - } - databricks_workspace = { - name = substr(join("-", compact([local.prefix, "dbw", local.suffix])), 0, 30) - name_unique = substr(join("-", compact([local.prefix, "dbw", local.suffix_unique])), 0, 30) - dashes = true - slug = "dbw" - min_length = 3 - max_length = 30 - scope = "resourceGroup" - regex = "^[a-zA-Z0-9-_]+$" - } - kusto_cluster = { - name = substr(join("", compact([local.prefix_safe, "kc", local.suffix_safe])), 0, 22) - name_unique = substr(join("", compact([local.prefix_safe, "kc", local.suffix_unique_safe])), 0, 22) - dashes = false - slug = "kc" - min_length = 4 - max_length = 22 - scope = "global" - regex = "^[a-z][a-z0-9]+$" - } - kusto_database = { - name = substr(join("-", compact([local.prefix, "kdb", local.suffix])), 0, 260) - name_unique = substr(join("-", compact([local.prefix, "kdb", local.suffix_unique])), 0, 260) - dashes = true - slug = "kdb" - min_length = 1 - max_length = 260 - scope = "parent" - regex = "^[a-zA-Z0-9- .]+$" - } - kusto_eventhub_data_connection = { - name = substr(join("-", compact([local.prefix, "kehc", local.suffix])), 0, 40) - name_unique = substr(join("-", compact([local.prefix, "kehc", local.suffix_unique])), 0, 40) - dashes = true - slug = "kehc" - min_length = 1 - max_length = 40 - scope = "parent" - regex = "^[a-zA-Z0-9- .]+$" + regex = "^[a-zA-Z0-9-]+$" } data_factory = { name = substr(join("-", compact([local.prefix, "adf", local.suffix])), 0, 63) @@ -706,16 +426,6 @@ locals { scope = "parent" regex = "^[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]$" } - data_factory_pipeline = { - name = substr(join("-", compact([local.prefix, "adfpl", local.suffix])), 0, 260) - name_unique = substr(join("-", compact([local.prefix, "adfpl", local.suffix_unique])), 0, 260) - dashes = true - slug = "adfpl" - min_length = 1 - max_length = 260 - scope = "parent" - regex = "^[a-zA-Z0-9][^<>*%:.?\\+\\/]+[a-zA-Z0-9]$" - } data_factory_linked_service_data_lake_storage_gen2 = { name = substr(join("-", compact([local.prefix, "adfsvst", local.suffix])), 0, 260) name_unique = substr(join("-", compact([local.prefix, "adfsvst", local.suffix_unique])), 0, 260) @@ -766,6 +476,16 @@ locals { scope = "parent" regex = "^[a-zA-Z0-9][^<>*%:.?\\+\\/]+$" } + data_factory_pipeline = { + name = substr(join("-", compact([local.prefix, "adfpl", local.suffix])), 0, 260) + name_unique = substr(join("-", compact([local.prefix, "adfpl", local.suffix_unique])), 0, 260) + dashes = true + slug = "adfpl" + min_length = 1 + max_length = 260 + scope = "parent" + regex = "^[a-zA-Z0-9][^<>*%:.?\\+\\/]+[a-zA-Z0-9]$" + } data_factory_trigger_schedule = { name = substr(join("-", compact([local.prefix, "adftg", local.suffix])), 0, 260) name_unique = substr(join("-", compact([local.prefix, "adftg", local.suffix_unique])), 0, 260) @@ -816,6 +536,66 @@ locals { scope = "parent" regex = "^[a-zA-Z0-9-_]+$" } + database_migration_project = { + name = substr(join("-", compact([local.prefix, "migr", local.suffix])), 0, 57) + name_unique = substr(join("-", compact([local.prefix, "migr", local.suffix_unique])), 0, 57) + dashes = true + slug = "migr" + min_length = 2 + max_length = 57 + scope = "parent" + regex = "^[a-zA-Z0-9][a-zA-Z0-9-_.]+$" + } + database_migration_service = { + name = substr(join("-", compact([local.prefix, "dms", local.suffix])), 0, 62) + name_unique = substr(join("-", compact([local.prefix, "dms", local.suffix_unique])), 0, 62) + dashes = true + slug = "dms" + min_length = 2 + max_length = 62 + scope = "resourceGroup" + regex = "^[a-zA-Z0-9][a-zA-Z0-9-_.]+$" + } + databricks_cluster = { + name = substr(join("-", compact([local.prefix, "dbc", local.suffix])), 0, 30) + name_unique = substr(join("-", compact([local.prefix, "dbc", local.suffix_unique])), 0, 30) + dashes = true + slug = "dbc" + min_length = 3 + max_length = 30 + scope = "parent" + regex = "^[a-zA-Z0-9-_]+$" + } + databricks_high_concurrency_cluster = { + name = substr(join("-", compact([local.prefix, "dbhcc", local.suffix])), 0, 30) + name_unique = substr(join("-", compact([local.prefix, "dbhcc", local.suffix_unique])), 0, 30) + dashes = true + slug = "dbhcc" + min_length = 3 + max_length = 30 + scope = "parent" + regex = "^[a-zA-Z0-9-_]+$" + } + databricks_standard_cluster = { + name = substr(join("-", compact([local.prefix, "dbsc", local.suffix])), 0, 30) + name_unique = substr(join("-", compact([local.prefix, "dbsc", local.suffix_unique])), 0, 30) + dashes = true + slug = "dbsc" + min_length = 3 + max_length = 30 + scope = "parent" + regex = "^[a-zA-Z0-9-_]+$" + } + databricks_workspace = { + name = substr(join("-", compact([local.prefix, "dbw", local.suffix])), 0, 30) + name_unique = substr(join("-", compact([local.prefix, "dbw", local.suffix_unique])), 0, 30) + dashes = true + slug = "dbw" + min_length = 3 + max_length = 30 + scope = "resourceGroup" + regex = "^[a-zA-Z0-9-_]+$" + } dev_test_lab = { name = substr(join("-", compact([local.prefix, "lab", local.suffix])), 0, 50) name_unique = substr(join("-", compact([local.prefix, "lab", local.suffix_unique])), 0, 50) @@ -846,6 +626,276 @@ locals { scope = "parent" regex = "^[a-zA-Z0-9-]+$" } + disk_encryption_set = { + name = substr(join("-", compact([local.prefix, "des", local.suffix])), 0, 80) + name_unique = substr(join("-", compact([local.prefix, "des", local.suffix_unique])), 0, 80) + dashes = true + slug = "des" + min_length = 1 + max_length = 80 + scope = "resourceGroup" + regex = "^[a-zA-Z0-9_]+$" + } + dns_a_record = { + name = substr(join("-", compact([local.prefix, "dnsrec", local.suffix])), 0, 80) + name_unique = substr(join("-", compact([local.prefix, "dnsrec", local.suffix_unique])), 0, 80) + dashes = true + slug = "dnsrec" + min_length = 1 + max_length = 80 + scope = "parent" + regex = "^[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9_]$" + } + dns_aaaa_record = { + name = substr(join("-", compact([local.prefix, "dnsrec", local.suffix])), 0, 80) + name_unique = substr(join("-", compact([local.prefix, "dnsrec", local.suffix_unique])), 0, 80) + dashes = true + slug = "dnsrec" + min_length = 1 + max_length = 80 + scope = "parent" + regex = "^[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9_]$" + } + dns_caa_record = { + name = substr(join("-", compact([local.prefix, "dnsrec", local.suffix])), 0, 80) + name_unique = substr(join("-", compact([local.prefix, "dnsrec", local.suffix_unique])), 0, 80) + dashes = true + slug = "dnsrec" + min_length = 1 + max_length = 80 + scope = "parent" + regex = "^[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9_]$" + } + dns_cname_record = { + name = substr(join("-", compact([local.prefix, "dnsrec", local.suffix])), 0, 80) + name_unique = substr(join("-", compact([local.prefix, "dnsrec", local.suffix_unique])), 0, 80) + dashes = true + slug = "dnsrec" + min_length = 1 + max_length = 80 + scope = "parent" + regex = "^[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9_]$" + } + dns_mx_record = { + name = substr(join("-", compact([local.prefix, "dnsrec", local.suffix])), 0, 80) + name_unique = substr(join("-", compact([local.prefix, "dnsrec", local.suffix_unique])), 0, 80) + dashes = true + slug = "dnsrec" + min_length = 1 + max_length = 80 + scope = "parent" + regex = "^[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9_]$" + } + dns_ns_record = { + name = substr(join("-", compact([local.prefix, "dnsrec", local.suffix])), 0, 80) + name_unique = substr(join("-", compact([local.prefix, "dnsrec", local.suffix_unique])), 0, 80) + dashes = true + slug = "dnsrec" + min_length = 1 + max_length = 80 + scope = "parent" + regex = "^[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9_]$" + } + dns_ptr_record = { + name = substr(join("-", compact([local.prefix, "dnsrec", local.suffix])), 0, 80) + name_unique = substr(join("-", compact([local.prefix, "dnsrec", local.suffix_unique])), 0, 80) + dashes = true + slug = "dnsrec" + min_length = 1 + max_length = 80 + scope = "parent" + regex = "^[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9_]$" + } + dns_txt_record = { + name = substr(join("-", compact([local.prefix, "dnsrec", local.suffix])), 0, 80) + name_unique = substr(join("-", compact([local.prefix, "dnsrec", local.suffix_unique])), 0, 80) + dashes = true + slug = "dnsrec" + min_length = 1 + max_length = 80 + scope = "parent" + regex = "^[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9_]$" + } + dns_zone = { + name = substr(join("-", compact([local.prefix, "dns", local.suffix])), 0, 63) + name_unique = substr(join("-", compact([local.prefix, "dns", local.suffix_unique])), 0, 63) + dashes = true + slug = "dns" + min_length = 1 + max_length = 63 + scope = "resourceGroup" + regex = "^[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9_]$" + } + eventgrid_domain = { + name = substr(join("-", compact([local.prefix, "egd", local.suffix])), 0, 50) + name_unique = substr(join("-", compact([local.prefix, "egd", local.suffix_unique])), 0, 50) + dashes = true + slug = "egd" + min_length = 3 + max_length = 50 + scope = "resourceGroup" + regex = "^[a-zA-Z0-9-]+$" + } + eventgrid_domain_topic = { + name = substr(join("-", compact([local.prefix, "egdt", local.suffix])), 0, 50) + name_unique = substr(join("-", compact([local.prefix, "egdt", local.suffix_unique])), 0, 50) + dashes = true + slug = "egdt" + min_length = 3 + max_length = 50 + scope = "parent" + regex = "^[a-zA-Z0-9-]+$" + } + eventgrid_event_subscription = { + name = substr(join("-", compact([local.prefix, "egs", local.suffix])), 0, 64) + name_unique = substr(join("-", compact([local.prefix, "egs", local.suffix_unique])), 0, 64) + dashes = true + slug = "egs" + min_length = 3 + max_length = 64 + scope = "resourceGroup" + regex = "^[a-zA-Z0-9-]+$" + } + eventgrid_topic = { + name = substr(join("-", compact([local.prefix, "egt", local.suffix])), 0, 50) + name_unique = substr(join("-", compact([local.prefix, "egt", local.suffix_unique])), 0, 50) + dashes = true + slug = "egt" + min_length = 3 + max_length = 50 + scope = "resourceGroup" + regex = "^[a-zA-Z0-9-]+$" + } + eventhub = { + name = substr(join("-", compact([local.prefix, "evh", local.suffix])), 0, 50) + name_unique = substr(join("-", compact([local.prefix, "evh", local.suffix_unique])), 0, 50) + dashes = true + slug = "evh" + min_length = 1 + max_length = 50 + scope = "parent" + regex = "^[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9]$" + } + eventhub_authorization_rule = { + name = substr(join("-", compact([local.prefix, "ehar", local.suffix])), 0, 50) + name_unique = substr(join("-", compact([local.prefix, "ehar", local.suffix_unique])), 0, 50) + dashes = true + slug = "ehar" + min_length = 1 + max_length = 50 + scope = "parent" + regex = "^[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9]$" + } + eventhub_consumer_group = { + name = substr(join("-", compact([local.prefix, "ehcg", local.suffix])), 0, 50) + name_unique = substr(join("-", compact([local.prefix, "ehcg", local.suffix_unique])), 0, 50) + dashes = true + slug = "ehcg" + min_length = 1 + max_length = 50 + scope = "parent" + regex = "^[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9]$" + } + eventhub_namespace = { + name = substr(join("-", compact([local.prefix, "ehn", local.suffix])), 0, 50) + name_unique = substr(join("-", compact([local.prefix, "ehn", local.suffix_unique])), 0, 50) + dashes = true + slug = "ehn" + min_length = 1 + max_length = 50 + scope = "global" + regex = "^[a-zA-Z][a-zA-Z0-9-]+[a-zA-Z0-9]$" + } + eventhub_namespace_authorization_rule = { + name = substr(join("-", compact([local.prefix, "ehnar", local.suffix])), 0, 50) + name_unique = substr(join("-", compact([local.prefix, "ehnar", local.suffix_unique])), 0, 50) + dashes = true + slug = "ehnar" + min_length = 1 + max_length = 50 + scope = "parent" + regex = "^[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9]$" + } + eventhub_namespace_disaster_recovery_config = { + name = substr(join("-", compact([local.prefix, "ehdr", local.suffix])), 0, 50) + name_unique = substr(join("-", compact([local.prefix, "ehdr", local.suffix_unique])), 0, 50) + dashes = true + slug = "ehdr" + min_length = 1 + max_length = 50 + scope = "parent" + regex = "^[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9]$" + } + express_route_circuit = { + name = substr(join("-", compact([local.prefix, "erc", local.suffix])), 0, 80) + name_unique = substr(join("-", compact([local.prefix, "erc", local.suffix_unique])), 0, 80) + dashes = true + slug = "erc" + min_length = 1 + max_length = 80 + scope = "resourceGroup" + regex = "^[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9_]$" + } + express_route_gateway = { + name = substr(join("-", compact([local.prefix, "ergw", local.suffix])), 0, 80) + name_unique = substr(join("-", compact([local.prefix, "ergw", local.suffix_unique])), 0, 80) + dashes = true + slug = "ergw" + min_length = 1 + max_length = 80 + scope = "resourceGroup" + regex = "^[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9_]$" + } + firewall = { + name = substr(join("-", compact([local.prefix, "fw", local.suffix])), 0, 80) + name_unique = substr(join("-", compact([local.prefix, "fw", local.suffix_unique])), 0, 80) + dashes = true + slug = "fw" + min_length = 1 + max_length = 80 + scope = "resourceGroup" + regex = "^[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9_]$" + } + firewall_application_rule_collection = { + name = substr(join("-", compact([local.prefix, "fwapp", local.suffix])), 0, 80) + name_unique = substr(join("-", compact([local.prefix, "fwapp", local.suffix_unique])), 0, 80) + dashes = true + slug = "fwapp" + min_length = 1 + max_length = 80 + scope = "parent" + regex = "^[a-zA-Z0-9][a-zA-Z0-9\\-\\._]+[a-zA-Z0-9_]$" + } + firewall_ip_configuration = { + name = substr(join("-", compact([local.prefix, "fwipconf", local.suffix])), 0, 80) + name_unique = substr(join("-", compact([local.prefix, "fwipconf", local.suffix_unique])), 0, 80) + dashes = true + slug = "fwipconf" + min_length = 1 + max_length = 80 + scope = "resourceGroup" + regex = "^[a-zA-Z0-9][a-zA-Z0-9\\-\\._]+[a-zA-Z0-9_]$" + } + firewall_nat_rule_collection = { + name = substr(join("-", compact([local.prefix, "fwnatrc", local.suffix])), 0, 80) + name_unique = substr(join("-", compact([local.prefix, "fwnatrc", local.suffix_unique])), 0, 80) + dashes = true + slug = "fwnatrc" + min_length = 1 + max_length = 80 + scope = "parent" + regex = "^[a-zA-Z0-9][a-zA-Z0-9\\-\\._]+[a-zA-Z0-9_]$" + } + firewall_network_rule_collection = { + name = substr(join("-", compact([local.prefix, "fwnetrc", local.suffix])), 0, 80) + name_unique = substr(join("-", compact([local.prefix, "fwnetrc", local.suffix_unique])), 0, 80) + dashes = true + slug = "fwnetrc" + min_length = 1 + max_length = 80 + scope = "parent" + regex = "^[a-zA-Z0-9][a-zA-Z0-9\\-\\._]+[a-zA-Z0-9_]$" + } frontdoor = { name = substr(join("-", compact([local.prefix, "fd", local.suffix])), 0, 64) name_unique = substr(join("-", compact([local.prefix, "fd", local.suffix_unique])), 0, 64) @@ -866,6 +916,16 @@ locals { scope = "global" regex = "^[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9_]$" } + function_app = { + name = substr(join("-", compact([local.prefix, "func", local.suffix])), 0, 60) + name_unique = substr(join("-", compact([local.prefix, "func", local.suffix_unique])), 0, 60) + dashes = true + slug = "func" + min_length = 2 + max_length = 60 + scope = "global" + regex = "^[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]$" + } hdinsight_hadoop_cluster = { name = substr(join("-", compact([local.prefix, "hadoop", local.suffix])), 0, 59) name_unique = substr(join("-", compact([local.prefix, "hadoop", local.suffix_unique])), 0, 59) @@ -886,16 +946,6 @@ locals { scope = "global" regex = "^[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]$" } - hdinsight_kafka_cluster = { - name = substr(join("-", compact([local.prefix, "kafka", local.suffix])), 0, 59) - name_unique = substr(join("-", compact([local.prefix, "kafka", local.suffix_unique])), 0, 59) - dashes = true - slug = "kafka" - min_length = 3 - max_length = 59 - scope = "global" - regex = "^[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]$" - } hdinsight_interactive_query_cluster = { name = substr(join("-", compact([local.prefix, "iqr", local.suffix])), 0, 59) name_unique = substr(join("-", compact([local.prefix, "iqr", local.suffix_unique])), 0, 59) @@ -906,6 +956,16 @@ locals { scope = "global" regex = "^[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]$" } + hdinsight_kafka_cluster = { + name = substr(join("-", compact([local.prefix, "kafka", local.suffix])), 0, 59) + name_unique = substr(join("-", compact([local.prefix, "kafka", local.suffix_unique])), 0, 59) + dashes = true + slug = "kafka" + min_length = 3 + max_length = 59 + scope = "global" + regex = "^[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]$" + } hdinsight_ml_services_cluster = { name = substr(join("-", compact([local.prefix, "mls", local.suffix])), 0, 59) name_unique = substr(join("-", compact([local.prefix, "mls", local.suffix_unique])), 0, 59) @@ -946,6 +1006,16 @@ locals { scope = "global" regex = "^[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]$" } + image = { + name = substr(join("-", compact([local.prefix, "img", local.suffix])), 0, 80) + name_unique = substr(join("-", compact([local.prefix, "img", local.suffix_unique])), 0, 80) + dashes = true + slug = "img" + min_length = 1 + max_length = 80 + scope = "resourceGroup" + regex = "^[a-zA-Z0-9][a-zA-Z0-9-_.]+[a-zA-Z0-9_]$" + } iotcentral_application = { name = substr(join("-", compact([local.prefix, "iotapp", local.suffix])), 0, 63) name_unique = substr(join("-", compact([local.prefix, "iotapp", local.suffix_unique])), 0, 63) @@ -1006,6 +1076,16 @@ locals { scope = "global" regex = "^[a-zA-Z][a-zA-Z0-9-]+[a-zA-Z0-9]$" } + key_vault_certificate = { + name = substr(join("-", compact([local.prefix, "kvc", local.suffix])), 0, 127) + name_unique = substr(join("-", compact([local.prefix, "kvc", local.suffix_unique])), 0, 127) + dashes = true + slug = "kvc" + min_length = 1 + max_length = 127 + scope = "parent" + regex = "^[a-zA-Z0-9-]+$" + } key_vault_key = { name = substr(join("-", compact([local.prefix, "kvk", local.suffix])), 0, 127) name_unique = substr(join("-", compact([local.prefix, "kvk", local.suffix_unique])), 0, 127) @@ -1026,15 +1106,45 @@ locals { scope = "parent" regex = "^[a-zA-Z0-9-]+$" } - key_vault_certificate = { - name = substr(join("-", compact([local.prefix, "kvc", local.suffix])), 0, 127) - name_unique = substr(join("-", compact([local.prefix, "kvc", local.suffix_unique])), 0, 127) + kubernetes_cluster = { + name = substr(join("-", compact([local.prefix, "aks", local.suffix])), 0, 63) + name_unique = substr(join("-", compact([local.prefix, "aks", local.suffix_unique])), 0, 63) dashes = true - slug = "kvc" + slug = "aks" min_length = 1 - max_length = 127 + max_length = 63 + scope = "resourceGroup" + regex = "^[a-zA-Z0-9][a-zA-Z0-9-_.]+[a-zA-Z0-9]$" + } + kusto_cluster = { + name = substr(join("", compact([local.prefix_safe, "kc", local.suffix_safe])), 0, 22) + name_unique = substr(join("", compact([local.prefix_safe, "kc", local.suffix_unique_safe])), 0, 22) + dashes = false + slug = "kc" + min_length = 4 + max_length = 22 + scope = "global" + regex = "^[a-z][a-z0-9]+$" + } + kusto_database = { + name = substr(join("-", compact([local.prefix, "kdb", local.suffix])), 0, 260) + name_unique = substr(join("-", compact([local.prefix, "kdb", local.suffix_unique])), 0, 260) + dashes = true + slug = "kdb" + min_length = 1 + max_length = 260 scope = "parent" - regex = "^[a-zA-Z0-9-]+$" + regex = "^[a-zA-Z0-9- .]+$" + } + kusto_eventhub_data_connection = { + name = substr(join("-", compact([local.prefix, "kehc", local.suffix])), 0, 40) + name_unique = substr(join("-", compact([local.prefix, "kehc", local.suffix_unique])), 0, 40) + dashes = true + slug = "kehc" + min_length = 1 + max_length = 40 + scope = "parent" + regex = "^[a-zA-Z0-9- .]+$" } lb = { name = substr(join("-", compact([local.prefix, "lb", local.suffix])), 0, 80) @@ -1056,425 +1166,25 @@ locals { scope = "parent" regex = "^[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9_]$" } - public_ip = { - name = substr(join("-", compact([local.prefix, "pip", local.suffix])), 0, 80) - name_unique = substr(join("-", compact([local.prefix, "pip", local.suffix_unique])), 0, 80) + linux_virtual_machine = { + name = substr(join("-", compact([local.prefix, "vm", local.suffix])), 0, 64) + name_unique = substr(join("-", compact([local.prefix, "vm", local.suffix_unique])), 0, 64) dashes = true - slug = "pip" + slug = "vm" min_length = 1 - max_length = 80 - scope = "parent" - regex = "^[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9_]$" - } - public_ip_prefix = { - name = substr(join("-", compact([local.prefix, "pippf", local.suffix])), 0, 80) - name_unique = substr(join("-", compact([local.prefix, "pippf", local.suffix_unique])), 0, 80) - dashes = true - slug = "pippf" - min_length = 1 - max_length = 80 - scope = "parent" - regex = "^[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9_]$" - } - route = { - name = substr(join("-", compact([local.prefix, "rt", local.suffix])), 0, 80) - name_unique = substr(join("-", compact([local.prefix, "rt", local.suffix_unique])), 0, 80) - dashes = true - slug = "rt" - min_length = 1 - max_length = 80 - scope = "parent" - regex = "^[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9_]$" - } - route_table = { - name = substr(join("-", compact([local.prefix, "route", local.suffix])), 0, 80) - name_unique = substr(join("-", compact([local.prefix, "route", local.suffix_unique])), 0, 80) - dashes = true - slug = "route" - min_length = 1 - max_length = 80 - scope = "resourceGroup" - regex = "^[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9_]$" - } - subnet = { - name = substr(join("-", compact([local.prefix, "snet", local.suffix])), 0, 80) - name_unique = substr(join("-", compact([local.prefix, "snet", local.suffix_unique])), 0, 80) - dashes = true - slug = "snet" - min_length = 1 - max_length = 80 - scope = "parent" - regex = "^[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9_]$" - } - traffic_manager_profile = { - name = substr(join("-", compact([local.prefix, "traf", local.suffix])), 0, 63) - name_unique = substr(join("-", compact([local.prefix, "traf", local.suffix_unique])), 0, 63) - dashes = true - slug = "traf" - min_length = 1 - max_length = 63 - scope = "global" - regex = "^[a-zA-Z0-9][a-zA-Z0-9-.]+[a-zA-Z0-9_]$" - } - virtual_wan = { - name = substr(join("-", compact([local.prefix, "vwan", local.suffix])), 0, 80) - name_unique = substr(join("-", compact([local.prefix, "vwan", local.suffix_unique])), 0, 80) - dashes = true - slug = "vwan" - min_length = 1 - max_length = 80 - scope = "parent" - regex = "^[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9_]$" - } - virtual_network = { - name = substr(join("-", compact([local.prefix, "vnet", local.suffix])), 0, 64) - name_unique = substr(join("-", compact([local.prefix, "vnet", local.suffix_unique])), 0, 64) - dashes = true - slug = "vnet" - min_length = 2 max_length = 64 scope = "resourceGroup" - regex = "^[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9_]$" + regex = "^[^\\/\"\\[\\]:|<>+=;,?*@&_][^\\/\"\\[\\]:|<>+=;,?*@&]+[^\\/\"\\[\\]:|<>+=;,?*@&.-]$" } - virtual_network_gateway = { - name = substr(join("-", compact([local.prefix, "vgw", local.suffix])), 0, 80) - name_unique = substr(join("-", compact([local.prefix, "vgw", local.suffix_unique])), 0, 80) + linux_virtual_machine_scale_set = { + name = substr(join("-", compact([local.prefix, "vmss", local.suffix])), 0, 64) + name_unique = substr(join("-", compact([local.prefix, "vmss", local.suffix_unique])), 0, 64) dashes = true - slug = "vgw" + slug = "vmss" min_length = 1 - max_length = 80 + max_length = 64 scope = "resourceGroup" - regex = "^[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9_]$" - } - virtual_network_peering = { - name = substr(join("-", compact([local.prefix, "vpeer", local.suffix])), 0, 80) - name_unique = substr(join("-", compact([local.prefix, "vpeer", local.suffix_unique])), 0, 80) - dashes = true - slug = "vpeer" - min_length = 1 - max_length = 80 - scope = "parent" - regex = "^[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9_]$" - } - network_interface = { - name = substr(join("-", compact([local.prefix, "nic", local.suffix])), 0, 80) - name_unique = substr(join("-", compact([local.prefix, "nic", local.suffix_unique])), 0, 80) - dashes = true - slug = "nic" - min_length = 1 - max_length = 80 - scope = "resourceGroup" - regex = "^[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9_]$" - } - firewall = { - name = substr(join("-", compact([local.prefix, "fw", local.suffix])), 0, 80) - name_unique = substr(join("-", compact([local.prefix, "fw", local.suffix_unique])), 0, 80) - dashes = true - slug = "fw" - min_length = 1 - max_length = 80 - scope = "resourceGroup" - regex = "^[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9_]$" - } - eventhub = { - name = substr(join("-", compact([local.prefix, "evh", local.suffix])), 0, 50) - name_unique = substr(join("-", compact([local.prefix, "evh", local.suffix_unique])), 0, 50) - dashes = true - slug = "evh" - min_length = 1 - max_length = 50 - scope = "parent" - regex = "^[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9]$" - } - eventhub_namespace = { - name = substr(join("-", compact([local.prefix, "ehn", local.suffix])), 0, 50) - name_unique = substr(join("-", compact([local.prefix, "ehn", local.suffix_unique])), 0, 50) - dashes = true - slug = "ehn" - min_length = 1 - max_length = 50 - scope = "global" - regex = "^[a-zA-Z][a-zA-Z0-9-]+[a-zA-Z0-9]$" - } - eventhub_authorization_rule = { - name = substr(join("-", compact([local.prefix, "ehar", local.suffix])), 0, 50) - name_unique = substr(join("-", compact([local.prefix, "ehar", local.suffix_unique])), 0, 50) - dashes = true - slug = "ehar" - min_length = 1 - max_length = 50 - scope = "parent" - regex = "^[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9]$" - } - eventhub_namespace_authorization_rule = { - name = substr(join("-", compact([local.prefix, "ehnar", local.suffix])), 0, 50) - name_unique = substr(join("-", compact([local.prefix, "ehnar", local.suffix_unique])), 0, 50) - dashes = true - slug = "ehnar" - min_length = 1 - max_length = 50 - scope = "parent" - regex = "^[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9]$" - } - eventhub_namespace_disaster_recovery_config = { - name = substr(join("-", compact([local.prefix, "ehdr", local.suffix])), 0, 50) - name_unique = substr(join("-", compact([local.prefix, "ehdr", local.suffix_unique])), 0, 50) - dashes = true - slug = "ehdr" - min_length = 1 - max_length = 50 - scope = "parent" - regex = "^[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9]$" - } - eventhub_consumer_group = { - name = substr(join("-", compact([local.prefix, "ehcg", local.suffix])), 0, 50) - name_unique = substr(join("-", compact([local.prefix, "ehcg", local.suffix_unique])), 0, 50) - dashes = true - slug = "ehcg" - min_length = 1 - max_length = 50 - scope = "parent" - regex = "^[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9]$" - } - stream_analytics_job = { - name = substr(join("-", compact([local.prefix, "asa", local.suffix])), 0, 63) - name_unique = substr(join("-", compact([local.prefix, "asa", local.suffix_unique])), 0, 63) - dashes = true - slug = "asa" - min_length = 3 - max_length = 63 - scope = "resourceGroup" - regex = "^[a-zA-Z0-9-_]+$" - } - stream_analytics_function_javascript_udf = { - name = substr(join("-", compact([local.prefix, "asafunc", local.suffix])), 0, 63) - name_unique = substr(join("-", compact([local.prefix, "asafunc", local.suffix_unique])), 0, 63) - dashes = true - slug = "asafunc" - min_length = 3 - max_length = 63 - scope = "parent" - regex = "^[a-zA-Z0-9-_]+$" - } - stream_analytics_output_blob = { - name = substr(join("-", compact([local.prefix, "asaoblob", local.suffix])), 0, 63) - name_unique = substr(join("-", compact([local.prefix, "asaoblob", local.suffix_unique])), 0, 63) - dashes = true - slug = "asaoblob" - min_length = 3 - max_length = 63 - scope = "parent" - regex = "^[a-zA-Z0-9-_]+$" - } - stream_analytics_output_mssql = { - name = substr(join("-", compact([local.prefix, "asaomssql", local.suffix])), 0, 63) - name_unique = substr(join("-", compact([local.prefix, "asaomssql", local.suffix_unique])), 0, 63) - dashes = true - slug = "asaomssql" - min_length = 3 - max_length = 63 - scope = "parent" - regex = "^[a-zA-Z0-9-_]+$" - } - stream_analytics_output_eventhub = { - name = substr(join("-", compact([local.prefix, "asaoeh", local.suffix])), 0, 63) - name_unique = substr(join("-", compact([local.prefix, "asaoeh", local.suffix_unique])), 0, 63) - dashes = true - slug = "asaoeh" - min_length = 3 - max_length = 63 - scope = "parent" - regex = "^[a-zA-Z0-9-_]+$" - } - stream_analytics_output_servicebus_queue = { - name = substr(join("-", compact([local.prefix, "asaosbq", local.suffix])), 0, 63) - name_unique = substr(join("-", compact([local.prefix, "asaosbq", local.suffix_unique])), 0, 63) - dashes = true - slug = "asaosbq" - min_length = 3 - max_length = 63 - scope = "parent" - regex = "^[a-zA-Z0-9-_]+$" - } - stream_analytics_output_servicebus_topic = { - name = substr(join("-", compact([local.prefix, "asaosbt", local.suffix])), 0, 63) - name_unique = substr(join("-", compact([local.prefix, "asaosbt", local.suffix_unique])), 0, 63) - dashes = true - slug = "asaosbt" - min_length = 3 - max_length = 63 - scope = "parent" - regex = "^[a-zA-Z0-9-_]+$" - } - stream_analytics_reference_input_blob = { - name = substr(join("-", compact([local.prefix, "asarblob", local.suffix])), 0, 63) - name_unique = substr(join("-", compact([local.prefix, "asarblob", local.suffix_unique])), 0, 63) - dashes = true - slug = "asarblob" - min_length = 3 - max_length = 63 - scope = "parent" - regex = "^[a-zA-Z0-9-_]+$" - } - stream_analytics_stream_input_blob = { - name = substr(join("-", compact([local.prefix, "asaiblob", local.suffix])), 0, 63) - name_unique = substr(join("-", compact([local.prefix, "asaiblob", local.suffix_unique])), 0, 63) - dashes = true - slug = "asaiblob" - min_length = 3 - max_length = 63 - scope = "parent" - regex = "^[a-zA-Z0-9-_]+$" - } - stream_analytics_stream_input_eventhub = { - name = substr(join("-", compact([local.prefix, "asaieh", local.suffix])), 0, 63) - name_unique = substr(join("-", compact([local.prefix, "asaieh", local.suffix_unique])), 0, 63) - dashes = true - slug = "asaieh" - min_length = 3 - max_length = 63 - scope = "parent" - regex = "^[a-zA-Z0-9-_]+$" - } - stream_analytics_stream_input_iothub = { - name = substr(join("-", compact([local.prefix, "asaiiot", local.suffix])), 0, 63) - name_unique = substr(join("-", compact([local.prefix, "asaiiot", local.suffix_unique])), 0, 63) - dashes = true - slug = "asaiiot" - min_length = 3 - max_length = 63 - scope = "parent" - regex = "^[a-zA-Z0-9-_]+$" - } - shared_image_gallery = { - name = substr(join("", compact([local.prefix_safe, "sig", local.suffix_safe])), 0, 80) - name_unique = substr(join("", compact([local.prefix_safe, "sig", local.suffix_unique_safe])), 0, 80) - dashes = false - slug = "sig" - min_length = 1 - max_length = 80 - scope = "resourceGroup" - regex = "^[a-zA-Z0-9][a-zA-Z0-9.]+[a-zA-Z0-9]$" - } - shared_image = { - name = substr(join("-", compact([local.prefix, "si", local.suffix])), 0, 80) - name_unique = substr(join("-", compact([local.prefix, "si", local.suffix_unique])), 0, 80) - dashes = true - slug = "si" - min_length = 1 - max_length = 80 - scope = "parent" - regex = "^[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9]$" - } - snapshots = { - name = substr(join("-", compact([local.prefix, "snap", local.suffix])), 0, 80) - name_unique = substr(join("-", compact([local.prefix, "snap", local.suffix_unique])), 0, 80) - dashes = true - slug = "snap" - min_length = 1 - max_length = 80 - scope = "parent" - regex = "^[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9_]$" - } - storage_account = { - name = substr(join("", compact([local.prefix_safe, "st", local.suffix_safe])), 0, 24) - name_unique = substr(join("", compact([local.prefix_safe, "st", local.suffix_unique_safe])), 0, 24) - dashes = false - slug = "st" - min_length = 3 - max_length = 24 - scope = "global" - regex = "^[a-z0-9]+$" - } - storage_container = { - name = substr(join("-", compact([local.prefix, "stct", local.suffix])), 0, 63) - name_unique = substr(join("-", compact([local.prefix, "stct", local.suffix_unique])), 0, 63) - dashes = true - slug = "stct" - min_length = 3 - max_length = 63 - scope = "parent" - regex = "^[a-z0-9][a-z0-9-]+$" - } - storage_data_lake_gen2_filesystem = { - name = substr(join("-", compact([local.prefix, "stdl", local.suffix])), 0, 63) - name_unique = substr(join("-", compact([local.prefix, "stdl", local.suffix_unique])), 0, 63) - dashes = true - slug = "stdl" - min_length = 3 - max_length = 63 - scope = "parent" - regex = "^[a-z0-9][a-z0-9-]+[a-z0-9]$" - } - storage_queue = { - name = substr(join("-", compact([local.prefix, "stq", local.suffix])), 0, 63) - name_unique = substr(join("-", compact([local.prefix, "stq", local.suffix_unique])), 0, 63) - dashes = true - slug = "stq" - min_length = 3 - max_length = 63 - scope = "parent" - regex = "^[a-z0-9][a-z0-9-]+[a-z0-9]$" - } - storage_table = { - name = substr(join("-", compact([local.prefix, "stt", local.suffix])), 0, 63) - name_unique = substr(join("-", compact([local.prefix, "stt", local.suffix_unique])), 0, 63) - dashes = true - slug = "stt" - min_length = 3 - max_length = 63 - scope = "parent" - regex = "^[a-z0-9][a-z0-9-]+[a-z0-9]$" - } - storage_share = { - name = substr(join("-", compact([local.prefix, "sts", local.suffix])), 0, 63) - name_unique = substr(join("-", compact([local.prefix, "sts", local.suffix_unique])), 0, 63) - dashes = true - slug = "sts" - min_length = 3 - max_length = 63 - scope = "parent" - regex = "^[a-z0-9][a-z0-9-]+[a-z0-9]$" - } - storage_share_directory = { - name = substr(join("-", compact([local.prefix, "sts", local.suffix])), 0, 63) - name_unique = substr(join("-", compact([local.prefix, "sts", local.suffix_unique])), 0, 63) - dashes = true - slug = "sts" - min_length = 3 - max_length = 63 - scope = "parent" - regex = "^[a-z0-9][a-z0-9-]+[a-z0-9]$" - } - machine_learning_workspace = { - name = substr(join("-", compact([local.prefix, "mlw", local.suffix])), 0, 260) - name_unique = substr(join("-", compact([local.prefix, "mlw", local.suffix_unique])), 0, 260) - dashes = true - slug = "mlw" - min_length = 1 - max_length = 260 - scope = "resourceGroup" - regex = "^[^<>*%:.?\\+\\/]+[^<>*%:.?\\+\\/ ]$" - } - storage_blob = { - name = substr(join("-", compact([local.prefix, "blob", local.suffix])), 0, 1024) - name_unique = substr(join("-", compact([local.prefix, "blob", local.suffix_unique])), 0, 1024) - dashes = true - slug = "blob" - min_length = 1 - max_length = 1024 - scope = "parent" - regex = "^[^\\s\\/$#&]+$" - } - bastion_host = { - name = substr(join("-", compact([local.prefix, "snap", local.suffix])), 0, 80) - name_unique = substr(join("-", compact([local.prefix, "snap", local.suffix_unique])), 0, 80) - dashes = true - slug = "snap" - min_length = 1 - max_length = 80 - scope = "parent" - regex = "^[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9_]$" + regex = "^[^\\/\"\\[\\]:|<>+=;,?*@&_][^\\/\"\\[\\]:|<>+=;,?*@&]+[^\\/\"\\[\\]:|<>+=;,?*@&.-]$" } local_network_gateway = { name = substr(join("-", compact([local.prefix, "lgw", local.suffix])), 0, 80) @@ -1486,75 +1196,85 @@ locals { scope = "resourceGroup" regex = "^[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9_]$" } - application_gateway = { - name = substr(join("-", compact([local.prefix, "agw", local.suffix])), 0, 80) - name_unique = substr(join("-", compact([local.prefix, "agw", local.suffix_unique])), 0, 80) + log_analytics_workspace = { + name = substr(join("-", compact([local.prefix, "log", local.suffix])), 0, 63) + name_unique = substr(join("-", compact([local.prefix, "log", local.suffix_unique])), 0, 63) dashes = true - slug = "agw" + slug = "log" + min_length = 4 + max_length = 63 + scope = "parent" + regex = "^[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]$" + } + machine_learning_workspace = { + name = substr(join("-", compact([local.prefix, "mlw", local.suffix])), 0, 260) + name_unique = substr(join("-", compact([local.prefix, "mlw", local.suffix_unique])), 0, 260) + dashes = true + slug = "mlw" + min_length = 1 + max_length = 260 + scope = "resourceGroup" + regex = "^[^<>*%:.?\\+\\/]+[^<>*%:.?\\+\\/ ]$" + } + managed_disk = { + name = substr(join("-", compact([local.prefix, "dsk", local.suffix])), 0, 80) + name_unique = substr(join("-", compact([local.prefix, "dsk", local.suffix_unique])), 0, 80) + dashes = true + slug = "dsk" min_length = 1 max_length = 80 scope = "resourceGroup" - regex = "^[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9_]$" + regex = "^[a-zA-Z0-9_]+$" } - express_route_gateway = { - name = substr(join("-", compact([local.prefix, "ergw", local.suffix])), 0, 80) - name_unique = substr(join("-", compact([local.prefix, "ergw", local.suffix_unique])), 0, 80) + maps_account = { + name = substr(join("-", compact([local.prefix, "map", local.suffix])), 0, 98) + name_unique = substr(join("-", compact([local.prefix, "map", local.suffix_unique])), 0, 98) dashes = true - slug = "ergw" + slug = "map" min_length = 1 - max_length = 80 + max_length = 98 scope = "resourceGroup" - regex = "^[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9_]$" + regex = "^[a-zA-Z0-9][a-zA-Z0-9-._]+$" } - express_route_circuit = { - name = substr(join("-", compact([local.prefix, "erc", local.suffix])), 0, 80) - name_unique = substr(join("-", compact([local.prefix, "erc", local.suffix_unique])), 0, 80) + mariadb_database = { + name = substr(join("-", compact([local.prefix, "mariadb", local.suffix])), 0, 63) + name_unique = substr(join("-", compact([local.prefix, "mariadb", local.suffix_unique])), 0, 63) dashes = true - slug = "erc" - min_length = 1 - max_length = 80 - scope = "resourceGroup" - regex = "^[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9_]$" - } - point_to_site_vpn_gateway = { - name = substr(join("-", compact([local.prefix, "vpngw", local.suffix])), 0, 80) - name_unique = substr(join("-", compact([local.prefix, "vpngw", local.suffix_unique])), 0, 80) - dashes = true - slug = "vpngw" - min_length = 1 - max_length = 80 - scope = "resourceGroup" - regex = "^[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9_]$" - } - template_deployment = { - name = substr(join("-", compact([local.prefix, "deploy", local.suffix])), 0, 64) - name_unique = substr(join("-", compact([local.prefix, "deploy", local.suffix_unique])), 0, 64) - dashes = true - slug = "deploy" - min_length = 1 - max_length = 64 - scope = "resourceGroup" - regex = "^[a-zA-Z0-9-._\\(\\)]+$" - } - sql_server = { - name = substr(join("-", compact([local.prefix, "sql", local.suffix])), 0, 63) - name_unique = substr(join("-", compact([local.prefix, "sql", local.suffix_unique])), 0, 63) - dashes = true - slug = "sql" + slug = "mariadb" min_length = 1 max_length = 63 - scope = "global" - regex = "^[a-z0-9][a-z0-9-]+[a-z0-9]$" + scope = "parent" + regex = "^[a-zA-Z0-9-_]+$" } - mssql_server = { - name = substr(join("-", compact([local.prefix, "sql", local.suffix])), 0, 63) - name_unique = substr(join("-", compact([local.prefix, "sql", local.suffix_unique])), 0, 63) + mariadb_firewall_rule = { + name = substr(join("-", compact([local.prefix, "mariafw", local.suffix])), 0, 128) + name_unique = substr(join("-", compact([local.prefix, "mariafw", local.suffix_unique])), 0, 128) dashes = true - slug = "sql" + slug = "mariafw" min_length = 1 + max_length = 128 + scope = "parent" + regex = "^[a-zA-Z0-9-_]+$" + } + mariadb_server = { + name = substr(join("-", compact([local.prefix, "maria", local.suffix])), 0, 63) + name_unique = substr(join("-", compact([local.prefix, "maria", local.suffix_unique])), 0, 63) + dashes = true + slug = "maria" + min_length = 3 max_length = 63 scope = "global" - regex = "^[a-z0-9][a-z0-9-]+[a-z0-9]$" + regex = "^[a-z0-9][a-zA-Z0-9-]+[a-z0-9]$" + } + mariadb_virtual_network_rule = { + name = substr(join("-", compact([local.prefix, "mariavn", local.suffix])), 0, 128) + name_unique = substr(join("-", compact([local.prefix, "mariavn", local.suffix_unique])), 0, 128) + dashes = true + slug = "mariavn" + min_length = 1 + max_length = 128 + scope = "parent" + regex = "^[a-zA-Z0-9-_]+$" } mssql_database = { name = substr(join("-", compact([local.prefix, "sqldb", local.suffix])), 0, 128) @@ -1566,16 +1286,6 @@ locals { scope = "parent" regex = "^[^<>*%:.?\\+\\/]+[^<>*%:.?\\+\\/ ]$" } - sql_elasticpool = { - name = substr(join("-", compact([local.prefix, "sqlep", local.suffix])), 0, 128) - name_unique = substr(join("-", compact([local.prefix, "sqlep", local.suffix_unique])), 0, 128) - dashes = true - slug = "sqlep" - min_length = 1 - max_length = 128 - scope = "parent" - regex = "^[^<>*%:.?\\+\\/]+[^<>*%:.?\\+\\/ ]$" - } mssql_elasticpool = { name = substr(join("-", compact([local.prefix, "sqlep", local.suffix])), 0, 128) name_unique = substr(join("-", compact([local.prefix, "sqlep", local.suffix_unique])), 0, 128) @@ -1586,76 +1296,76 @@ locals { scope = "parent" regex = "^[^<>*%:.?\\+\\/]+[^<>*%:.?\\+\\/ ]$" } - sql_failover_group = { - name = substr(join("-", compact([local.prefix, "sqlfg", local.suffix])), 0, 63) - name_unique = substr(join("-", compact([local.prefix, "sqlfg", local.suffix_unique])), 0, 63) + mssql_server = { + name = substr(join("-", compact([local.prefix, "sql", local.suffix])), 0, 63) + name_unique = substr(join("-", compact([local.prefix, "sql", local.suffix_unique])), 0, 63) dashes = true - slug = "sqlfg" + slug = "sql" min_length = 1 max_length = 63 scope = "global" regex = "^[a-z0-9][a-z0-9-]+[a-z0-9]$" } - sql_firewall_rule = { - name = substr(join("-", compact([local.prefix, "sqlfw", local.suffix])), 0, 128) - name_unique = substr(join("-", compact([local.prefix, "sqlfw", local.suffix_unique])), 0, 128) + mysql_database = { + name = substr(join("-", compact([local.prefix, "mysqldb", local.suffix])), 0, 63) + name_unique = substr(join("-", compact([local.prefix, "mysqldb", local.suffix_unique])), 0, 63) dashes = true - slug = "sqlfw" + slug = "mysqldb" + min_length = 1 + max_length = 63 + scope = "parent" + regex = "^[a-zA-Z0-9-_]+$" + } + mysql_firewall_rule = { + name = substr(join("-", compact([local.prefix, "mysqlfw", local.suffix])), 0, 128) + name_unique = substr(join("-", compact([local.prefix, "mysqlfw", local.suffix_unique])), 0, 128) + dashes = true + slug = "mysqlfw" min_length = 1 max_length = 128 scope = "parent" - regex = "^[^<>*%:?\\+\\/]+[^<>*%:.?\\+\\/]$" + regex = "^[a-zA-Z0-9-_]+$" } - log_analytics_workspace = { - name = substr(join("-", compact([local.prefix, "log", local.suffix])), 0, 63) - name_unique = substr(join("-", compact([local.prefix, "log", local.suffix_unique])), 0, 63) + mysql_server = { + name = substr(join("-", compact([local.prefix, "mysql", local.suffix])), 0, 63) + name_unique = substr(join("-", compact([local.prefix, "mysql", local.suffix_unique])), 0, 63) dashes = true - slug = "log" - min_length = 4 + slug = "mysql" + min_length = 3 max_length = 63 - scope = "parent" - regex = "^[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]$" + scope = "global" + regex = "^[a-z0-9][a-zA-Z0-9-]+[a-z0-9]$" } - service_fabric_cluster = { - name = substr(join("-", compact([local.prefix, "sf", local.suffix])), 0, 23) - name_unique = substr(join("-", compact([local.prefix, "sf", local.suffix_unique])), 0, 23) + mysql_virtual_network_rule = { + name = substr(join("-", compact([local.prefix, "mysqlvn", local.suffix])), 0, 128) + name_unique = substr(join("-", compact([local.prefix, "mysqlvn", local.suffix_unique])), 0, 128) dashes = true - slug = "sf" - min_length = 4 - max_length = 23 - scope = "region" - regex = "^[a-z][a-z0-9-]+[a-z0-9]$" - } - maps_account = { - name = substr(join("-", compact([local.prefix, "map", local.suffix])), 0, 98) - name_unique = substr(join("-", compact([local.prefix, "map", local.suffix_unique])), 0, 98) - dashes = true - slug = "map" + slug = "mysqlvn" min_length = 1 - max_length = 98 - scope = "resourceGroup" - regex = "^[a-zA-Z0-9][a-zA-Z0-9-._]+$" + max_length = 128 + scope = "parent" + regex = "^[a-zA-Z0-9-_]+$" } - network_watcher = { - name = substr(join("-", compact([local.prefix, "nw", local.suffix])), 0, 80) - name_unique = substr(join("-", compact([local.prefix, "nw", local.suffix_unique])), 0, 80) + network_ddos_protection_plan = { + name = substr(join("-", compact([local.prefix, "ddospp", local.suffix])), 0, 80) + name_unique = substr(join("-", compact([local.prefix, "ddospp", local.suffix_unique])), 0, 80) dashes = true - slug = "nw" + slug = "ddospp" + min_length = 1 + max_length = 80 + scope = "parent" + regex = "^[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9_]$" + } + network_interface = { + name = substr(join("-", compact([local.prefix, "nic", local.suffix])), 0, 80) + name_unique = substr(join("-", compact([local.prefix, "nic", local.suffix_unique])), 0, 80) + dashes = true + slug = "nic" min_length = 1 max_length = 80 scope = "resourceGroup" regex = "^[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9_]$" } - resource_group = { - name = substr(join("-", compact([local.prefix, "rg", local.suffix])), 0, 90) - name_unique = substr(join("-", compact([local.prefix, "rg", local.suffix_unique])), 0, 90) - dashes = true - slug = "rg" - min_length = 1 - max_length = 90 - scope = "subscription" - regex = "^[a-zA-Z0-9-._\\(\\)]+[a-zA-Z0-9-_\\(\\)]$" - } network_security_group = { name = substr(join("-", compact([local.prefix, "nsg", local.suffix])), 0, 80) name_unique = substr(join("-", compact([local.prefix, "nsg", local.suffix_unique])), 0, 80) @@ -1686,36 +1396,16 @@ locals { scope = "parent" regex = "^[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9_]$" } - application_security_group = { - name = substr(join("-", compact([local.prefix, "asg", local.suffix])), 0, 80) - name_unique = substr(join("-", compact([local.prefix, "asg", local.suffix_unique])), 0, 80) + network_watcher = { + name = substr(join("-", compact([local.prefix, "nw", local.suffix])), 0, 80) + name_unique = substr(join("-", compact([local.prefix, "nw", local.suffix_unique])), 0, 80) dashes = true - slug = "asg" + slug = "nw" min_length = 1 max_length = 80 scope = "resourceGroup" regex = "^[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9_]$" } - dns_zone = { - name = substr(join("-", compact([local.prefix, "dns", local.suffix])), 0, 63) - name_unique = substr(join("-", compact([local.prefix, "dns", local.suffix_unique])), 0, 63) - dashes = true - slug = "dns" - min_length = 1 - max_length = 63 - scope = "resourceGroup" - regex = "^[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9_]$" - } - private_dns_zone = { - name = substr(join("-", compact([local.prefix, "pdns", local.suffix])), 0, 63) - name_unique = substr(join("-", compact([local.prefix, "pdns", local.suffix_unique])), 0, 63) - dashes = true - slug = "pdns" - min_length = 1 - max_length = 63 - scope = "resourceGroup" - regex = "^[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9_]$" - } notification_hub = { name = substr(join("-", compact([local.prefix, "nh", local.suffix])), 0, 260) name_unique = substr(join("-", compact([local.prefix, "nh", local.suffix_unique])), 0, 260) @@ -1726,6 +1416,16 @@ locals { scope = "parent" regex = "^[a-zA-Z0-9][a-zA-Z0-9-._]+$" } + notification_hub_authorization_rule = { + name = substr(join("-", compact([local.prefix, "dnsrec", local.suffix])), 0, 256) + name_unique = substr(join("-", compact([local.prefix, "dnsrec", local.suffix_unique])), 0, 256) + dashes = true + slug = "dnsrec" + min_length = 1 + max_length = 256 + scope = "parent" + regex = "^[a-zA-Z0-9][a-zA-Z0-9-._]+$" + } notification_hub_namespace = { name = substr(join("-", compact([local.prefix, "dnsrec", local.suffix])), 0, 50) name_unique = substr(join("-", compact([local.prefix, "dnsrec", local.suffix_unique])), 0, 50) @@ -1736,15 +1436,315 @@ locals { scope = "global" regex = "^[a-zA-Z][a-zA-Z0-9-]+[a-zA-Z0-9]$" } - notification_hub_authorization_rule = { - name = substr(join("-", compact([local.prefix, "dnsrec", local.suffix])), 0, 256) - name_unique = substr(join("-", compact([local.prefix, "dnsrec", local.suffix_unique])), 0, 256) + point_to_site_vpn_gateway = { + name = substr(join("-", compact([local.prefix, "vpngw", local.suffix])), 0, 80) + name_unique = substr(join("-", compact([local.prefix, "vpngw", local.suffix_unique])), 0, 80) dashes = true - slug = "dnsrec" + slug = "vpngw" + min_length = 1 + max_length = 80 + scope = "resourceGroup" + regex = "^[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9_]$" + } + postgresql_database = { + name = substr(join("-", compact([local.prefix, "psqldb", local.suffix])), 0, 63) + name_unique = substr(join("-", compact([local.prefix, "psqldb", local.suffix_unique])), 0, 63) + dashes = true + slug = "psqldb" + min_length = 1 + max_length = 63 + scope = "parent" + regex = "^[a-zA-Z0-9-_]+$" + } + postgresql_firewall_rule = { + name = substr(join("-", compact([local.prefix, "psqlfw", local.suffix])), 0, 128) + name_unique = substr(join("-", compact([local.prefix, "psqlfw", local.suffix_unique])), 0, 128) + dashes = true + slug = "psqlfw" + min_length = 1 + max_length = 128 + scope = "parent" + regex = "^[a-zA-Z0-9-_]+$" + } + postgresql_server = { + name = substr(join("-", compact([local.prefix, "psql", local.suffix])), 0, 63) + name_unique = substr(join("-", compact([local.prefix, "psql", local.suffix_unique])), 0, 63) + dashes = true + slug = "psql" + min_length = 3 + max_length = 63 + scope = "global" + regex = "^[a-z0-9][a-zA-Z0-9-]+[a-z0-9]$" + } + postgresql_virtual_network_rule = { + name = substr(join("-", compact([local.prefix, "psqlvn", local.suffix])), 0, 128) + name_unique = substr(join("-", compact([local.prefix, "psqlvn", local.suffix_unique])), 0, 128) + dashes = true + slug = "psqlvn" + min_length = 1 + max_length = 128 + scope = "parent" + regex = "^[a-zA-Z0-9-_]+$" + } + powerbi_embedded = { + name = substr(join("-", compact([local.prefix, "pbi", local.suffix])), 0, 63) + name_unique = substr(join("-", compact([local.prefix, "pbi", local.suffix_unique])), 0, 63) + dashes = true + slug = "pbi" + min_length = 3 + max_length = 63 + scope = "region" + regex = "^[a-zA-Z0-9][a-zA-Z0-9-]+$" + } + private_dns_a_record = { + name = substr(join("-", compact([local.prefix, "pdnsrec", local.suffix])), 0, 80) + name_unique = substr(join("-", compact([local.prefix, "pdnsrec", local.suffix_unique])), 0, 80) + dashes = true + slug = "pdnsrec" + min_length = 1 + max_length = 80 + scope = "parent" + regex = "^[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9_]$" + } + private_dns_aaaa_record = { + name = substr(join("-", compact([local.prefix, "pdnsrec", local.suffix])), 0, 80) + name_unique = substr(join("-", compact([local.prefix, "pdnsrec", local.suffix_unique])), 0, 80) + dashes = true + slug = "pdnsrec" + min_length = 1 + max_length = 80 + scope = "parent" + regex = "^[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9_]$" + } + private_dns_cname_record = { + name = substr(join("-", compact([local.prefix, "pdnsrec", local.suffix])), 0, 80) + name_unique = substr(join("-", compact([local.prefix, "pdnsrec", local.suffix_unique])), 0, 80) + dashes = true + slug = "pdnsrec" + min_length = 1 + max_length = 80 + scope = "parent" + regex = "^[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9_]$" + } + private_dns_mx_record = { + name = substr(join("-", compact([local.prefix, "pdnsrec", local.suffix])), 0, 80) + name_unique = substr(join("-", compact([local.prefix, "pdnsrec", local.suffix_unique])), 0, 80) + dashes = true + slug = "pdnsrec" + min_length = 1 + max_length = 80 + scope = "parent" + regex = "^[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9_]$" + } + private_dns_ptr_record = { + name = substr(join("-", compact([local.prefix, "pdnsrec", local.suffix])), 0, 80) + name_unique = substr(join("-", compact([local.prefix, "pdnsrec", local.suffix_unique])), 0, 80) + dashes = true + slug = "pdnsrec" + min_length = 1 + max_length = 80 + scope = "parent" + regex = "^[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9_]$" + } + private_dns_srv_record = { + name = substr(join("-", compact([local.prefix, "pdnsrec", local.suffix])), 0, 80) + name_unique = substr(join("-", compact([local.prefix, "pdnsrec", local.suffix_unique])), 0, 80) + dashes = true + slug = "pdnsrec" + min_length = 1 + max_length = 80 + scope = "parent" + regex = "^[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9_]$" + } + private_dns_txt_record = { + name = substr(join("-", compact([local.prefix, "pdnsrec", local.suffix])), 0, 80) + name_unique = substr(join("-", compact([local.prefix, "pdnsrec", local.suffix_unique])), 0, 80) + dashes = true + slug = "pdnsrec" + min_length = 1 + max_length = 80 + scope = "parent" + regex = "^[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9_]$" + } + private_dns_zone = { + name = substr(join("-", compact([local.prefix, "pdns", local.suffix])), 0, 63) + name_unique = substr(join("-", compact([local.prefix, "pdns", local.suffix_unique])), 0, 63) + dashes = true + slug = "pdns" + min_length = 1 + max_length = 63 + scope = "resourceGroup" + regex = "^[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9_]$" + } + private_dns_zone_group = { + name = substr(join("-", compact([local.prefix, "pdnszg", local.suffix])), 0, 80) + name_unique = substr(join("-", compact([local.prefix, "pdnszg", local.suffix_unique])), 0, 80) + dashes = true + slug = "pdnszg" + min_length = 1 + max_length = 80 + scope = "resourceGroup" + regex = "^[a-zA-Z0-9][a-zA-Z0-9\\-\\._]+[a-zA-Z0-9_]$" + } + private_endpoint = { + name = substr(join("-", compact([local.prefix, "pe", local.suffix])), 0, 80) + name_unique = substr(join("-", compact([local.prefix, "pe", local.suffix_unique])), 0, 80) + dashes = true + slug = "pe" + min_length = 1 + max_length = 80 + scope = "resourceGroup" + regex = "^[a-zA-Z0-9][a-zA-Z0-9\\-\\._]+[a-zA-Z0-9_]$" + } + private_link_service = { + name = substr(join("-", compact([local.prefix, "pls", local.suffix])), 0, 80) + name_unique = substr(join("-", compact([local.prefix, "pls", local.suffix_unique])), 0, 80) + dashes = true + slug = "pls" + min_length = 1 + max_length = 80 + scope = "resourceGroup" + regex = "^[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9_]$" + } + private_service_connection = { + name = substr(join("-", compact([local.prefix, "psc", local.suffix])), 0, 80) + name_unique = substr(join("-", compact([local.prefix, "psc", local.suffix_unique])), 0, 80) + dashes = true + slug = "psc" + min_length = 1 + max_length = 80 + scope = "resourceGroup" + regex = "^[a-zA-Z0-9][a-zA-Z0-9\\-\\._]+[a-zA-Z0-9_]$" + } + proximity_placement_group = { + name = substr(join("-", compact([local.prefix, "ppg", local.suffix])), 0, 80) + name_unique = substr(join("-", compact([local.prefix, "ppg", local.suffix_unique])), 0, 80) + dashes = true + slug = "ppg" + min_length = 1 + max_length = 80 + scope = "resourceGroup" + regex = "^[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9_]$" + } + public_ip = { + name = substr(join("-", compact([local.prefix, "pip", local.suffix])), 0, 80) + name_unique = substr(join("-", compact([local.prefix, "pip", local.suffix_unique])), 0, 80) + dashes = true + slug = "pip" + min_length = 1 + max_length = 80 + scope = "parent" + regex = "^[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9_]$" + } + public_ip_prefix = { + name = substr(join("-", compact([local.prefix, "pippf", local.suffix])), 0, 80) + name_unique = substr(join("-", compact([local.prefix, "pippf", local.suffix_unique])), 0, 80) + dashes = true + slug = "pippf" + min_length = 1 + max_length = 80 + scope = "parent" + regex = "^[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9_]$" + } + redis_cache = { + name = substr(join("-", compact([local.prefix, "redis", local.suffix])), 0, 63) + name_unique = substr(join("-", compact([local.prefix, "redis", local.suffix_unique])), 0, 63) + dashes = true + slug = "redis" + min_length = 1 + max_length = 63 + scope = "global" + regex = "^[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]$" + } + redis_firewall_rule = { + name = substr(join("", compact([local.prefix_safe, "redisfw", local.suffix_safe])), 0, 256) + name_unique = substr(join("", compact([local.prefix_safe, "redisfw", local.suffix_unique_safe])), 0, 256) + dashes = false + slug = "redisfw" min_length = 1 max_length = 256 scope = "parent" - regex = "^[a-zA-Z0-9][a-zA-Z0-9-._]+$" + regex = "^[a-zA-Z0-9]+$" + } + relay_hybrid_connection = { + name = substr(join("-", compact([local.prefix, "rlhc", local.suffix])), 0, 260) + name_unique = substr(join("-", compact([local.prefix, "rlhc", local.suffix_unique])), 0, 260) + dashes = true + slug = "rlhc" + min_length = 1 + max_length = 260 + scope = "parent" + regex = "^[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9]$" + } + relay_namespace = { + name = substr(join("-", compact([local.prefix, "rln", local.suffix])), 0, 50) + name_unique = substr(join("-", compact([local.prefix, "rln", local.suffix_unique])), 0, 50) + dashes = true + slug = "rln" + min_length = 6 + max_length = 50 + scope = "global" + regex = "^[a-zA-Z][a-zA-Z0-9-]+[a-zA-Z0-9]$" + } + resource_group = { + name = substr(join("-", compact([local.prefix, "rg", local.suffix])), 0, 90) + name_unique = substr(join("-", compact([local.prefix, "rg", local.suffix_unique])), 0, 90) + dashes = true + slug = "rg" + min_length = 1 + max_length = 90 + scope = "subscription" + regex = "^[a-zA-Z0-9-._\\(\\)]+[a-zA-Z0-9-_\\(\\)]$" + } + role_assignment = { + name = substr(join("-", compact([local.prefix, "ra", local.suffix])), 0, 64) + name_unique = substr(join("-", compact([local.prefix, "ra", local.suffix_unique])), 0, 64) + dashes = true + slug = "ra" + min_length = 1 + max_length = 64 + scope = "assignment" + regex = "^[^%]+[^ %.]$" + } + role_definition = { + name = substr(join("-", compact([local.prefix, "rd", local.suffix])), 0, 64) + name_unique = substr(join("-", compact([local.prefix, "rd", local.suffix_unique])), 0, 64) + dashes = true + slug = "rd" + min_length = 1 + max_length = 64 + scope = "definition" + regex = "^[^%]+[^ %.]$" + } + route = { + name = substr(join("-", compact([local.prefix, "rt", local.suffix])), 0, 80) + name_unique = substr(join("-", compact([local.prefix, "rt", local.suffix_unique])), 0, 80) + dashes = true + slug = "rt" + min_length = 1 + max_length = 80 + scope = "parent" + regex = "^[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9_]$" + } + route_table = { + name = substr(join("-", compact([local.prefix, "route", local.suffix])), 0, 80) + name_unique = substr(join("-", compact([local.prefix, "route", local.suffix_unique])), 0, 80) + dashes = true + slug = "route" + min_length = 1 + max_length = 80 + scope = "resourceGroup" + regex = "^[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9_]$" + } + service_fabric_cluster = { + name = substr(join("-", compact([local.prefix, "sf", local.suffix])), 0, 23) + name_unique = substr(join("-", compact([local.prefix, "sf", local.suffix_unique])), 0, 23) + dashes = true + slug = "sf" + min_length = 4 + max_length = 23 + scope = "region" + regex = "^[a-z][a-z0-9-]+[a-z0-9]$" } servicebus_namespace = { name = substr(join("-", compact([local.prefix, "sb", local.suffix])), 0, 50) @@ -1826,25 +1826,25 @@ locals { scope = "parent" regex = "^[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9]$" } - powerbi_embedded = { - name = substr(join("-", compact([local.prefix, "pbi", local.suffix])), 0, 63) - name_unique = substr(join("-", compact([local.prefix, "pbi", local.suffix_unique])), 0, 63) + shared_image = { + name = substr(join("-", compact([local.prefix, "si", local.suffix])), 0, 80) + name_unique = substr(join("-", compact([local.prefix, "si", local.suffix_unique])), 0, 80) dashes = true - slug = "pbi" - min_length = 3 - max_length = 63 - scope = "region" - regex = "^[a-zA-Z0-9][a-zA-Z0-9-]+$" - } - dashboard = { - name = substr(join("-", compact([local.prefix, "dsb", local.suffix])), 0, 160) - name_unique = substr(join("-", compact([local.prefix, "dsb", local.suffix_unique])), 0, 160) - dashes = true - slug = "dsb" - min_length = 3 - max_length = 160 + slug = "si" + min_length = 1 + max_length = 80 scope = "parent" - regex = "^[a-zA-Z0-9-]+$" + regex = "^[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9]$" + } + shared_image_gallery = { + name = substr(join("", compact([local.prefix_safe, "sig", local.suffix_safe])), 0, 80) + name_unique = substr(join("", compact([local.prefix_safe, "sig", local.suffix_unique_safe])), 0, 80) + dashes = false + slug = "sig" + min_length = 1 + max_length = 80 + scope = "resourceGroup" + regex = "^[a-zA-Z0-9][a-zA-Z0-9.]+[a-zA-Z0-9]$" } signalr_service = { name = substr(join("-", compact([local.prefix, "sgnlr", local.suffix])), 0, 63) @@ -1856,275 +1856,285 @@ locals { scope = "global" regex = "^[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]$" } - eventgrid_domain = { - name = substr(join("-", compact([local.prefix, "egd", local.suffix])), 0, 50) - name_unique = substr(join("-", compact([local.prefix, "egd", local.suffix_unique])), 0, 50) + snapshots = { + name = substr(join("-", compact([local.prefix, "snap", local.suffix])), 0, 80) + name_unique = substr(join("-", compact([local.prefix, "snap", local.suffix_unique])), 0, 80) dashes = true - slug = "egd" - min_length = 3 - max_length = 50 - scope = "resourceGroup" - regex = "^[a-zA-Z0-9-]+$" - } - eventgrid_domain_topic = { - name = substr(join("-", compact([local.prefix, "egdt", local.suffix])), 0, 50) - name_unique = substr(join("-", compact([local.prefix, "egdt", local.suffix_unique])), 0, 50) - dashes = true - slug = "egdt" - min_length = 3 - max_length = 50 + slug = "snap" + min_length = 1 + max_length = 80 scope = "parent" - regex = "^[a-zA-Z0-9-]+$" + regex = "^[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9_]$" } - eventgrid_event_subscription = { - name = substr(join("-", compact([local.prefix, "egs", local.suffix])), 0, 64) - name_unique = substr(join("-", compact([local.prefix, "egs", local.suffix_unique])), 0, 64) + sql_elasticpool = { + name = substr(join("-", compact([local.prefix, "sqlep", local.suffix])), 0, 128) + name_unique = substr(join("-", compact([local.prefix, "sqlep", local.suffix_unique])), 0, 128) dashes = true - slug = "egs" + slug = "sqlep" + min_length = 1 + max_length = 128 + scope = "parent" + regex = "^[^<>*%:.?\\+\\/]+[^<>*%:.?\\+\\/ ]$" + } + sql_failover_group = { + name = substr(join("-", compact([local.prefix, "sqlfg", local.suffix])), 0, 63) + name_unique = substr(join("-", compact([local.prefix, "sqlfg", local.suffix_unique])), 0, 63) + dashes = true + slug = "sqlfg" + min_length = 1 + max_length = 63 + scope = "global" + regex = "^[a-z0-9][a-z0-9-]+[a-z0-9]$" + } + sql_firewall_rule = { + name = substr(join("-", compact([local.prefix, "sqlfw", local.suffix])), 0, 128) + name_unique = substr(join("-", compact([local.prefix, "sqlfw", local.suffix_unique])), 0, 128) + dashes = true + slug = "sqlfw" + min_length = 1 + max_length = 128 + scope = "parent" + regex = "^[^<>*%:?\\+\\/]+[^<>*%:.?\\+\\/]$" + } + sql_server = { + name = substr(join("-", compact([local.prefix, "sql", local.suffix])), 0, 63) + name_unique = substr(join("-", compact([local.prefix, "sql", local.suffix_unique])), 0, 63) + dashes = true + slug = "sql" + min_length = 1 + max_length = 63 + scope = "global" + regex = "^[a-z0-9][a-z0-9-]+[a-z0-9]$" + } + storage_account = { + name = substr(join("", compact([local.prefix_safe, "st", local.suffix_safe])), 0, 24) + name_unique = substr(join("", compact([local.prefix_safe, "st", local.suffix_unique_safe])), 0, 24) + dashes = false + slug = "st" min_length = 3 + max_length = 24 + scope = "global" + regex = "^[a-z0-9]+$" + } + storage_blob = { + name = substr(join("-", compact([local.prefix, "blob", local.suffix])), 0, 1024) + name_unique = substr(join("-", compact([local.prefix, "blob", local.suffix_unique])), 0, 1024) + dashes = true + slug = "blob" + min_length = 1 + max_length = 1024 + scope = "parent" + regex = "^[^\\s\\/$#&]+$" + } + storage_container = { + name = substr(join("-", compact([local.prefix, "stct", local.suffix])), 0, 63) + name_unique = substr(join("-", compact([local.prefix, "stct", local.suffix_unique])), 0, 63) + dashes = true + slug = "stct" + min_length = 3 + max_length = 63 + scope = "parent" + regex = "^[a-z0-9][a-z0-9-]+$" + } + storage_data_lake_gen2_filesystem = { + name = substr(join("-", compact([local.prefix, "stdl", local.suffix])), 0, 63) + name_unique = substr(join("-", compact([local.prefix, "stdl", local.suffix_unique])), 0, 63) + dashes = true + slug = "stdl" + min_length = 3 + max_length = 63 + scope = "parent" + regex = "^[a-z0-9][a-z0-9-]+[a-z0-9]$" + } + storage_queue = { + name = substr(join("-", compact([local.prefix, "stq", local.suffix])), 0, 63) + name_unique = substr(join("-", compact([local.prefix, "stq", local.suffix_unique])), 0, 63) + dashes = true + slug = "stq" + min_length = 3 + max_length = 63 + scope = "parent" + regex = "^[a-z0-9][a-z0-9-]+[a-z0-9]$" + } + storage_share = { + name = substr(join("-", compact([local.prefix, "sts", local.suffix])), 0, 63) + name_unique = substr(join("-", compact([local.prefix, "sts", local.suffix_unique])), 0, 63) + dashes = true + slug = "sts" + min_length = 3 + max_length = 63 + scope = "parent" + regex = "^[a-z0-9][a-z0-9-]+[a-z0-9]$" + } + storage_share_directory = { + name = substr(join("-", compact([local.prefix, "sts", local.suffix])), 0, 63) + name_unique = substr(join("-", compact([local.prefix, "sts", local.suffix_unique])), 0, 63) + dashes = true + slug = "sts" + min_length = 3 + max_length = 63 + scope = "parent" + regex = "^[a-z0-9][a-z0-9-]+[a-z0-9]$" + } + storage_table = { + name = substr(join("-", compact([local.prefix, "stt", local.suffix])), 0, 63) + name_unique = substr(join("-", compact([local.prefix, "stt", local.suffix_unique])), 0, 63) + dashes = true + slug = "stt" + min_length = 3 + max_length = 63 + scope = "parent" + regex = "^[a-z0-9][a-z0-9-]+[a-z0-9]$" + } + stream_analytics_function_javascript_udf = { + name = substr(join("-", compact([local.prefix, "asafunc", local.suffix])), 0, 63) + name_unique = substr(join("-", compact([local.prefix, "asafunc", local.suffix_unique])), 0, 63) + dashes = true + slug = "asafunc" + min_length = 3 + max_length = 63 + scope = "parent" + regex = "^[a-zA-Z0-9-_]+$" + } + stream_analytics_job = { + name = substr(join("-", compact([local.prefix, "asa", local.suffix])), 0, 63) + name_unique = substr(join("-", compact([local.prefix, "asa", local.suffix_unique])), 0, 63) + dashes = true + slug = "asa" + min_length = 3 + max_length = 63 + scope = "resourceGroup" + regex = "^[a-zA-Z0-9-_]+$" + } + stream_analytics_output_blob = { + name = substr(join("-", compact([local.prefix, "asaoblob", local.suffix])), 0, 63) + name_unique = substr(join("-", compact([local.prefix, "asaoblob", local.suffix_unique])), 0, 63) + dashes = true + slug = "asaoblob" + min_length = 3 + max_length = 63 + scope = "parent" + regex = "^[a-zA-Z0-9-_]+$" + } + stream_analytics_output_eventhub = { + name = substr(join("-", compact([local.prefix, "asaoeh", local.suffix])), 0, 63) + name_unique = substr(join("-", compact([local.prefix, "asaoeh", local.suffix_unique])), 0, 63) + dashes = true + slug = "asaoeh" + min_length = 3 + max_length = 63 + scope = "parent" + regex = "^[a-zA-Z0-9-_]+$" + } + stream_analytics_output_mssql = { + name = substr(join("-", compact([local.prefix, "asaomssql", local.suffix])), 0, 63) + name_unique = substr(join("-", compact([local.prefix, "asaomssql", local.suffix_unique])), 0, 63) + dashes = true + slug = "asaomssql" + min_length = 3 + max_length = 63 + scope = "parent" + regex = "^[a-zA-Z0-9-_]+$" + } + stream_analytics_output_servicebus_queue = { + name = substr(join("-", compact([local.prefix, "asaosbq", local.suffix])), 0, 63) + name_unique = substr(join("-", compact([local.prefix, "asaosbq", local.suffix_unique])), 0, 63) + dashes = true + slug = "asaosbq" + min_length = 3 + max_length = 63 + scope = "parent" + regex = "^[a-zA-Z0-9-_]+$" + } + stream_analytics_output_servicebus_topic = { + name = substr(join("-", compact([local.prefix, "asaosbt", local.suffix])), 0, 63) + name_unique = substr(join("-", compact([local.prefix, "asaosbt", local.suffix_unique])), 0, 63) + dashes = true + slug = "asaosbt" + min_length = 3 + max_length = 63 + scope = "parent" + regex = "^[a-zA-Z0-9-_]+$" + } + stream_analytics_reference_input_blob = { + name = substr(join("-", compact([local.prefix, "asarblob", local.suffix])), 0, 63) + name_unique = substr(join("-", compact([local.prefix, "asarblob", local.suffix_unique])), 0, 63) + dashes = true + slug = "asarblob" + min_length = 3 + max_length = 63 + scope = "parent" + regex = "^[a-zA-Z0-9-_]+$" + } + stream_analytics_stream_input_blob = { + name = substr(join("-", compact([local.prefix, "asaiblob", local.suffix])), 0, 63) + name_unique = substr(join("-", compact([local.prefix, "asaiblob", local.suffix_unique])), 0, 63) + dashes = true + slug = "asaiblob" + min_length = 3 + max_length = 63 + scope = "parent" + regex = "^[a-zA-Z0-9-_]+$" + } + stream_analytics_stream_input_eventhub = { + name = substr(join("-", compact([local.prefix, "asaieh", local.suffix])), 0, 63) + name_unique = substr(join("-", compact([local.prefix, "asaieh", local.suffix_unique])), 0, 63) + dashes = true + slug = "asaieh" + min_length = 3 + max_length = 63 + scope = "parent" + regex = "^[a-zA-Z0-9-_]+$" + } + stream_analytics_stream_input_iothub = { + name = substr(join("-", compact([local.prefix, "asaiiot", local.suffix])), 0, 63) + name_unique = substr(join("-", compact([local.prefix, "asaiiot", local.suffix_unique])), 0, 63) + dashes = true + slug = "asaiiot" + min_length = 3 + max_length = 63 + scope = "parent" + regex = "^[a-zA-Z0-9-_]+$" + } + subnet = { + name = substr(join("-", compact([local.prefix, "snet", local.suffix])), 0, 80) + name_unique = substr(join("-", compact([local.prefix, "snet", local.suffix_unique])), 0, 80) + dashes = true + slug = "snet" + min_length = 1 + max_length = 80 + scope = "parent" + regex = "^[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9_]$" + } + template_deployment = { + name = substr(join("-", compact([local.prefix, "deploy", local.suffix])), 0, 64) + name_unique = substr(join("-", compact([local.prefix, "deploy", local.suffix_unique])), 0, 64) + dashes = true + slug = "deploy" + min_length = 1 max_length = 64 scope = "resourceGroup" - regex = "^[a-zA-Z0-9-]+$" + regex = "^[a-zA-Z0-9-._\\(\\)]+$" } - eventgrid_topic = { - name = substr(join("-", compact([local.prefix, "egt", local.suffix])), 0, 50) - name_unique = substr(join("-", compact([local.prefix, "egt", local.suffix_unique])), 0, 50) + traffic_manager_profile = { + name = substr(join("-", compact([local.prefix, "traf", local.suffix])), 0, 63) + name_unique = substr(join("-", compact([local.prefix, "traf", local.suffix_unique])), 0, 63) dashes = true - slug = "egt" - min_length = 3 - max_length = 50 - scope = "resourceGroup" - regex = "^[a-zA-Z0-9-]+$" - } - relay_namespace = { - name = substr(join("-", compact([local.prefix, "rln", local.suffix])), 0, 50) - name_unique = substr(join("-", compact([local.prefix, "rln", local.suffix_unique])), 0, 50) - dashes = true - slug = "rln" - min_length = 6 - max_length = 50 + slug = "traf" + min_length = 1 + max_length = 63 scope = "global" - regex = "^[a-zA-Z][a-zA-Z0-9-]+[a-zA-Z0-9]$" + regex = "^[a-zA-Z0-9][a-zA-Z0-9-.]+[a-zA-Z0-9_]$" } - relay_hybrid_connection = { - name = substr(join("-", compact([local.prefix, "rlhc", local.suffix])), 0, 260) - name_unique = substr(join("-", compact([local.prefix, "rlhc", local.suffix_unique])), 0, 260) + virtual_machine = { + name = substr(join("-", compact([local.prefix, "vm", local.suffix])), 0, 15) + name_unique = substr(join("-", compact([local.prefix, "vm", local.suffix_unique])), 0, 15) dashes = true - slug = "rlhc" + slug = "vm" min_length = 1 - max_length = 260 - scope = "parent" - regex = "^[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9]$" - } - private_endpoint = { - name = substr(join("-", compact([local.prefix, "pe", local.suffix])), 0, 80) - name_unique = substr(join("-", compact([local.prefix, "pe", local.suffix_unique])), 0, 80) - dashes = true - slug = "pe" - min_length = 1 - max_length = 80 + max_length = 15 scope = "resourceGroup" - regex = "^[a-zA-Z0-9][a-zA-Z0-9\\-\\._]+[a-zA-Z0-9_]$" - } - private_service_connection = { - name = substr(join("-", compact([local.prefix, "psc", local.suffix])), 0, 80) - name_unique = substr(join("-", compact([local.prefix, "psc", local.suffix_unique])), 0, 80) - dashes = true - slug = "psc" - min_length = 1 - max_length = 80 - scope = "resourceGroup" - regex = "^[a-zA-Z0-9][a-zA-Z0-9\\-\\._]+[a-zA-Z0-9_]$" - } - firewall_ip_configuration = { - name = substr(join("-", compact([local.prefix, "fwipconf", local.suffix])), 0, 80) - name_unique = substr(join("-", compact([local.prefix, "fwipconf", local.suffix_unique])), 0, 80) - dashes = true - slug = "fwipconf" - min_length = 1 - max_length = 80 - scope = "resourceGroup" - regex = "^[a-zA-Z0-9][a-zA-Z0-9\\-\\._]+[a-zA-Z0-9_]$" - } - firewall_application_rule_collection = { - name = substr(join("-", compact([local.prefix, "fwapp", local.suffix])), 0, 80) - name_unique = substr(join("-", compact([local.prefix, "fwapp", local.suffix_unique])), 0, 80) - dashes = true - slug = "fwapp" - min_length = 1 - max_length = 80 - scope = "parent" - regex = "^[a-zA-Z0-9][a-zA-Z0-9\\-\\._]+[a-zA-Z0-9_]$" - } - firewall_nat_rule_collection = { - name = substr(join("-", compact([local.prefix, "fwnatrc", local.suffix])), 0, 80) - name_unique = substr(join("-", compact([local.prefix, "fwnatrc", local.suffix_unique])), 0, 80) - dashes = true - slug = "fwnatrc" - min_length = 1 - max_length = 80 - scope = "parent" - regex = "^[a-zA-Z0-9][a-zA-Z0-9\\-\\._]+[a-zA-Z0-9_]$" - } - firewall_network_rule_collection = { - name = substr(join("-", compact([local.prefix, "fwnetrc", local.suffix])), 0, 80) - name_unique = substr(join("-", compact([local.prefix, "fwnetrc", local.suffix_unique])), 0, 80) - dashes = true - slug = "fwnetrc" - min_length = 1 - max_length = 80 - scope = "parent" - regex = "^[a-zA-Z0-9][a-zA-Z0-9\\-\\._]+[a-zA-Z0-9_]$" - } - dns_a_record = { - name = substr(join("-", compact([local.prefix, "dnsrec", local.suffix])), 0, 80) - name_unique = substr(join("-", compact([local.prefix, "dnsrec", local.suffix_unique])), 0, 80) - dashes = true - slug = "dnsrec" - min_length = 1 - max_length = 80 - scope = "parent" - regex = "^[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9_]$" - } - dns_aaaa_record = { - name = substr(join("-", compact([local.prefix, "dnsrec", local.suffix])), 0, 80) - name_unique = substr(join("-", compact([local.prefix, "dnsrec", local.suffix_unique])), 0, 80) - dashes = true - slug = "dnsrec" - min_length = 1 - max_length = 80 - scope = "parent" - regex = "^[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9_]$" - } - dns_caa_record = { - name = substr(join("-", compact([local.prefix, "dnsrec", local.suffix])), 0, 80) - name_unique = substr(join("-", compact([local.prefix, "dnsrec", local.suffix_unique])), 0, 80) - dashes = true - slug = "dnsrec" - min_length = 1 - max_length = 80 - scope = "parent" - regex = "^[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9_]$" - } - dns_cname_record = { - name = substr(join("-", compact([local.prefix, "dnsrec", local.suffix])), 0, 80) - name_unique = substr(join("-", compact([local.prefix, "dnsrec", local.suffix_unique])), 0, 80) - dashes = true - slug = "dnsrec" - min_length = 1 - max_length = 80 - scope = "parent" - regex = "^[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9_]$" - } - dns_mx_record = { - name = substr(join("-", compact([local.prefix, "dnsrec", local.suffix])), 0, 80) - name_unique = substr(join("-", compact([local.prefix, "dnsrec", local.suffix_unique])), 0, 80) - dashes = true - slug = "dnsrec" - min_length = 1 - max_length = 80 - scope = "parent" - regex = "^[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9_]$" - } - dns_ns_record = { - name = substr(join("-", compact([local.prefix, "dnsrec", local.suffix])), 0, 80) - name_unique = substr(join("-", compact([local.prefix, "dnsrec", local.suffix_unique])), 0, 80) - dashes = true - slug = "dnsrec" - min_length = 1 - max_length = 80 - scope = "parent" - regex = "^[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9_]$" - } - dns_ptr_record = { - name = substr(join("-", compact([local.prefix, "dnsrec", local.suffix])), 0, 80) - name_unique = substr(join("-", compact([local.prefix, "dnsrec", local.suffix_unique])), 0, 80) - dashes = true - slug = "dnsrec" - min_length = 1 - max_length = 80 - scope = "parent" - regex = "^[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9_]$" - } - dns_txt_record = { - name = substr(join("-", compact([local.prefix, "dnsrec", local.suffix])), 0, 80) - name_unique = substr(join("-", compact([local.prefix, "dnsrec", local.suffix_unique])), 0, 80) - dashes = true - slug = "dnsrec" - min_length = 1 - max_length = 80 - scope = "parent" - regex = "^[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9_]$" - } - private_dns_a_record = { - name = substr(join("-", compact([local.prefix, "pdnsrec", local.suffix])), 0, 80) - name_unique = substr(join("-", compact([local.prefix, "pdnsrec", local.suffix_unique])), 0, 80) - dashes = true - slug = "pdnsrec" - min_length = 1 - max_length = 80 - scope = "parent" - regex = "^[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9_]$" - } - private_dns_aaaa_record = { - name = substr(join("-", compact([local.prefix, "pdnsrec", local.suffix])), 0, 80) - name_unique = substr(join("-", compact([local.prefix, "pdnsrec", local.suffix_unique])), 0, 80) - dashes = true - slug = "pdnsrec" - min_length = 1 - max_length = 80 - scope = "parent" - regex = "^[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9_]$" - } - private_dns_cname_record = { - name = substr(join("-", compact([local.prefix, "pdnsrec", local.suffix])), 0, 80) - name_unique = substr(join("-", compact([local.prefix, "pdnsrec", local.suffix_unique])), 0, 80) - dashes = true - slug = "pdnsrec" - min_length = 1 - max_length = 80 - scope = "parent" - regex = "^[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9_]$" - } - private_dns_mx_record = { - name = substr(join("-", compact([local.prefix, "pdnsrec", local.suffix])), 0, 80) - name_unique = substr(join("-", compact([local.prefix, "pdnsrec", local.suffix_unique])), 0, 80) - dashes = true - slug = "pdnsrec" - min_length = 1 - max_length = 80 - scope = "parent" - regex = "^[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9_]$" - } - private_dns_ptr_record = { - name = substr(join("-", compact([local.prefix, "pdnsrec", local.suffix])), 0, 80) - name_unique = substr(join("-", compact([local.prefix, "pdnsrec", local.suffix_unique])), 0, 80) - dashes = true - slug = "pdnsrec" - min_length = 1 - max_length = 80 - scope = "parent" - regex = "^[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9_]$" - } - private_dns_srv_record = { - name = substr(join("-", compact([local.prefix, "pdnsrec", local.suffix])), 0, 80) - name_unique = substr(join("-", compact([local.prefix, "pdnsrec", local.suffix_unique])), 0, 80) - dashes = true - slug = "pdnsrec" - min_length = 1 - max_length = 80 - scope = "parent" - regex = "^[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9_]$" - } - private_dns_txt_record = { - name = substr(join("-", compact([local.prefix, "pdnsrec", local.suffix])), 0, 80) - name_unique = substr(join("-", compact([local.prefix, "pdnsrec", local.suffix_unique])), 0, 80) - dashes = true - slug = "pdnsrec" - min_length = 1 - max_length = 80 - scope = "parent" - regex = "^[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9_]$" + regex = "^[^\\/\"\\[\\]:|<>+=;,?*@&_][^\\/\"\\[\\]:|<>+=;,?*@&]+[^\\/\"\\[\\]:|<>+=;,?*@&.-]$" } virtual_machine_extension = { name = substr(join("-", compact([local.prefix, "vmx", local.suffix])), 0, 80) @@ -2136,6 +2146,16 @@ locals { scope = "parent" regex = "^[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9_]$" } + virtual_machine_scale_set = { + name = substr(join("-", compact([local.prefix, "vmss", local.suffix])), 0, 15) + name_unique = substr(join("-", compact([local.prefix, "vmss", local.suffix_unique])), 0, 15) + dashes = true + slug = "vmss" + min_length = 1 + max_length = 15 + scope = "resourceGroup" + regex = "^[^\\/\"\\[\\]:|<>+=;,?*@&_][^\\/\"\\[\\]:|<>+=;,?*@&]+[^\\/\"\\[\\]:|<>+=;,?*@&.-]$" + } virtual_machine_scale_set_extension = { name = substr(join("-", compact([local.prefix, "vmssx", local.suffix])), 0, 80) name_unique = substr(join("-", compact([local.prefix, "vmssx", local.suffix_unique])), 0, 80) @@ -2146,75 +2166,65 @@ locals { scope = "parent" regex = "^[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9_]$" } - network_ddos_protection_plan = { - name = substr(join("-", compact([local.prefix, "ddospp", local.suffix])), 0, 80) - name_unique = substr(join("-", compact([local.prefix, "ddospp", local.suffix_unique])), 0, 80) + virtual_network = { + name = substr(join("-", compact([local.prefix, "vnet", local.suffix])), 0, 64) + name_unique = substr(join("-", compact([local.prefix, "vnet", local.suffix_unique])), 0, 64) dashes = true - slug = "ddospp" - min_length = 1 - max_length = 80 - scope = "parent" + slug = "vnet" + min_length = 2 + max_length = 64 + scope = "resourceGroup" regex = "^[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9_]$" } - private_dns_zone_group = { - name = substr(join("-", compact([local.prefix, "pdnszg", local.suffix])), 0, 80) - name_unique = substr(join("-", compact([local.prefix, "pdnszg", local.suffix_unique])), 0, 80) + virtual_network_gateway = { + name = substr(join("-", compact([local.prefix, "vgw", local.suffix])), 0, 80) + name_unique = substr(join("-", compact([local.prefix, "vgw", local.suffix_unique])), 0, 80) dashes = true - slug = "pdnszg" - min_length = 1 - max_length = 80 - scope = "resourceGroup" - regex = "^[a-zA-Z0-9][a-zA-Z0-9\\-\\._]+[a-zA-Z0-9_]$" - } - proximity_placement_group = { - name = substr(join("-", compact([local.prefix, "ppg", local.suffix])), 0, 80) - name_unique = substr(join("-", compact([local.prefix, "ppg", local.suffix_unique])), 0, 80) - dashes = true - slug = "ppg" + slug = "vgw" min_length = 1 max_length = 80 scope = "resourceGroup" regex = "^[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9_]$" } - private_link_service = { - name = substr(join("-", compact([local.prefix, "pls", local.suffix])), 0, 80) - name_unique = substr(join("-", compact([local.prefix, "pls", local.suffix_unique])), 0, 80) + virtual_network_peering = { + name = substr(join("-", compact([local.prefix, "vpeer", local.suffix])), 0, 80) + name_unique = substr(join("-", compact([local.prefix, "vpeer", local.suffix_unique])), 0, 80) dashes = true - slug = "pls" + slug = "vpeer" min_length = 1 max_length = 80 - scope = "resourceGroup" + scope = "parent" regex = "^[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9_]$" } - databricks_cluster = { - name = substr(join("-", compact([local.prefix, "dbc", local.suffix])), 0, 30) - name_unique = substr(join("-", compact([local.prefix, "dbc", local.suffix_unique])), 0, 30) + virtual_wan = { + name = substr(join("-", compact([local.prefix, "vwan", local.suffix])), 0, 80) + name_unique = substr(join("-", compact([local.prefix, "vwan", local.suffix_unique])), 0, 80) dashes = true - slug = "dbc" - min_length = 3 - max_length = 30 + slug = "vwan" + min_length = 1 + max_length = 80 scope = "parent" - regex = "^[a-zA-Z0-9-_]+$" + regex = "^[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9_]$" } - databricks_standard_cluster = { - name = substr(join("-", compact([local.prefix, "dbsc", local.suffix])), 0, 30) - name_unique = substr(join("-", compact([local.prefix, "dbsc", local.suffix_unique])), 0, 30) + windows_virtual_machine = { + name = substr(join("-", compact([local.prefix, "vm", local.suffix])), 0, 15) + name_unique = substr(join("-", compact([local.prefix, "vm", local.suffix_unique])), 0, 15) dashes = true - slug = "dbsc" - min_length = 3 - max_length = 30 - scope = "parent" - regex = "^[a-zA-Z0-9-_]+$" + slug = "vm" + min_length = 1 + max_length = 15 + scope = "resourceGroup" + regex = "^[^\\/\"\\[\\]:|<>+=;,?*@&_][^\\/\"\\[\\]:|<>+=;,?*@&]+[^\\/\"\\[\\]:|<>+=;,?*@&.-]$" } - databricks_high_concurrency_cluster = { - name = substr(join("-", compact([local.prefix, "dbhcc", local.suffix])), 0, 30) - name_unique = substr(join("-", compact([local.prefix, "dbhcc", local.suffix_unique])), 0, 30) + windows_virtual_machine_scale_set = { + name = substr(join("-", compact([local.prefix, "vmss", local.suffix])), 0, 15) + name_unique = substr(join("-", compact([local.prefix, "vmss", local.suffix_unique])), 0, 15) dashes = true - slug = "dbhcc" - min_length = 3 - max_length = 30 - scope = "parent" - regex = "^[a-zA-Z0-9-_]+$" + slug = "vmss" + min_length = 1 + max_length = 15 + scope = "resourceGroup" + regex = "^[^\\/\"\\[\\]:|<>+=;,?*@&_][^\\/\"\\[\\]:|<>+=;,?*@&]+[^\\/\"\\[\\]:|<>+=;,?*@&.-]$" } } validation = { @@ -2230,17 +2240,17 @@ locals { valid_name = length(regexall(local.az.app_configuration.regex, local.az.app_configuration.name)) > 0 && length(local.az.app_configuration.name) > local.az.app_configuration.min_length valid_name_unique = length(regexall(local.az.app_configuration.regex, local.az.app_configuration.name_unique)) > 0 } + application_gateway = { + valid_name = length(regexall(local.az.application_gateway.regex, local.az.application_gateway.name)) > 0 && length(local.az.application_gateway.name) > local.az.application_gateway.min_length + valid_name_unique = length(regexall(local.az.application_gateway.regex, local.az.application_gateway.name_unique)) > 0 + } application_insights = { valid_name = length(regexall(local.az.application_insights.regex, local.az.application_insights.name)) > 0 && length(local.az.application_insights.name) > local.az.application_insights.min_length valid_name_unique = length(regexall(local.az.application_insights.regex, local.az.application_insights.name_unique)) > 0 } - role_assignment = { - valid_name = length(regexall(local.az.role_assignment.regex, local.az.role_assignment.name)) > 0 && length(local.az.role_assignment.name) > local.az.role_assignment.min_length - valid_name_unique = length(regexall(local.az.role_assignment.regex, local.az.role_assignment.name_unique)) > 0 - } - role_definition = { - valid_name = length(regexall(local.az.role_definition.regex, local.az.role_definition.name)) > 0 && length(local.az.role_definition.name) > local.az.role_definition.min_length - valid_name_unique = length(regexall(local.az.role_definition.regex, local.az.role_definition.name_unique)) > 0 + application_security_group = { + valid_name = length(regexall(local.az.application_security_group.regex, local.az.application_security_group.name)) > 0 && length(local.az.application_security_group.name) > local.az.application_security_group.min_length + valid_name_unique = length(regexall(local.az.application_security_group.regex, local.az.application_security_group.name_unique)) > 0 } automation_account = { valid_name = length(regexall(local.az.automation_account.regex, local.az.automation_account.name)) > 0 && length(local.az.automation_account.name) > local.az.automation_account.min_length @@ -2266,6 +2276,14 @@ locals { valid_name = length(regexall(local.az.automation_variable.regex, local.az.automation_variable.name)) > 0 && length(local.az.automation_variable.name) > local.az.automation_variable.min_length valid_name_unique = length(regexall(local.az.automation_variable.regex, local.az.automation_variable.name_unique)) > 0 } + availability_set = { + valid_name = length(regexall(local.az.availability_set.regex, local.az.availability_set.name)) > 0 && length(local.az.availability_set.name) > local.az.availability_set.min_length + valid_name_unique = length(regexall(local.az.availability_set.regex, local.az.availability_set.name_unique)) > 0 + } + bastion_host = { + valid_name = length(regexall(local.az.bastion_host.regex, local.az.bastion_host.name)) > 0 && length(local.az.bastion_host.name) > local.az.bastion_host.min_length + valid_name_unique = length(regexall(local.az.bastion_host.regex, local.az.bastion_host.name_unique)) > 0 + } batch_account = { valid_name = length(regexall(local.az.batch_account.regex, local.az.batch_account.name)) > 0 && length(local.az.batch_account.name) > local.az.batch_account.min_length valid_name_unique = length(regexall(local.az.batch_account.regex, local.az.batch_account.name_unique)) > 0 @@ -2282,13 +2300,13 @@ locals { valid_name = length(regexall(local.az.batch_pool.regex, local.az.batch_pool.name)) > 0 && length(local.az.batch_pool.name) > local.az.batch_pool.min_length valid_name_unique = length(regexall(local.az.batch_pool.regex, local.az.batch_pool.name_unique)) > 0 } - bot_web_app = { - valid_name = length(regexall(local.az.bot_web_app.regex, local.az.bot_web_app.name)) > 0 && length(local.az.bot_web_app.name) > local.az.bot_web_app.min_length - valid_name_unique = length(regexall(local.az.bot_web_app.regex, local.az.bot_web_app.name_unique)) > 0 + bot_channel_directline = { + valid_name = length(regexall(local.az.bot_channel_directline.regex, local.az.bot_channel_directline.name)) > 0 && length(local.az.bot_channel_directline.name) > local.az.bot_channel_directline.min_length + valid_name_unique = length(regexall(local.az.bot_channel_directline.regex, local.az.bot_channel_directline.name_unique)) > 0 } - bot_channel_Email = { - valid_name = length(regexall(local.az.bot_channel_Email.regex, local.az.bot_channel_Email.name)) > 0 && length(local.az.bot_channel_Email.name) > local.az.bot_channel_Email.min_length - valid_name_unique = length(regexall(local.az.bot_channel_Email.regex, local.az.bot_channel_Email.name_unique)) > 0 + bot_channel_email = { + valid_name = length(regexall(local.az.bot_channel_email.regex, local.az.bot_channel_email.name)) > 0 && length(local.az.bot_channel_email.name) > local.az.bot_channel_email.min_length + valid_name_unique = length(regexall(local.az.bot_channel_email.regex, local.az.bot_channel_email.name_unique)) > 0 } bot_channel_ms_teams = { valid_name = length(regexall(local.az.bot_channel_ms_teams.regex, local.az.bot_channel_ms_teams.name)) > 0 && length(local.az.bot_channel_ms_teams.name) > local.az.bot_channel_ms_teams.min_length @@ -2298,10 +2316,6 @@ locals { valid_name = length(regexall(local.az.bot_channel_slack.regex, local.az.bot_channel_slack.name)) > 0 && length(local.az.bot_channel_slack.name) > local.az.bot_channel_slack.min_length valid_name_unique = length(regexall(local.az.bot_channel_slack.regex, local.az.bot_channel_slack.name_unique)) > 0 } - bot_channel_directline = { - valid_name = length(regexall(local.az.bot_channel_directline.regex, local.az.bot_channel_directline.name)) > 0 && length(local.az.bot_channel_directline.name) > local.az.bot_channel_directline.min_length - valid_name_unique = length(regexall(local.az.bot_channel_directline.regex, local.az.bot_channel_directline.name_unique)) > 0 - } bot_channels_registration = { valid_name = length(regexall(local.az.bot_channels_registration.regex, local.az.bot_channels_registration.name)) > 0 && length(local.az.bot_channels_registration.name) > local.az.bot_channels_registration.min_length valid_name_unique = length(regexall(local.az.bot_channels_registration.regex, local.az.bot_channels_registration.name_unique)) > 0 @@ -2310,69 +2324,25 @@ locals { valid_name = length(regexall(local.az.bot_connection.regex, local.az.bot_connection.name)) > 0 && length(local.az.bot_connection.name) > local.az.bot_connection.min_length valid_name_unique = length(regexall(local.az.bot_connection.regex, local.az.bot_connection.name_unique)) > 0 } - redis_cache = { - valid_name = length(regexall(local.az.redis_cache.regex, local.az.redis_cache.name)) > 0 && length(local.az.redis_cache.name) > local.az.redis_cache.min_length - valid_name_unique = length(regexall(local.az.redis_cache.regex, local.az.redis_cache.name_unique)) > 0 - } - redis_firewall_rule = { - valid_name = length(regexall(local.az.redis_firewall_rule.regex, local.az.redis_firewall_rule.name)) > 0 && length(local.az.redis_firewall_rule.name) > local.az.redis_firewall_rule.min_length - valid_name_unique = length(regexall(local.az.redis_firewall_rule.regex, local.az.redis_firewall_rule.name_unique)) > 0 - } - cdn_profile = { - valid_name = length(regexall(local.az.cdn_profile.regex, local.az.cdn_profile.name)) > 0 && length(local.az.cdn_profile.name) > local.az.cdn_profile.min_length - valid_name_unique = length(regexall(local.az.cdn_profile.regex, local.az.cdn_profile.name_unique)) > 0 + bot_web_app = { + valid_name = length(regexall(local.az.bot_web_app.regex, local.az.bot_web_app.name)) > 0 && length(local.az.bot_web_app.name) > local.az.bot_web_app.min_length + valid_name_unique = length(regexall(local.az.bot_web_app.regex, local.az.bot_web_app.name_unique)) > 0 } cdn_endpoint = { valid_name = length(regexall(local.az.cdn_endpoint.regex, local.az.cdn_endpoint.name)) > 0 && length(local.az.cdn_endpoint.name) > local.az.cdn_endpoint.min_length valid_name_unique = length(regexall(local.az.cdn_endpoint.regex, local.az.cdn_endpoint.name_unique)) > 0 } + cdn_profile = { + valid_name = length(regexall(local.az.cdn_profile.regex, local.az.cdn_profile.name)) > 0 && length(local.az.cdn_profile.name) > local.az.cdn_profile.min_length + valid_name_unique = length(regexall(local.az.cdn_profile.regex, local.az.cdn_profile.name_unique)) > 0 + } cognitive_account = { valid_name = length(regexall(local.az.cognitive_account.regex, local.az.cognitive_account.name)) > 0 && length(local.az.cognitive_account.name) > local.az.cognitive_account.min_length valid_name_unique = length(regexall(local.az.cognitive_account.regex, local.az.cognitive_account.name_unique)) > 0 } - availability_set = { - valid_name = length(regexall(local.az.availability_set.regex, local.az.availability_set.name)) > 0 && length(local.az.availability_set.name) > local.az.availability_set.min_length - valid_name_unique = length(regexall(local.az.availability_set.regex, local.az.availability_set.name_unique)) > 0 - } - disk_encryption_set = { - valid_name = length(regexall(local.az.disk_encryption_set.regex, local.az.disk_encryption_set.name)) > 0 && length(local.az.disk_encryption_set.name) > local.az.disk_encryption_set.min_length - valid_name_unique = length(regexall(local.az.disk_encryption_set.regex, local.az.disk_encryption_set.name_unique)) > 0 - } - image = { - valid_name = length(regexall(local.az.image.regex, local.az.image.name)) > 0 && length(local.az.image.name) > local.az.image.min_length - valid_name_unique = length(regexall(local.az.image.regex, local.az.image.name_unique)) > 0 - } - linux_virtual_machine = { - valid_name = length(regexall(local.az.linux_virtual_machine.regex, local.az.linux_virtual_machine.name)) > 0 && length(local.az.linux_virtual_machine.name) > local.az.linux_virtual_machine.min_length - valid_name_unique = length(regexall(local.az.linux_virtual_machine.regex, local.az.linux_virtual_machine.name_unique)) > 0 - } - linux_virtual_machine_scale_set = { - valid_name = length(regexall(local.az.linux_virtual_machine_scale_set.regex, local.az.linux_virtual_machine_scale_set.name)) > 0 && length(local.az.linux_virtual_machine_scale_set.name) > local.az.linux_virtual_machine_scale_set.min_length - valid_name_unique = length(regexall(local.az.linux_virtual_machine_scale_set.regex, local.az.linux_virtual_machine_scale_set.name_unique)) > 0 - } - managed_disk = { - valid_name = length(regexall(local.az.managed_disk.regex, local.az.managed_disk.name)) > 0 && length(local.az.managed_disk.name) > local.az.managed_disk.min_length - valid_name_unique = length(regexall(local.az.managed_disk.regex, local.az.managed_disk.name_unique)) > 0 - } - virtual_machine = { - valid_name = length(regexall(local.az.virtual_machine.regex, local.az.virtual_machine.name)) > 0 && length(local.az.virtual_machine.name) > local.az.virtual_machine.min_length - valid_name_unique = length(regexall(local.az.virtual_machine.regex, local.az.virtual_machine.name_unique)) > 0 - } - virtual_machine_scale_set = { - valid_name = length(regexall(local.az.virtual_machine_scale_set.regex, local.az.virtual_machine_scale_set.name)) > 0 && length(local.az.virtual_machine_scale_set.name) > local.az.virtual_machine_scale_set.min_length - valid_name_unique = length(regexall(local.az.virtual_machine_scale_set.regex, local.az.virtual_machine_scale_set.name_unique)) > 0 - } - windows_virtual_machine = { - valid_name = length(regexall(local.az.windows_virtual_machine.regex, local.az.windows_virtual_machine.name)) > 0 && length(local.az.windows_virtual_machine.name) > local.az.windows_virtual_machine.min_length - valid_name_unique = length(regexall(local.az.windows_virtual_machine.regex, local.az.windows_virtual_machine.name_unique)) > 0 - } - windows_virtual_machine_scale_set = { - valid_name = length(regexall(local.az.windows_virtual_machine_scale_set.regex, local.az.windows_virtual_machine_scale_set.name)) > 0 && length(local.az.windows_virtual_machine_scale_set.name) > local.az.windows_virtual_machine_scale_set.min_length - valid_name_unique = length(regexall(local.az.windows_virtual_machine_scale_set.regex, local.az.windows_virtual_machine_scale_set.name_unique)) > 0 - } - containerGroups = { - valid_name = length(regexall(local.az.containerGroups.regex, local.az.containerGroups.name)) > 0 && length(local.az.containerGroups.name) > local.az.containerGroups.min_length - valid_name_unique = length(regexall(local.az.containerGroups.regex, local.az.containerGroups.name_unique)) > 0 + container_group = { + valid_name = length(regexall(local.az.container_group.regex, local.az.container_group.name)) > 0 && length(local.az.container_group.name) > local.az.container_group.min_length + valid_name_unique = length(regexall(local.az.container_group.regex, local.az.container_group.name_unique)) > 0 } container_registry = { valid_name = length(regexall(local.az.container_registry.regex, local.az.container_registry.name)) > 0 && length(local.az.container_registry.name) > local.az.container_registry.min_length @@ -2382,10 +2352,6 @@ locals { valid_name = length(regexall(local.az.container_registry_webhook.regex, local.az.container_registry_webhook.name)) > 0 && length(local.az.container_registry_webhook.name) > local.az.container_registry_webhook.min_length valid_name_unique = length(regexall(local.az.container_registry_webhook.regex, local.az.container_registry_webhook.name_unique)) > 0 } - kubernetes_cluster = { - valid_name = length(regexall(local.az.kubernetes_cluster.regex, local.az.kubernetes_cluster.name)) > 0 && length(local.az.kubernetes_cluster.name) > local.az.kubernetes_cluster.min_length - valid_name_unique = length(regexall(local.az.kubernetes_cluster.regex, local.az.kubernetes_cluster.name_unique)) > 0 - } cosmosdb_account = { valid_name = length(regexall(local.az.cosmosdb_account.regex, local.az.cosmosdb_account.name)) > 0 && length(local.az.cosmosdb_account.name) > local.az.cosmosdb_account.min_length valid_name_unique = length(regexall(local.az.cosmosdb_account.regex, local.az.cosmosdb_account.name_unique)) > 0 @@ -2394,77 +2360,9 @@ locals { valid_name = length(regexall(local.az.custom_provider.regex, local.az.custom_provider.name)) > 0 && length(local.az.custom_provider.name) > local.az.custom_provider.min_length valid_name_unique = length(regexall(local.az.custom_provider.regex, local.az.custom_provider.name_unique)) > 0 } - mariadb_server = { - valid_name = length(regexall(local.az.mariadb_server.regex, local.az.mariadb_server.name)) > 0 && length(local.az.mariadb_server.name) > local.az.mariadb_server.min_length - valid_name_unique = length(regexall(local.az.mariadb_server.regex, local.az.mariadb_server.name_unique)) > 0 - } - mariadb_firewall_rule = { - valid_name = length(regexall(local.az.mariadb_firewall_rule.regex, local.az.mariadb_firewall_rule.name)) > 0 && length(local.az.mariadb_firewall_rule.name) > local.az.mariadb_firewall_rule.min_length - valid_name_unique = length(regexall(local.az.mariadb_firewall_rule.regex, local.az.mariadb_firewall_rule.name_unique)) > 0 - } - mariadb_database = { - valid_name = length(regexall(local.az.mariadb_database.regex, local.az.mariadb_database.name)) > 0 && length(local.az.mariadb_database.name) > local.az.mariadb_database.min_length - valid_name_unique = length(regexall(local.az.mariadb_database.regex, local.az.mariadb_database.name_unique)) > 0 - } - mariadb_virtual_network_rule = { - valid_name = length(regexall(local.az.mariadb_virtual_network_rule.regex, local.az.mariadb_virtual_network_rule.name)) > 0 && length(local.az.mariadb_virtual_network_rule.name) > local.az.mariadb_virtual_network_rule.min_length - valid_name_unique = length(regexall(local.az.mariadb_virtual_network_rule.regex, local.az.mariadb_virtual_network_rule.name_unique)) > 0 - } - mysql_server = { - valid_name = length(regexall(local.az.mysql_server.regex, local.az.mysql_server.name)) > 0 && length(local.az.mysql_server.name) > local.az.mysql_server.min_length - valid_name_unique = length(regexall(local.az.mysql_server.regex, local.az.mysql_server.name_unique)) > 0 - } - mysql_firewall_rule = { - valid_name = length(regexall(local.az.mysql_firewall_rule.regex, local.az.mysql_firewall_rule.name)) > 0 && length(local.az.mysql_firewall_rule.name) > local.az.mysql_firewall_rule.min_length - valid_name_unique = length(regexall(local.az.mysql_firewall_rule.regex, local.az.mysql_firewall_rule.name_unique)) > 0 - } - mysql_database = { - valid_name = length(regexall(local.az.mysql_database.regex, local.az.mysql_database.name)) > 0 && length(local.az.mysql_database.name) > local.az.mysql_database.min_length - valid_name_unique = length(regexall(local.az.mysql_database.regex, local.az.mysql_database.name_unique)) > 0 - } - mysql_virtual_network_rule = { - valid_name = length(regexall(local.az.mysql_virtual_network_rule.regex, local.az.mysql_virtual_network_rule.name)) > 0 && length(local.az.mysql_virtual_network_rule.name) > local.az.mysql_virtual_network_rule.min_length - valid_name_unique = length(regexall(local.az.mysql_virtual_network_rule.regex, local.az.mysql_virtual_network_rule.name_unique)) > 0 - } - postgresql_server = { - valid_name = length(regexall(local.az.postgresql_server.regex, local.az.postgresql_server.name)) > 0 && length(local.az.postgresql_server.name) > local.az.postgresql_server.min_length - valid_name_unique = length(regexall(local.az.postgresql_server.regex, local.az.postgresql_server.name_unique)) > 0 - } - postgresql_firewall_rule = { - valid_name = length(regexall(local.az.postgresql_firewall_rule.regex, local.az.postgresql_firewall_rule.name)) > 0 && length(local.az.postgresql_firewall_rule.name) > local.az.postgresql_firewall_rule.min_length - valid_name_unique = length(regexall(local.az.postgresql_firewall_rule.regex, local.az.postgresql_firewall_rule.name_unique)) > 0 - } - postgresql_database = { - valid_name = length(regexall(local.az.postgresql_database.regex, local.az.postgresql_database.name)) > 0 && length(local.az.postgresql_database.name) > local.az.postgresql_database.min_length - valid_name_unique = length(regexall(local.az.postgresql_database.regex, local.az.postgresql_database.name_unique)) > 0 - } - postgresql_virtual_network_rule = { - valid_name = length(regexall(local.az.postgresql_virtual_network_rule.regex, local.az.postgresql_virtual_network_rule.name)) > 0 && length(local.az.postgresql_virtual_network_rule.name) > local.az.postgresql_virtual_network_rule.min_length - valid_name_unique = length(regexall(local.az.postgresql_virtual_network_rule.regex, local.az.postgresql_virtual_network_rule.name_unique)) > 0 - } - database_migration_project = { - valid_name = length(regexall(local.az.database_migration_project.regex, local.az.database_migration_project.name)) > 0 && length(local.az.database_migration_project.name) > local.az.database_migration_project.min_length - valid_name_unique = length(regexall(local.az.database_migration_project.regex, local.az.database_migration_project.name_unique)) > 0 - } - database_migration_service = { - valid_name = length(regexall(local.az.database_migration_service.regex, local.az.database_migration_service.name)) > 0 && length(local.az.database_migration_service.name) > local.az.database_migration_service.min_length - valid_name_unique = length(regexall(local.az.database_migration_service.regex, local.az.database_migration_service.name_unique)) > 0 - } - databricks_workspace = { - valid_name = length(regexall(local.az.databricks_workspace.regex, local.az.databricks_workspace.name)) > 0 && length(local.az.databricks_workspace.name) > local.az.databricks_workspace.min_length - valid_name_unique = length(regexall(local.az.databricks_workspace.regex, local.az.databricks_workspace.name_unique)) > 0 - } - kusto_cluster = { - valid_name = length(regexall(local.az.kusto_cluster.regex, local.az.kusto_cluster.name)) > 0 && length(local.az.kusto_cluster.name) > local.az.kusto_cluster.min_length - valid_name_unique = length(regexall(local.az.kusto_cluster.regex, local.az.kusto_cluster.name_unique)) > 0 - } - kusto_database = { - valid_name = length(regexall(local.az.kusto_database.regex, local.az.kusto_database.name)) > 0 && length(local.az.kusto_database.name) > local.az.kusto_database.min_length - valid_name_unique = length(regexall(local.az.kusto_database.regex, local.az.kusto_database.name_unique)) > 0 - } - kusto_eventhub_data_connection = { - valid_name = length(regexall(local.az.kusto_eventhub_data_connection.regex, local.az.kusto_eventhub_data_connection.name)) > 0 && length(local.az.kusto_eventhub_data_connection.name) > local.az.kusto_eventhub_data_connection.min_length - valid_name_unique = length(regexall(local.az.kusto_eventhub_data_connection.regex, local.az.kusto_eventhub_data_connection.name_unique)) > 0 + dashboard = { + valid_name = length(regexall(local.az.dashboard.regex, local.az.dashboard.name)) > 0 && length(local.az.dashboard.name) > local.az.dashboard.min_length + valid_name_unique = length(regexall(local.az.dashboard.regex, local.az.dashboard.name_unique)) > 0 } data_factory = { valid_name = length(regexall(local.az.data_factory.regex, local.az.data_factory.name)) > 0 && length(local.az.data_factory.name) > local.az.data_factory.min_length @@ -2486,10 +2384,6 @@ locals { valid_name = length(regexall(local.az.data_factory_integration_runtime_managed.regex, local.az.data_factory_integration_runtime_managed.name)) > 0 && length(local.az.data_factory_integration_runtime_managed.name) > local.az.data_factory_integration_runtime_managed.min_length valid_name_unique = length(regexall(local.az.data_factory_integration_runtime_managed.regex, local.az.data_factory_integration_runtime_managed.name_unique)) > 0 } - data_factory_pipeline = { - valid_name = length(regexall(local.az.data_factory_pipeline.regex, local.az.data_factory_pipeline.name)) > 0 && length(local.az.data_factory_pipeline.name) > local.az.data_factory_pipeline.min_length - valid_name_unique = length(regexall(local.az.data_factory_pipeline.regex, local.az.data_factory_pipeline.name_unique)) > 0 - } data_factory_linked_service_data_lake_storage_gen2 = { valid_name = length(regexall(local.az.data_factory_linked_service_data_lake_storage_gen2.regex, local.az.data_factory_linked_service_data_lake_storage_gen2.name)) > 0 && length(local.az.data_factory_linked_service_data_lake_storage_gen2.name) > local.az.data_factory_linked_service_data_lake_storage_gen2.min_length valid_name_unique = length(regexall(local.az.data_factory_linked_service_data_lake_storage_gen2.regex, local.az.data_factory_linked_service_data_lake_storage_gen2.name_unique)) > 0 @@ -2510,6 +2404,10 @@ locals { valid_name = length(regexall(local.az.data_factory_linked_service_sql_server.regex, local.az.data_factory_linked_service_sql_server.name)) > 0 && length(local.az.data_factory_linked_service_sql_server.name) > local.az.data_factory_linked_service_sql_server.min_length valid_name_unique = length(regexall(local.az.data_factory_linked_service_sql_server.regex, local.az.data_factory_linked_service_sql_server.name_unique)) > 0 } + data_factory_pipeline = { + valid_name = length(regexall(local.az.data_factory_pipeline.regex, local.az.data_factory_pipeline.name)) > 0 && length(local.az.data_factory_pipeline.name) > local.az.data_factory_pipeline.min_length + valid_name_unique = length(regexall(local.az.data_factory_pipeline.regex, local.az.data_factory_pipeline.name_unique)) > 0 + } data_factory_trigger_schedule = { valid_name = length(regexall(local.az.data_factory_trigger_schedule.regex, local.az.data_factory_trigger_schedule.name)) > 0 && length(local.az.data_factory_trigger_schedule.name) > local.az.data_factory_trigger_schedule.min_length valid_name_unique = length(regexall(local.az.data_factory_trigger_schedule.regex, local.az.data_factory_trigger_schedule.name_unique)) > 0 @@ -2530,6 +2428,30 @@ locals { valid_name = length(regexall(local.az.data_lake_store_firewall_rule.regex, local.az.data_lake_store_firewall_rule.name)) > 0 && length(local.az.data_lake_store_firewall_rule.name) > local.az.data_lake_store_firewall_rule.min_length valid_name_unique = length(regexall(local.az.data_lake_store_firewall_rule.regex, local.az.data_lake_store_firewall_rule.name_unique)) > 0 } + database_migration_project = { + valid_name = length(regexall(local.az.database_migration_project.regex, local.az.database_migration_project.name)) > 0 && length(local.az.database_migration_project.name) > local.az.database_migration_project.min_length + valid_name_unique = length(regexall(local.az.database_migration_project.regex, local.az.database_migration_project.name_unique)) > 0 + } + database_migration_service = { + valid_name = length(regexall(local.az.database_migration_service.regex, local.az.database_migration_service.name)) > 0 && length(local.az.database_migration_service.name) > local.az.database_migration_service.min_length + valid_name_unique = length(regexall(local.az.database_migration_service.regex, local.az.database_migration_service.name_unique)) > 0 + } + databricks_cluster = { + valid_name = length(regexall(local.az.databricks_cluster.regex, local.az.databricks_cluster.name)) > 0 && length(local.az.databricks_cluster.name) > local.az.databricks_cluster.min_length + valid_name_unique = length(regexall(local.az.databricks_cluster.regex, local.az.databricks_cluster.name_unique)) > 0 + } + databricks_high_concurrency_cluster = { + valid_name = length(regexall(local.az.databricks_high_concurrency_cluster.regex, local.az.databricks_high_concurrency_cluster.name)) > 0 && length(local.az.databricks_high_concurrency_cluster.name) > local.az.databricks_high_concurrency_cluster.min_length + valid_name_unique = length(regexall(local.az.databricks_high_concurrency_cluster.regex, local.az.databricks_high_concurrency_cluster.name_unique)) > 0 + } + databricks_standard_cluster = { + valid_name = length(regexall(local.az.databricks_standard_cluster.regex, local.az.databricks_standard_cluster.name)) > 0 && length(local.az.databricks_standard_cluster.name) > local.az.databricks_standard_cluster.min_length + valid_name_unique = length(regexall(local.az.databricks_standard_cluster.regex, local.az.databricks_standard_cluster.name_unique)) > 0 + } + databricks_workspace = { + valid_name = length(regexall(local.az.databricks_workspace.regex, local.az.databricks_workspace.name)) > 0 && length(local.az.databricks_workspace.name) > local.az.databricks_workspace.min_length + valid_name_unique = length(regexall(local.az.databricks_workspace.regex, local.az.databricks_workspace.name_unique)) > 0 + } dev_test_lab = { valid_name = length(regexall(local.az.dev_test_lab.regex, local.az.dev_test_lab.name)) > 0 && length(local.az.dev_test_lab.name) > local.az.dev_test_lab.min_length valid_name_unique = length(regexall(local.az.dev_test_lab.regex, local.az.dev_test_lab.name_unique)) > 0 @@ -2542,457 +2464,9 @@ locals { valid_name = length(regexall(local.az.dev_test_windows_virtual_machine.regex, local.az.dev_test_windows_virtual_machine.name)) > 0 && length(local.az.dev_test_windows_virtual_machine.name) > local.az.dev_test_windows_virtual_machine.min_length valid_name_unique = length(regexall(local.az.dev_test_windows_virtual_machine.regex, local.az.dev_test_windows_virtual_machine.name_unique)) > 0 } - frontdoor = { - valid_name = length(regexall(local.az.frontdoor.regex, local.az.frontdoor.name)) > 0 && length(local.az.frontdoor.name) > local.az.frontdoor.min_length - valid_name_unique = length(regexall(local.az.frontdoor.regex, local.az.frontdoor.name_unique)) > 0 - } - frontdoor_firewall_policy = { - valid_name = length(regexall(local.az.frontdoor_firewall_policy.regex, local.az.frontdoor_firewall_policy.name)) > 0 && length(local.az.frontdoor_firewall_policy.name) > local.az.frontdoor_firewall_policy.min_length - valid_name_unique = length(regexall(local.az.frontdoor_firewall_policy.regex, local.az.frontdoor_firewall_policy.name_unique)) > 0 - } - hdinsight_hadoop_cluster = { - valid_name = length(regexall(local.az.hdinsight_hadoop_cluster.regex, local.az.hdinsight_hadoop_cluster.name)) > 0 && length(local.az.hdinsight_hadoop_cluster.name) > local.az.hdinsight_hadoop_cluster.min_length - valid_name_unique = length(regexall(local.az.hdinsight_hadoop_cluster.regex, local.az.hdinsight_hadoop_cluster.name_unique)) > 0 - } - hdinsight_hbase_cluster = { - valid_name = length(regexall(local.az.hdinsight_hbase_cluster.regex, local.az.hdinsight_hbase_cluster.name)) > 0 && length(local.az.hdinsight_hbase_cluster.name) > local.az.hdinsight_hbase_cluster.min_length - valid_name_unique = length(regexall(local.az.hdinsight_hbase_cluster.regex, local.az.hdinsight_hbase_cluster.name_unique)) > 0 - } - hdinsight_kafka_cluster = { - valid_name = length(regexall(local.az.hdinsight_kafka_cluster.regex, local.az.hdinsight_kafka_cluster.name)) > 0 && length(local.az.hdinsight_kafka_cluster.name) > local.az.hdinsight_kafka_cluster.min_length - valid_name_unique = length(regexall(local.az.hdinsight_kafka_cluster.regex, local.az.hdinsight_kafka_cluster.name_unique)) > 0 - } - hdinsight_interactive_query_cluster = { - valid_name = length(regexall(local.az.hdinsight_interactive_query_cluster.regex, local.az.hdinsight_interactive_query_cluster.name)) > 0 && length(local.az.hdinsight_interactive_query_cluster.name) > local.az.hdinsight_interactive_query_cluster.min_length - valid_name_unique = length(regexall(local.az.hdinsight_interactive_query_cluster.regex, local.az.hdinsight_interactive_query_cluster.name_unique)) > 0 - } - hdinsight_ml_services_cluster = { - valid_name = length(regexall(local.az.hdinsight_ml_services_cluster.regex, local.az.hdinsight_ml_services_cluster.name)) > 0 && length(local.az.hdinsight_ml_services_cluster.name) > local.az.hdinsight_ml_services_cluster.min_length - valid_name_unique = length(regexall(local.az.hdinsight_ml_services_cluster.regex, local.az.hdinsight_ml_services_cluster.name_unique)) > 0 - } - hdinsight_rserver_cluster = { - valid_name = length(regexall(local.az.hdinsight_rserver_cluster.regex, local.az.hdinsight_rserver_cluster.name)) > 0 && length(local.az.hdinsight_rserver_cluster.name) > local.az.hdinsight_rserver_cluster.min_length - valid_name_unique = length(regexall(local.az.hdinsight_rserver_cluster.regex, local.az.hdinsight_rserver_cluster.name_unique)) > 0 - } - hdinsight_spark_cluster = { - valid_name = length(regexall(local.az.hdinsight_spark_cluster.regex, local.az.hdinsight_spark_cluster.name)) > 0 && length(local.az.hdinsight_spark_cluster.name) > local.az.hdinsight_spark_cluster.min_length - valid_name_unique = length(regexall(local.az.hdinsight_spark_cluster.regex, local.az.hdinsight_spark_cluster.name_unique)) > 0 - } - hdinsight_storm_cluster = { - valid_name = length(regexall(local.az.hdinsight_storm_cluster.regex, local.az.hdinsight_storm_cluster.name)) > 0 && length(local.az.hdinsight_storm_cluster.name) > local.az.hdinsight_storm_cluster.min_length - valid_name_unique = length(regexall(local.az.hdinsight_storm_cluster.regex, local.az.hdinsight_storm_cluster.name_unique)) > 0 - } - iotcentral_application = { - valid_name = length(regexall(local.az.iotcentral_application.regex, local.az.iotcentral_application.name)) > 0 && length(local.az.iotcentral_application.name) > local.az.iotcentral_application.min_length - valid_name_unique = length(regexall(local.az.iotcentral_application.regex, local.az.iotcentral_application.name_unique)) > 0 - } - iothub = { - valid_name = length(regexall(local.az.iothub.regex, local.az.iothub.name)) > 0 && length(local.az.iothub.name) > local.az.iothub.min_length - valid_name_unique = length(regexall(local.az.iothub.regex, local.az.iothub.name_unique)) > 0 - } - iothub_consumer_group = { - valid_name = length(regexall(local.az.iothub_consumer_group.regex, local.az.iothub_consumer_group.name)) > 0 && length(local.az.iothub_consumer_group.name) > local.az.iothub_consumer_group.min_length - valid_name_unique = length(regexall(local.az.iothub_consumer_group.regex, local.az.iothub_consumer_group.name_unique)) > 0 - } - iothub_dps = { - valid_name = length(regexall(local.az.iothub_dps.regex, local.az.iothub_dps.name)) > 0 && length(local.az.iothub_dps.name) > local.az.iothub_dps.min_length - valid_name_unique = length(regexall(local.az.iothub_dps.regex, local.az.iothub_dps.name_unique)) > 0 - } - iothub_dps_certificate = { - valid_name = length(regexall(local.az.iothub_dps_certificate.regex, local.az.iothub_dps_certificate.name)) > 0 && length(local.az.iothub_dps_certificate.name) > local.az.iothub_dps_certificate.min_length - valid_name_unique = length(regexall(local.az.iothub_dps_certificate.regex, local.az.iothub_dps_certificate.name_unique)) > 0 - } - key_vault = { - valid_name = length(regexall(local.az.key_vault.regex, local.az.key_vault.name)) > 0 && length(local.az.key_vault.name) > local.az.key_vault.min_length - valid_name_unique = length(regexall(local.az.key_vault.regex, local.az.key_vault.name_unique)) > 0 - } - key_vault_key = { - valid_name = length(regexall(local.az.key_vault_key.regex, local.az.key_vault_key.name)) > 0 && length(local.az.key_vault_key.name) > local.az.key_vault_key.min_length - valid_name_unique = length(regexall(local.az.key_vault_key.regex, local.az.key_vault_key.name_unique)) > 0 - } - key_vault_secret = { - valid_name = length(regexall(local.az.key_vault_secret.regex, local.az.key_vault_secret.name)) > 0 && length(local.az.key_vault_secret.name) > local.az.key_vault_secret.min_length - valid_name_unique = length(regexall(local.az.key_vault_secret.regex, local.az.key_vault_secret.name_unique)) > 0 - } - key_vault_certificate = { - valid_name = length(regexall(local.az.key_vault_certificate.regex, local.az.key_vault_certificate.name)) > 0 && length(local.az.key_vault_certificate.name) > local.az.key_vault_certificate.min_length - valid_name_unique = length(regexall(local.az.key_vault_certificate.regex, local.az.key_vault_certificate.name_unique)) > 0 - } - lb = { - valid_name = length(regexall(local.az.lb.regex, local.az.lb.name)) > 0 && length(local.az.lb.name) > local.az.lb.min_length - valid_name_unique = length(regexall(local.az.lb.regex, local.az.lb.name_unique)) > 0 - } - lb_nat_rule = { - valid_name = length(regexall(local.az.lb_nat_rule.regex, local.az.lb_nat_rule.name)) > 0 && length(local.az.lb_nat_rule.name) > local.az.lb_nat_rule.min_length - valid_name_unique = length(regexall(local.az.lb_nat_rule.regex, local.az.lb_nat_rule.name_unique)) > 0 - } - public_ip = { - valid_name = length(regexall(local.az.public_ip.regex, local.az.public_ip.name)) > 0 && length(local.az.public_ip.name) > local.az.public_ip.min_length - valid_name_unique = length(regexall(local.az.public_ip.regex, local.az.public_ip.name_unique)) > 0 - } - public_ip_prefix = { - valid_name = length(regexall(local.az.public_ip_prefix.regex, local.az.public_ip_prefix.name)) > 0 && length(local.az.public_ip_prefix.name) > local.az.public_ip_prefix.min_length - valid_name_unique = length(regexall(local.az.public_ip_prefix.regex, local.az.public_ip_prefix.name_unique)) > 0 - } - route = { - valid_name = length(regexall(local.az.route.regex, local.az.route.name)) > 0 && length(local.az.route.name) > local.az.route.min_length - valid_name_unique = length(regexall(local.az.route.regex, local.az.route.name_unique)) > 0 - } - route_table = { - valid_name = length(regexall(local.az.route_table.regex, local.az.route_table.name)) > 0 && length(local.az.route_table.name) > local.az.route_table.min_length - valid_name_unique = length(regexall(local.az.route_table.regex, local.az.route_table.name_unique)) > 0 - } - subnet = { - valid_name = length(regexall(local.az.subnet.regex, local.az.subnet.name)) > 0 && length(local.az.subnet.name) > local.az.subnet.min_length - valid_name_unique = length(regexall(local.az.subnet.regex, local.az.subnet.name_unique)) > 0 - } - traffic_manager_profile = { - valid_name = length(regexall(local.az.traffic_manager_profile.regex, local.az.traffic_manager_profile.name)) > 0 && length(local.az.traffic_manager_profile.name) > local.az.traffic_manager_profile.min_length - valid_name_unique = length(regexall(local.az.traffic_manager_profile.regex, local.az.traffic_manager_profile.name_unique)) > 0 - } - virtual_wan = { - valid_name = length(regexall(local.az.virtual_wan.regex, local.az.virtual_wan.name)) > 0 && length(local.az.virtual_wan.name) > local.az.virtual_wan.min_length - valid_name_unique = length(regexall(local.az.virtual_wan.regex, local.az.virtual_wan.name_unique)) > 0 - } - virtual_network = { - valid_name = length(regexall(local.az.virtual_network.regex, local.az.virtual_network.name)) > 0 && length(local.az.virtual_network.name) > local.az.virtual_network.min_length - valid_name_unique = length(regexall(local.az.virtual_network.regex, local.az.virtual_network.name_unique)) > 0 - } - virtual_network_gateway = { - valid_name = length(regexall(local.az.virtual_network_gateway.regex, local.az.virtual_network_gateway.name)) > 0 && length(local.az.virtual_network_gateway.name) > local.az.virtual_network_gateway.min_length - valid_name_unique = length(regexall(local.az.virtual_network_gateway.regex, local.az.virtual_network_gateway.name_unique)) > 0 - } - virtual_network_peering = { - valid_name = length(regexall(local.az.virtual_network_peering.regex, local.az.virtual_network_peering.name)) > 0 && length(local.az.virtual_network_peering.name) > local.az.virtual_network_peering.min_length - valid_name_unique = length(regexall(local.az.virtual_network_peering.regex, local.az.virtual_network_peering.name_unique)) > 0 - } - network_interface = { - valid_name = length(regexall(local.az.network_interface.regex, local.az.network_interface.name)) > 0 && length(local.az.network_interface.name) > local.az.network_interface.min_length - valid_name_unique = length(regexall(local.az.network_interface.regex, local.az.network_interface.name_unique)) > 0 - } - firewall = { - valid_name = length(regexall(local.az.firewall.regex, local.az.firewall.name)) > 0 && length(local.az.firewall.name) > local.az.firewall.min_length - valid_name_unique = length(regexall(local.az.firewall.regex, local.az.firewall.name_unique)) > 0 - } - eventhub = { - valid_name = length(regexall(local.az.eventhub.regex, local.az.eventhub.name)) > 0 && length(local.az.eventhub.name) > local.az.eventhub.min_length - valid_name_unique = length(regexall(local.az.eventhub.regex, local.az.eventhub.name_unique)) > 0 - } - eventhub_namespace = { - valid_name = length(regexall(local.az.eventhub_namespace.regex, local.az.eventhub_namespace.name)) > 0 && length(local.az.eventhub_namespace.name) > local.az.eventhub_namespace.min_length - valid_name_unique = length(regexall(local.az.eventhub_namespace.regex, local.az.eventhub_namespace.name_unique)) > 0 - } - eventhub_authorization_rule = { - valid_name = length(regexall(local.az.eventhub_authorization_rule.regex, local.az.eventhub_authorization_rule.name)) > 0 && length(local.az.eventhub_authorization_rule.name) > local.az.eventhub_authorization_rule.min_length - valid_name_unique = length(regexall(local.az.eventhub_authorization_rule.regex, local.az.eventhub_authorization_rule.name_unique)) > 0 - } - eventhub_namespace_authorization_rule = { - valid_name = length(regexall(local.az.eventhub_namespace_authorization_rule.regex, local.az.eventhub_namespace_authorization_rule.name)) > 0 && length(local.az.eventhub_namespace_authorization_rule.name) > local.az.eventhub_namespace_authorization_rule.min_length - valid_name_unique = length(regexall(local.az.eventhub_namespace_authorization_rule.regex, local.az.eventhub_namespace_authorization_rule.name_unique)) > 0 - } - eventhub_namespace_disaster_recovery_config = { - valid_name = length(regexall(local.az.eventhub_namespace_disaster_recovery_config.regex, local.az.eventhub_namespace_disaster_recovery_config.name)) > 0 && length(local.az.eventhub_namespace_disaster_recovery_config.name) > local.az.eventhub_namespace_disaster_recovery_config.min_length - valid_name_unique = length(regexall(local.az.eventhub_namespace_disaster_recovery_config.regex, local.az.eventhub_namespace_disaster_recovery_config.name_unique)) > 0 - } - eventhub_consumer_group = { - valid_name = length(regexall(local.az.eventhub_consumer_group.regex, local.az.eventhub_consumer_group.name)) > 0 && length(local.az.eventhub_consumer_group.name) > local.az.eventhub_consumer_group.min_length - valid_name_unique = length(regexall(local.az.eventhub_consumer_group.regex, local.az.eventhub_consumer_group.name_unique)) > 0 - } - stream_analytics_job = { - valid_name = length(regexall(local.az.stream_analytics_job.regex, local.az.stream_analytics_job.name)) > 0 && length(local.az.stream_analytics_job.name) > local.az.stream_analytics_job.min_length - valid_name_unique = length(regexall(local.az.stream_analytics_job.regex, local.az.stream_analytics_job.name_unique)) > 0 - } - stream_analytics_function_javascript_udf = { - valid_name = length(regexall(local.az.stream_analytics_function_javascript_udf.regex, local.az.stream_analytics_function_javascript_udf.name)) > 0 && length(local.az.stream_analytics_function_javascript_udf.name) > local.az.stream_analytics_function_javascript_udf.min_length - valid_name_unique = length(regexall(local.az.stream_analytics_function_javascript_udf.regex, local.az.stream_analytics_function_javascript_udf.name_unique)) > 0 - } - stream_analytics_output_blob = { - valid_name = length(regexall(local.az.stream_analytics_output_blob.regex, local.az.stream_analytics_output_blob.name)) > 0 && length(local.az.stream_analytics_output_blob.name) > local.az.stream_analytics_output_blob.min_length - valid_name_unique = length(regexall(local.az.stream_analytics_output_blob.regex, local.az.stream_analytics_output_blob.name_unique)) > 0 - } - stream_analytics_output_mssql = { - valid_name = length(regexall(local.az.stream_analytics_output_mssql.regex, local.az.stream_analytics_output_mssql.name)) > 0 && length(local.az.stream_analytics_output_mssql.name) > local.az.stream_analytics_output_mssql.min_length - valid_name_unique = length(regexall(local.az.stream_analytics_output_mssql.regex, local.az.stream_analytics_output_mssql.name_unique)) > 0 - } - stream_analytics_output_eventhub = { - valid_name = length(regexall(local.az.stream_analytics_output_eventhub.regex, local.az.stream_analytics_output_eventhub.name)) > 0 && length(local.az.stream_analytics_output_eventhub.name) > local.az.stream_analytics_output_eventhub.min_length - valid_name_unique = length(regexall(local.az.stream_analytics_output_eventhub.regex, local.az.stream_analytics_output_eventhub.name_unique)) > 0 - } - stream_analytics_output_servicebus_queue = { - valid_name = length(regexall(local.az.stream_analytics_output_servicebus_queue.regex, local.az.stream_analytics_output_servicebus_queue.name)) > 0 && length(local.az.stream_analytics_output_servicebus_queue.name) > local.az.stream_analytics_output_servicebus_queue.min_length - valid_name_unique = length(regexall(local.az.stream_analytics_output_servicebus_queue.regex, local.az.stream_analytics_output_servicebus_queue.name_unique)) > 0 - } - stream_analytics_output_servicebus_topic = { - valid_name = length(regexall(local.az.stream_analytics_output_servicebus_topic.regex, local.az.stream_analytics_output_servicebus_topic.name)) > 0 && length(local.az.stream_analytics_output_servicebus_topic.name) > local.az.stream_analytics_output_servicebus_topic.min_length - valid_name_unique = length(regexall(local.az.stream_analytics_output_servicebus_topic.regex, local.az.stream_analytics_output_servicebus_topic.name_unique)) > 0 - } - stream_analytics_reference_input_blob = { - valid_name = length(regexall(local.az.stream_analytics_reference_input_blob.regex, local.az.stream_analytics_reference_input_blob.name)) > 0 && length(local.az.stream_analytics_reference_input_blob.name) > local.az.stream_analytics_reference_input_blob.min_length - valid_name_unique = length(regexall(local.az.stream_analytics_reference_input_blob.regex, local.az.stream_analytics_reference_input_blob.name_unique)) > 0 - } - stream_analytics_stream_input_blob = { - valid_name = length(regexall(local.az.stream_analytics_stream_input_blob.regex, local.az.stream_analytics_stream_input_blob.name)) > 0 && length(local.az.stream_analytics_stream_input_blob.name) > local.az.stream_analytics_stream_input_blob.min_length - valid_name_unique = length(regexall(local.az.stream_analytics_stream_input_blob.regex, local.az.stream_analytics_stream_input_blob.name_unique)) > 0 - } - stream_analytics_stream_input_eventhub = { - valid_name = length(regexall(local.az.stream_analytics_stream_input_eventhub.regex, local.az.stream_analytics_stream_input_eventhub.name)) > 0 && length(local.az.stream_analytics_stream_input_eventhub.name) > local.az.stream_analytics_stream_input_eventhub.min_length - valid_name_unique = length(regexall(local.az.stream_analytics_stream_input_eventhub.regex, local.az.stream_analytics_stream_input_eventhub.name_unique)) > 0 - } - stream_analytics_stream_input_iothub = { - valid_name = length(regexall(local.az.stream_analytics_stream_input_iothub.regex, local.az.stream_analytics_stream_input_iothub.name)) > 0 && length(local.az.stream_analytics_stream_input_iothub.name) > local.az.stream_analytics_stream_input_iothub.min_length - valid_name_unique = length(regexall(local.az.stream_analytics_stream_input_iothub.regex, local.az.stream_analytics_stream_input_iothub.name_unique)) > 0 - } - shared_image_gallery = { - valid_name = length(regexall(local.az.shared_image_gallery.regex, local.az.shared_image_gallery.name)) > 0 && length(local.az.shared_image_gallery.name) > local.az.shared_image_gallery.min_length - valid_name_unique = length(regexall(local.az.shared_image_gallery.regex, local.az.shared_image_gallery.name_unique)) > 0 - } - shared_image = { - valid_name = length(regexall(local.az.shared_image.regex, local.az.shared_image.name)) > 0 && length(local.az.shared_image.name) > local.az.shared_image.min_length - valid_name_unique = length(regexall(local.az.shared_image.regex, local.az.shared_image.name_unique)) > 0 - } - snapshots = { - valid_name = length(regexall(local.az.snapshots.regex, local.az.snapshots.name)) > 0 && length(local.az.snapshots.name) > local.az.snapshots.min_length - valid_name_unique = length(regexall(local.az.snapshots.regex, local.az.snapshots.name_unique)) > 0 - } - storage_account = { - valid_name = length(regexall(local.az.storage_account.regex, local.az.storage_account.name)) > 0 && length(local.az.storage_account.name) > local.az.storage_account.min_length - valid_name_unique = length(regexall(local.az.storage_account.regex, local.az.storage_account.name_unique)) > 0 - } - storage_container = { - valid_name = length(regexall(local.az.storage_container.regex, local.az.storage_container.name)) > 0 && length(local.az.storage_container.name) > local.az.storage_container.min_length - valid_name_unique = length(regexall(local.az.storage_container.regex, local.az.storage_container.name_unique)) > 0 - } - storage_data_lake_gen2_filesystem = { - valid_name = length(regexall(local.az.storage_data_lake_gen2_filesystem.regex, local.az.storage_data_lake_gen2_filesystem.name)) > 0 && length(local.az.storage_data_lake_gen2_filesystem.name) > local.az.storage_data_lake_gen2_filesystem.min_length - valid_name_unique = length(regexall(local.az.storage_data_lake_gen2_filesystem.regex, local.az.storage_data_lake_gen2_filesystem.name_unique)) > 0 - } - storage_queue = { - valid_name = length(regexall(local.az.storage_queue.regex, local.az.storage_queue.name)) > 0 && length(local.az.storage_queue.name) > local.az.storage_queue.min_length - valid_name_unique = length(regexall(local.az.storage_queue.regex, local.az.storage_queue.name_unique)) > 0 - } - storage_table = { - valid_name = length(regexall(local.az.storage_table.regex, local.az.storage_table.name)) > 0 && length(local.az.storage_table.name) > local.az.storage_table.min_length - valid_name_unique = length(regexall(local.az.storage_table.regex, local.az.storage_table.name_unique)) > 0 - } - storage_share = { - valid_name = length(regexall(local.az.storage_share.regex, local.az.storage_share.name)) > 0 && length(local.az.storage_share.name) > local.az.storage_share.min_length - valid_name_unique = length(regexall(local.az.storage_share.regex, local.az.storage_share.name_unique)) > 0 - } - storage_share_directory = { - valid_name = length(regexall(local.az.storage_share_directory.regex, local.az.storage_share_directory.name)) > 0 && length(local.az.storage_share_directory.name) > local.az.storage_share_directory.min_length - valid_name_unique = length(regexall(local.az.storage_share_directory.regex, local.az.storage_share_directory.name_unique)) > 0 - } - machine_learning_workspace = { - valid_name = length(regexall(local.az.machine_learning_workspace.regex, local.az.machine_learning_workspace.name)) > 0 && length(local.az.machine_learning_workspace.name) > local.az.machine_learning_workspace.min_length - valid_name_unique = length(regexall(local.az.machine_learning_workspace.regex, local.az.machine_learning_workspace.name_unique)) > 0 - } - storage_blob = { - valid_name = length(regexall(local.az.storage_blob.regex, local.az.storage_blob.name)) > 0 && length(local.az.storage_blob.name) > local.az.storage_blob.min_length - valid_name_unique = length(regexall(local.az.storage_blob.regex, local.az.storage_blob.name_unique)) > 0 - } - bastion_host = { - valid_name = length(regexall(local.az.bastion_host.regex, local.az.bastion_host.name)) > 0 && length(local.az.bastion_host.name) > local.az.bastion_host.min_length - valid_name_unique = length(regexall(local.az.bastion_host.regex, local.az.bastion_host.name_unique)) > 0 - } - local_network_gateway = { - valid_name = length(regexall(local.az.local_network_gateway.regex, local.az.local_network_gateway.name)) > 0 && length(local.az.local_network_gateway.name) > local.az.local_network_gateway.min_length - valid_name_unique = length(regexall(local.az.local_network_gateway.regex, local.az.local_network_gateway.name_unique)) > 0 - } - application_gateway = { - valid_name = length(regexall(local.az.application_gateway.regex, local.az.application_gateway.name)) > 0 && length(local.az.application_gateway.name) > local.az.application_gateway.min_length - valid_name_unique = length(regexall(local.az.application_gateway.regex, local.az.application_gateway.name_unique)) > 0 - } - express_route_gateway = { - valid_name = length(regexall(local.az.express_route_gateway.regex, local.az.express_route_gateway.name)) > 0 && length(local.az.express_route_gateway.name) > local.az.express_route_gateway.min_length - valid_name_unique = length(regexall(local.az.express_route_gateway.regex, local.az.express_route_gateway.name_unique)) > 0 - } - express_route_circuit = { - valid_name = length(regexall(local.az.express_route_circuit.regex, local.az.express_route_circuit.name)) > 0 && length(local.az.express_route_circuit.name) > local.az.express_route_circuit.min_length - valid_name_unique = length(regexall(local.az.express_route_circuit.regex, local.az.express_route_circuit.name_unique)) > 0 - } - point_to_site_vpn_gateway = { - valid_name = length(regexall(local.az.point_to_site_vpn_gateway.regex, local.az.point_to_site_vpn_gateway.name)) > 0 && length(local.az.point_to_site_vpn_gateway.name) > local.az.point_to_site_vpn_gateway.min_length - valid_name_unique = length(regexall(local.az.point_to_site_vpn_gateway.regex, local.az.point_to_site_vpn_gateway.name_unique)) > 0 - } - template_deployment = { - valid_name = length(regexall(local.az.template_deployment.regex, local.az.template_deployment.name)) > 0 && length(local.az.template_deployment.name) > local.az.template_deployment.min_length - valid_name_unique = length(regexall(local.az.template_deployment.regex, local.az.template_deployment.name_unique)) > 0 - } - sql_server = { - valid_name = length(regexall(local.az.sql_server.regex, local.az.sql_server.name)) > 0 && length(local.az.sql_server.name) > local.az.sql_server.min_length - valid_name_unique = length(regexall(local.az.sql_server.regex, local.az.sql_server.name_unique)) > 0 - } - mssql_server = { - valid_name = length(regexall(local.az.mssql_server.regex, local.az.mssql_server.name)) > 0 && length(local.az.mssql_server.name) > local.az.mssql_server.min_length - valid_name_unique = length(regexall(local.az.mssql_server.regex, local.az.mssql_server.name_unique)) > 0 - } - mssql_database = { - valid_name = length(regexall(local.az.mssql_database.regex, local.az.mssql_database.name)) > 0 && length(local.az.mssql_database.name) > local.az.mssql_database.min_length - valid_name_unique = length(regexall(local.az.mssql_database.regex, local.az.mssql_database.name_unique)) > 0 - } - sql_elasticpool = { - valid_name = length(regexall(local.az.sql_elasticpool.regex, local.az.sql_elasticpool.name)) > 0 && length(local.az.sql_elasticpool.name) > local.az.sql_elasticpool.min_length - valid_name_unique = length(regexall(local.az.sql_elasticpool.regex, local.az.sql_elasticpool.name_unique)) > 0 - } - mssql_elasticpool = { - valid_name = length(regexall(local.az.mssql_elasticpool.regex, local.az.mssql_elasticpool.name)) > 0 && length(local.az.mssql_elasticpool.name) > local.az.mssql_elasticpool.min_length - valid_name_unique = length(regexall(local.az.mssql_elasticpool.regex, local.az.mssql_elasticpool.name_unique)) > 0 - } - sql_failover_group = { - valid_name = length(regexall(local.az.sql_failover_group.regex, local.az.sql_failover_group.name)) > 0 && length(local.az.sql_failover_group.name) > local.az.sql_failover_group.min_length - valid_name_unique = length(regexall(local.az.sql_failover_group.regex, local.az.sql_failover_group.name_unique)) > 0 - } - sql_firewall_rule = { - valid_name = length(regexall(local.az.sql_firewall_rule.regex, local.az.sql_firewall_rule.name)) > 0 && length(local.az.sql_firewall_rule.name) > local.az.sql_firewall_rule.min_length - valid_name_unique = length(regexall(local.az.sql_firewall_rule.regex, local.az.sql_firewall_rule.name_unique)) > 0 - } - log_analytics_workspace = { - valid_name = length(regexall(local.az.log_analytics_workspace.regex, local.az.log_analytics_workspace.name)) > 0 && length(local.az.log_analytics_workspace.name) > local.az.log_analytics_workspace.min_length - valid_name_unique = length(regexall(local.az.log_analytics_workspace.regex, local.az.log_analytics_workspace.name_unique)) > 0 - } - service_fabric_cluster = { - valid_name = length(regexall(local.az.service_fabric_cluster.regex, local.az.service_fabric_cluster.name)) > 0 && length(local.az.service_fabric_cluster.name) > local.az.service_fabric_cluster.min_length - valid_name_unique = length(regexall(local.az.service_fabric_cluster.regex, local.az.service_fabric_cluster.name_unique)) > 0 - } - maps_account = { - valid_name = length(regexall(local.az.maps_account.regex, local.az.maps_account.name)) > 0 && length(local.az.maps_account.name) > local.az.maps_account.min_length - valid_name_unique = length(regexall(local.az.maps_account.regex, local.az.maps_account.name_unique)) > 0 - } - network_watcher = { - valid_name = length(regexall(local.az.network_watcher.regex, local.az.network_watcher.name)) > 0 && length(local.az.network_watcher.name) > local.az.network_watcher.min_length - valid_name_unique = length(regexall(local.az.network_watcher.regex, local.az.network_watcher.name_unique)) > 0 - } - resource_group = { - valid_name = length(regexall(local.az.resource_group.regex, local.az.resource_group.name)) > 0 && length(local.az.resource_group.name) > local.az.resource_group.min_length - valid_name_unique = length(regexall(local.az.resource_group.regex, local.az.resource_group.name_unique)) > 0 - } - network_security_group = { - valid_name = length(regexall(local.az.network_security_group.regex, local.az.network_security_group.name)) > 0 && length(local.az.network_security_group.name) > local.az.network_security_group.min_length - valid_name_unique = length(regexall(local.az.network_security_group.regex, local.az.network_security_group.name_unique)) > 0 - } - network_security_group_rule = { - valid_name = length(regexall(local.az.network_security_group_rule.regex, local.az.network_security_group_rule.name)) > 0 && length(local.az.network_security_group_rule.name) > local.az.network_security_group_rule.min_length - valid_name_unique = length(regexall(local.az.network_security_group_rule.regex, local.az.network_security_group_rule.name_unique)) > 0 - } - network_security_rule = { - valid_name = length(regexall(local.az.network_security_rule.regex, local.az.network_security_rule.name)) > 0 && length(local.az.network_security_rule.name) > local.az.network_security_rule.min_length - valid_name_unique = length(regexall(local.az.network_security_rule.regex, local.az.network_security_rule.name_unique)) > 0 - } - application_security_group = { - valid_name = length(regexall(local.az.application_security_group.regex, local.az.application_security_group.name)) > 0 && length(local.az.application_security_group.name) > local.az.application_security_group.min_length - valid_name_unique = length(regexall(local.az.application_security_group.regex, local.az.application_security_group.name_unique)) > 0 - } - dns_zone = { - valid_name = length(regexall(local.az.dns_zone.regex, local.az.dns_zone.name)) > 0 && length(local.az.dns_zone.name) > local.az.dns_zone.min_length - valid_name_unique = length(regexall(local.az.dns_zone.regex, local.az.dns_zone.name_unique)) > 0 - } - private_dns_zone = { - valid_name = length(regexall(local.az.private_dns_zone.regex, local.az.private_dns_zone.name)) > 0 && length(local.az.private_dns_zone.name) > local.az.private_dns_zone.min_length - valid_name_unique = length(regexall(local.az.private_dns_zone.regex, local.az.private_dns_zone.name_unique)) > 0 - } - notification_hub = { - valid_name = length(regexall(local.az.notification_hub.regex, local.az.notification_hub.name)) > 0 && length(local.az.notification_hub.name) > local.az.notification_hub.min_length - valid_name_unique = length(regexall(local.az.notification_hub.regex, local.az.notification_hub.name_unique)) > 0 - } - notification_hub_namespace = { - valid_name = length(regexall(local.az.notification_hub_namespace.regex, local.az.notification_hub_namespace.name)) > 0 && length(local.az.notification_hub_namespace.name) > local.az.notification_hub_namespace.min_length - valid_name_unique = length(regexall(local.az.notification_hub_namespace.regex, local.az.notification_hub_namespace.name_unique)) > 0 - } - notification_hub_authorization_rule = { - valid_name = length(regexall(local.az.notification_hub_authorization_rule.regex, local.az.notification_hub_authorization_rule.name)) > 0 && length(local.az.notification_hub_authorization_rule.name) > local.az.notification_hub_authorization_rule.min_length - valid_name_unique = length(regexall(local.az.notification_hub_authorization_rule.regex, local.az.notification_hub_authorization_rule.name_unique)) > 0 - } - servicebus_namespace = { - valid_name = length(regexall(local.az.servicebus_namespace.regex, local.az.servicebus_namespace.name)) > 0 && length(local.az.servicebus_namespace.name) > local.az.servicebus_namespace.min_length - valid_name_unique = length(regexall(local.az.servicebus_namespace.regex, local.az.servicebus_namespace.name_unique)) > 0 - } - servicebus_namespace_authorization_rule = { - valid_name = length(regexall(local.az.servicebus_namespace_authorization_rule.regex, local.az.servicebus_namespace_authorization_rule.name)) > 0 && length(local.az.servicebus_namespace_authorization_rule.name) > local.az.servicebus_namespace_authorization_rule.min_length - valid_name_unique = length(regexall(local.az.servicebus_namespace_authorization_rule.regex, local.az.servicebus_namespace_authorization_rule.name_unique)) > 0 - } - servicebus_queue = { - valid_name = length(regexall(local.az.servicebus_queue.regex, local.az.servicebus_queue.name)) > 0 && length(local.az.servicebus_queue.name) > local.az.servicebus_queue.min_length - valid_name_unique = length(regexall(local.az.servicebus_queue.regex, local.az.servicebus_queue.name_unique)) > 0 - } - servicebus_queue_authorization_rule = { - valid_name = length(regexall(local.az.servicebus_queue_authorization_rule.regex, local.az.servicebus_queue_authorization_rule.name)) > 0 && length(local.az.servicebus_queue_authorization_rule.name) > local.az.servicebus_queue_authorization_rule.min_length - valid_name_unique = length(regexall(local.az.servicebus_queue_authorization_rule.regex, local.az.servicebus_queue_authorization_rule.name_unique)) > 0 - } - servicebus_subscription = { - valid_name = length(regexall(local.az.servicebus_subscription.regex, local.az.servicebus_subscription.name)) > 0 && length(local.az.servicebus_subscription.name) > local.az.servicebus_subscription.min_length - valid_name_unique = length(regexall(local.az.servicebus_subscription.regex, local.az.servicebus_subscription.name_unique)) > 0 - } - servicebus_subscription_rule = { - valid_name = length(regexall(local.az.servicebus_subscription_rule.regex, local.az.servicebus_subscription_rule.name)) > 0 && length(local.az.servicebus_subscription_rule.name) > local.az.servicebus_subscription_rule.min_length - valid_name_unique = length(regexall(local.az.servicebus_subscription_rule.regex, local.az.servicebus_subscription_rule.name_unique)) > 0 - } - servicebus_topic = { - valid_name = length(regexall(local.az.servicebus_topic.regex, local.az.servicebus_topic.name)) > 0 && length(local.az.servicebus_topic.name) > local.az.servicebus_topic.min_length - valid_name_unique = length(regexall(local.az.servicebus_topic.regex, local.az.servicebus_topic.name_unique)) > 0 - } - servicebus_topic_authorization_rule = { - valid_name = length(regexall(local.az.servicebus_topic_authorization_rule.regex, local.az.servicebus_topic_authorization_rule.name)) > 0 && length(local.az.servicebus_topic_authorization_rule.name) > local.az.servicebus_topic_authorization_rule.min_length - valid_name_unique = length(regexall(local.az.servicebus_topic_authorization_rule.regex, local.az.servicebus_topic_authorization_rule.name_unique)) > 0 - } - powerbi_embedded = { - valid_name = length(regexall(local.az.powerbi_embedded.regex, local.az.powerbi_embedded.name)) > 0 && length(local.az.powerbi_embedded.name) > local.az.powerbi_embedded.min_length - valid_name_unique = length(regexall(local.az.powerbi_embedded.regex, local.az.powerbi_embedded.name_unique)) > 0 - } - dashboard = { - valid_name = length(regexall(local.az.dashboard.regex, local.az.dashboard.name)) > 0 && length(local.az.dashboard.name) > local.az.dashboard.min_length - valid_name_unique = length(regexall(local.az.dashboard.regex, local.az.dashboard.name_unique)) > 0 - } - signalr_service = { - valid_name = length(regexall(local.az.signalr_service.regex, local.az.signalr_service.name)) > 0 && length(local.az.signalr_service.name) > local.az.signalr_service.min_length - valid_name_unique = length(regexall(local.az.signalr_service.regex, local.az.signalr_service.name_unique)) > 0 - } - eventgrid_domain = { - valid_name = length(regexall(local.az.eventgrid_domain.regex, local.az.eventgrid_domain.name)) > 0 && length(local.az.eventgrid_domain.name) > local.az.eventgrid_domain.min_length - valid_name_unique = length(regexall(local.az.eventgrid_domain.regex, local.az.eventgrid_domain.name_unique)) > 0 - } - eventgrid_domain_topic = { - valid_name = length(regexall(local.az.eventgrid_domain_topic.regex, local.az.eventgrid_domain_topic.name)) > 0 && length(local.az.eventgrid_domain_topic.name) > local.az.eventgrid_domain_topic.min_length - valid_name_unique = length(regexall(local.az.eventgrid_domain_topic.regex, local.az.eventgrid_domain_topic.name_unique)) > 0 - } - eventgrid_event_subscription = { - valid_name = length(regexall(local.az.eventgrid_event_subscription.regex, local.az.eventgrid_event_subscription.name)) > 0 && length(local.az.eventgrid_event_subscription.name) > local.az.eventgrid_event_subscription.min_length - valid_name_unique = length(regexall(local.az.eventgrid_event_subscription.regex, local.az.eventgrid_event_subscription.name_unique)) > 0 - } - eventgrid_topic = { - valid_name = length(regexall(local.az.eventgrid_topic.regex, local.az.eventgrid_topic.name)) > 0 && length(local.az.eventgrid_topic.name) > local.az.eventgrid_topic.min_length - valid_name_unique = length(regexall(local.az.eventgrid_topic.regex, local.az.eventgrid_topic.name_unique)) > 0 - } - relay_namespace = { - valid_name = length(regexall(local.az.relay_namespace.regex, local.az.relay_namespace.name)) > 0 && length(local.az.relay_namespace.name) > local.az.relay_namespace.min_length - valid_name_unique = length(regexall(local.az.relay_namespace.regex, local.az.relay_namespace.name_unique)) > 0 - } - relay_hybrid_connection = { - valid_name = length(regexall(local.az.relay_hybrid_connection.regex, local.az.relay_hybrid_connection.name)) > 0 && length(local.az.relay_hybrid_connection.name) > local.az.relay_hybrid_connection.min_length - valid_name_unique = length(regexall(local.az.relay_hybrid_connection.regex, local.az.relay_hybrid_connection.name_unique)) > 0 - } - private_endpoint = { - valid_name = length(regexall(local.az.private_endpoint.regex, local.az.private_endpoint.name)) > 0 && length(local.az.private_endpoint.name) > local.az.private_endpoint.min_length - valid_name_unique = length(regexall(local.az.private_endpoint.regex, local.az.private_endpoint.name_unique)) > 0 - } - private_service_connection = { - valid_name = length(regexall(local.az.private_service_connection.regex, local.az.private_service_connection.name)) > 0 && length(local.az.private_service_connection.name) > local.az.private_service_connection.min_length - valid_name_unique = length(regexall(local.az.private_service_connection.regex, local.az.private_service_connection.name_unique)) > 0 - } - firewall_ip_configuration = { - valid_name = length(regexall(local.az.firewall_ip_configuration.regex, local.az.firewall_ip_configuration.name)) > 0 && length(local.az.firewall_ip_configuration.name) > local.az.firewall_ip_configuration.min_length - valid_name_unique = length(regexall(local.az.firewall_ip_configuration.regex, local.az.firewall_ip_configuration.name_unique)) > 0 - } - firewall_application_rule_collection = { - valid_name = length(regexall(local.az.firewall_application_rule_collection.regex, local.az.firewall_application_rule_collection.name)) > 0 && length(local.az.firewall_application_rule_collection.name) > local.az.firewall_application_rule_collection.min_length - valid_name_unique = length(regexall(local.az.firewall_application_rule_collection.regex, local.az.firewall_application_rule_collection.name_unique)) > 0 - } - firewall_nat_rule_collection = { - valid_name = length(regexall(local.az.firewall_nat_rule_collection.regex, local.az.firewall_nat_rule_collection.name)) > 0 && length(local.az.firewall_nat_rule_collection.name) > local.az.firewall_nat_rule_collection.min_length - valid_name_unique = length(regexall(local.az.firewall_nat_rule_collection.regex, local.az.firewall_nat_rule_collection.name_unique)) > 0 - } - firewall_network_rule_collection = { - valid_name = length(regexall(local.az.firewall_network_rule_collection.regex, local.az.firewall_network_rule_collection.name)) > 0 && length(local.az.firewall_network_rule_collection.name) > local.az.firewall_network_rule_collection.min_length - valid_name_unique = length(regexall(local.az.firewall_network_rule_collection.regex, local.az.firewall_network_rule_collection.name_unique)) > 0 + disk_encryption_set = { + valid_name = length(regexall(local.az.disk_encryption_set.regex, local.az.disk_encryption_set.name)) > 0 && length(local.az.disk_encryption_set.name) > local.az.disk_encryption_set.min_length + valid_name_unique = length(regexall(local.az.disk_encryption_set.regex, local.az.disk_encryption_set.name_unique)) > 0 } dns_a_record = { valid_name = length(regexall(local.az.dns_a_record.regex, local.az.dns_a_record.name)) > 0 && length(local.az.dns_a_record.name) > local.az.dns_a_record.min_length @@ -3026,6 +2500,318 @@ locals { valid_name = length(regexall(local.az.dns_txt_record.regex, local.az.dns_txt_record.name)) > 0 && length(local.az.dns_txt_record.name) > local.az.dns_txt_record.min_length valid_name_unique = length(regexall(local.az.dns_txt_record.regex, local.az.dns_txt_record.name_unique)) > 0 } + dns_zone = { + valid_name = length(regexall(local.az.dns_zone.regex, local.az.dns_zone.name)) > 0 && length(local.az.dns_zone.name) > local.az.dns_zone.min_length + valid_name_unique = length(regexall(local.az.dns_zone.regex, local.az.dns_zone.name_unique)) > 0 + } + eventgrid_domain = { + valid_name = length(regexall(local.az.eventgrid_domain.regex, local.az.eventgrid_domain.name)) > 0 && length(local.az.eventgrid_domain.name) > local.az.eventgrid_domain.min_length + valid_name_unique = length(regexall(local.az.eventgrid_domain.regex, local.az.eventgrid_domain.name_unique)) > 0 + } + eventgrid_domain_topic = { + valid_name = length(regexall(local.az.eventgrid_domain_topic.regex, local.az.eventgrid_domain_topic.name)) > 0 && length(local.az.eventgrid_domain_topic.name) > local.az.eventgrid_domain_topic.min_length + valid_name_unique = length(regexall(local.az.eventgrid_domain_topic.regex, local.az.eventgrid_domain_topic.name_unique)) > 0 + } + eventgrid_event_subscription = { + valid_name = length(regexall(local.az.eventgrid_event_subscription.regex, local.az.eventgrid_event_subscription.name)) > 0 && length(local.az.eventgrid_event_subscription.name) > local.az.eventgrid_event_subscription.min_length + valid_name_unique = length(regexall(local.az.eventgrid_event_subscription.regex, local.az.eventgrid_event_subscription.name_unique)) > 0 + } + eventgrid_topic = { + valid_name = length(regexall(local.az.eventgrid_topic.regex, local.az.eventgrid_topic.name)) > 0 && length(local.az.eventgrid_topic.name) > local.az.eventgrid_topic.min_length + valid_name_unique = length(regexall(local.az.eventgrid_topic.regex, local.az.eventgrid_topic.name_unique)) > 0 + } + eventhub = { + valid_name = length(regexall(local.az.eventhub.regex, local.az.eventhub.name)) > 0 && length(local.az.eventhub.name) > local.az.eventhub.min_length + valid_name_unique = length(regexall(local.az.eventhub.regex, local.az.eventhub.name_unique)) > 0 + } + eventhub_authorization_rule = { + valid_name = length(regexall(local.az.eventhub_authorization_rule.regex, local.az.eventhub_authorization_rule.name)) > 0 && length(local.az.eventhub_authorization_rule.name) > local.az.eventhub_authorization_rule.min_length + valid_name_unique = length(regexall(local.az.eventhub_authorization_rule.regex, local.az.eventhub_authorization_rule.name_unique)) > 0 + } + eventhub_consumer_group = { + valid_name = length(regexall(local.az.eventhub_consumer_group.regex, local.az.eventhub_consumer_group.name)) > 0 && length(local.az.eventhub_consumer_group.name) > local.az.eventhub_consumer_group.min_length + valid_name_unique = length(regexall(local.az.eventhub_consumer_group.regex, local.az.eventhub_consumer_group.name_unique)) > 0 + } + eventhub_namespace = { + valid_name = length(regexall(local.az.eventhub_namespace.regex, local.az.eventhub_namespace.name)) > 0 && length(local.az.eventhub_namespace.name) > local.az.eventhub_namespace.min_length + valid_name_unique = length(regexall(local.az.eventhub_namespace.regex, local.az.eventhub_namespace.name_unique)) > 0 + } + eventhub_namespace_authorization_rule = { + valid_name = length(regexall(local.az.eventhub_namespace_authorization_rule.regex, local.az.eventhub_namespace_authorization_rule.name)) > 0 && length(local.az.eventhub_namespace_authorization_rule.name) > local.az.eventhub_namespace_authorization_rule.min_length + valid_name_unique = length(regexall(local.az.eventhub_namespace_authorization_rule.regex, local.az.eventhub_namespace_authorization_rule.name_unique)) > 0 + } + eventhub_namespace_disaster_recovery_config = { + valid_name = length(regexall(local.az.eventhub_namespace_disaster_recovery_config.regex, local.az.eventhub_namespace_disaster_recovery_config.name)) > 0 && length(local.az.eventhub_namespace_disaster_recovery_config.name) > local.az.eventhub_namespace_disaster_recovery_config.min_length + valid_name_unique = length(regexall(local.az.eventhub_namespace_disaster_recovery_config.regex, local.az.eventhub_namespace_disaster_recovery_config.name_unique)) > 0 + } + express_route_circuit = { + valid_name = length(regexall(local.az.express_route_circuit.regex, local.az.express_route_circuit.name)) > 0 && length(local.az.express_route_circuit.name) > local.az.express_route_circuit.min_length + valid_name_unique = length(regexall(local.az.express_route_circuit.regex, local.az.express_route_circuit.name_unique)) > 0 + } + express_route_gateway = { + valid_name = length(regexall(local.az.express_route_gateway.regex, local.az.express_route_gateway.name)) > 0 && length(local.az.express_route_gateway.name) > local.az.express_route_gateway.min_length + valid_name_unique = length(regexall(local.az.express_route_gateway.regex, local.az.express_route_gateway.name_unique)) > 0 + } + firewall = { + valid_name = length(regexall(local.az.firewall.regex, local.az.firewall.name)) > 0 && length(local.az.firewall.name) > local.az.firewall.min_length + valid_name_unique = length(regexall(local.az.firewall.regex, local.az.firewall.name_unique)) > 0 + } + firewall_application_rule_collection = { + valid_name = length(regexall(local.az.firewall_application_rule_collection.regex, local.az.firewall_application_rule_collection.name)) > 0 && length(local.az.firewall_application_rule_collection.name) > local.az.firewall_application_rule_collection.min_length + valid_name_unique = length(regexall(local.az.firewall_application_rule_collection.regex, local.az.firewall_application_rule_collection.name_unique)) > 0 + } + firewall_ip_configuration = { + valid_name = length(regexall(local.az.firewall_ip_configuration.regex, local.az.firewall_ip_configuration.name)) > 0 && length(local.az.firewall_ip_configuration.name) > local.az.firewall_ip_configuration.min_length + valid_name_unique = length(regexall(local.az.firewall_ip_configuration.regex, local.az.firewall_ip_configuration.name_unique)) > 0 + } + firewall_nat_rule_collection = { + valid_name = length(regexall(local.az.firewall_nat_rule_collection.regex, local.az.firewall_nat_rule_collection.name)) > 0 && length(local.az.firewall_nat_rule_collection.name) > local.az.firewall_nat_rule_collection.min_length + valid_name_unique = length(regexall(local.az.firewall_nat_rule_collection.regex, local.az.firewall_nat_rule_collection.name_unique)) > 0 + } + firewall_network_rule_collection = { + valid_name = length(regexall(local.az.firewall_network_rule_collection.regex, local.az.firewall_network_rule_collection.name)) > 0 && length(local.az.firewall_network_rule_collection.name) > local.az.firewall_network_rule_collection.min_length + valid_name_unique = length(regexall(local.az.firewall_network_rule_collection.regex, local.az.firewall_network_rule_collection.name_unique)) > 0 + } + frontdoor = { + valid_name = length(regexall(local.az.frontdoor.regex, local.az.frontdoor.name)) > 0 && length(local.az.frontdoor.name) > local.az.frontdoor.min_length + valid_name_unique = length(regexall(local.az.frontdoor.regex, local.az.frontdoor.name_unique)) > 0 + } + frontdoor_firewall_policy = { + valid_name = length(regexall(local.az.frontdoor_firewall_policy.regex, local.az.frontdoor_firewall_policy.name)) > 0 && length(local.az.frontdoor_firewall_policy.name) > local.az.frontdoor_firewall_policy.min_length + valid_name_unique = length(regexall(local.az.frontdoor_firewall_policy.regex, local.az.frontdoor_firewall_policy.name_unique)) > 0 + } + function_app = { + valid_name = length(regexall(local.az.function_app.regex, local.az.function_app.name)) > 0 && length(local.az.function_app.name) > local.az.function_app.min_length + valid_name_unique = length(regexall(local.az.function_app.regex, local.az.function_app.name_unique)) > 0 + } + hdinsight_hadoop_cluster = { + valid_name = length(regexall(local.az.hdinsight_hadoop_cluster.regex, local.az.hdinsight_hadoop_cluster.name)) > 0 && length(local.az.hdinsight_hadoop_cluster.name) > local.az.hdinsight_hadoop_cluster.min_length + valid_name_unique = length(regexall(local.az.hdinsight_hadoop_cluster.regex, local.az.hdinsight_hadoop_cluster.name_unique)) > 0 + } + hdinsight_hbase_cluster = { + valid_name = length(regexall(local.az.hdinsight_hbase_cluster.regex, local.az.hdinsight_hbase_cluster.name)) > 0 && length(local.az.hdinsight_hbase_cluster.name) > local.az.hdinsight_hbase_cluster.min_length + valid_name_unique = length(regexall(local.az.hdinsight_hbase_cluster.regex, local.az.hdinsight_hbase_cluster.name_unique)) > 0 + } + hdinsight_interactive_query_cluster = { + valid_name = length(regexall(local.az.hdinsight_interactive_query_cluster.regex, local.az.hdinsight_interactive_query_cluster.name)) > 0 && length(local.az.hdinsight_interactive_query_cluster.name) > local.az.hdinsight_interactive_query_cluster.min_length + valid_name_unique = length(regexall(local.az.hdinsight_interactive_query_cluster.regex, local.az.hdinsight_interactive_query_cluster.name_unique)) > 0 + } + hdinsight_kafka_cluster = { + valid_name = length(regexall(local.az.hdinsight_kafka_cluster.regex, local.az.hdinsight_kafka_cluster.name)) > 0 && length(local.az.hdinsight_kafka_cluster.name) > local.az.hdinsight_kafka_cluster.min_length + valid_name_unique = length(regexall(local.az.hdinsight_kafka_cluster.regex, local.az.hdinsight_kafka_cluster.name_unique)) > 0 + } + hdinsight_ml_services_cluster = { + valid_name = length(regexall(local.az.hdinsight_ml_services_cluster.regex, local.az.hdinsight_ml_services_cluster.name)) > 0 && length(local.az.hdinsight_ml_services_cluster.name) > local.az.hdinsight_ml_services_cluster.min_length + valid_name_unique = length(regexall(local.az.hdinsight_ml_services_cluster.regex, local.az.hdinsight_ml_services_cluster.name_unique)) > 0 + } + hdinsight_rserver_cluster = { + valid_name = length(regexall(local.az.hdinsight_rserver_cluster.regex, local.az.hdinsight_rserver_cluster.name)) > 0 && length(local.az.hdinsight_rserver_cluster.name) > local.az.hdinsight_rserver_cluster.min_length + valid_name_unique = length(regexall(local.az.hdinsight_rserver_cluster.regex, local.az.hdinsight_rserver_cluster.name_unique)) > 0 + } + hdinsight_spark_cluster = { + valid_name = length(regexall(local.az.hdinsight_spark_cluster.regex, local.az.hdinsight_spark_cluster.name)) > 0 && length(local.az.hdinsight_spark_cluster.name) > local.az.hdinsight_spark_cluster.min_length + valid_name_unique = length(regexall(local.az.hdinsight_spark_cluster.regex, local.az.hdinsight_spark_cluster.name_unique)) > 0 + } + hdinsight_storm_cluster = { + valid_name = length(regexall(local.az.hdinsight_storm_cluster.regex, local.az.hdinsight_storm_cluster.name)) > 0 && length(local.az.hdinsight_storm_cluster.name) > local.az.hdinsight_storm_cluster.min_length + valid_name_unique = length(regexall(local.az.hdinsight_storm_cluster.regex, local.az.hdinsight_storm_cluster.name_unique)) > 0 + } + image = { + valid_name = length(regexall(local.az.image.regex, local.az.image.name)) > 0 && length(local.az.image.name) > local.az.image.min_length + valid_name_unique = length(regexall(local.az.image.regex, local.az.image.name_unique)) > 0 + } + iotcentral_application = { + valid_name = length(regexall(local.az.iotcentral_application.regex, local.az.iotcentral_application.name)) > 0 && length(local.az.iotcentral_application.name) > local.az.iotcentral_application.min_length + valid_name_unique = length(regexall(local.az.iotcentral_application.regex, local.az.iotcentral_application.name_unique)) > 0 + } + iothub = { + valid_name = length(regexall(local.az.iothub.regex, local.az.iothub.name)) > 0 && length(local.az.iothub.name) > local.az.iothub.min_length + valid_name_unique = length(regexall(local.az.iothub.regex, local.az.iothub.name_unique)) > 0 + } + iothub_consumer_group = { + valid_name = length(regexall(local.az.iothub_consumer_group.regex, local.az.iothub_consumer_group.name)) > 0 && length(local.az.iothub_consumer_group.name) > local.az.iothub_consumer_group.min_length + valid_name_unique = length(regexall(local.az.iothub_consumer_group.regex, local.az.iothub_consumer_group.name_unique)) > 0 + } + iothub_dps = { + valid_name = length(regexall(local.az.iothub_dps.regex, local.az.iothub_dps.name)) > 0 && length(local.az.iothub_dps.name) > local.az.iothub_dps.min_length + valid_name_unique = length(regexall(local.az.iothub_dps.regex, local.az.iothub_dps.name_unique)) > 0 + } + iothub_dps_certificate = { + valid_name = length(regexall(local.az.iothub_dps_certificate.regex, local.az.iothub_dps_certificate.name)) > 0 && length(local.az.iothub_dps_certificate.name) > local.az.iothub_dps_certificate.min_length + valid_name_unique = length(regexall(local.az.iothub_dps_certificate.regex, local.az.iothub_dps_certificate.name_unique)) > 0 + } + key_vault = { + valid_name = length(regexall(local.az.key_vault.regex, local.az.key_vault.name)) > 0 && length(local.az.key_vault.name) > local.az.key_vault.min_length + valid_name_unique = length(regexall(local.az.key_vault.regex, local.az.key_vault.name_unique)) > 0 + } + key_vault_certificate = { + valid_name = length(regexall(local.az.key_vault_certificate.regex, local.az.key_vault_certificate.name)) > 0 && length(local.az.key_vault_certificate.name) > local.az.key_vault_certificate.min_length + valid_name_unique = length(regexall(local.az.key_vault_certificate.regex, local.az.key_vault_certificate.name_unique)) > 0 + } + key_vault_key = { + valid_name = length(regexall(local.az.key_vault_key.regex, local.az.key_vault_key.name)) > 0 && length(local.az.key_vault_key.name) > local.az.key_vault_key.min_length + valid_name_unique = length(regexall(local.az.key_vault_key.regex, local.az.key_vault_key.name_unique)) > 0 + } + key_vault_secret = { + valid_name = length(regexall(local.az.key_vault_secret.regex, local.az.key_vault_secret.name)) > 0 && length(local.az.key_vault_secret.name) > local.az.key_vault_secret.min_length + valid_name_unique = length(regexall(local.az.key_vault_secret.regex, local.az.key_vault_secret.name_unique)) > 0 + } + kubernetes_cluster = { + valid_name = length(regexall(local.az.kubernetes_cluster.regex, local.az.kubernetes_cluster.name)) > 0 && length(local.az.kubernetes_cluster.name) > local.az.kubernetes_cluster.min_length + valid_name_unique = length(regexall(local.az.kubernetes_cluster.regex, local.az.kubernetes_cluster.name_unique)) > 0 + } + kusto_cluster = { + valid_name = length(regexall(local.az.kusto_cluster.regex, local.az.kusto_cluster.name)) > 0 && length(local.az.kusto_cluster.name) > local.az.kusto_cluster.min_length + valid_name_unique = length(regexall(local.az.kusto_cluster.regex, local.az.kusto_cluster.name_unique)) > 0 + } + kusto_database = { + valid_name = length(regexall(local.az.kusto_database.regex, local.az.kusto_database.name)) > 0 && length(local.az.kusto_database.name) > local.az.kusto_database.min_length + valid_name_unique = length(regexall(local.az.kusto_database.regex, local.az.kusto_database.name_unique)) > 0 + } + kusto_eventhub_data_connection = { + valid_name = length(regexall(local.az.kusto_eventhub_data_connection.regex, local.az.kusto_eventhub_data_connection.name)) > 0 && length(local.az.kusto_eventhub_data_connection.name) > local.az.kusto_eventhub_data_connection.min_length + valid_name_unique = length(regexall(local.az.kusto_eventhub_data_connection.regex, local.az.kusto_eventhub_data_connection.name_unique)) > 0 + } + lb = { + valid_name = length(regexall(local.az.lb.regex, local.az.lb.name)) > 0 && length(local.az.lb.name) > local.az.lb.min_length + valid_name_unique = length(regexall(local.az.lb.regex, local.az.lb.name_unique)) > 0 + } + lb_nat_rule = { + valid_name = length(regexall(local.az.lb_nat_rule.regex, local.az.lb_nat_rule.name)) > 0 && length(local.az.lb_nat_rule.name) > local.az.lb_nat_rule.min_length + valid_name_unique = length(regexall(local.az.lb_nat_rule.regex, local.az.lb_nat_rule.name_unique)) > 0 + } + linux_virtual_machine = { + valid_name = length(regexall(local.az.linux_virtual_machine.regex, local.az.linux_virtual_machine.name)) > 0 && length(local.az.linux_virtual_machine.name) > local.az.linux_virtual_machine.min_length + valid_name_unique = length(regexall(local.az.linux_virtual_machine.regex, local.az.linux_virtual_machine.name_unique)) > 0 + } + linux_virtual_machine_scale_set = { + valid_name = length(regexall(local.az.linux_virtual_machine_scale_set.regex, local.az.linux_virtual_machine_scale_set.name)) > 0 && length(local.az.linux_virtual_machine_scale_set.name) > local.az.linux_virtual_machine_scale_set.min_length + valid_name_unique = length(regexall(local.az.linux_virtual_machine_scale_set.regex, local.az.linux_virtual_machine_scale_set.name_unique)) > 0 + } + local_network_gateway = { + valid_name = length(regexall(local.az.local_network_gateway.regex, local.az.local_network_gateway.name)) > 0 && length(local.az.local_network_gateway.name) > local.az.local_network_gateway.min_length + valid_name_unique = length(regexall(local.az.local_network_gateway.regex, local.az.local_network_gateway.name_unique)) > 0 + } + log_analytics_workspace = { + valid_name = length(regexall(local.az.log_analytics_workspace.regex, local.az.log_analytics_workspace.name)) > 0 && length(local.az.log_analytics_workspace.name) > local.az.log_analytics_workspace.min_length + valid_name_unique = length(regexall(local.az.log_analytics_workspace.regex, local.az.log_analytics_workspace.name_unique)) > 0 + } + machine_learning_workspace = { + valid_name = length(regexall(local.az.machine_learning_workspace.regex, local.az.machine_learning_workspace.name)) > 0 && length(local.az.machine_learning_workspace.name) > local.az.machine_learning_workspace.min_length + valid_name_unique = length(regexall(local.az.machine_learning_workspace.regex, local.az.machine_learning_workspace.name_unique)) > 0 + } + managed_disk = { + valid_name = length(regexall(local.az.managed_disk.regex, local.az.managed_disk.name)) > 0 && length(local.az.managed_disk.name) > local.az.managed_disk.min_length + valid_name_unique = length(regexall(local.az.managed_disk.regex, local.az.managed_disk.name_unique)) > 0 + } + maps_account = { + valid_name = length(regexall(local.az.maps_account.regex, local.az.maps_account.name)) > 0 && length(local.az.maps_account.name) > local.az.maps_account.min_length + valid_name_unique = length(regexall(local.az.maps_account.regex, local.az.maps_account.name_unique)) > 0 + } + mariadb_database = { + valid_name = length(regexall(local.az.mariadb_database.regex, local.az.mariadb_database.name)) > 0 && length(local.az.mariadb_database.name) > local.az.mariadb_database.min_length + valid_name_unique = length(regexall(local.az.mariadb_database.regex, local.az.mariadb_database.name_unique)) > 0 + } + mariadb_firewall_rule = { + valid_name = length(regexall(local.az.mariadb_firewall_rule.regex, local.az.mariadb_firewall_rule.name)) > 0 && length(local.az.mariadb_firewall_rule.name) > local.az.mariadb_firewall_rule.min_length + valid_name_unique = length(regexall(local.az.mariadb_firewall_rule.regex, local.az.mariadb_firewall_rule.name_unique)) > 0 + } + mariadb_server = { + valid_name = length(regexall(local.az.mariadb_server.regex, local.az.mariadb_server.name)) > 0 && length(local.az.mariadb_server.name) > local.az.mariadb_server.min_length + valid_name_unique = length(regexall(local.az.mariadb_server.regex, local.az.mariadb_server.name_unique)) > 0 + } + mariadb_virtual_network_rule = { + valid_name = length(regexall(local.az.mariadb_virtual_network_rule.regex, local.az.mariadb_virtual_network_rule.name)) > 0 && length(local.az.mariadb_virtual_network_rule.name) > local.az.mariadb_virtual_network_rule.min_length + valid_name_unique = length(regexall(local.az.mariadb_virtual_network_rule.regex, local.az.mariadb_virtual_network_rule.name_unique)) > 0 + } + mssql_database = { + valid_name = length(regexall(local.az.mssql_database.regex, local.az.mssql_database.name)) > 0 && length(local.az.mssql_database.name) > local.az.mssql_database.min_length + valid_name_unique = length(regexall(local.az.mssql_database.regex, local.az.mssql_database.name_unique)) > 0 + } + mssql_elasticpool = { + valid_name = length(regexall(local.az.mssql_elasticpool.regex, local.az.mssql_elasticpool.name)) > 0 && length(local.az.mssql_elasticpool.name) > local.az.mssql_elasticpool.min_length + valid_name_unique = length(regexall(local.az.mssql_elasticpool.regex, local.az.mssql_elasticpool.name_unique)) > 0 + } + mssql_server = { + valid_name = length(regexall(local.az.mssql_server.regex, local.az.mssql_server.name)) > 0 && length(local.az.mssql_server.name) > local.az.mssql_server.min_length + valid_name_unique = length(regexall(local.az.mssql_server.regex, local.az.mssql_server.name_unique)) > 0 + } + mysql_database = { + valid_name = length(regexall(local.az.mysql_database.regex, local.az.mysql_database.name)) > 0 && length(local.az.mysql_database.name) > local.az.mysql_database.min_length + valid_name_unique = length(regexall(local.az.mysql_database.regex, local.az.mysql_database.name_unique)) > 0 + } + mysql_firewall_rule = { + valid_name = length(regexall(local.az.mysql_firewall_rule.regex, local.az.mysql_firewall_rule.name)) > 0 && length(local.az.mysql_firewall_rule.name) > local.az.mysql_firewall_rule.min_length + valid_name_unique = length(regexall(local.az.mysql_firewall_rule.regex, local.az.mysql_firewall_rule.name_unique)) > 0 + } + mysql_server = { + valid_name = length(regexall(local.az.mysql_server.regex, local.az.mysql_server.name)) > 0 && length(local.az.mysql_server.name) > local.az.mysql_server.min_length + valid_name_unique = length(regexall(local.az.mysql_server.regex, local.az.mysql_server.name_unique)) > 0 + } + mysql_virtual_network_rule = { + valid_name = length(regexall(local.az.mysql_virtual_network_rule.regex, local.az.mysql_virtual_network_rule.name)) > 0 && length(local.az.mysql_virtual_network_rule.name) > local.az.mysql_virtual_network_rule.min_length + valid_name_unique = length(regexall(local.az.mysql_virtual_network_rule.regex, local.az.mysql_virtual_network_rule.name_unique)) > 0 + } + network_ddos_protection_plan = { + valid_name = length(regexall(local.az.network_ddos_protection_plan.regex, local.az.network_ddos_protection_plan.name)) > 0 && length(local.az.network_ddos_protection_plan.name) > local.az.network_ddos_protection_plan.min_length + valid_name_unique = length(regexall(local.az.network_ddos_protection_plan.regex, local.az.network_ddos_protection_plan.name_unique)) > 0 + } + network_interface = { + valid_name = length(regexall(local.az.network_interface.regex, local.az.network_interface.name)) > 0 && length(local.az.network_interface.name) > local.az.network_interface.min_length + valid_name_unique = length(regexall(local.az.network_interface.regex, local.az.network_interface.name_unique)) > 0 + } + network_security_group = { + valid_name = length(regexall(local.az.network_security_group.regex, local.az.network_security_group.name)) > 0 && length(local.az.network_security_group.name) > local.az.network_security_group.min_length + valid_name_unique = length(regexall(local.az.network_security_group.regex, local.az.network_security_group.name_unique)) > 0 + } + network_security_group_rule = { + valid_name = length(regexall(local.az.network_security_group_rule.regex, local.az.network_security_group_rule.name)) > 0 && length(local.az.network_security_group_rule.name) > local.az.network_security_group_rule.min_length + valid_name_unique = length(regexall(local.az.network_security_group_rule.regex, local.az.network_security_group_rule.name_unique)) > 0 + } + network_security_rule = { + valid_name = length(regexall(local.az.network_security_rule.regex, local.az.network_security_rule.name)) > 0 && length(local.az.network_security_rule.name) > local.az.network_security_rule.min_length + valid_name_unique = length(regexall(local.az.network_security_rule.regex, local.az.network_security_rule.name_unique)) > 0 + } + network_watcher = { + valid_name = length(regexall(local.az.network_watcher.regex, local.az.network_watcher.name)) > 0 && length(local.az.network_watcher.name) > local.az.network_watcher.min_length + valid_name_unique = length(regexall(local.az.network_watcher.regex, local.az.network_watcher.name_unique)) > 0 + } + notification_hub = { + valid_name = length(regexall(local.az.notification_hub.regex, local.az.notification_hub.name)) > 0 && length(local.az.notification_hub.name) > local.az.notification_hub.min_length + valid_name_unique = length(regexall(local.az.notification_hub.regex, local.az.notification_hub.name_unique)) > 0 + } + notification_hub_authorization_rule = { + valid_name = length(regexall(local.az.notification_hub_authorization_rule.regex, local.az.notification_hub_authorization_rule.name)) > 0 && length(local.az.notification_hub_authorization_rule.name) > local.az.notification_hub_authorization_rule.min_length + valid_name_unique = length(regexall(local.az.notification_hub_authorization_rule.regex, local.az.notification_hub_authorization_rule.name_unique)) > 0 + } + notification_hub_namespace = { + valid_name = length(regexall(local.az.notification_hub_namespace.regex, local.az.notification_hub_namespace.name)) > 0 && length(local.az.notification_hub_namespace.name) > local.az.notification_hub_namespace.min_length + valid_name_unique = length(regexall(local.az.notification_hub_namespace.regex, local.az.notification_hub_namespace.name_unique)) > 0 + } + point_to_site_vpn_gateway = { + valid_name = length(regexall(local.az.point_to_site_vpn_gateway.regex, local.az.point_to_site_vpn_gateway.name)) > 0 && length(local.az.point_to_site_vpn_gateway.name) > local.az.point_to_site_vpn_gateway.min_length + valid_name_unique = length(regexall(local.az.point_to_site_vpn_gateway.regex, local.az.point_to_site_vpn_gateway.name_unique)) > 0 + } + postgresql_database = { + valid_name = length(regexall(local.az.postgresql_database.regex, local.az.postgresql_database.name)) > 0 && length(local.az.postgresql_database.name) > local.az.postgresql_database.min_length + valid_name_unique = length(regexall(local.az.postgresql_database.regex, local.az.postgresql_database.name_unique)) > 0 + } + postgresql_firewall_rule = { + valid_name = length(regexall(local.az.postgresql_firewall_rule.regex, local.az.postgresql_firewall_rule.name)) > 0 && length(local.az.postgresql_firewall_rule.name) > local.az.postgresql_firewall_rule.min_length + valid_name_unique = length(regexall(local.az.postgresql_firewall_rule.regex, local.az.postgresql_firewall_rule.name_unique)) > 0 + } + postgresql_server = { + valid_name = length(regexall(local.az.postgresql_server.regex, local.az.postgresql_server.name)) > 0 && length(local.az.postgresql_server.name) > local.az.postgresql_server.min_length + valid_name_unique = length(regexall(local.az.postgresql_server.regex, local.az.postgresql_server.name_unique)) > 0 + } + postgresql_virtual_network_rule = { + valid_name = length(regexall(local.az.postgresql_virtual_network_rule.regex, local.az.postgresql_virtual_network_rule.name)) > 0 && length(local.az.postgresql_virtual_network_rule.name) > local.az.postgresql_virtual_network_rule.min_length + valid_name_unique = length(regexall(local.az.postgresql_virtual_network_rule.regex, local.az.postgresql_virtual_network_rule.name_unique)) > 0 + } + powerbi_embedded = { + valid_name = length(regexall(local.az.powerbi_embedded.regex, local.az.powerbi_embedded.name)) > 0 && length(local.az.powerbi_embedded.name) > local.az.powerbi_embedded.min_length + valid_name_unique = length(regexall(local.az.powerbi_embedded.regex, local.az.powerbi_embedded.name_unique)) > 0 + } private_dns_a_record = { valid_name = length(regexall(local.az.private_dns_a_record.regex, local.az.private_dns_a_record.name)) > 0 && length(local.az.private_dns_a_record.name) > local.az.private_dns_a_record.min_length valid_name_unique = length(regexall(local.az.private_dns_a_record.regex, local.az.private_dns_a_record.name_unique)) > 0 @@ -3054,41 +2840,269 @@ locals { valid_name = length(regexall(local.az.private_dns_txt_record.regex, local.az.private_dns_txt_record.name)) > 0 && length(local.az.private_dns_txt_record.name) > local.az.private_dns_txt_record.min_length valid_name_unique = length(regexall(local.az.private_dns_txt_record.regex, local.az.private_dns_txt_record.name_unique)) > 0 } - virtual_machine_extension = { - valid_name = length(regexall(local.az.virtual_machine_extension.regex, local.az.virtual_machine_extension.name)) > 0 && length(local.az.virtual_machine_extension.name) > local.az.virtual_machine_extension.min_length - valid_name_unique = length(regexall(local.az.virtual_machine_extension.regex, local.az.virtual_machine_extension.name_unique)) > 0 - } - virtual_machine_scale_set_extension = { - valid_name = length(regexall(local.az.virtual_machine_scale_set_extension.regex, local.az.virtual_machine_scale_set_extension.name)) > 0 && length(local.az.virtual_machine_scale_set_extension.name) > local.az.virtual_machine_scale_set_extension.min_length - valid_name_unique = length(regexall(local.az.virtual_machine_scale_set_extension.regex, local.az.virtual_machine_scale_set_extension.name_unique)) > 0 - } - network_ddos_protection_plan = { - valid_name = length(regexall(local.az.network_ddos_protection_plan.regex, local.az.network_ddos_protection_plan.name)) > 0 && length(local.az.network_ddos_protection_plan.name) > local.az.network_ddos_protection_plan.min_length - valid_name_unique = length(regexall(local.az.network_ddos_protection_plan.regex, local.az.network_ddos_protection_plan.name_unique)) > 0 + private_dns_zone = { + valid_name = length(regexall(local.az.private_dns_zone.regex, local.az.private_dns_zone.name)) > 0 && length(local.az.private_dns_zone.name) > local.az.private_dns_zone.min_length + valid_name_unique = length(regexall(local.az.private_dns_zone.regex, local.az.private_dns_zone.name_unique)) > 0 } private_dns_zone_group = { valid_name = length(regexall(local.az.private_dns_zone_group.regex, local.az.private_dns_zone_group.name)) > 0 && length(local.az.private_dns_zone_group.name) > local.az.private_dns_zone_group.min_length valid_name_unique = length(regexall(local.az.private_dns_zone_group.regex, local.az.private_dns_zone_group.name_unique)) > 0 } - proximity_placement_group = { - valid_name = length(regexall(local.az.proximity_placement_group.regex, local.az.proximity_placement_group.name)) > 0 && length(local.az.proximity_placement_group.name) > local.az.proximity_placement_group.min_length - valid_name_unique = length(regexall(local.az.proximity_placement_group.regex, local.az.proximity_placement_group.name_unique)) > 0 + private_endpoint = { + valid_name = length(regexall(local.az.private_endpoint.regex, local.az.private_endpoint.name)) > 0 && length(local.az.private_endpoint.name) > local.az.private_endpoint.min_length + valid_name_unique = length(regexall(local.az.private_endpoint.regex, local.az.private_endpoint.name_unique)) > 0 } private_link_service = { valid_name = length(regexall(local.az.private_link_service.regex, local.az.private_link_service.name)) > 0 && length(local.az.private_link_service.name) > local.az.private_link_service.min_length valid_name_unique = length(regexall(local.az.private_link_service.regex, local.az.private_link_service.name_unique)) > 0 } - databricks_cluster = { - valid_name = length(regexall(local.az.databricks_cluster.regex, local.az.databricks_cluster.name)) > 0 && length(local.az.databricks_cluster.name) > local.az.databricks_cluster.min_length - valid_name_unique = length(regexall(local.az.databricks_cluster.regex, local.az.databricks_cluster.name_unique)) > 0 + private_service_connection = { + valid_name = length(regexall(local.az.private_service_connection.regex, local.az.private_service_connection.name)) > 0 && length(local.az.private_service_connection.name) > local.az.private_service_connection.min_length + valid_name_unique = length(regexall(local.az.private_service_connection.regex, local.az.private_service_connection.name_unique)) > 0 } - databricks_standard_cluster = { - valid_name = length(regexall(local.az.databricks_standard_cluster.regex, local.az.databricks_standard_cluster.name)) > 0 && length(local.az.databricks_standard_cluster.name) > local.az.databricks_standard_cluster.min_length - valid_name_unique = length(regexall(local.az.databricks_standard_cluster.regex, local.az.databricks_standard_cluster.name_unique)) > 0 + proximity_placement_group = { + valid_name = length(regexall(local.az.proximity_placement_group.regex, local.az.proximity_placement_group.name)) > 0 && length(local.az.proximity_placement_group.name) > local.az.proximity_placement_group.min_length + valid_name_unique = length(regexall(local.az.proximity_placement_group.regex, local.az.proximity_placement_group.name_unique)) > 0 } - databricks_high_concurrency_cluster = { - valid_name = length(regexall(local.az.databricks_high_concurrency_cluster.regex, local.az.databricks_high_concurrency_cluster.name)) > 0 && length(local.az.databricks_high_concurrency_cluster.name) > local.az.databricks_high_concurrency_cluster.min_length - valid_name_unique = length(regexall(local.az.databricks_high_concurrency_cluster.regex, local.az.databricks_high_concurrency_cluster.name_unique)) > 0 + public_ip = { + valid_name = length(regexall(local.az.public_ip.regex, local.az.public_ip.name)) > 0 && length(local.az.public_ip.name) > local.az.public_ip.min_length + valid_name_unique = length(regexall(local.az.public_ip.regex, local.az.public_ip.name_unique)) > 0 + } + public_ip_prefix = { + valid_name = length(regexall(local.az.public_ip_prefix.regex, local.az.public_ip_prefix.name)) > 0 && length(local.az.public_ip_prefix.name) > local.az.public_ip_prefix.min_length + valid_name_unique = length(regexall(local.az.public_ip_prefix.regex, local.az.public_ip_prefix.name_unique)) > 0 + } + redis_cache = { + valid_name = length(regexall(local.az.redis_cache.regex, local.az.redis_cache.name)) > 0 && length(local.az.redis_cache.name) > local.az.redis_cache.min_length + valid_name_unique = length(regexall(local.az.redis_cache.regex, local.az.redis_cache.name_unique)) > 0 + } + redis_firewall_rule = { + valid_name = length(regexall(local.az.redis_firewall_rule.regex, local.az.redis_firewall_rule.name)) > 0 && length(local.az.redis_firewall_rule.name) > local.az.redis_firewall_rule.min_length + valid_name_unique = length(regexall(local.az.redis_firewall_rule.regex, local.az.redis_firewall_rule.name_unique)) > 0 + } + relay_hybrid_connection = { + valid_name = length(regexall(local.az.relay_hybrid_connection.regex, local.az.relay_hybrid_connection.name)) > 0 && length(local.az.relay_hybrid_connection.name) > local.az.relay_hybrid_connection.min_length + valid_name_unique = length(regexall(local.az.relay_hybrid_connection.regex, local.az.relay_hybrid_connection.name_unique)) > 0 + } + relay_namespace = { + valid_name = length(regexall(local.az.relay_namespace.regex, local.az.relay_namespace.name)) > 0 && length(local.az.relay_namespace.name) > local.az.relay_namespace.min_length + valid_name_unique = length(regexall(local.az.relay_namespace.regex, local.az.relay_namespace.name_unique)) > 0 + } + resource_group = { + valid_name = length(regexall(local.az.resource_group.regex, local.az.resource_group.name)) > 0 && length(local.az.resource_group.name) > local.az.resource_group.min_length + valid_name_unique = length(regexall(local.az.resource_group.regex, local.az.resource_group.name_unique)) > 0 + } + role_assignment = { + valid_name = length(regexall(local.az.role_assignment.regex, local.az.role_assignment.name)) > 0 && length(local.az.role_assignment.name) > local.az.role_assignment.min_length + valid_name_unique = length(regexall(local.az.role_assignment.regex, local.az.role_assignment.name_unique)) > 0 + } + role_definition = { + valid_name = length(regexall(local.az.role_definition.regex, local.az.role_definition.name)) > 0 && length(local.az.role_definition.name) > local.az.role_definition.min_length + valid_name_unique = length(regexall(local.az.role_definition.regex, local.az.role_definition.name_unique)) > 0 + } + route = { + valid_name = length(regexall(local.az.route.regex, local.az.route.name)) > 0 && length(local.az.route.name) > local.az.route.min_length + valid_name_unique = length(regexall(local.az.route.regex, local.az.route.name_unique)) > 0 + } + route_table = { + valid_name = length(regexall(local.az.route_table.regex, local.az.route_table.name)) > 0 && length(local.az.route_table.name) > local.az.route_table.min_length + valid_name_unique = length(regexall(local.az.route_table.regex, local.az.route_table.name_unique)) > 0 + } + service_fabric_cluster = { + valid_name = length(regexall(local.az.service_fabric_cluster.regex, local.az.service_fabric_cluster.name)) > 0 && length(local.az.service_fabric_cluster.name) > local.az.service_fabric_cluster.min_length + valid_name_unique = length(regexall(local.az.service_fabric_cluster.regex, local.az.service_fabric_cluster.name_unique)) > 0 + } + servicebus_namespace = { + valid_name = length(regexall(local.az.servicebus_namespace.regex, local.az.servicebus_namespace.name)) > 0 && length(local.az.servicebus_namespace.name) > local.az.servicebus_namespace.min_length + valid_name_unique = length(regexall(local.az.servicebus_namespace.regex, local.az.servicebus_namespace.name_unique)) > 0 + } + servicebus_namespace_authorization_rule = { + valid_name = length(regexall(local.az.servicebus_namespace_authorization_rule.regex, local.az.servicebus_namespace_authorization_rule.name)) > 0 && length(local.az.servicebus_namespace_authorization_rule.name) > local.az.servicebus_namespace_authorization_rule.min_length + valid_name_unique = length(regexall(local.az.servicebus_namespace_authorization_rule.regex, local.az.servicebus_namespace_authorization_rule.name_unique)) > 0 + } + servicebus_queue = { + valid_name = length(regexall(local.az.servicebus_queue.regex, local.az.servicebus_queue.name)) > 0 && length(local.az.servicebus_queue.name) > local.az.servicebus_queue.min_length + valid_name_unique = length(regexall(local.az.servicebus_queue.regex, local.az.servicebus_queue.name_unique)) > 0 + } + servicebus_queue_authorization_rule = { + valid_name = length(regexall(local.az.servicebus_queue_authorization_rule.regex, local.az.servicebus_queue_authorization_rule.name)) > 0 && length(local.az.servicebus_queue_authorization_rule.name) > local.az.servicebus_queue_authorization_rule.min_length + valid_name_unique = length(regexall(local.az.servicebus_queue_authorization_rule.regex, local.az.servicebus_queue_authorization_rule.name_unique)) > 0 + } + servicebus_subscription = { + valid_name = length(regexall(local.az.servicebus_subscription.regex, local.az.servicebus_subscription.name)) > 0 && length(local.az.servicebus_subscription.name) > local.az.servicebus_subscription.min_length + valid_name_unique = length(regexall(local.az.servicebus_subscription.regex, local.az.servicebus_subscription.name_unique)) > 0 + } + servicebus_subscription_rule = { + valid_name = length(regexall(local.az.servicebus_subscription_rule.regex, local.az.servicebus_subscription_rule.name)) > 0 && length(local.az.servicebus_subscription_rule.name) > local.az.servicebus_subscription_rule.min_length + valid_name_unique = length(regexall(local.az.servicebus_subscription_rule.regex, local.az.servicebus_subscription_rule.name_unique)) > 0 + } + servicebus_topic = { + valid_name = length(regexall(local.az.servicebus_topic.regex, local.az.servicebus_topic.name)) > 0 && length(local.az.servicebus_topic.name) > local.az.servicebus_topic.min_length + valid_name_unique = length(regexall(local.az.servicebus_topic.regex, local.az.servicebus_topic.name_unique)) > 0 + } + servicebus_topic_authorization_rule = { + valid_name = length(regexall(local.az.servicebus_topic_authorization_rule.regex, local.az.servicebus_topic_authorization_rule.name)) > 0 && length(local.az.servicebus_topic_authorization_rule.name) > local.az.servicebus_topic_authorization_rule.min_length + valid_name_unique = length(regexall(local.az.servicebus_topic_authorization_rule.regex, local.az.servicebus_topic_authorization_rule.name_unique)) > 0 + } + shared_image = { + valid_name = length(regexall(local.az.shared_image.regex, local.az.shared_image.name)) > 0 && length(local.az.shared_image.name) > local.az.shared_image.min_length + valid_name_unique = length(regexall(local.az.shared_image.regex, local.az.shared_image.name_unique)) > 0 + } + shared_image_gallery = { + valid_name = length(regexall(local.az.shared_image_gallery.regex, local.az.shared_image_gallery.name)) > 0 && length(local.az.shared_image_gallery.name) > local.az.shared_image_gallery.min_length + valid_name_unique = length(regexall(local.az.shared_image_gallery.regex, local.az.shared_image_gallery.name_unique)) > 0 + } + signalr_service = { + valid_name = length(regexall(local.az.signalr_service.regex, local.az.signalr_service.name)) > 0 && length(local.az.signalr_service.name) > local.az.signalr_service.min_length + valid_name_unique = length(regexall(local.az.signalr_service.regex, local.az.signalr_service.name_unique)) > 0 + } + snapshots = { + valid_name = length(regexall(local.az.snapshots.regex, local.az.snapshots.name)) > 0 && length(local.az.snapshots.name) > local.az.snapshots.min_length + valid_name_unique = length(regexall(local.az.snapshots.regex, local.az.snapshots.name_unique)) > 0 + } + sql_elasticpool = { + valid_name = length(regexall(local.az.sql_elasticpool.regex, local.az.sql_elasticpool.name)) > 0 && length(local.az.sql_elasticpool.name) > local.az.sql_elasticpool.min_length + valid_name_unique = length(regexall(local.az.sql_elasticpool.regex, local.az.sql_elasticpool.name_unique)) > 0 + } + sql_failover_group = { + valid_name = length(regexall(local.az.sql_failover_group.regex, local.az.sql_failover_group.name)) > 0 && length(local.az.sql_failover_group.name) > local.az.sql_failover_group.min_length + valid_name_unique = length(regexall(local.az.sql_failover_group.regex, local.az.sql_failover_group.name_unique)) > 0 + } + sql_firewall_rule = { + valid_name = length(regexall(local.az.sql_firewall_rule.regex, local.az.sql_firewall_rule.name)) > 0 && length(local.az.sql_firewall_rule.name) > local.az.sql_firewall_rule.min_length + valid_name_unique = length(regexall(local.az.sql_firewall_rule.regex, local.az.sql_firewall_rule.name_unique)) > 0 + } + sql_server = { + valid_name = length(regexall(local.az.sql_server.regex, local.az.sql_server.name)) > 0 && length(local.az.sql_server.name) > local.az.sql_server.min_length + valid_name_unique = length(regexall(local.az.sql_server.regex, local.az.sql_server.name_unique)) > 0 + } + storage_account = { + valid_name = length(regexall(local.az.storage_account.regex, local.az.storage_account.name)) > 0 && length(local.az.storage_account.name) > local.az.storage_account.min_length + valid_name_unique = length(regexall(local.az.storage_account.regex, local.az.storage_account.name_unique)) > 0 + } + storage_blob = { + valid_name = length(regexall(local.az.storage_blob.regex, local.az.storage_blob.name)) > 0 && length(local.az.storage_blob.name) > local.az.storage_blob.min_length + valid_name_unique = length(regexall(local.az.storage_blob.regex, local.az.storage_blob.name_unique)) > 0 + } + storage_container = { + valid_name = length(regexall(local.az.storage_container.regex, local.az.storage_container.name)) > 0 && length(local.az.storage_container.name) > local.az.storage_container.min_length + valid_name_unique = length(regexall(local.az.storage_container.regex, local.az.storage_container.name_unique)) > 0 + } + storage_data_lake_gen2_filesystem = { + valid_name = length(regexall(local.az.storage_data_lake_gen2_filesystem.regex, local.az.storage_data_lake_gen2_filesystem.name)) > 0 && length(local.az.storage_data_lake_gen2_filesystem.name) > local.az.storage_data_lake_gen2_filesystem.min_length + valid_name_unique = length(regexall(local.az.storage_data_lake_gen2_filesystem.regex, local.az.storage_data_lake_gen2_filesystem.name_unique)) > 0 + } + storage_queue = { + valid_name = length(regexall(local.az.storage_queue.regex, local.az.storage_queue.name)) > 0 && length(local.az.storage_queue.name) > local.az.storage_queue.min_length + valid_name_unique = length(regexall(local.az.storage_queue.regex, local.az.storage_queue.name_unique)) > 0 + } + storage_share = { + valid_name = length(regexall(local.az.storage_share.regex, local.az.storage_share.name)) > 0 && length(local.az.storage_share.name) > local.az.storage_share.min_length + valid_name_unique = length(regexall(local.az.storage_share.regex, local.az.storage_share.name_unique)) > 0 + } + storage_share_directory = { + valid_name = length(regexall(local.az.storage_share_directory.regex, local.az.storage_share_directory.name)) > 0 && length(local.az.storage_share_directory.name) > local.az.storage_share_directory.min_length + valid_name_unique = length(regexall(local.az.storage_share_directory.regex, local.az.storage_share_directory.name_unique)) > 0 + } + storage_table = { + valid_name = length(regexall(local.az.storage_table.regex, local.az.storage_table.name)) > 0 && length(local.az.storage_table.name) > local.az.storage_table.min_length + valid_name_unique = length(regexall(local.az.storage_table.regex, local.az.storage_table.name_unique)) > 0 + } + stream_analytics_function_javascript_udf = { + valid_name = length(regexall(local.az.stream_analytics_function_javascript_udf.regex, local.az.stream_analytics_function_javascript_udf.name)) > 0 && length(local.az.stream_analytics_function_javascript_udf.name) > local.az.stream_analytics_function_javascript_udf.min_length + valid_name_unique = length(regexall(local.az.stream_analytics_function_javascript_udf.regex, local.az.stream_analytics_function_javascript_udf.name_unique)) > 0 + } + stream_analytics_job = { + valid_name = length(regexall(local.az.stream_analytics_job.regex, local.az.stream_analytics_job.name)) > 0 && length(local.az.stream_analytics_job.name) > local.az.stream_analytics_job.min_length + valid_name_unique = length(regexall(local.az.stream_analytics_job.regex, local.az.stream_analytics_job.name_unique)) > 0 + } + stream_analytics_output_blob = { + valid_name = length(regexall(local.az.stream_analytics_output_blob.regex, local.az.stream_analytics_output_blob.name)) > 0 && length(local.az.stream_analytics_output_blob.name) > local.az.stream_analytics_output_blob.min_length + valid_name_unique = length(regexall(local.az.stream_analytics_output_blob.regex, local.az.stream_analytics_output_blob.name_unique)) > 0 + } + stream_analytics_output_eventhub = { + valid_name = length(regexall(local.az.stream_analytics_output_eventhub.regex, local.az.stream_analytics_output_eventhub.name)) > 0 && length(local.az.stream_analytics_output_eventhub.name) > local.az.stream_analytics_output_eventhub.min_length + valid_name_unique = length(regexall(local.az.stream_analytics_output_eventhub.regex, local.az.stream_analytics_output_eventhub.name_unique)) > 0 + } + stream_analytics_output_mssql = { + valid_name = length(regexall(local.az.stream_analytics_output_mssql.regex, local.az.stream_analytics_output_mssql.name)) > 0 && length(local.az.stream_analytics_output_mssql.name) > local.az.stream_analytics_output_mssql.min_length + valid_name_unique = length(regexall(local.az.stream_analytics_output_mssql.regex, local.az.stream_analytics_output_mssql.name_unique)) > 0 + } + stream_analytics_output_servicebus_queue = { + valid_name = length(regexall(local.az.stream_analytics_output_servicebus_queue.regex, local.az.stream_analytics_output_servicebus_queue.name)) > 0 && length(local.az.stream_analytics_output_servicebus_queue.name) > local.az.stream_analytics_output_servicebus_queue.min_length + valid_name_unique = length(regexall(local.az.stream_analytics_output_servicebus_queue.regex, local.az.stream_analytics_output_servicebus_queue.name_unique)) > 0 + } + stream_analytics_output_servicebus_topic = { + valid_name = length(regexall(local.az.stream_analytics_output_servicebus_topic.regex, local.az.stream_analytics_output_servicebus_topic.name)) > 0 && length(local.az.stream_analytics_output_servicebus_topic.name) > local.az.stream_analytics_output_servicebus_topic.min_length + valid_name_unique = length(regexall(local.az.stream_analytics_output_servicebus_topic.regex, local.az.stream_analytics_output_servicebus_topic.name_unique)) > 0 + } + stream_analytics_reference_input_blob = { + valid_name = length(regexall(local.az.stream_analytics_reference_input_blob.regex, local.az.stream_analytics_reference_input_blob.name)) > 0 && length(local.az.stream_analytics_reference_input_blob.name) > local.az.stream_analytics_reference_input_blob.min_length + valid_name_unique = length(regexall(local.az.stream_analytics_reference_input_blob.regex, local.az.stream_analytics_reference_input_blob.name_unique)) > 0 + } + stream_analytics_stream_input_blob = { + valid_name = length(regexall(local.az.stream_analytics_stream_input_blob.regex, local.az.stream_analytics_stream_input_blob.name)) > 0 && length(local.az.stream_analytics_stream_input_blob.name) > local.az.stream_analytics_stream_input_blob.min_length + valid_name_unique = length(regexall(local.az.stream_analytics_stream_input_blob.regex, local.az.stream_analytics_stream_input_blob.name_unique)) > 0 + } + stream_analytics_stream_input_eventhub = { + valid_name = length(regexall(local.az.stream_analytics_stream_input_eventhub.regex, local.az.stream_analytics_stream_input_eventhub.name)) > 0 && length(local.az.stream_analytics_stream_input_eventhub.name) > local.az.stream_analytics_stream_input_eventhub.min_length + valid_name_unique = length(regexall(local.az.stream_analytics_stream_input_eventhub.regex, local.az.stream_analytics_stream_input_eventhub.name_unique)) > 0 + } + stream_analytics_stream_input_iothub = { + valid_name = length(regexall(local.az.stream_analytics_stream_input_iothub.regex, local.az.stream_analytics_stream_input_iothub.name)) > 0 && length(local.az.stream_analytics_stream_input_iothub.name) > local.az.stream_analytics_stream_input_iothub.min_length + valid_name_unique = length(regexall(local.az.stream_analytics_stream_input_iothub.regex, local.az.stream_analytics_stream_input_iothub.name_unique)) > 0 + } + subnet = { + valid_name = length(regexall(local.az.subnet.regex, local.az.subnet.name)) > 0 && length(local.az.subnet.name) > local.az.subnet.min_length + valid_name_unique = length(regexall(local.az.subnet.regex, local.az.subnet.name_unique)) > 0 + } + template_deployment = { + valid_name = length(regexall(local.az.template_deployment.regex, local.az.template_deployment.name)) > 0 && length(local.az.template_deployment.name) > local.az.template_deployment.min_length + valid_name_unique = length(regexall(local.az.template_deployment.regex, local.az.template_deployment.name_unique)) > 0 + } + traffic_manager_profile = { + valid_name = length(regexall(local.az.traffic_manager_profile.regex, local.az.traffic_manager_profile.name)) > 0 && length(local.az.traffic_manager_profile.name) > local.az.traffic_manager_profile.min_length + valid_name_unique = length(regexall(local.az.traffic_manager_profile.regex, local.az.traffic_manager_profile.name_unique)) > 0 + } + virtual_machine = { + valid_name = length(regexall(local.az.virtual_machine.regex, local.az.virtual_machine.name)) > 0 && length(local.az.virtual_machine.name) > local.az.virtual_machine.min_length + valid_name_unique = length(regexall(local.az.virtual_machine.regex, local.az.virtual_machine.name_unique)) > 0 + } + virtual_machine_extension = { + valid_name = length(regexall(local.az.virtual_machine_extension.regex, local.az.virtual_machine_extension.name)) > 0 && length(local.az.virtual_machine_extension.name) > local.az.virtual_machine_extension.min_length + valid_name_unique = length(regexall(local.az.virtual_machine_extension.regex, local.az.virtual_machine_extension.name_unique)) > 0 + } + virtual_machine_scale_set = { + valid_name = length(regexall(local.az.virtual_machine_scale_set.regex, local.az.virtual_machine_scale_set.name)) > 0 && length(local.az.virtual_machine_scale_set.name) > local.az.virtual_machine_scale_set.min_length + valid_name_unique = length(regexall(local.az.virtual_machine_scale_set.regex, local.az.virtual_machine_scale_set.name_unique)) > 0 + } + virtual_machine_scale_set_extension = { + valid_name = length(regexall(local.az.virtual_machine_scale_set_extension.regex, local.az.virtual_machine_scale_set_extension.name)) > 0 && length(local.az.virtual_machine_scale_set_extension.name) > local.az.virtual_machine_scale_set_extension.min_length + valid_name_unique = length(regexall(local.az.virtual_machine_scale_set_extension.regex, local.az.virtual_machine_scale_set_extension.name_unique)) > 0 + } + virtual_network = { + valid_name = length(regexall(local.az.virtual_network.regex, local.az.virtual_network.name)) > 0 && length(local.az.virtual_network.name) > local.az.virtual_network.min_length + valid_name_unique = length(regexall(local.az.virtual_network.regex, local.az.virtual_network.name_unique)) > 0 + } + virtual_network_gateway = { + valid_name = length(regexall(local.az.virtual_network_gateway.regex, local.az.virtual_network_gateway.name)) > 0 && length(local.az.virtual_network_gateway.name) > local.az.virtual_network_gateway.min_length + valid_name_unique = length(regexall(local.az.virtual_network_gateway.regex, local.az.virtual_network_gateway.name_unique)) > 0 + } + virtual_network_peering = { + valid_name = length(regexall(local.az.virtual_network_peering.regex, local.az.virtual_network_peering.name)) > 0 && length(local.az.virtual_network_peering.name) > local.az.virtual_network_peering.min_length + valid_name_unique = length(regexall(local.az.virtual_network_peering.regex, local.az.virtual_network_peering.name_unique)) > 0 + } + virtual_wan = { + valid_name = length(regexall(local.az.virtual_wan.regex, local.az.virtual_wan.name)) > 0 && length(local.az.virtual_wan.name) > local.az.virtual_wan.min_length + valid_name_unique = length(regexall(local.az.virtual_wan.regex, local.az.virtual_wan.name_unique)) > 0 + } + windows_virtual_machine = { + valid_name = length(regexall(local.az.windows_virtual_machine.regex, local.az.windows_virtual_machine.name)) > 0 && length(local.az.windows_virtual_machine.name) > local.az.windows_virtual_machine.min_length + valid_name_unique = length(regexall(local.az.windows_virtual_machine.regex, local.az.windows_virtual_machine.name_unique)) > 0 + } + windows_virtual_machine_scale_set = { + valid_name = length(regexall(local.az.windows_virtual_machine_scale_set.regex, local.az.windows_virtual_machine_scale_set.name)) > 0 && length(local.az.windows_virtual_machine_scale_set.name) > local.az.windows_virtual_machine_scale_set.min_length + valid_name_unique = length(regexall(local.az.windows_virtual_machine_scale_set.regex, local.az.windows_virtual_machine_scale_set.name_unique)) > 0 } } } diff --git a/outputs.tf b/outputs.tf index edceadf..bec2989 100644 --- a/outputs.tf +++ b/outputs.tf @@ -18,16 +18,16 @@ output "app_configuration" { value = local.az.app_configuration } +output "application_gateway" { + value = local.az.application_gateway +} + output "application_insights" { value = local.az.application_insights } -output "role_assignment" { - value = local.az.role_assignment -} - -output "role_definition" { - value = local.az.role_definition +output "application_security_group" { + value = local.az.application_security_group } output "automation_account" { @@ -54,6 +54,14 @@ output "automation_variable" { value = local.az.automation_variable } +output "availability_set" { + value = local.az.availability_set +} + +output "bastion_host" { + value = local.az.bastion_host +} + output "batch_account" { value = local.az.batch_account } @@ -70,12 +78,12 @@ output "batch_pool" { value = local.az.batch_pool } -output "bot_web_app" { - value = local.az.bot_web_app +output "bot_channel_directline" { + value = local.az.bot_channel_directline } -output "bot_channel_Email" { - value = local.az.bot_channel_Email +output "bot_channel_email" { + value = local.az.bot_channel_email } output "bot_channel_ms_teams" { @@ -86,10 +94,6 @@ output "bot_channel_slack" { value = local.az.bot_channel_slack } -output "bot_channel_directline" { - value = local.az.bot_channel_directline -} - output "bot_channels_registration" { value = local.az.bot_channels_registration } @@ -98,68 +102,24 @@ output "bot_connection" { value = local.az.bot_connection } -output "redis_cache" { - value = local.az.redis_cache -} - -output "redis_firewall_rule" { - value = local.az.redis_firewall_rule -} - -output "cdn_profile" { - value = local.az.cdn_profile +output "bot_web_app" { + value = local.az.bot_web_app } output "cdn_endpoint" { value = local.az.cdn_endpoint } +output "cdn_profile" { + value = local.az.cdn_profile +} + output "cognitive_account" { value = local.az.cognitive_account } -output "availability_set" { - value = local.az.availability_set -} - -output "disk_encryption_set" { - value = local.az.disk_encryption_set -} - -output "image" { - value = local.az.image -} - -output "linux_virtual_machine" { - value = local.az.linux_virtual_machine -} - -output "linux_virtual_machine_scale_set" { - value = local.az.linux_virtual_machine_scale_set -} - -output "managed_disk" { - value = local.az.managed_disk -} - -output "virtual_machine" { - value = local.az.virtual_machine -} - -output "virtual_machine_scale_set" { - value = local.az.virtual_machine_scale_set -} - -output "windows_virtual_machine" { - value = local.az.windows_virtual_machine -} - -output "windows_virtual_machine_scale_set" { - value = local.az.windows_virtual_machine_scale_set -} - -output "containerGroups" { - value = local.az.containerGroups +output "container_group" { + value = local.az.container_group } output "container_registry" { @@ -170,10 +130,6 @@ output "container_registry_webhook" { value = local.az.container_registry_webhook } -output "kubernetes_cluster" { - value = local.az.kubernetes_cluster -} - output "cosmosdb_account" { value = local.az.cosmosdb_account } @@ -182,76 +138,8 @@ output "custom_provider" { value = local.az.custom_provider } -output "mariadb_server" { - value = local.az.mariadb_server -} - -output "mariadb_firewall_rule" { - value = local.az.mariadb_firewall_rule -} - -output "mariadb_database" { - value = local.az.mariadb_database -} - -output "mariadb_virtual_network_rule" { - value = local.az.mariadb_virtual_network_rule -} - -output "mysql_server" { - value = local.az.mysql_server -} - -output "mysql_firewall_rule" { - value = local.az.mysql_firewall_rule -} - -output "mysql_database" { - value = local.az.mysql_database -} - -output "mysql_virtual_network_rule" { - value = local.az.mysql_virtual_network_rule -} - -output "postgresql_server" { - value = local.az.postgresql_server -} - -output "postgresql_firewall_rule" { - value = local.az.postgresql_firewall_rule -} - -output "postgresql_database" { - value = local.az.postgresql_database -} - -output "postgresql_virtual_network_rule" { - value = local.az.postgresql_virtual_network_rule -} - -output "database_migration_project" { - value = local.az.database_migration_project -} - -output "database_migration_service" { - value = local.az.database_migration_service -} - -output "databricks_workspace" { - value = local.az.databricks_workspace -} - -output "kusto_cluster" { - value = local.az.kusto_cluster -} - -output "kusto_database" { - value = local.az.kusto_database -} - -output "kusto_eventhub_data_connection" { - value = local.az.kusto_eventhub_data_connection +output "dashboard" { + value = local.az.dashboard } output "data_factory" { @@ -274,10 +162,6 @@ output "data_factory_integration_runtime_managed" { value = local.az.data_factory_integration_runtime_managed } -output "data_factory_pipeline" { - value = local.az.data_factory_pipeline -} - output "data_factory_linked_service_data_lake_storage_gen2" { value = local.az.data_factory_linked_service_data_lake_storage_gen2 } @@ -298,6 +182,10 @@ output "data_factory_linked_service_sql_server" { value = local.az.data_factory_linked_service_sql_server } +output "data_factory_pipeline" { + value = local.az.data_factory_pipeline +} + output "data_factory_trigger_schedule" { value = local.az.data_factory_trigger_schedule } @@ -318,6 +206,30 @@ output "data_lake_store_firewall_rule" { value = local.az.data_lake_store_firewall_rule } +output "database_migration_project" { + value = local.az.database_migration_project +} + +output "database_migration_service" { + value = local.az.database_migration_service +} + +output "databricks_cluster" { + value = local.az.databricks_cluster +} + +output "databricks_high_concurrency_cluster" { + value = local.az.databricks_high_concurrency_cluster +} + +output "databricks_standard_cluster" { + value = local.az.databricks_standard_cluster +} + +output "databricks_workspace" { + value = local.az.databricks_workspace +} + output "dev_test_lab" { value = local.az.dev_test_lab } @@ -330,456 +242,8 @@ output "dev_test_windows_virtual_machine" { value = local.az.dev_test_windows_virtual_machine } -output "frontdoor" { - value = local.az.frontdoor -} - -output "frontdoor_firewall_policy" { - value = local.az.frontdoor_firewall_policy -} - -output "hdinsight_hadoop_cluster" { - value = local.az.hdinsight_hadoop_cluster -} - -output "hdinsight_hbase_cluster" { - value = local.az.hdinsight_hbase_cluster -} - -output "hdinsight_kafka_cluster" { - value = local.az.hdinsight_kafka_cluster -} - -output "hdinsight_interactive_query_cluster" { - value = local.az.hdinsight_interactive_query_cluster -} - -output "hdinsight_ml_services_cluster" { - value = local.az.hdinsight_ml_services_cluster -} - -output "hdinsight_rserver_cluster" { - value = local.az.hdinsight_rserver_cluster -} - -output "hdinsight_spark_cluster" { - value = local.az.hdinsight_spark_cluster -} - -output "hdinsight_storm_cluster" { - value = local.az.hdinsight_storm_cluster -} - -output "iotcentral_application" { - value = local.az.iotcentral_application -} - -output "iothub" { - value = local.az.iothub -} - -output "iothub_consumer_group" { - value = local.az.iothub_consumer_group -} - -output "iothub_dps" { - value = local.az.iothub_dps -} - -output "iothub_dps_certificate" { - value = local.az.iothub_dps_certificate -} - -output "key_vault" { - value = local.az.key_vault -} - -output "key_vault_key" { - value = local.az.key_vault_key -} - -output "key_vault_secret" { - value = local.az.key_vault_secret -} - -output "key_vault_certificate" { - value = local.az.key_vault_certificate -} - -output "lb" { - value = local.az.lb -} - -output "lb_nat_rule" { - value = local.az.lb_nat_rule -} - -output "public_ip" { - value = local.az.public_ip -} - -output "public_ip_prefix" { - value = local.az.public_ip_prefix -} - -output "route" { - value = local.az.route -} - -output "route_table" { - value = local.az.route_table -} - -output "subnet" { - value = local.az.subnet -} - -output "traffic_manager_profile" { - value = local.az.traffic_manager_profile -} - -output "virtual_wan" { - value = local.az.virtual_wan -} - -output "virtual_network" { - value = local.az.virtual_network -} - -output "virtual_network_gateway" { - value = local.az.virtual_network_gateway -} - -output "virtual_network_peering" { - value = local.az.virtual_network_peering -} - -output "network_interface" { - value = local.az.network_interface -} - -output "firewall" { - value = local.az.firewall -} - -output "eventhub" { - value = local.az.eventhub -} - -output "eventhub_namespace" { - value = local.az.eventhub_namespace -} - -output "eventhub_authorization_rule" { - value = local.az.eventhub_authorization_rule -} - -output "eventhub_namespace_authorization_rule" { - value = local.az.eventhub_namespace_authorization_rule -} - -output "eventhub_namespace_disaster_recovery_config" { - value = local.az.eventhub_namespace_disaster_recovery_config -} - -output "eventhub_consumer_group" { - value = local.az.eventhub_consumer_group -} - -output "stream_analytics_job" { - value = local.az.stream_analytics_job -} - -output "stream_analytics_function_javascript_udf" { - value = local.az.stream_analytics_function_javascript_udf -} - -output "stream_analytics_output_blob" { - value = local.az.stream_analytics_output_blob -} - -output "stream_analytics_output_mssql" { - value = local.az.stream_analytics_output_mssql -} - -output "stream_analytics_output_eventhub" { - value = local.az.stream_analytics_output_eventhub -} - -output "stream_analytics_output_servicebus_queue" { - value = local.az.stream_analytics_output_servicebus_queue -} - -output "stream_analytics_output_servicebus_topic" { - value = local.az.stream_analytics_output_servicebus_topic -} - -output "stream_analytics_reference_input_blob" { - value = local.az.stream_analytics_reference_input_blob -} - -output "stream_analytics_stream_input_blob" { - value = local.az.stream_analytics_stream_input_blob -} - -output "stream_analytics_stream_input_eventhub" { - value = local.az.stream_analytics_stream_input_eventhub -} - -output "stream_analytics_stream_input_iothub" { - value = local.az.stream_analytics_stream_input_iothub -} - -output "shared_image_gallery" { - value = local.az.shared_image_gallery -} - -output "shared_image" { - value = local.az.shared_image -} - -output "snapshots" { - value = local.az.snapshots -} - -output "storage_account" { - value = local.az.storage_account -} - -output "storage_container" { - value = local.az.storage_container -} - -output "storage_data_lake_gen2_filesystem" { - value = local.az.storage_data_lake_gen2_filesystem -} - -output "storage_queue" { - value = local.az.storage_queue -} - -output "storage_table" { - value = local.az.storage_table -} - -output "storage_share" { - value = local.az.storage_share -} - -output "storage_share_directory" { - value = local.az.storage_share_directory -} - -output "machine_learning_workspace" { - value = local.az.machine_learning_workspace -} - -output "storage_blob" { - value = local.az.storage_blob -} - -output "bastion_host" { - value = local.az.bastion_host -} - -output "local_network_gateway" { - value = local.az.local_network_gateway -} - -output "application_gateway" { - value = local.az.application_gateway -} - -output "express_route_gateway" { - value = local.az.express_route_gateway -} - -output "express_route_circuit" { - value = local.az.express_route_circuit -} - -output "point_to_site_vpn_gateway" { - value = local.az.point_to_site_vpn_gateway -} - -output "template_deployment" { - value = local.az.template_deployment -} - -output "sql_server" { - value = local.az.sql_server -} - -output "mssql_server" { - value = local.az.mssql_server -} - -output "mssql_database" { - value = local.az.mssql_database -} - -output "sql_elasticpool" { - value = local.az.sql_elasticpool -} - -output "mssql_elasticpool" { - value = local.az.mssql_elasticpool -} - -output "sql_failover_group" { - value = local.az.sql_failover_group -} - -output "sql_firewall_rule" { - value = local.az.sql_firewall_rule -} - -output "log_analytics_workspace" { - value = local.az.log_analytics_workspace -} - -output "service_fabric_cluster" { - value = local.az.service_fabric_cluster -} - -output "maps_account" { - value = local.az.maps_account -} - -output "network_watcher" { - value = local.az.network_watcher -} - -output "resource_group" { - value = local.az.resource_group -} - -output "network_security_group" { - value = local.az.network_security_group -} - -output "network_security_group_rule" { - value = local.az.network_security_group_rule -} - -output "network_security_rule" { - value = local.az.network_security_rule -} - -output "application_security_group" { - value = local.az.application_security_group -} - -output "dns_zone" { - value = local.az.dns_zone -} - -output "private_dns_zone" { - value = local.az.private_dns_zone -} - -output "notification_hub" { - value = local.az.notification_hub -} - -output "notification_hub_namespace" { - value = local.az.notification_hub_namespace -} - -output "notification_hub_authorization_rule" { - value = local.az.notification_hub_authorization_rule -} - -output "servicebus_namespace" { - value = local.az.servicebus_namespace -} - -output "servicebus_namespace_authorization_rule" { - value = local.az.servicebus_namespace_authorization_rule -} - -output "servicebus_queue" { - value = local.az.servicebus_queue -} - -output "servicebus_queue_authorization_rule" { - value = local.az.servicebus_queue_authorization_rule -} - -output "servicebus_subscription" { - value = local.az.servicebus_subscription -} - -output "servicebus_subscription_rule" { - value = local.az.servicebus_subscription_rule -} - -output "servicebus_topic" { - value = local.az.servicebus_topic -} - -output "servicebus_topic_authorization_rule" { - value = local.az.servicebus_topic_authorization_rule -} - -output "powerbi_embedded" { - value = local.az.powerbi_embedded -} - -output "dashboard" { - value = local.az.dashboard -} - -output "signalr_service" { - value = local.az.signalr_service -} - -output "eventgrid_domain" { - value = local.az.eventgrid_domain -} - -output "eventgrid_domain_topic" { - value = local.az.eventgrid_domain_topic -} - -output "eventgrid_event_subscription" { - value = local.az.eventgrid_event_subscription -} - -output "eventgrid_topic" { - value = local.az.eventgrid_topic -} - -output "relay_namespace" { - value = local.az.relay_namespace -} - -output "relay_hybrid_connection" { - value = local.az.relay_hybrid_connection -} - -output "private_endpoint" { - value = local.az.private_endpoint -} - -output "private_service_connection" { - value = local.az.private_service_connection -} - -output "firewall_ip_configuration" { - value = local.az.firewall_ip_configuration -} - -output "firewall_application_rule_collection" { - value = local.az.firewall_application_rule_collection -} - -output "firewall_nat_rule_collection" { - value = local.az.firewall_nat_rule_collection -} - -output "firewall_network_rule_collection" { - value = local.az.firewall_network_rule_collection +output "disk_encryption_set" { + value = local.az.disk_encryption_set } output "dns_a_record" { @@ -814,6 +278,318 @@ output "dns_txt_record" { value = local.az.dns_txt_record } +output "dns_zone" { + value = local.az.dns_zone +} + +output "eventgrid_domain" { + value = local.az.eventgrid_domain +} + +output "eventgrid_domain_topic" { + value = local.az.eventgrid_domain_topic +} + +output "eventgrid_event_subscription" { + value = local.az.eventgrid_event_subscription +} + +output "eventgrid_topic" { + value = local.az.eventgrid_topic +} + +output "eventhub" { + value = local.az.eventhub +} + +output "eventhub_authorization_rule" { + value = local.az.eventhub_authorization_rule +} + +output "eventhub_consumer_group" { + value = local.az.eventhub_consumer_group +} + +output "eventhub_namespace" { + value = local.az.eventhub_namespace +} + +output "eventhub_namespace_authorization_rule" { + value = local.az.eventhub_namespace_authorization_rule +} + +output "eventhub_namespace_disaster_recovery_config" { + value = local.az.eventhub_namespace_disaster_recovery_config +} + +output "express_route_circuit" { + value = local.az.express_route_circuit +} + +output "express_route_gateway" { + value = local.az.express_route_gateway +} + +output "firewall" { + value = local.az.firewall +} + +output "firewall_application_rule_collection" { + value = local.az.firewall_application_rule_collection +} + +output "firewall_ip_configuration" { + value = local.az.firewall_ip_configuration +} + +output "firewall_nat_rule_collection" { + value = local.az.firewall_nat_rule_collection +} + +output "firewall_network_rule_collection" { + value = local.az.firewall_network_rule_collection +} + +output "frontdoor" { + value = local.az.frontdoor +} + +output "frontdoor_firewall_policy" { + value = local.az.frontdoor_firewall_policy +} + +output "function_app" { + value = local.az.function_app +} + +output "hdinsight_hadoop_cluster" { + value = local.az.hdinsight_hadoop_cluster +} + +output "hdinsight_hbase_cluster" { + value = local.az.hdinsight_hbase_cluster +} + +output "hdinsight_interactive_query_cluster" { + value = local.az.hdinsight_interactive_query_cluster +} + +output "hdinsight_kafka_cluster" { + value = local.az.hdinsight_kafka_cluster +} + +output "hdinsight_ml_services_cluster" { + value = local.az.hdinsight_ml_services_cluster +} + +output "hdinsight_rserver_cluster" { + value = local.az.hdinsight_rserver_cluster +} + +output "hdinsight_spark_cluster" { + value = local.az.hdinsight_spark_cluster +} + +output "hdinsight_storm_cluster" { + value = local.az.hdinsight_storm_cluster +} + +output "image" { + value = local.az.image +} + +output "iotcentral_application" { + value = local.az.iotcentral_application +} + +output "iothub" { + value = local.az.iothub +} + +output "iothub_consumer_group" { + value = local.az.iothub_consumer_group +} + +output "iothub_dps" { + value = local.az.iothub_dps +} + +output "iothub_dps_certificate" { + value = local.az.iothub_dps_certificate +} + +output "key_vault" { + value = local.az.key_vault +} + +output "key_vault_certificate" { + value = local.az.key_vault_certificate +} + +output "key_vault_key" { + value = local.az.key_vault_key +} + +output "key_vault_secret" { + value = local.az.key_vault_secret +} + +output "kubernetes_cluster" { + value = local.az.kubernetes_cluster +} + +output "kusto_cluster" { + value = local.az.kusto_cluster +} + +output "kusto_database" { + value = local.az.kusto_database +} + +output "kusto_eventhub_data_connection" { + value = local.az.kusto_eventhub_data_connection +} + +output "lb" { + value = local.az.lb +} + +output "lb_nat_rule" { + value = local.az.lb_nat_rule +} + +output "linux_virtual_machine" { + value = local.az.linux_virtual_machine +} + +output "linux_virtual_machine_scale_set" { + value = local.az.linux_virtual_machine_scale_set +} + +output "local_network_gateway" { + value = local.az.local_network_gateway +} + +output "log_analytics_workspace" { + value = local.az.log_analytics_workspace +} + +output "machine_learning_workspace" { + value = local.az.machine_learning_workspace +} + +output "managed_disk" { + value = local.az.managed_disk +} + +output "maps_account" { + value = local.az.maps_account +} + +output "mariadb_database" { + value = local.az.mariadb_database +} + +output "mariadb_firewall_rule" { + value = local.az.mariadb_firewall_rule +} + +output "mariadb_server" { + value = local.az.mariadb_server +} + +output "mariadb_virtual_network_rule" { + value = local.az.mariadb_virtual_network_rule +} + +output "mssql_database" { + value = local.az.mssql_database +} + +output "mssql_elasticpool" { + value = local.az.mssql_elasticpool +} + +output "mssql_server" { + value = local.az.mssql_server +} + +output "mysql_database" { + value = local.az.mysql_database +} + +output "mysql_firewall_rule" { + value = local.az.mysql_firewall_rule +} + +output "mysql_server" { + value = local.az.mysql_server +} + +output "mysql_virtual_network_rule" { + value = local.az.mysql_virtual_network_rule +} + +output "network_ddos_protection_plan" { + value = local.az.network_ddos_protection_plan +} + +output "network_interface" { + value = local.az.network_interface +} + +output "network_security_group" { + value = local.az.network_security_group +} + +output "network_security_group_rule" { + value = local.az.network_security_group_rule +} + +output "network_security_rule" { + value = local.az.network_security_rule +} + +output "network_watcher" { + value = local.az.network_watcher +} + +output "notification_hub" { + value = local.az.notification_hub +} + +output "notification_hub_authorization_rule" { + value = local.az.notification_hub_authorization_rule +} + +output "notification_hub_namespace" { + value = local.az.notification_hub_namespace +} + +output "point_to_site_vpn_gateway" { + value = local.az.point_to_site_vpn_gateway +} + +output "postgresql_database" { + value = local.az.postgresql_database +} + +output "postgresql_firewall_rule" { + value = local.az.postgresql_firewall_rule +} + +output "postgresql_server" { + value = local.az.postgresql_server +} + +output "postgresql_virtual_network_rule" { + value = local.az.postgresql_virtual_network_rule +} + +output "powerbi_embedded" { + value = local.az.powerbi_embedded +} + output "private_dns_a_record" { value = local.az.private_dns_a_record } @@ -842,40 +618,268 @@ output "private_dns_txt_record" { value = local.az.private_dns_txt_record } -output "virtual_machine_extension" { - value = local.az.virtual_machine_extension -} - -output "virtual_machine_scale_set_extension" { - value = local.az.virtual_machine_scale_set_extension -} - -output "network_ddos_protection_plan" { - value = local.az.network_ddos_protection_plan +output "private_dns_zone" { + value = local.az.private_dns_zone } output "private_dns_zone_group" { value = local.az.private_dns_zone_group } -output "proximity_placement_group" { - value = local.az.proximity_placement_group +output "private_endpoint" { + value = local.az.private_endpoint } output "private_link_service" { value = local.az.private_link_service } -output "databricks_cluster" { - value = local.az.databricks_cluster +output "private_service_connection" { + value = local.az.private_service_connection } -output "databricks_standard_cluster" { - value = local.az.databricks_standard_cluster +output "proximity_placement_group" { + value = local.az.proximity_placement_group } -output "databricks_high_concurrency_cluster" { - value = local.az.databricks_high_concurrency_cluster +output "public_ip" { + value = local.az.public_ip +} + +output "public_ip_prefix" { + value = local.az.public_ip_prefix +} + +output "redis_cache" { + value = local.az.redis_cache +} + +output "redis_firewall_rule" { + value = local.az.redis_firewall_rule +} + +output "relay_hybrid_connection" { + value = local.az.relay_hybrid_connection +} + +output "relay_namespace" { + value = local.az.relay_namespace +} + +output "resource_group" { + value = local.az.resource_group +} + +output "role_assignment" { + value = local.az.role_assignment +} + +output "role_definition" { + value = local.az.role_definition +} + +output "route" { + value = local.az.route +} + +output "route_table" { + value = local.az.route_table +} + +output "service_fabric_cluster" { + value = local.az.service_fabric_cluster +} + +output "servicebus_namespace" { + value = local.az.servicebus_namespace +} + +output "servicebus_namespace_authorization_rule" { + value = local.az.servicebus_namespace_authorization_rule +} + +output "servicebus_queue" { + value = local.az.servicebus_queue +} + +output "servicebus_queue_authorization_rule" { + value = local.az.servicebus_queue_authorization_rule +} + +output "servicebus_subscription" { + value = local.az.servicebus_subscription +} + +output "servicebus_subscription_rule" { + value = local.az.servicebus_subscription_rule +} + +output "servicebus_topic" { + value = local.az.servicebus_topic +} + +output "servicebus_topic_authorization_rule" { + value = local.az.servicebus_topic_authorization_rule +} + +output "shared_image" { + value = local.az.shared_image +} + +output "shared_image_gallery" { + value = local.az.shared_image_gallery +} + +output "signalr_service" { + value = local.az.signalr_service +} + +output "snapshots" { + value = local.az.snapshots +} + +output "sql_elasticpool" { + value = local.az.sql_elasticpool +} + +output "sql_failover_group" { + value = local.az.sql_failover_group +} + +output "sql_firewall_rule" { + value = local.az.sql_firewall_rule +} + +output "sql_server" { + value = local.az.sql_server +} + +output "storage_account" { + value = local.az.storage_account +} + +output "storage_blob" { + value = local.az.storage_blob +} + +output "storage_container" { + value = local.az.storage_container +} + +output "storage_data_lake_gen2_filesystem" { + value = local.az.storage_data_lake_gen2_filesystem +} + +output "storage_queue" { + value = local.az.storage_queue +} + +output "storage_share" { + value = local.az.storage_share +} + +output "storage_share_directory" { + value = local.az.storage_share_directory +} + +output "storage_table" { + value = local.az.storage_table +} + +output "stream_analytics_function_javascript_udf" { + value = local.az.stream_analytics_function_javascript_udf +} + +output "stream_analytics_job" { + value = local.az.stream_analytics_job +} + +output "stream_analytics_output_blob" { + value = local.az.stream_analytics_output_blob +} + +output "stream_analytics_output_eventhub" { + value = local.az.stream_analytics_output_eventhub +} + +output "stream_analytics_output_mssql" { + value = local.az.stream_analytics_output_mssql +} + +output "stream_analytics_output_servicebus_queue" { + value = local.az.stream_analytics_output_servicebus_queue +} + +output "stream_analytics_output_servicebus_topic" { + value = local.az.stream_analytics_output_servicebus_topic +} + +output "stream_analytics_reference_input_blob" { + value = local.az.stream_analytics_reference_input_blob +} + +output "stream_analytics_stream_input_blob" { + value = local.az.stream_analytics_stream_input_blob +} + +output "stream_analytics_stream_input_eventhub" { + value = local.az.stream_analytics_stream_input_eventhub +} + +output "stream_analytics_stream_input_iothub" { + value = local.az.stream_analytics_stream_input_iothub +} + +output "subnet" { + value = local.az.subnet +} + +output "template_deployment" { + value = local.az.template_deployment +} + +output "traffic_manager_profile" { + value = local.az.traffic_manager_profile +} + +output "virtual_machine" { + value = local.az.virtual_machine +} + +output "virtual_machine_extension" { + value = local.az.virtual_machine_extension +} + +output "virtual_machine_scale_set" { + value = local.az.virtual_machine_scale_set +} + +output "virtual_machine_scale_set_extension" { + value = local.az.virtual_machine_scale_set_extension +} + +output "virtual_network" { + value = local.az.virtual_network +} + +output "virtual_network_gateway" { + value = local.az.virtual_network_gateway +} + +output "virtual_network_peering" { + value = local.az.virtual_network_peering +} + +output "virtual_wan" { + value = local.az.virtual_wan +} + +output "windows_virtual_machine" { + value = local.az.windows_virtual_machine +} + +output "windows_virtual_machine_scale_set" { + value = local.az.windows_virtual_machine_scale_set } diff --git a/resourceDefinition.json b/resourceDefinition.json index c21f693..eb0fc3f 100644 --- a/resourceDefinition.json +++ b/resourceDefinition.json @@ -32,6 +32,17 @@ "slug": "appcg", "dashes": true }, + { + "name": "application_gateway", + "length": { + "min": 1, + "max": 80 + }, + "regex": "^(?=.{1,80}$)[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9_]$", + "scope": "resourceGroup", + "slug": "agw", + "dashes": true + }, { "name": "application_insights", "length": { @@ -44,25 +55,14 @@ "dashes": true }, { - "name": "role_assignment", + "name": "application_security_group", "length": { "min": 1, - "max": 64 + "max": 80 }, - "regex": "^(?=.{1,64}$)[^%]+[^ %.]$", - "scope": "assignment", - "slug": "ra", - "dashes": true - }, - { - "name": "role_definition", - "length": { - "min": 1, - "max": 64 - }, - "regex": "^(?=.{1,64}$)[^%]+[^ %.]$", - "scope": "definition", - "slug": "rd", + "regex": "^(?=.{1,80}$)[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9_]$", + "scope": "resourceGroup", + "slug": "asg", "dashes": true }, { @@ -131,6 +131,28 @@ "slug": "aavar", "dashes": true }, + { + "name": "availability_set", + "length": { + "min": 1, + "max": 80 + }, + "regex": "^(?=.{1,80}$)[a-zA-Z0-9][a-zA-Z0-9-_.]+[a-zA-Z0-9_]$", + "scope": "resourceGroup", + "slug": "avail", + "dashes": true + }, + { + "name": "bastion_host", + "length": { + "min": 1, + "max": 80 + }, + "regex": "^(?=.{1,80}$)[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9_]$", + "scope": "parent", + "slug": "snap", + "dashes": true + }, { "name": "batch_account", "length": { @@ -176,18 +198,18 @@ "dashes": true }, { - "name": "bot_web_app", + "name": "bot_channel_directline", "length": { "min": 2, "max": 64 }, "regex": "^(?=.{2,64}$)[a-zA-Z0-9][a-zA-Z0-9-_.]+$", - "scope": "global", - "slug": "bot", + "scope": "parent", + "slug": "botline", "dashes": true }, { - "name": "bot_channel_Email", + "name": "bot_channel_email", "length": { "min": 2, "max": 64 @@ -219,17 +241,6 @@ "slug": "botslack", "dashes": true }, - { - "name": "bot_channel_directline", - "length": { - "min": 2, - "max": 64 - }, - "regex": "^(?=.{2,64}$)[a-zA-Z0-9][a-zA-Z0-9-_.]+$", - "scope": "parent", - "slug": "botline", - "dashes": true - }, { "name": "bot_channels_registration", "length": { @@ -253,36 +264,14 @@ "dashes": true }, { - "name": "redis_cache", + "name": "bot_web_app", "length": { - "min": 1, - "max": 63 + "min": 2, + "max": 64 }, - "regex": "^(?=.{1,50}$)(?!.*--)[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]$", + "regex": "^(?=.{2,64}$)[a-zA-Z0-9][a-zA-Z0-9-_.]+$", "scope": "global", - "slug": "redis", - "dashes": true - }, - { - "name": "redis_firewall_rule", - "length": { - "min": 1, - "max": 256 - }, - "regex": "^(?=.{1,256}$)[a-zA-Z0-9]+$", - "scope": "parent", - "slug": "redisfw", - "dashes": false - }, - { - "name": "cdn_profile", - "length": { - "min": 1, - "max": 260 - }, - "regex": "^(?=.{1,260}$)[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]$", - "scope": "resourceGroup", - "slug": "cdnprof", + "slug": "bot", "dashes": true }, { @@ -296,6 +285,17 @@ "slug": "cdn", "dashes": true }, + { + "name": "cdn_profile", + "length": { + "min": 1, + "max": 260 + }, + "regex": "^(?=.{1,260}$)[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]$", + "scope": "resourceGroup", + "slug": "cdnprof", + "dashes": true + }, { "name": "cognitive_account", "length": { @@ -308,117 +308,7 @@ "dashes": true }, { - "name": "availability_set", - "length": { - "min": 1, - "max": 80 - }, - "regex": "^(?=.{1,80}$)[a-zA-Z0-9][a-zA-Z0-9-_.]+[a-zA-Z0-9_]$", - "scope": "resourceGroup", - "slug": "avail", - "dashes": true - }, - { - "name": "disk_encryption_set", - "length": { - "min": 1, - "max": 80 - }, - "regex": "^(?=.{1,80}$)[a-zA-Z0-9_]+$", - "scope": "resourceGroup", - "slug": "des", - "dashes": true - }, - { - "name": "image", - "length": { - "min": 1, - "max": 80 - }, - "regex": "^(?=.{1,80}$)[a-zA-Z0-9][a-zA-Z0-9-_.]+[a-zA-Z0-9_]$", - "scope": "resourceGroup", - "slug": "img", - "dashes": true - }, - { - "name": "linux_virtual_machine", - "length": { - "min": 1, - "max": 64 - }, - "regex": "^(?=.{1,64}$)[^\\\\/\\\"\\\\[\\\\]:|<>+=;,?*@&_][^\\\\/\\\"\\\\[\\\\]:|<>+=;,?*@&]+[^\\\\/\\\"\\\\[\\\\]:|<>+=;,?*@&.-]$", - "scope": "resourceGroup", - "slug": "vm", - "dashes": true - }, - { - "name": "linux_virtual_machine_scale_set", - "length": { - "min": 1, - "max": 64 - }, - "regex": "^(?=.{1,64}$)[^\\\\/\\\"\\\\[\\\\]:|<>+=;,?*@&_][^\\\\/\\\"\\\\[\\\\]:|<>+=;,?*@&]+[^\\\\/\\\"\\\\[\\\\]:|<>+=;,?*@&.-]$", - "scope": "resourceGroup", - "slug": "vmss", - "dashes": true - }, - { - "name": "managed_disk", - "length": { - "min": 1, - "max": 80 - }, - "regex": "^(?=.{1,80}$)[a-zA-Z0-9_]+$", - "scope": "resourceGroup", - "slug": "dsk", - "dashes": true - }, - { - "name": "virtual_machine", - "length": { - "min": 1, - "max": 15 - }, - "regex": "^(?=.{1,15}$)[^\\\\/\\\"\\\\[\\\\]:|<>+=;,?*@&_][^\\\\/\\\"\\\\[\\\\]:|<>+=;,?*@&]+[^\\\\/\\\"\\\\[\\\\]:|<>+=;,?*@&.-]$", - "scope": "resourceGroup", - "slug": "vm", - "dashes": true - }, - { - "name": "virtual_machine_scale_set", - "length": { - "min": 1, - "max": 15 - }, - "regex": "^(?=.{1,15}$)[^\\\\/\\\"\\\\[\\\\]:|<>+=;,?*@&_][^\\\\/\\\"\\\\[\\\\]:|<>+=;,?*@&]+[^\\\\/\\\"\\\\[\\\\]:|<>+=;,?*@&.-]$", - "scope": "resourceGroup", - "slug": "vmss", - "dashes": true - }, - { - "name": "windows_virtual_machine", - "length": { - "min": 1, - "max": 15 - }, - "regex": "^(?=.{1,15}$)[^\\\\/\\\"\\\\[\\\\]:|<>+=;,?*@&_][^\\\\/\\\"\\\\[\\\\]:|<>+=;,?*@&]+[^\\\\/\\\"\\\\[\\\\]:|<>+=;,?*@&.-]$", - "scope": "resourceGroup", - "slug": "vm", - "dashes": true - }, - { - "name": "windows_virtual_machine_scale_set", - "length": { - "min": 1, - "max": 15 - }, - "regex": "^(?=.{1,15}$)[^\\\\/\\\"\\\\[\\\\]:|<>+=;,?*@&_][^\\\\/\\\"\\\\[\\\\]:|<>+=;,?*@&]+[^\\\\/\\\"\\\\[\\\\]:|<>+=;,?*@&.-]$", - "scope": "resourceGroup", - "slug": "vmss", - "dashes": true - }, - { - "name": "containerGroups", + "name": "container_group", "length": { "min": 1, "max": 63 @@ -450,17 +340,6 @@ "slug": "crwh", "dashes": false }, - { - "name": "kubernetes_cluster", - "length": { - "min": 1, - "max": 63 - }, - "regex": "^(?=.{1,63}$)[a-zA-Z0-9][a-zA-Z0-9-_.]+[a-zA-Z0-9]$", - "scope": "resourceGroup", - "slug": "aks", - "dashes": true - }, { "name": "cosmosdb_account", "length": { @@ -484,201 +363,14 @@ "dashes": true }, { - "name": "mariadb_server", + "name": "dashboard", "length": { "min": 3, - "max": 63 + "max": 160 }, - "regex": "^(?=.{3,63}$)[a-z0-9][a-zA-Z0-9-]+[a-z0-9]$", - "scope": "global", - "slug": "maria", - "dashes": true - }, - { - "name": "mariadb_firewall_rule", - "length": { - "min": 1, - "max": 128 - }, - "regex": "^(?=.{1,128}$)[a-zA-Z0-9-_]+$", + "regex": "^(?=.{3,160}$)[a-zA-Z0-9-]+$", "scope": "parent", - "slug": "mariafw", - "dashes": true - }, - { - "name": "mariadb_database", - "length": { - "min": 1, - "max": 63 - }, - "regex": "^(?=.{1,63}$)[a-zA-Z0-9-_]+$", - "scope": "parent", - "slug": "mariadb", - "dashes": true - }, - { - "name": "mariadb_virtual_network_rule", - "length": { - "min": 1, - "max": 128 - }, - "regex": "^(?=.{1,128}$)[a-zA-Z0-9-_]+$", - "scope": "parent", - "slug": "mariavn", - "dashes": true - }, - { - "name": "mysql_server", - "length": { - "min": 3, - "max": 63 - }, - "regex": "^(?=.{3,63}$)[a-z0-9][a-zA-Z0-9-]+[a-z0-9]$", - "scope": "global", - "slug": "mysql", - "dashes": true - }, - { - "name": "mysql_firewall_rule", - "length": { - "min": 1, - "max": 128 - }, - "regex": "^(?=.{1,128}$)[a-zA-Z0-9-_]+$", - "scope": "parent", - "slug": "mysqlfw", - "dashes": true - }, - { - "name": "mysql_database", - "length": { - "min": 1, - "max": 63 - }, - "regex": "^(?=.{1,63}$)[a-zA-Z0-9-_]+$", - "scope": "parent", - "slug": "mysqldb", - "dashes": true - }, - { - "name": "mysql_virtual_network_rule", - "length": { - "min": 1, - "max": 128 - }, - "regex": "^(?=.{1,128}$)[a-zA-Z0-9-_]+$", - "scope": "parent", - "slug": "mysqlvn", - "dashes": true - }, - { - "name": "postgresql_server", - "length": { - "min": 3, - "max": 63 - }, - "regex": "^(?=.{3,63}$)[a-z0-9][a-zA-Z0-9-]+[a-z0-9]$", - "scope": "global", - "slug": "psql", - "dashes": true - }, - { - "name": "postgresql_firewall_rule", - "length": { - "min": 1, - "max": 128 - }, - "regex": "^(?=.{1,128}$)[a-zA-Z0-9-_]+$", - "scope": "parent", - "slug": "psqlfw", - "dashes": true - }, - { - "name": "postgresql_database", - "length": { - "min": 1, - "max": 63 - }, - "regex": "^(?=.{1,63}$)[a-zA-Z0-9-_]+$", - "scope": "parent", - "slug": "psqldb", - "dashes": true - }, - { - "name": "postgresql_virtual_network_rule", - "length": { - "min": 1, - "max": 128 - }, - "regex": "^(?=.{1,128}$)[a-zA-Z0-9-_]+$", - "scope": "parent", - "slug": "psqlvn", - "dashes": true - }, - { - "name": "database_migration_project", - "length": { - "min": 2, - "max": 57 - }, - "regex": "^(?=.{2,57}$)[a-zA-Z0-9][a-zA-Z0-9-_.]+$", - "scope": "parent", - "slug": "migr", - "dashes": true - }, - { - "name": "database_migration_service", - "length": { - "min": 2, - "max": 62 - }, - "regex": "^(?=.{2,62}$)[a-zA-Z0-9][a-zA-Z0-9-_.]+$", - "scope": "resourceGroup", - "slug": "dms", - "dashes": true - }, - { - "name": "databricks_workspace", - "length": { - "min": 3, - "max": 30 - }, - "regex": "^(?=.{3,30}$)[a-zA-Z0-9-_]+$", - "scope": "resourceGroup", - "slug": "dbw", - "dashes": true - }, - { - "name": "kusto_cluster", - "length": { - "min": 4, - "max": 22 - }, - "regex": "^(?=.{4,22}$)[a-z][a-z0-9]+$", - "scope": "global", - "slug": "kc", - "dashes": false - }, - { - "name": "kusto_database", - "length": { - "min": 1, - "max": 260 - }, - "regex": "^(?=.{1,260}$)[a-zA-Z0-9- .]+$", - "scope": "parent", - "slug": "kdb", - "dashes": true - }, - { - "name": "kusto_eventhub_data_connection", - "length": { - "min": 1, - "max": 40 - }, - "regex": "^(?=.{1,40}$)[a-zA-Z0-9- .]+$", - "scope": "parent", - "slug": "kehc", + "slug": "dsb", "dashes": true }, { @@ -736,17 +428,6 @@ "slug": "adfir", "dashes": true }, - { - "name": "data_factory_pipeline", - "length": { - "min": 1, - "max": 260 - }, - "regex": "^(?=.{1,260}$)[a-zA-Z0-9][^<>*%:.?\\\\+\\\\/]+[a-zA-Z0-9]$", - "scope": "parent", - "slug": "adfpl", - "dashes": true - }, { "name": "data_factory_linked_service_data_lake_storage_gen2", "length": { @@ -802,6 +483,17 @@ "slug": "adfsvmssql", "dashes": true }, + { + "name": "data_factory_pipeline", + "length": { + "min": 1, + "max": 260 + }, + "regex": "^(?=.{1,260}$)[a-zA-Z0-9][^<>*%:.?\\\\+\\\\/]+[a-zA-Z0-9]$", + "scope": "parent", + "slug": "adfpl", + "dashes": true + }, { "name": "data_factory_trigger_schedule", "length": { @@ -857,6 +549,39 @@ "slug": "dlsfw", "dashes": true }, + { + "name": "database_migration_project", + "length": { + "min": 2, + "max": 57 + }, + "regex": "^(?=.{2,57}$)[a-zA-Z0-9][a-zA-Z0-9-_.]+$", + "scope": "parent", + "slug": "migr", + "dashes": true + }, + { + "name": "database_migration_service", + "length": { + "min": 2, + "max": 62 + }, + "regex": "^(?=.{2,62}$)[a-zA-Z0-9][a-zA-Z0-9-_.]+$", + "scope": "resourceGroup", + "slug": "dms", + "dashes": true + }, + { + "name": "databricks_workspace", + "length": { + "min": 3, + "max": 30 + }, + "regex": "^(?=.{3,30}$)[a-zA-Z0-9-_]+$", + "scope": "resourceGroup", + "slug": "dbw", + "dashes": true + }, { "name": "dev_test_lab", "length": { @@ -890,6 +615,171 @@ "slug": "labvm", "dashes": true }, + { + "name": "disk_encryption_set", + "length": { + "min": 1, + "max": 80 + }, + "regex": "^(?=.{1,80}$)[a-zA-Z0-9_]+$", + "scope": "resourceGroup", + "slug": "des", + "dashes": true + }, + { + "name": "dns_zone", + "length": { + "min": 1, + "max": 63 + }, + "regex": "^(?=.{1,63}$)[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9_]$", + "scope": "resourceGroup", + "slug": "dns", + "dashes": true + }, + { + "name": "eventgrid_domain", + "length": { + "min": 3, + "max": 50 + }, + "regex": "^(?=.{3,50}$)[a-zA-Z0-9-]+$", + "scope": "resourceGroup", + "slug": "egd", + "dashes": true + }, + { + "name": "eventgrid_domain_topic", + "length": { + "min": 3, + "max": 50 + }, + "regex": "^(?=.{3,50}$)[a-zA-Z0-9-]+$", + "scope": "parent", + "slug": "egdt", + "dashes": true + }, + { + "name": "eventgrid_event_subscription", + "length": { + "min": 3, + "max": 64 + }, + "regex": "^(?=.{3,64}$)[a-zA-Z0-9-]+$", + "scope": "resourceGroup", + "slug": "egs", + "dashes": true + }, + { + "name": "eventgrid_topic", + "length": { + "min": 3, + "max": 50 + }, + "regex": "^(?=.{3,50}$)[a-zA-Z0-9-]+$", + "scope": "resourceGroup", + "slug": "egt", + "dashes": true + }, + { + "name": "eventhub", + "length": { + "min": 1, + "max": 50 + }, + "regex": "^(?=.{1,50}$)[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9]$", + "scope": "parent", + "slug": "evh", + "dashes": true + }, + { + "name": "eventhub_authorization_rule", + "length": { + "min": 1, + "max": 50 + }, + "regex": "^(?=.{1,50}$)[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9]$", + "scope": "parent", + "slug": "ehar", + "dashes": true + }, + { + "name": "eventhub_consumer_group", + "length": { + "min": 1, + "max": 50 + }, + "regex": "^(?=.{1,50}$)[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9]$", + "scope": "parent", + "slug": "ehcg", + "dashes": true + }, + { + "name": "eventhub_namespace", + "length": { + "min": 1, + "max": 50 + }, + "regex": "^(?=.{1,50}$)[a-zA-Z][a-zA-Z0-9-]+[a-zA-Z0-9]$", + "scope": "global", + "slug": "ehn", + "dashes": true + }, + { + "name": "eventhub_namespace_authorization_rule", + "length": { + "min": 1, + "max": 50 + }, + "regex": "^(?=.{1,50}$)[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9]$", + "scope": "parent", + "slug": "ehnar", + "dashes": true + }, + { + "name": "eventhub_namespace_disaster_recovery_config", + "length": { + "min": 1, + "max": 50 + }, + "regex": "^(?=.{1,50}$)[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9]$", + "scope": "parent", + "slug": "ehdr", + "dashes": true + }, + { + "name": "express_route_circuit", + "length": { + "min": 1, + "max": 80 + }, + "regex": "^(?=.{1,80}$)[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9_]$", + "scope": "resourceGroup", + "slug": "erc", + "dashes": true + }, + { + "name": "express_route_gateway", + "length": { + "min": 1, + "max": 80 + }, + "regex": "^(?=.{1,80}$)[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9_]$", + "scope": "resourceGroup", + "slug": "ergw", + "dashes": true + }, + { + "name": "firewall", + "length": { + "min": 1, + "max": 80 + }, + "regex": "^(?=.{1,80}$)[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9_]$", + "scope": "resourceGroup", + "slug": "fw", + "dashes": true + }, { "name": "frontdoor", "length": { @@ -912,6 +802,17 @@ "slug": "fdfw", "dashes": true }, + { + "name": "function_app", + "length": { + "min": 2, + "max": 60 + }, + "regex": "^(?=.{2,60}$)[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]$", + "scope": "global", + "slug": "func", + "dashes": true + }, { "name": "hdinsight_hadoop_cluster", "length": { @@ -934,17 +835,6 @@ "slug": "hbase", "dashes": true }, - { - "name": "hdinsight_kafka_cluster", - "length": { - "min": 3, - "max": 59 - }, - "regex": "^(?=.{3,59}$)[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]$", - "scope": "global", - "slug": "kafka", - "dashes": true - }, { "name": "hdinsight_interactive_query_cluster", "length": { @@ -956,6 +846,17 @@ "slug": "iqr", "dashes": true }, + { + "name": "hdinsight_kafka_cluster", + "length": { + "min": 3, + "max": 59 + }, + "regex": "^(?=.{3,59}$)[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]$", + "scope": "global", + "slug": "kafka", + "dashes": true + }, { "name": "hdinsight_ml_services_cluster", "length": { @@ -1000,6 +901,17 @@ "slug": "storm", "dashes": true }, + { + "name": "image", + "length": { + "min": 1, + "max": 80 + }, + "regex": "^(?=.{1,80}$)[a-zA-Z0-9][a-zA-Z0-9-_.]+[a-zA-Z0-9_]$", + "scope": "resourceGroup", + "slug": "img", + "dashes": true + }, { "name": "iotcentral_application", "length": { @@ -1066,6 +978,17 @@ "slug": "kv", "dashes": true }, + { + "name": "key_vault_certificate", + "length": { + "min": 1, + "max": 127 + }, + "regex": "^(?=.{1,127}$)[a-zA-Z0-9-]+$", + "scope": "parent", + "slug": "kvc", + "dashes": true + }, { "name": "key_vault_key", "length": { @@ -1089,14 +1012,47 @@ "dashes": true }, { - "name": "key_vault_certificate", + "name": "kubernetes_cluster", "length": { "min": 1, - "max": 127 + "max": 63 }, - "regex": "^(?=.{1,127}$)[a-zA-Z0-9-]+$", + "regex": "^(?=.{1,63}$)[a-zA-Z0-9][a-zA-Z0-9-_.]+[a-zA-Z0-9]$", + "scope": "resourceGroup", + "slug": "aks", + "dashes": true + }, + { + "name": "kusto_cluster", + "length": { + "min": 4, + "max": 22 + }, + "regex": "^(?=.{4,22}$)[a-z][a-z0-9]+$", + "scope": "global", + "slug": "kc", + "dashes": false + }, + { + "name": "kusto_database", + "length": { + "min": 1, + "max": 260 + }, + "regex": "^(?=.{1,260}$)[a-zA-Z0-9- .]+$", "scope": "parent", - "slug": "kvc", + "slug": "kdb", + "dashes": true + }, + { + "name": "kusto_eventhub_data_connection", + "length": { + "min": 1, + "max": 40 + }, + "regex": "^(?=.{1,40}$)[a-zA-Z0-9- .]+$", + "scope": "parent", + "slug": "kehc", "dashes": true }, { @@ -1122,465 +1078,25 @@ "dashes": true }, { - "name": "public_ip", + "name": "linux_virtual_machine", "length": { "min": 1, - "max": 80 - }, - "regex": "^(?=.{1,80}$)[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9_]$", - "scope": "parent", - "slug": "pip", - "dashes": true - }, - { - "name": "public_ip_prefix", - "length": { - "min": 1, - "max": 80 - }, - "regex": "^(?=.{1,80}$)[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9_]$", - "scope": "parent", - "slug": "pippf", - "dashes": true - }, - { - "name": "route", - "length": { - "min": 1, - "max": 80 - }, - "regex": "^(?=.{1,80}$)[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9_]$", - "scope": "parent", - "slug": "rt", - "dashes": true - }, - { - "name": "route_table", - "length": { - "min": 1, - "max": 80 - }, - "regex": "^(?=.{1,80}$)[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9_]$", - "scope": "resourceGroup", - "slug": "route", - "dashes": true - }, - { - "name": "subnet", - "length": { - "min": 1, - "max": 80 - }, - "regex": "^(?=.{1,80}$)[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9_]$", - "scope": "parent", - "slug": "snet", - "dashes": true - }, - { - "name": "traffic_manager_profile", - "length": { - "min": 1, - "max": 63 - }, - "regex": "^(?=.{1,63}$)[a-zA-Z0-9][a-zA-Z0-9-.]+[a-zA-Z0-9_]$", - "scope": "global", - "slug": "traf", - "dashes": true - }, - { - "name": "virtual_wan", - "length": { - "min": 1, - "max": 80 - }, - "regex": "^(?=.{1,80}$)[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9_]$", - "scope": "parent", - "slug": "vwan", - "dashes": true - }, - { - "name": "virtual_network", - "length": { - "min": 2, "max": 64 }, - "regex": "^(?=.{2,64}$)[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9_]$", + "regex": "^(?=.{1,64}$)[^\\\\/\\\"\\\\[\\\\]:|<>+=;,?*@&_][^\\\\/\\\"\\\\[\\\\]:|<>+=;,?*@&]+[^\\\\/\\\"\\\\[\\\\]:|<>+=;,?*@&.-]$", "scope": "resourceGroup", - "slug": "vnet", + "slug": "vm", "dashes": true }, { - "name": "virtual_network_gateway", + "name": "linux_virtual_machine_scale_set", "length": { "min": 1, - "max": 80 + "max": 64 }, - "regex": "^(?=.{1,80}$)[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9_]$", + "regex": "^(?=.{1,64}$)[^\\\\/\\\"\\\\[\\\\]:|<>+=;,?*@&_][^\\\\/\\\"\\\\[\\\\]:|<>+=;,?*@&]+[^\\\\/\\\"\\\\[\\\\]:|<>+=;,?*@&.-]$", "scope": "resourceGroup", - "slug": "vgw", - "dashes": true - }, - { - "name": "virtual_network_peering", - "length": { - "min": 1, - "max": 80 - }, - "regex": "^(?=.{1,80}$)[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9_]$", - "scope": "parent", - "slug": "vpeer", - "dashes": true - }, - { - "name": "network_interface", - "length": { - "min": 1, - "max": 80 - }, - "regex": "^(?=.{1,80}$)[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9_]$", - "scope": "resourceGroup", - "slug": "nic", - "dashes": true - }, - { - "name": "firewall", - "length": { - "min": 1, - "max": 80 - }, - "regex": "^(?=.{1,80}$)[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9_]$", - "scope": "resourceGroup", - "slug": "fw", - "dashes": true - }, - { - "name": "eventhub", - "length": { - "min": 1, - "max": 50 - }, - "regex": "^(?=.{1,50}$)[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9]$", - "scope": "parent", - "slug": "evh", - "dashes": true - }, - { - "name": "eventhub_namespace", - "length": { - "min": 1, - "max": 50 - }, - "regex": "^(?=.{1,50}$)[a-zA-Z][a-zA-Z0-9-]+[a-zA-Z0-9]$", - "scope": "global", - "slug": "ehn", - "dashes": true - }, - { - "name": "eventhub_authorization_rule", - "length": { - "min": 1, - "max": 50 - }, - "regex": "^(?=.{1,50}$)[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9]$", - "scope": "parent", - "slug": "ehar", - "dashes": true - }, - { - "name": "eventhub_namespace_authorization_rule", - "length": { - "min": 1, - "max": 50 - }, - "regex": "^(?=.{1,50}$)[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9]$", - "scope": "parent", - "slug": "ehnar", - "dashes": true - }, - { - "name": "eventhub_namespace_disaster_recovery_config", - "length": { - "min": 1, - "max": 50 - }, - "regex": "^(?=.{1,50}$)[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9]$", - "scope": "parent", - "slug": "ehdr", - "dashes": true - }, - { - "name": "eventhub_consumer_group", - "length": { - "min": 1, - "max": 50 - }, - "regex": "^(?=.{1,50}$)[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9]$", - "scope": "parent", - "slug": "ehcg", - "dashes": true - }, - { - "name": "stream_analytics_job", - "length": { - "min": 3, - "max": 63 - }, - "regex": "^(?=.{1,63}$)[a-zA-Z0-9-_]+$", - "scope": "resourceGroup", - "slug": "asa", - "dashes": true - }, - { - "name": "stream_analytics_function_javascript_udf", - "length": { - "min": 3, - "max": 63 - }, - "regex": "^(?=.{1,63}$)[a-zA-Z0-9-_]+$", - "scope": "parent", - "slug": "asafunc", - "dashes": true - }, - { - "name": "stream_analytics_output_blob", - "length": { - "min": 3, - "max": 63 - }, - "regex": "^(?=.{1,63}$)[a-zA-Z0-9-_]+$", - "scope": "parent", - "slug": "asaoblob", - "dashes": true - }, - { - "name": "stream_analytics_output_mssql", - "length": { - "min": 3, - "max": 63 - }, - "regex": "^(?=.{1,63}$)[a-zA-Z0-9-_]+$", - "scope": "parent", - "slug": "asaomssql", - "dashes": true - }, - { - "name": "stream_analytics_output_eventhub", - "length": { - "min": 3, - "max": 63 - }, - "regex": "^(?=.{1,63}$)[a-zA-Z0-9-_]+$", - "scope": "parent", - "slug": "asaoeh", - "dashes": true - }, - { - "name": "stream_analytics_output_servicebus_queue", - "length": { - "min": 3, - "max": 63 - }, - "regex": "^(?=.{1,63}$)[a-zA-Z0-9-_]+$", - "scope": "parent", - "slug": "asaosbq", - "dashes": true - }, - { - "name": "stream_analytics_output_servicebus_topic", - "length": { - "min": 3, - "max": 63 - }, - "regex": "^(?=.{1,63}$)[a-zA-Z0-9-_]+$", - "scope": "parent", - "slug": "asaosbt", - "dashes": true - }, - { - "name": "stream_analytics_reference_input_blob", - "length": { - "min": 3, - "max": 63 - }, - "regex": "^(?=.{1,63}$)[a-zA-Z0-9-_]+$", - "scope": "parent", - "slug": "asarblob", - "dashes": true - }, - { - "name": "stream_analytics_stream_input_blob", - "length": { - "min": 3, - "max": 63 - }, - "regex": "^(?=.{1,63}$)[a-zA-Z0-9-_]+$", - "scope": "parent", - "slug": "asaiblob", - "dashes": true - }, - { - "name": "stream_analytics_stream_input_eventhub", - "length": { - "min": 3, - "max": 63 - }, - "regex": "^(?=.{1,63}$)[a-zA-Z0-9-_]+$", - "scope": "parent", - "slug": "asaieh", - "dashes": true - }, - { - "name": "stream_analytics_stream_input_iothub", - "length": { - "min": 3, - "max": 63 - }, - "regex": "^(?=.{1,63}$)[a-zA-Z0-9-_]+$", - "scope": "parent", - "slug": "asaiiot", - "dashes": true - }, - { - "name": "shared_image_gallery", - "length": { - "min": 1, - "max": 80 - }, - "regex": "^(?=.{1,80}$)[a-zA-Z0-9][a-zA-Z0-9.]+[a-zA-Z0-9]$", - "scope": "resourceGroup", - "slug": "sig", - "dashes": false - }, - { - "name": "shared_image", - "length": { - "min": 1, - "max": 80 - }, - "regex": "^(?=.{1,80}$)[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9]$", - "scope": "parent", - "slug": "si", - "dashes": true - }, - { - "name": "snapshots", - "length": { - "min": 1, - "max": 80 - }, - "regex": "^(?=.{1,80}$)[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9_]$", - "scope": "parent", - "slug": "snap", - "dashes": true - }, - { - "name": "storage_account", - "length": { - "min": 3, - "max": 24 - }, - "regex": "^(?=.{3,24}$)[a-z0-9]+$", - "scope": "global", - "slug": "st", - "dashes": false - }, - { - "name": "storage_container", - "length": { - "min": 3, - "max": 63 - }, - "regex": "^(?=.{3,63}$)(?!.*--)[a-z0-9][a-z0-9-]+$", - "scope": "parent", - "slug": "stct", - "dashes": true - }, - { - "name": "storage_data_lake_gen2_filesystem", - "length": { - "min": 3, - "max": 63 - }, - "regex": "^(?=.{3,63}$)(?!.*--)[a-z0-9][a-z0-9-]+[a-z0-9]$", - "scope": "parent", - "slug": "stdl", - "dashes": true - }, - { - "name": "storage_queue", - "length": { - "min": 3, - "max": 63 - }, - "regex": "^(?=.{3,63}$)(?!.*--)[a-z0-9][a-z0-9-]+[a-z0-9]$", - "scope": "parent", - "slug": "stq", - "dashes": true - }, - { - "name": "storage_table", - "length": { - "min": 3, - "max": 63 - }, - "regex": "^(?=.{3,63}$)(?!.*--)[a-z0-9][a-z0-9-]+[a-z0-9]$", - "scope": "parent", - "slug": "stt", - "dashes": true - }, - { - "name": "storage_share", - "length": { - "min": 3, - "max": 63 - }, - "regex": "^(?=.{3,63}$)(?!.*--)[a-z0-9][a-z0-9-]+[a-z0-9]$", - "scope": "parent", - "slug": "sts", - "dashes": true - }, - { - "name": "storage_share_directory", - "length": { - "min": 3, - "max": 63 - }, - "regex": "^(?=.{3,63}$)(?!.*--)[a-z0-9][a-z0-9-]+[a-z0-9]$", - "scope": "parent", - "slug": "sts", - "dashes": true - }, - { - "name": "machine_learning_workspace", - "length": { - "min": 1, - "max": 260 - }, - "regex": "^(?=.{1,260}$)[^<>*%:.?\\\\+\\\\/]+[^<>*%:.?\\\\+\\\\/ ]$", - "scope": "resourceGroup", - "slug": "mlw", - "dashes": true - }, - { - "name": "storage_blob", - "length": { - "min": 1, - "max": 1024 - }, - "regex": "^(?=.{1,1024}$)[^\\\\s\\\\/$#&]+$", - "scope": "parent", - "slug": "blob", - "dashes": true - }, - { - "name": "bastion_host", - "length": { - "min": 1, - "max": 80 - }, - "regex": "^(?=.{1,80}$)[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9_]$", - "scope": "parent", - "slug": "snap", + "slug": "vmss", "dashes": true }, { @@ -1594,138 +1110,6 @@ "slug": "lgw", "dashes": true }, - { - "name": "application_gateway", - "length": { - "min": 1, - "max": 80 - }, - "regex": "^(?=.{1,80}$)[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9_]$", - "scope": "resourceGroup", - "slug": "agw", - "dashes": true - }, - { - "name": "express_route_gateway", - "length": { - "min": 1, - "max": 80 - }, - "regex": "^(?=.{1,80}$)[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9_]$", - "scope": "resourceGroup", - "slug": "ergw", - "dashes": true - }, - { - "name": "express_route_circuit", - "length": { - "min": 1, - "max": 80 - }, - "regex": "^(?=.{1,80}$)[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9_]$", - "scope": "resourceGroup", - "slug": "erc", - "dashes": true - }, - { - "name": "point_to_site_vpn_gateway", - "length": { - "min": 1, - "max": 80 - }, - "regex": "^(?=.{1,80}$)[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9_]$", - "scope": "resourceGroup", - "slug": "vpngw", - "dashes": true - }, - { - "name": "template_deployment", - "length": { - "min": 1, - "max": 64 - }, - "regex": "^(?=.{1,64}$)[a-zA-Z0-9-._\\\\(\\\\)]+$", - "scope": "resourceGroup", - "slug": "deploy", - "dashes": true - }, - { - "name": "sql_server", - "length": { - "min": 1, - "max": 63 - }, - "regex": "^(?=.{1,63}$)[a-z0-9][a-z0-9-]+[a-z0-9]$", - "scope": "global", - "slug": "sql", - "dashes": true - }, - { - "name": "mssql_server", - "length": { - "min": 1, - "max": 63 - }, - "regex": "^(?=.{1,63}$)[a-z0-9][a-z0-9-]+[a-z0-9]$", - "scope": "global", - "slug": "sql", - "dashes": true - }, - { - "name": "mssql_database", - "length": { - "min": 1, - "max": 128 - }, - "regex": "^(?=.{1,128}$)[^<>*%:.?\\\\+\\\\/]+[^<>*%:.?\\\\+\\\\/ ]$", - "scope": "parent", - "slug": "sqldb", - "dashes": true - }, - { - "name": "sql_elasticpool", - "length": { - "min": 1, - "max": 128 - }, - "regex": "^(?=.{1,128}$)[^<>*%:.?\\\\+\\\\/]+[^<>*%:.?\\\\+\\\\/ ]$", - "scope": "parent", - "slug": "sqlep", - "dashes": true - }, - { - "name": "mssql_elasticpool", - "length": { - "min": 1, - "max": 128 - }, - "regex": "^(?=.{1,128}$)[^<>*%:.?\\\\+\\\\/]+[^<>*%:.?\\\\+\\\\/ ]$", - "scope": "parent", - "slug": "sqlep", - "dashes": true - }, - { - "name": "sql_failover_group", - "length": { - "min": 1, - "max": 63 - }, - "regex": "^(?=.{1,63}$)[a-z0-9][a-z0-9-]+[a-z0-9]$", - "scope": "global", - "slug": "sqlfg", - "dashes": true - }, - { - "name": "sql_firewall_rule", - "length": { - "min": 1, - "max": 128 - }, - "regex": "^(?=.{1,128}$)[^<>*%:?\\\\+\\\\/]+[^<>*%:.?\\\\+\\\\/]$", - "scope": "parent", - "slug": "sqlfw", - "dashes": true - }, { "name": "log_analytics_workspace", "length": { @@ -1738,14 +1122,25 @@ "dashes": true }, { - "name": "service_fabric_cluster", + "name": "machine_learning_workspace", "length": { - "min": 4, - "max": 23 + "min": 1, + "max": 260 }, - "regex": "^(?=.{4,23}$)[a-z][a-z0-9-]+[a-z0-9]$", - "scope": "region", - "slug": "sf", + "regex": "^(?=.{1,260}$)[^<>*%:.?\\\\+\\\\/]+[^<>*%:.?\\\\+\\\\/ ]$", + "scope": "resourceGroup", + "slug": "mlw", + "dashes": true + }, + { + "name": "managed_disk", + "length": { + "min": 1, + "max": 80 + }, + "regex": "^(?=.{1,80}$)[a-zA-Z0-9_]+$", + "scope": "resourceGroup", + "slug": "dsk", "dashes": true }, { @@ -1760,25 +1155,135 @@ "dashes": true }, { - "name": "network_watcher", + "name": "mariadb_database", + "length": { + "min": 1, + "max": 63 + }, + "regex": "^(?=.{1,63}$)[a-zA-Z0-9-_]+$", + "scope": "parent", + "slug": "mariadb", + "dashes": true + }, + { + "name": "mariadb_firewall_rule", + "length": { + "min": 1, + "max": 128 + }, + "regex": "^(?=.{1,128}$)[a-zA-Z0-9-_]+$", + "scope": "parent", + "slug": "mariafw", + "dashes": true + }, + { + "name": "mariadb_server", + "length": { + "min": 3, + "max": 63 + }, + "regex": "^(?=.{3,63}$)[a-z0-9][a-zA-Z0-9-]+[a-z0-9]$", + "scope": "global", + "slug": "maria", + "dashes": true + }, + { + "name": "mariadb_virtual_network_rule", + "length": { + "min": 1, + "max": 128 + }, + "regex": "^(?=.{1,128}$)[a-zA-Z0-9-_]+$", + "scope": "parent", + "slug": "mariavn", + "dashes": true + }, + { + "name": "mssql_database", + "length": { + "min": 1, + "max": 128 + }, + "regex": "^(?=.{1,128}$)[^<>*%:.?\\\\+\\\\/]+[^<>*%:.?\\\\+\\\\/ ]$", + "scope": "parent", + "slug": "sqldb", + "dashes": true + }, + { + "name": "mssql_elasticpool", + "length": { + "min": 1, + "max": 128 + }, + "regex": "^(?=.{1,128}$)[^<>*%:.?\\\\+\\\\/]+[^<>*%:.?\\\\+\\\\/ ]$", + "scope": "parent", + "slug": "sqlep", + "dashes": true + }, + { + "name": "mssql_server", + "length": { + "min": 1, + "max": 63 + }, + "regex": "^(?=.{1,63}$)[a-z0-9][a-z0-9-]+[a-z0-9]$", + "scope": "global", + "slug": "sql", + "dashes": true + }, + { + "name": "mysql_database", + "length": { + "min": 1, + "max": 63 + }, + "regex": "^(?=.{1,63}$)[a-zA-Z0-9-_]+$", + "scope": "parent", + "slug": "mysqldb", + "dashes": true + }, + { + "name": "mysql_firewall_rule", + "length": { + "min": 1, + "max": 128 + }, + "regex": "^(?=.{1,128}$)[a-zA-Z0-9-_]+$", + "scope": "parent", + "slug": "mysqlfw", + "dashes": true + }, + { + "name": "mysql_server", + "length": { + "min": 3, + "max": 63 + }, + "regex": "^(?=.{3,63}$)[a-z0-9][a-zA-Z0-9-]+[a-z0-9]$", + "scope": "global", + "slug": "mysql", + "dashes": true + }, + { + "name": "mysql_virtual_network_rule", + "length": { + "min": 1, + "max": 128 + }, + "regex": "^(?=.{1,128}$)[a-zA-Z0-9-_]+$", + "scope": "parent", + "slug": "mysqlvn", + "dashes": true + }, + { + "name": "network_interface", "length": { "min": 1, "max": 80 }, "regex": "^(?=.{1,80}$)[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9_]$", "scope": "resourceGroup", - "slug": "nw", - "dashes": true - }, - { - "name": "resource_group", - "length": { - "min": 1, - "max": 90 - }, - "regex": "^(?=.{1,90}$)[a-zA-Z0-9-._\\\\(\\\\)]+[a-zA-Z0-9-_\\\\(\\\\)]$", - "scope": "subscription", - "slug": "rg", + "slug": "nic", "dashes": true }, { @@ -1815,36 +1320,14 @@ "dashes": true }, { - "name": "application_security_group", + "name": "network_watcher", "length": { "min": 1, "max": 80 }, "regex": "^(?=.{1,80}$)[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9_]$", "scope": "resourceGroup", - "slug": "asg", - "dashes": true - }, - { - "name": "dns_zone", - "length": { - "min": 1, - "max": 63 - }, - "regex": "^(?=.{1,63}$)[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9_]$", - "scope": "resourceGroup", - "slug": "dns", - "dashes": true - }, - { - "name": "private_dns_zone", - "length": { - "min": 1, - "max": 63 - }, - "regex": "^(?=.{1,63}$)[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9_]$", - "scope": "resourceGroup", - "slug": "pdns", + "slug": "nw", "dashes": true }, { @@ -1858,6 +1341,17 @@ "slug": "nh", "dashes": true }, + { + "name": "notification_hub_authorization_rule", + "length": { + "min": 1, + "max": 256 + }, + "regex": "^(?=.{1,80}$)[a-zA-Z0-9][a-zA-Z0-9-._]+$", + "scope": "parent", + "slug": "dnsrec", + "dashes": true + }, { "name": "notification_hub_namespace", "length": { @@ -1870,14 +1364,212 @@ "dashes": true }, { - "name": "notification_hub_authorization_rule", + "name": "point_to_site_vpn_gateway", + "length": { + "min": 1, + "max": 80 + }, + "regex": "^(?=.{1,80}$)[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9_]$", + "scope": "resourceGroup", + "slug": "vpngw", + "dashes": true + }, + { + "name": "postgresql_database", + "length": { + "min": 1, + "max": 63 + }, + "regex": "^(?=.{1,63}$)[a-zA-Z0-9-_]+$", + "scope": "parent", + "slug": "psqldb", + "dashes": true + }, + { + "name": "postgresql_firewall_rule", + "length": { + "min": 1, + "max": 128 + }, + "regex": "^(?=.{1,128}$)[a-zA-Z0-9-_]+$", + "scope": "parent", + "slug": "psqlfw", + "dashes": true + }, + { + "name": "postgresql_server", + "length": { + "min": 3, + "max": 63 + }, + "regex": "^(?=.{3,63}$)[a-z0-9][a-zA-Z0-9-]+[a-z0-9]$", + "scope": "global", + "slug": "psql", + "dashes": true + }, + { + "name": "postgresql_virtual_network_rule", + "length": { + "min": 1, + "max": 128 + }, + "regex": "^(?=.{1,128}$)[a-zA-Z0-9-_]+$", + "scope": "parent", + "slug": "psqlvn", + "dashes": true + }, + { + "name": "powerbi_embedded", + "length": { + "min": 3, + "max": 63 + }, + "regex": "^(?=.{3,63}$)(?!.*--)[a-zA-Z0-9][a-zA-Z0-9-]+$", + "scope": "region", + "slug": "pbi", + "dashes": true + }, + { + "name": "private_dns_zone", + "length": { + "min": 1, + "max": 63 + }, + "regex": "^(?=.{1,63}$)[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9_]$", + "scope": "resourceGroup", + "slug": "pdns", + "dashes": true + }, + { + "name": "public_ip", + "length": { + "min": 1, + "max": 80 + }, + "regex": "^(?=.{1,80}$)[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9_]$", + "scope": "parent", + "slug": "pip", + "dashes": true + }, + { + "name": "public_ip_prefix", + "length": { + "min": 1, + "max": 80 + }, + "regex": "^(?=.{1,80}$)[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9_]$", + "scope": "parent", + "slug": "pippf", + "dashes": true + }, + { + "name": "redis_cache", + "length": { + "min": 1, + "max": 63 + }, + "regex": "^(?=.{1,50}$)(?!.*--)[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]$", + "scope": "global", + "slug": "redis", + "dashes": true + }, + { + "name": "redis_firewall_rule", "length": { "min": 1, "max": 256 }, - "regex": "^(?=.{1,80}$)[a-zA-Z0-9][a-zA-Z0-9-._]+$", + "regex": "^(?=.{1,256}$)[a-zA-Z0-9]+$", "scope": "parent", - "slug": "dnsrec", + "slug": "redisfw", + "dashes": false + }, + { + "name": "relay_hybrid_connection", + "length": { + "min": 1, + "max": 260 + }, + "regex": "^(?=.{1,260}$)[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9]$", + "scope": "parent", + "slug": "rlhc", + "dashes": true + }, + { + "name": "relay_namespace", + "length": { + "min": 6, + "max": 50 + }, + "regex": "^(?=.{6,50}$)[a-zA-Z][a-zA-Z0-9-]+[a-zA-Z0-9]$", + "scope": "global", + "slug": "rln", + "dashes": true + }, + { + "name": "resource_group", + "length": { + "min": 1, + "max": 90 + }, + "regex": "^(?=.{1,90}$)[a-zA-Z0-9-._\\\\(\\\\)]+[a-zA-Z0-9-_\\\\(\\\\)]$", + "scope": "subscription", + "slug": "rg", + "dashes": true + }, + { + "name": "role_assignment", + "length": { + "min": 1, + "max": 64 + }, + "regex": "^(?=.{1,64}$)[^%]+[^ %.]$", + "scope": "assignment", + "slug": "ra", + "dashes": true + }, + { + "name": "role_definition", + "length": { + "min": 1, + "max": 64 + }, + "regex": "^(?=.{1,64}$)[^%]+[^ %.]$", + "scope": "definition", + "slug": "rd", + "dashes": true + }, + { + "name": "route", + "length": { + "min": 1, + "max": 80 + }, + "regex": "^(?=.{1,80}$)[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9_]$", + "scope": "parent", + "slug": "rt", + "dashes": true + }, + { + "name": "route_table", + "length": { + "min": 1, + "max": 80 + }, + "regex": "^(?=.{1,80}$)[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9_]$", + "scope": "resourceGroup", + "slug": "route", + "dashes": true + }, + { + "name": "service_fabric_cluster", + "length": { + "min": 4, + "max": 23 + }, + "regex": "^(?=.{4,23}$)[a-z][a-z0-9-]+[a-z0-9]$", + "scope": "region", + "slug": "sf", "dashes": true }, { @@ -1969,26 +1661,26 @@ "dashes": true }, { - "name": "powerbi_embedded", + "name": "shared_image", "length": { - "min": 3, - "max": 63 + "min": 1, + "max": 80 }, - "regex": "^(?=.{3,63}$)(?!.*--)[a-zA-Z0-9][a-zA-Z0-9-]+$", - "scope": "region", - "slug": "pbi", + "regex": "^(?=.{1,80}$)[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9]$", + "scope": "parent", + "slug": "si", "dashes": true }, { - "name": "dashboard", + "name": "shared_image_gallery", "length": { - "min": 3, - "max": 160 + "min": 1, + "max": 80 }, - "regex": "^(?=.{3,160}$)[a-zA-Z0-9-]+$", - "scope": "parent", - "slug": "dsb", - "dashes": true + "regex": "^(?=.{1,80}$)[a-zA-Z0-9][a-zA-Z0-9.]+[a-zA-Z0-9]$", + "scope": "resourceGroup", + "slug": "sig", + "dashes": false }, { "name": "signalr_service", @@ -2002,69 +1694,388 @@ "dashes": true }, { - "name": "eventgrid_domain", - "length": { - "min": 3, - "max": 50 - }, - "regex": "^(?=.{3,50}$)[a-zA-Z0-9-]+$", - "scope": "resourceGroup", - "slug": "egd", - "dashes": true - }, - { - "name": "eventgrid_domain_topic", - "length": { - "min": 3, - "max": 50 - }, - "regex": "^(?=.{3,50}$)[a-zA-Z0-9-]+$", - "scope": "parent", - "slug": "egdt", - "dashes": true - }, - { - "name": "eventgrid_event_subscription", - "length": { - "min": 3, - "max": 64 - }, - "regex": "^(?=.{3,64}$)[a-zA-Z0-9-]+$", - "scope": "resourceGroup", - "slug": "egs", - "dashes": true - }, - { - "name": "eventgrid_topic", - "length": { - "min": 3, - "max": 50 - }, - "regex": "^(?=.{3,50}$)[a-zA-Z0-9-]+$", - "scope": "resourceGroup", - "slug": "egt", - "dashes": true - }, - { - "name": "relay_namespace", - "length": { - "min": 6, - "max": 50 - }, - "regex": "^(?=.{6,50}$)[a-zA-Z][a-zA-Z0-9-]+[a-zA-Z0-9]$", - "scope": "global", - "slug": "rln", - "dashes": true - }, - { - "name": "relay_hybrid_connection", + "name": "snapshots", "length": { "min": 1, - "max": 260 + "max": 80 }, - "regex": "^(?=.{1,260}$)[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9]$", + "regex": "^(?=.{1,80}$)[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9_]$", "scope": "parent", - "slug": "rlhc", + "slug": "snap", + "dashes": true + }, + { + "name": "sql_elasticpool", + "length": { + "min": 1, + "max": 128 + }, + "regex": "^(?=.{1,128}$)[^<>*%:.?\\\\+\\\\/]+[^<>*%:.?\\\\+\\\\/ ]$", + "scope": "parent", + "slug": "sqlep", + "dashes": true + }, + { + "name": "sql_failover_group", + "length": { + "min": 1, + "max": 63 + }, + "regex": "^(?=.{1,63}$)[a-z0-9][a-z0-9-]+[a-z0-9]$", + "scope": "global", + "slug": "sqlfg", + "dashes": true + }, + { + "name": "sql_firewall_rule", + "length": { + "min": 1, + "max": 128 + }, + "regex": "^(?=.{1,128}$)[^<>*%:?\\\\+\\\\/]+[^<>*%:.?\\\\+\\\\/]$", + "scope": "parent", + "slug": "sqlfw", + "dashes": true + }, + { + "name": "sql_server", + "length": { + "min": 1, + "max": 63 + }, + "regex": "^(?=.{1,63}$)[a-z0-9][a-z0-9-]+[a-z0-9]$", + "scope": "global", + "slug": "sql", + "dashes": true + }, + { + "name": "storage_account", + "length": { + "min": 3, + "max": 24 + }, + "regex": "^(?=.{3,24}$)[a-z0-9]+$", + "scope": "global", + "slug": "st", + "dashes": false + }, + { + "name": "storage_blob", + "length": { + "min": 1, + "max": 1024 + }, + "regex": "^(?=.{1,1024}$)[^\\\\s\\\\/$#&]+$", + "scope": "parent", + "slug": "blob", + "dashes": true + }, + { + "name": "storage_container", + "length": { + "min": 3, + "max": 63 + }, + "regex": "^(?=.{3,63}$)(?!.*--)[a-z0-9][a-z0-9-]+$", + "scope": "parent", + "slug": "stct", + "dashes": true + }, + { + "name": "storage_data_lake_gen2_filesystem", + "length": { + "min": 3, + "max": 63 + }, + "regex": "^(?=.{3,63}$)(?!.*--)[a-z0-9][a-z0-9-]+[a-z0-9]$", + "scope": "parent", + "slug": "stdl", + "dashes": true + }, + { + "name": "storage_queue", + "length": { + "min": 3, + "max": 63 + }, + "regex": "^(?=.{3,63}$)(?!.*--)[a-z0-9][a-z0-9-]+[a-z0-9]$", + "scope": "parent", + "slug": "stq", + "dashes": true + }, + { + "name": "storage_share", + "length": { + "min": 3, + "max": 63 + }, + "regex": "^(?=.{3,63}$)(?!.*--)[a-z0-9][a-z0-9-]+[a-z0-9]$", + "scope": "parent", + "slug": "sts", + "dashes": true + }, + { + "name": "storage_share_directory", + "length": { + "min": 3, + "max": 63 + }, + "regex": "^(?=.{3,63}$)(?!.*--)[a-z0-9][a-z0-9-]+[a-z0-9]$", + "scope": "parent", + "slug": "sts", + "dashes": true + }, + { + "name": "storage_table", + "length": { + "min": 3, + "max": 63 + }, + "regex": "^(?=.{3,63}$)(?!.*--)[a-z0-9][a-z0-9-]+[a-z0-9]$", + "scope": "parent", + "slug": "stt", + "dashes": true + }, + { + "name": "stream_analytics_function_javascript_udf", + "length": { + "min": 3, + "max": 63 + }, + "regex": "^(?=.{1,63}$)[a-zA-Z0-9-_]+$", + "scope": "parent", + "slug": "asafunc", + "dashes": true + }, + { + "name": "stream_analytics_job", + "length": { + "min": 3, + "max": 63 + }, + "regex": "^(?=.{1,63}$)[a-zA-Z0-9-_]+$", + "scope": "resourceGroup", + "slug": "asa", + "dashes": true + }, + { + "name": "stream_analytics_output_blob", + "length": { + "min": 3, + "max": 63 + }, + "regex": "^(?=.{1,63}$)[a-zA-Z0-9-_]+$", + "scope": "parent", + "slug": "asaoblob", + "dashes": true + }, + { + "name": "stream_analytics_output_eventhub", + "length": { + "min": 3, + "max": 63 + }, + "regex": "^(?=.{1,63}$)[a-zA-Z0-9-_]+$", + "scope": "parent", + "slug": "asaoeh", + "dashes": true + }, + { + "name": "stream_analytics_output_mssql", + "length": { + "min": 3, + "max": 63 + }, + "regex": "^(?=.{1,63}$)[a-zA-Z0-9-_]+$", + "scope": "parent", + "slug": "asaomssql", + "dashes": true + }, + { + "name": "stream_analytics_output_servicebus_queue", + "length": { + "min": 3, + "max": 63 + }, + "regex": "^(?=.{1,63}$)[a-zA-Z0-9-_]+$", + "scope": "parent", + "slug": "asaosbq", + "dashes": true + }, + { + "name": "stream_analytics_output_servicebus_topic", + "length": { + "min": 3, + "max": 63 + }, + "regex": "^(?=.{1,63}$)[a-zA-Z0-9-_]+$", + "scope": "parent", + "slug": "asaosbt", + "dashes": true + }, + { + "name": "stream_analytics_reference_input_blob", + "length": { + "min": 3, + "max": 63 + }, + "regex": "^(?=.{1,63}$)[a-zA-Z0-9-_]+$", + "scope": "parent", + "slug": "asarblob", + "dashes": true + }, + { + "name": "stream_analytics_stream_input_blob", + "length": { + "min": 3, + "max": 63 + }, + "regex": "^(?=.{1,63}$)[a-zA-Z0-9-_]+$", + "scope": "parent", + "slug": "asaiblob", + "dashes": true + }, + { + "name": "stream_analytics_stream_input_eventhub", + "length": { + "min": 3, + "max": 63 + }, + "regex": "^(?=.{1,63}$)[a-zA-Z0-9-_]+$", + "scope": "parent", + "slug": "asaieh", + "dashes": true + }, + { + "name": "stream_analytics_stream_input_iothub", + "length": { + "min": 3, + "max": 63 + }, + "regex": "^(?=.{1,63}$)[a-zA-Z0-9-_]+$", + "scope": "parent", + "slug": "asaiiot", + "dashes": true + }, + { + "name": "subnet", + "length": { + "min": 1, + "max": 80 + }, + "regex": "^(?=.{1,80}$)[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9_]$", + "scope": "parent", + "slug": "snet", + "dashes": true + }, + { + "name": "template_deployment", + "length": { + "min": 1, + "max": 64 + }, + "regex": "^(?=.{1,64}$)[a-zA-Z0-9-._\\\\(\\\\)]+$", + "scope": "resourceGroup", + "slug": "deploy", + "dashes": true + }, + { + "name": "traffic_manager_profile", + "length": { + "min": 1, + "max": 63 + }, + "regex": "^(?=.{1,63}$)[a-zA-Z0-9][a-zA-Z0-9-.]+[a-zA-Z0-9_]$", + "scope": "global", + "slug": "traf", + "dashes": true + }, + { + "name": "virtual_machine", + "length": { + "min": 1, + "max": 15 + }, + "regex": "^(?=.{1,15}$)[^\\\\/\\\"\\\\[\\\\]:|<>+=;,?*@&_][^\\\\/\\\"\\\\[\\\\]:|<>+=;,?*@&]+[^\\\\/\\\"\\\\[\\\\]:|<>+=;,?*@&.-]$", + "scope": "resourceGroup", + "slug": "vm", + "dashes": true + }, + { + "name": "virtual_machine_scale_set", + "length": { + "min": 1, + "max": 15 + }, + "regex": "^(?=.{1,15}$)[^\\\\/\\\"\\\\[\\\\]:|<>+=;,?*@&_][^\\\\/\\\"\\\\[\\\\]:|<>+=;,?*@&]+[^\\\\/\\\"\\\\[\\\\]:|<>+=;,?*@&.-]$", + "scope": "resourceGroup", + "slug": "vmss", + "dashes": true + }, + { + "name": "virtual_network", + "length": { + "min": 2, + "max": 64 + }, + "regex": "^(?=.{2,64}$)[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9_]$", + "scope": "resourceGroup", + "slug": "vnet", + "dashes": true + }, + { + "name": "virtual_network_gateway", + "length": { + "min": 1, + "max": 80 + }, + "regex": "^(?=.{1,80}$)[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9_]$", + "scope": "resourceGroup", + "slug": "vgw", + "dashes": true + }, + { + "name": "virtual_network_peering", + "length": { + "min": 1, + "max": 80 + }, + "regex": "^(?=.{1,80}$)[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9_]$", + "scope": "parent", + "slug": "vpeer", + "dashes": true + }, + { + "name": "virtual_wan", + "length": { + "min": 1, + "max": 80 + }, + "regex": "^(?=.{1,80}$)[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9_]$", + "scope": "parent", + "slug": "vwan", + "dashes": true + }, + { + "name": "windows_virtual_machine", + "length": { + "min": 1, + "max": 15 + }, + "regex": "^(?=.{1,15}$)[^\\\\/\\\"\\\\[\\\\]:|<>+=;,?*@&_][^\\\\/\\\"\\\\[\\\\]:|<>+=;,?*@&]+[^\\\\/\\\"\\\\[\\\\]:|<>+=;,?*@&.-]$", + "scope": "resourceGroup", + "slug": "vm", + "dashes": true + }, + { + "name": "windows_virtual_machine_scale_set", + "length": { + "min": 1, + "max": 15 + }, + "regex": "^(?=.{1,15}$)[^\\\\/\\\"\\\\[\\\\]:|<>+=;,?*@&_][^\\\\/\\\"\\\\[\\\\]:|<>+=;,?*@&]+[^\\\\/\\\"\\\\[\\\\]:|<>+=;,?*@&.-]$", + "scope": "resourceGroup", + "slug": "vmss", "dashes": true } ] diff --git a/resourceDefinition_out_of_docs.json b/resourceDefinition_out_of_docs.json index ca22879..414f8fe 100644 --- a/resourceDefinition_out_of_docs.json +++ b/resourceDefinition_out_of_docs.json @@ -1,68 +1,35 @@ [ { - "name": "private_endpoint", + "name": "databricks_cluster", "length": { - "min": 1, - "max": 80 + "min": 3, + "max": 30 }, - "regex": "^(?=.{1,80}$)[a-zA-Z0-9][a-zA-Z0-9\\\\-\\\\._]+[a-zA-Z0-9_]$", - "scope": "resourceGroup", - "slug": "pe", - "dashes": true - }, - { - "name": "private_service_connection", - "length": { - "min": 1, - "max": 80 - }, - "regex": "^(?=.{1,80}$)[a-zA-Z0-9][a-zA-Z0-9\\\\-\\\\._]+[a-zA-Z0-9_]$", - "scope": "resourceGroup", - "slug": "psc", - "dashes": true - }, - { - "name": "firewall_ip_configuration", - "length": { - "min": 1, - "max": 80 - }, - "regex": "^(?=.{1,80}$)[a-zA-Z0-9][a-zA-Z0-9\\\\-\\\\._]+[a-zA-Z0-9_]$", - "scope": "resourceGroup", - "slug": "fwipconf", - "dashes": true - }, - { - "name": "firewall_application_rule_collection", - "length": { - "min": 1, - "max": 80 - }, - "regex": "^(?=.{1,80}$)[a-zA-Z0-9][a-zA-Z0-9\\\\-\\\\._]+[a-zA-Z0-9_]$", + "regex": "^(?=.{3,30}$)[a-zA-Z0-9-_]+$", "scope": "parent", - "slug": "fwapp", + "slug": "dbc", "dashes": true }, { - "name": "firewall_nat_rule_collection", + "name": "databricks_high_concurrency_cluster", "length": { - "min": 1, - "max": 80 + "min": 3, + "max": 30 }, - "regex": "^(?=.{1,80}$)[a-zA-Z0-9][a-zA-Z0-9\\\\-\\\\._]+[a-zA-Z0-9_]$", + "regex": "^(?=.{3,30}$)[a-zA-Z0-9-_]+$", "scope": "parent", - "slug": "fwnatrc", + "slug": "dbhcc", "dashes": true }, { - "name": "firewall_network_rule_collection", + "name": "databricks_standard_cluster", "length": { - "min": 1, - "max": 80 + "min": 3, + "max": 30 }, - "regex": "^(?=.{1,80}$)[a-zA-Z0-9][a-zA-Z0-9\\\\-\\\\._]+[a-zA-Z0-9_]$", + "regex": "^(?=.{3,30}$)[a-zA-Z0-9-_]+$", "scope": "parent", - "slug": "fwnetrc", + "slug": "dbsc", "dashes": true }, { @@ -153,6 +120,61 @@ "slug": "dnsrec", "dashes": true }, + { + "name": "firewall_application_rule_collection", + "length": { + "min": 1, + "max": 80 + }, + "regex": "^(?=.{1,80}$)[a-zA-Z0-9][a-zA-Z0-9\\\\-\\\\._]+[a-zA-Z0-9_]$", + "scope": "parent", + "slug": "fwapp", + "dashes": true + }, + { + "name": "firewall_ip_configuration", + "length": { + "min": 1, + "max": 80 + }, + "regex": "^(?=.{1,80}$)[a-zA-Z0-9][a-zA-Z0-9\\\\-\\\\._]+[a-zA-Z0-9_]$", + "scope": "resourceGroup", + "slug": "fwipconf", + "dashes": true + }, + { + "name": "firewall_nat_rule_collection", + "length": { + "min": 1, + "max": 80 + }, + "regex": "^(?=.{1,80}$)[a-zA-Z0-9][a-zA-Z0-9\\\\-\\\\._]+[a-zA-Z0-9_]$", + "scope": "parent", + "slug": "fwnatrc", + "dashes": true + }, + { + "name": "firewall_network_rule_collection", + "length": { + "min": 1, + "max": 80 + }, + "regex": "^(?=.{1,80}$)[a-zA-Z0-9][a-zA-Z0-9\\\\-\\\\._]+[a-zA-Z0-9_]$", + "scope": "parent", + "slug": "fwnetrc", + "dashes": true + }, + { + "name": "network_ddos_protection_plan", + "length": { + "min": 1, + "max": 80 + }, + "regex": "^(?=.{1,80}$)[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9_]$", + "scope": "parent", + "slug": "ddospp", + "dashes": true + }, { "name": "private_dns_a_record", "length": { @@ -230,6 +252,61 @@ "slug": "pdnsrec", "dashes": true }, + { + "name": "private_dns_zone_group", + "length": { + "min": 1, + "max": 80 + }, + "regex": "^(?=.{1,80}$)[a-zA-Z0-9][a-zA-Z0-9\\\\-\\\\._]+[a-zA-Z0-9_]$", + "scope": "resourceGroup", + "slug": "pdnszg", + "dashes": true + }, + { + "name": "private_endpoint", + "length": { + "min": 1, + "max": 80 + }, + "regex": "^(?=.{1,80}$)[a-zA-Z0-9][a-zA-Z0-9\\\\-\\\\._]+[a-zA-Z0-9_]$", + "scope": "resourceGroup", + "slug": "pe", + "dashes": true + }, + { + "name": "private_link_service", + "length": { + "min": 1, + "max": 80 + }, + "regex": "^(?=.{1,80}$)[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9_]$", + "scope": "resourceGroup", + "slug": "pls", + "dashes": true + }, + { + "name": "private_service_connection", + "length": { + "min": 1, + "max": 80 + }, + "regex": "^(?=.{1,80}$)[a-zA-Z0-9][a-zA-Z0-9\\\\-\\\\._]+[a-zA-Z0-9_]$", + "scope": "resourceGroup", + "slug": "psc", + "dashes": true + }, + { + "name": "proximity_placement_group", + "length": { + "min": 1, + "max": 80 + }, + "regex": "^(?=.{1,80}$)[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9_]$", + "scope": "resourceGroup", + "slug": "ppg", + "dashes": true + }, { "name": "virtual_machine_extension", "length": { @@ -251,82 +328,5 @@ "scope": "parent", "slug": "vmssx", "dashes": true - }, - { - "name": "network_ddos_protection_plan", - "length": { - "min": 1, - "max": 80 - }, - "regex": "^(?=.{1,80}$)[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9_]$", - "scope": "parent", - "slug": "ddospp", - "dashes": true - }, - { - "name": "private_dns_zone_group", - "length": { - "min": 1, - "max": 80 - }, - "regex": "^(?=.{1,80}$)[a-zA-Z0-9][a-zA-Z0-9\\\\-\\\\._]+[a-zA-Z0-9_]$", - "scope": "resourceGroup", - "slug": "pdnszg", - "dashes": true - }, - { - "name": "proximity_placement_group", - "length": { - "min": 1, - "max": 80 - }, - "regex": "^(?=.{1,80}$)[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9_]$", - "scope": "resourceGroup", - "slug": "ppg", - "dashes": true - }, - { - "name": "private_link_service", - "length": { - "min": 1, - "max": 80 - }, - "regex": "^(?=.{1,80}$)[a-zA-Z0-9][a-zA-Z0-9-._]+[a-zA-Z0-9_]$", - "scope": "resourceGroup", - "slug": "pls", - "dashes": true - }, - { - "name": "databricks_cluster", - "length": { - "min": 3, - "max": 30 - }, - "regex": "^(?=.{3,30}$)[a-zA-Z0-9-_]+$", - "scope": "parent", - "slug": "dbc", - "dashes": true - }, - { - "name": "databricks_standard_cluster", - "length": { - "min": 3, - "max": 30 - }, - "regex": "^(?=.{3,30}$)[a-zA-Z0-9-_]+$", - "scope": "parent", - "slug": "dbsc", - "dashes": true - }, - { - "name": "databricks_high_concurrency_cluster", - "length": { - "min": 3, - "max": 30 - }, - "regex": "^(?=.{3,30}$)[a-zA-Z0-9-_]+$", - "scope": "parent", - "slug": "dbhcc", - "dashes": true } -] \ No newline at end of file +] diff --git a/templates/main.tmpl b/templates/main.tmpl index 69ab4a3..11899f7 100644 --- a/templates/main.tmpl +++ b/templates/main.tmpl @@ -1,13 +1,13 @@ {{- define "resources" -}} {{- .Name }} = { - name = substr(join("{{if .Dashes}}-{{ end }}", compact([local.prefix{{if not .Dashes}}_safe{{ end }}, "{{ .Slug }}", local.suffix{{if not .Dashes}}_safe{{ end }}])), 0, {{ .Length.Max }}) - name_unique = substr(join("{{if .Dashes}}-{{ end }}", compact([local.prefix{{if not .Dashes}}_safe{{ end }}, "{{ .Slug }}", local.suffix_unique{{if not .Dashes}}_safe{{ end }}])), 0, {{ .Length.Max }}) - dashes = {{ .Dashes }} - slug = "{{ .Slug }}" - min_length = {{ .Length.Min }} - max_length = {{ .Length.Max }} - scope = "{{ .Scope }}" - regex = "{{ cleanRegex .Regex }}" + name = substr(join("{{if .Dashes}}-{{ end }}", compact([local.prefix{{if not .Dashes}}_safe{{ end }}, "{{ .Slug }}", local.suffix{{if not .Dashes}}_safe{{ end }}])), 0, {{ .Length.Max }}) + name_unique = substr(join("{{if .Dashes}}-{{ end }}", compact([local.prefix{{if not .Dashes}}_safe{{ end }}, "{{ .Slug }}", local.suffix_unique{{if not .Dashes}}_safe{{ end }}])), 0, {{ .Length.Max }}) + dashes = {{ .Dashes }} + slug = "{{ .Slug }}" + min_length = {{ .Length.Min }} + max_length = {{ .Length.Max }} + scope = "{{ .Scope }}" + regex = "{{ cleanRegex .Regex }}" } {{- end -}}