connectivity attachment issue fix
[sdnc/oam.git] / platform-logic / generic-resource-api / src / main / json / GENERIC-RESOURCE-API_sotn-attachment-topology-operation-create.json
1 [
2   {
3     "id": "e1802764.010338",
4     "type": "dgstart",
5     "name": "DGSTART",
6     "outputs": 1,
7     "x": 75.00390625,
8     "y": 55.999998688697815,
9     "z": "2de7bdd3.0e47b2",
10     "wires": [
11       [
12         "cfe32243.1a54"
13       ]
14     ]
15   },
16   {
17     "id": "cfe32243.1a54",
18     "type": "service-logic",
19     "name": "GENERIC-RESOURCE-API ${project.version}",
20     "module": "GENERIC-RESOURCE-API",
21     "version": "${project.version}",
22     "comments": "",
23     "xml": "<service-logic xmlns='http://www.onap.org/sdnc/svclogic' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.onap.org/sdnc/svclogic ./svclogic.xsd' module='GENERIC-RESOURCE-API' version='${project.version}'>",
24     "outputs": 1,
25     "x": 287.00391006469727,
26     "y": 128.0000158548355,
27     "z": "2de7bdd3.0e47b2",
28     "wires": [
29       [
30         "f32ba3f6.6902c"
31       ]
32     ]
33   },
34   {
35     "id": "f32ba3f6.6902c",
36     "type": "method",
37     "name": "sotn-attachment-topology-operation-create",
38     "xml": "<method rpc='sotn-attachment-topology-operation-create' mode='sync'>\n",
39     "comments": "",
40     "outputs": 1,
41     "x": 275.0040283203125,
42     "y": 215.99999868869781,
43     "z": "2de7bdd3.0e47b2",
44     "wires": [
45       [
46         "7c54b5b2.a3083c"
47       ]
48     ]
49   },
50   {
51     "id": "7c54b5b2.a3083c",
52     "type": "block",
53     "name": "block : atomic",
54     "xml": "<block atomic=\"true\">\n",
55     "atomic": "false",
56     "comments": "",
57     "outputs": 1,
58     "x": 195.00395965576172,
59     "y": 965.0002466440201,
60     "z": "2de7bdd3.0e47b2",
61     "wires": [
62       [
63         "3de219b6.a5b006",
64         "2c7c8b4.5796074",
65         "9525b61d.f44608",
66         "45124265.84320c",
67         "3e0bbdc4.8ce3d2",
68         "efb9af7d.38a8c",
69         "67a07981.adb6b8",
70         "238da366.150bec",
71         "482be69b.e1e678",
72         "9c36769e.3b9b78",
73         "1db7126.81503ee",
74         "279f61dd.0cdaee",
75         "b18196af.f3d2c8",
76         "d586facb.6928c8",
77         "83c4b03a.da76",
78         "aeb52a03.a21508",
79         "d0d20150.466f4",
80         "3704681e.a28308",
81         "d25d451e.0f6438",
82         "54b45ac5.3b96f4",
83         "6f9dfa46.6d74e4",
84         "5a5883b8.a68a6c",
85         "d769ff10.bfeae"
86       ]
87     ]
88   },
89   {
90     "id": "d194eb73.9913d8",
91     "type": "comment",
92     "name": "Set allotted resource id if not sent by SO",
93     "info": "",
94     "comments": "",
95     "x": 679.0806579589844,
96     "y": 125.43391764163971,
97     "z": "2de7bdd3.0e47b2",
98     "wires": []
99   },
100   {
101     "id": "3de219b6.a5b006",
102     "type": "switchNode",
103     "name": "switch allotted-resource-id",
104     "xml": "<switch test='`$connection-attachment-topology-operation-input.allotted-resource-information.allotted-resource-id`'>\n",
105     "comments": "",
106     "outputs": 1,
107     "x": 625.0039367675781,
108     "y": 180.99999105930328,
109     "z": "2de7bdd3.0e47b2",
110     "wires": [
111       [
112         "c41cb638.52f6f8",
113         "e38afa57.231908"
114       ]
115     ]
116   },
117   {
118     "id": "c41cb638.52f6f8",
119     "type": "outcome",
120     "name": "NULL",
121     "xml": "<outcome value=''>",
122     "comments": "",
123     "outputs": 1,
124     "x": 823.0040245056152,
125     "y": 150.9999796152115,
126     "z": "2de7bdd3.0e47b2",
127     "wires": [
128       [
129         "1f1d00d8.31b19f"
130       ]
131     ]
132   },
133   {
134     "id": "e38afa57.231908",
135     "type": "other",
136     "name": "other",
137     "xml": "<outcome value='Other'>\n",
138     "comments": "",
139     "outputs": 1,
140     "x": 822.0039329528809,
141     "y": 187.99999010562897,
142     "z": "2de7bdd3.0e47b2",
143     "wires": [
144       [
145         "3ee7f443.e400dc"
146       ]
147     ]
148   },
149   {
150     "id": "3ee7f443.e400dc",
151     "type": "set",
152     "name": "set tmp.ar.allotted-resource-id",
153     "xml": "<set>\n<parameter name='tmp.ar.allotted-resource-id' value='`$connection-attachment-topology-operation-input.allotted-resource-information.allotted-resource-id`' />\n",
154     "comments": "",
155     "x": 1020.0039215087891,
156     "y": 185.0000091791153,
157     "z": "2de7bdd3.0e47b2",
158     "wires": []
159   },
160   {
161     "id": "2c7c8b4.5796074",
162     "type": "set",
163     "name": "set tmp.ar.self-link",
164     "xml": "<set>\n<parameter name='tmp.ar.self-link' value=\"`'restconf/config/GENERIC-RESOURCE-API:connection-attachment-allotted-resources/connection-attachment-allotted-resource/'\n + $tmp.ar.allotted-resource-id\n + '/allotted-resource-data/connection-attachment-topology/'` \" />\n\n",
165     "comments": "",
166     "x": 593.0038604736328,
167     "y": 402.0000978708267,
168     "z": "2de7bdd3.0e47b2",
169     "wires": []
170   },
171   {
172     "id": "9525b61d.f44608",
173     "type": "execute",
174     "name": "execute Properties",
175     "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.prop.PropertiesNode' method='readProperties' >\n    <parameter name='fileName' value='%SDNC_CONFIG_DIR%/generic-resource-api-dg.properties' />\n    <parameter name='contextPrefix' value='prop' />\n",
176     "comments": "",
177     "outputs": 1,
178     "x": 593.2657775878906,
179     "y": 483.6667791604996,
180     "z": "2de7bdd3.0e47b2",
181     "wires": [
182       []
183     ]
184   },
185   {
186     "id": "45124265.84320c",
187     "type": "execute",
188     "name": "generate allotted-resource tmp.ar-url",
189     "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$prop.restapi.connection-attachment-allottedresource`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.ar-url\"/>\n    <parameter name=\"target\" value=\"{allotted-resource-id}\"/>\n    <parameter name=\"replacement\" value=\"`$tmp.ar.allotted-resource-id`\"/>\n",
190     "comments": "",
191     "outputs": 1,
192     "x": 646.2658386230469,
193     "y": 570.6666971445084,
194     "z": "2de7bdd3.0e47b2",
195     "wires": [
196       []
197     ]
198   },
199   {
200     "id": "1f1d00d8.31b19f",
201     "type": "execute",
202     "name": "execute tmp.ar.allotted-resource-id",
203     "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='generateUUID' >\n<parameter name=\"ctx-destination\" value=\"tmp.ar.allotted-resource-id\"/>\n",
204     "comments": "",
205     "outputs": 1,
206     "x": 1038.0040016174316,
207     "y": 151.99998533725739,
208     "z": "2de7bdd3.0e47b2",
209     "wires": [
210       [
211         "febe994.1667068"
212       ]
213     ]
214   },
215   {
216     "id": "febe994.1667068",
217     "type": "failure",
218     "name": "failure",
219     "xml": "<outcome value='failure'>\n",
220     "comments": "",
221     "outputs": 1,
222     "x": 1256.0040435791016,
223     "y": 151.99994909763336,
224     "z": "2de7bdd3.0e47b2",
225     "wires": [
226       [
227         "39c9fb3d.bda924"
228       ]
229     ]
230   },
231   {
232     "id": "39c9fb3d.bda924",
233     "type": "returnFailure",
234     "name": "return failure",
235     "xml": "<return status='failure'>\n<parameter name='error-code' value='' />\n<parameter name='error-message' value=\"An error occured while generation allotted resource ID\" />\n",
236     "comments": "",
237     "x": 1422.0039978027344,
238     "y": 151.9999634027481,
239     "z": "2de7bdd3.0e47b2",
240     "wires": []
241   },
242   {
243     "id": "a969345.5e133c8",
244     "type": "success",
245     "name": "success",
246     "xml": "<outcome value='success'>\n",
247     "comments": "",
248     "outputs": 1,
249     "x": 1152.0041370391846,
250     "y": 642.7778698205948,
251     "z": "2de7bdd3.0e47b2",
252     "wires": [
253       [
254         "d1ab386a.e79358"
255       ]
256     ]
257   },
258   {
259     "id": "50f962fe.84264c",
260     "type": "returnFailure",
261     "name": "return failure",
262     "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error: Existing connection attachment allotted resource\" />\n    \n",
263     "comments": "",
264     "x": 1885.5225162506104,
265     "y": 643.8439413309097,
266     "z": "2de7bdd3.0e47b2",
267     "wires": []
268   },
269   {
270     "id": "a49d5ad5.f5a9d8",
271     "type": "comment",
272     "name": "Check for non existence of allotted resource",
273     "info": "",
274     "comments": "",
275     "x": 1008.0040588378906,
276     "y": 576.7779365777969,
277     "z": "2de7bdd3.0e47b2",
278     "wires": []
279   },
280   {
281     "id": "d5f1890a.be37b8",
282     "type": "for",
283     "name": "for cidx..service-data.consumed-allotted-resources.consumed-allotted-resource[]",
284     "xml": "<for index='cidx' start='0' end='`$service-data.consumed-allotted-resources.consumed-allotted-resource_length`' >\n",
285     "comments": "",
286     "outputs": 1,
287     "x": 1528.6706047058105,
288     "y": 787.000048995018,
289     "z": "2de7bdd3.0e47b2",
290     "wires": [
291       [
292         "f2c143a3.1f8e7"
293       ]
294     ]
295   },
296   {
297     "id": "efb9af7d.38a8c",
298     "type": "switchNode",
299     "name": "switch service-data.consumed-allotted-resources_length",
300     "xml": "<switch test='`$service-data.consumed-allotted-resources.consumed-allotted-resource_length`'>\n",
301     "comments": "",
302     "outputs": 1,
303     "x": 710.6699295043945,
304     "y": 763.7140814065933,
305     "z": "2de7bdd3.0e47b2",
306     "wires": [
307       [
308         "82a04eb.e5042b",
309         "c28a32d1.b979"
310       ]
311     ]
312   },
313   {
314     "id": "82a04eb.e5042b",
315     "type": "other",
316     "name": "outcome Null",
317     "xml": "<outcome value=''>\n",
318     "comments": "",
319     "outputs": 1,
320     "x": 1014.8128280639648,
321     "y": 732.5715185403824,
322     "z": "2de7bdd3.0e47b2",
323     "wires": [
324       [
325         "9ed3f44e.0ef248"
326       ]
327     ]
328   },
329   {
330     "id": "c28a32d1.b979",
331     "type": "other",
332     "name": "other",
333     "xml": "<outcome value='Other'>\n",
334     "comments": "",
335     "outputs": 1,
336     "x": 991.8128776550293,
337     "y": 793.5714737176895,
338     "z": "2de7bdd3.0e47b2",
339     "wires": [
340       [
341         "7748cb78.c02984"
342       ]
343     ]
344   },
345   {
346     "id": "7748cb78.c02984",
347     "type": "block",
348     "name": "block : atomic",
349     "xml": "<block atomic=\"true\">",
350     "atomic": "true",
351     "outputs": 1,
352     "x": 1151.9399681091309,
353     "y": 791.6974502801895,
354     "z": "2de7bdd3.0e47b2",
355     "wires": [
356       [
357         "d5f1890a.be37b8",
358         "6c68e940.a09698",
359         "9bbf5449.409148"
360       ]
361     ]
362   },
363   {
364     "id": "9ed3f44e.0ef248",
365     "type": "set",
366     "name": "set cidx",
367     "xml": "<set>\n<parameter name='tmp.cidx' value=\"`0`\" />\n<parameter name='service-data.consumed-allotted-resources.consumed-allotted-resource_length' value=\"1\" />\n\n\n",
368     "comments": "",
369     "x": 1164.6698112487793,
370     "y": 730.2855688333511,
371     "z": "2de7bdd3.0e47b2",
372     "wires": []
373   },
374   {
375     "id": "67a07981.adb6b8",
376     "type": "set",
377     "name": "set consumed allotted resources",
378     "xml": "<set>\n<parameter name='service-data.consumed-allotted-resources.consumed-allotted-resource[$tmp.cidx].allotted-resource-id' value=\"`$tmp.ar.allotted-resource-id` \" />\n<parameter name='service-data.consumed-allotted-resources.consumed-allotted-resource[$tmp.cidx].allotted-resource-type' value=\"`$connection-attachment-topology-operation-input.allotted-resource-information.allotted-resource-type` \" />\n<parameter name='service-data.consumed-allotted-resources.consumed-allotted-resource[$tmp.cidx].allotted-resource-pointer' value=\"`$tmp.ar.self-link` \" />\n<parameter name='service-data.consumed-allotted-resources.consumed-allotted-resource_length' value='`$tmp.cidx + 1`' />\n\n",
379     "comments": "",
380     "x": 639.5272216796875,
381     "y": 867.2856460809708,
382     "z": "2de7bdd3.0e47b2",
383     "wires": []
384   },
385   {
386     "id": "6c68e940.a09698",
387     "type": "switchNode",
388     "name": "switch tmp.found-cidx",
389     "xml": "<switch test='`$tmp.found-cidx`'>\n",
390     "comments": "",
391     "outputs": 1,
392     "x": 1341.0550155639648,
393     "y": 823.7089730501175,
394     "z": "2de7bdd3.0e47b2",
395     "wires": [
396       [
397         "e6bed7c6.008fc8"
398       ]
399     ]
400   },
401   {
402     "id": "e6bed7c6.008fc8",
403     "type": "outcomeTrue",
404     "name": "false",
405     "xml": "<outcome value='false'>\n",
406     "comments": "",
407     "outputs": 1,
408     "x": 1531.0549697875977,
409     "y": 823.7089101076126,
410     "z": "2de7bdd3.0e47b2",
411     "wires": [
412       [
413         "c94cbc62.004a2"
414       ]
415     ]
416   },
417   {
418     "id": "c94cbc62.004a2",
419     "type": "block",
420     "name": "block : atomic",
421     "xml": "<block atomic=\"true\">",
422     "atomic": "true",
423     "outputs": 1,
424     "x": 1697.0549697875977,
425     "y": 823.7089101076126,
426     "z": "2de7bdd3.0e47b2",
427     "wires": [
428       [
429         "f71f33c4.6780f"
430       ]
431     ]
432   },
433   {
434     "id": "f2c143a3.1f8e7",
435     "type": "switchNode",
436     "name": "switch allotted-resource-id",
437     "xml": "<switch test=\"`$service-data.consumed-allotted-resources.consumed-allotted-resource[$cidx].allotted-resource-id == $tmp.ar.allotted-resource-id`\">\n\n",
438     "comments": "",
439     "outputs": 1,
440     "x": 1945.7822341918945,
441     "y": 784.0000759363174,
442     "z": "2de7bdd3.0e47b2",
443     "wires": [
444       [
445         "22afa8c.31c5058"
446       ]
447     ]
448   },
449   {
450     "id": "22afa8c.31c5058",
451     "type": "outcomeTrue",
452     "name": "true",
453     "xml": "<outcome value='true'>\n",
454     "comments": "",
455     "outputs": 1,
456     "x": 2127.591808319092,
457     "y": 784.4645229578018,
458     "z": "2de7bdd3.0e47b2",
459     "wires": [
460       [
461         "349f45ed.6a61aa"
462       ]
463     ]
464   },
465   {
466     "id": "f71f33c4.6780f",
467     "type": "set",
468     "name": "set tmp.cidx",
469     "xml": "<set>\n<parameter name='tmp.cidx' value='`$service-data.consumed-allotted-resources.consumed-allotted-resource_length`' />\n",
470     "comments": "",
471     "x": 1858.928352355957,
472     "y": 823.2206112146378,
473     "z": "2de7bdd3.0e47b2",
474     "wires": []
475   },
476   {
477     "id": "8d32b4a4.1a9fd8",
478     "type": "comment",
479     "name": "Add to consumed service consumed-allotted-resources in mdsal",
480     "info": "Prepare data and add to service-data",
481     "comments": "",
482     "x": 731.671142578125,
483     "y": 694.0000454187393,
484     "z": "2de7bdd3.0e47b2",
485     "wires": []
486   },
487   {
488     "id": "fc9006c6.395558",
489     "type": "comment",
490     "name": "This set resource will be added to MDSAL by provider code",
491     "info": "Below we add to service-data.consumed-allotted-resource at last index",
492     "comments": "",
493     "x": 719.0040588378906,
494     "y": 832.7781378030777,
495     "z": "2de7bdd3.0e47b2",
496     "wires": []
497   },
498   {
499     "id": "d769ff10.bfeae",
500     "type": "update",
501     "name": "update AAI allotted-resource",
502     "xml": "<update plugin=\"org.onap.ccsdk.sli.adaptors.aai.AAIService\" \n\t\tresource=\"allotted-resource\" \n\t\tkey=\"customer.global-customer-id = $connection-attachment-topology-operation-input.service-information.global-customer-id AND\n\t\t\tservice-subscription.service-type = $connection-attachment-topology-operation-input.service-information.subscription-service-type AND\n\t\t\tservice-instance.service-instance-id = $connection-attachment-topology-operation-input.allotted-resource-information.parent-service-instance-id AND\n\t\t\tallotted-resource.id = $tmp.ar.allotted-resource-id\"\n        pfx='pfx' local-only='false' force='false'>\n    <parameter name=\"id\" value=\"`$tmp.ar.allotted-resource-id`\" />\n\t<parameter name=\"name\" value=\"`$prop.connection-attachment.sotnVpnName`\" />\n\t<parameter name=\"access-provider-id\" value=\"`$prop.connection-attachment.access-provider-id`\" />\n\t<parameter name=\"access-client-id\" value=\"`$prop.connection-attachment.access-client-id`\" />\n\t<parameter name=\"access-topology-id\" value=\"`$prop.connection-attachment.access-topology-id`\" />\n\t<parameter name=\"access-node-id\" value=\"`$prop.connection-attachment.access-node-id`\" />\n\t<parameter name=\"access-ltp-id\" value=\"`$prop.connection-attachment.access-ltp-id`\" />\t\n\t<parameter name=\"cvlan\" value=\"`$prop.connection-attachment.cVLAN`\" />\n    <parameter name=\"vpn-name\" value=\"`$prop.connection-attachment.sotnVpnName`\" />\n\t<parameter name=\"selflink\" value=\"`$tmp.ar.self-link`\" />\n\t<parameter name=\"model-invariant-id\" value=\"`$connection-attachment-topology-operation-input.allotted-resource-information.onap-model-information.model-invariant-uuid`\" />\n\t<parameter name=\"model-version-id\" value=\"`$connection-attachment-topology-operation-input.allotted-resource-information.onap-model-information.model-uuid`\" />\n\t<parameter name=\"operational-status\" value=\"Created\" />\n",
503     "comments": "",
504     "outputs": 1,
505     "x": 629.6947631835938,
506     "y": 1792.5319019556046,
507     "z": "2de7bdd3.0e47b2",
508     "wires": [
509       [
510         "e5663fd7.08761",
511         "b7403b0d.cfc148"
512       ]
513     ]
514   },
515   {
516     "id": "e5663fd7.08761",
517     "type": "failure",
518     "name": "failure",
519     "xml": "<outcome value='failure'>\n",
520     "comments": "",
521     "outputs": 1,
522     "x": 824.4566993713379,
523     "y": 1783.4845033884048,
524     "z": "2de7bdd3.0e47b2",
525     "wires": [
526       [
527         "345b8d51.157ff2"
528       ]
529     ]
530   },
531   {
532     "id": "345b8d51.157ff2",
533     "type": "returnFailure",
534     "name": "return failure",
535     "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"AAI failed\" />\n",
536     "comments": "",
537     "x": 990.9805793762207,
538     "y": 1795.1035743951797,
539     "z": "2de7bdd3.0e47b2",
540     "wires": []
541   },
542   {
543     "id": "b7403b0d.cfc148",
544     "type": "failure",
545     "name": "not-found",
546     "xml": "<outcome value='not-found'>\n",
547     "comments": "",
548     "outputs": 1,
549     "x": 831.5519866943359,
550     "y": 1816.2464710474014,
551     "z": "2de7bdd3.0e47b2",
552     "wires": [
553       [
554         "345b8d51.157ff2"
555       ]
556     ]
557   },
558   {
559     "id": "ff8e9cff.e34a3",
560     "type": "comment",
561     "name": "Save Resource to AAI",
562     "info": "",
563     "comments": "",
564     "x": 605.50439453125,
565     "y": 1754.8338733911514,
566     "z": "2de7bdd3.0e47b2",
567     "wires": []
568   },
569   {
570     "id": "5f517bd0.1d2334",
571     "type": "comment",
572     "name": "Set allotted resource type if not sent by SO",
573     "info": "",
574     "comments": "",
575     "x": 665.00390625,
576     "y": 233.99999868869781,
577     "z": "2de7bdd3.0e47b2",
578     "wires": []
579   },
580   {
581     "id": "3e0bbdc4.8ce3d2",
582     "type": "switchNode",
583     "name": "switch allotted-resource-type",
584     "xml": "<switch test='`$connection-attachment-topology-operation-input.allotted-resource-information.allotted-resource-type`'>\n",
585     "comments": "",
586     "outputs": 1,
587     "x": 626.9272155761719,
588     "y": 274.5660549402237,
589     "z": "2de7bdd3.0e47b2",
590     "wires": [
591       [
592         "ff0b47c3.5cf7f8",
593         "8dd15a77.fb7568"
594       ]
595     ]
596   },
597   {
598     "id": "ff0b47c3.5cf7f8",
599     "type": "outcome",
600     "name": "NULL",
601     "xml": "<outcome value=''>",
602     "comments": "",
603     "outputs": 1,
604     "x": 829.9273681640625,
605     "y": 259.56605780124664,
606     "z": "2de7bdd3.0e47b2",
607     "wires": [
608       [
609         "aae71526.aed0c8"
610       ]
611     ]
612   },
613   {
614     "id": "8dd15a77.fb7568",
615     "type": "other",
616     "name": "other",
617     "xml": "<outcome value='Other'>\n",
618     "comments": "",
619     "outputs": 1,
620     "x": 822.9271965026855,
621     "y": 299.5660778284073,
622     "z": "2de7bdd3.0e47b2",
623     "wires": [
624       [
625         "c7c46784.6950a8"
626       ]
627     ]
628   },
629   {
630     "id": "c7c46784.6950a8",
631     "type": "set",
632     "name": "set tmp.ar.allotted-resource-type",
633     "xml": "<set>\n<parameter name='tmp.ar.allotted-resource-type' value='`$connection-attachment-topology-operation-input.allotted-resource-information.allotted-resource-type`' />\n",
634     "comments": "",
635     "x": 1054.9271812438965,
636     "y": 299.56608259677887,
637     "z": "2de7bdd3.0e47b2",
638     "wires": []
639   },
640   {
641     "id": "e793c2ca.7f688",
642     "type": "comment",
643     "name": "For storage in AAI connection-attachment-topology",
644     "info": "",
645     "comments": "",
646     "x": 690.0038681030273,
647     "y": 368.9999986886978,
648     "z": "2de7bdd3.0e47b2",
649     "wires": []
650   },
651   {
652     "id": "a57110f9.dcd37",
653     "type": "comment",
654     "name": "Obtain different URL, template location etc",
655     "info": "For saving resource information to MDSAL & for AAI",
656     "comments": "",
657     "x": 665.0038528442383,
658     "y": 450.8889080286026,
659     "z": "2de7bdd3.0e47b2",
660     "wires": []
661   },
662   {
663     "id": "9489b4d2.52d1b8",
664     "type": "comment",
665     "name": "Used for Put AR by id to MDSAL",
666     "info": "",
667     "comments": "",
668     "x": 631.0039367675781,
669     "y": 539.8889251947403,
670     "z": "2de7bdd3.0e47b2",
671     "wires": []
672   },
673   {
674     "id": "454699aa.1f7a38",
675     "type": "comment",
676     "name": "Obtain the last index in services",
677     "info": "ServiceData is added by Provider code",
678     "comments": "",
679     "x": 632.4483795166016,
680     "y": 725.88886988163,
681     "z": "2de7bdd3.0e47b2",
682     "wires": []
683   },
684   {
685     "id": "54b45ac5.3b96f4",
686     "type": "set",
687     "name": "set output to api handler",
688     "xml": "<set>\n<parameter name='allotted-resource-id' value='`$tmp.ar.allotted-resource-id`' />\n<parameter name='connection-attachment-object-path' value=\"`$tmp.ar.self-link`\"/>\n<parameter name='service-object-path' value=\"`'restconf/config/GENERIC-RESOURCE-API:services/service/'\n + $connection-attachment-topology-operation-input.service-information.service-instance-id\n + '/service-data/service-topology/'`\"/>\n \n",
689     "comments": "",
690     "x": 615.2720489501953,
691     "y": 1699.3592010736465,
692     "z": "2de7bdd3.0e47b2",
693     "wires": []
694   },
695   {
696     "id": "6f9dfa46.6d74e4",
697     "type": "returnSuccess",
698     "name": "return success",
699     "xml": "<return status='success'>\n<parameter name=\"ack-final-indicator\" value=\"Y\" />\n<parameter name=\"error-code\" value=\"200\" />\n<parameter name=\"error-message\" value=\"`$error-message`\" />\n",
700     "comments": "",
701     "x": 583.6851272583008,
702     "y": 1840.9749876260757,
703     "z": "2de7bdd3.0e47b2",
704     "wires": []
705   },
706   {
707     "id": "aae71526.aed0c8",
708     "type": "set",
709     "name": "set tmp.ar.allotted-resource-type",
710     "xml": "<set>\n<parameter name='tmp.ar.allotted-resource-type' value=\"SOTNAttachmentInstance\" />\n",
711     "comments": "",
712     "x": 1069.0040550231934,
713     "y": 259.99998438358307,
714     "z": "2de7bdd3.0e47b2",
715     "wires": []
716   },
717   {
718     "id": "d0d20150.466f4",
719     "type": "call",
720     "name": "call GENERIC-RESOURCE-API:sotn-get-saved-ar-param",
721     "xml": "<call module='GENERIC-RESOURCE-API' rpc='sotn-get-saved-ar-param' mode='sync' >\n",
722     "comments": "",
723     "outputs": 1,
724     "x": 716.9980697631836,
725     "y": 1559.4938122034073,
726     "z": "2de7bdd3.0e47b2",
727     "wires": [
728       []
729     ]
730   },
731   {
732     "id": "d25d451e.0f6438",
733     "type": "execute",
734     "name": "execute RestApiCallNode - PUT AR by id",
735     "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='templateFileName' value=\"`$prop.restapi.templateDir + '/' + $prop.restapi.sotn-attachment.templatefile`\" />\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='PUT' />\n    <parameter name=\"responsePrefix\" value=\"mdsal-ar\" />\n\n",
736     "comments": "",
737     "outputs": 1,
738     "x": 666.0041809082031,
739     "y": 1633.0001302957535,
740     "z": "2de7bdd3.0e47b2",
741     "wires": [
742       [
743         "a217bcb.4b0424",
744         "c7307e94.33922",
745         "88ae5959.9952c8"
746       ]
747     ]
748   },
749   {
750     "id": "a217bcb.4b0424",
751     "type": "not-found",
752     "name": "not-found",
753     "xml": "<outcome value='not-found'>\n",
754     "comments": "",
755     "outputs": 1,
756     "x": 915.6455345153809,
757     "y": 1671.331460595131,
758     "z": "2de7bdd3.0e47b2",
759     "wires": [
760       [
761         "45489cfb.5ec6b4"
762       ]
763     ]
764   },
765   {
766     "id": "c7307e94.33922",
767     "type": "failure",
768     "name": "failure",
769     "xml": "<outcome value='failure'>\n",
770     "comments": "",
771     "outputs": 1,
772     "x": 906.6455841064453,
773     "y": 1639.8314863443375,
774     "z": "2de7bdd3.0e47b2",
775     "wires": [
776       [
777         "45489cfb.5ec6b4"
778       ]
779     ]
780   },
781   {
782     "id": "88ae5959.9952c8",
783     "type": "success",
784     "name": "success",
785     "xml": "<outcome value='success'>\n",
786     "comments": "",
787     "outputs": 1,
788     "x": 910.395622253418,
789     "y": 1610.1885912194848,
790     "z": "2de7bdd3.0e47b2",
791     "wires": [
792       [
793         "b883302d.2867d"
794       ]
795     ]
796   },
797   {
798     "id": "45489cfb.5ec6b4",
799     "type": "returnFailure",
800     "name": "return failure",
801     "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error updating md-sal for connection-attachment-allotted-resource\" />\n",
802     "comments": "",
803     "x": 1076.395622253418,
804     "y": 1640.5815101861954,
805     "z": "2de7bdd3.0e47b2",
806     "wires": []
807   },
808   {
809     "id": "b883302d.2867d",
810     "type": "block",
811     "name": "block",
812     "xml": "<block>\n",
813     "atomic": "false",
814     "comments": "",
815     "outputs": 1,
816     "x": 1052.0515899658203,
817     "y": 1606.380760408938,
818     "z": "2de7bdd3.0e47b2",
819     "wires": [
820       []
821     ]
822   },
823   {
824     "id": "1db7126.81503ee",
825     "type": "execute",
826     "name": "execute RestApiCallNode - Update parent provided service AR",
827     "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='templateFileName' value=\"`$prop.restapi.templateDir + '/' + $prop.restapi.parentsvc.templatefile`\" />\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.parent-ar-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='PUT' />\n    <parameter name=\"responsePrefix\" value=\"parent\" />\n\n",
828     "comments": "",
829     "outputs": 1,
830     "x": 731.0038604736328,
831     "y": 1149.0001636743546,
832     "z": "2de7bdd3.0e47b2",
833     "wires": [
834       [
835         "8baa1385.678c1",
836         "f79c7ce6.35926",
837         "8ab7afc7.379db"
838       ]
839     ]
840   },
841   {
842     "id": "8baa1385.678c1",
843     "type": "not-found",
844     "name": "not-found",
845     "xml": "<outcome value='not-found'>\n",
846     "comments": "",
847     "outputs": 1,
848     "x": 1039.3119201660156,
849     "y": 1180.9984394311905,
850     "z": "2de7bdd3.0e47b2",
851     "wires": [
852       [
853         "1986b301.84772d"
854       ]
855     ]
856   },
857   {
858     "id": "f79c7ce6.35926",
859     "type": "failure",
860     "name": "failure",
861     "xml": "<outcome value='failure'>\n",
862     "comments": "",
863     "outputs": 1,
864     "x": 1030.31196975708,
865     "y": 1149.498465180397,
866     "z": "2de7bdd3.0e47b2",
867     "wires": [
868       [
869         "1986b301.84772d"
870       ]
871     ]
872   },
873   {
874     "id": "8ab7afc7.379db",
875     "type": "success",
876     "name": "success",
877     "xml": "<outcome value='success'>\n",
878     "comments": "",
879     "outputs": 1,
880     "x": 1034.0620079040527,
881     "y": 1119.8555700555444,
882     "z": "2de7bdd3.0e47b2",
883     "wires": [
884       [
885         "c35b2d72.8a40a"
886       ]
887     ]
888   },
889   {
890     "id": "1986b301.84772d",
891     "type": "returnFailure",
892     "name": "return failure",
893     "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error updating md-sal for connection-attachment-allotted-resource\" />\n",
894     "comments": "",
895     "x": 1200.0620079040527,
896     "y": 1150.248489022255,
897     "z": "2de7bdd3.0e47b2",
898     "wires": []
899   },
900   {
901     "id": "c35b2d72.8a40a",
902     "type": "block",
903     "name": "block",
904     "xml": "<block>\n",
905     "atomic": "false",
906     "comments": "",
907     "outputs": 1,
908     "x": 1175.717975616455,
909     "y": 1116.0477392449975,
910     "z": "2de7bdd3.0e47b2",
911     "wires": [
912       []
913     ]
914   },
915   {
916     "id": "373cdeec.8a9792",
917     "type": "comment",
918     "name": "Put the parent allotted resource in mdsal",
919     "info": "",
920     "comments": "",
921     "x": 660.0038070678711,
922     "y": 1111.0000702142715,
923     "z": "2de7bdd3.0e47b2",
924     "wires": []
925   },
926   {
927     "id": "b18196af.f3d2c8",
928     "type": "set",
929     "name": "set connection-attachment-ar-identifiers",
930     "xml": "<set>\n<parameter name='connection-attachment-ar-identifiers.consuming-service-instance-id' value=\"`$connection-attachment-topology-operation-input.service-information.service-instance-id` \" />\n<parameter name='connection-attachment-ar-identifiers.parent-service-instance-id' value=\"`$connection-attachment-topology-operation-input.allotted-resource-information.parent-service-instance-id` \" />\n<parameter name='connection-attachment-ar-identifiers.allotted-resource-type' value=\"`$connection-attachment-topology-operation-input.allotted-resource-information.allotted-resource-type` \" />\n<parameter name='connection-attachment-ar-identifiers.allotted-resource-id' value=\"`$tmp.ar.allotted-resource-id` \" />\n\n",
931     "comments": "",
932     "x": 656.3609924316406,
933     "y": 1313.571689248085,
934     "z": "2de7bdd3.0e47b2",
935     "wires": []
936   },
937   {
938     "id": "279f61dd.0cdaee",
939     "type": "set",
940     "name": "set ar-data",
941     "xml": "<set>\n<parameter name='connection-attachment-ar.allotted-resource-id' value=\"`$tmp.ar.allotted-resource-id` \" />\n<parameter name='connection-attachment-ar.allotted-resource-status.action' value=\"`$connection-attachment-topology-operation-input.request-information.request-action` \" />\n<parameter name='connection-attachment-ar.allotted-resource-status.rpc-name' value=\"connection-attachment-topology-operation\" />\n<parameter name='connection-attachment-ar.allotted-resource-status.rpc-action' value=\"`$connection-attachment-topology-operation-input.sdnc-request-header.svc-action` \" />\n<parameter name='connection-attachment-ar.allotted-resource-data.allotted-resource-operation-information.request-information.' value=\"`$connection-attachment-topology-operation-input.request-information.` \" />\n<parameter name='connection-attachment-ar.allotted-resource-data.allotted-resource-operation-information.sdnc-request-header.' value=\"`$connection-attachment-topology-operation-input.sdnc-request-header.` \" />\n<parameter name='connection-attachment-ar.allotted-resource-data.allotted-resource-operation-information.service-information.' value=\"`$connection-attachment-topology-operation-input.service-information.` \" />\n<parameter name='connection-attachment-ar.allotted-resource-data.allotted-resource-operation-information.allotted-resource-information.' value=\"`$connection-attachment-topology-operation-input.allotted-resource-information.` \" />\n<parameter name='connection-attachment-ar.allotted-resource-data.allotted-resource-operation-information.connection-attachment-request-input.' value=\"`$connection-attachment-topology-operation-input.connection-attachment-request-input.` \" />",
942     "comments": "",
943     "x": 570.2177734375,
944     "y": 1281.3810459375381,
945     "z": "2de7bdd3.0e47b2",
946     "wires": []
947   },
948   {
949     "id": "d586facb.6928c8",
950     "type": "set",
951     "name": "set identifiers in overall structure",
952     "xml": "<set>\n<parameter name='connection-attachment-ar.allotted-resource-data.connection-attachment-topology.allotted-resource-identifiers.' \nvalue=\"`$connection-attachment-ar-identifiers.`\" />\n\n\n",
953     "comments": "",
954     "x": 635.1707916259766,
955     "y": 1347.6668745279312,
956     "z": "2de7bdd3.0e47b2",
957     "wires": []
958   },
959   {
960     "id": "83c4b03a.da76",
961     "type": "execute",
962     "name": "execute getTime",
963     "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils' method='setTime' >\n    <parameter name=\"outputPath\" value=\"tmp.current-time\" />\n\n",
964     "comments": "",
965     "outputs": 1,
966     "x": 587.5036315917969,
967     "y": 1421.0004020929337,
968     "z": "2de7bdd3.0e47b2",
969     "wires": [
970       []
971     ]
972   },
973   {
974     "id": "aeb52a03.a21508",
975     "type": "set",
976     "name": "set allotted-resource-oper-status",
977     "xml": "<set>\n<parameter name='connection-attachment-ar.allotted-resource-data.allotted-resource-oper-status.order-status' value='Created' />\n<parameter name='connection-attachment-ar.allotted-resource-data.allotted-resource-oper-status.last-action' value='`$connection-attachment-topology-operation-input.request-information.request-action`' />\n<parameter name='connection-attachment-ar.allotted-resource-data.allotted-resource-oper-status.last-rpc-action' value='`$connection-attachment-topology-operation-input.sdnc-request-header.svc-action`' />\n<parameter name='connection-attachment-ar.allotted-resource-data.allotted-resource-oper-status.last-svc-request-id' value='`$connection-attachment-topology-operation-input.sdnc-request-header.svc-request-id`' />\n<parameter name='connection-attachment-ar.allotted-resource-data.allotted-resource-oper-status.create-timestamp' value='`$tmp.current-time`' />\n",
978     "comments": "",
979     "x": 638.4906692504883,
980     "y": 1476.95163500309,
981     "z": "2de7bdd3.0e47b2",
982     "wires": []
983   },
984   {
985     "id": "3704681e.a28308",
986     "type": "set",
987     "name": "set model-data",
988     "xml": "<set>\n<parameter name='connection-attachment-ar.allotted-resource-data.connection-attachment-topology.onap-model-information.' value=\"`$connection-attachment-topology-operation-input.allotted-resource-information.onap-model-information.` \" />",
989     "comments": "",
990     "x": 583.0592880249023,
991     "y": 1382.555760025978,
992     "z": "2de7bdd3.0e47b2",
993     "wires": []
994   },
995   {
996     "id": "9f0192ed.a3fed",
997     "type": "comment",
998     "name": "Prepare data for allotted-resource addition to MDSAL",
999     "info": "This will add to allotted-resource which is present inside service.",
1000     "comments": "",
1001     "x": 700.3927764892578,
1002     "y": 1247.5556064844131,
1003     "z": "2de7bdd3.0e47b2",
1004     "wires": []
1005   },
1006   {
1007     "id": "9c36769e.3b9b78",
1008     "type": "execute",
1009     "name": "generate parent-ar url - replace allotted-resource-id",
1010     "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$tmp.parent-ar-url`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.parent-ar-url\"/>\n    <parameter name=\"target\" value=\"{allotted-resource-id}\"/>\n    <parameter name=\"replacement\" value=\"`$tmp.ar.allotted-resource-id`\"/>\n",
1011     "comments": "",
1012     "outputs": 1,
1013     "x": 695.5039215087891,
1014     "y": 1075.0000091791153,
1015     "z": "2de7bdd3.0e47b2",
1016     "wires": [
1017       []
1018     ]
1019   },
1020   {
1021     "id": "482be69b.e1e678",
1022     "type": "execute",
1023     "name": "generate parent-ar url - replace service-instance-id",
1024     "xml": "<execute plugin='org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils' method='replace' >\n    <parameter name=\"source\" value=\"`$prop.restapi.parent-provided-resource`\"/>\n    <parameter name=\"outputPath\" value=\"tmp.parent-ar-url\"/>\n    <parameter name=\"target\" value=\"{service-instance-id}\"/>\n    <parameter name=\"replacement\" value=\"`$tmp.ar.parent-service-instance-id`\"/>\n",
1025     "comments": "",
1026     "outputs": 1,
1027     "x": 691.5038452148438,
1028     "y": 1032.0001455545425,
1029     "z": "2de7bdd3.0e47b2",
1030     "wires": [
1031       []
1032     ]
1033   },
1034   {
1035     "id": "db2548a3.2d9d88",
1036     "type": "comment",
1037     "name": "Prepare Parent AR URL",
1038     "info": "Preparation to set provided-allotted-resource in parent service instance",
1039     "comments": "",
1040     "x": 609.5043029785156,
1041     "y": 961.000098824501,
1042     "z": "2de7bdd3.0e47b2",
1043     "wires": []
1044   },
1045   {
1046     "id": "238da366.150bec",
1047     "type": "set",
1048     "name": "set tmp.ar.parent-service-instance-id",
1049     "xml": "<set>\n<parameter name='tmp.ar.parent-service-instance-id' value=\"`$connection-attachment-topology-operation-input.allotted-resource-information.parent-service-instance-id` \" />\n\n",
1050     "comments": "",
1051     "x": 648.5040969848633,
1052     "y": 994.500038266182,
1053     "z": "2de7bdd3.0e47b2",
1054     "wires": []
1055   },
1056   {
1057     "id": "62fbf7be.c1d928",
1058     "type": "comment",
1059     "name": "Required for filling template values",
1060     "info": "This is done because connection-attachment is generic resource and doesn't have specific parameters",
1061     "comments": "",
1062     "x": 643.0042724609375,
1063     "y": 1522.4998852014542,
1064     "z": "2de7bdd3.0e47b2",
1065     "wires": []
1066   },
1067   {
1068     "id": "349f45ed.6a61aa",
1069     "type": "returnFailure",
1070     "name": "return failure",
1071     "xml": "<return status='failure'>\n\t<parameter name='ack-final' value='Y'/>\n\t<parameter name=\"error-code\" value=\"500\" />\n    <parameter name=\"error-message\" value=\"Error updating md-sal for connection-attachment-allotted-resource as cosumed allotted resource already exists.\" />\n",
1072     "comments": "",
1073     "x": 2205.7608795166016,
1074     "y": 832.6458278894424,
1075     "z": "2de7bdd3.0e47b2",
1076     "wires": []
1077   },
1078   {
1079     "id": "9bbf5449.409148",
1080     "type": "set",
1081     "name": "set tmp.found-cidx",
1082     "xml": "<set>\n<parameter name='tmp.found-cidx' value=\"`false`\" />\n\n\n",
1083     "comments": "",
1084     "x": 1331.6500511169434,
1085     "y": 744.3125709295273,
1086     "z": "2de7bdd3.0e47b2",
1087     "wires": []
1088   },
1089   {
1090     "id": "de27f2ed.26659",
1091     "type": "comment",
1092     "name": "Add to parent services provided-allotted-resources in mdsal",
1093     "info": "",
1094     "comments": "",
1095     "x": 720.2054138183594,
1096     "y": 928.9792553186417,
1097     "z": "2de7bdd3.0e47b2",
1098     "wires": []
1099   },
1100   {
1101     "id": "a649f8c3.5ee428",
1102     "type": "comment",
1103     "name": "Add to allotted-resources in mdsal",
1104     "info": "",
1105     "comments": "",
1106     "x": 640.9726028442383,
1107     "y": 1214.9689356088638,
1108     "z": "2de7bdd3.0e47b2",
1109     "wires": []
1110   },
1111   {
1112     "id": "d1ab386a.e79358",
1113     "type": "block",
1114     "name": "block: atomic",
1115     "xml": "<block atomic=\"true\">\n",
1116     "atomic": "false",
1117     "comments": "",
1118     "outputs": 1,
1119     "x": 1314.003957748413,
1120     "y": 642.2777591943741,
1121     "z": "2de7bdd3.0e47b2",
1122     "wires": [
1123       [
1124         "4f0a5d33.427474"
1125       ]
1126     ]
1127   },
1128   {
1129     "id": "4f0a5d33.427474",
1130     "type": "switchNode",
1131     "name": "switch cr length",
1132     "xml": "<switch test='`$mdsal-ar.connection-attachment-allotted-resource_length`'>\n",
1133     "comments": "",
1134     "outputs": 1,
1135     "x": 1501.8613376617432,
1136     "y": 642.8968945741653,
1137     "z": "2de7bdd3.0e47b2",
1138     "wires": [
1139       [
1140         "d605048c.9bb9e8"
1141       ]
1142     ]
1143   },
1144   {
1145     "id": "d605048c.9bb9e8",
1146     "type": "other",
1147     "name": "outcome 1",
1148     "xml": "<outcome value='1'>\n",
1149     "comments": "",
1150     "outputs": 1,
1151     "x": 1701.1944599151611,
1152     "y": 642.8969732522964,
1153     "z": "2de7bdd3.0e47b2",
1154     "wires": [
1155       [
1156         "50f962fe.84264c"
1157       ]
1158     ]
1159   },
1160   {
1161     "id": "5a5883b8.a68a6c",
1162     "type": "execute",
1163     "name": "execute RestApiCallNode - get-resource connection-attachment-allotted-resource",
1164     "xml": "<execute plugin='org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode' method='sendRequest' >\n    <parameter name='restapiUrl' value='`$prop.controller.url + $tmp.ar-url`' />\n    <parameter name='restapiUser' value='`$prop.controller.user`' />\n    <parameter name='restapiPassword' value='`$prop.controller.pwd`' />\n    <parameter name='format' value='json' />\n    <parameter name='httpMethod' value='GET' />\n    <parameter name=\"responsePrefix\" value=\"mdsal-ar\" />\n\n",
1165     "comments": "",
1166     "outputs": 1,
1167     "x": 786.0039596557617,
1168     "y": 637.0000349283218,
1169     "z": "2de7bdd3.0e47b2",
1170     "wires": [
1171       [
1172         "a969345.5e133c8",
1173         "ca5d3b75.7711f8"
1174       ]
1175     ]
1176   },
1177   {
1178     "id": "ca5d3b75.7711f8",
1179     "type": "failure",
1180     "name": "failure",
1181     "xml": "<outcome value='failure'>\n",
1182     "comments": "",
1183     "outputs": 1,
1184     "x": 1154.0039901733398,
1185     "y": 607.0000330209732,
1186     "z": "2de7bdd3.0e47b2",
1187     "wires": [
1188       [
1189         "9eb0da65.d80ea8"
1190       ]
1191     ]
1192   },
1193   {
1194     "id": "9eb0da65.d80ea8",
1195     "type": "block",
1196     "name": "block",
1197     "xml": "<block>\n",
1198     "atomic": "false",
1199     "comments": "",
1200     "outputs": 1,
1201     "x": 1306.0039901733398,
1202     "y": 606.0000330209732,
1203     "z": "2de7bdd3.0e47b2",
1204     "wires": [
1205       []
1206     ]
1207   }
1208 ]