change log updated
[public/netxms.git] / include / nxcldefs.h
CommitLineData
bf6fb6c3
VK
1/*
2** NetXMS - Network Management System
3** Common defines for client library and server
4** Copyright (C) 2003-2014 Victor Kirhenshtein
5**
6** This program is free software; you can redistribute it and/or modify
7** it under the terms of the GNU Lesser General Public License as published by
8** the Free Software Foundation; either version 3 of the License, or
9** (at your option) any later version.
10**
11** This program is distributed in the hope that it will be useful,
12** but WITHOUT ANY WARRANTY; without even the implied warranty of
13** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14** GNU General Public License for more details.
15**
16** You should have received a copy of the GNU Lesser General Public License
17** along with this program; if not, write to the Free Software
18** Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
19**
20** File: nxcldefs.h
21**
22**/
23
24#ifndef _nxcldefs_h_
25#define _nxcldefs_h_
26
27#include <nxlog.h>
0207b7dd 28#include <uuid.h>
bf6fb6c3
VK
29
30/**
31 * Some constants
32 */
33#define MAX_COMMUNITY_LENGTH 128
34#define MAX_OID_LENGTH 1024
35#define MAX_EVENT_MSG_LENGTH 2000
36#define MAX_EVENT_NAME 64
37#define MAX_USERTAG_LENGTH 64
38#define MAX_SESSION_NAME 256
39#define MAX_USER_NAME 64
40#define MAX_USER_FULLNAME 128
41#define MAX_USER_DESCR 256
42#define MAX_ITEM_NAME 1024
43#define MAX_STRING_VALUE 256
44#define MAX_VARIABLE_NAME 256
45#define MAX_AGENT_VERSION_LEN 64
46#define MAX_PLATFORM_NAME_LEN 64
47#define MAX_PACKAGE_NAME_LEN 64
e980db40 48#define MAX_NODE_SUBTYPE_LENGTH 128
bf6fb6c3
VK
49#define GROUP_EVERYONE ((UINT32)0x80000000)
50#define INVALID_UID ((UINT32)0xFFFFFFFF)
51#define OBJECT_STATUS_COUNT 9
52#define MAX_RCPT_ADDR_LEN 256
53#define MAX_EMAIL_SUBJECT_LEN 256
54#define MAC_ADDR_LENGTH 6
55#define CURRENT_USER ((UINT32)0xFFFFFFFF)
56#define MAX_DCI_DATA_RECORDS 200000
57#define MAX_POLICY_CONFIG_NAME 64
ce9e00cc 58#define MAX_INT32 0x7FFFFFFF
bf6fb6c3
VK
59
60/**
61 * NetXMS agent authentication methods
62 */
63#define AUTH_NONE 0
64#define AUTH_PLAINTEXT 1
65#define AUTH_MD5_HASH 2
66#define AUTH_SHA1_HASH 3
67
68/**
69 * Client-server authentication types
70 */
71#define NETXMS_AUTH_TYPE_PASSWORD 0
72#define NETXMS_AUTH_TYPE_CERTIFICATE 1
73#define NETXMS_AUTH_TYPE_SSO_TICKET 2
74
75/**
76 * Client type
77 */
78#define CLIENT_TYPE_DESKTOP 0
79#define CLIENT_TYPE_WEB 1
80#define CLIENT_TYPE_MOBILE 2
81#define CLIENT_TYPE_TABLET 3
82#define CLIENT_TYPE_APPLICATION 4
83
84/**
85 * Forced poll types
86 */
f7e3eb5a
VK
87#define POLL_STATUS 1
88#define POLL_CONFIGURATION_FULL 2
89#define POLL_INTERFACE_NAMES 3
90#define POLL_TOPOLOGY 4
91#define POLL_CONFIGURATION_NORMAL 5
92#define POLL_INSTANCE_DISCOVERY 6
bf6fb6c3
VK
93
94/**
95 * Object types
96 */
3df8bccd
Z
97#define OBJECT_GENERIC 0
98#define OBJECT_SUBNET 1
99#define OBJECT_NODE 2
100#define OBJECT_INTERFACE 3
101#define OBJECT_NETWORK 4
102#define OBJECT_CONTAINER 5
103#define OBJECT_ZONE 6
104#define OBJECT_SERVICEROOT 7
105#define OBJECT_TEMPLATE 8
106#define OBJECT_TEMPLATEGROUP 9
107#define OBJECT_TEMPLATEROOT 10
108#define OBJECT_NETWORKSERVICE 11
109#define OBJECT_VPNCONNECTOR 12
110#define OBJECT_CONDITION 13
111#define OBJECT_CLUSTER 14
112#define OBJECT_POLICYGROUP 15
113#define OBJECT_POLICYROOT 16
114#define OBJECT_AGENTPOLICY 17
115#define OBJECT_AGENTPOLICY_CONFIG 18
116#define OBJECT_NETWORKMAPROOT 19
117#define OBJECT_NETWORKMAPGROUP 20
118#define OBJECT_NETWORKMAP 21
119#define OBJECT_DASHBOARDROOT 22
120#define OBJECT_DASHBOARD 23
121#define OBJECT_BUSINESSSERVICEROOT 27
122#define OBJECT_BUSINESSSERVICE 28
123#define OBJECT_NODELINK 29
124#define OBJECT_SLMCHECK 30
125#define OBJECT_MOBILEDEVICE 31
126#define OBJECT_RACK 32
127#define OBJECT_ACCESSPOINT 33
128#define OBJECT_AGENTPOLICY_LOGPARSER 34
e4926628 129#define OBJECT_CHASSIS 35
d28084ec 130#define OBJECT_DASHBOARDGROUP 36
ce9e00cc 131#define OBJECT_SENSOR 37
bf6fb6c3
VK
132
133/** Base value for custom object classes */
e4926628 134#define OBJECT_CUSTOM 10000
bf6fb6c3
VK
135
136/**
137 * Object's status
138 */
139#define STATUS_NORMAL 0
140#define STATUS_WARNING 1
141#define STATUS_MINOR 2
142#define STATUS_MAJOR 3
143#define STATUS_CRITICAL 4
144#define STATUS_UNKNOWN 5
145#define STATUS_UNMANAGED 6
146#define STATUS_DISABLED 7
147#define STATUS_TESTING 8
148
149/**
150 * Event and alarm severity
151 */
152#define SEVERITY_NORMAL 0
153#define SEVERITY_WARNING 1
154#define SEVERITY_MINOR 2
155#define SEVERITY_MAJOR 3
156#define SEVERITY_CRITICAL 4
157#define SEVERITY_FROM_EVENT 5
158#define SEVERITY_TERMINATE 6
159#define SEVERITY_RESOLVE 7
160
161/**
162 * Alarm states
163 */
164#define ALARM_STATE_OUTSTANDING 0x00
165#define ALARM_STATE_ACKNOWLEDGED 0x01
166#define ALARM_STATE_RESOLVED 0x02
167#define ALARM_STATE_TERMINATED 0x03
168#define ALARM_STATE_MASK 0x0F /* mask for selecting alarm state */
169#define ALARM_STATE_STICKY 0x10 /* bit flag indicating sticky state */
170
171/**
172 * Alarm state in help desk system
173 */
174#define ALARM_HELPDESK_IGNORED 0
175#define ALARM_HELPDESK_OPEN 1
176#define ALARM_HELPDESK_CLOSED 2
177
178/**
8c433c4f 179 * Node capabilities
bf6fb6c3 180 */
91b3cba9 181#define NC_IS_SNMP 0x00000001
182#define NC_IS_NATIVE_AGENT 0x00000002
183#define NC_IS_BRIDGE 0x00000004
184#define NC_IS_ROUTER 0x00000008
185#define NC_IS_LOCAL_MGMT 0x00000010
186#define NC_IS_PRINTER 0x00000020
187#define NC_IS_OSPF 0x00000040
188#define NC_IS_CPSNMP 0x00000080 /* CheckPoint SNMP agent on port 260 */
189#define NC_IS_CDP 0x00000100
190#define NC_IS_NDP 0x00000200 /* Supports Nortel (Synoptics/Bay Networks) topology discovery */ /* SONMP is an old name for NDP */
191#define NC_IS_LLDP 0x00000400 /* Supports Link Layer Discovery Protocol */
192#define NC_IS_VRRP 0x00000800 /* VRRP support */
193#define NC_HAS_VLANS 0x00001000 /* VLAN information available */
194#define NC_IS_8021X 0x00002000 /* 802.1x support enabled on node */
195#define NC_IS_STP 0x00004000 /* Spanning Tree (IEEE 802.1d) enabled on node */
196#define NC_HAS_ENTITY_MIB 0x00008000 /* Supports ENTITY-MIB */
197#define NC_HAS_IFXTABLE 0x00010000 /* Supports ifXTable */
198#define NC_HAS_AGENT_IFXCOUNTERS 0x00020000 /* Agent supports 64-bit interface counters */
199#define NC_HAS_WINPDH 0x00040000 /* Node supports Windows PDH parameters */
200#define NC_IS_WIFI_CONTROLLER 0x00080000 /* Node is wireless network controller */
201#define NC_IS_SMCLP 0x00100000 /* Node supports SMCLP protocol */
202
203/**
204 * Flag separator
205 */
206#define DCF_COLLECTION_FLAGS 0x0000FFFF
8c433c4f
VK
207
208/**
209 * Node flags
210 */
91b3cba9 211#define NF_REMOTE_AGENT 0x00010000
212#define NF_DISABLE_DISCOVERY_POLL 0x00020000
213#define NF_DISABLE_TOPOLOGY_POLL 0x00040000
214#define NF_DISABLE_SNMP 0x00080000
215#define NF_DISABLE_NXCP 0x00100000
216#define NF_DISABLE_ICMP 0x00200000
217#define NF_FORCE_ENCRYPTION 0x00400000
218#define NF_DISABLE_ROUTE_POLL 0x00800000
219
220/**
221 * Data Collection flags first half of int
222 */
223#define DCF_DISABLE_STATUS_POLL 0x00000001
224#define DCF_DISABLE_CONF_POLL 0x00000002
225#define DCF_DISABLE_DATA_COLLECT 0x00000004
226
227
228/**
229 * Data Collection Object runtime (dynamic) flags first half of int
230 */
231#define DCDF_QUEUED_FOR_STATUS_POLL 0x0001
232#define DCDF_QUEUED_FOR_CONFIGURATION_POLL 0x0002
233#define DCDF_QUEUED_FOR_INSTANCE_POLL 0x0004
234#define DCDF_DELETE_IN_PROGRESS 0x0008
235#define DCDF_FORCE_STATUS_POLL 0x0010
236#define DCDF_FORCE_CONFIGURATION_POLL 0x0020
237#define DCDF_CONFIGURATION_POLL_PASSED 0x0040
688e0055 238#define DCDF_CONFIGURATION_POLL_PENDING 0x0080
91b3cba9 239
240/**
241 * Node runtime (dynamic) flags
242 */
243#define NDF_QUEUED_FOR_TOPOLOGY_POLL 0x00010000
244#define NDF_QUEUED_FOR_DISCOVERY_POLL 0x00020000
245#define NDF_QUEUED_FOR_ROUTE_POLL 0x00040000
a0cc56b3 246#define NDF_RECHECK_CAPABILITIES 0x00080000
5b0d07be 247#define NDF_NEW_TUNNEL_BIND 0x00100000
a0cc56b3 248
249/**
250 *
251 */
252#define DCSF_UNREACHABLE 0x00000001
253#define DCSF_NETWORK_PATH_PROBLEM 0x00000002
91b3cba9 254
255/**
256 * Cluster status flags
257 */
a0cc56b3 258#define CLSF_DOWN 0x00010000
91b3cba9 259
260/**
a0cc56b3 261 * Node state flags
91b3cba9 262 */
a0cc56b3 263#define NSF_AGENT_UNREACHABLE 0x00010000
264#define NSF_SNMP_UNREACHABLE 0x00020000
265#define NSF_CPSNMP_UNREACHABLE 0x00040000
266#define NSF_CACHE_MODE_NOT_SUPPORTED 0x00080000
91b3cba9 267
268/**
269 * Sensor status flags
270 */
a0cc56b3 271#define SSF_PROVISIONED 0x00010000
272#define SSF_REGISTERED 0x00020000
273#define SSF_ACTIVE 0x00040000
274#define SSF_CONF_UPDATE_PENDING 0x00080000
bf6fb6c3
VK
275
276/**
277 * Template flags
278 */
279#define TF_AUTO_APPLY 0x00000001
280#define TF_AUTO_REMOVE 0x00000002
281
282/**
283 * Container flags
284 */
285#define CF_AUTO_BIND 0x00000001
286#define CF_AUTO_UNBIND 0x00000002
287
288/**
32a400d9
VK
289 * Chassis flags
290 */
291#define CHF_BIND_UNDER_CONTROLLER 0x00000001
292
293/**
bf6fb6c3
VK
294 * Interface flags
295 */
296#define IF_SYNTHETIC_MASK 0x00000001
297#define IF_PHYSICAL_PORT 0x00000002
298#define IF_EXCLUDE_FROM_TOPOLOGY 0x00000004
299#define IF_LOOPBACK 0x00000008
300#define IF_CREATED_MANUALLY 0x00000010
301#define IF_PEER_REFLECTION 0x00000020 /* topology information obtained by reflection */
302#define IF_EXPECTED_STATE_MASK 0x30000000 /* 2-bit field holding expected interface state */
303#define IF_USER_FLAGS_MASK (IF_EXCLUDE_FROM_TOPOLOGY) /* flags that can be changed by user */
304
305/**
306 * Expected interface states
307 */
308#define IF_EXPECTED_STATE_UP 0
309#define IF_EXPECTED_STATE_DOWN 1
310#define IF_EXPECTED_STATE_IGNORE 2
c908b63b
VK
311#define IF_EXPECTED_STATE_AUTO 3
312
313/**
314 * Default expected state for new interface creation
315 */
316#define IF_DEFAULT_EXPECTED_STATE_UP 0
317#define IF_DEFAULT_EXPECTED_STATE_AUTO 1
318#define IF_DEFAULT_EXPECTED_STATE_IGNORE 2
bf6fb6c3
VK
319
320/**
321 * Interface administrative states
322 */
42c6d15b
VK
323enum InterfaceAdminState
324{
325 IF_ADMIN_STATE_UNKNOWN = 0,
326 IF_ADMIN_STATE_UP = 1,
327 IF_ADMIN_STATE_DOWN = 2,
328 IF_ADMIN_STATE_TESTING = 3
329};
bf6fb6c3
VK
330
331/**
332 * Interface operational states
333 */
42c6d15b
VK
334enum InterfaceOperState
335{
dd50e399
VK
336 IF_OPER_STATE_UNKNOWN = 0,
337 IF_OPER_STATE_UP = 1,
338 IF_OPER_STATE_DOWN = 2,
339 IF_OPER_STATE_TESTING = 3,
340 IF_OPER_STATE_DORMANT = 4,
341 IF_OPER_STATE_NOT_PRESENT = 5
42c6d15b 342};
bf6fb6c3
VK
343
344/**
345 * Node ifXTable usage mode
346 */
347#define IFXTABLE_DEFAULT 0
348#define IFXTABLE_ENABLED 1
349#define IFXTABLE_DISABLED 2
350
351/**
352 * Status calculation and propagation algorithms
353 */
354#define SA_CALCULATE_DEFAULT 0
355#define SA_CALCULATE_MOST_CRITICAL 1
356#define SA_CALCULATE_SINGLE_THRESHOLD 2
357#define SA_CALCULATE_MULTIPLE_THRESHOLDS 3
358
359#define SA_PROPAGATE_DEFAULT 0
360#define SA_PROPAGATE_UNCHANGED 1
361#define SA_PROPAGATE_FIXED 2
362#define SA_PROPAGATE_RELATIVE 3
363#define SA_PROPAGATE_TRANSLATED 4
364
365/**
366 * Network map types
367 */
368#define MAP_TYPE_CUSTOM 0
369#define MAP_TYPE_LAYER2_TOPOLOGY 1
370#define MAP_TYPE_IP_TOPOLOGY 2
371
372/**
373 * Components that can be locked by management pack installer
374 */
375#define NXMP_LC_EVENTDB 0
376#define NXMP_LC_EPP 1
377#define NXMP_LC_TRAPCFG 2
378
379/**
380 * Network service types
381 */
382enum
383{
384 NETSRV_CUSTOM,
385 NETSRV_SSH,
386 NETSRV_POP3,
387 NETSRV_SMTP,
388 NETSRV_FTP,
389 NETSRV_HTTP,
390 NETSRV_HTTPS,
391 NETSRV_TELNET
392};
393
394/**
395 * Address list types
396 */
397#define ADDR_LIST_DISCOVERY_TARGETS 1
398#define ADDR_LIST_DISCOVERY_FILTER 2
399
400/**
401 * Discovery filter flags
402 */
403#define DFF_ALLOW_AGENT 0x0001
404#define DFF_ALLOW_SNMP 0x0002
405#define DFF_ONLY_RANGE 0x0004
406
407/**
408 * Connection point types
409 */
410#define CP_TYPE_INDIRECT 0
411#define CP_TYPE_DIRECT 1
412#define CP_TYPE_WIRELESS 2
a395910c 413#define CP_TYPE_UNKNOWN 3
bf6fb6c3
VK
414
415/**
416 * Events
417 */
418#define NXC_EVENT_CONNECTION_BROKEN 1
419#define NXC_EVENT_NEW_ELOG_RECORD 2
420#define NXC_EVENT_USER_DB_CHANGED 3
421#define NXC_EVENT_OBJECT_CHANGED 4
422#define NXC_EVENT_NOTIFICATION 5
423#define NXC_EVENT_DEPLOYMENT_STATUS 6
424#define NXC_EVENT_NEW_SYSLOG_RECORD 7
425#define NXC_EVENT_NEW_SNMP_TRAP 8
00420032 426//#define NXC_EVENT_SITUATION_UPDATE 9
bf6fb6c3
VK
427#define NXC_EVENT_JOB_CHANGE 10
428
429/**
430 * Session states (used both by client library and server)
431 */
432enum SessionState
433{
434 STATE_DISCONNECTED = 0,
435 STATE_CONNECTING = 1,
436 STATE_CONNECTED = 2,
437 STATE_AUTHENTICATED = 3
438};
439
440/**
441 * Notification codes
442 */
443#define NX_NOTIFY_SHUTDOWN 1
8d9ee864 444#define NX_NOTIFY_RELOAD_EVENT_DB 2
bf6fb6c3
VK
445#define NX_NOTIFY_ALARM_DELETED 3
446#define NX_NOTIFY_NEW_ALARM 4
447#define NX_NOTIFY_ALARM_CHANGED 5
448#define NX_NOTIFY_ACTION_CREATED 6
449#define NX_NOTIFY_ACTION_MODIFIED 7
450#define NX_NOTIFY_ACTION_DELETED 8
451#define NX_NOTIFY_OBJTOOLS_CHANGED 9
452#define NX_NOTIFY_DBCONN_STATUS 10
453#define NX_NOTIFY_ALARM_TERMINATED 11
454#define NX_NOTIFY_GRAPHS_CHANGED 12
455#define NX_NOTIFY_ETMPL_CHANGED 13
456#define NX_NOTIFY_ETMPL_DELETED 14
457#define NX_NOTIFY_OBJTOOL_DELETED 15
458#define NX_NOTIFY_TRAPCFG_CREATED 16
459#define NX_NOTIFY_TRAPCFG_MODIFIED 17
460#define NX_NOTIFY_TRAPCFG_DELETED 18
461#define NX_NOTIFY_MAPTBL_CHANGED 19
462#define NX_NOTIFY_MAPTBL_DELETED 20
463#define NX_NOTIFY_DCISUMTBL_CHANGED 21
464#define NX_NOTIFY_DCISUMTBL_DELETED 22
465#define NX_NOTIFY_CERTIFICATE_CHANGED 23
466#define NX_NOTIFY_ALARM_STATUS_FLOW_CHANGED 24
467#define NX_NOTIFY_FILE_LIST_CHANGED 25
468#define NX_NOTIFY_FILE_MONITORING_FAILED 26
469#define NX_NOTIFY_SESSION_KILLED 27
8284dc9a 470#define NX_NOTIFY_GRAPHS_DELETED 28
b3beb7f4 471#define NX_NOTIFY_SCHEDULE_UPDATE 29
6a6b96c0
EJ
472#define NX_NOTIFY_ALARM_CATEGORY_UPDATE 30
473#define NX_NOTIFY_ALARM_CATEGORY_DELETE 31
a881eafa
VK
474#define NX_NOTIFY_MULTIPLE_ALARMS_TERMINATED 32
475#define NX_NOTIFY_MULTIPLE_ALARMS_RESOLVED 33
6da535d9 476#define NX_NOTIFY_FORCE_DCI_POLL 34
bf6fb6c3
VK
477
478/**
479 * Request completion codes
480 */
3b89a4c1
VK
481#define RCC_SUCCESS ((UINT32)0)
482#define RCC_COMPONENT_LOCKED ((UINT32)1)
483#define RCC_ACCESS_DENIED ((UINT32)2)
484#define RCC_INVALID_REQUEST ((UINT32)3)
485#define RCC_TIMEOUT ((UINT32)4)
486#define RCC_OUT_OF_STATE_REQUEST ((UINT32)5)
487#define RCC_DB_FAILURE ((UINT32)6)
488#define RCC_INVALID_OBJECT_ID ((UINT32)7)
489#define RCC_ALREADY_EXIST ((UINT32)8)
490#define RCC_COMM_FAILURE ((UINT32)9)
491#define RCC_SYSTEM_FAILURE ((UINT32)10)
492#define RCC_INVALID_USER_ID ((UINT32)11)
493#define RCC_INVALID_ARGUMENT ((UINT32)12)
494#define RCC_DUPLICATE_DCI ((UINT32)13)
495#define RCC_INVALID_DCI_ID ((UINT32)14)
496#define RCC_OUT_OF_MEMORY ((UINT32)15)
497#define RCC_IO_ERROR ((UINT32)16)
498#define RCC_INCOMPATIBLE_OPERATION ((UINT32)17)
499#define RCC_OBJECT_CREATION_FAILED ((UINT32)18)
500#define RCC_OBJECT_LOOP ((UINT32)19)
501#define RCC_INVALID_OBJECT_NAME ((UINT32)20)
502#define RCC_INVALID_ALARM_ID ((UINT32)21)
503#define RCC_INVALID_ACTION_ID ((UINT32)22)
504#define RCC_OPERATION_IN_PROGRESS ((UINT32)23)
505#define RCC_DCI_COPY_ERRORS ((UINT32)24)
506#define RCC_INVALID_EVENT_CODE ((UINT32)25)
507#define RCC_NO_WOL_INTERFACES ((UINT32)26)
508#define RCC_NO_MAC_ADDRESS ((UINT32)27)
509#define RCC_NOT_IMPLEMENTED ((UINT32)28)
510#define RCC_INVALID_TRAP_ID ((UINT32)29)
511#define RCC_DCI_NOT_SUPPORTED ((UINT32)30)
512#define RCC_VERSION_MISMATCH ((UINT32)31)
513#define RCC_NPI_PARSE_ERROR ((UINT32)32)
514#define RCC_DUPLICATE_PACKAGE ((UINT32)33)
515#define RCC_PACKAGE_FILE_EXIST ((UINT32)34)
516#define RCC_RESOURCE_BUSY ((UINT32)35)
517#define RCC_INVALID_PACKAGE_ID ((UINT32)36)
518#define RCC_INVALID_IP_ADDR ((UINT32)37)
519#define RCC_ACTION_IN_USE ((UINT32)38)
520#define RCC_VARIABLE_NOT_FOUND ((UINT32)39)
521#define RCC_BAD_PROTOCOL ((UINT32)40)
522#define RCC_ADDRESS_IN_USE ((UINT32)41)
523#define RCC_NO_CIPHERS ((UINT32)42)
524#define RCC_INVALID_PUBLIC_KEY ((UINT32)43)
525#define RCC_INVALID_SESSION_KEY ((UINT32)44)
526#define RCC_NO_ENCRYPTION_SUPPORT ((UINT32)45)
527#define RCC_INTERNAL_ERROR ((UINT32)46)
528#define RCC_EXEC_FAILED ((UINT32)47)
529#define RCC_INVALID_TOOL_ID ((UINT32)48)
530#define RCC_SNMP_ERROR ((UINT32)49)
531#define RCC_BAD_REGEXP ((UINT32)50)
532#define RCC_UNKNOWN_PARAMETER ((UINT32)51)
533#define RCC_FILE_IO_ERROR ((UINT32)52)
534#define RCC_CORRUPTED_MIB_FILE ((UINT32)53)
535#define RCC_TRANSFER_IN_PROGRESS ((UINT32)54)
536#define RCC_INVALID_JOB_ID ((UINT32)55)
537#define RCC_INVALID_SCRIPT_ID ((UINT32)56)
538#define RCC_INVALID_SCRIPT_NAME ((UINT32)57)
539#define RCC_UNKNOWN_MAP_NAME ((UINT32)58)
540#define RCC_INVALID_MAP_ID ((UINT32)59)
541#define RCC_ACCOUNT_DISABLED ((UINT32)60)
542#define RCC_NO_GRACE_LOGINS ((UINT32)61)
543#define RCC_CONNECTION_BROKEN ((UINT32)62)
544#define RCC_INVALID_CONFIG_ID ((UINT32)63)
545#define RCC_DB_CONNECTION_LOST ((UINT32)64)
546#define RCC_ALARM_OPEN_IN_HELPDESK ((UINT32)65)
547#define RCC_ALARM_NOT_OUTSTANDING ((UINT32)66)
548#define RCC_NOT_PUSH_DCI ((UINT32)67)
549#define RCC_CONFIG_PARSE_ERROR ((UINT32)68)
550#define RCC_CONFIG_VALIDATION_ERROR ((UINT32)69)
551#define RCC_INVALID_GRAPH_ID ((UINT32)70)
552#define RCC_LOCAL_CRYPTO_ERROR ((UINT32)71)
553#define RCC_UNSUPPORTED_AUTH_TYPE ((UINT32)72)
554#define RCC_BAD_CERTIFICATE ((UINT32)73)
555#define RCC_INVALID_CERT_ID ((UINT32)74)
556#define RCC_SNMP_FAILURE ((UINT32)75)
557#define RCC_NO_L2_TOPOLOGY_SUPPORT ((UINT32)76)
558#define RCC_INVALID_PSTORAGE_KEY ((UINT32)77)
559#define RCC_NO_SUCH_INSTANCE ((UINT32)78)
560#define RCC_INVALID_EVENT_ID ((UINT32)79)
561#define RCC_AGENT_ERROR ((UINT32)80)
562#define RCC_UNKNOWN_VARIABLE ((UINT32)81)
563#define RCC_RESOURCE_NOT_AVAILABLE ((UINT32)82)
564#define RCC_JOB_CANCEL_FAILED ((UINT32)83)
565#define RCC_INVALID_POLICY_ID ((UINT32)84)
566#define RCC_UNKNOWN_LOG_NAME ((UINT32)85)
567#define RCC_INVALID_LOG_HANDLE ((UINT32)86)
568#define RCC_WEAK_PASSWORD ((UINT32)87)
569#define RCC_REUSED_PASSWORD ((UINT32)88)
570#define RCC_INVALID_SESSION_HANDLE ((UINT32)89)
571#define RCC_CLUSTER_MEMBER_ALREADY ((UINT32)90)
572#define RCC_JOB_HOLD_FAILED ((UINT32)91)
573#define RCC_JOB_UNHOLD_FAILED ((UINT32)92)
574#define RCC_ZONE_ID_ALREADY_IN_USE ((UINT32)93)
575#define RCC_INVALID_ZONE_ID ((UINT32)94)
576#define RCC_ZONE_NOT_EMPTY ((UINT32)95)
577#define RCC_NO_COMPONENT_DATA ((UINT32)96)
578#define RCC_INVALID_ALARM_NOTE_ID ((UINT32)97)
579#define RCC_ENCRYPTION_ERROR ((UINT32)98)
580#define RCC_INVALID_MAPPING_TABLE_ID ((UINT32)99)
581#define RCC_NO_SOFTWARE_PACKAGE_DATA ((UINT32)100)
582#define RCC_INVALID_SUMMARY_TABLE_ID ((UINT32)101)
583#define RCC_USER_LOGGED_IN ((UINT32)102)
584#define RCC_XML_PARSE_ERROR ((UINT32)103)
585#define RCC_HIGH_QUERY_COST ((UINT32)104)
586#define RCC_LICENSE_VIOLATION ((UINT32)105)
587#define RCC_CLIENT_LICENSE_EXCEEDED ((UINT32)106)
588#define RCC_OBJECT_ALREADY_EXISTS ((UINT32)107)
589#define RCC_NO_HDLINK ((UINT32)108)
590#define RCC_HDLINK_COMM_FAILURE ((UINT32)109)
591#define RCC_HDLINK_ACCESS_DENIED ((UINT32)110)
592#define RCC_HDLINK_INTERNAL_ERROR ((UINT32)111)
593#define RCC_NO_LDAP_CONNECTION ((UINT32)112)
594#define RCC_NO_ROUTING_TABLE ((UINT32)113)
595#define RCC_NO_FDB ((UINT32)114)
596#define RCC_NO_LOCATION_HISTORY ((UINT32)115)
597#define RCC_OBJECT_IN_USE ((UINT32)116)
598#define RCC_NXSL_COMPILATION_ERROR ((UINT32)117)
599#define RCC_NXSL_EXECUTION_ERROR ((UINT32)118)
600#define RCC_UNKNOWN_CONFIG_VARIABLE ((UINT32)119)
601#define RCC_UNSUPPORTED_AUTH_METHOD ((UINT32)120)
602#define RCC_NAME_ALEARDY_EXISTS ((UINT32)121)
603#define RCC_CATEGORY_IN_USE ((UINT32)122)
604#define RCC_CATEGORY_NAME_EMPTY ((UINT32)123)
605#define RCC_AGENT_FILE_DOWNLOAD_ERROR ((UINT32)124)
606#define RCC_INVALID_TUNNEL_ID ((UINT32)125)
8ad8cbe8 607#define RCC_FILE_ALREADY_EXISTS ((UINT32)126)
608#define RCC_FOLDER_ALREADY_EXISTS ((UINT32)127)
bf6fb6c3
VK
609
610/**
611 * Mask bits for NXCModifyEventTemplate()
612 */
613#define EM_SEVERITY ((UINT32)0x01)
614#define EM_FLAGS ((UINT32)0x02)
615#define EM_NAME ((UINT32)0x04)
616#define EM_MESSAGE ((UINT32)0x08)
617#define EM_DESCRIPTION ((UINT32)0x10)
618#define EM_ALL ((UINT32)0x1F)
619
620/**
621 * Mask bits (flags) for NXCModifyObject()
622 */
623#define OBJ_UPDATE_NAME ((QWORD)_ULL(0x0000000001))
624#define OBJ_UPDATE_AGENT_PORT ((QWORD)_ULL(0x0000000002))
625#define OBJ_UPDATE_AGENT_AUTH ((QWORD)_ULL(0x0000000004))
626#define OBJ_UPDATE_AGENT_SECRET ((QWORD)_ULL(0x0000000008))
627#define OBJ_UPDATE_SNMP_VERSION ((QWORD)_ULL(0x0000000010))
628#define OBJ_UPDATE_SNMP_AUTH ((QWORD)_ULL(0x0000000020))
629#define OBJ_UPDATE_ACL ((QWORD)_ULL(0x0000000040))
630#define OBJ_UPDATE_GEOLOCATION ((QWORD)_ULL(0x0000000080))
631#define OBJ_UPDATE_SYNC_NETS ((QWORD)_ULL(0x0000000100))
632#define OBJ_UPDATE_SERVICE_TYPE ((QWORD)_ULL(0x0000000200))
633#define OBJ_UPDATE_IP_PROTO ((QWORD)_ULL(0x0000000400))
634#define OBJ_UPDATE_IP_PORT ((QWORD)_ULL(0x0000000800))
635#define OBJ_UPDATE_CHECK_REQUEST ((QWORD)_ULL(0x0000001000))
636#define OBJ_UPDATE_CHECK_RESPONSE ((QWORD)_ULL(0x0000002000))
637#define OBJ_UPDATE_POLLER_NODE ((QWORD)_ULL(0x0000004000))
638#define OBJ_UPDATE_IP_ADDR ((QWORD)_ULL(0x0000008000))
639#define OBJ_UPDATE_PEER_GATEWAY ((QWORD)_ULL(0x0000010000))
640#define OBJ_UPDATE_NETWORK_LIST ((QWORD)_ULL(0x0000020000))
641#define OBJ_UPDATE_STATUS_ALG ((QWORD)_ULL(0x0000040000))
642#define OBJ_UPDATE_PROXY_NODE ((QWORD)_ULL(0x0000080000))
643#define OBJ_UPDATE_FLAGS ((QWORD)_ULL(0x0000100000))
644#define OBJ_UPDATE_ACT_EVENT ((QWORD)_ULL(0x0000200000))
645#define OBJ_UPDATE_DEACT_EVENT ((QWORD)_ULL(0x0000400000))
646#define OBJ_UPDATE_SOURCE_OBJECT ((QWORD)_ULL(0x0000800000))
647#define OBJ_UPDATE_ACTIVE_STATUS ((QWORD)_ULL(0x0001000000))
648#define OBJ_UPDATE_INACTIVE_STATUS ((QWORD)_ULL(0x0002000000))
649#define OBJ_UPDATE_DCI_LIST ((QWORD)_ULL(0x0004000000))
650#define OBJ_UPDATE_SCRIPT ((QWORD)_ULL(0x0008000000))
651#define OBJ_UPDATE_CLUSTER_TYPE ((QWORD)_ULL(0x0010000000))
652#define OBJ_UPDATE_RESOURCES ((QWORD)_ULL(0x0020000000))
653#define OBJ_UPDATE_SNMP_PROXY ((QWORD)_ULL(0x0040000000))
654#define OBJ_UPDATE_REQUIRED_POLLS ((QWORD)_ULL(0x0080000000))
655#define OBJ_UPDATE_TRUSTED_NODES ((QWORD)_ULL(0x0100000000))
656#define OBJ_UPDATE_CUSTOM_ATTRS ((QWORD)_ULL(0x0200000000))
657#define OBJ_UPDATE_USE_IFXTABLE ((QWORD)_ULL(0x0400000000))
658#define OBJ_UPDATE_AUTOBIND ((QWORD)_ULL(0x1000000000))
659#define OBJ_UPDATE_SNMP_PORT ((QWORD)_ULL(0x2000000000))
660#define OBJ_UPDATE_PRIMARY_NAME ((QWORD)_ULL(0x4000000000))
661
662/**
663 * Global user rights
664 */
665#ifndef NETXMS_CUSTOM_USER_RIGHTS
666
6a6b96c0
EJ
667#define SYSTEM_ACCESS_MANAGE_USERS _ULL(0x000000000001)
668#define SYSTEM_ACCESS_SERVER_CONFIG _ULL(0x000000000002)
669#define SYSTEM_ACCESS_CONFIGURE_TRAPS _ULL(0x000000000004)
670#define SYSTEM_ACCESS_MANAGE_SESSIONS _ULL(0x000000000008)
671#define SYSTEM_ACCESS_VIEW_EVENT_DB _ULL(0x000000000010)
672#define SYSTEM_ACCESS_EDIT_EVENT_DB _ULL(0x000000000020)
673#define SYSTEM_ACCESS_EPP _ULL(0x000000000040)
674#define SYSTEM_ACCESS_MANAGE_ACTIONS _ULL(0x000000000080)
675#define SYSTEM_ACCESS_DELETE_ALARMS _ULL(0x000000000100)
676#define SYSTEM_ACCESS_MANAGE_PACKAGES _ULL(0x000000000200)
677#define SYSTEM_ACCESS_VIEW_EVENT_LOG _ULL(0x000000000400)
678#define SYSTEM_ACCESS_MANAGE_TOOLS _ULL(0x000000000800)
679#define SYSTEM_ACCESS_MANAGE_SCRIPTS _ULL(0x000000001000)
680#define SYSTEM_ACCESS_VIEW_TRAP_LOG _ULL(0x000000002000)
681#define SYSTEM_ACCESS_VIEW_AUDIT_LOG _ULL(0x000000004000)
682#define SYSTEM_ACCESS_MANAGE_AGENT_CFG _ULL(0x000000008000)
085c017a 683#define SYSTEM_ACCESS_PERSISTENT_STORAGE _ULL(0x000000010000)
6a6b96c0
EJ
684#define SYSTEM_ACCESS_SEND_SMS _ULL(0x000000020000)
685#define SYSTEM_ACCESS_MOBILE_DEVICE_LOGIN _ULL(0x000000040000)
686#define SYSTEM_ACCESS_REGISTER_AGENTS _ULL(0x000000080000)
687#define SYSTEM_ACCESS_READ_SERVER_FILES _ULL(0x000000100000)
688#define SYSTEM_ACCESS_SERVER_CONSOLE _ULL(0x000000200000)
689#define SYSTEM_ACCESS_MANAGE_SERVER_FILES _ULL(0x000000400000)
690#define SYSTEM_ACCESS_MANAGE_MAPPING_TBLS _ULL(0x000000800000)
691#define SYSTEM_ACCESS_MANAGE_SUMMARY_TBLS _ULL(0x000001000000)
692#define SYSTEM_ACCESS_REPORTING_SERVER _ULL(0x000002000000)
693#define SYSTEM_ACCESS_XMPP_COMMANDS _ULL(0x000004000000)
694#define SYSTEM_ACCESS_MANAGE_IMAGE_LIB _ULL(0x000008000000)
695#define SYSTEM_ACCESS_UNLINK_ISSUES _ULL(0x000010000000)
696#define SYSTEM_ACCESS_VIEW_SYSLOG _ULL(0x000020000000)
697#define SYSTEM_ACCESS_USER_SCHEDULED_TASKS _ULL(0x000040000000)
698#define SYSTEM_ACCESS_OWN_SCHEDULED_TASKS _ULL(0x000080000000)
699#define SYSTEM_ACCESS_ALL_SCHEDULED_TASKS _ULL(0x000100000000)
700#define SYSTEM_ACCESS_SCHEDULE_SCRIPT _ULL(0x000200000000)
701#define SYSTEM_ACCESS_SCHEDULE_FILE_UPLOAD _ULL(0x000400000000)
702#define SYSTEM_ACCESS_SCHEDULE_MAINTENANCE _ULL(0x000800000000)
703#define SYSTEM_ACCESS_MANAGE_REPOSITORIES _ULL(0x001000000000)
704#define SYSTEM_ACCESS_VIEW_REPOSITORIES _ULL(0x002000000000)
705#define SYSTEM_ACCESS_VIEW_ALL_ALARMS _ULL(0x004000000000)
706
707#define SYSTEM_ACCESS_FULL _ULL(0x007FFFFFFFFF)
bf6fb6c3
VK
708
709#endif /* NETXMS_CUSTOM_USER_RIGHTS */
710
711/**
712 * Object access rights
713 */
714#define OBJECT_ACCESS_READ 0x00000001
715#define OBJECT_ACCESS_MODIFY 0x00000002
716#define OBJECT_ACCESS_CREATE 0x00000004
717#define OBJECT_ACCESS_DELETE 0x00000008
718#define OBJECT_ACCESS_READ_ALARMS 0x00000010
719#define OBJECT_ACCESS_ACL 0x00000020
720#define OBJECT_ACCESS_UPDATE_ALARMS 0x00000040
721#define OBJECT_ACCESS_SEND_EVENTS 0x00000080
722#define OBJECT_ACCESS_CONTROL 0x00000100
723#define OBJECT_ACCESS_TERM_ALARMS 0x00000200
724#define OBJECT_ACCESS_PUSH_DATA 0x00000400
725#define OBJECT_ACCESS_CREATE_ISSUE 0x00000800
726#define OBJECT_ACCESS_DOWNLOAD 0x00001000
727#define OBJECT_ACCESS_UPLOAD 0x00002000
728#define OBJECT_ACCESS_MANAGE_FILES 0x00004000
b97ddf57 729#define OBJECT_ACCESS_MAINTENANCE 0x00008000
a09e19b1
EJ
730#define OBJECT_ACCESS_READ_AGENT 0x00010000
731#define OBJECT_ACCESS_READ_SNMP 0x00020000
732#define OBJECT_ACCESS_SCREENSHOT 0x00040000
bf6fb6c3
VK
733
734/**
735 * Object sync flags
736 */
737#define OBJECT_SYNC_SEND_UPDATES 0x0001
738#define OBJECT_SYNC_DUAL_CONFIRM 0x0002
739
740/**
741 * User/group flags
742 */
743#define UF_MODIFIED 0x0001
744#define UF_DELETED 0x0002
745#define UF_DISABLED 0x0004
746#define UF_CHANGE_PASSWORD 0x0008
747#define UF_CANNOT_CHANGE_PASSWORD 0x0010
748#define UF_INTRUDER_LOCKOUT 0x0020
749#define UF_PASSWORD_NEVER_EXPIRES 0x0040
750#define UF_LDAP_USER 0x0080
751#define UF_SYNC_EXCEPTION 0x0100
27858eaa 752#define UF_CLOSE_OTHER_SESSIONS 0x0200
bf6fb6c3
VK
753
754/**
755 * Fields for NXCModifyUserEx
756 */
757#define USER_MODIFY_LOGIN_NAME 0x00000001
758#define USER_MODIFY_DESCRIPTION 0x00000002
759#define USER_MODIFY_FULL_NAME 0x00000004
760#define USER_MODIFY_FLAGS 0x00000008
761#define USER_MODIFY_ACCESS_RIGHTS 0x00000010
762#define USER_MODIFY_MEMBERS 0x00000020
763#define USER_MODIFY_CERT_MAPPING 0x00000040
764#define USER_MODIFY_AUTH_METHOD 0x00000080
765#define USER_MODIFY_PASSWD_LENGTH 0x00000100
766#define USER_MODIFY_TEMP_DISABLE 0x00000200
767#define USER_MODIFY_CUSTOM_ATTRIBUTES 0x00000400
768#define USER_MODIFY_XMPP_ID 0x00000800
769#define USER_MODIFY_GROUP_MEMBERSHIP 0x00001000
770
771/**
772 * User certificate mapping methods
773 */
774#define USER_MAP_CERT_BY_SUBJECT 0
775#define USER_MAP_CERT_BY_PUBKEY 1
776#define USER_MAP_CERT_BY_CN 2
777
778/**
779 * User database change notification types
780 */
781#define USER_DB_CREATE 0
782#define USER_DB_DELETE 1
783#define USER_DB_MODIFY 2
784
785/**
bf6fb6c3
VK
786 * Data collection object types
787 */
788#define DCO_TYPE_GENERIC 0
789#define DCO_TYPE_ITEM 1
790#define DCO_TYPE_TABLE 2
87fff547 791#define DCO_TYPE_LIST 3
bf6fb6c3
VK
792
793/**
794 * DCI flags
795 */
796#define DCF_ADVANCED_SCHEDULE ((UINT16)0x0001)
797#define DCF_ALL_THRESHOLDS ((UINT16)0x0002)
798#define DCF_RAW_VALUE_OCTET_STRING ((UINT16)0x0004)
799#define DCF_SHOW_ON_OBJECT_TOOLTIP ((UINT16)0x0008)
800#define DCF_AGGREGATE_FUNCTION_MASK ((UINT16)0x0070)
801#define DCF_AGGREGATE_ON_CLUSTER ((UINT16)0x0080)
802#define DCF_TRANSFORM_AGGREGATED ((UINT16)0x0100)
803#define DCF_NO_STORAGE ((UINT16)0x0200)
1fa2ca0e
VK
804#define DCF_CALCULATE_NODE_STATUS ((UINT16)0x0400)
805#define DCF_SHOW_IN_OBJECT_OVERVIEW ((UINT16)0x0800)
9708eff4 806#define DCF_CACHE_MODE_MASK ((UINT16)0x3000)
b9a4ef7c 807#define DCF_AGGREGATE_WITH_ERRORS ((UINT16)0x4000)
bf6fb6c3
VK
808
809/**
810 * Get cluster aggregation function from DCI flags
811 */
812#define DCF_GET_AGGREGATION_FUNCTION(flags) (((flags) & DCF_AGGREGATE_FUNCTION_MASK) >> 4)
9708eff4
VK
813
814/**
815 * Set cluster aggregation function in DCI flags
816 */
bf6fb6c3
VK
817#define DCF_SET_AGGREGATION_FUNCTION(flags,func) (((flags) & ~DCF_AGGREGATE_FUNCTION_MASK) | (((func) & 0x07) << 4))
818
819/**
9708eff4
VK
820 * Get cache mode from DCI flags
821 */
822#define DCF_GET_CACHE_MODE(flags) (((flags) & DCF_CACHE_MODE_MASK) >> 12)
823
824/**
825 * Set cache mode in DCI flags
826 */
827#define DCF_SET_CACHE_MODE(flags,mode) (((flags) & ~DCF_CACHE_MODE_MASK) | (((mode) & 0x03) << 12))
828
829/**
bf6fb6c3
VK
830 * DCTable column flags
831 */
832#define TCF_DATA_TYPE_MASK ((UINT16)0x000F)
833#define TCF_AGGREGATE_FUNCTION_MASK ((UINT16)0x0070)
834#define TCF_INSTANCE_COLUMN ((UINT16)0x0100)
835#define TCF_INSTANCE_LABEL_COLUMN ((UINT16)0x0200)
836
837/**
838 * Get cluster aggregation function from column flags
839 */
840#define TCF_GET_AGGREGATION_FUNCTION(flags) (((flags) & TCF_AGGREGATE_FUNCTION_MASK) >> 4)
841#define TCF_SET_AGGREGATION_FUNCTION(flags,func) (((flags) & ~DCF_AGGREGATE_FUNCTION_MASK) | (((func) & 0x07) << 4))
842
843/**
844 * Get data type from column flags
845 */
846#define TCF_GET_DATA_TYPE(flags) ((flags) & TCF_DATA_TYPE_MASK)
847#define TCF_SET_DATA_TYPE(flags,dt) (((flags) & ~TCF_DATA_TYPE_MASK) | ((dt) & 0x0F))
848
849/**
850 * Aggregation functions
851 */
852#define DCF_FUNCTION_SUM 0
853#define DCF_FUNCTION_AVG 1
854#define DCF_FUNCTION_MIN 2
855#define DCF_FUNCTION_MAX 3
856
857/**
858 * SNMP raw types
859 */
860#define SNMP_RAWTYPE_NONE 0
861#define SNMP_RAWTYPE_INT32 1
862#define SNMP_RAWTYPE_UINT32 2
863#define SNMP_RAWTYPE_INT64 3
864#define SNMP_RAWTYPE_UINT64 4
865#define SNMP_RAWTYPE_DOUBLE 5
866#define SNMP_RAWTYPE_IP_ADDR 6
867#define SNMP_RAWTYPE_MAC_ADDR 7
868
869/**
870 * Data sources
871 */
872#define DS_INTERNAL 0
873#define DS_NATIVE_AGENT 1
874#define DS_SNMP_AGENT 2
875#define DS_CHECKPOINT_AGENT 3
876#define DS_PUSH_AGENT 4
877#define DS_WINPERF 5
878#define DS_SMCLP 6
879#define DS_SCRIPT 7
241541f4 880#define DS_SSH 8
453d3387 881#define DS_MQTT 9
bf6fb6c3
VK
882
883/**
884 * Item status
885 */
886#define ITEM_STATUS_ACTIVE 0
887#define ITEM_STATUS_DISABLED 1
888#define ITEM_STATUS_NOT_SUPPORTED 2
889
890/**
891 * Delta calculation methods for DCIs
892 */
893#define DCM_ORIGINAL_VALUE 0
894#define DCM_SIMPLE 1
895#define DCM_AVERAGE_PER_SECOND 2
896#define DCM_AVERAGE_PER_MINUTE 3
897
898/**
899 * Threshold functions
900 */
901#define F_LAST 0
902#define F_AVERAGE 1
903#define F_DEVIATION 2
904#define F_DIFF 3
905#define F_ERROR 4
906#define F_SUM 5
907#define F_SCRIPT 6
908
909/**
910 * DCI aggregation functions
911 */
912enum AggregationFunction
913{
914 DCI_AGG_LAST = 0,
915 DCI_AGG_MIN = 1,
916 DCI_AGG_MAX = 2,
917 DCI_AGG_AVG = 3,
918 DCI_AGG_SUM = 4
919};
920
921/**
922 * Threshold operations
923 */
924#define OP_LE 0
925#define OP_LE_EQ 1
926#define OP_EQ 2
927#define OP_GT_EQ 3
928#define OP_GT 4
929#define OP_NE 5
930#define OP_LIKE 6
931#define OP_NOTLIKE 7
932
933/**
934 * DCI base units
935 */
936#define DCI_BASEUNITS_OTHER 0
937#define DCI_BASEUNITS_CUSTOM 1
938#define DCI_BASEUNITS_BYTES 2
939#define DCI_BASEUNITS_BITS 3
940#define DCI_BASEUNITS_SECONDS 4
941#define DCI_BASEUNITS_PERCENTS 5
942#define DCI_BASEUNITS_BITS_PER_SECOND 6
943#define DCI_BASEUNITS_BYTES_PER_SECOND 7
944
945/**
946 * DCI instance discovery methods
947 */
948#define IDM_NONE 0
949#define IDM_AGENT_LIST 1
950#define IDM_AGENT_TABLE 2
951#define IDM_SNMP_WALK_VALUES 3
952#define IDM_SNMP_WALK_OIDS 4
d32e7ef1 953#define IDM_SCRIPT 5
bf6fb6c3
VK
954
955/**
956 * Event policy rule flags
957 */
958#define RF_STOP_PROCESSING 0x0001
959#define RF_NEGATED_SOURCE 0x0002
960#define RF_NEGATED_EVENTS 0x0004
961#define RF_GENERATE_ALARM 0x0008
962#define RF_DISABLED 0x0010
963#define RF_TERMINATE_BY_REGEXP 0x0020
964#define RF_SEVERITY_INFO 0x0100
965#define RF_SEVERITY_WARNING 0x0200
966#define RF_SEVERITY_MINOR 0x0400
967#define RF_SEVERITY_MAJOR 0x0800
968#define RF_SEVERITY_CRITICAL 0x1000
89d684e3 969#define RF_CREATE_TICKET 0x2000
bf6fb6c3
VK
970
971/**
972 * Action types
973 */
974#define ACTION_EXEC 0
975#define ACTION_REMOTE 1
976#define ACTION_SEND_EMAIL 2
977#define ACTION_SEND_SMS 3
978#define ACTION_FORWARD_EVENT 4
979#define ACTION_NXSL_SCRIPT 5
980#define ACTION_XMPP_MESSAGE 6
981
982/**
983 * Network map types
984 */
985#define NETMAP_USER_DEFINED 0
986#define NETMAP_IP_TOPOLOGY 1
987#define NETMAP_L2_TOPOLOGY 2
988
989/**
990 * Network map flags
991 */
992#define MF_SHOW_STATUS_ICON 0x00000001
993#define MF_SHOW_STATUS_FRAME 0x00000002
994#define MF_SHOW_STATUS_BKGND 0x00000004
995#define MF_SHOW_END_NODES 0x00000008
996#define MF_CALCULATE_STATUS 0x00000010
53e39123 997#define MF_FILTER_OBJECTS 0x00000020
bf6fb6c3
VK
998
999/**
1000 * Network map layouts
1001 */
1002#define MAP_LAYOUT_MANUAL 0x7FFF
1003#define MAP_LAYOUT_SPRING 0
1004#define MAP_LAYOUT_RADIAL 1
1005#define MAP_LAYOUT_HTREE 2
1006#define MAP_LAYOUT_VTREE 3
1007#define MAP_LAYOUT_SPARSE_VTREE 4
1008
1009
1010//
1011// Deployment manager status codes
1012//
1013
1014#define DEPLOYMENT_STATUS_PENDING 0
1015#define DEPLOYMENT_STATUS_TRANSFER 1
1016#define DEPLOYMENT_STATUS_INSTALLATION 2
1017#define DEPLOYMENT_STATUS_COMPLETED 3
1018#define DEPLOYMENT_STATUS_FAILED 4
1019#define DEPLOYMENT_STATUS_INITIALIZE 5
1020#define DEPLOYMENT_STATUS_FINISHED 255
1021
1022/**
c044d4f3
VK
1023 * Core subscription channels
1024 */
1025#define NXC_CHANNEL_EVENTS _T("Core.Events")
1026#define NXC_CHANNEL_SYSLOG _T("Core.Syslog")
1027#define NXC_CHANNEL_ALARMS _T("Core.Alarms")
1028#define NXC_CHANNEL_OBJECTS _T("Core.Objects")
1029#define NXC_CHANNEL_SNMP_TRAPS _T("Core.SNMP.Traps")
1030#define NXC_CHANNEL_AUDIT_LOG _T("Core.Audit")
25880ae2 1031#define NXC_CHANNEL_USERDB _T("Core.UserDB")
bf6fb6c3 1032
9708eff4
VK
1033/**
1034 * Node creation flags
1035 */
bf6fb6c3
VK
1036#define NXC_NCF_DISABLE_ICMP 0x0001
1037#define NXC_NCF_DISABLE_NXCP 0x0002
1038#define NXC_NCF_DISABLE_SNMP 0x0004
1039#define NXC_NCF_CREATE_UNMANAGED 0x0008
1040
9708eff4
VK
1041/**
1042 * Agent data cache modes
1043 */
55d81770 1044#define AGENT_CACHE_DEFAULT 0
9708eff4 1045#define AGENT_CACHE_ON 1
55d81770 1046#define AGENT_CACHE_OFF 2
bf6fb6c3 1047
9708eff4
VK
1048/**
1049 * Server components
1050 */
bf6fb6c3
VK
1051#define SRV_COMPONENT_DISCOVERY_MGR 1
1052
9708eff4
VK
1053/**
1054 * Configuration import flags
1055 */
bf6fb6c3
VK
1056#define CFG_IMPORT_REPLACE_EVENT_BY_CODE 0x0001
1057#define CFG_IMPORT_REPLACE_EVENT_BY_NAME 0x0002
1058
6a6b96c0
EJ
1059/**
1060* Alarm category flags
1061*/
1062#define ALARM_MODIFY_CATEGORY 0x0001
1063#define ALARM_MODIFY_ACCESS_LIST 0x0002
bf6fb6c3
VK
1064
1065//
1066// Graph access flags
1067//
1068
1069#define NXGRAPH_ACCESS_READ 0x01
1070#define NXGRAPH_ACCESS_WRITE 0x02
1071
1072
1073//
1074// Cluster types
1075//
1076
1077#define CLUSTER_TYPE_GENERIC 0
1078
1079
1080//
1081// SNMP trap flags
1082//
1083
1084#define TRAP_VARBIND_FORCE_TEXT 0x0001
1085
4e5a9b7b
VK
1086#ifdef __cplusplus
1087
bf6fb6c3
VK
1088/**
1089 * IP network
1090 */
1091typedef struct
1092{
1093 UINT32 dwAddr;
1094 UINT32 dwMask;
1095} IP_NETWORK;
1096
1097/**
1098 * Agent's parameter information
1099 */
1100typedef struct
1101{
1102 TCHAR szName[MAX_PARAM_NAME];
1103 TCHAR szDescription[MAX_DB_STRING];
1104 int iDataType;
1105} NXC_AGENT_PARAM;
1106
1107/**
1108 * Server action definition structure
1109 */
1110typedef struct
1111{
1112 UINT32 dwId;
1113 int iType;
1114 BOOL bIsDisabled;
1115 TCHAR szName[MAX_OBJECT_NAME];
1116 TCHAR szRcptAddr[MAX_RCPT_ADDR_LEN];
1117 TCHAR szEmailSubject[MAX_EMAIL_SUBJECT_LEN];
1118 TCHAR *pszData;
1119} NXC_ACTION;
1120
1121/**
1122 * Alarm structure
1123 */
1124typedef struct
1125{
d727efe6 1126 UINT64 sourceEventId; // Originating event ID
65ce7452
VK
1127 UINT32 alarmId; // Unique alarm ID
1128 UINT32 creationTime; // Alarm creation time in UNIX time format
1129 UINT32 lastChangeTime; // Alarm's last change time in UNIX time format
1130 UINT32 sourceObject; // Source object ID
1131 UINT32 sourceEventCode; // Originating event code
1132 UINT32 dciId; // related DCI ID
1133 BYTE currentSeverity; // Alarm's current severity
1134 BYTE originalSeverity; // Alarm's original severity
1135 BYTE state; // Current state
1136 BYTE helpDeskState; // State of alarm in helpdesk system
1137 UINT32 ackByUser; // ID of user who was acknowledged this alarm (0 for system)
1138 UINT32 resolvedByUser; // ID of user who was resolved this alarm (0 for system)
1139 UINT32 termByUser; // ID of user who was terminated this alarm (0 for system)
1140 UINT32 repeatCount;
1141 UINT32 timeout;
1142 UINT32 timeoutEvent;
1143 TCHAR message[MAX_EVENT_MSG_LENGTH];
1144 TCHAR key[MAX_DB_STRING];
1145 TCHAR helpDeskRef[MAX_HELPDESK_REF_LEN];
1146 void *userData; // Can be freely used by client application
1147 UINT32 noteCount; // Number of notes added to alarm
1148 UINT32 ackTimeout; // Sticky acknowledgment end time. If acknowladgmant without timeout put 0
bf6fb6c3
VK
1149} NXC_ALARM;
1150
1151/**
bf6fb6c3
VK
1152 * Condition's input DCI definition
1153 */
1154typedef struct
1155{
1156 UINT32 id;
1157 UINT32 nodeId;
1158 int function; // Average, last, diff
1159 int polls; // Number of polls used for average
1160} INPUT_DCI;
1161
1162/**
1163 * Cluster resource
1164 */
1165typedef struct
1166{
1167 UINT32 dwId;
1168 TCHAR szName[MAX_DB_STRING];
c75e9ee4 1169 InetAddress ipAddr;
bf6fb6c3
VK
1170 UINT32 dwCurrOwner;
1171} CLUSTER_RESOURCE;
1172
4e5a9b7b
VK
1173#endif /* __cplusplus */
1174
bf6fb6c3 1175#endif /* _nxcldefs_h_ */