# Lister les règles

GET /api/rules

  Obsolète depuis la version 0.5.0: Les propriétés `inPath` et `outPath` de la réponse ont été remplacées par les propriétés `localDir` et `remoteDir`.

  Obsolète depuis la version 0.5.0: La propriété `workPath` de la réponse a été remplacée par la propriété `tmpReceiveDir`.

  Renvoie une liste des règles emplissant les critères donnés en paramètres de requête.

  Request Headers:

    - Authorization – Les identifiants de l’utilisateur

  Parameters:

    - limit (int) – Le nombre maximum de résultats souhaités (défaut: 20)

    - offset (int) – Le numéro du premier résultat souhaité (défaut: 0)

    - sortby ([name+|name-]) – Le paramètre selon lequel les règles seront triées (défaut: name+)

  Status Codes:

    - 200 OK – La liste a été renvoyée avec succès

    - 400 Bad Request – Un ou plusieurs des paramètres de requêtes sont invalides

    - 401 Unauthorized – Authentification d’utilisateur invalide

  Response JSON Object:

    - rules (array) – La liste des règles demandées

    - inPath (string) – Déprécié. Le dossier de destination de la règle. Tous les fichiers transférés avec cette règle sont envoyés dans ce dossier.

    - outPath (string) – Déprécié. Le dossier source de la règle. Tous les fichiers transférés avec cette règle sont récupérés depuis ce dossier.

    - workPath (string) – Déprécié. Le dossier temporaire de la règle. Tous les fichiers entrants transférés avec cette règle sont déposés dans ce dossier le temps du transfert.

    - localDir (string) – Le dossier de la règle sur le disque local de la Gateway. Si la règle est une règle d’envoi, ce dossier sert de source au fichier; dans le cas contraire, il sert de destination.

    - remoteDir (string) – Le chemin de la règle sur l’hôte distant. Si la règle est une règle d’envoi, ce dossier sert de destination au fichier; dans le cas contraire, il sert de source.

    - tmpReceiveDir (string) – Le dossier temporaire local de la règle. Tous les fichiers reçu avec cette règle sont déposés dans ce dossier le temps du transfert, puis déplacé dans le “localDir” une fois terminé.

  Response JSON Array of Objects:

    - name (string) – Le nom de la règle

    - comment (string) – Un commentaire optionnel à propos de la règle (description…)

    - isSend (bool) – Si vrai, la règle ne peut être utilisée que pour l’envoi de fichiers, si faux, la règle ne peut être utilisée que pour la réception de fichiers

    - path (string) – Le chemin d’identification de la règle. Sert à identifier la règle lors d’un transfert si le protocole ne le permet pas. Doit être un chemin absolu.

    - preTasks (array) –

      La liste des pré-traitements de la règle.

      - `type` (string) - Le type de traitements.

      - `reception` (object) - Les arguments du traitement. La structure dépend du type de traitement.

    - postTasks (array) –

      La liste des post-traitements de la règle.

      - `type` (string) - Le type de traitement.

      - `reception` (object) - Les arguments du traitement. La structure dépend du type de traitement.

    - errorTasks (array) –

      La liste des traitements d’erreur de la règle.

      - `type` (string) - Le type de traitement.

      - `reception` (object) - Les arguments du traitement. La structure dépend du type de traitement.

    - authorized (object) –

      Les agents autorisés à utiliser cette règle. Par défaut, si cet objet est vide, alors la règle peut être utilisée par tous le monde, sans exception.

      - `servers` (array of string) - La liste des serveurs locaux autorisés à utiliser la règle.

      - `partners` (array of string) - La liste des partenaires distants autorisés à utiliser la règle.

      - `localAccounts` (object) - La liste des comptes locaux autorisés à utiliser la règle. Chaque champ représente un serveur auquel on associe la liste des comptes qui lui sont affiliés.

      - `remoteAccounts` (object) - La liste des comptes locaux autorisés à utiliser la règle. Chaque champ représente un serveur auquel on associe la liste des comptes qui lui sont affiliés.

  Exemple de requête

      GET https://my_waarp_gateway.net/api/rules?limit=5 HTTP/1.1
      Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==

  Exemple de réponse

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

      {
        "rules": [{
          "name": "règle_1",
          "comment": "ceci est un exemple de règle d'envoi",
          "isSend": true,
          "path": "/chemin/identificateur/de/la/règle/1",
          "localDir": "/dossier/local/1",
          "remoteDir": "/dossier/distant/1",
          "tmpReceiveDir": "/dossier/temporaire/1",
          "preTasks": [{
            "type": "COPY",
            "args": {"path":"/chemin/de/copie"}
          }],
          "postTasks": [{
            "type": "TRANSFER",
            "args": {"file":"/chemin/du/fichier","to":"waarp_sftp","as":"toto","rule":"règle_2"}
          }],
          "errorTasks": [{
            "type": "MOVE",
            "args": {"path":"/chemin/de/déplacement"}
          }],
          "authorized": {
            "servers": ["serveur_sftp"],
            "partners": ["waarp_r66"],
          }
        },{
          "name": "règle_2",
          "comment": "ceci est un exemple de règle de réception",
          "isSend": false,
          "path": "/chemin/identificateur/de/la/règle/2",
          "localDir": "/dossier/local/2",
          "remoteDir": "/dossier/distant/2",
          "tmpReceiveDir": "/dossier/temporaire/2",
          "preTasks": [{
            "type": "EXEC",
            "args": {"path":"/chemin/du/script","args":"{}","delay":"0"}
          }],
          "postTasks": [{
            "type": "DELETE",
            "args": {}
          }],
          "errorTasks": [{
            "type": "RENAME",
            "args": {"path":"/chemin/du/renommage"}
          }],
          "authorized": {
            "servers": ["serveur_http"],
            "partners": ["waarp_sftp"],
          }
        }]
      }