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