Merge "Update job error code of buildin workflow"
[vfc/nfvo/lcm.git] / docs / platform / APIs / VNFMDriver_API / VNFM_Driver_API.rst
1 .. contents::\r
2    :depth: 3\r
3 ..\r
4 \r
5 **VNFM Driver API**\r
6 **V0.1**\r
7 \r
8 **1.  Scope**\r
9 ==============\r
10 The scope of the present document is to describe the VNFM Driver exposed API specification.\r
11 \r
12 **2.  Terms, Definitions and Abbreviations**\r
13 =============================================\r
14 \r
15 For the purposes of the present document, the following abbreviations apply:\r
16 \r
17 +-------------+-----------------------------------------------+\r
18 |Abbreviation |                                               |\r
19 +-------------+-----------------------------------------------+\r
20 |NFVO         |Network Functions Virtualization Orchestrator  |\r
21 +-------------+-----------------------------------------------+\r
22 |VNFM         |Virtual Network Function Manager               |\r
23 +-------------+-----------------------------------------------+\r
24 |VNF          |Virtual Network Function                       |\r
25 +-------------+-----------------------------------------------+\r
26 \r
27 Table 2-1 abbreviations\r
28 \r
29 \r
30 **3.  Interfaces provided by VNFM Driver**\r
31 ===========================================\r
32 \r
33 Interfaces use RESTful API and the format is as follows:\r
34 http(s)://[hostname][:port]/api/{vnfmtype}/v1/{vnfm_id}/[……]\r
35 R1 vnfmtype:\r
36 zte-vnfm\r
37 fw-vnfm\r
38 juju\r
39 \r
40 **3.1  Instantiate VNF**\r
41 ------------------------\r
42 \r
43 +--------------+--------------------------------------------------------------+\r
44 |If Definition | Description                                                  |\r
45 +==============+==============================================================+\r
46 |URI           | http(s)://[hostname][:port]/api/{vnfmtype}/v1/{vnfmid}/vnfs  |\r
47 +--------------+--------------------------------------------------------------+\r
48 |Operation     | POST                                                         |\r
49 +--------------+--------------------------------------------------------------+\r
50 |Direction     | NSLCM->VNFMDriver                                            |\r
51 +--------------+--------------------------------------------------------------+\r
52 \r
53 **3.1.1  Request**\r
54 \r
55 +-----------------------+------------+-------------+----------+------------------------------+\r
56 | Parameter             | Qualifier  | Cardinality | Content  | Description                  |\r
57 +=======================+============+=============+==========+==============================+\r
58 | vnfInstanceName       | M          | 1           | String   | Human-readable name  of the  |\r
59 |                       |            |             |          | VNF instance to be created.  |\r
60 +-----------------------+------------+-------------+----------+------------------------------+\r
61 | vnfPackageId          | M          | 1           | String   | VNF packageId                |\r
62 +-----------------------+------------+-------------+----------+------------------------------+\r
63 | vnfDescriptorId       | M          | 1           | String   | Information  sufficient  to  |\r
64 |                       |            |             |          | identify the VNF Descriptor  |\r
65 |                       |            |             |          | which  defines  the  VNF  to |\r
66 |                       |            |             |          | be created.                  |\r
67 +-----------------------+------------+-------------+----------+------------------------------+\r
68 | flavourId             | M          | 0..1        | String   | Reserved                     |\r
69 +-----------------------+------------+-------------+----------+------------------------------+\r
70 |vnfInstanceDescription | M          | 0..1        | String   | Human-readable               |\r
71 |                       |            |             |          | description  of  the  VNF    |\r
72 |                       |            |             |          | instance to be created.      |\r
73 +-----------------------+------------+-------------+----------+------------------------------+\r
74 | extVirtualLink        | M          | 0..N        | String   | References  to  external     |\r
75 |                       |            |             |          | virtual links to connect the |\r
76 |                       |            |             |          | VNF to.                      |\r
77 +-----------------------+------------+-------------+----------+------------------------------+\r
78 | additionalParam       | M          | 0..N        | String   |Additional  parameters        |\r
79 |                       |            |             |          |passed  by  the  NFVO  as     |\r
80 |                       |            |             |          |input  to  the  instantiation |\r
81 |                       |            |             |          |process,  specific  to  the   |\r
82 |                       |            |             |          |VNF being instantiated.       |\r
83 +-----------------------+------------+-------------+----------+------------------------------+\r
84 \r
85 **ExtVirtualLinkData:**\r
86 \r
87 +--------------+------------+-------------+----------+----------------------------------------+\r
88 | Attribute    | Qualifier  | Cardinality | Content  | Description                            |\r
89 +==============+============+=============+==========+========================================+\r
90 | vlInstanceId | M          | 0..1        | String   | Identifier of the VL instance          |\r
91 +--------------+------------+-------------+----------+----------------------------------------+\r
92 | vim          | CM         | 0..1        | VimInfo  | Information about the VIM that         |\r
93 |              |            |             |          | manages this resource.                 |\r
94 |              |            |             |          | This attribute shall be supported      |\r
95 |              |            |             |          | and present if VNF-related resource    |\r
96 |              |            |             |          | management in direct applicable.       |\r
97 +--------------+------------+-------------+----------+----------------------------------------+\r
98 | networkId    | M          | 1           | String   | The network UUID of VIM                |\r
99 +--------------+------------+-------------+----------+----------------------------------------+\r
100 | cpdId        | M          | 0..1        | String   | Identifier of the external CPD in VNFD |\r
101 +--------------+------------+-------------+----------+----------------------------------------+\r
102 \r
103 **VimInfo:**\r
104 \r
105 +------------------+------------+-------------+--------------+------------------------------------------------+\r
106 | Attribute        | Qualifier  | Cardinality | Content      | Description                                    |\r
107 +==================+============+=============+==============+================================================+\r
108 | vimInfoId        | M          | 1           | Identifier   | The identifier of this VimInfo instance,       |\r
109 |                  |            |             |              | for the purpose of referencing it from         |\r
110 |                  |            |             |              | other information elements.                    |\r
111 +------------------+------------+-------------+--------------+------------------------------------------------+\r
112 | vimId            | M          | 1           | Identifier   | The identifier of the VIM.                     |\r
113 +------------------+------------+-------------+--------------+------------------------------------------------+\r
114 | interfaceInfo    | M          | 0..N        | KeyValuePair | Information about the interface to the         |\r
115 |                  |            |             |              | VIM, including VIM provider type, API          |\r
116 |                  |            |             |              | version, and protocol type.                    |\r
117 +------------------+------------+-------------+--------------+------------------------------------------------+\r
118 | accessInfo       | M          | 0..N        | KeyValuePair | Authentication credentials for accessing the   |\r
119 |                  |            |             |              | VIM. Examples may include those to support     |\r
120 |                  |            |             |              | different authentication schemes, e.g., OAuth, |\r
121 |                  |            |             |              | Token, etc.                                    |\r
122 +------------------+------------+-------------+--------------+------------------------------------------------+\r
123 |interfaceEndpoint | M          | 1           | String       | Information about the interface endpoint. An   |\r
124 |                  |            |             |              | example is a URL.                              |\r
125 +------------------+------------+-------------+--------------+------------------------------------------------+\r
126 \r
127 \r
128 **interfaceInfo:**\r
129 \r
130 +--------------+------------+-------------+----------+-------------------------------+\r
131 | Attribute    | Qualifier  | Cardinality | Content  | Description                   |\r
132 +==============+============+=============+==========+===============================+\r
133 | vimType      | M          | 1           | String   | vim                           |\r
134 +--------------+------------+-------------+----------+-------------------------------+\r
135 | apiVersion   | M          | 1           | String   |                               |\r
136 +--------------+------------+-------------+----------+-------------------------------+\r
137 | protocolType | M          | 1           | String   | http, https                   |\r
138 +--------------+------------+-------------+----------+-------------------------------+\r
139 \r
140 \r
141 **accessInfo:**\r
142 \r
143 +--------------+------------+-------------+----------+-------------------------------+\r
144 | Attribute    | Qualifier  | Cardinality | Content  | Description                   |\r
145 +==============+============+=============+==========+===============================+\r
146 | tenant       | M          | 1           | String   | Tenant Name of tenant         |\r
147 +--------------+------------+-------------+----------+-------------------------------+\r
148 | username     | M          | 1           | String   | Username for login            |\r
149 +--------------+------------+-------------+----------+-------------------------------+\r
150 | password     | M          | 1           | String   | Password of login user        |\r
151 +--------------+------------+-------------+----------+-------------------------------+\r
152 \r
153 {\r
154   "vnfInstanceName":"vFW",\r
155   "vnfPackageId":"1",\r
156   "vnfDescriptorId":"1",\r
157   "vnfInstanceDescription":"vFW_1",\r
158   "extVirtualLinkLink":[ \r
159 \r
160     {\r
161       "vlInstanceId":"1",\r
162       "resourceId":"1246" ,\r
163       " cpdId":"11111",\r
164       "vim":\r
165       {\r
166 \r
167         "vimInfoId":"1",\r
168         "vimid":"1", \r
169         "interfaceInfo":{\r
170 \r
171           "vimType":"vim",\r
172           "apiVersion":"v2",\r
173           "protocolType":"http"\r
174 \r
175         }\r
176         "accessInfo":{\r
177 \r
178           "tenant":"tenant_vCPE",\r
179           "username":"vCPE",\r
180           "password":"vCPE_321"\r
181 \r
182         }\r
183         "interfaceEndpoint":"http://10.43.21.105:80/"\r
184 \r
185       }\r
186 \r
187     }\r
188 \r
189   ]\r
190   "additionalParam":{\r
191 \r
192   ……\r
193   }\r
194 \r
195 }\r
196 \r
197 \r
198 **3.1.2  Response**\r
199 \r
200 +--------------+------------+-------------+-----------+-------------------------------+\r
201 | Parameter    | Qualifier  | Cardinality | Content   | Description                   |\r
202 +==============+============+=============+===========+===============================+\r
203 | jobId        | M          | 1           | Identifier| Tenant Name of tenant         |\r
204 |              |            |             |           | operation occurrence.         |\r
205 |              |            |             |           |                               |\r
206 |              |            |             |           | [lifecycleOperationOccurren   |\r
207 |              |            |             |           |  ceId]                        |\r
208 +--------------+------------+-------------+-----------+-------------------------------+\r
209 | password     | M          | 1           | String    | Password of login user        |\r
210 +--------------+------------+-------------+-----------+-------------------------------+\r
211 \r
212 {\r
213   "jobId":"1",\r
214   "vnfInstanceId":"1"\r
215 \r
216 }\r
217 \r
218 **3.2  Terminate VNF**\r
219 -----------------------\r
220 \r
221 +---------------+------------------------------------------------------------------+\r
222 | IF Definition |  Description                                                     |\r
223 +===============+==================================================================+\r
224 | URI           | http(s)://[hostname][:port]/api/{vnfmtype}/v1/{vnfmid}/vnfs/     |\r
225 |               | {vnfInstanceId}/terminate                                        |\r
226 +---------------+------------------------------------------------------------------+\r
227 | Operation     |  POST                                                            |\r
228 +---------------+------------------------------------------------------------------+\r
229 | Direction     |  NSLCM->VNFMDriver                                               |\r
230 +---------------+------------------------------------------------------------------+\r
231 \r
232 **3.2.1  Request**\r
233 \r
234 +-----------------+------------+-------------+-----------+----------------------------------+\r
235 | Parameter       | Qualifier  | Cardinality | Content   | Description                      |\r
236 +=================+============+=============+===========+==================================+\r
237 | terminationType | M          | 1           | Enum      | Signals whether forceful or      |\r
238 |                 |            |             |           | graceful termination  is         |\r
239 |                 |            |             |           | requested.                       |\r
240 |                 |            |             |           | In case of forceful termination, |\r
241 |                 |            |             |           | the  VNF  is  shut  down         |\r
242 |                 |            |             |           | immediately, and resources are   |\r
243 |                 |            |             |           | released. Note that if the VNF   |\r
244 |                 |            |             |           | is still  in service,  this may  |\r
245 |                 |            |             |           | adversely  impact  network       |\r
246 |                 |            |             |           | service, and therefore, operator |\r
247 |                 |            |             |           | policies apply to determine if   |\r
248 |                 |            |             |           | forceful termination is allowed  |\r
249 |                 |            |             |           | in the particular situation.     |\r
250 |                 |            |             |           |                                  |\r
251 |                 |            |             |           | In case of graceful termination, |\r
252 |                 |            |             |           | the VNFM first arranges to take  |\r
253 |                 |            |             |           | the  VNF  out  of  service  (by  |\r
254 |                 |            |             |           | means  out  of  scope  of  the   |\r
255 |                 |            |             |           | present  specification,  e.g.    |\r
256 |                 |            |             |           | involving interaction with EM,   |\r
257 |                 |            |             |           | if required).  Once  this  was   |\r
258 |                 |            |             |           | successful,  or after a timeout, |\r
259 |                 |            |             |           | the  VNFM  shuts  down the  VNF  |\r
260 |                 |            |             |           | and releases the resources.      |\r
261 +-----------------+------------+-------------+-----------+----------------------------------+\r
262 | graceful        | M          | 0..1        | Time      | The time interval (second) to    |\r
263 | Termination     |            |             | Duration  | wait for the VNF to be taken out |\r
264 | Timeout         |            |             |           | of  service  during  graceful    |\r
265 |                 |            |             |           | termination,  before  shutting   |\r
266 |                 |            |             |           | down the VNF and releasing the   |\r
267 |                 |            |             |           | resources.                       |\r
268 |                 |            |             |           | If not given, it is expected     |\r
269 |                 |            |             |           | that the  VNFM  waits  for  the  |\r
270 |                 |            |             |           | successful taking out of service |\r
271 |                 |            |             |           | of the VNF, no matter  how long  |\r
272 |                 |            |             |           | it  takes, before shutting down  |\r
273 |                 |            |             |           | the  VNF  and  releasing  the    |\r
274 |                 |            |             |           | resources (see note).            |\r
275 |                 |            |             |           |                                  |\r
276 |                 |            |             |           | Minimum timeout or timeout       |\r
277 |                 |            |             |           | range are specified by the VNF   |\r
278 |                 |            |             |           | Provider  (e.g. defined in the   |\r
279 |                 |            |             |           | VNFD or communicated  by         |\r
280 |                 |            |             |           | other means).                    |\r
281 |                 |            |             |           |                                  |\r
282 |                 |            |             |           | Not relevant in case of forceful |\r
283 |                 |            |             |           | termination.                     |\r
284 +-----------------+------------+-------------+-----------+----------------------------------+\r
285 \r
286 {\r
287   "vnfInstanceId":"1",\r
288   "terminationType":"graceful",\r
289   "gracefulTerminationTimeout":"60"\r
290 \r
291 }\r
292 \r
293 **3.2.2  Response**\r
294 \r
295 +--------------+------------+-------------+-----------+--------------------------------+\r
296 | Parameter    | Qualifier  | Cardinality | Content   | Description                    |\r
297 +==============+============+=============+===========+================================+\r
298 | jobId        | M          | 1           | Identifier| Identifier of the VNF lifecycle|\r
299 |              |            |             |           | operation occurrence.          |\r
300 |              |            |             |           |                                |\r
301 |              |            |             |           | [lifecycleOperationOccurren    |\r
302 |              |            |             |           |  ceId]                         |\r
303 +--------------+------------+-------------+-----------+--------------------------------+\r
304 \r
305 {\r
306   "jobId":"1"\r
307 \r
308 }\r
309 \r
310 \r
311 **3.3  Query VNF**\r
312 ------------------\r
313 \r
314 +---------------+------------------------------------------------------------------+\r
315 | IF Definition |  Description                                                     |\r
316 +===============+==================================================================+\r
317 | URI           | http(s)://[hostname][:port]/api/{vnfmtype}/v1/{vnfmid}/vnfs/     |\r
318 |               | {vnfInstanceId}                                                  |\r
319 +---------------+------------------------------------------------------------------+\r
320 | Operation     |  GET                                                             |\r
321 +---------------+------------------------------------------------------------------+\r
322 | Direction     |  NSLCM->VNFMDriver                                               |\r
323 +---------------+------------------------------------------------------------------+\r
324 \r
325 **3.3.1  Request**\r
326 \r
327 VNF filter: vnfInstanceId via url [R1]\r
328 \r
329 **3.3.2  Response**\r
330 \r
331 +--------------+------------+-------------+-----------+---------------------------------+\r
332 | Parameter    | Qualifier  | Cardinality | Content   | Description                     |\r
333 +==============+============+=============+===========+=================================+\r
334 | vnfInfo      | M          | o..N        | vnfInfo   | The information items about the |\r
335 |              |            |             |           | selected VNF instance(s) that   |\r
336 |              |            |             |           | are returned.                   |\r
337 |              |            |             |           |                                 |\r
338 |              |            |             |           | If attributeSelector is present,|\r
339 |              |            |             |           | only the  attributes  listed in |\r
340 |              |            |             |           | attributeSelector will be       |\r
341 |              |            |             |           | returned for the selected       |\r
342 |              |            |             |           | VNF instance(s).                |\r
343 |              |            |             |           | See note.                       |\r
344 +--------------+------------+-------------+-----------+---------------------------------+\r
345 \r
346 **VnfInfo Table**\r
347 \r
348 +-----------------+------------+-------------+----------+---------------------------------+\r
349 | Attribute       | Qualifier  | Cardinality | Content  | Description                     |\r
350 +=================+============+=============+==========+=================================+\r
351 | vnfInstanceId   | M          | 1           | String   | VNF instance identifier.        |\r
352 +-----------------+------------+-------------+----------+---------------------------------+\r
353 | vnfInstanceName | M          | o..1        | String   | VNF instance name. See note.    |\r
354 +-----------------+------------+-------------+----------+---------------------------------+\r
355 | vnfInstance     | M          | o..1        | String   | Human-readable description of   |\r
356 | Description     |            |             |          | the VNF instance.               |\r
357 +-----------------+------------+-------------+----------+---------------------------------+\r
358 | vnfdId          | M          | 1           | String   | Identifier of the VNFD on which |\r
359 |                 |            |             |          | the VNF instance is based.      |\r
360 +-----------------+------------+-------------+----------+---------------------------------+\r
361 | vnfPackageId    | M          | o..1        | String   | Identifier of the VNF Package   |\r
362 |                 |            |             |          | used to manage the lifecycle of |\r
363 |                 |            |             |          | the VNF instance. See note.     |\r
364 |                 |            |             |          | Shall be present for an         |\r
365 |                 |            |             |          | instantiated VNF instance.      |\r
366 +-----------------+------------+-------------+----------+---------------------------------+\r
367 | version         | M          | 1           | String   | Version of the VNF.             |\r
368 +-----------------+------------+-------------+----------+---------------------------------+\r
369 | vnfProvider     | M          | 1           | String   | Name of the person or company   |\r
370 |                 |            |             |          | providing the VNF.              |\r
371 +-----------------+------------+-------------+----------+---------------------------------+\r
372 | vnfType         | M          | 1           | String   | VNF Application Type            |\r
373 +-----------------+------------+-------------+----------+---------------------------------+\r
374 | vnfStatus       | M          | 1           | Enum     | The instantiation state of the  |\r
375 |                 |            |             |          | VNF. Possible values:           |\r
376 |                 |            |             |          | INACTIVE (Vnf is terminated or  |\r
377 |                 |            |             |          | not instantiated ),             |\r
378 |                 |            |             |          | ACTIVE (Vnf is instantiated).   |\r
379 |                 |            |             |          | [instantiationState]            |\r
380 +-----------------+------------+-------------+----------+---------------------------------+\r
381 \r
382 {\r
383   "vnfInfo":\r
384   {\r
385 \r
386     "nfInstanceId":"1",\r
387     "vnfInstanceName":"vFW",\r
388     "vnfInstanceDescription":"vFW in Nanjing TIC Edge",\r
389     "vnfdId":"1",\r
390     "vnfPackageId":"1",\r
391     "version":"V1.1",\r
392     "vnfProvider":"ZTE",\r
393     "vnfType":"vFW",\r
394     "vnfStatus":"  ACTIVE",\r
395 \r
396   }\r
397 \r
398 }\r
399 \r
400 **3.4  Get operation status**\r
401 -----------------------------\r
402 \r
403 +---------------+------------------------------------------------------------------+\r
404 | IF Definition |  Description                                                     |\r
405 +===============+==================================================================+\r
406 | URI           | http(s)://[hostname][:port]/api/{vnfmtype}                       |\r
407 |               | /v1/{vnfmid}/jobs/{jobid}&responseId={ responseId }              |\r
408 +---------------+------------------------------------------------------------------+\r
409 | Operation     |  GET                                                             |\r
410 +---------------+------------------------------------------------------------------+\r
411 | Direction     |  NSLCM->VNFMDriver                                               |\r
412 +---------------+------------------------------------------------------------------+\r
413 \r
414 **3.4.1  Request**\r
415 \r
416   None\r
417 \r
418 **3.4.2  Response**\r
419 \r
420 +--------------------+------------+-------------+-------------+---------------------------------+\r
421 | Parameter          | Qualifier  | Cardinality | Content     | Description                     |\r
422 +====================+============+=============+=============+=================================+\r
423 | jobId              | M          | 1           | String      | Job ID                          |\r
424 +--------------------+------------+-------------+-------------+---------------------------------+\r
425 | responseDescriptor | M          | 1           | -           | Including:                      |\r
426 |                    |            |             |             | vnfStatus, statusDescription,   |\r
427 |                    |            |             |             | errorCode,progress,             |\r
428 |                    |            |             |             | responseHistoryList, responseId |\r
429 +--------------------+------------+-------------+-------------+---------------------------------+\r
430 | status             | M          | 1           | String      | JOB status                      |\r
431 |                    |            |             |             | started                         |\r
432 |                    |            |             |             | processing                      |\r
433 |                    |            |             |             | finished                        |\r
434 |                    |            |             |             | error                           |\r
435 +--------------------+------------+-------------+-------------+---------------------------------+\r
436 | progress           | M          | 1           | Integer     | progress (1-100)                |\r
437 +--------------------+------------+-------------+-------------+---------------------------------+\r
438 | statusDescription  | M          | 1           | String      | Progress Description            |\r
439 +--------------------+------------+-------------+-------------+---------------------------------+\r
440 | errorCode          | M          | 1           | Integer     | Errorcode                       |\r
441 +--------------------+------------+-------------+-------------+---------------------------------+\r
442 | responseId         | M          | 1           | Integer     | Response Identifier             |\r
443 +--------------------+------------+-------------+-------------+---------------------------------+\r
444 | response           | M          | o..N        | ArrayList<> | History  Response  Messages     |\r
445 | HistoryList        |            |             |             | from  the  requested            |\r
446 |                    |            |             |             | responseId to lastest one.      |\r
447 |                    |            |             |             | Including fields:               |\r
448 |                    |            |             |             | vnfStatus,                      |\r
449 |                    |            |             |             | statusDescription,              |\r
450 |                    |            |             |             | errorCode,                      |\r
451 |                    |            |             |             | progress,                       |\r
452 |                    |            |             |             | responseId                      |\r
453 +--------------------+------------+-------------+-------------+---------------------------------+\r
454 \r
455 {\r
456   "jobId" : "1234566",\r
457   "responseDescriptor" : {\r
458 \r
459     "progress" : "40",\r
460     "status" : "proccessing",\r
461     "statusDescription" : "OMC VMs are decommissioned in VIM",\r
462     "errorCode" : null,\r
463     "responseId" : "42",\r
464     "responseHistoryList" : [{\r
465 \r
466       "progress" : "40",\r
467       "status" : "proccessing",\r
468       "statusDescription" : "OMC VMs are decommissioned in VIM",\r
469       "errorCode" : null,\r
470       "responseId" : "1"\r
471 \r
472     }, {\r
473       "progress" : "41",\r
474       "status" : "proccessing",\r
475       "statusDescription" : "OMC VMs are decommissioned in VIM",\r
476       "errorCode" : null,\r
477       "responseId" : "2"\r
478 \r
479     }\r
480 \r
481   ]\r
482 \r
483  }\r
484 \r
485 }\r
486 \r
487 **3.5  Scale VNF**\r
488 ------------------\r
489 \r
490 +---------------+------------------------------------------------------------------+\r
491 | IF Definition |  Description                                                     |\r
492 +===============+==================================================================+\r
493 | URI           | http(s)://[hostname][:port]/api/{vnfmtype}/v1/{vnfmid}/vnfs/     |\r
494 |               | {vnfInstanceId}/scale                                            |\r
495 +---------------+------------------------------------------------------------------+\r
496 | Operation     |  POST                                                            |\r
497 +---------------+------------------------------------------------------------------+\r
498 | Direction     |  NSLCM->VNFMDriver                                               |\r
499 +---------------+------------------------------------------------------------------+\r
500 \r
501 **3.5.1  Request**\r
502 \r
503 \r
504 +---------------+------------+-------------+-------------+---------------------------------------------+\r
505 | Parameter     | Qualifier  | Cardinality | Content     | Description                                 |\r
506 +===============+============+=============+=============+=============================================+\r
507 | type          | M          | 1           | Enum        | Defines the type of the scale operation     |\r
508 |               |            |             |             | requested (scale out, scale in). The set of |\r
509 |               |            |             |             | types actually supported depends on the     |\r
510 |               |            |             |             | capabilities of the VNF being managed, as   |\r
511 |               |            |             |             | declared in the VNFD. See note 1.           |\r
512 +---------------+------------+-------------+-------------+---------------------------------------------+\r
513 | aspectId      | M          | 1           | Identifier  | Identifies the aspect of the VNF that is    |\r
514 |               |            |             |             | requested to be scaled, as declared in the  |\r
515 +---------------+------------+-------------+-------------+---------------------------------------------+\r
516 | numberOfSteps | M          | 1           | Integer     | Number of scaling steps to be executed as   |\r
517 |               |            |             |             | part of this ScaleVnf operation. It shall   |\r
518 |               |            |             |             | be a positive number.                       |\r
519 |               |            |             |             | Defaults to 1.                              |\r
520 |               |            |             |             | The VNF Provider defines in the VNFD        |\r
521 |               |            |             |             | whether or not a particular VNF supports    |\r
522 |               |            |             |             | performing more than one step at a time.    |\r
523 |               |            |             |             | Such a property in the VNFD applies for all |\r
524 +---------------+------------+-------------+-------------+---------------------------------------------+\r
525 | additional    | M          | 1           |KeyValuePair | Additional parameters passed by the NFVO    |\r
526 | Param         |            |             |             | as input to the scaling proccess, specific  |\r
527 |               |            |             |             | to the VNF being scaled.                    |\r
528 |               |            |             |             | Reserved                                    |\r
529 +---------------+------------+-------------+-------------+---------------------------------------------+\r
530 | NOTE 1: ETSI GS NFV-IFA 010 [2] specifies that the lifecycle management operations that expand       |\r
531 |        or contract a VNF instance include scale in, scale out, scale up and scale down. Vertical     |\r
532 |        scaling (scale up, scale down) is not supported in the present document.                      |\r
533 |        SCALE_IN designates scaling in.                                                               |\r
534 |        SCALE_OUT 1 designates scaling out.                                                           |\r
535 | NOTE 2:  A scaling step is the smallest unit by which a VNF can be scaled w.r.t a particular scaling |\r
536 |          aspect.                                                                                     |\r
537 +------------------------------------------------------------------------------------------------------+\r
538 \r
539 {\r
540   "vnfInstanceId":"5",\r
541   "type":" SCALE_OUT",\r
542   "aspectId":"101",\r
543   "numberOfSteps":"1",\r
544   "additionalParam":{\r
545 \r
546     ……\r
547 \r
548   }\r
549 \r
550 }\r
551 \r
552 **3.5.2  Response**\r
553 \r
554 +--------------------+------------+-------------+-------------+---------------------------------+\r
555 | Parameter          | Qualifier  | Cardinality | Content     | Description                     |\r
556 +====================+============+=============+=============+=================================+\r
557 | jobId              | M          | 1           | String      | The identifier of the VNF       |\r
558 |                    |            |             |             | lifecycle operation occurrence. |\r
559 +--------------------+------------+-------------+-------------+---------------------------------+\r
560 \r
561 {\r
562   "jobId":"1"\r
563 \r
564 }\r
565 \r
566 **3.6  Heal VNF**\r
567 ------------------\r
568 \r
569 +---------------+------------------------------------------------------------------+\r
570 | IF Definition |  Description                                                     |\r
571 +===============+==================================================================+\r
572 | URI           | http(s)://[hostname][:port]/api/{vnfmtype}/v1/{vnfmid}/vnfs      |\r
573 |               | {vnfInstanceId}/heal                                             |\r
574 +---------------+------------------------------------------------------------------+\r
575 | Operation     |  POST                                                            |\r
576 +---------------+------------------------------------------------------------------+\r
577 | Direction     |  NSLCM->VNFMDriver                                               |\r
578 +---------------+------------------------------------------------------------------+\r
579 \r
580 **3.6.1  Request**\r
581 \r
582 +--------------------+------------+-------------+-------------+---------------------------------+\r
583 | Parameter          | Qualifier  | Cardinality | Content     | Description                     |\r
584 +====================+============+=============+=============+=================================+\r
585 | action             | M          | 1           | String      | Indicates the action to be done |\r
586 |                    |            |             |             | upon the given virtual machine. |\r
587 |                    |            |             |             | Only "vmReset" is supported     |\r
588 |                    |            |             |             | currently.                      |\r
589 +--------------------+------------+-------------+-------------+---------------------------------+\r
590 | affectedvm         | M          |  1          | AffectedVm  | Defines the information of      |\r
591 |                    |            |             |             | virtual machines.               |\r
592 +--------------------+------------+-------------+-------------+---------------------------------+\r
593 \r
594 **AffectedVm**\r
595 \r
596 +--------------------+------------+-------------+-------------+---------------------------------+\r
597 | Parameter          | Qualifier  | Cardinality | Content     | Description                     |\r
598 +====================+============+=============+=============+=================================+\r
599 | vimid              | M          | 1           | String      | Defines  the  UUID  of  virtual |\r
600 |                    |            |             |             | machine.                        |\r
601 +--------------------+------------+-------------+-------------+---------------------------------+\r
602 | vduid              | M          | 1           | String      | Defines the id of vdu.          |\r
603 +--------------------+------------+-------------+-------------+---------------------------------+\r
604 | vmname             | M          | 1           |             | Defines  the  name  of  virtual |\r
605 |                    |            |             |             | machines.                       |\r
606 +--------------------+------------+-------------+-------------+---------------------------------+\r
607 \r
608 {\r
609   "action": "vmReset",\r
610   "affectedvm": \r
611   {\r
612 \r
613     "vmid": "804cca71-9ae9-4511-8e30-d1387718caff",\r
614     "vduid": "vdu_100",\r
615     "vmname": "ZTE_SSS_111_PP_2_L"\r
616 \r
617   },\r
618 \r
619 }\r
620 \r
621 **3.6.2  Response**\r
622 \r
623 +--------------------+------------+-------------+-------------+---------------------------------+\r
624 | Parameter          | Qualifier  | Cardinality | Content     | Description                     |\r
625 +====================+============+=============+=============+=================================+\r
626 | jobId              | M          | 1           | Identifier  | The identifier of the VNF       |\r
627 |                    |            |             |             | healing operation occurrence.   |\r
628 +--------------------+------------+-------------+-------------+---------------------------------+\r
629 \r
630 {\r
631   "jobId":"1"\r
632 \r
633 }\r