<?xml version='1.0' encoding='UTF-8'?>
<rougail version="0.10">
  <services>
    <service name="vaultwarden" target="multi-user">
      <override/>
      <file engine="none" source="tmpfile-vaultwarden.conf">/tmpfiles.d/0vaultwarden.conf</file>
      <file source="vaultwarden_config.env">/etc/vaultwarden/config.env</file>
      <file>/tests/vaultwarden.yml</file>
    </service>
  </services>
  <variables>
    <family name="revprox">
      <family name="revprox_client">
        <variable name="revprox_client_external_domainnames" redefine="True" hidden="True"/>
      </family>
      <variable name="revprox_client_cert_owner" redefine="True">
        <value>vaultwarden</value>
      </variable>
    </family>
    <family name="vaultwarden" description="Vaultwarden">
      <variable name="vaultwarden_domainname" type="domainname" description="Nom de domaine d'accès à Vaultwarden" mandatory="True"/>
      <variable name="password_admin_username" description="Nom de l'utilisateur Risotto de Vaultwarden" auto_save="False">
        <value>risotto</value>
      </variable>
      <variable name="vaultwarden_admin_email" type="mail" description="Adresse courriel de l'utilisateur Risotto" mandatory="True"/>
      <variable name="vaultwarden_admin_password" type="password" description="Mot de passe de l'utilisateur Risotto" auto_save="False" hidden="True"/>
      <variable name="vaultwarden_length" type="number" description="Taille par défaut du mot de passe">
        <value>20</value>
      </variable>
      <variable name="vaultwarden_org_name" description="Nom de l'organisation lors de l'envoi des invitations" mandatory="True">
        <value>Vaultwarden</value>
      </variable>
      <variable name="vaultwarden_test_device_identifier" description="Identifiant de test de l'appareil se connectant" hidden="True"/>
    </family>
    <family name="postgresql" description="PostgreSQL">
      <variable name="pg_client_key_owner" redefine="True">
        <value>vaultwarden</value>
      </variable>
    </family>
  </variables>
  <constraints>
    <fill name="get_password">
      <param name="server_name" type="variable">domain_name_eth0</param>
      <param name="username">admin_password</param>
      <param name="description">vaultwarden</param>
      <param name="type">cleartext</param>
      <target>vaultwarden_admin_password</target>
      <param name="hide" type="variable">hide_secret</param>
    </fill>
    <fill name="get_uuid">
      <param name="server_name" type="variable">domain_name_eth0</param>
      <target>vaultwarden_test_device_identifier</target>
    </fill>
    <fill name="calc_value">
      <param type="variable">vaultwarden_domainname</param>
      <param type="variable">vaultwarden_domainname</param>
      <param name="multi" type="boolean">True</param>
      <target>revprox_client_external_domainnames</target>
    </fill>
    <fill name="calc_vaulwarden_location">
      <param type="index"/>
      <target>revprox_client_location</target>
    </fill>
    <fill name="calc_value">
      <param type="boolean">True</param>
      <param name="default" type="boolean">False</param>
      <param name="condition" type="variable">revprox_client_location</param>
      <param name="expected">/notifications/hub</param>
      <target>revprox_client_is_websocket</target>
    </fill>
  </constraints>
</rougail>
