Skip to content

Commit bef7aac

Browse files
committed
Updated Restore command for UAMI
1 parent cf388df commit bef7aac

File tree

7 files changed

+133
-30
lines changed

7 files changed

+133
-30
lines changed

src/DataProtection/DataProtection.Autorest/custom/Cmdlets/Platform/BackupInstance/Initialize-AzDataProtectionBackupInstance.ps1

+1-1
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@
117117
$backupInstance.IdentityDetail.UseSystemAssignedIdentity = $UseSystemAssignedIdentity
118118

119119
if ($hasUserAssignedIdentityArmId) {
120-
$instance.Property.IdentityDetail.UserAssignedIdentityArmUrl = $UserAssignedIdentityArmId
120+
$backupInstance.IdentityDetail.UserAssignedIdentityArmUrl = $UserAssignedIdentityArmId
121121
}
122122
}
123123

src/DataProtection/DataProtection.Autorest/custom/Cmdlets/Platform/Restore/Initialize-AzDataProtectionRestoreRequest.ps1

+35-1
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,24 @@
137137
[Parameter(ParameterSetName="RestoreAsFiles", Mandatory=$false, HelpMessage='Secret store type for secret store authentication of data source. This parameter is only supported for AzureDatabaseForPostgreSQL currently.')]
138138
[ValidateSet("AzureKeyVault")]
139139
[Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Support.SecretStoreTypes]
140-
${SecretStoreType}
140+
${SecretStoreType},
141+
142+
[Parameter(Mandatory=$false, ParameterSetName="OriginalLocationFullRecovery", HelpMessage='Use system assigned identity')]
143+
[Parameter(Mandatory=$false, ParameterSetName="AlternateLocationFullRecovery", HelpMessage='Use system assigned identity')]
144+
[Parameter(Mandatory=$false, ParameterSetName="OriginalLocationILR", HelpMessage='Use system assigned identity')]
145+
[Parameter(Mandatory=$false, ParameterSetName="RestoreAsFiles", HelpMessage='Use system assigned identity')]
146+
[Parameter(Mandatory=$false, ParameterSetName="AlternateLocationILR", HelpMessage='Use system assigned identity')]
147+
[System.Nullable[System.Boolean]]
148+
${UseSystemAssignedIdentity},
149+
150+
[Parameter(Mandatory=$false, ParameterSetName="OriginalLocationFullRecovery", HelpMessage='User assigned identity ARM Id')]
151+
[Parameter(Mandatory=$false, ParameterSetName="AlternateLocationFullRecovery", HelpMessage='User assigned identity ARM Id')]
152+
[Parameter(Mandatory=$false, ParameterSetName="OriginalLocationILR", HelpMessage='User assigned identity ARM Id')]
153+
[Parameter(Mandatory=$false, ParameterSetName="RestoreAsFiles", HelpMessage='User assigned identity ARM Id')]
154+
[Parameter(Mandatory=$false, ParameterSetName="AlternateLocationILR", HelpMessage='User assigned identity ARM Id')]
155+
[Alias('AssignUserIdentity')]
156+
[System.String]
157+
${UserAssignedIdentityArmId}
141158
)
142159

143160
process
@@ -189,6 +206,23 @@
189206
#Validate Restore Options = recoverypoint, ALR, OLR, ILR
190207
ValidateRestoreOptions -DatasourceType $DatasourceType -RestoreMode $restoreMode -RestoreTargetType $RestoreType -ItemLevelRecovery $ItemLevelRecovery -SecretStoreURI $SecretStoreURI
191208

209+
# UAMI for restore
210+
$hasUseSystemAssignedIdentity = $PSBoundParameters.Remove("UseSystemAssignedIdentity")
211+
$hasUserAssignedIdentityArmId = $PSBoundParameters.Remove("UserAssignedIdentityArmId")
212+
if ($hasUseSystemAssignedIdentity -or $hasUserAssignedIdentityArmId) {
213+
214+
if ($hasUserAssignedIdentityArmId -and (!$hasUseSystemAssignedIdentity -or $UseSystemAssignedIdentity)) {
215+
throw "UserAssignedIdentityArmId cannot be provided without UseSystemAssignedIdentity and UseSystemAssignedIdentity must be false when UserAssignedIdentityArmId is provided."
216+
}
217+
218+
$restoreRequest.IdentityDetail = [Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Models.Api20240401.IdentityDetails]::new()
219+
$restoreRequest.IdentityDetail.UseSystemAssignedIdentity = $UseSystemAssignedIdentity
220+
221+
if ($hasUserAssignedIdentityArmId) {
222+
$restoreRequest.IdentityDetail.UserAssignedIdentityArmUrl = $UserAssignedIdentityArmId
223+
}
224+
}
225+
192226
# Initialize Restore Target Info based on Type provided
193227

