swagger: "2.0"
schemes:
  - https
host: management.azure.com
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: 2019-07-01
  x-apisguru-categories:
    - cloud
  x-logo:
    url: https://api.apis.guru/v2/cache/logo/https_assets.onestore.ms_cdnfiles_onestorerolling-1606-01000_shell_v3_images_logo_microsoft.png
  x-origin:
    - format: swagger
      url: https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/network/resource-manager/Microsoft.Network/stable/2019-07-01/networkWatcher.json
      version: "2.0"
  x-preferred: true
  x-providerName: azure.com
  x-serviceName: network-networkWatcher
  x-tags:
    - Azure
    - Microsoft
consumes:
  - application/json
produces:
  - application/json
securityDefinitions:
  azure_auth:
    authorizationUrl: https://login.microsoftonline.com/common/oauth2/authorize
    description: Azure Active Directory OAuth2 Flow.
    flow: implicit
    scopes:
      user_impersonation: impersonate your user account
    type: oauth2
security:
  - azure_auth:
      - user_impersonation
paths:
  "/subscriptions/{subscriptionId}/providers/Microsoft.Network/networkWatchers":
    get:
      description: Gets all network watchers by subscription.
      operationId: NetworkWatchers_ListAll
      parameters:
        - description: Client API version.
          in: query
          name: api-version
          required: true
          type: string
        - description: The subscription credentials which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.
          in: path
          name: subscriptionId
          required: true
          type: string
      responses:
        "200":
          description: Request successful. The operation returns a list of network watcher resources.
          schema:
            $ref: "#/definitions/NetworkWatcherListResult"
        default:
          description: Error response describing why the operation failed.
          schema:
            $ref: "#/definitions/ErrorResponse"
      tags:
        - NetworkWatchers
      x-ms-examples:
        List all network watchers:
          parameters:
            api-version: 2019-07-01
            subscriptionId: subid
          responses:
            "200":
              body:
                value:
                  - etag: W/"00000000-0000-0000-0000-000000000000"
                    id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkWatchers/nw1
                    location: eastus
                    name: nw1
                    properties:
                      provisioningState: Succeeded
                    tags: {}
                    type: Microsoft.Network/networkWatchers
                  - etag: W/"00000000-0000-0000-0000-000000000000"
                    id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkWatchers/nw2
                    location: westus
                    name: nw2
                    properties:
                      provisioningState: Succeeded
                    tags: {}
                    type: Microsoft.Network/networkWatchers
      x-ms-pageable:
        nextLinkName: null
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkWatchers":
    get:
      description: Gets all network watchers by resource group.
      operationId: NetworkWatchers_List
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: Client API version.
          in: query
          name: api-version
          required: true
          type: string
        - description: The subscription credentials which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.
          in: path
          name: subscriptionId
          required: true
          type: string
      responses:
        "200":
          description: Request successful. The operation returns a list of network watcher resources.
          schema:
            $ref: "#/definitions/NetworkWatcherListResult"
        default:
          description: Error response describing why the operation failed.
          schema:
            $ref: "#/definitions/ErrorResponse"
      tags:
        - NetworkWatchers
      x-ms-examples:
        List network watchers:
          parameters:
            api-version: 2019-07-01
            resourceGroupName: rg1
            subscriptionId: subid
          responses:
            "200":
              body:
                value:
                  - etag: W/"00000000-0000-0000-0000-000000000000"
                    id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkWatchers/nw1
                    location: eastus
                    name: nw1
                    properties:
                      provisioningState: Succeeded
                    tags: {}
                    type: Microsoft.Network/networkWatchers
                  - etag: W/"00000000-0000-0000-0000-000000000000"
                    id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkWatchers/nw2
                    location: eastus
                    name: nw2
                    properties:
                      provisioningState: Succeeded
                    tags: {}
                    type: Microsoft.Network/networkWatchers
      x-ms-pageable:
        nextLinkName: null
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkWatchers/{networkWatcherName}":
    delete:
      description: Deletes the specified network watcher resource.
      operationId: NetworkWatchers_Delete
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the network watcher.
          in: path
          name: networkWatcherName
          required: true
          type: string
        - description: Client API version.
          in: query
          name: api-version
          required: true
          type: string
        - description: The subscription credentials which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.
          in: path
          name: subscriptionId
          required: true
          type: string
      responses:
        "202":
          description: Accepted and the operation will complete asynchronously.
        "204":
          description: Delete successful.
        default:
          description: Error response describing why the operation failed.
          schema:
            $ref: "#/definitions/ErrorResponse"
      tags:
        - NetworkWatchers
      x-ms-examples:
        Delete network watcher:
          parameters:
            api-version: 2019-07-01
            networkWatcherName: nw1
            resourceGroupName: rg1
            subscriptionId: subid
          responses:
            "202": {}
            "204": {}
      x-ms-long-running-operation: true
      x-ms-long-running-operation-options:
        final-state-via: location
    get:
      description: Gets the specified network watcher by resource group.
      operationId: NetworkWatchers_Get
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the network watcher.
          in: path
          name: networkWatcherName
          required: true
          type: string
        - description: Client API version.
          in: query
          name: api-version
          required: true
          type: string
        - description: The subscription credentials which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.
          in: path
          name: subscriptionId
          required: true
          type: string
      responses:
        "200":
          description: Request successful. The operation returns a network watcher resource.
          schema:
            $ref: "#/definitions/NetworkWatcher"
        default:
          description: Error response describing why the operation failed.
          schema:
            $ref: "#/definitions/ErrorResponse"
      tags:
        - NetworkWatchers
      x-ms-examples:
        Get network watcher:
          parameters:
            api-version: 2019-07-01
            networkWatcherName: nw1
            resourceGroupName: rg1
            subscriptionId: subid
          responses:
            "200":
              body:
                etag: W/"00000000-0000-0000-0000-000000000000"
                id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkWatchers/nw1
                location: eastus
                name: nw1
                properties:
                  provisioningState: Succeeded
                tags: {}
                type: Microsoft.Network/networkWatchers
    patch:
      description: Updates a network watcher tags.
      operationId: NetworkWatchers_UpdateTags
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the network watcher.
          in: path
          name: networkWatcherName
          required: true
          type: string
        - description: Parameters supplied to update network watcher tags.
          in: body
          name: parameters
          required: true
          schema:
            description: Tags object for patch operations.
            properties:
              tags:
                additionalProperties:
                  type: string
                description: Resource tags.
                type: object
        - description: Client API version.
          in: query
          name: api-version
          required: true
          type: string
        - description: The subscription credentials which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.
          in: path
          name: subscriptionId
          required: true
          type: string
      responses:
        "200":
          description: Update successful. The operation returns the resulting network watcher resource.
          schema:
            $ref: "#/definitions/NetworkWatcher"
        default:
          description: Error response describing why the operation failed.
          schema:
            $ref: "#/definitions/ErrorResponse"
      tags:
        - NetworkWatchers
      x-ms-examples:
        Update network watcher tags:
          parameters:
            api-version: 2019-07-01
            networkWatcherName: nw1
            parameters:
              tags:
                tag1: value1
                tag2: value2
            resourceGroupName: rg1
            subscriptionId: subid
          responses:
            "200":
              body:
                etag: W/"00000000-0000-0000-0000-000000000000"
                id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkWatchers/nw1
                location: eastus
                name: nw1
                properties:
                  provisioningState: Succeeded
                tags:
                  tag1: value1
                  tag2: value2
                type: Microsoft.Network/networkWatchers
    put:
      description: Creates or updates a network watcher in the specified resource group.
      operationId: NetworkWatchers_CreateOrUpdate
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the network watcher.
          in: path
          name: networkWatcherName
          required: true
          type: string
        - description: Parameters that define the network watcher resource.
          in: body
          name: parameters
          required: true
          schema:
            $ref: "#/definitions/NetworkWatcher"
        - description: Client API version.
          in: query
          name: api-version
          required: true
          type: string
        - description: The subscription credentials which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.
          in: path
          name: subscriptionId
          required: true
          type: string
      responses:
        "200":
          description: Update successful. The operation returns the resulting network watcher resource.
          schema:
            $ref: "#/definitions/NetworkWatcher"
        "201":
          description: Create successful. The operation returns the resulting network watcher resource.
          schema:
            $ref: "#/definitions/NetworkWatcher"
        default:
          description: Error response describing why the operation failed.
          schema:
            $ref: "#/definitions/ErrorResponse"
      tags:
        - NetworkWatchers
      x-ms-examples:
        Create network watcher:
          parameters:
            api-version: 2019-07-01
            networkWatcherName: nw1
            parameters:
              location: eastus
              properties: {}
            resourceGroupName: rg1
            subscriptionId: subid
          responses:
            "200":
              body:
                etag: W/"00000000-0000-0000-0000-000000000000"
                id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkWatchers/nw1
                location: eastus
                name: nw1
                properties:
                  provisioningState: Succeeded
                tags: {}
                type: Microsoft.Network/networkWatchers
            "201":
              body:
                etag: W/"00000000-0000-0000-0000-000000000000"
                id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkWatchers/nw1
                location: eastus
                name: nw1
                properties:
                  provisioningState: Succeeded
                tags: {}
                type: Microsoft.Network/networkWatchers
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkWatchers/{networkWatcherName}/availableProvidersList":
    post:
      description: Lists all available internet service providers for a specified Azure region.
      operationId: NetworkWatchers_ListAvailableProviders
      parameters:
        - description: The name of the network watcher resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the network watcher resource.
          in: path
          name: networkWatcherName
          required: true
          type: string
        - description: Parameters that scope the list of available providers.
          in: body
          name: parameters
          required: true
          schema:
            $ref: "#/definitions/AvailableProvidersListParameters"
        - description: Client API version.
          in: query
          name: api-version
          required: true
          type: string
        - description: The subscription credentials which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.
          in: path
          name: subscriptionId
          required: true
          type: string
      responses:
        "200":
          description: Successful request for list of available providers.
          schema:
            $ref: "#/definitions/AvailableProvidersList"
        "202":
          description: Accepted and the operation will complete asynchronously.
          schema:
            $ref: "#/definitions/AvailableProvidersList"
        default:
          description: Error response describing why the operation failed.
          schema:
            $ref: "#/definitions/ErrorResponse"
      tags:
        - NetworkWatchers
      x-ms-examples:
        Get Available Providers List:
          parameters:
            api-version: 2019-07-01
            networkWatcherName: nw1
            parameters:
              azureLocations:
                - West US
              city: seattle
              country: United States
              state: washington
            resourceGroupName: rg1
            subscriptionId: subid
          responses:
            "200":
              body:
                countries:
                  - countryName: United States
                    states:
                      - cities:
                          - cityName: seattle
                            providers:
                              - Comcast Cable Communications, Inc. - ASN 7922
                              - Comcast Cable Communications, LLC - ASN 7922
                              - Level 3 Communications, Inc. (GBLX) - ASN 3549
                              - Qwest Communications Company, LLC - ASN 209
                        stateName: washington
            "202":
              body:
                countries:
                  - countryName: United States
                    states:
                      - cities:
                          - cityName: seattle
                            providers:
                              - Comcast Cable Communications, Inc. - ASN 7922
                              - Comcast Cable Communications, LLC - ASN 7922
                              - Level 3 Communications, Inc. (GBLX) - ASN 3549
                              - Qwest Communications Company, LLC - ASN 209
                        stateName: washington
      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}/azureReachabilityReport":
    post:
      description: Gets the relative latency score for internet service providers from a specified location to Azure regions.
      operationId: NetworkWatchers_GetAzureReachabilityReport
      parameters:
        - description: The name of the network watcher resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the network watcher resource.
          in: path
          name: networkWatcherName
          required: true
          type: string
        - description: Parameters that determine Azure reachability report configuration.
          in: body
          name: parameters
          required: true
          schema:
            $ref: "#/definitions/AzureReachabilityReportParameters"
        - description: Client API version.
          in: query
          name: api-version
          required: true
          type: string
        - description: The subscription credentials which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.
          in: path
          name: subscriptionId
          required: true
          type: string
      responses:
        "200":
          description: Successful request for Azure reachability report.
          schema:
            $ref: "#/definitions/AzureReachabilityReport"
        "202":
          description: Accepted and the operation will complete asynchronously.
          schema:
            $ref: "#/definitions/AzureReachabilityReport"
        default:
          description: Error response describing why the operation failed.
          schema:
            $ref: "#/definitions/ErrorResponse"
      tags:
        - NetworkWatchers
      x-ms-examples:
        Get Azure Reachability Report:
          parameters:
            api-version: 2019-07-01
            networkWatcherName: nw1
            parameters:
              azureLocations:
                - West US
              endTime: 2017-09-10T00:00:00Z
              providerLocation:
                country: United States
                state: washington
              providers:
                - Frontier Communications of America, Inc. - ASN 5650
              startTime: 2017-09-07T00:00:00Z
            resourceGroupName: rg1
            subscriptionId: subid
          responses:
            "200":
              body:
                aggregationLevel: State
                providerLocation:
                  country: United States
                  state: washington
                reachabilityReport:
                  - azureLocation: West US
                    latencies:
                      - score: 94
                        timeStamp: 2017-09-07T00:00:00Z
                      - score: 94
                        timeStamp: 2017-09-08T00:00:00Z
                      - score: 94
                        timeStamp: 2017-09-09T00:00:00Z
                    provider: Frontier Communications of America, Inc. - ASN 5650
            "202":
              body:
                aggregationLevel: State
                providerLocation:
                  country: United States
                  state: washington
                reachabilityReport:
                  - azureLocation: West US
                    latencies:
                      - score: 94
                        timeStamp: 2017-09-07T00:00:00Z
                      - score: 94
                        timeStamp: 2017-09-08T00:00:00Z
                      - score: 94
                        timeStamp: 2017-09-09T00:00:00Z
                    provider: Frontier Communications of America, Inc. - ASN 5650
      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}/configureFlowLog":
    post:
      description: Configures flow log and traffic analytics (optional) on a specified resource.
      operationId: NetworkWatchers_SetFlowLogConfiguration
      parameters:
        - description: The name of the network watcher resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the network watcher resource.
          in: path
          name: networkWatcherName
          required: true
          type: string
        - description: Parameters that define the configuration of flow log.
          in: body
          name: parameters
          required: true
          schema:
            $ref: "#/definitions/FlowLogInformation"
        - description: Client API version.
          in: query
          name: api-version
          required: true
          type: string
        - description: The subscription credentials which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.
          in: path
          name: subscriptionId
          required: true
          type: string
      responses:
        "200":
          description: Successful request for setting flow log and traffic analytics (optional) configuration.
          schema:
            $ref: "#/definitions/FlowLogInformation"
        "202":
          description: Accepted and the operation will complete asynchronously.
          schema:
            $ref: "#/definitions/FlowLogInformation"
        default:
          description: Error response describing why the operation failed.
          schema:
            $ref: "#/definitions/ErrorResponse"
      tags:
        - NetworkWatchers
        - TrafficAnalytics
      x-ms-examples:
        Configure flow log:
          parameters:
            api-version: 2019-07-01
            networkWatcherName: nw1
            parameters:
              properties:
                enabled: true
                storageId: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Storage/storageAccounts/st1
              targetResourceId: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkSecurityGroups/nsg1
            resourceGroupName: rg1
            subscriptionId: subid
          responses:
            "200":
              body:
                properties:
                  enabled: true
                  storageId: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Storage/storageAccounts/st1
                targetResourceId: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkSecurityGroups/nsg1
            "202":
              body:
                properties:
                  enabled: true
                  storageId: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Storage/storageAccounts/st1
                targetResourceId: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkSecurityGroups/nsg1
      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}/connectivityCheck":
    post:
      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
      parameters:
        - description: The name of the network watcher resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the network watcher resource.
          in: path
          name: networkWatcherName
          required: true
          type: string
        - description: Parameters that determine how the connectivity check will be performed.
          in: body
          name: parameters
          required: true
          schema:
            $ref: "#/definitions/ConnectivityParameters"
        - description: Client API version.
          in: query
          name: api-version
          required: true
          type: string
        - description: The subscription credentials which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.
          in: path
          name: subscriptionId
          required: true
          type: string
      responses:
        "200":
          description: Successful request for checking connectivity.
          schema:
            $ref: "#/definitions/ConnectivityInformation"
        "202":
          description: Accepted and the operation will complete asynchronously.
          schema:
            $ref: "#/definitions/ConnectivityInformation"
        default:
          description: Error response describing why the operation failed.
          schema:
            $ref: "#/definitions/ErrorResponse"
      tags:
        - NetworkWatchers
      x-ms-examples:
        Check connectivity:
          parameters:
            api-version: 2019-07-01
            networkWatcherName: nw1
            parameters:
              destination:
                address: 192.168.100.4
                port: 3389
              source:
                resourceId: /subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Compute/virtualMachines/vm1
            resourceGroupName: rg1
            subscriptionId: subid
          responses:
            "200":
              body:
                avgLatencyInMs: 1
                connectionStatus: Connected
                hops:
                  - address: 10.1.1.4
                    id: 7dbbe7aa-60ba-4650-831e-63d775d38e9e
                    issues: []
                    nextHopIds:
                      - 75c8d819-b208-4584-a311-1aa45ce753f9
                    resourceId: subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Network/networkInterfaces/nic0/ipConfigurations/ipconfig1
                    type: Source
                  - address: 192.168.100.4
                    id: 75c8d819-b208-4584-a311-1aa45ce753f9
                    issues: []
                    nextHopIds: []
                    resourceId: subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Network/networkInterfaces/nic1/ipConfigurations/ipconfig1
                    type: VirtualNetwork
                maxLatencyInMs: 4
                minLatencyInMs: 1
                probesFailed: 0
                probesSent: 100
            "202":
              body:
                avgLatencyInMs: 1
                connectionStatus: Connected
                hops:
                  - address: 10.1.1.4
                    id: 7dbbe7aa-60ba-4650-831e-63d775d38e9e
                    issues: []
                    nextHopIds:
                      - 75c8d819-b208-4584-a311-1aa45ce753f9
                    resourceId: subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Network/networkInterfaces/nic0/ipConfigurations/ipconfig1
                    type: Source
                  - address: 192.168.100.4
                    id: 75c8d819-b208-4584-a311-1aa45ce753f9
                    issues: []
                    nextHopIds: []
                    resourceId: subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Network/networkInterfaces/nic1/ipConfigurations/ipconfig1
                    type: VirtualNetwork
                maxLatencyInMs: 4
                minLatencyInMs: 1
                probesFailed: 0
                probesSent: 100
      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}/ipFlowVerify":
    post:
      description: Verify IP flow from the specified VM to a location given the currently configured NSG rules.
      operationId: NetworkWatchers_VerifyIPFlow
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the network watcher.
          in: path
          name: networkWatcherName
          required: true
          type: string
        - description: Parameters that define the IP flow to be verified.
          in: body
          name: parameters
          required: true
          schema:
            $ref: "#/definitions/VerificationIPFlowParameters"
        - description: Client API version.
          in: query
          name: api-version
          required: true
          type: string
        - description: The subscription credentials which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.
          in: path
          name: subscriptionId
          required: true
          type: string
      responses:
        "200":
          description: Request successful. The operation returns the result of IP flow verification.
          schema:
            $ref: "#/definitions/VerificationIPFlowResult"
        "202":
          description: Accepted and the operation will complete asynchronously.
          schema:
            $ref: "#/definitions/VerificationIPFlowResult"
        default:
          description: Error response describing why the operation failed.
          schema:
            $ref: "#/definitions/ErrorResponse"
      tags:
        - NetworkWatchers
      x-ms-examples:
        Ip flow verify:
          parameters:
            api-version: 2019-07-01
            networkWatcherName: nw1
            parameters:
              direction: Outbound
              localIPAddress: 10.2.0.4
              localPort: "80"
              protocol: TCP
              remoteIPAddress: 121.10.1.1
              remotePort: "80"
              targetResourceId: /subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Compute/virtualMachines/vm1
            resourceGroupName: rg1
            subscriptionId: subid
          responses:
            "200":
              body:
                access: Allow
                ruleName: Rule1
            "202":
              body:
                access: Allow
                ruleName: Rule1
      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}/networkConfigurationDiagnostic":
    post:
      description: Gets Network Configuration Diagnostic data to help customers understand and debug network behavior. It provides detailed information on what security rules were applied to a specified traffic flow and the result of evaluating these rules. Customers must provide details of a flow like source, destination, protocol, etc. The API returns whether traffic was allowed or denied, the rules evaluated for the specified flow and the evaluation results.
      operationId: NetworkWatchers_GetNetworkConfigurationDiagnostic
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the network watcher.
          in: path
          name: networkWatcherName
          required: true
          type: string
        - description: Parameters to get network configuration diagnostic.
          in: body
          name: parameters
          required: true
          schema:
            $ref: "#/definitions/NetworkConfigurationDiagnosticParameters"
        - description: Client API version.
          in: query
          name: api-version
          required: true
          type: string
        - description: The subscription credentials which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.
          in: path
          name: subscriptionId
          required: true
          type: string
      responses:
        "200":
          description: Request successful. The operation returns the result of network configuration diagnostic.
          schema:
            $ref: "#/definitions/NetworkConfigurationDiagnosticResponse"
        "202":
          description: Accepted and the operation will complete asynchronously.
          schema:
            $ref: "#/definitions/NetworkConfigurationDiagnosticResponse"
        default:
          description: Error response describing why the operation failed.
          schema:
            $ref: "#/definitions/ErrorResponse"
      tags:
        - NetworkWatchers
      x-ms-examples:
        Network configuration diagnostic:
          parameters:
            api-version: 2019-07-01
            networkWatcherName: nw1
            parameters:
              profiles:
                - destination: 12.11.12.14
                  destinationPort: "12100"
                  direction: Inbound
                  protocol: TCP
                  source: 10.1.0.4
              targetResourceId: /subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Compute/virtualMachines/vm1
            resourceGroupName: rg1
            subscriptionId: subid
          responses:
            "200":
              body:
                results:
                  - networkSecurityGroupResult:
                      evaluatedNetworkSecurityGroups:
                        - appliedTo: /subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Network/virtualNetworks/vnet/subnets/AppSubnet
                          matchedRule:
                            action: Allow
                            ruleName: UserRule_fe_rule
                          networkSecurityGroupId: /subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Network/networkSecurityGroups/nsg1
                          rulesEvaluationResult:
                            - destinationMatched: true
                              destinationPortMatched: false
                              name: UserRule_Cleanuptool-Allow-100
                              protocolMatched: true
                              sourceMatched: false
                              sourcePortMatched: true
                            - destinationMatched: true
                              destinationPortMatched: false
                              name: UserRule_Cleanuptool-Allow-101
                              protocolMatched: true
                              sourceMatched: true
                              sourcePortMatched: true
                            - destinationMatched: true
                              destinationPortMatched: false
                              name: UserRule_Cleanuptool-Allow-102
                              protocolMatched: true
                              sourceMatched: false
                              sourcePortMatched: true
                            - destinationMatched: true
                              destinationPortMatched: false
                              name: UserRule_Cleanuptool-Deny-103
                              protocolMatched: true
                              sourceMatched: true
                              sourcePortMatched: true
                            - destinationMatched: true
                              destinationPortMatched: true
                              name: UserRule_fe_rule
                              protocolMatched: true
                              sourceMatched: true
                              sourcePortMatched: true
                        - appliedTo: /subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Network/virtualNetworks/vnet/networkInterfaces/nic
                          matchedRule:
                            action: Allow
                            ruleName: UserRule_fe_rule
                          networkSecurityGroupId: /subscriptions/61cc8a98-a8be-4bfe-a04e-0b461f93fe35/resourceGroups/NwRgCentralUSEUAP_copy/providers/Microsoft.Network/networkSecurityGroups/AppNSG
                          rulesEvaluationResult:
                            - destinationMatched: true
                              destinationPortMatched: true
                              name: UserRule_fe_rule
                              protocolMatched: true
                              sourceMatched: true
                              sourcePortMatched: true
                      securityRuleAccessResult: Allow
                    profile:
                      destination: 12.11.12.14
                      destinationPort: "12100"
                      direction: Inbound
                      protocol: TCP
                      source: 10.1.0.4
            "202":
              body:
                results:
                  - networkSecurityGroupResult:
                      evaluatedNetworkSecurityGroups:
                        - appliedTo: /subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Network/virtualNetworks/vnet/subnets/AppSubnet
                          matchedRule:
                            action: Allow
                            ruleName: UserRule_fe_rule
                          networkSecurityGroupId: /subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Network/networkSecurityGroups/nsg1
                          rulesEvaluationResult:
                            - destinationMatched: true
                              destinationPortMatched: false
                              name: UserRule_Cleanuptool-Allow-100
                              protocolMatched: true
                              sourceMatched: false
                              sourcePortMatched: true
                            - destinationMatched: true
                              destinationPortMatched: false
                              name: UserRule_Cleanuptool-Allow-101
                              protocolMatched: true
                              sourceMatched: true
                              sourcePortMatched: true
                            - destinationMatched: true
                              destinationPortMatched: false
                              name: UserRule_Cleanuptool-Allow-102
                              protocolMatched: true
                              sourceMatched: false
                              sourcePortMatched: true
                            - destinationMatched: true
                              destinationPortMatched: false
                              name: UserRule_Cleanuptool-Deny-103
                              protocolMatched: true
                              sourceMatched: true
                              sourcePortMatched: true
                            - destinationMatched: true
                              destinationPortMatched: true
                              name: UserRule_fe_rule
                              protocolMatched: true
                              sourceMatched: true
                              sourcePortMatched: true
                        - appliedTo: /subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Network/virtualNetworks/vnet/networkInterfaces/nic
                          matchedRule:
                            action: Allow
                            ruleName: UserRule_fe_rule
                          networkSecurityGroupId: /subscriptions/61cc8a98-a8be-4bfe-a04e-0b461f93fe35/resourceGroups/NwRgCentralUSEUAP_copy/providers/Microsoft.Network/networkSecurityGroups/AppNSG
                          rulesEvaluationResult:
                            - destinationMatched: true
                              destinationPortMatched: true
                              name: UserRule_fe_rule
                              protocolMatched: true
                              sourceMatched: true
                              sourcePortMatched: true
                      securityRuleAccessResult: Allow
                    profile:
                      destination: 12.11.12.14
                      destinationPort: "12100"
                      direction: Inbound
                      protocol: TCP
                      source: 10.1.0.4
      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:
      description: Gets the next hop from the specified VM.
      operationId: NetworkWatchers_GetNextHop
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the network watcher.
          in: path
          name: networkWatcherName
          required: true
          type: string
        - description: Parameters that define the source and destination endpoint.
          in: body
          name: parameters
          required: true
          schema:
            $ref: "#/definitions/NextHopParameters"
        - description: Client API version.
          in: query
          name: api-version
          required: true
          type: string
        - description: The subscription credentials which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.
          in: path
          name: subscriptionId
          required: true
          type: string
      responses:
        "200":
          description: Request successful. The operation returns the next hop from the VM.
          schema:
            $ref: "#/definitions/NextHopResult"
        "202":
          description: Accepted and the operation will complete asynchronously.
          schema:
            $ref: "#/definitions/NextHopResult"
        default:
          description: Error response describing why the operation failed.
          schema:
            $ref: "#/definitions/ErrorResponse"
      tags:
        - NetworkWatchers
      x-ms-examples:
        Get next hop:
          parameters:
            api-version: 2019-07-01
            networkWatcherName: nw1
            parameters:
              destinationIPAddress: 10.0.0.10
              sourceIPAddress: 10.0.0.5
              targetNicResourceId: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkInterfaces/nic1
              targetResourceId: /subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Compute/virtualMachines/vm1
            resourceGroupName: rg1
            subscriptionId: subid
          responses:
            "200":
              body:
                nextHopIpAddress: 10.0.0.1
                nextHopType: VnetLocal
                routeTableId: /subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Network/routeTables/rt1
            "202":
              body:
                nextHopIpAddress: 10.0.0.1
                nextHopType: VnetLocal
                routeTableId: /subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Network/routeTables/rt1
      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":
    get:
      description: Lists all packet capture sessions within the specified resource group.
      operationId: PacketCaptures_List
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the Network Watcher resource.
          in: path
          name: networkWatcherName
          required: true
          type: string
        - description: Client API version.
          in: query
          name: api-version
          required: true
          type: string
        - description: The subscription credentials which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.
          in: path
          name: subscriptionId
          required: true
          type: string
      responses:
        "200":
          description: Successful packet capture enumeration request.
          schema:
            $ref: "#/definitions/PacketCaptureListResult"
        default:
          description: Error response describing why the operation failed.
          schema:
            $ref: "#/definitions/ErrorResponse"
      tags:
        - PacketCaptures
      x-ms-examples:
        List packet captures:
          parameters:
            api-version: 2019-07-01
            networkWatcherName: nw1
            resourceGroupName: rg1
            subscriptionId: subid
          responses:
            "200":
              body:
                value:
                  - etag: W/"00000000-0000-0000-0000-000000000000"
                    id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkWatchers/nw1/packetCaptures/pc1
                    name: pc1
                    properties:
                      bytesToCapturePerPacket: 10000
                      filters:
                        - localIPAddress: 10.0.0.4
                          localPort: "80"
                          protocol: TCP
                      provisioningState: Updating
                      storageLocation:
                        filePath: D:\capture\pc1.cap
                        storageId: /subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Storage/storageAccounts/pcstore
                        storagePath: https://mytestaccountname.blob.core.windows.net/capture/pc1.cap
                      target: /subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Compute/virtualMachines/vm1
                      timeLimitInSeconds: 100
                      totalBytesPerSession: 100000
                  - etag: W/"00000000-0000-0000-0000-000000000000"
                    id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkWatchers/nw1/packetCaptures/pc2
                    name: pc2
                    properties:
                      bytesToCapturePerPacket: 10000
                      filters: []
                      provisioningState: Succeeded
                      storageLocation:
                        filePath: D:\capture\pc2.cap
                        storageId: /subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Storage/storageAccounts/pcstore
                        storagePath: https://mytestaccountname.blob.core.windows.net/capture/pc2.cap
                      target: /subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Compute/virtualMachines/vm1
                      timeLimitInSeconds: 100
                      totalBytesPerSession: 100000
      x-ms-pageable:
        nextLinkName: null
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkWatchers/{networkWatcherName}/packetCaptures/{packetCaptureName}":
    delete:
      description: Deletes the specified packet capture session.
      operationId: PacketCaptures_Delete
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the network watcher.
          in: path
          name: networkWatcherName
          required: true
          type: string
        - description: The name of the packet capture session.
          in: path
          name: packetCaptureName
          required: true
          type: string
        - description: Client API version.
          in: query
          name: api-version
          required: true
          type: string
        - description: The subscription credentials which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.
          in: path
          name: subscriptionId
          required: true
          type: string
      responses:
        "202":
          description: Accepted and the operation will complete asynchronously.
        "204":
          description: Delete successful.
        default:
          description: Error response describing why the operation failed.
          schema:
            $ref: "#/definitions/ErrorResponse"
      tags:
        - PacketCaptures
      x-ms-examples:
        Delete packet capture:
          parameters:
            api-version: 2019-07-01
            networkWatcherName: nw1
            packetCaptureName: pc1
            resourceGroupName: rg1
            subscriptionId: subid
          responses:
            "202": {}
            "204": {}
      x-ms-long-running-operation: true
      x-ms-long-running-operation-options:
        final-state-via: location
    get:
      description: Gets a packet capture session by name.
      operationId: PacketCaptures_Get
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the network watcher.
          in: path
          name: networkWatcherName
          required: true
          type: string
        - description: The name of the packet capture session.
          in: path
          name: packetCaptureName
          required: true
          type: string
        - description: Client API version.
          in: query
          name: api-version
          required: true
          type: string
        - description: The subscription credentials which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.
          in: path
          name: subscriptionId
          required: true
          type: string
      responses:
        "200":
          description: Request successful. The operation returns a packet capture session.
          schema:
            $ref: "#/definitions/PacketCaptureResult"
        default:
          description: Error response describing why the operation failed.
          schema:
            $ref: "#/definitions/ErrorResponse"
      tags:
        - PacketCaptures
      x-ms-examples:
        Get packet capture:
          parameters:
            api-version: 2019-07-01
            networkWatcherName: nw1
            packetCaptureName: pc1
            resourceGroupName: rg1
            subscriptionId: subid
          responses:
            "200":
              body:
                etag: W/"00000000-0000-0000-0000-000000000000"
                id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkWatchers/nw1/packetCaptures/pc1
                name: pc1
                properties:
                  bytesToCapturePerPacket: 10000
                  filters:
                    - localIPAddress: 10.0.0.4
                      localPort: "80"
                      protocol: TCP
                  provisioningState: Updating
                  storageLocation:
                    filePath: D:\capture\pc1.cap
                    storageId: /subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Storage/storageAccounts/pcstore
                    storagePath: https://mytestaccountname.blob.core.windows.net/capture/pc1.cap
                  target: /subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Compute/virtualMachines/vm1
                  timeLimitInSeconds: 100
                  totalBytesPerSession: 100000
    put:
      description: Create and start a packet capture on the specified VM.
      operationId: PacketCaptures_Create
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the network watcher.
          in: path
          name: networkWatcherName
          required: true
          type: string
        - description: The name of the packet capture session.
          in: path
          name: packetCaptureName
          required: true
          type: string
        - description: Parameters that define the create packet capture operation.
          in: body
          name: parameters
          required: true
          schema:
            $ref: "#/definitions/PacketCapture"
        - description: Client API version.
          in: query
          name: api-version
          required: true
          type: string
        - description: The subscription credentials which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.
          in: path
          name: subscriptionId
          required: true
          type: string
      responses:
        "201":
          description: Request successful. The operation returns the resulting packet capture session.
          schema:
            $ref: "#/definitions/PacketCaptureResult"
        default:
          description: Error response describing why the operation failed.
          schema:
            $ref: "#/definitions/ErrorResponse"
      tags:
        - PacketCaptures
      x-ms-examples:
        Create packet capture:
          parameters:
            api-version: 2019-07-01
            networkWatcherName: nw1
            packetCaptureName: pc1
            parameters:
              properties:
                bytesToCapturePerPacket: 10000
                filters:
                  - localIPAddress: 10.0.0.4
                    localPort: "80"
                    protocol: TCP
                storageLocation:
                  filePath: D:\capture\pc1.cap
                  storageId: /subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Storage/storageAccounts/pcstore
                  storagePath: https://mytestaccountname.blob.core.windows.net/capture/pc1.cap
                target: /subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Compute/virtualMachines/vm1
                timeLimitInSeconds: 100
                totalBytesPerSession: 100000
            resourceGroupName: rg1
            subscriptionId: subid
          responses:
            "201":
              body:
                id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkWatchers/nw1/packetCaptures/pc1
                name: pc1
                properties:
                  bytesToCapturePerPacket: 10000
                  filters:
                    - localIPAddress: 10.0.0.4
                      localPort: "80"
                      protocol: TCP
                  provisioningState: Updating
                  storageLocation:
                    filePath: D:\capture\pc1.cap
                    storageId: /subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Storage/storageAccounts/pcstore
                    storagePath: https://mytestaccountname.blob.core.windows.net/capture/pc1.cap
                  target: /subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Compute/virtualMachines/vm1
                  timeLimitInSeconds: 100
                  totalBytesPerSession: 100000
      x-ms-long-running-operation: true
      x-ms-long-running-operation-options:
        final-state-via: azure-async-operation
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkWatchers/{networkWatcherName}/packetCaptures/{packetCaptureName}/queryStatus":
    post:
      description: Query the status of a running packet capture session.
      operationId: PacketCaptures_GetStatus
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the Network Watcher resource.
          in: path
          name: networkWatcherName
          required: true
          type: string
        - description: The name given to the packet capture session.
          in: path
          name: packetCaptureName
          required: true
          type: string
        - description: Client API version.
          in: query
          name: api-version
          required: true
          type: string
        - description: The subscription credentials which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.
          in: path
          name: subscriptionId
          required: true
          type: string
      responses:
        "200":
          description: Successful query of packet capture status.
          schema:
            $ref: "#/definitions/PacketCaptureQueryStatusResult"
        "202":
          description: Accepted query status of packet capture.
          schema:
            $ref: "#/definitions/PacketCaptureQueryStatusResult"
        default:
          description: Error response describing why the operation failed.
          schema:
            $ref: "#/definitions/ErrorResponse"
      tags:
        - PacketCaptures
      x-ms-examples:
        Query packet capture status:
          parameters:
            api-version: 2019-07-01
            networkWatcherName: nw1
            packetCaptureName: pc1
            resourceGroupName: rg1
            subscriptionId: subid
          responses:
            "200":
              body:
                captureStartTime: 2016-09-07T12:35:24Z
                id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkWatchers/nw1/packetCaptures/pc1
                name: pc1
                packetCaptureError: []
                packetCaptureStatus: Stopped
                stopReason: TimeExceeded
            "202":
              body:
                captureStartTime: 2016-09-07T12:35:24Z
                id: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkWatchers/nw1/packetCaptures/pc1
                name: pc1
                packetCaptureError: []
                packetCaptureStatus: Stopped
                stopReason: TimeExceeded
      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:
      description: Stops a specified packet capture session.
      operationId: PacketCaptures_Stop
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the network watcher.
          in: path
          name: networkWatcherName
          required: true
          type: string
        - description: The name of the packet capture session.
          in: path
          name: packetCaptureName
          required: true
          type: string
        - description: Client API version.
          in: query
          name: api-version
          required: true
          type: string
        - description: The subscription credentials which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.
          in: path
          name: subscriptionId
          required: true
          type: string
      responses:
        "200":
          description: Request successful. The operation stops the packet capture session.
        "202":
          description: Accepted and the operation will complete asynchronously.
        default:
          description: Error response describing why the operation failed.
          schema:
            $ref: "#/definitions/ErrorResponse"
      tags:
        - PacketCaptures
      x-ms-examples:
        Stop packet capture:
          parameters:
            api-version: 2019-07-01
            networkWatcherName: nw1
            packetCaptureName: pc1
            resourceGroupName: rg1
            subscriptionId: subid
          responses:
            "200": {}
            "202": {}
      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}/queryFlowLogStatus":
    post:
      description: Queries status of flow log and traffic analytics (optional) on a specified resource.
      operationId: NetworkWatchers_GetFlowLogStatus
      parameters:
        - description: The name of the network watcher resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the network watcher resource.
          in: path
          name: networkWatcherName
          required: true
          type: string
        - description: Parameters that define a resource to query flow log and traffic analytics (optional) status.
          in: body
          name: parameters
          required: true
          schema:
            $ref: "#/definitions/FlowLogStatusParameters"
        - description: Client API version.
          in: query
          name: api-version
          required: true
          type: string
        - description: The subscription credentials which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.
          in: path
          name: subscriptionId
          required: true
          type: string
      responses:
        "200":
          description: Successful request for query flow log and traffic analytics (optional) status.
          schema:
            $ref: "#/definitions/FlowLogInformation"
        "202":
          description: Accepted and the operation will complete asynchronously.
          schema:
            $ref: "#/definitions/FlowLogInformation"
        default:
          description: Error response describing why the operation failed.
          schema:
            $ref: "#/definitions/ErrorResponse"
      tags:
        - NetworkWatchers
        - TrafficAnalytics
      x-ms-examples:
        Get flow log status:
          parameters:
            api-version: 2019-07-01
            networkWatcherName: nw1
            parameters:
              targetResourceId: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkSecurityGroups/nsg1
            resourceGroupName: rg1
            subscriptionId: subid
          responses:
            "200":
              body:
                properties:
                  enabled: true
                  storageId: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Storage/storageAccounts/st1
                targetResourceId: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkSecurityGroups/nsg1
            "202":
              body:
                properties:
                  enabled: true
                  storageId: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Storage/storageAccounts/st1
                targetResourceId: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Network/networkSecurityGroups/nsg1
      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}/queryTroubleshootResult":
    post:
      description: Get the last completed troubleshooting result on a specified resource.
      operationId: NetworkWatchers_GetTroubleshootingResult
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the network watcher resource.
          in: path
          name: networkWatcherName
          required: true
          type: string
        - description: Parameters that define the resource to query the troubleshooting result.
          in: body
          name: parameters
          required: true
          schema:
            $ref: "#/definitions/QueryTroubleshootingParameters"
        - description: Client API version.
          in: query
          name: api-version
          required: true
          type: string
        - description: The subscription credentials which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.
          in: path
          name: subscriptionId
          required: true
          type: string
      responses:
        "200":
          description: Successful get troubleshooting result request.
          schema:
            $ref: "#/definitions/TroubleshootingResult"
        "202":
          description: Accepted get troubleshooting result request.
          schema:
            $ref: "#/definitions/TroubleshootingResult"
        default:
          description: Error response describing why the operation failed.
          schema:
            $ref: "#/definitions/ErrorResponse"
      tags:
        - NetworkWatchers
      x-ms-examples:
        Get troubleshoot result:
          parameters:
            api-version: 2019-07-01
            networkWatcherName: nw1
            parameters:
              targetResourceId: /subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Compute/virtualMachines/vm1
            resourceGroupName: rg1
            subscriptionId: subid
          responses:
            "200":
              body:
                code: UnHealthy
                endTime: 2017-01-12T00:20:09.914Z
                results:
                  - detail: During this time S2S VPN tunnels to on premises sites or other Azure virtual networks will be disconnected
                    id: "000000"
                    reasonType: VipUnResponsive
                    recommendedActions:
                      - actionText: Verify if there is a network security group (NSG) applied to the GatewaySubnet
                        actionUri: https://docs.microsoft.com/en-us/azure/virtual-network/virtual-networks-create-nsg-arm-pportal
                        actionUriText: Verify
                      - actionText: If your VPN gateway isn't up and running by the expected resolution time, contact support
                        actionUri: http://azure.microsoft.com/support
                        actionUriText: contact support
                    summary: We are sorry, your VPN gateway is unreachable from the Internet
                startTime: 2017-01-12T00:19:47.0442834Z
            "202":
              body:
                code: UnHealthy
                endTime: 2017-01-12T00:20:09.914Z
                results:
                  - detail: During this time S2S VPN tunnels to on premises sites or other Azure virtual networks will be disconnected
                    id: "000000"
                    reasonType: VipUnResponsive
                    recommendedActions:
                      - actionText: Verify if there is a network security group (NSG) applied to the GatewaySubnet
                        actionUri: https://docs.microsoft.com/en-us/azure/virtual-network/virtual-networks-create-nsg-arm-pportal
                        actionUriText: Verify
                      - actionText: If your VPN gateway isn't up and running by the expected resolution time, contact support
                        actionUri: http://azure.microsoft.com/support
                        actionUriText: contact support
                    summary: We are sorry, your VPN gateway is unreachable from the Internet
                startTime: 2017-01-12T00:19:47.0442834Z
      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}/securityGroupView":
    post:
      description: Gets the configured and effective security group rules on the specified VM.
      operationId: NetworkWatchers_GetVMSecurityRules
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the network watcher.
          in: path
          name: networkWatcherName
          required: true
          type: string
        - description: Parameters that define the VM to check security groups for.
          in: body
          name: parameters
          required: true
          schema:
            $ref: "#/definitions/SecurityGroupViewParameters"
        - description: Client API version.
          in: query
          name: api-version
          required: true
          type: string
        - description: The subscription credentials which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.
          in: path
          name: subscriptionId
          required: true
          type: string
      responses:
        "200":
          description: Request successful. The operation returns security group rules on the VM.
          schema:
            $ref: "#/definitions/SecurityGroupViewResult"
        "202":
          description: Accepted and the operation will complete asynchronously.
          schema:
            $ref: "#/definitions/SecurityGroupViewResult"
        default:
          description: Error response describing why the operation failed.
          schema:
            $ref: "#/definitions/ErrorResponse"
      tags:
        - NetworkWatchers
      x-ms-examples:
        Get security group view:
          parameters:
            api-version: 2019-07-01
            networkWatcherName: nw1
            parameters:
              targetResourceId: /subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Compute/virtualMachines/vm1
            resourceGroupName: rg1
            subscriptionId: subid
          responses:
            "200":
              body:
                networkInterfaces:
                  - id: /subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Network/networkInterfaces/nic1
                    securityRuleAssociations:
                      defaultSecurityRules:
                        - id: /subscriptions//resourceGroups//providers/Microsoft.Network/networkSecurityGroups//defaultSecurityRules/
                          name: AllowVnetInBound
                          properties:
                            access: Allow
                            description: Allow inbound traffic from all VMs in VNET
                            destinationAddressPrefix: VirtualNetwork
                            destinationPortRange: "*"
                            direction: Inbound
                            priority: 65000
                            protocol: "*"
                            provisioningState: Succeeded
                            sourceAddressPrefix: VirtualNetwork
                            sourcePortRange: "*"
                      effectiveSecurityRules:
                        - access: Deny
                          destinationAddressPrefix: "*"
                          destinationPortRange: 0-65535
                          direction: Outbound
                          name: DefaultOutboundDenyAll
                          priority: 65500
                          protocol: All
                          sourceAddressPrefix: "*"
                          sourcePortRange: 0-65535
                      subnetAssociation:
                        id: /subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Network/virtualNetworks/vnet1/subnets/subnet1
                        securityRules:
                          - etag: W/"00000000-0000-0000-0000-000000000000"
                            id: /subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Network/networkSecurityGroups/AppNSG/securityRules/fe_rule
                            name: fe_rule
                            properties:
                              access: Allow
                              description: Allow Frontend
                              destinationAddressPrefix: "*"
                              destinationPortRange: "*"
                              direction: Inbound
                              priority: 100
                              protocol: Tcp
                              provisioningState: Succeeded
                              sourceAddressPrefix: 10.1.0.0/24
                              sourcePortRange: "*"
            "202":
              body:
                networkInterfaces:
                  - id: /subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Network/networkInterfaces/nic1
                    securityRuleAssociations:
                      defaultSecurityRules:
                        - id: /subscriptions//resourceGroups//providers/Microsoft.Network/networkSecurityGroups//defaultSecurityRules/
                          name: AllowVnetInBound
                          properties:
                            access: Allow
                            description: Allow inbound traffic from all VMs in VNET
                            destinationAddressPrefix: VirtualNetwork
                            destinationPortRange: "*"
                            direction: Inbound
                            priority: 65000
                            protocol: "*"
                            provisioningState: Succeeded
                            sourceAddressPrefix: VirtualNetwork
                            sourcePortRange: "*"
                      effectiveSecurityRules:
                        - access: Deny
                          destinationAddressPrefix: "*"
                          destinationPortRange: 0-65535
                          direction: Outbound
                          name: DefaultOutboundDenyAll
                          priority: 65500
                          protocol: All
                          sourceAddressPrefix: "*"
                          sourcePortRange: 0-65535
                      subnetAssociation:
                        id: /subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Network/virtualNetworks/vnet1/subnets/subnet1
                        securityRules:
                          - etag: W/"00000000-0000-0000-0000-000000000000"
                            id: /subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Network/networkSecurityGroups/AppNSG/securityRules/fe_rule
                            name: fe_rule
                            properties:
                              access: Allow
                              description: Allow Frontend
                              destinationAddressPrefix: "*"
                              destinationPortRange: "*"
                              direction: Inbound
                              priority: 100
                              protocol: Tcp
                              provisioningState: Succeeded
                              sourceAddressPrefix: 10.1.0.0/24
                              sourcePortRange: "*"
      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}/topology":
    post:
      description: Gets the current network topology by resource group.
      operationId: NetworkWatchers_GetTopology
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the network watcher.
          in: path
          name: networkWatcherName
          required: true
          type: string
        - description: Parameters that define the representation of topology.
          in: body
          name: parameters
          required: true
          schema:
            $ref: "#/definitions/TopologyParameters"
        - description: Client API version.
          in: query
          name: api-version
          required: true
          type: string
        - description: The subscription credentials which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.
          in: path
          name: subscriptionId
          required: true
          type: string
      responses:
        "200":
          description: Request successful. The operation returns the topology of resource group.
          schema:
            $ref: "#/definitions/Topology"
        default:
          description: Error response describing why the operation failed.
          schema:
            $ref: "#/definitions/ErrorResponse"
      tags:
        - NetworkWatchers
      x-ms-examples:
        Get Topology:
          parameters:
            api-version: 2019-07-01
            networkWatcherName: nw1
            parameters:
              targetResourceGroupName: rg2
            resourceGroupName: rg1
            subscriptionId: subid
          responses:
            "200":
              body:
                createdDateTime: 2017-08-02T19:31:55.9461781Z
                id: ce592f46-8164-4bf2-ad36-b8e4acf6fb68
                lastModified: 2017-05-27T00:00:13.2005337Z
                resources:
                  - associations:
                      - associationType: Contains
                        name: appNic0
                        resourceId: /subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Network/networkInterfaces/appNic0
                      - associationType: Contains
                        name: appNic10
                        resourceId: /subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Network/networkInterfaces/appNic10
                    id: /subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Compute/virtualMachines/MultiTierApp0
                    location: westus
                    name: MultiTierApp0
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkWatchers/{networkWatcherName}/troubleshoot":
    post:
      description: Initiate troubleshooting on a specified resource.
      operationId: NetworkWatchers_GetTroubleshooting
      parameters:
        - description: The name of the resource group.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the network watcher resource.
          in: path
          name: networkWatcherName
          required: true
          type: string
        - description: Parameters that define the resource to troubleshoot.
          in: body
          name: parameters
          required: true
          schema:
            $ref: "#/definitions/TroubleshootingParameters"
        - description: Client API version.
          in: query
          name: api-version
          required: true
          type: string
        - description: The subscription credentials which uniquely identify the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.
          in: path
          name: subscriptionId
          required: true
          type: string
      responses:
        "200":
          description: Successful troubleshooting request.
          schema:
            $ref: "#/definitions/TroubleshootingResult"
        "202":
          description: Accepted get troubleshooting request.
          schema:
            $ref: "#/definitions/TroubleshootingResult"
        default:
          description: Error response describing why the operation failed.
          schema:
            $ref: "#/definitions/ErrorResponse"
      tags:
        - NetworkWatchers
      x-ms-examples:
        Get troubleshooting:
          parameters:
            api-version: 2019-07-01
            networkWatcherName: nw1
            parameters:
              properties:
                storageId: /subscriptions/subid/resourceGroups/rg1/providers/Microsoft.Storage/storageAccounts/st1
                storagePath: https://st1.blob.core.windows.net/cn1
              targetResourceId: /subscriptions/subid/resourceGroups/rg2/providers/Microsoft.Compute/virtualMachines/vm1
            resourceGroupName: rg1
            subscriptionId: subid
          responses:
            "200":
              body:
                code: UnHealthy
                endTime: 2017-01-12T00:20:09.914Z
                results:
                  - detail: During this time S2S VPN tunnels to on premises sites or other Azure virtual networks will be disconnected
                    id: "000000"
                    reasonType: VipUnResponsive
                    recommendedActions:
                      - actionText: Verify if there is a network security group (NSG) applied to the GatewaySubnet
                        actionUri: https://docs.microsoft.com/en-us/azure/virtual-network/virtual-networks-create-nsg-arm-pportal
                        actionUriText: Verify
                      - actionText: If your VPN gateway isn't up and running by the expected resolution time, contact support
                        actionUri: http://azure.microsoft.com/support
                        actionUriText: contact support
                    summary: We are sorry, your VPN gateway is unreachable from the Internet
                startTime: 2017-01-12T00:19:47.0442834Z
            "202":
              body:
                code: UnHealthy
                endTime: 2017-01-12T00:20:09.914Z
                results:
                  - detail: During this time S2S VPN tunnels to on premises sites or other Azure virtual networks will be disconnected
                    id: "000000"
                    reasonType: VipUnResponsive
                    recommendedActions:
                      - actionText: Verify if there is a network security group (NSG) applied to the GatewaySubnet
                        actionUri: https://docs.microsoft.com/en-us/azure/virtual-network/virtual-networks-create-nsg-arm-pportal
                        actionUriText: Verify
                      - actionText: If your VPN gateway isn't up and running by the expected resolution time, contact support
                        actionUri: http://azure.microsoft.com/support
                        actionUriText: contact support
                    summary: We are sorry, your VPN gateway is unreachable from the Internet
                startTime: 2017-01-12T00:19:47.0442834Z
      x-ms-long-running-operation: true
      x-ms-long-running-operation-options:
        final-state-via: location
