Skip to content
Start here

Replace Waiting Room Rules

waiting_rooms.rules.update(strwaiting_room_id, RuleUpdateParams**kwargs) -> SyncSinglePage[WaitingRoomRule]
PUT/zones/{zone_id}/waiting_rooms/{waiting_room_id}/rules

Only available for the Waiting Room Advanced subscription. Replaces all rules for a waiting room.

Security
API Token

The preferred authorization scheme for interacting with the Cloudflare API. Create a token.

Example:Authorization: Bearer Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY
API Email + API Key

The previous authorization scheme for interacting with the Cloudflare API, used in conjunction with a Global API key.

Example:X-Auth-Email: user@example.com

The previous authorization scheme for interacting with the Cloudflare API. When possible, use API tokens instead of Global API keys.

Example:X-Auth-Key: 144c9defac04969c7bfad8efaa8ea194
Accepted Permissions (at least one required)
Waiting Rooms Write
ParametersExpand Collapse
zone_id: str

Identifier.

maxLength32
waiting_room_id: str
rules: Iterable[Rule]
action: Literal["bypass_waiting_room"]

The action to take when the expression matches.

expression: str

Criteria defining when there is a match for the current rule.

description: Optional[str]

The description of the rule.

enabled: Optional[bool]

When set to true, the rule is enabled.

ReturnsExpand Collapse
class WaitingRoomRule:
id: Optional[str]

The ID of the rule.

action: Optional[Literal["bypass_waiting_room"]]

The action to take when the expression matches.

description: Optional[str]

The description of the rule.

enabled: Optional[bool]

When set to true, the rule is enabled.

expression: Optional[str]

Criteria defining when there is a match for the current rule.

last_updated: Optional[datetime]
formatdate-time
version: Optional[str]

The version of the rule.

Replace Waiting Room Rules

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.waiting_rooms.rules.update(
    waiting_room_id="699d98642c564d2e855e9661899b7252",
    zone_id="023e105f4ecef8ad9ca31a8372d0c353",
    rules=[{
        "action": "bypass_waiting_room",
        "expression": "ip.src in {10.20.30.40}",
    }],
)
page = page.result[0]
print(page.id)
{
  "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": "25756b2dfe6e378a06b033b670413757",
      "action": "bypass_waiting_room",
      "description": "allow all traffic from 10.20.30.40",
      "enabled": true,
      "expression": "ip.src in {10.20.30.40}",
      "last_updated": "2014-01-01T05:20:00.12345Z",
      "version": "1"
    }
  ],
  "result_info": {
    "count": 1,
    "page": 1,
    "per_page": 20,
    "total_count": 2000
  }
}
Returns Examples
{
  "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": "25756b2dfe6e378a06b033b670413757",
      "action": "bypass_waiting_room",
      "description": "allow all traffic from 10.20.30.40",
      "enabled": true,
      "expression": "ip.src in {10.20.30.40}",
      "last_updated": "2014-01-01T05:20:00.12345Z",
      "version": "1"
    }
  ],
  "result_info": {
    "count": 1,
    "page": 1,
    "per_page": 20,
    "total_count": 2000
  }
}