1. Packages
  2. Azure Classic
  3. Azure Classic v6 Migration Guide

We recommend using Azure Native.

Azure v6.22.0 published on Tuesday, Apr 1, 2025 by Pulumi

Azure Classic v6 Migration Guide

Version 6 of the Azure Classic provider is the first major release since April 2022. There are some breaking changes which are detailed in this document. Version 6 of the pulumi-azure provider is based on version 4 of the terraform provider. The original release notes can be found in the 4.0 upgrade guide.

Upgrade to version 5.89.0 of the provider and resolve any deprecation warnings before moving to version 6.

Subscription ID is now mandatory

The subscription id configuration is now always required. This can be set via the environment variable ARM_SUBSCRIPTION_ID or the provider configuration property subscriptionId. This was already required when using any authentication method except for the CLI.

Provider Registration Options

The previous version of the provider would automatically register a predefined list of resource providers in Azure, unless disabled with the skipProviderRegistration configuration option.

In version 6, the default set of resource providers is reduced to a smaller default set with the option to specify an alternative pre-defined set and specify a custom list of resource providers.

  • resourceProviderRegistrations is the name of the set of resource providers to automatically register.
    • core - A minimal set of RPs that are deemed necessary for a subscription, the list of RPs in this set can be found upstream here
    • extended - An expanded set of RPs as suggested by the community, the list of RPs in this set can be found upstream here
    • all - A complete set of RPs that might be needed to utilize any functionality in the provider, the list of RPs in this set can be found upstream here
    • none - No resource providers should be automatically registered
    • legacy - A set of automatically registered RPs from earlier versions of the provider, this is only provided for forwards compatibility and will be removed in a future major version release
  • resourceProvidersToRegisters is a list of resource provider names to register in addition to the set specified with resourceProviderRegistrations

Case Sensitive Enums

In the previous upstream version enum strings were made case sensitive for better strictness and to resolve some persistent diff issues. We delayed passing on this change until this next major version to ensure we had a good migration experience which could avoid fixing the case causing replacements.

Once you have upgraded to v6, performing a preview will report any properties with incorrect casing and will indicate the allowed values. The casing will need to be fixed in your program before being able to continue with your deployment.

List of resource properties affected

