Skip to content

Commit 57a9b85

Browse files
Move DataProtection to main (#21821)
1 parent 58e356c commit 57a9b85

18 files changed

+678
-42
lines changed

src/DataProtection/DataProtection.sln

Lines changed: 35 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -3,19 +3,19 @@ Microsoft Visual Studio Solution File, Format Version 12.00
33
# Visual Studio Version 17
44
VisualStudioVersion = 17.0.31903.59
55
MinimumVisualStudioVersion = 10.0.40219.1
6-
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Accounts", "..\Accounts\Accounts\Accounts.csproj", "{82B11EC5-4480-4EE8-B93E-1A082DADEB26}"
6+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Accounts", "..\Accounts\Accounts\Accounts.csproj", "{398EF48B-489A-44DB-B79F-6CED7DC63DCE}"
77
EndProject
8-
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AssemblyLoading", "..\Accounts\AssemblyLoading\AssemblyLoading.csproj", "{C3561EE6-74CB-4840-B794-32951E578A7A}"
8+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AssemblyLoading", "..\Accounts\AssemblyLoading\AssemblyLoading.csproj", "{4AE906DE-A5C2-45F2-80A4-581C44C50C50}"
99
EndProject
10-
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Authentication", "..\Accounts\Authentication\Authentication.csproj", "{AA2B259B-DE0C-4A95-AC02-57B31D00D1D5}"
10+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Authentication", "..\Accounts\Authentication\Authentication.csproj", "{ABD089A9-55AC-4FDF-A907-A31CBB3DAA5E}"
1111
EndProject
12-
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Authentication.ResourceManager", "..\Accounts\Authentication.ResourceManager\Authentication.ResourceManager.csproj", "{BD3EE0EA-A603-449C-8AFE-DA0D1964704F}"
12+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Authentication.ResourceManager", "..\Accounts\Authentication.ResourceManager\Authentication.ResourceManager.csproj", "{A7746F87-D02D-4DEB-AAA5-3572FBECCF8D}"
1313
EndProject
14-
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AuthenticationAssemblyLoadContext", "..\Accounts\AuthenticationAssemblyLoadContext\AuthenticationAssemblyLoadContext.csproj", "{806D1F89-E60F-44E7-B856-E5702CC02765}"
14+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AuthenticationAssemblyLoadContext", "..\Accounts\AuthenticationAssemblyLoadContext\AuthenticationAssemblyLoadContext.csproj", "{6497C88D-B85F-43D5-8200-559B48EB7B41}"
1515
EndProject
16-
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Authenticators", "..\Accounts\Authenticators\Authenticators.csproj", "{04312EFD-C13D-4F56-8CAD-3C082AD953F8}"
16+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Authenticators", "..\Accounts\Authenticators\Authenticators.csproj", "{BD8BE80E-FB55-4063-9AC1-5612A12C7D76}"
1717
EndProject
18-
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Az.DataProtection", "Az.DataProtection.csproj", "{3E76A926-D93C-49DA-BE08-14398C042888}"
18+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Az.DataProtection", "Az.DataProtection.csproj", "{2FD485D2-FC57-4579-B055-30FB15795B29}"
1919
EndProject
2020
Global
2121
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -26,33 +26,33 @@ Global
2626
HideSolutionNode = FALSE
2727
EndGlobalSection
2828
GlobalSection(ProjectConfigurationPlatforms) = postSolution
29-
{82B11EC5-4480-4EE8-B93E-1A082DADEB26}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
30-
{82B11EC5-4480-4EE8-B93E-1A082DADEB26}.Debug|Any CPU.Build.0 = Debug|Any CPU
31-
{82B11EC5-4480-4EE8-B93E-1A082DADEB26}.Release|Any CPU.ActiveCfg = Release|Any CPU
32-
{82B11EC5-4480-4EE8-B93E-1A082DADEB26}.Release|Any CPU.Build.0 = Release|Any CPU
33-
{C3561EE6-74CB-4840-B794-32951E578A7A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
34-
{C3561EE6-74CB-4840-B794-32951E578A7A}.Debug|Any CPU.Build.0 = Debug|Any CPU
35-
{C3561EE6-74CB-4840-B794-32951E578A7A}.Release|Any CPU.ActiveCfg = Release|Any CPU
36-
{C3561EE6-74CB-4840-B794-32951E578A7A}.Release|Any CPU.Build.0 = Release|Any CPU
37-
{AA2B259B-DE0C-4A95-AC02-57B31D00D1D5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
38-
{AA2B259B-DE0C-4A95-AC02-57B31D00D1D5}.Debug|Any CPU.Build.0 = Debug|Any CPU
39-
{AA2B259B-DE0C-4A95-AC02-57B31D00D1D5}.Release|Any CPU.ActiveCfg = Release|Any CPU
40-
{AA2B259B-DE0C-4A95-AC02-57B31D00D1D5}.Release|Any CPU.Build.0 = Release|Any CPU
41-
{BD3EE0EA-A603-449C-8AFE-DA0D1964704F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
42-
{BD3EE0EA-A603-449C-8AFE-DA0D1964704F}.Debug|Any CPU.Build.0 = Debug|Any CPU
43-
{BD3EE0EA-A603-449C-8AFE-DA0D1964704F}.Release|Any CPU.ActiveCfg = Release|Any CPU
44-
{BD3EE0EA-A603-449C-8AFE-DA0D1964704F}.Release|Any CPU.Build.0 = Release|Any CPU
45-
{806D1F89-E60F-44E7-B856-E5702CC02765}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
46-
{806D1F89-E60F-44E7-B856-E5702CC02765}.Debug|Any CPU.Build.0 = Debug|Any CPU
47-
{806D1F89-E60F-44E7-B856-E5702CC02765}.Release|Any CPU.ActiveCfg = Release|Any CPU
48-
{806D1F89-E60F-44E7-B856-E5702CC02765}.Release|Any CPU.Build.0 = Release|Any CPU
49-
{04312EFD-C13D-4F56-8CAD-3C082AD953F8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
50-
{04312EFD-C13D-4F56-8CAD-3C082AD953F8}.Debug|Any CPU.Build.0 = Debug|Any CPU
51-
{04312EFD-C13D-4F56-8CAD-3C082AD953F8}.Release|Any CPU.ActiveCfg = Release|Any CPU
52-
{04312EFD-C13D-4F56-8CAD-3C082AD953F8}.Release|Any CPU.Build.0 = Release|Any CPU
53-
{3E76A926-D93C-49DA-BE08-14398C042888}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
54-
{3E76A926-D93C-49DA-BE08-14398C042888}.Debug|Any CPU.Build.0 = Debug|Any CPU
55-
{3E76A926-D93C-49DA-BE08-14398C042888}.Release|Any CPU.ActiveCfg = Release|Any CPU
56-
{3E76A926-D93C-49DA-BE08-14398C042888}.Release|Any CPU.Build.0 = Release|Any CPU
29+
{398EF48B-489A-44DB-B79F-6CED7DC63DCE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
30+
{398EF48B-489A-44DB-B79F-6CED7DC63DCE}.Debug|Any CPU.Build.0 = Debug|Any CPU
31+
{398EF48B-489A-44DB-B79F-6CED7DC63DCE}.Release|Any CPU.ActiveCfg = Release|Any CPU
32+
{398EF48B-489A-44DB-B79F-6CED7DC63DCE}.Release|Any CPU.Build.0 = Release|Any CPU
33+
{4AE906DE-A5C2-45F2-80A4-581C44C50C50}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
34+
{4AE906DE-A5C2-45F2-80A4-581C44C50C50}.Debug|Any CPU.Build.0 = Debug|Any CPU
35+
{4AE906DE-A5C2-45F2-80A4-581C44C50C50}.Release|Any CPU.ActiveCfg = Release|Any CPU
36+
{4AE906DE-A5C2-45F2-80A4-581C44C50C50}.Release|Any CPU.Build.0 = Release|Any CPU
37+
{ABD089A9-55AC-4FDF-A907-A31CBB3DAA5E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
38+
{ABD089A9-55AC-4FDF-A907-A31CBB3DAA5E}.Debug|Any CPU.Build.0 = Debug|Any CPU
39+
{ABD089A9-55AC-4FDF-A907-A31CBB3DAA5E}.Release|Any CPU.ActiveCfg = Release|Any CPU
40+
{ABD089A9-55AC-4FDF-A907-A31CBB3DAA5E}.Release|Any CPU.Build.0 = Release|Any CPU
41+
{A7746F87-D02D-4DEB-AAA5-3572FBECCF8D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
42+
{A7746F87-D02D-4DEB-AAA5-3572FBECCF8D}.Debug|Any CPU.Build.0 = Debug|Any CPU
43+
{A7746F87-D02D-4DEB-AAA5-3572FBECCF8D}.Release|Any CPU.ActiveCfg = Release|Any CPU
44+
{A7746F87-D02D-4DEB-AAA5-3572FBECCF8D}.Release|Any CPU.Build.0 = Release|Any CPU
45+
{6497C88D-B85F-43D5-8200-559B48EB7B41}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
46+
{6497C88D-B85F-43D5-8200-559B48EB7B41}.Debug|Any CPU.Build.0 = Debug|Any CPU
47+
{6497C88D-B85F-43D5-8200-559B48EB7B41}.Release|Any CPU.ActiveCfg = Release|Any CPU
48+
{6497C88D-B85F-43D5-8200-559B48EB7B41}.Release|Any CPU.Build.0 = Release|Any CPU
49+
{BD8BE80E-FB55-4063-9AC1-5612A12C7D76}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
50+
{BD8BE80E-FB55-4063-9AC1-5612A12C7D76}.Debug|Any CPU.Build.0 = Debug|Any CPU
51+
{BD8BE80E-FB55-4063-9AC1-5612A12C7D76}.Release|Any CPU.ActiveCfg = Release|Any CPU
52+
{BD8BE80E-FB55-4063-9AC1-5612A12C7D76}.Release|Any CPU.Build.0 = Release|Any CPU
53+
{2FD485D2-FC57-4579-B055-30FB15795B29}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
54+
{2FD485D2-FC57-4579-B055-30FB15795B29}.Debug|Any CPU.Build.0 = Debug|Any CPU
55+
{2FD485D2-FC57-4579-B055-30FB15795B29}.Release|Any CPU.ActiveCfg = Release|Any CPU
56+
{2FD485D2-FC57-4579-B055-30FB15795B29}.Release|Any CPU.Build.0 = Release|Any CPU
5757
EndGlobalSection
5858
EndGlobal

src/DataProtection/examples/New-AzDataProtectionBackupConfigurationClientObject.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,3 +11,17 @@ KubernetesClusterBackupDatasourceParameters {excludeNS1, excludeNS2}
1111

1212
This command can be used to create a backup configuration client object used for configuring backup for a Kubernetes cluster
1313

14+
### Example 2: Create a BackupConfiguration to select specific containers for configuring vaulted backups for AzureBlob.
15+
```powershell
16+
$storageAccount = Get-AzStorageAccount -ResourceGroupName $resourceGroupName -Name $storageAccountName
17+
$containers=Get-AzStorageContainer -Context $storageAccount.Context
18+
$backupConfig = New-AzDataProtectionBackupConfigurationClientObject -DatasourceType AzureBlob -VaultedBackupContainer $containers.Name[1,3,4]
19+
```
20+
21+
```output
22+
ObjectType ContainersList
23+
---------- --------------
24+
BlobBackupDatasourceParameters {conabb, conwxy, conzzz}
25+
```
26+
27+
This command can be used to create a backup configuration client object used for configuring backup for vaulted Blob backup containers.

src/DataProtection/examples/New-AzDataProtectionBackupInstance.md

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,4 +62,32 @@ The First command gets the AzureKubernetesService policy in a given vault. The s
6262
The fourth command backup configuration object needed for AzureKubernetesService. The fifth command initializes the client object for backup instance.
6363
The sixth command assigns the necessary permissions for configure backup.
6464
The sevnth and eight command initializes custom tags and configure backup finally by creating a backup instance.
65-
65+
66+
### Example 4: Configure protection for AzureBlob with vault policy
67+
```powershell
68+
$vault = Get-AzDataProtectionBackupVault -SubscriptionId "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" -ResourceGroupName "resourceGroupName" -VaultName "vaultName"
69+
$pol = Get-AzDataProtectionBackupPolicy -SubscriptionId "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" -VaultName "vaultName" -ResourceGroupName "resourceGroupName" | Where { $_.Name -match "vaultedPolicyName" }
70+
$backupConfig = New-AzDataProtectionBackupConfigurationClientObject -DatasourceType AzureBlob -IncludeAllContainer -StorageAccountResourceGroupName "resourceGroupName" -StorageAccountName "storageAcountName"
71+
$backupInstanceClientObject = Initialize-AzDataProtectionBackupInstance -DatasourceType AzureBlob -DatasourceLocation $vault.Location -PolicyId $pol[0].Id -DatasourceId "storageAccId" -BackupConfiguration $backupConfig
72+
Set-AzDataProtectionMSIPermission -VaultResourceGroup "resourceGroupName" -VaultName "vaultName" -BackupInstance $backupInstanceClientObject -PermissionsScope ResourceGroup
73+
$operationResponse = Test-AzDataProtectionBackupInstanceReadiness -ResourceGroupName "resourceGroupName" -VaultName "vaultName" -SubscriptionId "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" -BackupInstance $backupInstanceClientObject.Property -NoWait
74+
$operationId = $operationResponse.Target.Split("/")[-1].Split("?")[0]
75+
While((Get-AzDataProtectionOperationStatus -OperationId $operationId -Location $vault.Location -SubscriptionId "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx").Status -eq "Inprogress"){
76+
Start-Sleep -Seconds 10
77+
}
78+
$backupnstanceCreate = New-AzDataProtectionBackupInstance -ResourceGroupName "resourceGroupName" -VaultName "vaultName" -SubscriptionId "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" -BackupInstance $backupInstanceClientObject
79+
```
80+
81+
```output
82+
Name BackupInstanceName
83+
---- ------------------
84+
blobeuspstestsa-blobeuspstestsa-64f7399a-b024-4d61-8f16-c424c5fd2564 blobeuspstestsa-blobeuspstestsa-64f7399a-b024-4d61-8f16-c424c5fd2564
85+
```
86+
87+
The first command gets the backup vault. The second command get the vaultedPolicy.
88+
The third command defines a BackupConfiguration object so as to include all containers for vaulted backup. Check examples for New-AzDataProtectionBackupConfigurationClientObject cmdlet to see how to select specific containers for backup.
89+
Th fourth command initializes the backup instance.
90+
The fifth command assigns the necessary permissions for configure backup.
91+
The sixth command validates if the backup instance object is valid for configure protection (validate backup). This command runs in async way using parameter -NoWait.
92+
Next we fetch the operation in a while loop until it succeeds.
93+
The last command is used to configure protection for the backup instance.

src/DataProtection/examples/New-AzDataProtectionBackupPolicy.md

Lines changed: 80 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,4 +84,83 @@ The fifth, sixth commands create two backup lifecycles for daily and weekly reco
8484
The seventh, eight commands update the policy object with lifecycles created.
8585
Next we create FirstOfDay, FirstOfWeek tag criteria and update the policy.
8686
The last command creates the policy.
87-
87+
88+
### Example 4: Create a operational policy for AzureBlob
89+
```powershell
90+
$defaultPol = Get-AzDataProtectionPolicyTemplate -DatasourceType AzureBlob
91+
Edit-AzDataProtectionPolicyTriggerClientObject -Policy $defaultPol -RemoveSchedule
92+
$lifeCycleOperationalTier = New-AzDataProtectionRetentionLifeCycleClientObject -SourceDataStore OperationalStore -SourceRetentionDurationType Days -SourceRetentionDurationCount 30
93+
Edit-AzDataProtectionPolicyRetentionRuleClientObject -Policy $defaultPol -Name Default -LifeCycles $lifeCycleOperationalTier -IsDefault $true -OverwriteLifeCycle $true
94+
$opPolicy = New-AzDataProtectionBackupPolicy -SubscriptionId "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" -ResourceGroupName "resourceGroupName" -VaultName "vaultName" -Name "operationalPolicyName" -Policy $defaultPol
95+
```
96+
97+
```output
98+
Name Type
99+
---- ----
100+
operationalPolicyName Microsoft.DataProtection/backupVaults/backupPolicies
101+
```
102+
103+
The first command gets the default policy template for AzureBlob. Policy template is by default vaulted policy.
104+
The second command removes the vaulted policy schedule since we are creating operational policy.
105+
The third command creates a operational store lifecycle for 30 Days.
106+
The fourth command overwrites the vault lifecycle with operational store lifecycle.
107+
The last command creates the operational store policy.
108+
109+
### Example 4: Create a vaulted policy for AzureBlob
110+
```powershell
111+
$defaultPol = Get-AzDataProtectionPolicyTemplate -DatasourceType AzureBlob
112+
$lifeCycleVaultTierWeekly = New-AzDataProtectionRetentionLifeCycleClientObject -SourceDataStore VaultStore -SourceRetentionDurationType Weeks -SourceRetentionDurationCount 4
113+
Edit-AzDataProtectionPolicyRetentionRuleClientObject -Policy $defaultPol -Name Weekly -LifeCycles $lifeCycleVaultTierWeekly -IsDefault $false
114+
$tagCriteria = New-AzDataProtectionPolicyTagCriteriaClientObject -AbsoluteCriteria FirstOfWeek
115+
Edit-AzDataProtectionPolicyTagClientObject -Policy $defaultPol -Name Weekly -Criteria $tagCriteria
116+
$vaultedPolicy = New-AzDataProtectionBackupPolicy -SubscriptionId "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" -ResourceGroupName "resourceGroupName" -VaultName "vaultName" -Name "vaultedPolicyName" -Policy $defaultPol
117+
```
118+
119+
```output
120+
Name Type
121+
---- ----
122+
vaultedPolicyName Microsoft.DataProtection/backupVaults/backupPolicies
123+
```
124+
125+
The first command gets the default vaulted policy template for AzureBlob.
126+
The second command defines a weekly lifecycle in vault store.
127+
The third command updates the defaultPol object with weekly lifecycle.
128+
The third and fourth command defines and updates the defaultPol with weekly tag criteria.
129+
The last command creates the vault store policy.
130+
131+
### Example 5: Create a operational and vaulted policy for AzureBlob
132+
```powershell
133+
$defaultPol = Get-AzDataProtectionPolicyTemplate -DatasourceType AzureBlob
134+
$lifeCycleOperationalTier = New-AzDataProtectionRetentionLifeCycleClientObject -SourceDataStore OperationalStore -SourceRetentionDurationType Days -SourceRetentionDurationCount 30
135+
Edit-AzDataProtectionPolicyRetentionRuleClientObject -Policy $defaultPol -Name Default -LifeCycles $lifeCycleOperationalTier -IsDefault $true -OverwriteLifeCycle $false
136+
$lifeCycleVaultTierWeekly = New-AzDataProtectionRetentionLifeCycleClientObject -SourceDataStore VaultStore -SourceRetentionDurationType Weeks -SourceRetentionDurationCount 7
137+
Edit-AzDataProtectionPolicyRetentionRuleClientObject -Policy $defaultPol -Name Weekly -LifeCycles $lifeCycleVaultTierWeekly -IsDefault $false
138+
$tagCriteria = New-AzDataProtectionPolicyTagCriteriaClientObject -AbsoluteCriteria FirstOfWeek
139+
Edit-AzDataProtectionPolicyTagClientObject -Policy $defaultPol -Name Weekly -Criteria $tagCriteria
140+
$lifeCycleVaultTierMonthly = New-AzDataProtectionRetentionLifeCycleClientObject -SourceDataStore VaultStore -SourceRetentionDurationType Months -SourceRetentionDurationCount 5
141+
Edit-AzDataProtectionPolicyRetentionRuleClientObject -Policy $defaultPol -Name Monthly -LifeCycles $lifeCycleVaultTierMonthly -IsDefault $false
142+
$tagCriteria = New-AzDataProtectionPolicyTagCriteriaClientObject -AbsoluteCriteria FirstOfMonth
143+
Edit-AzDataProtectionPolicyTagClientObject -Policy $defaultPol -Name Monthly -Criteria $tagCriteria
144+
$lifeCycleVaultTierYearly = New-AzDataProtectionRetentionLifeCycleClientObject -SourceDataStore VaultStore -SourceRetentionDurationType Years -SourceRetentionDurationCount 1
145+
Edit-AzDataProtectionPolicyRetentionRuleClientObject -Policy $defaultPol -Name Yearly -LifeCycles $lifeCycleVaultTierYearly -IsDefault $false
146+
$tagCriteria = New-AzDataProtectionPolicyTagCriteriaClientObject -AbsoluteCriteria FirstOfYear
147+
Edit-AzDataProtectionPolicyTagClientObject -Policy $defaultPol -Name Yearly -Criteria $tagCriteria
148+
$scheduleDate = Get-Date
149+
$trigger = New-AzDataProtectionPolicyTriggerScheduleClientObject -ScheduleDays $scheduleDate -IntervalType Weekly -IntervalCount 1
150+
Edit-AzDataProtectionPolicyTriggerClientObject -Schedule $trigger -Policy $defaultPol
151+
$defaultPol.PolicyRule[0].Trigger.ScheduleRepeatingTimeInterval[0] = "R/2023-05-09T02:30:00+01:00/P1W"
152+
$timeZone = Get-TimeZone -ListAvailable | Where-Object { $_.Id -match "Europe" }
153+
$defaultPol.PolicyRule[0].Trigger.ScheduleTimeZone = $timeZone[0].Id
154+
$operationalVaultedPolicy = New-AzDataProtectionBackupPolicy -SubscriptionId "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" -ResourceGroupName "resourceGroupName" -VaultName "vaultName" -Name "operationalVaultedPolicyName" -Policy $defaultPol
155+
```
156+
157+
```output
158+
Name Type
159+
---- ----
160+
operationalVaultedPolicyName Microsoft.DataProtection/backupVaults/backupPolicies
161+
```
162+
163+
The first command gets the default vaulted policy template for AzureBlob.
164+
The second to fifteenth command defines and updates the Operational, vaulted weekly, monthly, yearly lifecycle and tagcriteria.
165+
Next we define a trigger object with schedule time and timzone, set it to 2:30 AM West Europe standard time.
166+
The last command creates the hybrid AzureBlob policy.

0 commit comments

Comments
 (0)