What changed
Producer-side tools call this additive. It breaks exhaustive switches, strict parsers and generated client enums.
Affects active.conditions[].conditionGroup[].conditions[].type on GET /v1/security/firewall/config.
New value: response_code.
can now return "response_code"
Who is affected
Code that reads GET /v1/security/firewall/config (active.conditions[].conditionGroup[].conditions[].type).
Before and after
| Where | Before | After |
|---|---|---|
| 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", "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", "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", "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", "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", "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", "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", "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", "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", "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", "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", "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", "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", "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", "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", "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", "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", "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", "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", "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", "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", "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", "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", "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", "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", "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", "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", "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", "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", "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", "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", "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", "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", "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", "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", "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", "route", "ruleset", "scheme", "server_action", "shared_condition", "target_path", "traffic_source", "trusted_source", "user_agent" |
Code that breaks
switch (response.active.conditions[0].conditionGroup[0].conditions[0].type) {
// existing branches …
// no branch for "response_code"
default:
throw new Error("unexpected type");
}Based on Vercel’s published API specification. How severity is decided.