Secure all created user accounts
[oam.git] / solution / smo / apps / flows / data / flows.json
1 [
2     {
3         "id": "51e83a0892da060e",
4         "type": "tab",
5         "label": "Event Streaming (VES)",
6         "disabled": false,
7         "info": "Sends a VES messages with body defined by 3GPP TS 28.532.\n",
8         "env": []
9     },
10     {
11         "id": "c5746e29f53f72ce",
12         "type": "tab",
13         "label": "Message Topics",
14         "disabled": false,
15         "info": "Subscribes to Kafka topics ",
16         "env": []
17     },
18     {
19         "id": "7b2f4859e5963695",
20         "type": "tls-config",
21         "name": "",
22         "cert": "",
23         "key": "",
24         "ca": "",
25         "certname": "",
26         "keyname": "",
27         "caname": "",
28         "servername": "",
29         "verifyservercert": false,
30         "alpnprotocol": ""
31     },
32     {
33         "id": "91a1f8d3ce84ceda",
34         "type": "inject",
35         "z": "51e83a0892da060e",
36         "name": "notifyFileReady",
37         "props": [
38             {
39                 "p": "payload"
40             },
41             {
42                 "p": "topic",
43                 "vt": "str"
44             }
45         ],
46         "repeat": "",
47         "crontab": "",
48         "once": false,
49         "onceDelay": 0.1,
50         "topic": "notifyFileReady",
51         "payload": "",
52         "payloadType": "date",
53         "x": 120,
54         "y": 360,
55         "wires": [
56             [
57                 "b5533c10604af5a6",
58                 "f8e64d1cb25eb4ab"
59             ]
60         ]
61     },
62     {
63         "id": "b5533c10604af5a6",
64         "type": "function",
65         "z": "51e83a0892da060e",
66         "name": "vesHeader",
67         "func": "const timeStamp = new Date(msg.payload);\nconst eventType = msg.topic;\nlet domain = \"stndDefined\";\n// handle domain expecption for 'pnfRegistration'\nif (eventType === 'pnfRegistration') {\n    domain = eventType;\n} \nconst nfNamingCode = env.get('APP_NETWORK_FUNCTION_ID');\nconst namespaces = {\n    pnfRegistration: undefined,\n    o1NotifyPnfRegistration: 'o1-notify-pnf-registration',\n    oRanScDuHelloWorldPmStreaming: 'o-ran-sc-du-hello-world-pm-streaming-oas3',\n    notifyHeartbeat: '3GPP-Heartbeat',\n    notifyFileReady: 'file-ready',\n};\n\nmsg.topic = \"commonEventHeader\"\nmsg.payload = {\n    domain: domain,\n    eventType: eventType,\n    eventId:[nfNamingCode, eventType, msg._msgid].join('_'),\n    eventName: [domain, eventType].join('_'),\n    sequence: Number(timeStamp),\n    priority: \"Low\",\n    reportingEntityId: \"c2b7d6e9-ee35-459a-ab8e-717a6fc1fde6\",\n    reportingEntityName: global.get('os').hostname(),\n    sourceId: \"378e9904-6d39-40ea-9994-0596fe2235a3\",\n    sourceName: env.get('APP_SOURCE'),\n    startEpochMicrosec: timeStamp.getTime() * 1000,\n    lastEpochMicrosec: timeStamp.getTime() * 1000,\n    nfNamingCode: nfNamingCode,\n    nfVendorName: env.get('APP_VENDOR'),\n    timeZoneOffset: \"+00:00\",\n    stndDefinedNamespace: namespaces[eventType],\n    version: \"4.1\",\n    vesEventListenerVersion: \"7.2.1\"\n}\nreturn msg;",
68         "outputs": 1,
69         "noerr": 0,
70         "initialize": "",
71         "finalize": "",
72         "libs": [],
73         "x": 430,
74         "y": 260,
75         "wires": [
76             [
77                 "f65b1c13e0243ef6"
78             ]
79         ]
80     },
81     {
82         "id": "f8e64d1cb25eb4ab",
83         "type": "function",
84         "z": "51e83a0892da060e",
85         "name": "vesStndDefindBody",
86         "func": "const timeStamp = new Date(msg.payload);\nconst startTime = new Date(Math.floor(Number(timeStamp) / 900000) * 900000);\nconst endTime = new Date(Number(startTime) + 900000);\nconst paddy = (num, padlen, padchar) => {\n    const pad_char = typeof padchar !== 'undefined' ? padchar : '0';\n    const pad = new Array(1 + padlen).join(pad_char);\n    return (pad + num).slice(-pad.length);\n}\nconst fileStartTime = [\n    paddy(startTime.getFullYear(), 4),\n    paddy(startTime.getMonth() + 1, 2),\n    paddy(startTime.getDate(), 2),\n    '.',\n    paddy(startTime.getHours(), 2),\n    paddy(startTime.getMinutes(), 2),\n    '+0000'\n].join('');\nconst fileEndTime = [\n    paddy(endTime.getHours(), 2),\n    paddy(endTime.getMinutes(), 2),\n    '+0000'\n].join('');\nconst fileLocation = ['/pm-data-files/A', fileStartTime, '-', fileEndTime, '_', env.get('APP_NETWORK_FUNCTION_ID'), '.xml'].join('');\nmsg.payload = {\n    schemaReference: 'https://forge.3gpp.org/rep/sa5/MnS/raw/Rel-18/OpenAPI/TS28532_FileDataReportingMnS.yaml#components/schemas/NotifyFileReady',\n    stndDefinedFieldsVersion: '1.0',\n    data: {\n        href: global.get('os').hostname(),\n        notificationId: Number(startTime),\n        notificationType: msg.topic,\n        eventTime: timeStamp.toISOString(),\n        systemDN: '/',\n        fileInfoList: [\n            {\n                fileLocation: fileLocation,\n                fileSize: 1234,\n                fileReadyTime: startTime.toISOString(),\n                fileExpirationTime: endTime.toISOString(),\n                fileCompression: 'no',\n                fileFormat: 'xml',\n                fileDataType: 'Performance'\n            }\n        ],\n        additionalText: 'Have fun!'\n    }\n};\nmsg.topic = 'stndDefinedFields';\nreturn msg;",
87         "outputs": 1,
88         "noerr": 0,
89         "initialize": "",
90         "finalize": "",
91         "libs": [],
92         "x": 470,
93         "y": 360,
94         "wires": [
95             [
96                 "f65b1c13e0243ef6"
97             ]
98         ]
99     },
100     {
101         "id": "f65b1c13e0243ef6",
102         "type": "join",
103         "z": "51e83a0892da060e",
104         "name": "",
105         "mode": "custom",
106         "build": "object",
107         "property": "payload",
108         "propertyType": "msg",
109         "key": "topic",
110         "joiner": "\\n",
111         "joinerType": "str",
112         "accumulate": false,
113         "timeout": "",
114         "count": "2",
115         "reduceRight": false,
116         "reduceExp": "",
117         "reduceInit": "",
118         "reduceInitType": "",
119         "reduceFixup": "",
120         "x": 690,
121         "y": 280,
122         "wires": [
123             [
124                 "1d6949a57bce82ab"
125             ]
126         ]
127     },
128     {
129         "id": "1d6949a57bce82ab",
130         "type": "function",
131         "z": "51e83a0892da060e",
132         "name": "createVesEvent",
133         "func": "msg.payload = {\n  event: msg.payload\n};\nreturn msg;",
134         "outputs": 1,
135         "noerr": 0,
136         "initialize": "",
137         "finalize": "",
138         "libs": [],
139         "x": 840,
140         "y": 280,
141         "wires": [
142             [
143                 "27e1d8d1e9b8fd93",
144                 "9ab2b4d9caf52c14"
145             ]
146         ]
147     },
148     {
149         "id": "27e1d8d1e9b8fd93",
150         "type": "http request",
151         "z": "51e83a0892da060e",
152         "name": "",
153         "method": "POST",
154         "ret": "txt",
155         "paytoqs": "ignore",
156         "url": "https://ves-collector.oam.smo.o-ran-sc.org/eventListener/v7",
157         "tls": "7b2f4859e5963695",
158         "persist": false,
159         "proxy": "",
160         "insecureHTTPParser": false,
161         "authType": "basic",
162         "senderr": false,
163         "headers": [],
164         "x": 1030,
165         "y": 280,
166         "wires": [
167             [
168                 "f3412bcb9e134063"
169             ]
170         ]
171     },
172     {
173         "id": "f3412bcb9e134063",
174         "type": "debug",
175         "z": "51e83a0892da060e",
176         "name": "VesCollectorResponse",
177         "active": false,
178         "tosidebar": true,
179         "console": false,
180         "tostatus": false,
181         "complete": "payload",
182         "targetType": "msg",
183         "statusVal": "",
184         "statusType": "auto",
185         "x": 1220,
186         "y": 280,
187         "wires": []
188     },
189     {
190         "id": "b5e1e7a83051b5b6",
191         "type": "inject",
192         "z": "51e83a0892da060e",
193         "name": "pnfRegistration",
194         "props": [
195             {
196                 "p": "payload"
197             },
198             {
199                 "p": "topic",
200                 "vt": "str"
201             }
202         ],
203         "repeat": "",
204         "crontab": "",
205         "once": false,
206         "onceDelay": 0.1,
207         "topic": "pnfRegistration",
208         "payload": "",
209         "payloadType": "date",
210         "x": 120,
211         "y": 80,
212         "wires": [
213             [
214                 "bd43459cf3907a5a",
215                 "b5533c10604af5a6"
216             ]
217         ]
218     },
219     {
220         "id": "bd43459cf3907a5a",
221         "type": "function",
222         "z": "51e83a0892da060e",
223         "name": "vesBody",
224         "func": "msg.topic = 'pnfRegistrationFields';\nmsg.payload = {\n    pnfRegistrationFieldsVersion: '2.1',\n    lastServiceDate: '2023-02-05',\n    macAddress: '02:42:f7:d4:62:ce',\n    manufactureDate: '2021-01-16',\n    modelNumber: 'O-RAN-SC Model',\n    oamV4IpAddress: '10.10.10.11',\n    oamV6IpAddress: '0:0:0:0:0:ffff:a0a:011',\n    serialNumber: 'VENDORA-PNF2-10.10.10.11-pnf2 BestInClass',\n    softwareVersion: '2.3.5',\n    unitFamily: \"O-RAN-SC\",\n    unitType: 'PNF2',\n    vendorName: env.get('APP_VENDOR'),\n    additionalFields: {\n        oamPort: '830',\n        protocol: 'SSH',\n        username: 'netconf',\n        password: 'netconf!',\n        reconnectOnChangedSchema: 'false',\n        'sleep-factor': '1.5',\n    tcpOnly: 'false',\n    connectionTimeout: '20000',\n    maxConnectionAttempts: '100',\n    betweenAttemptsTimeout: '2000',\n    keepaliveDelay: '120'\n}\n};\nreturn msg;",
225         "outputs": 1,
226         "noerr": 0,
227         "initialize": "",
228         "finalize": "",
229         "libs": [],
230         "x": 440,
231         "y": 80,
232         "wires": [
233             [
234                 "f65b1c13e0243ef6"
235             ]
236         ]
237     },
238     {
239         "id": "9ab2b4d9caf52c14",
240         "type": "debug",
241         "z": "51e83a0892da060e",
242         "name": "ves-message-data",
243         "active": false,
244         "tosidebar": true,
245         "console": false,
246         "tostatus": false,
247         "complete": "payload",
248         "targetType": "msg",
249         "statusVal": "",
250         "statusType": "auto",
251         "x": 1050,
252         "y": 320,
253         "wires": []
254     },
255     {
256         "id": "7d589030272c0a94",
257         "type": "inject",
258         "z": "51e83a0892da060e",
259         "d": true,
260         "name": "notifyHeartbeat",
261         "props": [
262             {
263                 "p": "payload"
264             },
265             {
266                 "p": "topic",
267                 "vt": "str"
268             }
269         ],
270         "repeat": "3",
271         "crontab": "",
272         "once": true,
273         "onceDelay": 0.1,
274         "topic": "notifyHeartbeat",
275         "payload": "",
276         "payloadType": "date",
277         "x": 130,
278         "y": 320,
279         "wires": [
280             [
281                 "b5533c10604af5a6",
282                 "ab3bc53f12d28d8f"
283             ]
284         ]
285     },
286     {
287         "id": "ab3bc53f12d28d8f",
288         "type": "function",
289         "z": "51e83a0892da060e",
290         "name": "vesStndDefindBody",
291         "func": "const timeStamp = new Date(msg.payload);\nmsg.payload = {\n    schemaReference: 'https://forge.3gpp.org/rep/sa5/MnS/raw/Rel-18/OpenAPI/TS28532_HeartbeatNtf.yaml#components/schemas/NotifyHeartbeat',\n    stndDefinedFieldsVersion: '1.0',\n    data: {\n        href: global.get('os').hostname(),\n        notificationId: Number(timeStamp),\n        notificationType: msg.topic,\n        eventTime: timeStamp.toISOString(),\n        systemDN: \"/\",\n        heartbeatNtfPeriod: 120\n    }\n};\nmsg.topic = \"stndDefinedFields\";\nreturn msg;",
292         "outputs": 1,
293         "noerr": 0,
294         "initialize": "",
295         "finalize": "",
296         "libs": [],
297         "x": 470,
298         "y": 320,
299         "wires": [
300             [
301                 "f65b1c13e0243ef6"
302             ]
303         ]
304     },
305     {
306         "id": "1bada25ea9a5aa01",
307         "type": "comment",
308         "z": "51e83a0892da060e",
309         "name": "from SA5 R-18 branch",
310         "info": "",
311         "x": 120,
312         "y": 280,
313         "wires": []
314     },
315     {
316         "id": "f4f4670363ec760f",
317         "type": "comment",
318         "z": "51e83a0892da060e",
319         "name": "from O-RAN-SC",
320         "info": "",
321         "x": 100,
322         "y": 140,
323         "wires": []
324     },
325     {
326         "id": "e4dc4647c388ab77",
327         "type": "comment",
328         "z": "51e83a0892da060e",
329         "name": "from ONAP",
330         "info": "",
331         "x": 90,
332         "y": 40,
333         "wires": []
334     },
335     {
336         "id": "fb6413675e22dc71",
337         "type": "inject",
338         "z": "51e83a0892da060e",
339         "name": "o1NotifyPnfRegistration",
340         "props": [
341             {
342                 "p": "payload"
343             },
344             {
345                 "p": "topic",
346                 "vt": "str"
347             }
348         ],
349         "repeat": "",
350         "crontab": "",
351         "once": false,
352         "onceDelay": 0.1,
353         "topic": "o1NotifyPnfRegistration",
354         "payload": "",
355         "payloadType": "date",
356         "x": 140,
357         "y": 180,
358         "wires": [
359             [
360                 "b5533c10604af5a6",
361                 "51f5fa54867b7e65"
362             ]
363         ]
364     },
365     {
366         "id": "73beab79d5024f4b",
367         "type": "inject",
368         "z": "51e83a0892da060e",
369         "name": "oRanScDuHelloWorldPmStreaming",
370         "props": [
371             {
372                 "p": "payload"
373             },
374             {
375                 "p": "topic",
376                 "vt": "str"
377             }
378         ],
379         "repeat": "",
380         "crontab": "",
381         "once": false,
382         "onceDelay": 0.1,
383         "topic": "oRanScDuHelloWorldPmStreaming",
384         "payload": "",
385         "payloadType": "date",
386         "x": 180,
387         "y": 220,
388         "wires": [
389             [
390                 "5c6f93626fac58b5",
391                 "b5533c10604af5a6"
392             ]
393         ]
394     },
395     {
396         "id": "51f5fa54867b7e65",
397         "type": "function",
398         "z": "51e83a0892da060e",
399         "name": "vesStndDefindBody",
400         "func": "const timeStamp = new Date(msg.payload);\nmsg.payload = {\n    schemaReference: 'https://gerrit.o-ran-sc.org/r/gitweb?p=scp/oam/modeling.git;a=blob_plain;f=data-model/yang/working/o-ran-sc/template/yes-o1-notify-pnf-registration.yang',\n    stndDefinedFieldsVersion: '1.0',\n    data: {\n        'object-class': 'managed-element',\n        'object-instance': global.get('os').hostname(),\n        'notification-identifier': Number(timeStamp),\n        'notification-type': msg.topic,\n        'event-time': timeStamp.toISOString(),\n        systemDN: \"/\",\n        'vendor-pen': '57272',\n        'vendor-name': 'highstreet technologies USA Corp.',\n        'oam-host': global.get('os').networkInterfaces()['eth0'][0].address || global.get('os').hostname(),\n        'oam-port': 830,\n        'unit-family': 'O-RAN-SC',\n        'unit-type': 'PNF2',\n        'restart-reason': 'system-reboot',\n        'serial-number': 'O-RAN-SC-PNF2-10.10.10.11-pnf2 BestInClass',\n        'macAddress': global.get('os').networkInterfaces()['eth0'][0].mac || '00:00:00:00:00:00',\n        'modelNumber': 'O-RAN-SC Model',\n        'softwareVersion': '2.3.5',\n        'manufactureDate': '2021-01-16',\n        'lastServiceDate': '2021-03-26',\n        'transport-protocol': 'SSH',\n        'username': 'netconf',\n        'password': 'netconf!',\n        'reconnect-on-changed-schema': 'false',\n        'sleep-factor': '1.5',\n        'tcpOnly': 'false',\n        'connection-timeout': '20000',\n        'max-connection-attempts': '100',\n        'between-attempts-timeout': '2000',\n        'keepalive-delay': '120'\n    }\n};\nmsg.topic = \"stndDefinedFields\";\nreturn msg;",
401         "outputs": 1,
402         "noerr": 0,
403         "initialize": "",
404         "finalize": "",
405         "libs": [],
406         "x": 470,
407         "y": 180,
408         "wires": [
409             [
410                 "f65b1c13e0243ef6"
411             ]
412         ]
413     },
414     {
415         "id": "5c6f93626fac58b5",
416         "type": "function",
417         "z": "51e83a0892da060e",
418         "name": "vesStndDefindBody",
419         "func": "const timeStamp = new Date(msg.payload);\nmsg.payload = {\n  schemaReference: 'https://gerrit.o-ran-sc.org/r/gitweb?p=scp/oam/modeling.git;a=blob_plain;f=data-model/oas3/experimental/o-ran-sc-du-hello-world-pm-streaming-oas3.yaml#components/schemas/performance-measurement-job',\n    stndDefinedFieldsVersion: '1.0',\n    data: {\n        id: 'id:' + Number(timeStamp),\n        'start-time': timeStamp.toISOString(),\n        'administrative-state': 'unlocked',\n        'operational-state': 'enabled',\n        'user-label': 'pm-kpis',\n        'job-tag': '1a0827b7-25e7-4292-959f-6b8ab46f14c2',\n        'granularity-period': 900,\n        measurements: [\n          {\n            'measurement-type-instance-reference': 'user-equipment-average-throughput-downlink',\n            value: 300000000,\n            unit: 'kBis/s'\n          },\n          {\n            'measurement-type-instance-reference': 'user-equipment-average-throughput-uplink',\n            value: 300000000,\n            unit: 'kBis/s'\n          }\n        ]\n    }\n};\nmsg.topic = \"stndDefinedFields\";\nreturn msg;\n\n",
420         "outputs": 1,
421         "noerr": 0,
422         "initialize": "",
423         "finalize": "",
424         "libs": [],
425         "x": 470,
426         "y": 220,
427         "wires": [
428             [
429                 "f65b1c13e0243ef6"
430             ]
431         ]
432     },
433     {
434         "id": "910dfec7eb74df65",
435         "type": "inject",
436         "z": "c5746e29f53f72ce",
437         "name": "pnfRegistration",
438         "props": [
439             {
440                 "p": "payload"
441             },
442             {
443                 "p": "topic",
444                 "vt": "str"
445             }
446         ],
447         "repeat": "",
448         "crontab": "",
449         "once": false,
450         "onceDelay": 0.1,
451         "topic": "pnfRegistration",
452         "payload": "",
453         "payloadType": "date",
454         "x": 120,
455         "y": 80,
456         "wires": [
457             [
458                 "e5f66f4bd6777ca0"
459             ]
460         ]
461     },
462     {
463         "id": "562063a080cb99d6",
464         "type": "debug",
465         "z": "c5746e29f53f72ce",
466         "name": "eventData",
467         "active": true,
468         "tosidebar": true,
469         "console": false,
470         "tostatus": false,
471         "complete": "payload",
472         "targetType": "msg",
473         "statusVal": "",
474         "statusType": "auto",
475         "x": 950,
476         "y": 220,
477         "wires": []
478     },
479     {
480         "id": "172060688d87f510",
481         "type": "inject",
482         "z": "c5746e29f53f72ce",
483         "d": true,
484         "name": "notifyHeartbeat",
485         "props": [
486             {
487                 "p": "payload"
488             },
489             {
490                 "p": "topic",
491                 "vt": "str"
492             }
493         ],
494         "repeat": "5",
495         "crontab": "",
496         "once": true,
497         "onceDelay": 0.1,
498         "topic": "notifyHeartbeat",
499         "payload": "",
500         "payloadType": "date",
501         "x": 130,
502         "y": 320,
503         "wires": [
504             [
505                 "e5f66f4bd6777ca0"
506             ]
507         ]
508     },
509     {
510         "id": "311c3b5d3d73fc24",
511         "type": "inject",
512         "z": "c5746e29f53f72ce",
513         "name": "notifyFileReady",
514         "props": [
515             {
516                 "p": "payload"
517             },
518             {
519                 "p": "topic",
520                 "vt": "str"
521             }
522         ],
523         "repeat": "",
524         "crontab": "",
525         "once": false,
526         "onceDelay": 0.1,
527         "topic": "notifyFileReady",
528         "payload": "",
529         "payloadType": "date",
530         "x": 120,
531         "y": 360,
532         "wires": [
533             [
534                 "e5f66f4bd6777ca0"
535             ]
536         ]
537     },
538     {
539         "id": "5437e3fdfca300c9",
540         "type": "http request",
541         "z": "c5746e29f53f72ce",
542         "name": "",
543         "method": "GET",
544         "ret": "txt",
545         "paytoqs": "ignore",
546         "url": "",
547         "tls": "7b2f4859e5963695",
548         "persist": true,
549         "proxy": "",
550         "insecureHTTPParser": true,
551         "authType": "",
552         "senderr": false,
553         "headers": [],
554         "x": 630,
555         "y": 220,
556         "wires": [
557             [
558                 "dc576b6355478428"
559             ]
560         ]
561     },
562     {
563         "id": "dc576b6355478428",
564         "type": "function",
565         "z": "c5746e29f53f72ce",
566         "name": "JSON",
567         "func": "const string = msg.payload;\nconst array = JSON.parse(string);\nif (Array.isArray(array)) {\n    msg.payload = array.map( (item) => {\n        if (typeof item === 'string' || item instanceof String) {\n            return JSON.parse(item);\n        }\n    });\n} else {\n    msg.payload = array;\n}\nreturn msg;",
568         "outputs": 1,
569         "noerr": 0,
570         "initialize": "",
571         "finalize": "",
572         "libs": [],
573         "x": 790,
574         "y": 220,
575         "wires": [
576             [
577                 "562063a080cb99d6"
578             ]
579         ]
580     },
581     {
582         "id": "e5f66f4bd6777ca0",
583         "type": "function",
584         "z": "c5746e29f53f72ce",
585         "name": "SET msg.url",
586         "func": "const base = 'https://messages.smo.o-ran-sc.org';\nconst path = 'events';\nconst urlMapping = {\n    pnfRegistration: \"unauthenticated.VES_PNFREG_OUTPUT\",\n    o1NotifyPnfRegistration: \"unauthenticated.VES_O1_NOTIFY_PNF_REGISTRATION_OUTPUT\",\n    oRanScDuHelloWorldPmStreaming: \"unauthenticated.VES_O_RAN_SC_HELLO_WORLD_PM_STREAMING_OUTPUT\",\n    notifyHeartbeat: \"unauthenticated.SEC_3GPP_HEARTBEAT_OUTPUT\",\n    notifyFileReady: \"unauthenticated.VES_FILE_READY_OUTPUT\"\n};\nmsg.url = [base, path, urlMapping[msg.topic], '1','1'].join('/');\nreturn msg;",
587         "outputs": 1,
588         "noerr": 0,
589         "initialize": "",
590         "finalize": "",
591         "libs": [],
592         "x": 450,
593         "y": 220,
594         "wires": [
595             [
596                 "5437e3fdfca300c9"
597             ]
598         ]
599     },
600     {
601         "id": "42275e9c12f8e52b",
602         "type": "comment",
603         "z": "c5746e29f53f72ce",
604         "name": "from O-RAN-SC",
605         "info": "",
606         "x": 100,
607         "y": 140,
608         "wires": []
609     },
610     {
611         "id": "e07fa97ebc66dce0",
612         "type": "comment",
613         "z": "c5746e29f53f72ce",
614         "name": "from ONAP",
615         "info": "",
616         "x": 90,
617         "y": 40,
618         "wires": []
619     },
620     {
621         "id": "44b8c2cc138777f1",
622         "type": "comment",
623         "z": "c5746e29f53f72ce",
624         "name": "from SA5 R-18 branch",
625         "info": "",
626         "x": 120,
627         "y": 280,
628         "wires": []
629     },
630     {
631         "id": "4480e5473a65a757",
632         "type": "inject",
633         "z": "c5746e29f53f72ce",
634         "name": "oRanScDuHelloWorldPmStreaming",
635         "props": [
636             {
637                 "p": "payload"
638             },
639             {
640                 "p": "topic",
641                 "vt": "str"
642             }
643         ],
644         "repeat": "",
645         "crontab": "",
646         "once": false,
647         "onceDelay": 0.1,
648         "topic": "oRanScDuHelloWorldPmStreaming",
649         "payload": "",
650         "payloadType": "date",
651         "x": 180,
652         "y": 220,
653         "wires": [
654             [
655                 "e5f66f4bd6777ca0"
656             ]
657         ]
658     },
659     {
660         "id": "52f22ee054e5b4ac",
661         "type": "inject",
662         "z": "c5746e29f53f72ce",
663         "name": "o1NotifyPnfRegistration",
664         "props": [
665             {
666                 "p": "payload"
667             },
668             {
669                 "p": "topic",
670                 "vt": "str"
671             }
672         ],
673         "repeat": "",
674         "crontab": "",
675         "once": false,
676         "onceDelay": 0.1,
677         "topic": "o1NotifyPnfRegistration",
678         "payload": "",
679         "payloadType": "date",
680         "x": 140,
681         "y": 180,
682         "wires": [
683             [
684                 "e5f66f4bd6777ca0"
685             ]
686         ]
687     }
688 ]