# Rules ## List account or zone routing rules `email_routing.rules.list(RuleListParams**kwargs) -> SyncV4PagePaginationArray[AccountRule]` **get** `/{accounts_or_zones}/{account_or_zone_id}/email/routing/rules` Lists existing routing rules across all zones in the account or zone. ### Parameters - `account_id: Optional[str]` The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. - `zone_id: Optional[str]` The Zone ID to use for this endpoint. Mutually exclusive with the Account ID. - `enabled: Optional[Literal[true, false]]` Filter by enabled routing rules. - `true` - `false` - `page: Optional[float]` Page number of paginated results. - `per_page: Optional[float]` Maximum number of results per page. ### Returns - `class AccountRule: …` - `id: Optional[str]` Routing rule identifier. - `actions: Optional[List[Action]]` List actions patterns. - `type: Literal["drop", "forward", "worker"]` Type of supported action. - `"drop"` - `"forward"` - `"worker"` - `value: Optional[List[str]]` - `enabled: Optional[Literal[true, false]]` Routing rule status. - `true` - `false` - `matchers: Optional[List[Matcher]]` Matching patterns to forward to your actions. - `type: Literal["all", "literal"]` Type of matcher. - `"all"` - `"literal"` - `field: Optional[Literal["to"]]` Field for type matcher. - `"to"` - `value: Optional[str]` Value for matcher. - `name: Optional[str]` Routing rule name. - `priority: Optional[float]` Priority of the routing rule. - `source: Optional[Literal["api", "wrangler"]]` Who manages the rule. `api` covers dashboard, generic API, and Terraform; `wrangler` means the rule is managed by a Worker's wrangler.jsonc. Defaults to `api` when omitted on write. - `"api"` - `"wrangler"` - `tag: Optional[str]` Routing rule tag. (Deprecated, replaced by routing rule identifier) - `zone: Optional[Zone]` Zone information for the routing rule. - `name: Optional[str]` Zone name. - `tag: Optional[str]` Zone tag. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_email=os.environ.get("CLOUDFLARE_EMAIL"), # This is the default and can be omitted api_key=os.environ.get("CLOUDFLARE_API_KEY"), # This is the default and can be omitted ) page = client.email_routing.rules.list( account_id="account_id", ) page = page.result[0] print(page.id) ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true, "result": [ { "id": "a7e6fb77503c41d8a7f3113c6918f10c", "actions": [ { "type": "forward", "value": [ "destinationaddress@example.net" ] } ], "enabled": true, "matchers": [ { "type": "literal", "field": "to", "value": "test@example.com" } ], "name": "Send to user@example.net rule.", "priority": 0, "source": "api", "tag": "a7e6fb77503c41d8a7f3113c6918f10c", "zone": { "name": "example.com", "tag": "023e105f4ecef8ad9ca31a8372d0c353" } } ], "result_info": { "count": 1, "page": 1, "per_page": 20, "total_count": 1, "total_pages": 100 } } ``` ## Get routing rule `email_routing.rules.get(strrule_identifier, RuleGetParams**kwargs) -> EmailRoutingRule` **get** `/zones/{zone_id}/email/routing/rules/{rule_identifier}` Get information for a specific routing rule already created. ### Parameters - `zone_id: str` Identifier. - `rule_identifier: str` Routing rule identifier. ### Returns - `class EmailRoutingRule: …` - `id: Optional[str]` Routing rule identifier. - `actions: Optional[List[Action]]` List actions patterns. - `type: Literal["drop", "forward", "worker"]` Type of supported action. - `"drop"` - `"forward"` - `"worker"` - `value: Optional[List[str]]` - `enabled: Optional[Literal[true, false]]` Routing rule status. - `true` - `false` - `matchers: Optional[List[Matcher]]` Matching patterns to forward to your actions. - `type: Literal["all", "literal"]` Type of matcher. - `"all"` - `"literal"` - `field: Optional[Literal["to"]]` Field for type matcher. - `"to"` - `value: Optional[str]` Value for matcher. - `name: Optional[str]` Routing rule name. - `priority: Optional[float]` Priority of the routing rule. - `source: Optional[Literal["api", "wrangler"]]` Who manages the rule. `api` covers dashboard, generic API, and Terraform; `wrangler` means the rule is managed by a Worker's wrangler.jsonc. Defaults to `api` when omitted on write. - `"api"` - `"wrangler"` - `tag: Optional[str]` Routing rule tag. (Deprecated, replaced by routing rule identifier) ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_email=os.environ.get("CLOUDFLARE_EMAIL"), # This is the default and can be omitted api_key=os.environ.get("CLOUDFLARE_API_KEY"), # This is the default and can be omitted ) email_routing_rule = client.email_routing.rules.get( rule_identifier="a7e6fb77503c41d8a7f3113c6918f10c", zone_id="023e105f4ecef8ad9ca31a8372d0c353", ) print(email_routing_rule.id) ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true, "result": { "id": "a7e6fb77503c41d8a7f3113c6918f10c", "actions": [ { "type": "forward", "value": [ "destinationaddress@example.net" ] } ], "enabled": true, "matchers": [ { "type": "literal", "field": "to", "value": "test@example.com" } ], "name": "Send to user@example.net rule.", "priority": 0, "source": "api", "tag": "a7e6fb77503c41d8a7f3113c6918f10c" } } ``` ## Create routing rule `email_routing.rules.create(RuleCreateParams**kwargs) -> EmailRoutingRule` **post** `/zones/{zone_id}/email/routing/rules` Rules consist of a set of criteria for matching emails (such as an email being sent to a specific custom email address) plus a set of actions to take on the email (like forwarding it to a specific destination address). Forward actions require all destination addresses to be verified. ### Parameters - `zone_id: str` Identifier. - `actions: Iterable[ActionParam]` List actions patterns. - `type: Literal["drop", "forward", "worker"]` Type of supported action. - `"drop"` - `"forward"` - `"worker"` - `value: Optional[List[str]]` - `matchers: Iterable[MatcherParam]` Matching patterns to forward to your actions. - `type: Literal["all", "literal"]` Type of matcher. - `"all"` - `"literal"` - `field: Optional[Literal["to"]]` Field for type matcher. - `"to"` - `value: Optional[str]` Value for matcher. - `enabled: Optional[Literal[true, false]]` Routing rule status. - `true` - `false` - `name: Optional[str]` Routing rule name. - `owner_worker_tag: Optional[str]` Public tag (script_tag) of the Worker that owns this rule. Required when `source` is `wrangler`. - `priority: Optional[float]` Priority of the routing rule. - `source: Optional[Literal["api", "wrangler"]]` Who manages the rule. `api` covers dashboard, generic API, and Terraform; `wrangler` means the rule is managed by a Worker's wrangler.jsonc. Defaults to `api` when omitted on write. - `"api"` - `"wrangler"` ### Returns - `class EmailRoutingRule: …` - `id: Optional[str]` Routing rule identifier. - `actions: Optional[List[Action]]` List actions patterns. - `type: Literal["drop", "forward", "worker"]` Type of supported action. - `"drop"` - `"forward"` - `"worker"` - `value: Optional[List[str]]` - `enabled: Optional[Literal[true, false]]` Routing rule status. - `true` - `false` - `matchers: Optional[List[Matcher]]` Matching patterns to forward to your actions. - `type: Literal["all", "literal"]` Type of matcher. - `"all"` - `"literal"` - `field: Optional[Literal["to"]]` Field for type matcher. - `"to"` - `value: Optional[str]` Value for matcher. - `name: Optional[str]` Routing rule name. - `priority: Optional[float]` Priority of the routing rule. - `source: Optional[Literal["api", "wrangler"]]` Who manages the rule. `api` covers dashboard, generic API, and Terraform; `wrangler` means the rule is managed by a Worker's wrangler.jsonc. Defaults to `api` when omitted on write. - `"api"` - `"wrangler"` - `tag: Optional[str]` Routing rule tag. (Deprecated, replaced by routing rule identifier) ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_email=os.environ.get("CLOUDFLARE_EMAIL"), # This is the default and can be omitted api_key=os.environ.get("CLOUDFLARE_API_KEY"), # This is the default and can be omitted ) email_routing_rule = client.email_routing.rules.create( zone_id="023e105f4ecef8ad9ca31a8372d0c353", actions=[{ "type": "forward" }], matchers=[{ "type": "literal" }], ) print(email_routing_rule.id) ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true, "result": { "id": "a7e6fb77503c41d8a7f3113c6918f10c", "actions": [ { "type": "forward", "value": [ "destinationaddress@example.net" ] } ], "enabled": true, "matchers": [ { "type": "literal", "field": "to", "value": "test@example.com" } ], "name": "Send to user@example.net rule.", "priority": 0, "source": "api", "tag": "a7e6fb77503c41d8a7f3113c6918f10c" } } ``` ## Update routing rule `email_routing.rules.update(strrule_identifier, RuleUpdateParams**kwargs) -> EmailRoutingRule` **put** `/zones/{zone_id}/email/routing/rules/{rule_identifier}` Update actions and matches, or enable/disable specific routing rules. Forward actions require all destination addresses to be verified. ### Parameters - `zone_id: str` Identifier. - `rule_identifier: str` Routing rule identifier. - `actions: Iterable[ActionParam]` List actions patterns. - `type: Literal["drop", "forward", "worker"]` Type of supported action. - `"drop"` - `"forward"` - `"worker"` - `value: Optional[List[str]]` - `matchers: Iterable[MatcherParam]` Matching patterns to forward to your actions. - `type: Literal["all", "literal"]` Type of matcher. - `"all"` - `"literal"` - `field: Optional[Literal["to"]]` Field for type matcher. - `"to"` - `value: Optional[str]` Value for matcher. - `enabled: Optional[Literal[true, false]]` Routing rule status. - `true` - `false` - `name: Optional[str]` Routing rule name. - `owner_worker_tag: Optional[str]` Public tag (script_tag) of the Worker that owns this rule. Required when `source` is `wrangler`. - `priority: Optional[float]` Priority of the routing rule. - `source: Optional[Literal["api", "wrangler"]]` Who manages the rule. `api` covers dashboard, generic API, and Terraform; `wrangler` means the rule is managed by a Worker's wrangler.jsonc. Defaults to `api` when omitted on write. - `"api"` - `"wrangler"` ### Returns - `class EmailRoutingRule: …` - `id: Optional[str]` Routing rule identifier. - `actions: Optional[List[Action]]` List actions patterns. - `type: Literal["drop", "forward", "worker"]` Type of supported action. - `"drop"` - `"forward"` - `"worker"` - `value: Optional[List[str]]` - `enabled: Optional[Literal[true, false]]` Routing rule status. - `true` - `false` - `matchers: Optional[List[Matcher]]` Matching patterns to forward to your actions. - `type: Literal["all", "literal"]` Type of matcher. - `"all"` - `"literal"` - `field: Optional[Literal["to"]]` Field for type matcher. - `"to"` - `value: Optional[str]` Value for matcher. - `name: Optional[str]` Routing rule name. - `priority: Optional[float]` Priority of the routing rule. - `source: Optional[Literal["api", "wrangler"]]` Who manages the rule. `api` covers dashboard, generic API, and Terraform; `wrangler` means the rule is managed by a Worker's wrangler.jsonc. Defaults to `api` when omitted on write. - `"api"` - `"wrangler"` - `tag: Optional[str]` Routing rule tag. (Deprecated, replaced by routing rule identifier) ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_email=os.environ.get("CLOUDFLARE_EMAIL"), # This is the default and can be omitted api_key=os.environ.get("CLOUDFLARE_API_KEY"), # This is the default and can be omitted ) email_routing_rule = client.email_routing.rules.update( rule_identifier="a7e6fb77503c41d8a7f3113c6918f10c", zone_id="023e105f4ecef8ad9ca31a8372d0c353", actions=[{ "type": "forward" }], matchers=[{ "type": "literal" }], ) print(email_routing_rule.id) ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true, "result": { "id": "a7e6fb77503c41d8a7f3113c6918f10c", "actions": [ { "type": "forward", "value": [ "destinationaddress@example.net" ] } ], "enabled": true, "matchers": [ { "type": "literal", "field": "to", "value": "test@example.com" } ], "name": "Send to user@example.net rule.", "priority": 0, "source": "api", "tag": "a7e6fb77503c41d8a7f3113c6918f10c" } } ``` ## Delete routing rule `email_routing.rules.delete(strrule_identifier, RuleDeleteParams**kwargs) -> EmailRoutingRule` **delete** `/zones/{zone_id}/email/routing/rules/{rule_identifier}` Delete a specific routing rule. ### Parameters - `zone_id: str` Identifier. - `rule_identifier: str` Routing rule identifier. ### Returns - `class EmailRoutingRule: …` - `id: Optional[str]` Routing rule identifier. - `actions: Optional[List[Action]]` List actions patterns. - `type: Literal["drop", "forward", "worker"]` Type of supported action. - `"drop"` - `"forward"` - `"worker"` - `value: Optional[List[str]]` - `enabled: Optional[Literal[true, false]]` Routing rule status. - `true` - `false` - `matchers: Optional[List[Matcher]]` Matching patterns to forward to your actions. - `type: Literal["all", "literal"]` Type of matcher. - `"all"` - `"literal"` - `field: Optional[Literal["to"]]` Field for type matcher. - `"to"` - `value: Optional[str]` Value for matcher. - `name: Optional[str]` Routing rule name. - `priority: Optional[float]` Priority of the routing rule. - `source: Optional[Literal["api", "wrangler"]]` Who manages the rule. `api` covers dashboard, generic API, and Terraform; `wrangler` means the rule is managed by a Worker's wrangler.jsonc. Defaults to `api` when omitted on write. - `"api"` - `"wrangler"` - `tag: Optional[str]` Routing rule tag. (Deprecated, replaced by routing rule identifier) ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_email=os.environ.get("CLOUDFLARE_EMAIL"), # This is the default and can be omitted api_key=os.environ.get("CLOUDFLARE_API_KEY"), # This is the default and can be omitted ) email_routing_rule = client.email_routing.rules.delete( rule_identifier="a7e6fb77503c41d8a7f3113c6918f10c", zone_id="023e105f4ecef8ad9ca31a8372d0c353", ) print(email_routing_rule.id) ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true, "result": { "id": "a7e6fb77503c41d8a7f3113c6918f10c", "actions": [ { "type": "forward", "value": [ "destinationaddress@example.net" ] } ], "enabled": true, "matchers": [ { "type": "literal", "field": "to", "value": "test@example.com" } ], "name": "Send to user@example.net rule.", "priority": 0, "source": "api", "tag": "a7e6fb77503c41d8a7f3113c6918f10c" } } ``` ## Domain Types ### Action - `class Action: …` Actions pattern. - `type: Literal["drop", "forward", "worker"]` Type of supported action. - `"drop"` - `"forward"` - `"worker"` - `value: Optional[List[str]]` ### Email Routing Rule - `class EmailRoutingRule: …` - `id: Optional[str]` Routing rule identifier. - `actions: Optional[List[Action]]` List actions patterns. - `type: Literal["drop", "forward", "worker"]` Type of supported action. - `"drop"` - `"forward"` - `"worker"` - `value: Optional[List[str]]` - `enabled: Optional[Literal[true, false]]` Routing rule status. - `true` - `false` - `matchers: Optional[List[Matcher]]` Matching patterns to forward to your actions. - `type: Literal["all", "literal"]` Type of matcher. - `"all"` - `"literal"` - `field: Optional[Literal["to"]]` Field for type matcher. - `"to"` - `value: Optional[str]` Value for matcher. - `name: Optional[str]` Routing rule name. - `priority: Optional[float]` Priority of the routing rule. - `source: Optional[Literal["api", "wrangler"]]` Who manages the rule. `api` covers dashboard, generic API, and Terraform; `wrangler` means the rule is managed by a Worker's wrangler.jsonc. Defaults to `api` when omitted on write. - `"api"` - `"wrangler"` - `tag: Optional[str]` Routing rule tag. (Deprecated, replaced by routing rule identifier) ### Matcher - `class Matcher: …` Matching pattern to forward your actions. - `type: Literal["all", "literal"]` Type of matcher. - `"all"` - `"literal"` - `field: Optional[Literal["to"]]` Field for type matcher. - `"to"` - `value: Optional[str]` Value for matcher. # Catch Alls ## Get catch-all rule `email_routing.rules.catch_alls.get(CatchAllGetParams**kwargs) -> CatchAllGetResponse` **get** `/zones/{zone_id}/email/routing/rules/catch_all` Get information on the default catch-all routing rule. ### Parameters - `zone_id: str` Identifier. ### Returns - `class CatchAllGetResponse: …` - `id: Optional[str]` Routing rule identifier. - `actions: Optional[List[CatchAllAction]]` List actions for the catch-all routing rule. - `type: Literal["drop", "forward", "worker"]` Type of action for catch-all rule. - `"drop"` - `"forward"` - `"worker"` - `value: Optional[List[str]]` - `enabled: Optional[Literal[true, false]]` Routing rule status. - `true` - `false` - `matchers: Optional[List[CatchAllMatcher]]` List of matchers for the catch-all routing rule. - `type: Literal["all"]` Type of matcher. Default is 'all'. - `"all"` - `name: Optional[str]` Routing rule name. - `source: Optional[Literal["api", "wrangler"]]` Who manages the rule. `api` covers dashboard, generic API, and Terraform; `wrangler` means the rule is managed by a Worker's wrangler.jsonc. Defaults to `api` when omitted on write. - `"api"` - `"wrangler"` - `tag: Optional[str]` Routing rule tag. (Deprecated, replaced by routing rule identifier) ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_email=os.environ.get("CLOUDFLARE_EMAIL"), # This is the default and can be omitted api_key=os.environ.get("CLOUDFLARE_API_KEY"), # This is the default and can be omitted ) catch_all = client.email_routing.rules.catch_alls.get( zone_id="023e105f4ecef8ad9ca31a8372d0c353", ) print(catch_all.id) ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true, "result": { "id": "a7e6fb77503c41d8a7f3113c6918f10c", "actions": [ { "type": "forward", "value": [ "destinationaddress@example.net" ] } ], "enabled": true, "matchers": [ { "type": "all" } ], "name": "Send to user@example.net rule.", "source": "api", "tag": "a7e6fb77503c41d8a7f3113c6918f10c" } } ``` ## Update catch-all rule `email_routing.rules.catch_alls.update(CatchAllUpdateParams**kwargs) -> CatchAllUpdateResponse` **put** `/zones/{zone_id}/email/routing/rules/catch_all` Enable or disable catch-all routing rule, or change action to forward to specific destination address. Forward actions require all destination addresses to be verified. ### Parameters - `zone_id: str` Identifier. - `actions: Iterable[CatchAllActionParam]` List actions for the catch-all routing rule. - `type: Literal["drop", "forward", "worker"]` Type of action for catch-all rule. - `"drop"` - `"forward"` - `"worker"` - `value: Optional[List[str]]` - `matchers: Iterable[CatchAllMatcherParam]` List of matchers for the catch-all routing rule. - `type: Literal["all"]` Type of matcher. Default is 'all'. - `"all"` - `enabled: Optional[Literal[true, false]]` Routing rule status. - `true` - `false` - `name: Optional[str]` Routing rule name. - `owner_worker_tag: Optional[str]` Public tag (script_tag) of the Worker that owns this rule. Required when `source` is `wrangler`. - `source: Optional[Literal["api", "wrangler"]]` Who manages the rule. `api` covers dashboard, generic API, and Terraform; `wrangler` means the rule is managed by a Worker's wrangler.jsonc. Defaults to `api` when omitted on write. - `"api"` - `"wrangler"` ### Returns - `class CatchAllUpdateResponse: …` - `id: Optional[str]` Routing rule identifier. - `actions: Optional[List[CatchAllAction]]` List actions for the catch-all routing rule. - `type: Literal["drop", "forward", "worker"]` Type of action for catch-all rule. - `"drop"` - `"forward"` - `"worker"` - `value: Optional[List[str]]` - `enabled: Optional[Literal[true, false]]` Routing rule status. - `true` - `false` - `matchers: Optional[List[CatchAllMatcher]]` List of matchers for the catch-all routing rule. - `type: Literal["all"]` Type of matcher. Default is 'all'. - `"all"` - `name: Optional[str]` Routing rule name. - `source: Optional[Literal["api", "wrangler"]]` Who manages the rule. `api` covers dashboard, generic API, and Terraform; `wrangler` means the rule is managed by a Worker's wrangler.jsonc. Defaults to `api` when omitted on write. - `"api"` - `"wrangler"` - `tag: Optional[str]` Routing rule tag. (Deprecated, replaced by routing rule identifier) ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_email=os.environ.get("CLOUDFLARE_EMAIL"), # This is the default and can be omitted api_key=os.environ.get("CLOUDFLARE_API_KEY"), # This is the default and can be omitted ) catch_all = client.email_routing.rules.catch_alls.update( zone_id="023e105f4ecef8ad9ca31a8372d0c353", actions=[{ "type": "forward" }], matchers=[{ "type": "all" }], ) print(catch_all.id) ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true, "result": { "id": "a7e6fb77503c41d8a7f3113c6918f10c", "actions": [ { "type": "forward", "value": [ "destinationaddress@example.net" ] } ], "enabled": true, "matchers": [ { "type": "all" } ], "name": "Send to user@example.net rule.", "source": "api", "tag": "a7e6fb77503c41d8a7f3113c6918f10c" } } ``` ## Domain Types ### Catch All Action - `class CatchAllAction: …` Action for the catch-all routing rule. - `type: Literal["drop", "forward", "worker"]` Type of action for catch-all rule. - `"drop"` - `"forward"` - `"worker"` - `value: Optional[List[str]]` ### Catch All Matcher - `class CatchAllMatcher: …` Matcher for catch-all routing rule. - `type: Literal["all"]` Type of matcher. Default is 'all'. - `"all"` ### Catch All Get Response - `class CatchAllGetResponse: …` - `id: Optional[str]` Routing rule identifier. - `actions: Optional[List[CatchAllAction]]` List actions for the catch-all routing rule. - `type: Literal["drop", "forward", "worker"]` Type of action for catch-all rule. - `"drop"` - `"forward"` - `"worker"` - `value: Optional[List[str]]` - `enabled: Optional[Literal[true, false]]` Routing rule status. - `true` - `false` - `matchers: Optional[List[CatchAllMatcher]]` List of matchers for the catch-all routing rule. - `type: Literal["all"]` Type of matcher. Default is 'all'. - `"all"` - `name: Optional[str]` Routing rule name. - `source: Optional[Literal["api", "wrangler"]]` Who manages the rule. `api` covers dashboard, generic API, and Terraform; `wrangler` means the rule is managed by a Worker's wrangler.jsonc. Defaults to `api` when omitted on write. - `"api"` - `"wrangler"` - `tag: Optional[str]` Routing rule tag. (Deprecated, replaced by routing rule identifier) ### Catch All Update Response - `class CatchAllUpdateResponse: …` - `id: Optional[str]` Routing rule identifier. - `actions: Optional[List[CatchAllAction]]` List actions for the catch-all routing rule. - `type: Literal["drop", "forward", "worker"]` Type of action for catch-all rule. - `"drop"` - `"forward"` - `"worker"` - `value: Optional[List[str]]` - `enabled: Optional[Literal[true, false]]` Routing rule status. - `true` - `false` - `matchers: Optional[List[CatchAllMatcher]]` List of matchers for the catch-all routing rule. - `type: Literal["all"]` Type of matcher. Default is 'all'. - `"all"` - `name: Optional[str]` Routing rule name. - `source: Optional[Literal["api", "wrangler"]]` Who manages the rule. `api` covers dashboard, generic API, and Terraform; `wrangler` means the rule is managed by a Worker's wrangler.jsonc. Defaults to `api` when omitted on write. - `"api"` - `"wrangler"` - `tag: Optional[str]` Routing rule tag. (Deprecated, replaced by routing rule identifier)