enrobie.plugins.nagios package#

Subpackages#

Submodules#

enrobie.plugins.nagios.ainswer module#

Functions and routines associated with Enasis Network Chatting Robie.

This file is part of Enasis Network software eco-system. Distribution is permitted, for more information consult the project license file.

async enrobie.plugins.nagios.ainswer.nagios_current(context: RunContext[AinswerDepends]) list[NagiosCurrentRecords][source]#

Return the current status for infratstructure in Nagios.

Note

This tool will return status values from Nagios Core. Nagios is a network and system monitoring platform.

Returns:

Current status for infratstructure in Nagios.

enrobie.plugins.nagios.current module#

Functions and routines associated with Enasis Network Chatting Robie.

This file is part of Enasis Network software eco-system. Distribution is permitted, for more information consult the project license file.

class enrobie.plugins.nagios.current.NagiosCurrent(plugin: NagiosPlugin)[source]#

Bases: object

Collect the information using the upstream API endpoint.

Parameters:

plugin – Plugin class instance for Chatting Robie.

property hosts: list[NagiosCurrentHost]#

Return the response from upstream API endpoint request.

Returns:

Response from upstream API endpoint request.

property records: NagiosCurrentRecords#

Return the response from upstream API endpoint request.

Returns:

Response from upstream API endpoint request.

request(item: Literal['host', 'service']) Response[source]#

Return the response from upstream API endpoint request.

Parameters:

item – Determine which items will be enumerated.

Returns:

Response from upstream API endpoint request.

property services: list[NagiosCurrentService]#

Return the response from upstream API endpoint request.

Returns:

Response from upstream API endpoint request.

property summary: NagiosCurrentSummary#

Return the response from upstream API endpoint request.

Returns:

Response from upstream API endpoint request.

pydantic model enrobie.plugins.nagios.current.NagiosCurrentHost[source]#

Bases: NagiosCurrentObject

Information regarding the item within Nagios monitoring.

Show JSON schema
{
   "title": "NagiosCurrentHost",
   "description": "Information regarding the item within Nagios monitoring.",
   "type": "object",
   "properties": {
      "name": {
         "description": "Name of the object in Nagios",
         "minLength": 1,
         "title": "Name",
         "type": "string"
      },
      "status": {
         "description": "Current status for the object",
         "minLength": 1,
         "title": "Status",
         "type": "string"
      },
      "latest": {
         "description": "When the latest event occurred",
         "minLength": 1,
         "title": "Latest",
         "type": "string"
      },
      "downtime": {
         "description": "Whether in scheduled downtime",
         "title": "Downtime",
         "type": "boolean"
      },
      "handled": {
         "description": "Whether or not if was handled",
         "title": "Handled",
         "type": "boolean"
      }
   },
   "additionalProperties": false,
   "required": [
      "name",
      "status",
      "latest",
      "downtime",
      "handled"
   ]
}

Config:
  • extra: str = forbid

Fields:

pydantic model enrobie.plugins.nagios.current.NagiosCurrentObject[source]#

Bases: BaseModel

Information regarding the item within Nagios monitoring.

Show JSON schema
{
   "title": "NagiosCurrentObject",
   "description": "Information regarding the item within Nagios monitoring.",
   "type": "object",
   "properties": {
      "name": {
         "description": "Name of the object in Nagios",
         "minLength": 1,
         "title": "Name",
         "type": "string"
      },
      "status": {
         "description": "Current status for the object",
         "minLength": 1,
         "title": "Status",
         "type": "string"
      },
      "latest": {
         "description": "When the latest event occurred",
         "minLength": 1,
         "title": "Latest",
         "type": "string"
      },
      "downtime": {
         "description": "Whether in scheduled downtime",
         "title": "Downtime",
         "type": "boolean"
      },
      "handled": {
         "description": "Whether or not if was handled",
         "title": "Handled",
         "type": "boolean"
      }
   },
   "additionalProperties": false,
   "required": [
      "name",
      "status",
      "latest",
      "downtime",
      "handled"
   ]
}

Config:
  • extra: str = forbid

Fields:
field downtime: Annotated[bool, FieldInfo(annotation=NoneType, required=True, description='Whether in scheduled downtime')] [Required]#

Whether in scheduled downtime

field handled: Annotated[bool, FieldInfo(annotation=NoneType, required=True, description='Whether or not if was handled')] [Required]#

