Remplacer le thème de l'application

PUT /v1/branding/applications/{application_id} · permission branding:write

Remplace tout le brouillon de thème de la portée ; les jetons absents du corps sont effacés. {"theme":{}} efface la portée. If-Match porte l'ETag de cette portée (issu du GET correspondant), pas celui de l'environnement.

Requête

Champ Type Obligatoire Description
application_id chemin oui Identifiant app_….
If-Match en-tête oui L'ETag du brouillon lu en dernier ("0" s'il n'a jamais été écrit). Absent : 428 ; périmé : 412.
theme objet oui BrandingTheme complet de la portée.

Réponse

200 OK avec le brouillon de thème de la portée et son ETag (chaque portée a sa propre version).

{
  "theme": {"logo": "logo_acme", "light": {"color": {"primary": "#0a3d91"}}},
  "updated_at": "2026-10-05T09:30:00.123456Z"
}

Erreurs

HTTP code Quand
400 unknown_field Le corps contient un champ inconnu ou n'est pas un objet JSON.
404 not_found L'application n'existe pas dans cet environnement, ou l'identifiant est mal formé.
412 precondition_failed If-Match ne correspond pas à la version actuelle du brouillon.
422 validation_failed Une valeur de jeton est invalide (invalid_value, out_of_range, unknown_token) ; pointer désigne le jeton, p. ex. /theme/light/color/primary.
428 precondition_required L'en-tête If-Match est absent.
401 unauthenticated L'identifiant est absent, invalide ou révoqué.
403 insufficient_permissions L'identifiant n'a pas la permission requise.
429 rate_limited La limite de débit est dépassée ; réessayez après le délai Retry-After.
503 service_unavailable Une dépendance est temporairement indisponible ; réessayez après le délai Retry-After.

Exemple

curl -X PUT https://api.eu.keenauth.com/v1/branding/applications/app_01jbexample0000000000000000 \
  -H "Authorization: Bearer $KEENAUTH_SECRET_KEY" \
  -H "Content-Type: application/json" \
  -H 'If-Match: "1"' \
  -d '{"theme":{"logo":"logo_acme","light":{"color":{"primary":"#0a3d91"}}}}'