194228
if($RestoreType -eq "RestoreAsFiles")

src/DataProtection/DataProtection.Autorest/docs/Initialize-AzDataProtectionRestoreRequest.md

+39-5
Original file line numberDiff line numberDiff line change
@@ -18,15 +18,17 @@ Initialize-AzDataProtectionRestoreRequest -DatasourceType <DatasourceTypes> -Res
1818
-RestoreType <RestoreTargetType> -SourceDataStore <DataStoreType> -TargetResourceId <String>
1919
[-PointInTime <DateTime>] [-RecoveryPoint <String>] [-RehydrationDuration <String>]
2020
[-RehydrationPriority <String>] [-RestoreConfiguration <PSObject>] [-SecretStoreType <SecretStoreTypes>]
21-
[-SecretStoreURI <String>] [<CommonParameters>]
21+
[-SecretStoreURI <String>] [-UserAssignedIdentityArmId <String>] [-UseSystemAssignedIdentity <Boolean?>]
22+
[<CommonParameters>]
2223
```
2324

2425
### AlternateLocationILR
2526
```
2627
Initialize-AzDataProtectionRestoreRequest -DatasourceType <DatasourceTypes> -ItemLevelRecovery
2728
-RestoreLocation <String> -RestoreType <RestoreTargetType> -SourceDataStore <DataStoreType>
2829
-TargetResourceId <String> [-ContainersList <String[]>] [-PrefixMatch <Hashtable>] [-RecoveryPoint <String>]
29-
[-RestoreConfiguration <PSObject>] [<CommonParameters>]
30+
[-RestoreConfiguration <PSObject>] [-UserAssignedIdentityArmId <String>]
31+
[-UseSystemAssignedIdentity <Boolean?>] [<CommonParameters>]
3032
```
3133

3234
### OriginalLocationFullRecovery
@@ -35,7 +37,8 @@ Initialize-AzDataProtectionRestoreRequest -BackupInstance <BackupInstanceResourc
3537
-DatasourceType <DatasourceTypes> -RestoreLocation <String> -RestoreType <RestoreTargetType>
3638
-SourceDataStore <DataStoreType> [-PointInTime <DateTime>] [-RecoveryPoint <String>]
3739
[-RehydrationDuration <String>] [-RehydrationPriority <String>] [-RestoreConfiguration <PSObject>]
38-
[-SecretStoreType <SecretStoreTypes>] [-SecretStoreURI <String>] [<CommonParameters>]
40+
[-SecretStoreType <SecretStoreTypes>] [-SecretStoreURI <String>] [-UserAssignedIdentityArmId <String>]
41+
[-UseSystemAssignedIdentity <Boolean?>] [<CommonParameters>]
3942
```
4043

4144
### OriginalLocationILR
@@ -46,7 +49,7 @@ Initialize-AzDataProtectionRestoreRequest -BackupInstance <BackupInstanceResourc
4649
[-FromPrefixPattern <String[]>] [-PointInTime <DateTime>] [-RecoveryPoint <String>]
4750
[-RehydrationDuration <String>] [-RehydrationPriority <String>] [-RestoreConfiguration <PSObject>]
4851
[-SecretStoreType <SecretStoreTypes>] [-SecretStoreURI <String>] [-ToPrefixPattern <String[]>]
49-
[<CommonParameters>]
52+
[-UserAssignedIdentityArmId <String>] [-UseSystemAssignedIdentity <Boolean?>] [<CommonParameters>]
5053
```
5154

5255
### RestoreAsFiles
@@ -55,7 +58,8 @@ Initialize-AzDataProtectionRestoreRequest -DatasourceType <DatasourceTypes> -Res
5558
-RestoreType <RestoreTargetType> -SourceDataStore <DataStoreType> -TargetContainerURI <String>
5659
[-FileNamePrefix <String>] [-RecoveryPoint <String>] [-RehydrationDuration <String>]
5760
[-RehydrationPriority <String>] [-SecretStoreType <SecretStoreTypes>] [-SecretStoreURI <String>]
58-
[-TargetResourceIdForRestoreAsFile <String>] [<CommonParameters>]
61+
[-TargetResourceIdForRestoreAsFile <String>] [-UserAssignedIdentityArmId <String>]
62+
[-UseSystemAssignedIdentity <Boolean?>] [<CommonParameters>]
5963
```
6064

