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