Adding unlimited max value to VNF, NETWORK
[vid.git] / vid-webpack-master / src / app / drawingBoard / service-planning / objectsToTree / models / vfModule / vfModule.model.info.spec.ts
1 import {HttpClientTestingModule} from "@angular/common/http/testing";
2 import {getTestBed, TestBed} from "@angular/core/testing";
3 import {MockNgRedux, NgReduxTestingModule} from "@angular-redux/store/testing";
4 import {VFModuleModelInfo} from "./vfModule.model.info";
5 import {DynamicInputsService} from "../../dynamicInputs.service";
6 import {SharedTreeService} from "../../shared.tree.service";
7 import {VfModulePopuopService} from "../../../../../shared/components/genericFormPopup/genericFormServices/vfModule/vfModule.popuop.service";
8 import {DialogService} from "ng2-bootstrap-modal";
9 import {NgRedux} from "@angular-redux/store";
10 import {AvailableNodeIcons} from "../../../available-models-tree/available-models-tree.service";
11 import {MessageBoxService} from "../../../../../shared/components/messageBox/messageBox.service";
12 import {DrawingBoardModes} from "../../../drawing-board.modes";
13 import {IframeService} from "../../../../../shared/utils/iframe.service";
14 import {ComponentInfoService} from "../../../component-info/component-info.service";
15 import {ModelInformationItem} from "../../../../../shared/components/model-information/model-information.component";
16 import {AaiService} from "../../../../../shared/services/aaiService/aai.service";
17 import {HttpClient, HttpHandler} from "@angular/common/http";
18 import {FeatureFlagsService} from "../../../../../shared/services/featureFlag/feature-flags.service";
19 import {VfModuleUpgradePopupService} from "../../../../../shared/components/genericFormPopup/genericFormServices/vfModuleUpgrade/vfModule.upgrade.popuop.service";
20
21 class MockAppStore<T> {
22   getState() {
23     return {
24       global: {
25         'drawingBoardStatus': DrawingBoardModes.CREATE
26       }
27     }
28   }
29 }
30
31 class MockFeatureFlagsService extends  FeatureFlagsService{
32   getAllFlags(): { [p: string]: boolean } {
33     return {};
34   }
35 }
36
37 describe('VFModule Model Info', () => {
38   let injector;
39   let  _dynamicInputsService : DynamicInputsService;
40   let  _sharedTreeService : SharedTreeService;
41   let  vfModuleModel: VFModuleModelInfo;
42   let _dialogService : DialogService;
43   let _vfModulePopupService : VfModulePopuopService;
44   let _vfModuleUpgradePopupService : VfModuleUpgradePopupService;
45   let _iframeService : IframeService;
46   let _componentInfoService : ComponentInfoService;
47   let _featureFlagsService : FeatureFlagsService;
48
49
50   beforeAll(done => (async () => {
51     TestBed.configureTestingModule({
52       imports: [HttpClientTestingModule, NgReduxTestingModule],
53       providers: [
54         DynamicInputsService,
55         DialogService,
56         VfModulePopuopService,
57         VfModuleUpgradePopupService,
58         SharedTreeService,
59         IframeService,
60         {provide: NgRedux, useClass: MockAppStore},
61         MockNgRedux,
62         AaiService,
63         HttpClient,
64         HttpHandler,
65         {provide: FeatureFlagsService, useClass: MockFeatureFlagsService},
66         ComponentInfoService
67       ]
68     });
69     await TestBed.compileComponents();
70
71     injector = getTestBed();
72     _sharedTreeService = injector.get(SharedTreeService);
73     _componentInfoService = injector.get(ComponentInfoService)
74     _featureFlagsService = injector.get(FeatureFlagsService);
75     vfModuleModel = new VFModuleModelInfo(_dynamicInputsService, _sharedTreeService, _dialogService, _vfModulePopupService, _vfModuleUpgradePopupService, _iframeService,_featureFlagsService,  MockNgRedux.getInstance(),_componentInfoService);
76
77   })().then(done).catch(done.fail));
78
79
80
81   test('VFModuleModelInfo should be defined', () => {
82     expect(VFModuleModelInfo).toBeDefined();
83   });
84
85   test('VnfModelInfo should defined extra details', () => {
86     expect(vfModuleModel.name).toEqual('vfModules');
87     expect(vfModuleModel.type).toEqual('Module');
88   });
89
90   test('isEcompGeneratedNaming should return true if vnf has isEcompGeneratedNaming is "true" ', () => {
91     let isEcompGeneratedNaming : boolean = vfModuleModel.isEcompGeneratedNaming({}, {
92       properties: {
93         ecomp_generated_naming: 'true'
94       }
95     });
96     expect(isEcompGeneratedNaming).toBeTruthy();
97   });
98
99   test('isEcompGeneratedNaming should return false if isEcompGeneratedNaming is "false"', () => {
100     let isEcompGeneratedNaming : boolean = vfModuleModel.isEcompGeneratedNaming({}, {
101       properties: {
102         ecomp_generated_naming: 'false'
103       }
104     });
105     expect(isEcompGeneratedNaming).toBeFalsy();
106   });
107
108   test('isEcompGeneratedNaming should return false if isEcompGeneratedNaming is not defined', () => {
109     let isEcompGeneratedNaming : boolean = vfModuleModel.isEcompGeneratedNaming({}, {
110       properties: {
111       }
112     });
113     expect(isEcompGeneratedNaming).toBeFalsy();
114   });
115
116
117   test('getTooltip should return "VFModule"', () => {
118     let tooltip: string = vfModuleModel.getTooltip();
119     expect(tooltip).toEqual('VFmodule');
120   });
121
122   test('getType should return "VFModule"', () => {
123     let tooltip: string = vfModuleModel.getType();
124     expect(tooltip).toEqual('VFmodule');
125   });
126
127   test('getNextLevelObject should return null', () => {
128     let nextLevel = vfModuleModel.getNextLevelObject();
129     expect(nextLevel).toBeNull();
130   });
131
132   test('getModel should return Module model', () => {
133     let model = vfModuleModel.getModel('2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1',{}, getServiceHierarchy());
134     expect(model.uuid).toEqual('25284168-24bb-4698-8cb4-3f509146eca5');
135   });
136
137   test('showNodeIcons should return false false if reachLimit of max', ()=>{
138     let serviceId : string = 'servicedId';
139     let node = {
140       parent : {
141         data : {
142           id : 'vnfId',
143           name : 'vnfName'
144         }
145       },
146       data : {
147         id : 'vnfId',
148         name : 'vnfName'
149       }
150     };
151     _sharedTreeService.setSelectedVNF({
152       data : {
153         id : 'vfModuleId',
154         name : 'VfModuleName'
155       }
156     });
157     jest.spyOn(vfModuleModel, 'getOptionalVNFs').mockReturnValue([]);
158     jest.spyOn(MockNgRedux.getInstance(), 'getState').mockReturnValue({
159       global : {},
160       service : {
161         serviceHierarchy : {
162           'servicedId' : {
163             'vnfs' : {
164               'vnfName' : {
165                 'properties' : {
166                   'max_instances' : 1
167                 }
168               }
169             }
170           }
171         },
172         serviceInstance : {
173           'servicedId' : {
174             'existingVNFCounterMap' : {
175               'vnfId' : 1
176             },
177             'vnfs' : {
178               'vnfName' :{
179
180               }
181             }
182           }
183         }
184       }
185     });
186
187     let result = vfModuleModel.showNodeIcons(<any>node, serviceId);
188     expect(result).toEqual(new AvailableNodeIcons(false , false));
189   });
190
191   test('showNodeIcons should return true, false if reachLimit of max', ()=>{
192     let serviceId : string = 'servicedId';
193     let node = {
194       data : {
195         id : 'vfModuleId',
196         name : 'vfModuleName'
197       },
198       parent : {
199         data : {
200           id : 'vnfId',
201           name : 'vnfName'
202         }
203       }
204     };
205     jest.spyOn(_sharedTreeService, 'getSelectedVNF').mockReturnValue('vnfName');
206     jest.spyOn(vfModuleModel, 'getOptionalVNFs').mockReturnValue(['vnfName']);
207     jest.spyOn(MockNgRedux.getInstance(), 'getState').mockReturnValue({
208       global : {},
209       service : {
210         serviceHierarchy : {
211           'servicedId' : {
212             'vnfs' : {
213               'vnfName' : {
214                 'properties' : {
215                   'max_instances' : 1
216                 }
217               }
218             },
219             'vfModules' : {
220               'vfModuleName' : {
221                 'properties' : {
222                   maxCountInstances : 1
223                 }
224               }
225             }
226           }
227         },
228         serviceInstance : {
229           'servicedId' : {
230             'existingVNFCounterMap' : {
231               'vnfId' : 1
232             },
233             'vnfs' : {
234               'vnfName' :{
235                   'originalName' : 'vnfName',
236                   'vfModules' : {
237                     'vfModuleName' : {
238
239                     }
240                   }
241               }
242             }
243           }
244         }
245       }
246     });
247
248     let result = vfModuleModel.showNodeIcons(<any>node, 'servicedId');
249     expect(result).toEqual(new AvailableNodeIcons(true , false));
250   });
251
252
253   test('showNodeIcons should return false, true if reachLimit of max', ()=>{
254     let serviceId : string = 'servicedId';
255     let node = {
256       data : {
257         id : 'vfModuleId',
258         name : 'vfModuleName'
259       },
260       parent : {
261         data : {
262           id : 'vnfId',
263           name : 'vnfName'
264         }
265       }
266     };
267     jest.spyOn(_sharedTreeService, 'getSelectedVNF').mockReturnValue('vnfName');
268     jest.spyOn(vfModuleModel, 'getOptionalVNFs').mockReturnValue(['vnfName']);
269     jest.spyOn(MockNgRedux.getInstance(), 'getState').mockReturnValue({
270       global : {},
271       service : {
272         serviceHierarchy : {
273           'servicedId' : {
274             'vnfs' : {
275               'vnfName' : {
276                 'properties' : {
277                   'max_instances' : 1
278                 }
279               }
280             },
281             'vfModules' : {
282               'vfModuleName' : {
283                 'properties' : {
284                   maxCountInstances : 2
285                 }
286               }
287             }
288           }
289         },
290         serviceInstance : {
291           'servicedId' : {
292             'existingVNFCounterMap' : {
293               'vnfId' : 1
294             },
295             'vnfs' : {
296               'vnfName' :{
297                 'originalName' : 'vnfName',
298                 'vfModules' : {
299                   'vfModuleName' : {
300
301                   }
302                 }
303               }
304             }
305           }
306         }
307       }
308     });
309
310     let result = vfModuleModel.showNodeIcons(<any>node, 'servicedId');
311     expect(result).toEqual(new AvailableNodeIcons(true , false));
312   });
313
314
315   test('getOptionalVNFs should instance if exist', ()=>{
316     let serviceId : string = 'servicedId';
317     jest.spyOn(MockNgRedux.getInstance(), 'getState').mockReturnValue({
318       global : {},
319       service : {
320         serviceHierarchy : {
321           'servicedId' : {
322             'vnfs' : {
323               'vnfName' : {
324                 'properties' : {
325                   'max_instances' : 1
326                 }
327               }
328             },
329             'vfModules' : {
330               'vfModuleName' : {
331                 'properties' : {
332                   maxCountInstances : 2
333                 }
334               }
335             }
336           }
337         },
338         serviceInstance : {
339           'servicedId' : {
340             'existingVNFCounterMap' : {
341               'vnfId' : 1
342             },
343             'vnfs' : {
344               'vnfName' :{
345                 'originalName' : 'vnfName',
346                 'vfModules' : {
347                   'vfModuleName' : {
348
349                   }
350                 }
351               }
352             }
353           }
354         }
355       }
356     });
357
358     let node = {
359       data : {
360         id : 'vfModuleId',
361         name : 'vfModuleName'
362       },
363       parent : {
364         data : {
365           id : 'vnfId',
366           name : 'vnfName'
367         }
368       }
369     };
370     let result = vfModuleModel.getOptionalVNFs(serviceId , 'vnfName');
371     expect(result.length).toEqual(1);
372   });
373
374   test('getNodeCount should return number of nodes', ()=>{
375     let serviceId : string = 'servicedId';
376     jest.spyOn(MockNgRedux.getInstance(), 'getState').mockReturnValue({
377       global : {},
378       service : {
379         serviceHierarchy : {
380           'servicedId' : {
381             'vnfs' : {
382               'vnfName' : {
383                 'properties' : {
384                   'max_instances' : 1
385                 }
386               }
387             },
388             'vfModules' : {
389               'vfModuleName' : {
390                 'properties' : {
391                   maxCountInstances : 2
392                 }
393               }
394             }
395           }
396         },
397         serviceInstance : {
398           'servicedId' : {
399             'existingVNFCounterMap' : {
400               'vnfId' : 1
401             },
402             'vnfs' : {
403               'vnfName' :{
404                 'action': 'Create',
405                 'originalName' : 'vnfName',
406                 'vfModules' : {
407                   'vfModuleName' : {
408                       'vnfModuleName_111': {
409                         'action': 'Create',
410                         'modelInfo' : {
411                           modelVersionId : 'vfModuleId'
412                         }
413                       }
414                   }
415                 }
416               }
417             }
418           }
419         }
420       }
421     });
422
423     let node = {
424       data : {
425         id : 'vfModuleId',
426         name : 'vfModuleName',
427         'action': 'Create',
428       },
429       parent : {
430         data : {
431           id : 'vnfId',
432           name : 'vnfName',
433           'action': 'Create',
434         }
435       }
436     };
437     let result = vfModuleModel.getNodeCount(<any>node , serviceId);
438     expect(result).toEqual(1);
439   });
440
441
442   test('onClickAdd should open message box if no vnfStoreKey', ()=>{
443     jest.spyOn(_sharedTreeService, 'getSelectedVNF').mockReturnValue(null);
444     jest.spyOn(vfModuleModel, 'getDefaultVNF').mockReturnValue(null);
445     jest.spyOn(MessageBoxService.openModal, 'next');
446     vfModuleModel.onClickAdd(<any>{}, 'serviceId');
447     expect(MessageBoxService.openModal.next).toHaveBeenCalled();
448   });
449
450   test('getMenuAction: showAuditInfoVfModule', ()=>{
451     jest.spyOn(_sharedTreeService, 'isRetryMode').mockReturnValue(true);
452
453     let node = {
454       data : {
455         "modelId": "6b528779-44a3-4472-bdff-9cd15ec93450",
456         "action": "Create",
457         "isFailed": true,
458       }
459     };
460     let serviceModelId = "6b528779-44a3-4472-bdff-9cd15ec93450";
461     let result = vfModuleModel.getMenuAction(<any>node, serviceModelId);
462     spyOn(result['showAuditInfo'], 'method');
463     expect(result['showAuditInfo']).toBeDefined();
464     expect(result['showAuditInfo'].visible(node)).toBeTruthy();
465     expect(result['showAuditInfo'].enable(node)).toBeTruthy();
466     result['showAuditInfo']['method'](node, serviceModelId);
467     expect(result['showAuditInfo']['method']).toHaveBeenCalledWith(node, serviceModelId);
468   });
469
470   test('Info for vfModule should be correct', () => {
471     const model = getVFModule();
472     const instance = getVFModuleInstance();
473     let actualVNFInfo = vfModuleModel.getInfo(model,instance);
474     let expectedVNFInfo = [
475       ModelInformationItem.createInstance('Base module', false),
476       ModelInformationItem.createInstance('Min instances', "0"),
477       ModelInformationItem.createInstance("Max instances", null),
478       ModelInformationItem.createInstance('Initial instances count',"0")
479     ];
480     expect(actualVNFInfo).toEqual(expectedVNFInfo);
481   });
482
483   function getVFModule(){
484     return {
485       "uuid":"522159d5-d6e0-4c2a-aa44-5a542a12a830",
486       "invariantUuid":"98a7c88b-b577-476a-90e4-e25a5871e02b",
487       "customizationUuid":"55b1be94-671a-403e-a26c-667e9c47d091",
488       "description":null,
489       "name":"VfVgeraldine..vflorence_vlc..module-1",
490       "version":"2",
491       "modelCustomizationName":"VfVgeraldine..vflorence_vlc..module-1",
492       "properties":{
493         "minCountInstances":0,
494         "maxCountInstances":null,
495         "initialCount":0,
496         "vfModuleLabel":"vflorence_vlc",
497         "baseModule":false
498       },
499       "inputs":{},
500       "volumeGroupAllowed":false
501     };
502   }
503
504   function getVFModuleInstance() {
505     return {
506       "action":"None",
507       "instanceName":"ss820f_0918_db",
508       "instanceId":"2c1ca484-cbc2-408b-ab86-25a2c15ce280",
509       "orchStatus":"deleted",
510       "productFamilyId":null,
511       "lcpCloudRegionId":null,
512       "tenantId":null,
513       "modelInfo":{
514         "modelCustomizationName":"VfVgeraldine..vflorence_vlc..module-1",
515         "modelCustomizationId":"b200727a-1bf9-4e7c-bd06-b5f4c9d920b9",
516         "modelInvariantId":"09edc9ef-85d0-4b26-80de-1f569d49e750",
517         "modelVersionId":"522159d5-d6e0-4c2a-aa44-5a542a12a830",
518         "modelType":"vfModule"
519       },
520       "instanceType":null,
521       "provStatus":null,
522       "inMaint":true,
523       "uuid":"522159d5-d6e0-4c2a-aa44-5a542a12a830",
524       "originalName":"VfVgeraldine..vflorence_vlc..module-1",
525       "legacyRegion":null,
526       "lineOfBusiness":null,
527       "platformName":null,
528       "trackById":"vf_vgeraldine0..VfVgeraldine..vflorence_vlc..module-1:008",
529       "isBase":false,
530       "volumeGroupName":null
531     };
532   }
533
534
535   function getServiceHierarchy(){
536     return {
537       "service": {
538         "uuid": "6b528779-44a3-4472-bdff-9cd15ec93450",
539         "invariantUuid": "e49fbd11-e60c-4a8e-b4bf-30fbe8f4fcc0",
540         "name": "action-data",
541         "version": "1.0",
542         "toscaModelURL": null,
543         "category": "",
544         "serviceType": "",
545         "serviceRole": "",
546         "description": "",
547         "serviceEcompNaming": "false",
548         "instantiationType": "Macro",
549         "inputs": {
550           "2017488_pasqualevpe0_ASN": {
551             "type": "string",
552             "description": "AV/PE",
553             "entry_schema": null,
554             "inputProperties": null,
555             "constraints": [],
556             "required": true,
557             "default": "AV_vPE"
558           }
559         },
560         "vidNotions": {
561           "instantiationUI": "legacy",
562           "modelCategory": "other"
563         }
564       },
565       "vnfs": {
566         "2017-388_PASQUALE-vPE 1": {
567           "uuid": "0903e1c0-8e03-4936-b5c2-260653b96413",
568           "invariantUuid": "00beb8f9-6d39-452f-816d-c709b9cbb87d",
569           "description": "Name PASQUALE vPE Description The provider edge function for the PASQUALE service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
570           "name": "2017-388_PASQUALE-vPE",
571           "version": "1.0",
572           "customizationUuid": "280dec31-f16d-488b-9668-4aae55d6648a",
573           "inputs": {
574             "vnf_config_template_version": {
575               "type": "string",
576               "description": "VPE Software Version",
577               "entry_schema": null,
578               "inputProperties": null,
579               "constraints": [],
580               "required": true,
581               "default": "17.2"
582             },
583             "bandwidth_units": {
584               "type": "string",
585               "description": "Units of bandwidth",
586               "entry_schema": null,
587               "inputProperties": null,
588               "constraints": [],
589               "required": true,
590               "default": "Gbps"
591             },
592             "bandwidth": {
593               "type": "string",
594               "description": "Requested VPE bandwidth",
595               "entry_schema": null,
596               "inputProperties": null,
597               "constraints": [],
598               "required": true,
599               "default": "10"
600             },
601             "AIC_CLLI": {
602               "type": "string",
603               "description": "AIC Site CLLI",
604               "entry_schema": null,
605               "inputProperties": null,
606               "constraints": [],
607               "required": true,
608               "default": "ATLMY8GA"
609             },
610             "ASN": {
611               "type": "string",
612               "description": "AV/PE",
613               "entry_schema": null,
614               "inputProperties": null,
615               "constraints": [],
616               "required": true,
617               "default": "AV_vPE"
618             },
619             "vnf_instance_name": {
620               "type": "string",
621               "description": "The hostname assigned to the vpe.",
622               "entry_schema": null,
623               "inputProperties": null,
624               "constraints": [],
625               "required": true,
626               "default": "mtnj309me6"
627             }
628           },
629           "commands": {
630             "vnf_config_template_version": {
631               "displayName": "vnf_config_template_version",
632               "command": "get_input",
633               "inputName": "2017488_pasqualevpe0_vnf_config_template_version"
634             },
635             "bandwidth_units": {
636               "displayName": "bandwidth_units",
637               "command": "get_input",
638               "inputName": "pasqualevpe0_bandwidth_units"
639             },
640             "bandwidth": {
641               "displayName": "bandwidth",
642               "command": "get_input",
643               "inputName": "pasqualevpe0_bandwidth"
644             },
645             "AIC_CLLI": {
646               "displayName": "AIC_CLLI",
647               "command": "get_input",
648               "inputName": "2017488_pasqualevpe0_AIC_CLLI"
649             },
650             "ASN": {
651               "displayName": "ASN",
652               "command": "get_input",
653               "inputName": "2017488_pasqualevpe0_ASN"
654             },
655             "vnf_instance_name": {
656               "displayName": "vnf_instance_name",
657               "command": "get_input",
658               "inputName": "2017488_pasqualevpe0_vnf_instance_name"
659             }
660           },
661           "properties": {
662             "vmxvre_retype": "RE-VMX",
663             "vnf_config_template_version": "get_input:2017488_pasqualevpe0_vnf_config_template_version",
664             "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d",
665             "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9",
666             "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF",
667             "int_ctl_net_name": "VMX-INTXI",
668             "vmx_int_ctl_prefix": "10.0.0.10",
669             "sriov43_net_id": "da349ca1-6de9-4548-be88-2d88e99bfef5",
670             "sriov42_net_id": "760669ba-013d-4d9b-b0e7-4151fe2e6279",
671             "sriov41_net_id": "25ad52d5-c165-40f8-b3b0-ddfc2373280a",
672             "nf_type": "vPE",
673             "vmxvpfe_int_ctl_ip_1": "10.0.0.10",
674             "is_AVPN_service": "false",
675             "vmx_RSG_name": "vREXI-affinity",
676             "vmx_int_ctl_forwarding": "l2",
677             "vmxvre_oam_ip_0": "10.0.0.10",
678             "vmxvpfe_sriov44_0_port_mac": "00:11:22:EF:AC:DF",
679             "vmxvpfe_sriov41_0_port_vlanstrip": "false",
680             "vmxvpfe_sriov42_0_port_vlanfilter": "4001",
681             "vmxvpfe_sriov44_0_port_unknownunicastallow": "true",
682             "vmxvre_image_name_0": "VRE-ENGINE_17.2-S2.1.qcow2",
683             "vmxvre_instance": "0",
684             "vmxvpfe_sriov43_0_port_mac": "00:11:22:EF:AC:DF",
685             "vmxvre_flavor_name": "ns.c1r16d32.v5",
686             "vmxvpfe_volume_size_0": "40.0",
687             "vmxvpfe_sriov43_0_port_vlanfilter": "4001",
688             "nf_naming": "{ecomp_generated_naming=false}",
689             "nf_naming_code": "Navneet",
690             "vmxvre_name_0": "vREXI",
691             "vmxvpfe_sriov42_0_port_vlanstrip": "false",
692             "vmxvpfe_volume_name_0": "vPFEXI_FBVolume",
693             "vmx_RSG_id": "bd89a33c-13c3-4a04-8fde-1a57eb123141",
694             "vmxvpfe_image_name_0": "VPE_ROUTING-ENGINE_17.2R1-S2.1.qcow2",
695             "vmxvpfe_sriov43_0_port_unknownunicastallow": "true",
696             "vmxvpfe_sriov44_0_port_unknownmulticastallow": "true",
697             "vmxvre_console": "vidconsole",
698             "vmxvpfe_sriov44_0_port_vlanfilter": "4001",
699             "vmxvpfe_sriov42_0_port_mac": "00:11:22:EF:AC:DF",
700             "vmxvpfe_volume_id_0": "47cede15-da2f-4397-a101-aa683220aff3",
701             "vmxvpfe_sriov42_0_port_unknownmulticastallow": "true",
702             "vmxvpfe_sriov44_0_port_vlanstrip": "false",
703             "vf_module_id": "123",
704             "nf_function": "JAI",
705             "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true",
706             "vmxvre_int_ctl_ip_0": "10.0.0.10",
707             "ecomp_generated_naming": "false",
708             "AIC_CLLI": "get_input:2017488_pasqualevpe0_AIC_CLLI",
709             "vnf_name": "mtnj309me6vre",
710             "vmxvpfe_sriov41_0_port_unknownunicastallow": "true",
711             "vmxvre_volume_type_1": "HITACHI",
712             "vmxvpfe_sriov44_0_port_broadcastallow": "true",
713             "vmxvre_volume_type_0": "HITACHI",
714             "vmxvpfe_volume_type_0": "HITACHI",
715             "vmxvpfe_sriov43_0_port_broadcastallow": "true",
716             "bandwidth_units": "get_input:pasqualevpe0_bandwidth_units",
717             "vnf_id": "123",
718             "vmxvre_oam_prefix": "24",
719             "availability_zone_0": "mtpocfo-kvm-az01",
720             "ASN": "get_input:2017488_pasqualevpe0_ASN",
721             "vmxvre_chassis_i2cid": "161",
722             "vmxvpfe_name_0": "vPFEXI",
723             "bandwidth": "get_input:pasqualevpe0_bandwidth",
724             "availability_zone_max_count": "1",
725             "vmxvre_volume_size_0": "45.0",
726             "vmxvre_volume_size_1": "50.0",
727             "vmxvpfe_sriov42_0_port_broadcastallow": "true",
728             "vmxvre_oam_gateway": "10.0.0.10",
729             "vmxvre_volume_name_1": "vREXI_FAVolume",
730             "vmxvre_ore_present": "0",
731             "vmxvre_volume_name_0": "vREXI_FBVolume",
732             "vmxvre_type": "0",
733             "vnf_instance_name": "get_input:2017488_pasqualevpe0_vnf_instance_name",
734             "vmxvpfe_sriov41_0_port_unknownmulticastallow": "true",
735             "oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429",
736             "vmx_int_ctl_len": "24",
737             "vmxvpfe_sriov43_0_port_vlanstrip": "false",
738             "vmxvpfe_sriov41_0_port_broadcastallow": "true",
739             "vmxvre_volume_id_1": "6e86797e-03cd-4fdc-ba72-2957119c746d",
740             "vmxvpfe_sriov41_0_port_vlanfilter": "4001",
741             "nf_role": "Testing",
742             "vmxvre_volume_id_0": "f4eacb79-f687-4e9d-b760-21847c8bb15a",
743             "vmxvpfe_sriov42_0_port_unknownunicastallow": "true",
744             "vmxvpfe_flavor_name": "ns.c20r16d25.v5"
745           },
746           "type": "VF",
747           "modelCustomizationName": "2017-388_PASQUALE-vPE 1",
748           "vfModules": {},
749           "volumeGroups": {},
750           "vfcInstanceGroups": {}
751         },
752         "2017-388_PASQUALE-vPE 0": {
753           "uuid": "afacccf6-397d-45d6-b5ae-94c39734b168",
754           "invariantUuid": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8",
755           "description": "Name PASQUALE vPE Description The provider edge function for the PASQUALE service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
756           "name": "2017-388_PASQUALE-vPE",
757           "version": "4.0",
758           "customizationUuid": "b3c76f73-eeb5-4fb6-9d31-72a889f1811c",
759           "inputs": {
760             "vnf_config_template_version": {
761               "type": "string",
762               "description": "VPE Software Version",
763               "entry_schema": null,
764               "inputProperties": null,
765               "constraints": [],
766               "required": true,
767               "default": "17.2"
768             },
769             "bandwidth_units": {
770               "type": "string",
771               "description": "Units of bandwidth",
772               "entry_schema": null,
773               "inputProperties": null,
774               "constraints": [],
775               "required": true,
776               "default": "Gbps"
777             },
778             "bandwidth": {
779               "type": "string",
780               "description": "Requested VPE bandwidth",
781               "entry_schema": null,
782               "inputProperties": null,
783               "constraints": [],
784               "required": true,
785               "default": "10"
786             },
787             "AIC_CLLI": {
788               "type": "string",
789               "description": "AIC Site CLLI",
790               "entry_schema": null,
791               "inputProperties": null,
792               "constraints": [],
793               "required": true,
794               "default": "ATLMY8GA"
795             },
796             "ASN": {
797               "type": "string",
798               "description": "AV/PE",
799               "entry_schema": null,
800               "inputProperties": null,
801               "constraints": [],
802               "required": true,
803               "default": "AV_vPE"
804             },
805             "vnf_instance_name": {
806               "type": "string",
807               "description": "The hostname assigned to the vpe.",
808               "entry_schema": null,
809               "inputProperties": null,
810               "constraints": [],
811               "required": true,
812               "default": "mtnj309me6"
813             }
814           },
815           "commands": {
816             "vnf_config_template_version": {
817               "displayName": "vnf_config_template_version",
818               "command": "get_input",
819               "inputName": "2017488_pasqualevpe0_vnf_config_template_version"
820             },
821             "bandwidth_units": {
822               "displayName": "bandwidth_units",
823               "command": "get_input",
824               "inputName": "pasqualevpe0_bandwidth_units"
825             },
826             "bandwidth": {
827               "displayName": "bandwidth",
828               "command": "get_input",
829               "inputName": "pasqualevpe0_bandwidth"
830             },
831             "AIC_CLLI": {
832               "displayName": "AIC_CLLI",
833               "command": "get_input",
834               "inputName": "2017488_pasqualevpe0_AIC_CLLI"
835             },
836             "ASN": {
837               "displayName": "ASN",
838               "command": "get_input",
839               "inputName": "2017488_pasqualevpe0_ASN"
840             },
841             "vnf_instance_name": {
842               "displayName": "vnf_instance_name",
843               "command": "get_input",
844               "inputName": "2017488_pasqualevpe0_vnf_instance_name"
845             }
846           },
847           "properties": {
848             "vmxvre_retype": "RE-VMX",
849             "vnf_config_template_version": "get_input:2017488_pasqualevpe0_vnf_config_template_version",
850             "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d",
851             "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9",
852             "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF",
853             "int_ctl_net_name": "VMX-INTXI",
854             "vmx_int_ctl_prefix": "10.0.0.10",
855             "sriov43_net_id": "da349ca1-6de9-4548-be88-2d88e99bfef5",
856             "sriov42_net_id": "760669ba-013d-4d9b-b0e7-4151fe2e6279",
857             "sriov41_net_id": "25ad52d5-c165-40f8-b3b0-ddfc2373280a",
858             "nf_type": "vPE",
859             "vmxvpfe_int_ctl_ip_1": "10.0.0.10",
860             "is_AVPN_service": "false",
861             "vmx_RSG_name": "vREXI-affinity",
862             "vmx_int_ctl_forwarding": "l2",
863             "vmxvre_oam_ip_0": "10.0.0.10",
864             "vmxvpfe_sriov44_0_port_mac": "00:11:22:EF:AC:DF",
865             "vmxvpfe_sriov41_0_port_vlanstrip": "false",
866             "vmxvpfe_sriov42_0_port_vlanfilter": "4001",
867             "vmxvpfe_sriov44_0_port_unknownunicastallow": "true",
868             "vmxvre_image_name_0": "VRE-ENGINE_17.2-S2.1.qcow2",
869             "vmxvre_instance": "0",
870             "vmxvpfe_sriov43_0_port_mac": "00:11:22:EF:AC:DF",
871             "vmxvre_flavor_name": "ns.c1r16d32.v5",
872             "vmxvpfe_volume_size_0": "40.0",
873             "vmxvpfe_sriov43_0_port_vlanfilter": "4001",
874             "nf_naming": "{ecomp_generated_naming=false}",
875             "nf_naming_code": "Navneet",
876             "vmxvre_name_0": "vREXI",
877             "vmxvpfe_sriov42_0_port_vlanstrip": "false",
878             "vmxvpfe_volume_name_0": "vPFEXI_FBVolume",
879             "vmx_RSG_id": "bd89a33c-13c3-4a04-8fde-1a57eb123141",
880             "vmxvpfe_image_name_0": "VPE_ROUTING-ENGINE_17.2R1-S2.1.qcow2",
881             "vmxvpfe_sriov43_0_port_unknownunicastallow": "true",
882             "vmxvpfe_sriov44_0_port_unknownmulticastallow": "true",
883             "vmxvre_console": "vidconsole",
884             "vmxvpfe_sriov44_0_port_vlanfilter": "4001",
885             "vmxvpfe_sriov42_0_port_mac": "00:11:22:EF:AC:DF",
886             "vmxvpfe_volume_id_0": "47cede15-da2f-4397-a101-aa683220aff3",
887             "vmxvpfe_sriov42_0_port_unknownmulticastallow": "true",
888             "min_instances": "1",
889             "vmxvpfe_sriov44_0_port_vlanstrip": "false",
890             "vf_module_id": "123",
891             "nf_function": "JAI",
892             "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true",
893             "vmxvre_int_ctl_ip_0": "10.0.0.10",
894             "ecomp_generated_naming": "false",
895             "AIC_CLLI": "get_input:2017488_pasqualevpe0_AIC_CLLI",
896             "vnf_name": "mtnj309me6vre",
897             "vmxvpfe_sriov41_0_port_unknownunicastallow": "true",
898             "vmxvre_volume_type_1": "HITACHI",
899             "vmxvpfe_sriov44_0_port_broadcastallow": "true",
900             "vmxvre_volume_type_0": "HITACHI",
901             "vmxvpfe_volume_type_0": "HITACHI",
902             "vmxvpfe_sriov43_0_port_broadcastallow": "true",
903             "bandwidth_units": "get_input:pasqualevpe0_bandwidth_units",
904             "vnf_id": "123",
905             "vmxvre_oam_prefix": "24",
906             "availability_zone_0": "mtpocfo-kvm-az01",
907             "ASN": "get_input:2017488_pasqualevpe0_ASN",
908             "vmxvre_chassis_i2cid": "161",
909             "vmxvpfe_name_0": "vPFEXI",
910             "bandwidth": "get_input:pasqualevpe0_bandwidth",
911             "availability_zone_max_count": "1",
912             "vmxvre_volume_size_0": "45.0",
913             "vmxvre_volume_size_1": "50.0",
914             "vmxvpfe_sriov42_0_port_broadcastallow": "true",
915             "vmxvre_oam_gateway": "10.0.0.10",
916             "vmxvre_volume_name_1": "vREXI_FAVolume",
917             "vmxvre_ore_present": "0",
918             "vmxvre_volume_name_0": "vREXI_FBVolume",
919             "vmxvre_type": "0",
920             "vnf_instance_name": "get_input:2017488_pasqualevpe0_vnf_instance_name",
921             "vmxvpfe_sriov41_0_port_unknownmulticastallow": "true",
922             "oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429",
923             "vmx_int_ctl_len": "24",
924             "vmxvpfe_sriov43_0_port_vlanstrip": "false",
925             "vmxvpfe_sriov41_0_port_broadcastallow": "true",
926             "vmxvre_volume_id_1": "6e86797e-03cd-4fdc-ba72-2957119c746d",
927             "vmxvpfe_sriov41_0_port_vlanfilter": "4001",
928             "nf_role": "Testing",
929             "vmxvre_volume_id_0": "f4eacb79-f687-4e9d-b760-21847c8bb15a",
930             "vmxvpfe_sriov42_0_port_unknownunicastallow": "true",
931             "vmxvpfe_flavor_name": "ns.c20r16d25.v5"
932           },
933           "type": "VF",
934           "modelCustomizationName": "2017-388_PASQUALE-vPE 0",
935           "vfModules": {},
936           "volumeGroups": {},
937           "vfcInstanceGroups": {}
938         },
939         "2017-488_PASQUALE-vPE 0": {
940           "uuid": "69e09f68-8b63-4cc9-b9ff-860960b5db09",
941           "invariantUuid": "72e465fe-71b1-4e7b-b5ed-9496118ff7a8",
942           "description": "Name PASQUALE vPE Description The provider edge function for the PASQUALE service supported by the Junipers VMX product Category Router Vendor Juniper Vendor Release Code 17.2 Owners Mary Fragale. Updated 9-25 to use v8.0 of the Juniper Valid 2 VLM",
943           "name": "2017-488_PASQUALE-vPE",
944           "version": "5.0",
945           "customizationUuid": "1da7b585-5e61-4993-b95e-8e6606c81e45",
946           "inputs": {
947             "vnf_config_template_version": {
948               "type": "string",
949               "description": "VPE Software Version",
950               "entry_schema": null,
951               "inputProperties": null,
952               "constraints": [],
953               "required": true,
954               "default": "17.2"
955             },
956             "bandwidth_units": {
957               "type": "string",
958               "description": "Units of bandwidth",
959               "entry_schema": null,
960               "inputProperties": null,
961               "constraints": [],
962               "required": true,
963               "default": "Gbps"
964             },
965             "bandwidth": {
966               "type": "string",
967               "description": "Requested VPE bandwidth",
968               "entry_schema": null,
969               "inputProperties": null,
970               "constraints": [],
971               "required": true,
972               "default": "10"
973             },
974             "AIC_CLLI": {
975               "type": "string",
976               "description": "AIC Site CLLI",
977               "entry_schema": null,
978               "inputProperties": null,
979               "constraints": [],
980               "required": true,
981               "default": "ATLMY8GA"
982             },
983             "ASN": {
984               "type": "string",
985               "description": "AV/PE",
986               "entry_schema": null,
987               "inputProperties": null,
988               "constraints": [],
989               "required": true,
990               "default": "AV_vPE"
991             },
992             "vnf_instance_name": {
993               "type": "string",
994               "description": "The hostname assigned to the vpe.",
995               "entry_schema": null,
996               "inputProperties": null,
997               "constraints": [],
998               "required": true,
999               "default": "mtnj309me6"
1000             }
1001           },
1002           "commands": {
1003             "vnf_config_template_version": {
1004               "displayName": "vnf_config_template_version",
1005               "command": "get_input",
1006               "inputName": "2017488_pasqualevpe0_vnf_config_template_version"
1007             },
1008             "bandwidth_units": {
1009               "displayName": "bandwidth_units",
1010               "command": "get_input",
1011               "inputName": "pasqualevpe0_bandwidth_units"
1012             },
1013             "bandwidth": {
1014               "displayName": "bandwidth",
1015               "command": "get_input",
1016               "inputName": "pasqualevpe0_bandwidth"
1017             },
1018             "AIC_CLLI": {
1019               "displayName": "AIC_CLLI",
1020               "command": "get_input",
1021               "inputName": "2017488_pasqualevpe0_AIC_CLLI"
1022             },
1023             "ASN": {
1024               "displayName": "ASN",
1025               "command": "get_input",
1026               "inputName": "2017488_pasqualevpe0_ASN"
1027             },
1028             "vnf_instance_name": {
1029               "displayName": "vnf_instance_name",
1030               "command": "get_input",
1031               "inputName": "2017488_pasqualevpe0_vnf_instance_name"
1032             }
1033           },
1034           "properties": {
1035             "vmxvre_retype": "RE-VMX",
1036             "vnf_config_template_version": "get_input:2017488_pasqualevpe0_vnf_config_template_version",
1037             "sriov44_net_id": "48d399b3-11ee-48a8-94d2-f0ea94d6be8d",
1038             "int_ctl_net_id": "2f323477-6936-4d01-ac53-d849430281d9",
1039             "vmxvpfe_sriov41_0_port_mac": "00:11:22:EF:AC:DF",
1040             "int_ctl_net_name": "VMX-INTXI",
1041             "vmx_int_ctl_prefix": "10.0.0.10",
1042             "sriov43_net_id": "da349ca1-6de9-4548-be88-2d88e99bfef5",
1043             "sriov42_net_id": "760669ba-013d-4d9b-b0e7-4151fe2e6279",
1044             "sriov41_net_id": "25ad52d5-c165-40f8-b3b0-ddfc2373280a",
1045             "nf_type": "vPE",
1046             "vmxvpfe_int_ctl_ip_1": "10.0.0.10",
1047             "is_AVPN_service": "false",
1048             "vmx_RSG_name": "vREXI-affinity",
1049             "vmx_int_ctl_forwarding": "l2",
1050             "vmxvre_oam_ip_0": "10.0.0.10",
1051             "vmxvpfe_sriov44_0_port_mac": "00:11:22:EF:AC:DF",
1052             "vmxvpfe_sriov41_0_port_vlanstrip": "false",
1053             "vmxvpfe_sriov42_0_port_vlanfilter": "4001",
1054             "vmxvpfe_sriov44_0_port_unknownunicastallow": "true",
1055             "vmxvre_image_name_0": "VRE-ENGINE_17.2-S2.1.qcow2",
1056             "vmxvre_instance": "0",
1057             "vmxvpfe_sriov43_0_port_mac": "00:11:22:EF:AC:DF",
1058             "vmxvre_flavor_name": "ns.c1r16d32.v5",
1059             "vmxvpfe_volume_size_0": "40.0",
1060             "vmxvpfe_sriov43_0_port_vlanfilter": "4001",
1061             "nf_naming": "{ecomp_generated_naming=false}",
1062             "nf_naming_code": "Navneet",
1063             "vmxvre_name_0": "vREXI",
1064             "vmxvpfe_sriov42_0_port_vlanstrip": "false",
1065             "vmxvpfe_volume_name_0": "vPFEXI_FBVolume",
1066             "max_instances": "3",
1067             "vmx_RSG_id": "bd89a33c-13c3-4a04-8fde-1a57eb123141",
1068             "vmxvpfe_image_name_0": "VPE_ROUTING-ENGINE_17.2R1-S2.1.qcow2",
1069             "vmxvpfe_sriov43_0_port_unknownunicastallow": "true",
1070             "vmxvpfe_sriov44_0_port_unknownmulticastallow": "true",
1071             "vmxvre_console": "vidconsole",
1072             "vmxvpfe_sriov44_0_port_vlanfilter": "4001",
1073             "vmxvpfe_sriov42_0_port_mac": "00:11:22:EF:AC:DF",
1074             "vmxvpfe_volume_id_0": "47cede15-da2f-4397-a101-aa683220aff3",
1075             "vmxvpfe_sriov42_0_port_unknownmulticastallow": "true",
1076             "min_instances": "1",
1077             "vmxvpfe_sriov44_0_port_vlanstrip": "false",
1078             "vf_module_id": "123",
1079             "nf_function": "JAI",
1080             "vmxvpfe_sriov43_0_port_unknownmulticastallow": "true",
1081             "vmxvre_int_ctl_ip_0": "10.0.0.10",
1082             "ecomp_generated_naming": "false",
1083             "AIC_CLLI": "get_input:2017488_pasqualevpe0_AIC_CLLI",
1084             "vnf_name": "mtnj309me6vre",
1085             "vmxvpfe_sriov41_0_port_unknownunicastallow": "true",
1086             "vmxvre_volume_type_1": "HITACHI",
1087             "vmxvpfe_sriov44_0_port_broadcastallow": "true",
1088             "vmxvre_volume_type_0": "HITACHI",
1089             "vmxvpfe_volume_type_0": "HITACHI",
1090             "vmxvpfe_sriov43_0_port_broadcastallow": "true",
1091             "bandwidth_units": "get_input:pasqualevpe0_bandwidth_units",
1092             "vnf_id": "123",
1093             "vmxvre_oam_prefix": "24",
1094             "availability_zone_0": "mtpocfo-kvm-az01",
1095             "ASN": "get_input:2017488_pasqualevpe0_ASN",
1096             "vmxvre_chassis_i2cid": "161",
1097             "vmxvpfe_name_0": "vPFEXI",
1098             "bandwidth": "get_input:pasqualevpe0_bandwidth",
1099             "availability_zone_max_count": "1",
1100             "vmxvre_volume_size_0": "45.0",
1101             "vmxvre_volume_size_1": "50.0",
1102             "vmxvpfe_sriov42_0_port_broadcastallow": "true",
1103             "vmxvre_oam_gateway": "10.0.0.10",
1104             "vmxvre_volume_name_1": "vREXI_FAVolume",
1105             "vmxvre_ore_present": "0",
1106             "vmxvre_volume_name_0": "vREXI_FBVolume",
1107             "vmxvre_type": "0",
1108             "vnf_instance_name": "get_input:2017488_pasqualevpe0_vnf_instance_name",
1109             "vmxvpfe_sriov41_0_port_unknownmulticastallow": "true",
1110             "oam_net_id": "b95eeb1d-d55d-4827-abb4-8ebb94941429",
1111             "vmx_int_ctl_len": "24",
1112             "vmxvpfe_sriov43_0_port_vlanstrip": "false",
1113             "vmxvpfe_sriov41_0_port_broadcastallow": "true",
1114             "vmxvre_volume_id_1": "6e86797e-03cd-4fdc-ba72-2957119c746d",
1115             "vmxvpfe_sriov41_0_port_vlanfilter": "4001",
1116             "nf_role": "Testing",
1117             "vmxvre_volume_id_0": "f4eacb79-f687-4e9d-b760-21847c8bb15a",
1118             "vmxvpfe_sriov42_0_port_unknownunicastallow": "true",
1119             "vmxvpfe_flavor_name": "ns.c20r16d25.v5"
1120           },
1121           "type": "VF",
1122           "modelCustomizationName": "2017-488_PASQUALE-vPE 0",
1123           "vfModules": {
1124             "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
1125               "uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
1126               "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
1127               "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
1128               "description": null,
1129               "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
1130               "version": "6",
1131               "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
1132               "properties": {
1133                 "minCountInstances": 0,
1134                 "maxCountInstances": null,
1135                 "initialCount": 0,
1136                 "vfModuleLabel": "PASQUALE_vRE_BV",
1137                 "baseModule": false
1138               },
1139               "inputs": {
1140                 "vnf_config_template_version": {
1141                   "type": "string",
1142                   "description": "VPE Software Version",
1143                   "entry_schema": null,
1144                   "inputProperties": {
1145                     "sourceType": "HEAT",
1146                     "vfModuleLabel": "PASQUALE_vRE_BV",
1147                     "paramName": "vnf_config_template_version"
1148                   },
1149                   "fromInputName": "2017488_pasqualevpe0_vnf_config_template_version",
1150                   "constraints": null,
1151                   "required": true,
1152                   "default": "17.2"
1153                 },
1154                 "bandwidth_units": {
1155                   "type": "string",
1156                   "description": "Units of bandwidth",
1157                   "entry_schema": null,
1158                   "inputProperties": {
1159                     "sourceType": "HEAT",
1160                     "vfModuleLabel": "PASQUALE_vRE_BV",
1161                     "paramName": "bandwidth_units"
1162                   },
1163                   "fromInputName": "pasqualevpe0_bandwidth_units",
1164                   "constraints": null,
1165                   "required": true,
1166                   "default": "Gbps"
1167                 },
1168                 "bandwidth": {
1169                   "type": "string",
1170                   "description": "Requested VPE bandwidth",
1171                   "entry_schema": null,
1172                   "inputProperties": {
1173                     "sourceType": "HEAT",
1174                     "vfModuleLabel": "PASQUALE_vRE_BV",
1175                     "paramName": "bandwidth"
1176                   },
1177                   "fromInputName": "pasqualevpe0_bandwidth",
1178                   "constraints": null,
1179                   "required": true,
1180                   "default": "10"
1181                 },
1182                 "AIC_CLLI": {
1183                   "type": "string",
1184                   "description": "AIC Site CLLI",
1185                   "entry_schema": null,
1186                   "inputProperties": {
1187                     "sourceType": "HEAT",
1188                     "vfModuleLabel": "PASQUALE_vRE_BV",
1189                     "paramName": "AIC_CLLI"
1190                   },
1191                   "fromInputName": "2017488_pasqualevpe0_AIC_CLLI",
1192                   "constraints": null,
1193                   "required": true,
1194                   "default": "ATLMY8GA"
1195                 },
1196                 "vnf_instance_name": {
1197                   "type": "string",
1198                   "description": "The hostname assigned to the vpe.",
1199                   "entry_schema": null,
1200                   "inputProperties": {
1201                     "sourceType": "HEAT",
1202                     "vfModuleLabel": "PASQUALE_vRE_BV",
1203                     "paramName": "vnf_instance_name"
1204                   },
1205                   "fromInputName": "2017488_pasqualevpe0_vnf_instance_name",
1206                   "constraints": null,
1207                   "required": true,
1208                   "default": "mtnj309me6"
1209                 }
1210               },
1211               "volumeGroupAllowed": true
1212             },
1213             "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0": {
1214               "uuid": "f8360508-3f17-4414-a2ed-6bc71161e8db",
1215               "invariantUuid": "b34833bb-6aa9-4ad6-a831-70b06367a091",
1216               "customizationUuid": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3",
1217               "description": null,
1218               "name": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
1219               "version": "5",
1220               "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
1221               "properties": {
1222                 "minCountInstances": 1,
1223                 "maxCountInstances": 1,
1224                 "initialCount": 1,
1225                 "vfModuleLabel": "PASQUALE_base_vPE_BV",
1226                 "baseModule": true
1227               },
1228               "inputs": {},
1229               "volumeGroupAllowed": false
1230             },
1231             "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
1232               "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
1233               "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
1234               "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
1235               "description": null,
1236               "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
1237               "version": "6",
1238               "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
1239               "properties": {
1240                 "minCountInstances": 0,
1241                 "maxCountInstances": null,
1242                 "initialCount": 0,
1243                 "vfModuleLabel": "PASQUALE_vPFE_BV",
1244                 "baseModule": false
1245               },
1246               "inputs": {},
1247               "volumeGroupAllowed": true
1248             }
1249           },
1250           "volumeGroups": {
1251             "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
1252               "uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
1253               "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
1254               "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
1255               "description": null,
1256               "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
1257               "version": "6",
1258               "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
1259               "properties": {
1260                 "minCountInstances": 0,
1261                 "maxCountInstances": null,
1262                 "initialCount": 0,
1263                 "vfModuleLabel": "PASQUALE_vRE_BV",
1264                 "baseModule": false
1265               },
1266               "inputs": {
1267                 "vnf_config_template_version": {
1268                   "type": "string",
1269                   "description": "VPE Software Version",
1270                   "entry_schema": null,
1271                   "inputProperties": {
1272                     "sourceType": "HEAT",
1273                     "vfModuleLabel": "PASQUALE_vRE_BV",
1274                     "paramName": "vnf_config_template_version"
1275                   },
1276                   "fromInputName": "2017488_pasqualevpe0_vnf_config_template_version",
1277                   "constraints": null,
1278                   "required": true,
1279                   "default": "17.2"
1280                 },
1281                 "bandwidth_units": {
1282                   "type": "string",
1283                   "description": "Units of bandwidth",
1284                   "entry_schema": null,
1285                   "inputProperties": {
1286                     "sourceType": "HEAT",
1287                     "vfModuleLabel": "PASQUALE_vRE_BV",
1288                     "paramName": "bandwidth_units"
1289                   },
1290                   "fromInputName": "pasqualevpe0_bandwidth_units",
1291                   "constraints": null,
1292                   "required": true,
1293                   "default": "Gbps"
1294                 },
1295                 "bandwidth": {
1296                   "type": "string",
1297                   "description": "Requested VPE bandwidth",
1298                   "entry_schema": null,
1299                   "inputProperties": {
1300                     "sourceType": "HEAT",
1301                     "vfModuleLabel": "PASQUALE_vRE_BV",
1302                     "paramName": "bandwidth"
1303                   },
1304                   "fromInputName": "pasqualevpe0_bandwidth",
1305                   "constraints": null,
1306                   "required": true,
1307                   "default": "10"
1308                 },
1309                 "AIC_CLLI": {
1310                   "type": "string",
1311                   "description": "AIC Site CLLI",
1312                   "entry_schema": null,
1313                   "inputProperties": {
1314                     "sourceType": "HEAT",
1315                     "vfModuleLabel": "PASQUALE_vRE_BV",
1316                     "paramName": "AIC_CLLI"
1317                   },
1318                   "fromInputName": "2017488_pasqualevpe0_AIC_CLLI",
1319                   "constraints": null,
1320                   "required": true,
1321                   "default": "ATLMY8GA"
1322                 },
1323                 "vnf_instance_name": {
1324                   "type": "string",
1325                   "description": "The hostname assigned to the vpe.",
1326                   "entry_schema": null,
1327                   "inputProperties": {
1328                     "sourceType": "HEAT",
1329                     "vfModuleLabel": "PASQUALE_vRE_BV",
1330                     "paramName": "vnf_instance_name"
1331                   },
1332                   "fromInputName": "2017488_pasqualevpe0_vnf_instance_name",
1333                   "constraints": null,
1334                   "required": true,
1335                   "default": "mtnj309me6"
1336                 }
1337               }
1338             },
1339             "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
1340               "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
1341               "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
1342               "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
1343               "description": null,
1344               "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
1345               "version": "6",
1346               "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
1347               "properties": {
1348                 "minCountInstances": 0,
1349                 "maxCountInstances": null,
1350                 "initialCount": 0,
1351                 "vfModuleLabel": "PASQUALE_vPFE_BV",
1352                 "baseModule": false
1353               },
1354               "inputs": {}
1355             }
1356           },
1357           "vfcInstanceGroups": {}
1358         }
1359       },
1360       "networks": {},
1361       "collectionResources": {},
1362       "configurations": {},
1363       "fabricConfigurations": {},
1364       "serviceProxies": {},
1365       "vfModules": {
1366         "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
1367           "uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
1368           "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
1369           "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
1370           "description": null,
1371           "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
1372           "version": "6",
1373           "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
1374           "properties": {
1375             "minCountInstances": 0,
1376             "maxCountInstances": null,
1377             "initialCount": 0,
1378             "vfModuleLabel": "PASQUALE_vRE_BV",
1379             "baseModule": false
1380           },
1381           "inputs": {
1382             "vnf_config_template_version": {
1383               "type": "string",
1384               "description": "VPE Software Version",
1385               "entry_schema": null,
1386               "inputProperties": {
1387                 "sourceType": "HEAT",
1388                 "vfModuleLabel": "PASQUALE_vRE_BV",
1389                 "paramName": "vnf_config_template_version"
1390               },
1391               "fromInputName": "2017488_pasqualevpe0_vnf_config_template_version",
1392               "constraints": null,
1393               "required": true,
1394               "default": "17.2"
1395             },
1396             "bandwidth_units": {
1397               "type": "string",
1398               "description": "Units of bandwidth",
1399               "entry_schema": null,
1400               "inputProperties": {
1401                 "sourceType": "HEAT",
1402                 "vfModuleLabel": "PASQUALE_vRE_BV",
1403                 "paramName": "bandwidth_units"
1404               },
1405               "fromInputName": "pasqualevpe0_bandwidth_units",
1406               "constraints": null,
1407               "required": true,
1408               "default": "Gbps"
1409             },
1410             "bandwidth": {
1411               "type": "string",
1412               "description": "Requested VPE bandwidth",
1413               "entry_schema": null,
1414               "inputProperties": {
1415                 "sourceType": "HEAT",
1416                 "vfModuleLabel": "PASQUALE_vRE_BV",
1417                 "paramName": "bandwidth"
1418               },
1419               "fromInputName": "pasqualevpe0_bandwidth",
1420               "constraints": null,
1421               "required": true,
1422               "default": "10"
1423             },
1424             "AIC_CLLI": {
1425               "type": "string",
1426               "description": "AIC Site CLLI",
1427               "entry_schema": null,
1428               "inputProperties": {
1429                 "sourceType": "HEAT",
1430                 "vfModuleLabel": "PASQUALE_vRE_BV",
1431                 "paramName": "AIC_CLLI"
1432               },
1433               "fromInputName": "2017488_pasqualevpe0_AIC_CLLI",
1434               "constraints": null,
1435               "required": true,
1436               "default": "ATLMY8GA"
1437             },
1438             "vnf_instance_name": {
1439               "type": "string",
1440               "description": "The hostname assigned to the vpe.",
1441               "entry_schema": null,
1442               "inputProperties": {
1443                 "sourceType": "HEAT",
1444                 "vfModuleLabel": "PASQUALE_vRE_BV",
1445                 "paramName": "vnf_instance_name"
1446               },
1447               "fromInputName": "2017488_pasqualevpe0_vnf_instance_name",
1448               "constraints": null,
1449               "required": true,
1450               "default": "mtnj309me6"
1451             }
1452           },
1453           "volumeGroupAllowed": true
1454         },
1455         "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0": {
1456           "uuid": "f8360508-3f17-4414-a2ed-6bc71161e8db",
1457           "invariantUuid": "b34833bb-6aa9-4ad6-a831-70b06367a091",
1458           "customizationUuid": "a55961b2-2065-4ab0-a5b7-2fcee1c227e3",
1459           "description": null,
1460           "name": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
1461           "version": "5",
1462           "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_base_vPE_BV..module-0",
1463           "properties": {
1464             "minCountInstances": 1,
1465             "maxCountInstances": 1,
1466             "initialCount": 1,
1467             "vfModuleLabel": "PASQUALE_base_vPE_BV",
1468             "baseModule": true
1469           },
1470           "inputs": {},
1471           "volumeGroupAllowed": false
1472         },
1473         "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
1474           "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
1475           "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
1476           "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
1477           "description": null,
1478           "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
1479           "version": "6",
1480           "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
1481           "properties": {
1482             "minCountInstances": 0,
1483             "maxCountInstances": null,
1484             "initialCount": 0,
1485             "vfModuleLabel": "PASQUALE_vPFE_BV",
1486             "baseModule": false
1487           },
1488           "inputs": {},
1489           "volumeGroupAllowed": true
1490         }
1491       },
1492       "volumeGroups": {
1493         "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vRE_BV..module-1": {
1494           "uuid": "25284168-24bb-4698-8cb4-3f509146eca5",
1495           "invariantUuid": "7253ff5c-97f0-4b8b-937c-77aeb4d79aa1",
1496           "customizationUuid": "f7e7c365-60cf-49a9-9ebf-a1aa11b9d401",
1497           "description": null,
1498           "name": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
1499           "version": "6",
1500           "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vRE_BV..module-1",
1501           "properties": {
1502             "minCountInstances": 0,
1503             "maxCountInstances": null,
1504             "initialCount": 0,
1505             "vfModuleLabel": "PASQUALE_vRE_BV",
1506             "baseModule": false
1507           },
1508           "inputs": {
1509             "vnf_config_template_version": {
1510               "type": "string",
1511               "description": "VPE Software Version",
1512               "entry_schema": null,
1513               "inputProperties": {
1514                 "sourceType": "HEAT",
1515                 "vfModuleLabel": "PASQUALE_vRE_BV",
1516                 "paramName": "vnf_config_template_version"
1517               },
1518               "fromInputName": "2017488_pasqualevpe0_vnf_config_template_version",
1519               "constraints": null,
1520               "required": true,
1521               "default": "17.2"
1522             },
1523             "bandwidth_units": {
1524               "type": "string",
1525               "description": "Units of bandwidth",
1526               "entry_schema": null,
1527               "inputProperties": {
1528                 "sourceType": "HEAT",
1529                 "vfModuleLabel": "PASQUALE_vRE_BV",
1530                 "paramName": "bandwidth_units"
1531               },
1532               "fromInputName": "pasqualevpe0_bandwidth_units",
1533               "constraints": null,
1534               "required": true,
1535               "default": "Gbps"
1536             },
1537             "bandwidth": {
1538               "type": "string",
1539               "description": "Requested VPE bandwidth",
1540               "entry_schema": null,
1541               "inputProperties": {
1542                 "sourceType": "HEAT",
1543                 "vfModuleLabel": "PASQUALE_vRE_BV",
1544                 "paramName": "bandwidth"
1545               },
1546               "fromInputName": "pasqualevpe0_bandwidth",
1547               "constraints": null,
1548               "required": true,
1549               "default": "10"
1550             },
1551             "AIC_CLLI": {
1552               "type": "string",
1553               "description": "AIC Site CLLI",
1554               "entry_schema": null,
1555               "inputProperties": {
1556                 "sourceType": "HEAT",
1557                 "vfModuleLabel": "PASQUALE_vRE_BV",
1558                 "paramName": "AIC_CLLI"
1559               },
1560               "fromInputName": "2017488_pasqualevpe0_AIC_CLLI",
1561               "constraints": null,
1562               "required": true,
1563               "default": "ATLMY8GA"
1564             },
1565             "vnf_instance_name": {
1566               "type": "string",
1567               "description": "The hostname assigned to the vpe.",
1568               "entry_schema": null,
1569               "inputProperties": {
1570                 "sourceType": "HEAT",
1571                 "vfModuleLabel": "PASQUALE_vRE_BV",
1572                 "paramName": "vnf_instance_name"
1573               },
1574               "fromInputName": "2017488_pasqualevpe0_vnf_instance_name",
1575               "constraints": null,
1576               "required": true,
1577               "default": "mtnj309me6"
1578             }
1579           }
1580         },
1581         "2017488_pasqualevpe0..2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2": {
1582           "uuid": "0a0dd9d4-31d3-4c3a-ae89-a02f383e6a9a",
1583           "invariantUuid": "eff8cc59-53a1-4101-aed7-8cf24ecf8339",
1584           "customizationUuid": "3cd946bb-50e0-40d8-96d3-c9023520b557",
1585           "description": null,
1586           "name": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
1587           "version": "6",
1588           "modelCustomizationName": "2017488PasqualeVpe..PASQUALE_vPFE_BV..module-2",
1589           "properties": {
1590             "minCountInstances": 0,
1591             "maxCountInstances": null,
1592             "initialCount": 0,
1593             "vfModuleLabel": "PASQUALE_vPFE_BV",
1594             "baseModule": false
1595           },
1596           "inputs": {}
1597         }
1598       },
1599       "pnfs": {}
1600     }
1601   }
1602 });