Update Rate Limit Rule
Edit a rate-limit rule. This is a full-record PUT, not a patch: name is always required, and any field you omit reverts to its zero value / default (e.g. an omitted action coerces to block, an omitted requests_per_window resets to 100, omitted conditions clears them). Send the complete intended state.
Counters in Redis aren't reset by changes — bumping requests_per_window from 100 to 200 means clients currently throttled (counter ≥ 100) stay throttled until the window rolls. To reset, delete and recreate.
Changes propagate to every tunnel-server within ~30 seconds (the rule-cache reload interval).
Path parameters
Request body
The mutable fields are name (required), description, conditions, requests_per_window, window_size_seconds, action, status, and priority. Conditions use the same vocabulary as firewall policies (source_ip, country, asn, browser, user_agent, endpoint, path, method, header, cookie, protocol, port) and fully replace the rule's existing conditions — send the complete set every time (an empty/omitted array clears them). The legacy single-IP source_ip field is still accepted and auto-promoted to a source_ip condition.
The endpoint is fixed at creation — the original endpoint_id is always preserved, so it cannot be changed via update. Unknown JSON fields (including endpoint_uuid) are rejected with 400.
Response (200 OK)
Updated rule (full record).
Errors
source_ip, or unknown JSON field.custom_rate_limits.