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