Requête exemple
Réponse exemple
PATCH/v1/rules/{id}Met à jour partiellement une règle d'automatisation existante.Met à jour partiellement une règle d'automatisation. Seuls les champs explicitement fournis dans le corps sont modifiés ; les autres restent inchangés. Si le corps ne contient aucun champ modifiable reconnu, la requête échoue avec 400 validation_error. La règle complète mise à jour est renvoyée en réponse.
Comportement notable : lorsque vous fournissez action_config, sa validité est vérifiée par rapport au type d'action effectif (celui fourni dans la même requête via action_type, sinon aucun contrôle si action_type n'est pas présent dans le corps). Selon le type, certaines clés deviennent obligatoires (voir « Validation de action_config »).
Authentification
Cette requête nécessite une clé API valide dont le jeton porte le scope transfers:manage. Sans ce scope, la requête renvoie 403 scope_missing. Cet endpoint honore l'en-tête Idempotency-Key : une seconde requête identique renvoie la réponse mémorisée.
Corps de la requête
| Champ | Type | Requis | Description |
|---|---|---|---|
| name | string | Non | Nouveau nom. Ignoré si vide après suppression des espaces. |
| description | string | Non | Nouvelle description. Une chaîne vide la remet à null. |
| is_enabled | boolean | Non | Active ou désactive la règle. |
| trigger_event | string | Non | Nouvel événement déclencheur. Doit faire partie des valeurs autorisées. |
| trigger_conditions | object | null | Non | Filtres sur le payload. Une valeur non-objet est convertie en null. |
| action_type | string | Non | Nouveau type d'action. Doit faire partie des valeurs autorisées. |
| action_config | object | Non | Configuration de l'action. Validée selon le action_type effectif. |
Valeurs autorisées pour trigger_event : transfer.created, transfer.e2e_created, transfer.downloaded, transfer.first_download, transfer.expired, transfer.limit_reached, transfer.geo_blocked, transfer.password_failed, transfer.approved, transfer.rejected, transfer.approval_requested, api_key.created, api_key.revoked, api_key.rotated, api_key.expired, request.created, request.deleted, reply.received, signature.completed, request.submission_received, identity.verified.
Valeurs autorisées pour action_type : webhook, email_recipient, email_workspace, slack_notify, archive_transfer, tag_transfer, untag_transfer, extend_expiry, trigger_webhook.
Validation de action_config
| action_type | Clé requise dans action_config | Contrainte |
|---|---|---|
| webhook / trigger_webhook | url | Chaîne non vide et URL valide. |
| slack_notify | webhook_url | Chaîne non vide. |
| tag_transfer / untag_transfer | tag | Chaîne non vide (après trim). |
| extend_expiry | hours ou days | Au moins une valeur numérique strictement positive. |
Réponse
Retourne l'objet règle complet après mise à jour, avec les mêmes champs que GET /v1/rules/{id}. Les compteurs trigger_count et last_triggered_at ne sont pas affectés par une mise à jour de configuration.
Erreurs
| Code | Quand | Résolution |
|---|---|---|
| 400 validation_error | Aucun champ modifiable fourni, trigger_event/action_type non autorisé, ou action_config invalide pour le type d'action. | Vérifiez les valeurs envoyées et les clés requises de action_config. |
| 401 invalid_api_key | Clé API absente, invalide, expirée ou révoquée. | Vérifiez l'en-tête Authorization. |
| 403 scope_missing | Le jeton ne porte pas le scope transfers:manage. | Générez une clé incluant transfers:manage. |
| 404 not_found | Aucune règle avec cet id dans l'espace de travail. | Vérifiez l'identifiant et l'appartenance à votre espace de travail. |
| 429 rate_limited | Quota de requêtes d'écriture dépassé. | Patientez selon l'en-tête Retry-After. |
| 500 internal_error | Erreur interne lors de la mise à jour. | Réessayez ; contactez le support avec le request_id si persistant. |
Voir aussi
- GET /v1/rules/{id} — récupérer l'état actuel avant mise à jour.
- POST /v1/rules — créer une nouvelle règle.
- DELETE /v1/rules/{id} — supprimer la règle.