From f4fed9e08edbb6c54999745dac0d05f6e022e7c9 Mon Sep 17 00:00:00 2001 From: Daniel Bradley Date: Thu, 30 Jan 2025 17:50:11 +0000 Subject: [PATCH 1/8] Simplify v3 module naming overrides - Copy pattern of the existing v2 overrides where we only need to look at the folder name. - This has no impact on the schema in v3. --- provider/pkg/resources/resources.go | 34 +++++++++++++---------------- 1 file changed, 15 insertions(+), 19 deletions(-) diff --git a/provider/pkg/resources/resources.go b/provider/pkg/resources/resources.go index 1ead29442d97..18fd0f3381ab 100644 --- a/provider/pkg/resources/resources.go +++ b/provider/pkg/resources/resources.go @@ -295,7 +295,7 @@ func GetModuleName(majorVersion uint64, filePath, apiUri string) (ModuleNaming, // Start with extracting the namespace from the folder path. If the folder name is explicitly listed, // use it as the module name. This is the new style we use for newer resources after 1.0. Older // resources to be migrated as part of https://github.com/pulumi/pulumi-azure-native/issues/690. - if override, hasOverride := getNameOverride(majorVersion, specFolderName, namespaceWithoutPrefixFromSpecFilePath); hasOverride { + if override, hasOverride := getNameOverride(majorVersion, specFolderName); hasOverride { return ModuleNaming{ ResolvedName: override, SpecFolderName: specFolderName, @@ -318,29 +318,27 @@ func GetModuleName(majorVersion uint64, filePath, apiUri string) (ModuleNaming, }, nil } -var modulesNamedByFolder = map[string]ModuleName{ +var v2ModulesNamedByFolder = map[string]ModuleName{ "videoanalyzer": "VideoAnalyzer", "webpubsub": "WebPubSub", } -var moduleNameOverridesWithAliases = map[string]map[string]string{ - "Network": { - "dns": "Dns", - "dnsresolver": "DnsResolver", - "frontdoor": "FrontDoor", - "privatedns": "PrivateDns", - "trafficmanager": "TrafficManager", - }, - "DocumentDB": { - "mongocluster": "MongoCluster", - }, +var v3ModulesNamedByFolder = map[string]ModuleName{ + // "Network": + "dns": "Dns", + "dnsresolver": "DnsResolver", + "frontdoor": "FrontDoor", + "privatedns": "PrivateDns", + "trafficmanager": "TrafficManager", + // "DocumentDB": + "mongocluster": "MongoCluster", } // getNameOverride returns a name override for a given folder name, and non-prefixed namespace. // The second return value is true if an override is found. -func getNameOverride(majorVersion uint64, specFolderName, namespaceWithoutPrefix string) (ModuleName, bool) { +func getNameOverride(majorVersion uint64, specFolderName string) (ModuleName, bool) { // For the cases below, we use folder (SDK) moduleName for module names instead of the ARM moduleName. - if moduleName, ok := modulesNamedByFolder[specFolderName]; ok { + if moduleName, ok := v2ModulesNamedByFolder[specFolderName]; ok { return moduleName, true } // Disable additional rules for v2 and below. @@ -349,10 +347,8 @@ func getNameOverride(majorVersion uint64, specFolderName, namespaceWithoutPrefix return "", false } // New rules for v3 and above which include aliases back to the original namespace. - if namespaceOverrides, ok := moduleNameOverridesWithAliases[namespaceWithoutPrefix]; ok { - if folderName, ok := namespaceOverrides[specFolderName]; ok { - return ModuleName(folderName), true - } + if moduleName, ok := v3ModulesNamedByFolder[specFolderName]; ok { + return moduleName, true } return "", false } From c18e71ffd66d5358c263c657954822b807461640 Mon Sep 17 00:00:00 2001 From: Daniel Bradley Date: Fri, 31 Jan 2025 09:44:53 +0000 Subject: [PATCH 2/8] Rename module Cache into Redis / RedisEnterprise --- provider/pkg/resources/resources.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/provider/pkg/resources/resources.go b/provider/pkg/resources/resources.go index 18fd0f3381ab..83e7a4945d75 100644 --- a/provider/pkg/resources/resources.go +++ b/provider/pkg/resources/resources.go @@ -330,6 +330,9 @@ var v3ModulesNamedByFolder = map[string]ModuleName{ "frontdoor": "FrontDoor", "privatedns": "PrivateDns", "trafficmanager": "TrafficManager", + // Cache: + "redis": "Redis", + "redisenterprise": "RedisEnterprise", // "DocumentDB": "mongocluster": "MongoCluster", } From 232a324c774ca732833b4f363908e820998312d0 Mon Sep 17 00:00:00 2001 From: Daniel Bradley Date: Fri, 31 Jan 2025 13:08:17 +0000 Subject: [PATCH 3/8] Rename module Devices into IoTHub / DeviceProvisioningServices --- provider/pkg/resources/resources.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/provider/pkg/resources/resources.go b/provider/pkg/resources/resources.go index 83e7a4945d75..9855bd0b829f 100644 --- a/provider/pkg/resources/resources.go +++ b/provider/pkg/resources/resources.go @@ -333,6 +333,9 @@ var v3ModulesNamedByFolder = map[string]ModuleName{ // Cache: "redis": "Redis", "redisenterprise": "RedisEnterprise", + // Devices: + "iothub": "IoTHub", + "deviceprovisioningservices": "DeviceProvisioningServices", // "DocumentDB": "mongocluster": "MongoCluster", } From ccb3fcd53a5364c4a1771161faf280114cbad7fe Mon Sep 17 00:00:00 2001 From: Daniel Bradley Date: Fri, 31 Jan 2025 13:30:48 +0000 Subject: [PATCH 4/8] fix format --- provider/pkg/resources/resources.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/provider/pkg/resources/resources.go b/provider/pkg/resources/resources.go index 9855bd0b829f..98395dac2c48 100644 --- a/provider/pkg/resources/resources.go +++ b/provider/pkg/resources/resources.go @@ -334,7 +334,7 @@ var v3ModulesNamedByFolder = map[string]ModuleName{ "redis": "Redis", "redisenterprise": "RedisEnterprise", // Devices: - "iothub": "IoTHub", + "iothub": "IoTHub", "deviceprovisioningservices": "DeviceProvisioningServices", // "DocumentDB": "mongocluster": "MongoCluster", From 38bef00f4c2fd637eeb1b544bd11dbeac59cc6c6 Mon Sep 17 00:00:00 2001 From: Daniel Bradley Date: Fri, 31 Jan 2025 13:32:13 +0000 Subject: [PATCH 5/8] Rename DocumentDB module to CosmosDB --- provider/pkg/resources/resources.go | 1 + 1 file changed, 1 insertion(+) diff --git a/provider/pkg/resources/resources.go b/provider/pkg/resources/resources.go index 98395dac2c48..0e6faccbded3 100644 --- a/provider/pkg/resources/resources.go +++ b/provider/pkg/resources/resources.go @@ -337,6 +337,7 @@ var v3ModulesNamedByFolder = map[string]ModuleName{ "iothub": "IoTHub", "deviceprovisioningservices": "DeviceProvisioningServices", // "DocumentDB": + "cosmos-db": "CosmosDB", "mongocluster": "MongoCluster", } From ab7ecb80a94b91c2d3afd975cc4e71e5adf696d9 Mon Sep 17 00:00:00 2001 From: Daniel Bradley Date: Fri, 31 Jan 2025 13:44:35 +0000 Subject: [PATCH 6/8] Fix matching hyphenated spec folder name E.g. "cosmos-db" --- provider/pkg/resources/resources.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/provider/pkg/resources/resources.go b/provider/pkg/resources/resources.go index 0e6faccbded3..d5a341cb31f1 100644 --- a/provider/pkg/resources/resources.go +++ b/provider/pkg/resources/resources.go @@ -415,7 +415,7 @@ func findNamespaceWithoutPrefixFromPath(path, defaultValue string) string { return defaultValue } -var folderModulePattern = regexp.MustCompile(`.*/specification/([a-zA-Z]+)/resource-manager/.*`) +var folderModulePattern = regexp.MustCompile(`.*/specification/([a-zA-Z-]+)/resource-manager/.*`) func getSpecFolderName(path string) string { subMatches := folderModulePattern.FindStringSubmatch(path) From c60a0b2fb747a05929fbab12229ae10fd7b0915f Mon Sep 17 00:00:00 2001 From: Daniel Bradley Date: Fri, 31 Jan 2025 13:51:30 +0000 Subject: [PATCH 7/8] Rename Insights to Monitor / ApplicationInsights --- provider/pkg/resources/resources.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/provider/pkg/resources/resources.go b/provider/pkg/resources/resources.go index d5a341cb31f1..f5253c8a9697 100644 --- a/provider/pkg/resources/resources.go +++ b/provider/pkg/resources/resources.go @@ -339,6 +339,9 @@ var v3ModulesNamedByFolder = map[string]ModuleName{ // "DocumentDB": "cosmos-db": "CosmosDB", "mongocluster": "MongoCluster", + // Insights: + "monitor": "Monitor", + "applicationinsights": "ApplicationInsights", } // getNameOverride returns a name override for a given folder name, and non-prefixed namespace. From f431e592c30ef318099b52d39487c56e03401d01 Mon Sep 17 00:00:00 2001 From: Daniel Bradley Date: Fri, 31 Jan 2025 14:16:05 +0000 Subject: [PATCH 8/8] Update v3 Config for Insights split --- versions/v3-config.yaml | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/versions/v3-config.yaml b/versions/v3-config.yaml index 41ae20bacaf0..8e7f6793a455 100644 --- a/versions/v3-config.yaml +++ b/versions/v3-config.yaml @@ -71,6 +71,12 @@ AppComplianceAutomation: AppConfiguration: exclusions: listConfigurationStoreKeyValue: "2020-06-01" # was renamed to KeyValues_ListByConfigurationStore, endpoint from listKeyValue to keyValues +ApplicationInsights: + explicit: true + notes: | + Each API version only includes changed resources so no benefit in tracking a version + Path: /azure-rest-api-specs/specification/applicationinsights/resource-manager/Microsoft.Insights + Docs: https://learn.microsoft.com/en-us/rest/api/application-insights/ AppPlatform: notes: | AppPlatform is also called "Azure Spring Apps". @@ -397,14 +403,6 @@ HybridNetwork: notes: | https://learn.microsoft.com/en-us/rest/api/hybridnetwork/ ImportExport: -Insights: - explicit: true - notes: | - Each API version only includes changed resources so no benefit in tracking a version - Path: /azure-rest-api-specs/specification/applicationinsights/resource-manager/Microsoft.Insights - Docs: https://learn.microsoft.com/en-us/rest/api/application-insights/ - - Components and Web Tests pinned on 2015-05-01 - - Workbooks pinned on 2021-08-01 Intune: expectTracking: preview notes: Only preview versions @@ -531,8 +529,13 @@ MobileNetwork: notes: | https://learn.microsoft.com/en-us/rest/api/mobilenetwork/mobile-networks Monitor: + explicit: true notes: | - This is *not* Azure Monitor + Each API version only includes changed resources so no benefit in tracking a version + Docs: https://learn.microsoft.com/en-us/rest/api/monitor/ + This was previously known as Insights (included in the namespace), which is now referred to as "Classic Insights". + This has more recently been renamed to "Monitor", with the addition of the Microsoft.Monitor namespace. + The new Monitor namespace contains a "Workspace" resource to which the "classic" insights resources are parented to to modernize them. NetApp: Network: explicit: true