@itentialopensource/adapter-paragon_active_assurance 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (111) hide show
  1. package/.eslintignore +6 -0
  2. package/.eslintrc.js +18 -0
  3. package/.gitlab/.gitkeep +0 -0
  4. package/.gitlab/issue_templates/.gitkeep +0 -0
  5. package/.gitlab/issue_templates/Default.md +17 -0
  6. package/.gitlab/issue_templates/bugReportTemplate.md +76 -0
  7. package/.gitlab/issue_templates/featureRequestTemplate.md +14 -0
  8. package/.jshintrc +0 -0
  9. package/AUTH.md +39 -0
  10. package/BROKER.md +199 -0
  11. package/CALLS.md +866 -0
  12. package/CHANGELOG.md +9 -0
  13. package/CODE_OF_CONDUCT.md +43 -0
  14. package/CONTRIBUTING.md +172 -0
  15. package/ENHANCE.md +69 -0
  16. package/LICENSE +201 -0
  17. package/PROPERTIES.md +641 -0
  18. package/README.md +337 -0
  19. package/SUMMARY.md +9 -0
  20. package/SYSTEMINFO.md +11 -0
  21. package/TROUBLESHOOT.md +47 -0
  22. package/adapter.js +12175 -0
  23. package/adapterBase.js +1787 -0
  24. package/entities/.generic/action.json +214 -0
  25. package/entities/.generic/schema.json +28 -0
  26. package/entities/.system/action.json +50 -0
  27. package/entities/.system/mockdatafiles/getToken-default.json +3 -0
  28. package/entities/.system/mockdatafiles/healthcheck-default.json +3 -0
  29. package/entities/.system/schema.json +19 -0
  30. package/entities/.system/schemaTokenReq.json +53 -0
  31. package/entities/.system/schemaTokenResp.json +53 -0
  32. package/entities/Alarm/action.json +86 -0
  33. package/entities/Alarm/schema.json +132 -0
  34. package/entities/AlarmEmail/action.json +106 -0
  35. package/entities/AlarmEmail/schema.json +34 -0
  36. package/entities/AlarmTemplate/action.json +106 -0
  37. package/entities/AlarmTemplate/schema.json +34 -0
  38. package/entities/ExternalUrlShare/action.json +106 -0
  39. package/entities/ExternalUrlShare/schema.json +34 -0
  40. package/entities/IpLookupTable/action.json +106 -0
  41. package/entities/IpLookupTable/schema.json +45 -0
  42. package/entities/IptvChannel/action.json +106 -0
  43. package/entities/IptvChannel/schema.json +45 -0
  44. package/entities/Monitor/action.json +147 -0
  45. package/entities/Monitor/schema.json +102 -0
  46. package/entities/MonitorTemplate/action.json +87 -0
  47. package/entities/MonitorTemplate/schema.json +55 -0
  48. package/entities/NetworkDevice/action.json +126 -0
  49. package/entities/NetworkDevice/schema.json +46 -0
  50. package/entities/PingHost/action.json +126 -0
  51. package/entities/PingHost/schema.json +46 -0
  52. package/entities/SipAccount/action.json +106 -0
  53. package/entities/SipAccount/schema.json +34 -0
  54. package/entities/SnmpManager/action.json +106 -0
  55. package/entities/SnmpManager/schema.json +34 -0
  56. package/entities/Speedtest/action.json +46 -0
  57. package/entities/Speedtest/schema.json +31 -0
  58. package/entities/SpeedtestPublic/action.json +87 -0
  59. package/entities/SpeedtestPublic/schema.json +33 -0
  60. package/entities/SshKey/action.json +106 -0
  61. package/entities/SshKey/schema.json +45 -0
  62. package/entities/Statistics/action.json +46 -0
  63. package/entities/Statistics/schema.json +20 -0
  64. package/entities/Tag/action.json +106 -0
  65. package/entities/Tag/schema.json +34 -0
  66. package/entities/Test/action.json +127 -0
  67. package/entities/Test/schema.json +90 -0
  68. package/entities/TestAgent/action.json +267 -0
  69. package/entities/TestAgent/schema.json +86 -0
  70. package/entities/TestTemplate/action.json +107 -0
  71. package/entities/TestTemplate/schema.json +56 -0
  72. package/entities/TwampReflector/action.json +126 -0
  73. package/entities/TwampReflector/schema.json +46 -0
  74. package/entities/UpdateMonitorTemplate/action.json +24 -0
  75. package/entities/UpdateMonitorTemplate/schema.json +30 -0
  76. package/entities/Y1731Mep/action.json +106 -0
  77. package/entities/Y1731Mep/schema.json +45 -0
  78. package/error.json +190 -0
  79. package/package.json +87 -0
  80. package/pronghorn.json +10324 -0
  81. package/propertiesDecorators.json +14 -0
  82. package/propertiesSchema.json +1248 -0
  83. package/refs?service=git-upload-pack +0 -0
  84. package/report/adapterInfo.json +10 -0
  85. package/report/creationReport.json +1120 -0
  86. package/report/paragon-active-assurance.json-OpenApi3Json.json +15052 -0
  87. package/sampleProperties.json +195 -0
  88. package/test/integration/adapterTestBasicGet.js +83 -0
  89. package/test/integration/adapterTestConnectivity.js +93 -0
  90. package/test/integration/adapterTestIntegration.js +3651 -0
  91. package/test/unit/adapterBaseTestUnit.js +949 -0
  92. package/test/unit/adapterTestUnit.js +5967 -0
  93. package/utils/adapterInfo.js +206 -0
  94. package/utils/addAuth.js +94 -0
  95. package/utils/artifactize.js +146 -0
  96. package/utils/basicGet.js +50 -0
  97. package/utils/checkMigrate.js +63 -0
  98. package/utils/entitiesToDB.js +178 -0
  99. package/utils/findPath.js +74 -0
  100. package/utils/methodDocumentor.js +225 -0
  101. package/utils/modify.js +154 -0
  102. package/utils/packModificationScript.js +35 -0
  103. package/utils/patches2bundledDeps.js +90 -0
  104. package/utils/pre-commit.sh +32 -0
  105. package/utils/removeHooks.js +20 -0
  106. package/utils/setup.js +33 -0
  107. package/utils/tbScript.js +246 -0
  108. package/utils/tbUtils.js +490 -0
  109. package/utils/testRunner.js +298 -0
  110. package/utils/troubleshootingAdapter.js +195 -0
  111. package/workflows/README.md +3 -0
