@@ -38,6 +38,7 @@ public class RestoreAzureRmRecoveryServicesBackupItem : RSBackupVaultCmdletBase
38
38
internal const string AzureVMParameterSet = "AzureVMParameterSet" ;
39
39
internal const string AzureVMManagedDiskParameterSet = "AzureVMManagedDiskParameterSet" ;
40
40
internal const string AzureVMRestoreManagedAsUnmanaged = "AzureVMRestoreManagedAsUnmanaged" ;
41
+ internal const string AzureVMRestoreUnmanagedAsManaged = "AzureVMRestoreUnmanagedAsManaged" ;
41
42
internal const string AzureVMUnManagedDiskParameterSet = "AzureVMUnManagedDiskParameterSet" ;
42
43
internal const string AzureFileShareParameterSet = "AzureFileShareParameterSet" ;
43
44
internal const string AzureWorkloadParameterSet = "AzureWorkloadParameterSet" ;
@@ -64,6 +65,8 @@ public class RestoreAzureRmRecoveryServicesBackupItem : RSBackupVaultCmdletBase
64
65
ParameterSetName = AzureVMManagedDiskParameterSet , HelpMessage = ParamHelpMsgs . RestoreDisk . RecoveryPoint ) ]
65
66
[ Parameter ( Mandatory = true , ValueFromPipeline = true , Position = 0 ,
66
67
ParameterSetName = AzureVMUnManagedDiskParameterSet , HelpMessage = ParamHelpMsgs . RestoreDisk . RecoveryPoint ) ]
68
+ [ Parameter ( Mandatory = true , ValueFromPipeline = true , Position = 0 ,
69
+ ParameterSetName = AzureVMRestoreUnmanagedAsManaged , HelpMessage = ParamHelpMsgs . RestoreDisk . RecoveryPoint ) ]
67
70
[ ValidateNotNullOrEmpty ]
68
71
public RecoveryPointBase RecoveryPoint { get ; set ; }
69
72
@@ -86,6 +89,8 @@ public class RestoreAzureRmRecoveryServicesBackupItem : RSBackupVaultCmdletBase
86
89
HelpMessage = ParamHelpMsgs . RestoreDisk . StorageAccountName ) ]
87
90
[ Parameter ( Mandatory = true , Position = 1 , ParameterSetName = AzureVMRestoreManagedAsUnmanaged ,
88
91
HelpMessage = ParamHelpMsgs . RestoreDisk . StorageAccountName ) ]
92
+ [ Parameter ( Mandatory = true , Position = 1 , ParameterSetName = AzureVMRestoreUnmanagedAsManaged ,
93
+ HelpMessage = ParamHelpMsgs . RestoreDisk . StorageAccountName ) ]
89
94
[ ValidateNotNullOrEmpty ]
90
95
public string StorageAccountName { get ; set ; }
91
96
@@ -100,6 +105,8 @@ public class RestoreAzureRmRecoveryServicesBackupItem : RSBackupVaultCmdletBase
100
105
HelpMessage = ParamHelpMsgs . RestoreDisk . StorageAccountResourceGroupName ) ]
101
106
[ Parameter ( Mandatory = true , Position = 2 , ParameterSetName = AzureVMRestoreManagedAsUnmanaged ,
102
107
HelpMessage = ParamHelpMsgs . RestoreDisk . StorageAccountResourceGroupName ) ]
108
+ [ Parameter ( Mandatory = true , Position = 2 , ParameterSetName = AzureVMRestoreUnmanagedAsManaged ,
109
+ HelpMessage = ParamHelpMsgs . RestoreDisk . StorageAccountResourceGroupName ) ]
103
110
[ ValidateNotNullOrEmpty ]
104
111
public string StorageAccountResourceGroupName { get ; set ; }
105
112
@@ -108,6 +115,8 @@ public class RestoreAzureRmRecoveryServicesBackupItem : RSBackupVaultCmdletBase
108
115
/// </summary>
109
116
[ Parameter ( Mandatory = true , Position = 3 , ParameterSetName = AzureVMManagedDiskParameterSet ,
110
117
HelpMessage = ParamHelpMsgs . RestoreVM . TargetResourceGroupName ) ]
118
+ [ Parameter ( Mandatory = true , Position = 3 , ParameterSetName = AzureVMRestoreUnmanagedAsManaged ,
119
+ HelpMessage = ParamHelpMsgs . RestoreVM . TargetResourceGroupName ) ]
111
120
[ ValidateNotNullOrEmpty ]
112
121
public string TargetResourceGroupName { get ; set ; }
113
122
@@ -171,6 +180,8 @@ public class RestoreAzureRmRecoveryServicesBackupItem : RSBackupVaultCmdletBase
171
180
/// </summary>
172
181
[ Parameter ( Mandatory = true , ParameterSetName = AzureVMUnManagedDiskParameterSet ,
173
182
HelpMessage = ParamHelpMsgs . RestoreVM . OsaOption ) ]
183
+ [ Parameter ( Mandatory = false , ParameterSetName = AzureVMRestoreUnmanagedAsManaged ,
184
+ HelpMessage = ParamHelpMsgs . RestoreVM . OsaOption ) ]
174
185
public SwitchParameter UseOriginalStorageAccount { get ; set ; }
175
186
176
187
/// <summary>
@@ -184,6 +195,8 @@ public class RestoreAzureRmRecoveryServicesBackupItem : RSBackupVaultCmdletBase
184
195
HelpMessage = ParamHelpMsgs . RestoreVM . RestoreOnlyOSDisk ) ]
185
196
[ Parameter ( Mandatory = false , ParameterSetName = AzureVMUnManagedDiskParameterSet ,
186
197
HelpMessage = ParamHelpMsgs . RestoreVM . RestoreOnlyOSDisk ) ]
198
+ [ Parameter ( Mandatory = false , ParameterSetName = AzureVMRestoreUnmanagedAsManaged ,
199
+ HelpMessage = ParamHelpMsgs . RestoreVM . RestoreOnlyOSDisk ) ]
187
200
public SwitchParameter RestoreOnlyOSDisk { get ; set ; }
188
201
189
202
/// <summary>
@@ -197,6 +210,8 @@ public class RestoreAzureRmRecoveryServicesBackupItem : RSBackupVaultCmdletBase
197
210
HelpMessage = ParamHelpMsgs . RestoreVM . RestoreDiskList ) ]
198
211
[ Parameter ( Mandatory = false , ParameterSetName = AzureVMRestoreManagedAsUnmanaged ,
199
212
HelpMessage = ParamHelpMsgs . RestoreVM . RestoreDiskList ) ]
213
+ [ Parameter ( Mandatory = false , ParameterSetName = AzureVMRestoreUnmanagedAsManaged ,
214
+ HelpMessage = ParamHelpMsgs . RestoreVM . RestoreDiskList ) ]
200
215
public string [ ] RestoreDiskList { get ; set ; }
201
216
202
217
/// <summary>
@@ -231,6 +246,13 @@ public class RestoreAzureRmRecoveryServicesBackupItem : RSBackupVaultCmdletBase
231
246
HelpMessage = ParamHelpMsgs . RestoreVM . TargetZone ) ]
232
247
public int ? TargetZoneNumber { get ; set ; }
233
248
249
+ /// <summary>
250
+ /// Switch param to restore a backed up unmanaged vm as managed disks.
251
+ /// </summary>
252
+ [ Parameter ( Mandatory = true , ParameterSetName = AzureVMRestoreUnmanagedAsManaged , HelpMessage = ParamHelpMsgs . RestoreVM . RestoreAsManagedDisk ) ]
253
+ [ ValidateNotNullOrEmpty ]
254
+ public SwitchParameter RestoreAsManagedDisk { get ; set ; }
255
+
234
256
public override void ExecuteCmdlet ( )
235
257
{
236
258
ExecutionBlock ( ( ) =>
@@ -265,6 +287,7 @@ public override void ExecuteCmdlet()
265
287
providerParameters . Add ( RestoreVMBackupItemParams . RestoreOnlyOSDisk , RestoreOnlyOSDisk ) ;
266
288
providerParameters . Add ( RestoreVMBackupItemParams . RestoreAsUnmanagedDisks , RestoreAsUnmanagedDisks ) ;
267
289
providerParameters . Add ( CRRParams . UseSecondaryRegion , RestoreToSecondaryRegion . IsPresent ) ;
290
+ providerParameters . Add ( RestoreVMBackupItemParams . RestoreAsManagedDisk , RestoreAsManagedDisk . IsPresent ) ;
268
291
269
292
if ( DiskEncryptionSetId != null )
270
293
{
0 commit comments