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