from cmk.gui.i18n import _ from cmk.gui.plugins.wato.special_agents.common import ( RulespecGroupDatasourceProgramsApps, RulespecGroupDatasourceProgramsCustom, RulespecGroupDatasourceProgramsHardware, RulespecGroupDatasourceProgramsOS, RulespecGroupDatasourceProgramsTesting, ) from cmk.gui.plugins.wato.utils import ( IndividualOrStoredPassword, rulespec_registry, CheckParameterRulespecWithItem, CheckParameterRulespecWithoutItem, HostRulespec, Rulespec, ) from cmk.gui.valuespec import ( Dictionary, ListChoice, Checkbox, TextAscii, Password, NetworkPort, Integer, ) def _valuespec_special_agent_mailcow(): return Dictionary( title=_("Mailcow Server Information"), help = _("Checking Mailcow instances via API"), elements=[ ("hostname", TextAscii(title=_("Hostname"), size=32, allow_empty=False, help=_("Hostname of Mailcow server (bare FQDN or IP), mandatory"))), ("apikey", IndividualOrStoredPassword(title=_("API Key"), size=32, allow_empty=False, help=_("API Key, mandatory"))), ("port", TextAscii(title=_("Port"), allow_empty=True, help=_("Specify port if not listening to HTTPS/HTTP, optional"))), ("check_version", Checkbox(title=_("Check version"), help=_("Checks the running version against the public Github repo"))), ("no_https", Checkbox(title=_("Disable HTTPS"), help=_("Activate to disable TLS encryption (not recommended), optional"))), ("no_cert_check", Checkbox(title=_("Disable certificate validation"), help=_("Activate to disable certificate validation (not recommended), optional"))), ], optional_keys=[], ) rulespec_registry.register( HostRulespec( group=RulespecGroupDatasourceProgramsApps, name="special_agents:mailcow", valuespec=_valuespec_special_agent_mailcow, ) )