files readded
[public/netxms.git] / include / nxclapi.h
CommitLineData
80ffed5a
VK
1/*
2** NetXMS - Network Management System
3** Client Library API
4** Copyright (C) 2004 Victor Kirhenshtein
5**
6** This program is free software; you can redistribute it and/or modify
7** it under the terms of the GNU General Public License as published by
8** the Free Software Foundation; either version 2 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 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** $module: nxclapi.h
21**
22**/
23
24#ifndef _nxclapi_h_
25#define _nxclapi_h_
26
27#include <nms_common.h>
5ebea5e0 28#include <nxevent.h>
80ffed5a 29
8aeffdee
VK
30#ifdef _WIN32
31#ifdef LIBNXCL_EXPORTS
32#define LIBNXCL_EXPORTABLE __declspec(dllexport)
33#else
34#define LIBNXCL_EXPORTABLE __declspec(dllimport)
35#endif
36#else /* _WIN32 */
37#define LIBNXCL_EXPORTABLE
38#endif
39
80ffed5a 40
c6576857
VK
41//
42// Custom data types
43//
44
45typedef unsigned long HREQUEST;
46
47
0c8bf759
VK
48//
49// Some constants
50//
51
878c92bc
VK
52#define MAX_OBJECT_NAME 64
53#define MAX_COMMUNITY_LENGTH 32
54#define MAX_OID_LENGTH 1024
55#define MAX_EVENT_MSG_LENGTH 256
56#define MAX_EVENT_NAME 64
5ac3236b 57#define MAX_USER_NAME 64
54abbe0e
VK
58#define MAX_USER_FULLNAME 128
59#define MAX_USER_DESCR 256
7ec6cca8
VK
60#define MAX_ITEM_NAME 256
61#define MAX_STRING_VALUE 256
8c18110a
VK
62#define GROUP_FLAG ((DWORD)0x80000000)
63#define GROUP_EVERYONE ((DWORD)0x80000000)
64#define INVALID_UID ((DWORD)0xFFFFFFFF)
c0ae9ed5 65#define OBJECT_STATUS_COUNT 7
0c8bf759
VK
66
67
71c18491
VK
68//
69// Authentication methods
70//
71
72#define AUTH_NONE 0
73#define AUTH_PLAINTEXT 1
74#define AUTH_MD5_HASH 2
75#define AUTH_SHA1_HASH 3
76
77
78//
79// Object types
80//
81
82#define OBJECT_GENERIC 0
83#define OBJECT_SUBNET 1
84#define OBJECT_NODE 2
85#define OBJECT_INTERFACE 3
86#define OBJECT_NETWORK 4
ef44d5ea 87#define OBJECT_CONTAINER 5
372b525a 88#define OBJECT_ZONE 6
e6b958c4 89#define OBJECT_SERVICEROOT 7
71c18491
VK
90
91
9eb7685c
VK
92//
93// Object's status
94//
95
96#define STATUS_NORMAL 0
97#define STATUS_WARNING 1
98#define STATUS_MINOR 2
99#define STATUS_MAJOR 3
100#define STATUS_CRITICAL 4
101#define STATUS_UNKNOWN 5
102#define STATUS_UNMANAGED 6
103#define STATUS_DISABLED 7
104#define STATUS_TESTING 8
105
106
4d597931
VK
107//
108// Node flags
109//
110
111#define NF_IS_SNMP 0x0001
112#define NF_IS_NATIVE_AGENT 0x0002
113#define NF_IS_BRIDGE 0x0004
114#define NF_IS_ROUTER 0x0008
115#define NF_IS_LOCAL_MGMT 0x0010
a7d07192
VK
116#define NF_IS_PRINTER 0x0020
117#define NS_IS_OSPF 0x0040
4d597931
VK
118
119
5fad5c32
VK
120//
121// Events
122//
123
878c92bc
VK
124#define NXC_EVENT_STATE_CHANGED 1
125#define NXC_EVENT_ERROR 2
126#define NXC_EVENT_LOGIN_RESULT 3
127#define NXC_EVENT_NEW_ELOG_RECORD 4
f75b99fd 128#define NXC_EVENT_USER_DB_CHANGED 5
4d597931 129#define NXC_EVENT_OBJECT_CHANGED 6
3421c063 130#define NXC_EVENT_NOTIFICATION 7
71f8d3d7
VK
131
132
133//
134// Errors
135//
136
137#define NXC_ERR_INTERNAL 1
5fad5c32
VK
138
139
54481027
VK
140//
141// States
142//
143
144#define STATE_DISCONNECTED 0
145#define STATE_CONNECTING 1
146#define STATE_IDLE 2
7e986059
VK
147#define STATE_SYNC_OBJECTS 3
148#define STATE_SYNC_EVENTS 4
878c92bc
VK
149#define STATE_LOAD_EVENT_DB 5
150#define STATE_LOAD_EPP 6
5ac3236b 151#define STATE_LOAD_USER_DB 7
7ec6cca8 152#define STATE_LOAD_DCI 8
7e986059
VK
153
154
b601b1fa
VK
155//
156// Notification codes
157//
158
3421c063
VK
159#define NX_NOTIFY_SHUTDOWN 1
160#define NX_NOTIFY_EVENTDB_CHANGED 2
878c92bc
VK
161
162
163//
164// Request completion codes
165//
166
167#define RCC_SUCCESS ((DWORD)0)
168#define RCC_COMPONENT_LOCKED ((DWORD)1)
169#define RCC_ACCESS_DENIED ((DWORD)2)
170#define RCC_INVALID_REQUEST ((DWORD)3)
171#define RCC_TIMEOUT ((DWORD)4)
605d2931
VK
172#define RCC_OUT_OF_STATE_REQUEST ((DWORD)5)
173#define RCC_DB_FAILURE ((DWORD)6)
effb51ab 174#define RCC_INVALID_OBJECT_ID ((DWORD)7)
34d95c13 175#define RCC_ALREADY_EXIST ((DWORD)8)
2e29457d 176#define RCC_COMM_FAILURE ((DWORD)9)
0d9c1b96 177#define RCC_SYSTEM_FAILURE ((DWORD)10)
62f3f072 178#define RCC_INVALID_USER_ID ((DWORD)11)
7ec6cca8 179#define RCC_INVALID_ARGUMENT ((DWORD)12)
9ed4eaff
VK
180#define RCC_DUPLICATE_DCI ((DWORD)13)
181#define RCC_INVALID_DCI_ID ((DWORD)14)
a7d07192
VK
182#define RCC_OUT_OF_MEMORY ((DWORD)15)
183#define RCC_IO_ERROR ((DWORD)16)
e6b958c4 184#define RCC_INCOMPATIBLE_OPERATION ((DWORD)17)
917aa2e6
VK
185#define RCC_OBJECT_CREATION_FAILED ((DWORD)18)
186#define RCC_OBJECT_LOOP ((DWORD)19)
878c92bc
VK
187
188
d9152256
VK
189//
190// Mask bits for NXCModifyEventTemplate()
191//
192
193#define EM_SEVERITY ((DWORD)0x01)
194#define EM_FLAGS ((DWORD)0x02)
195#define EM_NAME ((DWORD)0x04)
196#define EM_MESSAGE ((DWORD)0x08)
197#define EM_DESCRIPTION ((DWORD)0x10)
198#define EM_ALL ((DWORD)0x1F)
199
200
effb51ab
VK
201//
202// Mask bits (flags) for NXCModifyObject()
203//
204
205#define OBJ_UPDATE_NAME ((DWORD)0x01)
206#define OBJ_UPDATE_AGENT_PORT ((DWORD)0x02)
207#define OBJ_UPDATE_AGENT_AUTH ((DWORD)0x04)
208#define OBJ_UPDATE_AGENT_SECRET ((DWORD)0x08)
209#define OBJ_UPDATE_SNMP_VERSION ((DWORD)0x10)
210#define OBJ_UPDATE_SNMP_COMMUNITY ((DWORD)0x20)
211#define OBJ_UPDATE_ACL ((DWORD)0x40)
212#define OBJ_UPDATE_ALL ((DWORD)0x7F)
213
214
5ac3236b
VK
215//
216// Global user rights
217//
218
219#define SYSTEM_ACCESS_MANAGE_USERS 0x0001
220#define SYSTEM_ACCESS_VIEW_CONFIG 0x0002
221#define SYSTEM_ACCESS_EDIT_CONFIG 0x0004
222#define SYSTEM_ACCESS_DROP_CONNECTIONS 0x0008
223#define SYSTEM_ACCESS_VIEW_EVENT_DB 0x0010
224#define SYSTEM_ACCESS_EDIT_EVENT_DB 0x0020
a7d07192 225#define SYSTEM_ACCESS_EPP 0x0040
5ac3236b 226
a7d07192 227#define SYSTEM_ACCESS_FULL 0x007F
911dbb64 228
5ac3236b
VK
229
230//
231// Object access rights
232//
233
234#define OBJECT_ACCESS_READ 0x00000001
235#define OBJECT_ACCESS_MODIFY 0x00000002
236#define OBJECT_ACCESS_CREATE 0x00000004
237#define OBJECT_ACCESS_DELETE 0x00000008
238#define OBJECT_ACCESS_MOVE 0x00000010
34d95c13 239#define OBJECT_ACCESS_CONTROL 0x00000020
5ac3236b
VK
240
241
242//
243// User/group flags
244//
245
246#define UF_MODIFIED 0x0001
247#define UF_DELETED 0x0002
248#define UF_DISABLED 0x0004
249#define UF_CHANGE_PASSWORD 0x0008
8c18110a 250#define UF_CANNOT_CHANGE_PASSWORD 0x0010
5ac3236b
VK
251
252
984542f8
VK
253//
254// User database change notification types
255//
256
257#define USER_DB_CREATE 0
258#define USER_DB_DELETE 1
259#define USER_DB_MODIFY 2
260
261
878c92bc 262//
7ec6cca8 263// Data types
878c92bc
VK
264//
265
7ec6cca8
VK
266#define DTYPE_INTEGER 0
267#define DTYPE_INT64 1
268#define DTYPE_STRING 2
269#define DTYPE_FLOAT 3
b601b1fa
VK
270
271
54481027 272//
7ec6cca8 273// Data sources
54481027
VK
274//
275
7ec6cca8
VK
276#define DS_INTERNAL 0
277#define DS_NATIVE_AGENT 1
278#define DS_SNMP_AGENT 2
54481027
VK
279
280
878c92bc 281//
7ec6cca8 282// Item status
878c92bc
VK
283//
284
7ec6cca8
VK
285#define ITEM_STATUS_ACTIVE 0
286#define ITEM_STATUS_DISABLED 1
287#define ITEM_STATUS_NOT_SUPPORTED 2
878c92bc
VK
288
289
d0e94572
VK
290//
291// Threshold functions and operations
292//
293
294#define F_LAST 0
295#define F_AVERAGE 1
296#define F_DEVIATION 2
297
298#define OP_LE 0
299#define OP_LE_EQ 1
300#define OP_EQ 2
301#define OP_GT_EQ 3
302#define OP_GT 4
303#define OP_NE 5
304#define OP_LIKE 6
305#define OP_NOTLIKE 7
306
307
99180ed6
VK
308//
309// Event policy rule flags
310//
311
312#define RF_STOP_PROCESSING 0x0001
313#define RF_NEGATED_SOURCE 0x0002
314#define RF_NEGATED_EVENTS 0x0004
315#define RF_GENERATE_ALARM 0x0008
316#define RF_ALARM_IS_ACK 0x0010
317#define RF_DISABLED 0x0020
318#define RF_SEVERITY_INFO 0x0100
319#define RF_SEVERITY_MINOR 0x0200
320#define RF_SEVERITY_WARNING 0x0400
321#define RF_SEVERITY_MAJOR 0x0800
322#define RF_SEVERITY_CRITICAL 0x1000
323
324
a1dc75b0
VK
325//
326// Event log record structure
327//
328
329typedef struct
330{
331 DWORD dwTimeStamp;
332 DWORD dwEventId;
333 DWORD dwSourceId;
334 DWORD dwSeverity;
335 char szMessage[MAX_EVENT_MSG_LENGTH];
336} NXC_EVENT;
337
338
3421c063
VK
339//
340// Event name/code pair
341//
342
343typedef struct
344{
345 DWORD dwEventId;
346 char szName[MAX_EVENT_NAME];
347} NXC_EVENT_NAME;
348
349
7ec6cca8
VK
350/********************************************************************
351 * Following part of this file shouldn't be included by server code *
352 ********************************************************************/
353
354#ifndef LIBNXCL_NO_DECLARATIONS
355
356
357//
358// Callbacks data types
359//
360
361typedef void (* NXC_EVENT_HANDLER)(DWORD dwEvent, DWORD dwCode, void *pArg);
362typedef void (* NXC_DEBUG_CALLBACK)(char *pMsg);
363
364
365//
366// Event configuration structure
367//
368
369typedef struct
370{
371 DWORD dwCode;
372 DWORD dwSeverity;
373 DWORD dwFlags;
374 char szName[MAX_EVENT_NAME];
375 char *pszMessage;
376 char *pszDescription;
377} NXC_EVENT_TEMPLATE;
378
379
effb51ab
VK
380//
381// Entry in object's ACL
382//
383
384typedef struct
385{
386 DWORD dwUserId;
387 DWORD dwAccessRights;
388} NXC_ACL_ENTRY;
389
390
0c8bf759
VK
391//
392// Network object structure
393//
394
395typedef struct
396{
397 DWORD dwId; // Unique object's identifier
398 int iClass; // Object's class
399 int iStatus; // Object's status
400 DWORD dwIpAddr; // IP address
401 char szName[MAX_OBJECT_NAME];
402 DWORD dwNumParents;
403 DWORD *pdwParentList;
404 DWORD dwNumChilds;
405 DWORD *pdwChildList;
4d597931 406 BOOL bIsDeleted; // TRUE for deleted objects
effb51ab
VK
407 BOOL bInheritRights;
408 DWORD dwAclSize;
409 NXC_ACL_ENTRY *pAccessList;
0c8bf759
VK
410 union
411 {
412 struct
413 {
414 DWORD dwIpNetMask; // Ip netmask.
415 DWORD dwIfIndex; // Interface index.
416 DWORD dwIfType; // Interface type
417 } iface;
418 struct
419 {
420 DWORD dwFlags;
421 DWORD dwDiscoveryFlags;
422 char szSharedSecret[MAX_SECRET_LENGTH];
423 char szCommunityString[MAX_COMMUNITY_LENGTH];
424 char szObjectId[MAX_OID_LENGTH];
425 WORD wAgentPort; // Listening TCP port for native agent
426 WORD wAuthMethod; // Native agent's authentication method
427 } node;
428 struct
429 {
430 DWORD dwIpNetMask;
431 } subnet;
ef44d5ea
VK
432 struct
433 {
434 DWORD dwCategory;
435 char *pszDescription;
436 } container;
0c8bf759
VK
437 };
438} NXC_OBJECT;
439
440
effb51ab
VK
441//
442// Structure with data for NXCModifyObject
443//
444
445typedef struct
446{
447 DWORD dwObjectId;
448 DWORD dwFlags;
449 char *pszName;
450 int iAgentPort;
451 int iAuthType;
452 char *pszSecret;
453 int iSnmpVersion;
454 char *pszCommunity;
455 BOOL bInheritRights;
456 DWORD dwAclSize;
457 NXC_ACL_ENTRY *pAccessList;
458} NXC_OBJECT_UPDATE;
459
460
5ac3236b
VK
461//
462// NetXMS user information structure
463//
464
465typedef struct
466{
467 char szName[MAX_USER_NAME];
468 DWORD dwId;
469 WORD wFlags;
470 WORD wSystemRights;
471 DWORD dwNumMembers; // Only for groups
472 DWORD *pdwMemberList; // Only for groups
54abbe0e
VK
473 char szFullName[MAX_USER_FULLNAME]; // Only for users
474 char szDescription[MAX_USER_DESCR];
5ac3236b
VK
475} NXC_USER;
476
477
f86ffdd2
VK
478//
479// Data collection item threshold structure
480//
481
482typedef struct
483{
484 DWORD dwId;
485 DWORD dwEvent;
486 WORD wFunction;
487 WORD wOperation;
488 DWORD dwArg1;
489 DWORD dwArg2;
490 union
491 {
492 DWORD dwInt32;
493 INT64 qwInt64;
494 double dFloat;
495 char szString[MAX_STRING_VALUE];
496 } value;
497} NXC_DCI_THRESHOLD;
498
499
7ec6cca8
VK
500//
501// Data collection item structure
502//
503
504typedef struct
505{
506 DWORD dwId;
507 char szName[MAX_ITEM_NAME];
508 int iPollingInterval;
509 int iRetentionTime;
510 BYTE iSource;
511 BYTE iDataType;
512 BYTE iStatus;
f86ffdd2
VK
513 DWORD dwNumThresholds;
514 NXC_DCI_THRESHOLD *pThresholdList;
7ec6cca8
VK
515} NXC_DCI;
516
517
518//
519// Node's data collection list information
520//
521
522typedef struct
523{
524 DWORD dwNodeId;
525 DWORD dwNumItems;
526 NXC_DCI *pItems;
527} NXC_DCI_LIST;
528
529
b9b4ec17
VK
530//
531// Row structure
532//
533
9f20696e
VK
534#pragma pack(1)
535
b9b4ec17
VK
536typedef struct
537{
538 DWORD dwTimeStamp;
539 union
540 {
541 DWORD dwInt32;
cb17745c 542 INT64 qwInt64;
b9b4ec17
VK
543 double dFloat;
544 char szString[MAX_STRING_VALUE];
545 } value;
546} NXC_DCI_ROW;
547
9f20696e
VK
548#pragma pack()
549
b9b4ec17
VK
550
551//
552// DCI's collected data
553//
554
555typedef struct
556{
557 DWORD dwNodeId; // Owner's node id
558 DWORD dwItemId; // Item id
559 DWORD dwNumRows; // Number of rows in set
560 WORD wDataType; // Data type (integer, string, etc.)
561 WORD wRowSize; // Size of single row in bytes
562 NXC_DCI_ROW *pRows; // Array of rows
563} NXC_DCI_DATA;
564
565
a7d07192
VK
566//
567// MIB file list
568//
569
570typedef struct
571{
572 DWORD dwNumFiles;
573 char **ppszName;
574 BYTE **ppHash;
575} NXC_MIB_LIST;
576
577
578//
579// Event processing policy rule
580//
581
582typedef struct
583{
584 DWORD dwFlags;
585 DWORD dwId;
586 DWORD dwNumActions;
587 DWORD dwNumEvents;
588 DWORD dwNumSources;
589 DWORD *pdwActionList;
590 DWORD *pdwEventList;
591 DWORD *pdwSourceList;
592 char *pszComment;
593 char szAlarmKey[MAX_DB_STRING];
594 char szAlarmAckKey[MAX_DB_STRING];
595 char szAlarmMessage[MAX_DB_STRING];
596 WORD wAlarmSeverity;
597} NXC_EPP_RULE;
598
599
600//
601// Event processing policy
602//
603
604typedef struct
605{
606 DWORD dwNumRules;
607 NXC_EPP_RULE *pRuleList;
608} NXC_EPP;
609
610
917aa2e6
VK
611//
612// Object creation information structure
613//
614
615typedef struct
616{
617 int iClass;
618 DWORD dwParentId;
619 char *pszName;
620 union
621 {
622 struct
623 {
624 DWORD dwIpAddr;
625 DWORD dwNetMask;
626 } node;
627 struct
628 {
629 DWORD dwCategory;
630 char *pszDescription;
631 } container;
632 } cs;
633} NXC_OBJECT_CREATE_INFO;
634
635
80ffed5a
VK
636//
637// Functions
638//
639
640#ifdef __cplusplus
641extern "C" {
642#endif
643
8aeffdee 644DWORD LIBNXCL_EXPORTABLE NXCGetVersion(void);
effb51ab
VK
645const char LIBNXCL_EXPORTABLE *NXCGetErrorText(DWORD dwError);
646
8aeffdee 647BOOL LIBNXCL_EXPORTABLE NXCInitialize(void);
1df4b30b 648DWORD LIBNXCL_EXPORTABLE NXCConnect(char *szServer, char *szLogin, char *szPassword);
8aeffdee
VK
649void LIBNXCL_EXPORTABLE NXCDisconnect(void);
650void LIBNXCL_EXPORTABLE NXCSetEventHandler(NXC_EVENT_HANDLER pHandler);
651void LIBNXCL_EXPORTABLE NXCSetDebugCallback(NXC_DEBUG_CALLBACK pFunc);
652HREQUEST LIBNXCL_EXPORTABLE NXCRequest(DWORD dwOperation, ...);
80ffed5a 653
2e29457d 654DWORD LIBNXCL_EXPORTABLE NXCSyncObjects(void);
8aeffdee 655NXC_OBJECT LIBNXCL_EXPORTABLE *NXCFindObjectById(DWORD dwId);
a98e6d5f 656NXC_OBJECT LIBNXCL_EXPORTABLE *NXCFindObjectByName(char *pszName);
8aeffdee 657void LIBNXCL_EXPORTABLE NXCEnumerateObjects(BOOL (* pHandler)(NXC_OBJECT *));
e6b958c4
VK
658NXC_OBJECT LIBNXCL_EXPORTABLE *NXCGetTopologyRootObject(void);
659NXC_OBJECT LIBNXCL_EXPORTABLE *NXCGetServiceRootObject(void);
8e80aeb6
VK
660void LIBNXCL_EXPORTABLE *NXCGetObjectIndex(DWORD *pdwNumObjects);
661void LIBNXCL_EXPORTABLE NXCLockObjectIndex(void);
662void LIBNXCL_EXPORTABLE NXCUnlockObjectIndex(void);
2e29457d 663DWORD LIBNXCL_EXPORTABLE NXCModifyObject(NXC_OBJECT_UPDATE *pData);
c1c39152 664DWORD LIBNXCL_EXPORTABLE NXCSetObjectMgmtStatus(DWORD dwObjectId, BOOL bIsManaged);
917aa2e6 665DWORD LIBNXCL_EXPORTABLE NXCCreateObject(NXC_OBJECT_CREATE_INFO *pCreateInfo, DWORD *pdwObjectId);
e6b958c4
VK
666DWORD LIBNXCL_EXPORTABLE NXCBindObject(DWORD dwParentObject, DWORD dwChildObject);
667DWORD LIBNXCL_EXPORTABLE NXCUnbindObject(DWORD dwParentObject, DWORD dwChildObject);
8b3d61c1 668
2e29457d
VK
669DWORD LIBNXCL_EXPORTABLE NXCSyncEvents(void);
670DWORD LIBNXCL_EXPORTABLE NXCOpenEventDB(void);
671DWORD LIBNXCL_EXPORTABLE NXCCloseEventDB(BOOL bSaveChanges);
8aeffdee
VK
672BOOL LIBNXCL_EXPORTABLE NXCGetEventDB(NXC_EVENT_TEMPLATE ***pppTemplateList, DWORD *pdwNumRecords);
673void LIBNXCL_EXPORTABLE NXCModifyEventTemplate(NXC_EVENT_TEMPLATE *pEvent, DWORD dwMask,
d9152256
VK
674 DWORD dwSeverity, DWORD dwFlags, const char *pszName,
675 const char *pszMessage, const char *pszDescription);
3421c063
VK
676DWORD LIBNXCL_EXPORTABLE NXCLoadEventNames(void);
677NXC_EVENT_NAME LIBNXCL_EXPORTABLE *NXCGetEventNamesList(DWORD *pdwNumEvents);
678const char LIBNXCL_EXPORTABLE *NXCGetEventName(DWORD dwId);
878c92bc 679
2e29457d 680DWORD LIBNXCL_EXPORTABLE NXCLoadUserDB(void);
5ac3236b 681NXC_USER LIBNXCL_EXPORTABLE *NXCFindUserById(DWORD dwId);
440716ce 682BOOL LIBNXCL_EXPORTABLE NXCGetUserDB(NXC_USER **ppUserList, DWORD *pdwNumUsers);
0d9c1b96
VK
683DWORD LIBNXCL_EXPORTABLE NXCLockUserDB(void);
684DWORD LIBNXCL_EXPORTABLE NXCUnlockUserDB(void);
f75b99fd
VK
685DWORD LIBNXCL_EXPORTABLE NXCCreateUser(char *pszName, BOOL bIsGroup, DWORD *pdwNewId);
686DWORD LIBNXCL_EXPORTABLE NXCDeleteUser(DWORD dwId);
911dbb64 687DWORD LIBNXCL_EXPORTABLE NXCModifyUser(NXC_USER *pUserInfo);
8c18110a 688DWORD LIBNXCL_EXPORTABLE NXCSetPassword(DWORD dwUserId, char *pszNewPassword);
5ac3236b 689
7ec6cca8
VK
690DWORD LIBNXCL_EXPORTABLE NXCOpenNodeDCIList(DWORD dwNodeId, NXC_DCI_LIST **ppItemList);
691DWORD LIBNXCL_EXPORTABLE NXCCloseNodeDCIList(NXC_DCI_LIST *pItemList);
7ac0c0a8
VK
692DWORD LIBNXCL_EXPORTABLE NXCCreateNewDCI(NXC_DCI_LIST *pItemList, DWORD *pdwItemId);
693DWORD LIBNXCL_EXPORTABLE NXCUpdateDCI(DWORD dwNodeId, NXC_DCI *pItem);
694DWORD LIBNXCL_EXPORTABLE NXCDeleteDCI(NXC_DCI_LIST *pItemList, DWORD dwItemId);
695DWORD LIBNXCL_EXPORTABLE NXCItemIndex(NXC_DCI_LIST *pItemList, DWORD dwItemId);
b9b4ec17
VK
696DWORD LIBNXCL_EXPORTABLE NXCGetDCIData(DWORD dwNodeId, DWORD dwItemId, DWORD dwMaxRows,
697 DWORD dwTimeFrom, DWORD dwTimeTo, NXC_DCI_DATA **ppData);
4c20673b
VK
698void LIBNXCL_EXPORTABLE NXCDestroyDCIData(NXC_DCI_DATA *pData);
699NXC_DCI_ROW LIBNXCL_EXPORTABLE *NXCGetRowPtr(NXC_DCI_DATA *pData, DWORD dwRow);
899f2093
VK
700DWORD LIBNXCL_EXPORTABLE NXCAddThresholdToItem(NXC_DCI *pItem, NXC_DCI_THRESHOLD *pThreshold);
701BOOL LIBNXCL_EXPORTABLE NXCDeleteThresholdFromItem(NXC_DCI *pItem, DWORD dwIndex);
702BOOL LIBNXCL_EXPORTABLE NXCSwapThresholds(NXC_DCI *pItem, DWORD dwIndex1, DWORD dwIndex2);
7ec6cca8 703
a7d07192
VK
704DWORD LIBNXCL_EXPORTABLE NXCGetMIBList(NXC_MIB_LIST **ppMibList);
705void LIBNXCL_EXPORTABLE NXCDestroyMIBList(NXC_MIB_LIST *pMibList);
706DWORD LIBNXCL_EXPORTABLE NXCDownloadMIBFile(char *pszName, char *pszDestDir);
707
708DWORD LIBNXCL_EXPORTABLE NXCOpenEventPolicy(NXC_EPP **ppEventPolicy);
709DWORD LIBNXCL_EXPORTABLE NXCCloseEventPolicy(void);
710DWORD LIBNXCL_EXPORTABLE NXCSaveEventPolicy(NXC_EPP *pEventPolicy);
711void LIBNXCL_EXPORTABLE NXCDestroyEventPolicy(NXC_EPP *pEventPolicy);
ef44d5ea 712void LIBNXCL_EXPORTABLE NXCDeletePolicyRule(NXC_EPP *pEventPolicy, DWORD dwRule);
a7d07192 713
80ffed5a
VK
714#ifdef __cplusplus
715}
716#endif
717
7ec6cca8
VK
718#endif /* LIBNXCL_NO_DECLARATIONS */
719
80ffed5a 720#endif /* _nxclapi_h_ */