@itentialopensource/adapter-etsi_sol005 0.2.0 → 0.3.0

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 (42) hide show
  1. package/CALLS.md +643 -22
  2. package/CHANGELOG.md +8 -0
  3. package/CONTRIBUTING.md +1 -160
  4. package/ENHANCE.md +2 -2
  5. package/README.md +32 -23
  6. package/adapter.js +157 -329
  7. package/adapterBase.js +549 -879
  8. package/changelogs/CHANGELOG.md +16 -0
  9. package/metadata.json +49 -0
  10. package/package.json +24 -25
  11. package/pronghorn.json +981 -642
  12. package/propertiesSchema.json +431 -31
  13. package/refs?service=git-upload-pack +0 -0
  14. package/report/adapter-openapi.json +13346 -0
  15. package/report/adapter-openapi.yaml +7369 -0
  16. package/report/adapterInfo.json +8 -8
  17. package/report/updateReport1691507404089.json +120 -0
  18. package/report/updateReport1692202438557.json +120 -0
  19. package/report/updateReport1694460697967.json +120 -0
  20. package/report/updateReport1698420513256.json +120 -0
  21. package/sampleProperties.json +63 -2
  22. package/test/integration/adapterTestBasicGet.js +2 -4
  23. package/test/integration/adapterTestConnectivity.js +91 -42
  24. package/test/integration/adapterTestIntegration.js +130 -2
  25. package/test/unit/adapterBaseTestUnit.js +388 -313
  26. package/test/unit/adapterTestUnit.js +338 -112
  27. package/utils/adapterInfo.js +1 -1
  28. package/utils/addAuth.js +1 -1
  29. package/utils/artifactize.js +1 -1
  30. package/utils/checkMigrate.js +1 -1
  31. package/utils/entitiesToDB.js +2 -2
  32. package/utils/findPath.js +1 -1
  33. package/utils/methodDocumentor.js +273 -0
  34. package/utils/modify.js +13 -15
  35. package/utils/packModificationScript.js +1 -1
  36. package/utils/pre-commit.sh +2 -0
  37. package/utils/taskMover.js +309 -0
  38. package/utils/tbScript.js +89 -34
  39. package/utils/tbUtils.js +41 -21
  40. package/utils/testRunner.js +1 -1
  41. package/utils/troubleshootingAdapter.js +9 -6
  42. package/workflows/README.md +0 -3
package/CALLS.md CHANGED
@@ -19,7 +19,7 @@ These are adapter methods that IAP or you might use. There are some other method
19
19
  </tr>
20
20
  <tr>
21
21
  <td style="padding:15px">healthCheck(callback)</td>
22
- <td style="padding:15px">This call ensures that the adapter can communicate with ETSI Standard sol005. The actual call that is used is defined in the adapter properties and .system entities action.json file.</td>
22
+ <td style="padding:15px">This call ensures that the adapter can communicate with Adapter for ETSI NFV-SOL 005. The actual call that is used is defined in the adapter properties and .system entities action.json file.</td>
23
23
  <td style="padding:15px">No</td>
24
24
  </tr>
25
25
  <tr>
@@ -29,7 +29,7 @@ These are adapter methods that IAP or you might use. There are some other method
29
29
  </tr>
30
30
  <tr>
31
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 ETSI Standard sol005.</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 Adapter for ETSI NFV-SOL 005.</td>
33
33
  <td style="padding:15px">No</td>
34
34
  </tr>
35
35
  <tr>
@@ -37,11 +37,6 @@ These are adapter methods that IAP or you might use. There are some other method
37
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
38
  <td style="padding:15px">Yes</td>
39
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
40
  <tr>
46
41
  <td style="padding:15px">iapSuspendAdapter(mode, callback)</td>
47
42
  <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>
@@ -57,12 +52,16 @@ These are adapter methods that IAP or you might use. There are some other method
57
52
  <td style="padding:15px">This call will return the requests that are waiting in the queue if throttling is enabled.</td>
58
53
  <td style="padding:15px">Yes</td>
59
54
  </tr>
55
+ <tr>
56
+ <td style="padding:15px">iapFindAdapterPath(apiPath, callback)</td>
57
+ <td style="padding:15px">This call provides the ability to see if a particular API path is supported by the adapter.</td>
58
+ <td style="padding:15px">Yes</td>
59
+ </tr>
60
60
  <tr>
61
61
  <td style="padding:15px">iapTroubleshootAdapter(props, persistFlag, adapter, callback)</td>
62
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
63
  <td style="padding:15px">Yes</td>
64
64
  </tr>
65
-
66
65
  <tr>
67
66
  <td style="padding:15px">iapRunAdapterHealthcheck(adapter, callback)</td>
68
67
  <td style="padding:15px">This call will return the results of a healthcheck.</td>
@@ -83,6 +82,21 @@ These are adapter methods that IAP or you might use. There are some other method
83
82
  <td style="padding:15px">This call will push the adapter configuration from the entities directory into the Adapter or IAP Database.</td>
84
83
  <td style="padding:15px">Yes</td>
85
84
  </tr>
85
+ <tr>
86
+ <td style="padding:15px">iapDeactivateTasks(tasks, callback)</td>
87
+ <td style="padding:15px">This call provides the ability to remove tasks from the adapter.</td>
88
+ <td style="padding:15px">Yes</td>
89
+ </tr>
90
+ <tr>
91
+ <td style="padding:15px">iapActivateTasks(tasks, callback)</td>
92
+ <td style="padding:15px">This call provides the ability to add deactivated tasks back into the adapter.</td>
93
+ <td style="padding:15px">Yes</td>
94
+ </tr>
95
+ <tr>
96
+ <td style="padding:15px">iapExpandedGenericAdapterRequest(metadata, uriPath, restMethod, pathVars, queryData, requestBody, addlHeaders, callback)</td>
97
+ <td style="padding:15px">This is an expanded Generic Call. The metadata object allows us to provide many new capabilities within the generic request.</td>
98
+ <td style="padding:15px">Yes</td>
99
+ </tr>
86
100
  <tr>
87
101
  <td style="padding:15px">genericAdapterRequest(uriPath, restMethod, queryData, requestBody, addlHeaders, callback)</td>
88
102
  <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>
@@ -94,19 +108,42 @@ These are adapter methods that IAP or you might use. There are some other method
94
108
  <td style="padding:15px">Yes</td>
95
109
  </tr>
96
110
  <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>
111
+ <td style="padding:15px">iapRunAdapterLint(callback)</td>
112
+ <td style="padding:15px">Runs lint on the addapter and provides the information back.</td>
113
+ <td style="padding:15px">Yes</td>
100
114
  </tr>
