Proposed Pull Request Change

📄 Document Links
GitHub View on GitHub Microsoft Learn View on Microsoft Learn
Content Truncation Detected
The generated rewrite appears to be incomplete.
Original lines: -
Output lines: -
Ratio: -
Raw New Markdown
Generating updated version of doc...
Rendered New Markdown
Generating updated version of doc...
+0 -0
+0 -0
--- title: Move Azure classic deployment resources description: Use Azure Resource Manager to move classic deployment resources to a new resource group or subscription. ms.topic: article ms.date: 09/15/2025 ms.custom: devx-track-arm-template --- # Move guidance for classic deployment model resources The steps to move resources deployed through the classic model differ based on whether you're moving the resources within a subscription or to a new subscription. ## Move in the same subscription When you move resources from one resource group to another resource group within the same subscription, the following restrictions apply: - You can't move virtual networks (classic). - You must move virtual machines (classic) with the cloud service. - You can only move the cloud service when the move includes all its virtual machines. - You can only move one cloud service at a time. - You can only move one storage account (classic) at a time. - You can't move storage account (classic) in the same operation with a virtual machine or a cloud service. To move classic resources to a new resource group within the same subscription, use the [standard move operations](../move-resource-group-and-subscription.md) through the portal, Azure PowerShell, Azure CLI, or REST API. Use the same operations as you use for moving Resource Manager resources. ## Move across subscriptions When you move classic cloud services to a new subscription, the following restrictions apply: - The source and target subscriptions need to be under the same Microsoft Entra tenant. - Cloud Service Provider (CSP) subscriptions don't support migrating classic cloud services. - All classic resources in the subscription must be moved in the same operation. - The target subscription must not have any other classic resources. - You can only request the move through a separate REST API for classic moves. The standard Resource Manager move commands don't work when moving classic resources to a new subscription. To move classic resources to a new subscription, use the REST operations that are specific to classic resources. To use REST, do the following steps: 1. Check if the source subscription can participate in a cross-subscription move. Use the following operation: ```HTTP POST https://management.azure.com/subscriptions/{sourceSubscriptionId}/providers/Microsoft.ClassicCompute/validateSubscriptionMoveAvailability?api-version=2016-04-01 ``` In the request body, include: ```json { "role": "source" } ``` The response for the validation operation is in the following format: ```json { "status": "{status}", "reasons": [ "reason1", "reason2" ] } ``` 1. Check if the destination subscription can participate in a cross-subscription move. Use the following operation: ```HTTP POST https://management.azure.com/subscriptions/{destinationSubscriptionId}/providers/Microsoft.ClassicCompute/validateSubscriptionMoveAvailability?api-version=2016-04-01 ``` In the request body, include: ```json { "role": "target" } ``` The response is in the same format as the source subscription validation. 1. Move all classic resources that pass validation from one subscription to another subscription. Use the following operation: ```HTTP POST https://management.azure.com/subscriptions/{subscription-id}/providers/Microsoft.ClassicCompute/moveSubscriptionResources?api-version=2016-04-01 ``` In the request body, include: ```json { "target": "/subscriptions/{target-subscription-id}" } ``` The operation might run for several minutes. ## Possible error messages in the source subscription validation stage ### "Subscription migration for SubscriptionId {subscription ID} cannot continue as IaaS classic to ARM migration is in progress for the following deployment resource: _xx in HostedService {classic-cloud-service-name}_" This message means there's a classic cloud service that's ongoing migrating to the cloud service (extended support). You should abort this ARM migration operation and then retry validation. ### "Source subscription _{subscription ID}_ is empty" The source subscription can't be empty, disabled, deleted, or currently undergoing migration. During the migration period, write operations aren't allowed on resources within the subscription. ### "Source subscription contains application(s) which doesn't support migration: _{application name}_" ### "Source subscription contains following cloud service(s) which doesn't support migration: _{cloud service name}_" You can't migrate the resources mentioned in the error message, so delete these resources before triggering the migration. ### More information The domain name and the public IP are still the same as before migration. Under normal circumstances, there's no downtime for the cloud service during the migration. ## Next steps If you have trouble moving classic resources, contact [Support](https://portal.azure.com/#blade/Microsoft_Azure_Support/HelpAndSupportBlade/overview). For commands to move resources, see [Move resources to new resource group or subscription](../move-resource-group-and-subscription.md).
Success! Branch created successfully. Create Pull Request on GitHub
Error: