Updating Nokia driver
[vfc/nfvo/driver/vnfm/svnfm.git] / nokiav2 / generatedapis / src / main / resources / resource.manager.json
1 {
2     "swagger": "2.0",
3     "info": {
4         "title": "Resource Management API",
5         "description": "Resource Management API",
6         "version": "1.0.0"
7     },
8     "tags": [
9         {
10             "name": "Resource Management services"
11         }
12     ],
13     "basePath": "/api/resmgr/v1",
14     "paths": {
15         "/limits": {
16             "get": {
17                 "summary": "Query limits information",
18                 "description": "Query limits information",
19                 "consumes": [
20                     "application/json"
21                 ],
22                 "produces": [
23                     "application/json"
24                 ],
25                 "parameters": [
26                     {
27                         "name": "vimId",
28                         "in": "query",
29                         "description": "vim Id",
30                         "required": true,
31                         "type": "string"
32                     }
33                 ],
34                 "responses": {
35                     "200": {
36                         "description": "Successfully Query limits information",
37                         "schema": {
38                             "$ref": "#/definitions/QueryLimts"
39                         }
40                     },
41                     "401": {
42                         "description": "Unauthorized"
43                     },
44                     "404": {
45                         "description": "Limits Not Found"
46                     },
47                     "500": {
48                         "description": "Limits failed to process the request",
49                         "schema": {
50                             "$ref": "#/definitions/Error"
51                         }
52                     }
53                 }
54             }
55         },
56         "/resource/grant": {
57             "put": {
58                 "summary": "Grant VNF Life Cycle Operation",
59                 "description": "Grant Resource",
60                 "consumes": [
61                     "application/json"
62                 ],
63                 "produces": [
64                     "application/json"
65                 ],
66                 "parameters": [
67                     {
68                         "in": "body",
69                         "name": "open-o",
70                         "description": "OPEN-O Interface.",
71                         "required": true,
72                         "schema": {
73                             "$ref": "#/definitions/GrantResource"
74                         }
75                     }
76                 ],
77                 "responses": {
78                     "200": {
79                         "description": "VNF Resource Response",
80                         "schema": {
81                             "$ref": "#/definitions/GrantResourceResponse"
82                         }
83                     },
84                     "401": {
85                         "description": "Unauthorized"
86                     },
87                     "404": {
88                         "description": "VNF Resource Not Found"
89                     },
90                     "500": {
91                         "description": "VNF resource failed to process the request",
92                         "schema": {
93                             "$ref": "#/definitions/Error"
94                         }
95                     }
96                 }
97             }
98         },
99         "/vl": {
100             "post": {
101                 "summary": "Create virtual link resource",
102                 "description": "virtual link Resource",
103                 "consumes": [
104                     "application/json"
105                 ],
106                 "produces": [
107                     "application/json"
108                 ],
109                 "parameters": [
110                     {
111                         "in": "body",
112                         "name": "open-o",
113                         "description": "OPEN-O Interface.",
114                         "required": true,
115                         "schema": {
116                             "$ref": "#/definitions/VirtualLink"
117                         }
118                     }
119                 ],
120                 "responses": {
121                     "202": {
122                         "description": "Successfully Created VNF Resource",
123                         "schema": {
124                             "$ref": "#/definitions/VirtualLinkResponse"
125                         }
126                     },
127                     "401": {
128                         "description": "Unauthorized"
129                     },
130                     "404": {
131                         "description": "VNF Resource Not Found"
132                     },
133                     "500": {
134                         "description": "VNF resource failed to process the request",
135                         "schema": {
136                             "$ref": "#/definitions/Error"
137                         }
138                     }
139                 }
140             }
141         },
142         "/vl/{id}": {
143             "delete": {
144                 "summary": "Delete virtual link resource",
145                 "description": "Delete virtual link Resource",
146                 "consumes": [
147                     "application/json"
148                 ],
149                 "produces": [
150                     "application/json"
151                 ],
152                 "parameters": [
153                     {
154                         "name": "id",
155                         "in": "path",
156                         "description": "VNF Resource Id",
157                         "required": true,
158                         "type": "string"
159                     }
160                 ],
161                 "responses": {
162                     "200": {
163                         "description": "Successfully Deleted VNF Resource"
164                     },
165                     "401": {
166                         "description": "Unauthorized"
167                     },
168                     "404": {
169                         "description": "VNF Resource Not Found"
170                     },
171                     "500": {
172                         "description": "VNF resource failed to process the request",
173                         "schema": {
174                             "$ref": "#/definitions/Error"
175                         }
176                     }
177                 }
178             }
179         },
180         "/vnf": {
181             "post": {
182                 "summary": "Create VNF instance resource",
183                 "description": "Create VNF Resource",
184                 "consumes": [
185                     "application/json"
186                 ],
187                 "produces": [
188                     "application/json"
189                 ],
190                 "parameters": [
191                     {
192                         "in": "body",
193                         "name": "open-o",
194                         "description": "OPEN-O Interface.",
195                         "required": true,
196                         "schema": {
197                             "$ref": "#/definitions/CreateVNFResource"
198                         }
199                     }
200                 ],
201                 "responses": {
202                     "201": {
203                         "description": "Successfully Created VNF Resource",
204                         "schema": {
205                             "$ref": "#/definitions/CreateVNFResponse"
206                         }
207                     },
208                     "401": {
209                         "description": "Unauthorized"
210                     },
211                     "404": {
212                         "description": "VNF Resource Not Found"
213                     },
214                     "500": {
215                         "description": "VNF resource failed to process the request",
216                         "schema": {
217                             "$ref": "#/definitions/Error"
218                         }
219                     }
220                 }
221             }
222         },
223         "/vnfinfo": {
224             "post": {
225                 "summary": "Write VNF status information",
226                 "description": "VNF Status",
227                 "consumes": [
228                     "application/json"
229                 ],
230                 "produces": [
231                     "application/json"
232                 ],
233                 "parameters": [
234                     {
235                         "in": "body",
236                         "name": "open-o",
237                         "description": "OPEN-O Interface.",
238                         "required": true,
239                         "schema": {
240                             "$ref": "#/definitions/VNFStatusInfo"
241                         }
242                     }
243                 ],
244                 "responses": {
245                     "201": {
246                         "description": "Successfully write VNF status"
247                     },
248                     "401": {
249                         "description": "Unauthorized"
250                     },
251                     "404": {
252                         "description": "VNF Resource Not Found"
253                     },
254                     "500": {
255                         "description": "VNF resource failed to process the request",
256                         "schema": {
257                             "$ref": "#/definitions/Error"
258                         }
259                     }
260                 }
261             }
262         },
263         "/vnfdetailinfo": {
264             "post": {
265                 "summary": "Write VNF detail information",
266                 "description": "VNF detail info",
267                 "consumes": [
268                     "application/json"
269                 ],
270                 "produces": [
271                     "application/json"
272                 ],
273                 "parameters": [
274                     {
275                         "in": "body",
276                         "name": "open-o",
277                         "description": "OPEN-O Interface",
278                         "required": true,
279                         "schema": {
280                             "$ref": "#/definitions/VNFDetailInfo"
281                         }
282                     }
283                 ],
284                 "responses": {
285                     "201": {
286                         "description": "Successfully write VNF detail Info"
287                     },
288                     "401": {
289                         "description": "Unauthorized"
290                     },
291                     "404": {
292                         "description": "VNF Resource Not Found"
293                     },
294                     "500": {
295                         "description": "VNF resource failed to process the request",
296                         "schema": {
297                             "$ref": "#/definitions/Error"
298                         }
299                     }
300                 }
301             }
302         }
303     },
304     "definitions": {
305         "QueryLimts": {
306             "type": "object",
307             "description": "Query Limits Response.",
308             "required": [
309                 "vimId",
310                 "vimName",
311                 "totalCPU",
312                 "totalMemory",
313                 "totalDisk",
314                 "usedCPU",
315                 "usedMemory",
316                 "usedDisk"
317             ],
318             "properties": {
319                 "vimId": {
320                     "type": "string",
321                     "description": "Identifier of vimId."
322                 },
323                 "vimName": {
324                     "type": "string",
325                     "description": "Name."
326                 },
327                 "totalCPU": {
328                     "type": "string"
329                 },
330                 "totalMemory": {
331                     "type": "string"
332                 },
333                 "totalDisk": {
334                     "type": "string"
335                 },
336                 "usedCPU": {
337                     "type": "string"
338                 },
339                 "usedMemory": {
340                     "type": "string"
341                 },
342                 "usedDisk": {
343                     "type": "string"
344                 }
345             }
346         },
347         "VirtualLinkResponse": {
348             "type": "object",
349             "description": "Virtual Link Response.",
350             "required": [
351                 "Id",
352                 "Name"
353             ],
354             "properties": {
355                 "Id": {
356                     "type": "string",
357                     "description": "Identifier of VL."
358                 },
359                 "Name": {
360                     "type": "string",
361                     "description": "Name of VL."
362                 }
363             }
364         },
365         "CreateVNFResponse": {
366             "type": "object",
367             "description": "Create VNF Response.",
368             "required": [
369                 "Id",
370                 "Name"
371             ],
372             "properties": {
373                 "Id": {
374                     "type": "string",
375                     "description": "UUID."
376                 },
377                 "Name": {
378                     "type": "string",
379                     "description": "Instance Name."
380                 }
381             }
382         },
383         "VNFDetailInfo": {
384             "type": "object",
385             "description": "List of Vm to be added or deleted",
386             "required": [
387                 "vnfInstanceId",
388                 "nsId",
389                 "vnfmId",
390                 "Vms"
391             ],
392             "properties": {
393                 "vnfInstanceId": {
394                     "type": "string",
395                     "description": "The id of VNF instance"
396                 },
397                 "nsId": {
398                     "type": "string",
399                     "description": "NS ID"
400                 },
401                 "vnfmId": {
402                     "type": "string",
403                     "description": "VNFM ID"
404                 },
405                 "Vms": {
406                     "type": "array",
407                     "items": {
408                         "$ref": "#/definitions/Vm"
409                     }
410                 }
411             }
412         },
413         "VNFStatusInfo": {
414             "type": "object",
415             "description": "Write VNF Status.",
416             "required": [
417                 "vnfInstanceId",
418                 "jobId",
419                 "nsId",
420                 "vnfmId",
421                 "responseDescriptor",
422                 "status",
423                 "progress",
424                 "sStatusDescription",
425                 "errorCode",
426                 "responseId",
427                 "responseHistoryList",
428                 "addVm",
429                 "delVm"
430             ],
431             "properties": {
432                 "vnfInstanceId": {
433                     "type": "string",
434                     "description": "The Id of VNF Instance."
435                 },
436                 "jobId": {
437                     "type": "string",
438                     "description": "The ID of workflow."
439                 },
440                 "nsId": {
441                     "type": "string",
442                     "description": "NS ID."
443                 },
444                 "vnfmId": {
445                     "type": "string",
446                     "description": "The VNFM ID."
447                 },
448                 "responseDescriptor": {
449                     "type": "string",
450                     "description": "The name of VNFM."
451                 },
452                 "status": {
453                     "type": "string",
454                     "description": "Status of VNF - started processing finished error."
455                 },
456                 "progress": {
457                     "type": "integer",
458                     "description": "progress (1-100)."
459                 },
460                 "sStatusDescription": {
461                     "type": "string",
462                     "description": "current Progress Description."
463                 },
464                 "errorCode": {
465                     "type": "integer",
466                     "description": "Error code."
467                 },
468                 "responseId": {
469                     "type": "integer",
470                     "description": "Message Number."
471                 },
472                 "responseHistoryList": {
473                     "type": "array",
474                     "items": {
475                         "$ref": "#/definitions/progressInfo"
476                     }
477                 },
478                 "addVm": {
479                     "type": "array",
480                     "items": {
481                         "$ref": "#/definitions/Vm"
482                     }
483                 },
484                 "delVm": {
485                     "type": "array",
486                     "items": {
487                         "$ref": "#/definitions/Vm"
488                     }
489                 }
490             }
491         },
492         "progressInfo": {
493             "type": "object",
494             "description": "List of Vm to be added or deleted",
495             "required": [
496                 "progress",
497                 "status",
498                 "statusDescription",
499                 "errorCode",
500                 "responseId",
501                 "responseHistoryList"
502             ],
503             "properties": {
504                 "progress": {
505                     "type": "integer",
506                     "description": "progress (1 - 100)"
507                 },
508                 "status": {
509                     "type": "string",
510                     "description": "status"
511                 },
512                 "statusDescription": {
513                     "type": "string",
514                     "description": "status description"
515                 },
516                 "errorCode": {
517                     "type": "integer",
518                     "description": "Error Code"
519                 },
520                 "responseId": {
521                     "type": "integer",
522                     "description": "Id"
523                 },
524                 "responseHistoryList": {
525                     "type": "array",
526                     "items": {
527                         "$ref": "#/definitions/historyInfo"
528                     }
529                 }
530             }
531         },
532         "historyInfo": {
533             "type": "object",
534             "description": "List of Vm to be added or deleted",
535             "required": [
536                 "progress",
537                 "status",
538                 "statusDescription",
539                 "errorCode",
540                 "responseId"
541             ],
542             "properties": {
543                 "progress": {
544                     "type": "integer",
545                     "description": "progress (1 - 100)"
546                 },
547                 "status": {
548                     "type": "string",
549                     "description": "status"
550                 },
551                 "statusDescription": {
552                     "type": "string",
553                     "description": "status description"
554                 },
555                 "errorCode": {
556                     "type": "integer",
557                     "description": "Error Code"
558                 },
559                 "responseId": {
560                     "type": "integer",
561                     "description": "Id"
562                 }
563             }
564         },
565         "Vm": {
566             "type": "object",
567             "description": "List of Vm to be added or deleted",
568             "required": [
569                 "vmId",
570                 "vmName",
571                 "vmStatus"
572             ],
573             "properties": {
574                 "vmId": {
575                     "type": "string",
576                     "description": "The ID of VM"
577                 },
578                 "vmName": {
579                     "type": "string",
580                     "description": "The name of VM"
581                 },
582                 "vmStatus": {
583                     "type": "string",
584                     "description": "The Status of VM"
585                 }
586             }
587         },
588         "CreateVNFResource": {
589             "type": "object",
590             "description": "Create VNF Resource.",
591             "required": [
592                 "vnfInstanceId",
593                 "vnfInstanceName",
594                 "nsId",
595                 "nsName",
596                 "vnfmId",
597                 "vnfmName",
598                 "vnfPackageName",
599                 "vnfDescriptorName",
600                 "vimId",
601                 "vimName",
602                 "vimTenant",
603                 "jobId",
604                 "vnfStatus",
605                 "vnfType",
606                 "maxVm",
607                 "maxCpu",
608                 "maxDisk",
609                 "maxRam",
610                 "maxShd",
611                 "maxNet"
612             ],
613             "properties": {
614                 "vnfInstanceId": {
615                     "type": "string",
616                     "description": "The Identifier of VNF Instance."
617                 },
618                 "vnfInstanceName": {
619                     "type": "string",
620                     "description": "The name of VNF."
621                 },
622                 "nsId": {
623                     "type": "string",
624                     "description": "NS ID."
625                 },
626                 "nsName": {
627                     "type": "string",
628                     "description": "NS name."
629                 },
630                 "vnfmId": {
631                     "type": "string",
632                     "description": "The ID of VNFM."
633                 },
634                 "vnfmName": {
635                     "type": "string",
636                     "description": "The name of VNFM."
637                 },
638                 "vnfPackageName": {
639                     "type": "string",
640                     "description": "The description of VNF Package."
641                 },
642                 "vnfDescriptorName": {
643                     "type": "string",
644                     "description": "The Description of VNFD."
645                 },
646                 "vimId": {
647                     "type": "string",
648                     "description": "Vim ID."
649                 },
650                 "vimName": {
651                     "type": "string",
652                     "description": "The Name of VIM."
653                 },
654                 "vimTenant": {
655                     "type": "string",
656                     "description": "The tenant of VIM."
657                 },
658                 "jobId": {
659                     "type": "string",
660                     "description": "The ID of workflow."
661                 },
662                 "vnfStatus": {
663                     "type": "string",
664                     "description": "The status of VNF."
665                 },
666                 "vnfType": {
667                     "type": "string",
668                     "description": "The type of VNF."
669                 },
670                 "maxVm": {
671                     "type": "integer",
672                     "description": "Max Vm in this VNF."
673                 },
674                 "maxCpu": {
675                     "type": "integer",
676                     "description": "Max CPU in this VNF."
677                 },
678                 "maxDisk": {
679                     "type": "integer",
680                     "description": "Max Disk in this VNF."
681                 },
682                 "maxRam": {
683                     "type": "integer",
684                     "description": "Max Memory in this VNF."
685                 },
686                 "maxShd": {
687                     "type": "integer",
688                     "description": "Max Share Disk in this VNF."
689                 },
690                 "maxNet": {
691                     "type": "integer",
692                     "description": "Max logical Network in this VNF."
693                 }
694             }
695         },
696         "VirtualLink": {
697             "type": "object",
698             "description": "Virtual Link Resource.",
699             "required": [
700                 "name",
701                 "backendId",
702                 "isPublic",
703                 "dcName",
704                 "vimId",
705                 "vimName",
706                 "physicialNet",
707                 "nsId",
708                 "nsName",
709                 "description",
710                 "networkType",
711                 "segmentation",
712                 "mtu",
713                 "vlanTransparent",
714                 "routerExternal",
715                 "resourceProviderType",
716                 "resourceProviderId"
717             ],
718             "properties": {
719                 "name": {
720                     "type": "string",
721                     "description": "Logical Network Name."
722                 },
723                 "backendId": {
724                     "type": "string",
725                     "description": "The backend id on VIM."
726                 },
727                 "isPublic": {
728                     "type": "string",
729                     "description": "Sharable - True or False."
730                 },
731                 "dcName": {
732                     "type": "string",
733                     "description": "The DataCenter name."
734                 },
735                 "vimId": {
736                     "type": "string",
737                     "description": "vim Id."
738                 },
739                 "vimName": {
740                     "type": "string",
741                     "description": "The name of VIM."
742                 },
743                 "physicialNet": {
744                     "type": "string",
745                     "description": "Physicial Network."
746                 },
747                 "nsId": {
748                     "type": "string",
749                     "description": "NsId."
750                 },
751                 "nsName": {
752                     "type": "string",
753                     "description": "The name of NS."
754                 },
755                 "description": {
756                     "type": "string",
757                     "description": "Description."
758                 },
759                 "networkType": {
760                     "type": "string",
761                     "description": "Network Type - gre/vlan/vxlan."
762                 },
763                 "segmentation": {
764                     "type": "string",
765                     "description": "Segmentation Id just like vlan id."
766                 },
767                 "mtu": {
768                     "type": "string",
769                     "description": "MTU value."
770                 },
771                 "vlanTransparent": {
772                     "type": "string",
773                     "description": "Support vlan transparent- True/False."
774                 },
775                 "routerExternal": {
776                     "type": "string",
777                     "description": "Support External Router - True / False."
778                 },
779                 "resourceProviderType": {
780                     "type": "string",
781                     "description": "The location to be deployed in one of the list - VIM/DC/Zone/Host."
782                 },
783                 "resourceProviderId": {
784                     "type": "string",
785                     "description": "The location ID to be deployed."
786                 }
787             }
788         },
789         "GrantResourceResponse": {
790             "type": "object",
791             "description": "Resource Response.",
792             "required": [
793                 "vim",
794                 "zone",
795                 "zoneGroup",
796                 "addResource",
797                 "tempResource",
798                 "removeResource",
799                 "updateResource",
800                 "vimAssets",
801                 "additionalParam"
802             ],
803             "properties": {
804                 "vim": {
805                     "$ref": "#/definitions/VimInfo"
806                 },
807                 "zone": {
808                     "type": "string"
809                 },
810                 "zoneGroup": {
811                     "type": "string"
812                 },
813                 "addResource": {
814                     "$ref": "#/definitions/GrantInfo"
815                 },
816                 "tempResource": {
817                     "$ref": "#/definitions/GrantInfo"
818                 },
819                 "removeResource": {
820                     "$ref": "#/definitions/GrantInfo"
821                 },
822                 "updateResource": {
823                     "$ref": "#/definitions/GrantInfo"
824                 },
825                 "vimAssets": {
826                     "type": "string"
827                 },
828                 "additionalParam": {
829                     "type": "string"
830                 }
831             }
832         },
833         "VimInfo": {
834             "type": "object",
835             "description": "Information about the VIM that manages this resource.",
836             "required": [
837                 "vimInfoId",
838                 "vimId",
839                 "interfaceInfo",
840                 "accessInfo",
841                 "interfaceEndpoint"
842             ],
843             "properties": {
844                 "vimInfoId": {
845                     "type": "string",
846                     "description": "The identifier of this VimInfo instance, for the purpose of referencing it from other information elements."
847                 },
848                 "vimId": {
849                     "type": "string",
850                     "description": "The identifier of the VIM.."
851                 },
852                 "interfaceInfo": {
853                     "$ref": "#/definitions/interfaceInfo"
854                 },
855                 "accessInfo": {
856                     "$ref": "#/definitions/accessInfo"
857                 },
858                 "interfaceEndpoint": {
859                     "type": "string",
860                     "description": "Information about the interface endpoint. An example is a URL."
861                 }
862             }
863         },
864         "interfaceInfo": {
865             "type": "object",
866             "description": "Information about the interface to the VIM, including VIM provider type, API version, and protocol type..",
867             "required": [
868                 "vimType",
869                 "apiVersion",
870                 "protocolType"
871             ],
872             "properties": {
873                 "vimType": {
874                     "type": "string",
875                     "description": "vim"
876                 },
877                 "apiVersion": {
878                     "type": "string",
879                     "description": "api version"
880                 },
881                 "protocolType": {
882                     "type": "string",
883                     "description": "Type of the protocol"
884                 }
885             }
886         },
887         "accessInfo": {
888             "type": "object",
889             "description": "Authentication credentials for accessing the VIM. Examples may include those to support different authentication schemes, e.g., OAuth, Token, etc..",
890             "required": [
891                 "tenant",
892                 "username",
893                 "password"
894             ],
895             "properties": {
896                 "tenant": {
897                     "type": "string",
898                     "description": "Tenant Name of tenant"
899                 },
900                 "username": {
901                     "type": "string",
902                     "description": "Username for login"
903                 },
904                 "password": {
905                     "type": "string",
906                     "description": "Password of login user"
907                 }
908             }
909         },
910         "GrantInfo": {
911             "type": "object",
912             "description": "Grant Information.",
913             "required": [
914                 "resourceDefinitionId",
915                 "reservationId",
916                 "vimId",
917                 "resourceProviderId",
918                 "zoneId"
919             ],
920             "properties": {
921                 "resourceDefinitionId": {
922                     "type": "string",
923                     "description": "Identifier of the related ResourceDefinition information from Grant Request"
924                 },
925                 "reservationId": {
926                     "type": "string",
927                     "description": "Reservation Identifier applicable to the VNFC/VL."
928                 },
929                 "vimId": {
930                     "type": "string",
931                     "description": "Reference to the identifier of the VimInfo information element defining the VIM under whose control this resource to be placed."
932                 },
933                 "resourceProviderId": {
934                     "type": "string",
935                     "description": "Identifies the entity responsible for the management of the virtualized resource."
936                 },
937                 "zoneId": {
938                     "type": "string",
939                     "description": "Reference of the identifier of the zoneInfo information element defining the resource zone in which resource to be placed."
940                 }
941             }
942         },
943         "GrantResource": {
944             "type": "object",
945             "description": "Grant Resource Request Body.",
946             "required": [
947                 "vnfInstanceId",
948                 "addResource",
949                 "vimId",
950                 "additionalParam"
951             ],
952             "properties": {
953                 "vnfInstanceId": {
954                     "type": "string",
955                     "description": "Identifier Instance."
956                 },
957                 "vimId": {
958                     "type": "string",
959                     "description": "Identifier vim."
960                 },
961                 "addResource": {
962                     "type": "array",
963                     "items": {
964                         "$ref": "#/definitions/ResourceDefinition"
965                     },
966                     "description": "Information sufficient to identify the VNF Descriptor which defines the VNF to be created."
967                 },
968                 "removeResource": {
969                     "type": "array",
970                     "items": {
971                         "$ref": "#/definitions/ResourceDefinition"
972                     }
973                 },
974                 "additionalParam": {
975                     "type": "object",
976                     "description": "additionalParam.",
977                     "required": [
978                         "vnfmid"
979                     ],
980                     "properties": {
981                         "vnfmid": {
982                             "type": "string"
983                         },
984                         "vimid": {
985                             "type": "string"
986                         },
987                         "tenant": {
988                             "type": "string"
989                         }
990                     }
991                 }
992             }
993         },
994         "ResourceDefinition": {
995             "type": "object",
996             "description": "List of resources to be added / deleted / updated.",
997             "required": [
998                 "resourceDefinitionId",
999                 "resourceTemplate",
1000                 "type",
1001                 "vdu"
1002             ],
1003             "properties": {
1004                 "resourceDefinitionId": {
1005                     "type": "string",
1006                     "description": "Identifier of this ResourceDefinition information element, unique at least within the scope of the Grant request."
1007                 },
1008                 "resourceTemplate": {
1009                     "$ref": "#/definitions/ResourceTemplate"
1010                 },
1011                 "type": {
1012                     "default": "compute",
1013                     "enum": [
1014                         "compute",
1015                         "VL",
1016                         "CP",
1017                         "Storage"
1018                     ],
1019                     "description": "Currently only support tosca.nodes.nfv.VDU."
1020                 },
1021                 "vdu": {
1022                     "type": "string",
1023                     "description": "Reference to the related Vdu applicable to this resource in the VNFD."
1024                 }
1025             }
1026         },
1027         "ResourceTemplate": {
1028             "type": "object",
1029             "description": "Resource templates.",
1030             "required": [
1031                 "VirtualComputeDescriptor",
1032                 "VirtualStorageDescriptor"
1033             ],
1034             "properties": {
1035                 "VirtualComputeDescriptor": {
1036                     "$ref": "#/definitions/VirtualComputeDescriptor"
1037                 },
1038                 "VirtualStorageDescriptor": {
1039                     "$ref": "#/definitions/VirtualStorageDescriptor"
1040                 }
1041             }
1042         },
1043         "VirtualComputeDescriptor": {
1044             "type": "object",
1045             "description": "Reference to a resource template.",
1046             "required": [
1047                 "virtualCpu",
1048                 "virtualMemory"
1049             ],
1050             "properties": {
1051                 "virtualCpu": {
1052                     "type": "integer",
1053                     "format": "int32",
1054                     "description": "Number of virtual CPUs"
1055                 },
1056                 "virtualMemory": {
1057                     "type": "integer",
1058                     "format": "int32",
1059                     "description": "Amount of virtual Memory"
1060                 }
1061             }
1062         },
1063         "VirtualStorageDescriptor": {
1064             "type": "object",
1065             "description": "Reference to a resource template.",
1066             "required": [
1067                 "typeOfStorage",
1068                 "sizeOfStorage",
1069                 "swImageDescriptor"
1070             ],
1071             "properties": {
1072                 "typeOfStorage": {
1073                     "type": "string",
1074                     "description": "Type of virtualized storage resource"
1075                 },
1076                 "sizeOfStorage": {
1077                     "type": "integer",
1078                     "format": "int32",
1079                     "description": "Size of virtualized storage resource"
1080                 },
1081                 "swImageDescriptor": {
1082                     "type": "string",
1083                     "description": "Software image to be loaded on the Virtual Storage"
1084                 }
1085             }
1086         },
1087         "Error": {
1088             "type": "object",
1089             "properties": {
1090                 "code": {
1091                     "type": "integer",
1092                     "format": "int32"
1093                 },
1094                 "message": {
1095                     "type": "string"
1096                 }
1097             }
1098         }
1099     }
1100 }