diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2019-09-01/networkWatcher.json b/specification/network/resource-manager/Microsoft.Network/stable/2019-09-01/networkWatcher.json index 9db759531fc4..6c3a6489e203 100644 --- a/specification/network/resource-manager/Microsoft.Network/stable/2019-09-01/networkWatcher.json +++ b/specification/network/resource-manager/Microsoft.Network/stable/2019-09-01/networkWatcher.json @@ -3056,4 +3056,4 @@ } } } -} +} \ No newline at end of file diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2019-11-01/examples/NetworkWatcherConnectionMonitorCreate.json b/specification/network/resource-manager/Microsoft.Network/stable/2019-11-01/examples/NetworkWatcherConnectionMonitorCreate.json new file mode 100644 index 000000000000..04007d0fb752 --- /dev/null +++ b/specification/network/resource-manager/Microsoft.Network/stable/2019-11-01/examples/NetworkWatcherConnectionMonitorCreate.json @@ -0,0 +1,70 @@ +{ + "parameters": { + "api-version": "2019-11-01", + "subscriptionId": "subid", + "resourceGroupName": "rg1", + "networkWatcherName": "nw1", + "connectionMonitorName": "cm1", + "parameters": { + "location": "eastus", + "properties": { + "source": { + "resourceId": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Compute/virtualMachines/vm1" + }, + "destination": { + "address": "bing.com", + "port": 80 + }, + "monitoringIntervalInSeconds": 60 + } + } + }, + "responses": { + "200": { + "body": { + "name": "cm1", + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkWatchers/nw1/connectionMonitors/cm1", + "etag": "W/\"e7497f26-5f09-4559-900b-fe98f3dedb6f\"", + "properties": { + "provisioningState": "Updating", + "source": { + "resourceId": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Compute/virtualMachines/vm1", + "port": 0 + }, + "destination": { + "address": "bing.com", + "port": 80 + }, + "monitoringIntervalInSeconds": 60, + "autoStart": true, + "monitoringStatus": "NotStarted" + }, + "location": "eastus", + "type": "Microsoft.Network/networkWatchers/connectionMonitors" + } + }, + "201": { + "body": { + "name": "cm1", + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkWatchers/nw1/connectionMonitors/cm1", + "etag": "W/\"e7497f26-5f09-4559-900b-fe98f3dedb6f\"", + "properties": { + "provisioningState": "Updating", + "source": { + "resourceId": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Compute/virtualMachines/vm1", + "port": 0 + }, + "destination": { + "address": "bing.com", + "port": 80 + }, + "monitoringIntervalInSeconds": 60, + "autoStart": true, + "monitoringStatus": "NotStarted" + }, + "location": "eastus", + "type": "Microsoft.Network/networkWatchers/connectionMonitors" + } + } + } +} diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2019-11-01/examples/NetworkWatcherConnectionMonitorDelete.json b/specification/network/resource-manager/Microsoft.Network/stable/2019-11-01/examples/NetworkWatcherConnectionMonitorDelete.json new file mode 100644 index 000000000000..5c687b34f04a --- /dev/null +++ b/specification/network/resource-manager/Microsoft.Network/stable/2019-11-01/examples/NetworkWatcherConnectionMonitorDelete.json @@ -0,0 +1,13 @@ +{ + "parameters": { + "api-version": "2019-11-01", + "subscriptionId": "subid", + "resourceGroupName": "rg1", + "networkWatcherName": "nw1", + "connectionMonitorName": "cm1" + }, + "responses": { + "204": {}, + "202": {} + } +} diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2019-11-01/examples/NetworkWatcherConnectionMonitorGet.json b/specification/network/resource-manager/Microsoft.Network/stable/2019-11-01/examples/NetworkWatcherConnectionMonitorGet.json new file mode 100644 index 000000000000..e1c884b33d58 --- /dev/null +++ b/specification/network/resource-manager/Microsoft.Network/stable/2019-11-01/examples/NetworkWatcherConnectionMonitorGet.json @@ -0,0 +1,35 @@ +{ + "parameters": { + "api-version": "2019-11-01", + "subscriptionId": "subid", + "resourceGroupName": "rg1", + "networkWatcherName": "nw1", + "connectionMonitorName": "cm1" + }, + "responses": { + "200": { + "body": { + "name": "cm1", + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkWatchers/nw1/connectionMonitors/cm1", + "etag": "W/\"00000000-0000-0000-0000-000000000000\"", + "properties": { + "provisioningState": "Succeeded", + "source": { + "resourceId": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Compute/virtualMachines/vm1", + "port": 0 + }, + "destination": { + "address": "bing.com", + "port": 80 + }, + "monitoringIntervalInSeconds": 60, + "autoStart": true, + "startTime": "2018-01-08T03:42:33.3387305Z", + "monitoringStatus": "Running" + }, + "location": "centraluseuap", + "type": "Microsoft.Network/networkWatchers/connectionMonitors" + } + } + } +} diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2019-11-01/examples/NetworkWatcherConnectionMonitorList.json b/specification/network/resource-manager/Microsoft.Network/stable/2019-11-01/examples/NetworkWatcherConnectionMonitorList.json new file mode 100644 index 000000000000..677bf495d6b8 --- /dev/null +++ b/specification/network/resource-manager/Microsoft.Network/stable/2019-11-01/examples/NetworkWatcherConnectionMonitorList.json @@ -0,0 +1,60 @@ +{ + "parameters": { + "api-version": "2019-11-01", + "subscriptionId": "subid", + "resourceGroupName": "rg1", + "networkWatcherName": "nw1" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "cm1", + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkWatchers/nw1/connectionMonitors/cm1", + "etag": "W/\"00000000-0000-0000-0000-000000000000\"", + "properties": { + "provisioningState": "Succeeded", + "source": { + "resourceId": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Compute/virtualMachines/vm1", + "port": 0 + }, + "destination": { + "address": "bing.com", + "port": 80 + }, + "monitoringIntervalInSeconds": 60, + "autoStart": true, + "startTime": "2018-01-08T03:42:33.3387305Z", + "monitoringStatus": "Running" + }, + "location": "centraluseuap", + "type": "Microsoft.Network/networkWatchers/connectionMonitors" + }, + { + "name": "cm2", + "id": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkWatchers/nw1/connectionMonitors/cm2", + "etag": "W/\"00000000-0000-0000-0000-000000000000\"", + "properties": { + "provisioningState": "Succeeded", + "source": { + "resourceId": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Compute/virtualMachines/vm2", + "port": 0 + }, + "destination": { + "address": "google.com", + "port": 80 + }, + "monitoringIntervalInSeconds": 30, + "autoStart": true, + "startTime": "2018-01-08T05:42:33.3387305Z", + "monitoringStatus": "Running" + }, + "location": "centraluseuap", + "type": "Microsoft.Network/networkWatchers/connectionMonitors" + } + ] + } + } + } +} diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2019-11-01/examples/NetworkWatcherConnectionMonitorQuery.json b/specification/network/resource-manager/Microsoft.Network/stable/2019-11-01/examples/NetworkWatcherConnectionMonitorQuery.json new file mode 100644 index 000000000000..dcfeefdee1d3 --- /dev/null +++ b/specification/network/resource-manager/Microsoft.Network/stable/2019-11-01/examples/NetworkWatcherConnectionMonitorQuery.json @@ -0,0 +1,77 @@ +{ + "parameters": { + "api-version": "2019-11-01", + "subscriptionId": "subid", + "resourceGroupName": "rg1", + "networkWatcherName": "nw1", + "connectionMonitorName": "cm1" + }, + "responses": { + "200": { + "body": { + "sourceStatus": "Active", + "states": [ + { + "connectionState": "Reachable", + "startTime": "2018-01-08T03:42:33.3387305Z", + "endTime": "2018-01-08T05:12:41.5265438Z", + "evaluationState": "Completed", + "hops": [ + { + "type": "Source", + "id": "7dbbe7aa-60ba-4650-831e-63d775d38e9e", + "address": "10.1.1.4", + "resourceId": "subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkInterfaces/nic0/ipConfigurations/ipconfig1", + "nextHopIds": [ + "75c8d819-b208-4584-a311-1aa45ce753f9" + ], + "issues": [] + }, + { + "type": "VirtualNetwork", + "id": "75c8d819-b208-4584-a311-1aa45ce753f9", + "address": "192.168.100.4", + "resourceId": "subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkInterfaces/nic1/ipConfigurations/ipconfig1", + "nextHopIds": [], + "issues": [] + } + ] + } + ] + } + }, + "202": { + "body": { + "sourceStatus": "Active", + "states": [ + { + "connectionState": "Reachable", + "startTime": "2018-01-08T03:42:33.3387305Z", + "endTime": "2018-01-08T05:12:41.5265438Z", + "evaluationState": "Completed", + "hops": [ + { + "type": "Source", + "id": "7dbbe7aa-60ba-4650-831e-63d775d38e9e", + "address": "10.1.1.4", + "resourceId": "subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkInterfaces/nic0/ipConfigurations/ipconfig1", + "nextHopIds": [ + "75c8d819-b208-4584-a311-1aa45ce753f9" + ], + "issues": [] + }, + { + "type": "VirtualNetwork", + "id": "75c8d819-b208-4584-a311-1aa45ce753f9", + "address": "192.168.100.4", + "resourceId": "subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkInterfaces/nic1/ipConfigurations/ipconfig1", + "nextHopIds": [], + "issues": [] + } + ] + } + ] + } + } + } +} diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2019-11-01/examples/NetworkWatcherConnectionMonitorStart.json b/specification/network/resource-manager/Microsoft.Network/stable/2019-11-01/examples/NetworkWatcherConnectionMonitorStart.json new file mode 100644 index 000000000000..0453be3a1dff --- /dev/null +++ b/specification/network/resource-manager/Microsoft.Network/stable/2019-11-01/examples/NetworkWatcherConnectionMonitorStart.json @@ -0,0 +1,13 @@ +{ + "parameters": { + "api-version": "2019-11-01", + "subscriptionId": "subid", + "resourceGroupName": "rg1", + "networkWatcherName": "nw1", + "connectionMonitorName": "cm1" + }, + "responses": { + "200": {}, + "202": {} + } +} diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2019-11-01/examples/NetworkWatcherConnectionMonitorStop.json b/specification/network/resource-manager/Microsoft.Network/stable/2019-11-01/examples/NetworkWatcherConnectionMonitorStop.json new file mode 100644 index 000000000000..0453be3a1dff --- /dev/null +++ b/specification/network/resource-manager/Microsoft.Network/stable/2019-11-01/examples/NetworkWatcherConnectionMonitorStop.json @@ -0,0 +1,13 @@ +{ + "parameters": { + "api-version": "2019-11-01", + "subscriptionId": "subid", + "resourceGroupName": "rg1", + "networkWatcherName": "nw1", + "connectionMonitorName": "cm1" + }, + "responses": { + "200": {}, + "202": {} + } +} diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2019-11-01/examples/NetworkWatcherConnectionMonitorUpdateTags.json b/specification/network/resource-manager/Microsoft.Network/stable/2019-11-01/examples/NetworkWatcherConnectionMonitorUpdateTags.json new file mode 100644 index 000000000000..a129fa2f28f0 --- /dev/null +++ b/specification/network/resource-manager/Microsoft.Network/stable/2019-11-01/examples/NetworkWatcherConnectionMonitorUpdateTags.json @@ -0,0 +1,45 @@ +{ + "parameters": { + "api-version": "2019-11-01", + "subscriptionId": "subid", + "resourceGroupName": "rg1", + "networkWatcherName": "nw1", + "connectionMonitorName": "cm1", + "parameters": { + "tags": { + "tag1": "value1", + "tag2": "value2" + } + } + }, + "responses": { + "200": { + "body": { + "name": "cm1", + "id": "/subscriptions/subid/`/rg1/providers/Microsoft.Network/networkWatchers/nw1/connectionMonitors/cm1", + "etag": "W/\"00000000-0000-0000-0000-000000000000\"", + "properties": { + "provisioningState": "Succeeded", + "source": { + "resourceId": "/subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Compute/virtualMachines/vm1", + "port": 0 + }, + "destination": { + "address": "bing.com", + "port": 80 + }, + "monitoringIntervalInSeconds": 60, + "autoStart": true, + "startTime": "2019-09-04T02:48:10.6797393Z", + "monitoringStatus": "Running" + }, + "tags": { + "tag1": "value1", + "tag2": "value2" + }, + "type": "Microsoft.Network/networkWatchers/connectionMonitors", + "location": "westcentralus" + } + } + } +} diff --git a/specification/network/resource-manager/Microsoft.Network/stable/2019-11-01/networkWatcher.json b/specification/network/resource-manager/Microsoft.Network/stable/2019-11-01/networkWatcher.json index 3f128c108a16..a53604a48450 100644 --- a/specification/network/resource-manager/Microsoft.Network/stable/2019-11-01/networkWatcher.json +++ b/specification/network/resource-manager/Microsoft.Network/stable/2019-11-01/networkWatcher.json @@ -1525,1535 +1525,2570 @@ "final-state-via": "location" } } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkWatchers/{networkWatcherName}/connectionMonitors/{connectionMonitorName}": { + "put": { + "tags": [ + "ConnectionMonitors" + ], + "operationId": "ConnectionMonitors_CreateOrUpdate", + "description": "Create or update a connection monitor.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group containing Network Watcher." + }, + { + "name": "networkWatcherName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the Network Watcher resource." + }, + { + "name": "connectionMonitorName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the connection monitor." + }, + { + "name": "parameters", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/ConnectionMonitor" + }, + "description": "Parameters that define the operation to create a connection monitor." + }, + { + "$ref": "./network.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "./network.json#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "Update successful. The operation returns the resulting network watcher resource.", + "schema": { + "$ref": "#/definitions/ConnectionMonitorResult" + } + }, + "201": { + "description": "Create successful. The operation returns the resulting network watcher resource.", + "schema": { + "$ref": "#/definitions/ConnectionMonitorResult" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "./networkWatcher.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Create connection monitor": { + "$ref": "./examples/NetworkWatcherConnectionMonitorCreate.json" + } + }, + "x-ms-long-running-operation": true, + "x-ms-long-running-operation-options": { + "final-state-via": "azure-async-operation" + } + }, + "get": { + "tags": [ + "ConnectionMonitors" + ], + "operationId": "ConnectionMonitors_Get", + "description": "Gets a connection monitor by name.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group containing Network Watcher." + }, + { + "name": "networkWatcherName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the Network Watcher resource." + }, + { + "name": "connectionMonitorName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the connection monitor." + }, + { + "$ref": "./network.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "./network.json#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "Request successful. The operation returns a connection monitor.", + "schema": { + "$ref": "#/definitions/ConnectionMonitorResult" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "./networkWatcher.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Get connection monitor": { + "$ref": "./examples/NetworkWatcherConnectionMonitorGet.json" + } + } + }, + "delete": { + "tags": [ + "ConnectionMonitors" + ], + "operationId": "ConnectionMonitors_Delete", + "description": "Deletes the specified connection monitor.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group containing Network Watcher." + }, + { + "name": "networkWatcherName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the Network Watcher resource." + }, + { + "name": "connectionMonitorName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the connection monitor." + }, + { + "$ref": "./network.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "./network.json#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "204": { + "description": "Delete successful." + }, + "202": { + "description": "Accepted. The operation will complete asynchronously." + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "./networkWatcher.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Delete connection monitor": { + "$ref": "./examples/NetworkWatcherConnectionMonitorDelete.json" + } + }, + "x-ms-long-running-operation": true, + "x-ms-long-running-operation-options": { + "final-state-via": "location" + } + }, + "patch": { + "tags": [ + "ConnectionMonitors" + ], + "operationId": "ConnectionMonitors_UpdateTags", + "description": "Update tags of the specified connection monitor.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group." + }, + { + "name": "networkWatcherName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the network watcher." + }, + { + "name": "connectionMonitorName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the connection monitor." + }, + { + "name": "parameters", + "in": "body", + "required": true, + "schema": { + "$ref": "./network.json#/definitions/TagsObject" + }, + "description": "Parameters supplied to update connection monitor tags." + }, + { + "$ref": "./network.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "./network.json#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "Request successful. The operation returns updated connection monitor.", + "schema": { + "$ref": "#/definitions/ConnectionMonitorResult" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "./networkWatcher.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Update connection monitor tags": { + "$ref": "./examples/NetworkWatcherConnectionMonitorUpdateTags.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkWatchers/{networkWatcherName}/connectionMonitors/{connectionMonitorName}/stop": { + "post": { + "tags": [ + "ConnectionMonitors" + ], + "operationId": "ConnectionMonitors_Stop", + "description": "Stops the specified connection monitor.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group containing Network Watcher." + }, + { + "name": "networkWatcherName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the Network Watcher resource." + }, + { + "name": "connectionMonitorName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the connection monitor." + }, + { + "$ref": "./network.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "./network.json#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "Request successful. The operation stops the connection monitor." + }, + "202": { + "description": "Accepted. The operation will complete asynchronously." + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "./networkWatcher.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Stop connection monitor": { + "$ref": "./examples/NetworkWatcherConnectionMonitorStop.json" + } + }, + "x-ms-long-running-operation": true, + "x-ms-long-running-operation-options": { + "final-state-via": "location" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkWatchers/{networkWatcherName}/connectionMonitors/{connectionMonitorName}/start": { + "post": { + "tags": [ + "ConnectionMonitors" + ], + "operationId": "ConnectionMonitors_Start", + "description": "Starts the specified connection monitor.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group containing Network Watcher." + }, + { + "name": "networkWatcherName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the Network Watcher resource." + }, + { + "name": "connectionMonitorName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the connection monitor." + }, + { + "$ref": "./network.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "./network.json#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "Request successful. The operation starts the connection monitor." + }, + "202": { + "description": "Accepted. The operation will complete asynchronously." + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "./networkWatcher.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Start connection monitor": { + "$ref": "./examples/NetworkWatcherConnectionMonitorStart.json" + } + }, + "x-ms-long-running-operation": true, + "x-ms-long-running-operation-options": { + "final-state-via": "location" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkWatchers/{networkWatcherName}/connectionMonitors/{connectionMonitorName}/query": { + "post": { + "tags": [ + "ConnectionMonitors" + ], + "operationId": "ConnectionMonitors_Query", + "description": "Query a snapshot of the most recent connection states.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group containing Network Watcher." + }, + { + "name": "networkWatcherName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the Network Watcher resource." + }, + { + "name": "connectionMonitorName", + "in": "path", + "required": true, + "type": "string", + "description": "The name given to the connection monitor." + }, + { + "$ref": "./network.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "./network.json#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "Successful query of connection states.", + "schema": { + "$ref": "#/definitions/ConnectionMonitorQueryResult" + } + }, + "202": { + "description": "Accepted query of connection states.", + "schema": { + "$ref": "#/definitions/ConnectionMonitorQueryResult" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "./networkWatcher.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Query connection monitor": { + "$ref": "./examples/NetworkWatcherConnectionMonitorQuery.json" + } + }, + "x-ms-long-running-operation": true, + "x-ms-long-running-operation-options": { + "final-state-via": "location" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkWatchers/{networkWatcherName}/connectionMonitors": { + "get": { + "tags": [ + "ConnectionMonitors" + ], + "operationId": "ConnectionMonitors_List", + "description": "Lists all connection monitors for the specified Network Watcher.", + "parameters": [ + { + "name": "resourceGroupName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the resource group containing Network Watcher." + }, + { + "name": "networkWatcherName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the Network Watcher resource." + }, + { + "$ref": "./network.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "./network.json#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "Successful connection monitor enumeration request.", + "schema": { + "$ref": "#/definitions/ConnectionMonitorListResult" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "./networkWatcher.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-pageable": { + "nextLinkName": null + }, + "x-ms-examples": { + "List connection monitors": { + "$ref": "./examples/NetworkWatcherConnectionMonitorList.json" + } + } + } } }, "definitions": { "ErrorResponse": { "description": "The error object.", "properties": { - "error": { - "title": "Error", - "$ref": "./network.json#/definitions/ErrorDetails", - "description": "The error details object." + "error": { + "title": "Error", + "$ref": "./network.json#/definitions/ErrorDetails", + "description": "The error details object." + } + } + }, + "NetworkWatcher": { + "properties": { + "etag": { + "readOnly": true, + "type": "string", + "description": "A unique read-only string that changes whenever the resource is updated." + }, + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/NetworkWatcherPropertiesFormat", + "description": "Properties of the network watcher." + } + }, + "allOf": [ + { + "$ref": "./network.json#/definitions/Resource" + } + ], + "description": "Network watcher in a resource group." + }, + "NetworkWatcherPropertiesFormat": { + "properties": { + "provisioningState": { + "readOnly": true, + "$ref": "./network.json#/definitions/ProvisioningState", + "description": "The provisioning state of the network watcher resource." + } + }, + "description": "The network watcher properties." + }, + "NetworkWatcherListResult": { + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/NetworkWatcher" + }, + "description": "List of network watcher resources." + } + }, + "description": "Response for ListNetworkWatchers API service call." + }, + "TopologyParameters": { + "properties": { + "targetResourceGroupName": { + "type": "string", + "description": "The name of the target resource group to perform topology on." + }, + "targetVirtualNetwork": { + "$ref": "./network.json#/definitions/SubResource", + "description": "The reference of the Virtual Network resource." + }, + "targetSubnet": { + "$ref": "./network.json#/definitions/SubResource", + "description": "The reference of the Subnet resource." + } + }, + "description": "Parameters that define the representation of topology." + }, + "Topology": { + "properties": { + "id": { + "readOnly": true, + "type": "string", + "description": "GUID representing the operation id." + }, + "createdDateTime": { + "readOnly": true, + "type": "string", + "format": "date-time", + "description": "The datetime when the topology was initially created for the resource group." + }, + "lastModified": { + "readOnly": true, + "type": "string", + "format": "date-time", + "description": "The datetime when the topology was last modified." + }, + "resources": { + "type": "array", + "items": { + "$ref": "#/definitions/TopologyResource" + }, + "description": "A list of topology resources." + } + }, + "description": "Topology of the specified resource group." + }, + "TopologyResource": { + "properties": { + "name": { + "type": "string", + "description": "Name of the resource." + }, + "id": { + "type": "string", + "description": "ID of the resource." + }, + "location": { + "type": "string", + "description": "Resource location." + }, + "associations": { + "type": "array", + "description": "Holds the associations the resource has with other resources in the resource group.", + "items": { + "$ref": "#/definitions/TopologyAssociation" + } + } + }, + "description": "The network resource topology information for the given resource group." + }, + "TopologyAssociation": { + "properties": { + "name": { + "type": "string", + "description": "The name of the resource that is associated with the parent resource." + }, + "resourceId": { + "type": "string", + "description": "The ID of the resource that is associated with the parent resource." + }, + "associationType": { + "type": "string", + "enum": [ + "Associated", + "Contains" + ], + "x-ms-enum": { + "name": "AssociationType", + "modelAsString": true + }, + "description": "The association type of the child resource to the parent resource." + } + }, + "description": "Resources that have an association with the parent resource." + }, + "VerificationIPFlowParameters": { + "description": "Parameters that define the IP flow to be verified.", + "required": [ + "targetResourceId", + "direction", + "protocol", + "localPort", + "remotePort", + "localIPAddress", + "remoteIPAddress" + ], + "properties": { + "targetResourceId": { + "type": "string", + "description": "The ID of the target resource to perform next-hop on." + }, + "direction": { + "$ref": "#/definitions/Direction", + "description": "The direction of the packet represented as a 5-tuple." + }, + "protocol": { + "type": "string", + "enum": [ + "TCP", + "UDP" + ], + "x-ms-enum": { + "name": "IpFlowProtocol", + "modelAsString": true + }, + "description": "Protocol to be verified on." + }, + "localPort": { + "type": "string", + "description": "The local port. Acceptable values are a single integer in the range (0-65535). Support for * for the source port, which depends on the direction." + }, + "remotePort": { + "type": "string", + "description": "The remote port. Acceptable values are a single integer in the range (0-65535). Support for * for the source port, which depends on the direction." + }, + "localIPAddress": { + "type": "string", + "description": "The local IP address. Acceptable values are valid IPv4 addresses." + }, + "remoteIPAddress": { + "type": "string", + "description": "The remote IP address. Acceptable values are valid IPv4 addresses." + }, + "targetNicResourceId": { + "type": "string", + "description": "The NIC ID. (If VM has multiple NICs and IP forwarding is enabled on any of them, then this parameter must be specified. Otherwise optional)." + } + } + }, + "VerificationIPFlowResult": { + "description": "Results of IP flow verification on the target resource.", + "properties": { + "access": { + "$ref": "./network.json#/definitions/Access", + "description": "Indicates whether the traffic is allowed or denied." + }, + "ruleName": { + "type": "string", + "description": "Name of the rule. If input is not matched against any security rule, it is not displayed." } } }, - "NetworkWatcher": { + "NextHopParameters": { + "description": "Parameters that define the source and destination endpoint.", + "required": [ + "targetResourceId", + "sourceIPAddress", + "destinationIPAddress" + ], "properties": { - "etag": { - "readOnly": true, + "targetResourceId": { "type": "string", - "description": "A unique read-only string that changes whenever the resource is updated." + "description": "The resource identifier of the target resource against which the action is to be performed." }, - "properties": { - "x-ms-client-flatten": true, - "$ref": "#/definitions/NetworkWatcherPropertiesFormat", - "description": "Properties of the network watcher." + "sourceIPAddress": { + "type": "string", + "description": "The source IP address." + }, + "destinationIPAddress": { + "type": "string", + "description": "The destination IP address." + }, + "targetNicResourceId": { + "type": "string", + "description": "The NIC ID. (If VM has multiple NICs and IP forwarding is enabled on any of the nics, then this parameter must be specified. Otherwise optional)." } - }, - "allOf": [ - { - "$ref": "./network.json#/definitions/Resource" + } + }, + "NextHopResult": { + "description": "The information about next hop from the specified VM.", + "properties": { + "nextHopType": { + "type": "string", + "enum": [ + "Internet", + "VirtualAppliance", + "VirtualNetworkGateway", + "VnetLocal", + "HyperNetGateway", + "None" + ], + "x-ms-enum": { + "name": "NextHopType", + "modelAsString": true + }, + "description": "Next hop type." + }, + "nextHopIpAddress": { + "type": "string", + "description": "Next hop IP Address." + }, + "routeTableId": { + "type": "string", + "description": "The resource identifier for the route table associated with the route being returned. If the route being returned does not correspond to any user created routes then this field will be the string 'System Route'." } - ], - "description": "Network watcher in a resource group." + } }, - "NetworkWatcherPropertiesFormat": { + "SecurityGroupViewParameters": { + "description": "Parameters that define the VM to check security groups for.", + "required": [ + "targetResourceId" + ], "properties": { - "provisioningState": { - "readOnly": true, - "$ref": "./network.json#/definitions/ProvisioningState", - "description": "The provisioning state of the network watcher resource." + "targetResourceId": { + "type": "string", + "description": "ID of the target VM." } - }, - "description": "The network watcher properties." + } }, - "NetworkWatcherListResult": { + "SecurityGroupViewResult": { + "description": "The information about security rules applied to the specified VM.", "properties": { - "value": { + "networkInterfaces": { "type": "array", + "description": "List of network interfaces on the specified VM.", "items": { - "$ref": "#/definitions/NetworkWatcher" - }, - "description": "List of network watcher resources." + "$ref": "#/definitions/SecurityGroupNetworkInterface" + } } - }, - "description": "Response for ListNetworkWatchers API service call." + } }, - "TopologyParameters": { + "SecurityGroupNetworkInterface": { + "description": "Network interface and all its associated security rules.", "properties": { - "targetResourceGroupName": { + "id": { "type": "string", - "description": "The name of the target resource group to perform topology on." + "description": "ID of the network interface." }, - "targetVirtualNetwork": { - "$ref": "./network.json#/definitions/SubResource", - "description": "The reference to the Virtual Network resource." + "securityRuleAssociations": { + "$ref": "#/definitions/SecurityRuleAssociations", + "description": "All security rules associated with the network interface." + } + } + }, + "SecurityRuleAssociations": { + "description": "All security rules associated with the network interface.", + "properties": { + "networkInterfaceAssociation": { + "$ref": "#/definitions/NetworkInterfaceAssociation", + "description": "Network interface and it's custom security rules." }, - "targetSubnet": { - "$ref": "./network.json#/definitions/SubResource", - "description": "The reference to the Subnet resource." + "subnetAssociation": { + "$ref": "#/definitions/SubnetAssociation", + "description": "Subnet and it's custom security rules." + }, + "defaultSecurityRules": { + "type": "array", + "items": { + "$ref": "./networkSecurityGroup.json#/definitions/SecurityRule" + }, + "description": "Collection of default security rules of the network security group." + }, + "effectiveSecurityRules": { + "type": "array", + "items": { + "$ref": "./networkInterface.json#/definitions/EffectiveNetworkSecurityRule" + }, + "description": "Collection of effective security rules." } - }, - "description": "Parameters that define the representation of topology." + } }, - "Topology": { + "NetworkInterfaceAssociation": { + "description": "Network interface and its custom security rules.", "properties": { "id": { "readOnly": true, "type": "string", - "description": "GUID representing the operation id." - }, - "createdDateTime": { - "readOnly": true, - "type": "string", - "format": "date-time", - "description": "The datetime when the topology was initially created for the resource group." + "description": "Network interface ID." }, - "lastModified": { + "securityRules": { + "type": "array", + "description": "Collection of custom security rules.", + "items": { + "$ref": "./networkSecurityGroup.json#/definitions/SecurityRule" + } + } + } + }, + "SubnetAssociation": { + "description": "Subnet and it's custom security rules.", + "properties": { + "id": { "readOnly": true, "type": "string", - "format": "date-time", - "description": "The datetime when the topology was last modified." + "description": "Subnet ID." }, - "resources": { + "securityRules": { "type": "array", + "description": "Collection of custom security rules.", "items": { - "$ref": "#/definitions/TopologyResource" - }, - "description": "A list of topology resources." + "$ref": "./networkSecurityGroup.json#/definitions/SecurityRule" + } + } + } + }, + "PacketCapture": { + "properties": { + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/PacketCaptureParameters", + "description": "Properties of the packet capture." } }, - "description": "Topology of the specified resource group." + "required": [ + "properties" + ], + "description": "Parameters that define the create packet capture operation." }, - "TopologyResource": { + "PacketCaptureParameters": { "properties": { - "name": { + "target": { "type": "string", - "description": "Name of the resource." + "description": "The ID of the targeted resource, only VM is currently supported." + }, + "bytesToCapturePerPacket": { + "type": "integer", + "default": 0, + "description": "Number of bytes captured per packet, the remaining bytes are truncated." + }, + "totalBytesPerSession": { + "type": "integer", + "default": 1073741824, + "description": "Maximum size of the capture output." }, - "id": { - "type": "string", - "description": "ID of the resource." + "timeLimitInSeconds": { + "type": "integer", + "default": 18000, + "description": "Maximum duration of the capture session in seconds." }, - "location": { - "type": "string", - "description": "Resource location." + "storageLocation": { + "$ref": "#/definitions/PacketCaptureStorageLocation", + "description": "Describes the storage location for a packet capture session." }, - "associations": { + "filters": { "type": "array", - "description": "Holds the associations the resource has with other resources in the resource group.", "items": { - "$ref": "#/definitions/TopologyAssociation" - } + "$ref": "#/definitions/PacketCaptureFilter" + }, + "description": "A list of packet capture filters." } }, - "description": "The network resource topology information for the given resource group." + "required": [ + "target", + "storageLocation" + ], + "description": "Parameters that define the create packet capture operation." }, - "TopologyAssociation": { + "PacketCaptureStorageLocation": { "properties": { - "name": { + "storageId": { "type": "string", - "description": "The name of the resource that is associated with the parent resource." + "description": "The ID of the storage account to save the packet capture session. Required if no local file path is provided." }, - "resourceId": { + "storagePath": { "type": "string", - "description": "The ID of the resource that is associated with the parent resource." + "description": "The URI of the storage path to save the packet capture. Must be a well-formed URI describing the location to save the packet capture." }, - "associationType": { + "filePath": { "type": "string", - "enum": [ - "Associated", - "Contains" - ], - "x-ms-enum": { - "name": "AssociationType", - "modelAsString": true - }, - "description": "The association type of the child resource to the parent resource." + "description": "A valid local path on the targeting VM. Must include the name of the capture file (*.cap). For linux virtual machine it must start with /var/captures. Required if no storage ID is provided, otherwise optional." } }, - "description": "Resources that have an association with the parent resource." + "description": "Describes the storage location for a packet capture session." }, - "VerificationIPFlowParameters": { - "description": "Parameters that define the IP flow to be verified.", - "required": [ - "targetResourceId", - "direction", - "protocol", - "localPort", - "remotePort", - "localIPAddress", - "remoteIPAddress" - ], + "PacketCaptureFilter": { "properties": { - "targetResourceId": { - "type": "string", - "description": "The ID of the target resource to perform next-hop on." - }, - "direction": { - "$ref": "#/definitions/Direction", - "description": "The direction of the packet represented as a 5-tuple." - }, "protocol": { "type": "string", "enum": [ "TCP", - "UDP" + "UDP", + "Any" ], "x-ms-enum": { - "name": "IpFlowProtocol", + "name": "PcProtocol", "modelAsString": true }, - "description": "Protocol to be verified on." - }, - "localPort": { - "type": "string", - "description": "The local port. Acceptable values are a single integer in the range (0-65535). Support for * for the source port, which depends on the direction." - }, - "remotePort": { - "type": "string", - "description": "The remote port. Acceptable values are a single integer in the range (0-65535). Support for * for the source port, which depends on the direction." + "default": "Any", + "description": "Protocol to be filtered on." }, "localIPAddress": { "type": "string", - "description": "The local IP address. Acceptable values are valid IPv4 addresses." + "description": "Local IP Address to be filtered on. Notation: \"127.0.0.1\" for single address entry. \"127.0.0.1-127.0.0.255\" for range. \"127.0.0.1;127.0.0.5\"? for multiple entries. Multiple ranges not currently supported. Mixing ranges with multiple entries not currently supported. Default = null." }, "remoteIPAddress": { "type": "string", - "description": "The remote IP address. Acceptable values are valid IPv4 addresses." + "description": "Local IP Address to be filtered on. Notation: \"127.0.0.1\" for single address entry. \"127.0.0.1-127.0.0.255\" for range. \"127.0.0.1;127.0.0.5;\" for multiple entries. Multiple ranges not currently supported. Mixing ranges with multiple entries not currently supported. Default = null." }, - "targetNicResourceId": { + "localPort": { "type": "string", - "description": "The NIC ID. (If VM has multiple NICs and IP forwarding is enabled on any of them, then this parameter must be specified. Otherwise optional)." + "description": "Local port to be filtered on. Notation: \"80\" for single port entry.\"80-85\" for range. \"80;443;\" for multiple entries. Multiple ranges not currently supported. Mixing ranges with multiple entries not currently supported. Default = null." + }, + "remotePort": { + "type": "string", + "description": "Remote port to be filtered on. Notation: \"80\" for single port entry.\"80-85\" for range. \"80;443;\" for multiple entries. Multiple ranges not currently supported. Mixing ranges with multiple entries not currently supported. Default = null." } - } + }, + "description": "Filter that is applied to packet capture request. Multiple filters can be applied." }, - "VerificationIPFlowResult": { - "description": "Results of IP flow verification on the target resource.", + "PacketCaptureListResult": { "properties": { - "access": { - "$ref": "./network.json#/definitions/Access", - "description": "Indicates whether the traffic is allowed or denied." - }, - "ruleName": { - "type": "string", - "description": "Name of the rule. If input is not matched against any security rule, it is not displayed." + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/PacketCaptureResult" + }, + "description": "Information about packet capture sessions." } - } + }, + "description": "List of packet capture sessions." }, - "NextHopParameters": { - "description": "Parameters that define the source and destination endpoint.", - "required": [ - "targetResourceId", - "sourceIPAddress", - "destinationIPAddress" - ], + "PacketCaptureResult": { "properties": { - "targetResourceId": { + "name": { + "readOnly": true, "type": "string", - "description": "The resource identifier of the target resource against which the action is to be performed." + "description": "Name of the packet capture session." }, - "sourceIPAddress": { + "id": { + "readOnly": true, "type": "string", - "description": "The source IP address." + "description": "ID of the packet capture operation." }, - "destinationIPAddress": { + "etag": { + "readOnly": true, "type": "string", - "description": "The destination IP address." + "description": "A unique read-only string that changes whenever the resource is updated." }, - "targetNicResourceId": { - "type": "string", - "description": "The NIC ID. (If VM has multiple NICs and IP forwarding is enabled on any of the nics, then this parameter must be specified. Otherwise optional)." + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/PacketCaptureResultProperties", + "description": "Properties of the packet capture result." } - } + }, + "description": "Information about packet capture session." }, - "NextHopResult": { - "description": "The information about next hop from the specified VM.", + "PacketCaptureResultProperties": { "properties": { - "nextHopType": { + "provisioningState": { + "readOnly": true, + "$ref": "./network.json#/definitions/ProvisioningState", + "description": "The provisioning state of the packet capture session." + } + }, + "allOf": [ + { + "$ref": "#/definitions/PacketCaptureParameters" + } + ], + "description": "Describes the properties of a packet capture session." + }, + "PacketCaptureQueryStatusResult": { + "properties": { + "name": { + "type": "string", + "description": "The name of the packet capture resource." + }, + "id": { + "type": "string", + "description": "The ID of the packet capture resource." + }, + "captureStartTime": { + "type": "string", + "format": "date-time", + "description": "The start time of the packet capture session." + }, + "packetCaptureStatus": { "type": "string", "enum": [ - "Internet", - "VirtualAppliance", - "VirtualNetworkGateway", - "VnetLocal", - "HyperNetGateway", - "None" + "NotStarted", + "Running", + "Stopped", + "Error", + "Unknown" ], "x-ms-enum": { - "name": "NextHopType", + "name": "PcStatus", "modelAsString": true }, - "description": "Next hop type." + "description": "The status of the packet capture session." }, - "nextHopIpAddress": { + "stopReason": { "type": "string", - "description": "Next hop IP Address." + "description": "The reason the current packet capture session was stopped." }, - "routeTableId": { - "type": "string", - "description": "The resource identifier for the route table associated with the route being returned. If the route being returned does not correspond to any user created routes then this field will be the string 'System Route'." + "packetCaptureError": { + "type": "array", + "description": "List of errors of packet capture session.", + "items": { + "type": "string", + "enum": [ + "InternalError", + "AgentStopped", + "CaptureFailed", + "LocalFileFailed", + "StorageFailed" + ], + "x-ms-enum": { + "name": "PcError", + "modelAsString": true + } + } } - } + }, + "description": "Status of packet capture session." }, - "SecurityGroupViewParameters": { - "description": "Parameters that define the VM to check security groups for.", + "TroubleshootingParameters": { + "description": "Parameters that define the resource to troubleshoot.", "required": [ - "targetResourceId" + "targetResourceId", + "properties" ], "properties": { "targetResourceId": { - "type": "string", - "description": "ID of the target VM." + "description": "The target resource to troubleshoot.", + "type": "string" + }, + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/TroubleshootingProperties", + "description": "Properties of the troubleshooting resource." } } }, - "SecurityGroupViewResult": { - "description": "The information about security rules applied to the specified VM.", + "QueryTroubleshootingParameters": { + "description": "Parameters that define the resource to query the troubleshooting result.", + "required": [ + "targetResourceId" + ], "properties": { - "networkInterfaces": { - "type": "array", - "description": "List of network interfaces on the specified VM.", - "items": { - "$ref": "#/definitions/SecurityGroupNetworkInterface" - } + "targetResourceId": { + "description": "The target resource ID to query the troubleshooting result.", + "type": "string" } } }, - "SecurityGroupNetworkInterface": { - "description": "Network interface and all its associated security rules.", + "TroubleshootingProperties": { + "description": "Storage location provided for troubleshoot.", + "required": [ + "storageId", + "storagePath" + ], "properties": { - "id": { - "type": "string", - "description": "ID of the network interface." + "storageId": { + "description": "The ID for the storage account to save the troubleshoot result.", + "type": "string" }, - "securityRuleAssociations": { - "$ref": "#/definitions/SecurityRuleAssociations", - "description": "All security rules associated with the network interface." + "storagePath": { + "description": "The path to the blob to save the troubleshoot result in.", + "type": "string" } } }, - "SecurityRuleAssociations": { - "description": "All security rules associated with the network interface.", + "TroubleshootingResult": { + "description": "Troubleshooting information gained from specified resource.", "properties": { - "networkInterfaceAssociation": { - "$ref": "#/definitions/NetworkInterfaceAssociation", - "description": "Network interface and it's custom security rules." + "startTime": { + "type": "string", + "format": "date-time", + "description": "The start time of the troubleshooting." }, - "subnetAssociation": { - "$ref": "#/definitions/SubnetAssociation", - "description": "Subnet and it's custom security rules." + "endTime": { + "type": "string", + "format": "date-time", + "description": "The end time of the troubleshooting." }, - "defaultSecurityRules": { - "type": "array", - "items": { - "$ref": "./networkSecurityGroup.json#/definitions/SecurityRule" - }, - "description": "Collection of default security rules of the network security group." + "code": { + "type": "string", + "description": "The result code of the troubleshooting." }, - "effectiveSecurityRules": { + "results": { "type": "array", + "description": "Information from troubleshooting.", "items": { - "$ref": "./networkInterface.json#/definitions/EffectiveNetworkSecurityRule" - }, - "description": "Collection of effective security rules." + "$ref": "#/definitions/TroubleshootingDetails" + } } } }, - "NetworkInterfaceAssociation": { - "description": "Network interface and its custom security rules.", + "TroubleshootingDetails": { + "description": "Information gained from troubleshooting of specified resource.", "properties": { "id": { - "readOnly": true, "type": "string", - "description": "Network interface ID." + "description": "The id of the get troubleshoot operation." }, - "securityRules": { + "reasonType": { + "type": "string", + "description": "Reason type of failure." + }, + "summary": { + "type": "string", + "description": "A summary of troubleshooting." + }, + "detail": { + "type": "string", + "description": "Details on troubleshooting results." + }, + "recommendedActions": { "type": "array", - "description": "Collection of custom security rules.", + "description": "List of recommended actions.", "items": { - "$ref": "./networkSecurityGroup.json#/definitions/SecurityRule" + "$ref": "#/definitions/TroubleshootingRecommendedActions" } } } }, - "SubnetAssociation": { - "description": "Subnet and it's custom security rules.", + "TroubleshootingRecommendedActions": { + "description": "Recommended actions based on discovered issues.", "properties": { - "id": { - "readOnly": true, - "type": "string", - "description": "Subnet ID." + "actionId": { + "description": "ID of the recommended action.", + "type": "string" }, - "securityRules": { - "type": "array", - "description": "Collection of custom security rules.", - "items": { - "$ref": "./networkSecurityGroup.json#/definitions/SecurityRule" - } + "actionText": { + "description": "Description of recommended actions.", + "type": "string" + }, + "actionUri": { + "description": "The uri linking to a documentation for the recommended troubleshooting actions.", + "type": "string" + }, + "actionUriText": { + "description": "The information from the URI for the recommended troubleshooting actions.", + "type": "string" } } }, - "PacketCapture": { + "FlowLogProperties": { + "description": "Parameters that define the configuration of flow log.", + "required": [ + "storageId", + "enabled" + ], "properties": { - "properties": { - "x-ms-client-flatten": true, - "$ref": "#/definitions/PacketCaptureParameters", - "description": "Properties of the packet capture." + "storageId": { + "description": "ID of the storage account which is used to store the flow log.", + "type": "string" + }, + "enabled": { + "description": "Flag to enable/disable flow logging.", + "type": "boolean" + }, + "retentionPolicy": { + "$ref": "#/definitions/RetentionPolicyParameters", + "description": "Parameters that define the retention policy for flow log." + }, + "format": { + "$ref": "#/definitions/FlowLogFormatParameters", + "description": "Parameters that define the flow log format." } - }, + } + }, + "FlowLogStatusParameters": { + "description": "Parameters that define a resource to query flow log and traffic analytics (optional) status.", "required": [ - "properties" + "targetResourceId" ], - "description": "Parameters that define the create packet capture operation." + "properties": { + "targetResourceId": { + "description": "The target resource where getting the flow log and traffic analytics (optional) status.", + "type": "string" + } + } }, - "PacketCaptureParameters": { + "RetentionPolicyParameters": { + "description": "Parameters that define the retention policy for flow log.", "properties": { - "target": { - "type": "string", - "description": "The ID of the targeted resource, only VM is currently supported." - }, - "bytesToCapturePerPacket": { + "days": { + "description": "Number of days to retain flow log records.", "type": "integer", - "default": 0, - "description": "Number of bytes captured per packet, the remaining bytes are truncated." + "default": 0 }, - "totalBytesPerSession": { - "type": "integer", - "default": 1073741824, - "description": "Maximum size of the capture output." + "enabled": { + "description": "Flag to enable/disable retention.", + "type": "boolean", + "default": false + } + } + }, + "FlowLogFormatParameters": { + "description": "Parameters that define the flow log format.", + "properties": { + "type": { + "type": "string", + "description": "The file type of flow log.", + "enum": [ + "JSON" + ], + "x-ms-enum": { + "name": "FlowLogFormatType", + "modelAsString": true + } }, - "timeLimitInSeconds": { + "version": { + "description": "The version (revision) of the flow log.", "type": "integer", - "default": 18000, - "description": "Maximum duration of the capture session in seconds." + "default": 0 + } + } + }, + "FlowLogInformation": { + "description": "Information on the configuration of flow log and traffic analytics (optional) .", + "required": [ + "targetResourceId", + "properties" + ], + "properties": { + "targetResourceId": { + "description": "The ID of the resource to configure for flow log and traffic analytics (optional) .", + "type": "string" }, - "storageLocation": { - "$ref": "#/definitions/PacketCaptureStorageLocation", - "description": "The storage location for a packet capture session." + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/FlowLogProperties", + "description": "Properties of the flow log." }, - "filters": { - "type": "array", - "items": { - "$ref": "#/definitions/PacketCaptureFilter" - }, - "description": "A list of packet capture filters." + "flowAnalyticsConfiguration": { + "$ref": "#/definitions/TrafficAnalyticsProperties", + "description": "Parameters that define the configuration of traffic analytics." } - }, + } + }, + "TrafficAnalyticsProperties": { + "description": "Parameters that define the configuration of traffic analytics.", "required": [ - "target", - "storageLocation" + "networkWatcherFlowAnalyticsConfiguration" ], - "description": "Parameters that define the create packet capture operation." + "properties": { + "networkWatcherFlowAnalyticsConfiguration": { + "$ref": "#/definitions/TrafficAnalyticsConfigurationProperties", + "description": "Parameters that define the configuration of traffic analytics." + } + } }, - "PacketCaptureStorageLocation": { + "TrafficAnalyticsConfigurationProperties": { + "description": "Parameters that define the configuration of traffic analytics.", + "required": [ + "enabled" + ], "properties": { - "storageId": { - "type": "string", - "description": "The ID of the storage account to save the packet capture session. Required if no local file path is provided." + "enabled": { + "description": "Flag to enable/disable traffic analytics.", + "type": "boolean" + }, + "workspaceId": { + "description": "The resource guid of the attached workspace.", + "type": "string" + }, + "workspaceRegion": { + "description": "The location of the attached workspace.", + "type": "string" }, - "storagePath": { - "type": "string", - "description": "The URI of the storage path to save the packet capture. Must be a well-formed URI describing the location to save the packet capture." + "workspaceResourceId": { + "description": "Resource Id of the attached workspace.", + "type": "string" }, - "filePath": { - "type": "string", - "description": "A valid local path on the targeting VM. Must include the name of the capture file (*.cap). For linux virtual machine it must start with /var/captures. Required if no storage ID is provided, otherwise optional." + "trafficAnalyticsInterval": { + "description": "The interval in minutes which would decide how frequently TA service should do flow analytics.", + "type": "integer" } - }, - "description": "The storage location for a packet capture session." + } }, - "PacketCaptureFilter": { + "ConnectivityParameters": { + "description": "Parameters that determine how the connectivity check will be performed.", + "required": [ + "source", + "destination" + ], "properties": { + "source": { + "$ref": "#/definitions/ConnectivitySource", + "description": "Describes the source of the connection." + }, + "destination": { + "$ref": "#/definitions/ConnectivityDestination", + "description": "Describes the destination of connection." + }, "protocol": { "type": "string", + "description": "Network protocol.", "enum": [ - "TCP", - "UDP", - "Any" + "Tcp", + "Http", + "Https", + "Icmp" ], "x-ms-enum": { - "name": "PcProtocol", + "name": "Protocol", "modelAsString": true - }, - "default": "Any", - "description": "Protocol to be filtered on." - }, - "localIPAddress": { - "type": "string", - "description": "Local IP Address to be filtered on. Notation: \"127.0.0.1\" for single address entry. \"127.0.0.1-127.0.0.255\" for range. \"127.0.0.1;127.0.0.5\"? for multiple entries. Multiple ranges not currently supported. Mixing ranges with multiple entries not currently supported. Default = null." - }, - "remoteIPAddress": { - "type": "string", - "description": "Local IP Address to be filtered on. Notation: \"127.0.0.1\" for single address entry. \"127.0.0.1-127.0.0.255\" for range. \"127.0.0.1;127.0.0.5;\" for multiple entries. Multiple ranges not currently supported. Mixing ranges with multiple entries not currently supported. Default = null." + } }, - "localPort": { - "type": "string", - "description": "Local port to be filtered on. Notation: \"80\" for single port entry.\"80-85\" for range. \"80;443;\" for multiple entries. Multiple ranges not currently supported. Mixing ranges with multiple entries not currently supported. Default = null." + "protocolConfiguration": { + "$ref": "#/definitions/ProtocolConfiguration", + "description": "Configuration of the protocol." }, - "remotePort": { - "type": "string", - "description": "Remote port to be filtered on. Notation: \"80\" for single port entry.\"80-85\" for range. \"80;443;\" for multiple entries. Multiple ranges not currently supported. Mixing ranges with multiple entries not currently supported. Default = null." + "preferredIPVersion": { + "$ref": "./network.json#/definitions/IPVersion", + "description": "Preferred IP version of the connection." } - }, - "description": "Filter that is applied to packet capture request. Multiple filters can be applied." + } }, - "PacketCaptureListResult": { + "ConnectivitySource": { + "description": "Parameters that define the source of the connection.", + "required": [ + "resourceId" + ], "properties": { - "value": { - "type": "array", - "items": { - "$ref": "#/definitions/PacketCaptureResult" - }, - "description": "Information about packet capture sessions." + "resourceId": { + "description": "The ID of the resource from which a connectivity check will be initiated.", + "type": "string" + }, + "port": { + "description": "The source port from which a connectivity check will be performed.", + "type": "integer" } - }, - "description": "List of packet capture sessions." + } }, - "PacketCaptureResult": { + "ConnectivityDestination": { + "description": "Parameters that define destination of connection.", "properties": { - "name": { - "readOnly": true, - "type": "string", - "description": "Name of the packet capture session." - }, - "id": { - "readOnly": true, - "type": "string", - "description": "ID of the packet capture operation." + "resourceId": { + "description": "The ID of the resource to which a connection attempt will be made.", + "type": "string" }, - "etag": { - "readOnly": true, - "type": "string", - "description": "A unique read-only string that changes whenever the resource is updated." + "address": { + "description": "The IP address or URI the resource to which a connection attempt will be made.", + "type": "string" }, - "properties": { - "x-ms-client-flatten": true, - "$ref": "#/definitions/PacketCaptureResultProperties", - "description": "Properties of the packet capture result." + "port": { + "description": "Port on which check connectivity will be performed.", + "type": "integer" } - }, - "description": "Information about packet capture session." + } }, - "PacketCaptureResultProperties": { + "ConnectivityInformation": { + "description": "Information on the connectivity status.", "properties": { - "provisioningState": { + "hops": { "readOnly": true, - "$ref": "./network.json#/definitions/ProvisioningState", - "description": "The provisioning state of the packet capture session." - } - }, - "allOf": [ - { - "$ref": "#/definitions/PacketCaptureParameters" - } - ], - "description": "The properties of a packet capture session." - }, - "PacketCaptureQueryStatusResult": { - "properties": { - "name": { - "type": "string", - "description": "The name of the packet capture resource." - }, - "id": { - "type": "string", - "description": "The ID of the packet capture resource." - }, - "captureStartTime": { - "type": "string", - "format": "date-time", - "description": "The start time of the packet capture session." + "type": "array", + "description": "List of hops between the source and the destination.", + "items": { + "$ref": "#/definitions/ConnectivityHop" + } }, - "packetCaptureStatus": { + "connectionStatus": { + "readOnly": true, "type": "string", "enum": [ - "NotStarted", - "Running", - "Stopped", - "Error", - "Unknown" + "Unknown", + "Connected", + "Disconnected", + "Degraded" ], "x-ms-enum": { - "name": "PcStatus", + "name": "ConnectionStatus", "modelAsString": true }, - "description": "The status of the packet capture session." + "description": "The connection status." }, - "stopReason": { - "type": "string", - "description": "The reason the current packet capture session was stopped." + "avgLatencyInMs": { + "description": "Average latency in milliseconds.", + "readOnly": true, + "type": "integer" }, - "packetCaptureError": { - "type": "array", - "description": "List of errors of packet capture session.", - "items": { - "type": "string", - "enum": [ - "InternalError", - "AgentStopped", - "CaptureFailed", - "LocalFileFailed", - "StorageFailed" - ], - "x-ms-enum": { - "name": "PcError", - "modelAsString": true - } - } - } - }, - "description": "Status of packet capture session." - }, - "TroubleshootingParameters": { - "description": "Parameters that define the resource to troubleshoot.", - "required": [ - "targetResourceId", - "properties" - ], - "properties": { - "targetResourceId": { - "description": "The target resource to troubleshoot.", - "type": "string" + "minLatencyInMs": { + "description": "Minimum latency in milliseconds.", + "readOnly": true, + "type": "integer" }, - "properties": { - "x-ms-client-flatten": true, - "$ref": "#/definitions/TroubleshootingProperties", - "description": "Properties of the troubleshooting resource." + "maxLatencyInMs": { + "description": "Maximum latency in milliseconds.", + "readOnly": true, + "type": "integer" + }, + "probesSent": { + "description": "Total number of probes sent.", + "readOnly": true, + "type": "integer" + }, + "probesFailed": { + "description": "Number of failed probes.", + "readOnly": true, + "type": "integer" } } }, - "QueryTroubleshootingParameters": { - "description": "Parameters that define the resource to query the troubleshooting result.", - "required": [ - "targetResourceId" - ], + "ConnectivityHop": { + "description": "Information about a hop between the source and the destination.", "properties": { - "targetResourceId": { - "description": "The target resource ID to query the troubleshooting result.", + "type": { + "description": "The type of the hop.", + "readOnly": true, "type": "string" - } - } - }, - "TroubleshootingProperties": { - "description": "Storage location provided for troubleshoot.", - "required": [ - "storageId", - "storagePath" - ], - "properties": { - "storageId": { - "description": "The ID for the storage account to save the troubleshoot result.", + }, + "id": { + "description": "The ID of the hop.", + "readOnly": true, "type": "string" }, - "storagePath": { - "description": "The path to the blob to save the troubleshoot result in.", + "address": { + "description": "The IP address of the hop.", + "readOnly": true, "type": "string" - } - } - }, - "TroubleshootingResult": { - "description": "Troubleshooting information gained from specified resource.", - "properties": { - "startTime": { - "type": "string", - "format": "date-time", - "description": "The start time of the troubleshooting." }, - "endTime": { - "type": "string", - "format": "date-time", - "description": "The end time of the troubleshooting." + "resourceId": { + "description": "The ID of the resource corresponding to this hop.", + "readOnly": true, + "type": "string" }, - "code": { - "type": "string", - "description": "The result code of the troubleshooting." + "nextHopIds": { + "readOnly": true, + "type": "array", + "description": "List of next hop identifiers.", + "items": { + "type": "string" + } }, - "results": { + "issues": { + "readOnly": true, "type": "array", - "description": "Information from troubleshooting.", + "description": "List of issues.", "items": { - "$ref": "#/definitions/TroubleshootingDetails" + "$ref": "#/definitions/ConnectivityIssue" } } } }, - "TroubleshootingDetails": { - "description": "Information gained from troubleshooting of specified resource.", + "ConnectivityIssue": { + "description": "Information about an issue encountered in the process of checking for connectivity.", "properties": { - "id": { - "type": "string", - "description": "The id of the get troubleshoot operation." - }, - "reasonType": { + "origin": { + "readOnly": true, "type": "string", - "description": "Reason type of failure." + "enum": [ + "Local", + "Inbound", + "Outbound" + ], + "x-ms-enum": { + "name": "Origin", + "modelAsString": true + }, + "description": "The origin of the issue." }, - "summary": { + "severity": { + "readOnly": true, "type": "string", - "description": "A summary of troubleshooting." + "enum": [ + "Error", + "Warning" + ], + "x-ms-enum": { + "name": "Severity", + "modelAsString": true + }, + "description": "The severity of the issue." }, - "detail": { + "type": { + "readOnly": true, "type": "string", - "description": "Details on troubleshooting results." + "enum": [ + "Unknown", + "AgentStopped", + "GuestFirewall", + "DnsResolution", + "SocketBind", + "NetworkSecurityRule", + "UserDefinedRoute", + "PortThrottled", + "Platform" + ], + "x-ms-enum": { + "name": "IssueType", + "modelAsString": true + }, + "description": "The type of issue." }, - "recommendedActions": { + "context": { + "readOnly": true, "type": "array", - "description": "List of recommended actions.", + "description": "Provides additional context on the issue.", "items": { - "$ref": "#/definitions/TroubleshootingRecommendedActions" + "$ref": "#/definitions/IssueContext" } } } }, - "TroubleshootingRecommendedActions": { - "description": "Recommended actions based on discovered issues.", - "properties": { - "actionId": { - "description": "ID of the recommended action.", - "type": "string" - }, - "actionText": { - "description": "Description of recommended actions.", - "type": "string" - }, - "actionUri": { - "description": "The uri linking to a documentation for the recommended troubleshooting actions.", - "type": "string" - }, - "actionUriText": { - "description": "The information from the URI for the recommended troubleshooting actions.", - "type": "string" - } + "IssueContext": { + "description": "A key-value pair that provides additional context on the issue.", + "type": "object", + "additionalProperties": { + "type": "string" } }, - "FlowLogProperties": { - "description": "Parameters that define the configuration of flow log.", - "required": [ - "storageId", - "enabled" - ], + "ProtocolConfiguration": { + "description": "Configuration of the protocol.", "properties": { - "storageId": { - "description": "ID of the storage account which is used to store the flow log.", - "type": "string" - }, - "enabled": { - "description": "Flag to enable/disable flow logging.", - "type": "boolean" - }, - "retentionPolicy": { - "$ref": "#/definitions/RetentionPolicyParameters", - "description": "Parameters that define the retention policy for flow log." - }, - "format": { - "$ref": "#/definitions/FlowLogFormatParameters", - "description": "Parameters that define the flow log format." + "HTTPConfiguration": { + "$ref": "#/definitions/HTTPConfiguration", + "description": "HTTP configuration of the connectivity check." } } }, - "FlowLogStatusParameters": { - "description": "Parameters that define a resource to query flow log and traffic analytics (optional) status.", - "required": [ - "targetResourceId" - ], + "HTTPConfiguration": { "properties": { - "targetResourceId": { - "description": "The target resource where getting the flow log and traffic analytics (optional) status.", - "type": "string" + "method": { + "type": "string", + "description": "HTTP method.", + "enum": [ + "Get" + ], + "x-ms-enum": { + "name": "HTTPMethod", + "modelAsString": true + } + }, + "headers": { + "type": "array", + "description": "List of HTTP headers.", + "items": { + "$ref": "#/definitions/HTTPHeader" + } + }, + "validStatusCodes": { + "type": "array", + "items": { + "type": "integer" + }, + "description": "Valid status codes." } - } + }, + "description": "HTTP configuration of the connectivity check." }, - "RetentionPolicyParameters": { - "description": "Parameters that define the retention policy for flow log.", + "HTTPHeader": { "properties": { - "days": { - "description": "Number of days to retain flow log records.", - "type": "integer", - "default": 0 + "name": { + "type": "string", + "description": "The name in HTTP header." }, - "enabled": { - "description": "Flag to enable/disable retention.", - "type": "boolean", - "default": false + "value": { + "type": "string", + "description": "The value in HTTP header." } - } + }, + "description": "Describes the HTTP header." }, - "FlowLogFormatParameters": { - "description": "Parameters that define the flow log format.", + "AzureReachabilityReportParameters": { "properties": { - "type": { + "providerLocation": { + "$ref": "#/definitions/AzureReachabilityReportLocation", + "description": "Parameters that define a geographic location." + }, + "providers": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of Internet service providers." + }, + "azureLocations": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional Azure regions to scope the query to." + }, + "startTime": { "type": "string", - "description": "The file type of flow log.", - "enum": [ - "JSON" - ], - "x-ms-enum": { - "name": "FlowLogFormatType", - "modelAsString": true - } + "format": "date-time", + "description": "The start time for the Azure reachability report." }, - "version": { - "description": "The version (revision) of the flow log.", - "type": "integer", - "default": 0 + "endTime": { + "type": "string", + "format": "date-time", + "description": "The end time for the Azure reachability report." } - } - }, - "FlowLogInformation": { - "description": "Information on the configuration of flow log and traffic analytics (optional) .", + }, "required": [ - "targetResourceId", - "properties" + "providerLocation", + "startTime", + "endTime" ], + "description": "Geographic and time constraints for Azure reachability report." + }, + "AzureReachabilityReportLocation": { "properties": { - "targetResourceId": { - "description": "The ID of the resource to configure for flow log and traffic analytics (optional) .", - "type": "string" + "country": { + "type": "string", + "description": "The name of the country." }, - "properties": { - "x-ms-client-flatten": true, - "$ref": "#/definitions/FlowLogProperties", - "description": "Properties of the flow log." + "state": { + "type": "string", + "description": "The name of the state." }, - "flowAnalyticsConfiguration": { - "$ref": "#/definitions/TrafficAnalyticsProperties", - "description": "Parameters that define the configuration of traffic analytics." + "city": { + "type": "string", + "description": "The name of the city or town." } - } - }, - "TrafficAnalyticsProperties": { - "description": "Parameters that define the configuration of traffic analytics.", + }, "required": [ - "networkWatcherFlowAnalyticsConfiguration" + "country" ], + "description": "Parameters that define a geographic location." + }, + "AzureReachabilityReport": { "properties": { - "networkWatcherFlowAnalyticsConfiguration": { - "$ref": "#/definitions/TrafficAnalyticsConfigurationProperties", - "description": "Parameters that define the configuration of traffic analytics." + "aggregationLevel": { + "type": "string", + "description": "The aggregation level of Azure reachability report. Can be Country, State or City." + }, + "providerLocation": { + "$ref": "#/definitions/AzureReachabilityReportLocation", + "description": "Parameters that define a geographic location." + }, + "reachabilityReport": { + "type": "array", + "description": "List of Azure reachability report items.", + "items": { + "$ref": "#/definitions/AzureReachabilityReportItem" + } } - } - }, - "TrafficAnalyticsConfigurationProperties": { - "description": "Parameters that define the configuration of traffic analytics.", + }, "required": [ - "enabled" + "aggregationLevel", + "providerLocation", + "reachabilityReport" ], + "description": "Azure reachability report details." + }, + "AzureReachabilityReportItem": { "properties": { - "enabled": { - "description": "Flag to enable/disable traffic analytics.", - "type": "boolean" - }, - "workspaceId": { - "description": "The resource guid of the attached workspace.", - "type": "string" - }, - "workspaceRegion": { - "description": "The location of the attached workspace.", - "type": "string" + "provider": { + "type": "string", + "description": "The Internet service provider." }, - "workspaceResourceId": { - "description": "Resource Id of the attached workspace.", - "type": "string" + "azureLocation": { + "type": "string", + "description": "The Azure region." }, - "trafficAnalyticsInterval": { - "description": "The interval in minutes which would decide how frequently TA service should do flow analytics.", - "type": "integer" + "latencies": { + "type": "array", + "description": "List of latency details for each of the time series.", + "items": { + "$ref": "#/definitions/AzureReachabilityReportLatencyInfo" + } } - } + }, + "description": "Azure reachability report details for a given provider location." }, - "ConnectivityParameters": { - "description": "Parameters that determine how the connectivity check will be performed.", - "required": [ - "source", - "destination" - ], + "AzureReachabilityReportLatencyInfo": { "properties": { - "source": { - "$ref": "#/definitions/ConnectivitySource", - "description": "The source of the connection." + "timeStamp": { + "type": "string", + "format": "date-time", + "description": "The time stamp." }, - "destination": { - "$ref": "#/definitions/ConnectivityDestination", - "description": "The destination of connection." + "score": { + "type": "integer", + "description": "The relative latency score between 1 and 100, higher values indicating a faster connection.", + "minimum": 1, + "maximum": 100 + } + }, + "description": "Details on latency for a time series." + }, + "AvailableProvidersListParameters": { + "properties": { + "azureLocations": { + "type": "array", + "items": { + "type": "string" + }, + "description": "A list of Azure regions." }, - "protocol": { + "country": { "type": "string", - "description": "Network protocol.", - "enum": [ - "Tcp", - "Http", - "Https", - "Icmp" - ], - "x-ms-enum": { - "name": "Protocol", - "modelAsString": true - } + "description": "The country for available providers list." }, - "protocolConfiguration": { - "$ref": "#/definitions/ProtocolConfiguration", - "description": "Configuration of the protocol." + "state": { + "type": "string", + "description": "The state for available providers list." }, - "preferredIPVersion": { - "$ref": "./network.json#/definitions/IPVersion", - "description": "Preferred IP version of the connection." + "city": { + "type": "string", + "description": "The city or town for available providers list." } - } + }, + "description": "Constraints that determine the list of available Internet service providers." }, - "ConnectivitySource": { - "description": "Parameters that define the source of the connection.", + "AvailableProvidersList": { + "properties": { + "countries": { + "type": "array", + "description": "List of available countries.", + "items": { + "$ref": "#/definitions/AvailableProvidersListCountry" + } + } + }, "required": [ - "resourceId" + "countries" ], + "description": "List of available countries with details." + }, + "AvailableProvidersListCountry": { "properties": { - "resourceId": { - "description": "The ID of the resource from which a connectivity check will be initiated.", - "type": "string" + "countryName": { + "type": "string", + "description": "The country name." }, - "port": { - "description": "The source port from which a connectivity check will be performed.", - "type": "integer" + "providers": { + "type": "array", + "items": { + "type": "string" + }, + "description": "A list of Internet service providers." + }, + "states": { + "type": "array", + "description": "List of available states in the country.", + "items": { + "$ref": "#/definitions/AvailableProvidersListState" + } } - } + }, + "description": "Country details." }, - "ConnectivityDestination": { - "description": "Parameters that define destination of connection.", + "AvailableProvidersListState": { "properties": { - "resourceId": { - "description": "The ID of the resource to which a connection attempt will be made.", - "type": "string" + "stateName": { + "type": "string", + "description": "The state name." }, - "address": { - "description": "The IP address or URI the resource to which a connection attempt will be made.", - "type": "string" + "providers": { + "type": "array", + "items": { + "type": "string" + }, + "description": "A list of Internet service providers." }, - "port": { - "description": "Port on which check connectivity will be performed.", - "type": "integer" + "cities": { + "type": "array", + "description": "List of available cities or towns in the state.", + "items": { + "$ref": "#/definitions/AvailableProvidersListCity" + } } - } + }, + "description": "State details." }, - "ConnectivityInformation": { - "description": "Information on the connectivity status.", + "AvailableProvidersListCity": { "properties": { - "hops": { - "readOnly": true, + "cityName": { + "type": "string", + "description": "The city or town name." + }, + "providers": { "type": "array", - "description": "List of hops between the source and the destination.", "items": { - "$ref": "#/definitions/ConnectivityHop" - } + "type": "string" + }, + "description": "A list of Internet service providers." + } + }, + "description": "City or town details." + }, + "NetworkConfigurationDiagnosticParameters": { + "description": "Parameters to get network configuration diagnostic.", + "required": [ + "targetResourceId", + "profiles" + ], + "properties": { + "targetResourceId": { + "type": "string", + "description": "The ID of the target resource to perform network configuration diagnostic. Valid options are VM, NetworkInterface, VMSS/NetworkInterface and Application Gateway." }, - "connectionStatus": { - "readOnly": true, + "verbosityLevel": { "type": "string", "enum": [ - "Unknown", - "Connected", - "Disconnected", - "Degraded" + "Normal", + "Minimum", + "Full" ], "x-ms-enum": { - "name": "ConnectionStatus", + "name": "VerbosityLevel", "modelAsString": true }, - "description": "The connection status." - }, - "avgLatencyInMs": { - "description": "Average latency in milliseconds.", - "readOnly": true, - "type": "integer" - }, - "minLatencyInMs": { - "description": "Minimum latency in milliseconds.", - "readOnly": true, - "type": "integer" - }, - "maxLatencyInMs": { - "description": "Maximum latency in milliseconds.", - "readOnly": true, - "type": "integer" - }, - "probesSent": { - "description": "Total number of probes sent.", - "readOnly": true, - "type": "integer" + "description": "Verbosity level." }, - "probesFailed": { - "description": "Number of failed probes.", - "readOnly": true, - "type": "integer" + "profiles": { + "type": "array", + "description": "List of network configuration diagnostic profiles.", + "items": { + "$ref": "#/definitions/NetworkConfigurationDiagnosticProfile" + } } } }, - "ConnectivityHop": { - "description": "Information about a hop between the source and the destination.", + "NetworkConfigurationDiagnosticProfile": { + "description": "Parameters to compare with network configuration.", + "required": [ + "direction", + "protocol", + "source", + "destination", + "destinationPort" + ], "properties": { - "type": { - "description": "The type of the hop.", - "readOnly": true, - "type": "string" + "direction": { + "$ref": "#/definitions/Direction", + "description": "The direction of the traffic." }, - "id": { - "description": "The ID of the hop.", - "readOnly": true, - "type": "string" + "protocol": { + "type": "string", + "description": "Protocol to be verified on. Accepted values are '*', TCP, UDP." }, - "address": { - "description": "The IP address of the hop.", - "readOnly": true, - "type": "string" + "source": { + "type": "string", + "description": "Traffic source. Accepted values are '*', IP Address/CIDR, Service Tag." }, - "resourceId": { - "description": "The ID of the resource corresponding to this hop.", - "readOnly": true, - "type": "string" + "destination": { + "type": "string", + "description": "Traffic destination. Accepted values are: '*', IP Address/CIDR, Service Tag." }, - "nextHopIds": { + "destinationPort": { + "type": "string", + "description": "Traffic destination port. Accepted values are '*' and a single port in the range (0 - 65535)." + } + } + }, + "NetworkConfigurationDiagnosticResponse": { + "description": "Results of network configuration diagnostic on the target resource.", + "properties": { + "results": { "readOnly": true, "type": "array", - "description": "List of next hop identifiers.", + "description": "List of network configuration diagnostic results.", "items": { - "type": "string" + "$ref": "#/definitions/NetworkConfigurationDiagnosticResult" } + } + } + }, + "NetworkConfigurationDiagnosticResult": { + "description": "Network configuration diagnostic result corresponded to provided traffic query.", + "properties": { + "profile": { + "$ref": "#/definitions/NetworkConfigurationDiagnosticProfile", + "description": "Network configuration diagnostic profile." }, - "issues": { + "networkSecurityGroupResult": { + "$ref": "#/definitions/NetworkSecurityGroupResult", + "description": "Network security group result." + } + } + }, + "NetworkSecurityGroupResult": { + "description": "Network configuration diagnostic result corresponded provided traffic query.", + "properties": { + "securityRuleAccessResult": { + "$ref": "./networkSecurityGroup.json#/definitions/SecurityRuleAccess", + "description": "The network traffic is allowed or denied." + }, + "evaluatedNetworkSecurityGroups": { "readOnly": true, "type": "array", - "description": "List of issues.", + "description": "List of results network security groups diagnostic.", "items": { - "$ref": "#/definitions/ConnectivityIssue" + "$ref": "#/definitions/EvaluatedNetworkSecurityGroup" } } } }, - "ConnectivityIssue": { - "description": "Information about an issue encountered in the process of checking for connectivity.", + "EvaluatedNetworkSecurityGroup": { + "description": "Results of network security group evaluation.", "properties": { - "origin": { - "readOnly": true, + "networkSecurityGroupId": { "type": "string", - "enum": [ - "Local", - "Inbound", - "Outbound" - ], - "x-ms-enum": { - "name": "Origin", - "modelAsString": true - }, - "description": "The origin of the issue." + "description": "Network security group ID." }, - "severity": { - "readOnly": true, + "appliedTo": { "type": "string", - "enum": [ - "Error", - "Warning" - ], - "x-ms-enum": { - "name": "Severity", - "modelAsString": true - }, - "description": "The severity of the issue." + "description": "Resource ID of nic or subnet to which network security group is applied." }, - "type": { - "readOnly": true, - "type": "string", - "enum": [ - "Unknown", - "AgentStopped", - "GuestFirewall", - "DnsResolution", - "SocketBind", - "NetworkSecurityRule", - "UserDefinedRoute", - "PortThrottled", - "Platform" - ], - "x-ms-enum": { - "name": "IssueType", - "modelAsString": true - }, - "description": "The type of issue." + "matchedRule": { + "$ref": "#/definitions/MatchedRule", + "description": "Matched network security rule." }, - "context": { + "rulesEvaluationResult": { "readOnly": true, "type": "array", - "description": "Provides additional context on the issue.", + "description": "List of network security rules evaluation results.", "items": { - "$ref": "#/definitions/IssueContext" + "$ref": "#/definitions/NetworkSecurityRulesEvaluationResult" } } } }, - "IssueContext": { - "description": "A key-value pair that provides additional context on the issue.", - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "ProtocolConfiguration": { - "description": "Configuration of the protocol.", + "MatchedRule": { + "description": "Matched rule.", "properties": { - "HTTPConfiguration": { - "$ref": "#/definitions/HTTPConfiguration", - "description": "HTTP configuration of the connectivity check." + "ruleName": { + "type": "string", + "description": "Name of the matched network security rule." + }, + "action": { + "type": "string", + "description": "The network traffic is allowed or denied. Possible values are 'Allow' and 'Deny'." } } }, - "HTTPConfiguration": { + "NetworkSecurityRulesEvaluationResult": { + "description": "Network security rules evaluation result.", "properties": { - "method": { + "name": { "type": "string", - "description": "HTTP method.", - "enum": [ - "Get" - ], - "x-ms-enum": { - "name": "HTTPMethod", - "modelAsString": true - } + "description": "Name of the network security rule." }, - "headers": { - "type": "array", - "description": "List of HTTP headers.", - "items": { - "$ref": "#/definitions/HTTPHeader" - } + "protocolMatched": { + "type": "boolean", + "description": "Value indicating whether protocol is matched." }, - "validStatusCodes": { - "type": "array", - "items": { - "type": "integer" - }, - "description": "Valid status codes." + "sourceMatched": { + "type": "boolean", + "description": "Value indicating whether source is matched." + }, + "sourcePortMatched": { + "type": "boolean", + "description": "Value indicating whether source port is matched." + }, + "destinationMatched": { + "type": "boolean", + "description": "Value indicating whether destination is matched." + }, + "destinationPortMatched": { + "type": "boolean", + "description": "Value indicating whether destination port is matched." } - }, - "description": "HTTP configuration of the connectivity check." + } }, - "HTTPHeader": { + "Direction": { + "type": "string", + "description": "The direction of the traffic.", + "enum": [ + "Inbound", + "Outbound" + ], + "x-ms-enum": { + "name": "Direction", + "modelAsString": true + } + }, + "ConnectionMonitor": { "properties": { - "name": { + "location": { "type": "string", - "description": "The name in HTTP header." + "description": "Connection monitor location." }, - "value": { - "type": "string", - "description": "The value in HTTP header." + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Connection monitor tags." + }, + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/ConnectionMonitorParameters", + "description": "Properties of the connection monitor." } }, - "description": "The HTTP header." + "required": [ + "properties" + ], + "description": "Parameters that define the operation to create a connection monitor." }, - "AzureReachabilityReportParameters": { + "ConnectionMonitorParameters": { "properties": { - "providerLocation": { - "$ref": "#/definitions/AzureReachabilityReportLocation", - "description": "Parameters that define a geographic location." + "source": { + "$ref": "#/definitions/ConnectionMonitorSource", + "description": "Describes the source of connection monitor." }, - "providers": { + "destination": { + "$ref": "#/definitions/ConnectionMonitorDestination", + "description": "Describes the destination of connection monitor." + }, + "autoStart": { + "type": "boolean", + "default": true, + "description": "Determines if the connection monitor will start automatically once created." + }, + "monitoringIntervalInSeconds": { + "type": "integer", + "default": 60, + "description": "Monitoring interval in seconds." + }, + "endpoints": { "type": "array", + "description": "List of connection monitor endpoints.", "items": { - "type": "string" - }, - "description": "List of Internet service providers." + "$ref": "#/definitions/ConnectionMonitorEndpoint" + } }, - "azureLocations": { + "testConfigurations": { "type": "array", + "description": "List of connection monitor test configurations.", "items": { - "type": "string" - }, - "description": "Optional Azure regions to scope the query to." + "$ref": "#/definitions/ConnectionMonitorTestConfiguration" + } }, - "startTime": { - "type": "string", - "format": "date-time", - "description": "The start time for the Azure reachability report." + "testGroups": { + "type": "array", + "description": "List of connection monitor test groups.", + "items": { + "$ref": "#/definitions/ConnectionMonitorTestGroup" + } }, - "endTime": { + "outputs": { + "type": "array", + "description": "List of connection monitor outputs.", + "items": { + "$ref": "#/definitions/ConnectionMonitorOutput" + } + } + }, + "description": "Parameters that define the operation to create a connection monitor." + }, + "ConnectionMonitorSource": { + "properties": { + "resourceId": { "type": "string", - "format": "date-time", - "description": "The end time for the Azure reachability report." + "description": "The ID of the resource used as the source by connection monitor." + }, + "port": { + "type": "integer", + "description": "The source port used by connection monitor." } }, "required": [ - "providerLocation", - "startTime", - "endTime" + "resourceId" ], - "description": "Geographic and time constraints for Azure reachability report." + "description": "Describes the source of connection monitor." }, - "AzureReachabilityReportLocation": { + "ConnectionMonitorDestination": { "properties": { - "country": { + "resourceId": { "type": "string", - "description": "The name of the country." + "description": "The ID of the resource used as the destination by connection monitor." }, - "state": { + "address": { "type": "string", - "description": "The name of the state." + "description": "Address of the connection monitor destination (IP or domain name)." }, - "city": { - "type": "string", - "description": "The name of the city or town." + "port": { + "type": "integer", + "description": "The destination port used by connection monitor." } }, - "required": [ - "country" - ], - "description": "Parameters that define a geographic location." + "description": "Describes the destination of connection monitor." }, - "AzureReachabilityReport": { + "ConnectionMonitorEndpoint": { "properties": { - "aggregationLevel": { + "name": { "type": "string", - "description": "The aggregation level of Azure reachability report. Can be Country, State or City." + "description": "The name of the connection monitor endpoint." }, - "providerLocation": { - "$ref": "#/definitions/AzureReachabilityReportLocation", - "description": "Parameters that define a geographic location." + "resourceId": { + "type": "string", + "description": "Resource ID of the connection monitor endpoint." }, - "reachabilityReport": { - "type": "array", - "description": "List of Azure reachability report items.", - "items": { - "$ref": "#/definitions/AzureReachabilityReportItem" - } + "address": { + "type": "string", + "description": "Address of the connection monitor endpoint (IP or domain name)." + }, + "filter": { + "$ref": "#/definitions/ConnectionMonitorFilter", + "description": "Describes the connection monitor filter." } }, - "required": [ - "aggregationLevel", - "providerLocation", - "reachabilityReport" - ], - "description": "Azure reachability report details." + "description": "Describes the connection monitor endpoint." }, - "AzureReachabilityReportItem": { + "ConnectionMonitorFilter": { "properties": { - "provider": { - "type": "string", - "description": "The Internet service provider." - }, - "azureLocation": { + "type": { "type": "string", - "description": "The Azure region." + "enum": [ + "Include" + ], + "x-ms-enum": { + "name": "ConnectionMonitorFilterType", + "modelAsString": true + }, + "description": "The connection monitor filter type. Currently only 'Include' is supported." }, - "latencies": { + "items": { "type": "array", - "description": "List of latency details for each of the time series.", + "description": "List of connection monitor endpoint items.", "items": { - "$ref": "#/definitions/AzureReachabilityReportLatencyInfo" + "$ref": "#/definitions/ConnectionMonitorEndpointItem" } } }, - "description": "Azure reachability report details for a given provider location." + "description": "Describes the connection monitor filter." }, - "AzureReachabilityReportLatencyInfo": { + "ConnectionMonitorEndpointItem": { "properties": { - "timeStamp": { + "type": { "type": "string", - "format": "date-time", - "description": "The time stamp." + "enum": [ + "AgentAddress" + ], + "x-ms-enum": { + "name": "ConnectionMonitorEndpointItemType", + "modelAsString": true + }, + "description": "The connection monitor endpoint item type. Currently only 'AgentAddress' is supported." }, - "score": { - "type": "integer", - "description": "The relative latency score between 1 and 100, higher values indicating a faster connection.", - "minimum": 1, - "maximum": 100 + "address": { + "type": "string", + "description": "The address of endpoint sub resource." } }, - "description": "Details on latency for a time series." + "description": "Describes the connection monitor endpoint item." }, - "AvailableProvidersListParameters": { + "ConnectionMonitorTestGroup": { "properties": { - "azureLocations": { + "name": { + "type": "string", + "description": "The name of the connection monitor test group." + }, + "disable": { + "type": "boolean", + "description": "Value indicating whether test group is disabled." + }, + "testConfigurations": { "type": "array", "items": { "type": "string" }, - "description": "A list of Azure regions." + "description": "A list of test configuration names." }, - "country": { + "sources": { + "type": "array", + "items": { + "type": "string" + }, + "description": "A list of source endpoint names." + }, + "destinations": { + "type": "array", + "items": { + "type": "string" + }, + "description": "A list of destination endpoint names." + } + }, + "description": "Describes the connection monitor test group." + }, + "ConnectionMonitorTestConfiguration": { + "properties": { + "name": { "type": "string", - "description": "The country for available providers list." + "description": "The name of the connection monitor test configuration." }, - "state": { + "testFrequencySec": { + "type": "integer", + "description": "Test frequency in seconds." + }, + "protocol": { "type": "string", - "description": "The state for available providers list." + "enum": [ + "Tcp", + "Http", + "Icmp" + ], + "x-ms-enum": { + "name": "ConnectionMonitorTestConfigurationProtocol", + "modelAsString": true + }, + "description": "The protocol." }, - "city": { + "preferredIPVersion": { "type": "string", - "description": "The city or town for available providers list." + "enum": [ + "IPv4", + "IPv6" + ], + "x-ms-enum": { + "name": "PreferredIPVersion", + "modelAsString": true + }, + "description": "The preferred IP version." + }, + "httpConfiguration": { + "$ref": "#/definitions/ConnectionMonitorHttpConfiguration", + "description": "Describes the HTTP configuration." + }, + "tcpConfiguration": { + "$ref": "#/definitions/ConnectionMonitorTcpConfiguration", + "description": "Describes the TCP configuration." + }, + "icmpConfiguration": { + "$ref": "#/definitions/ConnectionMonitorIcmpConfiguration", + "description": "Describes the ICMP configuration." + }, + "successThreshold": { + "$ref": "#/definitions/ConnectionMonitorSuccessThreshold", + "description": "Describes the success threshold." } }, - "description": "Constraints that determine the list of available Internet service providers." + "description": "Describes the connection monitor test configuration." }, - "AvailableProvidersList": { + "ConnectionMonitorHttpConfiguration": { "properties": { - "countries": { + "port": { + "type": "integer", + "description": "The port." + }, + "method": { + "type": "string", + "description": "HTTP method.", + "enum": [ + "Get", + "Post" + ], + "x-ms-enum": { + "name": "HTTPConfigurationMethod", + "modelAsString": true + } + }, + "path": { + "type": "string", + "description": "The path." + }, + "requestHeaders": { "type": "array", - "description": "List of available countries.", + "description": "List of HTTP headers.", "items": { - "$ref": "#/definitions/AvailableProvidersListCountry" + "$ref": "#/definitions/HTTPHeader" } - } - }, - "required": [ - "countries" - ], - "description": "List of available countries with details." - }, - "AvailableProvidersListCountry": { - "properties": { - "countryName": { - "type": "string", - "description": "The country name." }, - "providers": { + "validStatusCodeRanges": { "type": "array", "items": { "type": "string" }, - "description": "A list of Internet service providers." + "description": "A list of valid status code ranges." }, - "states": { - "type": "array", - "description": "List of available states in the country.", - "items": { - "$ref": "#/definitions/AvailableProvidersListState" - } + "preferHTTPS": { + "type": "boolean", + "description": "Value indicating whether HTTPS is preferred over HTTP." + } + }, + "description": "Describes the HTTP configuration." + }, + "ConnectionMonitorTcpConfiguration": { + "properties": { + "port": { + "type": "integer", + "description": "The port." + }, + "disableTraceRoute": { + "type": "boolean", + "description": "Value indicating whether trace route should be disabled." + } + }, + "description": "Describes the TCP configuration." + }, + "ConnectionMonitorIcmpConfiguration": { + "properties": { + "disableTraceRoute": { + "type": "boolean", + "description": "Value indicating whether trace route should be disabled." + } + }, + "description": "Describes the ICMP configuration." + }, + "ConnectionMonitorSuccessThreshold": { + "properties": { + "checksFailedPercent": { + "type": "integer", + "description": "The percentage of failed checks." + }, + "roundTripTimeMs": { + "type": "integer", + "description": "The round trip time in milliseconds." } }, - "description": "Country details." + "description": "Describes the sucess threshold." }, - "AvailableProvidersListState": { + "ConnectionMonitorOutput": { "properties": { - "stateName": { + "type": { "type": "string", - "description": "The state name." - }, - "providers": { - "type": "array", - "items": { - "type": "string" - }, - "description": "A list of Internet service providers." - }, - "cities": { - "type": "array", - "description": "List of available cities or towns in the state.", - "items": { - "$ref": "#/definitions/AvailableProvidersListCity" + "description": "Connection monitor output type.", + "enum": [ + "Workspace" + ], + "x-ms-enum": { + "name": "OutputType", + "modelAsString": true } + }, + "workspaceSettings": { + "$ref": "#/definitions/ConnectionMonitorWorkspaceSettings", + "description": "Describes the connection monitor workspace settings." } }, - "description": "State details." + "description": "Describes the connection monitor output." }, - "AvailableProvidersListCity": { + "ConnectionMonitorWorkspaceSettings": { "properties": { - "cityName": { + "workspaceResourceId": { "type": "string", - "description": "The city or town name." - }, - "providers": { - "type": "array", - "items": { - "type": "string" - }, - "description": "A list of Internet service providers." + "description": "Log analytics workspace resource ID." } }, - "description": "City or town details." + "description": "Describes the connection monitor workspace settings." }, - "NetworkConfigurationDiagnosticParameters": { - "description": "Parameters to get network configuration diagnostic.", - "required": [ - "targetResourceId", - "profiles" - ], + "ConnectionStateSnapshot": { "properties": { - "targetResourceId": { - "type": "string", - "description": "The ID of the target resource to perform network configuration diagnostic. Valid options are VM, NetworkInterface, VMSS/NetworkInterface and Application Gateway." - }, - "verbosityLevel": { + "connectionState": { "type": "string", "enum": [ - "Normal", - "Minimum", - "Full" + "Reachable", + "Unreachable", + "Unknown" ], "x-ms-enum": { - "name": "VerbosityLevel", + "name": "ConnectionState", "modelAsString": true }, - "description": "Verbosity level." - }, - "profiles": { - "type": "array", - "description": "List of network configuration diagnostic profiles.", - "items": { - "$ref": "#/definitions/NetworkConfigurationDiagnosticProfile" - } - } - } - }, - "NetworkConfigurationDiagnosticProfile": { - "description": "Parameters to compare with network configuration.", - "required": [ - "direction", - "protocol", - "source", - "destination", - "destinationPort" - ], - "properties": { - "direction": { - "$ref": "#/definitions/Direction", - "description": "The direction of the traffic." + "description": "The connection state." }, - "protocol": { + "startTime": { "type": "string", - "description": "Protocol to be verified on. Accepted values are '*', TCP, UDP." + "format": "date-time", + "description": "The start time of the connection snapshot." }, - "source": { + "endTime": { "type": "string", - "description": "Traffic source. Accepted values are '*', IP Address/CIDR, Service Tag." + "format": "date-time", + "description": "The end time of the connection snapshot." }, - "destination": { + "evaluationState": { "type": "string", - "description": "Traffic destination. Accepted values are: '*', IP Address/CIDR, Service Tag." + "enum": [ + "NotStarted", + "InProgress", + "Completed" + ], + "x-ms-enum": { + "name": "EvaluationState", + "modelAsString": true + }, + "description": "Connectivity analysis evaluation state." }, - "destinationPort": { - "type": "string", - "description": "Traffic destination port. Accepted values are '*' and a single port in the range (0 - 65535)." - } - } - }, - "NetworkConfigurationDiagnosticResponse": { - "description": "Results of network configuration diagnostic on the target resource.", - "properties": { - "results": { + "avgLatencyInMs": { + "type": "integer", + "description": "Average latency in ms." + }, + "minLatencyInMs": { + "type": "integer", + "description": "Minimum latency in ms." + }, + "maxLatencyInMs": { + "type": "integer", + "description": "Maximum latency in ms." + }, + "probesSent": { + "type": "integer", + "description": "The number of sent probes." + }, + "probesFailed": { + "type": "integer", + "description": "The number of failed probes." + }, + "hops": { "readOnly": true, "type": "array", - "description": "List of network configuration diagnostic results.", + "description": "List of hops between the source and the destination.", "items": { - "$ref": "#/definitions/NetworkConfigurationDiagnosticResult" + "$ref": "./networkWatcher.json#/definitions/ConnectivityHop" } } - } - }, - "NetworkConfigurationDiagnosticResult": { - "description": "Network configuration diagnostic result corresponded to provided traffic query.", - "properties": { - "profile": { - "$ref": "#/definitions/NetworkConfigurationDiagnosticProfile", - "description": "Network configuration diagnostic profile." - }, - "networkSecurityGroupResult": { - "$ref": "#/definitions/NetworkSecurityGroupResult", - "description": "Network security group result." - } - } + }, + "description": "Connection state snapshot." }, - "NetworkSecurityGroupResult": { - "description": "Network configuration diagnostic result corresponded provided traffic query.", + "ConnectionMonitorListResult": { "properties": { - "securityRuleAccessResult": { - "$ref": "./networkSecurityGroup.json#/definitions/SecurityRuleAccess", - "description": "The network traffic is allowed or denied." - }, - "evaluatedNetworkSecurityGroups": { - "readOnly": true, + "value": { "type": "array", - "description": "List of results network security groups diagnostic.", "items": { - "$ref": "#/definitions/EvaluatedNetworkSecurityGroup" - } + "$ref": "#/definitions/ConnectionMonitorResult" + }, + "description": "Information about connection monitors." } - } + }, + "description": "List of connection monitors." }, - "EvaluatedNetworkSecurityGroup": { - "description": "Results of network security group evaluation.", + "ConnectionMonitorResult": { + "x-ms-azure-resource": true, "properties": { - "networkSecurityGroupId": { + "name": { + "readOnly": true, "type": "string", - "description": "Network security group ID." + "description": "Name of the connection monitor." }, - "appliedTo": { + "id": { + "readOnly": true, "type": "string", - "description": "Resource ID of nic or subnet to which network security group is applied." + "description": "ID of the connection monitor." }, - "matchedRule": { - "$ref": "#/definitions/MatchedRule", - "description": "Matched network security rule." + "etag": { + "type": "string", + "readOnly": true, + "description": "A unique read-only string that changes whenever the resource is updated." }, - "rulesEvaluationResult": { + "type": { "readOnly": true, - "type": "array", - "description": "List of network security rules evaluation results.", - "items": { - "$ref": "#/definitions/NetworkSecurityRulesEvaluationResult" - } + "type": "string", + "description": "Connection monitor type." + }, + "location": { + "type": "string", + "description": "Connection monitor location." + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Connection monitor tags." + }, + "properties": { + "x-ms-client-flatten": true, + "$ref": "#/definitions/ConnectionMonitorResultProperties", + "description": "Properties of the connection monitor result." } - } + }, + "description": "Information about the connection monitor." }, - "MatchedRule": { - "description": "Matched rule.", + "ConnectionMonitorResultProperties": { "properties": { - "ruleName": { + "provisioningState": { + "readOnly": true, + "$ref": "./network.json#/definitions/ProvisioningState", + "description": "The provisioning state of the connection monitor." + }, + "startTime": { "type": "string", - "description": "Name of the matched network security rule." + "format": "date-time", + "description": "The date and time when the connection monitor was started." }, - "action": { + "monitoringStatus": { "type": "string", - "description": "The network traffic is allowed or denied. Possible values are 'Allow' and 'Deny'." + "description": "The monitoring status of the connection monitor." } - } + }, + "allOf": [ + { + "$ref": "#/definitions/ConnectionMonitorParameters" + } + ], + "description": "Describes the properties of a connection monitor." }, - "NetworkSecurityRulesEvaluationResult": { - "description": "Network security rules evaluation result.", + "ConnectionMonitorQueryResult": { "properties": { - "name": { + "sourceStatus": { "type": "string", - "description": "Name of the network security rule." - }, - "protocolMatched": { - "type": "boolean", - "description": "Value indicating whether protocol is matched." - }, - "sourceMatched": { - "type": "boolean", - "description": "Value indicating whether source is matched." - }, - "sourcePortMatched": { - "type": "boolean", - "description": "Value indicating whether source port is matched." - }, - "destinationMatched": { - "type": "boolean", - "description": "Value indicating whether destination is matched." + "enum": [ + "Unknown", + "Active", + "Inactive" + ], + "x-ms-enum": { + "name": "ConnectionMonitorSourceStatus", + "modelAsString": true + }, + "description": "Status of connection monitor source." }, - "destinationPortMatched": { - "type": "boolean", - "description": "Value indicating whether destination port is matched." + "states": { + "type": "array", + "items": { + "$ref": "#/definitions/ConnectionStateSnapshot" + }, + "description": "Information about connection states." } - } - }, - "Direction": { - "type": "string", - "description": "The direction of the traffic.", - "enum": [ - "Inbound", - "Outbound" - ], - "x-ms-enum": { - "name": "Direction", - "modelAsString": true - } + }, + "description": "List of connection states snapshots." } } } diff --git a/specification/network/resource-manager/readme.md b/specification/network/resource-manager/readme.md index ce485a1738b8..8f37f1dcaf84 100644 --- a/specification/network/resource-manager/readme.md +++ b/specification/network/resource-manager/readme.md @@ -62,7 +62,6 @@ input-file: - Microsoft.Network/stable/2019-11-01/networkProfile.json - Microsoft.Network/stable/2019-11-01/networkSecurityGroup.json - Microsoft.Network/stable/2019-11-01/networkWatcher.json - - Microsoft.Network/stable/2019-06-01/networkWatcherConnectionMonitorV1.json - Microsoft.Network/stable/2019-11-01/operation.json - Microsoft.Network/stable/2019-11-01/privateEndpoint.json - Microsoft.Network/stable/2019-11-01/privateLinkService.json