6165
## DESCRIPTION
@@ -544,6 +548,36 @@ Accept pipeline input: False
544548
Accept wildcard characters: False
545549
```
546550
551+
### -UserAssignedIdentityArmId
552+
User assigned identity ARM Id
553+
554+
```yaml
555+
Type: System.String
556+
Parameter Sets: (All)
557+
Aliases: AssignUserIdentity
558+
559+
Required: False
560+
Position: Named
561+
Default value: None
562+
Accept pipeline input: False
563+
Accept wildcard characters: False
564+
```
565+
566+
### -UseSystemAssignedIdentity
567+
Use system assigned identity
568+
569+
```yaml
570+
Type: System.Nullable`1[[System.Boolean, System.Private.CoreLib, Version=9.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]
571+
Parameter Sets: (All)
572+
Aliases:
573+
574+
Required: False
575+
Position: Named
576+
Default value: None
577+
Accept pipeline input: False
578+
Accept wildcard characters: False
579+
```
580+
547581
### CommonParameters
548582
This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216).
549583
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
{
2-
"generate_Id": "fa1160ac-5a2b-4e9f-a572-dc6352632b57"
2+
"generate_Id": "5b602e2b-17cc-48b7-8e98-ce63ddf83766"
33
}

src/DataProtection/DataProtection.sln

