Actualizar la configuración de protección frente a ataques
PATCH /v1/attack-protection · permiso attack-protection:write
Actualiza el objeto de protección frente a ataques con un parche de fusión JSON (application/merge-patch+json, RFC 7396). If-Match es obligatorio: si falta, se devuelve 428; si el ETag está desactualizado, 412. Un parche que no cambia nada no escribe nada y conserva el ETag.
Solicitud
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
If-Match |
encabezado | sí | El ETag del objeto tal como se leyó por última vez. Si falta: 428; si está desactualizado: 412. |
| cuerpo | objeto | sí | El parche de fusión. Los campos se enumeran en Reemplazar la configuración de protección frente a ataques. |
Comportamiento
- Las secciones se fusionan de forma recursiva: envíe solo los campos que cambia.
nullelimina un campo o una sección completa, que vuelve así a su valor predeterminado. Las listas comoallowlistyallowed_countriesse reemplazan por completo.- El objeto fusionado se valida exactamente igual que un cuerpo de
PUT.
Respuesta
200 OK con el objeto, como en Obtener la configuración de protección frente a ataques, y el nuevo ETag.
Errores
| HTTP | código | Cuándo |
|---|---|---|
| 400 | unknown_field |
Una sección o un campo no forma parte del objeto. errors[] enumera los punteros. |
| 400 | malformed_request |
El cuerpo no es JSON válido o el encabezado If-Match está mal formado. |
| 401 | unauthenticated |
La credencial falta, no es válida o fue revocada. |
| 403 | insufficient_permissions |
La credencial no tiene attack-protection:write. |
| 403 | plan_feature_unavailable |
risk_policy.mode es enforce y el plan no lo incluye; el cuerpo contiene feature y required_plan. |
| 412 | precondition_failed |
El objeto cambió desde que lo leyó. Léalo de nuevo y reintente. |
| 413 | payload_too_large |
El objeto supera 32 KiB. |
| 422 | validation_failed |
En el objeto fusionado, un valor tiene un tipo incorrecto o está fuera de rango, o block_threshold no es mayor que challenge_threshold. errors[] enumera los punteros. |
| 422 | below_security_floor |
Un valor está por debajo del mínimo de seguridad. Cada entrada de errors[] indica en detail el campo y su mínimo. |
| 422 | allowlist_range_too_broad |
Un prefijo de la lista de permitidos es más amplio que /8 (IPv4) o /32 (IPv6). |
| 428 | precondition_required |
Falta If-Match. |
| 429 | rate_limited |
Se superó el límite de frecuencia; reintente después del periodo indicado en Retry-After. |
| 503 | service_unavailable |
Una dependencia no está disponible temporalmente; reintente después del periodo indicado en Retry-After. |
Si hay varios tipos de error, solo se devuelve el más grave, en este orden: unknown_field, validation_failed, below_security_floor, allowlist_range_too_broad, plan_feature_unavailable. Los valores escritos nunca se devuelven en la respuesta.
Ejemplo
curl -X PATCH https://api.eu.keenauth.com/v1/attack-protection \
-H "Authorization: Bearer $KEENAUTH_SECRET_KEY" \
-H "Content-Type: application/merge-patch+json" \
-H 'If-Match: "3f1c9a0b5d7e2a4c6b8d0e1f2a3b4c5d"' \
-d '{"risk_policy": {"block_threshold": 9}, "sms_protection": null}'