definitions:
  AvailableProvidersList:
    description: List of available countries with details.
    properties:
      countries:
        description: List of available countries.
        items:
          $ref: "#/definitions/AvailableProvidersListCountry"
        type: array
    required:
      - countries
  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
  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: "#/definitions/AvailableProvidersListState"
        type: array
  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
  AvailableProvidersListState:
    description: State details.
    properties:
      cities:
        description: List of available cities or towns in the state.
        items:
          $ref: "#/definitions/AvailableProvidersListCity"
        type: array
      providers:
        description: A list of Internet service providers.
        items:
          type: string
        type: array
      stateName:
        description: The state name.
        type: string
  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: "#/definitions/AzureReachabilityReportLocation"
        description: Parameters that define a geographic location.
      reachabilityReport:
        description: List of Azure reachability report items.
        items:
          $ref: "#/definitions/AzureReachabilityReportItem"
        type: array
    required:
      - aggregationLevel
      - providerLocation
      - reachabilityReport
  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: "#/definitions/AzureReachabilityReportLatencyInfo"
        type: array
      provider:
        description: The Internet service provider.
        type: string
  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
  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
  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: "#/definitions/AzureReachabilityReportLocation"
        description: Parameters that define a geographic location.
      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
  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
  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: "#/definitions/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
  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: "#/definitions/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
  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: "#/definitions/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
  ConnectivityParameters:
    description: Parameters that determine how the connectivity check will be performed.
    properties:
      destination:
        $ref: "#/definitions/ConnectivityDestination"
        description: Describes the destination of connection.
      protocol:
        description: Network protocol.
        enum:
          - Tcp
          - Http
          - Https
          - Icmp
        type: string
        x-ms-enum:
          modelAsString: true
          name: Protocol
      protocolConfiguration:
        $ref: "#/definitions/ProtocolConfiguration"
        description: Configuration of the protocol.
      source:
        $ref: "#/definitions/ConnectivitySource"
        description: Describes the source of the connection.
    required:
      - source
      - destination
  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
  Direction:
    description: The direction of the traffic.
    enum:
      - Inbound
      - Outbound
    type: string
    x-ms-enum:
      modelAsString: true
      name: Direction
  ErrorResponse:
    description: The error object.
    properties:
      error:
        description: Common error details representation.
        properties:
          code:
            description: Error code.
            type: string
          message:
            description: Error message.
            type: string
          target:
            description: Error target.
            type: string
  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: "#/definitions/MatchedRule"
        description: Matched network security rule.
      networkSecurityGroupId:
        description: Network security group ID.
        type: string
      rulesEvaluationResult:
        description: List of network security rules evaluation results.
        items:
          $ref: "#/definitions/NetworkSecurityRulesEvaluationResult"
        readOnly: true
        type: array
  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
  FlowLogInformation:
    description: Information on the configuration of flow log and traffic analytics (optional) .
    properties:
      flowAnalyticsConfiguration:
        $ref: "#/definitions/TrafficAnalyticsProperties"
        description: Parameters that define the configuration of traffic analytics.
      properties:
        $ref: "#/definitions/FlowLogProperties"
        description: Properties of the flow log.
        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
  FlowLogProperties:
    description: Parameters that define the configuration of flow log.
    properties:
      enabled:
        description: Flag to enable/disable flow logging.
        type: boolean
      format:
        $ref: "#/definitions/FlowLogFormatParameters"
        description: Parameters that define the flow log format.
      retentionPolicy:
        $ref: "#/definitions/RetentionPolicyParameters"
        description: Parameters that define the retention policy for flow log.
      storageId:
        description: ID of the storage account which is used to store the flow log.
        type: string
    required:
      - storageId
      - enabled
  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
  HTTPConfiguration:
    description: HTTP configuration of the connectivity check.
    properties:
      headers:
        description: List of HTTP headers.
        items:
          $ref: "#/definitions/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
  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
  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
  NetworkConfigurationDiagnosticParameters:
    description: Parameters to get network configuration diagnostic.
    properties:
      profiles:
        description: List of network configuration diagnostic profiles.
        items:
          $ref: "#/definitions/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.
        enum:
          - Normal
          - Minimum
          - Full
        type: string
        x-ms-enum:
          modelAsString: true
          name: VerbosityLevel
    required:
      - targetResourceId
      - profiles
  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:
        $ref: "#/definitions/Direction"
        description: The direction of the traffic.
      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
  NetworkConfigurationDiagnosticResponse:
    description: Results of network configuration diagnostic on the target resource.
    properties:
      results:
        description: List of network configuration diagnostic results.
        items:
          $ref: "#/definitions/NetworkConfigurationDiagnosticResult"
        readOnly: true
        type: array
  NetworkConfigurationDiagnosticResult:
    description: Network configuration diagnostic result corresponded to provided traffic query.
    properties:
      networkSecurityGroupResult:
        $ref: "#/definitions/NetworkSecurityGroupResult"
        description: Network security group result.
      profile:
        $ref: "#/definitions/NetworkConfigurationDiagnosticProfile"
        description: Network configuration diagnostic profile.
  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:
          allOf:
            - description: Reference to another subresource.
              properties:
                id:
                  description: Resource ID.
                  type: string
              x-ms-azure-resource: true
          description: Network security rule.
          properties:
            etag:
              description: A unique read-only string that changes whenever the resource is updated.
              type: string
            name:
              description: The name of the resource that is unique within a resource group. This name can be used to access the resource.
              type: string
            properties:
              description: Security rule resource.
              properties:
                access:
                  description: Whether network traffic is allowed or denied.
                  enum:
                    - Allow
                    - Deny
                  type: string
                  x-ms-enum:
                    modelAsString: true
                    name: SecurityRuleAccess
                description:
                  description: A description for this rule. Restricted to 140 chars.
                  type: string
                destinationAddressPrefix:
                  description: The destination address prefix. CIDR or destination IP range. Asterisk '*' can also be used to match all source IPs. Default tags such as 'VirtualNetwork', 'AzureLoadBalancer' and 'Internet' can also be used.
                  type: string
                destinationAddressPrefixes:
                  description: The destination address prefixes. CIDR or destination IP ranges.
                  items:
                    type: string
                  type: array
                destinationApplicationSecurityGroups:
                  description: The application security group specified as destination.
                  items:
                    allOf:
                      - description: Common resource representation.
                        properties:
                          id:
                            description: Resource ID.
                            type: string
                          location:
                            description: Resource location.
                            type: string
                          name:
                            description: Resource name.
                            readOnly: true
                            type: string
                          tags:
                            additionalProperties:
                              type: string
                            description: Resource tags.
                            type: object
                          type:
                            description: Resource type.
                            readOnly: true
                            type: string
                        x-ms-azure-resource: true
                    description: An application security group in a resource group.
                    properties:
                      etag:
                        description: A unique read-only string that changes whenever the resource is updated.
                        readOnly: true
                        type: string
                      properties:
                        description: Application security group properties.
                        properties:
                          provisioningState:
                            description: The current provisioning state.
                            enum:
                              - Succeeded
                              - Updating
                              - Deleting
                              - Failed
                            readOnly: true
                            type: string
                            x-ms-enum:
                              modelAsString: true
                              name: ProvisioningState
                          resourceGuid:
                            description: The resource GUID property of the application security group resource. It uniquely identifies a resource, even if the user changes its name or migrate the resource across subscriptions or resource groups.
                            readOnly: true
                            type: string
                  type: array
                destinationPortRange:
                  description: The destination port or range. Integer or range between 0 and 65535. Asterisk '*' can also be used to match all ports.
                  type: string
                destinationPortRanges:
                  description: The destination port ranges.
                  items:
                    description: The destination port.
                    type: string
                  type: array
                direction:
                  description: The direction of the rule. The direction specifies if rule will be evaluated on incoming or outgoing traffic.
                  enum:
                    - Inbound
                    - Outbound
                  type: string
                  x-ms-enum:
                    modelAsString: true
                    name: SecurityRuleDirection
                priority:
                  description: The priority of the rule. The value can be between 100 and 4096. The priority number must be unique for each rule in the collection. The lower the priority number, the higher the priority of the rule.
                  format: int32
                  type: integer
                protocol:
                  description: Network protocol this rule applies to.
                  enum:
                    - Tcp
                    - Udp
                    - Icmp
                    - Esp
                    - "*"
                  type: string
                  x-ms-enum:
                    modelAsString: true
                    name: SecurityRuleProtocol
                provisioningState:
                  description: The current provisioning state.
                  enum:
                    - Succeeded
                    - Updating
                    - Deleting
                    - Failed
                  readOnly: true
                  type: string
                  x-ms-enum:
                    modelAsString: true
                    name: ProvisioningState
                sourceAddressPrefix:
                  description: The CIDR or source IP range. Asterisk '*' can also be used to match all source IPs. Default tags such as 'VirtualNetwork', 'AzureLoadBalancer' and 'Internet' can also be used. If this is an ingress rule, specifies where network traffic originates from.
                  type: string
                sourceAddressPrefixes:
                  description: The CIDR or source IP ranges.
                  items:
                    type: string
                  type: array
                sourceApplicationSecurityGroups:
                  description: The application security group specified as source.
                  items:
                    allOf:
                      - description: Common resource representation.
                        properties:
                          id:
                            description: Resource ID.
                            type: string
                          location:
                            description: Resource location.
                            type: string
                          name:
                            description: Resource name.
                            readOnly: true
                            type: string
                          tags:
                            additionalProperties:
                              type: string
                            description: Resource tags.
                            type: object
                          type:
                            description: Resource type.
                            readOnly: true
                            type: string
                        x-ms-azure-resource: true
                    description: An application security group in a resource group.
                    properties:
                      etag:
                        description: A unique read-only string that changes whenever the resource is updated.
                        readOnly: true
                        type: string
                      properties:
                        description: Application security group properties.
                        properties:
                          provisioningState:
                            description: The current provisioning state.
                            enum:
                              - Succeeded
                              - Updating
                              - Deleting
                              - Failed
                            readOnly: true
                            type: string
                            x-ms-enum:
                              modelAsString: true
                              name: ProvisioningState
                          resourceGuid:
                            description: The resource GUID property of the application security group resource. It uniquely identifies a resource, even if the user changes its name or migrate the resource across subscriptions or resource groups.
                            readOnly: true
                            type: string
                  type: array
                sourcePortRange:
                  description: The source port or range. Integer or range between 0 and 65535. Asterisk '*' can also be used to match all ports.
                  type: string
                sourcePortRanges:
                  description: The source port ranges.
                  items:
                    description: The source port.
                    type: string
                  type: array
              required:
                - protocol
                - access
                - direction
        type: array
  NetworkSecurityGroupResult:
    description: Network configuration diagnostic result corresponded provided traffic query.
    properties:
      evaluatedNetworkSecurityGroups:
        description: List of results network security groups diagnostic.
        items:
          $ref: "#/definitions/EvaluatedNetworkSecurityGroup"
        readOnly: true
        type: array
      securityRuleAccessResult:
        description: Whether network traffic is allowed or denied.
        enum:
          - Allow
          - Deny
        type: string
        x-ms-enum:
          modelAsString: true
          name: SecurityRuleAccess
  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
  NetworkWatcher:
    allOf:
      - description: Common resource representation.
        properties:
          id:
            description: Resource ID.
            type: string
          location:
            description: Resource location.
            type: string
          name:
            description: Resource name.
            readOnly: true
            type: string
          tags:
            additionalProperties:
              type: string
            description: Resource tags.
            type: object
          type:
            description: Resource type.
            readOnly: true
            type: string
        x-ms-azure-resource: true
    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: "#/definitions/NetworkWatcherPropertiesFormat"
        description: Properties of the network watcher.
        x-ms-client-flatten: true
  NetworkWatcherListResult:
    description: Response for ListNetworkWatchers API service call.
    properties:
      value:
        description: List of network watcher resources.
        items:
          $ref: "#/definitions/NetworkWatcher"
        type: array
  NetworkWatcherPropertiesFormat:
    description: The network watcher properties.
    properties:
      provisioningState:
        description: The current provisioning state.
        enum:
          - Succeeded
          - Updating
          - Deleting
          - Failed
        readOnly: true
        type: string
        x-ms-enum:
          modelAsString: true
          name: ProvisioningState
  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
  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
  PacketCapture:
    description: Parameters that define the create packet capture operation.
    properties:
      properties:
        $ref: "#/definitions/PacketCaptureParameters"
        description: Properties of the packet capture.
        x-ms-client-flatten: true
    required:
      - properties
  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
  PacketCaptureListResult:
    description: List of packet capture sessions.
    properties:
      value:
        description: Information about packet capture sessions.
        items:
          $ref: "#/definitions/PacketCaptureResult"
        type: array
  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:
        description: A list of packet capture filters.
        items:
          $ref: "#/definitions/PacketCaptureFilter"
        type: array
      storageLocation:
        $ref: "#/definitions/PacketCaptureStorageLocation"
        description: Describes the storage location for a packet capture session.
      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
  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
  PacketCaptureResult:
    description: Information about packet capture session.
    properties:
      etag:
        default: A unique read-only string that changes whenever the resource is updated.
        description: 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: "#/definitions/PacketCaptureResultProperties"
        description: Properties of the packet capture result.
        x-ms-client-flatten: true
  PacketCaptureResultProperties:
    allOf:
      - $ref: "#/definitions/PacketCaptureParameters"
    description: Describes the properties of a packet capture session.
    properties:
      provisioningState:
        description: The current provisioning state.
        enum:
          - Succeeded
          - Updating
          - Deleting
          - Failed
        readOnly: true
        type: string
        x-ms-enum:
          modelAsString: true
          name: ProvisioningState
  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
  ProtocolConfiguration:
    description: Configuration of the protocol.
    properties:
      HTTPConfiguration:
        $ref: "#/definitions/HTTPConfiguration"
        description: HTTP configuration of the connectivity check.
  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
  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
  SecurityGroupNetworkInterface:
    description: Network interface and all its associated security rules.
    properties:
      id:
        description: ID of the network interface.
        type: string
      securityRuleAssociations:
        $ref: "#/definitions/SecurityRuleAssociations"
        description: All security rules associated with the network interface.
  SecurityGroupViewParameters:
    description: Parameters that define the VM to check security groups for.
    properties:
      targetResourceId:
        description: ID of the target VM.
        type: string
    required:
      - targetResourceId
  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: "#/definitions/SecurityGroupNetworkInterface"
        type: array
  SecurityRuleAssociations:
    description: All security rules associated with the network interface.
    properties:
      defaultSecurityRules:
        description: Collection of default security rules of the network security group.
        items:
          allOf:
            - description: Reference to another subresource.
              properties:
                id:
                  description: Resource ID.
                  type: string
              x-ms-azure-resource: true
          description: Network security rule.
          properties:
            etag:
              description: A unique read-only string that changes whenever the resource is updated.
              type: string
            name:
              description: The name of the resource that is unique within a resource group. This name can be used to access the resource.
              type: string
            properties:
              description: Security rule resource.
              properties:
                access:
                  description: Whether network traffic is allowed or denied.
                  enum:
                    - Allow
                    - Deny
                  type: string
                  x-ms-enum:
                    modelAsString: true
                    name: SecurityRuleAccess
                description:
                  description: A description for this rule. Restricted to 140 chars.
                  type: string
                destinationAddressPrefix:
                  description: The destination address prefix. CIDR or destination IP range. Asterisk '*' can also be used to match all source IPs. Default tags such as 'VirtualNetwork', 'AzureLoadBalancer' and 'Internet' can also be used.
                  type: string
                destinationAddressPrefixes:
                  description: The destination address prefixes. CIDR or destination IP ranges.
                  items:
                    type: string
                  type: array
                destinationApplicationSecurityGroups:
                  description: The application security group specified as destination.
                  items:
                    allOf:
                      - description: Common resource representation.
                        properties:
                          id:
                            description: Resource ID.
                            type: string
                          location:
                            description: Resource location.
                            type: string
                          name:
                            description: Resource name.
                            readOnly: true
                            type: string
                          tags:
                            additionalProperties:
                              type: string
                            description: Resource tags.
                            type: object
                          type:
                            description: Resource type.
                            readOnly: true
                            type: string
                        x-ms-azure-resource: true
                    description: An application security group in a resource group.
                    properties:
                      etag:
                        description: A unique read-only string that changes whenever the resource is updated.
                        readOnly: true
                        type: string
                      properties:
                        description: Application security group properties.
                        properties:
                          provisioningState:
                            description: The current provisioning state.
                            enum:
                              - Succeeded
                              - Updating
                              - Deleting
                              - Failed
                            readOnly: true
                            type: string
                            x-ms-enum:
                              modelAsString: true
                              name: ProvisioningState
                          resourceGuid:
                            description: The resource GUID property of the application security group resource. It uniquely identifies a resource, even if the user changes its name or migrate the resource across subscriptions or resource groups.
                            readOnly: true
                            type: string
                  type: array
                destinationPortRange:
                  description: The destination port or range. Integer or range between 0 and 65535. Asterisk '*' can also be used to match all ports.
                  type: string
                destinationPortRanges:
                  description: The destination port ranges.
                  items:
                    description: The destination port.
                    type: string
                  type: array
                direction:
                  description: The direction of the rule. The direction specifies if rule will be evaluated on incoming or outgoing traffic.
                  enum:
                    - Inbound
                    - Outbound
                  type: string
                  x-ms-enum:
                    modelAsString: true
                    name: SecurityRuleDirection
                priority:
                  description: The priority of the rule. The value can be between 100 and 4096. The priority number must be unique for each rule in the collection. The lower the priority number, the higher the priority of the rule.
                  format: int32
                  type: integer
                protocol:
                  description: Network protocol this rule applies to.
                  enum:
                    - Tcp
                    - Udp
                    - Icmp
                    - Esp
                    - "*"
                  type: string
                  x-ms-enum:
                    modelAsString: true
                    name: SecurityRuleProtocol
                provisioningState:
                  description: The current provisioning state.
                  enum:
                    - Succeeded
                    - Updating
                    - Deleting
                    - Failed
                  readOnly: true
                  type: string
                  x-ms-enum:
                    modelAsString: true
                    name: ProvisioningState
                sourceAddressPrefix:
                  description: The CIDR or source IP range. Asterisk '*' can also be used to match all source IPs. Default tags such as 'VirtualNetwork', 'AzureLoadBalancer' and 'Internet' can also be used. If this is an ingress rule, specifies where network traffic originates from.
                  type: string
                sourceAddressPrefixes:
                  description: The CIDR or source IP ranges.
                  items:
                    type: string
                  type: array
                sourceApplicationSecurityGroups:
                  description: The application security group specified as source.
                  items:
                    allOf:
                      - description: Common resource representation.
                        properties:
                          id:
                            description: Resource ID.
                            type: string
                          location:
                            description: Resource location.
                            type: string
                          name:
                            description: Resource name.
                            readOnly: true
                            type: string
                          tags:
                            additionalProperties:
                              type: string
                            description: Resource tags.
                            type: object
                          type:
                            description: Resource type.
                            readOnly: true
                            type: string
                        x-ms-azure-resource: true
                    description: An application security group in a resource group.
                    properties:
                      etag:
                        description: A unique read-only string that changes whenever the resource is updated.
                        readOnly: true
                        type: string
                      properties:
                        description: Application security group properties.
                        properties:
                          provisioningState:
                            description: The current provisioning state.
                            enum:
                              - Succeeded
                              - Updating
                              - Deleting
                              - Failed
                            readOnly: true
                            type: string
                            x-ms-enum:
                              modelAsString: true
                              name: ProvisioningState
                          resourceGuid:
                            description: The resource GUID property of the application security group resource. It uniquely identifies a resource, even if the user changes its name or migrate the resource across subscriptions or resource groups.
                            readOnly: true
                            type: string
                  type: array
                sourcePortRange:
                  description: The source port or range. Integer or range between 0 and 65535. Asterisk '*' can also be used to match all ports.
                  type: string
                sourcePortRanges:
                  description: The source port ranges.
                  items:
                    description: The source port.
                    type: string
                  type: array
              required:
                - protocol
                - access
                - direction
        type: array
      effectiveSecurityRules:
        description: Collection of effective security rules.
        items:
          description: Effective network security rules.
          properties:
            access:
              description: Whether network traffic is allowed or denied.
              enum:
                - Allow
                - Deny
              type: string
              x-ms-enum:
                modelAsString: true
                name: SecurityRuleAccess
            destinationAddressPrefix:
              description: The destination address prefix.
              type: string
            destinationAddressPrefixes:
              description: The destination address prefixes. Expected values include CIDR IP ranges, Default Tags (VirtualNetwork, AzureLoadBalancer, Internet), System Tags, and the asterisk (*).
              items:
                type: string
              type: array
            destinationPortRange:
              description: The destination port or range.
              type: string
            destinationPortRanges:
              description: The destination port ranges. Expected values include a single integer between 0 and 65535, a range using '-' as separator (e.g. 100-400), or an asterisk (*).
              items:
                type: string
              type: array
            direction:
              description: The direction of the rule. The direction specifies if rule will be evaluated on incoming or outgoing traffic.
              enum:
                - Inbound
                - Outbound
              type: string
              x-ms-enum:
                modelAsString: true
                name: SecurityRuleDirection
            expandedDestinationAddressPrefix:
              description: Expanded destination address prefix.
              items:
                type: string
              type: array
            expandedSourceAddressPrefix:
              description: The expanded source address prefix.
              items:
                type: string
              type: array
            name:
              description: The name of the security rule specified by the user (if created by the user).
              type: string
            priority:
              description: The priority of the rule.
              format: int32
              type: integer
            protocol:
              description: The network protocol this rule applies to.
              enum:
                - Tcp
                - Udp
                - All
              type: string
              x-ms-enum:
                modelAsString: true
                name: EffectiveSecurityRuleProtocol
            sourceAddressPrefix:
              description: The source address prefix.
              type: string
            sourceAddressPrefixes:
              description: The source address prefixes. Expected values include CIDR IP ranges, Default Tags (VirtualNetwork, AzureLoadBalancer, Internet), System Tags, and the asterisk (*).
              items:
                type: string
              type: array
            sourcePortRange:
              description: The source port or range.
              type: string
            sourcePortRanges:
              description: The source port ranges. Expected values include a single integer between 0 and 65535, a range using '-' as separator (e.g. 100-400), or an asterisk (*).
              items:
                type: string
              type: array
        type: array
      networkInterfaceAssociation:
        $ref: "#/definitions/NetworkInterfaceAssociation"
        description: Network interface and it's custom security rules.
      subnetAssociation:
        $ref: "#/definitions/SubnetAssociation"
        description: Subnet and it's custom security rules.
  SubnetAssociation:
    description: Subnet and it's custom security rules.
    properties:
      id:
        description: Subnet ID.
        readOnly: true
        type: string
      securityRules:
        description: Collection of custom security rules.
        items:
          allOf:
            - description: Reference to another subresource.
              properties:
                id:
                  description: Resource ID.
                  type: string
              x-ms-azure-resource: true
          description: Network security rule.
          properties:
            etag:
              description: A unique read-only string that changes whenever the resource is updated.
              type: string
            name:
              description: The name of the resource that is unique within a resource group. This name can be used to access the resource.
              type: string
            properties:
              description: Security rule resource.
              properties:
                access:
                  description: Whether network traffic is allowed or denied.
                  enum:
                    - Allow
                    - Deny
                  type: string
                  x-ms-enum:
                    modelAsString: true
                    name: SecurityRuleAccess
                description:
                  description: A description for this rule. Restricted to 140 chars.
                  type: string
                destinationAddressPrefix:
                  description: The destination address prefix. CIDR or destination IP range. Asterisk '*' can also be used to match all source IPs. Default tags such as 'VirtualNetwork', 'AzureLoadBalancer' and 'Internet' can also be used.
                  type: string
                destinationAddressPrefixes:
                  description: The destination address prefixes. CIDR or destination IP ranges.
                  items:
                    type: string
                  type: array
                destinationApplicationSecurityGroups:
                  description: The application security group specified as destination.
                  items:
                    allOf:
                      - description: Common resource representation.
                        properties:
                          id:
                            description: Resource ID.
                            type: string
                          location:
                            description: Resource location.
                            type: string
                          name:
                            description: Resource name.
                            readOnly: true
                            type: string
                          tags:
                            additionalProperties:
                              type: string
                            description: Resource tags.
                            type: object
                          type:
                            description: Resource type.
                            readOnly: true
                            type: string
                        x-ms-azure-resource: true
                    description: An application security group in a resource group.
                    properties:
                      etag:
                        description: A unique read-only string that changes whenever the resource is updated.
                        readOnly: true
                        type: string
                      properties:
                        description: Application security group properties.
                        properties:
                          provisioningState:
                            description: The current provisioning state.
                            enum:
                              - Succeeded
                              - Updating
                              - Deleting
                              - Failed
                            readOnly: true
                            type: string
                            x-ms-enum:
                              modelAsString: true
                              name: ProvisioningState
                          resourceGuid:
                            description: The resource GUID property of the application security group resource. It uniquely identifies a resource, even if the user changes its name or migrate the resource across subscriptions or resource groups.
                            readOnly: true
                            type: string
                  type: array
                destinationPortRange:
                  description: The destination port or range. Integer or range between 0 and 65535. Asterisk '*' can also be used to match all ports.
                  type: string
                destinationPortRanges:
                  description: The destination port ranges.
                  items:
                    description: The destination port.
                    type: string
                  type: array
                direction:
                  description: The direction of the rule. The direction specifies if rule will be evaluated on incoming or outgoing traffic.
                  enum:
                    - Inbound
                    - Outbound
                  type: string
                  x-ms-enum:
                    modelAsString: true
                    name: SecurityRuleDirection
                priority:
                  description: The priority of the rule. The value can be between 100 and 4096. The priority number must be unique for each rule in the collection. The lower the priority number, the higher the priority of the rule.
                  format: int32
                  type: integer
                protocol:
                  description: Network protocol this rule applies to.
                  enum:
                    - Tcp
                    - Udp
                    - Icmp
                    - Esp
                    - "*"
                  type: string
                  x-ms-enum:
                    modelAsString: true
                    name: SecurityRuleProtocol
                provisioningState:
                  description: The current provisioning state.
                  enum:
                    - Succeeded
                    - Updating
                    - Deleting
                    - Failed
                  readOnly: true
                  type: string
                  x-ms-enum:
                    modelAsString: true
                    name: ProvisioningState
                sourceAddressPrefix:
                  description: The CIDR or source IP range. Asterisk '*' can also be used to match all source IPs. Default tags such as 'VirtualNetwork', 'AzureLoadBalancer' and 'Internet' can also be used. If this is an ingress rule, specifies where network traffic originates from.
                  type: string
                sourceAddressPrefixes:
                  description: The CIDR or source IP ranges.
                  items:
                    type: string
                  type: array
                sourceApplicationSecurityGroups:
                  description: The application security group specified as source.
                  items:
                    allOf:
                      - description: Common resource representation.
                        properties:
                          id:
                            description: Resource ID.
                            type: string
                          location:
                            description: Resource location.
                            type: string
                          name:
                            description: Resource name.
                            readOnly: true
                            type: string
                          tags:
                            additionalProperties:
                              type: string
                            description: Resource tags.
                            type: object
                          type:
                            description: Resource type.
                            readOnly: true
                            type: string
                        x-ms-azure-resource: true
                    description: An application security group in a resource group.
                    properties:
                      etag:
                        description: A unique read-only string that changes whenever the resource is updated.
                        readOnly: true
                        type: string
                      properties:
                        description: Application security group properties.
                        properties:
                          provisioningState:
                            description: The current provisioning state.
                            enum:
                              - Succeeded
                              - Updating
                              - Deleting
                              - Failed
                            readOnly: true
                            type: string
                            x-ms-enum:
                              modelAsString: true
                              name: ProvisioningState
                          resourceGuid:
                            description: The resource GUID property of the application security group resource. It uniquely identifies a resource, even if the user changes its name or migrate the resource across subscriptions or resource groups.
                            readOnly: true
                            type: string
                  type: array
                sourcePortRange:
                  description: The source port or range. Integer or range between 0 and 65535. Asterisk '*' can also be used to match all ports.
                  type: string
                sourcePortRanges:
                  description: The source port ranges.
                  items:
                    description: The source port.
                    type: string
                  type: array
              required:
                - protocol
                - access
                - direction
        type: array
  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:
        description: A list of topology resources.
        items:
          $ref: "#/definitions/TopologyResource"
        type: array
  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
  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:
        description: Reference to another subresource.
        properties:
          id:
            description: Resource ID.
            type: string
        x-ms-azure-resource: true
      targetVirtualNetwork:
        description: Reference to another subresource.
        properties:
          id:
            description: Resource ID.
            type: string
        x-ms-azure-resource: true
  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: "#/definitions/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
  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
  TrafficAnalyticsProperties:
    description: Parameters that define the configuration of traffic analytics.
    properties:
      networkWatcherFlowAnalyticsConfiguration:
        $ref: "#/definitions/TrafficAnalyticsConfigurationProperties"
        description: Parameters that define the configuration of traffic analytics.
    required:
      - networkWatcherFlowAnalyticsConfiguration
  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: "#/definitions/TroubleshootingRecommendedActions"
        type: array
      summary:
        description: A summary of troubleshooting.
        type: string
  TroubleshootingParameters:
    description: Parameters that define the resource to troubleshoot.
    properties:
      properties:
        $ref: "#/definitions/TroubleshootingProperties"
        description: Properties of the troubleshooting resource.
        x-ms-client-flatten: true
      targetResourceId:
        description: The target resource to troubleshoot.
        type: string
    required:
      - targetResourceId
      - properties
  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
  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
  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: "#/definitions/TroubleshootingDetails"
        type: array
      startTime:
        description: The start time of the troubleshooting.
        format: date-time
        type: string
  VerificationIPFlowParameters:
    description: Parameters that define the IP flow to be verified.
    properties:
      direction:
        $ref: "#/definitions/Direction"
        description: The direction of the packet represented as a 5-tuple.
      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
  VerificationIPFlowResult:
    description: Results of IP flow verification on the target resource.
    properties:
      access:
        description: Access to be 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
