#!/usr/bin/env python3

# -*- encoding: utf-8; py-indent-offset: 4 -*-

# (c) Michael Honkoop <mhonkoop@comsolve.nl>

# License: GNU General Public License v2

"""parameters for eDirectory monitor"""

from cmk.rulesets.v1 import Title, Help
from cmk.rulesets.v1.form_specs import (
    DictElement,
    Dictionary,
    InputHint,
    Integer,
    LevelDirection,
    migrate_to_integer_simple_levels,
    SimpleLevels,
    String,
)

from cmk.rulesets.v1.rule_specs import (
    CheckParameters,
    Topic,
    HostAndItemCondition,
)

def _parameter_valuespec_edirectory_monitor() -> Dictionary:
    return Dictionary(
        elements={
            "levels": DictElement(
                parameter_form=SimpleLevels[int](
                    title=Title("Generic Levels"),
                    level_direction=LevelDirection.UPPER,
                    form_spec_template=Integer(),
                    migrate=migrate_to_integer_simple_levels,
                    prefill_fixed_levels=InputHint(value=(15, 30)),
                )
            ),
        },
    )

def _item_spec() -> String:
    return String(help_text=Help("eDirectory Attribute Name"))

rule_spec_edirectory_monitor_params = CheckParameters(
    name="edirectory_monitor",
    title=Title("eDirectory Monitor"),
    topic=Topic.APPLICATIONS,
    condition=HostAndItemCondition(
        item_title=Title("eDirectory Attribute"), item_form=_item_spec()
    ),
    parameter_form=_parameter_valuespec_edirectory_monitor,
)