# Events ## List events `client.WaitingRooms.Events.List(ctx, waitingRoomID, params) (*V4PagePaginationArray[Event], error)` **get** `/zones/{zone_id}/waiting_rooms/{waiting_room_id}/events` Lists events for a waiting room. ### Parameters - `waitingRoomID string` - `params EventListParams` - `ZoneID param.Field[string]` Path param: Identifier. - `Page param.Field[float64]` Query param: Page number of paginated results. - `PerPage param.Field[float64]` Query param: Maximum number of results per page. Must be a multiple of 5. ### Returns - `type Event struct{…}` - `ID string` - `CreatedOn Time` - `CustomPageHTML string` If set, the event will override the waiting room's `custom_page_html` property while it is active. If null, the event will inherit it. - `Description string` A note that you can use to add more details about the event. - `DisableSessionRenewal bool` If set, the event will override the waiting room's `disable_session_renewal` property while it is active. If null, the event will inherit it. - `EventEndTime string` An ISO 8601 timestamp that marks the end of the event. - `EventStartTime string` An ISO 8601 timestamp that marks the start of the event. At this time, queued users will be processed with the event's configuration. The start time must be at least one minute before `event_end_time`. - `ModifiedOn Time` - `Name string` A unique name to identify the event. Only alphanumeric characters, hyphens and underscores are allowed. - `NewUsersPerMinute int64` If set, the event will override the waiting room's `new_users_per_minute` property while it is active. If null, the event will inherit it. This can only be set if the event's `total_active_users` property is also set. - `PrequeueStartTime string` An ISO 8601 timestamp that marks when to begin queueing all users before the event starts. The prequeue must start at least five minutes before `event_start_time`. - `QueueingMethod string` If set, the event will override the waiting room's `queueing_method` property while it is active. If null, the event will inherit it. - `SessionDuration int64` If set, the event will override the waiting room's `session_duration` property while it is active. If null, the event will inherit it. - `ShuffleAtEventStart bool` If enabled, users in the prequeue will be shuffled randomly at the `event_start_time`. Requires that `prequeue_start_time` is not null. This is useful for situations when many users will join the event prequeue at the same time and you want to shuffle them to ensure fairness. Naturally, it makes the most sense to enable this feature when the `queueing_method` during the event respects ordering such as **fifo**, or else the shuffling may be unnecessary. - `Suspended bool` Suspends or allows an event. If set to `true`, the event is ignored and traffic will be handled based on the waiting room configuration. - `TotalActiveUsers int64` If set, the event will override the waiting room's `total_active_users` property while it is active. If null, the event will inherit it. This can only be set if the event's `new_users_per_minute` property is also set. - `TurnstileAction EventTurnstileAction` If set, the event will override the waiting room's `turnstile_action` property while it is active. If null, the event will inherit it. - `const EventTurnstileActionLog EventTurnstileAction = "log"` - `const EventTurnstileActionInfiniteQueue EventTurnstileAction = "infinite_queue"` - `TurnstileMode EventTurnstileMode` If set, the event will override the waiting room's `turnstile_mode` property while it is active. If null, the event will inherit it. - `const EventTurnstileModeOff EventTurnstileMode = "off"` - `const EventTurnstileModeInvisible EventTurnstileMode = "invisible"` - `const EventTurnstileModeVisibleNonInteractive EventTurnstileMode = "visible_non_interactive"` - `const EventTurnstileModeVisibleManaged EventTurnstileMode = "visible_managed"` ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/option" "github.com/cloudflare/cloudflare-go/waiting_rooms" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) page, err := client.WaitingRooms.Events.List( context.TODO(), "699d98642c564d2e855e9661899b7252", waiting_rooms.EventListParams{ ZoneID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), }, ) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", page) } ``` #### 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": "25756b2dfe6e378a06b033b670413757", "created_on": "2014-01-01T05:20:00.12345Z", "custom_page_html": "{{#waitTimeKnown}} {{waitTime}} mins {{/waitTimeKnown}} {{^waitTimeKnown}} Event is prequeueing / Queue all enabled {{/waitTimeKnown}}", "description": "Production event - DO NOT MODIFY", "disable_session_renewal": true, "event_end_time": "2021-09-28T17:00:00.000Z", "event_start_time": "2021-09-28T15:30:00.000Z", "modified_on": "2014-01-01T05:20:00.12345Z", "name": "production_webinar_event", "new_users_per_minute": 200, "prequeue_start_time": "2021-09-28T15:00:00.000Z", "queueing_method": "random", "session_duration": 1, "shuffle_at_event_start": true, "suspended": true, "total_active_users": 200, "turnstile_action": "log", "turnstile_mode": "off" } ], "result_info": { "count": 1, "page": 1, "per_page": 20, "total_count": 2000 } } ``` ## Event details `client.WaitingRooms.Events.Get(ctx, waitingRoomID, eventID, query) (*Event, error)` **get** `/zones/{zone_id}/waiting_rooms/{waiting_room_id}/events/{event_id}` Fetches a single configured event for a waiting room. ### Parameters - `waitingRoomID string` - `eventID string` - `query EventGetParams` - `ZoneID param.Field[string]` Identifier. ### Returns - `type Event struct{…}` - `ID string` - `CreatedOn Time` - `CustomPageHTML string` If set, the event will override the waiting room's `custom_page_html` property while it is active. If null, the event will inherit it. - `Description string` A note that you can use to add more details about the event. - `DisableSessionRenewal bool` If set, the event will override the waiting room's `disable_session_renewal` property while it is active. If null, the event will inherit it. - `EventEndTime string` An ISO 8601 timestamp that marks the end of the event. - `EventStartTime string` An ISO 8601 timestamp that marks the start of the event. At this time, queued users will be processed with the event's configuration. The start time must be at least one minute before `event_end_time`. - `ModifiedOn Time` - `Name string` A unique name to identify the event. Only alphanumeric characters, hyphens and underscores are allowed. - `NewUsersPerMinute int64` If set, the event will override the waiting room's `new_users_per_minute` property while it is active. If null, the event will inherit it. This can only be set if the event's `total_active_users` property is also set. - `PrequeueStartTime string` An ISO 8601 timestamp that marks when to begin queueing all users before the event starts. The prequeue must start at least five minutes before `event_start_time`. - `QueueingMethod string` If set, the event will override the waiting room's `queueing_method` property while it is active. If null, the event will inherit it. - `SessionDuration int64` If set, the event will override the waiting room's `session_duration` property while it is active. If null, the event will inherit it. - `ShuffleAtEventStart bool` If enabled, users in the prequeue will be shuffled randomly at the `event_start_time`. Requires that `prequeue_start_time` is not null. This is useful for situations when many users will join the event prequeue at the same time and you want to shuffle them to ensure fairness. Naturally, it makes the most sense to enable this feature when the `queueing_method` during the event respects ordering such as **fifo**, or else the shuffling may be unnecessary. - `Suspended bool` Suspends or allows an event. If set to `true`, the event is ignored and traffic will be handled based on the waiting room configuration. - `TotalActiveUsers int64` If set, the event will override the waiting room's `total_active_users` property while it is active. If null, the event will inherit it. This can only be set if the event's `new_users_per_minute` property is also set. - `TurnstileAction EventTurnstileAction` If set, the event will override the waiting room's `turnstile_action` property while it is active. If null, the event will inherit it. - `const EventTurnstileActionLog EventTurnstileAction = "log"` - `const EventTurnstileActionInfiniteQueue EventTurnstileAction = "infinite_queue"` - `TurnstileMode EventTurnstileMode` If set, the event will override the waiting room's `turnstile_mode` property while it is active. If null, the event will inherit it. - `const EventTurnstileModeOff EventTurnstileMode = "off"` - `const EventTurnstileModeInvisible EventTurnstileMode = "invisible"` - `const EventTurnstileModeVisibleNonInteractive EventTurnstileMode = "visible_non_interactive"` - `const EventTurnstileModeVisibleManaged EventTurnstileMode = "visible_managed"` ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/option" "github.com/cloudflare/cloudflare-go/waiting_rooms" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) event, err := client.WaitingRooms.Events.Get( context.TODO(), "699d98642c564d2e855e9661899b7252", "25756b2dfe6e378a06b033b670413757", waiting_rooms.EventGetParams{ ZoneID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), }, ) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", event.ID) } ``` #### Response ```json { "result": { "id": "25756b2dfe6e378a06b033b670413757", "created_on": "2014-01-01T05:20:00.12345Z", "custom_page_html": "{{#waitTimeKnown}} {{waitTime}} mins {{/waitTimeKnown}} {{^waitTimeKnown}} Event is prequeueing / Queue all enabled {{/waitTimeKnown}}", "description": "Production event - DO NOT MODIFY", "disable_session_renewal": true, "event_end_time": "2021-09-28T17:00:00.000Z", "event_start_time": "2021-09-28T15:30:00.000Z", "modified_on": "2014-01-01T05:20:00.12345Z", "name": "production_webinar_event", "new_users_per_minute": 200, "prequeue_start_time": "2021-09-28T15:00:00.000Z", "queueing_method": "random", "session_duration": 1, "shuffle_at_event_start": true, "suspended": true, "total_active_users": 200, "turnstile_action": "log", "turnstile_mode": "off" } } ``` ## Create event `client.WaitingRooms.Events.New(ctx, waitingRoomID, params) (*Event, error)` **post** `/zones/{zone_id}/waiting_rooms/{waiting_room_id}/events` Only available for the Waiting Room Advanced subscription. Creates an event for a waiting room. An event takes place during a specified period of time, temporarily changing the behavior of a waiting room. While the event is active, some of the properties in the event's configuration may either override or inherit from the waiting room's configuration. Note that events cannot overlap with each other, so only one event can be active at a time. ### Parameters - `waitingRoomID string` - `params EventNewParams` - `ZoneID param.Field[string]` Path param: Identifier. - `EventQuery param.Field[EventQuery]` Body param ### Returns - `type Event struct{…}` - `ID string` - `CreatedOn Time` - `CustomPageHTML string` If set, the event will override the waiting room's `custom_page_html` property while it is active. If null, the event will inherit it. - `Description string` A note that you can use to add more details about the event. - `DisableSessionRenewal bool` If set, the event will override the waiting room's `disable_session_renewal` property while it is active. If null, the event will inherit it. - `EventEndTime string` An ISO 8601 timestamp that marks the end of the event. - `EventStartTime string` An ISO 8601 timestamp that marks the start of the event. At this time, queued users will be processed with the event's configuration. The start time must be at least one minute before `event_end_time`. - `ModifiedOn Time` - `Name string` A unique name to identify the event. Only alphanumeric characters, hyphens and underscores are allowed. - `NewUsersPerMinute int64` If set, the event will override the waiting room's `new_users_per_minute` property while it is active. If null, the event will inherit it. This can only be set if the event's `total_active_users` property is also set. - `PrequeueStartTime string` An ISO 8601 timestamp that marks when to begin queueing all users before the event starts. The prequeue must start at least five minutes before `event_start_time`. - `QueueingMethod string` If set, the event will override the waiting room's `queueing_method` property while it is active. If null, the event will inherit it. - `SessionDuration int64` If set, the event will override the waiting room's `session_duration` property while it is active. If null, the event will inherit it. - `ShuffleAtEventStart bool` If enabled, users in the prequeue will be shuffled randomly at the `event_start_time`. Requires that `prequeue_start_time` is not null. This is useful for situations when many users will join the event prequeue at the same time and you want to shuffle them to ensure fairness. Naturally, it makes the most sense to enable this feature when the `queueing_method` during the event respects ordering such as **fifo**, or else the shuffling may be unnecessary. - `Suspended bool` Suspends or allows an event. If set to `true`, the event is ignored and traffic will be handled based on the waiting room configuration. - `TotalActiveUsers int64` If set, the event will override the waiting room's `total_active_users` property while it is active. If null, the event will inherit it. This can only be set if the event's `new_users_per_minute` property is also set. - `TurnstileAction EventTurnstileAction` If set, the event will override the waiting room's `turnstile_action` property while it is active. If null, the event will inherit it. - `const EventTurnstileActionLog EventTurnstileAction = "log"` - `const EventTurnstileActionInfiniteQueue EventTurnstileAction = "infinite_queue"` - `TurnstileMode EventTurnstileMode` If set, the event will override the waiting room's `turnstile_mode` property while it is active. If null, the event will inherit it. - `const EventTurnstileModeOff EventTurnstileMode = "off"` - `const EventTurnstileModeInvisible EventTurnstileMode = "invisible"` - `const EventTurnstileModeVisibleNonInteractive EventTurnstileMode = "visible_non_interactive"` - `const EventTurnstileModeVisibleManaged EventTurnstileMode = "visible_managed"` ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/option" "github.com/cloudflare/cloudflare-go/waiting_rooms" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) event, err := client.WaitingRooms.Events.New( context.TODO(), "699d98642c564d2e855e9661899b7252", waiting_rooms.EventNewParams{ ZoneID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), EventQuery: waiting_rooms.EventQueryParam{ EventEndTime: cloudflare.F("2021-09-28T17:00:00.000Z"), EventStartTime: cloudflare.F("2021-09-28T15:30:00.000Z"), Name: cloudflare.F("production_webinar_event"), }, }, ) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", event.ID) } ``` #### Response ```json { "result": { "id": "25756b2dfe6e378a06b033b670413757", "created_on": "2014-01-01T05:20:00.12345Z", "custom_page_html": "{{#waitTimeKnown}} {{waitTime}} mins {{/waitTimeKnown}} {{^waitTimeKnown}} Event is prequeueing / Queue all enabled {{/waitTimeKnown}}", "description": "Production event - DO NOT MODIFY", "disable_session_renewal": true, "event_end_time": "2021-09-28T17:00:00.000Z", "event_start_time": "2021-09-28T15:30:00.000Z", "modified_on": "2014-01-01T05:20:00.12345Z", "name": "production_webinar_event", "new_users_per_minute": 200, "prequeue_start_time": "2021-09-28T15:00:00.000Z", "queueing_method": "random", "session_duration": 1, "shuffle_at_event_start": true, "suspended": true, "total_active_users": 200, "turnstile_action": "log", "turnstile_mode": "off" } } ``` ## Update event `client.WaitingRooms.Events.Update(ctx, waitingRoomID, eventID, params) (*Event, error)` **put** `/zones/{zone_id}/waiting_rooms/{waiting_room_id}/events/{event_id}` Updates a configured event for a waiting room. ### Parameters - `waitingRoomID string` - `eventID string` - `params EventUpdateParams` - `ZoneID param.Field[string]` Path param: Identifier. - `EventQuery param.Field[EventQuery]` Body param ### Returns - `type Event struct{…}` - `ID string` - `CreatedOn Time` - `CustomPageHTML string` If set, the event will override the waiting room's `custom_page_html` property while it is active. If null, the event will inherit it. - `Description string` A note that you can use to add more details about the event. - `DisableSessionRenewal bool` If set, the event will override the waiting room's `disable_session_renewal` property while it is active. If null, the event will inherit it. - `EventEndTime string` An ISO 8601 timestamp that marks the end of the event. - `EventStartTime string` An ISO 8601 timestamp that marks the start of the event. At this time, queued users will be processed with the event's configuration. The start time must be at least one minute before `event_end_time`. - `ModifiedOn Time` - `Name string` A unique name to identify the event. Only alphanumeric characters, hyphens and underscores are allowed. - `NewUsersPerMinute int64` If set, the event will override the waiting room's `new_users_per_minute` property while it is active. If null, the event will inherit it. This can only be set if the event's `total_active_users` property is also set. - `PrequeueStartTime string` An ISO 8601 timestamp that marks when to begin queueing all users before the event starts. The prequeue must start at least five minutes before `event_start_time`. - `QueueingMethod string` If set, the event will override the waiting room's `queueing_method` property while it is active. If null, the event will inherit it. - `SessionDuration int64` If set, the event will override the waiting room's `session_duration` property while it is active. If null, the event will inherit it. - `ShuffleAtEventStart bool` If enabled, users in the prequeue will be shuffled randomly at the `event_start_time`. Requires that `prequeue_start_time` is not null. This is useful for situations when many users will join the event prequeue at the same time and you want to shuffle them to ensure fairness. Naturally, it makes the most sense to enable this feature when the `queueing_method` during the event respects ordering such as **fifo**, or else the shuffling may be unnecessary. - `Suspended bool` Suspends or allows an event. If set to `true`, the event is ignored and traffic will be handled based on the waiting room configuration. - `TotalActiveUsers int64` If set, the event will override the waiting room's `total_active_users` property while it is active. If null, the event will inherit it. This can only be set if the event's `new_users_per_minute` property is also set. - `TurnstileAction EventTurnstileAction` If set, the event will override the waiting room's `turnstile_action` property while it is active. If null, the event will inherit it. - `const EventTurnstileActionLog EventTurnstileAction = "log"` - `const EventTurnstileActionInfiniteQueue EventTurnstileAction = "infinite_queue"` - `TurnstileMode EventTurnstileMode` If set, the event will override the waiting room's `turnstile_mode` property while it is active. If null, the event will inherit it. - `const EventTurnstileModeOff EventTurnstileMode = "off"` - `const EventTurnstileModeInvisible EventTurnstileMode = "invisible"` - `const EventTurnstileModeVisibleNonInteractive EventTurnstileMode = "visible_non_interactive"` - `const EventTurnstileModeVisibleManaged EventTurnstileMode = "visible_managed"` ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/option" "github.com/cloudflare/cloudflare-go/waiting_rooms" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) event, err := client.WaitingRooms.Events.Update( context.TODO(), "699d98642c564d2e855e9661899b7252", "25756b2dfe6e378a06b033b670413757", waiting_rooms.EventUpdateParams{ ZoneID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), EventQuery: waiting_rooms.EventQueryParam{ EventEndTime: cloudflare.F("2021-09-28T17:00:00.000Z"), EventStartTime: cloudflare.F("2021-09-28T15:30:00.000Z"), Name: cloudflare.F("production_webinar_event"), }, }, ) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", event.ID) } ``` #### Response ```json { "result": { "id": "25756b2dfe6e378a06b033b670413757", "created_on": "2014-01-01T05:20:00.12345Z", "custom_page_html": "{{#waitTimeKnown}} {{waitTime}} mins {{/waitTimeKnown}} {{^waitTimeKnown}} Event is prequeueing / Queue all enabled {{/waitTimeKnown}}", "description": "Production event - DO NOT MODIFY", "disable_session_renewal": true, "event_end_time": "2021-09-28T17:00:00.000Z", "event_start_time": "2021-09-28T15:30:00.000Z", "modified_on": "2014-01-01T05:20:00.12345Z", "name": "production_webinar_event", "new_users_per_minute": 200, "prequeue_start_time": "2021-09-28T15:00:00.000Z", "queueing_method": "random", "session_duration": 1, "shuffle_at_event_start": true, "suspended": true, "total_active_users": 200, "turnstile_action": "log", "turnstile_mode": "off" } } ``` ## Patch event `client.WaitingRooms.Events.Edit(ctx, waitingRoomID, eventID, params) (*Event, error)` **patch** `/zones/{zone_id}/waiting_rooms/{waiting_room_id}/events/{event_id}` Patches a configured event for a waiting room. ### Parameters - `waitingRoomID string` - `eventID string` - `params EventEditParams` - `ZoneID param.Field[string]` Path param: Identifier. - `EventQuery param.Field[EventQuery]` Body param ### Returns - `type Event struct{…}` - `ID string` - `CreatedOn Time` - `CustomPageHTML string` If set, the event will override the waiting room's `custom_page_html` property while it is active. If null, the event will inherit it. - `Description string` A note that you can use to add more details about the event. - `DisableSessionRenewal bool` If set, the event will override the waiting room's `disable_session_renewal` property while it is active. If null, the event will inherit it. - `EventEndTime string` An ISO 8601 timestamp that marks the end of the event. - `EventStartTime string` An ISO 8601 timestamp that marks the start of the event. At this time, queued users will be processed with the event's configuration. The start time must be at least one minute before `event_end_time`. - `ModifiedOn Time` - `Name string` A unique name to identify the event. Only alphanumeric characters, hyphens and underscores are allowed. - `NewUsersPerMinute int64` If set, the event will override the waiting room's `new_users_per_minute` property while it is active. If null, the event will inherit it. This can only be set if the event's `total_active_users` property is also set. - `PrequeueStartTime string` An ISO 8601 timestamp that marks when to begin queueing all users before the event starts. The prequeue must start at least five minutes before `event_start_time`. - `QueueingMethod string` If set, the event will override the waiting room's `queueing_method` property while it is active. If null, the event will inherit it. - `SessionDuration int64` If set, the event will override the waiting room's `session_duration` property while it is active. If null, the event will inherit it. - `ShuffleAtEventStart bool` If enabled, users in the prequeue will be shuffled randomly at the `event_start_time`. Requires that `prequeue_start_time` is not null. This is useful for situations when many users will join the event prequeue at the same time and you want to shuffle them to ensure fairness. Naturally, it makes the most sense to enable this feature when the `queueing_method` during the event respects ordering such as **fifo**, or else the shuffling may be unnecessary. - `Suspended bool` Suspends or allows an event. If set to `true`, the event is ignored and traffic will be handled based on the waiting room configuration. - `TotalActiveUsers int64` If set, the event will override the waiting room's `total_active_users` property while it is active. If null, the event will inherit it. This can only be set if the event's `new_users_per_minute` property is also set. - `TurnstileAction EventTurnstileAction` If set, the event will override the waiting room's `turnstile_action` property while it is active. If null, the event will inherit it. - `const EventTurnstileActionLog EventTurnstileAction = "log"` - `const EventTurnstileActionInfiniteQueue EventTurnstileAction = "infinite_queue"` - `TurnstileMode EventTurnstileMode` If set, the event will override the waiting room's `turnstile_mode` property while it is active. If null, the event will inherit it. - `const EventTurnstileModeOff EventTurnstileMode = "off"` - `const EventTurnstileModeInvisible EventTurnstileMode = "invisible"` - `const EventTurnstileModeVisibleNonInteractive EventTurnstileMode = "visible_non_interactive"` - `const EventTurnstileModeVisibleManaged EventTurnstileMode = "visible_managed"` ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/option" "github.com/cloudflare/cloudflare-go/waiting_rooms" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) event, err := client.WaitingRooms.Events.Edit( context.TODO(), "699d98642c564d2e855e9661899b7252", "25756b2dfe6e378a06b033b670413757", waiting_rooms.EventEditParams{ ZoneID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), EventQuery: waiting_rooms.EventQueryParam{ EventEndTime: cloudflare.F("2021-09-28T17:00:00.000Z"), EventStartTime: cloudflare.F("2021-09-28T15:30:00.000Z"), Name: cloudflare.F("production_webinar_event"), }, }, ) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", event.ID) } ``` #### Response ```json { "result": { "id": "25756b2dfe6e378a06b033b670413757", "created_on": "2014-01-01T05:20:00.12345Z", "custom_page_html": "{{#waitTimeKnown}} {{waitTime}} mins {{/waitTimeKnown}} {{^waitTimeKnown}} Event is prequeueing / Queue all enabled {{/waitTimeKnown}}", "description": "Production event - DO NOT MODIFY", "disable_session_renewal": true, "event_end_time": "2021-09-28T17:00:00.000Z", "event_start_time": "2021-09-28T15:30:00.000Z", "modified_on": "2014-01-01T05:20:00.12345Z", "name": "production_webinar_event", "new_users_per_minute": 200, "prequeue_start_time": "2021-09-28T15:00:00.000Z", "queueing_method": "random", "session_duration": 1, "shuffle_at_event_start": true, "suspended": true, "total_active_users": 200, "turnstile_action": "log", "turnstile_mode": "off" } } ``` ## Delete event `client.WaitingRooms.Events.Delete(ctx, waitingRoomID, eventID, body) (*EventDeleteResponse, error)` **delete** `/zones/{zone_id}/waiting_rooms/{waiting_room_id}/events/{event_id}` Deletes an event for a waiting room. ### Parameters - `waitingRoomID string` - `eventID string` - `body EventDeleteParams` - `ZoneID param.Field[string]` Identifier. ### Returns - `type EventDeleteResponse struct{…}` - `ID string` ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/option" "github.com/cloudflare/cloudflare-go/waiting_rooms" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) event, err := client.WaitingRooms.Events.Delete( context.TODO(), "699d98642c564d2e855e9661899b7252", "25756b2dfe6e378a06b033b670413757", waiting_rooms.EventDeleteParams{ ZoneID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), }, ) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", event.ID) } ``` #### Response ```json { "result": { "id": "25756b2dfe6e378a06b033b670413757" } } ``` ## Domain Types ### Event - `type Event struct{…}` - `ID string` - `CreatedOn Time` - `CustomPageHTML string` If set, the event will override the waiting room's `custom_page_html` property while it is active. If null, the event will inherit it. - `Description string` A note that you can use to add more details about the event. - `DisableSessionRenewal bool` If set, the event will override the waiting room's `disable_session_renewal` property while it is active. If null, the event will inherit it. - `EventEndTime string` An ISO 8601 timestamp that marks the end of the event. - `EventStartTime string` An ISO 8601 timestamp that marks the start of the event. At this time, queued users will be processed with the event's configuration. The start time must be at least one minute before `event_end_time`. - `ModifiedOn Time` - `Name string` A unique name to identify the event. Only alphanumeric characters, hyphens and underscores are allowed. - `NewUsersPerMinute int64` If set, the event will override the waiting room's `new_users_per_minute` property while it is active. If null, the event will inherit it. This can only be set if the event's `total_active_users` property is also set. - `PrequeueStartTime string` An ISO 8601 timestamp that marks when to begin queueing all users before the event starts. The prequeue must start at least five minutes before `event_start_time`. - `QueueingMethod string` If set, the event will override the waiting room's `queueing_method` property while it is active. If null, the event will inherit it. - `SessionDuration int64` If set, the event will override the waiting room's `session_duration` property while it is active. If null, the event will inherit it. - `ShuffleAtEventStart bool` If enabled, users in the prequeue will be shuffled randomly at the `event_start_time`. Requires that `prequeue_start_time` is not null. This is useful for situations when many users will join the event prequeue at the same time and you want to shuffle them to ensure fairness. Naturally, it makes the most sense to enable this feature when the `queueing_method` during the event respects ordering such as **fifo**, or else the shuffling may be unnecessary. - `Suspended bool` Suspends or allows an event. If set to `true`, the event is ignored and traffic will be handled based on the waiting room configuration. - `TotalActiveUsers int64` If set, the event will override the waiting room's `total_active_users` property while it is active. If null, the event will inherit it. This can only be set if the event's `new_users_per_minute` property is also set. - `TurnstileAction EventTurnstileAction` If set, the event will override the waiting room's `turnstile_action` property while it is active. If null, the event will inherit it. - `const EventTurnstileActionLog EventTurnstileAction = "log"` - `const EventTurnstileActionInfiniteQueue EventTurnstileAction = "infinite_queue"` - `TurnstileMode EventTurnstileMode` If set, the event will override the waiting room's `turnstile_mode` property while it is active. If null, the event will inherit it. - `const EventTurnstileModeOff EventTurnstileMode = "off"` - `const EventTurnstileModeInvisible EventTurnstileMode = "invisible"` - `const EventTurnstileModeVisibleNonInteractive EventTurnstileMode = "visible_non_interactive"` - `const EventTurnstileModeVisibleManaged EventTurnstileMode = "visible_managed"` # Details ## Preview active event details `client.WaitingRooms.Events.Details.Get(ctx, waitingRoomID, eventID, query) (*EventDetailGetResponse, error)` **get** `/zones/{zone_id}/waiting_rooms/{waiting_room_id}/events/{event_id}/details` Previews an event's configuration as if it was active. Inherited fields from the waiting room will be displayed with their current values. ### Parameters - `waitingRoomID string` - `eventID string` - `query EventDetailGetParams` - `ZoneID param.Field[string]` Identifier. ### Returns - `type EventDetailGetResponse struct{…}` - `ID string` - `CreatedOn Time` - `CustomPageHTML string` - `Description string` A note that you can use to add more details about the event. - `DisableSessionRenewal bool` - `EventEndTime string` An ISO 8601 timestamp that marks the end of the event. - `EventStartTime string` An ISO 8601 timestamp that marks the start of the event. At this time, queued users will be processed with the event's configuration. The start time must be at least one minute before `event_end_time`. - `ModifiedOn Time` - `Name string` A unique name to identify the event. Only alphanumeric characters, hyphens and underscores are allowed. - `NewUsersPerMinute int64` - `PrequeueStartTime string` An ISO 8601 timestamp that marks when to begin queueing all users before the event starts. The prequeue must start at least five minutes before `event_start_time`. - `QueueingMethod string` - `SessionDuration int64` - `ShuffleAtEventStart bool` If enabled, users in the prequeue will be shuffled randomly at the `event_start_time`. Requires that `prequeue_start_time` is not null. This is useful for situations when many users will join the event prequeue at the same time and you want to shuffle them to ensure fairness. Naturally, it makes the most sense to enable this feature when the `queueing_method` during the event respects ordering such as **fifo**, or else the shuffling may be unnecessary. - `Suspended bool` Suspends or allows an event. If set to `true`, the event is ignored and traffic will be handled based on the waiting room configuration. - `TotalActiveUsers int64` ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/option" "github.com/cloudflare/cloudflare-go/waiting_rooms" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) detail, err := client.WaitingRooms.Events.Details.Get( context.TODO(), "699d98642c564d2e855e9661899b7252", "25756b2dfe6e378a06b033b670413757", waiting_rooms.EventDetailGetParams{ ZoneID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), }, ) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", detail.ID) } ``` #### Response ```json { "result": { "id": "25756b2dfe6e378a06b033b670413757", "created_on": "2014-01-01T05:20:00.12345Z", "custom_page_html": "{{#waitTimeKnown}} {{waitTime}} mins {{/waitTimeKnown}} {{^waitTimeKnown}} Event is prequeueing / Queue all enabled {{/waitTimeKnown}}", "description": "Production event - DO NOT MODIFY", "disable_session_renewal": false, "event_end_time": "2021-09-28T17:00:00.000Z", "event_start_time": "2021-09-28T15:30:00.000Z", "modified_on": "2014-01-01T05:20:00.12345Z", "name": "production_webinar_event", "new_users_per_minute": 0, "prequeue_start_time": "2021-09-28T15:00:00.000Z", "queueing_method": "random", "session_duration": 0, "shuffle_at_event_start": true, "suspended": true, "total_active_users": 0 } } ``` ## Domain Types ### Event Query - `type EventQuery struct{…}` - `EventEndTime string` An ISO 8601 timestamp that marks the end of the event. - `EventStartTime string` An ISO 8601 timestamp that marks the start of the event. At this time, queued users will be processed with the event's configuration. The start time must be at least one minute before `event_end_time`. - `Name string` A unique name to identify the event. Only alphanumeric characters, hyphens and underscores are allowed. - `CustomPageHTML string` If set, the event will override the waiting room's `custom_page_html` property while it is active. If null, the event will inherit it. - `Description string` A note that you can use to add more details about the event. - `DisableSessionRenewal bool` If set, the event will override the waiting room's `disable_session_renewal` property while it is active. If null, the event will inherit it. - `NewUsersPerMinute int64` If set, the event will override the waiting room's `new_users_per_minute` property while it is active. If null, the event will inherit it. This can only be set if the event's `total_active_users` property is also set. - `PrequeueStartTime string` An ISO 8601 timestamp that marks when to begin queueing all users before the event starts. The prequeue must start at least five minutes before `event_start_time`. - `QueueingMethod string` If set, the event will override the waiting room's `queueing_method` property while it is active. If null, the event will inherit it. - `SessionDuration int64` If set, the event will override the waiting room's `session_duration` property while it is active. If null, the event will inherit it. - `ShuffleAtEventStart bool` If enabled, users in the prequeue will be shuffled randomly at the `event_start_time`. Requires that `prequeue_start_time` is not null. This is useful for situations when many users will join the event prequeue at the same time and you want to shuffle them to ensure fairness. Naturally, it makes the most sense to enable this feature when the `queueing_method` during the event respects ordering such as **fifo**, or else the shuffling may be unnecessary. - `Suspended bool` Suspends or allows an event. If set to `true`, the event is ignored and traffic will be handled based on the waiting room configuration. - `TotalActiveUsers int64` If set, the event will override the waiting room's `total_active_users` property while it is active. If null, the event will inherit it. This can only be set if the event's `new_users_per_minute` property is also set. - `TurnstileAction EventQueryTurnstileAction` If set, the event will override the waiting room's `turnstile_action` property while it is active. If null, the event will inherit it. - `const EventQueryTurnstileActionLog EventQueryTurnstileAction = "log"` - `const EventQueryTurnstileActionInfiniteQueue EventQueryTurnstileAction = "infinite_queue"` - `TurnstileMode EventQueryTurnstileMode` If set, the event will override the waiting room's `turnstile_mode` property while it is active. If null, the event will inherit it. - `const EventQueryTurnstileModeOff EventQueryTurnstileMode = "off"` - `const EventQueryTurnstileModeInvisible EventQueryTurnstileMode = "invisible"` - `const EventQueryTurnstileModeVisibleNonInteractive EventQueryTurnstileMode = "visible_non_interactive"` - `const EventQueryTurnstileModeVisibleManaged EventQueryTurnstileMode = "visible_managed"`