Microsoft.Network privateLinkServices template reference

Template format

To create a Microsoft.Network/privateLinkServices resource, add the following JSON to the resources section of your template.

{
  "name": "string",
  "type": "Microsoft.Network/privateLinkServices",
  "apiVersion": "2019-09-01",
  "location": "string",
  "tags": {},
  "properties": {
    "loadBalancerFrontendIpConfigurations": [
      {
        "id": "string",
        "properties": {
          "privateIPAddress": "string",
          "privateIPAllocationMethod": "string",
          "privateIPAddressVersion": "string",
          "subnet": {
            "id": "string",
            "properties": {
              "addressPrefix": "string",
              "addressPrefixes": [
                "string"
              ],
              "networkSecurityGroup": {
                "id": "string",
                "location": "string",
                "tags": {},
                "properties": {
                  "securityRules": [
                    {
                      "id": "string",
                      "properties": {
                        "description": "string",
                        "protocol": "string",
                        "sourcePortRange": "string",
                        "destinationPortRange": "string",
                        "sourceAddressPrefix": "string",
                        "sourceAddressPrefixes": [
                          "string"
                        ],
                        "sourceApplicationSecurityGroups": [
                          {
                            "id": "string",
                            "location": "string",
                            "tags": {},
                            "properties": {}
                          }
                        ],
                        "destinationAddressPrefix": "string",
                        "destinationAddressPrefixes": [
                          "string"
                        ],
                        "destinationApplicationSecurityGroups": [
                          {
                            "id": "string",
                            "location": "string",
                            "tags": {},
                            "properties": {}
                          }
                        ],
                        "sourcePortRanges": [
                          "string"
                        ],
                        "destinationPortRanges": [
                          "string"
                        ],
                        "access": "string",
                        "priority": "integer",
                        "direction": "string"
                      },
                      "name": "string"
                    }
                  ]
                }
              },
              "routeTable": {
                "id": "string",
                "location": "string",
                "tags": {},
                "properties": {
                  "routes": [
                    {
                      "id": "string",
                      "properties": {
                        "addressPrefix": "string",
                        "nextHopType": "string",
                        "nextHopIpAddress": "string"
                      },
                      "name": "string"
                    }
                  ],
                  "disableBgpRoutePropagation": "boolean"
                }
              },
              "natGateway": {
                "id": "string"
              },
              "serviceEndpoints": [
                {
                  "service": "string",
                  "locations": [
                    "string"
                  ]
                }
              ],
              "serviceEndpointPolicies": [
                {
                  "id": "string",
                  "location": "string",
                  "tags": {},
                  "properties": {
                    "serviceEndpointPolicyDefinitions": [
                      {
                        "id": "string",
                        "properties": {
                          "description": "string",
                          "service": "string",
                          "serviceResources": [
                            "string"
                          ]
                        },
                        "name": "string"
                      }
                    ]
                  }
                }
              ],
              "delegations": [
                {
                  "id": "string",
                  "properties": {
                    "serviceName": "string"
                  },
                  "name": "string"
                }
              ],
              "privateEndpointNetworkPolicies": "string",
              "privateLinkServiceNetworkPolicies": "string"
            },
            "name": "string"
          },
          "publicIPAddress": {
            "id": "string",
            "location": "string",
            "tags": {},
            "sku": {
              "name": "string"
            },
            "properties": {
              "publicIPAllocationMethod": "string",
              "publicIPAddressVersion": "string",
              "dnsSettings": {
                "domainNameLabel": "string",
                "fqdn": "string",
                "reverseFqdn": "string"
              },
              "ddosSettings": {
                "ddosCustomPolicy": {
                  "id": "string"
                },
                "protectionCoverage": "string"
              },
              "ipTags": [
                {
                  "ipTagType": "string",
                  "tag": "string"
                }
              ],
              "ipAddress": "string",
              "publicIPPrefix": {
                "id": "string"
              },
              "idleTimeoutInMinutes": "integer"
            },
            "zones": [
              "string"
            ]
          },
          "publicIPPrefix": {
            "id": "string"
          }
        },
        "name": "string",
        "zones": [
          "string"
        ]
      }
    ],
    "ipConfigurations": [
      {
        "id": "string",
        "properties": {
          "privateIPAddress": "string",
          "privateIPAllocationMethod": "string",
          "subnet": {
            "id": "string",
            "properties": {
              "addressPrefix": "string",
              "addressPrefixes": [
                "string"
              ],
              "networkSecurityGroup": {
                "id": "string",
                "location": "string",
                "tags": {},
                "properties": {
                  "securityRules": [
                    {
                      "id": "string",
                      "properties": {
                        "description": "string",
                        "protocol": "string",
                        "sourcePortRange": "string",
                        "destinationPortRange": "string",
                        "sourceAddressPrefix": "string",
                        "sourceAddressPrefixes": [
                          "string"
                        ],
                        "sourceApplicationSecurityGroups": [
                          {
                            "id": "string",
                            "location": "string",
                            "tags": {},
                            "properties": {}
                          }
                        ],
                        "destinationAddressPrefix": "string",
                        "destinationAddressPrefixes": [
                          "string"
                        ],
                        "destinationApplicationSecurityGroups": [
                          {
                            "id": "string",
                            "location": "string",
                            "tags": {},
                            "properties": {}
                          }
                        ],
                        "sourcePortRanges": [
                          "string"
                        ],
                        "destinationPortRanges": [
                          "string"
                        ],
                        "access": "string",
                        "priority": "integer",
                        "direction": "string"
                      },
                      "name": "string"
                    }
                  ]
                }
              },
              "routeTable": {
                "id": "string",
                "location": "string",
                "tags": {},
                "properties": {
                  "routes": [
                    {
                      "id": "string",
                      "properties": {
                        "addressPrefix": "string",
                        "nextHopType": "string",
                        "nextHopIpAddress": "string"
                      },
                      "name": "string"
                    }
                  ],
                  "disableBgpRoutePropagation": "boolean"
                }
              },
              "natGateway": {
                "id": "string"
              },
              "serviceEndpoints": [
                {
                  "service": "string",
                  "locations": [
                    "string"
                  ]
                }
              ],
              "serviceEndpointPolicies": [
                {
                  "id": "string",
                  "location": "string",
                  "tags": {},
                  "properties": {
                    "serviceEndpointPolicyDefinitions": [
                      {
                        "id": "string",
                        "properties": {
                          "description": "string",
                          "service": "string",
                          "serviceResources": [
                            "string"
                          ]
                        },
                        "name": "string"
                      }
                    ]
                  }
                }
              ],
              "delegations": [
                {
                  "id": "string",
                  "properties": {
                    "serviceName": "string"
                  },
                  "name": "string"
                }
              ],
              "privateEndpointNetworkPolicies": "string",
              "privateLinkServiceNetworkPolicies": "string"
            },
            "name": "string"
          },
          "primary": "boolean",
          "privateIPAddressVersion": "string"
        },
        "name": "string"
      }
    ],
    "visibility": {
      "subscriptions": [
        "string"
      ]
    },
    "autoApproval": {
      "subscriptions": [
        "string"
      ]
    },
    "fqdns": [
      "string"
    ],
    "enableProxyProtocol": "boolean"
  },
  "resources": []
}