Whether or not if was handled

field latest: Annotated[str, FieldInfo(annotation=NoneType, required=True, description='When the latest event occurred', metadata=[MinLen(min_length=1)])] [Required]#

When the latest event occurred

Constraints:
  • min_length = 1

field name: Annotated[str, FieldInfo(annotation=NoneType, required=True, description='Name of the object in Nagios', metadata=[MinLen(min_length=1)])] [Required]#

Name of the object in Nagios

Constraints:
  • min_length = 1

field status: Annotated[str, FieldInfo(annotation=NoneType, required=True, description='Current status for the object', metadata=[MinLen(min_length=1)])] [Required]#

Current status for the object

Constraints:
  • min_length = 1

pydantic model enrobie.plugins.nagios.current.NagiosCurrentRecords[source]#

Bases: BaseModel

Summarized information regarding the items within Nagios.

Show JSON schema
{
   "title": "NagiosCurrentRecords",
   "description": "Summarized information regarding the items within Nagios.",
   "type": "object",
   "properties": {
      "hosts": {
         "description": "System related status values",
         "items": {
            "$ref": "#/$defs/NagiosCurrentHost"
         },
         "title": "Hosts",
         "type": "array"
      },
      "services": {
         "description": "Service related status values",
         "items": {
            "$ref": "#/$defs/NagiosCurrentService"
         },
         "title": "Services",
         "type": "array"
      }
   },
   "$defs": {
      "NagiosCurrentHost": {
         "additionalProperties": false,
         "description": "Information regarding the item within Nagios monitoring.",
         "properties": {
            "name": {
               "description": "Name of the object in Nagios",
               "minLength": 1,
               "title": "Name",
               "type": "string"
            },
            "status": {
               "description": "Current status for the object",
               "minLength": 1,
               "title": "Status",
               "type": "string"
            },
            "latest": {
               "description": "When the latest event occurred",
               "minLength": 1,
               "title": "Latest",
               "type": "string"
            },
            "downtime": {
               "description": "Whether in scheduled downtime",
               "title": "Downtime",
               "type": "boolean"
            },
            "handled": {
               "description": "Whether or not if was handled",
               "title": "Handled",
               "type": "boolean"
            }
         },
         "required": [
            "name",
            "status",
            "latest",
            "downtime",
            "handled"
         ],
         "title": "NagiosCurrentHost",
         "type": "object"
      },
      "NagiosCurrentService": {
         "additionalProperties": false,
         "description": "Information regarding the item within Nagios monitoring.",
         "properties": {
            "name": {
               "description": "Name of the object in Nagios",
               "minLength": 1,
               "title": "Name",
               "type": "string"
            },
            "status": {
               "description": "Current status for the object",
               "minLength": 1,
               "title": "Status",
               "type": "string"
            },
            "latest": {
               "description": "When the latest event occurred",
               "minLength": 1,
               "title": "Latest",
               "type": "string"
            },
            "downtime": {
               "description": "Whether in scheduled downtime",
               "title": "Downtime",
               "type": "boolean"
            },
            "handled": {
               "description": "Whether or not if was handled",
               "title": "Handled",
               "type": "boolean"
            },
            "host": {
               "description": "Host the service is related to",
               "minLength": 1,
               "title": "Host",
               "type": "string"
            }
         },
         "required": [
            "name",
            "status",
            "latest",
            "downtime",
            "handled",
            "host"
         ],
         "title": "NagiosCurrentService",
         "type": "object"
      }
   },
   "additionalProperties": false,
   "required": [
      "hosts",
      "services"
   ]
}

Config:
  • extra: str = forbid

Fields:
field hosts: Annotated[list[NagiosCurrentHost], FieldInfo(annotation=NoneType, required=True, description='System related status values')] [Required]#

System related status values

field services: Annotated[list[NagiosCurrentService], FieldInfo(annotation=NoneType, required=True, description='Service related status values')] [Required]#

Service related status values

pydantic model enrobie.plugins.nagios.current.NagiosCurrentService[source]#

Bases: NagiosCurrentObject

Information regarding the item within Nagios monitoring.

