Establish connection to a VNET via an ExpressRoute circuit
{"name": "sqvnet", "type": "microsoft.network/virtualnetworks", "location": "[parameters('location')]", "apiversion": "2020-05-01", "dependson": ["[resourceid('microsoft.network/networksecuritygroups", "sqnsgapp')]"], "tags": {"displayname": "sqvnet"}, "properties": {"addressspace": {"addressprefixes": ["[variables('sqvnetprefix')]"]}, "subnets": [{"name": "[variables('sqvnetexternalsubnetname')]", "properties": {"addressprefix": "[variables('sqvnetexternalsubnetprefix')]", "networksecuritygroup": {"id": "[resourceid('microsoft.network/networksecuritygroups", "sqnsgapp')]"}}}]}}{"name": "[variables('sqvmappnicname')]", "type": "microsoft.network/networkinterfaces", "location": "[parameters('location')]", "apiversion": "2020-05-01", "dependson": ["[resourceid('microsoft.network/virtualnetworks", "sqvnet')]", "[resourceid('microsoft.network/publicipaddresses", variables('sqpublicipname'))]"], "tags": {"displayname": "sqvmappnic"}, "properties": {"ipconfigurations": [{"name": "ipconfig1", "properties": {"privateipallocationmethod": "dynamic", "subnet": {"id": "[variables('sqvmappsubnetref')]"}, "publicipaddress": {"id": "[resourceid('microsoft.network/publicipaddresses", variables('sqpublicipname'))]"}}}]}}{"name": "[variables('sqpublicipname')]", "type": "microsoft.network/publicipaddresses", "location": "[parameters('location')]", "apiversion": "2020-05-01", "tags": {"displayname": "sqpublicip"}, "properties": {"publicipallocationmethod": "dynamic", "dnssettings": {"domainnamelabel": "[parameters('sq_publicip_dnsprefix')]"}}}{"name": "sqnsgapp", "type": "microsoft.network/networksecuritygroups", "location": "[parameters('location')]", "apiversion": "2020-05-01", "tags": {"displayname": "sqnsgapp"}, "properties": {"securityrules": [{"name": "allow_rdp_in", "properties": {"description": "allow rdp in", "protocol": "tcp", "sourceportrange": "*", "destinationportrange": "3389", "sourceaddressprefix": "internet", "destinationaddressprefix": "*", "access": "allow", "priority": 100, "direction": "inbound"}}, {"name": "allow_https_in", "properties": {"description": "allow https in", "protocol": "tcp", "sourceportrange": "*", "destinationportrange": "443", "sourceaddressprefix": "internet", "destinationaddressprefix": "*", "access": "allow", "priority": 101, "direction": "inbound"}}, {"name": "allow_rdp_out", "properties": {"description": "allow rdp out", "protocol": "tcp", "sourceportrange": "*", "destinationportrange": "3389", "sourceaddressprefix": "[variables('sqvnetexternalsubnetprefix')]", "destinationaddressprefix": "[variables('sqvnetinternalsubnetprefix')]", "access": "allow", "priority": 100, "direction": "outbound"}}, {"name": "allow_sonarqube_in", "properties": {"description": "allow sonarqube in", "protocol": "tcp", "sourceportrange": "*", "destinationportrange": "9000", "sourceaddressprefix": "internet", "destinationaddressprefix": "*", "access": "allow", "priority": 102, "direction": "inbound"}}, {"name": "block_all_in", "properties": {"description": "block everything else", "protocol": "*", "sourceportrange": "*", "destinationportrange": "*", "sourceaddressprefix": "internet", "destinationaddressprefix": "*", "access": "deny", "priority": 200, "direction": "inbound"}}]}} 