101
115
  <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>
116
+ <td style="padding:15px">iapRunAdapterTests(callback)</td>
117
+ <td style="padding:15px">Runs baseunit and unit tests on the adapter and provides the information back.</td>
118
+ <td style="padding:15px">Yes</td>
105
119
  </tr>
106
120
  <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>
121
+ <td style="padding:15px">iapGetAdapterInventory(callback)</td>
122
+ <td style="padding:15px">This call provides some inventory related information about the adapter.</td>
123
+ <td style="padding:15px">Yes</td>
124
+ </tr>
125
+ </table>
126
+ <br>
127
+
128
+ ### Adapter Cache Calls
129
+
130
+ These are adapter methods that are used for adapter caching. If configured, the adapter will cache based on the interval provided. However, you can force a population of the cache manually as well.
131
+
132
+ <table border="1" class="bordered-table">
133
+ <tr>
134
+ <th bgcolor="lightgrey" style="padding:15px"><span style="font-size:12.0pt">Method Signature</span></th>
135
+ <th bgcolor="lightgrey" style="padding:15px"><span style="font-size:12.0pt">Description</span></th>
136
+ <th bgcolor="lightgrey" style="padding:15px"><span style="font-size:12.0pt">Workflow?</span></th>
137
+ </tr>
138
+ <tr>
139
+ <td style="padding:15px">iapPopulateEntityCache(entityTypes, callback)</td>
140
+ <td style="padding:15px">This call populates the adapter cache.</td>
141
+ <td style="padding:15px">Yes</td>
142
+ </tr>
143
+ <tr>
144
+ <td style="padding:15px">iapRetrieveEntitiesCache(entityType, options, callback)</td>
145
+ <td style="padding:15px">This call retrieves the specific items from the adapter cache.</td>
146
+ <td style="padding:15px">Yes</td>
110
147
  </tr>
111
148
  </table>
112
149
  <br>
@@ -129,27 +166,27 @@ These are adapter methods that are used to integrate to IAP Brokers. This adapte
129
166
  <tr>
130
167
  <td style="padding:15px">getDevice(deviceName, callback)</td>
131
168
  <td style="padding:15px">This call returns the details of the requested device.</td>
132
- <td style="padding:15px">Yes</td>
169
+ <td style="padding:15px">No</td>
133
170
  </tr>
134
171
  <tr>
135
172
  <td style="padding:15px">getDevicesFiltered(options, callback)</td>
136
173
  <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>
174
+ <td style="padding:15px">No</td>
138
175
  </tr>
139
176
  <tr>
140
177
  <td style="padding:15px">isAlive(deviceName, callback)</td>
141
178
  <td style="padding:15px">This call returns whether the device status is active</td>
142
- <td style="padding:15px">Yes</td>
179
+ <td style="padding:15px">No</td>
143
180
  </tr>
144
181
  <tr>
145
182
  <td style="padding:15px">getConfig(deviceName, format, callback)</td>
146
183
  <td style="padding:15px">This call returns the configuration for the selected device.</td>
147
- <td style="padding:15px">Yes</td>
184
+ <td style="padding:15px">No</td>
148
185
  </tr>
149
186
  <tr>
150
187
  <td style="padding:15px">iapGetDeviceCount(callback)</td>
151
188
  <td style="padding:15px">This call returns the count of devices.</td>
152
- <td style="padding:15px">Yes</td>
189
+ <td style="padding:15px">No</td>
153
190
  </tr>
154
191
  </table>
155
192
  <br>
@@ -165,5 +202,589 @@ Specific adapter calls are built based on the API of the ETSI Standard sol005. T
165
202
  <th bgcolor="lightgrey" style="padding:15px"><span style="font-size:12.0pt">Path</span></th>
166
203
  <th bgcolor="lightgrey" style="padding:15px"><span style="font-size:12.0pt">Workflow?</span></th>
167
204
  </tr>
