diff --git a/src/Migrate/Migrate.Autorest/Properties/AssemblyInfo.cs b/src/Migrate/Migrate.Autorest/Properties/AssemblyInfo.cs
index 8ecfe6531dff..013b322be4c5 100644
--- a/src/Migrate/Migrate.Autorest/Properties/AssemblyInfo.cs
+++ b/src/Migrate/Migrate.Autorest/Properties/AssemblyInfo.cs
@@ -20,9 +20,7 @@
[assembly: System.Reflection.AssemblyCopyrightAttribute("Copyright © Microsoft")]
[assembly: System.Reflection.AssemblyProductAttribute("Microsoft Azure PowerShell")]
[assembly: System.Reflection.AssemblyTitleAttribute("Microsoft Azure PowerShell - Migrate")]
-[assembly: System.Reflection.AssemblyFileVersionAttribute("2.6.0")]
-[assembly: System.Reflection.AssemblyVersionAttribute("2.6.0")]
+[assembly: System.Reflection.AssemblyFileVersionAttribute("2.7.0")]
+[assembly: System.Reflection.AssemblyVersionAttribute("2.7.0")]
[assembly: System.Runtime.InteropServices.ComVisibleAttribute(false)]
[assembly: System.CLSCompliantAttribute(false)]
-
-
diff --git a/src/Migrate/Migrate.Autorest/custom/AzLocalDiskInput.cs b/src/Migrate/Migrate.Autorest/custom/AzLocalDiskInput.cs
index 0849af772452..b2988ab5941f 100644
--- a/src/Migrate/Migrate.Autorest/custom/AzLocalDiskInput.cs
+++ b/src/Migrate/Migrate.Autorest/custom/AzLocalDiskInput.cs
@@ -26,11 +26,10 @@ public AzLocalDiskInput(
? diskPhysicalSectorSize
: null;
- // TODO(helenafework): Add this code back once backend is fixed to check for empty string
- // StorageContainerId =
- // string.IsNullOrWhiteSpace(storageContainerId)
- // ? null
- // : storageContainerId;
+ StorageContainerId =
+ string.IsNullOrWhiteSpace(storageContainerId)
+ ? null
+ : storageContainerId;
}
/// Gets or sets the type of the virtual hard disk, vhd or vhdx.
@@ -54,7 +53,7 @@ public AzLocalDiskInput(
/// Gets or sets a value indicating whether disk is os disk.
public bool IsOSDisk { get; set; }
- // /// Gets or sets the target storage account ARM Id.
- // public string StorageContainerId { get; set; }
+ /// Gets or sets the target storage account ARM Id.
+ public string StorageContainerId { get; set; }
}
}
\ No newline at end of file
diff --git a/src/Migrate/Migrate.Autorest/custom/Helper/AzLocalCommonSettings.ps1 b/src/Migrate/Migrate.Autorest/custom/Helper/AzLocalCommonSettings.ps1
index 41dbeae04757..eb9abf2cad81 100644
--- a/src/Migrate/Migrate.Autorest/custom/Helper/AzLocalCommonSettings.ps1
+++ b/src/Migrate/Migrate.Autorest/custom/Helper/AzLocalCommonSettings.ps1
@@ -81,4 +81,32 @@ enum StorageAccountProvisioningState
$VMNicSelection = @{
SelectedByUser = "SelectedByUser";
NotSelected = "NotSelected";
+}
+
+$PowerStatus = @{
+ OffVMware = "OFF";
+ OnVMWare = "ON";
+ OffHyperV = "PowerOff";
+ OnHyperV = "Running";
+}
+
+$HighAvailability = @{
+ NO = "No";
+ YES = "Yes";
+}
+
+$VMwareToolsStatus = @{
+ NotRunning = "NotRunning";
+ OK = "OK";
+ NotInstalled = "NotInstalled";
+}
+
+$VmReplicationValidationMessage = "Replication could not be initiated. Please ensure the necessary changes are made, and allow up to 30 minutes before re-trying."
+$VmReplicationValidationMessages = @{
+ VmPoweredOff = "The VM is currently powered off. $VmReplicationValidationMessage";
+ AlreadyInReplication = "The VM is already in replication. $VmReplicationValidationMessage";
+ VmWareToolsNotInstalled = "VMware tools not installed on VM. $VmReplicationValidationMessage";
+ VmWareToolsNotRunning = "VMware tools not running on VM. $VmReplicationValidationMessage";
+ VmNotHighlyAvailable = "VM not highly available. $VmReplicationValidationMessage";
+ OsTypeNotFound = "Hyper-V Integration Services not running on VM. $VmReplicationValidationMessage";
}
\ No newline at end of file
diff --git a/src/Migrate/Migrate.Autorest/custom/Helper/CommonHelper.ps1 b/src/Migrate/Migrate.Autorest/custom/Helper/CommonHelper.ps1
index c3e4e31a347e..a84c9520191f 100644
--- a/src/Migrate/Migrate.Autorest/custom/Helper/CommonHelper.ps1
+++ b/src/Migrate/Migrate.Autorest/custom/Helper/CommonHelper.ps1
@@ -230,4 +230,47 @@ function InvokeAzMigrateGetCommandWithRetries {
return $result
}
+}
+function ValidateReplication {
+ [Microsoft.Azure.PowerShell.Cmdlets.Migrate.DoNotExportAttribute()]
+ param (
+ [Parameter(Mandatory)]
+ [PSCustomObject]
+ ${Machine},
+
+ [Parameter(Mandatory)]
+ [System.String]
+ ${MigrationType}
+ )
+ # Check if the VM is already protected
+ $protectedItem = Az.Migrate\Get-AzMigrateLocalServerReplication `
+ -DiscoveredMachineId $Machine.Id `
+ -ErrorAction SilentlyContinue
+ if ($null -ne $protectedItem) {
+ throw $VmReplicationValidationMessages.AlreadyInReplication
+ }
+
+ if ($Machine.PowerStatus -eq $PowerStatus.OffVMware -or $Machine.PowerStatus -eq $PowerStatus.OffHyperV) {
+ throw $VmReplicationValidationMessages.VmPoweredOff
+ }
+
+ if ($MigrationType -eq $AzLocalInstanceTypes.HyperVToAzLocal) {
+ if (-not $Machine.OperatingSystemDetailOSType -or $Machine.OperatingSystemDetailOSType -eq "") {
+ throw $VmReplicationValidationMessages.OsTypeNotFound
+ }
+
+ if ($Machine.ClusterId -and $Machine.HighAvailability -eq $HighAvailability.NO) {
+ throw $VmReplicationValidationMessages.VmNotHighlyAvailable
+ }
+ }
+
+ if ($MigrationType -eq $AzLocalInstanceTypes.VMwareToAzLocal) {
+ if ($Machine.VMwareToolsStatus -eq $VMwareToolsStatus.NotRunning) {
+ throw $VmReplicationValidationMessages.VmWareToolsNotRunning
+ }
+
+ if ($Machine.VMwareToolsStatus -eq $VMwareToolsStatus.NotInstalled) {
+ throw $VmReplicationValidationMessages.VmWareToolsNotInstalled
+ }
+ }
}
\ No newline at end of file
diff --git a/src/Migrate/Migrate.Autorest/custom/New-AzMigrateLocalServerReplication.ps1 b/src/Migrate/Migrate.Autorest/custom/New-AzMigrateLocalServerReplication.ps1
index 4233b0455385..5e6abbe2d78e 100644
--- a/src/Migrate/Migrate.Autorest/custom/New-AzMigrateLocalServerReplication.ps1
+++ b/src/Migrate/Migrate.Autorest/custom/New-AzMigrateLocalServerReplication.ps1
@@ -231,6 +231,9 @@ function New-AzMigrateLocalServerReplication {
-ErrorMessage "Machine site '$SiteName' with Type '$SiteType' not found."
}
+ # Validate the VM
+ ValidateReplication -Machine $machine -MigrationType $instanceType
+
# $siteObject is not null or exception would have been thrown
$ProjectName = $siteObject.DiscoverySolutionId.Split("/")[8]
@@ -419,23 +422,23 @@ function New-AzMigrateLocalServerReplication {
if ($SiteType -eq $SiteTypes.HyperVSites) {
$osDisk = $machine.Disk | Where-Object { $_.InstanceId -eq $OSDiskID }
if ($null -eq $osDisk) {
- throw "No Disk found with InstanceId '$OSDiskID' from discovered machine disks."
+ throw "No Disk found with InstanceId $OSDiskID from discovered machine disks."
}
$diskName = Split-Path $osDisk.Path -leaf
if (IsReservedOrTrademarked($diskName)) {
- throw "The disk name '$diskName' or part of the name is a trademarked or reserved word."
+ throw "The disk name $diskName or part of the name is a trademarked or reserved word."
}
}
elseif ($SiteType -eq $SiteTypes.VMwareSites) {
$osDisk = $machine.Disk | Where-Object { $_.Uuid -eq $OSDiskID }
if ($null -eq $osDisk) {
- throw "No Disk found with Uuid '$OSDiskID' from discovered machine disks."
+ throw "No Disk found with Uuid $OSDiskID from discovered machine disks."
}
$diskName = Split-Path $osDisk.Path -leaf
if (IsReservedOrTrademarked($diskName)) {
- throw "The disk name '$diskName' or part of the name is a trademarked or reserved word."
+ throw "The disk name $diskName or part of the name is a trademarked or reserved word."
}
}
@@ -495,7 +498,7 @@ function New-AzMigrateLocalServerReplication {
$diskName = Split-Path -Path $discoveredDisk.Path -Leaf
if (IsReservedOrTrademarked($diskName)) {
- throw "The disk name '$diskName' or part of the name is a trademarked or reserved word."
+ throw "The disk name $diskName or part of the name is a trademarked or reserved word."
}
if ($uniqueDisks.Contains($disk.DiskId)) {
diff --git a/src/Migrate/Migrate.Autorest/docs/Az.Migrate.md b/src/Migrate/Migrate.Autorest/docs/Az.Migrate.md
index a3510cdfbe80..159e806ed611 100644
--- a/src/Migrate/Migrate.Autorest/docs/Az.Migrate.md
+++ b/src/Migrate/Migrate.Autorest/docs/Az.Migrate.md
@@ -1,6 +1,6 @@
---
Module Name: Az.Migrate
-Module Guid: 72e0bbdf-2561-4f4e-90e1-2a27c36b7ab8
+Module Guid: f86539fb-ae5e-499c-af58-5b21bbeef039
Download Help Link: https://learn.microsoft.com/powershell/module/az.migrate
Help Version: 1.0.0.0
Locale: en-US
diff --git a/src/Migrate/Migrate.Autorest/generate-info.json b/src/Migrate/Migrate.Autorest/generate-info.json
index 1eadcf07bbdc..060084d49064 100644
--- a/src/Migrate/Migrate.Autorest/generate-info.json
+++ b/src/Migrate/Migrate.Autorest/generate-info.json
@@ -1,3 +1,3 @@
{
- "generate_Id": "145f526c-1786-4548-bea6-6c9c35ec0f0e"
+ "generate_Id": "46df379f-23ec-4e1f-b9b2-d493388e0d5c"
}
diff --git a/src/Migrate/Migrate.sln b/src/Migrate/Migrate.sln
index 1eee604afe06..ca718abc88df 100644
--- a/src/Migrate/Migrate.sln
+++ b/src/Migrate/Migrate.sln
@@ -19,49 +19,119 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Authenticators", "..\Accoun
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Migrate", "Migrate\Migrate.csproj", "{1847EC8D-87A5-4772-9E75-1DEA1DC531EE}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Az.Migrate", "..\..\generated\Migrate\Migrate.Autorest\Az.Migrate.csproj", "{DE49266B-1267-409E-A68D-49AE62DD73A5}"
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Migrate.Autorest", "Migrate.Autorest", "{9AA2C35A-2264-B74D-8556-EB72BD88EE60}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Az.Migrate", "..\..\generated\Migrate\Migrate.Autorest\Az.Migrate.csproj", "{0A0C9F3C-5853-40D8-9584-35186085C965}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
+ Debug|x64 = Debug|x64
+ Debug|x86 = Debug|x86
Release|Any CPU = Release|Any CPU
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
+ Release|x64 = Release|x64
+ Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{395019BE-8D3A-46E4-9CFB-7E298FEEB747}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{395019BE-8D3A-46E4-9CFB-7E298FEEB747}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {395019BE-8D3A-46E4-9CFB-7E298FEEB747}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {395019BE-8D3A-46E4-9CFB-7E298FEEB747}.Debug|x64.Build.0 = Debug|Any CPU
+ {395019BE-8D3A-46E4-9CFB-7E298FEEB747}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {395019BE-8D3A-46E4-9CFB-7E298FEEB747}.Debug|x86.Build.0 = Debug|Any CPU
{395019BE-8D3A-46E4-9CFB-7E298FEEB747}.Release|Any CPU.ActiveCfg = Release|Any CPU
{395019BE-8D3A-46E4-9CFB-7E298FEEB747}.Release|Any CPU.Build.0 = Release|Any CPU
+ {395019BE-8D3A-46E4-9CFB-7E298FEEB747}.Release|x64.ActiveCfg = Release|Any CPU
+ {395019BE-8D3A-46E4-9CFB-7E298FEEB747}.Release|x64.Build.0 = Release|Any CPU
+ {395019BE-8D3A-46E4-9CFB-7E298FEEB747}.Release|x86.ActiveCfg = Release|Any CPU
+ {395019BE-8D3A-46E4-9CFB-7E298FEEB747}.Release|x86.Build.0 = Release|Any CPU
{F8556062-9A47-4812-8D95-213808B0B620}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{F8556062-9A47-4812-8D95-213808B0B620}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {F8556062-9A47-4812-8D95-213808B0B620}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {F8556062-9A47-4812-8D95-213808B0B620}.Debug|x64.Build.0 = Debug|Any CPU
+ {F8556062-9A47-4812-8D95-213808B0B620}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {F8556062-9A47-4812-8D95-213808B0B620}.Debug|x86.Build.0 = Debug|Any CPU
{F8556062-9A47-4812-8D95-213808B0B620}.Release|Any CPU.ActiveCfg = Release|Any CPU
{F8556062-9A47-4812-8D95-213808B0B620}.Release|Any CPU.Build.0 = Release|Any CPU
+ {F8556062-9A47-4812-8D95-213808B0B620}.Release|x64.ActiveCfg = Release|Any CPU
+ {F8556062-9A47-4812-8D95-213808B0B620}.Release|x64.Build.0 = Release|Any CPU
+ {F8556062-9A47-4812-8D95-213808B0B620}.Release|x86.ActiveCfg = Release|Any CPU
+ {F8556062-9A47-4812-8D95-213808B0B620}.Release|x86.Build.0 = Release|Any CPU
{AA3B61A6-4FC7-4C41-9B09-408BA70BB905}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{AA3B61A6-4FC7-4C41-9B09-408BA70BB905}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {AA3B61A6-4FC7-4C41-9B09-408BA70BB905}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {AA3B61A6-4FC7-4C41-9B09-408BA70BB905}.Debug|x64.Build.0 = Debug|Any CPU
+ {AA3B61A6-4FC7-4C41-9B09-408BA70BB905}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {AA3B61A6-4FC7-4C41-9B09-408BA70BB905}.Debug|x86.Build.0 = Debug|Any CPU
{AA3B61A6-4FC7-4C41-9B09-408BA70BB905}.Release|Any CPU.ActiveCfg = Release|Any CPU
{AA3B61A6-4FC7-4C41-9B09-408BA70BB905}.Release|Any CPU.Build.0 = Release|Any CPU
+ {AA3B61A6-4FC7-4C41-9B09-408BA70BB905}.Release|x64.ActiveCfg = Release|Any CPU
+ {AA3B61A6-4FC7-4C41-9B09-408BA70BB905}.Release|x64.Build.0 = Release|Any CPU
+ {AA3B61A6-4FC7-4C41-9B09-408BA70BB905}.Release|x86.ActiveCfg = Release|Any CPU
+ {AA3B61A6-4FC7-4C41-9B09-408BA70BB905}.Release|x86.Build.0 = Release|Any CPU
{FB2B969F-E6FB-4E6E-9D2A-E52F4F53F51F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{FB2B969F-E6FB-4E6E-9D2A-E52F4F53F51F}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {FB2B969F-E6FB-4E6E-9D2A-E52F4F53F51F}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {FB2B969F-E6FB-4E6E-9D2A-E52F4F53F51F}.Debug|x64.Build.0 = Debug|Any CPU
+ {FB2B969F-E6FB-4E6E-9D2A-E52F4F53F51F}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {FB2B969F-E6FB-4E6E-9D2A-E52F4F53F51F}.Debug|x86.Build.0 = Debug|Any CPU
{FB2B969F-E6FB-4E6E-9D2A-E52F4F53F51F}.Release|Any CPU.ActiveCfg = Release|Any CPU
{FB2B969F-E6FB-4E6E-9D2A-E52F4F53F51F}.Release|Any CPU.Build.0 = Release|Any CPU
+ {FB2B969F-E6FB-4E6E-9D2A-E52F4F53F51F}.Release|x64.ActiveCfg = Release|Any CPU
+ {FB2B969F-E6FB-4E6E-9D2A-E52F4F53F51F}.Release|x64.Build.0 = Release|Any CPU
+ {FB2B969F-E6FB-4E6E-9D2A-E52F4F53F51F}.Release|x86.ActiveCfg = Release|Any CPU
+ {FB2B969F-E6FB-4E6E-9D2A-E52F4F53F51F}.Release|x86.Build.0 = Release|Any CPU
{D8D28132-CE20-45C8-8476-6B88C891D945}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D8D28132-CE20-45C8-8476-6B88C891D945}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {D8D28132-CE20-45C8-8476-6B88C891D945}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {D8D28132-CE20-45C8-8476-6B88C891D945}.Debug|x64.Build.0 = Debug|Any CPU
+ {D8D28132-CE20-45C8-8476-6B88C891D945}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {D8D28132-CE20-45C8-8476-6B88C891D945}.Debug|x86.Build.0 = Debug|Any CPU
{D8D28132-CE20-45C8-8476-6B88C891D945}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D8D28132-CE20-45C8-8476-6B88C891D945}.Release|Any CPU.Build.0 = Release|Any CPU
+ {D8D28132-CE20-45C8-8476-6B88C891D945}.Release|x64.ActiveCfg = Release|Any CPU
+ {D8D28132-CE20-45C8-8476-6B88C891D945}.Release|x64.Build.0 = Release|Any CPU
+ {D8D28132-CE20-45C8-8476-6B88C891D945}.Release|x86.ActiveCfg = Release|Any CPU
+ {D8D28132-CE20-45C8-8476-6B88C891D945}.Release|x86.Build.0 = Release|Any CPU
{B799EA2F-9E28-421A-9301-BB061C6ADDC2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{B799EA2F-9E28-421A-9301-BB061C6ADDC2}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {B799EA2F-9E28-421A-9301-BB061C6ADDC2}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {B799EA2F-9E28-421A-9301-BB061C6ADDC2}.Debug|x64.Build.0 = Debug|Any CPU
+ {B799EA2F-9E28-421A-9301-BB061C6ADDC2}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {B799EA2F-9E28-421A-9301-BB061C6ADDC2}.Debug|x86.Build.0 = Debug|Any CPU
{B799EA2F-9E28-421A-9301-BB061C6ADDC2}.Release|Any CPU.ActiveCfg = Release|Any CPU
{B799EA2F-9E28-421A-9301-BB061C6ADDC2}.Release|Any CPU.Build.0 = Release|Any CPU
+ {B799EA2F-9E28-421A-9301-BB061C6ADDC2}.Release|x64.ActiveCfg = Release|Any CPU
+ {B799EA2F-9E28-421A-9301-BB061C6ADDC2}.Release|x64.Build.0 = Release|Any CPU
+ {B799EA2F-9E28-421A-9301-BB061C6ADDC2}.Release|x86.ActiveCfg = Release|Any CPU
+ {B799EA2F-9E28-421A-9301-BB061C6ADDC2}.Release|x86.Build.0 = Release|Any CPU
{1847EC8D-87A5-4772-9E75-1DEA1DC531EE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{1847EC8D-87A5-4772-9E75-1DEA1DC531EE}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {1847EC8D-87A5-4772-9E75-1DEA1DC531EE}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {1847EC8D-87A5-4772-9E75-1DEA1DC531EE}.Debug|x64.Build.0 = Debug|Any CPU
+ {1847EC8D-87A5-4772-9E75-1DEA1DC531EE}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {1847EC8D-87A5-4772-9E75-1DEA1DC531EE}.Debug|x86.Build.0 = Debug|Any CPU
{1847EC8D-87A5-4772-9E75-1DEA1DC531EE}.Release|Any CPU.ActiveCfg = Release|Any CPU
{1847EC8D-87A5-4772-9E75-1DEA1DC531EE}.Release|Any CPU.Build.0 = Release|Any CPU
- {DE49266B-1267-409E-A68D-49AE62DD73A5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {DE49266B-1267-409E-A68D-49AE62DD73A5}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {DE49266B-1267-409E-A68D-49AE62DD73A5}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {DE49266B-1267-409E-A68D-49AE62DD73A5}.Release|Any CPU.Build.0 = Release|Any CPU
+ {1847EC8D-87A5-4772-9E75-1DEA1DC531EE}.Release|x64.ActiveCfg = Release|Any CPU
+ {1847EC8D-87A5-4772-9E75-1DEA1DC531EE}.Release|x64.Build.0 = Release|Any CPU
+ {1847EC8D-87A5-4772-9E75-1DEA1DC531EE}.Release|x86.ActiveCfg = Release|Any CPU
+ {1847EC8D-87A5-4772-9E75-1DEA1DC531EE}.Release|x86.Build.0 = Release|Any CPU
+ {0A0C9F3C-5853-40D8-9584-35186085C965}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {0A0C9F3C-5853-40D8-9584-35186085C965}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {0A0C9F3C-5853-40D8-9584-35186085C965}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {0A0C9F3C-5853-40D8-9584-35186085C965}.Debug|x64.Build.0 = Debug|Any CPU
+ {0A0C9F3C-5853-40D8-9584-35186085C965}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {0A0C9F3C-5853-40D8-9584-35186085C965}.Debug|x86.Build.0 = Debug|Any CPU
+ {0A0C9F3C-5853-40D8-9584-35186085C965}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {0A0C9F3C-5853-40D8-9584-35186085C965}.Release|Any CPU.Build.0 = Release|Any CPU
+ {0A0C9F3C-5853-40D8-9584-35186085C965}.Release|x64.ActiveCfg = Release|Any CPU
+ {0A0C9F3C-5853-40D8-9584-35186085C965}.Release|x64.Build.0 = Release|Any CPU
+ {0A0C9F3C-5853-40D8-9584-35186085C965}.Release|x86.ActiveCfg = Release|Any CPU
+ {0A0C9F3C-5853-40D8-9584-35186085C965}.Release|x86.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
{395019BE-8D3A-46E4-9CFB-7E298FEEB747} = {2D0176AD-AE30-4235-9D62-17043F0D4CD8}
@@ -70,5 +140,6 @@ Global
{FB2B969F-E6FB-4E6E-9D2A-E52F4F53F51F} = {2D0176AD-AE30-4235-9D62-17043F0D4CD8}
{D8D28132-CE20-45C8-8476-6B88C891D945} = {2D0176AD-AE30-4235-9D62-17043F0D4CD8}
{B799EA2F-9E28-421A-9301-BB061C6ADDC2} = {2D0176AD-AE30-4235-9D62-17043F0D4CD8}
+ {0A0C9F3C-5853-40D8-9584-35186085C965} = {9AA2C35A-2264-B74D-8556-EB72BD88EE60}
EndGlobalSection
EndGlobal
diff --git a/src/Migrate/Migrate/Az.Migrate.psd1 b/src/Migrate/Migrate/Az.Migrate.psd1
index f5f9a3b3c72d..7faa5bd9a30b 100644
--- a/src/Migrate/Migrate/Az.Migrate.psd1
+++ b/src/Migrate/Migrate/Az.Migrate.psd1
@@ -3,7 +3,7 @@
#
# Generated by: Microsoft Corporation
#
-# Generated on: 2/25/2025
+# Generated on: 5/8/2025
#
@{
@@ -51,16 +51,16 @@ DotNetFrameworkVersion = '4.7.2'
# ProcessorArchitecture = ''
# Modules that must be imported into the global environment prior to importing this module
-RequiredModules = @(@{ModuleName = 'Az.Accounts'; ModuleVersion = '4.0.2'; })
+RequiredModules = @(@{ModuleName = 'Az.Accounts'; ModuleVersion = '4.1.0'; })
# Assemblies that must be loaded prior to importing this module
RequiredAssemblies = 'Migrate.Autorest/bin/Az.Migrate.private.dll'
# Script files (.ps1) that are run in the caller's environment prior to importing this module.
-# ScriptsToProcess = @()
+ScriptsToProcess = @()
# Type files (.ps1xml) to be loaded when importing this module
-# TypesToProcess = @()
+TypesToProcess = @()
# Format files (.ps1xml) to be loaded when importing this module
FormatsToProcess = 'Migrate.Autorest/Az.Migrate.format.ps1xml'
@@ -122,7 +122,7 @@ PrivateData = @{
PSData = @{
# Tags applied to this module. These help with module discovery in online galleries.
- Tags = 'Azure','ResourceManager','ARM','PSModule','Migrate'
+ Tags = 'Azure', 'ResourceManager', 'ARM', 'PSModule', 'Migrate'
# A URL to the license for this module.
LicenseUri = 'https://aka.ms/azps-license'
@@ -150,7 +150,7 @@ PrivateData = @{
} # End of PSData hashtable
- } # End of PrivateData hashtable
+} # End of PrivateData hashtable
# HelpInfo URI of this module
# HelpInfoURI = ''
diff --git a/src/Migrate/Migrate/ChangeLog.md b/src/Migrate/Migrate/ChangeLog.md
index 48af4130fe1f..db5155136304 100644
--- a/src/Migrate/Migrate/ChangeLog.md
+++ b/src/Migrate/Migrate/ChangeLog.md
@@ -19,6 +19,9 @@
-->
## Upcoming Release
+* Added validation for Data.Replication
+ - Added validation to protect virtual machines in `New-AzMigrateLocalServerReplication`
+
## Version 2.7.0
* Updated Data.Replication to newer API version
- Updated Data.Replication to point to stable API version 2024-09-01