<?xml version='1.0' encoding='UTF-8'?>
<rougail version="0.10">
  <services>
    <service name="revprox" manage="False">
      <file file_type="variable" source="revprox.crt">revprox_client_cert_file</file>
      <file file_type="variable" source="revprox.key" owner_type="variable" owner="revprox_client_cert_owner" group_type="variable" group="revprox_client_cert_group" mode="400">revprox_client_key_file</file>
      <file file_type="variable" source="ca_InternalReverseProxy.crt">revprox_client_ca_file</file>
    </service>
  </services>
  <variables>
    <family name="revprox" description="Reverse proxy">
      <variable name="revprox_client_server_domainname" type="domainname" description="Nom de domaine du serveur mandataire inverse" mandatory='True' supplier="ReverseProxy" hidden="True"/>
      <variable name="revprox_client_server_ip" type="ip" hidden='True'/>
      <family name="revprox_client" description="Point d'entrée des clients" leadership="True">
        <variable name="revprox_client_external_domainnames" type="domainname" description="Nom de domaine exterieur du serveur" mandatory='True' multi="True" unique="False" supplier="ReverseProxy:external"/>
        <variable name="revprox_client_location" type="filename" description="Nom de l'arborescence racine du site" mandatory="True" supplier="ReverseProxy:location">
          <value>/</value>
        </variable>
        <variable name="revprox_client_is_websocket" type="boolean" description="Le point d'entrée est de types websocket" mandatory="True" supplier="ReverseProxy:websocket" hidden="True">
          <value>False</value>
        </variable>
        <variable name="revprox_client_max_body_size" description="Taille maximum du corps" supplier="ReverseProxy:max_body_size"/>
	<variable name="revprox_client_local_location" type="filename" description="Nom de l'arborescene racine du site localement" hidden='True'/>
	<variable name="revprox_client_web_address" type="web_address" description="Nom de domaine du client du mandataire inverse" hidden='True' supplier="ReverseProxy:url"/>
      </family>
      <variable name="revprox_client_port" type="port" description="Port du client du mandataire inverse" hidden='True'>
        <value>443</value>
      </variable>
      <variable name="revprox_client_cert_owner" type="unix_user" description="Reverse proxy certificate owner" hidden="True">
        <value>root</value>
      </variable>
      <variable name="revprox_client_cert_group" type="unix_user" description="Reverse proxy certificate group" hidden="True">
        <value>root</value>
      </variable>
      <variable name="revprox_client_cert_file" type="filename" description="Reverse proxy certificate filename" hidden="True"/>
      <variable name="revprox_client_key_file" type="filename" description="Reverse proxy private key filename" hidden="True"/>
      <variable name="revprox_client_ca_file" type="filename" description="Reverse proxy CA filename" hidden="True"/>
    </family>
  </variables>
  <constraints>
    <fill name="get_ip">
      <param type="information">zones</param>
      <param type="variable">revprox_client_server_domainname</param>
      <target>revprox_client_server_ip</target>
    </fill>
    <fill name="calc_web_address">
      <param type="variable">domain_name_eth0</param>
      <param type="variable">revprox_client_port</param>
      <param type="variable">revprox_client_local_location</param>
      <target>revprox_client_web_address</target>
    </fill>
    <fill name="calc_value">
      <param type="variable">tls_cert_directory</param>
      <param>revprox.crt</param>
      <param name="join">/</param>
      <target>revprox_client_cert_file</target>
    </fill>
    <fill name="calc_value">
      <param type="variable">tls_key_directory</param>
      <param>revprox.key</param>
      <param name="join">/</param>
      <target>revprox_client_key_file</target>
    </fill>
    <fill name="calc_value">
      <param type="variable">tls_ca_directory</param>
      <param>ca_InternalReverseProxy.crt</param>
      <param name="join">/</param>
      <target>revprox_client_ca_file</target>
    </fill>
  </constraints>
</rougail>
