Lister les serveurs
======================

.. http:get:: /api/servers

   .. deprecated:: 0.2.0

      La propriété ``workDir`` de la réponse a été remplacée par la propriété
      ``tmpReceiveDir``.

   .. deprecated:: 0.2.0

      La propriété ``inDir`` de la réponse a été remplacée par la propriété
      ``receiveDir``.

   .. deprecated:: 0.2.0

      La propriété ``outDir`` de la réponse a été remplacée par la propriété
      ``sendDir``.


   Renvoie une liste des serveurs remplissant les critères donnés en paramètres
   de requête.

   :reqheader Authorization: Les identifiants de l'utilisateur

   :param limit: Le nombre maximum de résultats souhaités *(défaut: 20)*
   :type limit: int
   :param offset: Le numéro du premier résultat souhaité *(défaut: 0)*
   :type offset: int
   :param sort: Le paramètre selon lequel les serveurs seront triés.
      Valeurs possibles : ``name+``, ``name-``, ``protocol+``, ``protocol-``.
      *(défaut: name+)*
   :type sort: string
   :param protocol: Filtre uniquement les serveurs utilisant ce protocole.
      Peut être renseigné plusieurs fois pour filtrer plusieurs protocoles.
   :type protocol: string

   :statuscode 200: La liste a été renvoyée avec succès
   :statuscode 400: Un ou plusieurs des paramètres de requêtes sont invalides
   :statuscode 401: Authentification d'utilisateur invalide

   :resjson array servers: La liste des serveurs demandés
   :resjsonarr string name: Le nom du serveur
   :resjsonarr string protocol: Le protocole utilisé par le serveur
   :resjsonarr string address: L'adresse du serveur (en format [adresse:port])
   :resjsonarr string root: La racine du serveur. Peut être relatif (à la racine
      de *transfer*) ou absolu (OBSOLÈTE: remplacé par 'rootDir').
   :resjsonarr string inDir: Le dossier de réception du serveur. Peut être
      relatif (à la racine du serveur) ou absolu. (déprécié)
   :resjsonarr string outDir: Le dossier d'envoi du serveur. Peut être
      relatif (à la racine du serveur) ou absolu. (déprécié)
   :resjsonarr string workDir: Le dossier temporaire du serveur. Peut être
      relatif (à la racine du serveur) ou absolu. (déprécié)
   :resjsonarr string rootDir: Chemin du dossier racine du serveur. Peut être
      relatif (à la racine de *transfer*) ou absolu.
   :resjsonarr string receiveDir: Le dossier de réception du serveur. Peut
      être relatif (à la racine du serveur) ou absolu.
   :resjsonarr string sendDir: Le dossier d'envoi du serveur. Peut être
      relatif (à la racine du serveur) ou absolu.
   :resjsonarr string tmpReceiveDir: Le dossier temporaire du serveur. Peut
      être relatif (à la racine du serveur) ou absolu.
   :resjsonarr object protoConfig: La configuration du serveur encodé sous forme
      d'un objet JSON. Cet objet dépend du protocole.
   :resjsonarr object authorizedRules: Les règles que le serveur est autorisé à
      utiliser pour les transferts.

      * **sending** (*array* of *string*) - Les règles d'envoi.
      * **reception** (*array* of *string*) - Les règles de réception.


   |

   **Exemple de requête**

      .. code-block:: http

         GET https://my_waarp_transfer.net/api/servers?limit=10&sort=name- HTTP/1.1
         Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==

   **Exemple de réponse**

      .. code-block:: http

         HTTP/1.1 200 OK
         Content-Type: application/json
         Content-Length: 619

         {
           "servers": [{
             "name": "dr66_server_2",
             "protocol": "dr66",
             "address": "localhost:2023",
             "rootDir": "/dr662/root",
             "protoConfig": {},
             "authorizedRules": {
               "sending": ["règle_envoi_1", "règle_envoi_2"],
               "reception": ["règle_récep_1", "règle_récep_2"]
             }
           },{
             "name": "dr66_server_1",
             "protocol": "dr66",
             "address": "localhost:2022",
             "rootDir": "/dr66/root",
             "protoConfig": {},
             "authorizedRules": {
               "sending": ["règle_envoi_1", "règle_envoi_2"],
               "reception": ["règle_récep_1", "règle_récep_2"]
             }
           }]
         }