Enasis Network Chatting Robie#

Configuration Container#

class enrobie.robie.RobieConfig(sargs: dict[str, Any] | None = None, files: str | Path | list[str | Path] | tuple[str | Path] | set[str] | None = None, cargs: dict[str, Any] | None = None)[source]

Bases: Config

Contain the configurations from the arguments and files.

Parameters:
  • sargs – Additional arguments on the command line.

  • files – Complete or relative path to config files.

  • cargs – Configuration arguments in dictionary form, which will override contents from the config files.

property config: dict[str, Any]

Return the configuration dumped from the Pydantic model.

Warning

This method completely overrides the parent but is based on that code, would be unfortunate if upstream changes meant this breaks or breaks something else.

Returns:

Configuration dumped from the Pydantic model.

property inserts: dict[Literal['clients', 'plugins'], dict[str, Any]]

Return the value for the attribute from class instance.

Returns:

Value for the attribute from class instance.

merge_params() None[source]

Update the Pydantic model containing the configuration.

property params: RobieParams

Return the Pydantic model containing the configuration.

Warning

This method completely overrides the parent but is based on that code, would be unfortunate if upstream changes meant this breaks or breaks something else.

Returns:

Pydantic model containing the configuration.

register(name: str, *, client: Type[RobieClientParams] | None = None, plugin: Type[RobiePluginParams] | None = None, source: dict[str, Any] | None = None, merge: bool = True) None[source]

Register the plugin parameters for parameter processing.

Parameters:
  • name – Name of the object within the Robie config.

  • client – Class definition for the instantiation.

  • plugin – Class definition for the instantiation.

  • source – Source for the parameters instantiation.

  • merge – Reprocess all parameters including added.

register_locate() None[source]

Register the plugin parameters for parameter processing.

Parameters Container#

pydantic model enrobie.robie.params.RobieParams[source]

Bases: Params

Process and validate the core configuration parameters.

