## Bulk edit token validation rules `token_validation.rules.bulk_edit(RuleBulkEditParams**kwargs) -> SyncSinglePage[TokenValidationRule]` **patch** `/zones/{zone_id}/token_validation/rules/bulk` Edit token validation rules. A request can update multiple Token Validation Rules. Rules can be re-ordered using the `position` field. Returns all updated rules. ### Parameters - `zone_id: str` Identifier. - `body: Iterable[Body]` - `id: str` Rule ID this patch applies to - `action: Optional[Literal["log", "block"]]` Action to take on requests that match operations included in `selector` and fail `expression`. - `"log"` - `"block"` - `description: Optional[str]` A human-readable description that gives more details than `title`. - `enabled: Optional[bool]` Toggle rule on or off. - `expression: Optional[str]` Rule expression. Requests that fail to match this expression will be subject to `action`. For details on expressions, see the [Cloudflare Docs](https://developers.cloudflare.com/api-shield/security/jwt-validation/). - `position: Optional[BodyPosition]` Update rule order among zone rules. - `class BodyPositionAPIShieldIndex: …` - `index: int` Move rule to this position - `class BodyPositionAPIShieldBefore: …` Move rule to after rule with ID. - `before: Optional[str]` Move rule to before rule with this ID. - `class BodyPositionAPIShieldAfter: …` Move rule to before rule with ID. - `after: Optional[str]` Move rule to after rule with this ID. - `selector: Optional[BodySelector]` Select operations covered by this rule. For details on selectors, see the [Cloudflare Docs](https://developers.cloudflare.com/api-shield/security/jwt-validation/). - `exclude: Optional[Iterable[BodySelectorExclude]]` Ignore operations that were otherwise included by `include`. - `operation_ids: Optional[SequenceNotStr[str]]` Excluded operation IDs. - `include: Optional[Iterable[BodySelectorInclude]]` Select all matching operations. - `host: Optional[SequenceNotStr[str]]` Included hostnames. - `title: Optional[str]` A human-readable name for the rule. ### Returns - `class TokenValidationRule: …` A Token Validation rule that can enforce security policies using JWT Tokens. - `action: Literal["log", "block"]` Action to take on requests that match operations included in `selector` and fail `expression`. - `"log"` - `"block"` - `description: str` A human-readable description that gives more details than `title`. - `enabled: bool` Toggle rule on or off. - `expression: str` Rule expression. Requests that fail to match this expression will be subject to `action`. For details on expressions, see the [Cloudflare Docs](https://developers.cloudflare.com/api-shield/security/jwt-validation/). - `selector: Selector` Select operations covered by this rule. For details on selectors, see the [Cloudflare Docs](https://developers.cloudflare.com/api-shield/security/jwt-validation/). - `exclude: Optional[List[SelectorExclude]]` Ignore operations that were otherwise included by `include`. - `operation_ids: Optional[List[str]]` Excluded operation IDs. - `include: Optional[List[SelectorInclude]]` Select all matching operations. - `host: Optional[List[str]]` Included hostnames. - `title: str` A human-readable name for the rule. - `id: Optional[str]` UUID. - `created_at: Optional[datetime]` - `last_updated: Optional[datetime]` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) page = client.token_validation.rules.bulk_edit( zone_id="023e105f4ecef8ad9ca31a8372d0c353", body=[{ "id": "0d9bf70c-92e1-4bb3-9411-34a3bcc59003" }], ) 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" } } ], "result": [ { "action": "log", "description": "Long description for Token Validation Rule", "enabled": true, "expression": "is_jwt_valid(\"52973293-cb04-4a97-8f55-e7d2ad1107dd\") or is_jwt_valid(\"46eab8d1-6376-45e3-968f-2c649d77d423\")", "selector": { "exclude": [ { "operation_ids": [ "f9c5615e-fe15-48ce-bec6-cfc1946f1bec", "56828eae-035a-4396-ba07-51c66d680a04" ] } ], "include": [ { "host": [ "v1.example.com", "v2.example.com" ] } ] }, "title": "Example Token Validation Rule", "id": "f174e90a-fafe-4643-bbbc-4a0ed4fc8415", "created_at": "2014-01-01T05:20:00.12345Z", "last_updated": "2014-01-01T05:20:00.12345Z" } ], "success": true, "result_info": { "count": 1, "page": 1, "per_page": 20, "total_count": 2000, "total_pages": 100 } } ```