Show JSON schema
{
   "title": "NagiosCurrentService",
   "description": "Information regarding the item within Nagios monitoring.",
   "type": "object",
   "properties": {
      "name": {
         "description": "Name of the object in Nagios",
         "minLength": 1,
         "title": "Name",
         "type": "string"
      },
      "status": {
         "description": "Current status for the object",
         "minLength": 1,
         "title": "Status",
         "type": "string"
      },
      "latest": {
         "description": "When the latest event occurred",
         "minLength": 1,
         "title": "Latest",
         "type": "string"
      },
      "downtime": {
         "description": "Whether in scheduled downtime",
         "title": "Downtime",
         "type": "boolean"
      },
      "handled": {
         "description": "Whether or not if was handled",
         "title": "Handled",
         "type": "boolean"
      },
      "host": {
         "description": "Host the service is related to",
         "minLength": 1,
         "title": "Host",
         "type": "string"
      }
   },
   "additionalProperties": false,
   "required": [
      "name",
      "status",
      "latest",
      "downtime",
      "handled",
      "host"
   ]
}

Config:
  • extra: str = forbid

Fields:
field host: Annotated[str, FieldInfo(annotation=NoneType, required=True, description='Host the service is related to', metadata=[MinLen(min_length=1)])] [Required]#

Host the service is related to

Constraints:
  • min_length = 1

pydantic model enrobie.plugins.nagios.current.NagiosCurrentSummary[source]#

Bases: BaseModel

Summarized information regarding the items within Nagios.

Show JSON schema
{
   "title": "NagiosCurrentSummary",
   "description": "Summarized information regarding the items within Nagios.",
   "type": "object",
   "properties": {
      "service_normal": {
         "description": "Object count in normal state",
         "minimum": 0,
         "title": "Service Normal",
         "type": "integer"
      },
      "service_issues": {
         "description": "Object count in issue state",
         "minimum": 0,
         "title": "Service Issues",
         "type": "integer"
      },
      "host_normal": {
         "description": "Object count in normal state",
         "minimum": 0,
         "title": "Host Normal",
         "type": "integer"
      },
      "host_issues": {
         "description": "Object count in issue state",
         "minimum": 0,
         "title": "Host Issues",
         "type": "integer"
      }
   },
   "additionalProperties": false,
   "required": [
      "service_normal",
      "service_issues",
      "host_normal",
      "host_issues"
   ]
}

Config:
  • extra: str = forbid

Fields:
field host_issues: Annotated[int, FieldInfo(annotation=NoneType, required=True, description='Object count in issue state', metadata=[Ge(ge=0)])] [Required]#

Object count in issue state

Constraints:
  • ge = 0

field host_normal: Annotated[int, FieldInfo(annotation=NoneType, required=True, description='Object count in normal state', metadata=[Ge(ge=0)])] [Required]#

Object count in normal state

Constraints:
  • ge = 0

field service_issues: Annotated[int, FieldInfo(annotation=NoneType, required=True, description='Object count in issue state', metadata=[Ge(ge=0)])] [Required]#

Object count in issue state

Constraints:
  • ge = 0

field service_normal: Annotated[int, FieldInfo(annotation=NoneType, required=True, description='Object count in normal state', metadata=[Ge(ge=0)])] [Required]#

Object count in normal state

Constraints:
  • ge = 0

enrobie.plugins.nagios.helpers module#

Functions and routines associated with Enasis Network Chatting Robie.

This file is part of Enasis Network software eco-system. Distribution is permitted, for more information consult the project license file.

enrobie.plugins.nagios.helpers.composedsc(plugin: NagiosPlugin, mitem: RobieMessage) None[source]#

Construct and format message for related chat platform.

Parameters:
  • plugin – Plugin class instance for Chatting Robie.

  • mitem – Item containing information for operation.

enrobie.plugins.nagios.helpers.composeirc(plugin: NagiosPlugin, mitem: RobieMessage) None[source]#

Construct and format message for related chat platform.

Parameters:
  • plugin – Plugin class instance for Chatting Robie.

  • mitem – Item containing information for operation.

enrobie.plugins.nagios.helpers.composemtm(plugin: NagiosPlugin, mitem: RobieMessage) None[source]#

Construct and format message for related chat platform.

Parameters:
  • plugin – Plugin class instance for Chatting Robie.

  • mitem – Item containing information for operation.

enrobie.plugins.nagios.params module#

Functions and routines associated with Enasis Network Chatting Robie.

This file is part of Enasis Network software eco-system. Distribution is permitted, for more information consult the project license file.