+14-14
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DataProtection", "DataProte
2121
EndProject
2222
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "DataProtection.Autorest", "DataProtection.Autorest", "{F40C2F0C-1625-C7F2-86E6-E539334694A7}"
2323
EndProject
24-
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Az.DataProtection", "..\..\generated\DataProtection\DataProtection.Autorest\Az.DataProtection.csproj", "{EC048988-1424-450B-9117-9C2EBFAF2984}"
24+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Az.DataProtection", "..\..\generated\DataProtection\DataProtection.Autorest\Az.DataProtection.csproj", "{C73B1838-001B-48E1-AAC7-89F7BE421EA6}"
2525
EndProject
2626
Global
2727
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -117,18 +117,18 @@ Global
117117
{3710851E-1CE1-45F7-8E14-B07092F08E8D}.Release|x64.Build.0 = Release|Any CPU
118118
{3710851E-1CE1-45F7-8E14-B07092F08E8D}.Release|x86.ActiveCfg = Release|Any CPU
119119
{3710851E-1CE1-45F7-8E14-B07092F08E8D}.Release|x86.Build.0 = Release|Any CPU
120-
{EC048988-1424-450B-9117-9C2EBFAF2984}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
121-
{EC048988-1424-450B-9117-9C2EBFAF2984}.Debug|Any CPU.Build.0 = Debug|Any CPU
122-
{EC048988-1424-450B-9117-9C2EBFAF2984}.Debug|x64.ActiveCfg = Debug|Any CPU
123-
{EC048988-1424-450B-9117-9C2EBFAF2984}.Debug|x64.Build.0 = Debug|Any CPU
124-
{EC048988-1424-450B-9117-9C2EBFAF2984}.Debug|x86.ActiveCfg = Debug|Any CPU
125-
{EC048988-1424-450B-9117-9C2EBFAF2984}.Debug|x86.Build.0 = Debug|Any CPU
126-
{EC048988-1424-450B-9117-9C2EBFAF2984}.Release|Any CPU.ActiveCfg = Release|Any CPU
127-
{EC048988-1424-450B-9117-9C2EBFAF2984}.Release|Any CPU.Build.0 = Release|Any CPU
128-
{EC048988-1424-450B-9117-9C2EBFAF2984}.Release|x64.ActiveCfg = Release|Any CPU
129-
{EC048988-1424-450B-9117-9C2EBFAF2984}.Release|x64.Build.0 = Release|Any CPU
130-
{EC048988-1424-450B-9117-9C2EBFAF2984}.Release|x86.ActiveCfg = Release|Any CPU
131-
{EC048988-1424-450B-9117-9C2EBFAF2984}.Release|x86.Build.0 = Release|Any CPU
120+
{C73B1838-001B-48E1-AAC7-89F7BE421EA6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
121+
{C73B1838-001B-48E1-AAC7-89F7BE421EA6}.Debug|Any CPU.Build.0 = Debug|Any CPU
122+
{C73B1838-001B-48E1-AAC7-89F7BE421EA6}.Debug|x64.ActiveCfg = Debug|Any CPU
123+
{C73B1838-001B-48E1-AAC7-89F7BE421EA6}.Debug|x64.Build.0 = Debug|Any CPU
124+
{C73B1838-001B-48E1-AAC7-89F7BE421EA6}.Debug|x86.ActiveCfg = Debug|Any CPU
125+
{C73B1838-001B-48E1-AAC7-89F7BE421EA6}.Debug|x86.Build.0 = Debug|Any CPU
126+
{C73B1838-001B-48E1-AAC7-89F7BE421EA6}.Release|Any CPU.ActiveCfg = Release|Any CPU
127+
{C73B1838-001B-48E1-AAC7-89F7BE421EA6}.Release|Any CPU.Build.0 = Release|Any CPU
128+
{C73B1838-001B-48E1-AAC7-89F7BE421EA6}.Release|x64.ActiveCfg = Release|Any CPU
129+
{C73B1838-001B-48E1-AAC7-89F7BE421EA6}.Release|x64.Build.0 = Release|Any CPU
130+
{C73B1838-001B-48E1-AAC7-89F7BE421EA6}.Release|x86.ActiveCfg = Release|Any CPU
131+
{C73B1838-001B-48E1-AAC7-89F7BE421EA6}.Release|x86.Build.0 = Release|Any CPU
132132
EndGlobalSection
133133
GlobalSection(SolutionProperties) = preSolution
134134
HideSolutionNode = FALSE
@@ -140,6 +140,6 @@ Global
140140
{E0972917-46F4-4579-8821-51710A92531C} = {EE974D4B-93C7-4914-A6C2-432E7B720B21}
141141
{51170684-9F74-4C7B-9B0E-B4922FCFA75C} = {EE974D4B-93C7-4914-A6C2-432E7B720B21}
142142
{FDC7380E-88A2-4EB2-BEFD-3CF2E6298F9D} = {EE974D4B-93C7-4914-A6C2-432E7B720B21}
143-
{EC048988-1424-450B-9117-9C2EBFAF2984} = {F40C2F0C-1625-C7F2-86E6-E539334694A7}
143+
{C73B1838-001B-48E1-AAC7-89F7BE421EA6} = {F40C2F0C-1625-C7F2-86E6-E539334694A7}
144144
EndGlobalSection
145145
EndGlobal

src/DataProtection/DataProtection/Az.DataProtection.psd1

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
#
44
# Generated by: Microsoft Corporation
55
#
6-
# Generated on: 26-03-2025
6+
# Generated on: 27-03-2025
77
#
88

99
@{

src/DataProtection/DataProtection/help/Initialize-AzDataProtectionRestoreRequest.md

+42-7
Original file line numberDiff line numberDiff line change
@@ -18,14 +18,16 @@ Initialize-AzDataProtectionRestoreRequest -DatasourceType <DatasourceTypes> -Sou
1818
-RestoreLocation <String> -RestoreType <RestoreTargetType> -TargetResourceId <String>
1919
[-RecoveryPoint <String>] [-PointInTime <DateTime>] [-RehydrationDuration <String>]
2020
[-RehydrationPriority <String>] [-RestoreConfiguration <PSObject>] [-SecretStoreURI <String>]
21-
[-SecretStoreType <SecretStoreTypes>] [<CommonParameters>]
21+
[-SecretStoreType <SecretStoreTypes>] [-UseSystemAssignedIdentity <Boolean>]
22+
[-UserAssignedIdentityArmId <String>] [<CommonParameters>]
2223
```
2324

2425
### AlternateLocationILR
2526
```
2627
Initialize-AzDataProtectionRestoreRequest -DatasourceType <DatasourceTypes> -SourceDataStore <DataStoreType>
2728
-RestoreLocation <String> -RestoreType <RestoreTargetType> -TargetResourceId <String>
28-
[-RecoveryPoint <String>] [-RestoreConfiguration <PSObject>] [-ItemLevelRecovery] [-ContainersList <String[]>]
29+
[-RecoveryPoint <String>] [-RestoreConfiguration <PSObject>] [-UseSystemAssignedIdentity <Boolean>]
30+
[-UserAssignedIdentityArmId <String>] [-ItemLevelRecovery] [-ContainersList <String[]>]
2931
[-PrefixMatch <Hashtable>] [<CommonParameters>]
3032
```
3133

@@ -34,7 +36,8 @@ Initialize-AzDataProtectionRestoreRequest -DatasourceType <DatasourceTypes> -Sou
3436
Initialize-AzDataProtectionRestoreRequest -DatasourceType <DatasourceTypes> -SourceDataStore <DataStoreType>
3537
-RestoreLocation <String> -RestoreType <RestoreTargetType> [-RecoveryPoint <String>] [-PointInTime <DateTime>]
3638
[-RehydrationDuration <String>] [-RehydrationPriority <String>] [-RestoreConfiguration <PSObject>]
37-
[-SecretStoreURI <String>] [-SecretStoreType <SecretStoreTypes>] -BackupInstance <BackupInstanceResource>
39+
[-SecretStoreURI <String>] [-SecretStoreType <SecretStoreTypes>] [-UseSystemAssignedIdentity <Boolean>]
40+
[-UserAssignedIdentityArmId <String>] -BackupInstance <BackupInstanceResource>
3841
[<CommonParameters>]
3942
```
4043

@@ -43,17 +46,19 @@ Initialize-AzDataProtectionRestoreRequest -DatasourceType <DatasourceTypes> -Sou
4346
Initialize-AzDataProtectionRestoreRequest -DatasourceType <DatasourceTypes> -SourceDataStore <DataStoreType>
4447
-RestoreLocation <String> -RestoreType <RestoreTargetType> [-RecoveryPoint <String>] [-PointInTime <DateTime>]
4548
[-RehydrationDuration <String>] [-RehydrationPriority <String>] [-RestoreConfiguration <PSObject>]
46-
[-SecretStoreURI <String>] [-SecretStoreType <SecretStoreTypes>] [-ItemLevelRecovery]
47-
[-ContainersList <String[]>] -BackupInstance <BackupInstanceResource> [-FromPrefixPattern <String[]>]
48-
[-ToPrefixPattern <String[]>] [<CommonParameters>]
49+
[-SecretStoreURI <String>] [-SecretStoreType <SecretStoreTypes>] [-UseSystemAssignedIdentity <Boolean>]
50+
[-UserAssignedIdentityArmId <String>] [-ItemLevelRecovery] [-ContainersList <String[]>]
51+
-BackupInstance <BackupInstanceResource> [-FromPrefixPattern <String[]>] [-ToPrefixPattern <String[]>]
52+
[<CommonParameters>]
4953
```
5054

5155
### RestoreAsFiles
5256
```
5357
Initialize-AzDataProtectionRestoreRequest -DatasourceType <DatasourceTypes> -SourceDataStore <DataStoreType>
5458
-RestoreLocation <String> -RestoreType <RestoreTargetType> [-RecoveryPoint <String>]
5559
[-RehydrationDuration <String>] [-RehydrationPriority <String>] [-SecretStoreURI <String>]
56-
[-SecretStoreType <SecretStoreTypes>] -TargetContainerURI <String>
60+
[-SecretStoreType <SecretStoreTypes>] [-UseSystemAssignedIdentity <Boolean>]
61+
[-UserAssignedIdentityArmId <String>] -TargetContainerURI <String>
5762
[-TargetResourceIdForRestoreAsFile <String>] [-FileNamePrefix <String>]
5863
[<CommonParameters>]
5964
```
@@ -547,6 +552,36 @@ Accept pipeline input: False
547552
Accept wildcard characters: False
548553
```
549554
555+
### -UserAssignedIdentityArmId
556+
User assigned identity ARM Id
557+
558+
```yaml
559+
Type: System.String
560+
Parameter Sets: (All)
561+
Aliases: AssignUserIdentity
562+
563+
Required: False
564+
Position: Named
565+
Default value: None
566+
Accept pipeline input: False
567+
Accept wildcard characters: False
568+
```
569+
570+
### -UseSystemAssignedIdentity
571+
Use system assigned identity
572+
573+
```yaml
574+
Type: System.Nullable`1[System.Boolean]
575+
Parameter Sets: (All)
576+
Aliases:
577+
578+
Required: False
579+
Position: Named
580+
Default value: None
581+
Accept pipeline input: False
582+
Accept wildcard characters: False
583+
```
584+
550585
### CommonParameters
551586
This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see [about_CommonParameters](http://go.microsoft.com/fwlink/?LinkID=113216).
552587

0 commit comments

Comments
 (0)