General updates for flows
[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": "7ba02ed596e8cde5",
20         "type": "tab",
21         "label": "OpenFronthaul",
22         "disabled": false,
23         "info": "",
24         "env": []
25     },
26     {
27         "id": "7b2f4859e5963695",
28         "type": "tls-config",
29         "name": "",
30         "cert": "",
31         "key": "",
32         "ca": "",
33         "certname": "",
34         "keyname": "",
35         "caname": "",
36         "servername": "",
37         "verifyservercert": false,
38         "alpnprotocol": ""
39     },
40     {
41         "id": "91a1f8d3ce84ceda",
42         "type": "inject",
43         "z": "51e83a0892da060e",
44         "name": "notifyFileReady",
45         "props": [
46             {
47                 "p": "payload"
48             },
49             {
50                 "p": "topic",
51                 "vt": "str"
52             }
53         ],
54         "repeat": "",
55         "crontab": "",
56         "once": false,
57         "onceDelay": 0.1,
58         "topic": "notifyFileReady",
59         "payload": "",
60         "payloadType": "date",
61         "x": 120,
62         "y": 500,
63         "wires": [
64             [
65                 "b5533c10604af5a6",
66                 "f8e64d1cb25eb4ab"
67             ]
68         ]
69     },
70     {
71         "id": "b5533c10604af5a6",
72         "type": "function",
73         "z": "51e83a0892da060e",
74         "name": "vesHeader",
75         "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    notifyFilePreparationError: 'file-ready',\n    notifyNewAlarm: '3GPP-FaultSupervision',\n    notifyChangedAlarm: '3GPP-FaultSupervision',\n    notifyChangedAlarmGeneral: '3GPP-FaultSupervision',\n    notifyAckStateChanged: '3GPP-FaultSupervision',\n    notifyCorrelatedNotificationChanged: '3GPP-FaultSupervision',\n    notifyComments: '3GPP-FaultSupervision',\n    notifyClearedAlarm: '3GPP-FaultSupervision',\n    notifyAlarmListRebuilt: '3GPP-FaultSupervision',\n    notifyPotentialFaultyAlarmList: '3GPP-FaultSupervision'\n};\nconst topic = namespaces[eventType] || msg.topic;\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: topic,\n    version: \"4.1\",\n    vesEventListenerVersion: \"7.2.1\"\n}\nreturn msg;",
76         "outputs": 1,
77         "noerr": 0,
78         "initialize": "",
79         "finalize": "",
80         "libs": [],
81         "x": 430,
82         "y": 260,
83         "wires": [
84             [
85                 "f65b1c13e0243ef6"
86             ]
87         ]
88     },
89     {
90         "id": "f8e64d1cb25eb4ab",
91         "type": "function",
92         "z": "51e83a0892da060e",
93         "name": "vesStndDefindBody",
94         "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;",
95         "outputs": 1,
96         "noerr": 0,
97         "initialize": "",
98         "finalize": "",
99         "libs": [],
100         "x": 470,
101         "y": 500,
102         "wires": [
103             [
104                 "f65b1c13e0243ef6"
105             ]
106         ]
107     },
108     {
109         "id": "f65b1c13e0243ef6",
110         "type": "join",
111         "z": "51e83a0892da060e",
112         "name": "",
113         "mode": "custom",
114         "build": "object",
115         "property": "payload",
116         "propertyType": "msg",
117         "key": "topic",
118         "joiner": "\\n",
119         "joinerType": "str",
120         "accumulate": false,
121         "timeout": "",
122         "count": "2",
123         "reduceRight": false,
124         "reduceExp": "",
125         "reduceInit": "",
126         "reduceInitType": "",
127         "reduceFixup": "",
128         "x": 690,
129         "y": 280,
130         "wires": [
131             [
132                 "1d6949a57bce82ab"
133             ]
134         ]
135     },
136     {
137         "id": "1d6949a57bce82ab",
138         "type": "function",
139         "z": "51e83a0892da060e",
140         "name": "http-preparation",
141         "func": "const protocol = env.get('VES_ENDPOINT_PROTOCOL');\nconst host = env.get('VES_ENDPOINT_HOST');\nconst port = env.get('VES_ENDPOINT_PORT');\nconst base = protocol + '://' + host + ':' + port;\nconst path = 'eventListener/v7';\nmsg.url = [base, path].join('/');\n\nconst user = env.get('VES_ENDPOINT_USERNAME');\nconst password = env.get('VES_ENDPOINT_PASSWORD');\nconst auth = Buffer.from([user, password].join(':')).toString('base64')\nconst basicAuth = ['Basic', auth].join(' ');\n\nmsg.headers = {};\nmsg.headers['Content-Type'] = 'application/json';\nmsg.headers['Accept'] = 'application/json';\nmsg.headers['Authorization'] = basicAuth;\n\nmsg.payload = {\n  event: msg.payload\n};\nreturn msg;",
142         "outputs": 1,
143         "noerr": 0,
144         "initialize": "",
145         "finalize": "",
146         "libs": [],
147         "x": 840,
148         "y": 280,
149         "wires": [
150             [
151                 "27e1d8d1e9b8fd93",
152                 "9ab2b4d9caf52c14"
153             ]
154         ]
155     },
156     {
157         "id": "27e1d8d1e9b8fd93",
158         "type": "http request",
159         "z": "51e83a0892da060e",
160         "name": "",
161         "method": "POST",
162         "ret": "txt",
163         "paytoqs": "ignore",
164         "url": "",
165         "tls": "7b2f4859e5963695",
166         "persist": true,
167         "proxy": "",
168         "insecureHTTPParser": false,
169         "authType": "",
170         "senderr": false,
171         "headers": [],
172         "x": 1030,
173         "y": 280,
174         "wires": [
175             [
176                 "f3412bcb9e134063"
177             ]
178         ]
179     },
180     {
181         "id": "f3412bcb9e134063",
182         "type": "debug",
183         "z": "51e83a0892da060e",
184         "name": "VesCollectorResponse",
185         "active": true,
186         "tosidebar": false,
187         "console": true,
188         "tostatus": true,
189         "complete": "payload",
190         "targetType": "msg",
191         "statusVal": "payload",
192         "statusType": "auto",
193         "x": 1230,
194         "y": 280,
195         "wires": []
196     },
197     {
198         "id": "b5e1e7a83051b5b6",
199         "type": "inject",
200         "z": "51e83a0892da060e",
201         "name": "pnfRegistration",
202         "props": [
203             {
204                 "p": "payload"
205             },
206             {
207                 "p": "topic",
208                 "vt": "str"
209             }
210         ],
211         "repeat": "",
212         "crontab": "",
213         "once": false,
214         "onceDelay": 0.1,
215         "topic": "pnfRegistration",
216         "payload": "",
217         "payloadType": "date",
218         "x": 120,
219         "y": 80,
220         "wires": [
221             [
222                 "bd43459cf3907a5a",
223                 "b5533c10604af5a6"
224             ]
225         ]
226     },
227     {
228         "id": "bd43459cf3907a5a",
229         "type": "function",
230         "z": "51e83a0892da060e",
231         "name": "vesBody",
232         "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;",
233         "outputs": 1,
234         "noerr": 0,
235         "initialize": "",
236         "finalize": "",
237         "libs": [],
238         "x": 440,
239         "y": 80,
240         "wires": [
241             [
242                 "f65b1c13e0243ef6"
243             ]
244         ]
245     },
246     {
247         "id": "9ab2b4d9caf52c14",
248         "type": "debug",
249         "z": "51e83a0892da060e",
250         "name": "ves-message-data",
251         "active": true,
252         "tosidebar": false,
253         "console": false,
254         "tostatus": true,
255         "complete": "payload",
256         "targetType": "msg",
257         "statusVal": "payload.event.commonEventHeader.stndDefinedNamespace",
258         "statusType": "msg",
259         "x": 1050,
260         "y": 220,
261         "wires": []
262     },
263     {
264         "id": "7d589030272c0a94",
265         "type": "inject",
266         "z": "51e83a0892da060e",
267         "d": true,
268         "name": "notifyHeartbeat",
269         "props": [
270             {
271                 "p": "payload"
272             },
273             {
274                 "p": "topic",
275                 "vt": "str"
276             }
277         ],
278         "repeat": "3",
279         "crontab": "",
280         "once": true,
281         "onceDelay": 0.1,
282         "topic": "notifyHeartbeat",
283         "payload": "",
284         "payloadType": "date",
285         "x": 130,
286         "y": 420,
287         "wires": [
288             [
289                 "b5533c10604af5a6",
290                 "ab3bc53f12d28d8f"
291             ]
292         ]
293     },
294     {
295         "id": "ab3bc53f12d28d8f",
296         "type": "function",
297         "z": "51e83a0892da060e",
298         "name": "vesStndDefindBody",
299         "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;",
300         "outputs": 1,
301         "noerr": 0,
302         "initialize": "",
303         "finalize": "",
304         "libs": [],
305         "x": 470,
306         "y": 420,
307         "wires": [
308             [
309                 "f65b1c13e0243ef6"
310             ]
311         ]
312     },
313     {
314         "id": "1bada25ea9a5aa01",
315         "type": "comment",
316         "z": "51e83a0892da060e",
317         "name": "from SA5 R-18 branch",
318         "info": "",
319         "x": 120,
320         "y": 380,
321         "wires": []
322     },
323     {
324         "id": "f4f4670363ec760f",
325         "type": "comment",
326         "z": "51e83a0892da060e",
327         "name": "from O-RAN-SC",
328         "info": "",
329         "x": 100,
330         "y": 140,
331         "wires": []
332     },
333     {
334         "id": "e4dc4647c388ab77",
335         "type": "comment",
336         "z": "51e83a0892da060e",
337         "name": "from ONAP",
338         "info": "",
339         "x": 90,
340         "y": 40,
341         "wires": []
342     },
343     {
344         "id": "fb6413675e22dc71",
345         "type": "inject",
346         "z": "51e83a0892da060e",
347         "name": "o1NotifyPnfRegistration",
348         "props": [
349             {
350                 "p": "payload"
351             },
352             {
353                 "p": "topic",
354                 "vt": "str"
355             }
356         ],
357         "repeat": "",
358         "crontab": "",
359         "once": false,
360         "onceDelay": 0.1,
361         "topic": "o1NotifyPnfRegistration",
362         "payload": "",
363         "payloadType": "date",
364         "x": 140,
365         "y": 180,
366         "wires": [
367             [
368                 "b5533c10604af5a6",
369                 "51f5fa54867b7e65"
370             ]
371         ]
372     },
373     {
374         "id": "73beab79d5024f4b",
375         "type": "inject",
376         "z": "51e83a0892da060e",
377         "name": "oRanScDuHelloWorldPmStreaming",
378         "props": [
379             {
380                 "p": "payload"
381             },
382             {
383                 "p": "topic",
384                 "vt": "str"
385             }
386         ],
387         "repeat": "",
388         "crontab": "",
389         "once": false,
390         "onceDelay": 0.1,
391         "topic": "oRanScDuHelloWorldPmStreaming",
392         "payload": "",
393         "payloadType": "date",
394         "x": 180,
395         "y": 220,
396         "wires": [
397             [
398                 "5c6f93626fac58b5",
399                 "b5533c10604af5a6"
400             ]
401         ]
402     },
403     {
404         "id": "51f5fa54867b7e65",
405         "type": "function",
406         "z": "51e83a0892da060e",
407         "name": "vesStndDefindBody",
408         "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;",
409         "outputs": 1,
410         "noerr": 0,
411         "initialize": "",
412         "finalize": "",
413         "libs": [],
414         "x": 470,
415         "y": 180,
416         "wires": [
417             [
418                 "f65b1c13e0243ef6"
419             ]
420         ]
421     },
422     {
423         "id": "5c6f93626fac58b5",
424         "type": "function",
425         "z": "51e83a0892da060e",
426         "name": "vesStndDefindBody",
427         "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",
428         "outputs": 1,
429         "noerr": 0,
430         "initialize": "",
431         "finalize": "",
432         "libs": [],
433         "x": 470,
434         "y": 220,
435         "wires": [
436             [
437                 "f65b1c13e0243ef6"
438             ]
439         ]
440     },
441     {
442         "id": "456597d0477d239f",
443         "type": "inject",
444         "z": "51e83a0892da060e",
445         "name": "o-ran-file-management:file-download-event",
446         "props": [
447             {
448                 "p": "payload"
449             },
450             {
451                 "p": "topic",
452                 "vt": "str"
453             }
454         ],
455         "repeat": "",
456         "crontab": "",
457         "once": false,
458         "onceDelay": 0.1,
459         "topic": "o-ran-file-management:file-download-event",
460         "payload": "",
461         "payloadType": "date",
462         "x": 820,
463         "y": 820,
464         "wires": [
465             [
466                 "f40d1d16c7044edc",
467                 "b5533c10604af5a6"
468             ]
469         ]
470     },
471     {
472         "id": "f40d1d16c7044edc",
473         "type": "function",
474         "z": "51e83a0892da060e",
475         "name": "vesStndDefindBody",
476         "func": "const eventTime = new Date(msg.payload).toISOString();\nmsg.payload = {\n    schemaReference: 'https://gerrit.o-ran-sc.org/r/gitweb?p=scp/oam/modeling.git;a=blob_plain;f=data-model/yang/published/o-ran/ru-fh/o-ran-file-management.yang#components/schemas/ofhm-event-stream',\n    stndDefinedFieldsVersion: '1.0',\n    data: {\n        'ietf:notification': {\n            'eventTime': eventTime,\n            'o-ran-file-management:file-download-event': {\n                'local-logical-file-path': 'o-ran/log',\n                'remote-file-path': 'ftpes://username@ftpes.oam.smo.o-ran-sc/downloads',\n                'status': 'FAILURE',\n                'reject-reason': 'FTPes Server not reachable.'\n            }\n        }\n    }\n};\nmsg.topic = 'stndDefinedFields';\nreturn msg;",
477         "outputs": 1,
478         "noerr": 0,
479         "initialize": "",
480         "finalize": "",
481         "libs": [],
482         "x": 1150,
483         "y": 820,
484         "wires": [
485             [
486                 "f65b1c13e0243ef6"
487             ]
488         ]
489     },
490     {
491         "id": "3d8f8180f204d804",
492         "type": "inject",
493         "z": "51e83a0892da060e",
494         "name": "o-ran-file-management:file-upload-notification",
495         "props": [
496             {
497                 "p": "payload"
498             },
499             {
500                 "p": "topic",
501                 "vt": "str"
502             }
503         ],
504         "repeat": "",
505         "crontab": "",
506         "once": false,
507         "onceDelay": 0.1,
508         "topic": "o-ran-file-management:file-upload-notification",
509         "payload": "",
510         "payloadType": "date",
511         "x": 830,
512         "y": 860,
513         "wires": [
514             [
515                 "d473bf42d8169599",
516                 "b5533c10604af5a6"
517             ]
518         ]
519     },
520     {
521         "id": "d473bf42d8169599",
522         "type": "function",
523         "z": "51e83a0892da060e",
524         "name": "vesStndDefindBody",
525         "func": "const eventTime = new Date(msg.payload).toISOString();\nmsg.payload = {\n    schemaReference: 'https://gerrit.o-ran-sc.org/r/gitweb?p=scp/oam/modeling.git;a=blob_plain;f=data-model/yang/published/o-ran/ru-fh/o-ran-file-management.yang#components/schemas/ofhm-event-stream',\n    stndDefinedFieldsVersion: '1.0',\n    data: {\n        'ietf:notification': {\n            'eventTime': eventTime,\n            'o-ran-file-management:file-upload-notification': {\n                'local-logical-file-path': 'o-ran/log',\n                'remote-file-path': 'ftpes://username@ftpes.oam.smo.o-ran-sc/downloads',\n                'status': 'FAILURE',\n                'reject-reason': 'FTPes Server not reachable.'\n            }\n        }\n    }\n};\nmsg.topic = 'stndDefinedFields';\nreturn msg;",
526         "outputs": 1,
527         "noerr": 0,
528         "initialize": "",
529         "finalize": "",
530         "libs": [],
531         "x": 1150,
532         "y": 860,
533         "wires": [
534             [
535                 "f65b1c13e0243ef6"
536             ]
537         ]
538     },
539     {
540         "id": "ec85f2a64f79450d",
541         "type": "inject",
542         "z": "51e83a0892da060e",
543         "name": "o-ran-supervision:supervision-notification",
544         "props": [
545             {
546                 "p": "payload"
547             },
548             {
549                 "p": "topic",
550                 "vt": "str"
551             }
552         ],
553         "repeat": "",
554         "crontab": "",
555         "once": false,
556         "onceDelay": 0.1,
557         "topic": "o-ran-supervision:supervision-notification",
558         "payload": "",
559         "payloadType": "date",
560         "x": 820,
561         "y": 1140,
562         "wires": [
563             [
564                 "96ea9b3d7d4121dc",
565                 "b5533c10604af5a6"
566             ]
567         ]
568     },
569     {
570         "id": "96ea9b3d7d4121dc",
571         "type": "function",
572         "z": "51e83a0892da060e",
573         "name": "vesStndDefindBody",
574         "func": "const eventTime = new Date(msg.payload).toISOString();\nmsg.payload = {\n    schemaReference: 'https://gerrit.o-ran-sc.org/r/gitweb?p=scp/oam/modeling.git;a=blob_plain;f=data-model/yang/published/o-ran/ru-fh/o-ran-supervision.yang#components/schemas/ofhm-event-stream',\n    stndDefinedFieldsVersion: '1.0',\n    data: {\n        'ietf:notification': {\n            'eventTime': eventTime,\n            'o-ran-supervision:supervision-notification': {\n                'session-id': 999999\n            }\n        }\n    }\n};\nmsg.topic = 'stndDefinedFields';\nreturn msg;",
575         "outputs": 1,
576         "noerr": 0,
577         "initialize": "",
578         "finalize": "",
579         "libs": [],
580         "x": 1150,
581         "y": 1140,
582         "wires": [
583             [
584                 "f65b1c13e0243ef6"
585             ]
586         ]
587     },
588     {
589         "id": "027098b9ba7cd1e6",
590         "type": "comment",
591         "z": "51e83a0892da060e",
592         "name": "from OpenFronthaul Management-Plane",
593         "info": "",
594         "x": 780,
595         "y": 380,
596         "wires": []
597     },
598     {
599         "id": "e80ff3c876a343e5",
600         "type": "inject",
601         "z": "51e83a0892da060e",
602         "d": true,
603         "name": "o-ran-ald-port:dc-enabled-status-change",
604         "props": [
605             {
606                 "p": "payload"
607             },
608             {
609                 "p": "topic",
610                 "vt": "str"
611             }
612         ],
613         "repeat": "",
614         "crontab": "",
615         "once": false,
616         "onceDelay": 0.1,
617         "topic": "o-ran-ald-port:dc-enabled-status-change",
618         "payload": "",
619         "payloadType": "date",
620         "x": 820,
621         "y": 420,
622         "wires": [
623             []
624         ]
625     },
626     {
627         "id": "c61fe1f3bdb954d5",
628         "type": "inject",
629         "z": "51e83a0892da060e",
630         "d": true,
631         "name": "o-ran-ald-port:overcurrent-report",
632         "props": [
633             {
634                 "p": "payload"
635             },
636             {
637                 "p": "topic",
638                 "vt": "str"
639             }
640         ],
641         "repeat": "",
642         "crontab": "",
643         "once": false,
644         "onceDelay": 0.1,
645         "topic": "o-ran-ald-port:overcurrent-report",
646         "payload": "",
647         "payloadType": "date",
648         "x": 790,
649         "y": 460,
650         "wires": [
651             []
652         ]
653     },
654     {
655         "id": "939ac153e888cc93",
656         "type": "inject",
657         "z": "51e83a0892da060e",
658         "d": true,
659         "name": "o-ran-antenna-calibration:antenna-calibration-coordinated",
660         "props": [
661             {
662                 "p": "payload"
663             },
664             {
665                 "p": "topic",
666                 "vt": "str"
667             }
668         ],
669         "repeat": "",
670         "crontab": "",
671         "once": false,
672         "onceDelay": 0.1,
673         "topic": "o-ran-antenna-calibration:antenna-calibration-coordinated",
674         "payload": "",
675         "payloadType": "date",
676         "x": 870,
677         "y": 500,
678         "wires": [
679             []
680         ]
681     },
682     {
683         "id": "f7834ee33e7731fb",
684         "type": "inject",
685         "z": "51e83a0892da060e",
686         "d": true,
687         "name": "o-ran-antenna-calibration:antenna-calibration-multiple-time-resource-params",
688         "props": [
689             {
690                 "p": "payload"
691             },
692             {
693                 "p": "topic",
694                 "vt": "str"
695             }
696         ],
697         "repeat": "",
698         "crontab": "",
699         "once": false,
700         "onceDelay": 0.1,
701         "topic": "o-ran-antenna-calibration:antenna-calibration-multiple-time-resource-params",
702         "payload": "",
703         "payloadType": "date",
704         "x": 930,
705         "y": 540,
706         "wires": [
707             []
708         ]
709     },
710     {
711         "id": "8e98d432fcaef200",
712         "type": "inject",
713         "z": "51e83a0892da060e",
714         "d": true,
715         "name": "o-ran-antenna-calibration:antenna-calibration-required",
716         "props": [
717             {
718                 "p": "payload"
719             },
720             {
721                 "p": "topic",
722                 "vt": "str"
723             }
724         ],
725         "repeat": "",
726         "crontab": "",
727         "once": false,
728         "onceDelay": 0.1,
729         "topic": "o-ran-antenna-calibration:antenna-calibration-required",
730         "payload": "",
731         "payloadType": "date",
732         "x": 860,
733         "y": 580,
734         "wires": [
735             []
736         ]
737     },
738     {
739         "id": "554cb2ce5934b36c",
740         "type": "inject",
741         "z": "51e83a0892da060e",
742         "d": true,
743         "name": "o-ran-antenna-calibration:antenna-calibration-result",
744         "props": [
745             {
746                 "p": "payload"
747             },
748             {
749                 "p": "topic",
750                 "vt": "str"
751             }
752         ],
753         "repeat": "",
754         "crontab": "",
755         "once": false,
756         "onceDelay": 0.1,
757         "topic": "o-ran-antenna-calibration:antenna-calibration-result",
758         "payload": "",
759         "payloadType": "date",
760         "x": 850,
761         "y": 620,
762         "wires": [
763             []
764         ]
765     },
766     {
767         "id": "391ce0bfa3b8003d",
768         "type": "inject",
769         "z": "51e83a0892da060e",
770         "d": true,
771         "name": "o-ran-beamforming:beamforming-information-update",
772         "props": [
773             {
774                 "p": "payload"
775             },
776             {
777                 "p": "topic",
778                 "vt": "str"
779             }
780         ],
781         "repeat": "",
782         "crontab": "",
783         "once": false,
784         "onceDelay": 0.1,
785         "topic": "o-ran-beamforming:beamforming-information-update",
786         "payload": "",
787         "payloadType": "date",
788         "x": 850,
789         "y": 660,
790         "wires": [
791             []
792         ]
793     },
794     {
795         "id": "966ca15e87b419f5",
796         "type": "inject",
797         "z": "51e83a0892da060e",
798         "d": true,
799         "name": "o-ran-beamforming:capability-group-beamforming-information-update",
800         "props": [
801             {
802                 "p": "payload"
803             },
804             {
805                 "p": "topic",
806                 "vt": "str"
807             }
808         ],
809         "repeat": "",
810         "crontab": "",
811         "once": false,
812         "onceDelay": 0.1,
813         "topic": "o-ran-beamforming:capability-group-beamforming-information-update",
814         "payload": "",
815         "payloadType": "date",
816         "x": 900,
817         "y": 700,
818         "wires": [
819             []
820         ]
821     },
822     {
823         "id": "243cffacec890e26",
824         "type": "inject",
825         "z": "51e83a0892da060e",
826         "d": true,
827         "name": "o-ran-beamforming:predefined-beam-tilt-offset-complete",
828         "props": [
829             {
830                 "p": "payload"
831             },
832             {
833                 "p": "topic",
834                 "vt": "str"
835             }
836         ],
837         "repeat": "",
838         "crontab": "",
839         "once": false,
840         "onceDelay": 0.1,
841         "topic": "o-ran-beamforming:predefined-beam-tilt-offset-complete",
842         "payload": "",
843         "payloadType": "date",
844         "x": 860,
845         "y": 740,
846         "wires": [
847             []
848         ]
849     },
850     {
851         "id": "843c4093e2ddd914",
852         "type": "inject",
853         "z": "51e83a0892da060e",
854         "d": true,
855         "name": "o-ran-externalio:external-input-change",
856         "props": [
857             {
858                 "p": "payload"
859             },
860             {
861                 "p": "topic",
862                 "vt": "str"
863             }
864         ],
865         "repeat": "",
866         "crontab": "",
867         "once": false,
868         "onceDelay": 0.1,
869         "topic": "o-ran-externalio:external-input-change",
870         "payload": "",
871         "payloadType": "date",
872         "x": 810,
873         "y": 780,
874         "wires": [
875             []
876         ]
877     },
878     {
879         "id": "627b31335d7e5b6f",
880         "type": "inject",
881         "z": "51e83a0892da060e",
882         "d": true,
883         "name": "o-ran-fm:alarm-notif",
884         "props": [
885             {
886                 "p": "payload"
887             },
888             {
889                 "p": "topic",
890                 "vt": "str"
891             }
892         ],
893         "repeat": "",
894         "crontab": "",
895         "once": false,
896         "onceDelay": 0.1,
897         "topic": "o-ran-fm:alarm-notif",
898         "payload": "",
899         "payloadType": "date",
900         "x": 750,
901         "y": 900,
902         "wires": [
903             []
904         ]
905     },
906     {
907         "id": "87c1e3e0e87bd7c1",
908         "type": "inject",
909         "z": "51e83a0892da060e",
910         "d": true,
911         "name": "o-ran-laa-operations:measurement-result",
912         "props": [
913             {
914                 "p": "payload"
915             },
916             {
917                 "p": "topic",
918                 "vt": "str"
919             }
920         ],
921         "repeat": "",
922         "crontab": "",
923         "once": false,
924         "onceDelay": 0.1,
925         "topic": "o-ran-laa-operations:measurement-result",
926         "payload": "",
927         "payloadType": "date",
928         "x": 820,
929         "y": 940,
930         "wires": [
931             []
932         ]
933     },
934     {
935         "id": "27d98684362bee02",
936         "type": "inject",
937         "z": "51e83a0892da060e",
938         "d": true,
939         "name": "o-ran-performance-management:measurement-result-stats",
940         "props": [
941             {
942                 "p": "payload"
943             },
944             {
945                 "p": "topic",
946                 "vt": "str"
947             }
948         ],
949         "repeat": "",
950         "crontab": "",
951         "once": false,
952         "onceDelay": 0.1,
953         "topic": "o-ran-performance-management:measurement-result-stats",
954         "payload": "",
955         "payloadType": "date",
956         "x": 870,
957         "y": 980,
958         "wires": [
959             []
960         ]
961     },
962     {
963         "id": "03292a70960f7d50",
964         "type": "inject",
965         "z": "51e83a0892da060e",
966         "d": true,
967         "name": "o-ran-software-management:activation-event",
968         "props": [
969             {
970                 "p": "payload"
971             },
972             {
973                 "p": "topic",
974                 "vt": "str"
975             }
976         ],
977         "repeat": "",
978         "crontab": "",
979         "once": false,
980         "onceDelay": 0.1,
981         "topic": "o-ran-software-management:activation-event",
982         "payload": "",
983         "payloadType": "date",
984         "x": 830,
985         "y": 1020,
986         "wires": [
987             []
988         ]
989     },
990     {
991         "id": "652dbf9c0ef73057",
992         "type": "inject",
993         "z": "51e83a0892da060e",
994         "d": true,
995         "name": "o-ran-software-management:download-event",
996         "props": [
997             {
998                 "p": "payload"
999             },
1000             {
1001                 "p": "topic",
1002                 "vt": "str"
1003             }
1004         ],
1005         "repeat": "",
1006         "crontab": "",
1007         "once": false,
1008         "onceDelay": 0.1,
1009         "topic": "o-ran-software-management:download-event",
1010         "payload": "",
1011         "payloadType": "date",
1012         "x": 830,
1013         "y": 1060,
1014         "wires": [
1015             []
1016         ]
1017     },
1018     {
1019         "id": "0636add6c6d4d5e2",
1020         "type": "inject",
1021         "z": "51e83a0892da060e",
1022         "d": true,
1023         "name": "o-ran-software-management:install-event",
1024         "props": [
1025             {
1026                 "p": "payload"
1027             },
1028             {
1029                 "p": "topic",
1030                 "vt": "str"
1031             }
1032         ],
1033         "repeat": "",
1034         "crontab": "",
1035         "once": false,
1036         "onceDelay": 0.1,
1037         "topic": "o-ran-software-management:install-event",
1038         "payload": "",
1039         "payloadType": "date",
1040         "x": 820,
1041         "y": 1100,
1042         "wires": [
1043             []
1044         ]
1045     },
1046     {
1047         "id": "4c274d02a62c7565",
1048         "type": "inject",
1049         "z": "51e83a0892da060e",
1050         "d": true,
1051         "name": "o-ran-sync:gnss-state-change",
1052         "props": [
1053             {
1054                 "p": "payload"
1055             },
1056             {
1057                 "p": "topic",
1058                 "vt": "str"
1059             }
1060         ],
1061         "repeat": "",
1062         "crontab": "",
1063         "once": false,
1064         "onceDelay": 0.1,
1065         "topic": "o-ran-sync:gnss-state-change",
1066         "payload": "",
1067         "payloadType": "date",
1068         "x": 780,
1069         "y": 1180,
1070         "wires": [
1071             []
1072         ]
1073     },
1074     {
1075         "id": "ad0e319d109512e7",
1076         "type": "inject",
1077         "z": "51e83a0892da060e",
1078         "d": true,
1079         "name": "o-ran-sync:ptp-state-change",
1080         "props": [
1081             {
1082                 "p": "payload"
1083             },
1084             {
1085                 "p": "topic",
1086                 "vt": "str"
1087             }
1088         ],
1089         "repeat": "",
1090         "crontab": "",
1091         "once": false,
1092         "onceDelay": 0.1,
1093         "topic": "o-ran-sync:ptp-state-change",
1094         "payload": "",
1095         "payloadType": "date",
1096         "x": 780,
1097         "y": 1220,
1098         "wires": [
1099             []
1100         ]
1101     },
1102     {
1103         "id": "de24c11aa05ce94e",
1104         "type": "inject",
1105         "z": "51e83a0892da060e",
1106         "d": true,
1107         "name": "o-ran-sync:synce-state-change",
1108         "props": [
1109             {
1110                 "p": "payload"
1111             },
1112             {
1113                 "p": "topic",
1114                 "vt": "str"
1115             }
1116         ],
1117         "repeat": "",
1118         "crontab": "",
1119         "once": false,
1120         "onceDelay": 0.1,
1121         "topic": "o-ran-sync:synce-state-change",
1122         "payload": "",
1123         "payloadType": "date",
1124         "x": 790,
1125         "y": 1260,
1126         "wires": [
1127             []
1128         ]
1129     },
1130     {
1131         "id": "a9b33c01b841cc78",
1132         "type": "inject",
1133         "z": "51e83a0892da060e",
1134         "d": true,
1135         "name": "o-ran-sync:synchronization-state-change",
1136         "props": [
1137             {
1138                 "p": "payload"
1139             },
1140             {
1141                 "p": "topic",
1142                 "vt": "str"
1143             }
1144         ],
1145         "repeat": "",
1146         "crontab": "",
1147         "once": false,
1148         "onceDelay": 0.1,
1149         "topic": "o-ran-sync:synchronization-state-change",
1150         "payload": "",
1151         "payloadType": "date",
1152         "x": 820,
1153         "y": 1300,
1154         "wires": [
1155             []
1156         ]
1157     },
1158     {
1159         "id": "f4a87018c664902f",
1160         "type": "inject",
1161         "z": "51e83a0892da060e",
1162         "d": true,
1163         "name": "o-ran-trace:trace-log-generated",
1164         "props": [
1165             {
1166                 "p": "payload"
1167             },
1168             {
1169                 "p": "topic",
1170                 "vt": "str"
1171             }
1172         ],
1173         "repeat": "",
1174         "crontab": "",
1175         "once": false,
1176         "onceDelay": 0.1,
1177         "topic": "o-ran-trace:trace-log-generated",
1178         "payload": "",
1179         "payloadType": "date",
1180         "x": 790,
1181         "y": 1340,
1182         "wires": [
1183             []
1184         ]
1185     },
1186     {
1187         "id": "7cbe4e4faa26098b",
1188         "type": "inject",
1189         "z": "51e83a0892da060e",
1190         "d": true,
1191         "name": "o-ran-uplane-conf:rx-array-carriers-state-change",
1192         "props": [
1193             {
1194                 "p": "payload"
1195             },
1196             {
1197                 "p": "topic",
1198                 "vt": "str"
1199             }
1200         ],
1201         "repeat": "",
1202         "crontab": "",
1203         "once": false,
1204         "onceDelay": 0.1,
1205         "topic": "o-ran-uplane-conf:rx-array-carriers-state-change",
1206         "payload": "",
1207         "payloadType": "date",
1208         "x": 840,
1209         "y": 1420,
1210         "wires": [
1211             []
1212         ]
1213     },
1214     {
1215         "id": "a5eeb9d399c203ca",
1216         "type": "inject",
1217         "z": "51e83a0892da060e",
1218         "d": true,
1219         "name": "o-ran-troubleshooting:troubleshooting-log-generated",
1220         "props": [
1221             {
1222                 "p": "payload"
1223             },
1224             {
1225                 "p": "topic",
1226                 "vt": "str"
1227             }
1228         ],
1229         "repeat": "",
1230         "crontab": "",
1231         "once": false,
1232         "onceDelay": 0.1,
1233         "topic": "o-ran-troubleshooting:troubleshooting-log-generated",
1234         "payload": "",
1235         "payloadType": "date",
1236         "x": 850,
1237         "y": 1380,
1238         "wires": [
1239             []
1240         ]
1241     },
1242     {
1243         "id": "b9d72e03c66c78b3",
1244         "type": "inject",
1245         "z": "51e83a0892da060e",
1246         "d": true,
1247         "name": "o-ran-uplane-conf:tx-array-carriers-state-change",
1248         "props": [
1249             {
1250                 "p": "payload"
1251             },
1252             {
1253                 "p": "topic",
1254                 "vt": "str"
1255             }
1256         ],
1257         "repeat": "",
1258         "crontab": "",
1259         "once": false,
1260         "onceDelay": 0.1,
1261         "topic": "o-ran-uplane-conf:tx-array-carriers-state-change",
1262         "payload": "",
1263         "payloadType": "date",
1264         "x": 840,
1265         "y": 1460,
1266         "wires": [
1267             []
1268         ]
1269     },
1270     {
1271         "id": "bfa425cb3d578d07",
1272         "type": "inject",
1273         "z": "51e83a0892da060e",
1274         "name": "notifyNewAlarm",
1275         "props": [
1276             {
1277                 "p": "payload"
1278             },
1279             {
1280                 "p": "topic",
1281                 "vt": "str"
1282             }
1283         ],
1284         "repeat": "",
1285         "crontab": "",
1286         "once": false,
1287         "onceDelay": 0.1,
1288         "topic": "notifyNewAlarm",
1289         "payload": "",
1290         "payloadType": "date",
1291         "x": 120,
1292         "y": 620,
1293         "wires": [
1294             [
1295                 "f71ebd595a7de756",
1296                 "b5533c10604af5a6"
1297             ]
1298         ]
1299     },
1300     {
1301         "id": "f71ebd595a7de756",
1302         "type": "function",
1303         "z": "51e83a0892da060e",
1304         "name": "vesStndDefindBody",
1305         "func": "const timeStamp = new Date(msg.payload);\nconst alarm = 'Connection Loss';\nconst severity = 'CRITICAL';\n\nmsg.payload = {\n    schemaReference: 'https://forge.3gpp.org/rep/sa5/MnS/raw/Rel-18/OpenAPI/TS28532_FaultMnS.yaml#components/schemas/NotifyNewAlarm',\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        alarmId: alarm,\n        alarmType: 'COMMUNICATIONS_ALARM',\n        probableCause: alarm,\n        specificProblem: alarm,\n        perceivedSeverity: severity,\n        backedUpStatus: true,\n        backUpObject: 'xyz',\n        trendIndication: 'MORE_SEVERE',\n        thresholdInfo: {\n            observedMeasurement: 'new',\n            observedValue: 123.1\n        },\n        correlatedNotifications: [],\n        stateChangeDefinition: [{ 'operational-state': 'DISABLED' }],\n        monitoredAttributes: {\n            interface: 'uuid-of-the-interface'\n        },\n        proposedRepairActions: 'Call the police!',\n        additionalText: 'O-RAN Software Community OAM',\n        additionalInformation: {\n            description: 'a test alarm'\n        },\n        rootCauseIndicator: false\n    }\n\n};\nmsg.topic = 'stndDefinedFields';\nreturn msg;",
1306         "outputs": 1,
1307         "noerr": 0,
1308         "initialize": "",
1309         "finalize": "",
1310         "libs": [],
1311         "x": 470,
1312         "y": 620,
1313         "wires": [
1314             [
1315                 "f65b1c13e0243ef6"
1316             ]
1317         ]
1318     },
1319     {
1320         "id": "82da4e47972195a4",
1321         "type": "inject",
1322         "z": "51e83a0892da060e",
1323         "d": true,
1324         "name": "notifyChangedAlarm",
1325         "props": [
1326             {
1327                 "p": "payload"
1328             },
1329             {
1330                 "p": "topic",
1331                 "vt": "str"
1332             }
1333         ],
1334         "repeat": "",
1335         "crontab": "",
1336         "once": false,
1337         "onceDelay": 0.1,
1338         "topic": "notifyChangedAlarm",
1339         "payload": "",
1340         "payloadType": "date",
1341         "x": 130,
1342         "y": 660,
1343         "wires": [
1344             []
1345         ]
1346     },
1347     {
1348         "id": "a3d85c62bee11dad",
1349         "type": "inject",
1350         "z": "51e83a0892da060e",
1351         "d": true,
1352         "name": "notifyChangedAlarmGeneral",
1353         "props": [
1354             {
1355                 "p": "payload"
1356             },
1357             {
1358                 "p": "topic",
1359                 "vt": "str"
1360             }
1361         ],
1362         "repeat": "",
1363         "crontab": "",
1364         "once": false,
1365         "onceDelay": 0.1,
1366         "topic": "notifyChangedAlarmGeneral",
1367         "payload": "",
1368         "payloadType": "date",
1369         "x": 160,
1370         "y": 700,
1371         "wires": [
1372             []
1373         ]
1374     },
1375     {
1376         "id": "e4651c07a56f2448",
1377         "type": "inject",
1378         "z": "51e83a0892da060e",
1379         "d": true,
1380         "name": "notifyAckStateChanged",
1381         "props": [
1382             {
1383                 "p": "payload"
1384             },
1385             {
1386                 "p": "topic",
1387                 "vt": "str"
1388             }
1389         ],
1390         "repeat": "",
1391         "crontab": "",
1392         "once": false,
1393         "onceDelay": 0.1,
1394         "topic": "notifyAckStateChanged",
1395         "payload": "",
1396         "payloadType": "date",
1397         "x": 140,
1398         "y": 740,
1399         "wires": [
1400             []
1401         ]
1402     },
1403     {
1404         "id": "e949006e1b1fe0f0",
1405         "type": "inject",
1406         "z": "51e83a0892da060e",
1407         "d": true,
1408         "name": "notifyCorrelatedNotificationChanged",
1409         "props": [
1410             {
1411                 "p": "payload"
1412             },
1413             {
1414                 "p": "topic",
1415                 "vt": "str"
1416             }
1417         ],
1418         "repeat": "",
1419         "crontab": "",
1420         "once": false,
1421         "onceDelay": 0.1,
1422         "topic": "notifyCorrelatedNotificationChanged",
1423         "payload": "",
1424         "payloadType": "date",
1425         "x": 180,
1426         "y": 780,
1427         "wires": [
1428             []
1429         ]
1430     },
1431     {
1432         "id": "a80169493419d5d0",
1433         "type": "inject",
1434         "z": "51e83a0892da060e",
1435         "d": true,
1436         "name": "notifyComments",
1437         "props": [
1438             {
1439                 "p": "payload"
1440             },
1441             {
1442                 "p": "topic",
1443                 "vt": "str"
1444             }
1445         ],
1446         "repeat": "",
1447         "crontab": "",
1448         "once": false,
1449         "onceDelay": 0.1,
1450         "topic": "notifyComments",
1451         "payload": "",
1452         "payloadType": "date",
1453         "x": 120,
1454         "y": 820,
1455         "wires": [
1456             []
1457         ]
1458     },
1459     {
1460         "id": "9e0f49b3d9b0a5ef",
1461         "type": "inject",
1462         "z": "51e83a0892da060e",
1463         "name": "notifyClearedAlarm",
1464         "props": [
1465             {
1466                 "p": "payload"
1467             },
1468             {
1469                 "p": "topic",
1470                 "vt": "str"
1471             }
1472         ],
1473         "repeat": "",
1474         "crontab": "",
1475         "once": false,
1476         "onceDelay": 0.1,
1477         "topic": "notifyClearedAlarm",
1478         "payload": "",
1479         "payloadType": "date",
1480         "x": 130,
1481         "y": 860,
1482         "wires": [
1483             [
1484                 "69b8d53969426ebf",
1485                 "b5533c10604af5a6"
1486             ]
1487         ]
1488     },
1489     {
1490         "id": "418d585d7406029b",
1491         "type": "inject",
1492         "z": "51e83a0892da060e",
1493         "d": true,
1494         "name": "notifyAlarmListRebuilt",
1495         "props": [
1496             {
1497                 "p": "payload"
1498             },
1499             {
1500                 "p": "topic",
1501                 "vt": "str"
1502             }
1503         ],
1504         "repeat": "",
1505         "crontab": "",
1506         "once": false,
1507         "onceDelay": 0.1,
1508         "topic": "notifyAlarmListRebuilt",
1509         "payload": "",
1510         "payloadType": "date",
1511         "x": 140,
1512         "y": 900,
1513         "wires": [
1514             []
1515         ]
1516     },
1517     {
1518         "id": "f856982bb3c3a65c",
1519         "type": "inject",
1520         "z": "51e83a0892da060e",
1521         "d": true,
1522         "name": "notifyPotentialFaultyAlarmList",
1523         "props": [
1524             {
1525                 "p": "payload"
1526             },
1527             {
1528                 "p": "topic",
1529                 "vt": "str"
1530             }
1531         ],
1532         "repeat": "",
1533         "crontab": "",
1534         "once": false,
1535         "onceDelay": 0.1,
1536         "topic": "notifyPotentialFaultyAlarmList",
1537         "payload": "",
1538         "payloadType": "date",
1539         "x": 160,
1540         "y": 940,
1541         "wires": [
1542             []
1543         ]
1544     },
1545     {
1546         "id": "4617f66b8940469e",
1547         "type": "comment",
1548         "z": "51e83a0892da060e",
1549         "name": "TS28532_FaultMnS.yaml",
1550         "info": "",
1551         "x": 130,
1552         "y": 580,
1553         "wires": []
1554     },
1555     {
1556         "id": "69b8d53969426ebf",
1557         "type": "function",
1558         "z": "51e83a0892da060e",
1559         "name": "vesStndDefindBody",
1560         "func": "const timeStamp = new Date(msg.payload);\nconst alarm = 'Connection Loss';\nconst severity = 'CRITICAL';\n\nmsg.payload = {\n    schemaReference: 'https://forge.3gpp.org/rep/sa5/MnS/raw/Rel-18/OpenAPI/TS28532_FaultMnS.yaml#components/schemas/NotifyClearedAlarm',\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        alarmId: alarm,\n        alarmType: 'COMMUNICATIONS_ALARM',\n        probableCause: alarm,\n        perceivedSeverity: severity,\n        correlatedNotifications: [],\n        clearSystemId: global.get('os').hostname()\n    }\n\n};\nmsg.topic = 'stndDefinedFields';\nreturn msg;",
1561         "outputs": 1,
1562         "noerr": 0,
1563         "initialize": "",
1564         "finalize": "",
1565         "libs": [],
1566         "x": 470,
1567         "y": 860,
1568         "wires": [
1569             [
1570                 "f65b1c13e0243ef6"
1571             ]
1572         ]
1573     },
1574     {
1575         "id": "01e14b971772ee0a",
1576         "type": "comment",
1577         "z": "51e83a0892da060e",
1578         "name": "TS28532_FileDataReportingMnS.yaml",
1579         "info": "",
1580         "x": 170,
1581         "y": 460,
1582         "wires": []
1583     },
1584     {
1585         "id": "ea15cafd2325d76f",
1586         "type": "inject",
1587         "z": "51e83a0892da060e",
1588         "name": "notifyFilePreparationError",
1589         "props": [
1590             {
1591                 "p": "payload"
1592             },
1593             {
1594                 "p": "topic",
1595                 "vt": "str"
1596             }
1597         ],
1598         "repeat": "",
1599         "crontab": "",
1600         "once": false,
1601         "onceDelay": 0.1,
1602         "topic": "notifyFilePreparationError",
1603         "payload": "",
1604         "payloadType": "date",
1605         "x": 150,
1606         "y": 540,
1607         "wires": [
1608             [
1609                 "9f4bc0920fa3c0eb",
1610                 "b5533c10604af5a6"
1611             ]
1612         ]
1613     },
1614     {
1615         "id": "9f4bc0920fa3c0eb",
1616         "type": "function",
1617         "z": "51e83a0892da060e",
1618         "name": "vesStndDefindBody",
1619         "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/NotifyFilePreparationError',\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        reason: 'No Measurements',\n        additionalText: 'Please consult customer documentation!'\n    }\n};\nmsg.topic = 'stndDefinedFields';\nreturn msg;",
1620         "outputs": 1,
1621         "noerr": 0,
1622         "initialize": "",
1623         "finalize": "",
1624         "libs": [],
1625         "x": 470,
1626         "y": 540,
1627         "wires": [
1628             [
1629                 "f65b1c13e0243ef6"
1630             ]
1631         ]
1632     },
1633     {
1634         "id": "910dfec7eb74df65",
1635         "type": "inject",
1636         "z": "c5746e29f53f72ce",
1637         "name": "pnfRegistration",
1638         "props": [
1639             {
1640                 "p": "payload"
1641             },
1642             {
1643                 "p": "topic",
1644                 "vt": "str"
1645             }
1646         ],
1647         "repeat": "60",
1648         "crontab": "",
1649         "once": false,
1650         "onceDelay": 0.1,
1651         "topic": "pnfRegistration",
1652         "payload": "",
1653         "payloadType": "date",
1654         "x": 240,
1655         "y": 80,
1656         "wires": [
1657             [
1658                 "e5f66f4bd6777ca0"
1659             ]
1660         ]
1661     },
1662     {
1663         "id": "562063a080cb99d6",
1664         "type": "debug",
1665         "z": "c5746e29f53f72ce",
1666         "name": "eventData",
1667         "active": true,
1668         "tosidebar": true,
1669         "console": true,
1670         "tostatus": true,
1671         "complete": "payload",
1672         "targetType": "msg",
1673         "statusVal": "payload.length",
1674         "statusType": "msg",
1675         "x": 1170,
1676         "y": 220,
1677         "wires": []
1678     },
1679     {
1680         "id": "172060688d87f510",
1681         "type": "inject",
1682         "z": "c5746e29f53f72ce",
1683         "d": true,
1684         "name": "notifyHeartbeat",
1685         "props": [
1686             {
1687                 "p": "payload"
1688             },
1689             {
1690                 "p": "topic",
1691                 "vt": "str"
1692             }
1693         ],
1694         "repeat": "5",
1695         "crontab": "",
1696         "once": true,
1697         "onceDelay": 0.1,
1698         "topic": "notifyHeartbeat",
1699         "payload": "",
1700         "payloadType": "date",
1701         "x": 230,
1702         "y": 400,
1703         "wires": [
1704             [
1705                 "e5f66f4bd6777ca0"
1706             ]
1707         ]
1708     },
1709     {
1710         "id": "311c3b5d3d73fc24",
1711         "type": "inject",
1712         "z": "c5746e29f53f72ce",
1713         "name": "notifyFileReady",
1714         "props": [
1715             {
1716                 "p": "payload"
1717             },
1718             {
1719                 "p": "topic",
1720                 "vt": "str"
1721             }
1722         ],
1723         "repeat": "",
1724         "crontab": "",
1725         "once": false,
1726         "onceDelay": 0.1,
1727         "topic": "notifyFileReady",
1728         "payload": "",
1729         "payloadType": "date",
1730         "x": 240,
1731         "y": 480,
1732         "wires": [
1733             [
1734                 "e5f66f4bd6777ca0"
1735             ]
1736         ]
1737     },
1738     {
1739         "id": "5437e3fdfca300c9",
1740         "type": "http request",
1741         "z": "c5746e29f53f72ce",
1742         "name": "",
1743         "method": "GET",
1744         "ret": "txt",
1745         "paytoqs": "ignore",
1746         "url": "",
1747         "tls": "7b2f4859e5963695",
1748         "persist": true,
1749         "proxy": "",
1750         "insecureHTTPParser": true,
1751         "authType": "",
1752         "senderr": false,
1753         "headers": [],
1754         "x": 850,
1755         "y": 220,
1756         "wires": [
1757             [
1758                 "dc576b6355478428"
1759             ]
1760         ]
1761     },
1762     {
1763         "id": "dc576b6355478428",
1764         "type": "function",
1765         "z": "c5746e29f53f72ce",
1766         "name": "Provider",
1767         "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}\nglobal.set('topicData', msg.payload)\nreturn msg;",
1768         "outputs": 1,
1769         "noerr": 0,
1770         "initialize": "",
1771         "finalize": "",
1772         "libs": [],
1773         "x": 1020,
1774         "y": 220,
1775         "wires": [
1776             [
1777                 "562063a080cb99d6"
1778             ]
1779         ]
1780     },
1781     {
1782         "id": "e5f66f4bd6777ca0",
1783         "type": "function",
1784         "z": "c5746e29f53f72ce",
1785         "name": "http-preparation",
1786         "func": "const protocol = env.get('MESSAGES_PROTOCOL');\nconst host = env.get('MESSAGES_HOST');\nconst port = env.get('MESSAGES_PORT');;\nconst base = protocol + '://' + host + ':' + port;\n\nconst path = 'events';\nconst urlMapping = {\n    pnfRegistration: 'unauthenticated.VES_PNFREG_OUTPUT',\n    heartbeat: 'unauthenticated.SEC_HEARTBEAT_OUTPUT',\n    fault: 'unauthenticated.SEC_FAULT_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    notifyFilePreparationError: 'unauthenticated.VES_FILE_READY_OUTPUT',\n    oRanOpenfrontManagementPlane: 'unauthenticated.VES_O_RAN_SC_OPENFRONTHAUL_OUTPUT',\n    notifyNewAlarm: 'unauthenticated.SEC_3GPP_FAULTSUPERVISION_OUTPUT',\n    notifyChangedAlarm: 'unauthenticated.SEC_3GPP_FAULTSUPERVISION_OUTPUT',\n    notifyChangedAlarmGeneral: 'unauthenticated.SEC_3GPP_FAULTSUPERVISION_OUTPUT',\n    notifyAckStateChanged: 'unauthenticated.SEC_3GPP_FAULTSUPERVISION_OUTPUT',\n    notifyCorrelatedNotificationChanged: 'unauthenticated.SEC_3GPP_FAULTSUPERVISION_OUTPUT',\n    notifyComments: 'unauthenticated.SEC_3GPP_FAULTSUPERVISION_OUTPUT',\n    notifyClearedAlarm: 'unauthenticated.SEC_3GPP_FAULTSUPERVISION_OUTPUT',\n    notifyAlarmListRebuilt: 'unauthenticated.SEC_3GPP_FAULTSUPERVISION_OUTPUT',\n    notifyPotentialFaultyAlarmList: 'unauthenticated.SEC_3GPP_FAULTSUPERVISION_OUTPUT'\n};\nconst longPolling = '?timeout=60000'\nconst urlTopic = urlMapping[msg.topic] || msg.topic.replace(':', '-');\nmsg.url = [base, path, urlTopic, '1', '1'].join('/') + longPolling;\nreturn msg;",
1787         "outputs": 1,
1788         "noerr": 0,
1789         "initialize": "",
1790         "finalize": "",
1791         "libs": [],
1792         "x": 500,
1793         "y": 220,
1794         "wires": [
1795             [
1796                 "5437e3fdfca300c9"
1797             ]
1798         ]
1799     },
1800     {
1801         "id": "42275e9c12f8e52b",
1802         "type": "comment",
1803         "z": "c5746e29f53f72ce",
1804         "name": "from O-RAN-SC",
1805         "info": "",
1806         "x": 100,
1807         "y": 220,
1808         "wires": []
1809     },
1810     {
1811         "id": "e07fa97ebc66dce0",
1812         "type": "comment",
1813         "z": "c5746e29f53f72ce",
1814         "name": "from ONAP",
1815         "info": "",
1816         "x": 90,
1817         "y": 40,
1818         "wires": []
1819     },
1820     {
1821         "id": "44b8c2cc138777f1",
1822         "type": "comment",
1823         "z": "c5746e29f53f72ce",
1824         "name": "from SA5 R-18 branch",
1825         "info": "",
1826         "x": 120,
1827         "y": 360,
1828         "wires": []
1829     },
1830     {
1831         "id": "4480e5473a65a757",
1832         "type": "inject",
1833         "z": "c5746e29f53f72ce",
1834         "name": "oRanScDuHelloWorldPmStreaming",
1835         "props": [
1836             {
1837                 "p": "payload"
1838             },
1839             {
1840                 "p": "topic",
1841                 "vt": "str"
1842             }
1843         ],
1844         "repeat": "",
1845         "crontab": "",
1846         "once": false,
1847         "onceDelay": 0.1,
1848         "topic": "oRanScDuHelloWorldPmStreaming",
1849         "payload": "",
1850         "payloadType": "date",
1851         "x": 180,
1852         "y": 300,
1853         "wires": [
1854             [
1855                 "e5f66f4bd6777ca0"
1856             ]
1857         ]
1858     },
1859     {
1860         "id": "52f22ee054e5b4ac",
1861         "type": "inject",
1862         "z": "c5746e29f53f72ce",
1863         "name": "o1NotifyPnfRegistration",
1864         "props": [
1865             {
1866                 "p": "payload"
1867             },
1868             {
1869                 "p": "topic",
1870                 "vt": "str"
1871             }
1872         ],
1873         "repeat": "",
1874         "crontab": "",
1875         "once": false,
1876         "onceDelay": 0.1,
1877         "topic": "o1NotifyPnfRegistration",
1878         "payload": "",
1879         "payloadType": "date",
1880         "x": 220,
1881         "y": 260,
1882         "wires": [
1883             [
1884                 "e5f66f4bd6777ca0"
1885             ]
1886         ]
1887     },
1888     {
1889         "id": "3051f52553efaaa4",
1890         "type": "http request",
1891         "z": "c5746e29f53f72ce",
1892         "name": "",
1893         "method": "GET",
1894         "ret": "txt",
1895         "paytoqs": "ignore",
1896         "url": "",
1897         "tls": "7b2f4859e5963695",
1898         "persist": true,
1899         "proxy": "",
1900         "insecureHTTPParser": true,
1901         "authType": "",
1902         "senderr": false,
1903         "headers": [],
1904         "x": 850,
1905         "y": 180,
1906         "wires": [
1907             [
1908                 "dc576b6355478428"
1909             ]
1910         ]
1911     },
1912     {
1913         "id": "0acceacb99b7981a",
1914         "type": "inject",
1915         "z": "c5746e29f53f72ce",
1916         "name": "Topics?",
1917         "props": [
1918             {
1919                 "p": "payload"
1920             },
1921             {
1922                 "p": "topic",
1923                 "vt": "str"
1924             }
1925         ],
1926         "repeat": "",
1927         "crontab": "",
1928         "once": false,
1929         "onceDelay": 0.1,
1930         "topic": "topics",
1931         "payload": "",
1932         "payloadType": "date",
1933         "x": 530,
1934         "y": 180,
1935         "wires": [
1936             [
1937                 "e4ec70e46406674f"
1938             ]
1939         ]
1940     },
1941     {
1942         "id": "34b7ac222692e06d",
1943         "type": "comment",
1944         "z": "c5746e29f53f72ce",
1945         "name": "from OpenFronthaul Management-Plane",
1946         "info": "",
1947         "x": 580,
1948         "y": 280,
1949         "wires": []
1950     },
1951     {
1952         "id": "25a3eca83bbc3489",
1953         "type": "inject",
1954         "z": "c5746e29f53f72ce",
1955         "name": "o-ran-supervision:supervision-notification",
1956         "props": [
1957             {
1958                 "p": "payload"
1959             },
1960             {
1961                 "p": "topic",
1962                 "vt": "str"
1963             }
1964         ],
1965         "repeat": "60",
1966         "crontab": "",
1967         "once": false,
1968         "onceDelay": 0.1,
1969         "topic": "o-ran-supervision:supervision-notification",
1970         "payload": "",
1971         "payloadType": "date",
1972         "x": 620,
1973         "y": 1040,
1974         "wires": [
1975             [
1976                 "e5f66f4bd6777ca0"
1977             ]
1978         ]
1979     },
1980     {
1981         "id": "0194d014ef8f6c5e",
1982         "type": "inject",
1983         "z": "c5746e29f53f72ce",
1984         "name": "o-ran-file-management:file-upload-notification",
1985         "props": [
1986             {
1987                 "p": "payload"
1988             },
1989             {
1990                 "p": "topic",
1991                 "vt": "str"
1992             }
1993         ],
1994         "repeat": "",
1995         "crontab": "",
1996         "once": false,
1997         "onceDelay": 0.1,
1998         "topic": "o-ran-file-management:file-upload-notification",
1999         "payload": "",
2000         "payloadType": "date",
2001         "x": 630,
2002         "y": 760,
2003         "wires": [
2004             [
2005                 "e5f66f4bd6777ca0"
2006             ]
2007         ]
2008     },
2009     {
2010         "id": "775aacf9e2cc0285",
2011         "type": "inject",
2012         "z": "c5746e29f53f72ce",
2013         "name": "o-ran-file-management:file-download-event",
2014         "props": [
2015             {
2016                 "p": "payload"
2017             },
2018             {
2019                 "p": "topic",
2020                 "vt": "str"
2021             }
2022         ],
2023         "repeat": "",
2024         "crontab": "",
2025         "once": false,
2026         "onceDelay": 0.1,
2027         "topic": "o-ran-file-management:file-download-event",
2028         "payload": "",
2029         "payloadType": "date",
2030         "x": 620,
2031         "y": 720,
2032         "wires": [
2033             [
2034                 "e5f66f4bd6777ca0"
2035             ]
2036         ]
2037     },
2038     {
2039         "id": "3e3be17a65a7d1bf",
2040         "type": "inject",
2041         "z": "c5746e29f53f72ce",
2042         "d": true,
2043         "name": "o-ran-ald-port:dc-enabled-status-change",
2044         "props": [
2045             {
2046                 "p": "payload"
2047             },
2048             {
2049                 "p": "topic",
2050                 "vt": "str"
2051             }
2052         ],
2053         "repeat": "",
2054         "crontab": "",
2055         "once": false,
2056         "onceDelay": 0.1,
2057         "topic": "o-ran-ald-port:dc-enabled-status-change",
2058         "payload": "",
2059         "payloadType": "date",
2060         "x": 620,
2061         "y": 320,
2062         "wires": [
2063             [
2064                 "e5f66f4bd6777ca0"
2065             ]
2066         ]
2067     },
2068     {
2069         "id": "665c45e5ccd1c9cb",
2070         "type": "inject",
2071         "z": "c5746e29f53f72ce",
2072         "d": true,
2073         "name": "o-ran-ald-port:overcurrent-report",
2074         "props": [
2075             {
2076                 "p": "payload"
2077             },
2078             {
2079                 "p": "topic",
2080                 "vt": "str"
2081             }
2082         ],
2083         "repeat": "",
2084         "crontab": "",
2085         "once": false,
2086         "onceDelay": 0.1,
2087         "topic": "o-ran-ald-port:overcurrent-report",
2088         "payload": "",
2089         "payloadType": "date",
2090         "x": 590,
2091         "y": 360,
2092         "wires": [
2093             [
2094                 "e5f66f4bd6777ca0"
2095             ]
2096         ]
2097     },
2098     {
2099         "id": "5520ce3b83578f17",
2100         "type": "inject",
2101         "z": "c5746e29f53f72ce",
2102         "d": true,
2103         "name": "o-ran-antenna-calibration:antenna-calibration-coordinated",
2104         "props": [
2105             {
2106                 "p": "payload"
2107             },
2108             {
2109                 "p": "topic",
2110                 "vt": "str"
2111             }
2112         ],
2113         "repeat": "",
2114         "crontab": "",
2115         "once": false,
2116         "onceDelay": 0.1,
2117         "topic": "o-ran-antenna-calibration:antenna-calibration-coordinated",
2118         "payload": "",
2119         "payloadType": "date",
2120         "x": 670,
2121         "y": 400,
2122         "wires": [
2123             [
2124                 "e5f66f4bd6777ca0"
2125             ]
2126         ]
2127     },
2128     {
2129         "id": "fda3090fb4f1e9d4",
2130         "type": "inject",
2131         "z": "c5746e29f53f72ce",
2132         "d": true,
2133         "name": "o-ran-antenna-calibration:antenna-calibration-multiple-time-resource-params",
2134         "props": [
2135             {
2136                 "p": "payload"
2137             },
2138             {
2139                 "p": "topic",
2140                 "vt": "str"
2141             }
2142         ],
2143         "repeat": "",
2144         "crontab": "",
2145         "once": false,
2146         "onceDelay": 0.1,
2147         "topic": "o-ran-antenna-calibration:antenna-calibration-multiple-time-resource-params",
2148         "payload": "",
2149         "payloadType": "date",
2150         "x": 730,
2151         "y": 440,
2152         "wires": [
2153             [
2154                 "e5f66f4bd6777ca0"
2155             ]
2156         ]
2157     },
2158     {
2159         "id": "2551bb6c9746a7c2",
2160         "type": "inject",
2161         "z": "c5746e29f53f72ce",
2162         "d": true,
2163         "name": "o-ran-antenna-calibration:antenna-calibration-required",
2164         "props": [
2165             {
2166                 "p": "payload"
2167             },
2168             {
2169                 "p": "topic",
2170                 "vt": "str"
2171             }
2172         ],
2173         "repeat": "",
2174         "crontab": "",
2175         "once": false,
2176         "onceDelay": 0.1,
2177         "topic": "o-ran-antenna-calibration:antenna-calibration-required",
2178         "payload": "",
2179         "payloadType": "date",
2180         "x": 660,
2181         "y": 480,
2182         "wires": [
2183             [
2184                 "e5f66f4bd6777ca0"
2185             ]
2186         ]
2187     },
2188     {
2189         "id": "0dcc72d0235e6336",
2190         "type": "inject",
2191         "z": "c5746e29f53f72ce",
2192         "d": true,
2193         "name": "o-ran-antenna-calibration:antenna-calibration-result",
2194         "props": [
2195             {
2196                 "p": "payload"
2197             },
2198             {
2199                 "p": "topic",
2200                 "vt": "str"
2201             }
2202         ],
2203         "repeat": "",
2204         "crontab": "",
2205         "once": false,
2206         "onceDelay": 0.1,
2207         "topic": "o-ran-antenna-calibration:antenna-calibration-result",
2208         "payload": "",
2209         "payloadType": "date",
2210         "x": 650,
2211         "y": 520,
2212         "wires": [
2213             [
2214                 "e5f66f4bd6777ca0"
2215             ]
2216         ]
2217     },
2218     {
2219         "id": "0abafa5c1a4ebd33",
2220         "type": "inject",
2221         "z": "c5746e29f53f72ce",
2222         "d": true,
2223         "name": "o-ran-beamforming:beamforming-information-update",
2224         "props": [
2225             {
2226                 "p": "payload"
2227             },
2228             {
2229                 "p": "topic",
2230                 "vt": "str"
2231             }
2232         ],
2233         "repeat": "",
2234         "crontab": "",
2235         "once": false,
2236         "onceDelay": 0.1,
2237         "topic": "o-ran-beamforming:beamforming-information-update",
2238         "payload": "",
2239         "payloadType": "date",
2240         "x": 650,
2241         "y": 560,
2242         "wires": [
2243             [
2244                 "e5f66f4bd6777ca0"
2245             ]
2246         ]
2247     },
2248     {
2249         "id": "d74c5f1885485d8c",
2250         "type": "inject",
2251         "z": "c5746e29f53f72ce",
2252         "d": true,
2253         "name": "o-ran-beamforming:capability-group-beamforming-information-update",
2254         "props": [
2255             {
2256                 "p": "payload"
2257             },
2258             {
2259                 "p": "topic",
2260                 "vt": "str"
2261             }
2262         ],
2263         "repeat": "",
2264         "crontab": "",
2265         "once": false,
2266         "onceDelay": 0.1,
2267         "topic": "o-ran-beamforming:capability-group-beamforming-information-update",
2268         "payload": "",
2269         "payloadType": "date",
2270         "x": 700,
2271         "y": 600,
2272         "wires": [
2273             [
2274                 "e5f66f4bd6777ca0"
2275             ]
2276         ]
2277     },
2278     {
2279         "id": "8d755b355a3d5557",
2280         "type": "inject",
2281         "z": "c5746e29f53f72ce",
2282         "d": true,
2283         "name": "o-ran-beamforming:predefined-beam-tilt-offset-complete",
2284         "props": [
2285             {
2286                 "p": "payload"
2287             },
2288             {
2289                 "p": "topic",
2290                 "vt": "str"
2291             }
2292         ],
2293         "repeat": "",
2294         "crontab": "",
2295         "once": false,
2296         "onceDelay": 0.1,
2297         "topic": "o-ran-beamforming:predefined-beam-tilt-offset-complete",
2298         "payload": "",
2299         "payloadType": "date",
2300         "x": 660,
2301         "y": 640,
2302         "wires": [
2303             []
2304         ]
2305     },
2306     {
2307         "id": "6ebe4693c580ae00",
2308         "type": "inject",
2309         "z": "c5746e29f53f72ce",
2310         "d": true,
2311         "name": "o-ran-externalio:external-input-change",
2312         "props": [
2313             {
2314                 "p": "payload"
2315             },
2316             {
2317                 "p": "topic",
2318                 "vt": "str"
2319             }
2320         ],
2321         "repeat": "",
2322         "crontab": "",
2323         "once": false,
2324         "onceDelay": 0.1,
2325         "topic": "o-ran-externalio:external-input-change",
2326         "payload": "",
2327         "payloadType": "date",
2328         "x": 610,
2329         "y": 680,
2330         "wires": [
2331             []
2332         ]
2333     },
2334     {
2335         "id": "89144928a6ead625",
2336         "type": "inject",
2337         "z": "c5746e29f53f72ce",
2338         "d": true,
2339         "name": "o-ran-fm:alarm-notif",
2340         "props": [
2341             {
2342                 "p": "payload"
2343             },
2344             {
2345                 "p": "topic",
2346                 "vt": "str"
2347             }
2348         ],
2349         "repeat": "",
2350         "crontab": "",
2351         "once": false,
2352         "onceDelay": 0.1,
2353         "topic": "o-ran-fm:alarm-notif",
2354         "payload": "",
2355         "payloadType": "date",
2356         "x": 550,
2357         "y": 800,
2358         "wires": [
2359             [
2360                 "e5f66f4bd6777ca0"
2361             ]
2362         ]
2363     },
2364     {
2365         "id": "8ebca0cd456a9763",
2366         "type": "inject",
2367         "z": "c5746e29f53f72ce",
2368         "d": true,
2369         "name": "o-ran-laa-operations:measurement-result",
2370         "props": [
2371             {
2372                 "p": "payload"
2373             },
2374             {
2375                 "p": "topic",
2376                 "vt": "str"
2377             }
2378         ],
2379         "repeat": "",
2380         "crontab": "",
2381         "once": false,
2382         "onceDelay": 0.1,
2383         "topic": "o-ran-laa-operations:measurement-result",
2384         "payload": "",
2385         "payloadType": "date",
2386         "x": 620,
2387         "y": 840,
2388         "wires": [
2389             [
2390                 "e5f66f4bd6777ca0"
2391             ]
2392         ]
2393     },
2394     {
2395         "id": "4778511387bc7449",
2396         "type": "inject",
2397         "z": "c5746e29f53f72ce",
2398         "d": true,
2399         "name": "o-ran-performance-management:measurement-result-stats",
2400         "props": [
2401             {
2402                 "p": "payload"
2403             },
2404             {
2405                 "p": "topic",
2406                 "vt": "str"
2407             }
2408         ],
2409         "repeat": "",
2410         "crontab": "",
2411         "once": false,
2412         "onceDelay": 0.1,
2413         "topic": "o-ran-performance-management:measurement-result-stats",
2414         "payload": "",
2415         "payloadType": "date",
2416         "x": 670,
2417         "y": 880,
2418         "wires": [
2419             [
2420                 "e5f66f4bd6777ca0"
2421             ]
2422         ]
2423     },
2424     {
2425         "id": "c106623d629fbe54",
2426         "type": "inject",
2427         "z": "c5746e29f53f72ce",
2428         "d": true,
2429         "name": "o-ran-software-management:activation-event",
2430         "props": [
2431             {
2432                 "p": "payload"
2433             },
2434             {
2435                 "p": "topic",
2436                 "vt": "str"
2437             }
2438         ],
2439         "repeat": "",
2440         "crontab": "",
2441         "once": false,
2442         "onceDelay": 0.1,
2443         "topic": "o-ran-software-management:activation-event",
2444         "payload": "",
2445         "payloadType": "date",
2446         "x": 630,
2447         "y": 920,
2448         "wires": [
2449             [
2450                 "e5f66f4bd6777ca0"
2451             ]
2452         ]
2453     },
2454     {
2455         "id": "4db0e5b915d76ddb",
2456         "type": "inject",
2457         "z": "c5746e29f53f72ce",
2458         "d": true,
2459         "name": "o-ran-software-management:download-event",
2460         "props": [
2461             {
2462                 "p": "payload"
2463             },
2464             {
2465                 "p": "topic",
2466                 "vt": "str"
2467             }
2468         ],
2469         "repeat": "",
2470         "crontab": "",
2471         "once": false,
2472         "onceDelay": 0.1,
2473         "topic": "o-ran-software-management:download-event",
2474         "payload": "",
2475         "payloadType": "date",
2476         "x": 630,
2477         "y": 960,
2478         "wires": [
2479             [
2480                 "e5f66f4bd6777ca0"
2481             ]
2482         ]
2483     },
2484     {
2485         "id": "8d3fab47729a807d",
2486         "type": "inject",
2487         "z": "c5746e29f53f72ce",
2488         "d": true,
2489         "name": "o-ran-software-management:install-event",
2490         "props": [
2491             {
2492                 "p": "payload"
2493             },
2494             {
2495                 "p": "topic",
2496                 "vt": "str"
2497             }
2498         ],
2499         "repeat": "",
2500         "crontab": "",
2501         "once": false,
2502         "onceDelay": 0.1,
2503         "topic": "o-ran-software-management:install-event",
2504         "payload": "",
2505         "payloadType": "date",
2506         "x": 620,
2507         "y": 1000,
2508         "wires": [
2509             [
2510                 "e5f66f4bd6777ca0"
2511             ]
2512         ]
2513     },
2514     {
2515         "id": "7ac87519cb59151d",
2516         "type": "inject",
2517         "z": "c5746e29f53f72ce",
2518         "d": true,
2519         "name": "o-ran-sync:gnss-state-change",
2520         "props": [
2521             {
2522                 "p": "payload"
2523             },
2524             {
2525                 "p": "topic",
2526                 "vt": "str"
2527             }
2528         ],
2529         "repeat": "",
2530         "crontab": "",
2531         "once": false,
2532         "onceDelay": 0.1,
2533         "topic": "o-ran-sync:gnss-state-change",
2534         "payload": "",
2535         "payloadType": "date",
2536         "x": 580,
2537         "y": 1080,
2538         "wires": [
2539             [
2540                 "e5f66f4bd6777ca0"
2541             ]
2542         ]
2543     },
2544     {
2545         "id": "55725b18e27c1a27",
2546         "type": "inject",
2547         "z": "c5746e29f53f72ce",
2548         "d": true,
2549         "name": "o-ran-sync:ptp-state-change",
2550         "props": [
2551             {
2552                 "p": "payload"
2553             },
2554             {
2555                 "p": "topic",
2556                 "vt": "str"
2557             }
2558         ],
2559         "repeat": "",
2560         "crontab": "",
2561         "once": false,
2562         "onceDelay": 0.1,
2563         "topic": "o-ran-sync:ptp-state-change",
2564         "payload": "",
2565         "payloadType": "date",
2566         "x": 580,
2567         "y": 1120,
2568         "wires": [
2569             [
2570                 "e5f66f4bd6777ca0"
2571             ]
2572         ]
2573     },
2574     {
2575         "id": "dde01e699dec844f",
2576         "type": "inject",
2577         "z": "c5746e29f53f72ce",
2578         "d": true,
2579         "name": "o-ran-sync:synce-state-change",
2580         "props": [
2581             {
2582                 "p": "payload"
2583             },
2584             {
2585                 "p": "topic",
2586                 "vt": "str"
2587             }
2588         ],
2589         "repeat": "",
2590         "crontab": "",
2591         "once": false,
2592         "onceDelay": 0.1,
2593         "topic": "o-ran-sync:synce-state-change",
2594         "payload": "",
2595         "payloadType": "date",
2596         "x": 590,
2597         "y": 1160,
2598         "wires": [
2599             [
2600                 "e5f66f4bd6777ca0"
2601             ]
2602         ]
2603     },
2604     {
2605         "id": "5457d995823e58f6",
2606         "type": "inject",
2607         "z": "c5746e29f53f72ce",
2608         "d": true,
2609         "name": "o-ran-sync:synchronization-state-change",
2610         "props": [
2611             {
2612                 "p": "payload"
2613             },
2614             {
2615                 "p": "topic",
2616                 "vt": "str"
2617             }
2618         ],
2619         "repeat": "",
2620         "crontab": "",
2621         "once": false,
2622         "onceDelay": 0.1,
2623         "topic": "o-ran-sync:synchronization-state-change",
2624         "payload": "",
2625         "payloadType": "date",
2626         "x": 620,
2627         "y": 1200,
2628         "wires": [
2629             [
2630                 "e5f66f4bd6777ca0"
2631             ]
2632         ]
2633     },
2634     {
2635         "id": "ca9f765b3838d5ff",
2636         "type": "inject",
2637         "z": "c5746e29f53f72ce",
2638         "d": true,
2639         "name": "o-ran-trace:trace-log-generated",
2640         "props": [
2641             {
2642                 "p": "payload"
2643             },
2644             {
2645                 "p": "topic",
2646                 "vt": "str"
2647             }
2648         ],
2649         "repeat": "",
2650         "crontab": "",
2651         "once": false,
2652         "onceDelay": 0.1,
2653         "topic": "o-ran-trace:trace-log-generated",
2654         "payload": "",
2655         "payloadType": "date",
2656         "x": 590,
2657         "y": 1240,
2658         "wires": [
2659             [
2660                 "e5f66f4bd6777ca0"
2661             ]
2662         ]
2663     },
2664     {
2665         "id": "0a837c4beaa140e0",
2666         "type": "inject",
2667         "z": "c5746e29f53f72ce",
2668         "d": true,
2669         "name": "o-ran-uplane-conf:rx-array-carriers-state-change",
2670         "props": [
2671             {
2672                 "p": "payload"
2673             },
2674             {
2675                 "p": "topic",
2676                 "vt": "str"
2677             }
2678         ],
2679         "repeat": "",
2680         "crontab": "",
2681         "once": false,
2682         "onceDelay": 0.1,
2683         "topic": "o-ran-uplane-conf:rx-array-carriers-state-change",
2684         "payload": "",
2685         "payloadType": "date",
2686         "x": 640,
2687         "y": 1320,
2688         "wires": [
2689             [
2690                 "e5f66f4bd6777ca0"
2691             ]
2692         ]
2693     },
2694     {
2695         "id": "3dfb5349f08c5ea9",
2696         "type": "inject",
2697         "z": "c5746e29f53f72ce",
2698         "d": true,
2699         "name": "o-ran-troubleshooting:troubleshooting-log-generated",
2700         "props": [
2701             {
2702                 "p": "payload"
2703             },
2704             {
2705                 "p": "topic",
2706                 "vt": "str"
2707             }
2708         ],
2709         "repeat": "",
2710         "crontab": "",
2711         "once": false,
2712         "onceDelay": 0.1,
2713         "topic": "o-ran-troubleshooting:troubleshooting-log-generated",
2714         "payload": "",
2715         "payloadType": "date",
2716         "x": 650,
2717         "y": 1280,
2718         "wires": [
2719             [
2720                 "e5f66f4bd6777ca0"
2721             ]
2722         ]
2723     },
2724     {
2725         "id": "030a6e7e6371402e",
2726         "type": "inject",
2727         "z": "c5746e29f53f72ce",
2728         "d": true,
2729         "name": "o-ran-uplane-conf:tx-array-carriers-state-change",
2730         "props": [
2731             {
2732                 "p": "payload"
2733             },
2734             {
2735                 "p": "topic",
2736                 "vt": "str"
2737             }
2738         ],
2739         "repeat": "",
2740         "crontab": "",
2741         "once": false,
2742         "onceDelay": 0.1,
2743         "topic": "o-ran-uplane-conf:tx-array-carriers-state-change",
2744         "payload": "",
2745         "payloadType": "date",
2746         "x": 640,
2747         "y": 1360,
2748         "wires": [
2749             [
2750                 "e5f66f4bd6777ca0"
2751             ]
2752         ]
2753     },
2754     {
2755         "id": "d932661ae80274a1",
2756         "type": "inject",
2757         "z": "c5746e29f53f72ce",
2758         "name": "notifyNewAlarm",
2759         "props": [
2760             {
2761                 "p": "payload"
2762             },
2763             {
2764                 "p": "topic",
2765                 "vt": "str"
2766             }
2767         ],
2768         "repeat": "",
2769         "crontab": "",
2770         "once": false,
2771         "onceDelay": 0.1,
2772         "topic": "notifyNewAlarm",
2773         "payload": "",
2774         "payloadType": "date",
2775         "x": 240,
2776         "y": 600,
2777         "wires": [
2778             [
2779                 "e5f66f4bd6777ca0"
2780             ]
2781         ]
2782     },
2783     {
2784         "id": "c4337f08252203ec",
2785         "type": "inject",
2786         "z": "c5746e29f53f72ce",
2787         "name": "notifyChangedAlarm",
2788         "props": [
2789             {
2790                 "p": "payload"
2791             },
2792             {
2793                 "p": "topic",
2794                 "vt": "str"
2795             }
2796         ],
2797         "repeat": "",
2798         "crontab": "",
2799         "once": false,
2800         "onceDelay": 0.1,
2801         "topic": "notifyChangedAlarm",
2802         "payload": "",
2803         "payloadType": "date",
2804         "x": 230,
2805         "y": 640,
2806         "wires": [
2807             [
2808                 "e5f66f4bd6777ca0"
2809             ]
2810         ]
2811     },
2812     {
2813         "id": "62048992a866405d",
2814         "type": "inject",
2815         "z": "c5746e29f53f72ce",
2816         "name": "notifyChangedAlarmGeneral",
2817         "props": [
2818             {
2819                 "p": "payload"
2820             },
2821             {
2822                 "p": "topic",
2823                 "vt": "str"
2824             }
2825         ],
2826         "repeat": "",
2827         "crontab": "",
2828         "once": false,
2829         "onceDelay": 0.1,
2830         "topic": "notifyChangedAlarmGeneral",
2831         "payload": "",
2832         "payloadType": "date",
2833         "x": 200,
2834         "y": 680,
2835         "wires": [
2836             [
2837                 "e5f66f4bd6777ca0"
2838             ]
2839         ]
2840     },
2841     {
2842         "id": "353e0a6e1e693ae5",
2843         "type": "inject",
2844         "z": "c5746e29f53f72ce",
2845         "name": "notifyAckStateChanged",
2846         "props": [
2847             {
2848                 "p": "payload"
2849             },
2850             {
2851                 "p": "topic",
2852                 "vt": "str"
2853             }
2854         ],
2855         "repeat": "",
2856         "crontab": "",
2857         "once": false,
2858         "onceDelay": 0.1,
2859         "topic": "notifyAckStateChanged",
2860         "payload": "",
2861         "payloadType": "date",
2862         "x": 220,
2863         "y": 720,
2864         "wires": [
2865             [
2866                 "e5f66f4bd6777ca0"
2867             ]
2868         ]
2869     },
2870     {
2871         "id": "3879e3d1320f1459",
2872         "type": "inject",
2873         "z": "c5746e29f53f72ce",
2874         "name": "notifyCorrelatedNotificationChanged",
2875         "props": [
2876             {
2877                 "p": "payload"
2878             },
2879             {
2880                 "p": "topic",
2881                 "vt": "str"
2882             }
2883         ],
2884         "repeat": "",
2885         "crontab": "",
2886         "once": false,
2887         "onceDelay": 0.1,
2888         "topic": "notifyCorrelatedNotificationChanged",
2889         "payload": "",
2890         "payloadType": "date",
2891         "x": 180,
2892         "y": 760,
2893         "wires": [
2894             [
2895                 "e5f66f4bd6777ca0"
2896             ]
2897         ]
2898     },
2899     {
2900         "id": "ea314b13220c8f40",
2901         "type": "inject",
2902         "z": "c5746e29f53f72ce",
2903         "name": "notifyComments",
2904         "props": [
2905             {
2906                 "p": "payload"
2907             },
2908             {
2909                 "p": "topic",
2910                 "vt": "str"
2911             }
2912         ],
2913         "repeat": "",
2914         "crontab": "",
2915         "once": false,
2916         "onceDelay": 0.1,
2917         "topic": "notifyComments",
2918         "payload": "",
2919         "payloadType": "date",
2920         "x": 240,
2921         "y": 800,
2922         "wires": [
2923             [
2924                 "e5f66f4bd6777ca0"
2925             ]
2926         ]
2927     },
2928     {
2929         "id": "407c7befca74d24b",
2930         "type": "inject",
2931         "z": "c5746e29f53f72ce",
2932         "name": "notifyClearedAlarm",
2933         "props": [
2934             {
2935                 "p": "payload"
2936             },
2937             {
2938                 "p": "topic",
2939                 "vt": "str"
2940             }
2941         ],
2942         "repeat": "",
2943         "crontab": "",
2944         "once": false,
2945         "onceDelay": 0.1,
2946         "topic": "notifyClearedAlarm",
2947         "payload": "",
2948         "payloadType": "date",
2949         "x": 230,
2950         "y": 840,
2951         "wires": [
2952             [
2953                 "e5f66f4bd6777ca0"
2954             ]
2955         ]
2956     },
2957     {
2958         "id": "c054dd03a80a4e48",
2959         "type": "inject",
2960         "z": "c5746e29f53f72ce",
2961         "name": "notifyAlarmListRebuilt",
2962         "props": [
2963             {
2964                 "p": "payload"
2965             },
2966             {
2967                 "p": "topic",
2968                 "vt": "str"
2969             }
2970         ],
2971         "repeat": "",
2972         "crontab": "",
2973         "once": false,
2974         "onceDelay": 0.1,
2975         "topic": "notifyAlarmListRebuilt",
2976         "payload": "",
2977         "payloadType": "date",
2978         "x": 220,
2979         "y": 880,
2980         "wires": [
2981             [
2982                 "e5f66f4bd6777ca0"
2983             ]
2984         ]
2985     },
2986     {
2987         "id": "5c8b20a14ea5863a",
2988         "type": "inject",
2989         "z": "c5746e29f53f72ce",
2990         "name": "notifyPotentialFaultyAlarmList",
2991         "props": [
2992             {
2993                 "p": "payload"
2994             },
2995             {
2996                 "p": "topic",
2997                 "vt": "str"
2998             }
2999         ],
3000         "repeat": "",
3001         "crontab": "",
3002         "once": false,
3003         "onceDelay": 0.1,
3004         "topic": "notifyPotentialFaultyAlarmList",
3005         "payload": "",
3006         "payloadType": "date",
3007         "x": 200,
3008         "y": 920,
3009         "wires": [
3010             [
3011                 "e5f66f4bd6777ca0"
3012             ]
3013         ]
3014     },
3015     {
3016         "id": "f5d7d173f1ac5213",
3017         "type": "comment",
3018         "z": "c5746e29f53f72ce",
3019         "name": "TS28532_FaultMnS.yaml",
3020         "info": "",
3021         "x": 130,
3022         "y": 560,
3023         "wires": []
3024     },
3025     {
3026         "id": "c6687553f38611cd",
3027         "type": "comment",
3028         "z": "c5746e29f53f72ce",
3029         "name": "TS28532_FileDataReportingMnS.yaml",
3030         "info": "",
3031         "x": 170,
3032         "y": 440,
3033         "wires": []
3034     },
3035     {
3036         "id": "64720217524b2f2c",
3037         "type": "inject",
3038         "z": "c5746e29f53f72ce",
3039         "name": "notifyFilePreparationError",
3040         "props": [
3041             {
3042                 "p": "payload"
3043             },
3044             {
3045                 "p": "topic",
3046                 "vt": "str"
3047             }
3048         ],
3049         "repeat": "",
3050         "crontab": "",
3051         "once": false,
3052         "onceDelay": 0.1,
3053         "topic": "notifyFilePreparationError",
3054         "payload": "",
3055         "payloadType": "date",
3056         "x": 210,
3057         "y": 520,
3058         "wires": [
3059             [
3060                 "e5f66f4bd6777ca0"
3061             ]
3062         ]
3063     },
3064     {
3065         "id": "e4ec70e46406674f",
3066         "type": "function",
3067         "z": "c5746e29f53f72ce",
3068         "name": "http-preparation",
3069         "func": "const protocol = env.get('MESSAGES_PROTOCOL');\nconst host = env.get('MESSAGES_HOST');\nconst port = env.get('MESSAGES_PORT');\nconst base = protocol + '://' + host + ':' + port;\nconst path = msg.topic;\nmsg.url = [base, path].join('/');\nreturn msg;",
3070         "outputs": 1,
3071         "noerr": 0,
3072         "initialize": "",
3073         "finalize": "",
3074         "libs": [],
3075         "x": 680,
3076         "y": 180,
3077         "wires": [
3078             [
3079                 "3051f52553efaaa4"
3080             ]
3081         ]
3082     },
3083     {
3084         "id": "58232148f55eafc9",
3085         "type": "inject",
3086         "z": "c5746e29f53f72ce",
3087         "name": "heartbeat (deprecated)",
3088         "props": [
3089             {
3090                 "p": "payload"
3091             },
3092             {
3093                 "p": "topic",
3094                 "vt": "str"
3095             }
3096         ],
3097         "repeat": "60",
3098         "crontab": "",
3099         "once": false,
3100         "onceDelay": 0.1,
3101         "topic": "heartbeat",
3102         "payload": "",
3103         "payloadType": "date",
3104         "x": 210,
3105         "y": 120,
3106         "wires": [
3107             [
3108                 "e5f66f4bd6777ca0"
3109             ]
3110         ]
3111     },
3112     {
3113         "id": "23cf0bc0546d281b",
3114         "type": "inject",
3115         "z": "c5746e29f53f72ce",
3116         "name": "fault (deprecated)",
3117         "props": [
3118             {
3119                 "p": "payload"
3120             },
3121             {
3122                 "p": "topic",
3123                 "vt": "str"
3124             }
3125         ],
3126         "repeat": "60",
3127         "crontab": "",
3128         "once": false,
3129         "onceDelay": 0.1,
3130         "topic": "fault",
3131         "payload": "",
3132         "payloadType": "date",
3133         "x": 230,
3134         "y": 160,
3135         "wires": [
3136             [
3137                 "e5f66f4bd6777ca0"
3138             ]
3139         ]
3140     },
3141     {
3142         "id": "c5648c1528804847",
3143         "type": "inject",
3144         "z": "7ba02ed596e8cde5",
3145         "name": "supervision-watchdog-reset for O-RU-11221",
3146         "props": [
3147             {
3148                 "p": "payload"
3149             },
3150             {
3151                 "p": "topic",
3152                 "vt": "str"
3153             }
3154         ],
3155         "repeat": "",
3156         "crontab": "",
3157         "once": false,
3158         "onceDelay": 0.1,
3159         "topic": "supervision-watchdog-reset",
3160         "payload": "[\"O-RU-11221\"]",
3161         "payloadType": "json",
3162         "x": 230,
3163         "y": 100,
3164         "wires": [
3165             [
3166                 "2bd693b8c7e5a3cb"
3167             ]
3168         ]
3169     },
3170     {
3171         "id": "329e838eb4bf63f4",
3172         "type": "function",
3173         "z": "7ba02ed596e8cde5",
3174         "name": "http-preparation",
3175         "func": "const protocol = env.get('SDN_CONTROLLER_PROTOCOL');\nconst host = env.get('SDN_CONTROLLER_HOST');\nconst port = env.get('SDN_CONTROLLER_PORT');;\nconst base = protocol + '://' + host + ':' + port;\nconst path = 'rests/operations/network-topology:network-topology/topology=topology-netconf/node=';\nconst nodeId = msg.payload;\nconst mount = 'yang-ext:mount';\nconst action = 'o-ran-supervision:supervision-watchdog-reset';\nmsg.url = [base,path + nodeId, mount, action].join('/');\n\nconst user = env.get('SDN_CONTROLLER_USERNAME');\nconst password = env.get('SDN_CONTROLLER_PASSWORD');\nconst auth = Buffer.from([user, password].join(':')).toString('base64')\nconst basicAuth = ['Basic', auth].join(' ');\n\nmsg.headers = {};\nmsg.headers['Content-Type'] = 'application/yang-data+json';\nmsg.headers['Accept'] = 'application/yang-data+json';\nmsg.headers['Authorization'] = basicAuth;\n\nmsg.payload = { \n  \"o-ran-supervision:input\": \n    {\n      \"supervision-notification-interval\": 60, \n      \"guard-timer-overhead\": 10\n    }\n}\nreturn msg;",
3176         "outputs": 1,
3177         "noerr": 0,
3178         "initialize": "",
3179         "finalize": "",
3180         "libs": [],
3181         "x": 560,
3182         "y": 220,
3183         "wires": [
3184             [
3185                 "1a4b6a4ec23c8f9f",
3186                 "2bd693b8c7e5a3cb"
3187             ]
3188         ]
3189     },
3190     {
3191         "id": "1a4b6a4ec23c8f9f",
3192         "type": "http request",
3193         "z": "7ba02ed596e8cde5",
3194         "name": "RESTCONF request",
3195         "method": "POST",
3196         "ret": "txt",
3197         "paytoqs": "ignore",
3198         "url": "",
3199         "tls": "7b2f4859e5963695",
3200         "persist": true,
3201         "proxy": "",
3202         "insecureHTTPParser": true,
3203         "authType": "",
3204         "senderr": false,
3205         "headers": [],
3206         "x": 800,
3207         "y": 220,
3208         "wires": [
3209             [
3210                 "eb6c2de759c8eb54"
3211             ]
3212         ]
3213     },
3214     {
3215         "id": "eb6c2de759c8eb54",
3216         "type": "debug",
3217         "z": "7ba02ed596e8cde5",
3218         "name": "Response",
3219         "active": true,
3220         "tosidebar": true,
3221         "console": true,
3222         "tostatus": true,
3223         "complete": "payload",
3224         "targetType": "msg",
3225         "statusVal": "payload.length",
3226         "statusType": "msg",
3227         "x": 1010,
3228         "y": 220,
3229         "wires": []
3230     },
3231     {
3232         "id": "0d3ade9a80560c04",
3233         "type": "inject",
3234         "z": "7ba02ed596e8cde5",
3235         "name": "Every 5s",
3236         "props": [],
3237         "repeat": "5",
3238         "crontab": "",
3239         "once": false,
3240         "onceDelay": 0.1,
3241         "topic": "",
3242         "x": 120,
3243         "y": 140,
3244         "wires": [
3245             [
3246                 "5322d78ad66fcb96"
3247             ]
3248         ]
3249     },
3250     {
3251         "id": "5322d78ad66fcb96",
3252         "type": "function",
3253         "z": "7ba02ed596e8cde5",
3254         "name": "Consumer (new Data?)",
3255         "func": "// read topic data from global context\nconst topicData = global.get('topicData');\n// init result as array\nlet result = [];\nif (Array.isArray(topicData)) {\n    result = topicData.filter(event => {\n        return event.event.commonEventHeader.stndDefinedNamespace === 'o-ran-supervision:supervision-notification';\n    }).map(event => {\n        return event.event.commonEventHeader.sourceName;;\n    });\n}\nmsg.payload = result;\nglobal.set('topicData', []);\nreturn msg; ",
3256         "outputs": 1,
3257         "noerr": 0,
3258         "initialize": "",
3259         "finalize": "",
3260         "libs": [],
3261         "x": 310,
3262         "y": 140,
3263         "wires": [
3264             [
3265                 "2bd693b8c7e5a3cb"
3266             ]
3267         ]
3268     },
3269     {
3270         "id": "2bd693b8c7e5a3cb",
3271         "type": "loop",
3272         "z": "7ba02ed596e8cde5",
3273         "name": "Loop through O-RUs",
3274         "kind": "enum",
3275         "count": "",
3276         "initial": "1",
3277         "step": "1",
3278         "condition": "",
3279         "conditionType": "js",
3280         "when": "before",
3281         "enumeration": "payload",
3282         "enumerationType": "msg",
3283         "limit": "",
3284         "loopPayload": "loop-val",
3285         "finalPayload": "final-last",
3286         "x": 580,
3287         "y": 140,
3288         "wires": [
3289             [],
3290             [
3291                 "329e838eb4bf63f4"
3292             ]
3293         ]
3294     },
3295     {
3296         "id": "f7dc363e5421d1cf",
3297         "type": "comment",
3298         "z": "7ba02ed596e8cde5",
3299         "name": "Supervision",
3300         "info": "",
3301         "x": 90,
3302         "y": 40,
3303         "wires": []
3304     },
3305     {
3306         "id": "a72d8f5e9683dd39",
3307         "type": "comment",
3308         "z": "7ba02ed596e8cde5",
3309         "name": "The Consumer checks for data on the message router provided by the \"Massage Topics\" flow.",
3310         "info": "The Consumer checks for data on the message router provided by the \"Massage Topics\" flow.",
3311         "x": 520,
3312         "y": 280,
3313         "wires": []
3314     }
3315 ]