package/CALLS.md ADDED
@@ -0,0 +1,866 @@
1
+ ## Using this Adapter
2
+
3
+ The `adapter.js` file contains the calls the adapter makes available to the rest of the Itential Platform. The API detailed for these calls should be available through JSDOC. The following is a brief summary of the calls.
4
+
5
+ ### Generic Adapter Calls
6
+
7
+ These are adapter methods that IAP or you might use. There are some other methods not shown here that might be used for internal adapter functionality.
8
+
9
+ <table border="1" class="bordered-table">
10
+ <tr>
11
+ <th bgcolor="lightgrey" style="padding:15px"><span style="font-size:12.0pt">Method Signature</span></th>
12
+ <th bgcolor="lightgrey" style="padding:15px"><span style="font-size:12.0pt">Description</span></th>
13
+ <th bgcolor="lightgrey" style="padding:15px"><span style="font-size:12.0pt">Workflow?</span></th>
14
+ </tr>
15
+ <tr>
16
+ <td style="padding:15px">connect()</td>
17
+ <td style="padding:15px">This call is run when the Adapter is first loaded by he Itential Platform. It validates the properties have been provided correctly.</td>
18
+ <td style="padding:15px">No</td>
19
+ </tr>
20
+ <tr>
21
+ <td style="padding:15px">healthCheck(callback)</td>
22
+ <td style="padding:15px">This call ensures that the adapter can communicate with Paragon_active_assurance. The actual call that is used is defined in the adapter properties and .system entities action.json file.</td>
23
+ <td style="padding:15px">No</td>
24
+ </tr>
25
+ <tr>
26
+ <td style="padding:15px">refreshProperties(properties)</td>
27
+ <td style="padding:15px">This call provides the adapter the ability to accept property changes without having to restart the adapter.</td>
28
+ <td style="padding:15px">No</td>
29
+ </tr>
30
+ <tr>
31
+ <td style="padding:15px">encryptProperty(property, technique, callback)</td>
32
+ <td style="padding:15px">This call will take the provided property and technique, and return the property encrypted with the technique. This allows the property to be used in the adapterProps section for the credential password so that the password does not have to be in clear text. The adapter will decrypt the property as needed for communications with Paragon_active_assurance.</td>
33
+ <td style="padding:15px">No</td>
34
+ </tr>
35
+ <tr>
36
+ <td style="padding:15px">iapUpdateAdapterConfiguration(configFile, changes, entity, type, action, callback)</td>
37
+ <td style="padding:15px">This call provides the ability to update the adapter configuration from IAP - includes actions, schema, mockdata and other configurations.</td>
38
+ <td style="padding:15px">Yes</td>
39
+ </tr>
40
+ <tr>
41
+ <td style="padding:15px">iapFindAdapterPath(apiPath, callback)</td>
42
+ <td style="padding:15px">This call provides the ability to see if a particular API path is supported by the adapter.</td>
43
+ <td style="padding:15px">Yes</td>
44
+ </tr>
45
+ <tr>
46
+ <td style="padding:15px">iapSuspendAdapter(mode, callback)</td>
47
+ <td style="padding:15px">This call provides the ability to suspend the adapter and either have requests rejected or put into a queue to be processed after the adapter is resumed.</td>
48
+ <td style="padding:15px">Yes</td>
49
+ </tr>
50
+ <tr>
51
+ <td style="padding:15px">iapUnsuspendAdapter(callback)</td>
52
+ <td style="padding:15px">This call provides the ability to resume a suspended adapter. Any requests in queue will be processed before new requests.</td>
53
+ <td style="padding:15px">Yes</td>
54
+ </tr>
55
+ <tr>
56
+ <td style="padding:15px">iapGetAdapterQueue(callback)</td>
57
+ <td style="padding:15px">This call will return the requests that are waiting in the queue if throttling is enabled.</td>
58
+ <td style="padding:15px">Yes</td>
59
+ </tr>
60
+ <tr>
61
+ <td style="padding:15px">iapTroubleshootAdapter(props, persistFlag, adapter, callback)</td>
62
+ <td style="padding:15px">This call can be used to check on the performance of the adapter - it checks connectivity, healthcheck and basic get calls.</td>
63
+ <td style="padding:15px">Yes</td>
64
+ </tr>
65
+
66
+ <tr>
67
+ <td style="padding:15px">iapRunAdapterHealthcheck(adapter, callback)</td>
68
+ <td style="padding:15px">This call will return the results of a healthcheck.</td>
69
+ <td style="padding:15px">Yes</td>
70
+ </tr>
71
+ <tr>
72
+ <td style="padding:15px">iapRunAdapterConnectivity(callback)</td>
73
+ <td style="padding:15px">This call will return the results of a connectivity check.</td>
74
+ <td style="padding:15px">Yes</td>
75
+ </tr>
76
+ <tr>
77
+ <td style="padding:15px">iapRunAdapterBasicGet(callback)</td>
78
+ <td style="padding:15px">This call will return the results of running basic get API calls.</td>
79
+ <td style="padding:15px">Yes</td>
80
+ </tr>
81
+ <tr>
82
+ <td style="padding:15px">iapMoveAdapterEntitiesToDB(callback)</td>
83
+ <td style="padding:15px">This call will push the adapter configuration from the entities directory into the Adapter or IAP Database.</td>
84
+ <td style="padding:15px">Yes</td>
85
+ </tr>
86
+ <tr>
87
+ <td style="padding:15px">genericAdapterRequest(uriPath, restMethod, queryData, requestBody, addlHeaders, callback)</td>
88
+ <td style="padding:15px">This call allows you to provide the path to have the adapter call. It is an easy way to incorporate paths that have not been built into the adapter yet.</td>
89
+ <td style="padding:15px">Yes</td>
90
+ </tr>
91
+ <tr>
92
+ <td style="padding:15px">genericAdapterRequestNoBasePath(uriPath, restMethod, queryData, requestBody, addlHeaders, callback)</td>
93
+ <td style="padding:15px">This call is the same as the genericAdapterRequest only it does not add a base_path or version to the call.</td>
94
+ <td style="padding:15px">Yes</td>
95
+ </tr>
96
+ <tr>
97
+ <td style="padding:15px">iapHasAdapterEntity(entityType, entityId, callback)</td>
98
+ <td style="padding:15px">This call verifies the adapter has the specific entity.</td>
99
+ <td style="padding:15px">No</td>
100
+ </tr>
101
+ <tr>
102
+ <td style="padding:15px">iapVerifyAdapterCapability(entityType, actionType, entityId, callback)</td>
103
+ <td style="padding:15px">This call verifies the adapter can perform the provided action on the specific entity.</td>
104
+ <td style="padding:15px">No</td>
105
+ </tr>
106
+ <tr>
107
+ <td style="padding:15px">iapUpdateAdapterEntityCache()</td>
108
+ <td style="padding:15px">This call will update the entity cache.</td>
109
+ <td style="padding:15px">No</td>
110
+ </tr>
111
+ </table>
112
+ <br>
113
+
114
+ ### Adapter Broker Calls
115
+
116
+ These are adapter methods that are used to integrate to IAP Brokers. This adapter currently supports the following broker calls.
117
+
118
+ <table border="1" class="bordered-table">
119
+ <tr>
120
+ <th bgcolor="lightgrey" style="padding:15px"><span style="font-size:12.0pt">Method Signature</span></th>
121
+ <th bgcolor="lightgrey" style="padding:15px"><span style="font-size:12.0pt">Description</span></th>
122
+ <th bgcolor="lightgrey" style="padding:15px"><span style="font-size:12.0pt">Workflow?</span></th>
123
+ </tr>
124
+ <tr>
125
+ <td style="padding:15px">hasEntities(entityType, entityList, callback)</td>
126
+ <td style="padding:15px">This call is utilized by the IAP Device Broker to determine if the adapter has a specific entity and item of the entity.</td>
127
+ <td style="padding:15px">No</td>
128
+ </tr>
129
+ <tr>
130
+ <td style="padding:15px">getDevice(deviceName, callback)</td>
131
+ <td style="padding:15px">This call returns the details of the requested device.</td>
132
+ <td style="padding:15px">Yes</td>
133
+ </tr>
134
+ <tr>
135
+ <td style="padding:15px">getDevicesFiltered(options, callback)</td>
136
+ <td style="padding:15px">This call returns the list of devices that match the criteria provided in the options filter.</td>
137
+ <td style="padding:15px">Yes</td>
138
+ </tr>
139
+ <tr>
140
+ <td style="padding:15px">isAlive(deviceName, callback)</td>
141
+ <td style="padding:15px">This call returns whether the device status is active</td>
142
+ <td style="padding:15px">Yes</td>
143
+ </tr>
144
+ <tr>
145
+ <td style="padding:15px">getConfig(deviceName, format, callback)</td>
146
+ <td style="padding:15px">This call returns the configuration for the selected device.</td>
147
+ <td style="padding:15px">Yes</td>
148
+ </tr>
149
+ <tr>
150
+ <td style="padding:15px">iapGetDeviceCount(callback)</td>
151
+ <td style="padding:15px">This call returns the count of devices.</td>
152
+ <td style="padding:15px">Yes</td>
153
+ </tr>
154
+ </table>
155
+ <br>
156
+
157
+
158
+ ### Specific Adapter Calls
159
+
160
+ Specific adapter calls are built based on the API of the Paragon_active_assurance. The Adapter Builder creates the proper method comments for generating JS-DOC for the adapter. This is the best way to get information on the calls.
161
+
162
+ <table border="1" class="bordered-table">
163
+ <tr>
164
+ <th bgcolor="lightgrey" style="padding:15px"><span style="font-size:12.0pt">Method Signature</span></th>
165
+ <th bgcolor="lightgrey" style="padding:15px"><span style="font-size:12.0pt">Description</span></th>
166
+ <th bgcolor="lightgrey" style="padding:15px"><span style="font-size:12.0pt">Path</span></th>
167
+ <th bgcolor="lightgrey" style="padding:15px"><span style="font-size:12.0pt">Workflow?</span></th>
168
+ </tr>
169
+ <tr>
170
+ <td style="padding:15px">listAlarmEmails(account, limit, offset, callback)</td>
171
+ <td style="padding:15px">Retrieve a list of all alarm email lists.</td>
172
+ <td style="padding:15px">{base_path}/{version}/accounts/{pathv1}/alarm_emails/?{query}</td>
173
+ <td style="padding:15px">Yes</td>
174
+ </tr>
175
+ <tr>
176
+ <td style="padding:15px">createAlarmEmails(account, body, callback)</td>
177
+ <td style="padding:15px">Create a new alarm email list.</td>
178
+ <td style="padding:15px">{base_path}/{version}/accounts/{pathv1}/alarm_emails/?{query}</td>
179
+ <td style="padding:15px">Yes</td>
180
+ </tr>
181
+ <tr>
182
+ <td style="padding:15px">deleteAlarmEmails(account, alarmEmailsId, callback)</td>
183
+ <td style="padding:15px">Delete an alarm email list with a given ID.</td>
184
+ <td style="padding:15px">{base_path}/{version}/accounts/{pathv1}/alarm_emails/{pathv2}/?{query}</td>
185
+ <td style="padding:15px">Yes</td>
186
+ </tr>
187
+ <tr>
188
+ <td style="padding:15px">getAlarmEmails(account, alarmEmailsId, callback)</td>
189
+ <td style="padding:15px">Retrieve an alarm email list with a given ID.</td>
190
+ <td style="padding:15px">{base_path}/{version}/accounts/{pathv1}/alarm_emails/{pathv2}/?{query}</td>
191
+ <td style="padding:15px">Yes</td>
192
+ </tr>
193
+ <tr>
194
+ <td style="padding:15px">updateAlarmEmails(account, alarmEmailsId, body, callback)</td>
195
+ <td style="padding:15px">Modify the configuration of an alarm email list with a given ID.</td>
196
+ <td style="padding:15px">{base_path}/{version}/accounts/{pathv1}/alarm_emails/{pathv2}/?{query}</td>
197
+ <td style="padding:15px">Yes</td>
198
+ </tr>
199
+ <tr>
200
+ <td style="padding:15px">listAlarmTemplates(account, limit, offset, callback)</td>
201
+ <td style="padding:15px">Retrieve a list of all alarm templates.</td>
202
+ <td style="padding:15px">{base_path}/{version}/accounts/{pathv1}/alarm_templates/?{query}</td>
203
+ <td style="padding:15px">Yes</td>
204
+ </tr>
205
+ <tr>
206
+ <td style="padding:15px">createAlarmTemplates(account, body, callback)</td>
207
+ <td style="padding:15px">Create a new alarm template.</td>
208
+ <td style="padding:15px">{base_path}/{version}/accounts/{pathv1}/alarm_templates/?{query}</td>
209
+ <td style="padding:15px">Yes</td>
210
+ </tr>
211
+ <tr>
212
+ <td style="padding:15px">deleteAlarmTemplate(account, alarmTemplateId, callback)</td>
213
+ <td style="padding:15px">Delete an alarm template with a given ID.</td>
214
+ <td style="padding:15px">{base_path}/{version}/accounts/{pathv1}/alarm_templates/{pathv2}/?{query}</td>
215
+ <td style="padding:15px">Yes</td>
216
+ </tr>
217
+ <tr>
218
+ <td style="padding:15px">getAlarmTemplate(account, alarmTemplateId, callback)</td>
219
+ <td style="padding:15px">Retrieve the full definition of an alarm template with a given ID.</td>
220
+ <td style="padding:15px">{base_path}/{version}/accounts/{pathv1}/alarm_templates/{pathv2}/?{query}</td>
221
+ <td style="padding:15px">Yes</td>
222
+ </tr>
223
+ <tr>
224
+ <td style="padding:15px">updateAlarmTemplate(account, alarmTemplateId, body, callback)</td>
225
+ <td style="padding:15px">Modify the configuration of an alarm template with a given ID.</td>
226
+ <td style="padding:15px">{base_path}/{version}/accounts/{pathv1}/alarm_templates/{pathv2}/?{query}</td>
227
+ <td style="padding:15px">Yes</td>
228
+ </tr>
229
+ <tr>
230
+ <td style="padding:15px">listAlarms(account, limit, offset, createdTimespanStart, createdTimespanEnd, clearedTimespanStart, clearedTimespanEnd, suppressed, isSuppressed, isActive, isCleared, interfaceName, testAgent, task, callback)</td>
231
+ <td style="padding:15px">Retrieve a list of all alarms with their full definitions. For each alarm, an active config is returned; this is what is used to actually trigger an alarm. It consists of parameters from an alarm template overridden by values from an alarm config.</td>
232
+ <td style="padding:15px">{base_path}/{version}/accounts/{pathv1}/alarms/?{query}</td>
233
+ <td style="padding:15px">Yes</td>
234
+ </tr>
235
+ <tr>
236
+ <td style="padding:15px">deleteAlarm(account, alarmId, callback)</td>
237
+ <td style="padding:15px">Delete an alarm with a given ID.</td>
238
+ <td style="padding:15px">{base_path}/{version}/accounts/{pathv1}/alarms/{pathv2}/?{query}</td>
239
+ <td style="padding:15px">Yes</td>
240
+ </tr>
241
+ <tr>
242
+ <td style="padding:15px">getAlarm(account, alarmId, callback)</td>
243
+ <td style="padding:15px">Retrieve the full definition of an alarm with a given ID. An active config is returned for the alarm; this is what is used to actually trigger it. The config consists of parameters from an alarm template overridden by values from an alarm config.</td>
244
+ <td style="padding:15px">{base_path}/{version}/accounts/{pathv1}/alarms/{pathv2}/?{query}</td>
245
+ <td style="padding:15px">Yes</td>
246
+ </tr>
247
+ <tr>
248
+ <td style="padding:15px">updateAlarm(account, alarmId, body, callback)</td>
249
+ <td style="padding:15px">Suppress an alarm with a given ID so that it will never trigger.</td>
250
+ <td style="padding:15px">{base_path}/{version}/accounts/{pathv1}/alarms/{pathv2}/?{query}</td>
251
+ <td style="padding:15px">Yes</td>
252
+ </tr>
253
+ <tr>
254
+ <td style="padding:15px">listExternalUrlShares(account, limit, offset, callback)</td>
255
+ <td style="padding:15px">Retrieve a list of all external URL shares.</td>
256
+ <td style="padding:15px">{base_path}/{version}/accounts/{pathv1}/external_url_shares/?{query}</td>
257
+ <td style="padding:15px">Yes</td>
258
+ </tr>
259
+ <tr>
260
+ <td style="padding:15px">createExternalUrlShare(account, body, callback)</td>
261
+ <td style="padding:15px">Create a new external URL share.</td>
262
+ <td style="padding:15px">{base_path}/{version}/accounts/{pathv1}/external_url_shares/?{query}</td>
263
+ <td style="padding:15px">Yes</td>
264
+ </tr>
265
+ <tr>
266
+ <td style="padding:15px">deleteExternalUrlShare(account, shareId, callback)</td>
267
+ <td style="padding:15px">Delete a external URL share with a given ID.</td>
268
+ <td style="padding:15px">{base_path}/{version}/accounts/{pathv1}/external_url_shares/{pathv2}/?{query}</td>
269
+ <td style="padding:15px">Yes</td>
270
+ </tr>
271
+ <tr>
272
+ <td style="padding:15px">getExternalUrlShare(account, shareId, callback)</td>
273
+ <td style="padding:15px">Retrieve a external URL share with a given ID.</td>
274
+ <td style="padding:15px">{base_path}/{version}/accounts/{pathv1}/external_url_shares/{pathv2}/?{query}</td>
275
+ <td style="padding:15px">Yes</td>
276
+ </tr>
277
+ <tr>
278
+ <td style="padding:15px">updateExternalUrlShare(account, shareId, body, callback)</td>
279
+ <td style="padding:15px">Modify the configuration of a external URL share with a given ID. Note that changing password requires you to delete the existing and create a new URL share with the new password.</td>
280
+ <td style="padding:15px">{base_path}/{version}/accounts/{pathv1}/external_url_shares/{pathv2}/?{query}</td>
281
+ <td style="padding:15px">Yes</td>
282
+ </tr>
283
+ <tr>
284
+ <td style="padding:15px">listIpLookupTable(account, limit, offset, tag, tagName, callback)</td>
285
+ <td style="padding:15px">Retrieve a list of all IP Lookup Table.</td>
286
+ <td style="padding:15px">{base_path}/{version}/accounts/{pathv1}/ip_lookup_table/?{query}</td>
287
+ <td style="padding:15px">Yes</td>
288
+ </tr>
289
+ <tr>
290
+ <td style="padding:15px">createIpLookupTable(account, body, callback)</td>
291
+ <td style="padding:15px">Create a new IP Lookup Table.</td>
292
+ <td style="padding:15px">{base_path}/{version}/accounts/{pathv1}/ip_lookup_table/?{query}</td>
293
+ <td style="padding:15px">Yes</td>
294
+ </tr>
295
+ <tr>
296
+ <td style="padding:15px">deleteIpLookupTable(account, ipLookupTableId, callback)</td>
297
+ <td style="padding:15px">Delete a IP Lookup Table with a given ID.</td>
298
+ <td style="padding:15px">{base_path}/{version}/accounts/{pathv1}/ip_lookup_table/{pathv2}/?{query}</td>
299
+ <td style="padding:15px">Yes</td>
300
+ </tr>
301
+ <tr>
302
+ <td style="padding:15px">getIpLookupTable(account, ipLookupTableId, callback)</td>
303
+ <td style="padding:15px">Retrieve the configuration of a IP Lookup Table with a given ID.</td>
304
+ <td style="padding:15px">{base_path}/{version}/accounts/{pathv1}/ip_lookup_table/{pathv2}/?{query}</td>
305
+ <td style="padding:15px">Yes</td>
306
+ </tr>
307
+ <tr>
308
+ <td style="padding:15px">updateIpLookupTable(account, ipLookupTableId, body, callback)</td>
309
+ <td style="padding:15px">Modify the configuration of a IP Lookup Table with a given ID.</td>
310
+ <td style="padding:15px">{base_path}/{version}/accounts/{pathv1}/ip_lookup_table/{pathv2}/?{query}</td>
311
+ <td style="padding:15px">Yes</td>
312
+ </tr>
313
+ <tr>
314
+ <td style="padding:15px">listIptvChannels(account, limit, offset, tag, tagName, callback)</td>
315
+ <td style="padding:15px">Retrieve a list of all IPTV channels.</td>
316
+ <td style="padding:15px">{base_path}/{version}/accounts/{pathv1}/iptv_channels/?{query}</td>
317
+ <td style="padding:15px">Yes</td>
318
+ </tr>
319
+ <tr>
320
+ <td style="padding:15px">createIptvChannel(account, body, callback)</td>
321
+ <td style="padding:15px">Create a new IPTV channel.</td>
322
+ <td style="padding:15px">{base_path}/{version}/accounts/{pathv1}/iptv_channels/?{query}</td>
323
+ <td style="padding:15px">Yes</td>
324
+ </tr>
325
+ <tr>
326
+ <td style="padding:15px">deleteIptvChannel(account, iptvId, callback)</td>
327
+ <td style="padding:15px">Delete an IPTV channel with a given ID.</td>
328
+ <td style="padding:15px">{base_path}/{version}/accounts/{pathv1}/iptv_channels/{pathv2}/?{query}</td>
329
+ <td style="padding:15px">Yes</td>
330
+ </tr>
331
+ <tr>
332
+ <td style="padding:15px">getIptvChannel(account, iptvId, callback)</td>
333
+ <td style="padding:15px">Retrieve the configuration of an IPTV channel with a given ID.</td>
334
+ <td style="padding:15px">{base_path}/{version}/accounts/{pathv1}/iptv_channels/{pathv2}/?{query}</td>
335
+ <td style="padding:15px">Yes</td>
336
+ </tr>
337
+ <tr>
338
+ <td style="padding:15px">updateIptvChannel(account, iptvId, body, callback)</td>
339
+ <td style="padding:15px">Modify the configuration of an IPTV channel with a given ID.</td>
340
+ <td style="padding:15px">{base_path}/{version}/accounts/{pathv1}/iptv_channels/{pathv2}/?{query}</td>
341
+ <td style="padding:15px">Yes</td>
342
+ </tr>
343
+ <tr>
344
+ <td style="padding:15px">listMonitorTemplates(account, limit, offset, tag, tagName, callback)</td>
345
+ <td style="padding:15px">Retrieve a list of all monitor templates.</td>
346
+ <td style="padding:15px">{base_path}/{version}/accounts/{pathv1}/monitor_templates/?{query}</td>
347
+ <td style="padding:15px">Yes</td>
348
+ </tr>
349
+ <tr>
350
+ <td style="padding:15px">exportMonitorTemplates(account, ids, callback)</td>
351
+ <td style="padding:15px">Export all monitor templates.</td>
352
+ <td style="padding:15px">{base_path}/{version}/accounts/{pathv1}/monitor_templates/export/?{query}</td>
353
+ <td style="padding:15px">Yes</td>
354
+ </tr>
355
+ <tr>
356
+ <td style="padding:15px">importMonitorTemplates(account, forceOverwrite, body, callback)</td>
357
+ <td style="padding:15px">Import previously exported monitor templates.</td>
358
+ <td style="padding:15px">{base_path}/{version}/accounts/{pathv1}/monitor_templates/import/?{query}</td>
359
+ <td style="padding:15px">Yes</td>
360
+ </tr>
361
+ <tr>
362
+ <td style="padding:15px">getMonitorTemplate(account, templateId, callback)</td>
363
+ <td style="padding:15px">Retrieve the full definition of a monitor template with a given ID.</td>
364
+ <td style="padding:15px">{base_path}/{version}/accounts/{pathv1}/monitor_templates/{pathv2}?{query}</td>
365
+ <td style="padding:15px">Yes</td>
366
+ </tr>
367
+ <tr>
368
+ <td style="padding:15px">updateMonitorTemplate(account, templateId, body, callback)</td>
369
+ <td style="padding:15px">Updates the tag list of a monitor template with a given ID.</td>
370
+ <td style="padding:15px">{base_path}/{version}/accounts/{pathv1}/monitor_templates/{pathv2}?{query}</td>
371
+ <td style="padding:15px">Yes</td>
372
+ </tr>
373
+ <tr>
374
+ <td style="padding:15px">listMonitors(account, limit, offset, start, end, basedOnTemplate, tag, tagName, callback)</td>
375
+ <td style="padding:15px">Retrieve a list of all defined monitors as well as data on SLA fulfillment during their execution. SLA fulfillment is by default indicated for the last 15 minutes. Different time period can be specified with the query string parameters `start` and `end`.</td>
376
+ <td style="padding:15px">{base_path}/{version}/accounts/{pathv1}/monitors/?{query}</td>
377
+ <td style="padding:15px">Yes</td>
378
+ </tr>
379
+ <tr>
380
+ <td style="padding:15px">createMonitor(account, body, callback)</td>
381
+ <td style="padding:15px">Create a new monitor based on a monitor template.</td>
382
+ <td style="padding:15px">{base_path}/{version}/accounts/{pathv1}/monitors/?{query}</td>
383
+ <td style="padding:15px">Yes</td>
384
+ </tr>
385
+ <tr>
386
+ <td style="padding:15px">deleteMonitor(account, monitorId, callback)</td>
387
+ <td style="padding:15px">Delete a monitor with a given ID.</td>
388
+ <td style="padding:15px">{base_path}/{version}/accounts/{pathv1}/monitors/{pathv2}/?{query}</td>
389
+ <td style="padding:15px">Yes</td>
390
+ </tr>
391
+ <tr>
392
+ <td style="padding:15px">getMonitor(account, monitorId, start, end, resolution, withDetailedMetrics, withMetricsAvg, withOtherResults, callback)</td>
393
+ <td style="padding:15px">Retrieve the full definition of a monitor with a given ID, as well as data on SLA fulfillment during its execution and comprehensive data metrics for successive time intervals (the length of these intervals is governed by the resolution parameter). SLA fulfillment is by default indicated for the last 15 minutes. Different time period can be specified with the query string parameters "start" and "end". Periodic tests are run as part of a monitor. If a task has a "task_ty...(description truncated)</td>
394
+ <td style="padding:15px">{base_path}/{version}/accounts/{pathv1}/monitors/{pathv2}/?{query}</td>
395
+ <td style="padding:15px">Yes</td>
396
+ </tr>
397
+ <tr>
398
+ <td style="padding:15px">patchMonitor(account, monitorId, body, callback)</td>
399
+ <td style="padding:15px">You can start or stop a monitor with a given ID. This is done by setting the `started` parameter to True or False. PATCH can also be used to change the monitor name, description or tags. **Note:** PATCH cannot be used to edit other monitor parameters; PUT needs to be used instead.</td>
400
+ <td style="padding:15px">{base_path}/{version}/accounts/{pathv1}/monitors/{pathv2}/?{query}</td>
401
+ <td style="padding:15px">Yes</td>
402
+ </tr>
403
+ <tr>
404
+ <td style="padding:15px">updateMonitor(account, monitorId, body, callback)</td>
405
+ <td style="padding:15px">Modify a monitor with a given ID. **Only monitors based on a templates are allowed to be modified**. Monitor fields possible to update: - name - started - description - input_values - alarm_configs - tags **Note that any other field in the request body will be ignored by the server**.</td>
406
+ <td style="padding:15px">{base_path}/{version}/accounts/{pathv1}/monitors/{pathv2}/?{query}</td>
407
+ <td style="padding:15px">Yes</td>
408
+ </tr>
409
+ <tr>
410
+ <td style="padding:15px">getMonitorPdfreport(account, monitorId, start, end, worstNum, graphs, callback)</td>
411
+ <td style="padding:15px">Generate a PDF report on a monitor with a given ID.</td>
412
+ <td style="padding:15px">{base_path}/{version}/accounts/{pathv1}/monitors/{pathv2}/pdf_report?{query}</td>
413
+ <td style="padding:15px">Yes</td>
414
+ </tr>
415
+ <tr>
416
+ <td style="padding:15px">listNetworkDevices(account, limit, offset, tag, tagName, callback)</td>
417
+ <td style="padding:15px">Retrieve a list of all network devices.</td>
418
+ <td style="padding:15px">{base_path}/{version}/accounts/{pathv1}/network_devices/?{query}</td>
419
+ <td style="padding:15px">Yes</td>
420
+ </tr>
421
+ <tr>
422
+ <td style="padding:15px">createNetworkDevice(account, body, callback)</td>
423
+ <td style="padding:15px">Create a new network device.</td>
424
+ <td style="padding:15px">{base_path}/{version}/accounts/{pathv1}/network_devices/?{query}</td>
425
+ <td style="padding:15px">Yes</td>
426
+ </tr>
427
+ <tr>
428
+ <td style="padding:15px">deleteNetworkDevice(account, networkDeviceId, callback)</td>
429
+ <td style="padding:15px">Delete a network device with a given ID.</td>
430
+ <td style="padding:15px">{base_path}/{version}/accounts/{pathv1}/network_devices/{pathv2}/?{query}</td>
431
+ <td style="padding:15px">Yes</td>
432
+ </tr>
433
+ <tr>
434
+ <td style="padding:15px">getNetworkDevice(account, networkDeviceId, callback)</td>
435
+ <td style="padding:15px">Retrieve the configuration of a network device with a given ID.</td>
436
+ <td style="padding:15px">{base_path}/{version}/accounts/{pathv1}/network_devices/{pathv2}/?{query}</td>
437
+ <td style="padding:15px">Yes</td>
438
+ </tr>
439
+ <tr>
440
+ <td style="padding:15px">updateNetworkDevicePatch(account, networkDeviceId, body, callback)</td>
441
+ <td style="padding:15px">Modify tag list of a network device with a given ID.</td>
442
+ <td style="padding:15px">{base_path}/{version}/accounts/{pathv1}/network_devices/{pathv2}/?{query}</td>
443
+ <td style="padding:15px">Yes</td>
444
+ </tr>
445
+ <tr>
446
+ <td style="padding:15px">updateNetworkDevice(account, networkDeviceId, body, callback)</td>
447
+ <td style="padding:15px">Modify the configuration of a network device with a given ID.</td>
448
+ <td style="padding:15px">{base_path}/{version}/accounts/{pathv1}/network_devices/{pathv2}/?{query}</td>
449
+ <td style="padding:15px">Yes</td>
450
+ </tr>
451
+ <tr>
452
+ <td style="padding:15px">listPingHosts(account, limit, offset, tag, tagName, callback)</td>
453
+ <td style="padding:15px">Retrieve a list of all Ping hosts.</td>
454
+ <td style="padding:15px">{base_path}/{version}/accounts/{pathv1}/ping_hosts/?{query}</td>
455
+ <td style="padding:15px">Yes</td>
456
+ </tr>
457
+ <tr>
458
+ <td style="padding:15px">createPingHost(account, body, callback)</td>
459
+ <td style="padding:15px">Create a new Ping host.</td>
460
+ <td style="padding:15px">{base_path}/{version}/accounts/{pathv1}/ping_hosts/?{query}</td>
461
+ <td style="padding:15px">Yes</td>
462
+ </tr>
463
+ <tr>
464
+ <td style="padding:15px">deletePingHost(account, pinghostId, callback)</td>
465
+ <td style="padding:15px">Delete a Ping host with a given ID.</td>
466
+ <td style="padding:15px">{base_path}/{version}/accounts/{pathv1}/ping_hosts/{pathv2}/?{query}</td>
467
+ <td style="padding:15px">Yes</td>
468
+ </tr>
469
+ <tr>
470
+ <td style="padding:15px">getPingHost(account, pinghostId, callback)</td>
471
+ <td style="padding:15px">Retrieve a Ping host with a given ID.</td>
472
+ <td style="padding:15px">{base_path}/{version}/accounts/{pathv1}/ping_hosts/{pathv2}/?{query}</td>
473
+ <td style="padding:15px">Yes</td>
474
+ </tr>
475
+ <tr>
476
+ <td style="padding:15px">updatePingHostPatch(account, pinghostId, body, callback)</td>
477
+ <td style="padding:15px">Modify the tag list of a Ping host with a given ID.</td>
478
+ <td style="padding:15px">{base_path}/{version}/accounts/{pathv1}/ping_hosts/{pathv2}/?{query}</td>
479
+ <td style="padding:15px">Yes</td>
480
+ </tr>
481
+ <tr>
482
+ <td style="padding:15px">updatePingHost(account, pinghostId, body, callback)</td>
483
+ <td style="padding:15px">Modify the configuration of a Ping host with a given ID.</td>
484
+ <td style="padding:15px">{base_path}/{version}/accounts/{pathv1}/ping_hosts/{pathv2}/?{query}</td>
485
+ <td style="padding:15px">Yes</td>
486
+ </tr>
487
+ <tr>
488
+ <td style="padding:15px">listSipAccounts(account, limit, offset, callback)</td>
489
+ <td style="padding:15px">Retrieve a list of all SIP accounts.</td>
490
+ <td style="padding:15px">{base_path}/{version}/accounts/{pathv1}/sip_accounts/?{query}</td>
491
+ <td style="padding:15px">Yes</td>
492
+ </tr>
493
+ <tr>
494
+ <td style="padding:15px">createSipAccount(account, body, callback)</td>
495
+ <td style="padding:15px">Create a new SIP account.</td>
496
+ <td style="padding:15px">{base_path}/{version}/accounts/{pathv1}/sip_accounts/?{query}</td>
497
+ <td style="padding:15px">Yes</td>
498
+ </tr>
499
+ <tr>
500
+ <td style="padding:15px">deleteSipAccount(account, sipId, callback)</td>
501
+ <td style="padding:15px">Delete a SIP account with a given ID.</td>
502
+ <td style="padding:15px">{base_path}/{version}/accounts/{pathv1}/sip_accounts/{pathv2}/?{query}</td>
503
+ <td style="padding:15px">Yes</td>
504
+ </tr>
505
+ <tr>
506
+ <td style="padding:15px">getSipAccount(account, sipId, callback)</td>
507
+ <td style="padding:15px">Retrieve the configuration of a SIP account with a given ID.</td>
508
+ <td style="padding:15px">{base_path}/{version}/accounts/{pathv1}/sip_accounts/{pathv2}/?{query}</td>
509
+ <td style="padding:15px">Yes</td>
510
+ </tr>
511
+ <tr>
512
+ <td style="padding:15px">updateSipAccount(account, sipId, body, callback)</td>
513
+ <td style="padding:15px">Modify the configuration of a SIP account with a given ID.</td>
514
+ <td style="padding:15px">{base_path}/{version}/accounts/{pathv1}/sip_accounts/{pathv2}/?{query}</td>
515
+ <td style="padding:15px">Yes</td>
516
+ </tr>
517
+ <tr>
518
+ <td style="padding:15px">listSnmpManagers(account, limit, offset, callback)</td>
519
+ <td style="padding:15px">Retrieve a list of all SNMP managers.</td>
520
+ <td style="padding:15px">{base_path}/{version}/accounts/{pathv1}/snmp_managers/?{query}</td>
521
+ <td style="padding:15px">Yes</td>
522
+ </tr>
523
+ <tr>
524
+ <td style="padding:15px">createSnmpManager(account, body, callback)</td>
525
+ <td style="padding:15px">Create a new SNMP manager.</td>
526
+ <td style="padding:15px">{base_path}/{version}/accounts/{pathv1}/snmp_managers/?{query}</td>
527
+ <td style="padding:15px">Yes</td>
528
+ </tr>
529
+ <tr>
530
+ <td style="padding:15px">deleteSnmpManager(account, snmpManagerId, callback)</td>
531
+ <td style="padding:15px">Delete an SNMP manager with a given ID.</td>
532
+ <td style="padding:15px">{base_path}/{version}/accounts/{pathv1}/snmp_managers/{pathv2}/?{query}</td>
533
+ <td style="padding:15px">Yes</td>
534
+ </tr>
535
+ <tr>
536
+ <td style="padding:15px">getSnmpManager(account, snmpManagerId, callback)</td>
537
+ <td style="padding:15px">Retrieve an SNMP manager with a given ID.</td>
538
+ <td style="padding:15px">{base_path}/{version}/accounts/{pathv1}/snmp_managers/{pathv2}/?{query}</td>
539
+ <td style="padding:15px">Yes</td>
540
+ </tr>
541
+ <tr>
542
+ <td style="padding:15px">updateSnmpManager(account, snmpManagerId, body, callback)</td>
543
+ <td style="padding:15px">Modify the configuration of an SNMP manager with a given ID.</td>
544
+ <td style="padding:15px">{base_path}/{version}/accounts/{pathv1}/snmp_managers/{pathv2}/?{query}</td>
545
+ <td style="padding:15px">Yes</td>
546
+ </tr>
547
+ <tr>
548
+ <td style="padding:15px">getSpeedtestResults(account, start, end, limit, offset, callback)</td>
549
+ <td style="padding:15px">Retrieve a list of all Speedtest results.</td>
550
+ <td style="padding:15px">{base_path}/{version}/accounts/{pathv1}/speedtest/results/?{query}</td>
551
+ <td style="padding:15px">Yes</td>
552
+ </tr>
553
+ <tr>
554
+ <td style="padding:15px">getSpeedtest(account, speedtestId, callback)</td>
555
+ <td style="padding:15px">Returns a Speedtest result for a given instance ID.</td>
556
+ <td style="padding:15px">{base_path}/{version}/accounts/{pathv1}/speedtest/results/{pathv2}?{query}</td>
557
+ <td style="padding:15px">Yes</td>
558
+ </tr>
559
+ <tr>
560
+ <td style="padding:15px">listPublicSpeedtestcategories(account, limit, offset, callback)</td>
561
+ <td style="padding:15px">List all Speedtest categories.</td>
562
+ <td style="padding:15px">{base_path}/{version}/accounts/{pathv1}/speedtest_public/categories/?{query}</td>
563
+ <td style="padding:15px">Yes</td>
564
+ </tr>
565
+ <tr>
566
+ <td style="padding:15px">listPublicSpeedtestinterfaces(account, limit, offset, callback)</td>
567
+ <td style="padding:15px">List all Speedtest-enabled Test Agent interfaces.</td>
568
+ <td style="padding:15px">{base_path}/{version}/accounts/{pathv1}/speedtest_public/interfaces/?{query}</td>
569
+ <td style="padding:15px">Yes</td>
570
+ </tr>
571
+ <tr>
572
+ <td style="padding:15px">uploadPublicSpeedtestResult(account, body, callback)</td>
573
+ <td style="padding:15px">This resources uploads a **Speedtest result** that was collected when a speedtest ran on the **Speedtest Page**. Please note that this resource in no way can be used to initiate the **Speedtest**. The actual **Speedtest** is run over a **Websocket** in a session connecting from the **Web browser** of the end user to the **Test Agent** that was chosen.</td>
574
+ <td style="padding:15px">{base_path}/{version}/accounts/{pathv1}/speedtest_public/results/?{query}</td>
575
+ <td style="padding:15px">Yes</td>
576
+ </tr>
577
+ <tr>
578
+ <td style="padding:15px">getPublicSpeedtests(account, speedtestToken, callback)</td>
579
+ <td style="padding:15px">Retrieve all Speedtest results.</td>
580
+ <td style="padding:15px">{base_path}/{version}/accounts/{pathv1}/speedtest_public/results/{pathv2}/?{query}</td>
581
+ <td style="padding:15px">Yes</td>
582
+ </tr>
583
+ <tr>
584
+ <td style="padding:15px">listSshKeys(account, testAgentId, limit, offset, callback)</td>
585
+ <td style="padding:15px">Retrieve a list of all SSH keys for give test agent and account.</td>
586
+ <td style="padding:15px">{base_path}/{version}/accounts/{pathv1}/ssh_keys/?{query}</td>
587
+ <td style="padding:15px">Yes</td>
588
+ </tr>
589
+ <tr>
590
+ <td style="padding:15px">createSshKey(account, testAgentId, body, callback)</td>
591
+ <td style="padding:15px">Add a new SSH key for given Test Agent.</td>
592
+ <td style="padding:15px">{base_path}/{version}/accounts/{pathv1}/ssh_keys/?{query}</td>
593
+ <td style="padding:15px">Yes</td>
594
+ </tr>
595
+ <tr>
596
+ <td style="padding:15px">deleteSshKey(account, sshKeyId, testAgentId, callback)</td>
597
+ <td style="padding:15px">Delete a SSH key with a given ID.</td>
598
+ <td style="padding:15px">{base_path}/{version}/accounts/{pathv1}/ssh_keys/{pathv2}/?{query}</td>
599
+ <td style="padding:15px">Yes</td>
600
+ </tr>
601
+ <tr>
602
+ <td style="padding:15px">getSshKey(account, sshKeyId, testAgentId, callback)</td>
603
+ <td style="padding:15px">Retrieve a SSH key for give Test Agent and id.</td>
604
+ <td style="padding:15px">{base_path}/{version}/accounts/{pathv1}/ssh_keys/{pathv2}/?{query}</td>
605
+ <td style="padding:15px">Yes</td>
606
+ </tr>
607
+ <tr>
608
+ <td style="padding:15px">updateSshKey(account, sshKeyId, testAgentId, body, callback)</td>
609
+ <td style="padding:15px">Modify the configuration of a SSH Key with a given ID and Test Agent ID.</td>
610
+ <td style="padding:15px">{base_path}/{version}/accounts/{pathv1}/ssh_keys/{pathv2}/?{query}</td>
611
+ <td style="padding:15px">Yes</td>
612
+ </tr>
613
+ <tr>
614
+ <td style="padding:15px">getAccountStatistics(account, callback)</td>
615
+ <td style="padding:15px">Return statistics for the NCC account.</td>
616
+ <td style="padding:15px">{base_path}/{version}/accounts/{pathv1}/statistics/?{query}</td>
617
+ <td style="padding:15px">Yes</td>
618
+ </tr>
619
+ <tr>
620
+ <td style="padding:15px">getInstanceStatistics(callback)</td>
621
+ <td style="padding:15px">Return statistics for the NCC instance.</td>
622
+ <td style="padding:15px">{base_path}/{version}/statistics/?{query}</td>
623
+ <td style="padding:15px">Yes</td>
624
+ </tr>
625
+ <tr>
626
+ <td style="padding:15px">listTags(account, limit, offset, callback)</td>
627
+ <td style="padding:15px">Retrieve a list of all tags.</td>
628
+ <td style="padding:15px">{base_path}/{version}/accounts/{pathv1}/tags/?{query}</td>
629
+ <td style="padding:15px">Yes</td>
630
+ </tr>
631
+ <tr>
632
+ <td style="padding:15px">createTag(account, body, callback)</td>
633
+ <td style="padding:15px">Create a new tag.</td>
634
+ <td style="padding:15px">{base_path}/{version}/accounts/{pathv1}/tags/?{query}</td>
635
+ <td style="padding:15px">Yes</td>
636
+ </tr>
637
+ <tr>
638
+ <td style="padding:15px">deleteTag(account, tagId, callback)</td>
639
+ <td style="padding:15px">Delete a tag with a given ID.</td>
640
+ <td style="padding:15px">{base_path}/{version}/accounts/{pathv1}/tags/{pathv2}/?{query}</td>
641
+ <td style="padding:15px">Yes</td>
642
+ </tr>
643
+ <tr>
644
+ <td style="padding:15px">getTag(account, tagId, callback)</td>
645
+ <td style="padding:15px">Retrieve the tag.</td>
646
+ <td style="padding:15px">{base_path}/{version}/accounts/{pathv1}/tags/{pathv2}/?{query}</td>
647
+ <td style="padding:15px">Yes</td>
648
+ </tr>
649
+ <tr>
650
+ <td style="padding:15px">updateTag(account, tagId, body, callback)</td>
651
+ <td style="padding:15px">Modify a tag with a given ID.</td>
652
+ <td style="padding:15px">{base_path}/{version}/accounts/{pathv1}/tags/{pathv2}/?{query}</td>
653
+ <td style="padding:15px">Yes</td>
654
+ </tr>
655
+ <tr>
656
+ <td style="padding:15px">listTestAgents(account, limit, offset, tag, tagName, callback)</td>
657
+ <td style="padding:15px">Retrieve a list of all Test Agents.</td>
658
+ <td style="padding:15px">{base_path}/{version}/accounts/{pathv1}/test_agents/?{query}</td>
659
+ <td style="padding:15px">Yes</td>
660
+ </tr>
661
+ <tr>
662
+ <td style="padding:15px">createTestAgent(account, body, callback)</td>
663
+ <td style="padding:15px">Create a new virtual Test Agent.</td>
664
+ <td style="padding:15px">{base_path}/{version}/accounts/{pathv1}/test_agents/?{query}</td>
665
+ <td style="padding:15px">Yes</td>
666
+ </tr>
667
+ <tr>
668
+ <td style="padding:15px">rebootTestAgent(account, all, body, callback)</td>
669
+ <td style="padding:15px">Trigger a reboot on target Test Agents. The target Test Agents can be provided by either specifying their IDs in a list or using the "?all" query parameter.</td>
670
+ <td style="padding:15px">{base_path}/{version}/accounts/{pathv1}/test_agents/reboot/?{query}</td>
671
+ <td style="padding:15px">Yes</td>
672
+ </tr>
673
+ <tr>
674
+ <td style="padding:15px">upgradeTestAgentSoftware(account, all, body, callback)</td>
675
+ <td style="padding:15px">Reboot and update Test Agents. This action can be run in two ways: for all Test Agents, by appending the "?all" query string in the URL; or for specified Test Agents, listed by ID in the body as described in the schema.</td>
676
+ <td style="padding:15px">{base_path}/{version}/accounts/{pathv1}/test_agents/update/?{query}</td>
677
+ <td style="padding:15px">Yes</td>
678
+ </tr>
679
+ <tr>
680
+ <td style="padding:15px">deleteTestAgent(account, testAgentId, callback)</td>
681
+ <td style="padding:15px">Delete a Test Agent with a given ID.</td>
682
+ <td style="padding:15px">{base_path}/{version}/accounts/{pathv1}/test_agents/{pathv2}/?{query}</td>
683
+ <td style="padding:15px">Yes</td>
684
+ </tr>
685
+ <tr>
686
+ <td style="padding:15px">getTestAgent(account, testAgentId, refreshSystemInformation, callback)</td>
687
+ <td style="padding:15px">Retrieve the configuration of a Test Agent with a given ID.</td>
688
+ <td style="padding:15px">{base_path}/{version}/accounts/{pathv1}/test_agents/{pathv2}/?{query}</td>
689
+ <td style="padding:15px">Yes</td>
690
+ </tr>
691
+ <tr>
692
+ <td style="padding:15px">patchTestAgent(account, testAgentId, body, callback)</td>
693
+ <td style="padding:15px">You can modify ONLY these fields using PATCH: `name`, `description`, `gps_lat`, `gps_long`, `interface_config_metadata`, `tags` **Note:** PATCH cannot be used to edit other Test Agent properties; PUT needs to be used instead.</td>
694
+ <td style="padding:15px">{base_path}/{version}/accounts/{pathv1}/test_agents/{pathv2}/?{query}</td>
695
+ <td style="padding:15px">Yes</td>
696
+ </tr>
697
+ <tr>
698
+ <td style="padding:15px">updateTestAgent(account, testAgentId, body, callback)</td>
699
+ <td style="padding:15px">Modify the configuration of a Test Agent with a given ID. With the PUT method, you need to supply the configuration in its entirety.</td>
700
+ <td style="padding:15px">{base_path}/{version}/accounts/{pathv1}/test_agents/{pathv2}/?{query}</td>
701
+ <td style="padding:15px">Yes</td>
702
+ </tr>
703
+ <tr>
704
+ <td style="padding:15px">testAgentMoveCancel(account, testAgentId, callback)</td>
705
+ <td style="padding:15px">Cancel move of Test Agent instance to other Control Center.</td>
706
+ <td style="padding:15px">{base_path}/{version}/accounts/{pathv1}/test_agents/{pathv2}/move/?{query}</td>
707
+ <td style="padding:15px">Yes</td>
708
+ </tr>
709
+ <tr>
710
+ <td style="padding:15px">testAgentMoveSchedule(account, testAgentId, body, callback)</td>
711
+ <td style="padding:15px">Move Test Agent instance to other Control Center.</td>
712
+ <td style="padding:15px">{base_path}/{version}/accounts/{pathv1}/test_agents/{pathv2}/move/?{query}</td>
713
+ <td style="padding:15px">Yes</td>
714
+ </tr>
715
+ <tr>
716
+ <td style="padding:15px">scanWifiNetworksStop(account, testAgentNumericId, testAgentInterfaceName, callback)</td>
717
+ <td style="padding:15px">Stop the Wi-Fi scan on a named interface of a Test Agent with a given ID.</td>
718
+ <td style="padding:15px">{base_path}/{version}/accounts/{pathv1}/test_agents/{pathv2}/wifiscan/{pathv3}/?{query}</td>
719
+ <td style="padding:15px">Yes</td>
720
+ </tr>
721
+ <tr>
722
+ <td style="padding:15px">scanWifiNetworksResults(account, testAgentNumericId, testAgentInterfaceName, callback)</td>
723
+ <td style="padding:15px">Get results from a Wi-Fi scan on a named interface of a Test Agent with a given ID.</td>
724
+ <td style="padding:15px">{base_path}/{version}/accounts/{pathv1}/test_agents/{pathv2}/wifiscan/{pathv3}/?{query}</td>
725
+ <td style="padding:15px">Yes</td>
726
+ </tr>
727
+ <tr>
728
+ <td style="padding:15px">scanWifiNetworksStart(account, testAgentNumericId, testAgentInterfaceName, callback)</td>
729
+ <td style="padding:15px">Start a Wi-Fi scan on a named interface of a Test Agent with a given ID.</td>
730
+ <td style="padding:15px">{base_path}/{version}/accounts/{pathv1}/test_agents/{pathv2}/wifiscan/{pathv3}/?{query}</td>
731
+ <td style="padding:15px">Yes</td>
732
+ </tr>
733
+ <tr>
734
+ <td style="padding:15px">listTestTemplates(account, limit, offset, tag, tagName, callback)</td>
735
+ <td style="padding:15px">Retrieve a list of all test templates.</td>
736
+ <td style="padding:15px">{base_path}/{version}/accounts/{pathv1}/test_templates/?{query}</td>
737
+ <td style="padding:15px">Yes</td>
738
+ </tr>
739
+ <tr>
740
+ <td style="padding:15px">exportTestTemplates(account, ids, callback)</td>
741
+ <td style="padding:15px">Export all test templates.</td>
742
+ <td style="padding:15px">{base_path}/{version}/accounts/{pathv1}/test_templates/export/?{query}</td>
743
+ <td style="padding:15px">Yes</td>
744
+ </tr>
745
+ <tr>
746
+ <td style="padding:15px">importTestTemplates(account, forceOverwrite, body, callback)</td>
747
+ <td style="padding:15px">Import previously exported test templates.</td>
748
+ <td style="padding:15px">{base_path}/{version}/accounts/{pathv1}/test_templates/import/?{query}</td>
749
+ <td style="padding:15px">Yes</td>
750
+ </tr>
751
+ <tr>
752
+ <td style="padding:15px">getTestTemplate(account, templateId, callback)</td>
753
+ <td style="padding:15px">Retrieve the full definition of a test template with a given ID.</td>
754
+ <td style="padding:15px">{base_path}/{version}/accounts/{pathv1}/test_templates/{pathv2}/?{query}</td>
755
+ <td style="padding:15px">Yes</td>
756
+ </tr>
757
+ <tr>
758
+ <td style="padding:15px">updateTestTemplate(account, templateId, callback)</td>
759
+ <td style="padding:15px">Update the tag list of a test template instance.</td>
760
+ <td style="padding:15px">{base_path}/{version}/accounts/{pathv1}/test_templates/{pathv2}/?{query}</td>
761
+ <td style="padding:15px">Yes</td>
762
+ </tr>
763
+ <tr>
764
+ <td style="padding:15px">listTests(account, limit, offset, tag, tagName, callback)</td>
765
+ <td style="padding:15px">Retrieve a list of all defined tests.</td>
766
+ <td style="padding:15px">{base_path}/{version}/accounts/{pathv1}/tests/?{query}</td>
767
+ <td style="padding:15px">Yes</td>
768
+ </tr>
769
+ <tr>
770
+ <td style="padding:15px">createTest(account, body, callback)</td>
771
+ <td style="padding:15px">Create a test based on a test template, and run the test.</td>
772
+ <td style="padding:15px">{base_path}/{version}/accounts/{pathv1}/tests/?{query}</td>
773
+ <td style="padding:15px">Yes</td>
774
+ </tr>
775
+ <tr>
776
+ <td style="padding:15px">deleteTest(account, testId, callback)</td>
777
+ <td style="padding:15px">Delete a test with a given ID.</td>
778
+ <td style="padding:15px">{base_path}/{version}/accounts/{pathv1}/tests/{pathv2}/?{query}</td>
779
+ <td style="padding:15px">Yes</td>
780
+ </tr>
781
+ <tr>
782
+ <td style="padding:15px">getTest(account, testId, withDetailedMetrics, withMetricsAvg, withOtherResults, callback)</td>
783
+ <td style="padding:15px">Retrieve results for a test with a given ID.</td>
784
+ <td style="padding:15px">{base_path}/{version}/accounts/{pathv1}/tests/{pathv2}/?{query}</td>
785
+ <td style="padding:15px">Yes</td>
786
+ </tr>
787
+ <tr>
788
+ <td style="padding:15px">updateTest(account, testId, body, callback)</td>
789
+ <td style="padding:15px">Update the tag list for a test with a given ID.</td>
790
+ <td style="padding:15px">{base_path}/{version}/accounts/{pathv1}/tests/{pathv2}/?{query}</td>
791
+ <td style="padding:15px">Yes</td>
792
+ </tr>
793
+ <tr>
794
+ <td style="padding:15px">getTestPdfreport(account, testId, start, end, worstNum, graphs, callback)</td>
795
+ <td style="padding:15px">Generate a PDF report on a test with a given ID.</td>
796
+ <td style="padding:15px">{base_path}/{version}/accounts/{pathv1}/tests/{pathv2}/pdf_report?{query}</td>
797
+ <td style="padding:15px">Yes</td>
798
+ </tr>
799
+ <tr>
800
+ <td style="padding:15px">listTwampReflectors(account, limit, offset, tag, tagName, callback)</td>
801
+ <td style="padding:15px">Retrieve a list of all TWAMP reflectors.</td>
802
+ <td style="padding:15px">{base_path}/{version}/accounts/{pathv1}/twamp_reflectors/?{query}</td>
803
+ <td style="padding:15px">Yes</td>
804
+ </tr>
805
+ <tr>
806
+ <td style="padding:15px">createTwampReflector(account, body, callback)</td>
807
+ <td style="padding:15px">Create a new TWAMP reflector.</td>
808
+ <td style="padding:15px">{base_path}/{version}/accounts/{pathv1}/twamp_reflectors/?{query}</td>
809
+ <td style="padding:15px">Yes</td>
810
+ </tr>
811
+ <tr>
812
+ <td style="padding:15px">deleteTwampReflector(account, twampId, callback)</td>
813
+ <td style="padding:15px">Delete a TWAMP reflector with a given ID.</td>
814
+ <td style="padding:15px">{base_path}/{version}/accounts/{pathv1}/twamp_reflectors/{pathv2}/?{query}</td>
815
+ <td style="padding:15px">Yes</td>
816
+ </tr>
817
+ <tr>
818
+ <td style="padding:15px">getTwampReflector(account, twampId, callback)</td>
819
+ <td style="padding:15px">Retrieve the configuration of a TWAMP reflector with a given ID.</td>
820
+ <td style="padding:15px">{base_path}/{version}/accounts/{pathv1}/twamp_reflectors/{pathv2}/?{query}</td>
821
+ <td style="padding:15px">Yes</td>
822
+ </tr>
823
+ <tr>
824
+ <td style="padding:15px">updateTwampReflectorPatch(account, twampId, body, callback)</td>
825
+ <td style="padding:15px">Modify the tag list of a TWAMP reflector with a given ID.</td>
826
+ <td style="padding:15px">{base_path}/{version}/accounts/{pathv1}/twamp_reflectors/{pathv2}/?{query}</td>
827
+ <td style="padding:15px">Yes</td>
828
+ </tr>
829
+ <tr>
830
+ <td style="padding:15px">updateTwampReflector(account, twampId, body, callback)</td>
831
+ <td style="padding:15px">Modify the configuration of a TWAMP reflector with a given ID.</td>
832
+ <td style="padding:15px">{base_path}/{version}/accounts/{pathv1}/twamp_reflectors/{pathv2}/?{query}</td>
833
+ <td style="padding:15px">Yes</td>
834
+ </tr>
835
+ <tr>
836
+ <td style="padding:15px">listY1731Meps(account, limit, offset, tag, tagName, callback)</td>
837
+ <td style="padding:15px">Retrieve a list of all Y.1731 MEPs.</td>
838
+ <td style="padding:15px">{base_path}/{version}/accounts/{pathv1}/y1731_meps/?{query}</td>
839
+ <td style="padding:15px">Yes</td>
840
+ </tr>
841
+ <tr>
842
+ <td style="padding:15px">createY1731Mep(account, body, callback)</td>
843
+ <td style="padding:15px">Create a new Y.1731 MEP.</td>
844
+ <td style="padding:15px">{base_path}/{version}/accounts/{pathv1}/y1731_meps/?{query}</td>
845
+ <td style="padding:15px">Yes</td>
846
+ </tr>
847
+ <tr>
848
+ <td style="padding:15px">deleteY1731Mep(account, mepId, callback)</td>
849
+ <td style="padding:15px">Delete a Y.1731 MEP with a given ID.</td>
850
+ <td style="padding:15px">{base_path}/{version}/accounts/{pathv1}/y1731_meps/{pathv2}/?{query}</td>
851
+ <td style="padding:15px">Yes</td>
852
+ </tr>
853
+ <tr>
854
+ <td style="padding:15px">getY1731Mep(account, mepId, callback)</td>
855
+ <td style="padding:15px">Retrieve the configuration of a Y.1731 MEP with a given ID.</td>
856
+ <td style="padding:15px">{base_path}/{version}/accounts/{pathv1}/y1731_meps/{pathv2}/?{query}</td>
857
+ <td style="padding:15px">Yes</td>
858
+ </tr>
859
+ <tr>
860
+ <td style="padding:15px">updateY1731Mep(account, mepId, body, callback)</td>
861
+ <td style="padding:15px">Modify the configuration of a Y.1731 MEP with a given ID.</td>
862
+ <td style="padding:15px">{base_path}/{version}/accounts/{pathv1}/y1731_meps/{pathv2}/?{query}</td>
863
+ <td style="padding:15px">Yes</td>
864
+ </tr>
865
+ </table>
866
+ <br>