Property values

The following tables describe the values you need to set in the schema.

Microsoft.Network/privateLinkServices object

Name Type Required Value
name string Yes The name of the private link service.
type enum Yes Microsoft.Network/privateLinkServices
apiVersion enum Yes 2019-09-01
location string Yes Resource location.
tags object No Resource tags.
properties object Yes Properties of the private link service. - PrivateLinkServiceProperties object
resources array No privateEndpointConnections

PrivateLinkServiceProperties object

Name Type Required Value
loadBalancerFrontendIpConfigurations array No An array of references to the load balancer IP configurations. - FrontendIPConfiguration object
ipConfigurations array No An array of private link service IP configurations. - PrivateLinkServiceIpConfiguration object
visibility object No The visibility list of the private link service. - PrivateLinkServicePropertiesVisibility object
autoApproval object No The auto-approval list of the private link service. - PrivateLinkServicePropertiesAutoApproval object
fqdns array No The list of Fqdn. - string
enableProxyProtocol boolean No Whether the private link service is enabled for proxy protocol or not.

FrontendIPConfiguration object

Name Type Required Value
id string No Resource ID.
properties object No Properties of the load balancer probe. - FrontendIPConfigurationPropertiesFormat object
name string No The name of the resource that is unique within the set of frontend IP configurations used by the load balancer. This name can be used to access the resource.
zones array No A list of availability zones denoting the IP allocated for the resource needs to come from. - string

PrivateLinkServiceIpConfiguration object

Name Type Required Value
id string No Resource ID.
properties object No Properties of the private link service ip configuration. - PrivateLinkServiceIpConfigurationProperties object
name string No The name of private link service ip configuration.

PrivateLinkServicePropertiesVisibility object

Name Type Required Value
subscriptions array No The list of subscriptions. - string

PrivateLinkServicePropertiesAutoApproval object

Name Type Required Value
subscriptions array No The list of subscriptions. - string

FrontendIPConfigurationPropertiesFormat object

Name Type Required Value
privateIPAddress string No The private IP address of the IP configuration.
privateIPAllocationMethod enum No The Private IP allocation method. - Static or Dynamic
privateIPAddressVersion enum No Whether the specific ipconfiguration is IPv4 or IPv6. Default is taken as IPv4. - IPv4 or IPv6
subnet object No The reference of the subnet resource. - Subnet object
publicIPAddress object No The reference of the Public IP resource. - PublicIPAddress object
publicIPPrefix object No The reference of the Public IP Prefix resource. - SubResource object

