diff --git a/src/Network/Network/ChangeLog.md b/src/Network/Network/ChangeLog.md
index a8a0bfe764a9..9a63811f9026 100644
--- a/src/Network/Network/ChangeLog.md
+++ b/src/Network/Network/ChangeLog.md
@@ -29,6 +29,9 @@
* Added support for `DefaultOutboundAccess` property in `Set-AzVirtualNetworkSubnetConfig` command
* Added support for `EnabledFilteringCriteria` property in `New-AzNetworkWatcherFlowLog` and `Set-AzNetworkWatcherFlowLog` commands
* Added support of `UserAssignedIdentityId` Property in `New-AzNetworkWatcherFlowLog` and `Set-AzNetworkWatcherFlowLog` commands
+* Added support of `DestinationIPAddress` property in `New-AzPrivateLinkService` command
+ - `LoadBalancerFrontendIpConfiguration` is not a mandatory parameter anymore.
+ - The user can provide either `LoadBalancerFrontendIpConfiguration` or `DestinationIPAddress`.
## Version 7.8.0
* Added new cmdlets to support Save & Commit (AzureFirewallPolicy draft)
diff --git a/src/Network/Network/Models/PSPrivateLinkService.cs b/src/Network/Network/Models/PSPrivateLinkService.cs
index a96ae26cac20..2f4a5040ecb7 100644
--- a/src/Network/Network/Models/PSPrivateLinkService.cs
+++ b/src/Network/Network/Models/PSPrivateLinkService.cs
@@ -39,6 +39,8 @@ public partial class PSPrivateLinkService : PSTopLevelResource
public PSExtendedLocation ExtendedLocation { get; set; }
+ public string DestinationIPAddress { get; set; }
+
[JsonIgnore]
public string LoadBalancerFrontendIpConfigurationsText
{
diff --git a/src/Network/Network/Network.format.ps1xml b/src/Network/Network/Network.format.ps1xml
index 275632816692..3b1298d2c2d3 100644
--- a/src/Network/Network/Network.format.ps1xml
+++ b/src/Network/Network/Network.format.ps1xml
@@ -5664,6 +5664,10 @@
ExtendedLocationText
+
+
+ DestinationIPAddress
+
diff --git a/src/Network/Network/PrivateLinkService/NewAzurePrivateLinkServiceCommand.cs b/src/Network/Network/PrivateLinkService/NewAzurePrivateLinkServiceCommand.cs
index 5b6bc06fc712..9a22f040347e 100644
--- a/src/Network/Network/PrivateLinkService/NewAzurePrivateLinkServiceCommand.cs
+++ b/src/Network/Network/PrivateLinkService/NewAzurePrivateLinkServiceCommand.cs
@@ -53,16 +53,16 @@ public class NewAzurePrivateLinkService : PrivateLinkServiceBaseCmdlet
[Parameter(
Mandatory = true,
ValueFromPipelineByPropertyName = true,
- HelpMessage = "The front end ip configuration")]
+ HelpMessage = "The ip configuration")]
[ValidateNotNullOrEmpty]
- public PSFrontendIPConfiguration[] LoadBalancerFrontendIpConfiguration { get; set; }
+ public PSPrivateLinkServiceIpConfiguration[] IpConfiguration { get; set; }
[Parameter(
- Mandatory = true,
+ Mandatory = false,
ValueFromPipelineByPropertyName = true,
- HelpMessage = "The ip configuration")]
+ HelpMessage = "The front end ip configuration")]
[ValidateNotNullOrEmpty]
- public PSPrivateLinkServiceIpConfiguration[] IpConfiguration { get; set; }
+ public PSFrontendIPConfiguration[] LoadBalancerFrontendIpConfiguration { get; set; }
[Parameter(
Mandatory = false,
@@ -104,6 +104,12 @@ public class NewAzurePrivateLinkService : PrivateLinkServiceBaseCmdlet
HelpMessage = "Run cmdlet in the background")]
public SwitchParameter AsJob { get; set; }
+ [Parameter(
+ Mandatory = false,
+ ValueFromPipelineByPropertyName = true,
+ HelpMessage = "The destination IP address")]
+ public string DestinationIPAddress { get; set; }
+
private PSPrivateLinkService CreatePSPrivateLinkService()
{
var psPrivateLinkService = new PSPrivateLinkService
@@ -135,6 +141,8 @@ private PSPrivateLinkService CreatePSPrivateLinkService()
psPrivateLinkService.ExtendedLocation = new PSExtendedLocation(this.EdgeZone);
}
+ psPrivateLinkService.DestinationIPAddress = this.DestinationIPAddress;
+
var plsModel = NetworkResourceManagerProfile.Mapper.Map(psPrivateLinkService);
plsModel.Tags = TagsConversionHelper.CreateTagDictionary(Tag, validate: true);
diff --git a/src/Network/Network/help/New-AzPrivateLinkService.md b/src/Network/Network/help/New-AzPrivateLinkService.md
index 229dfe26d3b2..33c9842e7494 100644
--- a/src/Network/Network/help/New-AzPrivateLinkService.md
+++ b/src/Network/Network/help/New-AzPrivateLinkService.md
@@ -14,10 +14,10 @@ Creates a private link service
```
New-AzPrivateLinkService -Name -ResourceGroupName -Location
- -LoadBalancerFrontendIpConfiguration
- -IpConfiguration [-Visibility ] [-AutoApproval ]
- [-EnableProxyProtocol] [-EdgeZone ] [-Tag ] [-Force] [-AsJob]
- [-DefaultProfile ] [-WhatIf] [-Confirm] []
+ -IpConfiguration [-Visibility ] [-AutoApproval ]
+ [-DestinationIPAddress ] [-EnableProxyProtocol] [-EdgeZone ] [-Tag ] [-Force] [-AsJob]
+ [-DefaultProfile ] [-LoadBalancerFrontendIpConfiguration ]
+ [-WhatIf] [-Confirm] []
```
## DESCRIPTION
@@ -27,7 +27,7 @@ The **New-AzPrivateLinkService** cmdlet creates a private link service
### Example 1
-The following example creates a private link service.
+The following example creates a private link service with a load balancer.
```powershell
$vnet = Get-AzVirtualNetwork -ResourceName 'myvnet' -ResourceGroupName 'myresourcegroup'
@@ -40,6 +40,21 @@ $lb = New-AzLoadBalancer -Name 'MyLoadBalancer' -ResourceGroupName 'myresourcegr
New-AzPrivateLinkService -Name 'mypls' -ResourceGroupName myresourcegroup -Location "West US" -LoadBalancerFrontendIpConfiguration $frontend -IpConfiguration $IPConfig
```
+### Example 2
+
+The following example creates a private link service with destinationIPAddress.
+
+```powershell
+$vnet = Get-AzVirtualNetwork -ResourceName 'myvnet' -ResourceGroupName 'myresourcegroup'
+# View the results of $vnet and change 'mysubnet' in the following line to the appropriate subnet name.
+$subnet = $vnet | Select-Object -ExpandProperty subnets | Where-Object Name -eq 'mysubnet'
+$IPConfig1 = New-AzPrivateLinkServiceIpConfig -Name 'IP-Config1' -Subnet $subnet -PrivateIpAddress '10.0.0.5' -Primary
+$IPConfig2 = New-AzPrivateLinkServiceIpConfig -Name 'IP-Config2' -Subnet $subnet -PrivateIpAddress '10.0.0.6'
+$IPConfig3 = New-AzPrivateLinkServiceIpConfig -Name 'IP-Config3' -Subnet $subnet -PrivateIpAddress '10.0.0.7'
+$IPConfigs = @($IPConfig1, $IPConfig2, $IPConfig3)
+New-AzPrivateLinkService -Name 'mypls' -ResourceGroupName myresourcegroup -Location "West US" -IpConfiguration $IPConfigs -DestinationIPAddress '192.168.0.5'
+```
+
## PARAMETERS
### -AsJob
@@ -87,6 +102,21 @@ Accept pipeline input: False
Accept wildcard characters: False
```
+### -DestinationIPAddress
+The destination IP address of the private link service.
+
+```yaml
+Type: System.String
+Parameter Sets: (All)
+Aliases:
+
+Required: False
+Position: Named
+Default value: None
+Accept pipeline input: True (ByPropertyName)
+Accept wildcard characters: False
+```
+
### -EdgeZone
The edge zone of the private link service
@@ -155,7 +185,7 @@ Type: Microsoft.Azure.Commands.Network.Models.PSFrontendIPConfiguration[]
Parameter Sets: (All)
Aliases:
-Required: True
+Required: False
Position: Named
Default value: None
Accept pipeline input: True (ByPropertyName)