From 2c561974ce94da2d8c3169a55776e3a8b3dd6118 Mon Sep 17 00:00:00 2001 From: Sriram Kalyan Vuddagiri Date: Fri, 26 Jul 2019 20:21:36 +0530 Subject: [PATCH 1/3] ADE OnePass changes --- ...eRmAsrAzureToAzureDiskReplicationConfig.cs | 34 +++++- .../Models/PSFabricDetails.cs | 28 ++++- .../Models/PSObjects.cs | 104 ++++++++---------- ...veryServicesAsrReplicationProtectedItem.cs | 50 +++------ ...veryServicesAsrReplicationProtectedItem.cs | 7 +- ...mRecoveryServicesAsrProtectionDirection.cs | 10 +- .../Utilities/Utilities.cs | 73 ++++++------ 7 files changed, 164 insertions(+), 142 deletions(-) diff --git a/src/RecoveryServices/RecoveryServices.SiteRecovery/DiskReplicationConfiguration/AzureRmAsrAzureToAzureDiskReplicationConfig.cs b/src/RecoveryServices/RecoveryServices.SiteRecovery/DiskReplicationConfiguration/AzureRmAsrAzureToAzureDiskReplicationConfig.cs index a009639a09be..9b7089a3338e 100644 --- a/src/RecoveryServices/RecoveryServices.SiteRecovery/DiskReplicationConfiguration/AzureRmAsrAzureToAzureDiskReplicationConfig.cs +++ b/src/RecoveryServices/RecoveryServices.SiteRecovery/DiskReplicationConfiguration/AzureRmAsrAzureToAzureDiskReplicationConfig.cs @@ -98,6 +98,34 @@ public class AzureRmAsrAzureToAzureDiskReplicationConfig : SiteRecoveryCmdletBas Constants.Standard_SSD)] public string RecoveryTargetDiskAccountType { get; set; } + /// + /// Gets or sets DiskEncryptionVaultId. + /// + [Parameter(ParameterSetName = ASRParameterSets.AzureToAzureManagedDisk, Mandatory = false)] + [ValidateNotNullOrEmpty] + public string DiskEncryptionVaultId { get; set; } + + /// + /// Gets or sets DiskEncryptionSecretUrl. + /// + [Parameter(ParameterSetName = ASRParameterSets.AzureToAzureManagedDisk, Mandatory = false)] + [ValidateNotNullOrEmpty] + public string DiskEncryptionSecretUrl { get; set; } + + /// + /// Gets or sets KeyEncryptionKeyUrl. + /// + [Parameter(ParameterSetName = ASRParameterSets.AzureToAzureManagedDisk, Mandatory = false)] + [ValidateNotNullOrEmpty] + public string KeyEncryptionKeyUrl { get; set; } + + /// + /// Gets or sets KeyEncryptionVaultId. + /// + [Parameter(ParameterSetName = ASRParameterSets.AzureToAzureManagedDisk, Mandatory = false)] + [ValidateNotNullOrEmpty] + public string KeyEncryptionVaultId { get; set; } + #endregion Parameters /// @@ -132,7 +160,11 @@ public override void ExecuteSiteRecoveryCmdlet() RecoveryReplicaDiskAccountType = this.RecoveryReplicaDiskAccountType, RecoveryResourceGroupId = this.RecoveryResourceGroupId, RecoveryTargetDiskAccountType = this.RecoveryTargetDiskAccountType, - IsManagedDisk = true + IsManagedDisk = true, + DiskEncryptionSecretUrl = this.DiskEncryptionSecretUrl, + DiskEncryptionVaultId = this.DiskEncryptionVaultId, + KeyEncryptionKeyUrl = this.KeyEncryptionKeyUrl, + KeyEncryptionVaultId = this.KeyEncryptionVaultId }; break; } diff --git a/src/RecoveryServices/RecoveryServices.SiteRecovery/Models/PSFabricDetails.cs b/src/RecoveryServices/RecoveryServices.SiteRecovery/Models/PSFabricDetails.cs index b568b54b25ba..a928a2eebbf1 100644 --- a/src/RecoveryServices/RecoveryServices.SiteRecovery/Models/PSFabricDetails.cs +++ b/src/RecoveryServices/RecoveryServices.SiteRecovery/Models/PSFabricDetails.cs @@ -1195,6 +1195,10 @@ public ASRAzureToAzureSpecificRPIDetails(A2AReplicationDetails details) this.LastRpoCalculatedTime = details.LastRpoCalculatedTime; this.RpoInSeconds = details.RpoInSeconds; this.IsReplicationAgentUpdateRequired = details.IsReplicationAgentUpdateRequired; + this.VmEncryptionType = details.VmEncryptionType; + this.InitialPrimaryFabricLocation = details.InitialPrimaryFabricLocation; + this.InitialRecoveryFabricLocation = details.InitialRecoveryFabricLocation; + this.LifecycleId = details.LifecycleId; if (details.LastHeartbeat != null) { @@ -1346,10 +1350,26 @@ public ASRAzureToAzureSpecificRPIDetails(A2AReplicationDetails details) /// public bool? IsReplicationAgentUpdateRequired; - // check do we need to expoxed these 2 (TODO) - // public string RecoveryFabricObjectId; //how it is different from parent RecoveryFabricId - // public string LifecycleId; - // public string managementId; + /// + /// Gets or sets the VM encryption type. + /// + public string VmEncryptionType { get; set; } + + /// + /// Gets or sets the initial primary fabric location. + /// + public string InitialPrimaryFabricLocation { get; set; } + + /// + /// Gets or sets the initial recovery fabric location. + /// + public string InitialRecoveryFabricLocation { get; set; } + + /// + /// Gets or sets the only constant ID throught out the enable disable cycle. + /// (with multiple switch protections in the middle) - Recovery Plans refer this ID. + /// + public string LifecycleId { get; set; } } // diff --git a/src/RecoveryServices/RecoveryServices.SiteRecovery/Models/PSObjects.cs b/src/RecoveryServices/RecoveryServices.SiteRecovery/Models/PSObjects.cs index 1beb06422069..88b72f99d872 100644 --- a/src/RecoveryServices/RecoveryServices.SiteRecovery/Models/PSObjects.cs +++ b/src/RecoveryServices/RecoveryServices.SiteRecovery/Models/PSObjects.cs @@ -2345,17 +2345,12 @@ public class AsrInMageAzureV2DiskInput public class ASRAzuretoAzureDiskReplicationConfig { /// - /// Initializes a new instance of the class. + /// Initializes a new instance of the class. /// public ASRAzuretoAzureDiskReplicationConfig() { } - /// - /// Initializes a new instance of the class. - /// - /// Run as account object. - /// /// /// Gets or sets the disk uri. /// @@ -2395,6 +2390,26 @@ public ASRAzuretoAzureDiskReplicationConfig() /// Gets or sets RecoveryTargetDiskAccountType. /// public string RecoveryTargetDiskAccountType; + + /// + /// Gets or sets DiskEncryptionVaultId. + /// + public string DiskEncryptionVaultId { get; set; } + + /// + /// Gets or sets DiskEncryptionSecretUrl. + /// + public string DiskEncryptionSecretUrl { get; set; } + + /// + /// Gets or sets KeyEncryptionKeyUrl. + /// + public string KeyEncryptionKeyUrl { get; set; } + + /// + /// Gets or sets KeyEncryptionVaultId. + /// + public string KeyEncryptionVaultId { get; set; } } /// @@ -2468,30 +2483,34 @@ public ASRAzureToAzureProtectedDiskDetails(A2AProtectedManagedDiskDetails disk) this.KeyIdentifier = disk.KeyIdentifier; } - // - // Summary: - // Gets or sets a value indicating whether disk key got encrypted or not. + /// + /// Gets or sets a value indicating whether disk key got encrypted or not. + /// public bool? IsDiskKeyEncrypted { get; set; } - // - // Summary: - // Gets or sets the KeyVault resource id for secret (BEK). + + /// + /// Gets or sets the KeyVault resource id for secret (BEK). + /// public string DekKeyVaultArmId { get; set; } - // - // Summary: - // Gets or sets the secret URL / identifier (BEK). + + /// + /// Gets or sets the secret URL / identifier (BEK). + /// public string SecretIdentifier { get; set; } - // - // Summary: - // Gets or sets a value indicating whether vm has encrypted os disk or not. + + /// + /// Gets or sets a value indicating whether vm has encrypted os disk or not. + /// public bool? IsDiskEncrypted { get; set; } - // - // Summary: - // Gets or sets the key URL / identifier (KEK). + /// + /// Gets or sets the key URL / identifier (KEK). + /// public string KeyIdentifier { get; set; } - // - // Summary: - // Gets or sets the KeyVault resource id for key (KEK). + + /// + /// Gets or sets the KeyVault resource id for key (KEK). + /// public string KekKeyVaultArmId { get; set; } /// @@ -2759,41 +2778,4 @@ public override string ToString() return sb.ToString(); } } - - /// - /// Encryption types for VM. - /// - public enum AzureDiskEncryptionType - { - /// - /// VM not encrypted. - /// - NotEncrypted, - - /// - /// VM encrypted using one pass ADE flow. - /// - OnePassEncrypted, - - /// - /// VM encrypted using two pass ADE flow. - /// - TwoPassEncrypted - } - - /// - /// Azure Disk Encryption extension types for VMs. - /// - public enum AzureDiskEncryptionExtensionType - { - /// - /// ADE extension for Windows VM. - /// - AzureDiskEncryption, - - /// - /// ADE extension for Linux VM. - /// - AzureDiskEncryptionForLinux - } } diff --git a/src/RecoveryServices/RecoveryServices.SiteRecovery/ReplicationProtectedItem/NewAzureRmRecoveryServicesAsrReplicationProtectedItem.cs b/src/RecoveryServices/RecoveryServices.SiteRecovery/ReplicationProtectedItem/NewAzureRmRecoveryServicesAsrReplicationProtectedItem.cs index dbfe9b53561b..4ec2b1bff3c2 100644 --- a/src/RecoveryServices/RecoveryServices.SiteRecovery/ReplicationProtectedItem/NewAzureRmRecoveryServicesAsrReplicationProtectedItem.cs +++ b/src/RecoveryServices/RecoveryServices.SiteRecovery/ReplicationProtectedItem/NewAzureRmRecoveryServicesAsrReplicationProtectedItem.cs @@ -321,13 +321,13 @@ public class NewAzureRmRecoveryServicesAsrReplicationProtectedItem : SiteRecover public string KeyEncryptionVaultId { get; set; } /// - /// Gets or sets switch parameter. On passing, command waits till completion. + /// Gets or sets switch parameter. On passing, command waits till completion. /// [Parameter] public SwitchParameter WaitForCompletion { get; set; } /// - /// ProcessRecord of the command. + /// ProcessRecord of the command. /// public override void ExecuteSiteRecoveryCmdlet() { @@ -764,7 +764,13 @@ private void AzureToAzureReplication(EnableProtectionInput input) RecoveryResourceGroupId = disk.RecoveryResourceGroupId, PrimaryStagingAzureStorageAccountId = disk.LogStorageAccountId, RecoveryReplicaDiskAccountType = disk.RecoveryReplicaDiskAccountType, - RecoveryTargetDiskAccountType = disk.RecoveryTargetDiskAccountType + RecoveryTargetDiskAccountType = disk.RecoveryTargetDiskAccountType, + DiskEncryptionInfo = + Utilities.A2AEncryptionDetails( + disk.DiskEncryptionSecretUrl, + disk.DiskEncryptionVaultId, + disk.KeyEncryptionKeyUrl, + disk.KeyEncryptionVaultId) }); } @@ -782,42 +788,16 @@ private void AzureToAzureReplication(EnableProtectionInput input) } } - providerSettings.DiskEncryptionInfo = this.A2AEncryptionDetails(); + providerSettings.DiskEncryptionInfo = + Utilities.A2AEncryptionDetails( + this.DiskEncryptionSecretUrl, + this.DiskEncryptionVaultId, + this.KeyEncryptionKeyUrl, + this.KeyEncryptionVaultId); input.Properties.ProviderSpecificDetails = providerSettings; } - /** - * Creating DiskEncryptionInfo for A2A encrypted Vm. - */ - private DiskEncryptionInfo A2AEncryptionDetails() - { - // Checking if any encryption data is present then the only creating DiskEncryptionInfo. - if (this.IsParameterBound(c => c.DiskEncryptionSecretUrl) || - this.IsParameterBound(c => c.DiskEncryptionVaultId) || - this.IsParameterBound(c => c.KeyEncryptionKeyUrl) || - this.IsParameterBound(c => c.KeyEncryptionVaultId)) - { - DiskEncryptionInfo diskEncryptionInfo = new DiskEncryptionInfo(); - // BEK DATA is present - if (this.IsParameterBound(c => c.DiskEncryptionSecretUrl) && this.IsParameterBound(c => c.DiskEncryptionVaultId)) - { - diskEncryptionInfo.DiskEncryptionKeyInfo = new DiskEncryptionKeyInfo(this.DiskEncryptionSecretUrl, this.DiskEncryptionVaultId); - // KEK Data is present in pair. - if (this.IsParameterBound(c => c.KeyEncryptionKeyUrl) && this.IsParameterBound(c => c.KeyEncryptionVaultId)) - { - diskEncryptionInfo.KeyEncryptionKeyInfo = new KeyEncryptionKeyInfo(this.KeyEncryptionKeyUrl, this.KeyEncryptionVaultId); - } - } - else - { - throw new Exception("Provide Disk DiskEncryptionSecretUrl and DiskEncryptionVaultId."); - } - return diskEncryptionInfo; - } - return null; - } - /// /// Writes Job. /// diff --git a/src/RecoveryServices/RecoveryServices.SiteRecovery/ReplicationProtectedItem/SetAzureRmRecoveryServicesAsrReplicationProtectedItem.cs b/src/RecoveryServices/RecoveryServices.SiteRecovery/ReplicationProtectedItem/SetAzureRmRecoveryServicesAsrReplicationProtectedItem.cs index 45f7dc3a95e8..50cc342a1e76 100644 --- a/src/RecoveryServices/RecoveryServices.SiteRecovery/ReplicationProtectedItem/SetAzureRmRecoveryServicesAsrReplicationProtectedItem.cs +++ b/src/RecoveryServices/RecoveryServices.SiteRecovery/ReplicationProtectedItem/SetAzureRmRecoveryServicesAsrReplicationProtectedItem.cs @@ -462,7 +462,12 @@ public override void ExecuteSiteRecoveryCmdlet() new A2AVmManagedDiskUpdateDetails( managedDisk.DiskId, managedDisk.RecoveryTargetDiskAccountType, - managedDisk.RecoveryReplicaDiskAccountType)); + managedDisk.RecoveryReplicaDiskAccountType, + Utilities.A2AEncryptionDetails( + managedDisk.DiskEncryptionSecretUrl, + managedDisk.DiskEncryptionVaultId, + managedDisk.KeyEncryptionKeyUrl, + managedDisk.KeyEncryptionVaultId))); } } diff --git a/src/RecoveryServices/RecoveryServices.SiteRecovery/ReplicationProtectedItem/UpdateAzureRmRecoveryServicesAsrProtectionDirection.cs b/src/RecoveryServices/RecoveryServices.SiteRecovery/ReplicationProtectedItem/UpdateAzureRmRecoveryServicesAsrProtectionDirection.cs index 16f34255e28f..6dec2872c817 100644 --- a/src/RecoveryServices/RecoveryServices.SiteRecovery/ReplicationProtectedItem/UpdateAzureRmRecoveryServicesAsrProtectionDirection.cs +++ b/src/RecoveryServices/RecoveryServices.SiteRecovery/ReplicationProtectedItem/UpdateAzureRmRecoveryServicesAsrProtectionDirection.cs @@ -636,7 +636,7 @@ private void populateManagedDiskInputDetails( ReplicationProtectedItem replicationProtectedItemResponse) { if (this.AzureToAzureDiskReplicationConfiguration == null || - this.AzureToAzureDiskReplicationConfiguration.Length == 0) + this.AzureToAzureDiskReplicationConfiguration.Length == 0) { var a2aReplicationDetails = ((A2AReplicationDetails)replicationProtectedItemResponse.Properties.ProviderSpecificDetails); if (!a2aReplicationDetails.FabricObjectId.ToLower().Contains(ARMResourceTypeConstants.Compute.ToLower())) @@ -690,7 +690,13 @@ private void populateManagedDiskInputDetails( RecoveryReplicaDiskAccountType = disk.RecoveryReplicaDiskAccountType, RecoveryTargetDiskAccountType = disk.RecoveryTargetDiskAccountType, PrimaryStagingAzureStorageAccountId = disk.LogStorageAccountId, - }); + DiskEncryptionInfo = + Utilities.A2AEncryptionDetails( + disk.DiskEncryptionSecretUrl, + disk.DiskEncryptionVaultId, + disk.KeyEncryptionKeyUrl, + disk.KeyEncryptionVaultId) + }); } } } diff --git a/src/RecoveryServices/RecoveryServices.SiteRecovery/Utilities/Utilities.cs b/src/RecoveryServices/RecoveryServices.SiteRecovery/Utilities/Utilities.cs index 33209718924d..6cd395bbf38f 100644 --- a/src/RecoveryServices/RecoveryServices.SiteRecovery/Utilities/Utilities.cs +++ b/src/RecoveryServices/RecoveryServices.SiteRecovery/Utilities/Utilities.cs @@ -517,51 +517,48 @@ public static string WriteToFile( } /// - /// Checks the encryption type of (windows/linux) VM - /// Using the following Azure Disk Encryption extension versions. - /// Linux [1-pass-majorversion="1."] Linux [2-pass-majorversion="0."] - /// Windows[1-pass-majorversion="2."] Windows[2-pass-majorversion="1."] + /// Creating DiskEncryptionInfo for A2A encrypted Vm. /// - /// Arm V2 type virtual machine object. - private static AzureDiskEncryptionType FindEncryptionType(Common.Compute.Version_2018_04.Models.VirtualMachine virtualMachine) + /// Secret identifier. + /// Secret KeyVault. + /// Key identifier. + /// Key KeyVault. + /// DiskEncryptionInfo object. + public static DiskEncryptionInfo A2AEncryptionDetails( + string diskEncryptionSecretUrl, + string diskEncryptionVaultId, + string keyEncryptionKeyUrl, + string keyEncryptionVaultId) { - AzureDiskEncryptionType encryptionType = AzureDiskEncryptionType.NotEncrypted; - if (virtualMachine.InstanceView.Extensions != null) + DiskEncryptionInfo diskEncryptionInfo = null; + if (!string.IsNullOrEmpty(diskEncryptionSecretUrl) && + !string.IsNullOrEmpty(diskEncryptionVaultId)) { - foreach (var extension in virtualMachine.InstanceView.Extensions) + diskEncryptionInfo = new DiskEncryptionInfo { - if (extension.Name != null && extension.Name.Equals( - AzureDiskEncryptionExtensionType.AzureDiskEncryption.ToString(), - StringComparison.OrdinalIgnoreCase) && extension.TypeHandlerVersion != null) - { - if (Regex.IsMatch(extension.TypeHandlerVersion, "^(2.)")) - { - encryptionType = AzureDiskEncryptionType.OnePassEncrypted; - } - else if (Regex.IsMatch(extension.TypeHandlerVersion, "^(1.)")) - { - encryptionType = AzureDiskEncryptionType.TwoPassEncrypted; - } + DiskEncryptionKeyInfo = + new DiskEncryptionKeyInfo(diskEncryptionSecretUrl, diskEncryptionVaultId) + }; - break; - } - if (extension.Name != null && extension.Name.Equals( - AzureDiskEncryptionExtensionType.AzureDiskEncryptionForLinux.ToString(), - StringComparison.OrdinalIgnoreCase) && extension.TypeHandlerVersion != null) - { - if (Regex.IsMatch(extension.TypeHandlerVersion, "^(1.)")) - { - encryptionType = AzureDiskEncryptionType.OnePassEncrypted; - } - else if (Regex.IsMatch(extension.TypeHandlerVersion, "^(0.)")) - { - encryptionType = AzureDiskEncryptionType.TwoPassEncrypted; - } - break; - } + if (!string.IsNullOrEmpty(keyEncryptionKeyUrl) && + !string.IsNullOrEmpty(keyEncryptionVaultId)) + { + diskEncryptionInfo.KeyEncryptionKeyInfo = + new KeyEncryptionKeyInfo(keyEncryptionKeyUrl, keyEncryptionVaultId); + } + else if (!string.IsNullOrEmpty(keyEncryptionKeyUrl) || + !string.IsNullOrEmpty(keyEncryptionVaultId)) + { + throw new Exception("Provide both keyEncryptionKeyUrl and keyEncryptionVaultId."); } } - return encryptionType; + else if (!string.IsNullOrEmpty(diskEncryptionSecretUrl) || + !string.IsNullOrEmpty(diskEncryptionVaultId)) + { + throw new Exception("Provide both diskEncryptionSecretUrl and diskEncryptionVaultId."); + } + + return diskEncryptionInfo; } } From de37dc8f20692a295a5dadb275435b7cd1e3bc23 Mon Sep 17 00:00:00 2001 From: ayfathim Date: Wed, 16 Oct 2019 17:28:49 +0530 Subject: [PATCH 2/3] included 2.0.3 version of siteRecovery SDK --- .../RecoveryServices.SiteRecovery.Test.csproj | 2 +- .../RecoveryServices.SiteRecovery.csproj | 2 +- tools/Common.Netcore.Dependencies.targets | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/RecoveryServices/RecoveryServices.SiteRecovery.Test/RecoveryServices.SiteRecovery.Test.csproj b/src/RecoveryServices/RecoveryServices.SiteRecovery.Test/RecoveryServices.SiteRecovery.Test.csproj index 1fb681632c9c..870fce70422f 100644 --- a/src/RecoveryServices/RecoveryServices.SiteRecovery.Test/RecoveryServices.SiteRecovery.Test.csproj +++ b/src/RecoveryServices/RecoveryServices.SiteRecovery.Test/RecoveryServices.SiteRecovery.Test.csproj @@ -14,7 +14,7 @@ - + diff --git a/src/RecoveryServices/RecoveryServices.SiteRecovery/RecoveryServices.SiteRecovery.csproj b/src/RecoveryServices/RecoveryServices.SiteRecovery/RecoveryServices.SiteRecovery.csproj index 9a35ac284c57..009db74f7bc9 100644 --- a/src/RecoveryServices/RecoveryServices.SiteRecovery/RecoveryServices.SiteRecovery.csproj +++ b/src/RecoveryServices/RecoveryServices.SiteRecovery/RecoveryServices.SiteRecovery.csproj @@ -14,7 +14,7 @@ - + diff --git a/tools/Common.Netcore.Dependencies.targets b/tools/Common.Netcore.Dependencies.targets index c01e276fdccd..07e67b638cfe 100644 --- a/tools/Common.Netcore.Dependencies.targets +++ b/tools/Common.Netcore.Dependencies.targets @@ -1,7 +1,7 @@ - + From b4629630032b0438c83dc17d5024415ed1cd757c Mon Sep 17 00:00:00 2001 From: ayfathim Date: Wed, 16 Oct 2019 21:41:02 +0530 Subject: [PATCH 3/3] updating help file --- ...cesAsrAzureToAzureDiskReplicationConfig.md | 67 ++++++++++++++++++- 1 file changed, 64 insertions(+), 3 deletions(-) diff --git a/src/RecoveryServices/RecoveryServices/help/New-AzRecoveryServicesAsrAzureToAzureDiskReplicationConfig.md b/src/RecoveryServices/RecoveryServices/help/New-AzRecoveryServicesAsrAzureToAzureDiskReplicationConfig.md index 1617423862dd..909ba969c4f6 100644 --- a/src/RecoveryServices/RecoveryServices/help/New-AzRecoveryServicesAsrAzureToAzureDiskReplicationConfig.md +++ b/src/RecoveryServices/RecoveryServices/help/New-AzRecoveryServicesAsrAzureToAzureDiskReplicationConfig.md @@ -23,8 +23,9 @@ New-AzRecoveryServicesAsrAzureToAzureDiskReplicationConfig -VhdUri -Log ``` New-AzRecoveryServicesAsrAzureToAzureDiskReplicationConfig [-ManagedDisk] -LogStorageAccountId -DiskId -RecoveryResourceGroupId -RecoveryReplicaDiskAccountType - -RecoveryTargetDiskAccountType [-DefaultProfile ] [-WhatIf] [-Confirm] - [] + -RecoveryTargetDiskAccountType [-DiskEncryptionVaultId ] [-DiskEncryptionSecretUrl ] + [-KeyEncryptionKeyUrl ] [-KeyEncryptionVaultId ] [-DefaultProfile ] + [-WhatIf] [-Confirm] [] ``` ## DESCRIPTION @@ -64,6 +65,36 @@ Accept pipeline input: False Accept wildcard characters: False ``` +### -DiskEncryptionSecretUrl +{{ Fill DiskEncryptionSecretUrl Description }} + +```yaml +Type: System.String +Parameter Sets: AzureToAzureManagedDisk +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -DiskEncryptionVaultId +{{ Fill DiskEncryptionVaultId Description }} + +```yaml +Type: System.String +Parameter Sets: AzureToAzureManagedDisk +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + ### -DiskId Specifies the disk id of managed disk. @@ -79,6 +110,36 @@ Accept pipeline input: False Accept wildcard characters: False ``` +### -KeyEncryptionKeyUrl +{{ Fill KeyEncryptionKeyUrl Description }} + +```yaml +Type: System.String +Parameter Sets: AzureToAzureManagedDisk +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -KeyEncryptionVaultId +{{ Fill KeyEncryptionVaultId Description }} + +```yaml +Type: System.String +Parameter Sets: AzureToAzureManagedDisk +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + ### -LogStorageAccountId Specifies the log or cache storage account Id to be used to store replication logs. @@ -218,7 +279,7 @@ Accept wildcard characters: False ``` ### CommonParameters -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). +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). ## INPUTS