1 /** 2 * @file protoapi.h NDO protocol definition 3 */ 4 /* 5 * Copyright 2009-2014 Nagios Core Development Team and Community Contributors 6 * Copyright 2005-2009 Ethan Galstad 7 * 8 * This file is part of NDOUtils. 9 * 10 * NDOUtils is free software: you can redistribute it and/or modify 11 * it under the terms of the GNU General Public License version 2 as 12 * published by the Free Software Foundation. 13 * 14 * NDOUtils is distributed in the hope that it will be useful, 15 * but WITHOUT ANY WARRANTY; without even the implied warranty of 16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 * GNU General Public License for more details. 18 * 19 * You should have received a copy of the GNU General Public License 20 * along with NDOUtils. If not, see <http://www.gnu.org/licenses/>. 21 */ 22 23 #ifndef NDO_PROTOAPI_H_INCLUDED 24 #define NDO_PROTOAPI_H_INCLUDED 25 26 27 /****************** PROTOCOL VERSION ***************/ 28 29 #define NDO_API_PROTOVERSION 2 30 31 32 /****************** CONTROL STRINGS ****************/ 33 34 #define NDO_API_NONE "" 35 36 #define NDO_API_HELLO "HELLO" 37 #define NDO_API_GOODBYE "GOODBYE" 38 39 #define NDO_API_PROTOCOL "PROTOCOL" 40 #define NDO_API_AGENT "AGENT" 41 #define NDO_API_AGENTVERSION "AGENTVERSION" 42 #define NDO_API_DISPOSITION "DISPOSITION" /* archived or realtime */ 43 #define NDO_API_CONNECTION "CONNECTION" /* immediate or deferred */ 44 #define NDO_API_CONNECTTYPE "CONNECTTYPE" /* initial or reconnection */ 45 46 #define NDO_API_DISPOSITION_ARCHIVED "ARCHIVED" 47 #define NDO_API_DISPOSITION_REALTIME "REALTIME" 48 #define NDO_API_CONNECTION_FILE "FILE" 49 #define NDO_API_CONNECTION_UNIXSOCKET "UNIXSOCKET" 50 #define NDO_API_CONNECTION_TCPSOCKET "TCPSOCKET" 51 #define NDO_API_CONNECTTYPE_INITIAL "INITIAL" 52 #define NDO_API_CONNECTTYPE_RECONNECT "RECONNECT" 53 54 #define NDO_API_STARTDATADUMP "STARTDATADUMP" 55 #define NDO_API_STARTTIME "STARTTIME" 56 #define NDO_API_ENDTIME "ENDTIME" 57 58 #define NDO_API_CONFIGDUMP_ORIGINAL "ORIGINAL" 59 #define NDO_API_CONFIGDUMP_RETAINED "RETAINED" 60 61 #define NDO_API_INSTANCENAME "INSTANCENAME" 62 63 #define NDO_API_STARTCONFIGDUMP 900 64 #define NDO_API_ENDCONFIGDUMP 901 65 #define NDO_API_ENDDATA 999 66 #define NDO_API_ENDDATADUMP 1000 67 68 69 70 /******************** DATA TYPES *******************/ 71 72 #define NDO_API_LOGENTRY 100 73 74 #define NDO_API_PROCESSDATA 200 75 #define NDO_API_TIMEDEVENTDATA 201 76 #define NDO_API_LOGDATA 202 77 #define NDO_API_SYSTEMCOMMANDDATA 203 78 #define NDO_API_EVENTHANDLERDATA 204 79 #define NDO_API_NOTIFICATIONDATA 205 80 #define NDO_API_SERVICECHECKDATA 206 81 #define NDO_API_HOSTCHECKDATA 207 82 #define NDO_API_COMMENTDATA 208 83 #define NDO_API_DOWNTIMEDATA 209 84 #define NDO_API_FLAPPINGDATA 210 85 #define NDO_API_PROGRAMSTATUSDATA 211 86 #define NDO_API_HOSTSTATUSDATA 212 87 #define NDO_API_SERVICESTATUSDATA 213 88 #define NDO_API_ADAPTIVEPROGRAMDATA 214 89 #define NDO_API_ADAPTIVEHOSTDATA 215 90 #define NDO_API_ADAPTIVESERVICEDATA 216 91 #define NDO_API_EXTERNALCOMMANDDATA 217 92 #define NDO_API_AGGREGATEDSTATUSDATA 218 93 #define NDO_API_RETENTIONDATA 219 94 #define NDO_API_CONTACTNOTIFICATIONDATA 220 95 #define NDO_API_CONTACTNOTIFICATIONMETHODDATA 221 96 #define NDO_API_ACKNOWLEDGEMENTDATA 222 97 #define NDO_API_STATECHANGEDATA 223 98 #define NDO_API_CONTACTSTATUSDATA 224 99 #define NDO_API_ADAPTIVECONTACTDATA 225 100 101 #define NDO_API_MAINCONFIGFILEVARIABLES 300 102 #define NDO_API_RESOURCECONFIGFILEVARIABLES 301 103 #define NDO_API_CONFIGVARIABLES 302 104 #define NDO_API_RUNTIMEVARIABLES 303 105 106 #define NDO_API_HOSTDEFINITION 400 107 #define NDO_API_HOSTGROUPDEFINITION 401 108 #define NDO_API_SERVICEDEFINITION 402 109 #define NDO_API_SERVICEGROUPDEFINITION 403 110 #define NDO_API_HOSTDEPENDENCYDEFINITION 404 111 #define NDO_API_SERVICEDEPENDENCYDEFINITION 405 112 #define NDO_API_HOSTESCALATIONDEFINITION 406 113 #define NDO_API_SERVICEESCALATIONDEFINITION 407 114 #define NDO_API_COMMANDDEFINITION 408 115 #define NDO_API_TIMEPERIODDEFINITION 409 116 #define NDO_API_CONTACTDEFINITION 410 117 #define NDO_API_CONTACTGROUPDEFINITION 411 118 #define NDO_API_HOSTEXTINFODEFINITION 412 /* no longer used */ 119 #define NDO_API_SERVICEEXTINFODEFINITION 413 /* no longer used */ 120 #define NDO_API_ACTIVEOBJECTSLIST 414 121 122 123 /************** COMMON DATA ATTRIBUTES **************/ 124 125 #define NDO_MAX_DATA_TYPES 270 126 127 #define NDO_DATA_NONE 0 128 129 #define NDO_DATA_TYPE 1 130 #define NDO_DATA_FLAGS 2 131 #define NDO_DATA_ATTRIBUTES 3 132 #define NDO_DATA_TIMESTAMP 4 133 134 135 /*************** LIVE DATA ATTRIBUTES ***************/ 136 137 #define NDO_DATA_ACKAUTHOR 5 138 #define NDO_DATA_ACKDATA 6 139 #define NDO_DATA_ACKNOWLEDGEMENTTYPE 7 140 #define NDO_DATA_ACTIVEHOSTCHECKSENABLED 8 141 #define NDO_DATA_ACTIVESERVICECHECKSENABLED 9 142 #define NDO_DATA_AUTHORNAME 10 143 #define NDO_DATA_CHECKCOMMAND 11 144 #define NDO_DATA_CHECKTYPE 12 145 #define NDO_DATA_COMMANDARGS 13 146 #define NDO_DATA_COMMANDLINE 14 147 #define NDO_DATA_COMMANDSTRING 15 148 #define NDO_DATA_COMMANDTYPE 16 149 #define NDO_DATA_COMMENT 17 150 #define NDO_DATA_COMMENTID 18 151 #define NDO_DATA_COMMENTTIME 19 152 #define NDO_DATA_COMMENTTYPE 20 153 #define NDO_DATA_CONFIGFILENAME 21 154 #define NDO_DATA_CONFIGFILEVARIABLE 22 155 #define NDO_DATA_CONFIGVARIABLE 23 156 #define NDO_DATA_CONTACTSNOTIFIED 24 157 #define NDO_DATA_CURRENTCHECKATTEMPT 25 158 #define NDO_DATA_CURRENTNOTIFICATIONNUMBER 26 159 #define NDO_DATA_CURRENTSTATE 27 160 #define NDO_DATA_DAEMONMODE 28 161 #define NDO_DATA_DOWNTIMEID 29 162 #define NDO_DATA_DOWNTIMETYPE 30 163 #define NDO_DATA_DURATION 31 164 #define NDO_DATA_EARLYTIMEOUT 32 165 #define NDO_DATA_ENDTIME 33 166 #define NDO_DATA_ENTRYTIME 34 167 #define NDO_DATA_ENTRYTYPE 35 168 #define NDO_DATA_ESCALATED 36 169 #define NDO_DATA_EVENTHANDLER 37 170 #define NDO_DATA_EVENTHANDLERENABLED 38 171 #define NDO_DATA_EVENTHANDLERSENABLED 39 172 #define NDO_DATA_EVENTHANDLERTYPE 40 173 #define NDO_DATA_EVENTTYPE 41 174 #define NDO_DATA_EXECUTIONTIME 42 175 #define NDO_DATA_EXPIRATIONTIME 43 176 #define NDO_DATA_EXPIRES 44 177 #define NDO_DATA_FAILUREPREDICTIONENABLED 45 178 #define NDO_DATA_FIXED 46 179 #define NDO_DATA_FLAPDETECTIONENABLED 47 180 #define NDO_DATA_FLAPPINGTYPE 48 181 #define NDO_DATA_GLOBALHOSTEVENTHANDLER 49 182 #define NDO_DATA_GLOBALSERVICEEVENTHANDLER 50 183 #define NDO_DATA_HASBEENCHECKED 51 184 #define NDO_DATA_HIGHTHRESHOLD 52 185 #define NDO_DATA_HOST 53 186 #define NDO_DATA_ISFLAPPING 54 187 #define NDO_DATA_LASTCOMMANDCHECK 55 188 #define NDO_DATA_LASTHARDSTATE 56 189 #define NDO_DATA_LASTHARDSTATECHANGE 57 190 #define NDO_DATA_LASTHOSTCHECK 58 191 #define NDO_DATA_LASTHOSTNOTIFICATION 59 192 #define NDO_DATA_LASTLOGROTATION 60 193 #define NDO_DATA_LASTSERVICECHECK 61 194 #define NDO_DATA_LASTSERVICENOTIFICATION 62 195 #define NDO_DATA_LASTSTATECHANGE 63 196 #define NDO_DATA_LASTTIMECRITICAL 64 197 #define NDO_DATA_LASTTIMEDOWN 65 198 #define NDO_DATA_LASTTIMEOK 66 199 #define NDO_DATA_LASTTIMEUNKNOWN 67 200 #define NDO_DATA_LASTTIMEUNREACHABLE 68 201 #define NDO_DATA_LASTTIMEUP 69 202 #define NDO_DATA_LASTTIMEWARNING 70 203 #define NDO_DATA_LATENCY 71 204 #define NDO_DATA_LOGENTRY 72 205 #define NDO_DATA_LOGENTRYTIME 73 206 #define NDO_DATA_LOGENTRYTYPE 74 207 #define NDO_DATA_LOWTHRESHOLD 75 208 #define NDO_DATA_MAXCHECKATTEMPTS 76 209 #define NDO_DATA_MODIFIEDHOSTATTRIBUTE 77 210 #define NDO_DATA_MODIFIEDHOSTATTRIBUTES 78 211 #define NDO_DATA_MODIFIEDSERVICEATTRIBUTE 79 212 #define NDO_DATA_MODIFIEDSERVICEATTRIBUTES 80 213 #define NDO_DATA_NEXTHOSTCHECK 81 214 #define NDO_DATA_NEXTHOSTNOTIFICATION 82 215 #define NDO_DATA_NEXTSERVICECHECK 83 216 #define NDO_DATA_NEXTSERVICENOTIFICATION 84 217 #define NDO_DATA_NOMORENOTIFICATIONS 85 218 #define NDO_DATA_NORMALCHECKINTERVAL 86 219 #define NDO_DATA_NOTIFICATIONREASON 87 220 #define NDO_DATA_NOTIFICATIONSENABLED 88 221 #define NDO_DATA_NOTIFICATIONTYPE 89 222 #define NDO_DATA_NOTIFYCONTACTS 90 223 #define NDO_DATA_OBSESSOVERHOST 91 224 #define NDO_DATA_OBSESSOVERHOSTS 92 225 #define NDO_DATA_OBSESSOVERSERVICE 93 226 #define NDO_DATA_OBSESSOVERSERVICES 94 227 #define NDO_DATA_OUTPUT 95 228 #define NDO_DATA_PASSIVEHOSTCHECKSENABLED 96 229 #define NDO_DATA_PASSIVESERVICECHECKSENABLED 97 230 #define NDO_DATA_PERCENTSTATECHANGE 98 231 #define NDO_DATA_PERFDATA 99 232 #define NDO_DATA_PERSISTENT 100 233 #define NDO_DATA_PROBLEMHASBEENACKNOWLEDGED 101 234 #define NDO_DATA_PROCESSID 102 235 #define NDO_DATA_PROCESSPERFORMANCEDATA 103 236 #define NDO_DATA_PROGRAMDATE 104 237 #define NDO_DATA_PROGRAMNAME 105 238 #define NDO_DATA_PROGRAMSTARTTIME 106 239 #define NDO_DATA_PROGRAMVERSION 107 240 #define NDO_DATA_RECURRING 108 241 #define NDO_DATA_RETRYCHECKINTERVAL 109 242 #define NDO_DATA_RETURNCODE 110 243 #define NDO_DATA_RUNTIME 111 244 #define NDO_DATA_RUNTIMEVARIABLE 112 245 #define NDO_DATA_SCHEDULEDDOWNTIMEDEPTH 113 246 #define NDO_DATA_SERVICE 114 247 #define NDO_DATA_SHOULDBESCHEDULED 115 248 #define NDO_DATA_SOURCE 116 249 #define NDO_DATA_STARTTIME 117 250 #define NDO_DATA_STATE 118 251 #define NDO_DATA_STATECHANGE 119 252 #define NDO_DATA_STATECHANGETYPE 120 253 #define NDO_DATA_STATETYPE 121 254 #define NDO_DATA_STICKY 122 255 #define NDO_DATA_TIMEOUT 123 256 #define NDO_DATA_TRIGGEREDBY 124 257 #define NDO_DATA_LONGOUTPUT 125 258 259 /*********** OBJECT CONFIG DATA ATTRIBUTES **********/ 260 261 #define NDO_DATA_ACTIONURL 126 262 #define NDO_DATA_COMMANDNAME 127 263 #define NDO_DATA_CONTACTADDRESS 128 264 #define NDO_DATA_CONTACTALIAS 129 265 #define NDO_DATA_CONTACTGROUP 130 266 #define NDO_DATA_CONTACTGROUPALIAS 131 267 #define NDO_DATA_CONTACTGROUPMEMBER 132 268 #define NDO_DATA_CONTACTGROUPNAME 133 269 #define NDO_DATA_CONTACTNAME 134 270 #define NDO_DATA_DEPENDENCYTYPE 135 271 #define NDO_DATA_DEPENDENTHOSTNAME 136 272 #define NDO_DATA_DEPENDENTSERVICEDESCRIPTION 137 273 #define NDO_DATA_EMAILADDRESS 138 274 #define NDO_DATA_ESCALATEONCRITICAL 139 275 #define NDO_DATA_ESCALATEONDOWN 140 276 #define NDO_DATA_ESCALATEONRECOVERY 141 277 #define NDO_DATA_ESCALATEONUNKNOWN 142 278 #define NDO_DATA_ESCALATEONUNREACHABLE 143 279 #define NDO_DATA_ESCALATEONWARNING 144 280 #define NDO_DATA_ESCALATIONPERIOD 145 281 #define NDO_DATA_FAILONCRITICAL 146 282 #define NDO_DATA_FAILONDOWN 147 283 #define NDO_DATA_FAILONOK 148 284 #define NDO_DATA_FAILONUNKNOWN 149 285 #define NDO_DATA_FAILONUNREACHABLE 150 286 #define NDO_DATA_FAILONUP 151 287 #define NDO_DATA_FAILONWARNING 152 288 #define NDO_DATA_FIRSTNOTIFICATION 153 289 #define NDO_DATA_HAVE2DCOORDS 154 290 #define NDO_DATA_HAVE3DCOORDS 155 291 #define NDO_DATA_HIGHHOSTFLAPTHRESHOLD 156 292 #define NDO_DATA_HIGHSERVICEFLAPTHRESHOLD 157 293 #define NDO_DATA_HOSTADDRESS 158 294 #define NDO_DATA_HOSTALIAS 159 295 #define NDO_DATA_HOSTCHECKCOMMAND 160 296 #define NDO_DATA_HOSTCHECKINTERVAL 161 297 #define NDO_DATA_HOSTCHECKPERIOD 162 298 #define NDO_DATA_HOSTEVENTHANDLER 163 299 #define NDO_DATA_HOSTEVENTHANDLERENABLED 164 300 #define NDO_DATA_HOSTFAILUREPREDICTIONENABLED 165 301 #define NDO_DATA_HOSTFAILUREPREDICTIONOPTIONS 166 302 #define NDO_DATA_HOSTFLAPDETECTIONENABLED 167 303 #define NDO_DATA_HOSTFRESHNESSCHECKSENABLED 168 304 #define NDO_DATA_HOSTFRESHNESSTHRESHOLD 169 305 #define NDO_DATA_HOSTGROUPALIAS 170 306 #define NDO_DATA_HOSTGROUPMEMBER 171 307 #define NDO_DATA_HOSTGROUPNAME 172 308 #define NDO_DATA_HOSTMAXCHECKATTEMPTS 173 309 #define NDO_DATA_HOSTNAME 174 310 #define NDO_DATA_HOSTNOTIFICATIONCOMMAND 175 311 #define NDO_DATA_HOSTNOTIFICATIONINTERVAL 176 312 #define NDO_DATA_HOSTNOTIFICATIONPERIOD 177 313 #define NDO_DATA_HOSTNOTIFICATIONSENABLED 178 314 #define NDO_DATA_ICONIMAGE 179 315 #define NDO_DATA_ICONIMAGEALT 180 316 #define NDO_DATA_INHERITSPARENT 181 317 #define NDO_DATA_LASTNOTIFICATION 182 318 #define NDO_DATA_LOWHOSTFLAPTHRESHOLD 183 319 #define NDO_DATA_LOWSERVICEFLAPTHRESHOLD 184 320 #define NDO_DATA_MAXSERVICECHECKATTEMPTS 185 321 #define NDO_DATA_NOTES 186 322 #define NDO_DATA_NOTESURL 187 323 #define NDO_DATA_NOTIFICATIONINTERVAL 188 324 #define NDO_DATA_NOTIFYHOSTDOWN 189 325 #define NDO_DATA_NOTIFYHOSTFLAPPING 190 326 #define NDO_DATA_NOTIFYHOSTRECOVERY 191 327 #define NDO_DATA_NOTIFYHOSTUNREACHABLE 192 328 #define NDO_DATA_NOTIFYSERVICECRITICAL 193 329 #define NDO_DATA_NOTIFYSERVICEFLAPPING 194 330 #define NDO_DATA_NOTIFYSERVICERECOVERY 195 331 #define NDO_DATA_NOTIFYSERVICEUNKNOWN 196 332 #define NDO_DATA_NOTIFYSERVICEWARNING 197 333 #define NDO_DATA_PAGERADDRESS 198 334 #define NDO_DATA_PARALLELIZESERVICECHECK 199 /* no longer used */ 335 #define NDO_DATA_PARENTHOST 200 336 #define NDO_DATA_PROCESSHOSTPERFORMANCEDATA 201 337 #define NDO_DATA_PROCESSSERVICEPERFORMANCEDATA 202 338 #define NDO_DATA_RETAINHOSTNONSTATUSINFORMATION 203 339 #define NDO_DATA_RETAINHOSTSTATUSINFORMATION 204 340 #define NDO_DATA_RETAINSERVICENONSTATUSINFORMATION 205 341 #define NDO_DATA_RETAINSERVICESTATUSINFORMATION 206 342 #define NDO_DATA_SERVICECHECKCOMMAND 207 343 #define NDO_DATA_SERVICECHECKINTERVAL 208 344 #define NDO_DATA_SERVICECHECKPERIOD 209 345 #define NDO_DATA_SERVICEDESCRIPTION 210 346 #define NDO_DATA_SERVICEEVENTHANDLER 211 347 #define NDO_DATA_SERVICEEVENTHANDLERENABLED 212 348 #define NDO_DATA_SERVICEFAILUREPREDICTIONENABLED 213 349 #define NDO_DATA_SERVICEFAILUREPREDICTIONOPTIONS 214 350 #define NDO_DATA_SERVICEFLAPDETECTIONENABLED 215 351 #define NDO_DATA_SERVICEFRESHNESSCHECKSENABLED 216 352 #define NDO_DATA_SERVICEFRESHNESSTHRESHOLD 217 353 #define NDO_DATA_SERVICEGROUPALIAS 218 354 #define NDO_DATA_SERVICEGROUPMEMBER 219 355 #define NDO_DATA_SERVICEGROUPNAME 220 356 #define NDO_DATA_SERVICEISVOLATILE 221 357 #define NDO_DATA_SERVICENOTIFICATIONCOMMAND 222 358 #define NDO_DATA_SERVICENOTIFICATIONINTERVAL 223 359 #define NDO_DATA_SERVICENOTIFICATIONPERIOD 224 360 #define NDO_DATA_SERVICENOTIFICATIONSENABLED 225 361 #define NDO_DATA_SERVICERETRYINTERVAL 226 362 #define NDO_DATA_SHOULDBEDRAWN 227 /* no longer used */ 363 #define NDO_DATA_STALKHOSTONDOWN 228 364 #define NDO_DATA_STALKHOSTONUNREACHABLE 229 365 #define NDO_DATA_STALKHOSTONUP 230 366 #define NDO_DATA_STALKSERVICEONCRITICAL 231 367 #define NDO_DATA_STALKSERVICEONOK 232 368 #define NDO_DATA_STALKSERVICEONUNKNOWN 233 369 #define NDO_DATA_STALKSERVICEONWARNING 234 370 #define NDO_DATA_STATUSMAPIMAGE 235 371 #define NDO_DATA_TIMEPERIODALIAS 236 372 #define NDO_DATA_TIMEPERIODNAME 237 373 #define NDO_DATA_TIMERANGE 238 374 #define NDO_DATA_VRMLIMAGE 239 375 #define NDO_DATA_X2D 240 376 #define NDO_DATA_X3D 241 377 #define NDO_DATA_Y2D 242 378 #define NDO_DATA_Y3D 243 379 #define NDO_DATA_Z3D 244 380 381 #define NDO_DATA_CONFIGDUMPTYPE 245 382 383 #define NDO_DATA_FIRSTNOTIFICATIONDELAY 246 384 #define NDO_DATA_HOSTRETRYINTERVAL 247 385 #define NDO_DATA_NOTIFYHOSTDOWNTIME 248 386 #define NDO_DATA_NOTIFYSERVICEDOWNTIME 249 387 #define NDO_DATA_CANSUBMITCOMMANDS 250 388 #define NDO_DATA_FLAPDETECTIONONUP 251 389 #define NDO_DATA_FLAPDETECTIONONDOWN 252 390 #define NDO_DATA_FLAPDETECTIONONUNREACHABLE 253 391 #define NDO_DATA_FLAPDETECTIONONOK 254 392 #define NDO_DATA_FLAPDETECTIONONWARNING 255 393 #define NDO_DATA_FLAPDETECTIONONUNKNOWN 256 394 #define NDO_DATA_FLAPDETECTIONONCRITICAL 257 395 #define NDO_DATA_DISPLAYNAME 258 396 #define NDO_DATA_DEPENDENCYPERIOD 259 397 #define NDO_DATA_MODIFIEDCONTACTATTRIBUTE 260 /* LIVE DATA */ 398 #define NDO_DATA_MODIFIEDCONTACTATTRIBUTES 261 /* LIVE DATA */ 399 #define NDO_DATA_CUSTOMVARIABLE 262 400 #define NDO_DATA_HASBEENMODIFIED 263 401 #define NDO_DATA_CONTACT 264 402 #define NDO_DATA_LASTSTATE 265 403 404 /* Nagios Core 4 additions */ 405 #define NDO_DATA_IMPORTANCE 266 406 #define NDO_DATA_MINIMUMIMPORTANCE 267 407 #define NDO_DATA_PARENTSERVICE 268 408 #define NDO_DATA_ACTIVEOBJECTSTYPE 269 409 410 #endif 411