# Ajouter une règle

POST /api/rules

  Obsolète depuis la version 0.5.0:

  - Les propriétés `inPath` et `outPath` de la requête ont été remplacées par les propriétés `localDir` et `remoteDir`.

  - La propriété `workPath` de la requête a été remplacée par la propriété `tmpReceiveDir`.

  Ajoute une nouvelle règle à partir des informations renseignées en JSON.

  Request Headers:

    - Authorization – Les identifiants de l’utilisateur

  Request JSON Object:

    - 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.

    - 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 Waarp Transfer. 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é.

    - preTasks (array) –

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

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

      - `args` (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.

      - `args` (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.

      - `args` (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.

  Status Codes:

    - 201 Created – La règle a été créée avec succès

    - 400 Bad Request – Un ou plusieurs des paramètres de la règle sont invalides

    - 401 Unauthorized – Authentification d’utilisateur invalide

  Response Headers:

    - Location – Le chemin d’accès de la nouvelle règle créée

  Exemple de requête

      POST https://my_waarp_transfer.net/api/rules HTTP/1.1
      Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
      Content-Type: application/json
      Content-Length: 736

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

  Exemple de réponse

      HTTP/1.1 201 CREATED
      Location: https://my_waarp_transfer.net/api/rules/règle_1