From 752d4f62981d8b9f7f2defe3373f243221fda6f8 Mon Sep 17 00:00:00 2001 From: litchiyangMSFT <64560090+litchiyangMSFT@users.noreply.github.com> Date: Thu, 10 Sep 2020 19:37:26 -0700 Subject: [PATCH] [Merge from master] Add InboundSecurityRule, virtualRouterPeerAdvertisedRoute and virtualRouterPeerLearnedRoute (#10736) * Add virtual hub bgp connections subresources virtualRouterPeerAdvertisedRoute and virtualRouterPeerLearnedRoute with POST opertion * Add examples * Change name of operationid * change output of advertised route * Add PUT InboundSecurityRules for NVA * merge * Add examples * merge * merge * change output of advertised route --- .../examples/InboundSecurityRulePut.json | 56 ++++++ .../examples/NetworkVirtualApplianceGet.json | 5 + ...rkVirtualApplianceListByResourceGroup.json | 5 + ...orkVirtualApplianceListBySubscription.json | 5 + .../examples/NetworkVirtualAppliancePut.json | 10 + .../VirtualRouterPeerListAdvertisedRoute.json | 45 +++++ .../VirtualRouterPeerListLearnedRoute.json | 36 ++++ .../2020-06-01/networkVirtualAppliance.json | 156 ++++++++++++++++ .../stable/2020-06-01/virtualWan.json | 175 ++++++++++++++++++ 9 files changed, 493 insertions(+) create mode 100644 specification/network/resource-manager/Microsoft.Network/stable/2020-06-01/examples/InboundSecurityRulePut.json create mode 100644 specification/network/resource-manager/Microsoft.Network/stable/2020-06-01/examples/VirtualRouterPeerListAdvertisedRoute.json create mode 100644 specification/network/resource-manager/Microsoft.Network/stable/2020-06-01/examples/VirtualRouterPeerListLearnedRoute.json diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-06-01/examples/InboundSecurityRulePut.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-06-01/examples/InboundSecurityRulePut.json new file mode 100644 index 000000000000..5720bada9d5b --- /dev/null +++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-06-01/examples/InboundSecurityRulePut.json @@ -0,0 +1,56 @@ +{ + "parameters": { + "api-version": "2020-06-01", + "ruleCollectionName": "rule1", + "subscriptionId": "subid", + "resourceGroupName": "rg1", + "networkVirtualApplianceName": "nva", + "parameters": { + "properties": { + "rules": [ + { + "protocol": "TCP", + "sourceAddressPrefix": "50.20.121.5/32", + "destinationPortRange": 22 + } + ] + } + } + }, + "responses": { + "200": { + "body": { + "name": "rule1", + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkVirtualAppliances/nva/InboundSecurityRules/rule1", + "etag": "W/\"72090554-7e3b-43f2-80ad-99a9020dcb11\"", + "properties": { + "provisioningState": "Succeeded", + "rules": [ + { + "protocol": "TCP", + "sourceAddressPrefix": "50.20.121.5/32", + "destinationPortRange": 22 + } + ] + } + } + }, + "201": { + "body": { + "name": "rule1", + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkVirtualAppliances/nva/InboundSecurityRules/rule1", + "etag": "W/\"72090554-7e3b-43f2-80ad-99a9020dcb11\"", + "properties": { + "provisioningState": "Succeeded", + "rules": [ + { + "protocol": "TCP", + "sourceAddressPrefix": "50.20.121.5/32", + "destinationPortRange": 22 + } + ] + } + } + } + } +} diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-06-01/examples/NetworkVirtualApplianceGet.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-06-01/examples/NetworkVirtualApplianceGet.json index d17aae9db7e9..7ca3eb906130 100644 --- a/specification/network/resource-manager/Microsoft.Network/stable/2020-06-01/examples/NetworkVirtualApplianceGet.json +++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-06-01/examples/NetworkVirtualApplianceGet.json @@ -37,6 +37,11 @@ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networtkVirtualAppliances/nva/virtualApplianceSites/site1" } ], + "inboundSecurityRules": [ + { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkVirtualAppliances/nva/InboundSecurityRules/rule1" + } + ], "provisioningState": "Succeeded", "bootStrapConfigurationBlobs": [ "https://csrncvhdstorage1.blob.core.windows.net/csrncvhdstoragecont/csrbootstrapconfig" diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-06-01/examples/NetworkVirtualApplianceListByResourceGroup.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-06-01/examples/NetworkVirtualApplianceListByResourceGroup.json index d897debf6f06..e851dc12a0d0 100644 --- a/specification/network/resource-manager/Microsoft.Network/stable/2020-06-01/examples/NetworkVirtualApplianceListByResourceGroup.json +++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-06-01/examples/NetworkVirtualApplianceListByResourceGroup.json @@ -38,6 +38,11 @@ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networtkVirtualAppliances/nva/virtualApplianceSites/site1" } ], + "inboundSecurityRules": [ + { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkVirtualAppliances/nva/InboundSecurityRules/rule1" + } + ], "provisioningState": "Succeeded", "bootStrapConfigurationBlobs": [ "https://csrncvhdstorage1.blob.core.windows.net/csrncvhdstoragecont/csrbootstrapconfig" diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-06-01/examples/NetworkVirtualApplianceListBySubscription.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-06-01/examples/NetworkVirtualApplianceListBySubscription.json index f8f5eadb0802..5a6523d431d7 100644 --- a/specification/network/resource-manager/Microsoft.Network/stable/2020-06-01/examples/NetworkVirtualApplianceListBySubscription.json +++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-06-01/examples/NetworkVirtualApplianceListBySubscription.json @@ -37,6 +37,11 @@ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networtkVirtualAppliances/nva/virtualApplianceSites/site1" } ], + "inboundSecurityRules": [ + { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkVirtualAppliances/nva/InboundSecurityRules/rule1" + } + ], "provisioningState": "Succeeded", "bootStrapConfigurationBlobs": [ "https://csrncvhdstorage1.blob.core.windows.net/csrncvhdstoragecont/csrbootstrapconfig" diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-06-01/examples/NetworkVirtualAppliancePut.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-06-01/examples/NetworkVirtualAppliancePut.json index e140c02c324f..d26b15442147 100644 --- a/specification/network/resource-manager/Microsoft.Network/stable/2020-06-01/examples/NetworkVirtualAppliancePut.json +++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-06-01/examples/NetworkVirtualAppliancePut.json @@ -66,6 +66,11 @@ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networtkVirtualAppliances/nva/virtualApplianceSites/site1" } ], + "inboundSecurityRules": [ + { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkVirtualAppliances/nva/InboundSecurityRules/rule1" + } + ], "provisioningState": "Succeeded", "bootStrapConfigurationBlobs": [ "https://csrncvhdstorage1.blob.core.windows.net/csrncvhdstoragecont/csrbootstrapconfig" @@ -119,6 +124,11 @@ "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networtkVirtualAppliances/nva/virtualApplianceSites/site1" } ], + "inboundSecurityRules": [ + { + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkVirtualAppliances/nva/InboundSecurityRules/rule1" + } + ], "provisioningState": "Succeeded", "bootStrapConfigurationBlobs": [ "https://csrncvhdstorage1.blob.core.windows.net/csrncvhdstoragecont/csrbootstrapconfig" diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-06-01/examples/VirtualRouterPeerListAdvertisedRoute.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-06-01/examples/VirtualRouterPeerListAdvertisedRoute.json new file mode 100644 index 000000000000..306043112c01 --- /dev/null +++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-06-01/examples/VirtualRouterPeerListAdvertisedRoute.json @@ -0,0 +1,45 @@ +{ + "parameters": { + "api-version": "2020-06-01", + "subscriptionId": "subid", + "resourceGroupName": "rg1", + "hubName": "virtualRouter1", + "connectionName": "peer1" + }, + "responses": { + "202": {}, + "200": { + "body": { + "value": [ + { + "localAddress": "10.85.3.4", + "network": "10.45.0.0/16", + "nextHop": "10.85.3.4", + "sourcePeer": "10.85.3.4", + "origin": "Igp", + "asPath": "65515", + "weight": 0 + }, + { + "localAddress": "10.85.3.4", + "network": "10.85.0.0/16", + "nextHop": "10.85.3.4", + "sourcePeer": "10.85.3.4", + "origin": "Igp", + "asPath": "65515", + "weight": 0 + }, + { + "localAddress": "10.85.3.4", + "network": "10.100.0.0/16", + "nextHop": "10.85.3.4", + "sourcePeer": "10.85.3.4", + "origin": "Igp", + "asPath": "65515", + "weight": 0 + } + ] + } + } + } +} diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-06-01/examples/VirtualRouterPeerListLearnedRoute.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-06-01/examples/VirtualRouterPeerListLearnedRoute.json new file mode 100644 index 000000000000..8698df29e77c --- /dev/null +++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-06-01/examples/VirtualRouterPeerListLearnedRoute.json @@ -0,0 +1,36 @@ +{ + "parameters": { + "api-version": "2020-06-01", + "subscriptionId": "subid", + "resourceGroupName": "rg1", + "hubName": "virtualRouter1", + "connectionName": "peer1" + }, + "responses": { + "202": {}, + "200": { + "body": { + "value": [ + { + "localAddress": "10.85.3.4", + "network": "10.101.0.0/16", + "nextHop": "10.85.4.4", + "sourcePeer": "10.85.4.4", + "origin": "EBgp", + "asPath": "65002-65001", + "weight": 32768 + }, + { + "localAddress": "10.85.3.5", + "network": "10.101.0.0/16", + "nextHop": "10.85.4.4", + "sourcePeer": "10.85.4.4", + "origin": "EBgp", + "asPath": "65002-65001", + "weight": 32768 + } + ] + } + } + } +} diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-06-01/networkVirtualAppliance.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-06-01/networkVirtualAppliance.json index 905060fb1e01..b7ad4a5a71ed 100644 --- a/specification/network/resource-manager/Microsoft.Network/stable/2020-06-01/networkVirtualAppliance.json +++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-06-01/networkVirtualAppliance.json @@ -682,6 +682,79 @@ } } } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkVirtualAppliances/{networkVirtualApplianceName}/inboundSecurityRules/{ruleCollectionName}": { + "put": { + "operationId": "InboundSecurityRule_CreateOrUpdate", + "description": "Creates or updates the specified Network Virtual Appliance Inbound Security Rules.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "networkVirtualApplianceName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the Network Virtual Appliance." + }, + { + "name": "ruleCollectionName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of security rule collection." + }, + { + "name": "parameters", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/InboundSecurityRule" + }, + "description": "Parameters supplied to the create or update Network Virtual Appliance Inbound Security Rules operation." + }, + { + "$ref": "./network.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "./network.json#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "Request successful. The operation returns the resulting Network Virtual Appliance Inbound Security Rules resource.", + "schema": { + "$ref": "#/definitions/InboundSecurityRule" + } + }, + "201": { + "description": "Request received successfully. The operation returns the resulting Network Virtual Appliance Inbound Security Rules resource.", + "schema": { + "$ref": "#/definitions/InboundSecurityRule" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "./network.json#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "Create Network Virtual Appliance Inbound Security Rules": { + "$ref": "./examples/InboundSecurityRulePut.json" + } + }, + "x-ms-long-running-operation": true, + "x-ms-long-running-operation-options": { + "final-state-via": "azure-async-operation" + } + } } }, "definitions": { @@ -771,6 +844,14 @@ "$ref": "./network.json#/definitions/SubResource" } }, + "inboundSecurityRules": { + "type": "array", + "readOnly": true, + "description": "List of references to InboundSecurityRules.", + "items": { + "$ref": "./network.json#/definitions/SubResource" + } + }, "provisioningState": { "description": "The provisioning state of the resource.", "readOnly": true, @@ -1009,6 +1090,81 @@ } }, "description": "Response for ListNetworkVirtualApplianceSkus API service call." + }, + "InboundSecurityRule": { + "properties": { + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/InboundSecurityRuleProperties", + "description": "The properties of the Inbound Security Rules." + }, + "name": { + "type": "string", + "description": "Name of security rule collection." + }, + "etag": { + "type": "string", + "readOnly": true, + "description": "A unique read-only string that changes whenever the resource is updated." + }, + "type": { + "type": "string", + "readOnly": true, + "description": "NVA inbound security rule type." + } + }, + "allOf": [ + { + "$ref": "./network.json#/definitions/SubResource" + } + ], + "description": "NVA Inbound Security Rule resource." + }, + "InboundSecurityRuleProperties": { + "properties": { + "rules": { + "type": "array", + "readOnly": false, + "description": "List of allowed rules.", + "items": { + "$ref": "#/definitions/InboundSecurityRules" + } + }, + "provisioningState": { + "description": "The provisioning state of the resource.", + "readOnly": true, + "$ref": "./network.json#/definitions/ProvisioningState" + } + }, + "description": "Properties of the Inbound Security Rules resource." + }, + "InboundSecurityRules": { + "properties": { + "protocol": { + "type": "string", + "enum": [ + "TCP", + "UDP" + ], + "x-ms-enum": { + "name": "InboundSecurityRulesProtocol", + "modelAsString": true + }, + "description": "Protocol. This should be either TCP or UDP." + }, + "sourceAddressPrefix": { + "type": "string", + "description": "The CIDR or source IP range. Only /30, /31 and /32 Ip ranges are allowed." + }, + "destinationPortRange": { + "type": "integer", + "format": "int32", + "minimum": 0, + "maximum": 65535, + "description": "NVA port ranges to be opened up. One needs to provide specific ports." + } + }, + "description": "Properties of the Inbound Security Rules resource." } } } diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2020-06-01/virtualWan.json b/specification/network/resource-manager/Microsoft.Network/stable/2020-06-01/virtualWan.json index af4f29898cb9..e995b7ddf3da 100644 --- a/specification/network/resource-manager/Microsoft.Network/stable/2020-06-01/virtualWan.json +++ b/specification/network/resource-manager/Microsoft.Network/stable/2020-06-01/virtualWan.json @@ -4362,6 +4362,128 @@ } } }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualHubs/{hubName}/bgpConnections/{connectionName}/learnedRoutes": { + "post": { + "operationId": "VirtualHubBgpConnections_ListLearnedRoutes", + "description": "Retrieves a list of routes the virtual hub bgp connection has learned.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "hubName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the virtual hub." + }, + { + "name": "connectionName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the virtual hub bgp connection." + }, + { + "$ref": "./network.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "./network.json#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "List of advertised BGP routes.", + "schema": { + "$ref": "#/definitions/PeerRouteList" + } + }, + "202": { + "description": "Accepted and the operation will complete asynchronously." + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "./network.json#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "VirtualRouterPeerListLearnedRoutes": { + "$ref": "./examples/VirtualRouterPeerListLearnedRoute.json" + } + }, + "x-ms-long-running-operation": true, + "x-ms-long-running-operation-options": { + "final-state-via": "location" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualHubs/{hubName}/bgpConnections/{connectionName}/advertisedRoutes": { + "post": { + "operationId": "VirtualHubBgpConnections_ListAdvertisedRoutes", + "description": "Retrieves a list of routes the virtual hub bgp connection is advertising to the specified peer.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "hubName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the virtual hub." + }, + { + "name": "connectionName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the virtual hub bgp connection." + }, + { + "$ref": "./network.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "./network.json#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "List of learned BGP routes.", + "schema": { + "$ref": "#/definitions/PeerRouteList" + } + }, + "202": { + "description": "Accepted and the operation will complete asynchronously." + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "./network.json#/definitions/CloudError" + } + } + }, + "x-ms-examples": { + "VirtualRouterPeerListAdvertisedRoutes": { + "$ref": "./examples/VirtualRouterPeerListAdvertisedRoute.json" + } + }, + "x-ms-long-running-operation": true, + "x-ms-long-running-operation-options": { + "final-state-via": "location" + } + } + }, "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualHubs/{virtualHubName}/ipConfigurations/{ipConfigName}": { "get": { "operationId": "VirtualHubIpConfiguration_Get", @@ -5342,6 +5464,59 @@ }, "description": "Properties of the bgp connection." }, + "PeerRoute": { + "properties": { + "localAddress": { + "type": "string", + "readOnly": true, + "description": "The peer's local address." + }, + "network": { + "type": "string", + "readOnly": true, + "description": "The route's network prefix." + }, + "nextHop": { + "type": "string", + "readOnly": true, + "description": "The route's next hop." + }, + "sourcePeer": { + "type": "string", + "readOnly": true, + "description": "The peer this route was learned from." + }, + "origin": { + "type": "string", + "readOnly": true, + "description": "The source this route was learned from." + }, + "asPath": { + "type": "string", + "readOnly": true, + "description": "The route's AS path sequence." + }, + "weight": { + "type": "integer", + "format": "int32", + "readOnly": true, + "description": "The route's weight." + } + }, + "description": "Peer routing details." + }, + "PeerRouteList": { + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/PeerRoute" + }, + "description": "List of peer routes." + } + }, + "description": "List of virtual router peer routes." + }, "HubIpConfiguration": { "properties": { "properties": {