97c6ddf59ee4e533f8f66686eb03d87ef48b54c7
[vid.git] /
1 import {getTestBed, TestBed} from '@angular/core/testing';
2 import {HttpClientTestingModule, HttpTestingController} from '@angular/common/http/testing';
3 import {NgRedux} from '@angular-redux/store';
4 import {BasicControlGenerator} from "../basic.control.generator";
5 import {AaiService} from "../../../../services/aaiService/aai.service";
6 import {GenericFormService} from "../../generic-form.service";
7 import {FormBuilder} from "@angular/forms";
8 import {LogService} from "../../../../utils/log/log.service";
9 import {FormControlNames, NetworkControlGenerator} from "./network.control.generator";
10 import {
11   FormControlModel,
12   ValidatorModel,
13   ValidatorOptions
14 } from "../../../../models/formControlModels/formControl.model";
15 import {FeatureFlagsService} from "../../../../services/featureFlag/feature-flags.service";
16
17 class MockAppStore<T> {
18   getState(){
19   return {
20   "global": {
21     "name": null,
22     "flags": {
23       "FLAG_NETWORK_TO_ASYNC_INSTANTIATION": false,
24       "FLAG_SHOW_ASSIGNMENTS": true,
25       "FLAG_FABRIC_CONFIGURATION_ASSIGNMENTS": true,
26       "FLAG_UNASSIGN_SERVICE": true,
27       "FLAG_SHOW_VERIFY_SERVICE": false,
28       "FLAG_COLLECTION_RESOURCE_SUPPORT": true,
29       "FLAG_DUPLICATE_VNF": true,
30       "FLAG_SERVICE_MODEL_CACHE": true,
31       "CREATE_INSTANCE_TEST": false,
32       "FLAG_SETTING_DEFAULTS_IN_DRAWING_BOARD": false,
33       "FLAG_ASYNC_INSTANTIATION": true,
34       "FLAG_ASYNC_JOBS": true,
35       "EMPTY_DRAWING_BOARD_TEST": false,
36       "FLAG_ADD_MSO_TESTAPI_FIELD": true
37     },
38     "type": "[FLAGS] Update"
39   },
40   "service": {
41     "serviceHierarchy": {
42       "6e59c5de-f052-46fa-aa7e-2fca9d674c44": {
43         "service": {
44           "uuid": "6e59c5de-f052-46fa-aa7e-2fca9d674c44",
45           "invariantUuid": "e49fbd11-e60c-4a8e-b4bf-30fbe8f4fcc0",
46           "name": "ComplexService",
47           "version": "1.0",
48           "toscaModelURL": null,
49           "category": "Emanuel",
50           "serviceType": "",
51           "serviceRole": "",
52           "description": "ComplexService",
53           "serviceEcompNaming": "false",
54           "instantiationType": "Macro",
55           "inputs": {}
56         },
57         "vnfs": {
58           "VF_vMee 0": {
59             "uuid": "d6557200-ecf2-4641-8094-5393ae3aae60",
60             "invariantUuid": "4160458e-f648-4b30-a176-43881ffffe9e",
61             "description": "VSP_vMee",
62             "name": "VF_vMee",
63             "version": "2.0",
64             "customizationUuid": "91415b44-753d-494c-926a-456a9172bbb9",
65             "inputs": {},
66             "commands": {},
67             "properties": {
68               "max_instances": 10,
69               "min_instances": 1,
70               "gpb2_Internal2_mac": "00:11:22:EF:AC:DF",
71               "sctp-b-ipv6-egress_src_start_port": "0",
72               "sctp-a-ipv6-egress_rule_application": "any",
73               "Internal2_allow_transit": "true",
74               "sctp-b-IPv6_ethertype": "IPv6",
75               "sctp-a-egress_rule_application": "any",
76               "sctp-b-ingress_action": "pass",
77               "sctp-b-ingress_rule_protocol": "icmp",
78               "ncb2_Internal1_mac": "00:11:22:EF:AC:DF",
79               "sctp-b-ipv6-ingress-src_start_port": "0.0",
80               "ncb1_Internal2_mac": "00:11:22:EF:AC:DF",
81               "fsb_volume_size_0": "320.0",
82               "sctp-b-egress_src_addresses": "local",
83               "sctp-a-ipv6-ingress_ethertype": "IPv4",
84               "sctp-a-ipv6-ingress-dst_start_port": "0",
85               "sctp-b-ipv6-ingress_rule_application": "any",
86               "domain_name": "default-domain",
87               "sctp-a-ingress_rule_protocol": "icmp",
88               "sctp-b-egress-src_start_port": "0.0",
89               "sctp-a-egress_src_addresses": "local",
90               "sctp-b-display_name": "epc-sctp-b-ipv4v6-sec-group",
91               "sctp-a-egress-src_start_port": "0.0",
92               "sctp-a-ingress_ethertype": "IPv4",
93               "sctp-b-ipv6-ingress-dst_end_port": "65535",
94               "sctp-b-dst_subnet_prefix_v6": "::",
95               "nf_naming": "{ecomp_generated_naming=true}",
96               "sctp-a-ipv6-ingress_src_subnet_prefix": "0.0.0.0",
97               "sctp-b-egress-dst_start_port": "0.0",
98               "ncb_flavor_name": "nv.c20r64d1",
99               "gpb1_Internal1_mac": "00:11:22:EF:AC:DF",
100               "sctp-b-egress_dst_subnet_prefix_len": "0.0",
101               "Internal2_net_cidr": "10.0.0.10",
102               "sctp-a-ingress-dst_start_port": "0.0",
103               "sctp-a-egress-dst_start_port": "0.0",
104               "fsb1_Internal2_mac": "00:11:22:EF:AC:DF",
105               "sctp-a-egress_ethertype": "IPv4",
106               "vlc_st_service_mode": "in-network-nat",
107               "sctp-a-ipv6-egress_ethertype": "IPv4",
108               "sctp-a-egress-src_end_port": "65535.0",
109               "sctp-b-ipv6-egress_rule_application": "any",
110               "sctp-b-egress_action": "pass",
111               "sctp-a-ingress-src_subnet_prefix_len": "0.0",
112               "sctp-b-ipv6-ingress-src_end_port": "65535.0",
113               "sctp-b-name": "epc-sctp-b-ipv4v6-sec-group",
114               "fsb2_Internal1_mac": "00:11:22:EF:AC:DF",
115               "sctp-a-ipv6-ingress-src_start_port": "0.0",
116               "sctp-b-ipv6-egress_ethertype": "IPv4",
117               "Internal1_net_cidr": "10.0.0.10",
118               "sctp-a-egress_dst_subnet_prefix": "0.0.0.0",
119               "fsb_flavor_name": "nv.c20r64d1",
120               "sctp_rule_protocol": "132",
121               "sctp-b-ipv6-ingress_src_subnet_prefix_len": "0",
122               "sctp-a-ipv6-ingress_rule_application": "any",
123               "ecomp_generated_naming": "false",
124               "sctp-a-IPv6_ethertype": "IPv6",
125               "vlc2_Internal1_mac": "00:11:22:EF:AC:DF",
126               "vlc_st_virtualization_type": "virtual-machine",
127               "sctp-b-ingress-dst_start_port": "0.0",
128               "sctp-b-ingress-dst_end_port": "65535.0",
129               "sctp-a-ipv6-ingress-src_end_port": "65535.0",
130               "sctp-a-display_name": "epc-sctp-a-ipv4v6-sec-group",
131               "sctp-b-ingress_rule_application": "any",
132               "int2_sec_group_name": "int2-sec-group",
133               "vlc_flavor_name": "nd.c16r64d1",
134               "sctp-b-ipv6-egress_src_addresses": "local",
135               "vlc_st_interface_type_int1": "other1",
136               "sctp-b-egress-src_end_port": "65535.0",
137               "sctp-a-ipv6-egress-dst_start_port": "0",
138               "vlc_st_interface_type_int2": "other2",
139               "sctp-a-ipv6-egress_rule_protocol": "any",
140               "Internal2_shared": "false",
141               "sctp-a-ipv6-egress_dst_subnet_prefix_len": "0",
142               "Internal2_rpf": "disable",
143               "vlc1_Internal1_mac": "00:11:22:EF:AC:DF",
144               "sctp-b-ipv6-egress_src_end_port": "65535",
145               "sctp-a-ipv6-egress_src_addresses": "local",
146               "sctp-a-ingress-dst_end_port": "65535.0",
147               "sctp-a-ipv6-egress_src_end_port": "65535",
148               "Internal1_forwarding_mode": "l2",
149               "Internal2_dhcp": "false",
150               "sctp-a-dst_subnet_prefix_v6": "::",
151               "pxe_image_name": "MME_PXE-Boot_16ACP04_GA.qcow2",
152               "vlc_st_interface_type_gtp": "other0",
153               "ncb1_Internal1_mac": "00:11:22:EF:AC:DF",
154               "sctp-b-src_subnet_prefix_v6": "::",
155               "sctp-a-egress_dst_subnet_prefix_len": "0.0",
156               "int1_sec_group_name": "int1-sec-group",
157               "Internal1_dhcp": "false",
158               "sctp-a-ipv6-egress_dst_end_port": "65535",
159               "Internal2_forwarding_mode": "l2",
160               "fsb2_Internal2_mac": "00:11:22:EF:AC:DF",
161               "sctp-b-egress_dst_subnet_prefix": "0.0.0.0",
162               "Internal1_net_cidr_len": "17",
163               "gpb2_Internal1_mac": "00:11:22:EF:AC:DF",
164               "sctp-b-ingress-src_subnet_prefix_len": "0.0",
165               "sctp-a-ingress_dst_addresses": "local",
166               "sctp-a-egress_action": "pass",
167               "fsb_volume_type_0": "SF-Default-SSD",
168               "ncb2_Internal2_mac": "00:11:22:EF:AC:DF",
169               "vlc_st_interface_type_sctp_a": "left",
170               "vlc_st_interface_type_sctp_b": "right",
171               "sctp-a-src_subnet_prefix_v6": "::",
172               "vlc_st_version": "2",
173               "sctp-b-egress_ethertype": "IPv4",
174               "sctp-a-ingress_rule_application": "any",
175               "gpb1_Internal2_mac": "00:11:22:EF:AC:DF",
176               "instance_ip_family_v6": "v6",
177               "sctp-a-ipv6-egress_src_start_port": "0",
178               "sctp-b-ingress-src_start_port": "0.0",
179               "sctp-b-ingress_dst_addresses": "local",
180               "fsb1_Internal1_mac": "00:11:22:EF:AC:DF",
181               "vlc_st_interface_type_oam": "management",
182               "multi_stage_design": "true",
183               "oam_sec_group_name": "oam-sec-group",
184               "Internal2_net_gateway": "10.0.0.10",
185               "sctp-a-ipv6-ingress-dst_end_port": "65535",
186               "sctp-b-ipv6-egress-dst_start_port": "0",
187               "Internal1_net_gateway": "10.0.0.10",
188               "sctp-b-ipv6-egress_rule_protocol": "any",
189               "gtp_sec_group_name": "gtp-sec-group",
190               "sctp-a-ipv6-egress_dst_subnet_prefix": "0.0.0.0",
191               "sctp-b-ipv6-egress_dst_subnet_prefix_len": "0",
192               "sctp-a-ipv6-ingress_dst_addresses": "local",
193               "sctp-a-egress_rule_protocol": "icmp",
194               "sctp-b-ipv6-egress_action": "pass",
195               "sctp-a-ipv6-egress_action": "pass",
196               "Internal1_shared": "false",
197               "sctp-b-ipv6-ingress_rule_protocol": "any",
198               "Internal2_net_cidr_len": "17",
199               "sctp-a-name": "epc-sctp-a-ipv4v6-sec-group",
200               "sctp-a-ingress-src_end_port": "65535.0",
201               "sctp-b-ipv6-ingress_src_subnet_prefix": "0.0.0.0",
202               "sctp-a-egress-dst_end_port": "65535.0",
203               "sctp-a-ingress_action": "pass",
204               "sctp-b-egress_rule_protocol": "icmp",
205               "sctp-b-ipv6-ingress_action": "pass",
206               "vlc_st_service_type": "firewall",
207               "sctp-b-ipv6-egress_dst_end_port": "65535",
208               "sctp-b-ipv6-ingress-dst_start_port": "0",
209               "vlc2_Internal2_mac": "00:11:22:EF:AC:DF",
210               "vlc_st_availability_zone": "true",
211               "fsb_volume_image_name_1": "MME_FSB2_16ACP04_GA.qcow2",
212               "sctp-b-ingress-src_subnet_prefix": "0.0.0.0",
213               "sctp-a-ipv6-ingress_src_subnet_prefix_len": "0",
214               "Internal1_allow_transit": "true",
215               "gpb_flavor_name": "nv.c20r64d1",
216               "availability_zone_max_count": "1",
217               "fsb_volume_image_name_0": "MME_FSB1_16ACP04_GA.qcow2",
218               "sctp-b-ipv6-ingress_dst_addresses": "local",
219               "sctp-b-ipv6-egress_dst_subnet_prefix": "0.0.0.0",
220               "sctp-b-ipv6-ingress_ethertype": "IPv4",
221               "vlc1_Internal2_mac": "00:11:22:EF:AC:DF",
222               "sctp-a-ingress-src_subnet_prefix": "0.0.0.0",
223               "sctp-a-ipv6-ingress_action": "pass",
224               "Internal1_rpf": "disable",
225               "sctp-b-ingress_ethertype": "IPv4",
226               "sctp-b-egress_rule_application": "any",
227               "sctp-b-ingress-src_end_port": "65535.0",
228               "sctp-a-ipv6-ingress_rule_protocol": "any",
229               "sctp-a-ingress-src_start_port": "0.0",
230               "sctp-b-egress-dst_end_port": "65535.0"
231             },
232             "type": "VF",
233             "modelCustomizationName": "VF_vMee 0",
234             "vfModules": {
235               "vf_vmee0..VfVmee..vmme_vlc..module-1": {
236                 "uuid": "522159d5-d6e0-4c2a-aa44-5a542a12a830",
237                 "invariantUuid": "98a7c88b-b577-476a-90e4-e25a5871e02b",
238                 "customizationUuid": "55b1be94-671a-403e-a26c-667e9c47d091",
239                 "description": null,
240                 "name": "VfVmee..vmme_vlc..module-1",
241                 "version": "2",
242                 "modelCustomizationName": "VfVmee..vmme_vlc..module-1",
243                 "properties": {
244                   "minCountInstances": 0,
245                   "maxCountInstances": null,
246                   "initialCount": 0,
247                   "vfModuleLabel": "vmme_vlc"
248                 },
249                 "inputs": {},
250                 "volumeGroupAllowed": true
251               },
252               "vf_vmee0..VfVmee..vmme_gpb..module-2": {
253                 "uuid": "41708296-e443-4c71-953f-d9a010f059e1",
254                 "invariantUuid": "1cca90b8-3490-495e-87da-3f3e4c57d5b9",
255                 "customizationUuid": "6add59e0-7fe1-4bc4-af48-f8812422ae7c",
256                 "description": null,
257                 "name": "VfVmee..vmme_gpb..module-2",
258                 "version": "2",
259                 "modelCustomizationName": "VfVmee..vmme_gpb..module-2",
260                 "properties": {
261                   "minCountInstances": 0,
262                   "maxCountInstances": null,
263                   "initialCount": 0,
264                   "vfModuleLabel": "vmme_gpb"
265                 },
266                 "inputs": {},
267                 "volumeGroupAllowed": false
268               },
269               "vf_vmee0..VfVmee..base_vmme..module-0": {
270                 "uuid": "a27f5cfc-7f12-4f99-af08-0af9c3885c87",
271                 "invariantUuid": "a6f9e51a-2b35-416a-ae15-15e58d61f36d",
272                 "customizationUuid": "f8c040f1-7e51-4a11-aca8-acf256cfd861",
273                 "description": null,
274                 "name": "VfVmee..base_vmme..module-0",
275                 "version": "2",
276                 "modelCustomizationName": "VfVmee..base_vmme..module-0",
277                 "properties": {
278                   "minCountInstances": 1,
279                   "maxCountInstances": 1,
280                   "initialCount": 1,
281                   "vfModuleLabel": "base_vmme"
282                 },
283                 "inputs": {},
284                 "volumeGroupAllowed": true
285               }
286             },
287             "volumeGroups": {
288               "vf_vmee0..VfVmee..base_vmme..module-0": {
289                 "uuid": "a27f5cfc-7f12-4f99-af08-0af9c3885c87",
290                 "invariantUuid": "a6f9e51a-2b35-416a-ae15-15e58d61f36d",
291                 "customizationUuid": "f8c040f1-7e51-4a11-aca8-acf256cfd861",
292                 "description": null,
293                 "name": "VfVmee..base_vmme..module-0",
294                 "version": "2",
295                 "modelCustomizationName": "VfVmee..base_vmme..module-0",
296                 "properties": {
297                   "minCountInstances": 1,
298                   "maxCountInstances": 1,
299                   "initialCount": 1,
300                   "vfModuleLabel": "base_vmme"
301                 },
302                 "inputs": {}
303               }
304             },
305             "vfcInstanceGroups": {}
306           }
307         },
308         "networks": {
309           "ExtVL 0": {
310             "uuid": "ddc3f20c-08b5-40fd-af72-c6d14636b986",
311             "invariantUuid": "379f816b-a7aa-422f-be30-17114ff50b7c",
312             "description": "ECOMP generic virtual link (network) base type for all other service-level and global networks",
313             "name": "ExtVL",
314             "version": "37.0",
315             "customizationUuid": "94fdd893-4a36-4d70-b16a-ec29c54c184f",
316             "inputs": {},
317             "commands": {},
318             "properties": {
319               "ecomp_generated_naming" : "false",
320               "network_assignments": "{is_external_network=false, ipv4_subnet_default_assignment={min_subnets_count=1}, ecomp_generated_network_assignment=false, ipv6_subnet_default_assignment={min_subnets_count=1}}",
321               "exVL_naming": "{ecomp_generated_naming=true}",
322               "network_flows": "{is_network_policy=false, is_bound_to_vpn=false}",
323               "network_homing": "{ecomp_selected_instance_node_target=false}"
324             },
325             "type": "VL",
326             "modelCustomizationName": "ExtVL 0"
327           },
328           "ExtVL 1": {
329             "uuid": "ddc3f20c-08b5-40fd-af72-c6d14636b987",
330             "invariantUuid": "379f816b-a7aa-422f-be30-17114ff50b7c",
331             "description": "ECOMP generic virtual link (network) base type for all other service-level and global networks",
332             "name": "ExtVL1",
333             "version": "37.0",
334             "customizationUuid": "94fdd893-4a36-4d70-b16a-ec29c54c184f",
335             "inputs": {},
336             "commands": {},
337             "properties": {
338               "ecomp_generated_naming" : "true",
339               "network_assignments": "{is_external_network=false, ipv4_subnet_default_assignment={min_subnets_count=1}, ecomp_generated_network_assignment=false, ipv6_subnet_default_assignment={min_subnets_count=1}}",
340               "exVL_naming": "{ecomp_generated_naming=true}",
341               "network_flows": "{is_network_policy=false, is_bound_to_vpn=false}",
342               "network_homing": "{ecomp_selected_instance_node_target=false}"
343             },
344             "type": "VL",
345             "modelCustomizationName": "ExtVL 0"
346           }
347         },
348         "collectionResource": {},
349         "configurations": {
350           "Port Mirroring Configuration By Policy 0": {
351             "uuid": "b4398538-e89d-4f13-b33d-ca323434ba50",
352             "invariantUuid": "6ef0ca40-f366-4897-951f-abd65d25f6f7",
353             "description": "A port mirroring configuration by policy object",
354             "name": "Port Mirroring Configuration By Policy",
355             "version": "27.0",
356             "customizationUuid": "3c3b7b8d-8669-4b3b-8664-61970041fad2",
357             "inputs": {},
358             "commands": {},
359             "properties": {},
360             "type": "Configuration",
361             "modelCustomizationName": "Port Mirroring Configuration By Policy 0",
362             "sourceNodes": [],
363             "collectorNodes": null,
364             "configurationByPolicy": false
365           }
366         },
367         "serviceProxies": {},
368         "vfModules": {
369           "vf_vmee0..VfVmee..vmme_vlc..module-1": {
370             "uuid": "522159d5-d6e0-4c2a-aa44-5a542a12a830",
371             "invariantUuid": "98a7c88b-b577-476a-90e4-e25a5871e02b",
372             "customizationUuid": "55b1be94-671a-403e-a26c-667e9c47d091",
373             "description": null,
374             "name": "VfVmee..vmme_vlc..module-1",
375             "version": "2",
376             "modelCustomizationName": "VfVmee..vmme_vlc..module-1",
377             "properties": {
378               "minCountInstances": 0,
379               "maxCountInstances": null,
380               "initialCount": 0,
381               "vfModuleLabel": "vmme_vlc"
382             },
383             "inputs": {},
384             "volumeGroupAllowed": true
385           },
386           "vf_vmee0..VfVmee..vmme_gpb..module-2": {
387             "uuid": "41708296-e443-4c71-953f-d9a010f059e1",
388             "invariantUuid": "1cca90b8-3490-495e-87da-3f3e4c57d5b9",
389             "customizationUuid": "6add59e0-7fe1-4bc4-af48-f8812422ae7c",
390             "description": null,
391             "name": "VfVmee..vmme_gpb..module-2",
392             "version": "2",
393             "modelCustomizationName": "VfVmee..vmme_gpb..module-2",
394             "properties": {
395               "minCountInstances": 0,
396               "maxCountInstances": null,
397               "initialCount": 0,
398               "vfModuleLabel": "vmme_gpb"
399             },
400             "inputs": {},
401             "volumeGroupAllowed": false
402           },
403           "vf_vmee0..VfVmee..base_vmme..module-0": {
404             "uuid": "a27f5cfc-7f12-4f99-af08-0af9c3885c87",
405             "invariantUuid": "a6f9e51a-2b35-416a-ae15-15e58d61f36d",
406             "customizationUuid": "f8c040f1-7e51-4a11-aca8-acf256cfd861",
407             "description": null,
408             "name": "VfVmee..base_vmme..module-0",
409             "version": "2",
410             "modelCustomizationName": "VfVmee..base_vmme..module-0",
411             "properties": {
412               "minCountInstances": 1,
413               "maxCountInstances": 1,
414               "initialCount": 1,
415               "vfModuleLabel": "base_vmme"
416             },
417             "inputs": {},
418             "volumeGroupAllowed": true
419           }
420         },
421         "volumeGroups": {
422           "vf_vmee0..VfVmee..base_vmme..module-0": {
423             "uuid": "a27f5cfc-7f12-4f99-af08-0af9c3885c87",
424             "invariantUuid": "a6f9e51a-2b35-416a-ae15-15e58d61f36d",
425             "customizationUuid": "f8c040f1-7e51-4a11-aca8-acf256cfd861",
426             "description": null,
427             "name": "VfVmee..base_vmme..module-0",
428             "version": "2",
429             "modelCustomizationName": "VfVmee..base_vmme..module-0",
430             "properties": {
431               "minCountInstances": 1,
432               "maxCountInstances": 1,
433               "initialCount": 1,
434               "vfModuleLabel": "base_vmme"
435             },
436             "inputs": {}
437           }
438         },
439         "pnfs": {}
440       }
441     },
442     "serviceInstance": {
443       "6e59c5de-f052-46fa-aa7e-2fca9d674c44": {
444         "networks" : {},
445         "vnfs": {
446           "VF_vMee 0": {
447             "rollbackOnFailure": "true",
448             "vfModules": {
449               "vf_vmee0..VfVmee..base_vmme..module-0": {
450                 "vf_vmee0..VfVmee..base_vmme..module-0vmvzo": {
451                   "isMissingData": false,
452                   "sdncPreReload": null,
453                   "modelInfo": {
454                     "modelType": "VFmodule",
455                     "modelInvariantId": "a6f9e51a-2b35-416a-ae15-15e58d61f36d",
456                     "modelVersionId": "a27f5cfc-7f12-4f99-af08-0af9c3885c87",
457                     "modelName": "VfVmee..base_vmme..module-0",
458                     "modelVersion": "2",
459                     "modelCustomizationId": "f8c040f1-7e51-4a11-aca8-acf256cfd861",
460                     "modelCustomizationName": "VfVmee..base_vmme..module-0"
461                   },
462                   "instanceParams": [
463                     {}
464                     ],
465                   "trackById": "wmtm6sy2uj"
466                 }
467               }
468             },
469             "isMissingData": true,
470             "originalName": "VF_vMee 0",
471             "vnfStoreKey": "VF_vMee 0",
472             "trackById": "p3wk448m5do",
473             "uuid": "d6557200-ecf2-4641-8094-5393ae3aae60",
474             "productFamilyId": "36b4733a-53f4-4cc8-8ff0-9172e5fc4b8e",
475             "lcpCloudRegionId": null,
476             "tenantId": null,
477             "lineOfBusiness": null,
478             "platformName": null,
479             "modelInfo": {
480               "modelType": "VF",
481               "modelInvariantId": "4160458e-f648-4b30-a176-43881ffffe9e",
482               "modelVersionId": "6e59c5de-f052-46fa-aa7e-2fca9d674c44",
483               "modelName": "VF_vMee",
484               "modelVersion": "2.0",
485               "modelCustomizationName": "VF_vMee 0"
486             }
487           }
488         },
489         "instanceParams": [
490           {}
491           ],
492         "validationCounter": 1,
493         "existingNames": {},
494         "existingVNFCounterMap": {
495           "d6557200-ecf2-4641-8094-5393ae3aae60": 1
496         },
497         "globalSubscriberId": "e433710f-9217-458d-a79d-1c7aff376d89",
498         "subscriptionServiceType": "TYLER SILVIA",
499         "owningEntityId": "d61e6f2d-12fa-4cc2-91df-7c244011d6fc",
500         "productFamilyId": "36b4733a-53f4-4cc8-8ff0-9172e5fc4b8e",
501         "lcpCloudRegionId": "hvf6",
502         "tenantId": "229bcdc6eaeb4ca59d55221141d01f8e",
503         "aicZoneId": "JAG1",
504         "projectName": "x1",
505         "rollbackOnFailure": "true",
506         "bulkSize": 1,
507         "modelInfo": {
508           "modelInvariantId": "e49fbd11-e60c-4a8e-b4bf-30fbe8f4fcc0",
509           "modelVersionId": "6e59c5de-f052-46fa-aa7e-2fca9d674c44",
510           "modelName": "ComplexService",
511           "modelVersion": "1.0",
512           "uuid": "6e59c5de-f052-46fa-aa7e-2fca9d674c44"
513         },
514         "isALaCarte": false,
515         "name": "ComplexService",
516         "version": "1.0",
517         "description": "ComplexService",
518         "category": "Emanuel",
519         "uuid": "6e59c5de-f052-46fa-aa7e-2fca9d674c44",
520         "invariantUuid": "e49fbd11-e60c-4a8e-b4bf-30fbe8f4fcc0",
521         "serviceType": "",
522         "serviceRole": "",
523         "isMultiStepDesign": false
524       }
525     },
526     "lcpRegionsAndTenants": {
527       "lcpRegionList": [
528         {
529           "id": "JANET25",
530           "name": "JANET25",
531           "isPermitted": true
532         },
533         {
534           "id": "hvf6",
535           "name": "hvf6",
536           "isPermitted": true
537         }
538         ],
539       "lcpRegionsTenantsMap": {
540         "JANET25": [
541           {
542             "id": "092eb9e8e4b7412e8787dd091bc58e86",
543             "name": "USP-SIP-IC-24335-T-01",
544             "isPermitted": true
545           }
546           ],
547         "hvf6": [
548           {
549             "id": "bae71557c5bb4d5aac6743a4e5f1d054",
550             "name": "AIN Web Tool-15-D-testalexandria",
551             "isPermitted": true
552           },
553           {
554             "id": "229bcdc6eaeb4ca59d55221141d01f8e",
555             "name": "AIN Web Tool-15-D-STTest2",
556             "isPermitted": true
557           },
558           {
559             "id": "1178612d2b394be4834ad77f567c0af2",
560             "name": "AIN Web Tool-15-D-SSPtestcustome",
561             "isPermitted": true
562           },
563           {
564             "id": "19c5ade915eb461e8af52fb2fd8cd1f2",
565             "name": "AIN Web Tool-15-D-UncheckedEcopm",
566             "isPermitted": true
567           },
568           {
569             "id": "de007636e25249238447264a988a927b",
570             "name": "AIN Web Tool-15-D-dfsdf",
571             "isPermitted": true
572           },
573           {
574             "id": "62f29b3613634ca6a3065cbe0e020c44",
575             "name": "AIN/SMS-16-D-Multiservices1",
576             "isPermitted": true
577           },
578           {
579             "id": "649289e30d3244e0b48098114d63c2aa",
580             "name": "AIN Web Tool-15-D-SSPST66",
581             "isPermitted": true
582           },
583           {
584             "id": "3f21eeea6c2c486bba31dab816c05a32",
585             "name": "AIN Web Tool-15-D-ASSPST47",
586             "isPermitted": true
587           },
588           {
589             "id": "f60ce21d3ee6427586cff0d22b03b773",
590             "name": "CESAR-100-D-sspjg67246",
591             "isPermitted": true
592           },
593           {
594             "id": "8774659e425f479895ae091bb5d46560",
595             "name": "CESAR-100-D-sspjg68359",
596             "isPermitted": true
597           },
598           {
599             "id": "624eb554b0d147c19ff8885341760481",
600             "name": "AINWebTool-15-D-iftach",
601             "isPermitted": true
602           },
603           {
604             "id": "214f55f5fc414c678059c383b03e4962",
605             "name": "CESAR-100-D-sspjg612401",
606             "isPermitted": true
607           },
608           {
609             "id": "c90666c291664841bb98e4d981ff1db5",
610             "name": "CESAR-100-D-sspjg621340",
611             "isPermitted": true
612           },
613           {
614             "id": "ce5b6bc5c7b348e1bf4b91ac9a174278",
615             "name": "sspjg621351cloned",
616             "isPermitted": true
617           },
618           {
619             "id": "b386b768a3f24c8e953abbe0b3488c02",
620             "name": "AINWebTool-15-D-eteancomp",
621             "isPermitted": true
622           },
623           {
624             "id": "dc6c4dbfd225474e9deaadd34968646c",
625             "name": "AINWebTool-15-T-SPFET",
626             "isPermitted": true
627           },
628           {
629             "id": "02cb5030e9914aa4be120bd9ed1e19eb",
630             "name": "AINWebTool-15-X-eeweww",
631             "isPermitted": true
632           },
633           {
634             "id": "f2f3830e4c984d45bcd00e1a04158a79",
635             "name": "CESAR-100-D-spjg61909",
636             "isPermitted": true
637           },
638           {
639             "id": "05b91bd5137f4929878edd965755c06d",
640             "name": "CESAR-100-D-sspjg621512cloned",
641             "isPermitted": true
642           },
643           {
644             "id": "7002fbe8482d4a989ddf445b1ce336e0",
645             "name": "AINWebTool-15-X-vdr",
646             "isPermitted": true
647           },
648           {
649             "id": "4008522be43741dcb1f5422022a2aa0b",
650             "name": "AINWebTool-15-D-ssasa",
651             "isPermitted": true
652           },
653           {
654             "id": "f44e2e96a1b6476abfda2fa407b00169",
655             "name": "AINWebTool-15-D-PFNPT",
656             "isPermitted": true
657           },
658           {
659             "id": "b69a52bec8a84669a37a1e8b72708be7",
660             "name": "AINWebTool-15-X-vdre",
661             "isPermitted": true
662           },
663           {
664             "id": "fac7d9fd56154caeb9332202dcf2969f",
665             "name": "AINWebTool-15-X-NONPODECOMP",
666             "isPermitted": true
667           },
668           {
669             "id": "2d34d8396e194eb49969fd61ffbff961",
670             "name": "DN5242-Nov16-T5",
671             "isPermitted": true
672           },
673           {
674             "id": "cb42a77ff45b48a8b8deb83bb64acc74",
675             "name": "ro-T11",
676             "isPermitted": true
677           },
678           {
679             "id": "fa45ca53c80b492fa8be5477cd84fc2b",
680             "name": "ro-T112",
681             "isPermitted": true
682           },
683           {
684             "id": "4914ab0ab3a743e58f0eefdacc1dde77",
685             "name": "DN5242-Nov21-T1",
686             "isPermitted": true
687           },
688           {
689             "id": "d0a3e3f2964542259d155a81c41aadc3",
690             "name": "test-hvf6-09",
691             "isPermitted": true
692           },
693           {
694             "id": "cbb99fe4ada84631b7baf046b6fd2044",
695             "name": "DN5242-Nov16-T3",
696             "isPermitted": true
697           }
698           ]
699       }
700     },
701     "productFamilies": [
702       {
703         "id": "ebc3bc3d-62fd-4a3f-a037-f619df4ff034",
704         "name": "SCOTTIE",
705         "isPermitted": true
706       },
707       {
708         "id": "17cc1042-527b-11e6-beb8-9e71128cae77",
709         "name": "IGNACIO",
710         "isPermitted": true
711       },
712       {
713         "id": "36b4733a-53f4-4cc8-8ff0-9172e5fc4b8e",
714         "name": "Christie",
715         "isPermitted": true
716       },
717       {
718         "id": "a4f6f2ae-9bf5-4ed7-b904-06b2099c4bd7",
719         "name": "Enhanced Services",
720         "isPermitted": true
721       },
722       {
723         "id": "vTerrance",
724         "name": "vTerrance",
725         "isPermitted": true
726       },
727       {
728         "id": "323d69d9-2efe-4r45-ay0a-89ea7ard4e6f",
729         "name": "vSCP",
730         "isPermitted": true
731       },
732       {
733         "id": "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb",
734         "name": "Emanuel",
735         "isPermitted": true
736       },
737       {
738         "id": "d8a6ed93-251c-47ca-adc9-86671fd19f4c",
739         "name": "BVOIP",
740         "isPermitted": true
741       },
742       {
743         "id": "db171b8f-115c-4992-a2e3-ee04cae357e0",
744         "name": "LINDSEY",
745         "isPermitted": true
746       },
747       {
748         "id": "LRSI-OSPF",
749         "name": "LRSI-OSPF",
750         "isPermitted": true
751       },
752       {
753         "id": "vRosemarie",
754         "name": "HNGATEWAY",
755         "isPermitted": true
756       },
757       {
758         "id": "vHNPaas",
759         "name": "WILKINS",
760         "isPermitted": true
761       },
762       {
763         "id": "e433710f-9217-458d-a79d-1c7aff376d89",
764         "name": "TYLER SILVIA",
765         "isPermitted": true
766       },
767       {
768         "id": "b6a3f28c-eebf-494c-a900-055cc7c874ce",
769         "name": "VROUTER",
770         "isPermitted": true
771       },
772       {
773         "id": "Cisneros",
774         "name": "vMuriel",
775         "isPermitted": true
776       },
777       {
778         "id": "0ee8c1bc-7cbd-4b0a-a1ac-e9999255abc1",
779         "name": "CARA Griffin",
780         "isPermitted": true
781       },
782       {
783         "id": "c7611ebe-c324-48f1-8085-94aef0c6ef3d",
784         "name": "DARREN MCGEE",
785         "isPermitted": true
786       },
787       {
788         "id": "e30755dc-5673-4b6b-9dcf-9abdd96b93d1",
789         "name": "Transport",
790         "isPermitted": true
791       },
792       {
793         "id": "vSalvatore",
794         "name": "vSalvatore",
795         "isPermitted": true
796       },
797       {
798         "id": "d7bb0a21-66f2-4e6d-87d9-9ef3ced63ae4",
799         "name": "Josefina",
800         "isPermitted": true
801       },
802       {
803         "id": "vHubbard",
804         "name": "vHubbard",
805         "isPermitted": true
806       },
807       {
808         "id": "12a96a9d-4b4c-4349-a950-fe1159602621",
809         "name": "DARREN MCGEE",
810         "isPermitted": true
811       }
812       ],
813     "serviceTypes": {
814       "e433710f-9217-458d-a79d-1c7aff376d89": [
815         {
816           "id": "0",
817           "name": "vRichardson",
818           "isPermitted": false
819         },
820         {
821           "id": "1",
822           "name": "TYLER SILVIA",
823           "isPermitted": true
824         },
825         {
826           "id": "2",
827           "name": "Emanuel",
828           "isPermitted": false
829         },
830         {
831           "id": "3",
832           "name": "vJamie",
833           "isPermitted": false
834         },
835         {
836           "id": "4",
837           "name": "vVoiceMail",
838           "isPermitted": false
839         },
840         {
841           "id": "5",
842           "name": "Kennedy",
843           "isPermitted": false
844         },
845         {
846           "id": "6",
847           "name": "vSEGW",
848           "isPermitted": false
849         },
850         {
851           "id": "7",
852           "name": "vVM",
853           "isPermitted": false
854         },
855         {
856           "id": "8",
857           "name": "vOTA",
858           "isPermitted": false
859         },
860         {
861           "id": "9",
862           "name": "vMME",
863           "isPermitted": false
864         },
865         {
866           "id": "10",
867           "name": "vMNS",
868           "isPermitted": false
869         },
870         {
871           "id": "11",
872           "name": "vSCP",
873           "isPermitted": false
874         },
875         {
876           "id": "12",
877           "name": "VPMS",
878           "isPermitted": false
879         },
880         {
881           "id": "13",
882           "name": "vMMSC",
883           "isPermitted": false
884         },
885         {
886           "id": "14",
887           "name": "SSD",
888           "isPermitted": false
889         },
890         {
891           "id": "15",
892           "name": "vMOG",
893           "isPermitted": false
894         },
895         {
896           "id": "16",
897           "name": "LINDSEY",
898           "isPermitted": false
899         },
900         {
901           "id": "17",
902           "name": "JOHANNA_SANTOS",
903           "isPermitted": false
904         },
905         {
906           "id": "18",
907           "name": "vCarroll",
908           "isPermitted": false
909         }
910         ]
911     },
912     "aicZones": [
913       {
914         "id": "NFT1",
915         "name": "NFTJSSSS-NFT1"
916       },
917       {
918         "id": "JAG1",
919         "name": "YUDFJULP-JAG1"
920       },
921       {
922         "id": "YYY1",
923         "name": "UUUAIAAI-YYY1"
924       },
925       {
926         "id": "BAN1",
927         "name": "VSDKYUTP-BAN1"
928       },
929       {
930         "id": "DKJ1",
931         "name": "DKJSJDKA-DKJ1"
932       },
933       {
934         "id": "MCS1",
935         "name": "ASACMAMS-MCS1"
936       },
937       {
938         "id": "UIO1",
939         "name": "uioclli1-UIO1"
940       },
941       {
942         "id": "RAJ1",
943         "name": "YGBIJNLQ-RAJ1"
944       },
945       {
946         "id": "OPA1",
947         "name": "opaclli1-OPA1"
948       },
949       {
950         "id": "SDE1",
951         "name": "ZXCVBNMA-SDE1"
952       },
953       {
954         "id": "VEN2",
955         "name": "FGHJUHIL-VEN2"
956       },
957       {
958         "id": "ORL1",
959         "name": "ORLDFLMA-ORL1"
960       },
961       {
962         "id": "JAD1",
963         "name": "JADECLLI-JAD1"
964       },
965       {
966         "id": "ZXL1",
967         "name": "LWLWCANN-ZXL1"
968       },
969       {
970         "id": "CKL1",
971         "name": "CLKSKCKK-CKL1"
972       },
973       {
974         "id": "SDF1",
975         "name": "sdfclli1-SDF1"
976       },
977       {
978         "id": "RAD1",
979         "name": "RADICAL1-RAD1"
980       },
981       {
982         "id": "KIT1",
983         "name": "BHYJFGLN-KIT1"
984       },
985       {
986         "id": "REL1",
987         "name": "INGERFGT-REL1"
988       },
989       {
990         "id": "JNL1",
991         "name": "CJALSDAC-JNL1"
992       },
993       {
994         "id": "OLK1",
995         "name": "OLKOLKLS-OLK1"
996       },
997       {
998         "id": "CHI1",
999         "name": "CHILLIWE-CHI1"
1000       },
1001       {
1002         "id": "UUU4",
1003         "name": "UUUAAAUU-UUU4"
1004       },
1005       {
1006         "id": "TUF1",
1007         "name": "TUFCLLI1-TUF1"
1008       },
1009       {
1010         "id": "KJN1",
1011         "name": "CKALDKSA-KJN1"
1012       },
1013       {
1014         "id": "SAM1",
1015         "name": "SNDGCA64-SAN1"
1016       },
1017       {
1018         "id": "SCK1",
1019         "name": "SCKSCKSK-SCK1"
1020       },
1021       {
1022         "id": "HJH1",
1023         "name": "AOEEQQQD-HJH1"
1024       },
1025       {
1026         "id": "HGD1",
1027         "name": "SDFQWHGD-HGD1"
1028       },
1029       {
1030         "id": "KOR1",
1031         "name": "HYFLNBVT-KOR1"
1032       },
1033       {
1034         "id": "ATL43",
1035         "name": "AICLOCID-ATL43"
1036       },
1037       {
1038         "id": "ATL54",
1039         "name": "AICFTAAI-ATL54"
1040       },
1041       {
1042         "id": "ATL66",
1043         "name": "CLLIAAII-ATL66"
1044       },
1045       {
1046         "id": "VEL1",
1047         "name": "BNMLKUIK-VEL1"
1048       },
1049       {
1050         "id": "ICC1",
1051         "name": "SANJITAT-ICC1"
1052       },
1053       {
1054         "id": "MNT11",
1055         "name": "WSXEFBTH-MNT11"
1056       },
1057       {
1058         "id": "DEF2",
1059         "name": "WSBHGTYL-DEF2"
1060       },
1061       {
1062         "id": "MAD11",
1063         "name": "SDFQWGKL-MAD11"
1064       },
1065       {
1066         "id": "OLG1",
1067         "name": "OLHOLHOL-OLG1"
1068       },
1069       {
1070         "id": "GAR1",
1071         "name": "NGFVSJKO-GAR1"
1072       },
1073       {
1074         "id": "SAN22",
1075         "name": "GNVLSCTL-SAN22"
1076       },
1077       {
1078         "id": "HRG1",
1079         "name": "HRGHRGGS-HRG1"
1080       },
1081       {
1082         "id": "JCS1",
1083         "name": "JCSJSCJS-JCS1"
1084       },
1085       {
1086         "id": "DHA12",
1087         "name": "WSXEDECF-DHA12"
1088       },
1089       {
1090         "id": "HJE1",
1091         "name": "AOEEWWWD-HJE1"
1092       },
1093       {
1094         "id": "NCA1",
1095         "name": "NCANCANN-NCA1"
1096       },
1097       {
1098         "id": "IOP1",
1099         "name": "iopclli1-IOP1"
1100       },
1101       {
1102         "id": "RTY1",
1103         "name": "rtyclli1-RTY1"
1104       },
1105       {
1106         "id": "KAP1",
1107         "name": "HIOUYTRQ-KAP1"
1108       },
1109       {
1110         "id": "ZEN1",
1111         "name": "ZENCLLI1-ZEN1"
1112       },
1113       {
1114         "id": "HKA1",
1115         "name": "JAKHLASS-HKA1"
1116       },
1117       {
1118         "id": "CQK1",
1119         "name": "CQKSCAKK-CQK1"
1120       },
1121       {
1122         "id": "SAI1",
1123         "name": "UBEKQLPD-SAI1"
1124       },
1125       {
1126         "id": "ERT1",
1127         "name": "ertclli1-ERT1"
1128       },
1129       {
1130         "id": "IBB1",
1131         "name": "PLMKOIJU-IBB1"
1132       },
1133       {
1134         "id": "TIR2",
1135         "name": "PLKINHYI-TIR2"
1136       },
1137       {
1138         "id": "HSD1",
1139         "name": "CHASKCDS-HSD1"
1140       },
1141       {
1142         "id": "SLF78",
1143         "name": "SDCTLFN1-SLF78"
1144       },
1145       {
1146         "id": "SEE78",
1147         "name": "SDCTEEE4-SEE78"
1148       },
1149       {
1150         "id": "SAN13",
1151         "name": "TOKYJPFA-SAN13"
1152       },
1153       {
1154         "id": "SAA78",
1155         "name": "SDCTAAA1-SAA78"
1156       },
1157       {
1158         "id": "LUC1",
1159         "name": "ATLDFGYC-LUC1"
1160       },
1161       {
1162         "id": "AMD13",
1163         "name": "MEMATLAN-AMD13"
1164       },
1165       {
1166         "id": "TOR1",
1167         "name": "TOROONXN-TOR1"
1168       },
1169       {
1170         "id": "QWE1",
1171         "name": "QWECLLI1-QWE1"
1172       },
1173       {
1174         "id": "ZOG1",
1175         "name": "ZOGASTRO-ZOG1"
1176       },
1177       {
1178         "id": "CAL33",
1179         "name": "CALIFORN-CAL33"
1180       },
1181       {
1182         "id": "SHH78",
1183         "name": "SDIT1HHH-SHH78"
1184       },
1185       {
1186         "id": "DSA1",
1187         "name": "LKJHGFDS-DSA1"
1188       },
1189       {
1190         "id": "CLG1",
1191         "name": "CLGRABAD-CLG1"
1192       },
1193       {
1194         "id": "BNA1",
1195         "name": "BNARAGBK-BNA1"
1196       },
1197       {
1198         "id": "ATL84",
1199         "name": "CANTTCOC-ATL84"
1200       },
1201       {
1202         "id": "APP1",
1203         "name": "WBHGTYUI-APP1"
1204       },
1205       {
1206         "id": "RJN1",
1207         "name": "RJNRBZAW-RJN1"
1208       },
1209       {
1210         "id": "EHH78",
1211         "name": "SDCSHHH5-EHH78"
1212       },
1213       {
1214         "id": "mac10",
1215         "name": "PKGTESTF-mac10"
1216       },
1217       {
1218         "id": "SXB78",
1219         "name": "SDCTGXB1-SXB78"
1220       },
1221       {
1222         "id": "SAX78",
1223         "name": "SDCTAXG1-SAX78"
1224       },
1225       {
1226         "id": "SYD1",
1227         "name": "SYDNAUBV-SYD1"
1228       },
1229       {
1230         "id": "TOK1",
1231         "name": "TOKYJPFA-TOK1"
1232       },
1233       {
1234         "id": "KGM2",
1235         "name": "KGMTNC20-KGM2"
1236       },
1237       {
1238         "id": "DCC1b",
1239         "name": "POIUYTGH-DCC1b"
1240       },
1241       {
1242         "id": "SKK78",
1243         "name": "SDCTKKK1-SKK78"
1244       },
1245       {
1246         "id": "SGG78",
1247         "name": "SDCTGGG1-SGG78"
1248       },
1249       {
1250         "id": "SJJ78",
1251         "name": "SDCTJJJ1-SJJ78"
1252       },
1253       {
1254         "id": "SBX78",
1255         "name": "SDCTBXG1-SBX78"
1256       },
1257       {
1258         "id": "LAG1",
1259         "name": "LARGIZON-LAG1"
1260       },
1261       {
1262         "id": "IAA1",
1263         "name": "QAZXSWED-IAA1"
1264       },
1265       {
1266         "id": "POI1",
1267         "name": "PLMNJKIU-POI1"
1268       },
1269       {
1270         "id": "LAG1a",
1271         "name": "LARGIZON-LAG1a"
1272       },
1273       {
1274         "id": "PBL1",
1275         "name": "PBLAPBAI-PBL1"
1276       },
1277       {
1278         "id": "LAG45",
1279         "name": "LARGIZON-LAG1a"
1280       },
1281       {
1282         "id": "MAR1",
1283         "name": "MNBVCXZM-MAR1"
1284       },
1285       {
1286         "id": "HST70",
1287         "name": "HSTNTX70-HST70"
1288       },
1289       {
1290         "id": "DCC1a",
1291         "name": "POIUYTGH-DCC1a"
1292       },
1293       {
1294         "id": "TOL1",
1295         "name": "TOLDOH21-TOL1"
1296       },
1297       {
1298         "id": "LON1",
1299         "name": "LONEENCO-LON1"
1300       },
1301       {
1302         "id": "SJU78",
1303         "name": "SDIT1JUB-SJU78"
1304       },
1305       {
1306         "id": "STN27",
1307         "name": "HSTNTX01-STN27"
1308       },
1309       {
1310         "id": "SSW56",
1311         "name": "ss8126GT-SSW56"
1312       },
1313       {
1314         "id": "SBB78",
1315         "name": "SDIT1BBB-SBB78"
1316       },
1317       {
1318         "id": "DCC3",
1319         "name": "POIUYTGH-DCC3"
1320       },
1321       {
1322         "id": "GNV1",
1323         "name": "GNVLSCTL-GNV1"
1324       },
1325       {
1326         "id": "WAS1",
1327         "name": "WASHDCSW-WAS1"
1328       },
1329       {
1330         "id": "TOY1",
1331         "name": "TORYONNZ-TOY1"
1332       },
1333       {
1334         "id": "STT1",
1335         "name": "STTLWA02-STT1"
1336       },
1337       {
1338         "id": "STG1",
1339         "name": "STTGGE62-STG1"
1340       },
1341       {
1342         "id": "SLL78",
1343         "name": "SDCTLLL1-SLL78"
1344       },
1345       {
1346         "id": "SBU78",
1347         "name": "SDIT1BUB-SBU78"
1348       },
1349       {
1350         "id": "ATL2",
1351         "name": "ATLNGANW-ATL2"
1352       },
1353       {
1354         "id": "BOT1",
1355         "name": "BOTHWAKY-BOT1"
1356       },
1357       {
1358         "id": "SNG1",
1359         "name": "SNGPSIAU-SNG1"
1360       },
1361       {
1362         "id": "NYC1",
1363         "name": "NYCMNY54-NYC1"
1364       },
1365       {
1366         "id": "LAG1b",
1367         "name": "LARGIZON-LAG1b"
1368       },
1369       {
1370         "id": "AMD15",
1371         "name": "AMDFAA01-AMD15"
1372       },
1373       {
1374         "id": "SNA1",
1375         "name": "SNANTXCA-SNA1"
1376       },
1377       {
1378         "id": "PLT1",
1379         "name": "PLTNCA60-PLT1"
1380       },
1381       {
1382         "id": "TLP1",
1383         "name": "TLPNXM18-TLP1"
1384       },
1385       {
1386         "id": "SDD81",
1387         "name": "SAIT1DD6-SDD81"
1388       },
1389       {
1390         "id": "DCC1",
1391         "name": "POIUYTGH-DCC1"
1392       },
1393       {
1394         "id": "DCC2",
1395         "name": "POIUYTGH-DCC2"
1396       },
1397       {
1398         "id": "OKC1",
1399         "name": "OKCBOK55-OKC1"
1400       },
1401       {
1402         "id": "PAR1",
1403         "name": "PARSFRCG-PAR1"
1404       },
1405       {
1406         "id": "TES36",
1407         "name": "ABCEETES-TES36"
1408       },
1409       {
1410         "id": "COM1",
1411         "name": "PLMKOPIU-COM1"
1412       },
1413       {
1414         "id": "ANI1",
1415         "name": "ATLNGTRE-ANI1"
1416       },
1417       {
1418         "id": "SDG78",
1419         "name": "SDIT1BDG-SDG78"
1420       },
1421       {
1422         "id": "mac20",
1423         "name": "PKGTESTF-mac20"
1424       },
1425       {
1426         "id": "DSF45",
1427         "name": "DSFBG123-DSF45"
1428       },
1429       {
1430         "id": "HST25",
1431         "name": "HSTNTX01-HST25"
1432       },
1433       {
1434         "id": "AMD18",
1435         "name": "AUDIMA01-AMD18"
1436       },
1437       {
1438         "id": "SAA80",
1439         "name": "SAIT9AA3-SAA80"
1440       },
1441       {
1442         "id": "SSA56",
1443         "name": "SSIT2AA7-SSA56"
1444       },
1445       {
1446         "id": "SDD82",
1447         "name": "SAIT1DD9-SDD82"
1448       },
1449       {
1450         "id": "JCV1",
1451         "name": "JCVLFLBW-JCV1"
1452       },
1453       {
1454         "id": "SUL2",
1455         "name": "WERTYUJK-SUL2"
1456       },
1457       {
1458         "id": "PUR1",
1459         "name": "purelyde-PUR1"
1460       },
1461       {
1462         "id": "FDE55",
1463         "name": "FDERT555-FDE55"
1464       },
1465       {
1466         "id": "SITE",
1467         "name": "LONEENCO-SITE"
1468       },
1469       {
1470         "id": "ATL1",
1471         "name": "ATLNGAMA-ATL1"
1472       },
1473       {
1474         "id": "JUL1",
1475         "name": "ZXCVBNMM-JUL1"
1476       },
1477       {
1478         "id": "TAT34",
1479         "name": "TESAAISB-TAT34"
1480       },
1481       {
1482         "id": "XCP12",
1483         "name": "CHKGH123-XCP12"
1484       },
1485       {
1486         "id": "RAI1",
1487         "name": "poiuytre-RAI1"
1488       },
1489       {
1490         "id": "HPO1",
1491         "name": "ATLNGAUP-HPO1"
1492       },
1493       {
1494         "id": "KJF12",
1495         "name": "KJFDH123-KJF12"
1496       },
1497       {
1498         "id": "SCC80",
1499         "name": "SAIT9CC3-SCC80"
1500       },
1501       {
1502         "id": "SAA12",
1503         "name": "SAIT9AF8-SAA12"
1504       },
1505       {
1506         "id": "SAA14",
1507         "name": "SAIT1AA9-SAA14"
1508       },
1509       {
1510         "id": "ATL35",
1511         "name": "TTESSAAI-ATL35"
1512       },
1513       {
1514         "id": "CWY1",
1515         "name": "CWYMOWBS-CWY1"
1516       },
1517       {
1518         "id": "ATL76",
1519         "name": "TELEPAAI-ATL76"
1520       },
1521       {
1522         "id": "DSL12",
1523         "name": "DSLFK242-DSL12"
1524       },
1525       {
1526         "id": "ATL53",
1527         "name": "AAIATLTE-ATL53"
1528       },
1529       {
1530         "id": "SAA11",
1531         "name": "SAIT9AA2-SAA11"
1532       },
1533       {
1534         "id": "ATL62",
1535         "name": "TESSASCH-ATL62"
1536       },
1537       {
1538         "id": "AUG1",
1539         "name": "ASDFGHJK-AUG1"
1540       },
1541       {
1542         "id": "POI22",
1543         "name": "POIUY123-POI22"
1544       },
1545       {
1546         "id": "SAA13",
1547         "name": "SAIT1AA9-SAA13"
1548       },
1549       {
1550         "id": "BHY17",
1551         "name": "BHYTFRF3-BHY17"
1552       },
1553       {
1554         "id": "LIS1",
1555         "name": "HOSTPROF-LIS1"
1556       },
1557       {
1558         "id": "SIP1",
1559         "name": "ZXCVBNMK-SIP1"
1560       },
1561       {
1562         "id": "ATL99",
1563         "name": "TEESTAAI-ATL43"
1564       },
1565       {
1566         "id": "ATL64",
1567         "name": "FORLOAAJ-ATL64"
1568       },
1569       {
1570         "id": "TAT33",
1571         "name": "TESAAISA-TAT33"
1572       },
1573       {
1574         "id": "RAD10",
1575         "name": "INDIPUNE-RAD10"
1576       },
1577       {
1578         "id": "RTW5",
1579         "name": "BHYTFRY4-RTW5"
1580       },
1581       {
1582         "id": "JGS1",
1583         "name": "KSJKKKKK-JGS1"
1584       },
1585       {
1586         "id": "ATL98",
1587         "name": "TEESTAAI-ATL43"
1588       },
1589       {
1590         "id": "WAN1",
1591         "name": "LEIWANGW-WAN1"
1592       },
1593       {
1594         "id": "ATL44",
1595         "name": "ATLSANAB-ATL44"
1596       },
1597       {
1598         "id": "RTD2",
1599         "name": "BHYTFRk4-RTD2"
1600       },
1601       {
1602         "id": "NIR1",
1603         "name": "ORFLMANA-NIR1"
1604       },
1605       {
1606         "id": "ATL75",
1607         "name": "SANAAIRE-ATL75"
1608       },
1609       {
1610         "id": "NUM1",
1611         "name": "QWERTYUI-NUM1"
1612       },
1613       {
1614         "id": "MTN32",
1615         "name": "MDTWNJ21-MTN32"
1616       },
1617       {
1618         "id": "RTZ4",
1619         "name": "BHYTFRZ6-RTZ4"
1620       },
1621       {
1622         "id": "ATL56",
1623         "name": "ATLSANAC-ATL56"
1624       },
1625       {
1626         "id": "AMS1",
1627         "name": "AMSTNLBW-AMS1"
1628       },
1629       {
1630         "id": "RCT1",
1631         "name": "AMSTERNL-RCT1"
1632       },
1633       {
1634         "id": "JAN1",
1635         "name": "ORFLMATT-JAN1"
1636       },
1637       {
1638         "id": "ABC14",
1639         "name": "TESAAISA-ABC14"
1640       },
1641       {
1642         "id": "TAT37",
1643         "name": "TESAAISD-TAT37"
1644       },
1645       {
1646         "id": "MIC54",
1647         "name": "MICHIGAN-MIC54"
1648       },
1649       {
1650         "id": "ABC11",
1651         "name": "ATLSANAI-ABC11"
1652       },
1653       {
1654         "id": "AMF11",
1655         "name": "AMDOCS01-AMF11"
1656       },
1657       {
1658         "id": "ATL63",
1659         "name": "ATLSANEW-ATL63"
1660       },
1661       {
1662         "id": "ABC12",
1663         "name": "ATLSECIA-ABC12"
1664       },
1665       {
1666         "id": "MTN20",
1667         "name": "MDTWNJ21-MTN20"
1668       },
1669       {
1670         "id": "ABC15",
1671         "name": "AAITESAN-ABC15"
1672       },
1673       {
1674         "id": "AVT1",
1675         "name": "AVTRFLHD-AVT1"
1676       },
1677       {
1678         "id": "ATL34",
1679         "name": "ATLSANAI-ATL34"
1680       }
1681       ],
1682     "categoryParameters": {
1683       "owningEntityList": [
1684         {
1685           "id": "aaa1",
1686           "name": "aaa1"
1687         },
1688         {
1689           "id": "d61e6f2d-12fa-4cc2-91df-7c244011d6fc",
1690           "name": "WayneHolland"
1691         },
1692         {
1693           "id": "Melissa",
1694           "name": "Melissa"
1695         }
1696         ],
1697       "projectList": [
1698         {
1699           "id": "WATKINS",
1700           "name": "WATKINS"
1701         },
1702         {
1703           "id": "x1",
1704           "name": "x1"
1705         },
1706         {
1707           "id": "yyy1",
1708           "name": "yyy1"
1709         }
1710         ],
1711       "lineOfBusinessList": [
1712         {
1713           "id": "ONAP",
1714           "name": "ONAP"
1715         },
1716         {
1717           "id": "zzz1",
1718           "name": "zzz1"
1719         }
1720         ],
1721       "platformList": [
1722         {
1723           "id": "platform",
1724           "name": "platform"
1725         },
1726         {
1727           "id": "xxx1",
1728           "name": "xxx1"
1729         }
1730         ]
1731     },
1732     "type": "[LCP_REGIONS_AND_TENANTS] Update",
1733     "subscribers": [
1734       {
1735         "id": "CAR_2020_ER",
1736         "name": "CAR_2020_ER",
1737         "isPermitted": true
1738       },
1739       {
1740         "id": "21014aa2-526b-11e6-beb8-9e71128cae77",
1741         "name": "JULIO ERICKSON",
1742         "isPermitted": false
1743       },
1744       {
1745         "id": "DHV1707-TestSubscriber-2",
1746         "name": "DALE BRIDGES",
1747         "isPermitted": false
1748       },
1749       {
1750         "id": "DHV1707-TestSubscriber-1",
1751         "name": "LLOYD BRIDGES",
1752         "isPermitted": false
1753       },
1754       {
1755         "id": "jimmy-example",
1756         "name": "JimmyExampleCust-20161102",
1757         "isPermitted": false
1758       },
1759       {
1760         "id": "jimmy-example2",
1761         "name": "JimmyExampleCust-20161103",
1762         "isPermitted": false
1763       },
1764       {
1765         "id": "ERICA5779-TestSub-PWT-102",
1766         "name": "ERICA5779-TestSub-PWT-102",
1767         "isPermitted": false
1768       },
1769       {
1770         "id": "ERICA5779-TestSub-PWT-101",
1771         "name": "ERICA5779-TestSub-PWT-101",
1772         "isPermitted": false
1773       },
1774       {
1775         "id": "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb",
1776         "name": "Emanuel",
1777         "isPermitted": false
1778       },
1779       {
1780         "id": "ERICA5779-Subscriber-4",
1781         "name": "ERICA5779-Subscriber-5",
1782         "isPermitted": false
1783       },
1784       {
1785         "id": "ERICA5779-TestSub-PWT-103",
1786         "name": "ERICA5779-TestSub-PWT-103",
1787         "isPermitted": false
1788       },
1789       {
1790         "id": "ERICA5779-Subscriber-2",
1791         "name": "ERICA5779-Subscriber-2",
1792         "isPermitted": false
1793       },
1794       {
1795         "id": "e433710f-9217-458d-a79d-1c7aff376d89",
1796         "name": "SILVIA ROBBINS",
1797         "isPermitted": true
1798       },
1799       {
1800         "id": "ERICA5779-Subscriber-3",
1801         "name": "ERICA5779-Subscriber-3",
1802         "isPermitted": false
1803       },
1804       {
1805         "id": "31739f3e-526b-11e6-beb8-9e71128cae77",
1806         "name": "CRAIG/ROBERTS",
1807         "isPermitted": false
1808       }
1809       ]
1810   }
1811 }
1812 }
1813 }
1814
1815 class MockFeatureFlagsService {}
1816
1817 describe('Network Control Generator', () => {
1818   let injector;
1819   let service: NetworkControlGenerator;
1820   let httpMock: HttpTestingController;
1821
1822   beforeEach(() => {
1823     TestBed.configureTestingModule({
1824       imports: [HttpClientTestingModule],
1825       providers: [NetworkControlGenerator,
1826         GenericFormService,
1827         BasicControlGenerator,
1828         AaiService,
1829         FormBuilder,
1830         LogService,
1831         {provide:FeatureFlagsService, useClass: MockFeatureFlagsService},
1832         {provide: NgRedux, useClass: MockAppStore}]
1833     });
1834
1835     injector = getTestBed();
1836     service = injector.get(NetworkControlGenerator);
1837     httpMock = injector.get(HttpTestingController);
1838   });
1839
1840   test('getMacroFormControls check for mandatory controls', () => {
1841     const serviceId : string = "6e59c5de-f052-46fa-aa7e-2fca9d674c44";
1842     const networkName : string = "ExtVL 0";
1843     const networkStoreKey : string = "ExtVL 0";
1844     const controls :FormControlModel[] = service.getMacroFormControls(serviceId, networkStoreKey, networkName, false);
1845
1846     const mandatoryControls : string[] = [
1847       FormControlNames.LCPCLOUD_REGION_ID,
1848       'tenantId',
1849       'platformName'
1850     ];
1851     for(let i = 0 ; i < mandatoryControls.length ; i++){
1852       let requiredExist = controls.find(ctrl => ctrl.controlName === mandatoryControls[i]).validations.find(item => item.validatorName === 'required');
1853       expect(requiredExist).toBeDefined();
1854     }
1855   });
1856
1857
1858   test('getMacroFormControls should return instance name if isEcompName is true', () => {
1859     const serviceId : string = "6e59c5de-f052-46fa-aa7e-2fca9d674c44";
1860     const networkName : string = "ExtVL 1";
1861     const networkStoreKey : string = "ExtVL 1";
1862     const controls :FormControlModel[] = service.getMacroFormControls(serviceId, networkStoreKey, networkName, false);
1863
1864     const controlsOrderNames = [
1865       FormControlNames.INSTANCE_NAME,
1866       FormControlNames.PRODUCT_FAMILY_ID,
1867       FormControlNames.LCPCLOUD_REGION_ID ,
1868       'legacyRegion',
1869       'tenantId',
1870       'platformName',
1871       'lineOfBusiness'];
1872
1873
1874
1875     expect(controls.length).toEqual(7);
1876     for(let i = 0 ; i < controls.length ; i++){
1877       expect(controls[i].controlName).toEqual(controlsOrderNames[i]);
1878     }
1879   });
1880
1881   test('getMacroFormControls should return the correct order of controls', () => {
1882     const serviceId : string = "6e59c5de-f052-46fa-aa7e-2fca9d674c44";
1883     const networkName : string = "ExtVL 0";
1884     const networkStoreKey : string = "ExtVL 0";
1885     const controls :FormControlModel[] = service.getMacroFormControls(serviceId, networkStoreKey, networkName, false);
1886
1887     const controlsOrderNames = [
1888       FormControlNames.INSTANCE_NAME,
1889       FormControlNames.PRODUCT_FAMILY_ID,
1890       FormControlNames.LCPCLOUD_REGION_ID ,
1891       'legacyRegion',
1892       'tenantId',
1893       'platformName',
1894       'lineOfBusiness'];
1895
1896
1897
1898     expect(controls.length).toEqual(7);
1899     for(let i = 0 ; i < controls.length ; i++){
1900       expect(controls[i].controlName).toEqual(controlsOrderNames[i]);
1901     }
1902   });
1903
1904   test('getMacroFormControls should not return the rollback status', () => {
1905     const serviceId : string = "6e59c5de-f052-46fa-aa7e-2fca9d674c44";
1906     const networkName : string = "ExtVL 0";
1907     const networkStoreKey : string = "ExtVL 0";
1908     const controls :FormControlModel[] = service.getMacroFormControls(serviceId, networkStoreKey, networkName, false);
1909
1910     const controlsOrderNames = [
1911       FormControlNames.INSTANCE_NAME,
1912       FormControlNames.PRODUCT_FAMILY_ID,
1913       FormControlNames.LCPCLOUD_REGION_ID ,
1914       'legacyRegion',
1915       'tenantId',
1916       'platformName',
1917       'lineOfBusiness',
1918       FormControlNames.ROLLBACK_ON_FAILURE
1919     ];
1920
1921
1922
1923     expect(controls.length).toEqual(7);
1924     for(let i = 0 ; i < controls.length ; i++){
1925       expect(controls[i].controlName).toEqual(controlsOrderNames[i]);
1926     }
1927   });
1928
1929   test('getAlacartFormControls should return the correct order of controls', () => {
1930     const controls:FormControlModel[] = getAlaCarteFormControls();
1931
1932     const controlsOrderNames = [
1933       FormControlNames.INSTANCE_NAME,
1934       FormControlNames.PRODUCT_FAMILY_ID,
1935       FormControlNames.LCPCLOUD_REGION_ID,
1936       'legacyRegion',
1937       'tenantId',
1938       'platformName',
1939       'lineOfBusiness',
1940       'rollbackOnFailure'];
1941     expect(controls.length).toEqual(8);
1942     for(let i = 0 ; i < controls.length ; i++) {
1943       expect(controls[i].controlName).toEqual(controlsOrderNames[i]);
1944     }
1945   });
1946
1947   function getAlaCarteFormControls(): FormControlModel[] {
1948     const serviceId: string = "6e59c5de-f052-46fa-aa7e-2fca9d674c44";
1949     const networkName: string = "ExtVL 0";
1950     const networkStoreKey: string = "ExtVL 0";
1951     const controls: FormControlModel[] = service.getAlaCarteFormControls(serviceId, networkStoreKey, networkName, false);
1952     return controls;
1953   }
1954
1955   test('getAlacartFormControls instance name control validator shall have the expected regex', () => {
1956     const controls:FormControlModel[] = getAlaCarteFormControls();
1957
1958     const instanceNameControl: FormControlModel = <FormControlModel>controls.find(item => item.controlName === FormControlNames.INSTANCE_NAME);
1959     const instanceNameValidator: ValidatorModel = instanceNameControl.validations.find(val => val.validatorName === ValidatorOptions.pattern);
1960     expect(instanceNameValidator.validatorArg).toEqual(/^[a-zA-Z0-9._-]*$/);
1961   });
1962
1963   test('getAlacartFormControls check for mandatory controls', () => {
1964     const controls:FormControlModel[] = getAlaCarteFormControls();
1965
1966     const mandatoryControls : string[] = [
1967       FormControlNames.INSTANCE_NAME,
1968       FormControlNames.LCPCLOUD_REGION_ID,
1969       'tenantId',
1970       'platformName',
1971       'rollbackOnFailure'
1972     ];
1973     for(let i = 0 ; i < mandatoryControls.length ; i++){
1974       let requiredExist = controls.find(ctrl => ctrl.controlName === mandatoryControls[i]).validations.find(item => item.validatorName === 'required');
1975       expect(requiredExist).toBeDefined();
1976     }
1977   });
1978 });
1979