Skip to content

Commit

Permalink
Merge pull request #4952 from piperswe/piper/wr-1797
Browse files Browse the repository at this point in the history
  • Loading branch information
jacobbednarz authored Jan 29, 2025
2 parents 790a4e6 + 7a4db4c commit 4aa2e65
Show file tree
Hide file tree
Showing 5 changed files with 49 additions and 0 deletions.
3 changes: 3 additions & 0 deletions .changelog/4952.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
```release-note:enhancement
resource/cloudflare_waiting_room: add support for Turnstile fields
```
5 changes: 5 additions & 0 deletions docs/resources/waiting_room.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,9 @@ resource "cloudflare_waiting_room" "example" {
queueing_status_code = 200
enabled_origin_commands = ["revoke"]
turnstile_mode = "visible_managed"
turnstile_action = "infinite_queue"
}
```
<!-- schema generated by tfplugindocs -->
Expand Down Expand Up @@ -64,6 +67,8 @@ resource "cloudflare_waiting_room" "example" {
- `session_duration` (Number) Lifetime of a cookie (in minutes) set by Cloudflare for users who get access to the origin. Defaults to `5`.
- `suspended` (Boolean) Suspends the waiting room.
- `timeouts` (Block, Optional) (see [below for nested schema](#nestedblock--timeouts))
- `turnstile_action` (String) The action to take when an end user fails a Turnstile challenge. Available values: `log`, `infinite_queue`. Defaults to `log`.
- `turnstile_mode` (String) The type of Turnstile widget to use. Available values: `off`, `invisible`, `visible_non_interactive`, `visible_managed`. Defaults to `off`.

### Read-Only

Expand Down
3 changes: 3 additions & 0 deletions examples/resources/cloudflare_waiting_room/resource.tf
Original file line number Diff line number Diff line change
Expand Up @@ -20,4 +20,7 @@ resource "cloudflare_waiting_room" "example" {
queueing_status_code = 200

enabled_origin_commands = ["revoke"]

turnstile_mode = "visible_managed"
turnstile_action = "infinite_queue"
}
4 changes: 4 additions & 0 deletions internal/sdkv2provider/resource_cloudflare_waiting_room.go
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,8 @@ func buildWaitingRoom(d *schema.ResourceData) cloudflare.WaitingRoom {
AdditionalRoutes: additional_routes,
QueueingStatusCode: d.Get("queueing_status_code").(int),
EnabledOriginCommands: expandInterfaceToStringList(d.Get("enabled_origin_commands").([]interface{})),
TurnstileMode: d.Get("turnstile_mode").(string),
TurnstileAction: d.Get("turnstile_action").(string),
}
}

Expand Down Expand Up @@ -121,6 +123,8 @@ func resourceCloudflareWaitingRoomRead(ctx context.Context, d *schema.ResourceDa
d.Set("additional_routes", flattenWaitingRoomAdditionalRoutes(waitingRoom.AdditionalRoutes))
d.Set("queueing_status_code", waitingRoom.QueueingStatusCode)
d.Set("enabled_origin_commands", waitingRoom.EnabledOriginCommands)
d.Set("turnstile_mode", waitingRoom.TurnstileMode)
d.Set("turnstile_action", waitingRoom.TurnstileAction)
return nil
}

Expand Down
34 changes: 34 additions & 0 deletions internal/sdkv2provider/schema_cloudflare_waiting_room.go
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,18 @@ var waitingRoomOriginCommands = []string{
"revoke",
}

var waitingRoomTurnstileModes = []string{
"off",
"invisible",
"visible_non_interactive",
"visible_managed",
}

var waitingRoomTurnstileActions = []string{
"log",
"infinite_queue",
}

func resourceCloudflareWaitingRoomSchema() map[string]*schema.Schema {
return map[string]*schema.Schema{
consts.ZoneIDSchemaKey: {
Expand Down Expand Up @@ -212,5 +224,27 @@ func resourceCloudflareWaitingRoomSchema() map[string]*schema.Schema {
ValidateFunc: validation.StringInSlice(waitingRoomOriginCommands, false),
},
},

"turnstile_mode": {
Description: fmt.Sprintf("The type of Turnstile widget to use. %s", renderAvailableDocumentationValuesStringSlice(waitingRoomTurnstileModes)),
Type: schema.TypeString,
Optional: true,
Default: "off",
Elem: &schema.Schema{
Type: schema.TypeString,
ValidateFunc: validation.StringInSlice(waitingRoomTurnstileModes, false),
},
},

"turnstile_action": {
Description: fmt.Sprintf("The action to take when an end user fails a Turnstile challenge. %s", renderAvailableDocumentationValuesStringSlice(waitingRoomTurnstileActions)),
Type: schema.TypeString,
Optional: true,
Default: "log",
Elem: &schema.Schema{
Type: schema.TypeString,
ValidateFunc: validation.StringInSlice(waitingRoomTurnstileActions, false),
},
},
}
}

0 comments on commit 4aa2e65

Please # to comment.