ResourceProperties
appservice.AppServicedotnetFrameworkVersion
javaContainer
managedPipelineMode
remoteDebuggingVersion
appservice.CertificateOrderproductType
appservice.FunctionAppdotnetFrameworkVersion
analysisservices.ServerquerypoolConnectionMode
automation.RunBookrunbookType
automation.Schedulefrequency
weekDays
monthlyOccurrence
cdn.EndpointgeoFilters.action
optimizationType
cdn.Profilesku
compute.ImageosDisk.osType
osDisk.osState
osDisk.caching
dataDisk.caching
compute.SnapshotcreateOption
compute.VirtualMachineDataDiskAttachmentcaching
createOption
containers.ContainerGroupipAddressType
osType
restartPolicy
containers.KubernetesClusterloadBalancerSku
cosmos.AccountofferType
kind
consistencyPolicy.consistencyLevel
capabilities.name
cosmos.GremlinGraphindexingMode
dns.CaaRecordrecord.tag
eventhub.Namespacesku
eventhub.EventHubencoding
network.FirewallPolicyintrusionDetection.trafficBypasses.protocol
hdinsight.HBaseClustertier
roles.*.vmSize
hdinsight.HadoopClustertier
roles.*.vmSize
hdinsight.InteractiveQueryClustertier
roles.*.vmSize
hdinsight.KafkaClustertier
roles.*.vmSize
hdinsight.SparkClustertier
roles.*.vmSize
iotcentral.Applicationsku
iot.IoTHubendpoint.encoding
keyvault.CertificatecertificatePolicy.keyProperties.keyType
compute.VirtualMachinelicenseType
storageOsDisk.osType
storageOsDisk.managedDiskType
storageDataDisk.managedDiskType
osProfileWindowsConfig.winrm.protocol
compute.ScaleSetlicenseType
upgradePolicyMode
priority
storageProfileOsDisk.managedDiskType
storageProfileDataDisk.managedDiskType
lb.LoadBalancersku
lb.NatPoolprotocol
lb.NatRuleprotocol
lb.Probeprotocol
lb.Ruleprotocol
loganalytics.DataSourceWindowsEventeventTypes
logic.IntegrationAccountBatchConfigurationrecurrence.frequency
recurrence.schedule.monthly.weekday
recurrence.schedule.weekDays
logic.StandardconnectionString.type
dotnetFrameworkVersion
logz.Monitorplan.billingCycle
plan.planId
plan.usageType
media.ServicesAccountstorageAuthenticationType
keyDeliveryAccessControl.defaultAction
monitor.MonitorAutoscaleSettingprofile.recurrence.days
mssql.DatabasethreatDetectionPolicy.disabledAlerts
threatDetectionPolicy.emailAccountAdmins
threatDetectionPolicy.state
mssql.Elasticpoolsku.name
sku.tier
sku.family
mssql.ServerSecurityAlertPolicystate
mysql.Serverversion
network.ApplicationGatewaybackendHttpSettings.protocol
backendHttpSettings.cookieBasedAffinity
frontendIpConfiguration.privateIpAddressAllocation
httpListener.protocol
privateLinkConfiguration.ipConfiguration.privateIpAddressAllocation
sku.name
sku.tier
probe.protocol
wafConfiguration.firewallMode
network.ExpressRouteCircuitsku.tier
sku.family
network.NetworkSecurityGroupsecurityRule.protocol
securityRule.access
securityRule.direction
network.NetworkSecurityRuleprotocol
access
direction
network.PublicIpPrefixipVersion
network.PublicIpipVersion
sku
network.RoutenextHopType
network.RouteTablenextHopType
network.VirtualNetworkGatewayConnectiontype
ipsecPolicy.dhGroup
ipsecPolicy.ikeEncryption
ipsecPolicy.ikeIntegrity
network.VirtualNetworkGatewaytype
vpnType
vpnClientConfiguration.vpnClientProtocols
notificationhub.NotificationHubNamespacenamespaceType
policy.PolicyDefinitionpolicyType
postgresql.Serverversion
recoveryservices.Vaultsku
recoveryservices.ReplicatedVMtargetDiskType
targetReplicaDiskType
redis.CacheskuName
redis.LinkedServerserverRole
securitycenter.Automationaction.type
ruleSet.rule.operator
ruleSet.rule.propertyType
servicebus.Namespacesku
servicebus.SubscriptionRulefilterType
servicebus.Topicstatus
sql.DatabasecreateMode
import.storageKeyType
import.authenticationType
import.operationMode
edition
threatDetectionPolicy.disabledAlerts
threatDetectionPolicy.emailAccountAdmins
threatDetectionPolicy.state
sql.ManagedInstancelicenseType
sql.SqlServerthreatDetectionPolicy.disabledAlerts
threatDetectionPolicy.state
storage.AccountaccountKind
accountTier
accountReplicationType
accessTier
networkRules.bypass
synapse.SqlPoolSecurityAlertPolicypolicyState
synapse.WorkspaceSecurityAlertPolicypolicyState
trafficmanager.ProfilemonitorConfig.protocol
profileStatus

Removed Resources

Resources which were previously deprecated have now been removed. Some removed resources have direct replacements which can be directly migrated to by updating your code. Other services have been retired by Azure and therefore have no direct migration to an alternative.

Replaced Resources

These resources were previously deprecated and have now been removed in favor of a new resource. To migrate to the replacement resource, update your Pulumi program to use the new type, leaving the logical name the same, and fix any properties which don’t align, then your existing resource will automatically be migrated.

