diff --git a/src/Accounts/Accounts/Accounts.csproj b/src/Accounts/Accounts/Accounts.csproj
index 7025778844a6..706cd7449b8d 100644
--- a/src/Accounts/Accounts/Accounts.csproj
+++ b/src/Accounts/Accounts/Accounts.csproj
@@ -53,5 +53,9 @@
+
+
+
+
diff --git a/src/Accounts/Authentication.ResourceManager/Authentication.ResourceManager.csproj b/src/Accounts/Authentication.ResourceManager/Authentication.ResourceManager.csproj
index ac31e0b77f34..bee171e2a1ce 100644
--- a/src/Accounts/Authentication.ResourceManager/Authentication.ResourceManager.csproj
+++ b/src/Accounts/Authentication.ResourceManager/Authentication.ResourceManager.csproj
@@ -15,4 +15,8 @@
+
+
+
+
\ No newline at end of file
diff --git a/src/Accounts/Authentication/Authentication.csproj b/src/Accounts/Authentication/Authentication.csproj
index 2edd06b27e95..45a937785642 100644
--- a/src/Accounts/Authentication/Authentication.csproj
+++ b/src/Accounts/Authentication/Authentication.csproj
@@ -15,4 +15,8 @@
+
+
+
+
\ No newline at end of file
diff --git a/src/Compute/Compute/Compute.csproj b/src/Compute/Compute/Compute.csproj
index 0aa4e6c19a3e..547643020985 100644
--- a/src/Compute/Compute/Compute.csproj
+++ b/src/Compute/Compute/Compute.csproj
@@ -30,4 +30,8 @@
+
+
+
+
\ No newline at end of file
diff --git a/src/Network/Network/Network.csproj b/src/Network/Network/Network.csproj
index c6c52aaa649b..ace5f473a56d 100644
--- a/src/Network/Network/Network.csproj
+++ b/src/Network/Network/Network.csproj
@@ -19,4 +19,8 @@
+
+
+
+
diff --git a/src/RecoveryServices/RecoveryServices.Backup.Helpers/RecoveryServices.Backup.Helpers.csproj b/src/RecoveryServices/RecoveryServices.Backup.Helpers/RecoveryServices.Backup.Helpers.csproj
index 7c9af8e584bd..b109bf39793a 100644
--- a/src/RecoveryServices/RecoveryServices.Backup.Helpers/RecoveryServices.Backup.Helpers.csproj
+++ b/src/RecoveryServices/RecoveryServices.Backup.Helpers/RecoveryServices.Backup.Helpers.csproj
@@ -21,4 +21,8 @@
+
+
+
+
\ No newline at end of file
diff --git a/src/RecoveryServices/RecoveryServices.Backup.Logger/RecoveryServices.Backup.Logger.csproj b/src/RecoveryServices/RecoveryServices.Backup.Logger/RecoveryServices.Backup.Logger.csproj
index 4cc1c2f0716c..3156b1ac2e50 100644
--- a/src/RecoveryServices/RecoveryServices.Backup.Logger/RecoveryServices.Backup.Logger.csproj
+++ b/src/RecoveryServices/RecoveryServices.Backup.Logger/RecoveryServices.Backup.Logger.csproj
@@ -11,4 +11,8 @@
$(LegacyAssemblyPrefix)$(PsModuleName).Backup
+
+
+
+
\ No newline at end of file
diff --git a/src/RecoveryServices/RecoveryServices.Backup.Models/RecoveryServices.Backup.Models.csproj b/src/RecoveryServices/RecoveryServices.Backup.Models/RecoveryServices.Backup.Models.csproj
index 3d59d79e937d..211e0f189ecb 100644
--- a/src/RecoveryServices/RecoveryServices.Backup.Models/RecoveryServices.Backup.Models.csproj
+++ b/src/RecoveryServices/RecoveryServices.Backup.Models/RecoveryServices.Backup.Models.csproj
@@ -15,4 +15,8 @@
+
+
+
+
\ No newline at end of file
diff --git a/src/RecoveryServices/RecoveryServices.Backup.Providers/RecoveryServices.Backup.Providers.csproj b/src/RecoveryServices/RecoveryServices.Backup.Providers/RecoveryServices.Backup.Providers.csproj
index c72d127d6325..20ec29002209 100644
--- a/src/RecoveryServices/RecoveryServices.Backup.Providers/RecoveryServices.Backup.Providers.csproj
+++ b/src/RecoveryServices/RecoveryServices.Backup.Providers/RecoveryServices.Backup.Providers.csproj
@@ -19,4 +19,8 @@
+
+
+
+
\ No newline at end of file
diff --git a/src/RecoveryServices/RecoveryServices.Backup.ServiceClientAdapter/RecoveryServices.Backup.ServiceClientAdapter.csproj b/src/RecoveryServices/RecoveryServices.Backup.ServiceClientAdapter/RecoveryServices.Backup.ServiceClientAdapter.csproj
index 9554e6e7b99d..f522c98347c6 100644
--- a/src/RecoveryServices/RecoveryServices.Backup.ServiceClientAdapter/RecoveryServices.Backup.ServiceClientAdapter.csproj
+++ b/src/RecoveryServices/RecoveryServices.Backup.ServiceClientAdapter/RecoveryServices.Backup.ServiceClientAdapter.csproj
@@ -22,4 +22,8 @@
+
+
+
+
\ No newline at end of file
diff --git a/src/RecoveryServices/RecoveryServices.Backup.Test/RecoveryServices.Backup.Test.csproj b/src/RecoveryServices/RecoveryServices.Backup.Test/RecoveryServices.Backup.Test.csproj
index 37bde03a6bef..c167a1f87e89 100644
--- a/src/RecoveryServices/RecoveryServices.Backup.Test/RecoveryServices.Backup.Test.csproj
+++ b/src/RecoveryServices/RecoveryServices.Backup.Test/RecoveryServices.Backup.Test.csproj
@@ -25,4 +25,8 @@
+
+
+
+
\ No newline at end of file
diff --git a/src/RecoveryServices/RecoveryServices.Backup/RecoveryServices.Backup.csproj b/src/RecoveryServices/RecoveryServices.Backup/RecoveryServices.Backup.csproj
index ee282160da70..fa4bdd9e4aa9 100644
--- a/src/RecoveryServices/RecoveryServices.Backup/RecoveryServices.Backup.csproj
+++ b/src/RecoveryServices/RecoveryServices.Backup/RecoveryServices.Backup.csproj
@@ -23,4 +23,8 @@
+
+
+
+
\ No newline at end of file
diff --git a/src/RecoveryServices/RecoveryServices.SiteRecovery.Test/RecoveryServices.SiteRecovery.Test.csproj b/src/RecoveryServices/RecoveryServices.SiteRecovery.Test/RecoveryServices.SiteRecovery.Test.csproj
index 1fb681632c9c..9402ecbf9abe 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 @@
-
+
@@ -27,4 +27,8 @@
+
+
+
+
\ No newline at end of file
diff --git a/src/RecoveryServices/RecoveryServices.SiteRecovery/Models/PSObjects.cs b/src/RecoveryServices/RecoveryServices.SiteRecovery/Models/PSObjects.cs
index 1beb06422069..0885aad604d3 100644
--- a/src/RecoveryServices/RecoveryServices.SiteRecovery/Models/PSObjects.cs
+++ b/src/RecoveryServices/RecoveryServices.SiteRecovery/Models/PSObjects.cs
@@ -943,6 +943,10 @@ public ASRVMNicDetails(
this.PrimaryNicStaticIPAddress = vMNicDetails.PrimaryNicStaticIPAddress;
this.RecoveryNicIpAddressType = vMNicDetails.RecoveryNicIpAddressType;
this.EnableAcceleratedNetworkingOnRecovery = vMNicDetails.EnableAcceleratedNetworkingOnRecovery;
+ this.RecoveryPublicIPAddressId = vMNicDetails.RecoveryPublicIpAddressId;
+ this.RecoveryNetworkSecurityGroupId = vMNicDetails.RecoveryNetworkSecurityGroupId;
+ this.RecoveryLBBackendAddressPoolIds =
+ vMNicDetails.RecoveryLBBackendAddressPoolIds?.ToList() ?? new List();
}
//
@@ -1009,6 +1013,21 @@ public ASRVMNicDetails(
/// Gets or sets VM subnet name.
///
public string VMSubnetName { get; set; }
+
+ ///
+ /// Gets or sets the id of the public IP address resource associated with the NIC.
+ ///
+ public string RecoveryPublicIPAddressId { get; set; }
+
+ ///
+ /// Gets or sets the id of the NSG associated with the NIC.
+ ///
+ public string RecoveryNetworkSecurityGroupId { get; set; }
+
+ ///
+ /// Gets or sets the target backend address pools for the NIC.
+ ///
+ public List RecoveryLBBackendAddressPoolIds { get; set; }
}
///
diff --git a/src/RecoveryServices/RecoveryServices.SiteRecovery/RecoveryServices.SiteRecovery.csproj b/src/RecoveryServices/RecoveryServices.SiteRecovery/RecoveryServices.SiteRecovery.csproj
index 9a35ac284c57..a6fbe7e1ea66 100644
--- a/src/RecoveryServices/RecoveryServices.SiteRecovery/RecoveryServices.SiteRecovery.csproj
+++ b/src/RecoveryServices/RecoveryServices.SiteRecovery/RecoveryServices.SiteRecovery.csproj
@@ -14,7 +14,7 @@
-
+
@@ -36,4 +36,8 @@
+
+
+
+
diff --git a/src/RecoveryServices/RecoveryServices.SiteRecovery/ReplicationProtectedItem/SetAzureRmRecoveryServicesAsrReplicationProtectedItem.cs b/src/RecoveryServices/RecoveryServices.SiteRecovery/ReplicationProtectedItem/SetAzureRmRecoveryServicesAsrReplicationProtectedItem.cs
index 45f7dc3a95e8..8be552f6e3f6 100644
--- a/src/RecoveryServices/RecoveryServices.SiteRecovery/ReplicationProtectedItem/SetAzureRmRecoveryServicesAsrReplicationProtectedItem.cs
+++ b/src/RecoveryServices/RecoveryServices.SiteRecovery/ReplicationProtectedItem/SetAzureRmRecoveryServicesAsrReplicationProtectedItem.cs
@@ -189,6 +189,26 @@ public class SetAzureRmRecoveryServicesAsrReplicationProtectedItem : SiteRecover
Constants.False)]
public string UseManagedDisk { get; set; }
+ ///
+ /// Gets or sets the id of the public IP address resource associated with the NIC.
+ ///
+ [Parameter]
+ [ValidateNotNullOrEmpty]
+ public string RecoveryPublicIPAddressId { get; set; }
+
+ ///
+ /// Gets or sets the id of the NSG associated with the NIC.
+ ///
+ [Parameter]
+ [ValidateNotNullOrEmpty]
+ public string RecoveryNetworkSecurityGroupId { get; set; }
+
+ ///
+ /// Gets or sets the target backend address pools for the NIC.
+ ///
+ [Parameter]
+ public List RecoveryLBBackendAddressPoolIds { get; set; }
+
///
/// ProcessRecord of the command.
///
@@ -248,6 +268,17 @@ public override void ExecuteSiteRecoveryCmdlet()
return;
}
+ // NSG, LB and PIP only for A2A provider.
+ if ((!string.IsNullOrEmpty(RecoveryNetworkSecurityGroupId) ||
+ !string.IsNullOrEmpty(RecoveryPublicIPAddressId) ||
+ RecoveryLBBackendAddressPoolIds != null &&
+ RecoveryLBBackendAddressPoolIds.Count > 0) &&
+ !(provider is A2AReplicationDetails))
+ {
+ throw new Exception("Setting RecoveryPublicIPAddressId, " +
+ "RecoveryNetworkSecurityGroupId and RecoveryLBBackendAddressPoolIds " +
+ "inputs not allowed for providers other than A2A.");
+ }
var vmName = this.Name;
var vmSize = this.Size;
@@ -545,6 +576,12 @@ private List getNicListToUpdate(IList vmNicList
vMNicInputDetails.SelectionType =
string.IsNullOrEmpty(this.NicSelectionType)
? Constants.SelectedByUser : this.NicSelectionType;
+ vMNicInputDetails.RecoveryLBBackendAddressPoolIds =
+ this.RecoveryLBBackendAddressPoolIds;
+ vMNicInputDetails.RecoveryPublicIpAddressId =
+ this.RecoveryPublicIPAddressId;
+ vMNicInputDetails.RecoveryNetworkSecurityGroupId =
+ this.RecoveryNetworkSecurityGroupId;
vMNicInputDetailsList.Add(vMNicInputDetails);
// NicId matched for update
nicFoundToBeUpdated = true;
@@ -568,6 +605,12 @@ private List getNicListToUpdate(IList vmNicList
vMNicInputDetails.SelectionType = nDetails.SelectionType;
vMNicInputDetailsList.Add(vMNicInputDetails);
vMNicInputDetails.EnableAcceleratedNetworkingOnRecovery = nDetails.EnableAcceleratedNetworkingOnRecovery;
+ vMNicInputDetails.RecoveryLBBackendAddressPoolIds =
+ nDetails.RecoveryLBBackendAddressPoolIds;
+ vMNicInputDetails.RecoveryPublicIpAddressId =
+ nDetails.RecoveryPublicIpAddressId;
+ vMNicInputDetails.RecoveryNetworkSecurityGroupId =
+ nDetails.RecoveryNetworkSecurityGroupId;
}
}
}
diff --git a/src/RecoveryServices/RecoveryServices.Test/RecoveryServices.Test.csproj b/src/RecoveryServices/RecoveryServices.Test/RecoveryServices.Test.csproj
index 52a591916a30..f0ab0cd7a474 100644
--- a/src/RecoveryServices/RecoveryServices.Test/RecoveryServices.Test.csproj
+++ b/src/RecoveryServices/RecoveryServices.Test/RecoveryServices.Test.csproj
@@ -14,4 +14,8 @@
+
+
+
+
diff --git a/src/RecoveryServices/RecoveryServices/RecoveryServices.csproj b/src/RecoveryServices/RecoveryServices/RecoveryServices.csproj
index c5fac232d26c..2fc8ddf424c8 100644
--- a/src/RecoveryServices/RecoveryServices/RecoveryServices.csproj
+++ b/src/RecoveryServices/RecoveryServices/RecoveryServices.csproj
@@ -34,4 +34,8 @@
+
+
+
+
\ No newline at end of file
diff --git a/src/RecoveryServices/RecoveryServices/help/Set-AzRecoveryServicesAsrReplicationProtectedItem.md b/src/RecoveryServices/RecoveryServices/help/Set-AzRecoveryServicesAsrReplicationProtectedItem.md
index cef7c078d809..1911bbf73df2 100644
--- a/src/RecoveryServices/RecoveryServices/help/Set-AzRecoveryServicesAsrReplicationProtectedItem.md
+++ b/src/RecoveryServices/RecoveryServices/help/Set-AzRecoveryServicesAsrReplicationProtectedItem.md
@@ -414,6 +414,47 @@ Default value: None
Accept pipeline input: False
Accept wildcard characters: False
```
+### -RecoveryPublicIPAddressId
+Specifies the ID of the public IP address resource to be associated with the recovery NIC.
+
+```yaml
+Type: System.String
+Parameter Sets: (All)
+Aliases:
+
+Required: False
+Position: Named
+Default value: None
+Accept pipeline input: False
+Accept wildcard characters: False
+
+### -RecoveryNetworkSecurityGroupId
+Specifies the ID of the network security group to be associated with the recovery NIC.
+
+```yaml
+Type: System.String
+Parameter Sets: (All)
+Aliases:
+
+Required: False
+Position: Named
+Default value: None
+Accept pipeline input: False
+Accept wildcard characters: False
+
+### -RecoveryLBBackendAddressPoolIds
+Specifies the target backend address pools to be associated with the recovery NIC.
+
+```yaml
+Type: System.Collections.Generic.List`1[String]
+Parameter Sets: (All)
+Aliases:
+
+Required: False
+Position: Named
+Default value: None
+Accept pipeline input: False
+Accept wildcard characters: False
### -Confirm
Prompts you for confirmation before running the cmdlet.
diff --git a/tools/LocalFeed/Microsoft.Azure.Management.RecoveryServices.SiteRecovery.2.0.2-preview.nupkg b/tools/LocalFeed/Microsoft.Azure.Management.RecoveryServices.SiteRecovery.2.0.2-preview.nupkg
new file mode 100644
index 000000000000..dedcd5f10873
Binary files /dev/null and b/tools/LocalFeed/Microsoft.Azure.Management.RecoveryServices.SiteRecovery.2.0.2-preview.nupkg differ
diff --git a/tools/ScenarioTest.ResourceManager/ScenarioTest.ResourceManager.csproj b/tools/ScenarioTest.ResourceManager/ScenarioTest.ResourceManager.csproj
index 2fcf2a0f5418..56ff579833dd 100644
--- a/tools/ScenarioTest.ResourceManager/ScenarioTest.ResourceManager.csproj
+++ b/tools/ScenarioTest.ResourceManager/ScenarioTest.ResourceManager.csproj
@@ -39,4 +39,8 @@
+
+
+
+
\ No newline at end of file
diff --git a/tools/TestFx/TestFx.csproj b/tools/TestFx/TestFx.csproj
index 779e9de99476..6953c5aed34a 100644
--- a/tools/TestFx/TestFx.csproj
+++ b/tools/TestFx/TestFx.csproj
@@ -17,4 +17,8 @@
+
+
+
+