1{
2  "swagger": "2.0",
3  "info": {
4    "title": "NetworkManagementClient",
5    "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.",
6    "version": "2020-04-01"
7  },
8  "host": "management.azure.com",
9  "schemes": [
10    "https"
11  ],
12  "consumes": [
13    "application/json"
14  ],
15  "produces": [
16    "application/json"
17  ],
18  "security": [
19    {
20      "azure_auth": [
21        "user_impersonation"
22      ]
23    }
24  ],
25  "securityDefinitions": {
26    "azure_auth": {
27      "type": "oauth2",
28      "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize",
29      "flow": "implicit",
30      "description": "Azure Active Directory OAuth2 Flow.",
31      "scopes": {
32        "user_impersonation": "impersonate your user account"
33      }
34    }
35  },
36  "paths": {
37    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkWatchers/{networkWatcherName}": {
38      "put": {
39        "tags": [
40          "NetworkWatchers"
41        ],
42        "operationId": "NetworkWatchers_CreateOrUpdate",
43        "description": "Creates or updates a network watcher in the specified resource group.",
44        "parameters": [
45          {
46            "name": "resourceGroupName",
47            "in": "path",
48            "required": true,
49            "type": "string",
50            "description": "The name of the resource group."
51          },
52          {
53            "name": "networkWatcherName",
54            "in": "path",
55            "required": true,
56            "type": "string",
57            "description": "The name of the network watcher."
58          },
59          {
60            "name": "parameters",
61            "in": "body",
62            "required": true,
63            "schema": {
64              "$ref": "#/definitions/NetworkWatcher"
65            },
66            "description": "Parameters that define the network watcher resource."
67          },
68          {
69            "$ref": "./network.json#/parameters/ApiVersionParameter"
70          },
71          {
72            "$ref": "./network.json#/parameters/SubscriptionIdParameter"
73          }
74        ],
75        "responses": {
76          "200": {
77            "description": "Update successful. The operation returns the resulting network watcher resource.",
78            "schema": {
79              "$ref": "#/definitions/NetworkWatcher"
80            }
81          },
82          "201": {
83            "description": "Create successful. The operation returns the resulting network watcher resource.",
84            "schema": {
85              "$ref": "#/definitions/NetworkWatcher"
86            }
87          },
88          "default": {
89            "description": "Error response describing why the operation failed.",
90            "schema": {
91              "$ref": "#/definitions/ErrorResponse"
92            }
93          }
94        },
95        "x-ms-examples": {
96          "Create network watcher": {
97            "$ref": "./examples/NetworkWatcherCreate.json"
98          }
99        }
100      },
101      "get": {
102        "tags": [
103          "NetworkWatchers"
104        ],
105        "operationId": "NetworkWatchers_Get",
106        "description": "Gets the specified network watcher by resource group.",
107        "parameters": [
108          {
109            "name": "resourceGroupName",
110            "in": "path",
111            "required": true,
112            "type": "string",
113            "description": "The name of the resource group."
114          },
115          {
116            "name": "networkWatcherName",
117            "in": "path",
118            "required": true,
119            "type": "string",
120            "description": "The name of the network watcher."
121          },
122          {
123            "$ref": "./network.json#/parameters/ApiVersionParameter"
124          },
125          {
126            "$ref": "./network.json#/parameters/SubscriptionIdParameter"
127          }
128        ],
129        "responses": {
130          "200": {
131            "description": "Request successful. The operation returns a network watcher resource.",
132            "schema": {
133              "$ref": "#/definitions/NetworkWatcher"
134            }
135          },
136          "default": {
137            "description": "Error response describing why the operation failed.",
138            "schema": {
139              "$ref": "#/definitions/ErrorResponse"
140            }
141          }
142        },
143        "x-ms-examples": {
144          "Get network watcher": {
145            "$ref": "./examples/NetworkWatcherGet.json"
146          }
147        }
148      },
149      "delete": {
150        "tags": [
151          "NetworkWatchers"
152        ],
153        "operationId": "NetworkWatchers_Delete",
154        "description": "Deletes the specified network watcher resource.",
155        "parameters": [
156          {
157            "name": "resourceGroupName",
158            "in": "path",
159            "required": true,
160            "type": "string",
161            "description": "The name of the resource group."
162          },
163          {
164            "name": "networkWatcherName",
165            "in": "path",
166            "required": true,
167            "type": "string",
168            "description": "The name of the network watcher."
169          },
170          {
171            "$ref": "./network.json#/parameters/ApiVersionParameter"
172          },
173          {
174            "$ref": "./network.json#/parameters/SubscriptionIdParameter"
175          }
176        ],
177        "responses": {
178          "202": {
179            "description": "Accepted and the operation will complete asynchronously."
180          },
181          "204": {
182            "description": "Delete successful."
183          },
184          "default": {
185            "description": "Error response describing why the operation failed.",
186            "schema": {
187              "$ref": "#/definitions/ErrorResponse"
188            }
189          }
190        },
191        "x-ms-examples": {
192          "Delete network watcher": {
193            "$ref": "./examples/NetworkWatcherDelete.json"
194          }
195        },
196        "x-ms-long-running-operation": true,
197        "x-ms-long-running-operation-options": {
198          "final-state-via": "location"
199        }
200      },
201      "patch": {
202        "tags": [
203          "NetworkWatchers"
204        ],
205        "operationId": "NetworkWatchers_UpdateTags",
206        "description": "Updates a network watcher tags.",
207        "parameters": [
208          {
209            "name": "resourceGroupName",
210            "in": "path",
211            "required": true,
212            "type": "string",
213            "description": "The name of the resource group."
214          },
215          {
216            "name": "networkWatcherName",
217            "in": "path",
218            "required": true,
219            "type": "string",
220            "description": "The name of the network watcher."
221          },
222          {
223            "name": "parameters",
224            "in": "body",
225            "required": true,
226            "schema": {
227              "$ref": "./network.json#/definitions/TagsObject"
228            },
229            "description": "Parameters supplied to update network watcher tags."
230          },
231          {
232            "$ref": "./network.json#/parameters/ApiVersionParameter"
233          },
234          {
235            "$ref": "./network.json#/parameters/SubscriptionIdParameter"
236          }
237        ],
238        "responses": {
239          "200": {
240            "description": "Update successful. The operation returns the resulting network watcher resource.",
241            "schema": {
242              "$ref": "#/definitions/NetworkWatcher"
243            }
244          },
245          "default": {
246            "description": "Error response describing why the operation failed.",
247            "schema": {
248              "$ref": "#/definitions/ErrorResponse"
249            }
250          }
251        },
252        "x-ms-examples": {
253          "Update network watcher tags": {
254            "$ref": "./examples/NetworkWatcherUpdateTags.json"
255          }
256        }
257      }
258    },
259    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkWatchers": {
260      "get": {
261        "tags": [
262          "NetworkWatchers"
263        ],
264        "operationId": "NetworkWatchers_List",
265        "description": "Gets all network watchers by resource group.",
266        "parameters": [
267          {
268            "name": "resourceGroupName",
269            "in": "path",
270            "required": true,
271            "type": "string",
272            "description": "The name of the resource group."
273          },
274          {
275            "$ref": "./network.json#/parameters/ApiVersionParameter"
276          },
277          {
278            "$ref": "./network.json#/parameters/SubscriptionIdParameter"
279          }
280        ],
281        "responses": {
282          "200": {
283            "description": "Request successful. The operation returns a list of network watcher resources.",
284            "schema": {
285              "$ref": "#/definitions/NetworkWatcherListResult"
286            }
287          },
288          "default": {
289            "description": "Error response describing why the operation failed.",
290            "schema": {
291              "$ref": "#/definitions/ErrorResponse"
292            }
293          }
294        },
295        "x-ms-pageable": {
296          "nextLinkName": null
297        },
298        "x-ms-examples": {
299          "List network watchers": {
300            "$ref": "./examples/NetworkWatcherList.json"
301          }
302        }
303      }
304    },
305    "/subscriptions/{subscriptionId}/providers/Microsoft.Network/networkWatchers": {
306      "get": {
307        "tags": [
308          "NetworkWatchers"
309        ],
310        "operationId": "NetworkWatchers_ListAll",
311        "description": "Gets all network watchers by subscription.",
312        "parameters": [
313          {
314            "$ref": "./network.json#/parameters/ApiVersionParameter"
315          },
316          {
317            "$ref": "./network.json#/parameters/SubscriptionIdParameter"
318          }
319        ],
320        "responses": {
321          "200": {
322            "description": "Request successful. The operation returns a list of network watcher resources.",
323            "schema": {
324              "$ref": "#/definitions/NetworkWatcherListResult"
325            }
326          },
327          "default": {
328            "description": "Error response describing why the operation failed.",
329            "schema": {
330              "$ref": "#/definitions/ErrorResponse"
331            }
332          }
333        },
334        "x-ms-pageable": {
335          "nextLinkName": null
336        },
337        "x-ms-examples": {
338          "List all network watchers": {
339            "$ref": "./examples/NetworkWatcherListAll.json"
340          }
341        }
342      }
343    },
344    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkWatchers/{networkWatcherName}/topology": {
345      "post": {
346        "tags": [
347          "NetworkWatchers"
348        ],
349        "operationId": "NetworkWatchers_GetTopology",
350        "description": "Gets the current network topology by resource group.",
351        "parameters": [
352          {
353            "name": "resourceGroupName",
354            "in": "path",
355            "required": true,
356            "type": "string",
357            "description": "The name of the resource group."
358          },
359          {
360            "name": "networkWatcherName",
361            "in": "path",
362            "required": true,
363            "type": "string",
364            "description": "The name of the network watcher."
365          },
366          {
367            "name": "parameters",
368            "in": "body",
369            "required": true,
370            "schema": {
371              "$ref": "#/definitions/TopologyParameters"
372            },
373            "description": "Parameters that define the representation of topology."
374          },
375          {
376            "$ref": "./network.json#/parameters/ApiVersionParameter"
377          },
378          {
379            "$ref": "./network.json#/parameters/SubscriptionIdParameter"
380          }
381        ],
382        "responses": {
383          "200": {
384            "description": "Request successful. The operation returns the topology of resource group.",
385            "schema": {
386              "$ref": "#/definitions/Topology"
387            }
388          },
389          "default": {
390            "description": "Error response describing why the operation failed.",
391            "schema": {
392              "$ref": "#/definitions/ErrorResponse"
393            }
394          }
395        },
396        "x-ms-examples": {
397          "Get Topology": {
398            "$ref": "./examples/NetworkWatcherTopologyGet.json"
399          }
400        }
401      }
402    },
403    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkWatchers/{networkWatcherName}/ipFlowVerify": {
404      "post": {
405        "tags": [
406          "NetworkWatchers"
407        ],
408        "operationId": "NetworkWatchers_VerifyIPFlow",
409        "description": "Verify IP flow from the specified VM to a location given the currently configured NSG rules.",
410        "parameters": [
411          {
412            "name": "resourceGroupName",
413            "in": "path",
414            "required": true,
415            "type": "string",
416            "description": "The name of the resource group."
417          },
418          {
419            "name": "networkWatcherName",
420            "in": "path",
421            "required": true,
422            "type": "string",
423            "description": "The name of the network watcher."
424          },
425          {
426            "name": "parameters",
427            "in": "body",
428            "required": true,
429            "schema": {
430              "$ref": "#/definitions/VerificationIPFlowParameters"
431            },
432            "description": "Parameters that define the IP flow to be verified."
433          },
434          {
435            "$ref": "./network.json#/parameters/ApiVersionParameter"
436          },
437          {
438            "$ref": "./network.json#/parameters/SubscriptionIdParameter"
439          }
440        ],
441        "responses": {
442          "200": {
443            "description": "Request successful. The operation returns the result of IP flow verification.",
444            "schema": {
445              "$ref": "#/definitions/VerificationIPFlowResult"
446            }
447          },
448          "202": {
449            "description": "Accepted and the operation will complete asynchronously.",
450            "schema": {
451              "$ref": "#/definitions/VerificationIPFlowResult"
452            }
453          },
454          "default": {
455            "description": "Error response describing why the operation failed.",
456            "schema": {
457              "$ref": "#/definitions/ErrorResponse"
458            }
459          }
460        },
461        "x-ms-examples": {
462          "Ip flow verify": {
463            "$ref": "./examples/NetworkWatcherIpFlowVerify.json"
464          }
465        },
466        "x-ms-long-running-operation": true,
467        "x-ms-long-running-operation-options": {
468          "final-state-via": "location"
469        }
470      }
471    },
472    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkWatchers/{networkWatcherName}/nextHop": {
473      "post": {
474        "tags": [
475          "NetworkWatchers"
476        ],
477        "operationId": "NetworkWatchers_GetNextHop",
478        "description": "Gets the next hop from the specified VM.",
479        "parameters": [
480          {
481            "name": "resourceGroupName",
482            "in": "path",
483            "required": true,
484            "type": "string",
485            "description": "The name of the resource group."
486          },
487          {
488            "name": "networkWatcherName",
489            "in": "path",
490            "required": true,
491            "type": "string",
492            "description": "The name of the network watcher."
493          },
494          {
495            "name": "parameters",
496            "in": "body",
497            "required": true,
498            "schema": {
499              "$ref": "#/definitions/NextHopParameters"
500            },
501            "description": "Parameters that define the source and destination endpoint."
502          },
503          {
504            "$ref": "./network.json#/parameters/ApiVersionParameter"
505          },
506          {
507            "$ref": "./network.json#/parameters/SubscriptionIdParameter"
508          }
509        ],
510        "responses": {
511          "200": {
512            "description": "Request successful. The operation returns the next hop from the VM.",
513            "schema": {
514              "$ref": "#/definitions/NextHopResult"
515            }
516          },
517          "202": {
518            "description": "Accepted and the operation will complete asynchronously.",
519            "schema": {
520              "$ref": "#/definitions/NextHopResult"
521            }
522          },
523          "default": {
524            "description": "Error response describing why the operation failed.",
525            "schema": {
526              "$ref": "#/definitions/ErrorResponse"
527            }
528          }
529        },
530        "x-ms-examples": {
531          "Get next hop": {
532            "$ref": "./examples/NetworkWatcherNextHopGet.json"
533          }
534        },
535        "x-ms-long-running-operation": true,
536        "x-ms-long-running-operation-options": {
537          "final-state-via": "location"
538        }
539      }
540    },
541    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkWatchers/{networkWatcherName}/securityGroupView": {
542      "post": {
543        "tags": [
544          "NetworkWatchers"
545        ],
546        "operationId": "NetworkWatchers_GetVMSecurityRules",
547        "description": "Gets the configured and effective security group rules on the specified VM.",
548        "parameters": [
549          {
550            "name": "resourceGroupName",
551            "in": "path",
552            "required": true,
553            "type": "string",
554            "description": "The name of the resource group."
555          },
556          {
557            "name": "networkWatcherName",
558            "in": "path",
559            "required": true,
560            "type": "string",
561            "description": "The name of the network watcher."
562          },
563          {
564            "name": "parameters",
565            "in": "body",
566            "required": true,
567            "schema": {
568              "$ref": "#/definitions/SecurityGroupViewParameters"
569            },
570            "description": "Parameters that define the VM to check security groups for."
571          },
572          {
573            "$ref": "./network.json#/parameters/ApiVersionParameter"
574          },
575          {
576            "$ref": "./network.json#/parameters/SubscriptionIdParameter"
577          }
578        ],
579        "responses": {
580          "200": {
581            "description": "Request successful. The operation returns security group rules on the VM.",
582            "schema": {
583              "$ref": "#/definitions/SecurityGroupViewResult"
584            }
585          },
586          "202": {
587            "description": "Accepted and the operation will complete asynchronously.",
588            "schema": {
589              "$ref": "#/definitions/SecurityGroupViewResult"
590            }
591          },
592          "default": {
593            "description": "Error response describing why the operation failed.",
594            "schema": {
595              "$ref": "#/definitions/ErrorResponse"
596            }
597          }
598        },
599        "x-ms-examples": {
600          "Get security group view": {
601            "$ref": "./examples/NetworkWatcherSecurityGroupViewGet.json"
602          }
603        },
604        "x-ms-long-running-operation": true,
605        "x-ms-long-running-operation-options": {
606          "final-state-via": "location"
607        }
608      }
609    },
610    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkWatchers/{networkWatcherName}/packetCaptures/{packetCaptureName}": {
611      "put": {
612        "tags": [
613          "PacketCaptures"
614        ],
615        "operationId": "PacketCaptures_Create",
616        "description": "Create and start a packet capture on the specified VM.",
617        "parameters": [
618          {
619            "name": "resourceGroupName",
620            "in": "path",
621            "required": true,
622            "type": "string",
623            "description": "The name of the resource group."
624          },
625          {
626            "name": "networkWatcherName",
627            "in": "path",
628            "required": true,
629            "type": "string",
630            "description": "The name of the network watcher."
631          },
632          {
633            "name": "packetCaptureName",
634            "in": "path",
635            "required": true,
636            "type": "string",
637            "description": "The name of the packet capture session."
638          },
639          {
640            "name": "parameters",
641            "in": "body",
642            "required": true,
643            "schema": {
644              "$ref": "#/definitions/PacketCapture"
645            },
646            "description": "Parameters that define the create packet capture operation."
647          },
648          {
649            "$ref": "./network.json#/parameters/ApiVersionParameter"
650          },
651          {
652            "$ref": "./network.json#/parameters/SubscriptionIdParameter"
653          }
654        ],
655        "responses": {
656          "201": {
657            "description": "Request successful. The operation returns the resulting packet capture session.",
658            "schema": {
659              "$ref": "#/definitions/PacketCaptureResult"
660            }
661          },
662          "default": {
663            "description": "Error response describing why the operation failed.",
664            "schema": {
665              "$ref": "#/definitions/ErrorResponse"
666            }
667          }
668        },
669        "x-ms-examples": {
670          "Create packet capture": {
671            "$ref": "./examples/NetworkWatcherPacketCaptureCreate.json"
672          }
673        },
674        "x-ms-long-running-operation": true,
675        "x-ms-long-running-operation-options": {
676          "final-state-via": "azure-async-operation"
677        }
678      },
679      "get": {
680        "tags": [
681          "PacketCaptures"
682        ],
683        "operationId": "PacketCaptures_Get",
684        "description": "Gets a packet capture session by name.",
685        "parameters": [
686          {
687            "name": "resourceGroupName",
688            "in": "path",
689            "required": true,
690            "type": "string",
691            "description": "The name of the resource group."
692          },
693          {
694            "name": "networkWatcherName",
695            "in": "path",
696            "required": true,
697            "type": "string",
698            "description": "The name of the network watcher."
699          },
700          {
701            "name": "packetCaptureName",
702            "in": "path",
703            "required": true,
704            "type": "string",
705            "description": "The name of the packet capture session."
706          },
707          {
708            "$ref": "./network.json#/parameters/ApiVersionParameter"
709          },
710          {
711            "$ref": "./network.json#/parameters/SubscriptionIdParameter"
712          }
713        ],
714        "responses": {
715          "200": {
716            "description": "Request successful. The operation returns a packet capture session.",
717            "schema": {
718              "$ref": "#/definitions/PacketCaptureResult"
719            }
720          },
721          "default": {
722            "description": "Error response describing why the operation failed.",
723            "schema": {
724              "$ref": "#/definitions/ErrorResponse"
725            }
726          }
727        },
728        "x-ms-examples": {
729          "Get packet capture": {
730            "$ref": "./examples/NetworkWatcherPacketCaptureGet.json"
731          }
732        }
733      },
734      "delete": {
735        "tags": [
736          "PacketCaptures"
737        ],
738        "operationId": "PacketCaptures_Delete",
739        "description": "Deletes the specified packet capture session.",
740        "parameters": [
741          {
742            "name": "resourceGroupName",
743            "in": "path",
744            "required": true,
745            "type": "string",
746            "description": "The name of the resource group."
747          },
748          {
749            "name": "networkWatcherName",
750            "in": "path",
751            "required": true,
752            "type": "string",
753            "description": "The name of the network watcher."
754          },
755          {
756            "name": "packetCaptureName",
757            "in": "path",
758            "required": true,
759            "type": "string",
760            "description": "The name of the packet capture session."
761          },
762          {
763            "$ref": "./network.json#/parameters/ApiVersionParameter"
764          },
765          {
766            "$ref": "./network.json#/parameters/SubscriptionIdParameter"
767          }
768        ],
769        "responses": {
770          "204": {
771            "description": "Delete successful."
772          },
773          "202": {
774            "description": "Accepted and the operation will complete asynchronously."
775          },
776          "default": {
777            "description": "Error response describing why the operation failed.",
778            "schema": {
779              "$ref": "#/definitions/ErrorResponse"
780            }
781          }
782        },
783        "x-ms-examples": {
784          "Delete packet capture": {
785            "$ref": "./examples/NetworkWatcherPacketCaptureDelete.json"
786          }
787        },
788        "x-ms-long-running-operation": true,
789        "x-ms-long-running-operation-options": {
790          "final-state-via": "location"
791        }
792      }
793    },
794    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkWatchers/{networkWatcherName}/packetCaptures/{packetCaptureName}/stop": {
795      "post": {
796        "tags": [
797          "PacketCaptures"
798        ],
799        "operationId": "PacketCaptures_Stop",
800        "description": "Stops a specified packet capture session.",
801        "parameters": [
802          {
803            "name": "resourceGroupName",
804            "in": "path",
805            "required": true,
806            "type": "string",
807            "description": "The name of the resource group."
808          },
809          {
810            "name": "networkWatcherName",
811            "in": "path",
812            "required": true,
813            "type": "string",
814            "description": "The name of the network watcher."
815          },
816          {
817            "name": "packetCaptureName",
818            "in": "path",
819            "required": true,
820            "type": "string",
821            "description": "The name of the packet capture session."
822          },
823          {
824            "$ref": "./network.json#/parameters/ApiVersionParameter"
825          },
826          {
827            "$ref": "./network.json#/parameters/SubscriptionIdParameter"
828          }
829        ],
830        "responses": {
831          "200": {
832            "description": "Request successful. The operation stops the packet capture session."
833          },
834          "202": {
835            "description": "Accepted and the operation will complete asynchronously."
836          },
837          "default": {
838            "description": "Error response describing why the operation failed.",
839            "schema": {
840              "$ref": "#/definitions/ErrorResponse"
841            }
842          }
843        },
844        "x-ms-examples": {
845          "Stop packet capture": {
846            "$ref": "./examples/NetworkWatcherPacketCaptureStop.json"
847          }
848        },
849        "x-ms-long-running-operation": true,
850        "x-ms-long-running-operation-options": {
851          "final-state-via": "location"
852        }
853      }
854    },
855    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkWatchers/{networkWatcherName}/packetCaptures/{packetCaptureName}/queryStatus": {
856      "post": {
857        "tags": [
858          "PacketCaptures"
859        ],
860        "operationId": "PacketCaptures_GetStatus",
861        "description": "Query the status of a running packet capture session.",
862        "parameters": [
863          {
864            "name": "resourceGroupName",
865            "in": "path",
866            "required": true,
867            "type": "string",
868            "description": "The name of the resource group."
869          },
870          {
871            "name": "networkWatcherName",
872            "in": "path",
873            "required": true,
874            "type": "string",
875            "description": "The name of the Network Watcher resource."
876          },
877          {
878            "name": "packetCaptureName",
879            "in": "path",
880            "required": true,
881            "type": "string",
882            "description": "The name given to the packet capture session."
883          },
884          {
885            "$ref": "./network.json#/parameters/ApiVersionParameter"
886          },
887          {
888            "$ref": "./network.json#/parameters/SubscriptionIdParameter"
889          }
890        ],
891        "responses": {
892          "200": {
893            "description": "Successful query of packet capture status.",
894            "schema": {
895              "$ref": "#/definitions/PacketCaptureQueryStatusResult"
896            }
897          },
898          "202": {
899            "description": "Accepted query status of packet capture.",
900            "schema": {
901              "$ref": "#/definitions/PacketCaptureQueryStatusResult"
902            }
903          },
904          "default": {
905            "description": "Error response describing why the operation failed.",
906            "schema": {
907              "$ref": "#/definitions/ErrorResponse"
908            }
909          }
910        },
911        "x-ms-examples": {
912          "Query packet capture status": {
913            "$ref": "./examples/NetworkWatcherPacketCaptureQueryStatus.json"
914          }
915        },
916        "x-ms-long-running-operation": true,
917        "x-ms-long-running-operation-options": {
918          "final-state-via": "location"
919        }
920      }
921    },
922    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkWatchers/{networkWatcherName}/packetCaptures": {
923      "get": {
924        "tags": [
925          "PacketCaptures"
926        ],
927        "operationId": "PacketCaptures_List",
928        "description": "Lists all packet capture sessions within the specified resource group.",
929        "parameters": [
930          {
931            "name": "resourceGroupName",
932            "in": "path",
933            "required": true,
934            "type": "string",
935            "description": "The name of the resource group."
936          },
937          {
938            "name": "networkWatcherName",
939            "in": "path",
940            "required": true,
941            "type": "string",
942            "description": "The name of the Network Watcher resource."
943          },
944          {
945            "$ref": "./network.json#/parameters/ApiVersionParameter"
946          },
947          {
948            "$ref": "./network.json#/parameters/SubscriptionIdParameter"
949          }
950        ],
951        "responses": {
952          "200": {
953            "description": "Successful packet capture enumeration request.",
954            "schema": {
955              "$ref": "#/definitions/PacketCaptureListResult"
956            }
957          },
958          "default": {
959            "description": "Error response describing why the operation failed.",
960            "schema": {
961              "$ref": "#/definitions/ErrorResponse"
962            }
963          }
964        },
965        "x-ms-pageable": {
966          "nextLinkName": null
967        },
968        "x-ms-examples": {
969          "List packet captures": {
970            "$ref": "./examples/NetworkWatcherPacketCapturesList.json"
971          }
972        }
973      }
974    },
975    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkWatchers/{networkWatcherName}/troubleshoot": {
976      "post": {
977        "tags": [
978          "NetworkWatchers"
979        ],
980        "operationId": "NetworkWatchers_GetTroubleshooting",
981        "description": "Initiate troubleshooting on a specified resource.",
982        "parameters": [
983          {
984            "name": "resourceGroupName",
985            "in": "path",
986            "required": true,
987            "type": "string",
988            "description": "The name of the resource group."
989          },
990          {
991            "name": "networkWatcherName",
992            "in": "path",
993            "required": true,
994            "type": "string",
995            "description": "The name of the network watcher resource."
996          },
997          {
998            "name": "parameters",
999            "in": "body",
1000            "required": true,
1001            "schema": {
1002              "$ref": "#/definitions/TroubleshootingParameters"
1003            },
1004            "description": "Parameters that define the resource to troubleshoot."
1005          },
1006          {
1007            "$ref": "./network.json#/parameters/ApiVersionParameter"
1008          },
1009          {
1010            "$ref": "./network.json#/parameters/SubscriptionIdParameter"
1011          }
1012        ],
1013        "responses": {
1014          "200": {
1015            "description": "Successful troubleshooting request.",
1016            "schema": {
1017              "$ref": "#/definitions/TroubleshootingResult"
1018            }
1019          },
1020          "202": {
1021            "description": "Accepted get troubleshooting request.",
1022            "schema": {
1023              "$ref": "#/definitions/TroubleshootingResult"
1024            }
1025          },
1026          "default": {
1027            "description": "Error response describing why the operation failed.",
1028            "schema": {
1029              "$ref": "#/definitions/ErrorResponse"
1030            }
1031          }
1032        },
1033        "x-ms-examples": {
1034          "Get troubleshooting": {
1035            "$ref": "./examples/NetworkWatcherTroubleshootGet.json"
1036          }
1037        },
1038        "x-ms-long-running-operation": true,
1039        "x-ms-long-running-operation-options": {
1040          "final-state-via": "location"
1041        }
1042      }
1043    },
1044    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkWatchers/{networkWatcherName}/queryTroubleshootResult": {
1045      "post": {
1046        "tags": [
1047          "NetworkWatchers"
1048        ],
1049        "operationId": "NetworkWatchers_GetTroubleshootingResult",
1050        "description": "Get the last completed troubleshooting result on a specified resource.",
1051        "parameters": [
1052          {
1053            "name": "resourceGroupName",
1054            "in": "path",
1055            "required": true,
1056            "type": "string",
1057            "description": "The name of the resource group."
1058          },
1059          {
1060            "name": "networkWatcherName",
1061            "in": "path",
1062            "required": true,
1063            "type": "string",
1064            "description": "The name of the network watcher resource."
1065          },
1066          {
1067            "name": "parameters",
1068            "in": "body",
1069            "required": true,
1070            "schema": {
1071              "$ref": "#/definitions/QueryTroubleshootingParameters"
1072            },
1073            "description": "Parameters that define the resource to query the troubleshooting result."
1074          },
1075          {
1076            "$ref": "./network.json#/parameters/ApiVersionParameter"
1077          },
1078          {
1079            "$ref": "./network.json#/parameters/SubscriptionIdParameter"
1080          }
1081        ],
1082        "responses": {
1083          "200": {
1084            "description": "Successful get troubleshooting result request.",
1085            "schema": {
1086              "$ref": "#/definitions/TroubleshootingResult"
1087            }
1088          },
1089          "202": {
1090            "description": "Accepted get troubleshooting result request.",
1091            "schema": {
1092              "$ref": "#/definitions/TroubleshootingResult"
1093            }
1094          },
1095          "default": {
1096            "description": "Error response describing why the operation failed.",
1097            "schema": {
1098              "$ref": "#/definitions/ErrorResponse"
1099            }
1100          }
1101        },
1102        "x-ms-examples": {
1103          "Get troubleshoot result": {
1104            "$ref": "./examples/NetworkWatcherTroubleshootResultQuery.json"
1105          }
1106        },
1107        "x-ms-long-running-operation": true,
1108        "x-ms-long-running-operation-options": {
1109          "final-state-via": "location"
1110        }
1111      }
1112    },
1113    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkWatchers/{networkWatcherName}/configureFlowLog": {
1114      "post": {
1115        "tags": [
1116          "NetworkWatchers",
1117          "TrafficAnalytics"
1118        ],
1119        "operationId": "NetworkWatchers_SetFlowLogConfiguration",
1120        "description": "Configures flow log and traffic analytics (optional) on a specified resource.",
1121        "parameters": [
1122          {
1123            "name": "resourceGroupName",
1124            "in": "path",
1125            "required": true,
1126            "type": "string",
1127            "description": "The name of the network watcher resource group."
1128          },
1129          {
1130            "name": "networkWatcherName",
1131            "in": "path",
1132            "required": true,
1133            "type": "string",
1134            "description": "The name of the network watcher resource."
1135          },
1136          {
1137            "name": "parameters",
1138            "in": "body",
1139            "required": true,
1140            "schema": {
1141              "$ref": "#/definitions/FlowLogInformation"
1142            },
1143            "description": "Parameters that define the configuration of flow log."
1144          },
1145          {
1146            "$ref": "./network.json#/parameters/ApiVersionParameter"
1147          },
1148          {
1149            "$ref": "./network.json#/parameters/SubscriptionIdParameter"
1150          }
1151        ],
1152        "responses": {
1153          "200": {
1154            "description": "Successful request for setting flow log and traffic analytics (optional) configuration.",
1155            "schema": {
1156              "$ref": "#/definitions/FlowLogInformation"
1157            }
1158          },
1159          "202": {
1160            "description": "Accepted and the operation will complete asynchronously.",
1161            "schema": {
1162              "$ref": "#/definitions/FlowLogInformation"
1163            }
1164          },
1165          "default": {
1166            "description": "Error response describing why the operation failed.",
1167            "schema": {
1168              "$ref": "#/definitions/ErrorResponse"
1169            }
1170          }
1171        },
1172        "x-ms-examples": {
1173          "Configure flow log": {
1174            "$ref": "./examples/NetworkWatcherFlowLogConfigure.json"
1175          }
1176        },
1177        "x-ms-long-running-operation": true,
1178        "x-ms-long-running-operation-options": {
1179          "final-state-via": "location"
1180        }
1181      }
1182    },
1183    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkWatchers/{networkWatcherName}/queryFlowLogStatus": {
1184      "post": {
1185        "tags": [
1186          "NetworkWatchers",
1187          "TrafficAnalytics"
1188        ],
1189        "operationId": "NetworkWatchers_GetFlowLogStatus",
1190        "description": "Queries status of flow log and traffic analytics (optional) on a specified resource.",
1191        "parameters": [
1192          {
1193            "name": "resourceGroupName",
1194            "in": "path",
1195            "required": true,
1196            "type": "string",
1197            "description": "The name of the network watcher resource group."
1198          },
1199          {
1200            "name": "networkWatcherName",
1201            "in": "path",
1202            "required": true,
1203            "type": "string",
1204            "description": "The name of the network watcher resource."
1205          },
1206          {
1207            "name": "parameters",
1208            "in": "body",
1209            "required": true,
1210            "schema": {
1211              "$ref": "#/definitions/FlowLogStatusParameters"
1212            },
1213            "description": "Parameters that define a resource to query flow log and traffic analytics (optional) status."
1214          },
1215          {
1216            "$ref": "./network.json#/parameters/ApiVersionParameter"
1217          },
1218          {
1219            "$ref": "./network.json#/parameters/SubscriptionIdParameter"
1220          }
1221        ],
1222        "responses": {
1223          "200": {
1224            "description": "Successful request for query flow log and traffic analytics (optional) status.",
1225            "schema": {
1226              "$ref": "#/definitions/FlowLogInformation"
1227            }
1228          },
1229          "202": {
1230            "description": "Accepted and the operation will complete asynchronously.",
1231            "schema": {
1232              "$ref": "#/definitions/FlowLogInformation"
1233            }
1234          },
1235          "default": {
1236            "description": "Error response describing why the operation failed.",
1237            "schema": {
1238              "$ref": "#/definitions/ErrorResponse"
1239            }
1240          }
1241        },
1242        "x-ms-examples": {
1243          "Get flow log status": {
1244            "$ref": "./examples/NetworkWatcherFlowLogStatusQuery.json"
1245          }
1246        },
1247        "x-ms-long-running-operation": true,
1248        "x-ms-long-running-operation-options": {
1249          "final-state-via": "location"
1250        }
1251      }
1252    },
1253    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkWatchers/{networkWatcherName}/connectivityCheck": {
1254      "post": {
1255        "tags": [
1256          "NetworkWatchers"
1257        ],
1258        "operationId": "NetworkWatchers_CheckConnectivity",
1259        "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.",
1260        "parameters": [
1261          {
1262            "name": "resourceGroupName",
1263            "in": "path",
1264            "required": true,
1265            "type": "string",
1266            "description": "The name of the network watcher resource group."
1267          },
1268          {
1269            "name": "networkWatcherName",
1270            "in": "path",
1271            "required": true,
1272            "type": "string",
1273            "description": "The name of the network watcher resource."
1274          },
1275          {
1276            "name": "parameters",
1277            "in": "body",
1278            "required": true,
1279            "schema": {
1280              "$ref": "#/definitions/ConnectivityParameters"
1281            },
1282            "description": "Parameters that determine how the connectivity check will be performed."
1283          },
1284          {
1285            "$ref": "./network.json#/parameters/ApiVersionParameter"
1286          },
1287          {
1288            "$ref": "./network.json#/parameters/SubscriptionIdParameter"
1289          }
1290        ],
1291        "responses": {
1292          "200": {
1293            "description": "Successful request for checking connectivity.",
1294            "schema": {
1295              "$ref": "#/definitions/ConnectivityInformation"
1296            }
1297          },
1298          "202": {
1299            "description": "Accepted and the operation will complete asynchronously.",
1300            "schema": {
1301              "$ref": "#/definitions/ConnectivityInformation"
1302            }
1303          },
1304          "default": {
1305            "description": "Error response describing why the operation failed.",
1306            "schema": {
1307              "$ref": "#/definitions/ErrorResponse"
1308            }
1309          }
1310        },
1311        "x-ms-examples": {
1312          "Check connectivity": {
1313            "$ref": "./examples/NetworkWatcherConnectivityCheck.json"
1314          }
1315        },
1316        "x-ms-long-running-operation": true,
1317        "x-ms-long-running-operation-options": {
1318          "final-state-via": "location"
1319        }
1320      }
1321    },
1322    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkWatchers/{networkWatcherName}/azureReachabilityReport": {
1323      "post": {
1324        "tags": [
1325          "NetworkWatchers"
1326        ],
1327        "operationId": "NetworkWatchers_GetAzureReachabilityReport",
1328        "description": "NOTE: This feature is currently in preview and still being tested for stability. Gets the relative latency score for internet service providers from a specified location to Azure regions.",
1329        "parameters": [
1330          {
1331            "name": "resourceGroupName",
1332            "in": "path",
1333            "required": true,
1334            "type": "string",
1335            "description": "The name of the network watcher resource group."
1336          },
1337          {
1338            "name": "networkWatcherName",
1339            "in": "path",
1340            "required": true,
1341            "type": "string",
1342            "description": "The name of the network watcher resource."
1343          },
1344          {
1345            "name": "parameters",
1346            "in": "body",
1347            "required": true,
1348            "schema": {
1349              "$ref": "#/definitions/AzureReachabilityReportParameters"
1350            },
1351            "description": "Parameters that determine Azure reachability report configuration."
1352          },
1353          {
1354            "$ref": "./network.json#/parameters/ApiVersionParameter"
1355          },
1356          {
1357            "$ref": "./network.json#/parameters/SubscriptionIdParameter"
1358          }
1359        ],
1360        "responses": {
1361          "200": {
1362            "description": "Successful request for Azure reachability report.",
1363            "schema": {
1364              "$ref": "#/definitions/AzureReachabilityReport"
1365            }
1366          },
1367          "202": {
1368            "description": "Accepted and the operation will complete asynchronously.",
1369            "schema": {
1370              "$ref": "#/definitions/AzureReachabilityReport"
1371            }
1372          },
1373          "default": {
1374            "description": "Error response describing why the operation failed.",
1375            "schema": {
1376              "$ref": "#/definitions/ErrorResponse"
1377            }
1378          }
1379        },
1380        "x-ms-examples": {
1381          "Get Azure Reachability Report": {
1382            "$ref": "./examples/NetworkWatcherAzureReachabilityReportGet.json"
1383          }
1384        },
1385        "x-ms-long-running-operation": true,
1386        "x-ms-long-running-operation-options": {
1387          "final-state-via": "location"
1388        }
1389      }
1390    },
1391    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkWatchers/{networkWatcherName}/availableProvidersList": {
1392      "post": {
1393        "tags": [
1394          "NetworkWatchers"
1395        ],
1396        "operationId": "NetworkWatchers_ListAvailableProviders",
1397        "description": "NOTE: This feature is currently in preview and still being tested for stability. Lists all available internet service providers for a specified Azure region.",
1398        "parameters": [
1399          {
1400            "name": "resourceGroupName",
1401            "in": "path",
1402            "required": true,
1403            "type": "string",
1404            "description": "The name of the network watcher resource group."
1405          },
1406          {
1407            "name": "networkWatcherName",
1408            "in": "path",
1409            "required": true,
1410            "type": "string",
1411            "description": "The name of the network watcher resource."
1412          },
1413          {
1414            "name": "parameters",
1415            "in": "body",
1416            "required": true,
1417            "schema": {
1418              "$ref": "#/definitions/AvailableProvidersListParameters"
1419            },
1420            "description": "Parameters that scope the list of available providers."
1421          },
1422          {
1423            "$ref": "./network.json#/parameters/ApiVersionParameter"
1424          },
1425          {
1426            "$ref": "./network.json#/parameters/SubscriptionIdParameter"
1427          }
1428        ],
1429        "responses": {
1430          "200": {
1431            "description": "Successful request for list of available providers.",
1432            "schema": {
1433              "$ref": "#/definitions/AvailableProvidersList"
1434            }
1435          },
1436          "202": {
1437            "description": "Accepted and the operation will complete asynchronously.",
1438            "schema": {
1439              "$ref": "#/definitions/AvailableProvidersList"
1440            }
1441          },
1442          "default": {
1443            "description": "Error response describing why the operation failed.",
1444            "schema": {
1445              "$ref": "#/definitions/ErrorResponse"
1446            }
1447          }
1448        },
1449        "x-ms-examples": {
1450          "Get Available Providers List": {
1451            "$ref": "./examples/NetworkWatcherAvailableProvidersListGet.json"
1452          }
1453        },
1454        "x-ms-long-running-operation": true,
1455        "x-ms-long-running-operation-options": {
1456          "final-state-via": "location"
1457        }
1458      }
1459    },
1460    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkWatchers/{networkWatcherName}/networkConfigurationDiagnostic": {
1461      "post": {
1462        "tags": [
1463          "NetworkWatchers"
1464        ],
1465        "operationId": "NetworkWatchers_GetNetworkConfigurationDiagnostic",
1466        "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.",
1467        "parameters": [
1468          {
1469            "name": "resourceGroupName",
1470            "in": "path",
1471            "required": true,
1472            "type": "string",
1473            "description": "The name of the resource group."
1474          },
1475          {
1476            "name": "networkWatcherName",
1477            "in": "path",
1478            "required": true,
1479            "type": "string",
1480            "description": "The name of the network watcher."
1481          },
1482          {
1483            "name": "parameters",
1484            "in": "body",
1485            "required": true,
1486            "schema": {
1487              "$ref": "#/definitions/NetworkConfigurationDiagnosticParameters"
1488            },
1489            "description": "Parameters to get network configuration diagnostic."
1490          },
1491          {
1492            "$ref": "./network.json#/parameters/ApiVersionParameter"
1493          },
1494          {
1495            "$ref": "./network.json#/parameters/SubscriptionIdParameter"
1496          }
1497        ],
1498        "responses": {
1499          "200": {
1500            "description": "Request successful. The operation returns the result of network configuration diagnostic.",
1501            "schema": {
1502              "$ref": "#/definitions/NetworkConfigurationDiagnosticResponse"
1503            }
1504          },
1505          "202": {
1506            "description": "Accepted and the operation will complete asynchronously.",
1507            "schema": {
1508              "$ref": "#/definitions/NetworkConfigurationDiagnosticResponse"
1509            }
1510          },
1511          "default": {
1512            "description": "Error response describing why the operation failed.",
1513            "schema": {
1514              "$ref": "#/definitions/ErrorResponse"
1515            }
1516          }
1517        },
1518        "x-ms-examples": {
1519          "Network configuration diagnostic": {
1520            "$ref": "./examples/NetworkWatcherNetworkConfigurationDiagnostic.json"
1521          }
1522        },
1523        "x-ms-long-running-operation": true,
1524        "x-ms-long-running-operation-options": {
1525          "final-state-via": "location"
1526        }
1527      }
1528    },
1529    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkWatchers/{networkWatcherName}/connectionMonitors/{connectionMonitorName}": {
1530      "put": {
1531        "tags": [
1532          "ConnectionMonitors"
1533        ],
1534        "operationId": "ConnectionMonitors_CreateOrUpdate",
1535        "description": "Create or update a connection monitor.",
1536        "parameters": [
1537          {
1538            "name": "resourceGroupName",
1539            "in": "path",
1540            "required": true,
1541            "type": "string",
1542            "description": "The name of the resource group containing Network Watcher."
1543          },
1544          {
1545            "name": "networkWatcherName",
1546            "in": "path",
1547            "required": true,
1548            "type": "string",
1549            "description": "The name of the Network Watcher resource."
1550          },
1551          {
1552            "name": "connectionMonitorName",
1553            "in": "path",
1554            "required": true,
1555            "type": "string",
1556            "description": "The name of the connection monitor."
1557          },
1558          {
1559            "name": "parameters",
1560            "in": "body",
1561            "required": true,
1562            "schema": {
1563              "$ref": "#/definitions/ConnectionMonitor"
1564            },
1565            "description": "Parameters that define the operation to create a connection monitor."
1566          },
1567          {
1568            "$ref": "./network.json#/parameters/ApiVersionParameter"
1569          },
1570          {
1571            "$ref": "./network.json#/parameters/SubscriptionIdParameter"
1572          }
1573        ],
1574        "responses": {
1575          "200": {
1576            "description": "Update successful. The operation returns the resulting network watcher resource.",
1577            "schema": {
1578              "$ref": "#/definitions/ConnectionMonitorResult"
1579            }
1580          },
1581          "201": {
1582            "description": "Create successful. The operation returns the resulting network watcher resource.",
1583            "schema": {
1584              "$ref": "#/definitions/ConnectionMonitorResult"
1585            }
1586          },
1587          "default": {
1588            "description": "Error response describing why the operation failed.",
1589            "schema": {
1590              "$ref": "./networkWatcher.json#/definitions/ErrorResponse"
1591            }
1592          }
1593        },
1594        "x-ms-examples": {
1595          "Create connection monitor V1": {
1596            "$ref": "./examples/NetworkWatcherConnectionMonitorCreate.json"
1597          },
1598          "Create connection monitor V2": {
1599            "$ref": "./examples/NetworkWatcherConnectionMonitorV2Create.json"
1600          }
1601        },
1602        "x-ms-long-running-operation": true,
1603        "x-ms-long-running-operation-options": {
1604          "final-state-via": "azure-async-operation"
1605        }
1606      },
1607      "get": {
1608        "tags": [
1609          "ConnectionMonitors"
1610        ],
1611        "operationId": "ConnectionMonitors_Get",
1612        "description": "Gets a connection monitor by name.",
1613        "parameters": [
1614          {
1615            "name": "resourceGroupName",
1616            "in": "path",
1617            "required": true,
1618            "type": "string",
1619            "description": "The name of the resource group containing Network Watcher."
1620          },
1621          {
1622            "name": "networkWatcherName",
1623            "in": "path",
1624            "required": true,
1625            "type": "string",
1626            "description": "The name of the Network Watcher resource."
1627          },
1628          {
1629            "name": "connectionMonitorName",
1630            "in": "path",
1631            "required": true,
1632            "type": "string",
1633            "description": "The name of the connection monitor."
1634          },
1635          {
1636            "$ref": "./network.json#/parameters/ApiVersionParameter"
1637          },
1638          {
1639            "$ref": "./network.json#/parameters/SubscriptionIdParameter"
1640          }
1641        ],
1642        "responses": {
1643          "200": {
1644            "description": "Request successful. The operation returns a connection monitor.",
1645            "schema": {
1646              "$ref": "#/definitions/ConnectionMonitorResult"
1647            }
1648          },
1649          "default": {
1650            "description": "Error response describing why the operation failed.",
1651            "schema": {
1652              "$ref": "./networkWatcher.json#/definitions/ErrorResponse"
1653            }
1654          }
1655        },
1656        "x-ms-examples": {
1657          "Get connection monitor": {
1658            "$ref": "./examples/NetworkWatcherConnectionMonitorGet.json"
1659          }
1660        }
1661      },
1662      "delete": {
1663        "tags": [
1664          "ConnectionMonitors"
1665        ],
1666        "operationId": "ConnectionMonitors_Delete",
1667        "description": "Deletes the specified connection monitor.",
1668        "parameters": [
1669          {
1670            "name": "resourceGroupName",
1671            "in": "path",
1672            "required": true,
1673            "type": "string",
1674            "description": "The name of the resource group containing Network Watcher."
1675          },
1676          {
1677            "name": "networkWatcherName",
1678            "in": "path",
1679            "required": true,
1680            "type": "string",
1681            "description": "The name of the Network Watcher resource."
1682          },
1683          {
1684            "name": "connectionMonitorName",
1685            "in": "path",
1686            "required": true,
1687            "type": "string",
1688            "description": "The name of the connection monitor."
1689          },
1690          {
1691            "$ref": "./network.json#/parameters/ApiVersionParameter"
1692          },
1693          {
1694            "$ref": "./network.json#/parameters/SubscriptionIdParameter"
1695          }
1696        ],
1697        "responses": {
1698          "204": {
1699            "description": "Delete successful."
1700          },
1701          "202": {
1702            "description": "Accepted. The operation will complete asynchronously."
1703          },
1704          "default": {
1705            "description": "Error response describing why the operation failed.",
1706            "schema": {
1707              "$ref": "./networkWatcher.json#/definitions/ErrorResponse"
1708            }
1709          }
1710        },
1711        "x-ms-examples": {
1712          "Delete connection monitor": {
1713            "$ref": "./examples/NetworkWatcherConnectionMonitorDelete.json"
1714          }
1715        },
1716        "x-ms-long-running-operation": true,
1717        "x-ms-long-running-operation-options": {
1718          "final-state-via": "location"
1719        }
1720      },
1721      "patch": {
1722        "tags": [
1723          "ConnectionMonitors"
1724        ],
1725        "operationId": "ConnectionMonitors_UpdateTags",
1726        "description": "Update tags of the specified connection monitor.",
1727        "parameters": [
1728          {
1729            "name": "resourceGroupName",
1730            "in": "path",
1731            "required": true,
1732            "type": "string",
1733            "description": "The name of the resource group."
1734          },
1735          {
1736            "name": "networkWatcherName",
1737            "in": "path",
1738            "required": true,
1739            "type": "string",
1740            "description": "The name of the network watcher."
1741          },
1742          {
1743            "name": "connectionMonitorName",
1744            "in": "path",
1745            "required": true,
1746            "type": "string",
1747            "description": "The name of the connection monitor."
1748          },
1749          {
1750            "name": "parameters",
1751            "in": "body",
1752            "required": true,
1753            "schema": {
1754              "$ref": "./network.json#/definitions/TagsObject"
1755            },
1756            "description": "Parameters supplied to update connection monitor tags."
1757          },
1758          {
1759            "$ref": "./network.json#/parameters/ApiVersionParameter"
1760          },
1761          {
1762            "$ref": "./network.json#/parameters/SubscriptionIdParameter"
1763          }
1764        ],
1765        "responses": {
1766          "200": {
1767            "description": "Request successful. The operation returns updated connection monitor.",
1768            "schema": {
1769              "$ref": "#/definitions/ConnectionMonitorResult"
1770            }
1771          },
1772          "default": {
1773            "description": "Error response describing why the operation failed.",
1774            "schema": {
1775              "$ref": "./networkWatcher.json#/definitions/ErrorResponse"
1776            }
1777          }
1778        },
1779        "x-ms-examples": {
1780          "Update connection monitor tags": {
1781            "$ref": "./examples/NetworkWatcherConnectionMonitorUpdateTags.json"
1782          }
1783        }
1784      }
1785    },
1786    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkWatchers/{networkWatcherName}/connectionMonitors/{connectionMonitorName}/stop": {
1787      "post": {
1788        "tags": [
1789          "ConnectionMonitors"
1790        ],
1791        "operationId": "ConnectionMonitors_Stop",
1792        "description": "Stops the specified connection monitor.",
1793        "parameters": [
1794          {
1795            "name": "resourceGroupName",
1796            "in": "path",
1797            "required": true,
1798            "type": "string",
1799            "description": "The name of the resource group containing Network Watcher."
1800          },
1801          {
1802            "name": "networkWatcherName",
1803            "in": "path",
1804            "required": true,
1805            "type": "string",
1806            "description": "The name of the Network Watcher resource."
1807          },
1808          {
1809            "name": "connectionMonitorName",
1810            "in": "path",
1811            "required": true,
1812            "type": "string",
1813            "description": "The name of the connection monitor."
1814          },
1815          {
1816            "$ref": "./network.json#/parameters/ApiVersionParameter"
1817          },
1818          {
1819            "$ref": "./network.json#/parameters/SubscriptionIdParameter"
1820          }
1821        ],
1822        "responses": {
1823          "200": {
1824            "description": "Request successful. The operation stops the connection monitor."
1825          },
1826          "202": {
1827            "description": "Accepted. The operation will complete asynchronously."
1828          },
1829          "default": {
1830            "description": "Error response describing why the operation failed.",
1831            "schema": {
1832              "$ref": "./networkWatcher.json#/definitions/ErrorResponse"
1833            }
1834          }
1835        },
1836        "x-ms-examples": {
1837          "Stop connection monitor": {
1838            "$ref": "./examples/NetworkWatcherConnectionMonitorStop.json"
1839          }
1840        },
1841        "x-ms-long-running-operation": true,
1842        "x-ms-long-running-operation-options": {
1843          "final-state-via": "location"
1844        }
1845      }
1846    },
1847    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkWatchers/{networkWatcherName}/connectionMonitors/{connectionMonitorName}/start": {
1848      "post": {
1849        "tags": [
1850          "ConnectionMonitors"
1851        ],
1852        "operationId": "ConnectionMonitors_Start",
1853        "description": "Starts the specified connection monitor.",
1854        "parameters": [
1855          {
1856            "name": "resourceGroupName",
1857            "in": "path",
1858            "required": true,
1859            "type": "string",
1860            "description": "The name of the resource group containing Network Watcher."
1861          },
1862          {
1863            "name": "networkWatcherName",
1864            "in": "path",
1865            "required": true,
1866            "type": "string",
1867            "description": "The name of the Network Watcher resource."
1868          },
1869          {
1870            "name": "connectionMonitorName",
1871            "in": "path",
1872            "required": true,
1873            "type": "string",
1874            "description": "The name of the connection monitor."
1875          },
1876          {
1877            "$ref": "./network.json#/parameters/ApiVersionParameter"
1878          },
1879          {
1880            "$ref": "./network.json#/parameters/SubscriptionIdParameter"
1881          }
1882        ],
1883        "responses": {
1884          "200": {
1885            "description": "Request successful. The operation starts the connection monitor."
1886          },
1887          "202": {
1888            "description": "Accepted. The operation will complete asynchronously."
1889          },
1890          "default": {
1891            "description": "Error response describing why the operation failed.",
1892            "schema": {
1893              "$ref": "./networkWatcher.json#/definitions/ErrorResponse"
1894            }
1895          }
1896        },
1897        "x-ms-examples": {
1898          "Start connection monitor": {
1899            "$ref": "./examples/NetworkWatcherConnectionMonitorStart.json"
1900          }
1901        },
1902        "x-ms-long-running-operation": true,
1903        "x-ms-long-running-operation-options": {
1904          "final-state-via": "location"
1905        }
1906      }
1907    },
1908    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkWatchers/{networkWatcherName}/connectionMonitors/{connectionMonitorName}/query": {
1909      "post": {
1910        "tags": [
1911          "ConnectionMonitors"
1912        ],
1913        "operationId": "ConnectionMonitors_Query",
1914        "description": "Query a snapshot of the most recent connection states.",
1915        "parameters": [
1916          {
1917            "name": "resourceGroupName",
1918            "in": "path",
1919            "required": true,
1920            "type": "string",
1921            "description": "The name of the resource group containing Network Watcher."
1922          },
1923          {
1924            "name": "networkWatcherName",
1925            "in": "path",
1926            "required": true,
1927            "type": "string",
1928            "description": "The name of the Network Watcher resource."
1929          },
1930          {
1931            "name": "connectionMonitorName",
1932            "in": "path",
1933            "required": true,
1934            "type": "string",
1935            "description": "The name given to the connection monitor."
1936          },
1937          {
1938            "$ref": "./network.json#/parameters/ApiVersionParameter"
1939          },
1940          {
1941            "$ref": "./network.json#/parameters/SubscriptionIdParameter"
1942          }
1943        ],
1944        "responses": {
1945          "200": {
1946            "description": "Successful query of connection states.",
1947            "schema": {
1948              "$ref": "#/definitions/ConnectionMonitorQueryResult"
1949            }
1950          },
1951          "202": {
1952            "description": "Accepted query of connection states.",
1953            "schema": {
1954              "$ref": "#/definitions/ConnectionMonitorQueryResult"
1955            }
1956          },
1957          "default": {
1958            "description": "Error response describing why the operation failed.",
1959            "schema": {
1960              "$ref": "./networkWatcher.json#/definitions/ErrorResponse"
1961            }
1962          }
1963        },
1964        "x-ms-examples": {
1965          "Query connection monitor": {
1966            "$ref": "./examples/NetworkWatcherConnectionMonitorQuery.json"
1967          }
1968        },
1969        "x-ms-long-running-operation": true,
1970        "x-ms-long-running-operation-options": {
1971          "final-state-via": "location"
1972        }
1973      }
1974    },
1975    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkWatchers/{networkWatcherName}/connectionMonitors": {
1976      "get": {
1977        "tags": [
1978          "ConnectionMonitors"
1979        ],
1980        "operationId": "ConnectionMonitors_List",
1981        "description": "Lists all connection monitors for the specified Network Watcher.",
1982        "parameters": [
1983          {
1984            "name": "resourceGroupName",
1985            "in": "path",
1986            "required": true,
1987            "type": "string",
1988            "description": "The name of the resource group containing Network Watcher."
1989          },
1990          {
1991            "name": "networkWatcherName",
1992            "in": "path",
1993            "required": true,
1994            "type": "string",
1995            "description": "The name of the Network Watcher resource."
1996          },
1997          {
1998            "$ref": "./network.json#/parameters/ApiVersionParameter"
1999          },
2000          {
2001            "$ref": "./network.json#/parameters/SubscriptionIdParameter"
2002          }
2003        ],
2004        "responses": {
2005          "200": {
2006            "description": "Successful connection monitor enumeration request.",
2007            "schema": {
2008              "$ref": "#/definitions/ConnectionMonitorListResult"
2009            }
2010          },
2011          "default": {
2012            "description": "Error response describing why the operation failed.",
2013            "schema": {
2014              "$ref": "./networkWatcher.json#/definitions/ErrorResponse"
2015            }
2016          }
2017        },
2018        "x-ms-pageable": {
2019          "nextLinkName": null
2020        },
2021        "x-ms-examples": {
2022          "List connection monitors": {
2023            "$ref": "./examples/NetworkWatcherConnectionMonitorList.json"
2024          }
2025        }
2026      }
2027    },
2028    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkWatchers/{networkWatcherName}/flowLogs/{flowLogName}": {
2029      "put": {
2030        "tags": [
2031          "FlowLogs"
2032        ],
2033        "operationId": "FlowLogs_CreateOrUpdate",
2034        "description": "Create or update a flow log for the specified network security group.",
2035        "parameters": [
2036          {
2037            "name": "resourceGroupName",
2038            "in": "path",
2039            "required": true,
2040            "type": "string",
2041            "description": "The name of the resource group."
2042          },
2043          {
2044            "name": "networkWatcherName",
2045            "in": "path",
2046            "required": true,
2047            "type": "string",
2048            "description": "The name of the network watcher."
2049          },
2050          {
2051            "name": "flowLogName",
2052            "in": "path",
2053            "required": true,
2054            "type": "string",
2055            "description": "The name of the flow log."
2056          },
2057          {
2058            "name": "parameters",
2059            "in": "body",
2060            "required": true,
2061            "schema": {
2062              "$ref": "#/definitions/FlowLog"
2063            },
2064            "description": "Parameters that define the create or update flow log resource."
2065          },
2066          {
2067            "$ref": "./network.json#/parameters/ApiVersionParameter"
2068          },
2069          {
2070            "$ref": "./network.json#/parameters/SubscriptionIdParameter"
2071          }
2072        ],
2073        "responses": {
2074          "201": {
2075            "description": "Request successful. The operation returns the resulting flow log resource.",
2076            "schema": {
2077              "$ref": "#/definitions/FlowLog"
2078            }
2079          },
2080          "200": {
2081            "description": "Update successful. The operation returns the resulting flow log resource.",
2082            "schema": {
2083              "$ref": "#/definitions/FlowLog"
2084            }
2085          },
2086          "default": {
2087            "description": "Error response describing why the operation failed.",
2088            "schema": {
2089              "$ref": "#/definitions/ErrorResponse"
2090            }
2091          }
2092        },
2093        "x-ms-examples": {
2094          "Create or update flow log": {
2095            "$ref": "./examples/NetworkWatcherFlowLogCreate.json"
2096          }
2097        },
2098        "x-ms-long-running-operation": true,
2099        "x-ms-long-running-operation-options": {
2100          "final-state-via": "azure-async-operation"
2101        }
2102      },
2103      "get": {
2104        "tags": [
2105          "FlowLogs"
2106        ],
2107        "operationId": "FlowLogs_Get",
2108        "description": "Gets a flow log resource by name.",
2109        "parameters": [
2110          {
2111            "name": "resourceGroupName",
2112            "in": "path",
2113            "required": true,
2114            "type": "string",
2115            "description": "The name of the resource group."
2116          },
2117          {
2118            "name": "networkWatcherName",
2119            "in": "path",
2120            "required": true,
2121            "type": "string",
2122            "description": "The name of the network watcher."
2123          },
2124          {
2125            "name": "flowLogName",
2126            "in": "path",
2127            "required": true,
2128            "type": "string",
2129            "description": "The name of the flow log resource."
2130          },
2131          {
2132            "$ref": "./network.json#/parameters/ApiVersionParameter"
2133          },
2134          {
2135            "$ref": "./network.json#/parameters/SubscriptionIdParameter"
2136          }
2137        ],
2138        "responses": {
2139          "200": {
2140            "description": "Request successful. The operation returns a flow log resource.",
2141            "schema": {
2142              "$ref": "#/definitions/FlowLog"
2143            }
2144          },
2145          "default": {
2146            "description": "Error response describing why the operation failed.",
2147            "schema": {
2148              "$ref": "#/definitions/ErrorResponse"
2149            }
2150          }
2151        },
2152        "x-ms-examples": {
2153          "Get flow log": {
2154            "$ref": "./examples/NetworkWatcherFlowLogGet.json"
2155          }
2156        }
2157      },
2158      "delete": {
2159        "tags": [
2160          "FlowLogs"
2161        ],
2162        "operationId": "FlowLogs_Delete",
2163        "description": "Deletes the specified flow log resource.",
2164        "parameters": [
2165          {
2166            "name": "resourceGroupName",
2167            "in": "path",
2168            "required": true,
2169            "type": "string",
2170            "description": "The name of the resource group."
2171          },
2172          {
2173            "name": "networkWatcherName",
2174            "in": "path",
2175            "required": true,
2176            "type": "string",
2177            "description": "The name of the network watcher."
2178          },
2179          {
2180            "name": "flowLogName",
2181            "in": "path",
2182            "required": true,
2183            "type": "string",
2184            "description": "The name of the flow log resource."
2185          },
2186          {
2187            "$ref": "./network.json#/parameters/ApiVersionParameter"
2188          },
2189          {
2190            "$ref": "./network.json#/parameters/SubscriptionIdParameter"
2191          }
2192        ],
2193        "responses": {
2194          "204": {
2195            "description": "Delete successful."
2196          },
2197          "202": {
2198            "description": "Accepted and the operation will complete asynchronously."
2199          },
2200          "default": {
2201            "description": "Error response describing why the operation failed.",
2202            "schema": {
2203              "$ref": "#/definitions/ErrorResponse"
2204            }
2205          }
2206        },
2207        "x-ms-examples": {
2208          "Delete flow log": {
2209            "$ref": "./examples/NetworkWatcherFlowLogDelete.json"
2210          }
2211        },
2212        "x-ms-long-running-operation": true,
2213        "x-ms-long-running-operation-options": {
2214          "final-state-via": "location"
2215        }
2216      }
2217    },
2218    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/networkWatchers/{networkWatcherName}/flowLogs": {
2219      "get": {
2220        "tags": [
2221          "FlowLogs"
2222        ],
2223        "operationId": "FlowLogs_List",
2224        "description": "Lists all flow log resources for the specified Network Watcher.",
2225        "parameters": [
2226          {
2227            "name": "resourceGroupName",
2228            "in": "path",
2229            "required": true,
2230            "type": "string",
2231            "description": "The name of the resource group containing Network Watcher."
2232          },
2233          {
2234            "name": "networkWatcherName",
2235            "in": "path",
2236            "required": true,
2237            "type": "string",
2238            "description": "The name of the Network Watcher resource."
2239          },
2240          {
2241            "$ref": "./network.json#/parameters/ApiVersionParameter"
2242          },
2243          {
2244            "$ref": "./network.json#/parameters/SubscriptionIdParameter"
2245          }
2246        ],
2247        "responses": {
2248          "200": {
2249            "description": "Successful flow log enumeration request.",
2250            "schema": {
2251              "$ref": "#/definitions/FlowLogListResult"
2252            }
2253          },
2254          "default": {
2255            "description": "Error response describing why the operation failed.",
2256            "schema": {
2257              "$ref": "./networkWatcher.json#/definitions/ErrorResponse"
2258            }
2259          }
2260        },
2261        "x-ms-pageable": {
2262          "nextLinkName": "nextLink"
2263        },
2264        "x-ms-examples": {
2265          "List connection monitors": {
2266            "$ref": "./examples/NetworkWatcherFlowLogList.json"
2267          }
2268        }
2269      }
2270    }
2271  },
2272  "definitions": {
2273    "ErrorResponse": {
2274      "description": "The error object.",
2275      "properties": {
2276        "error": {
2277          "title": "Error",
2278          "$ref": "./network.json#/definitions/ErrorDetails",
2279          "description": "The error details object."
2280        }
2281      }
2282    },
2283    "NetworkWatcher": {
2284      "properties": {
2285        "etag": {
2286          "readOnly": true,
2287          "type": "string",
2288          "description": "A unique read-only string that changes whenever the resource is updated."
2289        },
2290        "properties": {
2291          "x-ms-client-flatten": true,
2292          "$ref": "#/definitions/NetworkWatcherPropertiesFormat",
2293          "description": "Properties of the network watcher."
2294        }
2295      },
2296      "allOf": [
2297        {
2298          "$ref": "./network.json#/definitions/Resource"
2299        }
2300      ],
2301      "description": "Network watcher in a resource group."
2302    },
2303    "NetworkWatcherPropertiesFormat": {
2304      "properties": {
2305        "provisioningState": {
2306          "readOnly": true,
2307          "$ref": "./network.json#/definitions/ProvisioningState",
2308          "description": "The provisioning state of the network watcher resource."
2309        }
2310      },
2311      "description": "The network watcher properties."
2312    },
2313    "NetworkWatcherListResult": {
2314      "properties": {
2315        "value": {
2316          "type": "array",
2317          "items": {
2318            "$ref": "#/definitions/NetworkWatcher"
2319          },
2320          "description": "List of network watcher resources."
2321        }
2322      },
2323      "description": "Response for ListNetworkWatchers API service call."
2324    },
2325    "TopologyParameters": {
2326      "properties": {
2327        "targetResourceGroupName": {
2328          "type": "string",
2329          "description": "The name of the target resource group to perform topology on."
2330        },
2331        "targetVirtualNetwork": {
2332          "$ref": "./network.json#/definitions/SubResource",
2333          "description": "The reference to the Virtual Network resource."
2334        },
2335        "targetSubnet": {
2336          "$ref": "./network.json#/definitions/SubResource",
2337          "description": "The reference to the Subnet resource."
2338        }
2339      },
2340      "description": "Parameters that define the representation of topology."
2341    },
2342    "Topology": {
2343      "properties": {
2344        "id": {
2345          "readOnly": true,
2346          "type": "string",
2347          "description": "GUID representing the operation id."
2348        },
2349        "createdDateTime": {
2350          "readOnly": true,
2351          "type": "string",
2352          "format": "date-time",
2353          "description": "The datetime when the topology was initially created for the resource group."
2354        },
2355        "lastModified": {
2356          "readOnly": true,
2357          "type": "string",
2358          "format": "date-time",
2359          "description": "The datetime when the topology was last modified."
2360        },
2361        "resources": {
2362          "type": "array",
2363          "items": {
2364            "$ref": "#/definitions/TopologyResource"
2365          },
2366          "description": "A list of topology resources."
2367        }
2368      },
2369      "description": "Topology of the specified resource group."
2370    },
2371    "TopologyResource": {
2372      "properties": {
2373        "name": {
2374          "type": "string",
2375          "description": "Name of the resource."
2376        },
2377        "id": {
2378          "type": "string",
2379          "description": "ID of the resource."
2380        },
2381        "location": {
2382          "type": "string",
2383          "description": "Resource location."
2384        },
2385        "associations": {
2386          "type": "array",
2387          "description": "Holds the associations the resource has with other resources in the resource group.",
2388          "items": {
2389            "$ref": "#/definitions/TopologyAssociation"
2390          }
2391        }
2392      },
2393      "description": "The network resource topology information for the given resource group."
2394    },
2395    "TopologyAssociation": {
2396      "properties": {
2397        "name": {
2398          "type": "string",
2399          "description": "The name of the resource that is associated with the parent resource."
2400        },
2401        "resourceId": {
2402          "type": "string",
2403          "description": "The ID of the resource that is associated with the parent resource."
2404        },
2405        "associationType": {
2406          "type": "string",
2407          "enum": [
2408            "Associated",
2409            "Contains"
2410          ],
2411          "x-ms-enum": {
2412            "name": "AssociationType",
2413            "modelAsString": true
2414          },
2415          "description": "The association type of the child resource to the parent resource."
2416        }
2417      },
2418      "description": "Resources that have an association with the parent resource."
2419    },
2420    "VerificationIPFlowParameters": {
2421      "description": "Parameters that define the IP flow to be verified.",
2422      "required": [
2423        "targetResourceId",
2424        "direction",
2425        "protocol",
2426        "localPort",
2427        "remotePort",
2428        "localIPAddress",
2429        "remoteIPAddress"
2430      ],
2431      "properties": {
2432        "targetResourceId": {
2433          "type": "string",
2434          "description": "The ID of the target resource to perform next-hop on."
2435        },
2436        "direction": {
2437          "$ref": "#/definitions/Direction",
2438          "description": "The direction of the packet represented as a 5-tuple."
2439        },
2440        "protocol": {
2441          "type": "string",
2442          "enum": [
2443            "TCP",
2444            "UDP"
2445          ],
2446          "x-ms-enum": {
2447            "name": "IpFlowProtocol",
2448            "modelAsString": true
2449          },
2450          "description": "Protocol to be verified on."
2451        },
2452        "localPort": {
2453          "type": "string",
2454          "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."
2455        },
2456        "remotePort": {
2457          "type": "string",
2458          "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."
2459        },
2460        "localIPAddress": {
2461          "type": "string",
2462          "description": "The local IP address. Acceptable values are valid IPv4 addresses."
2463        },
2464        "remoteIPAddress": {
2465          "type": "string",
2466          "description": "The remote IP address. Acceptable values are valid IPv4 addresses."
2467        },
2468        "targetNicResourceId": {
2469          "type": "string",
2470          "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)."
2471        }
2472      }
2473    },
2474    "VerificationIPFlowResult": {
2475      "description": "Results of IP flow verification on the target resource.",
2476      "properties": {
2477        "access": {
2478          "$ref": "./network.json#/definitions/Access",
2479          "description": "Indicates whether the traffic is allowed or denied."
2480        },
2481        "ruleName": {
2482          "type": "string",
2483          "description": "Name of the rule. If input is not matched against any security rule, it is not displayed."
2484        }
2485      }
2486    },
2487    "NextHopParameters": {
2488      "description": "Parameters that define the source and destination endpoint.",
2489      "required": [
2490        "targetResourceId",
2491        "sourceIPAddress",
2492        "destinationIPAddress"
2493      ],
2494      "properties": {
2495        "targetResourceId": {
2496          "type": "string",
2497          "description": "The resource identifier of the target resource against which the action is to be performed."
2498        },
2499        "sourceIPAddress": {
2500          "type": "string",
2501          "description": "The source IP address."
2502        },
2503        "destinationIPAddress": {
2504          "type": "string",
2505          "description": "The destination IP address."
2506        },
2507        "targetNicResourceId": {
2508          "type": "string",
2509          "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)."
2510        }
2511      }
2512    },
2513    "NextHopResult": {
2514      "description": "The information about next hop from the specified VM.",
2515      "properties": {
2516        "nextHopType": {
2517          "type": "string",
2518          "enum": [
2519            "Internet",
2520            "VirtualAppliance",
2521            "VirtualNetworkGateway",
2522            "VnetLocal",
2523            "HyperNetGateway",
2524            "None"
2525          ],
2526          "x-ms-enum": {
2527            "name": "NextHopType",
2528            "modelAsString": true
2529          },
2530          "description": "Next hop type."
2531        },
2532        "nextHopIpAddress": {
2533          "type": "string",
2534          "description": "Next hop IP Address."
2535        },
2536        "routeTableId": {
2537          "type": "string",
2538          "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'."
2539        }
2540      }
2541    },
2542    "SecurityGroupViewParameters": {
2543      "description": "Parameters that define the VM to check security groups for.",
2544      "required": [
2545        "targetResourceId"
2546      ],
2547      "properties": {
2548        "targetResourceId": {
2549          "type": "string",
2550          "description": "ID of the target VM."
2551        }
2552      }
2553    },
2554    "SecurityGroupViewResult": {
2555      "description": "The information about security rules applied to the specified VM.",
2556      "properties": {
2557        "networkInterfaces": {
2558          "type": "array",
2559          "description": "List of network interfaces on the specified VM.",
2560          "items": {
2561            "$ref": "#/definitions/SecurityGroupNetworkInterface"
2562          }
2563        }
2564      }
2565    },
2566    "SecurityGroupNetworkInterface": {
2567      "description": "Network interface and all its associated security rules.",
2568      "properties": {
2569        "id": {
2570          "type": "string",
2571          "description": "ID of the network interface."
2572        },
2573        "securityRuleAssociations": {
2574          "$ref": "#/definitions/SecurityRuleAssociations",
2575          "description": "All security rules associated with the network interface."
2576        }
2577      }
2578    },
2579    "SecurityRuleAssociations": {
2580      "description": "All security rules associated with the network interface.",
2581      "properties": {
2582        "networkInterfaceAssociation": {
2583          "$ref": "#/definitions/NetworkInterfaceAssociation",
2584          "description": "Network interface and it's custom security rules."
2585        },
2586        "subnetAssociation": {
2587          "$ref": "#/definitions/SubnetAssociation",
2588          "description": "Subnet and it's custom security rules."
2589        },
2590        "defaultSecurityRules": {
2591          "type": "array",
2592          "items": {
2593            "$ref": "./networkSecurityGroup.json#/definitions/SecurityRule"
2594          },
2595          "description": "Collection of default security rules of the network security group."
2596        },
2597        "effectiveSecurityRules": {
2598          "type": "array",
2599          "items": {
2600            "$ref": "./networkInterface.json#/definitions/EffectiveNetworkSecurityRule"
2601          },
2602          "description": "Collection of effective security rules."
2603        }
2604      }
2605    },
2606    "NetworkInterfaceAssociation": {
2607      "description": "Network interface and its custom security rules.",
2608      "properties": {
2609        "id": {
2610          "readOnly": true,
2611          "type": "string",
2612          "description": "Network interface ID."
2613        },
2614        "securityRules": {
2615          "type": "array",
2616          "description": "Collection of custom security rules.",
2617          "items": {
2618            "$ref": "./networkSecurityGroup.json#/definitions/SecurityRule"
2619          }
2620        }
2621      }
2622    },
2623    "SubnetAssociation": {
2624      "description": "Subnet and it's custom security rules.",
2625      "properties": {
2626        "id": {
2627          "readOnly": true,
2628          "type": "string",
2629          "description": "Subnet ID."
2630        },
2631        "securityRules": {
2632          "type": "array",
2633          "description": "Collection of custom security rules.",
2634          "items": {
2635            "$ref": "./networkSecurityGroup.json#/definitions/SecurityRule"
2636          }
2637        }
2638      }
2639    },
2640    "PacketCapture": {
2641      "properties": {
2642        "properties": {
2643          "x-ms-client-flatten": true,
2644          "$ref": "#/definitions/PacketCaptureParameters",
2645          "description": "Properties of the packet capture."
2646        }
2647      },
2648      "required": [
2649        "properties"
2650      ],
2651      "description": "Parameters that define the create packet capture operation."
2652    },
2653    "PacketCaptureParameters": {
2654      "properties": {
2655        "target": {
2656          "type": "string",
2657          "description": "The ID of the targeted resource, only VM is currently supported."
2658        },
2659        "bytesToCapturePerPacket": {
2660          "type": "integer",
2661          "default": 0,
2662          "description": "Number of bytes captured per packet, the remaining bytes are truncated."
2663        },
2664        "totalBytesPerSession": {
2665          "type": "integer",
2666          "default": 1073741824,
2667          "description": "Maximum size of the capture output."
2668        },
2669        "timeLimitInSeconds": {
2670          "type": "integer",
2671          "default": 18000,
2672          "description": "Maximum duration of the capture session in seconds."
2673        },
2674        "storageLocation": {
2675          "$ref": "#/definitions/PacketCaptureStorageLocation",
2676          "description": "The storage location for a packet capture session."
2677        },
2678        "filters": {
2679          "type": "array",
2680          "items": {
2681            "$ref": "#/definitions/PacketCaptureFilter"
2682          },
2683          "description": "A list of packet capture filters."
2684        }
2685      },
2686      "required": [
2687        "target",
2688        "storageLocation"
2689      ],
2690      "description": "Parameters that define the create packet capture operation."
2691    },
2692    "PacketCaptureStorageLocation": {
2693      "properties": {
2694        "storageId": {
2695          "type": "string",
2696          "description": "The ID of the storage account to save the packet capture session. Required if no local file path is provided."
2697        },
2698        "storagePath": {
2699          "type": "string",
2700          "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."
2701        },
2702        "filePath": {
2703          "type": "string",
2704          "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."
2705        }
2706      },
2707      "description": "The storage location for a packet capture session."
2708    },
2709    "PacketCaptureFilter": {
2710      "properties": {
2711        "protocol": {
2712          "type": "string",
2713          "enum": [
2714            "TCP",
2715            "UDP",
2716            "Any"
2717          ],
2718          "x-ms-enum": {
2719            "name": "PcProtocol",
2720            "modelAsString": true
2721          },
2722          "default": "Any",
2723          "description": "Protocol to be filtered on."
2724        },
2725        "localIPAddress": {
2726          "type": "string",
2727          "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."
2728        },
2729        "remoteIPAddress": {
2730          "type": "string",
2731          "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."
2732        },
2733        "localPort": {
2734          "type": "string",
2735          "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."
2736        },
2737        "remotePort": {
2738          "type": "string",
2739          "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."
2740        }
2741      },
2742      "description": "Filter that is applied to packet capture request. Multiple filters can be applied."
2743    },
2744    "PacketCaptureListResult": {
2745      "properties": {
2746        "value": {
2747          "type": "array",
2748          "items": {
2749            "$ref": "#/definitions/PacketCaptureResult"
2750          },
2751          "description": "Information about packet capture sessions."
2752        }
2753      },
2754      "description": "List of packet capture sessions."
2755    },
2756    "PacketCaptureResult": {
2757      "properties": {
2758        "name": {
2759          "readOnly": true,
2760          "type": "string",
2761          "description": "Name of the packet capture session."
2762        },
2763        "id": {
2764          "readOnly": true,
2765          "type": "string",
2766          "description": "ID of the packet capture operation."
2767        },
2768        "etag": {
2769          "readOnly": true,
2770          "type": "string",
2771          "description": "A unique read-only string that changes whenever the resource is updated."
2772        },
2773        "properties": {
2774          "x-ms-client-flatten": true,
2775          "$ref": "#/definitions/PacketCaptureResultProperties",
2776          "description": "Properties of the packet capture result."
2777        }
2778      },
2779      "description": "Information about packet capture session."
2780    },
2781    "PacketCaptureResultProperties": {
2782      "properties": {
2783        "provisioningState": {
2784          "readOnly": true,
2785          "$ref": "./network.json#/definitions/ProvisioningState",
2786          "description": "The provisioning state of the packet capture session."
2787        }
2788      },
2789      "allOf": [
2790        {
2791          "$ref": "#/definitions/PacketCaptureParameters"
2792        }
2793      ],
2794      "description": "The properties of a packet capture session."
2795    },
2796    "PacketCaptureQueryStatusResult": {
2797      "properties": {
2798        "name": {
2799          "type": "string",
2800          "description": "The name of the packet capture resource."
2801        },
2802        "id": {
2803          "type": "string",
2804          "description": "The ID of the packet capture resource."
2805        },
2806        "captureStartTime": {
2807          "type": "string",
2808          "format": "date-time",
2809          "description": "The start time of the packet capture session."
2810        },
2811        "packetCaptureStatus": {
2812          "type": "string",
2813          "enum": [
2814            "NotStarted",
2815            "Running",
2816            "Stopped",
2817            "Error",
2818            "Unknown"
2819          ],
2820          "x-ms-enum": {
2821            "name": "PcStatus",
2822            "modelAsString": true
2823          },
2824          "description": "The status of the packet capture session."
2825        },
2826        "stopReason": {
2827          "type": "string",
2828          "description": "The reason the current packet capture session was stopped."
2829        },
2830        "packetCaptureError": {
2831          "type": "array",
2832          "description": "List of errors of packet capture session.",
2833          "items": {
2834            "type": "string",
2835            "enum": [
2836              "InternalError",
2837              "AgentStopped",
2838              "CaptureFailed",
2839              "LocalFileFailed",
2840              "StorageFailed"
2841            ],
2842            "x-ms-enum": {
2843              "name": "PcError",
2844              "modelAsString": true
2845            }
2846          }
2847        }
2848      },
2849      "description": "Status of packet capture session."
2850    },
2851    "TroubleshootingParameters": {
2852      "description": "Parameters that define the resource to troubleshoot.",
2853      "required": [
2854        "targetResourceId",
2855        "properties"
2856      ],
2857      "properties": {
2858        "targetResourceId": {
2859          "description": "The target resource to troubleshoot.",
2860          "type": "string"
2861        },
2862        "properties": {
2863          "x-ms-client-flatten": true,
2864          "$ref": "#/definitions/TroubleshootingProperties",
2865          "description": "Properties of the troubleshooting resource."
2866        }
2867      }
2868    },
2869    "QueryTroubleshootingParameters": {
2870      "description": "Parameters that define the resource to query the troubleshooting result.",
2871      "required": [
2872        "targetResourceId"
2873      ],
2874      "properties": {
2875        "targetResourceId": {
2876          "description": "The target resource ID to query the troubleshooting result.",
2877          "type": "string"
2878        }
2879      }
2880    },
2881    "TroubleshootingProperties": {
2882      "description": "Storage location provided for troubleshoot.",
2883      "required": [
2884        "storageId",
2885        "storagePath"
2886      ],
2887      "properties": {
2888        "storageId": {
2889          "description": "The ID for the storage account to save the troubleshoot result.",
2890          "type": "string"
2891        },
2892        "storagePath": {
2893          "description": "The path to the blob to save the troubleshoot result in.",
2894          "type": "string"
2895        }
2896      }
2897    },
2898    "TroubleshootingResult": {
2899      "description": "Troubleshooting information gained from specified resource.",
2900      "properties": {
2901        "startTime": {
2902          "type": "string",
2903          "format": "date-time",
2904          "description": "The start time of the troubleshooting."
2905        },
2906        "endTime": {
2907          "type": "string",
2908          "format": "date-time",
2909          "description": "The end time of the troubleshooting."
2910        },
2911        "code": {
2912          "type": "string",
2913          "description": "The result code of the troubleshooting."
2914        },
2915        "results": {
2916          "type": "array",
2917          "description": "Information from troubleshooting.",
2918          "items": {
2919            "$ref": "#/definitions/TroubleshootingDetails"
2920          }
2921        }
2922      }
2923    },
2924    "TroubleshootingDetails": {
2925      "description": "Information gained from troubleshooting of specified resource.",
2926      "properties": {
2927        "id": {
2928          "type": "string",
2929          "description": "The id of the get troubleshoot operation."
2930        },
2931        "reasonType": {
2932          "type": "string",
2933          "description": "Reason type of failure."
2934        },
2935        "summary": {
2936          "type": "string",
2937          "description": "A summary of troubleshooting."
2938        },
2939        "detail": {
2940          "type": "string",
2941          "description": "Details on troubleshooting results."
2942        },
2943        "recommendedActions": {
2944          "type": "array",
2945          "description": "List of recommended actions.",
2946          "items": {
2947            "$ref": "#/definitions/TroubleshootingRecommendedActions"
2948          }
2949        }
2950      }
2951    },
2952    "TroubleshootingRecommendedActions": {
2953      "description": "Recommended actions based on discovered issues.",
2954      "properties": {
2955        "actionId": {
2956          "description": "ID of the recommended action.",
2957          "type": "string"
2958        },
2959        "actionText": {
2960          "description": "Description of recommended actions.",
2961          "type": "string"
2962        },
2963        "actionUri": {
2964          "description": "The uri linking to a documentation for the recommended troubleshooting actions.",
2965          "type": "string"
2966        },
2967        "actionUriText": {
2968          "description": "The information from the URI for the recommended troubleshooting actions.",
2969          "type": "string"
2970        }
2971      }
2972    },
2973    "FlowLogListResult": {
2974      "properties": {
2975        "value": {
2976          "type": "array",
2977          "items": {
2978            "$ref": "#/definitions/FlowLog"
2979          },
2980          "description": "Information about flow log resource."
2981        },
2982        "nextLink": {
2983          "readOnly": true,
2984          "type": "string",
2985          "description": "The URL to get the next set of results."
2986        }
2987      },
2988      "description": "List of flow logs."
2989    },
2990    "FlowLog": {
2991      "properties": {
2992        "properties": {
2993          "x-ms-client-flatten": true,
2994          "$ref": "#/definitions/FlowLogPropertiesFormat",
2995          "description": "Properties of the flow log."
2996        },
2997        "etag": {
2998          "readOnly": true,
2999          "type": "string",
3000          "description": "A unique read-only string that changes whenever the resource is updated."
3001        }
3002      },
3003      "allOf": [
3004        {
3005          "$ref": "./network.json#/definitions/Resource"
3006        }
3007      ],
3008      "description": "A flow log resource."
3009    },
3010    "FlowLogPropertiesFormat": {
3011      "description": "Parameters that define the configuration of flow log.",
3012      "required": [
3013        "targetResourceId",
3014        "storageId"
3015      ],
3016      "properties": {
3017        "targetResourceId": {
3018          "description": "ID of network security group to which flow log will be applied.",
3019          "type": "string"
3020        },
3021        "targetResourceGuid": {
3022          "readOnly": true,
3023          "description": "Guid of network security group to which flow log will be applied.",
3024          "type": "string"
3025        },
3026        "storageId": {
3027          "description": "ID of the storage account which is used to store the flow log.",
3028          "type": "string"
3029        },
3030        "enabled": {
3031          "description": "Flag to enable/disable flow logging.",
3032          "type": "boolean"
3033        },
3034        "retentionPolicy": {
3035          "$ref": "#/definitions/RetentionPolicyParameters",
3036          "description": "Parameters that define the retention policy for flow log."
3037        },
3038        "format": {
3039          "$ref": "#/definitions/FlowLogFormatParameters",
3040          "description": "Parameters that define the flow log format."
3041        },
3042        "flowAnalyticsConfiguration": {
3043          "$ref": "#/definitions/TrafficAnalyticsProperties",
3044          "description": "Parameters that define the configuration of traffic analytics."
3045        },
3046        "provisioningState": {
3047          "readOnly": true,
3048          "$ref": "./network.json#/definitions/ProvisioningState",
3049          "description": "The provisioning state of the flow log."
3050        }
3051      }
3052    },
3053    "FlowLogProperties": {
3054      "description": "Parameters that define the configuration of flow log.",
3055      "required": [
3056        "storageId",
3057        "enabled"
3058      ],
3059      "properties": {
3060        "storageId": {
3061          "description": "ID of the storage account which is used to store the flow log.",
3062          "type": "string"
3063        },
3064        "enabled": {
3065          "description": "Flag to enable/disable flow logging.",
3066          "type": "boolean"
3067        },
3068        "retentionPolicy": {
3069          "$ref": "#/definitions/RetentionPolicyParameters",
3070          "description": "Parameters that define the retention policy for flow log."
3071        },
3072        "format": {
3073          "$ref": "#/definitions/FlowLogFormatParameters",
3074          "description": "Parameters that define the flow log format."
3075        }
3076      }
3077    },
3078    "FlowLogStatusParameters": {
3079      "description": "Parameters that define a resource to query flow log and traffic analytics (optional) status.",
3080      "required": [
3081        "targetResourceId"
3082      ],
3083      "properties": {
3084        "targetResourceId": {
3085          "description": "The target resource where getting the flow log and traffic analytics (optional) status.",
3086          "type": "string"
3087        }
3088      }
3089    },
3090    "RetentionPolicyParameters": {
3091      "description": "Parameters that define the retention policy for flow log.",
3092      "properties": {
3093        "days": {
3094          "description": "Number of days to retain flow log records.",
3095          "type": "integer",
3096          "default": 0
3097        },
3098        "enabled": {
3099          "description": "Flag to enable/disable retention.",
3100          "type": "boolean",
3101          "default": false
3102        }
3103      }
3104    },
3105    "FlowLogFormatParameters": {
3106      "description": "Parameters that define the flow log format.",
3107      "properties": {
3108        "type": {
3109          "type": "string",
3110          "description": "The file type of flow log.",
3111          "enum": [
3112            "JSON"
3113          ],
3114          "x-ms-enum": {
3115            "name": "FlowLogFormatType",
3116            "modelAsString": true
3117          }
3118        },
3119        "version": {
3120          "description": "The version (revision) of the flow log.",
3121          "type": "integer",
3122          "default": 0
3123        }
3124      }
3125    },
3126    "FlowLogInformation": {
3127      "description": "Information on the configuration of flow log and traffic analytics (optional) .",
3128      "required": [
3129        "targetResourceId",
3130        "properties"
3131      ],
3132      "properties": {
3133        "targetResourceId": {
3134          "description": "The ID of the resource to configure for flow log and traffic analytics (optional) .",
3135          "type": "string"
3136        },
3137        "properties": {
3138          "x-ms-client-flatten": true,
3139          "$ref": "#/definitions/FlowLogProperties",
3140          "description": "Properties of the flow log."
3141        },
3142        "flowAnalyticsConfiguration": {
3143          "$ref": "#/definitions/TrafficAnalyticsProperties",
3144          "description": "Parameters that define the configuration of traffic analytics."
3145        }
3146      }
3147    },
3148    "TrafficAnalyticsProperties": {
3149      "description": "Parameters that define the configuration of traffic analytics.",
3150      "properties": {
3151        "networkWatcherFlowAnalyticsConfiguration": {
3152          "$ref": "#/definitions/TrafficAnalyticsConfigurationProperties",
3153          "description": "Parameters that define the configuration of traffic analytics."
3154        }
3155      }
3156    },
3157    "TrafficAnalyticsConfigurationProperties": {
3158      "description": "Parameters that define the configuration of traffic analytics.",
3159      "properties": {
3160        "enabled": {
3161          "description": "Flag to enable/disable traffic analytics.",
3162          "type": "boolean"
3163        },
3164        "workspaceId": {
3165          "description": "The resource guid of the attached workspace.",
3166          "type": "string"
3167        },
3168        "workspaceRegion": {
3169          "description": "The location of the attached workspace.",
3170          "type": "string"
3171        },
3172        "workspaceResourceId": {
3173          "description": "Resource Id of the attached workspace.",
3174          "type": "string"
3175        },
3176        "trafficAnalyticsInterval": {
3177          "description": "The interval in minutes which would decide how frequently TA service should do flow analytics.",
3178          "type": "integer"
3179        }
3180      }
3181    },
3182    "ConnectivityParameters": {
3183      "description": "Parameters that determine how the connectivity check will be performed.",
3184      "required": [
3185        "source",
3186        "destination"
3187      ],
3188      "properties": {
3189        "source": {
3190          "$ref": "#/definitions/ConnectivitySource",
3191          "description": "The source of the connection."
3192        },
3193        "destination": {
3194          "$ref": "#/definitions/ConnectivityDestination",
3195          "description": "The destination of connection."
3196        },
3197        "protocol": {
3198          "type": "string",
3199          "description": "Network protocol.",
3200          "enum": [
3201            "Tcp",
3202            "Http",
3203            "Https",
3204            "Icmp"
3205          ],
3206          "x-ms-enum": {
3207            "name": "Protocol",
3208            "modelAsString": true
3209          }
3210        },
3211        "protocolConfiguration": {
3212          "$ref": "#/definitions/ProtocolConfiguration",
3213          "description": "Configuration of the protocol."
3214        },
3215        "preferredIPVersion": {
3216          "$ref": "./network.json#/definitions/IPVersion",
3217          "description": "Preferred IP version of the connection."
3218        }
3219      }
3220    },
3221    "ConnectivitySource": {
3222      "description": "Parameters that define the source of the connection.",
3223      "required": [
3224        "resourceId"
3225      ],
3226      "properties": {
3227        "resourceId": {
3228          "description": "The ID of the resource from which a connectivity check will be initiated.",
3229          "type": "string"
3230        },
3231        "port": {
3232          "description": "The source port from which a connectivity check will be performed.",
3233          "type": "integer"
3234        }
3235      }
3236    },
3237    "ConnectivityDestination": {
3238      "description": "Parameters that define destination of connection.",
3239      "properties": {
3240        "resourceId": {
3241          "description": "The ID of the resource to which a connection attempt will be made.",
3242          "type": "string"
3243        },
3244        "address": {
3245          "description": "The IP address or URI the resource to which a connection attempt will be made.",
3246          "type": "string"
3247        },
3248        "port": {
3249          "description": "Port on which check connectivity will be performed.",
3250          "type": "integer"
3251        }
3252      }
3253    },
3254    "ConnectivityInformation": {
3255      "description": "Information on the connectivity status.",
3256      "properties": {
3257        "hops": {
3258          "readOnly": true,
3259          "type": "array",
3260          "description": "List of hops between the source and the destination.",
3261          "items": {
3262            "$ref": "#/definitions/ConnectivityHop"
3263          }
3264        },
3265        "connectionStatus": {
3266          "readOnly": true,
3267          "type": "string",
3268          "enum": [
3269            "Unknown",
3270            "Connected",
3271            "Disconnected",
3272            "Degraded"
3273          ],
3274          "x-ms-enum": {
3275            "name": "ConnectionStatus",
3276            "modelAsString": true
3277          },
3278          "description": "The connection status."
3279        },
3280        "avgLatencyInMs": {
3281          "description": "Average latency in milliseconds.",
3282          "readOnly": true,
3283          "type": "integer"
3284        },
3285        "minLatencyInMs": {
3286          "description": "Minimum latency in milliseconds.",
3287          "readOnly": true,
3288          "type": "integer"
3289        },
3290        "maxLatencyInMs": {
3291          "description": "Maximum latency in milliseconds.",
3292          "readOnly": true,
3293          "type": "integer"
3294        },
3295        "probesSent": {
3296          "description": "Total number of probes sent.",
3297          "readOnly": true,
3298          "type": "integer"
3299        },
3300        "probesFailed": {
3301          "description": "Number of failed probes.",
3302          "readOnly": true,
3303          "type": "integer"
3304        }
3305      }
3306    },
3307    "ConnectivityHop": {
3308      "description": "Information about a hop between the source and the destination.",
3309      "properties": {
3310        "type": {
3311          "description": "The type of the hop.",
3312          "readOnly": true,
3313          "type": "string"
3314        },
3315        "id": {
3316          "description": "The ID of the hop.",
3317          "readOnly": true,
3318          "type": "string"
3319        },
3320        "address": {
3321          "description": "The IP address of the hop.",
3322          "readOnly": true,
3323          "type": "string"
3324        },
3325        "resourceId": {
3326          "description": "The ID of the resource corresponding to this hop.",
3327          "readOnly": true,
3328          "type": "string"
3329        },
3330        "nextHopIds": {
3331          "readOnly": true,
3332          "type": "array",
3333          "description": "List of next hop identifiers.",
3334          "items": {
3335            "type": "string"
3336          }
3337        },
3338        "issues": {
3339          "readOnly": true,
3340          "type": "array",
3341          "description": "List of issues.",
3342          "items": {
3343            "$ref": "#/definitions/ConnectivityIssue"
3344          }
3345        }
3346      }
3347    },
3348    "ConnectivityIssue": {
3349      "description": "Information about an issue encountered in the process of checking for connectivity.",
3350      "properties": {
3351        "origin": {
3352          "readOnly": true,
3353          "type": "string",
3354          "enum": [
3355            "Local",
3356            "Inbound",
3357            "Outbound"
3358          ],
3359          "x-ms-enum": {
3360            "name": "Origin",
3361            "modelAsString": true
3362          },
3363          "description": "The origin of the issue."
3364        },
3365        "severity": {
3366          "readOnly": true,
3367          "type": "string",
3368          "enum": [
3369            "Error",
3370            "Warning"
3371          ],
3372          "x-ms-enum": {
3373            "name": "Severity",
3374            "modelAsString": true
3375          },
3376          "description": "The severity of the issue."
3377        },
3378        "type": {
3379          "readOnly": true,
3380          "type": "string",
3381          "enum": [
3382            "Unknown",
3383            "AgentStopped",
3384            "GuestFirewall",
3385            "DnsResolution",
3386            "SocketBind",
3387            "NetworkSecurityRule",
3388            "UserDefinedRoute",
3389            "PortThrottled",
3390            "Platform"
3391          ],
3392          "x-ms-enum": {
3393            "name": "IssueType",
3394            "modelAsString": true
3395          },
3396          "description": "The type of issue."
3397        },
3398        "context": {
3399          "readOnly": true,
3400          "type": "array",
3401          "description": "Provides additional context on the issue.",
3402          "items": {
3403            "$ref": "#/definitions/IssueContext"
3404          }
3405        }
3406      }
3407    },
3408    "IssueContext": {
3409      "description": "A key-value pair that provides additional context on the issue.",
3410      "type": "object",
3411      "additionalProperties": {
3412        "type": "string"
3413      }
3414    },
3415    "ProtocolConfiguration": {
3416      "description": "Configuration of the protocol.",
3417      "properties": {
3418        "HTTPConfiguration": {
3419          "$ref": "#/definitions/HTTPConfiguration",
3420          "description": "HTTP configuration of the connectivity check."
3421        }
3422      }
3423    },
3424    "HTTPConfiguration": {
3425      "properties": {
3426        "method": {
3427          "type": "string",
3428          "description": "HTTP method.",
3429          "enum": [
3430            "Get"
3431          ],
3432          "x-ms-enum": {
3433            "name": "HTTPMethod",
3434            "modelAsString": true
3435          }
3436        },
3437        "headers": {
3438          "type": "array",
3439          "description": "List of HTTP headers.",
3440          "items": {
3441            "$ref": "#/definitions/HTTPHeader"
3442          }
3443        },
3444        "validStatusCodes": {
3445          "type": "array",
3446          "items": {
3447            "type": "integer"
3448          },
3449          "description": "Valid status codes."
3450        }
3451      },
3452      "description": "HTTP configuration of the connectivity check."
3453    },
3454    "HTTPHeader": {
3455      "properties": {
3456        "name": {
3457          "type": "string",
3458          "description": "The name in HTTP header."
3459        },
3460        "value": {
3461          "type": "string",
3462          "description": "The value in HTTP header."
3463        }
3464      },
3465      "description": "The HTTP header."
3466    },
3467    "AzureReachabilityReportParameters": {
3468      "properties": {
3469        "providerLocation": {
3470          "$ref": "#/definitions/AzureReachabilityReportLocation",
3471          "description": "Parameters that define a geographic location."
3472        },
3473        "providers": {
3474          "type": "array",
3475          "items": {
3476            "type": "string"
3477          },
3478          "description": "List of Internet service providers."
3479        },
3480        "azureLocations": {
3481          "type": "array",
3482          "items": {
3483            "type": "string"
3484          },
3485          "description": "Optional Azure regions to scope the query to."
3486        },
3487        "startTime": {
3488          "type": "string",
3489          "format": "date-time",
3490          "description": "The start time for the Azure reachability report."
3491        },
3492        "endTime": {
3493          "type": "string",
3494          "format": "date-time",
3495          "description": "The end time for the Azure reachability report."
3496        }
3497      },
3498      "required": [
3499        "providerLocation",
3500        "startTime",
3501        "endTime"
3502      ],
3503      "description": "Geographic and time constraints for Azure reachability report."
3504    },
3505    "AzureReachabilityReportLocation": {
3506      "properties": {
3507        "country": {
3508          "type": "string",
3509          "description": "The name of the country."
3510        },
3511        "state": {
3512          "type": "string",
3513          "description": "The name of the state."
3514        },
3515        "city": {
3516          "type": "string",
3517          "description": "The name of the city or town."
3518        }
3519      },
3520      "required": [
3521        "country"
3522      ],
3523      "description": "Parameters that define a geographic location."
3524    },
3525    "AzureReachabilityReport": {
3526      "properties": {
3527        "aggregationLevel": {
3528          "type": "string",
3529          "description": "The aggregation level of Azure reachability report. Can be Country, State or City."
3530        },
3531        "providerLocation": {
3532          "$ref": "#/definitions/AzureReachabilityReportLocation",
3533          "description": "Parameters that define a geographic location."
3534        },
3535        "reachabilityReport": {
3536          "type": "array",
3537          "description": "List of Azure reachability report items.",
3538          "items": {
3539            "$ref": "#/definitions/AzureReachabilityReportItem"
3540          }
3541        }
3542      },
3543      "required": [
3544        "aggregationLevel",
3545        "providerLocation",
3546        "reachabilityReport"
3547      ],
3548      "description": "Azure reachability report details."
3549    },
3550    "AzureReachabilityReportItem": {
3551      "properties": {
3552        "provider": {
3553          "type": "string",
3554          "description": "The Internet service provider."
3555        },
3556        "azureLocation": {
3557          "type": "string",
3558          "description": "The Azure region."
3559        },
3560        "latencies": {
3561          "type": "array",
3562          "description": "List of latency details for each of the time series.",
3563          "items": {
3564            "$ref": "#/definitions/AzureReachabilityReportLatencyInfo"
3565          }
3566        }
3567      },
3568      "description": "Azure reachability report details for a given provider location."
3569    },
3570    "AzureReachabilityReportLatencyInfo": {
3571      "properties": {
3572        "timeStamp": {
3573          "type": "string",
3574          "format": "date-time",
3575          "description": "The time stamp."
3576        },
3577        "score": {
3578          "type": "integer",
3579          "description": "The relative latency score between 1 and 100, higher values indicating a faster connection.",
3580          "minimum": 1,
3581          "maximum": 100
3582        }
3583      },
3584      "description": "Details on latency for a time series."
3585    },
3586    "AvailableProvidersListParameters": {
3587      "properties": {
3588        "azureLocations": {
3589          "type": "array",
3590          "items": {
3591            "type": "string"
3592          },
3593          "description": "A list of Azure regions."
3594        },
3595        "country": {
3596          "type": "string",
3597          "description": "The country for available providers list."
3598        },
3599        "state": {
3600          "type": "string",
3601          "description": "The state for available providers list."
3602        },
3603        "city": {
3604          "type": "string",
3605          "description": "The city or town for available providers list."
3606        }
3607      },
3608      "description": "Constraints that determine the list of available Internet service providers."
3609    },
3610    "AvailableProvidersList": {
3611      "properties": {
3612        "countries": {
3613          "type": "array",
3614          "description": "List of available countries.",
3615          "items": {
3616            "$ref": "#/definitions/AvailableProvidersListCountry"
3617          }
3618        }
3619      },
3620      "required": [
3621        "countries"
3622      ],
3623      "description": "List of available countries with details."
3624    },
3625    "AvailableProvidersListCountry": {
3626      "properties": {
3627        "countryName": {
3628          "type": "string",
3629          "description": "The country name."
3630        },
3631        "providers": {
3632          "type": "array",
3633          "items": {
3634            "type": "string"
3635          },
3636          "description": "A list of Internet service providers."
3637        },
3638        "states": {
3639          "type": "array",
3640          "description": "List of available states in the country.",
3641          "items": {
3642            "$ref": "#/definitions/AvailableProvidersListState"
3643          }
3644        }
3645      },
3646      "description": "Country details."
3647    },
3648    "AvailableProvidersListState": {
3649      "properties": {
3650        "stateName": {
3651          "type": "string",
3652          "description": "The state name."
3653        },
3654        "providers": {
3655          "type": "array",
3656          "items": {
3657            "type": "string"
3658          },
3659          "description": "A list of Internet service providers."
3660        },
3661        "cities": {
3662          "type": "array",
3663          "description": "List of available cities or towns in the state.",
3664          "items": {
3665            "$ref": "#/definitions/AvailableProvidersListCity"
3666          }
3667        }
3668      },
3669      "description": "State details."
3670    },
3671    "AvailableProvidersListCity": {
3672      "properties": {
3673        "cityName": {
3674          "type": "string",
3675          "description": "The city or town name."
3676        },
3677        "providers": {
3678          "type": "array",
3679          "items": {
3680            "type": "string"
3681          },
3682          "description": "A list of Internet service providers."
3683        }
3684      },
3685      "description": "City or town details."
3686    },
3687    "NetworkConfigurationDiagnosticParameters": {
3688      "description": "Parameters to get network configuration diagnostic.",
3689      "required": [
3690        "targetResourceId",
3691        "profiles"
3692      ],
3693      "properties": {
3694        "targetResourceId": {
3695          "type": "string",
3696          "description": "The ID of the target resource to perform network configuration diagnostic. Valid options are VM, NetworkInterface, VMSS/NetworkInterface and Application Gateway."
3697        },
3698        "verbosityLevel": {
3699          "type": "string",
3700          "enum": [
3701            "Normal",
3702            "Minimum",
3703            "Full"
3704          ],
3705          "x-ms-enum": {
3706            "name": "VerbosityLevel",
3707            "modelAsString": true
3708          },
3709          "description": "Verbosity level."
3710        },
3711        "profiles": {
3712          "type": "array",
3713          "description": "List of network configuration diagnostic profiles.",
3714          "items": {
3715            "$ref": "#/definitions/NetworkConfigurationDiagnosticProfile"
3716          }
3717        }
3718      }
3719    },
3720    "NetworkConfigurationDiagnosticProfile": {
3721      "description": "Parameters to compare with network configuration.",
3722      "required": [
3723        "direction",
3724        "protocol",
3725        "source",
3726        "destination",
3727        "destinationPort"
3728      ],
3729      "properties": {
3730        "direction": {
3731          "$ref": "#/definitions/Direction",
3732          "description": "The direction of the traffic."
3733        },
3734        "protocol": {
3735          "type": "string",
3736          "description": "Protocol to be verified on. Accepted values are '*', TCP, UDP."
3737        },
3738        "source": {
3739          "type": "string",
3740          "description": "Traffic source. Accepted values are '*', IP Address/CIDR, Service Tag."
3741        },
3742        "destination": {
3743          "type": "string",
3744          "description": "Traffic destination. Accepted values are: '*', IP Address/CIDR, Service Tag."
3745        },
3746        "destinationPort": {
3747          "type": "string",
3748          "description": "Traffic destination port. Accepted values are '*' and a single port in the range (0 - 65535)."
3749        }
3750      }
3751    },
3752    "NetworkConfigurationDiagnosticResponse": {
3753      "description": "Results of network configuration diagnostic on the target resource.",
3754      "properties": {
3755        "results": {
3756          "readOnly": true,
3757          "type": "array",
3758          "description": "List of network configuration diagnostic results.",
3759          "items": {
3760            "$ref": "#/definitions/NetworkConfigurationDiagnosticResult"
3761          }
3762        }
3763      }
3764    },
3765    "NetworkConfigurationDiagnosticResult": {
3766      "description": "Network configuration diagnostic result corresponded to provided traffic query.",
3767      "properties": {
3768        "profile": {
3769          "$ref": "#/definitions/NetworkConfigurationDiagnosticProfile",
3770          "description": "Network configuration diagnostic profile."
3771        },
3772        "networkSecurityGroupResult": {
3773          "$ref": "#/definitions/NetworkSecurityGroupResult",
3774          "description": "Network security group result."
3775        }
3776      }
3777    },
3778    "NetworkSecurityGroupResult": {
3779      "description": "Network configuration diagnostic result corresponded provided traffic query.",
3780      "properties": {
3781        "securityRuleAccessResult": {
3782          "$ref": "./networkSecurityGroup.json#/definitions/SecurityRuleAccess",
3783          "description": "The network traffic is allowed or denied."
3784        },
3785        "evaluatedNetworkSecurityGroups": {
3786          "readOnly": true,
3787          "type": "array",
3788          "description": "List of results network security groups diagnostic.",
3789          "items": {
3790            "$ref": "#/definitions/EvaluatedNetworkSecurityGroup"
3791          }
3792        }
3793      }
3794    },
3795    "EvaluatedNetworkSecurityGroup": {
3796      "description": "Results of network security group evaluation.",
3797      "properties": {
3798        "networkSecurityGroupId": {
3799          "type": "string",
3800          "description": "Network security group ID."
3801        },
3802        "appliedTo": {
3803          "type": "string",
3804          "description": "Resource ID of nic or subnet to which network security group is applied."
3805        },
3806        "matchedRule": {
3807          "$ref": "#/definitions/MatchedRule",
3808          "description": "Matched network security rule."
3809        },
3810        "rulesEvaluationResult": {
3811          "readOnly": true,
3812          "type": "array",
3813          "description": "List of network security rules evaluation results.",
3814          "items": {
3815            "$ref": "#/definitions/NetworkSecurityRulesEvaluationResult"
3816          }
3817        }
3818      }
3819    },
3820    "MatchedRule": {
3821      "description": "Matched rule.",
3822      "properties": {
3823        "ruleName": {
3824          "type": "string",
3825          "description": "Name of the matched network security rule."
3826        },
3827        "action": {
3828          "type": "string",
3829          "description": "The network traffic is allowed or denied. Possible values are 'Allow' and 'Deny'."
3830        }
3831      }
3832    },
3833    "NetworkSecurityRulesEvaluationResult": {
3834      "description": "Network security rules evaluation result.",
3835      "properties": {
3836        "name": {
3837          "type": "string",
3838          "description": "Name of the network security rule."
3839        },
3840        "protocolMatched": {
3841          "type": "boolean",
3842          "description": "Value indicating whether protocol is matched."
3843        },
3844        "sourceMatched": {
3845          "type": "boolean",
3846          "description": "Value indicating whether source is matched."
3847        },
3848        "sourcePortMatched": {
3849          "type": "boolean",
3850          "description": "Value indicating whether source port is matched."
3851        },
3852        "destinationMatched": {
3853          "type": "boolean",
3854          "description": "Value indicating whether destination is matched."
3855        },
3856        "destinationPortMatched": {
3857          "type": "boolean",
3858          "description": "Value indicating whether destination port is matched."
3859        }
3860      }
3861    },
3862    "Direction": {
3863      "type": "string",
3864      "description": "The direction of the traffic.",
3865      "enum": [
3866        "Inbound",
3867        "Outbound"
3868      ],
3869      "x-ms-enum": {
3870        "name": "Direction",
3871        "modelAsString": true
3872      }
3873    },
3874    "ConnectionMonitor": {
3875      "properties": {
3876        "location": {
3877          "type": "string",
3878          "description": "Connection monitor location."
3879        },
3880        "tags": {
3881          "type": "object",
3882          "additionalProperties": {
3883            "type": "string"
3884          },
3885          "description": "Connection monitor tags."
3886        },
3887        "properties": {
3888          "x-ms-client-flatten": true,
3889          "$ref": "#/definitions/ConnectionMonitorParameters",
3890          "description": "Properties of the connection monitor."
3891        }
3892      },
3893      "required": [
3894        "properties"
3895      ],
3896      "description": "Parameters that define the operation to create a connection monitor."
3897    },
3898    "ConnectionMonitorParameters": {
3899      "properties": {
3900        "source": {
3901          "$ref": "#/definitions/ConnectionMonitorSource",
3902          "description": "Describes the source of connection monitor."
3903        },
3904        "destination": {
3905          "$ref": "#/definitions/ConnectionMonitorDestination",
3906          "description": "Describes the destination of connection monitor."
3907        },
3908        "autoStart": {
3909          "type": "boolean",
3910          "default": true,
3911          "description": "Determines if the connection monitor will start automatically once created."
3912        },
3913        "monitoringIntervalInSeconds": {
3914          "type": "integer",
3915          "default": 60,
3916          "description": "Monitoring interval in seconds."
3917        },
3918        "endpoints": {
3919          "type": "array",
3920          "description": "List of connection monitor endpoints.",
3921          "items": {
3922            "$ref": "#/definitions/ConnectionMonitorEndpoint"
3923          }
3924        },
3925        "testConfigurations": {
3926          "type": "array",
3927          "description": "List of connection monitor test configurations.",
3928          "items": {
3929            "$ref": "#/definitions/ConnectionMonitorTestConfiguration"
3930          }
3931        },
3932        "testGroups": {
3933          "type": "array",
3934          "description": "List of connection monitor test groups.",
3935          "items": {
3936            "$ref": "#/definitions/ConnectionMonitorTestGroup"
3937          }
3938        },
3939        "outputs": {
3940          "type": "array",
3941          "description": "List of connection monitor outputs.",
3942          "items": {
3943            "$ref": "#/definitions/ConnectionMonitorOutput"
3944          }
3945        },
3946        "notes": {
3947          "type": "string",
3948          "description": "Optional notes to be associated with the connection monitor."
3949        }
3950      },
3951      "description": "Parameters that define the operation to create a connection monitor."
3952    },
3953    "ConnectionMonitorSource": {
3954      "properties": {
3955        "resourceId": {
3956          "type": "string",
3957          "description": "The ID of the resource used as the source by connection monitor."
3958        },
3959        "port": {
3960          "type": "integer",
3961          "description": "The source port used by connection monitor."
3962        }
3963      },
3964      "required": [
3965        "resourceId"
3966      ],
3967      "description": "Describes the source of connection monitor."
3968    },
3969    "ConnectionMonitorDestination": {
3970      "properties": {
3971        "resourceId": {
3972          "type": "string",
3973          "description": "The ID of the resource used as the destination by connection monitor."
3974        },
3975        "address": {
3976          "type": "string",
3977          "description": "Address of the connection monitor destination (IP or domain name)."
3978        },
3979        "port": {
3980          "type": "integer",
3981          "description": "The destination port used by connection monitor."
3982        }
3983      },
3984      "description": "Describes the destination of connection monitor."
3985    },
3986    "ConnectionMonitorEndpoint": {
3987      "properties": {
3988        "name": {
3989          "type": "string",
3990          "description": "The name of the connection monitor endpoint."
3991        },
3992        "resourceId": {
3993          "type": "string",
3994          "description": "Resource ID of the connection monitor endpoint."
3995        },
3996        "address": {
3997          "type": "string",
3998          "description": "Address of the connection monitor endpoint (IP or domain name)."
3999        },
4000        "filter": {
4001          "$ref": "#/definitions/ConnectionMonitorEndpointFilter",
4002          "description": "Filter for sub-items within the endpoint."
4003        }
4004      },
4005      "required": [
4006        "name"
4007      ],
4008      "description": "Describes the connection monitor endpoint."
4009    },
4010    "ConnectionMonitorEndpointFilter": {
4011      "properties": {
4012        "type": {
4013          "type": "string",
4014          "enum": [
4015            "Include"
4016          ],
4017          "x-ms-enum": {
4018            "name": "ConnectionMonitorEndpointFilterType",
4019            "modelAsString": true
4020          },
4021          "description": "The behavior of the endpoint filter. Currently only 'Include' is supported."
4022        },
4023        "items": {
4024          "type": "array",
4025          "description": "List of items in the filter.",
4026          "items": {
4027            "$ref": "#/definitions/ConnectionMonitorEndpointFilterItem"
4028          }
4029        }
4030      },
4031      "description": "Describes the connection monitor endpoint filter."
4032    },
4033    "ConnectionMonitorEndpointFilterItem": {
4034      "properties": {
4035        "type": {
4036          "type": "string",
4037          "enum": [
4038            "AgentAddress"
4039          ],
4040          "x-ms-enum": {
4041            "name": "ConnectionMonitorEndpointFilterItemType",
4042            "modelAsString": true
4043          },
4044          "description": "The type of item included in the filter. Currently only 'AgentAddress' is supported."
4045        },
4046        "address": {
4047          "type": "string",
4048          "description": "The address of the filter item."
4049        }
4050      },
4051      "description": "Describes the connection monitor endpoint filter item."
4052    },
4053    "ConnectionMonitorTestGroup": {
4054      "properties": {
4055        "name": {
4056          "type": "string",
4057          "description": "The name of the connection monitor test group."
4058        },
4059        "disable": {
4060          "type": "boolean",
4061          "description": "Value indicating whether test group is disabled."
4062        },
4063        "testConfigurations": {
4064          "type": "array",
4065          "items": {
4066            "type": "string"
4067          },
4068          "description": "List of test configuration names."
4069        },
4070        "sources": {
4071          "type": "array",
4072          "items": {
4073            "type": "string"
4074          },
4075          "description": "List of source endpoint names."
4076        },
4077        "destinations": {
4078          "type": "array",
4079          "items": {
4080            "type": "string"
4081          },
4082          "description": "List of destination endpoint names."
4083        }
4084      },
4085      "required": [
4086        "name",
4087        "testConfigurations",
4088        "sources",
4089        "destinations"
4090      ],
4091      "description": "Describes the connection monitor test group."
4092    },
4093    "ConnectionMonitorTestConfiguration": {
4094      "properties": {
4095        "name": {
4096          "type": "string",
4097          "description": "The name of the connection monitor test configuration."
4098        },
4099        "testFrequencySec": {
4100          "type": "integer",
4101          "description": "The frequency of test evaluation, in seconds."
4102        },
4103        "protocol": {
4104          "type": "string",
4105          "enum": [
4106            "Tcp",
4107            "Http",
4108            "Icmp"
4109          ],
4110          "x-ms-enum": {
4111            "name": "ConnectionMonitorTestConfigurationProtocol",
4112            "modelAsString": true
4113          },
4114          "description": "The protocol to use in test evaluation."
4115        },
4116        "preferredIPVersion": {
4117          "type": "string",
4118          "enum": [
4119            "IPv4",
4120            "IPv6"
4121          ],
4122          "x-ms-enum": {
4123            "name": "PreferredIPVersion",
4124            "modelAsString": true
4125          },
4126          "description": "The preferred IP version to use in test evaluation. The connection monitor may choose to use a different version depending on other parameters."
4127        },
4128        "httpConfiguration": {
4129          "$ref": "#/definitions/ConnectionMonitorHttpConfiguration",
4130          "description": "The parameters used to perform test evaluation over HTTP."
4131        },
4132        "tcpConfiguration": {
4133          "$ref": "#/definitions/ConnectionMonitorTcpConfiguration",
4134          "description": "The parameters used to perform test evaluation over TCP."
4135        },
4136        "icmpConfiguration": {
4137          "$ref": "#/definitions/ConnectionMonitorIcmpConfiguration",
4138          "description": "The parameters used to perform test evaluation over ICMP."
4139        },
4140        "successThreshold": {
4141          "$ref": "#/definitions/ConnectionMonitorSuccessThreshold",
4142          "description": "The threshold for declaring a test successful."
4143        }
4144      },
4145      "required": [
4146        "name",
4147        "protocol"
4148      ],
4149      "description": "Describes a connection monitor test configuration."
4150    },
4151    "ConnectionMonitorHttpConfiguration": {
4152      "properties": {
4153        "port": {
4154          "type": "integer",
4155          "description": "The port to connect to."
4156        },
4157        "method": {
4158          "type": "string",
4159          "description": "The HTTP method to use.",
4160          "enum": [
4161            "Get",
4162            "Post"
4163          ],
4164          "x-ms-enum": {
4165            "name": "HTTPConfigurationMethod",
4166            "modelAsString": true
4167          }
4168        },
4169        "path": {
4170          "type": "string",
4171          "description": "The path component of the URI. For instance, \"/dir1/dir2\"."
4172        },
4173        "requestHeaders": {
4174          "type": "array",
4175          "description": "The HTTP headers to transmit with the request.",
4176          "items": {
4177            "$ref": "#/definitions/HTTPHeader"
4178          }
4179        },
4180        "validStatusCodeRanges": {
4181          "type": "array",
4182          "items": {
4183            "type": "string"
4184          },
4185          "description": "HTTP status codes to consider successful. For instance, \"2xx,301-304,418\"."
4186        },
4187        "preferHTTPS": {
4188          "type": "boolean",
4189          "description": "Value indicating whether HTTPS is preferred over HTTP in cases where the choice is not explicit."
4190        }
4191      },
4192      "description": "Describes the HTTP configuration."
4193    },
4194    "ConnectionMonitorTcpConfiguration": {
4195      "properties": {
4196        "port": {
4197          "type": "integer",
4198          "description": "The port to connect to."
4199        },
4200        "disableTraceRoute": {
4201          "type": "boolean",
4202          "description": "Value indicating whether path evaluation with trace route should be disabled."
4203        }
4204      },
4205      "description": "Describes the TCP configuration."
4206    },
4207    "ConnectionMonitorIcmpConfiguration": {
4208      "properties": {
4209        "disableTraceRoute": {
4210          "type": "boolean",
4211          "description": "Value indicating whether path evaluation with trace route should be disabled."
4212        }
4213      },
4214      "description": "Describes the ICMP configuration."
4215    },
4216    "ConnectionMonitorSuccessThreshold": {
4217      "properties": {
4218        "checksFailedPercent": {
4219          "type": "integer",
4220          "description": "The maximum percentage of failed checks permitted for a test to evaluate as successful."
4221        },
4222        "roundTripTimeMs": {
4223          "type": "number",
4224          "description": "The maximum round-trip time in milliseconds permitted for a test to evaluate as successful."
4225        }
4226      },
4227      "description": "Describes the threshold for declaring a test successful."
4228    },
4229    "ConnectionMonitorOutput": {
4230      "properties": {
4231        "type": {
4232          "type": "string",
4233          "description": "Connection monitor output destination type. Currently, only \"Workspace\" is supported.",
4234          "enum": [
4235            "Workspace"
4236          ],
4237          "x-ms-enum": {
4238            "name": "OutputType",
4239            "modelAsString": true
4240          }
4241        },
4242        "workspaceSettings": {
4243          "$ref": "#/definitions/ConnectionMonitorWorkspaceSettings",
4244          "description": "Describes the settings for producing output into a log analytics workspace."
4245        }
4246      },
4247      "description": "Describes a connection monitor output destination."
4248    },
4249    "ConnectionMonitorWorkspaceSettings": {
4250      "properties": {
4251        "workspaceResourceId": {
4252          "type": "string",
4253          "description": "Log analytics workspace resource ID."
4254        }
4255      },
4256      "description": "Describes the settings for producing output into a log analytics workspace."
4257    },
4258    "ConnectionStateSnapshot": {
4259      "properties": {
4260        "connectionState": {
4261          "type": "string",
4262          "enum": [
4263            "Reachable",
4264            "Unreachable",
4265            "Unknown"
4266          ],
4267          "x-ms-enum": {
4268            "name": "ConnectionState",
4269            "modelAsString": true
4270          },
4271          "description": "The connection state."
4272        },
4273        "startTime": {
4274          "type": "string",
4275          "format": "date-time",
4276          "description": "The start time of the connection snapshot."
4277        },
4278        "endTime": {
4279          "type": "string",
4280          "format": "date-time",
4281          "description": "The end time of the connection snapshot."
4282        },
4283        "evaluationState": {
4284          "type": "string",
4285          "enum": [
4286            "NotStarted",
4287            "InProgress",
4288            "Completed"
4289          ],
4290          "x-ms-enum": {
4291            "name": "EvaluationState",
4292            "modelAsString": true
4293          },
4294          "description": "Connectivity analysis evaluation state."
4295        },
4296        "avgLatencyInMs": {
4297          "type": "integer",
4298          "description": "Average latency in ms."
4299        },
4300        "minLatencyInMs": {
4301          "type": "integer",
4302          "description": "Minimum latency in ms."
4303        },
4304        "maxLatencyInMs": {
4305          "type": "integer",
4306          "description": "Maximum latency in ms."
4307        },
4308        "probesSent": {
4309          "type": "integer",
4310          "description": "The number of sent probes."
4311        },
4312        "probesFailed": {
4313          "type": "integer",
4314          "description": "The number of failed probes."
4315        },
4316        "hops": {
4317          "readOnly": true,
4318          "type": "array",
4319          "description": "List of hops between the source and the destination.",
4320          "items": {
4321            "$ref": "./networkWatcher.json#/definitions/ConnectivityHop"
4322          }
4323        }
4324      },
4325      "description": "Connection state snapshot."
4326    },
4327    "ConnectionMonitorListResult": {
4328      "properties": {
4329        "value": {
4330          "type": "array",
4331          "items": {
4332            "$ref": "#/definitions/ConnectionMonitorResult"
4333          },
4334          "description": "Information about connection monitors."
4335        }
4336      },
4337      "description": "List of connection monitors."
4338    },
4339    "ConnectionMonitorResult": {
4340      "x-ms-azure-resource": true,
4341      "properties": {
4342        "name": {
4343          "readOnly": true,
4344          "type": "string",
4345          "description": "Name of the connection monitor."
4346        },
4347        "id": {
4348          "readOnly": true,
4349          "type": "string",
4350          "description": "ID of the connection monitor."
4351        },
4352        "etag": {
4353          "readOnly": true,
4354          "type": "string",
4355          "description": "A unique read-only string that changes whenever the resource is updated."
4356        },
4357        "type": {
4358          "readOnly": true,
4359          "type": "string",
4360          "description": "Connection monitor type."
4361        },
4362        "location": {
4363          "type": "string",
4364          "description": "Connection monitor location."
4365        },
4366        "tags": {
4367          "type": "object",
4368          "additionalProperties": {
4369            "type": "string"
4370          },
4371          "description": "Connection monitor tags."
4372        },
4373        "properties": {
4374          "x-ms-client-flatten": true,
4375          "$ref": "#/definitions/ConnectionMonitorResultProperties",
4376          "description": "Properties of the connection monitor result."
4377        }
4378      },
4379      "description": "Information about the connection monitor."
4380    },
4381    "ConnectionMonitorResultProperties": {
4382      "properties": {
4383        "provisioningState": {
4384          "readOnly": true,
4385          "$ref": "./network.json#/definitions/ProvisioningState",
4386          "description": "The provisioning state of the connection monitor."
4387        },
4388        "startTime": {
4389          "readOnly": true,
4390          "type": "string",
4391          "format": "date-time",
4392          "description": "The date and time when the connection monitor was started."
4393        },
4394        "monitoringStatus": {
4395          "readOnly": true,
4396          "type": "string",
4397          "description": "The monitoring status of the connection monitor."
4398        },
4399        "connectionMonitorType": {
4400          "readOnly": true,
4401          "type": "string",
4402          "enum": [
4403            "MultiEndpoint",
4404            "SingleSourceDestination"
4405          ],
4406          "x-ms-enum": {
4407            "name": "ConnectionMonitorType",
4408            "modelAsString": true
4409          },
4410          "description": "Type of connection monitor."
4411        }
4412      },
4413      "allOf": [
4414        {
4415          "$ref": "#/definitions/ConnectionMonitorParameters"
4416        }
4417      ],
4418      "description": "Describes the properties of a connection monitor."
4419    },
4420    "ConnectionMonitorQueryResult": {
4421      "properties": {
4422        "sourceStatus": {
4423          "type": "string",
4424          "enum": [
4425            "Unknown",
4426            "Active",
4427            "Inactive"
4428          ],
4429          "x-ms-enum": {
4430            "name": "ConnectionMonitorSourceStatus",
4431            "modelAsString": true
4432          },
4433          "description": "Status of connection monitor source."
4434        },
4435        "states": {
4436          "type": "array",
4437          "items": {
4438            "$ref": "#/definitions/ConnectionStateSnapshot"
4439          },
4440          "description": "Information about connection states."
4441        }
4442      },
4443      "description": "List of connection states snapshots."
4444    }
4445  }
4446}
4447