Show JSON schema
{
   "title": "RobieParams",
   "description": "Process and validate the core configuration parameters.",
   "type": "object",
   "properties": {
      "enconfig": {
         "anyOf": [
            {
               "$ref": "#/$defs/ConfigParams"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "description": "Parameters for Config instance"
      },
      "enlogger": {
         "anyOf": [
            {
               "$ref": "#/$defs/LoggerParams"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "description": "Parameters for Logger instance"
      },
      "encrypts": {
         "anyOf": [
            {
               "$ref": "#/$defs/CryptsParams"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "description": "Parameters for Crypts instance"
      },
      "database": {
         "default": "sqlite:///:memory:",
         "description": "Database connection string",
         "minLength": 1,
         "title": "Database",
         "type": "string"
      },
      "printer": {
         "$ref": "#/$defs/RobiePrinterParams",
         "description": "Print messages to console"
      },
      "service": {
         "$ref": "#/$defs/RobieServiceParams",
         "description": "Parameters for Robie Service"
      },
      "clients": {
         "anyOf": [
            {
               "additionalProperties": {
                  "$ref": "#/$defs/RobieClientParams"
               },
               "minProperties": 1,
               "type": "object"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "description": "Parameters for Robie clients",
         "title": "Clients"
      },
      "plugins": {
         "anyOf": [
            {
               "additionalProperties": {
                  "$ref": "#/$defs/RobiePluginParams"
               },
               "minProperties": 1,
               "type": "object"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "description": "Parameters for Robie plugins",
         "title": "Plugins"
      },
      "persons": {
         "anyOf": [
            {
               "additionalProperties": {
                  "$ref": "#/$defs/RobiePersonParams"
               },
               "minProperties": 1,
               "type": "object"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "description": "Parameters for Robie persons",
         "title": "Persons"
      }
   },
   "$defs": {
      "ConfigParams": {
         "additionalProperties": false,
         "description": "Process and validate the core configuration parameters.",
         "properties": {
            "paths": {
               "anyOf": [
                  {
                     "items": {
                        "type": "string"
                     },
                     "minItems": 1,
                     "type": "array"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "Location of configuration files",
               "title": "Paths"
            }
         },
         "title": "ConfigParams",
         "type": "object"
      },
      "CryptParams": {
         "additionalProperties": false,
         "description": "Process and validate the core configuration parameters.",
         "properties": {
            "phrase": {
               "description": "Passphrase for the operations",
               "minLength": 1,
               "title": "Phrase",
               "type": "string"
            }
         },
         "required": [
            "phrase"
         ],
         "title": "CryptParams",
         "type": "object"
      },
      "CryptsParams": {
         "additionalProperties": false,
         "description": "Process and validate the core configuration parameters.",
         "properties": {
            "phrases": {
               "additionalProperties": {
                  "$ref": "#/$defs/CryptParams"
               },
               "description": "Passphrases for the operations",
               "minProperties": 0,
               "title": "Phrases",
               "type": "object"
            }
         },
         "required": [
            "phrases"
         ],
         "title": "CryptsParams",
         "type": "object"
      },
      "LoggerParams": {
         "additionalProperties": false,
         "description": "Process and validate the core configuration parameters.",
         "properties": {
            "stdo_level": {
               "anyOf": [
                  {
                     "enum": [
                        "critical",
                        "debug",
                        "error",
                        "info",
                        "warning"
                     ],
                     "minLength": 1,
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "Minimum logging message level",
               "title": "Stdo Level"
            },
            "file_level": {
               "anyOf": [
                  {
                     "enum": [
                        "critical",
                        "debug",
                        "error",
                        "info",
                        "warning"
                     ],
                     "minLength": 1,
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "Minimum logging message level",
               "title": "File Level"
            },
            "file_path": {
               "anyOf": [
                  {
                     "minLength": 1,
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "Enable output to the log file",
               "title": "File Path"
            }
         },
         "title": "LoggerParams",
         "type": "object"
      },
      "RobieClientParams": {
         "additionalProperties": false,
         "description": "Process and validate the Robie configuration parameters.",
         "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 client are parameters",
               "examples": [
                  "enrobie.clients.DSCClient",
                  "enrobie.clients.IRCClient",
                  "enrobie.clients.MTMClient"
               ],
               "title": "Locate"
            }
         },
         "title": "RobieClientParams",
         "type": "object"
      },
      "RobiePersonMatchParams": {
         "additionalProperties": false,
         "description": "Process and validate the Robie configuration parameters.",
         "properties": {
            "client": {
               "description": "Client where the user exists",
               "minLength": 1,
               "title": "Client",
               "type": "string"
            },
            "match": {
               "description": "Values client uses to identify",
               "items": {
                  "type": "string"
               },
               "minItems": 1,
               "title": "Match",
               "type": "array"
            }
         },
         "required": [
            "client",
            "match"
         ],
         "title": "RobiePersonMatchParams",
         "type": "object"
      },
      "RobiePersonParams": {
         "additionalProperties": false,
         "description": "Process and validate the Robie configuration parameters.",
         "properties": {
            "enable": {
               "default": false,
               "description": "Determine whether child enabled",
               "title": "Enable",
               "type": "boolean"
            },
            "first": {
               "anyOf": [
                  {
                     "minLength": 1,
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "Additional optional information",
               "title": "First"
            },
            "last": {
               "anyOf": [
                  {
                     "minLength": 1,
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "Additional optional information",
               "title": "Last"
            },
            "about": {
               "anyOf": [
                  {
                     "minLength": 1,
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "Additional optional information",
               "title": "About"
            },
            "matches": {
               "description": "How the user will be identified",
               "items": {
                  "$ref": "#/$defs/RobiePersonMatchParams"
               },
               "title": "Matches",
               "type": "array"
            },
            "weight": {
               "default": 50,
               "description": "Determine order of precedence",
               "maximum": 100,
               "minimum": 1,
               "title": "Weight",
               "type": "integer"
            }
         },
         "required": [
            "matches"
         ],
         "title": "RobiePersonParams",
         "type": "object"
      },
      "RobiePluginParams": {
         "additionalProperties": false,
         "description": "Process and validate the Robie configuration parameters.",
         "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"
            }
         },
         "title": "RobiePluginParams",
         "type": "object"
      },
      "RobiePrinterParams": {
         "additionalProperties": false,
         "description": "Process and validate the Robie configuration parameters.",
         "properties": {
            "message": {
               "default": false,
               "description": "Print the messages to console",
               "title": "Message",
               "type": "boolean"
            },
            "command": {
               "default": false,
               "description": "Print the commands to console",
               "title": "Command",
               "type": "boolean"
            }
         },
         "title": "RobiePrinterParams",
         "type": "object"
      },
      "RobieServiceParams": {
         "additionalProperties": false,
         "description": "Process and validate the Robie configuration parameters.",
         "properties": {
            "respite": {
               "$ref": "#/$defs/RobieServiceRespiteParams",
               "description": "When operates are performed"
            }
         },
         "title": "RobieServiceParams",
         "type": "object"
      },
      "RobieServiceRespiteParams": {
         "additionalProperties": false,
         "description": "Process and validate the Robie configuration parameters.",
         "properties": {
            "health": {
               "default": 3,
               "description": "How often health is checked",
               "maximum": 15,
               "minimum": 1,
               "title": "Health",
               "type": "integer"
            }
         },
         "title": "RobieServiceRespiteParams",
         "type": "object"
      }
   },
   "additionalProperties": false
}

Config:
  • extra: str = forbid

Fields:
field clients: Annotated[dict[str, RobieClientParams] | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Parameters for Robie clients', metadata=[MinLen(min_length=1)])] = None

Parameters for Robie clients

Constraints:
  • min_length = 1

field database: Annotated[str, FieldInfo(annotation=NoneType, required=False, default='sqlite:///:memory:', description='Database connection string', metadata=[MinLen(min_length=1)])] = 'sqlite:///:memory:'

Database connection string

Constraints:
  • min_length = 1

field enconfig: Annotated[ConfigParams | None, Field(None, description='Parameters for Config instance')] = None

Parameters for Config instance

field encrypts: Annotated[CryptsParams | None, Field(None, description='Parameters for Crypts instance')] = None

Parameters for Crypts instance

field enlogger: Annotated[LoggerParams | None, Field(None, description='Parameters for Logger instance')] = None

Parameters for Logger instance

field persons: Annotated[dict[str, RobiePersonParams] | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Parameters for Robie persons', metadata=[MinLen(min_length=1)])] = None

Parameters for Robie persons

Constraints:
  • min_length = 1

field plugins: Annotated[dict[str, RobiePluginParams] | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Parameters for Robie plugins', metadata=[MinLen(min_length=1)])] = None

Parameters for Robie plugins

Constraints:
  • min_length = 1

field printer: Annotated[RobiePrinterParams, FieldInfo(annotation=NoneType, required=False, default_factory=RobiePrinterParams, description='Print messages to console')] [Optional]

Print messages to console

field service: Annotated[RobieServiceParams, FieldInfo(annotation=NoneType, required=False, default_factory=RobieServiceParams, description='Parameters for Robie Service')] [Optional]

Parameters for Robie Service

Homie Persons#

pydantic model enrobie.robie.params.RobiePersonParams[source]

Bases: RobieChildParams

Process and validate the Robie configuration parameters.

Show JSON schema
{
   "title": "RobiePersonParams",
   "description": "Process and validate the Robie configuration parameters.",
   "type": "object",
   "properties": {
      "enable": {
         "default": false,
         "description": "Determine whether child enabled",
         "title": "Enable",
         "type": "boolean"
      },
      "first": {
         "anyOf": [
            {
               "minLength": 1,
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "description": "Additional optional information",
         "title": "First"
      },
      "last": {
         "anyOf": [
            {
               "minLength": 1,
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "description": "Additional optional information",
         "title": "Last"
      },
      "about": {
         "anyOf": [
            {
               "minLength": 1,
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "description": "Additional optional information",
         "title": "About"
      },
      "matches": {
         "description": "How the user will be identified",
         "items": {
            "$ref": "#/$defs/RobiePersonMatchParams"
         },
         "title": "Matches",
         "type": "array"
      },
      "weight": {
         "default": 50,
         "description": "Determine order of precedence",
         "maximum": 100,
         "minimum": 1,
         "title": "Weight",
         "type": "integer"
      }
   },
   "$defs": {
      "RobiePersonMatchParams": {
         "additionalProperties": false,
         "description": "Process and validate the Robie configuration parameters.",
         "properties": {
            "client": {
               "description": "Client where the user exists",
               "minLength": 1,
               "title": "Client",
               "type": "string"
            },
            "match": {
               "description": "Values client uses to identify",
               "items": {
                  "type": "string"
               },
               "minItems": 1,
               "title": "Match",
               "type": "array"
            }
         },
         "required": [
            "client",
            "match"
         ],
         "title": "RobiePersonMatchParams",
         "type": "object"
      }
   },
   "additionalProperties": false,
   "required": [
      "matches"
   ]
}

Config:
  • extra: str = forbid

Fields:
field about: Annotated[str | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Additional optional information', metadata=[MinLen(min_length=1)])] = None

Additional optional information

Constraints:
  • min_length = 1

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

Determine whether child enabled

field first: Annotated[str | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Additional optional information', metadata=[MinLen(min_length=1)])] = None

Additional optional information

Constraints:
  • min_length = 1

field last: Annotated[str | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Additional optional information', metadata=[MinLen(min_length=1)])] = None

Additional optional information

Constraints:
  • min_length = 1

field matches: Annotated[list[RobiePersonMatchParams], FieldInfo(annotation=NoneType, required=True, description='How the user will be identified')] [Required]

How the user will be identified

field weight: Annotated[int, FieldInfo(annotation=NoneType, required=False, default=50, description='Determine order of precedence', metadata=[Ge(ge=1), Le(le=100)])] = 50

Determine order of precedence

Constraints:
  • ge = 1

  • le = 100

Robie Clients#

pydantic model enrobie.clients.discord.params.DSCClientParams[source]

Bases: RobieClientParams

Process and validate the Robie configuration parameters.

Show JSON schema
{
   "title": "DSCClientParams",
   "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 client are parameters",
         "examples": [
            "enrobie.clients.DSCClient",
            "enrobie.clients.IRCClient",
            "enrobie.clients.MTMClient"
         ],
         "title": "Locate"
      },
      "client": {
         "$ref": "#/$defs/ClientParams",
         "description": "Parameters for the base client"
      },
      "intents": {
         "default": 4609,
         "description": "Timeout connecting to server",
         "maximum": 65535,
         "minimum": 0,
         "title": "Intents",
         "type": "integer"
      },
      "delay": {
         "default": 15,
         "description": "Period to wait for reconnect",
         "maximum": 300,
         "minimum": 1,
         "title": "Delay",
         "type": "integer"
      },
      "status": {
         "$ref": "#/$defs/StatusPluginIconParams",
         "description": "Icon used per chat platform"
      }
   },
   "$defs": {
      "ClientParams": {
         "additionalProperties": false,
         "description": "Process and validate the class configuration parameters.",
         "properties": {
            "appid": {
               "anyOf": [
                  {
                     "minLength": 1,
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "Optional application identifier",
               "title": "Appid"
            },
            "token": {
               "description": "Parameter for the integration",
               "minLength": 1,
               "title": "Token",
               "type": "string"
            },
            "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"
            },
            "queue_size": {
               "default": 10000,
               "description": "Maximum size for queued events",
               "maximum": 1000000,
               "minimum": 1000,
               "title": "Queue Size",
               "type": "integer"
            }
         },
         "required": [
            "token"
         ],
         "title": "ClientParams",
         "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": [
      "client"
   ]
}

Config:
  • extra: str = forbid

Fields:
field client: Annotated[ClientParams, FieldInfo(annotation=NoneType, required=True, description='Parameters for the base client')] [Required]

Parameters for the base client

field delay: Annotated[int, FieldInfo(annotation=NoneType, required=False, default=15, description='Period to wait for reconnect', metadata=[Ge(ge=1), Le(le=300)])] = 15

Period to wait for reconnect

Constraints:
  • ge = 1

  • le = 300

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

Determine whether child enabled

field intents: Annotated[int, FieldInfo(annotation=NoneType, required=False, default=4609, description='Timeout connecting to server', metadata=[Ge(ge=0), Le(le=65535)])] = 4609

Timeout connecting to server

Constraints:
  • ge = 0

  • le = 65535

field locate: Annotated[str | None, Field(None, description='For which client are parameters', examples=['enrobie.clients.DSCClient', 'enrobie.clients.IRCClient', 'enrobie.clients.MTMClient'], min_length=1)] = None

For which client are parameters

Constraints:
  • min_length = 1

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

Icon used per chat platform

pydantic model enrobie.clients.irc.params.IRCClientParams[source]

Bases: RobieClientParams

Process and validate the Robie configuration parameters.

Show JSON schema
{
   "title": "IRCClientParams",
   "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 client are parameters",
         "examples": [
            "enrobie.clients.DSCClient",
            "enrobie.clients.IRCClient",
            "enrobie.clients.MTMClient"
         ],
         "title": "Locate"
      },
      "client": {
         "$ref": "#/$defs/ClientParams",
         "description": "Parameters for the base client"
      },
      "delay": {
         "default": 15,
         "description": "Period to wait for reconnect",
         "maximum": 300,
         "minimum": 1,
         "title": "Delay",
         "type": "integer"
      },
      "status": {
         "$ref": "#/$defs/StatusPluginIconParams",
         "description": "Icon used per chat platform"
      }
   },
   "$defs": {
      "ClientParams": {
         "additionalProperties": false,
         "description": "Process and validate the class configuration parameters.",
         "properties": {
            "server": {
               "description": "Server address for connection",
               "minLength": 1,
               "title": "Server",
               "type": "string"
            },
            "port": {
               "default": 6697,
               "description": "Server address for connection",
               "maximum": 65535,
               "minimum": 1,
               "title": "Port",
               "type": "integer"
            },
            "timeout": {
               "default": 30,
               "description": "Timeout connecting to server",
               "maximum": 300,
               "minimum": 1,
               "title": "Timeout",
               "type": "integer"
            },
            "operate": {
               "default": "normal",
               "description": "Method for server connection",
               "enum": [
                  "normal",
                  "service"
               ],
               "title": "Operate",
               "type": "string"
            },
            "nickname": {
               "default": "ircbot",
               "description": "Parameter for the integration",
               "minLength": 1,
               "title": "Nickname",
               "type": "string"
            },
            "username": {
               "default": "ircbot",
               "description": "Parameter for the integration",
               "minLength": 1,
               "title": "Username",
               "type": "string"
            },
            "realname": {
               "default": "Chatting Robie",
               "description": "Parameter for the integration",
               "minLength": 1,
               "title": "Realname",
               "type": "string"
            },
            "password": {
               "anyOf": [
                  {
                     "minLength": 1,
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "Parameter for the integration",
               "title": "Password"
            },
            "servername": {
               "default": "services.invalid",
               "description": "Parameter for the integration",
               "minLength": 1,
               "title": "Servername",
               "type": "string"
            },
            "serverid": {
               "default": "42X",
               "description": "Unique identifier for services",
               "minLength": 1,
               "title": "Serverid",
               "type": "string"
            },
            "ssl_enable": {
               "default": true,
               "description": "Enable connection encryption",
               "title": "Ssl Enable",
               "type": "boolean"
            },
            "ssl_verify": {
               "default": true,
               "description": "Verify the ceritifcate valid",
               "title": "Ssl Verify",
               "type": "boolean"
            },
            "queue_size": {
               "default": 10000,
               "description": "Maximum size for queued events",
               "maximum": 1000000,
               "minimum": 1000,
               "title": "Queue Size",
               "type": "integer"
            }
         },
         "required": [
            "server"
         ],
         "title": "ClientParams",
         "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": [
      "client"
   ]
}

Config:
  • extra: str = forbid

Fields:
field client: Annotated[ClientParams, FieldInfo(annotation=NoneType, required=True, description='Parameters for the base client')] [Required]

Parameters for the base client

field delay: Annotated[int, FieldInfo(annotation=NoneType, required=False, default=15, description='Period to wait for reconnect', metadata=[Ge(ge=1), Le(le=300)])] = 15

Period to wait for reconnect

Constraints:
  • ge = 1

  • le = 300

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 client are parameters', examples=['enrobie.clients.DSCClient', 'enrobie.clients.IRCClient', 'enrobie.clients.MTMClient'], min_length=1)] = None

For which client are parameters

Constraints:
  • min_length = 1

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

Icon used per chat platform

pydantic model enrobie.clients.mattermost.params.MTMClientParams[source]

Bases: RobieClientParams

Process and validate the Robie configuration parameters.

Show JSON schema
{
   "title": "MTMClientParams",
   "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 client are parameters",
         "examples": [
            "enrobie.clients.DSCClient",
            "enrobie.clients.IRCClient",
            "enrobie.clients.MTMClient"
         ],
         "title": "Locate"
      },
      "client": {
         "$ref": "#/$defs/ClientParams",
         "description": "Parameters for the base client"
      },
      "delay": {
         "default": 15,
         "description": "Period to wait for reconnect",
         "maximum": 300,
         "minimum": 1,
         "title": "Delay",
         "type": "integer"
      },
      "status": {
         "$ref": "#/$defs/StatusPluginIconParams",
         "description": "Icon used per chat platform"
      }
   },
   "$defs": {
      "ClientParams": {
         "additionalProperties": false,
         "description": "Process and validate the class configuration parameters.",
         "properties": {
            "server": {
               "description": "Server address for connection",
               "minLength": 1,
               "title": "Server",
               "type": "string"
            },
            "port": {
               "default": 443,
               "description": "Server address for connection",
               "maximum": 65535,
               "minimum": 1,
               "title": "Port",
               "type": "integer"
            },
            "token": {
               "description": "Parameter for the integration",
               "minLength": 1,
               "title": "Token",
               "type": "string"
            },
            "teamid": {
               "description": "Parameter for the integration",
               "minLength": 1,
               "title": "Teamid",
               "type": "string"
            },
            "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"
            },
            "queue_size": {
               "default": 10000,
               "description": "Maximum size for queued events",
               "maximum": 1000000,
               "minimum": 1000,
               "title": "Queue Size",
               "type": "integer"
            }
         },
         "required": [
            "server",
            "token",
            "teamid"
         ],
         "title": "ClientParams",
         "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": [
      "client"
   ]
}

Config:
  • extra: str = forbid

Fields:
field client: Annotated[ClientParams, FieldInfo(annotation=NoneType, required=True, description='Parameters for the base client')] [Required]

Parameters for the base client

field delay: Annotated[int, FieldInfo(annotation=NoneType, required=False, default=15, description='Period to wait for reconnect', metadata=[Ge(ge=1), Le(le=300)])] = 15

Period to wait for reconnect

Constraints:
  • ge = 1

  • le = 300

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 client are parameters', examples=['enrobie.clients.DSCClient', 'enrobie.clients.IRCClient', 'enrobie.clients.MTMClient'], min_length=1)] = None

For which client are parameters

Constraints:
  • min_length = 1

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

Icon used per chat platform

Robie Plugins#

pydantic model enrobie.plugins.ainswer.params.AinswerPluginParams[source]

Bases: RobiePluginParams

Process and validate the Robie configuration parameters.

Show JSON schema
{
   "title": "AinswerPluginParams",
   "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"
      },
      "database": {
         "default": "sqlite:///:memory:",
         "description": "Database connection string",
         "minLength": 1,
         "title": "Database",
         "type": "string"
      },
      "histories": {
         "default": 10,
         "description": "Number of messages per anchor",
         "maximum": 1000,
         "minimum": 1,
         "title": "Histories",
         "type": "integer"
      },
      "memories": {
         "default": 10,
         "description": "Number of messages per person",
         "maximum": 1000,
         "minimum": 1,
         "title": "Memories",
         "type": "integer"
      },
      "clients": {
         "description": "List of clients to enable plugin",
         "items": {
            "type": "string"
         },
         "minItems": 1,
         "title": "Clients",
         "type": "array"
      },
      "ainswer": {
         "$ref": "#/$defs/AinswerPluginAinswerParams",
         "description": "Parameters for the AI platforms"
      },
      "prompt": {
         "$ref": "#/$defs/AinswerPluginPromptParams",
         "description": "Override the agent system prompt"
      },
      "plugins": {
         "anyOf": [
            {
               "items": {
                  "type": "string"
               },
               "minItems": 1,
               "type": "array"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "description": "List of plugins to load tools",
         "title": "Plugins"
      },
      "logger": {
         "anyOf": [
            {
               "minLength": 1,
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "description": "Logger for including recents",
         "title": "Logger"
      },
      "status": {
         "$ref": "#/$defs/StatusPluginIconParams",
         "description": "Icon used per chat platform"
      }
   },
   "$defs": {
      "AinswerPluginAinswerParams": {
         "additionalProperties": false,
         "description": "Process and validate the Robie configuration parameters.",
         "properties": {
            "origin": {
               "description": "Which platform hosts the model",
               "enum": [
                  "anthropic",
                  "openai"
               ],
               "title": "Origin",
               "type": "string"
            },
            "model": {
               "description": "Platform model that will be used",
               "minLength": 1,
               "title": "Model",
               "type": "string"
            },
            "secret": {
               "description": "Model in platform that is used",
               "minLength": 1,
               "title": "Secret",
               "type": "string"
            },
            "timeout": {
               "default": 30,
               "description": "Time to wait during the request",
               "maximum": 300,
               "minimum": 1,
               "title": "Timeout",
               "type": "integer"
            },
            "sleep": {
               "default": [
                  15,
                  30
               ],
               "description": "Time to wait before the request",
               "maxItems": 2,
               "minItems": 2,
               "prefixItems": [
                  {
                     "type": "integer"
                  },
                  {
                     "type": "integer"
                  }
               ],
               "title": "Sleep",
               "type": "array"
            }
         },
         "required": [
            "origin",
            "model",
            "secret"
         ],
         "title": "AinswerPluginAinswerParams",
         "type": "object"
      },
      "AinswerPluginPromptClientParams": {
         "additionalProperties": false,
         "description": "Process and validate the Robie configuration parameters.",
         "properties": {
            "dsc": {
               "default": "In 1875 characters or less, answer the user question. Format for Discord. Markdown is encouraged.",
               "description": "Supplement the system prompt",
               "minLength": 1,
               "title": "Dsc",
               "type": "string"
            },
            "irc": {
               "default": "In 325 characters or less, answer the user question. Format for IRCv2. Do not use markdown. Do not use colors.",
               "description": "Supplement the system prompt",
               "minLength": 1,
               "title": "Irc",
               "type": "string"
            },
            "mtm": {
               "default": "In 1875 characters or less, answer the user question. Format for Mattermost. Markdown is encouraged.",
               "description": "Supplement the system prompt",
               "minLength": 1,
               "title": "Mtm",
               "type": "string"
            }
         },
         "title": "AinswerPluginPromptClientParams",
         "type": "object"
      },
      "AinswerPluginPromptParams": {
         "additionalProperties": false,
         "description": "Process and validate the Robie configuration parameters.",
         "properties": {
            "system": {
               "default": "You are a helpful chatbot assistant named Robie. You were built by Robert, at the Enasis Network.",
               "description": "Override the agent system prompt",
               "minLength": 1,
               "title": "System",
               "type": "string"
            },
            "client": {
               "$ref": "#/$defs/AinswerPluginPromptClientParams",
               "description": "Additional chat platform prompt"
            },
            "header": {
               "anyOf": [
                  {
                     "minLength": 1,
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "Optional header before question",
               "title": "Header"
            },
            "footer": {
               "anyOf": [
                  {
                     "minLength": 1,
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "Optional footer after question",
               "title": "Footer"
            },
            "ignore": {
               "default": [
                  "If you believe that you are being abused by the user asking the quesiton."
               ],
               "description": "Reasons for LLM to decline response",
               "items": {
                  "type": "string"
               },
               "minItems": 1,
               "title": "Ignore",
               "type": "array"
            }
         },
         "title": "AinswerPluginPromptParams",
         "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": [
      "clients",
      "ainswer"
   ]
}

Config:
  • extra: str = forbid

Fields:
field ainswer: Annotated[AinswerPluginAinswerParams, FieldInfo(annotation=NoneType, required=True, description='Parameters for the AI platforms')] [Required]

Parameters for the AI platforms

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 database: Annotated[str, FieldInfo(annotation=NoneType, required=False, default='sqlite:///:memory:', description='Database connection string', metadata=[MinLen(min_length=1)])] = 'sqlite:///:memory:'

Database connection string

Constraints:
  • min_length = 1

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

Determine whether child enabled

field histories: Annotated[int, FieldInfo(annotation=NoneType, required=False, default=10, description='Number of messages per anchor', metadata=[Ge(ge=1), Le(le=1000)])] = 10

Number of messages per anchor

Constraints:
  • ge = 1

  • le = 1000

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 logger: Annotated[str | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Logger for including recents', metadata=[MinLen(min_length=1)])] = None

Logger for including recents

Constraints:
  • min_length = 1

field memories: Annotated[int, FieldInfo(annotation=NoneType, required=False, default=10, description='Number of messages per person', metadata=[Ge(ge=1), Le(le=1000)])] = 10

Number of messages per person

Constraints:
  • ge = 1

  • le = 1000

field plugins: Annotated[list[str] | None, FieldInfo(annotation=NoneType, required=False, default=None, description='List of plugins to load tools', metadata=[MinLen(min_length=1)])] = None

List of plugins to load tools

Constraints:
  • min_length = 1

field prompt: Annotated[AinswerPluginPromptParams, FieldInfo(annotation=NoneType, required=False, default_factory=AinswerPluginPromptParams, description='Override the agent system prompt')] [Optional]

Override the agent system prompt

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 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

pydantic model enrobie.plugins.enhomie.params.HomiePluginParams[source]

Bases: RobiePluginParams

Process and validate the Robie configuration parameters.

Show JSON schema
{
   "title": "HomiePluginParams",
   "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/HomiePluginCommandParams",
         "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": {
      "HomiePluginCommandParams": {
         "additionalProperties": false,
         "description": "Process and validate the Robie configuration parameters.",
         "properties": {
            "irc": {
               "default": "!persist",
               "description": "Command name for chat platform",
               "minLength": 2,
               "title": "Irc",
               "type": "string"
            },
            "dsc": {
               "default": "!persist",
               "description": "Command name for chat platform",
               "minLength": 2,
               "title": "Dsc",
               "type": "string"
            },
            "mtm": {
               "default": "!persist",
               "description": "Command name for chat platform",
               "minLength": 2,
               "title": "Mtm",
               "type": "string"
            }
         },
         "title": "HomiePluginCommandParams",
         "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[HomiePluginCommandParams, FieldInfo(annotation=NoneType, required=False, default_factory=HomiePluginCommandParams, 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

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

pydantic model enrobie.plugins.autojoin.params.AutoJoinPluginParams[source]

Bases: RobiePluginParams

Process and validate the Robie configuration parameters.

Show JSON schema
{
   "title": "AutoJoinPluginParams",
   "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"
      },
      "channels": {
         "description": "Which channels to maintain join",
         "items": {
            "$ref": "#/$defs/AutoJoinPluginChannelParams"
         },
         "minItems": 1,
         "title": "Channels",
         "type": "array"
      },
      "interval": {
         "default": 5,
         "description": "Interval when channels are joined",
         "maximum": 300,
         "minimum": 5,
         "title": "Interval",
         "type": "integer"
      },
      "status": {
         "$ref": "#/$defs/StatusPluginIconParams",
         "description": "Icon used per chat platform"
      }
   },
   "$defs": {
      "AutoJoinPluginChannelParams": {
         "additionalProperties": false,
         "description": "Process and validate the Robie configuration parameters.",
         "properties": {
            "client": {
               "description": "Client where channel exists",
               "minLength": 1,
               "title": "Client",
               "type": "string"
            },
            "channel": {
               "description": "Name of channel to remain joined",
               "minLength": 1,
               "title": "Channel",
               "type": "string"
            }
         },
         "required": [
            "client",
            "channel"
         ],
         "title": "AutoJoinPluginChannelParams",
         "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": [
      "channels"
   ]
}

Config:
  • extra: str = forbid

Fields:
field channels: Annotated[list[AutoJoinPluginChannelParams], FieldInfo(annotation=NoneType, required=True, description='Which channels to maintain join', metadata=[MinLen(min_length=1)])] [Required]

Which channels to maintain join

Constraints:
  • min_length = 1

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

Determine whether child enabled

field interval: Annotated[int, FieldInfo(annotation=NoneType, required=False, default=5, description='Interval when channels are joined', metadata=[Ge(ge=5), Le(le=300)])] = 5

Interval when channels are joined

Constraints:
  • ge = 5

  • le = 300

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 status: Annotated[StatusPluginIconParams, FieldInfo(annotation=NoneType, required=False, default_factory=StatusPluginIconParams, description='Icon used per chat platform')] [Optional]

Icon used per chat platform

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

pydantic model enrobie.plugins.autonick.params.AutoNickPluginParams[source]

Bases: RobiePluginParams

Process and validate the Robie configuration parameters.

Show JSON schema
{
   "title": "AutoNickPluginParams",
   "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"
      },
      "clients": {
         "description": "List of clients to enable plugin",
         "items": {
            "type": "string"
         },
         "minItems": 1,
         "title": "Clients",
         "type": "array"
      },
      "interval": {
         "default": 5,
         "description": "Interval when nick is validated",
         "maximum": 300,
         "minimum": 5,
         "title": "Interval",
         "type": "integer"
      },
      "services": {
         "anyOf": [
            {
               "items": {
                  "$ref": "#/$defs/AutoNickPluginServiceParams"
               },
               "type": "array"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "description": "How to identify with services",
         "title": "Services"
      },
      "status": {
         "$ref": "#/$defs/StatusPluginIconParams",
         "description": "Icon used per chat platform"
      }
   },
   "$defs": {
      "AutoNickPluginServiceParams": {
         "additionalProperties": false,
         "description": "Process and validate the Robie configuration parameters.",
         "properties": {
            "client": {
               "description": "Client where services exist",
               "minLength": 1,
               "title": "Client",
               "type": "string"
            },
            "password": {
               "description": "Identify with nick services",
               "minLength": 1,
               "title": "Password",
               "type": "string"
            },
            "service": {
               "default": "NickServ",
               "description": "Nickname of network service",
               "minLength": 1,
               "title": "Service",
               "type": "string"
            }
         },
         "required": [
            "client",
            "password"
         ],
         "title": "AutoNickPluginServiceParams",
         "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": [
      "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 enable: Annotated[bool, Field(False, description='Determine whether child enabled')] = False

Determine whether child enabled

field interval: Annotated[int, FieldInfo(annotation=NoneType, required=False, default=5, description='Interval when nick is validated', metadata=[Ge(ge=5), Le(le=300)])] = 5

Interval when nick is validated

Constraints:
  • ge = 5

  • le = 300

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 services: Annotated[list[AutoNickPluginServiceParams] | None, FieldInfo(annotation=NoneType, required=False, default=None, description='How to identify with services')] = None

How to identify with services

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 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

pydantic model enrobie.plugins.logger.params.LoggerPluginParams[source]

Bases: RobiePluginParams

Process and validate the Robie configuration parameters.

Show JSON schema
{
   "title": "LoggerPluginParams",
   "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"
      },
      "database": {
         "default": "sqlite:///:memory:",
         "description": "Database connection string",
         "minLength": 1,
         "title": "Database",
         "type": "string"
      },
      "histories": {
         "default": 100,
         "description": "Number of messages per anchor",
         "maximum": 10000,
         "minimum": 1,
         "title": "Histories",
         "type": "integer"
      },
      "clients": {
         "description": "List of clients to enable plugin",
         "items": {
            "type": "string"
         },
         "minItems": 1,
         "title": "Clients",
         "type": "array"
      },
      "output": {
         "anyOf": [
            {
               "minLength": 4,
               "type": "string"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "description": "Optional path where logs append",
         "title": "Output"
      },
      "status": {
         "$ref": "#/$defs/StatusPluginIconParams",
         "description": "Icon used per chat platform"
      }
   },
   "$defs": {
      "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": [
      "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 database: Annotated[str, FieldInfo(annotation=NoneType, required=False, default='sqlite:///:memory:', description='Database connection string', metadata=[MinLen(min_length=1)])] = 'sqlite:///:memory:'

Database connection string

Constraints:
  • min_length = 1

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

Determine whether child enabled

field histories: Annotated[int, FieldInfo(annotation=NoneType, required=False, default=100, description='Number of messages per anchor', metadata=[Ge(ge=1), Le(le=10000)])] = 100

Number of messages per anchor

Constraints:
  • ge = 1

  • le = 10000

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 output: Annotated[str | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Optional path where logs append', metadata=[MinLen(min_length=4)])] = None

Optional path where logs append

Constraints:
  • min_length = 4

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 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

pydantic model enrobie.plugins.status.params.StatusPluginParams[source]

Bases: RobiePluginParams

Process and validate the Robie configuration parameters.

Show JSON schema
{
   "title": "StatusPluginParams",
   "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"
      },
      "reports": {
         "anyOf": [
            {
               "items": {
                  "$ref": "#/$defs/StatusPluginReportParams"
               },
               "minItems": 1,
               "type": "array"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "description": "Where to send status updates",
         "title": "Reports"
      },
      "command": {
         "$ref": "#/$defs/StatusPluginCommandParams",
         "description": "Command name per chat platform"
      },
      "icons": {
         "$ref": "#/$defs/StatusPluginIconsParams",
         "description": "Icon used per the chat platform"
      }
   },
   "$defs": {
      "StatusPluginCommandParams": {
         "additionalProperties": false,
         "description": "Process and validate the Robie configuration parameters.",
         "properties": {
            "irc": {
               "default": "!status",
               "description": "Command name for chat platform",
               "minLength": 2,
               "title": "Irc",
               "type": "string"
            },
            "dsc": {
               "default": "!status",
               "description": "Command name for chat platform",
               "minLength": 2,
               "title": "Dsc",
               "type": "string"
            },
            "mtm": {
               "default": "!status",
               "description": "Command name for chat platform",
               "minLength": 2,
               "title": "Mtm",
               "type": "string"
            }
         },
         "title": "StatusPluginCommandParams",
         "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"
      },
      "StatusPluginIconsParams": {
         "additionalProperties": false,
         "description": "Contain information for constructing the chat messages.",
         "properties": {
            "pending": {
               "$ref": "#/$defs/StatusPluginIconParams",
               "description": "Icon used per the chat platform"
            },
            "normal": {
               "$ref": "#/$defs/StatusPluginIconParams",
               "description": "Icon used per the chat platform"
            },
            "failure": {
               "$ref": "#/$defs/StatusPluginIconParams",
               "description": "Icon used per the chat platform"
            },
            "unknown": {
               "$ref": "#/$defs/StatusPluginIconParams",
               "description": "Icon used per the chat platform"
            }
         },
         "title": "StatusPluginIconsParams",
         "type": "object"
      },
      "StatusPluginReportParams": {
         "additionalProperties": false,
         "description": "Contain information for constructing the chat messages.",
         "properties": {
            "client": {
               "description": "Client where channel exists",
               "minLength": 1,
               "title": "Client",
               "type": "string"
            },
            "target": {
               "description": "Where the message will be sent",
               "minLength": 1,
               "title": "Target",
               "type": "string"
            },
            "states": {
               "anyOf": [
                  {
                     "items": {
                        "enum": [
                           "pending",
                           "normal",
                           "failure",
                           "unknown"
                        ],
                        "type": "string"
                     },
                     "minItems": 1,
                     "type": "array"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "Which status value are related",
               "title": "States"
            },
            "delay": {
               "default": 15,
               "description": "Period between status reports",
               "maximum": 864000,
               "minimum": 0,
               "title": "Delay",
               "type": "integer"
            }
         },
         "required": [
            "client",
            "target"
         ],
         "title": "StatusPluginReportParams",
         "type": "object"
      }
   },
   "additionalProperties": false
}

Config:
  • extra: str = forbid

Fields:
field command: Annotated[StatusPluginCommandParams, FieldInfo(annotation=NoneType, required=False, default_factory=StatusPluginCommandParams, 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 icons: Annotated[StatusPluginIconsParams, FieldInfo(annotation=NoneType, required=False, default_factory=StatusPluginIconsParams, description='Icon used per the chat platform')] [Optional]

Icon used per the chat platform

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 reports: Annotated[list[StatusPluginReportParams] | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Where to send status updates', metadata=[MinLen(min_length=1)])] = None

Where to send status updates

Constraints:
  • min_length = 1

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