What changed
Producer-side tools call this additive. It breaks exhaustive switches, strict parsers and generated client enums.
Affects conditionGroup[].conditions[].type on GET /v1/security/firewall/bypass/rules.
New value: response_header.
can now return "response_header"
Who is affected
Code that reads GET /v1/security/firewall/bypass/rules (conditionGroup[].conditions[].type).
Before and after
| Where | Before | After |
|---|---|---|
| GET /v1/security/firewall/bypass/rules · conditionGroup[].conditions[].type | "bot_category", "bot_name", "bot_protection", "bot_status", "cookie", "domain_environment", "environment", "geo_as_number", "geo_city", "geo_continent", "geo_country", "geo_country_region", "header", "host", "ip_address", "ja3_digest", "ja4_digest", "method", "path", "protocol", "query", "rate_limit_api_id", "raw_path", "region", "response_code", "route", "ruleset", "scheme", "server_action", "shared_condition", "target_path", "traffic_source", "trusted_source", "user_agent" | "bot_category", "bot_name", "bot_protection", "bot_status", "cookie", "domain_environment", "environment", "geo_as_number", "geo_city", "geo_continent", "geo_country", "geo_country_region", "header", "host", "ip_address", "ja3_digest", "ja4_digest", "method", "path", "protocol", "query", "rate_limit_api_id", "raw_path", "region", "response_code", "response_header", "route", "ruleset", "scheme", "server_action", "shared_condition", "target_path", "traffic_source", "trusted_source", "user_agent" |
| GET /v1/security/firewall/bypass/rules · rules[].conditionGroup[].conditions[].type | "bot_category", "bot_name", "bot_protection", "bot_status", "cookie", "domain_environment", "environment", "geo_as_number", "geo_city", "geo_continent", "geo_country", "geo_country_region", "header", "host", "ip_address", "ja3_digest", "ja4_digest", "method", "path", "protocol", "query", "rate_limit_api_id", "raw_path", "region", "response_code", "route", "ruleset", "scheme", "server_action", "shared_condition", "target_path", "traffic_source", "trusted_source", "user_agent" | "bot_category", "bot_name", "bot_protection", "bot_status", "cookie", "domain_environment", "environment", "geo_as_number", "geo_city", "geo_continent", "geo_country", "geo_country_region", "header", "host", "ip_address", "ja3_digest", "ja4_digest", "method", "path", "protocol", "query", "rate_limit_api_id", "raw_path", "region", "response_code", "response_header", "route", "ruleset", "scheme", "server_action", "shared_condition", "target_path", "traffic_source", "trusted_source", "user_agent" |
| PUT /v1/security/firewall/bypass/rules · conditionGroup[].conditions[].type | "bot_category", "bot_name", "bot_protection", "bot_status", "cookie", "domain_environment", "environment", "geo_as_number", "geo_city", "geo_continent", "geo_country", "geo_country_region", "header", "host", "ip_address", "ja3_digest", "ja4_digest", "method", "path", "protocol", "query", "rate_limit_api_id", "raw_path", "region", "response_code", "route", "ruleset", "scheme", "server_action", "shared_condition", "target_path", "traffic_source", "trusted_source", "user_agent" | "bot_category", "bot_name", "bot_protection", "bot_status", "cookie", "domain_environment", "environment", "geo_as_number", "geo_city", "geo_continent", "geo_country", "geo_country_region", "header", "host", "ip_address", "ja3_digest", "ja4_digest", "method", "path", "protocol", "query", "rate_limit_api_id", "raw_path", "region", "response_code", "response_header", "route", "ruleset", "scheme", "server_action", "shared_condition", "target_path", "traffic_source", "trusted_source", "user_agent" |
| POST /v1/security/firewall/bypass/rules · conditionGroup[].conditions[].type | "bot_category", "bot_name", "bot_protection", "bot_status", "cookie", "domain_environment", "environment", "geo_as_number", "geo_city", "geo_continent", "geo_country", "geo_country_region", "header", "host", "ip_address", "ja3_digest", "ja4_digest", "method", "path", "protocol", "query", "rate_limit_api_id", "raw_path", "region", "response_code", "route", "ruleset", "scheme", "server_action", "shared_condition", "target_path", "traffic_source", "trusted_source", "user_agent" | "bot_category", "bot_name", "bot_protection", "bot_status", "cookie", "domain_environment", "environment", "geo_as_number", "geo_city", "geo_continent", "geo_country", "geo_country_region", "header", "host", "ip_address", "ja3_digest", "ja4_digest", "method", "path", "protocol", "query", "rate_limit_api_id", "raw_path", "region", "response_code", "response_header", "route", "ruleset", "scheme", "server_action", "shared_condition", "target_path", "traffic_source", "trusted_source", "user_agent" |
| GET /v1/security/firewall/config · active.conditions[].conditionGroup[].conditions[].type | "bot_category", "bot_name", "bot_protection", "bot_status", "cookie", "domain_environment", "environment", "geo_as_number", "geo_city", "geo_continent", "geo_country", "geo_country_region", "header", "host", "ip_address", "ja3_digest", "ja4_digest", "method", "path", "protocol", "query", "rate_limit_api_id", "raw_path", "region", "response_code", "route", "ruleset", "scheme", "server_action", "shared_condition", "target_path", "traffic_source", "trusted_source", "user_agent" | "bot_category", "bot_name", "bot_protection", "bot_status", "cookie", "domain_environment", "environment", "geo_as_number", "geo_city", "geo_continent", "geo_country", "geo_country_region", "header", "host", "ip_address", "ja3_digest", "ja4_digest", "method", "path", "protocol", "query", "rate_limit_api_id", "raw_path", "region", "response_code", "response_header", "route", "ruleset", "scheme", "server_action", "shared_condition", "target_path", "traffic_source", "trusted_source", "user_agent" |
| GET /v1/security/firewall/config · active.rules[].conditionGroup[].conditions[].type | "bot_category", "bot_name", "bot_protection", "bot_status", "cookie", "domain_environment", "environment", "geo_as_number", "geo_city", "geo_continent", "geo_country", "geo_country_region", "header", "host", "ip_address", "ja3_digest", "ja4_digest", "method", "path", "protocol", "query", "rate_limit_api_id", "raw_path", "region", "response_code", "route", "ruleset", "scheme", "server_action", "shared_condition", "target_path", "traffic_source", "trusted_source", "user_agent" | "bot_category", "bot_name", "bot_protection", "bot_status", "cookie", "domain_environment", "environment", "geo_as_number", "geo_city", "geo_continent", "geo_country", "geo_country_region", "header", "host", "ip_address", "ja3_digest", "ja4_digest", "method", "path", "protocol", "query", "rate_limit_api_id", "raw_path", "region", "response_code", "response_header", "route", "ruleset", "scheme", "server_action", "shared_condition", "target_path", "traffic_source", "trusted_source", "user_agent" |
| GET /v1/security/firewall/config · active.rulesets[].conditionGroup[].conditions[].type | "bot_category", "bot_name", "bot_protection", "bot_status", "cookie", "domain_environment", "environment", "geo_as_number", "geo_city", "geo_continent", "geo_country", "geo_country_region", "header", "host", "ip_address", "ja3_digest", "ja4_digest", "method", "path", "protocol", "query", "rate_limit_api_id", "raw_path", "region", "response_code", "route", "ruleset", "scheme", "server_action", "shared_condition", "target_path", "traffic_source", "trusted_source", "user_agent" | "bot_category", "bot_name", "bot_protection", "bot_status", "cookie", "domain_environment", "environment", "geo_as_number", "geo_city", "geo_continent", "geo_country", "geo_country_region", "header", "host", "ip_address", "ja3_digest", "ja4_digest", "method", "path", "protocol", "query", "rate_limit_api_id", "raw_path", "region", "response_code", "response_header", "route", "ruleset", "scheme", "server_action", "shared_condition", "target_path", "traffic_source", "trusted_source", "user_agent" |
| GET /v1/security/firewall/config · draft.conditions[].conditionGroup[].conditions[].type | "bot_category", "bot_name", "bot_protection", "bot_status", "cookie", "domain_environment", "environment", "geo_as_number", "geo_city", "geo_continent", "geo_country", "geo_country_region", "header", "host", "ip_address", "ja3_digest", "ja4_digest", "method", "path", "protocol", "query", "rate_limit_api_id", "raw_path", "region", "response_code", "route", "ruleset", "scheme", "server_action", "shared_condition", "target_path", "traffic_source", "trusted_source", "user_agent" | "bot_category", "bot_name", "bot_protection", "bot_status", "cookie", "domain_environment", "environment", "geo_as_number", "geo_city", "geo_continent", "geo_country", "geo_country_region", "header", "host", "ip_address", "ja3_digest", "ja4_digest", "method", "path", "protocol", "query", "rate_limit_api_id", "raw_path", "region", "response_code", "response_header", "route", "ruleset", "scheme", "server_action", "shared_condition", "target_path", "traffic_source", "trusted_source", "user_agent" |
| GET /v1/security/firewall/config · draft.rules[].conditionGroup[].conditions[].type | "bot_category", "bot_name", "bot_protection", "bot_status", "cookie", "domain_environment", "environment", "geo_as_number", "geo_city", "geo_continent", "geo_country", "geo_country_region", "header", "host", "ip_address", "ja3_digest", "ja4_digest", "method", "path", "protocol", "query", "rate_limit_api_id", "raw_path", "region", "response_code", "route", "ruleset", "scheme", "server_action", "shared_condition", "target_path", "traffic_source", "trusted_source", "user_agent" | "bot_category", "bot_name", "bot_protection", "bot_status", "cookie", "domain_environment", "environment", "geo_as_number", "geo_city", "geo_continent", "geo_country", "geo_country_region", "header", "host", "ip_address", "ja3_digest", "ja4_digest", "method", "path", "protocol", "query", "rate_limit_api_id", "raw_path", "region", "response_code", "response_header", "route", "ruleset", "scheme", "server_action", "shared_condition", "target_path", "traffic_source", "trusted_source", "user_agent" |
| GET /v1/security/firewall/config · draft.rulesets[].conditionGroup[].conditions[].type | "bot_category", "bot_name", "bot_protection", "bot_status", "cookie", "domain_environment", "environment", "geo_as_number", "geo_city", "geo_continent", "geo_country", "geo_country_region", "header", "host", "ip_address", "ja3_digest", "ja4_digest", "method", "path", "protocol", "query", "rate_limit_api_id", "raw_path", "region", "response_code", "route", "ruleset", "scheme", "server_action", "shared_condition", "target_path", "traffic_source", "trusted_source", "user_agent" | "bot_category", "bot_name", "bot_protection", "bot_status", "cookie", "domain_environment", "environment", "geo_as_number", "geo_city", "geo_continent", "geo_country", "geo_country_region", "header", "host", "ip_address", "ja3_digest", "ja4_digest", "method", "path", "protocol", "query", "rate_limit_api_id", "raw_path", "region", "response_code", "response_header", "route", "ruleset", "scheme", "server_action", "shared_condition", "target_path", "traffic_source", "trusted_source", "user_agent" |
| GET /v1/security/firewall/config · versions[].conditions[].conditionGroup[].conditions[].type | "bot_category", "bot_name", "bot_protection", "bot_status", "cookie", "domain_environment", "environment", "geo_as_number", "geo_city", "geo_continent", "geo_country", "geo_country_region", "header", "host", "ip_address", "ja3_digest", "ja4_digest", "method", "path", "protocol", "query", "rate_limit_api_id", "raw_path", "region", "response_code", "route", "ruleset", "scheme", "server_action", "shared_condition", "target_path", "traffic_source", "trusted_source", "user_agent" | "bot_category", "bot_name", "bot_protection", "bot_status", "cookie", "domain_environment", "environment", "geo_as_number", "geo_city", "geo_continent", "geo_country", "geo_country_region", "header", "host", "ip_address", "ja3_digest", "ja4_digest", "method", "path", "protocol", "query", "rate_limit_api_id", "raw_path", "region", "response_code", "response_header", "route", "ruleset", "scheme", "server_action", "shared_condition", "target_path", "traffic_source", "trusted_source", "user_agent" |
| GET /v1/security/firewall/config · versions[].rules[].conditionGroup[].conditions[].type | "bot_category", "bot_name", "bot_protection", "bot_status", "cookie", "domain_environment", "environment", "geo_as_number", "geo_city", "geo_continent", "geo_country", "geo_country_region", "header", "host", "ip_address", "ja3_digest", "ja4_digest", "method", "path", "protocol", "query", "rate_limit_api_id", "raw_path", "region", "response_code", "route", "ruleset", "scheme", "server_action", "shared_condition", "target_path", "traffic_source", "trusted_source", "user_agent" | "bot_category", "bot_name", "bot_protection", "bot_status", "cookie", "domain_environment", "environment", "geo_as_number", "geo_city", "geo_continent", "geo_country", "geo_country_region", "header", "host", "ip_address", "ja3_digest", "ja4_digest", "method", "path", "protocol", "query", "rate_limit_api_id", "raw_path", "region", "response_code", "response_header", "route", "ruleset", "scheme", "server_action", "shared_condition", "target_path", "traffic_source", "trusted_source", "user_agent" |
| GET /v1/security/firewall/config · versions[].rulesets[].conditionGroup[].conditions[].type | "bot_category", "bot_name", "bot_protection", "bot_status", "cookie", "domain_environment", "environment", "geo_as_number", "geo_city", "geo_continent", "geo_country", "geo_country_region", "header", "host", "ip_address", "ja3_digest", "ja4_digest", "method", "path", "protocol", "query", "rate_limit_api_id", "raw_path", "region", "response_code", "route", "ruleset", "scheme", "server_action", "shared_condition", "target_path", "traffic_source", "trusted_source", "user_agent" | "bot_category", "bot_name", "bot_protection", "bot_status", "cookie", "domain_environment", "environment", "geo_as_number", "geo_city", "geo_continent", "geo_country", "geo_country_region", "header", "host", "ip_address", "ja3_digest", "ja4_digest", "method", "path", "protocol", "query", "rate_limit_api_id", "raw_path", "region", "response_code", "response_header", "route", "ruleset", "scheme", "server_action", "shared_condition", "target_path", "traffic_source", "trusted_source", "user_agent" |
| PUT /v1/security/firewall/config · active.conditions[].conditionGroup[].conditions[].type | "bot_category", "bot_name", "bot_protection", "bot_status", "cookie", "domain_environment", "environment", "geo_as_number", "geo_city", "geo_continent", "geo_country", "geo_country_region", "header", "host", "ip_address", "ja3_digest", "ja4_digest", "method", "path", "protocol", "query", "rate_limit_api_id", "raw_path", "region", "response_code", "route", "ruleset", "scheme", "server_action", "shared_condition", "target_path", "traffic_source", "trusted_source", "user_agent" | "bot_category", "bot_name", "bot_protection", "bot_status", "cookie", "domain_environment", "environment", "geo_as_number", "geo_city", "geo_continent", "geo_country", "geo_country_region", "header", "host", "ip_address", "ja3_digest", "ja4_digest", "method", "path", "protocol", "query", "rate_limit_api_id", "raw_path", "region", "response_code", "response_header", "route", "ruleset", "scheme", "server_action", "shared_condition", "target_path", "traffic_source", "trusted_source", "user_agent" |
| PUT /v1/security/firewall/config · active.rules[].conditionGroup[].conditions[].type | "bot_category", "bot_name", "bot_protection", "bot_status", "cookie", "domain_environment", "environment", "geo_as_number", "geo_city", "geo_continent", "geo_country", "geo_country_region", "header", "host", "ip_address", "ja3_digest", "ja4_digest", "method", "path", "protocol", "query", "rate_limit_api_id", "raw_path", "region", "response_code", "route", "ruleset", "scheme", "server_action", "shared_condition", "target_path", "traffic_source", "trusted_source", "user_agent" | "bot_category", "bot_name", "bot_protection", "bot_status", "cookie", "domain_environment", "environment", "geo_as_number", "geo_city", "geo_continent", "geo_country", "geo_country_region", "header", "host", "ip_address", "ja3_digest", "ja4_digest", "method", "path", "protocol", "query", "rate_limit_api_id", "raw_path", "region", "response_code", "response_header", "route", "ruleset", "scheme", "server_action", "shared_condition", "target_path", "traffic_source", "trusted_source", "user_agent" |
| PUT /v1/security/firewall/config · active.rulesets[].conditionGroup[].conditions[].type | "bot_category", "bot_name", "bot_protection", "bot_status", "cookie", "domain_environment", "environment", "geo_as_number", "geo_city", "geo_continent", "geo_country", "geo_country_region", "header", "host", "ip_address", "ja3_digest", "ja4_digest", "method", "path", "protocol", "query", "rate_limit_api_id", "raw_path", "region", "response_code", "route", "ruleset", "scheme", "server_action", "shared_condition", "target_path", "traffic_source", "trusted_source", "user_agent" | "bot_category", "bot_name", "bot_protection", "bot_status", "cookie", "domain_environment", "environment", "geo_as_number", "geo_city", "geo_continent", "geo_country", "geo_country_region", "header", "host", "ip_address", "ja3_digest", "ja4_digest", "method", "path", "protocol", "query", "rate_limit_api_id", "raw_path", "region", "response_code", "response_header", "route", "ruleset", "scheme", "server_action", "shared_condition", "target_path", "traffic_source", "trusted_source", "user_agent" |
| GET /v1/security/firewall/config/{configVersion} · conditions[].conditionGroup[].conditions[].type | "bot_category", "bot_name", "bot_protection", "bot_status", "cookie", "domain_environment", "environment", "geo_as_number", "geo_city", "geo_continent", "geo_country", "geo_country_region", "header", "host", "ip_address", "ja3_digest", "ja4_digest", "method", "path", "protocol", "query", "rate_limit_api_id", "raw_path", "region", "response_code", "route", "ruleset", "scheme", "server_action", "shared_condition", "target_path", "traffic_source", "trusted_source", "user_agent" | "bot_category", "bot_name", "bot_protection", "bot_status", "cookie", "domain_environment", "environment", "geo_as_number", "geo_city", "geo_continent", "geo_country", "geo_country_region", "header", "host", "ip_address", "ja3_digest", "ja4_digest", "method", "path", "protocol", "query", "rate_limit_api_id", "raw_path", "region", "response_code", "response_header", "route", "ruleset", "scheme", "server_action", "shared_condition", "target_path", "traffic_source", "trusted_source", "user_agent" |
| GET /v1/security/firewall/config/{configVersion} · rules[].conditionGroup[].conditions[].type | "bot_category", "bot_name", "bot_protection", "bot_status", "cookie", "domain_environment", "environment", "geo_as_number", "geo_city", "geo_continent", "geo_country", "geo_country_region", "header", "host", "ip_address", "ja3_digest", "ja4_digest", "method", "path", "protocol", "query", "rate_limit_api_id", "raw_path", "region", "response_code", "route", "ruleset", "scheme", "server_action", "shared_condition", "target_path", "traffic_source", "trusted_source", "user_agent" | "bot_category", "bot_name", "bot_protection", "bot_status", "cookie", "domain_environment", "environment", "geo_as_number", "geo_city", "geo_continent", "geo_country", "geo_country_region", "header", "host", "ip_address", "ja3_digest", "ja4_digest", "method", "path", "protocol", "query", "rate_limit_api_id", "raw_path", "region", "response_code", "response_header", "route", "ruleset", "scheme", "server_action", "shared_condition", "target_path", "traffic_source", "trusted_source", "user_agent" |
| GET /v1/security/firewall/config/{configVersion} · rulesets[].conditionGroup[].conditions[].type | "bot_category", "bot_name", "bot_protection", "bot_status", "cookie", "domain_environment", "environment", "geo_as_number", "geo_city", "geo_continent", "geo_country", "geo_country_region", "header", "host", "ip_address", "ja3_digest", "ja4_digest", "method", "path", "protocol", "query", "rate_limit_api_id", "raw_path", "region", "response_code", "route", "ruleset", "scheme", "server_action", "shared_condition", "target_path", "traffic_source", "trusted_source", "user_agent" | "bot_category", "bot_name", "bot_protection", "bot_status", "cookie", "domain_environment", "environment", "geo_as_number", "geo_city", "geo_continent", "geo_country", "geo_country_region", "header", "host", "ip_address", "ja3_digest", "ja4_digest", "method", "path", "protocol", "query", "rate_limit_api_id", "raw_path", "region", "response_code", "response_header", "route", "ruleset", "scheme", "server_action", "shared_condition", "target_path", "traffic_source", "trusted_source", "user_agent" |
| POST /v1/security/firewall/config/{configVersion}/activate · conditions[].conditionGroup[].conditions[].type | "bot_category", "bot_name", "bot_protection", "bot_status", "cookie", "domain_environment", "environment", "geo_as_number", "geo_city", "geo_continent", "geo_country", "geo_country_region", "header", "host", "ip_address", "ja3_digest", "ja4_digest", "method", "path", "protocol", "query", "rate_limit_api_id", "raw_path", "region", "response_code", "route", "ruleset", "scheme", "server_action", "shared_condition", "target_path", "traffic_source", "trusted_source", "user_agent" | "bot_category", "bot_name", "bot_protection", "bot_status", "cookie", "domain_environment", "environment", "geo_as_number", "geo_city", "geo_continent", "geo_country", "geo_country_region", "header", "host", "ip_address", "ja3_digest", "ja4_digest", "method", "path", "protocol", "query", "rate_limit_api_id", "raw_path", "region", "response_code", "response_header", "route", "ruleset", "scheme", "server_action", "shared_condition", "target_path", "traffic_source", "trusted_source", "user_agent" |
| POST /v1/security/firewall/config/{configVersion}/activate · rules[].conditionGroup[].conditions[].type | "bot_category", "bot_name", "bot_protection", "bot_status", "cookie", "domain_environment", "environment", "geo_as_number", "geo_city", "geo_continent", "geo_country", "geo_country_region", "header", "host", "ip_address", "ja3_digest", "ja4_digest", "method", "path", "protocol", "query", "rate_limit_api_id", "raw_path", "region", "response_code", "route", "ruleset", "scheme", "server_action", "shared_condition", "target_path", "traffic_source", "trusted_source", "user_agent" | "bot_category", "bot_name", "bot_protection", "bot_status", "cookie", "domain_environment", "environment", "geo_as_number", "geo_city", "geo_continent", "geo_country", "geo_country_region", "header", "host", "ip_address", "ja3_digest", "ja4_digest", "method", "path", "protocol", "query", "rate_limit_api_id", "raw_path", "region", "response_code", "response_header", "route", "ruleset", "scheme", "server_action", "shared_condition", "target_path", "traffic_source", "trusted_source", "user_agent" |
| POST /v1/security/firewall/config/{configVersion}/activate · rulesets[].conditionGroup[].conditions[].type | "bot_category", "bot_name", "bot_protection", "bot_status", "cookie", "domain_environment", "environment", "geo_as_number", "geo_city", "geo_continent", "geo_country", "geo_country_region", "header", "host", "ip_address", "ja3_digest", "ja4_digest", "method", "path", "protocol", "query", "rate_limit_api_id", "raw_path", "region", "response_code", "route", "ruleset", "scheme", "server_action", "shared_condition", "target_path", "traffic_source", "trusted_source", "user_agent" | "bot_category", "bot_name", "bot_protection", "bot_status", "cookie", "domain_environment", "environment", "geo_as_number", "geo_city", "geo_continent", "geo_country", "geo_country_region", "header", "host", "ip_address", "ja3_digest", "ja4_digest", "method", "path", "protocol", "query", "rate_limit_api_id", "raw_path", "region", "response_code", "response_header", "route", "ruleset", "scheme", "server_action", "shared_condition", "target_path", "traffic_source", "trusted_source", "user_agent" |
| GET /v10/projects · projects[].security.firewallRoutes[].response_has[].type | "response_status" | "response_header", "response_status" |
| GET /v10/projects · security.firewallRoutes[].response_has[].type | "response_status" | "response_header", "response_status" |
Code that breaks
switch (response.conditionGroup[0].conditions[0].type) {
// existing branches …
// no branch for "response_header"
default:
throw new Error("unexpected type");
}Based on Vercel’s published API specification. How severity is decided.