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