# Plugin

## Common

class `Plugin.``Common`

  Common utility types (re-used in various messages below)

  `ResultCode`

    A “nagios” status result.

    Possible values | Id
    --- | ---
    OK | 0
    WARNING | 1
    CRITICAL | 2
    UNKNOWN | 3

  `DataType`

    Type of data fields. @deprecated in favour of checking which field is available.

    Possible values | Id
    --- | ---
    INT | 1
    STRING | 2
    FLOAT | 3
    BOOL | 4
    LIST | 5

  `Version`

    Main protocol version used @deprecated Makes very little sense and should be removed

    Possible values | Id
    --- | ---
    VERSION_1 | 1

  Nested messages

  - `Plugin.Common.AnyDataType`
  - `Plugin.Common.KeyValue`
  - `Plugin.Common.Host`
  - `Plugin.Common.Header`
  - `Plugin.Common.Attachment`
  - `Plugin.Common.PerformanceData`
  - `Plugin.Common.Status`

### AnyDataType

class `Plugin.Common.``AnyDataType`

  Data type used to wrap “any” primitive type. Used whenever the type can change.

  `string_data`

    A optional value of type string

    String payload

  `int_data`

    A optional value of type int64

    Numeric integer payload

  `float_data`

    A optional value of type double

    Numeric floating point payload

  `bool_data`

    A optional value of type bool

    Boolean (true/false) payload

  `list_data`

    A repeated value of type string

    A string (multiple lines are separated by list entries @todo: remove repeated modifier from this field.

### KeyValue

class `Plugin.Common.``KeyValue`

  Key value pair

  `key`

    A required value of type string

    The key identifying the value

  `value`

    A required value of type string

    The value

  `data`

    A repeated value of type string

    Optional extra fields to store various custom data

### Host

class `Plugin.Common.``Host`

  Field identifying a host entry

  `id`

    A optional value of type string

    A unique identifier representing the host in this message

  `host`

    A optional value of type string

    The host name

  `address`

    A optional value of type string

    The address (usually the ip)

  `protocol`

    A optional value of type string

    The protocol used to talk whit this host.

  `comment`

    A optional value of type string

    A comment describing the host

  `metadata`

    A repeated value of type message

    A key value store with attributes describing this host. The content and use of this attributes are application defined.

  `tags`

    A repeated value of type string

    A numer of tags defined for this host (can be used for routing purposes).

### Header

class `Plugin.Common.``Header`

  Header used in all messages. Contains basic information about the message.

  `version`

    A required value of type enum

    Version of message. @ deprecated Not really useful

  `max_supported_version`

    A optional value of type enum

    Maximmu supported version. Was planned to be used to negotiate version but was never used. @deprecated not used.

  `source_id`

    A optional value of type string

    Source (sending) system. This is the system which sends the message (me).

  `sender_id`

    A optional value of type string

    Sender is the original source of the message. THis is same as source unless message has been relayed.

  `recipient_id`

    A optional value of type string

    Recipient is the final destination. This is the same as destination_id unless message is to be relayed.

  `destination_id`

    A optional value of type string

    Destination (target) system. The system which will receive the message.

  `message_id`

    A optional value of type int64

    Message identification. Has no meaning apart from identification. Set by source system and retained in any processing system.

  `metadata`

    A repeated value of type message

    Meta data related to the message.

  `tags`

    A repeated value of type string

    A list of tags associated with the message.

  `hosts`

    A repeated value of type message

    A list of hosts. All recipient/destination ids point to objects in this data set.

### Attachment

class `Plugin.Common.``Attachment`

  Attachment is used to attach information to another request. This is usually used to send along additional information not directly relatedt to the request. Or send unstructured data which is not supported by the original request.

  `id`

    A optional value of type int64

    Identifier of attachment (for reference purpouses)

  `type`

    A required value of type string

    The mime type for this attachment.

  `metadata`

    A repeated value of type message

    Meta data related to the attachment.

  `tags`

    A repeated value of type string

    A list of tags associated with the attachment.

  `data`

    A required value of type string

    The actual attachment (encoded)

### PerformanceData

class `Plugin.Common.``PerformanceData`
  `alias`

    A required value of type string

  `type`

    A required value of type enum

  `int_value`

    A optional value of type message

  `string_value`

    A optional value of type message

  `float_value`

    A optional value of type message

  `bool_value`

    A optional value of type message

  Nested messages

  - `Plugin.Common.PerformanceData.IntValue`
  - `Plugin.Common.PerformanceData.StringValue`
  - `Plugin.Common.PerformanceData.FloatValue`
  - `Plugin.Common.PerformanceData.BoolValue`

### IntValue

class `Plugin.Common.PerformanceData.``IntValue`
  `value`

    A required value of type int64

  `unit`

    A optional value of type string

  `warning`

    A optional value of type int64

  `critical`

    A optional value of type int64

  `minimum`

    A optional value of type int64

  `maximum`

    A optional value of type int64

### StringValue

class `Plugin.Common.PerformanceData.``StringValue`
  `value`

    A required value of type string

### FloatValue

class `Plugin.Common.PerformanceData.``FloatValue`
  `value`

    A required value of type double

  `unit`

    A optional value of type string

  `warning`

    A optional value of type double

  `critical`

    A optional value of type double

  `minimum`

    A optional value of type double

  `maximum`

    A optional value of type double

### BoolValue

class `Plugin.Common.PerformanceData.``BoolValue`
  `value`

    A required value of type bool

  `unit`

    A optional value of type string

  `warning`

    A optional value of type bool

  `critical`

    A optional value of type bool

### Status

class `Plugin.Common.``Status`
  `StatusType`

    Possible values | Id
    --- | ---
    STATUS_OK | 0
    STATUS_WARNING | 1
    STATUS_ERROR | 2
    STATUS_DELAYED | 3

  `status`

    A required value of type enum

  `message`

    A optional value of type string

  `data`

    A optional value of type string

## QueryRequestMessage

class `Plugin.``QueryRequestMessage`

  Query request Used for querying the client this is the “normal” check_nrpe message request. Associated response is `Plugin.QueryResponseMessage`

  `header`

    A required value of type message

  `payload`

    A repeated value of type message

  `attachments`

    A repeated value of type message

    The attachment is used to attach additional free form information.

  Nested messages

  - `Plugin.QueryRequestMessage.Request`

### Request

class `Plugin.QueryRequestMessage.``Request`
  `id`

    A optional value of type int32

  `target`

    A optional value of type string

  `command`

    A required value of type string

  `alias`

    A optional value of type string

  `arguments`

    A repeated value of type string

  `attachments`

    A repeated value of type message

    The attachment is used to attach additional free form information.

## QueryResponseMessage

class `Plugin.``QueryResponseMessage`

  Query response Used for querying the client this is the “normal” check_nrpe message request. Associated request is `Plugin.QueryRequestMessage`

  `header`

    A required value of type message

  `payload`

    A repeated value of type message

  `attachments`

    A repeated value of type message

    The attachment is used to attach additional free form information.

  Nested messages

  - `Plugin.QueryResponseMessage.Response`

### Response

class `Plugin.QueryResponseMessage.``Response`
  `id`

    A optional value of type int32

  `source`

    A optional value of type string

  `command`

    A required value of type string

  `alias`

    A optional value of type string

  `arguments`

    A repeated value of type string

  `result`

    A required value of type enum

  `message`

    A required value of type string

  `data`

    A optional value of type bytes

  `perf`

    A repeated value of type message

  `attachments`

    A repeated value of type message

    The attachment is used to attach additional free form information.

## ExecuteRequestMessage

class `Plugin.``ExecuteRequestMessage`

  Execute command request and response. Used for executing commands on clients similar to `Plugin.QueryRequestMessage` but wont return nagios check data Associated response is `Plugin.ExecuteResponseMessage`

  `header`

    A required value of type message

  `payload`

    A repeated value of type message

  `attachments`

    A repeated value of type message

    The attachment is used to attach additional free form information.

  Nested messages

  - `Plugin.ExecuteRequestMessage.Request`

### Request

class `Plugin.ExecuteRequestMessage.``Request`
  `id`

    A optional value of type int32

  `command`

    A required value of type string

  `arguments`

    A repeated value of type string

  `attachments`

    A repeated value of type message

    The attachment is used to attach additional free form information.

## ExecuteResponseMessage

class `Plugin.``ExecuteResponseMessage`
  `header`

    A required value of type message

  `payload`

    A repeated value of type message

  `attachments`

    A repeated value of type message

    The attachment is used to attach additional free form information.

  Nested messages

  - `Plugin.ExecuteResponseMessage.Response`

### Response

class `Plugin.ExecuteResponseMessage.``Response`
  `id`

    A optional value of type int32

  `command`

    A required value of type string

  `arguments`

    A repeated value of type string

  `result`

    A required value of type enum

  `message`

    A required value of type string

  `data`

    A optional value of type bytes

  `attachments`

    A repeated value of type message

    The attachment is used to attach additional free form information.

## SubmitRequestMessage

class `Plugin.``SubmitRequestMessage`

  Submit result request message. Used for submitting a passive check results. The actual payload (Request) is a normal `Plugin.QueryResponseMessage.Response`. Associated response is `Plugin.SubmitResponseMessage`

  `header`

    A required value of type message

  `channel`

    A required value of type string

  `payload`

    A repeated value of type message

  `attachments`

    A repeated value of type message

    The attachment is used to attach additional free form information.

## SubmitResponseMessage

class `Plugin.``SubmitResponseMessage`

  Submit result response message. Response from submitting a passive check results. Associated request is `Plugin.SubmitRequestMessage`

  `header`

    A required value of type message

  `payload`

    A repeated value of type message

  `attachments`

    A repeated value of type message

    The attachment is used to attach additional free form information.

  Nested messages

  - `Plugin.SubmitResponseMessage.Response`

### Response

class `Plugin.SubmitResponseMessage.``Response`
  `id`

    A optional value of type int32

  `command`

    A required value of type string

  `status`

    A required value of type message

  `attachments`

    A repeated value of type message

    The attachment is used to attach additional free form information.

## Registry

class `Plugin.``Registry`

  Registration is an internal message. It is not used to submit checks or query status instead it is used so register modules, plug-ins, command. As well as query for them. The registry is a central component inside NSClient++ and this is the way to interact with the registry.

  `ItemType`

    Possible values | Id
    --- | ---
    QUERY | 1
    COMMAND | 2
    HANDLER | 3
    PLUGIN | 4
    QUERY_ALIAS | 5
    ROUTER | 6
    MODULE | 7
    SCHEDULE | 8
    ALL | 99

  `Command`

    Possible values | Id
    --- | ---
    LOAD | 1
    UNLOAD | 2
    RELOAD | 3

  Nested messages

  - `Plugin.Registry.Query`
  - `Plugin.Registry.Information`
  - `Plugin.Registry.KeyWordDescription`
  - `Plugin.Registry.ParameterDetail`
  - `Plugin.Registry.ParameterDetails`
  - `Plugin.Registry.Schedule`

### Query

class `Plugin.Registry.``Query`
  `expression`

    A optional value of type string

### Information

class `Plugin.Registry.``Information`
  `title`

    A optional value of type string

  `description`

    A optional value of type string

  `metadata`

    A repeated value of type message

  `min_version`

    A optional value of type string

  `max_version`

    A optional value of type string

  `advanced`

    A optional value of type bool

  `plugin`

    A repeated value of type string

### KeyWordDescription

class `Plugin.Registry.``KeyWordDescription`
  `parameter`

    A required value of type string

  `context`

    A optional value of type string

  `key`

    A required value of type string

  `short_description`

    A optional value of type string

  `long_description`

    A optional value of type string

### ParameterDetail

class `Plugin.Registry.``ParameterDetail`
  `name`

    A optional value of type string

  `default_value`

    A optional value of type string

  `required`

    A optional value of type bool

  `repeatable`

    A optional value of type bool

  `content_type`

    A optional value of type enum

  `short_description`

    A optional value of type string

  `long_description`

    A optional value of type string

  `keyword`

    A repeated value of type message

### ParameterDetails

class `Plugin.Registry.``ParameterDetails`
  `parameter`

    A repeated value of type message

### Schedule

class `Plugin.Registry.``Schedule`
  `id`

    A optional value of type string

  `cron`

    A optional value of type string

  `interval`

    A optional value of type string

## RegistryRequestMessage

class `Plugin.``RegistryRequestMessage`
  `header`

    A required value of type message

  `payload`

    A repeated value of type message

  Nested messages

  - `Plugin.RegistryRequestMessage.Request`

### Request

class `Plugin.RegistryRequestMessage.``Request`
  `id`

    A optional value of type int64

  `registration`

    A optional value of type message

  `inventory`

    A optional value of type message

  `control`

    A optional value of type message

  Nested messages

  - `Plugin.RegistryRequestMessage.Request.Registration`
  - `Plugin.RegistryRequestMessage.Request.Inventory`
  - `Plugin.RegistryRequestMessage.Request.Control`

### Registration

class `Plugin.RegistryRequestMessage.Request.``Registration`
  `plugin_id`

    A optional value of type int32

  `type`

    A required value of type enum

  `name`

    A required value of type string

  `info`

    A optional value of type message

  `unregister`

    A optional value of type bool

  `alias`

    A repeated value of type string

  `schedule`

    A repeated value of type message

### Inventory

class `Plugin.RegistryRequestMessage.Request.``Inventory`
  `plugin`

    A optional value of type string

  `type`

    A repeated value of type enum

  `name`

    A optional value of type string

  `fetch_all`

    A optional value of type bool

  `fetch_information`

    A optional value of type bool

### Control

class `Plugin.RegistryRequestMessage.Request.``Control`
  `command`

    A required value of type enum

  `type`

    A required value of type enum

  `name`

    A optional value of type string

  `alias`

    A optional value of type string

## RegistryResponseMessage

class `Plugin.``RegistryResponseMessage`
  `header`

    A required value of type message

  `payload`

    A repeated value of type message

  Nested messages

  - `Plugin.RegistryResponseMessage.Response`

### Response

class `Plugin.RegistryResponseMessage.``Response`
  `id`

    A optional value of type int64

  `result`

    A required value of type message

  `registration`

    A optional value of type message

  `inventory`

    A repeated value of type message

  `control`

    A optional value of type message

  Nested messages

  - `Plugin.RegistryResponseMessage.Response.Registration`
  - `Plugin.RegistryResponseMessage.Response.Inventory`
  - `Plugin.RegistryResponseMessage.Response.Control`

### Registration

class `Plugin.RegistryResponseMessage.Response.``Registration`
  `item_id`

    A optional value of type int32

### Inventory

class `Plugin.RegistryResponseMessage.Response.``Inventory`
  `plugin`

    A repeated value of type string

  `type`

    A required value of type enum

  `name`

    A required value of type string

  `info`

    A optional value of type message

  `parameters`

    A optional value of type message

  `schedule`

    A repeated value of type message

### Control

class `Plugin.RegistryResponseMessage.Response.``Control`

## ScheduleNotificationMessage

class `Plugin.``ScheduleNotificationMessage`
  `header`

    A required value of type message

  `payload`

    A repeated value of type message

  Nested messages

  - `Plugin.ScheduleNotificationMessage.Request`

### Request

class `Plugin.ScheduleNotificationMessage.``Request`
  `id`

    A optional value of type int64

  `plugin_id`

    A required value of type int32

  `info`

    A optional value of type message

  `schedule`

    A optional value of type message

## Settings

class `Plugin.``Settings`

  Settings is an internal message. It is not used to submit checks or query status instead it is used to interact with the settings store. The settings is a central component inside NSClient++ and this is the way to interact with it.

  `Command`

    Possible values | Id
    --- | ---
    LOAD | 1
    SAVE | 2
    RELOAD | 3

  Nested messages

  - `Plugin.Settings.Node`
  - `Plugin.Settings.Query`
  - `Plugin.Settings.Information`

### Node

class `Plugin.Settings.``Node`
  `path`

    A required value of type string

  `key`

    A optional value of type string

### Query

class `Plugin.Settings.``Query`
  `expression`

    A optional value of type string

### Information

class `Plugin.Settings.``Information`
  `title`

    A optional value of type string

  `description`

    A optional value of type string

  `default_value`

    A optional value of type message

  `min_version`

    A optional value of type string

  `max_version`

    A optional value of type string

  `advanced`

    A optional value of type bool

  `sample`

    A optional value of type bool

  `sample_usage`

    A optional value of type string

  `plugin`

    A repeated value of type string

## SettingsRequestMessage

class `Plugin.``SettingsRequestMessage`
  `header`

    A required value of type message

  `payload`

    A repeated value of type message

  Nested messages

  - `Plugin.SettingsRequestMessage.Request`

### Request

class `Plugin.SettingsRequestMessage.``Request`
  `id`

    A optional value of type int64

  `plugin_id`

    A required value of type int32

  `registration`

    A optional value of type message

  `query`

    A optional value of type message

  `update`

    A optional value of type message

  `inventory`

    A optional value of type message

  `control`

    A optional value of type message

  `status`

    A optional value of type message

  Nested messages

  - `Plugin.SettingsRequestMessage.Request.Registration`
  - `Plugin.SettingsRequestMessage.Request.Query`
  - `Plugin.SettingsRequestMessage.Request.Update`
  - `Plugin.SettingsRequestMessage.Request.Inventory`
  - `Plugin.SettingsRequestMessage.Request.Control`
  - `Plugin.SettingsRequestMessage.Request.Status`

### Registration

class `Plugin.SettingsRequestMessage.Request.``Registration`
  `node`

    A optional value of type message

  `info`

    A optional value of type message

### Query

class `Plugin.SettingsRequestMessage.Request.``Query`
  `node`

    A optional value of type message

  `query`

    A optional value of type message

  `recursive`

    A optional value of type bool

  `type`

    A optional value of type enum

  `default_value`

    A optional value of type message

### Update

class `Plugin.SettingsRequestMessage.Request.``Update`
  `node`

    A optional value of type message

  `value`

    A optional value of type message

### Inventory

class `Plugin.SettingsRequestMessage.Request.``Inventory`
  `plugin`

    A optional value of type string

  `node`

    A optional value of type message

  `query`

    A optional value of type message

  `recursive_fetch`

    A optional value of type bool

  `fetch_keys`

    A optional value of type bool

  `fetch_paths`

    A optional value of type bool

  `fetch_samples`

    A optional value of type bool

  `descriptions`

    A optional value of type bool

### Control

class `Plugin.SettingsRequestMessage.Request.``Control`
  `command`

    A required value of type enum

  `context`

    A optional value of type string

### Status

class `Plugin.SettingsRequestMessage.Request.``Status`

## SettingsResponseMessage

class `Plugin.``SettingsResponseMessage`
  `header`

    A required value of type message

  `payload`

    A repeated value of type message

  Nested messages

  - `Plugin.SettingsResponseMessage.Response`

### Response

class `Plugin.SettingsResponseMessage.``Response`
  `id`

    A optional value of type int64

  `result`

    A required value of type message

  `registration`

    A optional value of type message

  `query`

    A optional value of type message

  `update`

    A optional value of type message

  `inventory`

    A repeated value of type message

  `control`

    A optional value of type message

  `status`

    A optional value of type message

  Nested messages

  - `Plugin.SettingsResponseMessage.Response.Registration`
  - `Plugin.SettingsResponseMessage.Response.Query`
  - `Plugin.SettingsResponseMessage.Response.Update`
  - `Plugin.SettingsResponseMessage.Response.Inventory`
  - `Plugin.SettingsResponseMessage.Response.Control`
  - `Plugin.SettingsResponseMessage.Response.Status`

### Registration

class `Plugin.SettingsResponseMessage.Response.``Registration`

### Query

class `Plugin.SettingsResponseMessage.Response.``Query`
  `node`

    A required value of type message

  `value`

    A required value of type message

### Update

class `Plugin.SettingsResponseMessage.Response.``Update`

### Inventory

class `Plugin.SettingsResponseMessage.Response.``Inventory`
  `node`

    A required value of type message

  `info`

    A required value of type message

  `value`

    A optional value of type message

### Control

class `Plugin.SettingsResponseMessage.Response.``Control`

### Status

class `Plugin.SettingsResponseMessage.Response.``Status`
  `context`

    A optional value of type string

  `type`

    A optional value of type string

  `has_changed`

    A optional value of type bool

## LogEntry

class `Plugin.``LogEntry`

  LogEntry is used to log status information.

  `entry`

    A repeated value of type message

  Nested messages

  - `Plugin.LogEntry.Entry`

### Entry

class `Plugin.LogEntry.``Entry`
  `Level`

    Possible values | Id
    --- | ---
    LOG_DEBUG | 500
    LOG_INFO | 150
    LOG_WARNING | 50
    LOG_ERROR | 10
    LOG_CRITICAL | 1

  `level`

    A required value of type enum

  `sender`

    A optional value of type string

  `file`

    A optional value of type string

  `line`

    A optional value of type int32

  `message`

    A optional value of type string

  `date`

    A optional value of type int32

comments powered by Disqus