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