<?xml version="1.0" encoding="utf-8"?>
<creole>
    <files>
        <file filelist='flags' name='/etc/tmpfiles.d/eole-flags.conf' source='eole-flags.conf.tmpdir' rm='True'/>
        <file filelist='flags' name='/etc/flag-switch.conf' rm='True'/>
    </files>
    <variables>
        <family name='drapeaux' icon='flag'>
            <variable name="flags_path" type="filename" description="Chemin des drapeaux" hidden="True">
                <value>/var/run/eole/flags</value>
            </variable>
            <variable name='flag_name' type='string' description='Nom du drapeau' multi="True"/>
            <variable name="flag_schedule_mode" type='string' description='Méthode d’actualisation du drapeau'>
                <value>manuelle</value>
            </variable>
            <variable name='flag_event_meaning' type='string' description='Impact d’une plage de programmation' mandatory='True'/>
            <variable name="flag_schedule_file" type="filename" description="Fichier de déclaration des plages" mandatory="True"/>
            <variable name="flag_schedule_file_format" type="string" description="Format de déclaration des plages" mandatory="True">
                <value>json</value>
            </variable>

        </family>
    </variables>
    <constraints>
        <check name="valid_enum" target="flag_schedule_mode">
            <param>['manuelle', 'fichier']</param>
        </check>
        <check name="valid_enum" target="flag_event_meaning">
            <param>['drapeau présent', 'drapeau absent']</param>
        </check>
        <check name="valid_enum" target="flag_schedule_file_format">
            <param>['json']</param>
        </check>
        <condition name="disabled_if_in" source="flag_schedule_mode">
            <param>manuelle</param>
            <target type='variable'>flag_event_meaning</target>
        </condition>
        <condition name="disabled_if_not_in" source="flag_schedule_mode">
            <param>fichier</param>
            <target type='variable'>flag_schedule_file</target>
            <target type='variable'>flag_schedule_file_format</target>
        </condition>
        <group master='flag_name'>
            <slave>flag_schedule_mode</slave>
            <slave>flag_event_meaning</slave>
            <slave>flag_schedule_file</slave>
            <slave>flag_schedule_file_format</slave>
        </group>
    </constraints>
    <help>
        <family name='drapeaux'>Déclaration des drapeaux (fichiers marquant un état par leur présence ou leur absence)</family>
        <variable name='flag_name'>Nom du drapeau (fichier créé dans /var/run/eole/flags)</variable>
        <variable name='flag_event_meaning'>Définir si le drapeau sera présent ou absent lors des plages déclarées</variable>
        <variable name='flag_schedule_mode'>Méthode de gestion du drapeau :
        - la méthode manuelle laisse l’administrateur gérer la création et la suppression du drapeau ;
        - la méthode fichier transcrit les événements déclarés dans un fichier au format yaml en présence, absence du drapeau.</variable>
        <variable name='flag_schedule_file'>Emplacement du fichier contenant la programmation du drapeau.</variable>
        <variable name='flag_schedule_file_format'>Format de la programmation du drapeau.</variable>
    </help>
</creole>