Removed ResourceReplacement Resource
core.TemplateDeploymentcore.ResourceGroupTemplateDeployment
portal.Dashboardportal.PortalDashboard
databricks.WorkspaceCustomerManagedKeydatabricks.WorkspaceRootDbfsCustomerManagedKey
datafactory.IntegrationRuntimeManageddatafactory.IntegrationRuntimeSsis
graph.Accountgraph.ServicesAccount
monitoring.ActionRuleActionGroupmonitoring.AlertProcessingRuleActionGroup
monitoring.ActionRuleSuppressionmonitoring.AlertProcessingRuleSuppression
sql.Databasemssql.Database
sql.ElasticPoolmssql.ElasticPool
sql.FailoverGroupmssql.FailoverGroup
sql.FirewallRulemssql.FirewallRule
sql.ManagedDatabasemssql.ManagedDatabase
sql.ManagedInstanceActiveDirectoryAdministratormssql.ManagedInstanceActiveDirectoryAdministrator
sql.ManagedInstanceFailoverGroupmssql.ManagedInstanceFailoverGroup
sql.ManagedInstancemssql.ManagedInstance
sql.SqlServermssql.Server
sql.VirtualNetworkRulemssql.VirtualNetworkRule

Replaced Data Sources

Removed Data SourceReplacement Data Source
hybrid.getComputeMachinearcmachine.get

Retired Resources

These resource do not have a direct replacement and the old resource will need to be deleted or removed from state then recreated using alternative resources.

Retired ResourceNotes
appservice.EnvironmentThis resource covered App Service Environment v1 and v2 which were retired on 2024-08-31. ASE v3 is current, and covered by appservice.EnvironmentV3.
cdn.FrontdoorRouteDisableLinkToDefaultDomainThis resource is superseded by the linkToDefaultDomain property in the cdn.FrontdoorRoute resource.
cosmosdb.NotebookWorkspaceCosmosDb Notebook Workspace is deprecated by Azure and only offers short-lived notebooks at this point.
databoxedge.OrderThe creation of DataBox Edge Orders is not supported by the Azure API.
servicebus.NamespaceNetworkRuleSetThis resource is superseded by the networkRuleSet property in the servicebus.Namespace resource.
sql.ActiveDirectoryAdministratorThis resource is superseded by the azureadAdministrator property in the mssql.Server resource.

Retired Services

ServiceResourcesNotes
iotTimeSeriesInsightsAccessPolicy
TimeSeriesInsightsEventSourceEventhub
TimeSeriesInsightsEventSourceIothub
TimeSeriesInsightsGen2Environment
TimeSeriesInsightsReferenceDataSet
TimeSeriesInsightsStandardEnvironment
This Azure Service will be retired on 2025-03-31.
labLab
Schedule
ServicePlan
User
This Azure service is deprecated and on the road to retirement.
monitoringLogzMonitor
LogzSubAccount
LogzSubAccountTagRule
LogzTagRule
This Azure service is being retired.
mariadbConfiguration
Database
FirewallRule
Server
VirtualNetworkRule
getMariaDbServer
This service is replaced by MySQL Flexible Server.
mediaAccountFilter
AssetFilter
Asset
ContentKeyPolicy
Job
LiveEvent
LiveEventOutput
ServiceAccount
StreamingEndpoint
StreamingLocator
StreamingPolicy
Transform
Azure Media Services was retired June 30th, 2024.
mediaservicesAccountAzure Media Services was retired June 30th, 2024.
mysqlActiveDirectoryAdministrator
Configuration
Database
FirewallRule
Server
ServerKey
VirtualNetworkRule
getServer
Azure Database for MySQL Single Server was retired on 2024-09-16 and users should migrate to Azure Database for MySQL Flexible Server.
videoanalyzerAnalyzer
EdgeModule
This service was retired in June 2024.

Resource Property Breaking Changes

About 150 resources saw changes to properties that might require a manual update. For the full list please see the upstream upgrade guide.

  • 16 properties are no longer “Computed”. If you experience a diff as a result of this change you may need to use ignoreChanges.
  • 31 properties had their default value updated.
  • 4 resources have new properties that are required, so you’ll need to add them if you use these resources.
  • 32 deprecated properties were removed (10 from KubernetesCluster).
  • The other changes are properties that were renamed or replaced by a related property.

Other

Instances of the apimanagement.ApiTag resource will need to be recreated upon upgrading so that the tag revision can be included in the resource ID.