205
+ <tr>
206
+ <td style="padding:15px">getApiVersions(callback)</td>
207
+ <td style="padding:15px">Retrieve API version information</td>
208
+ <td style="padding:15px">{base_path}/{version}/nsd/v2/api_versions?{query}</td>
209
+ <td style="padding:15px">Yes</td>
210
+ </tr>
211
+ <tr>
212
+ <td style="padding:15px">postNsDescriptors(body, callback)</td>
213
+ <td style="padding:15px">Create a new NS descriptor resource.</td>
214
+ <td style="padding:15px">{base_path}/{version}/nsd/v2/ns_descriptors?{query}</td>
215
+ <td style="padding:15px">Yes</td>
216
+ </tr>
217
+ <tr>
218
+ <td style="padding:15px">getNsDescriptors(filter, allFields, fields, excludeFields, excludeDefault, nextpageOpaqueMarker, callback)</td>
219
+ <td style="padding:15px">Query information about multiple NS descriptor resources.</td>
220
+ <td style="padding:15px">{base_path}/{version}/nsd/v2/ns_descriptors?{query}</td>
221
+ <td style="padding:15px">Yes</td>
222
+ </tr>
223
+ <tr>
224
+ <td style="padding:15px">getNsDescriptorsNsdInfoId(nsdInfoId, callback)</td>
225
+ <td style="padding:15px">Read information about an individual NS descriptor resource.</td>
226
+ <td style="padding:15px">{base_path}/{version}/nsd/v2/ns_descriptors/{pathv1}?{query}</td>
227
+ <td style="padding:15px">Yes</td>
228
+ </tr>
229
+ <tr>
230
+ <td style="padding:15px">patchNsDescriptorsNsdInfoId(nsdInfoId, body, callback)</td>
231
+ <td style="padding:15px">Modify the operational state and/or the user defined data of an individual NS descriptor resource.</td>
232
+ <td style="padding:15px">{base_path}/{version}/nsd/v2/ns_descriptors/{pathv1}?{query}</td>
233
+ <td style="padding:15px">Yes</td>
234
+ </tr>
235
+ <tr>
236
+ <td style="padding:15px">deleteNsDescriptorsNsdInfoId(nsdInfoId, callback)</td>
237
+ <td style="padding:15px">Delete an individual NS descriptor resource.</td>
238
+ <td style="padding:15px">{base_path}/{version}/nsd/v2/ns_descriptors/{pathv1}?{query}</td>
239
+ <td style="padding:15px">Yes</td>
240
+ </tr>
241
+ <tr>
242
+ <td style="padding:15px">getNsDescriptorsNsdInfoIdNsdContent(nsdInfoId, callback)</td>
243
+ <td style="padding:15px">Fetch the content of a NSD.</td>
244
+ <td style="padding:15px">{base_path}/{version}/nsd/v2/ns_descriptors/{pathv1}/nsd_content?{query}</td>
245
+ <td style="padding:15px">Yes</td>
246
+ </tr>
247
+ <tr>
248
+ <td style="padding:15px">putNsDescriptorsNsdInfoIdNsdContent(nsdInfoId, callback)</td>
249
+ <td style="padding:15px">Upload the content of a NSD.</td>
250
+ <td style="padding:15px">{base_path}/{version}/nsd/v2/ns_descriptors/{pathv1}/nsd_content?{query}</td>
251
+ <td style="padding:15px">Yes</td>
252
+ </tr>
253
+ <tr>
254
+ <td style="padding:15px">getNsDescriptorsNsdInfoIdNsd(nsdInfoId, includeSignatures, callback)</td>
255
+ <td style="padding:15px">The GET method reads the content of the NSD within an NSD archive.
256
+ The NSD can be implemented as a</td>
257
+ <td style="padding:15px">{base_path}/{version}/nsd/v2/ns_descriptors/{pathv1}/nsd?{query}</td>
258
+ <td style="padding:15px">Yes</td>
259
+ </tr>
260
+ <tr>
261
+ <td style="padding:15px">getNsDescriptorsNsdInfoIdManifest(nsdInfoId, includeSignatures, callback)</td>
262
+ <td style="padding:15px">Fetch the content of the manifest in an NSD archive.</td>
263
+ <td style="padding:15px">{base_path}/{version}/nsd/v2/ns_descriptors/{pathv1}/manifest?{query}</td>
264
+ <td style="padding:15px">Yes</td>
265
+ </tr>
266
+ <tr>
267
+ <td style="padding:15px">getNsDescriptorsNsdInfoIdArtifactsArtifactPath(nsdInfoId, artifactPath, includeSignatures, callback)</td>
268
+ <td style="padding:15px">The GET method fetches the content of an individual artifact within
269
+ a NSD archive.
270
+
271
+ This method sha</td>
272
+ <td style="padding:15px">{base_path}/{version}/nsd/v2/ns_descriptors/{pathv1}/artifacts/{pathv2}?{query}</td>
273
+ <td style="padding:15px">Yes</td>
274
+ </tr>
275
+ <tr>
276
+ <td style="padding:15px">postPnfDescriptors(body, callback)</td>
277
+ <td style="padding:15px">Create a new PNF descriptor resource.</td>
278
+ <td style="padding:15px">{base_path}/{version}/nsd/v2/pnf_descriptors?{query}</td>
279
+ <td style="padding:15px">Yes</td>
280
+ </tr>
281
+ <tr>
282
+ <td style="padding:15px">getPnfDescriptors(filter, allFields, fields, excludeFields, excludeDefault, nextpageOpaqueMarker, callback)</td>
283
+ <td style="padding:15px">Query information about multiple PNF descriptor resources.</td>
284
+ <td style="padding:15px">{base_path}/{version}/nsd/v2/pnf_descriptors?{query}</td>
285
+ <td style="padding:15px">Yes</td>
286
+ </tr>
287
+ <tr>
288
+ <td style="padding:15px">getPnfDescriptorsPnfdInfoId(pnfdInfoId, callback)</td>
289
+ <td style="padding:15px">Read an individual PNFD resource.</td>
290
+ <td style="padding:15px">{base_path}/{version}/nsd/v2/pnf_descriptors/{pathv1}?{query}</td>
291
+ <td style="padding:15px">Yes</td>
292
+ </tr>
293
+ <tr>
294
+ <td style="padding:15px">patchPnfDescriptorsPnfdInfoId(pnfdInfoId, body, callback)</td>
295
+ <td style="padding:15px">Modify the user defined data of an individual PNF descriptor resource.</td>
296
+ <td style="padding:15px">{base_path}/{version}/nsd/v2/pnf_descriptors/{pathv1}?{query}</td>
297
+ <td style="padding:15px">Yes</td>
298
+ </tr>
299
+ <tr>
300
+ <td style="padding:15px">deletePnfDescriptorsPnfdInfoId(pnfdInfoId, callback)</td>
301
+ <td style="padding:15px">Delete an individual PNF descriptor resource.</td>
302
+ <td style="padding:15px">{base_path}/{version}/nsd/v2/pnf_descriptors/{pathv1}?{query}</td>
303
+ <td style="padding:15px">Yes</td>
304
+ </tr>
305
+ <tr>
306
+ <td style="padding:15px">getPnfDescriptorsPnfdInfoIdPnfdContent(pnfdInfoId, callback)</td>
307
+ <td style="padding:15px">Fetch the content of a PNFD.</td>
308
+ <td style="padding:15px">{base_path}/{version}/nsd/v2/pnf_descriptors/{pathv1}/pnfd_content?{query}</td>
309
+ <td style="padding:15px">Yes</td>
310
+ </tr>
311
+ <tr>
312
+ <td style="padding:15px">putPnfDescriptorsPnfdInfoIdPnfdContent(pnfdInfoId, callback)</td>
313
+ <td style="padding:15px">Upload the content of a PNFD.</td>
314
+ <td style="padding:15px">{base_path}/{version}/nsd/v2/pnf_descriptors/{pathv1}/pnfd_content?{query}</td>
315
+ <td style="padding:15px">Yes</td>
316
+ </tr>
317
+ <tr>
318
+ <td style="padding:15px">getPnfDescriptorsPnfdInfoIdPnfd(pnfdInfoId, includeSignatures, callback)</td>
319
+ <td style="padding:15px">The GET method reads the content of the PNFD within a PNFD archive.
320
+ The PNFD can be implemented as</td>
321
+ <td style="padding:15px">{base_path}/{version}/nsd/v2/pnf_descriptors/{pathv1}/pnfd?{query}</td>
322
+ <td style="padding:15px">Yes</td>
323
+ </tr>
324
+ <tr>
325
+ <td style="padding:15px">getPnfDescriptorsPnfdInfoIdManifest(pnfdInfoId, includeSignatures, callback)</td>
326
+ <td style="padding:15px">The GET method reads the content of the manifest file within a PNFD archive.
327
+ This method shall foll</td>
328
+ <td style="padding:15px">{base_path}/{version}/nsd/v2/pnf_descriptors/{pathv1}/manifest?{query}</td>
329
+ <td style="padding:15px">Yes</td>
330
+ </tr>
331
+ <tr>
332
+ <td style="padding:15px">getPnfDescriptorsPnfdInfoIdArtifactsArtifactPath(pnfdInfoId, artifactPath, includeSignatures, callback)</td>
333
+ <td style="padding:15px">The GET method fetches the content of an individual artifact within a PNFD archive.
334
+
335
+ This method sh</td>
336
+ <td style="padding:15px">{base_path}/{version}/nsd/v2/pnf_descriptors/{pathv1}/artifacts/{pathv2}?{query}</td>
337
+ <td style="padding:15px">Yes</td>
338
+ </tr>
339
+ <tr>
340
+ <td style="padding:15px">postSubscriptions(body, callback)</td>
341
+ <td style="padding:15px">Subscribe to NSD and PNFD change notifications.</td>
342
+ <td style="padding:15px">{base_path}/{version}/nsd/v2/subscriptions?{query}</td>
343
+ <td style="padding:15px">Yes</td>
344
+ </tr>
345
+ <tr>
346
+ <td style="padding:15px">getSubscriptions(filter, nextpageOpaqueMarker, callback)</td>
347
+ <td style="padding:15px">Query multiple subscriptions.</td>
348
+ <td style="padding:15px">{base_path}/{version}/nsd/v2/subscriptions?{query}</td>
349
+ <td style="padding:15px">Yes</td>
350
+ </tr>
351
+ <tr>
352
+ <td style="padding:15px">getSubscriptionsSubscriptionId(subscriptionId, callback)</td>
353
+ <td style="padding:15px">Read an individual subscription resource.</td>
354
+ <td style="padding:15px">{base_path}/{version}/nsd/v2/subscriptions/{pathv1}?{query}</td>
355
+ <td style="padding:15px">Yes</td>
356
+ </tr>
357
+ <tr>
358
+ <td style="padding:15px">deleteSubscriptionsSubscriptionId(subscriptionId, callback)</td>
359
+ <td style="padding:15px">Terminate Subscription</td>
360
+ <td style="padding:15px">{base_path}/{version}/nsd/v2/subscriptions/{pathv1}?{query}</td>
361
+ <td style="padding:15px">Yes</td>
362
+ </tr>
363
+ <tr>
364
+ <td style="padding:15px">getAlarms(filter, nextpageOpaqueMarker, callback)</td>
365
+ <td style="padding:15px">Query alarms related to NS instances.</td>
366
+ <td style="padding:15px">{base_path}/{version}/nsfm/v1/alarms?{query}</td>
367
+ <td style="padding:15px">Yes</td>
368
+ </tr>
369
+ <tr>
370
+ <td style="padding:15px">getAlarmsAlarmId(alarmId, callback)</td>
371
+ <td style="padding:15px">Read individual alarm.</td>
372
+ <td style="padding:15px">{base_path}/{version}/nsfm/v1/alarms/{pathv1}?{query}</td>
373
+ <td style="padding:15px">Yes</td>
374
+ </tr>
375
+ <tr>
376
+ <td style="padding:15px">patchAlarmsAlarmId(alarmId, body, callback)</td>
377
+ <td style="padding:15px">Acknowledge individual alarm.</td>
378
+ <td style="padding:15px">{base_path}/{version}/nsfm/v1/alarms/{pathv1}?{query}</td>
379
+ <td style="padding:15px">Yes</td>
380
+ </tr>
381
+ <tr>
382
+ <td style="padding:15px">getVnfPackages(filter, allFields, fields, excludeFields, excludeDefault, nextpageOpaqueMarker, callback)</td>
383
+ <td style="padding:15px">Query VNF packages information.</td>
384
+ <td style="padding:15px">{base_path}/{version}/vnfpkgm/v2/vnf_packages?{query}</td>
385
+ <td style="padding:15px">Yes</td>
386
+ </tr>
387
+ <tr>
388
+ <td style="padding:15px">postVnfPackages(body, callback)</td>
389
+ <td style="padding:15px">Create a new individual VNF package resource.</td>
390
+ <td style="padding:15px">{base_path}/{version}/vnfpkgm/v2/vnf_packages?{query}</td>
391
+ <td style="padding:15px">Yes</td>
392
+ </tr>
393
+ <tr>
394
+ <td style="padding:15px">getVnfPackagesVnfPkgId(vnfPkgId, callback)</td>
395
+ <td style="padding:15px">Read information about an individual VNF package.</td>
396
+ <td style="padding:15px">{base_path}/{version}/vnfpkgm/v2/vnf_packages/{pathv1}?{query}</td>
397
+ <td style="padding:15px">Yes</td>
398
+ </tr>
399
+ <tr>
400
+ <td style="padding:15px">deleteVnfPackagesVnfPkgId(vnfPkgId, callback)</td>
401
+ <td style="padding:15px">Delete an individual VNF package.</td>
402
+ <td style="padding:15px">{base_path}/{version}/vnfpkgm/v2/vnf_packages/{pathv1}?{query}</td>
403
+ <td style="padding:15px">Yes</td>
404
+ </tr>
405
+ <tr>
406
+ <td style="padding:15px">patchVnfPackagesVnfPkgId(vnfPkgId, body, callback)</td>
407
+ <td style="padding:15px">Update information about an individual VNF package.</td>
408
+ <td style="padding:15px">{base_path}/{version}/vnfpkgm/v2/vnf_packages/{pathv1}?{query}</td>
409
+ <td style="padding:15px">Yes</td>
410
+ </tr>
411
+ <tr>
412
+ <td style="padding:15px">getVnfPackagesVnfPkgIdVnfd(vnfPkgId, includeSignatures, callback)</td>
413
+ <td style="padding:15px">Read VNFD of an on-boarded VNF package.</td>
414
+ <td style="padding:15px">{base_path}/{version}/vnfpkgm/v2/vnf_packages/{pathv1}/vnfd?{query}</td>
415
+ <td style="padding:15px">Yes</td>
416
+ </tr>
417
+ <tr>
418
+ <td style="padding:15px">getVnfPackagesVnfPkgIdExtArtifactsAccess(vnfPkgId, callback)</td>
419
+ <td style="padding:15px">Get the content of external VNF package artifacts.</td>
420
+ <td style="padding:15px">{base_path}/{version}/vnfpkgm/v2/vnf_packages/{pathv1}/ext_artifacts_access?{query}</td>
421
+ <td style="padding:15px">Yes</td>
422
+ </tr>
423
+ <tr>
424
+ <td style="padding:15px">putVnfPackagesVnfPkgIdExtArtifactsAccess(vnfPkgId, body, callback)</td>
425
+ <td style="padding:15px">Download the content of external VNF package artifacts.</td>
426
+ <td style="padding:15px">{base_path}/{version}/vnfpkgm/v2/vnf_packages/{pathv1}/ext_artifacts_access?{query}</td>
427
+ <td style="padding:15px">Yes</td>
428
+ </tr>
429
+ <tr>
430
+ <td style="padding:15px">getVnfPackagesVnfPkgIdManifest(vnfPkgId, includeSignatures, callback)</td>
431
+ <td style="padding:15px">The GET method reads the content of the manifest within a VNF package.
432
+ </td>
433
+ <td style="padding:15px">{base_path}/{version}/vnfpkgm/v2/vnf_packages/{pathv1}/manifest?{query}</td>
434
+ <td style="padding:15px">Yes</td>
435
+ </tr>
436
+ <tr>
437
+ <td style="padding:15px">getVnfPackagesVnfPkgIdPackageContent(vnfPkgId, callback)</td>
438
+ <td style="padding:15px">Fetch an on-boarded VNF package.</td>
439
+ <td style="padding:15px">{base_path}/{version}/vnfpkgm/v2/vnf_packages/{pathv1}/package_content?{query}</td>
440
+ <td style="padding:15px">Yes</td>
441
+ </tr>
442
+ <tr>
443
+ <td style="padding:15px">putVnfPackagesVnfPkgIdPackageContent(vnfPkgId, body, callback)</td>
444
+ <td style="padding:15px">Upload a VNF package by providing the content of the VNF package.</td>
445
+ <td style="padding:15px">{base_path}/{version}/vnfpkgm/v2/vnf_packages/{pathv1}/package_content?{query}</td>
446
+ <td style="padding:15px">Yes</td>
447
+ </tr>
448
+ <tr>
449
+ <td style="padding:15px">getVnfPackagesVnfPkgIdArtifacts(vnfPkgId, includeSignatures, excludeAllManoArtifacts, excludeAllNonManoArtifacts, selectNonManoArtifactSets, includeExternalArtifacts, callback)</td>
450
+ <td style="padding:15px">Fetch set of VNF package artifacts.</td>
451
+ <td style="padding:15px">{base_path}/{version}/vnfpkgm/v2/vnf_packages/{pathv1}/artifacts?{query}</td>
452
+ <td style="padding:15px">Yes</td>
453
+ </tr>
454
+ <tr>
455
+ <td style="padding:15px">postVnfPackagesVnfPkgIdPackageContentUploadFromUri(vnfPkgId, body, callback)</td>
456
+ <td style="padding:15px">Upload a VNF package by providing the address information of the VNF package.</td>
457
+ <td style="padding:15px">{base_path}/{version}/vnfpkgm/v2/vnf_packages/{pathv1}/package_content/upload_from_uri?{query}</td>
458
+ <td style="padding:15px">Yes</td>
459
+ </tr>
460
+ <tr>
461
+ <td style="padding:15px">getVnfPackagesVnfPkgIdArtifactsArtifactPath(vnfPkgId, artifactPath, includeSignatures, callback)</td>
462
+ <td style="padding:15px">Fetch individual VNF package artifact.</td>
463
+ <td style="padding:15px">{base_path}/{version}/vnfpkgm/v2/vnf_packages/{pathv1}/artifacts/{pathv2}?{query}</td>
464
+ <td style="padding:15px">Yes</td>
465
+ </tr>
466
+ <tr>
467
+ <td style="padding:15px">postPmJobs(body, callback)</td>
468
+ <td style="padding:15px">Create a PM job.</td>
469
+ <td style="padding:15px">{base_path}/{version}/nspm/v2/pm_jobs?{query}</td>
470
+ <td style="padding:15px">Yes</td>
471
+ </tr>
472
+ <tr>
473
+ <td style="padding:15px">getPmJobs(filter, allFields, fields, excludeFields, excludeDefault, nextpageOpaqueMarker, callback)</td>
474
+ <td style="padding:15px">Query PM jobs.</td>
475
+ <td style="padding:15px">{base_path}/{version}/nspm/v2/pm_jobs?{query}</td>
476
+ <td style="padding:15px">Yes</td>
477
+ </tr>
478
+ <tr>
479
+ <td style="padding:15px">getPmJobsPmJobId(pmJobId, callback)</td>
480
+ <td style="padding:15px">Read a single PM job.</td>
481
+ <td style="padding:15px">{base_path}/{version}/nspm/v2/pm_jobs/{pathv1}?{query}</td>
482
+ <td style="padding:15px">Yes</td>
483
+ </tr>
484
+ <tr>
485
+ <td style="padding:15px">patchPmJobsPmJobId(pmJobId, body, callback)</td>
486
+ <td style="padding:15px">Modify a PM job.</td>
487
+ <td style="padding:15px">{base_path}/{version}/nspm/v2/pm_jobs/{pathv1}?{query}</td>
488
+ <td style="padding:15px">Yes</td>
489
+ </tr>
490
+ <tr>
491
+ <td style="padding:15px">deletePmJobsPmJobId(pmJobId, callback)</td>
492
+ <td style="padding:15px">Delete a PM job.</td>
493
+ <td style="padding:15px">{base_path}/{version}/nspm/v2/pm_jobs/{pathv1}?{query}</td>
494
+ <td style="padding:15px">Yes</td>
495
+ </tr>
496
+ <tr>
497
+ <td style="padding:15px">getPmJobsPmJobIdReportsReportId(pmJobId, reportId, callback)</td>
498
+ <td style="padding:15px">Read an individual performance report.</td>
499
+ <td style="padding:15px">{base_path}/{version}/nspm/v2/pm_jobs/{pathv1}/reports/{pathv2}?{query}</td>
500
+ <td style="padding:15px">Yes</td>
501
+ </tr>
502
+ <tr>
503
+ <td style="padding:15px">postThresholds(body, callback)</td>
504
+ <td style="padding:15px">Create a threshold.</td>
505
+ <td style="padding:15px">{base_path}/{version}/nspm/v2/thresholds?{query}</td>
506
+ <td style="padding:15px">Yes</td>
507
+ </tr>
508
+ <tr>
509
+ <td style="padding:15px">getThresholds(filter, nextpageOpaqueMarker, callback)</td>
510
+ <td style="padding:15px">Query thresholds.</td>
511
+ <td style="padding:15px">{base_path}/{version}/nspm/v2/thresholds?{query}</td>
512
+ <td style="padding:15px">Yes</td>
513
+ </tr>
514
+ <tr>
515
+ <td style="padding:15px">getThresholdsThresholdId(thresholdId, callback)</td>
516
+ <td style="padding:15px">Query a single threshold.</td>
517
+ <td style="padding:15px">{base_path}/{version}/nspm/v2/thresholds/{pathv1}?{query}</td>
518
+ <td style="padding:15px">Yes</td>
519
+ </tr>
520
+ <tr>
521
+ <td style="padding:15px">patchThresholdsThresholdId(thresholdId, body, callback)</td>
522
+ <td style="padding:15px">Modify a Threshold</td>
523
+ <td style="padding:15px">{base_path}/{version}/nspm/v2/thresholds/{pathv1}?{query}</td>
524
+ <td style="padding:15px">Yes</td>
525
+ </tr>
526
+ <tr>
527
+ <td style="padding:15px">deleteThresholdsThresholdId(thresholdId, callback)</td>
528
+ <td style="padding:15px">Delete a Threshold.</td>
529
+ <td style="padding:15px">{base_path}/{version}/nspm/v2/thresholds/{pathv1}?{query}</td>
530
+ <td style="padding:15px">Yes</td>
531
+ </tr>
532
+ <tr>
533
+ <td style="padding:15px">getNfviCapacityInfos(filter, allFields, fields, excludeFields, excludeDefault, nextpageOpaqueMarker, callback)</td>
534
+ <td style="padding:15px">Query NFVI capacity information</td>
535
+ <td style="padding:15px">{base_path}/{version}/nfvici/v1/nfvi_capacity_infos?{query}</td>
536
+ <td style="padding:15px">Yes</td>
537
+ </tr>
538
+ <tr>
539
+ <td style="padding:15px">getNfviCapacityInfosVimId(vimId, filter, callback)</td>
540
+ <td style="padding:15px">Query NFVI capacity information for a specific VIM</td>
541
+ <td style="padding:15px">{base_path}/{version}/nfvici/v1/nfvi_capacity_infos/{pathv1}?{query}</td>
542
+ <td style="padding:15px">Yes</td>
543
+ </tr>
544
+ <tr>
545
+ <td style="padding:15px">getCapacityThresholds(filter, nextpageOpaqueMarker, callback)</td>
546
+ <td style="padding:15px">Query NFVI capacity thresholds</td>
547
+ <td style="padding:15px">{base_path}/{version}/nfvici/v1/capacity_thresholds?{query}</td>
548
+ <td style="padding:15px">Yes</td>
549
+ </tr>
550
+ <tr>
551
+ <td style="padding:15px">postCapacityThresholds(body, callback)</td>
552
+ <td style="padding:15px">Create a NFVI capacity threshold</td>
553
+ <td style="padding:15px">{base_path}/{version}/nfvici/v1/capacity_thresholds?{query}</td>
554
+ <td style="padding:15px">Yes</td>
555
+ </tr>
556
+ <tr>
557
+ <td style="padding:15px">getCapacityThresholdsCapacityThresholdId(capacityThresholdId, callback)</td>
558
+ <td style="padding:15px">Query Individual NFVI capacity threshold</td>
559
+ <td style="padding:15px">{base_path}/{version}/nfvici/v1/capacity_thresholds/{pathv1}?{query}</td>
560
+ <td style="padding:15px">Yes</td>
561
+ </tr>
562
+ <tr>
563
+ <td style="padding:15px">patchCapacityThresholdsCapacityThresholdId(capacityThresholdId, body, callback)</td>
564
+ <td style="padding:15px">Modify an "Individual capacity threshold" resource</td>
565
+ <td style="padding:15px">{base_path}/{version}/nfvici/v1/capacity_thresholds/{pathv1}?{query}</td>
566
+ <td style="padding:15px">Yes</td>
567
+ </tr>
568
+ <tr>
569
+ <td style="padding:15px">deleteCapacityThresholdsCapacityThresholdId(capacityThresholdId, callback)</td>
570
+ <td style="padding:15px">Delete an NFVI capacity threshold</td>
571
+ <td style="padding:15px">{base_path}/{version}/nfvici/v1/capacity_thresholds/{pathv1}?{query}</td>
572
+ <td style="padding:15px">Yes</td>
573
+ </tr>
574
+ <tr>
575
+ <td style="padding:15px">postVnfSnapshotPackages(body, callback)</td>
576
+ <td style="padding:15px">The POST method creates a new "Individual VNF snapshot package" resource.
577
+ </td>
578
+ <td style="padding:15px">{base_path}/{version}/vnfsnapshotpkgm/v1/vnf_snapshot_packages?{query}</td>
579
+ <td style="padding:15px">Yes</td>
580
+ </tr>
581
+ <tr>
582
+ <td style="padding:15px">getVnfSnapshotPackages(filter, allFields, fields, excludeFields, excludeDefault, nextpageOpaqueMarker, callback)</td>
583
+ <td style="padding:15px">The GET method queries the information of the VNF packages matching the filter.
584
+ </td>
585
+ <td style="padding:15px">{base_path}/{version}/vnfsnapshotpkgm/v1/vnf_snapshot_packages?{query}</td>
586
+ <td style="padding:15px">Yes</td>
587
+ </tr>
588
+ <tr>
589
+ <td style="padding:15px">getVnfSnapshotPackagesVnfSnapshotPkgId(vnfSnapshotPkgId, callback)</td>
590
+ <td style="padding:15px">The GET method reads the information of an individual VNF snapshot package.
591
+ </td>
592
+ <td style="padding:15px">{base_path}/{version}/vnfsnapshotpkgm/v1/vnf_snapshot_packages/{pathv1}?{query}</td>
593
+ <td style="padding:15px">Yes</td>
594
+ </tr>
595
+ <tr>
596
+ <td style="padding:15px">patchVnfSnapshotPackagesVnfSnapshotPkgId(vnfSnapshotPkgId, body, callback)</td>
597
+ <td style="padding:15px">The PATCH method updates the information of a VNF snapshot package.
598
+ </td>
599
+ <td style="padding:15px">{base_path}/{version}/vnfsnapshotpkgm/v1/vnf_snapshot_packages/{pathv1}?{query}</td>
600
+ <td style="padding:15px">Yes</td>
601
+ </tr>
602
+ <tr>
603
+ <td style="padding:15px">deleteVnfSnapshotPackagesVnfSnapshotPkgId(vnfSnapshotPkgId, callback)</td>
604
+ <td style="padding:15px">The DELETE method deletes an "Individual VNF snapshot package" resource.
605
+ </td>
606
+ <td style="padding:15px">{base_path}/{version}/vnfsnapshotpkgm/v1/vnf_snapshot_packages/{pathv1}?{query}</td>
607
+ <td style="padding:15px">Yes</td>
608
+ </tr>
609
+ <tr>
610
+ <td style="padding:15px">getVnfSnapshotPackagesVnfSnapshotPkgIdPackageContent(vnfSnapshotPkgId, callback)</td>
611
+ <td style="padding:15px">The GET method fetches the content of a VNF snapshot package.
612
+
613
+ The content of the package is provid</td>
614
+ <td style="padding:15px">{base_path}/{version}/vnfsnapshotpkgm/v1/vnf_snapshot_packages/{pathv1}/package_content?{query}</td>
615
+ <td style="padding:15px">Yes</td>
616
+ </tr>
617
+ <tr>
618
+ <td style="padding:15px">putVnfSnapshotPackagesVnfSnapshotPkgIdPackageContent(vnfSnapshotPkgId, callback)</td>
619
+ <td style="padding:15px">The PUT method uploads the content of a VNF package.
620
+
621
+ The payload body contains a ZIP file that rep</td>
622
+ <td style="padding:15px">{base_path}/{version}/vnfsnapshotpkgm/v1/vnf_snapshot_packages/{pathv1}/package_content?{query}</td>
623
+ <td style="padding:15px">Yes</td>
624
+ </tr>
625
+ <tr>
626
+ <td style="padding:15px">postVnfSnapshotPackagesVnfSnapshotPkgIdPackageContentUploadFromUri(vnfSnapshotPkgId, body, callback)</td>
627
+ <td style="padding:15px">The POST method provides the information for the NFVO to get the content of
628
+ a VNF snapshot package</td>
629
+ <td style="padding:15px">{base_path}/{version}/vnfsnapshotpkgm/v1/vnf_snapshot_packages/{pathv1}/package_content/upload_from_uri?{query}</td>
630
+ <td style="padding:15px">Yes</td>
631
+ </tr>
632
+ <tr>
633
+ <td style="padding:15px">postVnfSnapshotPackagesVnfSnapshotPkgIdPackageContentBuild(vnfSnapshotPkgId, body, callback)</td>
634
+ <td style="padding:15px">The POST method provides the information for the NFVO to start building
635
+ the content of a VNF snaps</td>
636
+ <td style="padding:15px">{base_path}/{version}/vnfsnapshotpkgm/v1/vnf_snapshot_packages/{pathv1}/package_content/build?{query}</td>
637
+ <td style="padding:15px">Yes</td>
638
+ </tr>
639
+ <tr>
640
+ <td style="padding:15px">postVnfSnapshotPackagesVnfSnapshotPkgIdPackageContentExtract(vnfSnapshotPkgId, body, callback)</td>
641
+ <td style="padding:15px">The POST method provides the information for the NFVO to start extracting the content of
642
+ a VNF sna</td>
643
+ <td style="padding:15px">{base_path}/{version}/vnfsnapshotpkgm/v1/vnf_snapshot_packages/{pathv1}/package_content/extract?{query}</td>
644
+ <td style="padding:15px">Yes</td>
645
+ </tr>
646
+ <tr>
647
+ <td style="padding:15px">postVnfSnapshotPackagesVnfSnapshotPkgIdPackageContentCancel(vnfSnapshotPkgId, body, callback)</td>
648
+ <td style="padding:15px">The POST method provides the information for the NFVO to cancel the ongoing operation related to
649
+ t</td>
650
+ <td style="padding:15px">{base_path}/{version}/vnfsnapshotpkgm/v1/vnf_snapshot_packages/{pathv1}/package_content/cancel?{query}</td>
651
+ <td style="padding:15px">Yes</td>
652
+ </tr>
653
+ <tr>
654
+ <td style="padding:15px">getVnfSnapshotPackagesVnfSnapshotPkgIdExtArtifactsAccess(vnfSnapshotPkgId, callback)</td>
655
+ <td style="padding:15px">The GET method reads the access configuration information that is used by the NFVO to get
656
+ the cont</td>
657
+ <td style="padding:15px">{base_path}/{version}/vnfsnapshotpkgm/v1/vnf_snapshot_packages/{pathv1}/ext_artifacts_access?{query}</td>
658
+ <td style="padding:15px">Yes</td>
659
+ </tr>
660
+ <tr>
661
+ <td style="padding:15px">putVnfSnapshotPackagesVnfSnapshotPkgIdExtArtifactsAccess(vnfSnapshotPkgId, body, callback)</td>
662
+ <td style="padding:15px">The PUT method provides the access configuration information for the NFVO to download
663
+ the content</td>
664
+ <td style="padding:15px">{base_path}/{version}/vnfsnapshotpkgm/v1/vnf_snapshot_packages/{pathv1}/ext_artifacts_access?{query}</td>
665
+ <td style="padding:15px">Yes</td>
666
+ </tr>
667
+ <tr>
668
+ <td style="padding:15px">getVnfSnapshotPackagesVnfSnapshotPkgIdArtifactsArtifactPath(vnfSnapshotPkgId, artifactPath, callback)</td>
669
+ <td style="padding:15px">The GET method fetches the content of an artifact within the VNF snapshot package.
670
+
671
+ If the VNF snap</td>
672
+ <td style="padding:15px">{base_path}/{version}/vnfsnapshotpkgm/v1/vnf_snapshot_packages/{pathv1}/artifacts/{pathv2}?{query}</td>
673
+ <td style="padding:15px">Yes</td>
674
+ </tr>
675
+ <tr>
676
+ <td style="padding:15px">querymultipleNSinstances(filter, allFields, fields, excludeFields, excludeDefault, nextpageOpaqueMarker, callback)</td>
677
+ <td style="padding:15px">Query multiple NS instances.</td>
678
+ <td style="padding:15px">{base_path}/{version}/nslcm/v1/ns_instances?{query}</td>
679
+ <td style="padding:15px">Yes</td>
680
+ </tr>
681
+ <tr>
682
+ <td style="padding:15px">createaNSinstanceresource(body, callback)</td>
683
+ <td style="padding:15px">Create a NS instance resource.</td>
684
+ <td style="padding:15px">{base_path}/{version}/nslcm/v1/ns_instances?{query}</td>
685
+ <td style="padding:15px">Yes</td>
686
+ </tr>
687
+ <tr>
688
+ <td style="padding:15px">readanindividualNSinstanceresource(nsInstanceId, callback)</td>
689
+ <td style="padding:15px">Read an individual NS instance resource.</td>
690
+ <td style="padding:15px">{base_path}/{version}/nslcm/v1/ns_instances/{pathv1}?{query}</td>
691
+ <td style="padding:15px">Yes</td>
692
+ </tr>
693
+ <tr>
694
+ <td style="padding:15px">deleteNSinstanceresource(nsInstanceId, callback)</td>
695
+ <td style="padding:15px">Delete NS instance resource.</td>
696
+ <td style="padding:15px">{base_path}/{version}/nslcm/v1/ns_instances/{pathv1}?{query}</td>
697
+ <td style="padding:15px">Yes</td>
698
+ </tr>
699
+ <tr>
700
+ <td style="padding:15px">instantiateaNS(nsInstanceId, body, callback)</td>
701
+ <td style="padding:15px">Instantiate a NS.</td>
702
+ <td style="padding:15px">{base_path}/{version}/nslcm/v1/ns_instances/{pathv1}/instantiate?{query}</td>
703
+ <td style="padding:15px">Yes</td>
704
+ </tr>
705
+ <tr>
706
+ <td style="padding:15px">scaleaNSinstance(nsInstanceId, body, callback)</td>
707
+ <td style="padding:15px">Scale a NS instance.</td>
708
+ <td style="padding:15px">{base_path}/{version}/nslcm/v1/ns_instances/{pathv1}/scale?{query}</td>
709
+ <td style="padding:15px">Yes</td>
710
+ </tr>
711
+ <tr>
712
+ <td style="padding:15px">updatesaNSinstance(nsInstanceId, body, callback)</td>
713
+ <td style="padding:15px">Updates a NS instance.</td>
714
+ <td style="padding:15px">{base_path}/{version}/nslcm/v1/ns_instances/{pathv1}/update?{query}</td>
715
+ <td style="padding:15px">Yes</td>
716
+ </tr>
717
+ <tr>
718
+ <td style="padding:15px">healaNSinstance(nsInstanceId, body, callback)</td>
719
+ <td style="padding:15px">Heal a NS instance.</td>
720
+ <td style="padding:15px">{base_path}/{version}/nslcm/v1/ns_instances/{pathv1}/heal?{query}</td>
721
+ <td style="padding:15px">Yes</td>
722
+ </tr>
723
+ <tr>
724
+ <td style="padding:15px">terminateaNSinstance(nsInstanceId, body, callback)</td>
725
+ <td style="padding:15px">Terminate a NS instance.</td>
726
+ <td style="padding:15px">{base_path}/{version}/nslcm/v1/ns_instances/{pathv1}/terminate?{query}</td>
727
+ <td style="padding:15px">Yes</td>
728
+ </tr>
729
+ <tr>
730
+ <td style="padding:15px">querymultipleNSLCMoperationoccurrences(filter, fields, excludeFields, excludeDefault, nextpageOpaqueMarker, callback)</td>
731
+ <td style="padding:15px">Query multiple NS LCM operation occurrences.</td>
732
+ <td style="padding:15px">{base_path}/{version}/nslcm/v1/ns_lcm_op_occs?{query}</td>
733
+ <td style="padding:15px">Yes</td>
734
+ </tr>
735
+ <tr>
736
+ <td style="padding:15px">readanindividualNSLCMoperationoccurrenceresource(nsLcmOpOccId, callback)</td>
737
+ <td style="padding:15px">Read an individual NS LCM operation occurrence resource.</td>
738
+ <td style="padding:15px">{base_path}/{version}/nslcm/v1/ns_lcm_op_occs/{pathv1}?{query}</td>
739
+ <td style="padding:15px">Yes</td>
740
+ </tr>
741
+ <tr>
742
+ <td style="padding:15px">retryaNSlifecyclemanagementoperationoccurrence(nsLcmOpOccId, callback)</td>
743
+ <td style="padding:15px">Retry a NS lifecycle management operation occurrence.</td>
744
+ <td style="padding:15px">{base_path}/{version}/nslcm/v1/ns_lcm_op_occs/{pathv1}/retry?{query}</td>
745
+ <td style="padding:15px">Yes</td>
746
+ </tr>
747
+ <tr>
748
+ <td style="padding:15px">rollbackaNSlifecyclemanagementoperationoccurrence(nsLcmOpOccId, callback)</td>
749
+ <td style="padding:15px">Rollback a NS lifecycle management operation occurrence.</td>
750
+ <td style="padding:15px">{base_path}/{version}/nslcm/v1/ns_lcm_op_occs/{pathv1}/rollback?{query}</td>
751
+ <td style="padding:15px">Yes</td>
752
+ </tr>
753
+ <tr>
754
+ <td style="padding:15px">continueaNSlifecyclemanagementoperationoccurrence(nsLcmOpOccId, callback)</td>
755
+ <td style="padding:15px">Continue a NS lifecycle management operation occurrence.</td>
756
+ <td style="padding:15px">{base_path}/{version}/nslcm/v1/ns_lcm_op_occs/{pathv1}/continue?{query}</td>
757
+ <td style="padding:15px">Yes</td>
758
+ </tr>
759
+ <tr>
760
+ <td style="padding:15px">markaNSlifecyclemanagementoperationoccurrenceasfailed(nsLcmOpOccId, callback)</td>
761
+ <td style="padding:15px">Mark a NS lifecycle management operation occurrence as failed.</td>
762
+ <td style="padding:15px">{base_path}/{version}/nslcm/v1/ns_lcm_op_occs/{pathv1}/fail?{query}</td>
763
+ <td style="padding:15px">Yes</td>
764
+ </tr>
765
+ <tr>
766
+ <td style="padding:15px">cancelaNSlifecyclemanagementoperationoccurrence(nsLcmOpOccId, body, callback)</td>
767
+ <td style="padding:15px">Cancel a NS lifecycle management operation occurrence.</td>
768
+ <td style="padding:15px">{base_path}/{version}/nslcm/v1/ns_lcm_op_occs/{pathv1}/cancel?{query}</td>
769
+ <td style="padding:15px">Yes</td>
770
+ </tr>
771
+ <tr>
772
+ <td style="padding:15px">queryVNFsnapshots(filter, allFields, fields, excludeFields, excludeDefault, nextpageOpaqueMarker, callback)</td>
773
+ <td style="padding:15px">Query VNF snapshots</td>
774
+ <td style="padding:15px">{base_path}/{version}/nslcm/v1/vnf_snapshots?{query}</td>
775
+ <td style="padding:15px">Yes</td>
776
+ </tr>
777
+ <tr>
778
+ <td style="padding:15px">queryanIndividualVNFsnapshot(vnfSnapshotInfoId, callback)</td>
779
+ <td style="padding:15px">Query an Individual VNF snapshot</td>
780
+ <td style="padding:15px">{base_path}/{version}/nslcm/v1/vnf_snapshots/{pathv1}?{query}</td>
781
+ <td style="padding:15px">Yes</td>
782
+ </tr>
783
+ <tr>
784
+ <td style="padding:15px">deleteanIndividualVNFsnapshot(vnfSnapshotInfoId, callback)</td>
785
+ <td style="padding:15px">Delete an Individual VNF snapshot</td>
786
+ <td style="padding:15px">{base_path}/{version}/nslcm/v1/vnf_snapshots/{pathv1}?{query}</td>
787
+ <td style="padding:15px">Yes</td>
788
+ </tr>
168
789
  </table>
169
790
  <br>