PrivateLinkServiceIpConfigurationProperties object

Name Type Required Value
privateIPAddress string No The private IP address of the IP configuration.
privateIPAllocationMethod enum No The private IP address allocation method. - Static or Dynamic
subnet object No The reference to the subnet resource. - Subnet object
primary boolean No Whether the ip configuration is primary or not.
privateIPAddressVersion enum No Whether the specific IP configuration is IPv4 or IPv6. Default is IPv4. - IPv4 or IPv6

Subnet object

Name Type Required Value
id string No Resource ID.
properties object No Properties of the subnet. - SubnetPropertiesFormat object
name string No The name of the resource that is unique within a resource group. This name can be used to access the resource.

PublicIPAddress object

Name Type Required Value
id string No Resource ID.
location string No Resource location.
tags object No Resource tags.
sku object No The public IP address SKU. - PublicIPAddressSku object
properties object No Public IP address properties. - PublicIPAddressPropertiesFormat object
zones array No A list of availability zones denoting the IP allocated for the resource needs to come from. - string

SubResource object

Name Type Required Value
id string No Resource ID.

SubnetPropertiesFormat object

Name Type Required Value
addressPrefix string No The address prefix for the subnet.
addressPrefixes array No List of address prefixes for the subnet. - string
networkSecurityGroup object No The reference of the NetworkSecurityGroup resource. - NetworkSecurityGroup object
routeTable object No The reference of the RouteTable resource. - RouteTable object
natGateway object No Nat gateway associated with this subnet. - SubResource object
serviceEndpoints array No An array of service endpoints. - ServiceEndpointPropertiesFormat object
serviceEndpointPolicies array No An array of service endpoint policies. - ServiceEndpointPolicy object
delegations array No An array of references to the delegations on the subnet. - Delegation object
privateEndpointNetworkPolicies string No Enable or Disable apply network policies on private end point in the subnet.
privateLinkServiceNetworkPolicies string No Enable or Disable apply network policies on private link service in the subnet.

PublicIPAddressSku object

Name Type Required Value
name enum No Name of a public IP address SKU. - Basic or Standard

PublicIPAddressPropertiesFormat object

Name Type Required Value
publicIPAllocationMethod enum No The public IP address allocation method. - Static or Dynamic
publicIPAddressVersion enum No The public IP address version. - IPv4 or IPv6
dnsSettings object No The FQDN of the DNS record associated with the public IP address. - PublicIPAddressDnsSettings object
ddosSettings object No The DDoS protection custom policy associated with the public IP address. - DdosSettings object
ipTags array No The list of tags associated with the public IP address. - IpTag object
ipAddress string No The IP address associated with the public IP address resource.
publicIPPrefix object No The Public IP Prefix this Public IP Address should be allocated from. - SubResource object
idleTimeoutInMinutes integer No The idle timeout of the public IP address.

NetworkSecurityGroup object

Name Type Required Value
id string No Resource ID.
location string No Resource location.
tags object No Resource tags.
properties object No Properties of the network security group. - NetworkSecurityGroupPropertiesFormat object

RouteTable object

Name Type Required Value
id string No Resource ID.
location string No Resource location.
tags object No Resource tags.
properties object No Properties of the route table. - RouteTablePropertiesFormat object

ServiceEndpointPropertiesFormat object

Name Type Required Value
service string No The type of the endpoint service.
locations array No A list of locations. - string

ServiceEndpointPolicy object

Name Type Required Value
id string No Resource ID.
location string No Resource location.
tags object No Resource tags.
properties object No Properties of the service end point policy. - ServiceEndpointPolicyPropertiesFormat object

Delegation object

Name Type Required Value
id string No Resource ID.
properties object No Properties of the subnet. - ServiceDelegationPropertiesFormat object
name string No The name of the resource that is unique within a subnet. This name can be used to access the resource.

PublicIPAddressDnsSettings object

Name Type Required Value
domainNameLabel string No The domain name label. The concatenation of the domain name label and the regionalized DNS zone make up the fully qualified domain name associated with the public IP address. If a domain name label is specified, an A DNS record is created for the public IP in the Microsoft Azure DNS system.
fqdn string No The Fully Qualified Domain Name of the A DNS record associated with the public IP. This is the concatenation of the domainNameLabel and the regionalized DNS zone.
reverseFqdn string No The reverse FQDN. A user-visible, fully qualified domain name that resolves to this public IP address. If the reverseFqdn is specified, then a PTR DNS record is created pointing from the IP address in the in-addr.arpa domain to the reverse FQDN.

