diff --git a/src/Migrate/Migrate.Autorest/.gitignore b/src/Migrate/Migrate.Autorest/.gitignore
index 6ec158bd9768..ccbe8d018341 100644
--- a/src/Migrate/Migrate.Autorest/.gitignore
+++ b/src/Migrate/Migrate.Autorest/.gitignore
@@ -5,6 +5,8 @@ generated
internal
exports
tools
+custom/*.psm1
+custom/autogen-model-cmdlets
test/*-TestResults.xml
license.txt
/*.ps1
diff --git a/src/Migrate/Migrate.Autorest/Properties/AssemblyInfo.cs b/src/Migrate/Migrate.Autorest/Properties/AssemblyInfo.cs
index 8ecfe6531dff..b6e9449d4e27 100644
--- a/src/Migrate/Migrate.Autorest/Properties/AssemblyInfo.cs
+++ b/src/Migrate/Migrate.Autorest/Properties/AssemblyInfo.cs
@@ -20,9 +20,11 @@
[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..42e1d4520820 100644
--- a/src/Migrate/Migrate.Autorest/custom/Helper/CommonHelper.ps1
+++ b/src/Migrate/Migrate.Autorest/custom/Helper/CommonHelper.ps1
@@ -230,4 +230,46 @@ function InvokeAzMigrateGetCommandWithRetries {
return $result
}
+}
+function ValidateReplication {
+ 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..55c51146d5fe 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
@@ -135,3 +135,6 @@ Cleans up the test migration for the replicating server.
### [Suspend-AzMigrateServerReplication](Suspend-AzMigrateServerReplication.md)
Suspends the ongoing replication.
+### [ValidateReplication](ValidateReplication.md)
+
+
diff --git a/src/Migrate/Migrate.Autorest/generate-info.json b/src/Migrate/Migrate.Autorest/generate-info.json
index 1eadcf07bbdc..4978f146d29c 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": "3cf27c48-486f-4878-9e97-b4fd1411e1b6"
}
diff --git a/src/Migrate/Migrate.sln b/src/Migrate/Migrate.sln
index 1eee604afe06..690310ac7636 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", "{E30868D0-5521-4826-97E3-94BDABB82B4C}"
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
+ {E30868D0-5521-4826-97E3-94BDABB82B4C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {E30868D0-5521-4826-97E3-94BDABB82B4C}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {E30868D0-5521-4826-97E3-94BDABB82B4C}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {E30868D0-5521-4826-97E3-94BDABB82B4C}.Debug|x64.Build.0 = Debug|Any CPU
+ {E30868D0-5521-4826-97E3-94BDABB82B4C}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {E30868D0-5521-4826-97E3-94BDABB82B4C}.Debug|x86.Build.0 = Debug|Any CPU
+ {E30868D0-5521-4826-97E3-94BDABB82B4C}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {E30868D0-5521-4826-97E3-94BDABB82B4C}.Release|Any CPU.Build.0 = Release|Any CPU
+ {E30868D0-5521-4826-97E3-94BDABB82B4C}.Release|x64.ActiveCfg = Release|Any CPU
+ {E30868D0-5521-4826-97E3-94BDABB82B4C}.Release|x64.Build.0 = Release|Any CPU
+ {E30868D0-5521-4826-97E3-94BDABB82B4C}.Release|x86.ActiveCfg = Release|Any CPU
+ {E30868D0-5521-4826-97E3-94BDABB82B4C}.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}
+ {E30868D0-5521-4826-97E3-94BDABB82B4C} = {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..3ff92b4ee648 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: 4/22/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'
@@ -96,7 +96,7 @@ FunctionsToExport = 'Get-AzMigrateDiscoveredServer', 'Get-AzMigrateJob',
'Start-AzMigrateLocalServerMigration',
'Start-AzMigrateServerMigration', 'Start-AzMigrateTestMigration',
'Start-AzMigrateTestMigrationCleanup',
- 'Suspend-AzMigrateServerReplication'
+ 'Suspend-AzMigrateServerReplication', 'ValidateReplication'
# Cmdlets to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no cmdlets to export.
CmdletsToExport = @()
@@ -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 = ''