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