pydantic model enrobie.plugins.nagios.params.NagiosPluginCommandParams[source]#

Bases: RobieParamsModel

Process and validate the Robie configuration parameters.

Show JSON schema
{
   "title": "NagiosPluginCommandParams",
   "description": "Process and validate the Robie configuration parameters.",
   "type": "object",
   "properties": {
      "irc": {
         "default": "!nagios",
         "description": "Command name for chat platform",
         "minLength": 2,
         "title": "Irc",
         "type": "string"
      },
      "dsc": {
         "default": "!nagios",
         "description": "Command name for chat platform",
         "minLength": 2,
         "title": "Dsc",
         "type": "string"
      },
      "mtm": {
         "default": "!nagios",
         "description": "Command name for chat platform",
         "minLength": 2,
         "title": "Mtm",
         "type": "string"
      }
   },
   "additionalProperties": false
}

Config:
  • extra: str = forbid

Fields:
field dsc: Annotated[str, FieldInfo(annotation=NoneType, required=False, default='!nagios', description='Command name for chat platform', metadata=[MinLen(min_length=2)])] = '!nagios'#

Command name for chat platform

Constraints:
  • min_length = 2

field irc: Annotated[str, FieldInfo(annotation=NoneType, required=False, default='!nagios', description='Command name for chat platform', metadata=[MinLen(min_length=2)])] = '!nagios'#

Command name for chat platform

Constraints:
  • min_length = 2

field mtm: Annotated[str, FieldInfo(annotation=NoneType, required=False, default='!nagios', description='Command name for chat platform', metadata=[MinLen(min_length=2)])] = '!nagios'#

Command name for chat platform

Constraints:
  • min_length = 2

pydantic model enrobie.plugins.nagios.params.NagiosPluginParams[source]#

Bases: RobiePluginParams

Process and validate the Robie configuration parameters.

