@lap v0.3
# Machine-readable API spec. Each @endpoint block is one API call.
@api NetworkManagementClient
@base https://management.azure.com
@version 2019-07-01
@auth OAuth2
@common_fields {resourceGroupName: any # The name of the resource group.}
@endpoints 24
@hint download_for_search
@toc subscriptions(24)

@endpoint PUT /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkWatchers/{networkWatcherName}
@desc Creates or updates a network watcher in the specified resource group.
@required {networkWatcherName: any # The name of the network watcher., parameters: any # Parameters that define the network watcher resource.}
@returns(200) Update successful. The operation returns the resulting network watcher resource.
@returns(201) Create successful. The operation returns the resulting network watcher resource.

@endpoint GET /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkWatchers/{networkWatcherName}
@desc Gets the specified network watcher by resource group.
@required {networkWatcherName: any # The name of the network watcher.}
@returns(200) Request successful. The operation returns a network watcher resource.

@endpoint DELETE /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkWatchers/{networkWatcherName}
@desc Deletes the specified network watcher resource.
@required {networkWatcherName: any # The name of the network watcher.}
@returns(202) Accepted and the operation will complete asynchronously.
@returns(204) Delete successful.

@endpoint PATCH /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkWatchers/{networkWatcherName}
@desc Updates a network watcher tags.
@required {networkWatcherName: any # The name of the network watcher., parameters: any # Parameters supplied to update network watcher tags.}
@returns(200) Update successful. The operation returns the resulting network watcher resource.

@endpoint GET /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkWatchers
@desc Gets all network watchers by resource group.
@returns(200) Request successful. The operation returns a list of network watcher resources.

@endpoint GET /subscriptions/{subscriptionId}/providers/Microsoft.Network/networkWatchers
@desc Gets all network watchers by subscription.
@returns(200) Request successful. The operation returns a list of network watcher resources.

@endpoint POST /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkWatchers/{networkWatcherName}/topology
@desc Gets the current network topology by resource group.
@required {networkWatcherName: any # The name of the network watcher., parameters: any # Parameters that define the representation of topology.}
@returns(200) Request successful. The operation returns the topology of resource group.

@endpoint POST /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkWatchers/{networkWatcherName}/ipFlowVerify
@desc Verify IP flow from the specified VM to a location given the currently configured NSG rules.
@required {networkWatcherName: any # The name of the network watcher., parameters: any # Parameters that define the IP flow to be verified.}
@returns(200) Request successful. The operation returns the result of IP flow verification.
@returns(202) Accepted and the operation will complete asynchronously.

@endpoint POST /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkWatchers/{networkWatcherName}/nextHop
@desc Gets the next hop from the specified VM.
@required {networkWatcherName: any # The name of the network watcher., parameters: any # Parameters that define the source and destination endpoint.}
@returns(200) Request successful. The operation returns the next hop from the VM.
@returns(202) Accepted and the operation will complete asynchronously.

@endpoint POST /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkWatchers/{networkWatcherName}/securityGroupView
@desc Gets the configured and effective security group rules on the specified VM.
@required {networkWatcherName: any # The name of the network watcher., parameters: any # Parameters that define the VM to check security groups for.}
@returns(200) Request successful. The operation returns security group rules on the VM.
@returns(202) Accepted and the operation will complete asynchronously.

@endpoint PUT /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkWatchers/{networkWatcherName}/packetCaptures/{packetCaptureName}
@desc Create and start a packet capture on the specified VM.
@required {networkWatcherName: any # The name of the network watcher., packetCaptureName: any # The name of the packet capture session., parameters: any # Parameters that define the create packet capture operation.}
@returns(201) Request successful. The operation returns the resulting packet capture session.

@endpoint GET /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkWatchers/{networkWatcherName}/packetCaptures/{packetCaptureName}
@desc Gets a packet capture session by name.
@required {networkWatcherName: any # The name of the network watcher., packetCaptureName: any # The name of the packet capture session.}
@returns(200) Request successful. The operation returns a packet capture session.

@endpoint DELETE /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkWatchers/{networkWatcherName}/packetCaptures/{packetCaptureName}
@desc Deletes the specified packet capture session.
@required {networkWatcherName: any # The name of the network watcher., packetCaptureName: any # The name of the packet capture session.}
@returns(202) Accepted and the operation will complete asynchronously.
@returns(204) Delete successful.

@endpoint POST /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkWatchers/{networkWatcherName}/packetCaptures/{packetCaptureName}/stop
@desc Stops a specified packet capture session.
@required {networkWatcherName: any # The name of the network watcher., packetCaptureName: any # The name of the packet capture session.}
@returns(200) Request successful. The operation stops the packet capture session.
@returns(202) Accepted and the operation will complete asynchronously.

@endpoint POST /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkWatchers/{networkWatcherName}/packetCaptures/{packetCaptureName}/queryStatus
@desc Query the status of a running packet capture session.
@required {networkWatcherName: any # The name of the Network Watcher resource., packetCaptureName: any # The name given to the packet capture session.}
@returns(200) Successful query of packet capture status.
@returns(202) Accepted query status of packet capture.

@endpoint GET /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkWatchers/{networkWatcherName}/packetCaptures
@desc Lists all packet capture sessions within the specified resource group.
@required {networkWatcherName: any # The name of the Network Watcher resource.}
@returns(200) Successful packet capture enumeration request.

@endpoint POST /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkWatchers/{networkWatcherName}/troubleshoot
@desc Initiate troubleshooting on a specified resource.
@required {networkWatcherName: any # The name of the network watcher resource., parameters: any # Parameters that define the resource to troubleshoot.}
@returns(200) Successful troubleshooting request.
@returns(202) Accepted get troubleshooting request.

@endpoint POST /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkWatchers/{networkWatcherName}/queryTroubleshootResult
@desc Get the last completed troubleshooting result on a specified resource.
@required {networkWatcherName: any # The name of the network watcher resource., parameters: any # Parameters that define the resource to query the troubleshooting result.}
@returns(200) Successful get troubleshooting result request.
@returns(202) Accepted get troubleshooting result request.

@endpoint POST /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkWatchers/{networkWatcherName}/configureFlowLog
@desc Configures flow log and traffic analytics (optional) on a specified resource.
@required {networkWatcherName: any # The name of the network watcher resource., parameters: any # Parameters that define the configuration of flow log.}
@returns(200) Successful request for setting flow log and traffic analytics (optional) configuration.
@returns(202) Accepted and the operation will complete asynchronously.

@endpoint POST /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkWatchers/{networkWatcherName}/queryFlowLogStatus
@desc Queries status of flow log and traffic analytics (optional) on a specified resource.
@required {networkWatcherName: any # The name of the network watcher resource., parameters: any # Parameters that define a resource to query flow log and traffic analytics (optional) status.}
@returns(200) Successful request for query flow log and traffic analytics (optional) status.
@returns(202) Accepted and the operation will complete asynchronously.

@endpoint POST /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkWatchers/{networkWatcherName}/connectivityCheck
@desc 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.
@required {networkWatcherName: any # The name of the network watcher resource., parameters: any # Parameters that determine how the connectivity check will be performed.}
@returns(200) Successful request for checking connectivity.
@returns(202) Accepted and the operation will complete asynchronously.

@endpoint POST /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkWatchers/{networkWatcherName}/azureReachabilityReport
@desc Gets the relative latency score for internet service providers from a specified location to Azure regions.
@required {networkWatcherName: any # The name of the network watcher resource., parameters: any # Parameters that determine Azure reachability report configuration.}
@returns(200) Successful request for Azure reachability report.
@returns(202) Accepted and the operation will complete asynchronously.

@endpoint POST /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkWatchers/{networkWatcherName}/availableProvidersList
@desc Lists all available internet service providers for a specified Azure region.
@required {networkWatcherName: any # The name of the network watcher resource., parameters: any # Parameters that scope the list of available providers.}
@returns(200) Successful request for list of available providers.
@returns(202) Accepted and the operation will complete asynchronously.

@endpoint POST /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkWatchers/{networkWatcherName}/networkConfigurationDiagnostic
@desc 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.
@required {networkWatcherName: any # The name of the network watcher., parameters: any # Parameters to get network configuration diagnostic.}
@returns(200) Request successful. The operation returns the result of network configuration diagnostic.
@returns(202) Accepted and the operation will complete asynchronously.

@end
