c289626d575d27bc81b9c184787eb235f798eac9
[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 integrated related 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 hw-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        | Ext      | References  to  external     |\r
75 |                       |            |             | Virtual  | virtual links to connect the |\r
76 |                       |            |             | LinkData | VNF to.                      |\r
77 +-----------------------+------------+-------------+----------+------------------------------+\r
78 | additionalParam       | M          | 0..N        | Object   |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   | Type of the 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":"openstack",\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 | vnfInstanceId     | M          | 1           | String    | VNF instance identifier.      |\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 +--------------+------------+-------------+-----------+---------------------------------+\r
344 \r
345 **VnfInfo Table**\r
346 \r
347 +-----------------+------------+-------------+----------+---------------------------------+\r
348 | Attribute       | Qualifier  | Cardinality | Content  | Description                     |\r
349 +=================+============+=============+==========+=================================+\r
350 | vnfInstanceId   | M          | 1           | String   | VNF instance identifier.        |\r
351 +-----------------+------------+-------------+----------+---------------------------------+\r
352 | vnfInstanceName | M          | o..1        | String   | VNF instance name.              |\r
353 +-----------------+------------+-------------+----------+---------------------------------+\r
354 | vnfInstance     | M          | o..1        | String   | Human-readable description of   |\r
355 | Description     |            |             |          | the VNF instance.               |\r
356 +-----------------+------------+-------------+----------+---------------------------------+\r
357 | vnfdId          | M          | 1           | String   | Identifier of the VNFD on which |\r
358 |                 |            |             |          | the VNF instance is based.      |\r
359 +-----------------+------------+-------------+----------+---------------------------------+\r
360 | vnfPackageId    | M          | o..1        | String   | Identifier of the VNF Package   |\r
361 |                 |            |             |          | used to manage the lifecycle of |\r
362 |                 |            |             |          | the VNF instance. See note.     |\r
363 |                 |            |             |          | Shall be present for an         |\r
364 |                 |            |             |          | instantiated VNF instance.      |\r
365 +-----------------+------------+-------------+----------+---------------------------------+\r
366 | version         | M          | 1           | String   | Version of the VNF.             |\r
367 +-----------------+------------+-------------+----------+---------------------------------+\r
368 | vnfProvider     | M          | 1           | String   | Name of the person or company   |\r
369 |                 |            |             |          | providing the VNF.              |\r
370 +-----------------+------------+-------------+----------+---------------------------------+\r
371 | vnfType         | M          | 1           | String   | VNF Application Type            |\r
372 +-----------------+------------+-------------+----------+---------------------------------+\r
373 | vnfStatus       | M          | 1           | Enum     | The instantiation state of the  |\r
374 |                 |            |             |          | VNF. Possible values:           |\r
375 |                 |            |             |          | INACTIVE (Vnf is terminated or  |\r
376 |                 |            |             |          | not instantiated ),             |\r
377 |                 |            |             |          | ACTIVE (Vnf is instantiated).   |\r
378 |                 |            |             |          | [instantiationState]            |\r
379 +-----------------+------------+-------------+----------+---------------------------------+\r
380 \r
381 {\r
382   "vnfInfo":\r
383   {\r
384 \r
385     "nfInstanceId":"1",\r
386     "vnfInstanceName":"vFW",\r
387     "vnfInstanceDescription":"vFW in Nanjing TIC Edge",\r
388     "vnfdId":"1",\r
389     "vnfPackageId":"1",\r
390     "version":"V1.1",\r
391     "vnfProvider":"ZTE",\r
392     "vnfType":"vFW",\r
393     "vnfStatus":"  ACTIVE",\r
394 \r
395   }\r
396 \r
397 }\r
398 \r
399 **3.4  Get operation status**\r
400 -----------------------------\r
401 \r
402 +---------------+------------------------------------------------------------------+\r
403 | IF Definition |  Description                                                     |\r
404 +===============+==================================================================+\r
405 | URI           | http(s)://[hostname][:port]/api/{vnfmtype}                       |\r
406 |               | /v1/{vnfmid}/jobs/{jobid}&responseId={ responseId }              |\r
407 +---------------+------------------------------------------------------------------+\r
408 | Operation     |  GET                                                             |\r
409 +---------------+------------------------------------------------------------------+\r
410 | Direction     |  NSLCM->VNFMDriver                                               |\r
411 +---------------+------------------------------------------------------------------+\r
412 \r
413 **3.4.1  Request**\r
414 \r
415   None\r
416 \r
417 **3.4.2  Response**\r
418 \r
419 +--------------------+------------+-------------+-------------+---------------------------------+\r
420 | Parameter          | Qualifier  | Cardinality | Content     | Description                     |\r
421 +====================+============+=============+=============+=================================+\r
422 | jobId              | M          | 1           | String      | Job ID                          |\r
423 +--------------------+------------+-------------+-------------+---------------------------------+\r
424 | responseDescriptor | M          | 1           | -           | Including:                      |\r
425 |                    |            |             |             | vnfStatus, statusDescription,   |\r
426 |                    |            |             |             | errorCode,progress,             |\r
427 |                    |            |             |             | responseHistoryList, responseId |\r
428 +--------------------+------------+-------------+-------------+---------------------------------+\r
429 | status             | M          | 1           | String      | JOB status                      |\r
430 |                    |            |             |             | started                         |\r
431 |                    |            |             |             | processing                      |\r
432 |                    |            |             |             | finished                        |\r
433 |                    |            |             |             | error                           |\r
434 +--------------------+------------+-------------+-------------+---------------------------------+\r
435 | progress           | M          | 1           | Integer     | progress (1-100)                |\r
436 +--------------------+------------+-------------+-------------+---------------------------------+\r
437 | statusDescription  | M          | 1           | String      | Progress Description            |\r
438 +--------------------+------------+-------------+-------------+---------------------------------+\r
439 | errorCode          | M          | 1           | Integer     | Errorcode                       |\r
440 +--------------------+------------+-------------+-------------+---------------------------------+\r
441 | responseId         | M          | 1           | Integer     | Response Identifier             |\r
442 +--------------------+------------+-------------+-------------+---------------------------------+\r
443 | response           | M          | o..N        | ArrayList<> | History  Response  Messages     |\r
444 | HistoryList        |            |             |             | from  the  requested            |\r
445 |                    |            |             |             | responseId to lastest one.      |\r
446 |                    |            |             |             | Including fields:               |\r
447 |                    |            |             |             | vnfStatus,                      |\r
448 |                    |            |             |             | statusDescription,              |\r
449 |                    |            |             |             | errorCode,                      |\r
450 |                    |            |             |             | progress,                       |\r
451 |                    |            |             |             | responseId                      |\r
452 +--------------------+------------+-------------+-------------+---------------------------------+\r
453 \r
454 {\r
455   "jobId" : "1234566",\r
456   "responseDescriptor" : {\r
457 \r
458     "progress" : "40",\r
459     "status" : "proccessing",\r
460     "statusDescription" : "OMC VMs are decommissioned in VIM",\r
461     "errorCode" : null,\r
462     "responseId" : "42",\r
463     "responseHistoryList" : [{\r
464 \r
465       "progress" : "40",\r
466       "status" : "proccessing",\r
467       "statusDescription" : "OMC VMs are decommissioned in VIM",\r
468       "errorCode" : null,\r
469       "responseId" : "1"\r
470 \r
471     }, {\r
472       "progress" : "41",\r
473       "status" : "proccessing",\r
474       "statusDescription" : "OMC VMs are decommissioned in VIM",\r
475       "errorCode" : null,\r
476       "responseId" : "2"\r
477 \r
478     }\r
479 \r
480   ]\r
481 \r
482  }\r
483 \r
484 }\r
485 \r
486 **3.5  Scale VNF**\r
487 ------------------\r
488 \r
489 +---------------+------------------------------------------------------------------+\r
490 | IF Definition |  Description                                                     |\r
491 +===============+==================================================================+\r
492 | URI           | http(s)://[hostname][:port]/api/{vnfmtype}/v1/{vnfmid}/vnfs/     |\r
493 |               | {vnfInstanceId}/scale                                            |\r
494 +---------------+------------------------------------------------------------------+\r
495 | Operation     |  POST                                                            |\r
496 +---------------+------------------------------------------------------------------+\r
497 | Direction     |  NSLCM->VNFMDriver                                               |\r
498 +---------------+------------------------------------------------------------------+\r
499 \r
500 **3.5.1  Request**\r
501 \r
502 \r
503 +---------------+------------+-------------+-------------+---------------------------------------------+\r
504 | Parameter     | Qualifier  | Cardinality | Content     | Description                                 |\r
505 +===============+============+=============+=============+=============================================+\r
506 | type          | M          | 1           | Enum        | Defines the type of the scale operation     |\r
507 |               |            |             |             | requested (scale out, scale in). The set of |\r
508 |               |            |             |             | types actually supported depends on the     |\r
509 |               |            |             |             | capabilities of the VNF being managed, as   |\r
510 |               |            |             |             | declared in the VNFD. See note 1.           |\r
511 +---------------+------------+-------------+-------------+---------------------------------------------+\r
512 | aspectId      | M          | 1           | Identifier  | Identifies the aspect of the VNF that is    |\r
513 |               |            |             |             | requested to be scaled                      |\r
514 +---------------+------------+-------------+-------------+---------------------------------------------+\r
515 | numberOfSteps | M          | 1           | Integer     | Number of scaling steps to be executed as   |\r
516 |               |            |             |             | part of this ScaleVnf operation. It shall   |\r
517 |               |            |             |             | be a positive number.                       |\r
518 |               |            |             |             | Defaults to 1.                              |\r
519 |               |            |             |             | The VNF Provider defines in the VNFD        |\r
520 |               |            |             |             | whether or not a particular VNF supports    |\r
521 |               |            |             |             | performing more than one step at a time.    |\r
522 |               |            |             |             | Such a property in the VNFD applies for all |\r
523 +---------------+------------+-------------+-------------+---------------------------------------------+\r
524 | additional    | M          | 1           |KeyValuePair | Additional parameters passed by the NFVO    |\r
525 | Param         |            |             |             | as input to the scaling proccess, specific  |\r
526 |               |            |             |             | to the VNF being scaled.                    |\r
527 |               |            |             |             | Reserved                                    |\r
528 +---------------+------------+-------------+-------------+---------------------------------------------+\r
529 | NOTE 1: ETSI GS NFV-IFA 010 [2] specifies that the lifecycle management operations that expand       |\r
530 |        or contract a VNF instance include scale in, scale out, scale up and scale down. Vertical     |\r
531 |        scaling (scale up, scale down) is not supported in the present document.                      |\r
532 |        SCALE_IN designates scaling in.                                                               |\r
533 |        SCALE_OUT 1 designates scaling out.                                                           |\r
534 | NOTE 2: A scaling step is the smallest unit by which a VNF can be scaled w.r.t a particular scaling  |\r
535 |          aspect.                                                                                     |\r
536 +------------------------------------------------------------------------------------------------------+\r
537 \r
538 {\r
539   "vnfInstanceId":"5",\r
540   "type":" SCALE_OUT",\r
541   "aspectId":"101",\r
542   "numberOfSteps":"1",\r
543   "additionalParam":{\r
544 \r
545     ……\r
546 \r
547   }\r
548 \r
549 }\r
550 \r
551 **3.5.2  Response**\r
552 \r
553 +--------------------+------------+-------------+-------------+---------------------------------+\r
554 | Parameter          | Qualifier  | Cardinality | Content     | Description                     |\r
555 +====================+============+=============+=============+=================================+\r
556 | jobId              | M          | 1           | String      | The identifier of the VNF       |\r
557 |                    |            |             |             | lifecycle operation occurrence. |\r
558 +--------------------+------------+-------------+-------------+---------------------------------+\r
559 \r
560 {\r
561   "jobId":"1"\r
562 \r
563 }\r
564 \r
565 **3.6  Heal VNF**\r
566 ------------------\r
567 \r
568 +---------------+------------------------------------------------------------------+\r
569 | IF Definition |  Description                                                     |\r
570 +===============+==================================================================+\r
571 | URI           | http(s)://[hostname][:port]/api/{vnfmtype}/v1/{vnfmid}/vnfs      |\r
572 |               | {vnfInstanceId}/heal                                             |\r
573 +---------------+------------------------------------------------------------------+\r
574 | Operation     |  POST                                                            |\r
575 +---------------+------------------------------------------------------------------+\r
576 | Direction     |  NSLCM->VNFMDriver                                               |\r
577 +---------------+------------------------------------------------------------------+\r
578 \r
579 **3.6.1  Request**\r
580 \r
581 +--------------------+------------+-------------+-------------+---------------------------------+\r
582 | Parameter          | Qualifier  | Cardinality | Content     | Description                     |\r
583 +====================+============+=============+=============+=================================+\r
584 | action             | M          | 1           | String      | Indicates the action to be done |\r
585 |                    |            |             |             | upon the given virtual machine. |\r
586 |                    |            |             |             | Only "vmReset" is supported     |\r
587 |                    |            |             |             | currently.                      |\r
588 +--------------------+------------+-------------+-------------+---------------------------------+\r
589 | affectedvm         | M          |  1          | AffectedVm  | Defines the information of      |\r
590 |                    |            |             |             | virtual machines.               |\r
591 +--------------------+------------+-------------+-------------+---------------------------------+\r
592 \r
593 **AffectedVm**\r
594 \r
595 +--------------------+------------+-------------+-------------+---------------------------------+\r
596 | Parameter          | Qualifier  | Cardinality | Content     | Description                     |\r
597 +====================+============+=============+=============+=================================+\r
598 | vimid              | M          | 1           | String      | Defines  the  UUID  of  virtual |\r
599 |                    |            |             |             | machine.                        |\r
600 +--------------------+------------+-------------+-------------+---------------------------------+\r
601 | vduid              | M          | 1           | String      | Defines the id of vdu.          |\r
602 +--------------------+------------+-------------+-------------+---------------------------------+\r
603 | vmname             | M          | 1           |             | Defines  the  name  of  virtual |\r
604 |                    |            |             |             | machines.                       |\r
605 +--------------------+------------+-------------+-------------+---------------------------------+\r
606 \r
607 {\r
608   "action": "vmReset",\r
609   "affectedvm": \r
610   {\r
611 \r
612     "vmid": "804cca71-9ae9-4511-8e30-d1387718caff",\r
613     "vduid": "vdu_100",\r
614     "vmname": "ZTE_SSS_111_PP_2_L"\r
615 \r
616   }\r
617 \r
618 }\r
619 \r
620 **3.6.2  Response**\r
621 \r
622 +--------------------+------------+-------------+-------------+---------------------------------+\r
623 | Parameter          | Qualifier  | Cardinality | Content     | Description                     |\r
624 +====================+============+=============+=============+=================================+\r
625 | jobId              | M          | 1           | Identifier  | The identifier of the VNF       |\r
626 |                    |            |             |             | healing operation occurrence.   |\r
627 +--------------------+------------+-------------+-------------+---------------------------------+\r
628 \r
629 {\r
630   "jobId":"1"\r
631 \r
632 }\r
633 \r
634 \r
635 **4.  Interfaces provided by VFC to integrate with VNFM driver**\r
636 ===========================================\r
637 \r
638 \r
639 **4.1  VNF Lifecycle Operation Granting Interface**\r
640 ------------------------\r
641 \r
642 \r
643 +---------------+------------------------------------------------------------------+\r
644 | IF Definition |  Description                                                     |\r
645 +===============+==================================================================+\r
646 | URI           | http(s)://[hostname][:port]/api/nslcm/v1/ns/grantvnf             |\r
647 +---------------+------------------------------------------------------------------+\r
648 | Operation     |  POST                                                            |\r
649 +---------------+------------------------------------------------------------------+\r
650 | Direction     |  VNFMDriver -> NSLCM                                             |\r
651 +---------------+------------------------------------------------------------------+\r
652 \r
653 **4.1.1  Request**\r
654 \r
655 \r
656 {\r
657   "vnfInstanceId": "string",\r
658   "vnfDescriptorId": "string",\r
659   "lifecycleOperation": "Terminal",\r
660   "jobId": "string",\r
661   "addResource": [\r
662     {\r
663       "type": "string",\r
664       "resourceDefinitionId": "string",\r
665       "vdu": "string"\r
666     }\r
667   ],\r
668   "removeResource": [\r
669     {\r
670       "type": "string",\r
671       "resourceDefinitionId": "string",\r
672       "vdu": "string"\r
673     }\r
674   ],\r
675   "additionalParam": {}\r
676 }\r
677 \r
678 **4.1.2  Response**\r
679 \r
680 {\r
681   "vim": {\r
682     "vimInfoId": "string",\r
683     "vimId": "string",\r
684     "interfaceInfo": {\r
685       "vimType": "string",\r
686       "apiVersion": "string",\r
687       "protocolType": "string"\r
688     },\r
689     "accessInfo": {\r
690       "tenant": "string",\r
691       "username": "string",\r
692       "password": "string"\r
693     },\r
694     "interfaceEndpoint": "string"\r
695   }\r
696 }\r
697 \r
698 **4.2  VNF LCM Notification Interface**\r
699 ------------------------\r
700 \r
701 +---------------+------------------------------------------------------------------+\r
702 | IF Definition |  Description                                                     |\r
703 +===============+==================================================================+\r
704 | URI           | http(s)://[hostname][:port]/api/nslcm/v1/ns/{vnfmid}/vnfs/       |\r
705 |               | {vnfInstanceId}/Notify                                           |\r
706 +---------------+------------------------------------------------------------------+\r
707 | Operation     |  POST                                                            |\r
708 +---------------+------------------------------------------------------------------+\r
709 | Direction     |  VNFMDriver -> NSLCM                                             |\r
710 +---------------+------------------------------------------------------------------+\r
711 \r
712 **4.2.1  Request**\r
713 \r
714 {\r
715   "status": "result",\r
716   "vnfInstanceId": "string",\r
717   "operation": "Terminal",\r
718   "jobId": "string",\r
719   "affectedVnfc": [\r
720     {\r
721       "vnfcInstanceId": "string",\r
722       "vduId": "string",\r
723       "changeType": "added",\r
724       "vimid": "string",\r
725       "vmid": "string",\r
726       "vmname": "string"\r
727     }\r
728   ],\r
729   "affectedCp": [\r
730     {\r
731       "virtualLinkInstanceId": "string",\r
732       "cpinstanceid": "string",\r
733       "cpdid": "string",\r
734       "ownerType": "string",\r
735       "ownerId": "string",\r
736       "changeType": "added",\r
737       "portResource": {\r
738         "vimid": "string",\r
739         "resourceid": "string",\r
740         "resourceName": "string",\r
741         "tenant": "string",\r
742         "ipAddress": "string",\r
743         "macAddress": "string",\r
744         "instId": "string"\r
745       }\r
746     }\r
747   ],\r
748   "affectedVl": [\r
749     {\r
750       "vlInstanceId": "string",\r
751       "vldid": "string",\r
752       "changeType": "added",\r
753       "networkResource": {\r
754         "resourceType": "network",\r
755         "resourceId": "string"\r
756       }\r
757     }\r
758   ],\r
759   "affectedVirtualStorage": [\r
760     {}\r
761   ]\r
762 }\r
763 \r
764 **4.2.2  Response**\r
765 \r
766 N/A\r
767 \r
768 \r
769 **4.3  Query VNFM Register Info Interface**\r
770 ------------------------\r
771 \r
772 +---------------+------------------------------------------------------------------+\r
773 | IF Definition |  Description                                                     |\r
774 +===============+==================================================================+\r
775 | URI           | http(s)://[hostname][:port]/api/nslcm/v1/vnfms/{vnfmid}          |\r
776 +---------------+------------------------------------------------------------------+\r
777 | Operation     |  GET                                                             |\r
778 +---------------+------------------------------------------------------------------+\r
779 | Direction     |  VNFMDriver -> NSLCM                                             |\r
780 +---------------+------------------------------------------------------------------+\r
781 \r
782 **4.3.1  Request**\r
783 N/A\r
784 \r
785 **4.3.2  Response**\r
786 {\r
787   "vnfmId": "string",\r
788   "name": "string",\r
789   "type": "string",\r
790   "url": "string",\r
791   "userName": "string",\r
792   "password": "string",\r
793   "vimId": "string",\r
794   "vendor": "string",\r
795   "version": "string",\r
796   "description": "string",\r
797   "certificateUrl": "string",\r
798   "createTime": "string"\r
799 }\r
800 \r
801 \r
802 **4.4  Query VIM Register Info Interface**\r
803 ------------------------\r
804 \r
805 +---------------+------------------------------------------------------------------+\r
806 | IF Definition |  Description                                                     |\r
807 +===============+==================================================================+\r
808 | URI           | http(s)://[hostname][:port]/api/nslcm/v1/vims/{vimid}            |\r
809 +---------------+------------------------------------------------------------------+\r
810 | Operation     |  GET                                                             |\r
811 +---------------+------------------------------------------------------------------+\r
812 | Direction     |  VNFMDriver -> NSLCM                                             |\r
813 +---------------+------------------------------------------------------------------+\r
814 \r
815 **4.4.1  Request**\r
816 N/A\r
817 \r
818 **4.4.2  Response**\r
819 \r
820 +--------------------+------------+-------------+-------------+---------------------------------+\r
821 | Parameter          | Qualifier  | Cardinality | Content     | Description                     |\r
822 +====================+============+=============+=============+=================================+\r
823 | vimId              | M          | 1           | string      | The identifier of the VIM       |\r
824 +--------------------+------------+-------------+-------------+---------------------------------+\r
825 | name               | M          | 1           | string      | The name of the VIM             | \r
826 +--------------------+------------+-------------+-------------+---------------------------------+\r
827 | type               | M          | 1           | string      | The type of the VIM             |\r
828 +--------------------+------------+-------------+-------------+---------------------------------+\r
829 | url                | M          | 1           | string      | The access URL of the VIM       |\r
830 +--------------------+------------+-------------+-------------+---------------------------------+\r
831 | userName           | M          | 1           | string      | The user name of the VIM        |\r
832 +--------------------+------------+-------------+-------------+---------------------------------+\r
833 | password           | M          | 1           | string      | The password of the VIM         |\r
834 +--------------------+------------+-------------+-------------+---------------------------------+\r
835 | vendor             | M          | 1           | string      | The vendor of the VIM           |\r
836 +--------------------+------------+-------------+-------------+---------------------------------+\r
837 | version            | M          | 1           | version     | The version of the VIM          |\r
838 +--------------------+------------+-------------+-------------+---------------------------------+\r
839 | description        | O          | 1           | description | The description of the VIM      |\r
840 +--------------------+------------+-------------+-------------+---------------------------------+\r
841 | sslCacert          | O          | 1           | Identifier  | The collection of trusted       |\r
842 |                    |            |             |             | certificates towards the VIM.   |\r
843 +--------------------+------------+-------------+-------------+---------------------------------+\r
844 | sslInsecure        | O          | 1           | Identifier  | Whether to verify VIM's         |\r
845 |                    |            |             |             | certificate.                    |\r
846 +--------------------+------------+-------------+-------------+---------------------------------+\r
847 | status             | O          | 1           | Identifier  | The status of external system   |\r
848 +--------------------+------------+-------------+-------------+---------------------------------+\r
849 \r
850 \r
851 {\r
852   "vimId": "string",\r
853   "name": "string",\r
854   "type": "string",\r
855   "url": "string",\r
856   "userName": "string",\r
857   "password": "string",\r
858   "vendor": "string",\r
859   "version": "string",\r
860   "description": "string",\r
861   "createTime": "string",\r
862   "sslCacert": "string",\r
863   "sslInsecure": "string",\r
864   "status": "string"\r
865 }\r
866 \r