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