DdosSettings object

Name Type Required Value
ddosCustomPolicy object No The DDoS custom policy associated with the public IP. - SubResource object
protectionCoverage enum No The DDoS protection policy customizability of the public IP. Only standard coverage will have the ability to be customized. - Basic or Standard

IpTag object

Name Type Required Value
ipTagType string No The IP tag type. Example: FirstPartyUsage.
tag string No The value of the IP tag associated with the public IP. Example: SQL.

NetworkSecurityGroupPropertiesFormat object

Name Type Required Value
securityRules array No A collection of security rules of the network security group. - SecurityRule object

RouteTablePropertiesFormat object

Name Type Required Value
routes array No Collection of routes contained within a route table. - Route object
disableBgpRoutePropagation boolean No Whether to disable the routes learned by BGP on that route table. True means disable.

ServiceEndpointPolicyPropertiesFormat object

Name Type Required Value
serviceEndpointPolicyDefinitions array No A collection of service endpoint policy definitions of the service endpoint policy. - ServiceEndpointPolicyDefinition object

ServiceDelegationPropertiesFormat object

Name Type Required Value
serviceName string No The name of the service to whom the subnet should be delegated (e.g. Microsoft.Sql/servers).

SecurityRule object

Name Type Required Value
id string No Resource ID.
properties object No Properties of the security rule. - SecurityRulePropertiesFormat object
name string No The name of the resource that is unique within a resource group. This name can be used to access the resource.

Route object

Name Type Required Value
id string No Resource ID.
properties object No Properties of the route. - RoutePropertiesFormat object
name string No The name of the resource that is unique within a resource group. This name can be used to access the resource.

ServiceEndpointPolicyDefinition object

Name Type Required Value
id string No Resource ID.
properties object No Properties of the service endpoint policy definition. - ServiceEndpointPolicyDefinitionPropertiesFormat object
name string No The name of the resource that is unique within a resource group. This name can be used to access the resource.

SecurityRulePropertiesFormat object

Name Type Required Value
description string No A description for this rule. Restricted to 140 chars.
protocol enum Yes Network protocol this rule applies to. - Tcp, Udp, Icmp, Esp, *, Ah
sourcePortRange string No The source port or range. Integer or range between 0 and 65535. Asterisk '*' can also be used to match all ports.
destinationPortRange string No The destination port or range. Integer or range between 0 and 65535. Asterisk '*' can also be used to match all ports.
sourceAddressPrefix string No The CIDR or source IP range. Asterisk '*' can also be used to match all source IPs. Default tags such as 'VirtualNetwork', 'AzureLoadBalancer' and 'Internet' can also be used. If this is an ingress rule, specifies where network traffic originates from.
sourceAddressPrefixes array No The CIDR or source IP ranges. - string
sourceApplicationSecurityGroups array No The application security group specified as source. - ApplicationSecurityGroup object
destinationAddressPrefix string No The destination address prefix. CIDR or destination IP range. Asterisk '*' can also be used to match all source IPs. Default tags such as 'VirtualNetwork', 'AzureLoadBalancer' and 'Internet' can also be used.
destinationAddressPrefixes array No The destination address prefixes. CIDR or destination IP ranges. - string
destinationApplicationSecurityGroups array No The application security group specified as destination. - ApplicationSecurityGroup object
sourcePortRanges array No The source port ranges. - string
destinationPortRanges array No The destination port ranges. - string
access enum Yes The network traffic is allowed or denied. - Allow or Deny
priority integer No The priority of the rule. The value can be between 100 and 4096. The priority number must be unique for each rule in the collection. The lower the priority number, the higher the priority of the rule.
direction enum Yes The direction of the rule. The direction specifies if rule will be evaluated on incoming or outgoing traffic. - Inbound or Outbound

RoutePropertiesFormat object

Name Type Required Value
addressPrefix string No The destination CIDR to which the route applies.
nextHopType enum Yes The type of Azure hop the packet should be sent to. - VirtualNetworkGateway, VnetLocal, Internet, VirtualAppliance, None
nextHopIpAddress string No The IP address packets should be forwarded to. Next hop values are only allowed in routes where the next hop type is VirtualAppliance.

ServiceEndpointPolicyDefinitionPropertiesFormat object

Name Type Required Value
description string No A description for this rule. Restricted to 140 chars.
service string No Service endpoint name.
serviceResources array No A list of service resources. - string

ApplicationSecurityGroup object

Name Type Required Value
id string No Resource ID.
location string No Resource location.
tags object No Resource tags.
properties object No Properties of the application security group. - ApplicationSecurityGroupPropertiesFormat object

Quickstart templates

The following quickstart templates deploy this resource type.

Template Description
Private Link service example

Deploy to Azure
This template shows how to create a private link service