Show JSON schema
{
   "title": "NagiosPluginParams",
   "description": "Process and validate the Robie configuration parameters.",
   "type": "object",
   "properties": {
      "enable": {
         "default": false,
         "description": "Determine whether child enabled",
         "title": "Enable",
         "type": "boolean"
      },
      "locate": {
         "anyOf": [
            {
               "minLength": 1,
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "description": "For which plugin are parameters",
         "examples": [
            "enrobie.plugins.AinswerPlugin",
            "enrobie.plugins.AutoJoinPlugin",
            "enrobie.plugins.AutoNickPlugin",
            "enrobie.plugins.StatusPlugin"
         ],
         "title": "Locate"
      },
      "trusted": {
         "anyOf": [
            {
               "items": {
                  "type": "string"
               },
               "minItems": 1,
               "type": "array"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "description": "Users are trusted by the plugin",
         "title": "Trusted"
      },
      "command": {
         "$ref": "#/$defs/NagiosPluginCommandParams",
         "description": "Command name per chat platform"
      },
      "restful": {
         "description": "Where to find the RESTful API",
         "examples": [
            "http://localhost:8420"
         ],
         "minLength": 1,
         "title": "Restful",
         "type": "string"
      },
      "username": {
         "anyOf": [
            {
               "minLength": 1,
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "description": "Authenticate with the service",
         "title": "Username"
      },
      "password": {
         "anyOf": [
            {
               "minLength": 1,
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "description": "Authenticate with the service",
         "title": "Password"
      },
      "timeout": {
         "default": 30,
         "description": "Timeout connecting to server",
         "maximum": 300,
         "minimum": 1,
         "title": "Timeout",
         "type": "integer"
      },
      "ssl_verify": {
         "default": true,
         "description": "Verify the ceritifcate valid",
         "title": "Ssl Verify",
         "type": "boolean"
      },
      "ssl_capem": {
         "anyOf": [
            {
               "minLength": 1,
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "description": "Verify the ceritifcate valid",
         "title": "Ssl Capem"
      },
      "clients": {
         "description": "List of clients to enable plugin",
         "items": {
            "type": "string"
         },
         "minItems": 1,
         "title": "Clients",
         "type": "array"
      },
      "status": {
         "$ref": "#/$defs/StatusPluginIconParams",
         "description": "Icon used per chat platform"
      }
   },
   "$defs": {
      "NagiosPluginCommandParams": {
         "additionalProperties": false,
         "description": "Process and validate the Robie configuration parameters.",
         "properties": {
            "irc": {
               "default": "!nagios",
               "description": "Command name for chat platform",
               "minLength": 2,
               "title": "Irc",
               "type": "string"
            },
            "dsc": {
               "default": "!nagios",
               "description": "Command name for chat platform",
               "minLength": 2,
               "title": "Dsc",
               "type": "string"
            },
            "mtm": {
               "default": "!nagios",
               "description": "Command name for chat platform",
               "minLength": 2,
               "title": "Mtm",
               "type": "string"
            }
         },
         "title": "NagiosPluginCommandParams",
         "type": "object"
      },
      "StatusPluginIconParams": {
         "additionalProperties": false,
         "description": "Contain information for constructing the chat messages.",
         "properties": {
            "irc": {
               "anyOf": [
                  {
                     "minLength": 1,
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "Icon used for the chat platform",
               "title": "Irc"
            },
            "dsc": {
               "anyOf": [
                  {
                     "minLength": 1,
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "Icon used for the chat platform",
               "title": "Dsc"
            },
            "mtm": {
               "anyOf": [
                  {
                     "minLength": 1,
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "Icon used for the chat platform",
               "title": "Mtm"
            }
         },
         "title": "StatusPluginIconParams",
         "type": "object"
      }
   },
   "additionalProperties": false,
   "required": [
      "restful",
      "clients"
   ]
}

Config:
  • extra: str = forbid

Fields:
field clients: Annotated[list[str], FieldInfo(annotation=NoneType, required=True, description='List of clients to enable plugin', metadata=[MinLen(min_length=1)])] [Required]#

List of clients to enable plugin

Constraints:
  • min_length = 1

field command: Annotated[NagiosPluginCommandParams, FieldInfo(annotation=NoneType, required=False, default_factory=NagiosPluginCommandParams, description='Command name per chat platform')] [Optional]#

Command name per chat platform

field enable: Annotated[bool, Field(False, description='Determine whether child enabled')] = False#

Determine whether child enabled

field locate: Annotated[str | None, Field(None, description='For which plugin are parameters', examples=['enrobie.plugins.AinswerPlugin', 'enrobie.plugins.AutoJoinPlugin', 'enrobie.plugins.AutoNickPlugin', 'enrobie.plugins.StatusPlugin'], min_length=1)] = None#

For which plugin are parameters

Constraints:
  • min_length = 1

field password: Annotated[str | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Authenticate with the service', metadata=[MinLen(min_length=1)])] = None#

Authenticate with the service

Constraints:
  • min_length = 1

field restful: Annotated[str, FieldInfo(annotation=NoneType, required=True, description='Where to find the RESTful API', examples=['http://localhost:8420'], metadata=[MinLen(min_length=1)])] [Required]#

Where to find the RESTful API

Constraints:
  • min_length = 1

field ssl_capem: Annotated[str | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Verify the ceritifcate valid', metadata=[MinLen(min_length=1)])] = None#

Verify the ceritifcate valid

Constraints:
  • min_length = 1

field ssl_verify: Annotated[bool, FieldInfo(annotation=NoneType, required=False, default=True, description='Verify the ceritifcate valid')] = True#

Verify the ceritifcate valid

field status: Annotated[StatusPluginIconParams, FieldInfo(annotation=NoneType, required=False, default_factory=StatusPluginIconParams, description='Icon used per chat platform')] [Optional]#

Icon used per chat platform

field timeout: Annotated[int, FieldInfo(annotation=NoneType, required=False, default=30, description='Timeout connecting to server', metadata=[Ge(ge=1), Le(le=300)])] = 30#

Timeout connecting to server

Constraints:
  • ge = 1

  • le = 300

field trusted: Annotated[list[str] | None, Field(None, description='Users are trusted by the plugin', min_length=1)] = None#

Users are trusted by the plugin

Constraints:
  • min_length = 1

field username: Annotated[str | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Authenticate with the service', metadata=[MinLen(min_length=1)])] = None#

Authenticate with the service

Constraints:
  • min_length = 1

enrobie.plugins.nagios.plugin module#

Functions and routines associated with Enasis Network Chatting Robie.

This file is part of Enasis Network software eco-system. Distribution is permitted, for more information consult the project license file.

class enrobie.plugins.nagios.plugin.NagiosPlugin(robie: Robie, name: str, params: RobieChildParams)[source]#

Bases: RobiePlugin

Integrate with the Robie routine and perform operations.

Note

This plugin allows for connecting to Nagios Console.

ainswer() list[Callable[[...], Any]][source]#

Return the Ainswer tools that are related to the plugin.

Returns:

Ainswer tools that are related to the plugin.

property current: NagiosCurrent#

Return the value for the attribute from class instance.

Returns:

Value for the attribute from class instance.

operate() None[source]#

Perform the operation related to Robie service threads.

Parameters:

thread – Child class instance for Chatting Robie.

property params: NagiosPluginParams#

Return the Pydantic model containing the configuration.

Returns:

Pydantic model containing the configuration.

classmethod schema() Type[NagiosPluginParams][source]#

Return the configuration parameters relevant for class.

Returns:

Configuration parameters relevant for class.

validate() None[source]#

Perform advanced validation on the parameters provided.

Module contents#

Functions and routines associated with Enasis Network Chatting Robie.

This file is part of Enasis Network software eco-system. Distribution is permitted, for more information consult the project license file.

class enrobie.plugins.nagios.NagiosPlugin(robie: Robie, name: str, params: RobieChildParams)[source]#

Bases: RobiePlugin

Integrate with the Robie routine and perform operations.

Note

This plugin allows for connecting to Nagios Console.

ainswer() list[Callable[[...], Any]][source]#

Return the Ainswer tools that are related to the plugin.

Returns:

Ainswer tools that are related to the plugin.

property current: NagiosCurrent#

Return the value for the attribute from class instance.

Returns:

Value for the attribute from class instance.

operate() None[source]#

Perform the operation related to Robie service threads.

Parameters:

thread – Child class instance for Chatting Robie.

property params: NagiosPluginParams#

Return the Pydantic model containing the configuration.

Returns:

Pydantic model containing the configuration.

classmethod schema() Type[NagiosPluginParams][source]#

Return the configuration parameters relevant for class.

Returns:

Configuration parameters relevant for class.

validate() None[source]#

Perform advanced validation on the parameters provided.

pydantic model enrobie.plugins.nagios.NagiosPluginParams[source]#

Bases: RobiePluginParams

Process and validate the Robie configuration parameters.

Show JSON schema
{
   "title": "NagiosPluginParams",
   "description": "Process and validate the Robie configuration parameters.",
   "type": "object",
   "properties": {
      "enable": {
         "default": false,
         "description": "Determine whether child enabled",
         "title": "Enable",
         "type": "boolean"
      },
      "locate": {
         "anyOf": [
            {
               "minLength": 1,
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "description": "For which plugin are parameters",
         "examples": [
            "enrobie.plugins.AinswerPlugin",
            "enrobie.plugins.AutoJoinPlugin",
            "enrobie.plugins.AutoNickPlugin",
            "enrobie.plugins.StatusPlugin"
         ],
         "title": "Locate"
      },
      "trusted": {
         "anyOf": [
            {
               "items": {
                  "type": "string"
               },
               "minItems": 1,
               "type": "array"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "description": "Users are trusted by the plugin",
         "title": "Trusted"
      },
      "command": {
         "$ref": "#/$defs/NagiosPluginCommandParams",
         "description": "Command name per chat platform"
      },
      "restful": {
         "description": "Where to find the RESTful API",
         "examples": [
            "http://localhost:8420"
         ],
         "minLength": 1,
         "title": "Restful",
         "type": "string"
      },
      "username": {
         "anyOf": [
            {
               "minLength": 1,
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "description": "Authenticate with the service",
         "title": "Username"
      },
      "password": {
         "anyOf": [
            {
               "minLength": 1,
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "description": "Authenticate with the service",
         "title": "Password"
      },
      "timeout": {
         "default": 30,
         "description": "Timeout connecting to server",
         "maximum": 300,
         "minimum": 1,
         "title": "Timeout",
         "type": "integer"
      },
      "ssl_verify": {
         "default": true,
         "description": "Verify the ceritifcate valid",
         "title": "Ssl Verify",
         "type": "boolean"
      },
      "ssl_capem": {
         "anyOf": [
            {
               "minLength": 1,
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "description": "Verify the ceritifcate valid",
         "title": "Ssl Capem"
      },
      "clients": {
         "description": "List of clients to enable plugin",
         "items": {
            "type": "string"
         },
         "minItems": 1,
         "title": "Clients",
         "type": "array"
      },
      "status": {
         "$ref": "#/$defs/StatusPluginIconParams",
         "description": "Icon used per chat platform"
      }
   },
   "$defs": {
      "NagiosPluginCommandParams": {
         "additionalProperties": false,
         "description": "Process and validate the Robie configuration parameters.",
         "properties": {
            "irc": {
               "default": "!nagios",
               "description": "Command name for chat platform",
               "minLength": 2,
               "title": "Irc",
               "type": "string"
            },
            "dsc": {
               "default": "!nagios",
               "description": "Command name for chat platform",
               "minLength": 2,
               "title": "Dsc",
               "type": "string"
            },
            "mtm": {
               "default": "!nagios",
               "description": "Command name for chat platform",
               "minLength": 2,
               "title": "Mtm",
               "type": "string"
            }
         },
         "title": "NagiosPluginCommandParams",
         "type": "object"
      },
      "StatusPluginIconParams": {
         "additionalProperties": false,
         "description": "Contain information for constructing the chat messages.",
         "properties": {
            "irc": {
               "anyOf": [
                  {
                     "minLength": 1,
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "Icon used for the chat platform",
               "title": "Irc"
            },
            "dsc": {
               "anyOf": [
                  {
                     "minLength": 1,
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "Icon used for the chat platform",
               "title": "Dsc"
            },
            "mtm": {
               "anyOf": [
                  {
                     "minLength": 1,
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "Icon used for the chat platform",
               "title": "Mtm"
            }
         },
         "title": "StatusPluginIconParams",
         "type": "object"
      }
   },
   "additionalProperties": false,
   "required": [
      "restful",
      "clients"
   ]
}

Config:
  • extra: str = forbid

Fields:
field clients: Annotated[list[str], FieldInfo(annotation=NoneType, required=True, description='List of clients to enable plugin', metadata=[MinLen(min_length=1)])] [Required]#

List of clients to enable plugin

Constraints:
  • min_length = 1

field command: Annotated[NagiosPluginCommandParams, FieldInfo(annotation=NoneType, required=False, default_factory=NagiosPluginCommandParams, description='Command name per chat platform')] [Optional]#

Command name per chat platform

field enable: Annotated[bool, Field(False, description='Determine whether child enabled')] = False#

Determine whether child enabled

field locate: Annotated[str | None, Field(None, description='For which plugin are parameters', examples=['enrobie.plugins.AinswerPlugin', 'enrobie.plugins.AutoJoinPlugin', 'enrobie.plugins.AutoNickPlugin', 'enrobie.plugins.StatusPlugin'], min_length=1)] = None#

For which plugin are parameters

Constraints:
  • min_length = 1

field password: Annotated[str | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Authenticate with the service', metadata=[MinLen(min_length=1)])] = None#

Authenticate with the service

Constraints:
  • min_length = 1

field restful: Annotated[str, FieldInfo(annotation=NoneType, required=True, description='Where to find the RESTful API', examples=['http://localhost:8420'], metadata=[MinLen(min_length=1)])] [Required]#

Where to find the RESTful API

Constraints:
  • min_length = 1

field ssl_capem: Annotated[str | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Verify the ceritifcate valid', metadata=[MinLen(min_length=1)])] = None#

Verify the ceritifcate valid

Constraints:
  • min_length = 1

field ssl_verify: Annotated[bool, FieldInfo(annotation=NoneType, required=False, default=True, description='Verify the ceritifcate valid')] = True#

Verify the ceritifcate valid

field status: Annotated[StatusPluginIconParams, FieldInfo(annotation=NoneType, required=False, default_factory=StatusPluginIconParams, description='Icon used per chat platform')] [Optional]#

Icon used per chat platform

field timeout: Annotated[int, FieldInfo(annotation=NoneType, required=False, default=30, description='Timeout connecting to server', metadata=[Ge(ge=1), Le(le=300)])] = 30#

Timeout connecting to server

Constraints:
  • ge = 1

  • le = 300

field trusted: Annotated[list[str] | None, Field(None, description='Users are trusted by the plugin', min_length=1)] = None#

Users are trusted by the plugin

Constraints:
  • min_length = 1

field username: Annotated[str | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Authenticate with the service', metadata=[MinLen(min_length=1)])] = None#

Authenticate with the service

Constraints:
  • min_length = 1