{
  "openapi": "3.0.0",
  "info": {
    "description": "The Microsoft Azure Network management API provides a RESTful set of web services that interact with Microsoft Azure Networks service to manage your network resources. The API has entities that capture the relationship between an end user and the Microsoft Azure Networks service.",
    "title": "NetworkManagementClient",
    "version": "2018-12-01",
    "x-jentic-source-url": "https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/network/resource-manager/Microsoft.Network/stable/2018-12-01/networkWatcher.json"
  },
  "servers": [
    {
      "url": "https://management.azure.com/"
    }
  ],
  "paths": {
    "/subscriptions/{subscriptionId}/providers/Microsoft.Network/networkWatchers": {
      "get": {
        "parameters": [
          {
            "$ref": "./network.json#/components/parameters/ApiVersionParameter"
          },
          {
            "$ref": "./network.json#/components/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NetworkWatcherListResult"
                }
              }
            },
            "description": "Request successful. The operation returns a list of network watcher resources."
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Error response describing why the operation failed."
          }
        },
        "tags": [
          "NetworkWatchers"
        ],
        "description": "Gets all network watchers by subscription.",
        "operationId": "NetworkWatchers_ListAll",
        "x-ms-examples": {
          "List all network watchers": {
            "$ref": "./examples/NetworkWatcherListAll.json"
          }
        },
        "x-ms-pageable": {
          "nextLinkName": null
        }
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkWatchers": {
      "get": {
        "parameters": [
          {
            "description": "The name of the resource group.",
            "in": "path",
            "name": "resourceGroupName",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "./network.json#/components/parameters/ApiVersionParameter"
          },
          {
            "$ref": "./network.json#/components/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NetworkWatcherListResult"
                }
              }
            },
            "description": "Request successful. The operation returns a list of network watcher resources."
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Error response describing why the operation failed."
          }
        },
        "tags": [
          "NetworkWatchers"
        ],
        "description": "Gets all network watchers by resource group.",
        "operationId": "NetworkWatchers_List",
        "x-ms-examples": {
          "List network watchers": {
            "$ref": "./examples/NetworkWatcherList.json"
          }
        },
        "x-ms-pageable": {
          "nextLinkName": null
        }
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkWatchers/{networkWatcherName}": {
      "delete": {
        "parameters": [
          {
            "description": "The name of the resource group.",
            "in": "path",
            "name": "resourceGroupName",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The name of the network watcher.",
            "in": "path",
            "name": "networkWatcherName",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "./network.json#/components/parameters/ApiVersionParameter"
          },
          {
            "$ref": "./network.json#/components/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "202": {
            "description": "Accepted and the operation will complete asynchronously."
          },
          "204": {
            "description": "Delete successful."
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Error response describing why the operation failed."
          }
        },
        "tags": [
          "NetworkWatchers"
        ],
        "description": "Deletes the specified network watcher resource.",
        "operationId": "NetworkWatchers_Delete",
        "x-ms-examples": {
          "Delete network watcher": {
            "$ref": "./examples/NetworkWatcherDelete.json"
          }
        },
        "x-ms-long-running-operation": true
      },
      "get": {
        "parameters": [
          {
            "description": "The name of the resource group.",
            "in": "path",
            "name": "resourceGroupName",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The name of the network watcher.",
            "in": "path",
            "name": "networkWatcherName",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "./network.json#/components/parameters/ApiVersionParameter"
          },
          {
            "$ref": "./network.json#/components/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NetworkWatcher"
                }
              }
            },
            "description": "Request successful. The operation returns a network watcher resource."
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Error response describing why the operation failed."
          }
        },
        "tags": [
          "NetworkWatchers"
        ],
        "description": "Gets the specified network watcher by resource group.",
        "operationId": "NetworkWatchers_Get",
        "x-ms-examples": {
          "Get network watcher": {
            "$ref": "./examples/NetworkWatcherGet.json"
          }
        }
      },
      "patch": {
        "parameters": [
          {
            "description": "The name of the resource group.",
            "in": "path",
            "name": "resourceGroupName",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The name of the network watcher.",
            "in": "path",
            "name": "networkWatcherName",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "./network.json#/components/parameters/ApiVersionParameter"
          },
          {
            "$ref": "./network.json#/components/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NetworkWatcher"
                }
              }
            },
            "description": "Update successful. The operation returns the resulting network watcher resource."
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Error response describing why the operation failed."
          }
        },
        "tags": [
          "NetworkWatchers"
        ],
        "description": "Updates a network watcher tags.",
        "operationId": "NetworkWatchers_UpdateTags",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "./network.json#/definitions/TagsObject"
              }
            }
          },
          "description": "Parameters supplied to update network watcher tags.",
          "required": true
        },
        "x-ms-examples": {
          "Update network watcher tags": {
            "$ref": "./examples/NetworkWatcherUpdateTags.json"
          }
        }
      },
      "put": {
        "parameters": [
          {
            "description": "The name of the resource group.",
            "in": "path",
            "name": "resourceGroupName",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The name of the network watcher.",
            "in": "path",
            "name": "networkWatcherName",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "./network.json#/components/parameters/ApiVersionParameter"
          },
          {
            "$ref": "./network.json#/components/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NetworkWatcher"
                }
              }
            },
            "description": "Update successful. The operation returns the resulting network watcher resource."
          },
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NetworkWatcher"
                }
              }
            },
            "description": "Create successful. The operation returns the resulting network watcher resource."
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Error response describing why the operation failed."
          }
        },
        "tags": [
          "NetworkWatchers"
        ],
        "description": "Creates or updates a network watcher in the specified resource group.",
        "operationId": "NetworkWatchers_CreateOrUpdate",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NetworkWatcher"
              }
            }
          },
          "description": "Parameters that define the network watcher resource.",
          "required": true
        },
        "x-ms-examples": {
          "Create network watcher": {
            "$ref": "./examples/NetworkWatcherCreate.json"
          }
        }
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkWatchers/{networkWatcherName}/availableProvidersList": {
      "post": {
        "parameters": [
          {
            "description": "The name of the network watcher resource group.",
            "in": "path",
            "name": "resourceGroupName",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The name of the network watcher resource.",
            "in": "path",
            "name": "networkWatcherName",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "./network.json#/components/parameters/ApiVersionParameter"
          },
          {
            "$ref": "./network.json#/components/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AvailableProvidersList"
                }
              }
            },
            "description": "Successful request for list of available providers."
          },
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AvailableProvidersList"
                }
              }
            },
            "description": "Accepted and the operation will complete asynchronously."
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Error response describing why the operation failed."
          }
        },
        "tags": [
          "NetworkWatchers"
        ],
        "description": "Lists all available internet service providers for a specified Azure region.",
        "operationId": "NetworkWatchers_ListAvailableProviders",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AvailableProvidersListParameters"
              }
            }
          },
          "description": "Parameters that scope the list of available providers.",
          "required": true
        },
        "x-ms-examples": {
          "Get Available Providers List": {
            "$ref": "./examples/NetworkWatcherAvailableProvidersListGet.json"
          }
        },
        "x-ms-long-running-operation": true
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkWatchers/{networkWatcherName}/azureReachabilityReport": {
      "post": {
        "parameters": [
          {
            "description": "The name of the network watcher resource group.",
            "in": "path",
            "name": "resourceGroupName",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The name of the network watcher resource.",
            "in": "path",
            "name": "networkWatcherName",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "./network.json#/components/parameters/ApiVersionParameter"
          },
          {
            "$ref": "./network.json#/components/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AzureReachabilityReport"
                }
              }
            },
            "description": "Successful request for Azure reachability report."
          },
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AzureReachabilityReport"
                }
              }
            },
            "description": "Accepted and the operation will complete asynchronously."
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Error response describing why the operation failed."
          }
        },
        "tags": [
          "NetworkWatchers"
        ],
        "description": "Gets the relative latency score for internet service providers from a specified location to Azure regions.",
        "operationId": "NetworkWatchers_GetAzureReachabilityReport",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AzureReachabilityReportParameters"
              }
            }
          },
          "description": "Parameters that determine Azure reachability report configuration.",
          "required": true
        },
        "x-ms-examples": {
          "Get Azure Reachability Report": {
            "$ref": "./examples/NetworkWatcherAzureReachabilityReportGet.json"
          }
        },
        "x-ms-long-running-operation": true
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkWatchers/{networkWatcherName}/configureFlowLog": {
      "post": {
        "parameters": [
          {
            "description": "The name of the network watcher resource group.",
            "in": "path",
            "name": "resourceGroupName",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The name of the network watcher resource.",
            "in": "path",
            "name": "networkWatcherName",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "./network.json#/components/parameters/ApiVersionParameter"
          },
          {
            "$ref": "./network.json#/components/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FlowLogInformation"
                }
              }
            },
            "description": "Successful request for setting flow log  and traffic analytics (optional) configuration."
          },
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FlowLogInformation"
                }
              }
            },
            "description": "Accepted and the operation will complete asynchronously."
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Error response describing why the operation failed."
          }
        },
        "tags": [
          "NetworkWatchers",
          "TrafficAnalytics"
        ],
        "description": "Configures flow log  and traffic analytics (optional) on a specified resource.",
        "operationId": "NetworkWatchers_SetFlowLogConfiguration",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FlowLogInformation"
              }
            }
          },
          "description": "Parameters that define the configuration of flow log.",
          "required": true
        },
        "x-ms-examples": {
          "Configure flow log": {
            "$ref": "./examples/NetworkWatcherFlowLogConfigure.json"
          }
        },
        "x-ms-long-running-operation": true
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkWatchers/{networkWatcherName}/connectionMonitors": {
      "get": {
        "parameters": [
          {
            "description": "The name of the resource group containing Network Watcher.",
            "in": "path",
            "name": "resourceGroupName",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The name of the Network Watcher resource.",
            "in": "path",
            "name": "networkWatcherName",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "./network.json#/components/parameters/ApiVersionParameter"
          },
          {
            "$ref": "./network.json#/components/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConnectionMonitorListResult"
                }
              }
            },
            "description": "Successful connection monitor enumeration request."
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Error response describing why the operation failed."
          }
        },
        "tags": [
          "ConnectionMonitors"
        ],
        "description": "Lists all connection monitors for the specified Network Watcher.",
        "operationId": "ConnectionMonitors_List",
        "x-ms-examples": {
          "List connection monitors": {
            "$ref": "./examples/NetworkWatcherConnectionMonitorList.json"
          }
        },
        "x-ms-pageable": {
          "nextLinkName": null
        }
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkWatchers/{networkWatcherName}/connectionMonitors/{connectionMonitorName}": {
      "delete": {
        "parameters": [
          {
            "description": "The name of the resource group containing Network Watcher.",
            "in": "path",
            "name": "resourceGroupName",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The name of the Network Watcher resource.",
            "in": "path",
            "name": "networkWatcherName",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The name of the connection monitor.",
            "in": "path",
            "name": "connectionMonitorName",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "./network.json#/components/parameters/ApiVersionParameter"
          },
          {
            "$ref": "./network.json#/components/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "202": {
            "description": "Accepted. The operation will complete asynchronously."
          },
          "204": {
            "description": "Delete successful."
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Error response describing why the operation failed."
          }
        },
        "tags": [
          "ConnectionMonitors"
        ],
        "description": "Deletes the specified connection monitor.",
        "operationId": "ConnectionMonitors_Delete",
        "x-ms-examples": {
          "Delete connection monitor": {
            "$ref": "./examples/NetworkWatcherConnectionMonitorDelete.json"
          }
        },
        "x-ms-long-running-operation": true
      },
      "get": {
        "parameters": [
          {
            "description": "The name of the resource group containing Network Watcher.",
            "in": "path",
            "name": "resourceGroupName",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The name of the Network Watcher resource.",
            "in": "path",
            "name": "networkWatcherName",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The name of the connection monitor.",
            "in": "path",
            "name": "connectionMonitorName",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "./network.json#/components/parameters/ApiVersionParameter"
          },
          {
            "$ref": "./network.json#/components/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConnectionMonitorResult"
                }
              }
            },
            "description": "Request successful. The operation returns a connection monitor."
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Error response describing why the operation failed."
          }
        },
        "tags": [
          "ConnectionMonitors"
        ],
        "description": "Gets a connection monitor by name.",
        "operationId": "ConnectionMonitors_Get",
        "x-ms-examples": {
          "Get connection monitor": {
            "$ref": "./examples/NetworkWatcherConnectionMonitorGet.json"
          }
        }
      },
      "put": {
        "parameters": [
          {
            "description": "The name of the resource group containing Network Watcher.",
            "in": "path",
            "name": "resourceGroupName",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The name of the Network Watcher resource.",
            "in": "path",
            "name": "networkWatcherName",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The name of the connection monitor.",
            "in": "path",
            "name": "connectionMonitorName",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "./network.json#/components/parameters/ApiVersionParameter"
          },
          {
            "$ref": "./network.json#/components/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConnectionMonitorResult"
                }
              }
            },
            "description": "Update successful. The operation returns the resulting network watcher resource."
          },
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConnectionMonitorResult"
                }
              }
            },
            "description": "Create successful. The operation returns the resulting network watcher resource."
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Error response describing why the operation failed."
          }
        },
        "tags": [
          "ConnectionMonitors"
        ],
        "description": "Create or update a connection monitor.",
        "operationId": "ConnectionMonitors_CreateOrUpdate",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ConnectionMonitor"
              }
            }
          },
          "description": "Parameters that define the operation to create a connection monitor.",
          "required": true
        },
        "x-ms-examples": {
          "Create connection monitor": {
            "$ref": "./examples/NetworkWatcherConnectionMonitorCreate.json"
          }
        },
        "x-ms-long-running-operation": true
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkWatchers/{networkWatcherName}/connectionMonitors/{connectionMonitorName}/query": {
      "post": {
        "parameters": [
          {
            "description": "The name of the resource group containing Network Watcher.",
            "in": "path",
            "name": "resourceGroupName",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The name of the Network Watcher resource.",
            "in": "path",
            "name": "networkWatcherName",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The name given to the connection monitor.",
            "in": "path",
            "name": "connectionMonitorName",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "./network.json#/components/parameters/ApiVersionParameter"
          },
          {
            "$ref": "./network.json#/components/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConnectionMonitorQueryResult"
                }
              }
            },
            "description": "Successful query of connection states."
          },
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConnectionMonitorQueryResult"
                }
              }
            },
            "description": "Accepted query of connection states."
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Error response describing why the operation failed."
          }
        },
        "tags": [
          "ConnectionMonitors"
        ],
        "description": "Query a snapshot of the most recent connection states.",
        "operationId": "ConnectionMonitors_Query",
        "x-ms-examples": {
          "Query connection monitor": {
            "$ref": "./examples/NetworkWatcherConnectionMonitorQuery.json"
          }
        },
        "x-ms-long-running-operation": true
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkWatchers/{networkWatcherName}/connectionMonitors/{connectionMonitorName}/start": {
      "post": {
        "parameters": [
          {
            "description": "The name of the resource group containing Network Watcher.",
            "in": "path",
            "name": "resourceGroupName",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The name of the Network Watcher resource.",
            "in": "path",
            "name": "networkWatcherName",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The name of the connection monitor.",
            "in": "path",
            "name": "connectionMonitorName",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "./network.json#/components/parameters/ApiVersionParameter"
          },
          {
            "$ref": "./network.json#/components/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "Request successful. The operation starts the connection monitor."
          },
          "202": {
            "description": "Accepted. The operation will complete asynchronously."
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Error response describing why the operation failed."
          }
        },
        "tags": [
          "ConnectionMonitors"
        ],
        "description": "Starts the specified connection monitor.",
        "operationId": "ConnectionMonitors_Start",
        "x-ms-examples": {
          "Start connection monitor": {
            "$ref": "./examples/NetworkWatcherConnectionMonitorStart.json"
          }
        },
        "x-ms-long-running-operation": true
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkWatchers/{networkWatcherName}/connectionMonitors/{connectionMonitorName}/stop": {
      "post": {
        "parameters": [
          {
            "description": "The name of the resource group containing Network Watcher.",
            "in": "path",
            "name": "resourceGroupName",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The name of the Network Watcher resource.",
            "in": "path",
            "name": "networkWatcherName",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The name of the connection monitor.",
            "in": "path",
            "name": "connectionMonitorName",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "./network.json#/components/parameters/ApiVersionParameter"
          },
          {
            "$ref": "./network.json#/components/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "Request successful. The operation stops the connection monitor."
          },
          "202": {
            "description": "Accepted. The operation will complete asynchronously."
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Error response describing why the operation failed."
          }
        },
        "tags": [
          "ConnectionMonitors"
        ],
        "description": "Stops the specified connection monitor.",
        "operationId": "ConnectionMonitors_Stop",
        "x-ms-examples": {
          "Stop connection monitor": {
            "$ref": "./examples/NetworkWatcherConnectionMonitorStop.json"
          }
        },
        "x-ms-long-running-operation": true
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkWatchers/{networkWatcherName}/connectivityCheck": {
      "post": {
        "parameters": [
          {
            "description": "The name of the network watcher resource group.",
            "in": "path",
            "name": "resourceGroupName",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The name of the network watcher resource.",
            "in": "path",
            "name": "networkWatcherName",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "./network.json#/components/parameters/ApiVersionParameter"
          },
          {
            "$ref": "./network.json#/components/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConnectivityInformation"
                }
              }
            },
            "description": "Successful request for checking connectivity."
          },
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConnectivityInformation"
                }
              }
            },
            "description": "Accepted and the operation will complete asynchronously."
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Error response describing why the operation failed."
          }
        },
        "tags": [
          "NetworkWatchers"
        ],
        "description": "Verifies the possibility of establishing a direct TCP connection from a virtual machine to a given endpoint including another VM or an arbitrary remote server.",
        "operationId": "NetworkWatchers_CheckConnectivity",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ConnectivityParameters"
              }
            }
          },
          "description": "Parameters that determine how the connectivity check will be performed.",
          "required": true
        },
        "x-ms-examples": {
          "Check connectivity": {
            "$ref": "./examples/NetworkWatcherConnectivityCheck.json"
          }
        },
        "x-ms-long-running-operation": true
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkWatchers/{networkWatcherName}/ipFlowVerify": {
      "post": {
        "parameters": [
          {
            "description": "The name of the resource group.",
            "in": "path",
            "name": "resourceGroupName",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The name of the network watcher.",
            "in": "path",
            "name": "networkWatcherName",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "./network.json#/components/parameters/ApiVersionParameter"
          },
          {
            "$ref": "./network.json#/components/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VerificationIPFlowResult"
                }
              }
            },
            "description": "Request successful. The operation returns the result of IP flow verification."
          },
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VerificationIPFlowResult"
                }
              }
            },
            "description": "Accepted and the operation will complete asynchronously."
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Error response describing why the operation failed."
          }
        },
        "tags": [
          "NetworkWatchers"
        ],
        "description": "Verify IP flow from the specified VM to a location given the currently configured NSG rules.",
        "operationId": "NetworkWatchers_VerifyIPFlow",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VerificationIPFlowParameters"
              }
            }
          },
          "description": "Parameters that define the IP flow to be verified.",
          "required": true
        },
        "x-ms-examples": {
          "Ip flow verify": {
            "$ref": "./examples/NetworkWatcherIpFlowVerify.json"
          }
        },
        "x-ms-long-running-operation": true
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkWatchers/{networkWatcherName}/networkConfigurationDiagnostic": {
      "post": {
        "parameters": [
          {
            "description": "The name of the resource group.",
            "in": "path",
            "name": "resourceGroupName",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The name of the network watcher.",
            "in": "path",
            "name": "networkWatcherName",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "./network.json#/components/parameters/ApiVersionParameter"
          },
          {
            "$ref": "./network.json#/components/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NetworkConfigurationDiagnosticResponse"
                }
              }
            },
            "description": "Request successful. The operation returns the result of network configuration diagnostic."
          },
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NetworkConfigurationDiagnosticResponse"
                }
              }
            },
            "description": "Accepted and the operation will complete asynchronously."
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Error response describing why the operation failed."
          }
        },
        "tags": [
          "NetworkWatchers"
        ],
        "description": "Get network configuration diagnostic.",
        "operationId": "NetworkWatchers_GetNetworkConfigurationDiagnostic",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NetworkConfigurationDiagnosticParameters"
              }
            }
          },
          "description": "Parameters to get network configuration diagnostic.",
          "required": true
        },
        "x-ms-examples": {
          "Network configuration diagnostic": {
            "$ref": "./examples/NetworkWatcherNetworkConfigurationDiagnostic.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}/nextHop": {
      "post": {
        "parameters": [
          {
            "description": "The name of the resource group.",
            "in": "path",
            "name": "resourceGroupName",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The name of the network watcher.",
            "in": "path",
            "name": "networkWatcherName",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "./network.json#/components/parameters/ApiVersionParameter"
          },
          {
            "$ref": "./network.json#/components/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NextHopResult"
                }
              }
            },
            "description": "Request successful. The operation returns the next hop from the VM."
          },
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NextHopResult"
                }
              }
            },
            "description": "Accepted and the operation will complete asynchronously."
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Error response describing why the operation failed."
          }
        },
        "tags": [
          "NetworkWatchers"
        ],
        "description": "Gets the next hop from the specified VM.",
        "operationId": "NetworkWatchers_GetNextHop",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NextHopParameters"
              }
            }
          },
          "description": "Parameters that define the source and destination endpoint.",
          "required": true
        },
        "x-ms-examples": {
          "Get next hop": {
            "$ref": "./examples/NetworkWatcherNextHopGet.json"
          }
        },
        "x-ms-long-running-operation": true
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkWatchers/{networkWatcherName}/packetCaptures": {
      "get": {
        "parameters": [
          {
            "description": "The name of the resource group.",
            "in": "path",
            "name": "resourceGroupName",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The name of the Network Watcher resource.",
            "in": "path",
            "name": "networkWatcherName",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "./network.json#/components/parameters/ApiVersionParameter"
          },
          {
            "$ref": "./network.json#/components/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PacketCaptureListResult"
                }
              }
            },
            "description": "Successful packet capture enumeration request."
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Error response describing why the operation failed."
          }
        },
        "tags": [
          "PacketCaptures"
        ],
        "description": "Lists all packet capture sessions within the specified resource group.",
        "operationId": "PacketCaptures_List",
        "x-ms-examples": {
          "List packet captures": {
            "$ref": "./examples/NetworkWatcherPacketCapturesList.json"
          }
        },
        "x-ms-pageable": {
          "nextLinkName": null
        }
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkWatchers/{networkWatcherName}/packetCaptures/{packetCaptureName}": {
      "delete": {
        "parameters": [
          {
            "description": "The name of the resource group.",
            "in": "path",
            "name": "resourceGroupName",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The name of the network watcher.",
            "in": "path",
            "name": "networkWatcherName",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The name of the packet capture session.",
            "in": "path",
            "name": "packetCaptureName",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "./network.json#/components/parameters/ApiVersionParameter"
          },
          {
            "$ref": "./network.json#/components/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "202": {
            "description": "Accepted and the operation will complete asynchronously."
          },
          "204": {
            "description": "Delete successful."
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Error response describing why the operation failed."
          }
        },
        "tags": [
          "PacketCaptures"
        ],
        "description": "Deletes the specified packet capture session.",
        "operationId": "PacketCaptures_Delete",
        "x-ms-examples": {
          "Delete packet capture": {
            "$ref": "./examples/NetworkWatcherPacketCaptureDelete.json"
          }
        },
        "x-ms-long-running-operation": true
      },
      "get": {
        "parameters": [
          {
            "description": "The name of the resource group.",
            "in": "path",
            "name": "resourceGroupName",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The name of the network watcher.",
            "in": "path",
            "name": "networkWatcherName",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The name of the packet capture session.",
            "in": "path",
            "name": "packetCaptureName",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "./network.json#/components/parameters/ApiVersionParameter"
          },
          {
            "$ref": "./network.json#/components/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PacketCaptureResult"
                }
              }
            },
            "description": "Request successful. The operation returns a packet capture session."
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Error response describing why the operation failed."
          }
        },
        "tags": [
          "PacketCaptures"
        ],
        "description": "Gets a packet capture session by name.",
        "operationId": "PacketCaptures_Get",
        "x-ms-examples": {
          "Get packet capture": {
            "$ref": "./examples/NetworkWatcherPacketCaptureGet.json"
          }
        }
      },
      "put": {
        "parameters": [
          {
            "description": "The name of the resource group.",
            "in": "path",
            "name": "resourceGroupName",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The name of the network watcher.",
            "in": "path",
            "name": "networkWatcherName",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The name of the packet capture session.",
            "in": "path",
            "name": "packetCaptureName",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "./network.json#/components/parameters/ApiVersionParameter"
          },
          {
            "$ref": "./network.json#/components/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PacketCaptureResult"
                }
              }
            },
            "description": "Request successful. The operation returns the resulting packet capture session."
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Error response describing why the operation failed."
          }
        },
        "tags": [
          "PacketCaptures"
        ],
        "description": "Create and start a packet capture on the specified VM.",
        "operationId": "PacketCaptures_Create",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PacketCapture"
              }
            }
          },
          "description": "Parameters that define the create packet capture operation.",
          "required": true
        },
        "x-ms-examples": {
          "Create packet capture": {
            "$ref": "./examples/NetworkWatcherPacketCaptureCreate.json"
          }
        },
        "x-ms-long-running-operation": true
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkWatchers/{networkWatcherName}/packetCaptures/{packetCaptureName}/queryStatus": {
      "post": {
        "parameters": [
          {
            "description": "The name of the resource group.",
            "in": "path",
            "name": "resourceGroupName",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The name of the Network Watcher resource.",
            "in": "path",
            "name": "networkWatcherName",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The name given to the packet capture session.",
            "in": "path",
            "name": "packetCaptureName",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "./network.json#/components/parameters/ApiVersionParameter"
          },
          {
            "$ref": "./network.json#/components/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PacketCaptureQueryStatusResult"
                }
              }
            },
            "description": "Successful query of packet capture status."
          },
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PacketCaptureQueryStatusResult"
                }
              }
            },
            "description": "Accepted query status of packet capture."
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Error response describing why the operation failed."
          }
        },
        "tags": [
          "PacketCaptures"
        ],
        "description": "Query the status of a running packet capture session.",
        "operationId": "PacketCaptures_GetStatus",
        "x-ms-examples": {
          "Query packet capture status": {
            "$ref": "./examples/NetworkWatcherPacketCaptureQueryStatus.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}/packetCaptures/{packetCaptureName}/stop": {
      "post": {
        "parameters": [
          {
            "description": "The name of the resource group.",
            "in": "path",
            "name": "resourceGroupName",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The name of the network watcher.",
            "in": "path",
            "name": "networkWatcherName",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The name of the packet capture session.",
            "in": "path",
            "name": "packetCaptureName",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "./network.json#/components/parameters/ApiVersionParameter"
          },
          {
            "$ref": "./network.json#/components/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "Request successful. The operation stops the packet capture session."
          },
          "202": {
            "description": "Accepted and the operation will complete asynchronously."
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Error response describing why the operation failed."
          }
        },
        "tags": [
          "PacketCaptures"
        ],
        "description": "Stops a specified packet capture session.",
        "operationId": "PacketCaptures_Stop",
        "x-ms-examples": {
          "Stop packet capture": {
            "$ref": "./examples/NetworkWatcherPacketCaptureStop.json"
          }
        },
        "x-ms-long-running-operation": true
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkWatchers/{networkWatcherName}/queryFlowLogStatus": {
      "post": {
        "parameters": [
          {
            "description": "The name of the network watcher resource group.",
            "in": "path",
            "name": "resourceGroupName",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The name of the network watcher resource.",
            "in": "path",
            "name": "networkWatcherName",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "./network.json#/components/parameters/ApiVersionParameter"
          },
          {
            "$ref": "./network.json#/components/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FlowLogInformation"
                }
              }
            },
            "description": "Successful request for query flow log and traffic analytics (optional) status."
          },
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FlowLogInformation"
                }
              }
            },
            "description": "Accepted and the operation will complete asynchronously."
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Error response describing why the operation failed."
          }
        },
        "tags": [
          "NetworkWatchers",
          "TrafficAnalytics"
        ],
        "description": "Queries status of flow log and traffic analytics (optional) on a specified resource.",
        "operationId": "NetworkWatchers_GetFlowLogStatus",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FlowLogStatusParameters"
              }
            }
          },
          "description": "Parameters that define a resource to query flow log and traffic analytics (optional)  status.",
          "required": true
        },
        "x-ms-examples": {
          "Get flow log status": {
            "$ref": "./examples/NetworkWatcherFlowLogStatusQuery.json"
          }
        },
        "x-ms-long-running-operation": true
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkWatchers/{networkWatcherName}/queryTroubleshootResult": {
      "post": {
        "parameters": [
          {
            "description": "The name of the resource group.",
            "in": "path",
            "name": "resourceGroupName",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The name of the network watcher resource.",
            "in": "path",
            "name": "networkWatcherName",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "./network.json#/components/parameters/ApiVersionParameter"
          },
          {
            "$ref": "./network.json#/components/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TroubleshootingResult"
                }
              }
            },
            "description": "Successful get troubleshooting result request"
          },
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TroubleshootingResult"
                }
              }
            },
            "description": "Accepted get troubleshooting result request."
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Error response describing why the operation failed."
          }
        },
        "tags": [
          "NetworkWatchers"
        ],
        "description": "Get the last completed troubleshooting result on a specified resource",
        "operationId": "NetworkWatchers_GetTroubleshootingResult",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/QueryTroubleshootingParameters"
              }
            }
          },
          "description": "Parameters that define the resource to query the troubleshooting result.",
          "required": true
        },
        "x-ms-examples": {
          "Get troubleshoot result": {
            "$ref": "./examples/NetworkWatcherTroubleshootResultQuery.json"
          }
        },
        "x-ms-long-running-operation": true
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkWatchers/{networkWatcherName}/securityGroupView": {
      "post": {
        "parameters": [
          {
            "description": "The name of the resource group.",
            "in": "path",
            "name": "resourceGroupName",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The name of the network watcher.",
            "in": "path",
            "name": "networkWatcherName",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "./network.json#/components/parameters/ApiVersionParameter"
          },
          {
            "$ref": "./network.json#/components/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SecurityGroupViewResult"
                }
              }
            },
            "description": "Request successful. The operation returns security group rules on the VM."
          },
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SecurityGroupViewResult"
                }
              }
            },
            "description": "Accepted and the operation will complete asynchronously."
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Error response describing why the operation failed."
          }
        },
        "tags": [
          "NetworkWatchers"
        ],
        "description": "Gets the configured and effective security group rules on the specified VM.",
        "operationId": "NetworkWatchers_GetVMSecurityRules",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SecurityGroupViewParameters"
              }
            }
          },
          "description": "Parameters that define the VM to check security groups for.",
          "required": true
        },
        "x-ms-examples": {
          "Get security group view": {
            "$ref": "./examples/NetworkWatcherSecurityGroupViewGet.json"
          }
        },
        "x-ms-long-running-operation": true
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkWatchers/{networkWatcherName}/topology": {
      "post": {
        "parameters": [
          {
            "description": "The name of the resource group.",
            "in": "path",
            "name": "resourceGroupName",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The name of the network watcher.",
            "in": "path",
            "name": "networkWatcherName",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "./network.json#/components/parameters/ApiVersionParameter"
          },
          {
            "$ref": "./network.json#/components/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Topology"
                }
              }
            },
            "description": "Request successful. The operation returns the topology of resource group."
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Error response describing why the operation failed."
          }
        },
        "tags": [
          "NetworkWatchers"
        ],
        "description": "Gets the current network topology by resource group.",
        "operationId": "NetworkWatchers_GetTopology",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TopologyParameters"
              }
            }
          },
          "description": "Parameters that define the representation of topology.",
          "required": true
        },
        "x-ms-examples": {
          "Get Topology": {
            "$ref": "./examples/NetworkWatcherTopologyGet.json"
          }
        }
      }
    },
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkWatchers/{networkWatcherName}/troubleshoot": {
      "post": {
        "parameters": [
          {
            "description": "The name of the resource group.",
            "in": "path",
            "name": "resourceGroupName",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The name of the network watcher resource.",
            "in": "path",
            "name": "networkWatcherName",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "./network.json#/components/parameters/ApiVersionParameter"
          },
          {
            "$ref": "./network.json#/components/parameters/SubscriptionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TroubleshootingResult"
                }
              }
            },
            "description": "Successful troubleshooting request"
          },
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TroubleshootingResult"
                }
              }
            },
            "description": "Accepted get troubleshooting request."
          },
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            },
            "description": "Error response describing why the operation failed."
          }
        },
        "tags": [
          "NetworkWatchers"
        ],
        "description": "Initiate troubleshooting on a specified resource",
        "operationId": "NetworkWatchers_GetTroubleshooting",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TroubleshootingParameters"
              }
            }
          },
          "description": "Parameters that define the resource to troubleshoot.",
          "required": true
        },
        "x-ms-examples": {
          "Get troubleshooting": {
            "$ref": "./examples/NetworkWatcherTroubleshootGet.json"
          }
        },
        "x-ms-long-running-operation": true
      }
    }
  },
  "components": {
    "schemas": {
      "AvailableProvidersList": {
        "description": "List of available countries with details.",
        "properties": {
          "countries": {
            "description": "List of available countries.",
            "items": {
              "$ref": "#/components/schemas/AvailableProvidersListCountry"
            },
            "type": "array"
          }
        },
        "required": [
          "countries"
        ],
        "type": "object"
      },
      "AvailableProvidersListCity": {
        "description": "City or town details.",
        "properties": {
          "cityName": {
            "description": "The city or town name.",
            "type": "string"
          },
          "providers": {
            "description": "A list of Internet service providers.",
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "AvailableProvidersListCountry": {
        "description": "Country details.",
        "properties": {
          "countryName": {
            "description": "The country name.",
            "type": "string"
          },
          "providers": {
            "description": "A list of Internet service providers.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "states": {
            "description": "List of available states in the country.",
            "items": {
              "$ref": "#/components/schemas/AvailableProvidersListState"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "AvailableProvidersListParameters": {
        "description": "Constraints that determine the list of available Internet service providers.",
        "properties": {
          "azureLocations": {
            "description": "A list of Azure regions.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "city": {
            "description": "The city or town for available providers list.",
            "type": "string"
          },
          "country": {
            "description": "The country for available providers list.",
            "type": "string"
          },
          "state": {
            "description": "The state for available providers list.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "AvailableProvidersListState": {
        "description": "State details.",
        "properties": {
          "cities": {
            "description": "List of available cities or towns in the state.",
            "items": {
              "$ref": "#/components/schemas/AvailableProvidersListCity"
            },
            "type": "array"
          },
          "providers": {
            "description": "A list of Internet service providers.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "stateName": {
            "description": "The state name.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "AzureReachabilityReport": {
        "description": "Azure reachability report details.",
        "properties": {
          "aggregationLevel": {
            "description": "The aggregation level of Azure reachability report. Can be Country, State or City.",
            "type": "string"
          },
          "providerLocation": {
            "$ref": "#/components/schemas/AzureReachabilityReportLocation"
          },
          "reachabilityReport": {
            "description": "List of Azure reachability report items.",
            "items": {
              "$ref": "#/components/schemas/AzureReachabilityReportItem"
            },
            "type": "array"
          }
        },
        "required": [
          "aggregationLevel",
          "providerLocation",
          "reachabilityReport"
        ],
        "type": "object"
      },
      "AzureReachabilityReportItem": {
        "description": "Azure reachability report details for a given provider location.",
        "properties": {
          "azureLocation": {
            "description": "The Azure region.",
            "type": "string"
          },
          "latencies": {
            "description": "List of latency details for each of the time series.",
            "items": {
              "$ref": "#/components/schemas/AzureReachabilityReportLatencyInfo"
            },
            "type": "array"
          },
          "provider": {
            "description": "The Internet service provider.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "AzureReachabilityReportLatencyInfo": {
        "description": "Details on latency for a time series.",
        "properties": {
          "score": {
            "description": "The relative latency score between 1 and 100, higher values indicating a faster connection.",
            "maximum": 100,
            "minimum": 1,
            "type": "integer"
          },
          "timeStamp": {
            "description": "The time stamp.",
            "format": "date-time",
            "type": "string"
          }
        },
        "type": "object"
      },
      "AzureReachabilityReportLocation": {
        "description": "Parameters that define a geographic location.",
        "properties": {
          "city": {
            "description": "The name of the city or town.",
            "type": "string"
          },
          "country": {
            "description": "The name of the country.",
            "type": "string"
          },
          "state": {
            "description": "The name of the state.",
            "type": "string"
          }
        },
        "required": [
          "country"
        ],
        "type": "object"
      },
      "AzureReachabilityReportParameters": {
        "description": "Geographic and time constraints for Azure reachability report.",
        "properties": {
          "azureLocations": {
            "description": "Optional Azure regions to scope the query to.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "endTime": {
            "description": "The end time for the Azure reachability report.",
            "format": "date-time",
            "type": "string"
          },
          "providerLocation": {
            "$ref": "#/components/schemas/AzureReachabilityReportLocation"
          },
          "providers": {
            "description": "List of Internet service providers.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "startTime": {
            "description": "The start time for the Azure reachability report.",
            "format": "date-time",
            "type": "string"
          }
        },
        "required": [
          "providerLocation",
          "startTime",
          "endTime"
        ],
        "type": "object"
      },
      "ConnectionMonitor": {
        "description": "Parameters that define the operation to create a connection monitor.",
        "properties": {
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Connection monitor tags.",
            "type": "object"
          },
          "location": {
            "description": "Connection monitor location.",
            "type": "string"
          },
          "properties": {
            "$ref": "#/components/schemas/ConnectionMonitorParameters",
            "x-ms-client-flatten": true
          }
        },
        "required": [
          "properties"
        ],
        "type": "object"
      },
      "ConnectionMonitorDestination": {
        "description": "Describes the destination of connection monitor.",
        "properties": {
          "address": {
            "description": "Address of the connection monitor destination (IP or domain name).",
            "type": "string"
          },
          "port": {
            "description": "The destination port used by connection monitor.",
            "type": "integer"
          },
          "resourceId": {
            "description": "The ID of the resource used as the destination by connection monitor.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "ConnectionMonitorListResult": {
        "description": "List of connection monitors.",
        "properties": {
          "value": {
            "description": "Information about connection monitors.",
            "items": {
              "$ref": "#/components/schemas/ConnectionMonitorResult"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "ConnectionMonitorParameters": {
        "description": "Parameters that define the operation to create a connection monitor.",
        "properties": {
          "autoStart": {
            "default": true,
            "description": "Determines if the connection monitor will start automatically once created.",
            "type": "boolean"
          },
          "destination": {
            "$ref": "#/components/schemas/ConnectionMonitorDestination"
          },
          "monitoringIntervalInSeconds": {
            "default": 60,
            "description": "Monitoring interval in seconds.",
            "type": "integer"
          },
          "source": {
            "$ref": "#/components/schemas/ConnectionMonitorSource"
          }
        },
        "required": [
          "source",
          "destination"
        ],
        "type": "object"
      },
      "ConnectionMonitorQueryResult": {
        "description": "List of connection states snapshots.",
        "properties": {
          "sourceStatus": {
            "description": "Status of connection monitor source.",
            "enum": [
              "Unknown",
              "Active",
              "Inactive"
            ],
            "type": "string",
            "x-ms-enum": {
              "modelAsString": true,
              "name": "ConnectionMonitorSourceStatus"
            }
          },
          "states": {
            "description": "Information about connection states.",
            "items": {
              "$ref": "#/components/schemas/ConnectionStateSnapshot"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "ConnectionMonitorResult": {
        "description": "Information about the connection monitor.",
        "properties": {
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Connection monitor tags.",
            "type": "object"
          },
          "etag": {
            "default": "A unique read-only string that changes whenever the resource is updated.",
            "type": "string"
          },
          "id": {
            "description": "ID of the connection monitor.",
            "readOnly": true,
            "type": "string"
          },
          "location": {
            "description": "Connection monitor location.",
            "type": "string"
          },
          "name": {
            "description": "Name of the connection monitor.",
            "readOnly": true,
            "type": "string"
          },
          "properties": {
            "$ref": "#/components/schemas/ConnectionMonitorResultProperties",
            "x-ms-client-flatten": true
          },
          "type": {
            "description": "Connection monitor type.",
            "readOnly": true,
            "type": "string"
          }
        },
        "type": "object",
        "x-ms-azure-resource": true
      },
      "ConnectionMonitorResultProperties": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ConnectionMonitorParameters"
          }
        ],
        "description": "Describes the properties of a connection monitor.",
        "properties": {
          "monitoringStatus": {
            "description": "The monitoring status of the connection monitor.",
            "type": "string"
          },
          "provisioningState": {
            "description": "The provisioning state of the connection monitor.",
            "enum": [
              "Succeeded",
              "Updating",
              "Deleting",
              "Failed"
            ],
            "type": "string",
            "x-ms-enum": {
              "modelAsString": true,
              "name": "ProvisioningState"
            }
          },
          "startTime": {
            "description": "The date and time when the connection monitor was started.",
            "format": "date-time",
            "type": "string"
          }
        },
        "type": "object"
      },
      "ConnectionMonitorSource": {
        "description": "Describes the source of connection monitor.",
        "properties": {
          "port": {
            "description": "The source port used by connection monitor.",
            "type": "integer"
          },
          "resourceId": {
            "description": "The ID of the resource used as the source by connection monitor.",
            "type": "string"
          }
        },
        "required": [
          "resourceId"
        ],
        "type": "object"
      },
      "ConnectionStateSnapshot": {
        "description": "Connection state snapshot.",
        "properties": {
          "avgLatencyInMs": {
            "description": "Average latency in ms.",
            "type": "integer"
          },
          "connectionState": {
            "description": "The connection state.",
            "enum": [
              "Reachable",
              "Unreachable",
              "Unknown"
            ],
            "type": "string",
            "x-ms-enum": {
              "modelAsString": true,
              "name": "ConnectionState"
            }
          },
          "endTime": {
            "description": "The end time of the connection snapshot.",
            "format": "date-time",
            "type": "string"
          },
          "evaluationState": {
            "description": "Connectivity analysis evaluation state.",
            "enum": [
              "NotStarted",
              "InProgress",
              "Completed"
            ],
            "type": "string",
            "x-ms-enum": {
              "modelAsString": true,
              "name": "EvaluationState"
            }
          },
          "hops": {
            "description": "List of hops between the source and the destination.",
            "items": {
              "$ref": "#/components/schemas/ConnectivityHop"
            },
            "readOnly": true,
            "type": "array"
          },
          "maxLatencyInMs": {
            "description": "Maximum latency in ms.",
            "type": "integer"
          },
          "minLatencyInMs": {
            "description": "Minimum latency in ms.",
            "type": "integer"
          },
          "probesFailed": {
            "description": "The number of failed probes.",
            "type": "integer"
          },
          "probesSent": {
            "description": "The number of sent probes.",
            "type": "integer"
          },
          "startTime": {
            "description": "The start time of the connection snapshot.",
            "format": "date-time",
            "type": "string"
          }
        },
        "type": "object"
      },
      "ConnectivityDestination": {
        "description": "Parameters that define destination of connection.",
        "properties": {
          "address": {
            "description": "The IP address or URI the resource to which a connection attempt will be made.",
            "type": "string"
          },
          "port": {
            "description": "Port on which check connectivity will be performed.",
            "type": "integer"
          },
          "resourceId": {
            "description": "The ID of the resource to which a connection attempt will be made.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "ConnectivityHop": {
        "description": "Information about a hop between the source and the destination.",
        "properties": {
          "address": {
            "description": "The IP address of the hop.",
            "readOnly": true,
            "type": "string"
          },
          "id": {
            "description": "The ID of the hop.",
            "readOnly": true,
            "type": "string"
          },
          "issues": {
            "description": "List of issues.",
            "items": {
              "$ref": "#/components/schemas/ConnectivityIssue"
            },
            "readOnly": true,
            "type": "array"
          },
          "nextHopIds": {
            "description": "List of next hop identifiers.",
            "items": {
              "type": "string"
            },
            "readOnly": true,
            "type": "array"
          },
          "resourceId": {
            "description": "The ID of the resource corresponding to this hop.",
            "readOnly": true,
            "type": "string"
          },
          "type": {
            "description": "The type of the hop.",
            "readOnly": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "ConnectivityInformation": {
        "description": "Information on the connectivity status.",
        "properties": {
          "avgLatencyInMs": {
            "description": "Average latency in milliseconds.",
            "readOnly": true,
            "type": "integer"
          },
          "connectionStatus": {
            "description": "The connection status.",
            "enum": [
              "Unknown",
              "Connected",
              "Disconnected",
              "Degraded"
            ],
            "readOnly": true,
            "type": "string",
            "x-ms-enum": {
              "modelAsString": true,
              "name": "ConnectionStatus"
            }
          },
          "hops": {
            "description": "List of hops between the source and the destination.",
            "items": {
              "$ref": "#/components/schemas/ConnectivityHop"
            },
            "readOnly": true,
            "type": "array"
          },
          "maxLatencyInMs": {
            "description": "Maximum latency in milliseconds.",
            "readOnly": true,
            "type": "integer"
          },
          "minLatencyInMs": {
            "description": "Minimum latency in milliseconds.",
            "readOnly": true,
            "type": "integer"
          },
          "probesFailed": {
            "description": "Number of failed probes.",
            "readOnly": true,
            "type": "integer"
          },
          "probesSent": {
            "description": "Total number of probes sent.",
            "readOnly": true,
            "type": "integer"
          }
        },
        "type": "object"
      },
      "ConnectivityIssue": {
        "description": "Information about an issue encountered in the process of checking for connectivity.",
        "properties": {
          "context": {
            "description": "Provides additional context on the issue.",
            "items": {
              "$ref": "#/components/schemas/IssueContext"
            },
            "readOnly": true,
            "type": "array"
          },
          "origin": {
            "description": "The origin of the issue.",
            "enum": [
              "Local",
              "Inbound",
              "Outbound"
            ],
            "readOnly": true,
            "type": "string",
            "x-ms-enum": {
              "modelAsString": true,
              "name": "Origin"
            }
          },
          "severity": {
            "description": "The severity of the issue.",
            "enum": [
              "Error",
              "Warning"
            ],
            "readOnly": true,
            "type": "string",
            "x-ms-enum": {
              "modelAsString": true,
              "name": "Severity"
            }
          },
          "type": {
            "description": "The type of issue.",
            "enum": [
              "Unknown",
              "AgentStopped",
              "GuestFirewall",
              "DnsResolution",
              "SocketBind",
              "NetworkSecurityRule",
              "UserDefinedRoute",
              "PortThrottled",
              "Platform"
            ],
            "readOnly": true,
            "type": "string",
            "x-ms-enum": {
              "modelAsString": true,
              "name": "IssueType"
            }
          }
        },
        "type": "object"
      },
      "ConnectivityParameters": {
        "description": "Parameters that determine how the connectivity check will be performed.",
        "properties": {
          "destination": {
            "$ref": "#/components/schemas/ConnectivityDestination"
          },
          "protocol": {
            "description": "Network protocol.",
            "enum": [
              "Tcp",
              "Http",
              "Https",
              "Icmp"
            ],
            "type": "string",
            "x-ms-enum": {
              "modelAsString": true,
              "name": "Protocol"
            }
          },
          "protocolConfiguration": {
            "$ref": "#/components/schemas/ProtocolConfiguration"
          },
          "source": {
            "$ref": "#/components/schemas/ConnectivitySource"
          }
        },
        "required": [
          "source",
          "destination"
        ],
        "type": "object"
      },
      "ConnectivitySource": {
        "description": "Parameters that define the source of the connection.",
        "properties": {
          "port": {
            "description": "The source port from which a connectivity check will be performed.",
            "type": "integer"
          },
          "resourceId": {
            "description": "The ID of the resource from which a connectivity check will be initiated.",
            "type": "string"
          }
        },
        "required": [
          "resourceId"
        ],
        "type": "object"
      },
      "ErrorResponse": {
        "description": "The error object.",
        "properties": {
          "error": {
            "$ref": "./network.json#/definitions/ErrorDetails",
            "title": "Error"
          }
        },
        "type": "object"
      },
      "EvaluatedNetworkSecurityGroup": {
        "description": "Results of network security group evaluation.",
        "properties": {
          "appliedTo": {
            "description": "Resource ID of nic or subnet to which network security group is applied.",
            "type": "string"
          },
          "matchedRule": {
            "$ref": "#/components/schemas/MatchedRule"
          },
          "networkSecurityGroupId": {
            "description": "Network security group ID.",
            "type": "string"
          },
          "rulesEvaluationResult": {
            "description": "List of network security rules evaluation results.",
            "items": {
              "$ref": "#/components/schemas/NetworkSecurityRulesEvaluationResult"
            },
            "readOnly": true,
            "type": "array"
          }
        },
        "type": "object"
      },
      "FlowLogFormatParameters": {
        "description": "Parameters that define the flow log format.",
        "properties": {
          "type": {
            "description": "The file type of flow log.",
            "enum": [
              "JSON"
            ],
            "type": "string",
            "x-ms-enum": {
              "modelAsString": true,
              "name": "FlowLogFormatType"
            }
          },
          "version": {
            "default": 0,
            "description": "The version (revision) of the flow log.",
            "type": "integer"
          }
        },
        "type": "object"
      },
      "FlowLogInformation": {
        "description": "Information on the configuration of flow log and traffic analytics (optional) .",
        "properties": {
          "flowAnalyticsConfiguration": {
            "$ref": "#/components/schemas/TrafficAnalyticsProperties"
          },
          "properties": {
            "$ref": "#/components/schemas/FlowLogProperties",
            "x-ms-client-flatten": true
          },
          "targetResourceId": {
            "description": "The ID of the resource to configure for flow log and traffic analytics (optional) .",
            "type": "string"
          }
        },
        "required": [
          "targetResourceId",
          "properties"
        ],
        "type": "object"
      },
      "FlowLogProperties": {
        "description": "Parameters that define the configuration of flow log.",
        "properties": {
          "enabled": {
            "description": "Flag to enable/disable flow logging.",
            "type": "boolean"
          },
          "format": {
            "$ref": "#/components/schemas/FlowLogFormatParameters"
          },
          "retentionPolicy": {
            "$ref": "#/components/schemas/RetentionPolicyParameters"
          },
          "storageId": {
            "description": "ID of the storage account which is used to store the flow log.",
            "type": "string"
          }
        },
        "required": [
          "storageId",
          "enabled"
        ],
        "type": "object"
      },
      "FlowLogStatusParameters": {
        "description": "Parameters that define a resource to query flow log and traffic analytics (optional) status.",
        "properties": {
          "targetResourceId": {
            "description": "The target resource where getting the flow log and traffic analytics (optional) status.",
            "type": "string"
          }
        },
        "required": [
          "targetResourceId"
        ],
        "type": "object"
      },
      "HTTPConfiguration": {
        "description": "HTTP configuration of the connectivity check.",
        "properties": {
          "headers": {
            "description": "List of HTTP headers.",
            "items": {
              "$ref": "#/components/schemas/HTTPHeader"
            },
            "type": "array"
          },
          "method": {
            "description": "HTTP method.",
            "enum": [
              "Get"
            ],
            "type": "string",
            "x-ms-enum": {
              "modelAsString": true,
              "name": "HTTPMethod"
            }
          },
          "validStatusCodes": {
            "description": "Valid status codes.",
            "items": {
              "type": "integer"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "HTTPHeader": {
        "description": "Describes the HTTP header.",
        "properties": {
          "name": {
            "description": "The name in HTTP header.",
            "type": "string"
          },
          "value": {
            "description": "The value in HTTP header.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "IssueContext": {
        "additionalProperties": {
          "type": "string"
        },
        "description": "A key-value pair that provides additional context on the issue.",
        "type": "object"
      },
      "MatchedRule": {
        "description": "Matched rule.",
        "properties": {
          "action": {
            "description": "The network traffic is allowed or denied. Possible values are 'Allow' and 'Deny'.",
            "type": "string"
          },
          "ruleName": {
            "description": "Name of the matched network security rule.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "NetworkConfigurationDiagnosticParameters": {
        "description": "Parameters to get network configuration diagnostic.",
        "properties": {
          "profiles": {
            "description": "List of network configuration diagnostic profiles.",
            "items": {
              "$ref": "#/components/schemas/NetworkConfigurationDiagnosticProfile"
            },
            "type": "array"
          },
          "targetResourceId": {
            "description": "The ID of the target resource to perform network configuration diagnostic. Valid options are VM, NetworkInterface, VMSS/NetworkInterface and Application Gateway.",
            "type": "string"
          },
          "verbosityLevel": {
            "description": "Verbosity level. Accepted values are 'Normal', 'Minimum', 'Full'.",
            "enum": [
              "Normal",
              "Minimum",
              "Full"
            ],
            "type": "string",
            "x-ms-enum": {
              "modelAsString": true,
              "name": "VerbosityLevel"
            }
          }
        },
        "required": [
          "targetResourceId",
          "profiles"
        ],
        "type": "object"
      },
      "NetworkConfigurationDiagnosticProfile": {
        "description": "Parameters to compare with network configuration.",
        "properties": {
          "destination": {
            "description": "Traffic destination. Accepted values are: '*', IP Address/CIDR, Service Tag.",
            "type": "string"
          },
          "destinationPort": {
            "description": "Traffic destination port. Accepted values are '*', port (for example, 3389) and port range (for example, 80-100).",
            "type": "string"
          },
          "direction": {
            "description": "The direction of the traffic. Accepted values are 'Inbound' and 'Outbound'.",
            "enum": [
              "Inbound",
              "Outbound"
            ],
            "type": "string",
            "x-ms-enum": {
              "modelAsString": true,
              "name": "Direction"
            }
          },
          "protocol": {
            "description": "Protocol to be verified on. Accepted values are '*', TCP, UDP.",
            "type": "string"
          },
          "source": {
            "description": "Traffic source. Accepted values are '*', IP Address/CIDR, Service Tag.",
            "type": "string"
          }
        },
        "required": [
          "direction",
          "protocol",
          "source",
          "destination",
          "destinationPort"
        ],
        "type": "object"
      },
      "NetworkConfigurationDiagnosticResponse": {
        "description": "Results of network configuration diagnostic on the target resource.",
        "properties": {
          "results": {
            "description": "List of network configuration diagnostic results.",
            "items": {
              "$ref": "#/components/schemas/NetworkConfigurationDiagnosticResult"
            },
            "readOnly": true,
            "type": "array"
          }
        },
        "type": "object"
      },
      "NetworkConfigurationDiagnosticResult": {
        "description": "Network configuration diagnostic result corresponded to provided traffic query.",
        "properties": {
          "networkSecurityGroupResult": {
            "$ref": "#/components/schemas/NetworkSecurityGroupResult"
          },
          "profile": {
            "$ref": "#/components/schemas/NetworkConfigurationDiagnosticProfile"
          }
        },
        "type": "object"
      },
      "NetworkInterfaceAssociation": {
        "description": "Network interface and its custom security rules.",
        "properties": {
          "id": {
            "description": "Network interface ID.",
            "readOnly": true,
            "type": "string"
          },
          "securityRules": {
            "description": "Collection of custom security rules.",
            "items": {
              "$ref": "./networkSecurityGroup.json#/definitions/SecurityRule"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "NetworkSecurityGroupResult": {
        "description": "Network configuration diagnostic result corresponded provided traffic query.",
        "properties": {
          "evaluatedNetworkSecurityGroups": {
            "description": "List of results network security groups diagnostic.",
            "items": {
              "$ref": "#/components/schemas/EvaluatedNetworkSecurityGroup"
            },
            "readOnly": true,
            "type": "array"
          },
          "securityRuleAccessResult": {
            "description": "The network traffic is allowed or denied. Possible values are 'Allow' and 'Deny'.",
            "enum": [
              "Allow",
              "Deny"
            ],
            "type": "string",
            "x-ms-enum": {
              "modelAsString": true,
              "name": "SecurityRuleAccess"
            }
          }
        },
        "type": "object"
      },
      "NetworkSecurityRulesEvaluationResult": {
        "description": "Network security rules evaluation result.",
        "properties": {
          "destinationMatched": {
            "description": "Value indicating whether destination is matched.",
            "type": "boolean"
          },
          "destinationPortMatched": {
            "description": "Value indicating whether destination port is matched.",
            "type": "boolean"
          },
          "name": {
            "description": "Name of the network security rule.",
            "type": "string"
          },
          "protocolMatched": {
            "description": "Value indicating whether protocol is matched.",
            "type": "boolean"
          },
          "sourceMatched": {
            "description": "Value indicating whether source is matched.",
            "type": "boolean"
          },
          "sourcePortMatched": {
            "description": "Value indicating whether source port is matched.",
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "NetworkWatcher": {
        "allOf": [
          {
            "$ref": "./network.json#/definitions/Resource"
          }
        ],
        "description": "Network watcher in a resource group.",
        "properties": {
          "etag": {
            "description": "A unique read-only string that changes whenever the resource is updated.",
            "type": "string"
          },
          "properties": {
            "$ref": "#/components/schemas/NetworkWatcherPropertiesFormat",
            "x-ms-client-flatten": true
          }
        },
        "type": "object"
      },
      "NetworkWatcherListResult": {
        "description": "List of network watcher resources.",
        "properties": {
          "value": {
            "items": {
              "$ref": "#/components/schemas/NetworkWatcher"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "NetworkWatcherPropertiesFormat": {
        "description": "The network watcher properties.",
        "properties": {
          "provisioningState": {
            "description": "The provisioning state of the resource.",
            "enum": [
              "Succeeded",
              "Updating",
              "Deleting",
              "Failed"
            ],
            "readOnly": true,
            "type": "string",
            "x-ms-enum": {
              "modelAsString": true,
              "name": "ProvisioningState"
            }
          }
        },
        "type": "object"
      },
      "NextHopParameters": {
        "description": "Parameters that define the source and destination endpoint.",
        "properties": {
          "destinationIPAddress": {
            "description": "The destination IP address.",
            "type": "string"
          },
          "sourceIPAddress": {
            "description": "The source IP address.",
            "type": "string"
          },
          "targetNicResourceId": {
            "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).",
            "type": "string"
          },
          "targetResourceId": {
            "description": "The resource identifier of the target resource against which the action is to be performed.",
            "type": "string"
          }
        },
        "required": [
          "targetResourceId",
          "sourceIPAddress",
          "destinationIPAddress"
        ],
        "type": "object"
      },
      "NextHopResult": {
        "description": "The information about next hop from the specified VM.",
        "properties": {
          "nextHopIpAddress": {
            "description": "Next hop IP Address",
            "type": "string"
          },
          "nextHopType": {
            "description": "Next hop type.",
            "enum": [
              "Internet",
              "VirtualAppliance",
              "VirtualNetworkGateway",
              "VnetLocal",
              "HyperNetGateway",
              "None"
            ],
            "type": "string",
            "x-ms-enum": {
              "modelAsString": true,
              "name": "NextHopType"
            }
          },
          "routeTableId": {
            "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'.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "PacketCapture": {
        "description": "Parameters that define the create packet capture operation.",
        "properties": {
          "properties": {
            "$ref": "#/components/schemas/PacketCaptureParameters",
            "x-ms-client-flatten": true
          }
        },
        "required": [
          "properties"
        ],
        "type": "object"
      },
      "PacketCaptureFilter": {
        "description": "Filter that is applied to packet capture request. Multiple filters can be applied.",
        "properties": {
          "localIPAddress": {
            "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.",
            "type": "string"
          },
          "localPort": {
            "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.",
            "type": "string"
          },
          "protocol": {
            "default": "Any",
            "description": "Protocol to be filtered on.",
            "enum": [
              "TCP",
              "UDP",
              "Any"
            ],
            "type": "string",
            "x-ms-enum": {
              "modelAsString": true,
              "name": "PcProtocol"
            }
          },
          "remoteIPAddress": {
            "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.",
            "type": "string"
          },
          "remotePort": {
            "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.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "PacketCaptureListResult": {
        "description": "List of packet capture sessions.",
        "properties": {
          "value": {
            "description": "Information about packet capture sessions.",
            "items": {
              "$ref": "#/components/schemas/PacketCaptureResult"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "PacketCaptureParameters": {
        "description": "Parameters that define the create packet capture operation.",
        "properties": {
          "bytesToCapturePerPacket": {
            "default": 0,
            "description": "Number of bytes captured per packet, the remaining bytes are truncated.",
            "type": "integer"
          },
          "filters": {
            "items": {
              "$ref": "#/components/schemas/PacketCaptureFilter"
            },
            "type": "array"
          },
          "storageLocation": {
            "$ref": "#/components/schemas/PacketCaptureStorageLocation"
          },
          "target": {
            "description": "The ID of the targeted resource, only VM is currently supported.",
            "type": "string"
          },
          "timeLimitInSeconds": {
            "default": 18000,
            "description": "Maximum duration of the capture session in seconds.",
            "type": "integer"
          },
          "totalBytesPerSession": {
            "default": 1073741824,
            "description": "Maximum size of the capture output.",
            "type": "integer"
          }
        },
        "required": [
          "target",
          "storageLocation"
        ],
        "type": "object"
      },
      "PacketCaptureQueryStatusResult": {
        "description": "Status of packet capture session.",
        "properties": {
          "captureStartTime": {
            "description": "The start time of the packet capture session.",
            "format": "date-time",
            "type": "string"
          },
          "id": {
            "description": "The ID of the packet capture resource.",
            "type": "string"
          },
          "name": {
            "description": "The name of the packet capture resource.",
            "type": "string"
          },
          "packetCaptureError": {
            "description": "List of errors of packet capture session.",
            "items": {
              "enum": [
                "InternalError",
                "AgentStopped",
                "CaptureFailed",
                "LocalFileFailed",
                "StorageFailed"
              ],
              "type": "string",
              "x-ms-enum": {
                "modelAsString": true,
                "name": "PcError"
              }
            },
            "type": "array"
          },
          "packetCaptureStatus": {
            "description": "The status of the packet capture session.",
            "enum": [
              "NotStarted",
              "Running",
              "Stopped",
              "Error",
              "Unknown"
            ],
            "type": "string",
            "x-ms-enum": {
              "modelAsString": true,
              "name": "PcStatus"
            }
          },
          "stopReason": {
            "description": "The reason the current packet capture session was stopped.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "PacketCaptureResult": {
        "description": "Information about packet capture session.",
        "properties": {
          "etag": {
            "default": "A unique read-only string that changes whenever the resource is updated.",
            "type": "string"
          },
          "id": {
            "description": "ID of the packet capture operation.",
            "readOnly": true,
            "type": "string"
          },
          "name": {
            "description": "Name of the packet capture session.",
            "readOnly": true,
            "type": "string"
          },
          "properties": {
            "$ref": "#/components/schemas/PacketCaptureResultProperties",
            "x-ms-client-flatten": true
          }
        },
        "type": "object"
      },
      "PacketCaptureResultProperties": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PacketCaptureParameters"
          }
        ],
        "description": "Describes the properties of a packet capture session.",
        "properties": {
          "provisioningState": {
            "description": "The provisioning state of the packet capture session.",
            "enum": [
              "Succeeded",
              "Updating",
              "Deleting",
              "Failed"
            ],
            "type": "string",
            "x-ms-enum": {
              "modelAsString": true,
              "name": "ProvisioningState"
            }
          }
        },
        "type": "object"
      },
      "PacketCaptureStorageLocation": {
        "description": "Describes the storage location for a packet capture session.",
        "properties": {
          "filePath": {
            "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.",
            "type": "string"
          },
          "storageId": {
            "description": "The ID of the storage account to save the packet capture session. Required if no local file path is provided.",
            "type": "string"
          },
          "storagePath": {
            "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.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "ProtocolConfiguration": {
        "description": "Configuration of the protocol.",
        "properties": {
          "HTTPConfiguration": {
            "$ref": "#/components/schemas/HTTPConfiguration"
          }
        },
        "type": "object"
      },
      "QueryTroubleshootingParameters": {
        "description": "Parameters that define the resource to query the troubleshooting result.",
        "properties": {
          "targetResourceId": {
            "description": "The target resource ID to query the troubleshooting result.",
            "type": "string"
          }
        },
        "required": [
          "targetResourceId"
        ],
        "type": "object"
      },
      "RetentionPolicyParameters": {
        "description": "Parameters that define the retention policy for flow log.",
        "properties": {
          "days": {
            "default": 0,
            "description": "Number of days to retain flow log records.",
            "type": "integer"
          },
          "enabled": {
            "default": false,
            "description": "Flag to enable/disable retention.",
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "SecurityGroupNetworkInterface": {
        "description": "Network interface and all its associated security rules.",
        "properties": {
          "id": {
            "description": "ID of the network interface.",
            "type": "string"
          },
          "securityRuleAssociations": {
            "$ref": "#/components/schemas/SecurityRuleAssociations"
          }
        },
        "type": "object"
      },
      "SecurityGroupViewParameters": {
        "description": "Parameters that define the VM to check security groups for.",
        "properties": {
          "targetResourceId": {
            "description": "ID of the target VM.",
            "type": "string"
          }
        },
        "required": [
          "targetResourceId"
        ],
        "type": "object"
      },
      "SecurityGroupViewResult": {
        "description": "The information about security rules applied to the specified VM.",
        "properties": {
          "networkInterfaces": {
            "description": "List of network interfaces on the specified VM.",
            "items": {
              "$ref": "#/components/schemas/SecurityGroupNetworkInterface"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "SecurityRuleAssociations": {
        "description": "All security rules associated with the network interface.",
        "properties": {
          "defaultSecurityRules": {
            "description": "Collection of default security rules of the network security group.",
            "items": {
              "$ref": "./networkSecurityGroup.json#/definitions/SecurityRule"
            },
            "type": "array"
          },
          "effectiveSecurityRules": {
            "description": "Collection of effective security rules.",
            "items": {
              "$ref": "./networkInterface.json#/definitions/EffectiveNetworkSecurityRule"
            },
            "type": "array"
          },
          "networkInterfaceAssociation": {
            "$ref": "#/components/schemas/NetworkInterfaceAssociation"
          },
          "subnetAssociation": {
            "$ref": "#/components/schemas/SubnetAssociation"
          }
        },
        "type": "object"
      },
      "SubnetAssociation": {
        "description": "Network interface and its custom security rules.",
        "properties": {
          "id": {
            "description": "Subnet ID.",
            "readOnly": true,
            "type": "string"
          },
          "securityRules": {
            "description": "Collection of custom security rules.",
            "items": {
              "$ref": "./networkSecurityGroup.json#/definitions/SecurityRule"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "Topology": {
        "description": "Topology of the specified resource group.",
        "properties": {
          "createdDateTime": {
            "description": "The datetime when the topology was initially created for the resource group.",
            "format": "date-time",
            "readOnly": true,
            "type": "string"
          },
          "id": {
            "description": "GUID representing the operation id.",
            "readOnly": true,
            "type": "string"
          },
          "lastModified": {
            "description": "The datetime when the topology was last modified.",
            "format": "date-time",
            "readOnly": true,
            "type": "string"
          },
          "resources": {
            "items": {
              "$ref": "#/components/schemas/TopologyResource"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "TopologyAssociation": {
        "description": "Resources that have an association with the parent resource.",
        "properties": {
          "associationType": {
            "description": "The association type of the child resource to the parent resource.",
            "enum": [
              "Associated",
              "Contains"
            ],
            "type": "string",
            "x-ms-enum": {
              "modelAsString": true,
              "name": "AssociationType"
            }
          },
          "name": {
            "description": "The name of the resource that is associated with the parent resource.",
            "type": "string"
          },
          "resourceId": {
            "description": "The ID of the resource that is associated with the parent resource.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "TopologyParameters": {
        "description": "Parameters that define the representation of topology.",
        "properties": {
          "targetResourceGroupName": {
            "description": "The name of the target resource group to perform topology on.",
            "type": "string"
          },
          "targetSubnet": {
            "$ref": "./network.json#/definitions/SubResource",
            "description": "The reference of the Subnet resource."
          },
          "targetVirtualNetwork": {
            "$ref": "./network.json#/definitions/SubResource",
            "description": "The reference of the Virtual Network resource."
          }
        },
        "type": "object"
      },
      "TopologyResource": {
        "description": "The network resource topology information for the given resource group.",
        "properties": {
          "associations": {
            "description": "Holds the associations the resource has with other resources in the resource group.",
            "items": {
              "$ref": "#/components/schemas/TopologyAssociation"
            },
            "type": "array"
          },
          "id": {
            "description": "ID of the resource.",
            "type": "string"
          },
          "location": {
            "description": "Resource location.",
            "type": "string"
          },
          "name": {
            "description": "Name of the resource.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "TrafficAnalyticsConfigurationProperties": {
        "description": "Parameters that define the configuration of traffic analytics.",
        "properties": {
          "enabled": {
            "description": "Flag to enable/disable traffic analytics.",
            "type": "boolean"
          },
          "trafficAnalyticsInterval": {
            "description": "The interval in minutes which would decide how frequently TA service should do flow analytics",
            "type": "integer"
          },
          "workspaceId": {
            "description": "The resource guid of the attached workspace",
            "type": "string"
          },
          "workspaceRegion": {
            "description": "The location of the attached workspace",
            "type": "string"
          },
          "workspaceResourceId": {
            "description": "Resource Id of the attached workspace ",
            "type": "string"
          }
        },
        "required": [
          "enabled",
          "workspaceId",
          "workspaceRegion",
          "workspaceResourceId"
        ],
        "type": "object"
      },
      "TrafficAnalyticsProperties": {
        "description": "Parameters that define the configuration of traffic analytics.",
        "properties": {
          "networkWatcherFlowAnalyticsConfiguration": {
            "$ref": "#/components/schemas/TrafficAnalyticsConfigurationProperties"
          }
        },
        "required": [
          "networkWatcherFlowAnalyticsConfiguration"
        ],
        "type": "object"
      },
      "TroubleshootingDetails": {
        "description": "Information gained from troubleshooting of specified resource.",
        "properties": {
          "detail": {
            "description": "Details on troubleshooting results.",
            "type": "string"
          },
          "id": {
            "description": "The id of the get troubleshoot operation.",
            "type": "string"
          },
          "reasonType": {
            "description": "Reason type of failure.",
            "type": "string"
          },
          "recommendedActions": {
            "description": "List of recommended actions.",
            "items": {
              "$ref": "#/components/schemas/TroubleshootingRecommendedActions"
            },
            "type": "array"
          },
          "summary": {
            "description": "A summary of troubleshooting.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "TroubleshootingParameters": {
        "description": "Parameters that define the resource to troubleshoot.",
        "properties": {
          "properties": {
            "$ref": "#/components/schemas/TroubleshootingProperties",
            "x-ms-client-flatten": true
          },
          "targetResourceId": {
            "description": "The target resource to troubleshoot.",
            "type": "string"
          }
        },
        "required": [
          "targetResourceId",
          "properties"
        ],
        "type": "object"
      },
      "TroubleshootingProperties": {
        "description": "Storage location provided for troubleshoot.",
        "properties": {
          "storageId": {
            "description": "The ID for the storage account to save the troubleshoot result.",
            "type": "string"
          },
          "storagePath": {
            "description": "The path to the blob to save the troubleshoot result in.",
            "type": "string"
          }
        },
        "required": [
          "storageId",
          "storagePath"
        ],
        "type": "object"
      },
      "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"
          }
        },
        "type": "object"
      },
      "TroubleshootingResult": {
        "description": "Troubleshooting information gained from specified resource.",
        "properties": {
          "code": {
            "description": "The result code of the troubleshooting.",
            "type": "string"
          },
          "endTime": {
            "description": "The end time of the troubleshooting.",
            "format": "date-time",
            "type": "string"
          },
          "results": {
            "description": "Information from troubleshooting.",
            "items": {
              "$ref": "#/components/schemas/TroubleshootingDetails"
            },
            "type": "array"
          },
          "startTime": {
            "description": "The start time of the troubleshooting.",
            "format": "date-time",
            "type": "string"
          }
        },
        "type": "object"
      },
      "VerificationIPFlowParameters": {
        "description": "Parameters that define the IP flow to be verified.",
        "properties": {
          "direction": {
            "description": "The direction of the packet represented as a 5-tuple.",
            "enum": [
              "Inbound",
              "Outbound"
            ],
            "type": "string",
            "x-ms-enum": {
              "modelAsString": true,
              "name": "Direction"
            }
          },
          "localIPAddress": {
            "description": "The local IP address. Acceptable values are valid IPv4 addresses.",
            "type": "string"
          },
          "localPort": {
            "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.",
            "type": "string"
          },
          "protocol": {
            "description": "Protocol to be verified on.",
            "enum": [
              "TCP",
              "UDP"
            ],
            "type": "string",
            "x-ms-enum": {
              "modelAsString": true,
              "name": "IpFlowProtocol"
            }
          },
          "remoteIPAddress": {
            "description": "The remote IP address. Acceptable values are valid IPv4 addresses.",
            "type": "string"
          },
          "remotePort": {
            "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.",
            "type": "string"
          },
          "targetNicResourceId": {
            "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).",
            "type": "string"
          },
          "targetResourceId": {
            "description": "The ID of the target resource to perform next-hop on.",
            "type": "string"
          }
        },
        "required": [
          "targetResourceId",
          "direction",
          "protocol",
          "localPort",
          "remotePort",
          "localIPAddress",
          "remoteIPAddress"
        ],
        "type": "object"
      },
      "VerificationIPFlowResult": {
        "description": "Results of IP flow verification on the target resource.",
        "properties": {
          "access": {
            "description": "Indicates whether the traffic is allowed or denied.",
            "enum": [
              "Allow",
              "Deny"
            ],
            "type": "string",
            "x-ms-enum": {
              "modelAsString": true,
              "name": "Access"
            }
          },
          "ruleName": {
            "description": "Name of the rule. If input is not matched against any security rule, it is not displayed.",
            "type": "string"
          }
        },
        "type": "object"
      }
    },
    "securitySchemes": {
      "azure_auth": {
        "description": "Azure Active Directory OAuth2 Flow",
        "flows": {
          "implicit": {
            "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize",
            "scopes": {
              "user_impersonation": "impersonate your user account"
            }
          }
        },
        "type": "oauth2"
      }
    }
  },
  "security": [
    {
      "azure_auth": [
        "user_impersonation"
      ]
    }
  ]
}