cloudflare
Version:
The official TypeScript library for the Cloudflare API
486 lines (419 loc) • 16.2 kB
text/typescript
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
import * as Core from "../../../core";
import { APIResource } from "../../../resource";
import * as EventsAPI from "./events";
import * as DetailsAPI from "./details";
import { SinglePage } from "../../../pagination";
export class Events extends APIResource {
details: DetailsAPI.Details = new DetailsAPI.Details(this._client);
/**
* 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.
*/
create(
zoneIdentifier: string,
waitingRoomId: string,
body: EventCreateParams,
options?: Core.RequestOptions,
): Core.APIPromise<WaitingroomEvent> {
return (
this._client.post(`/zones/${zoneIdentifier}/waiting_rooms/${waitingRoomId}/events`, {
body,
...options,
}) as Core.APIPromise<{ result: WaitingroomEvent }>
)._thenUnwrap((obj) => obj.result);
}
/**
* Updates a configured event for a waiting room.
*/
update(
zoneIdentifier: string,
waitingRoomId: string,
eventId: string,
body: EventUpdateParams,
options?: Core.RequestOptions,
): Core.APIPromise<WaitingroomEvent> {
return (
this._client.put(`/zones/${zoneIdentifier}/waiting_rooms/${waitingRoomId}/events/${eventId}`, {
body,
...options,
}) as Core.APIPromise<{ result: WaitingroomEvent }>
)._thenUnwrap((obj) => obj.result);
}
/**
* Lists events for a waiting room.
*/
list(
zoneIdentifier: string,
waitingRoomId: string,
options?: Core.RequestOptions,
): Core.PagePromise<WaitingroomEventsSinglePage, WaitingroomEvent> {
return this._client.getAPIList(
`/zones/${zoneIdentifier}/waiting_rooms/${waitingRoomId}/events`,
WaitingroomEventsSinglePage,
options,
);
}
/**
* Deletes an event for a waiting room.
*/
delete(
zoneIdentifier: string,
waitingRoomId: string,
eventId: string,
options?: Core.RequestOptions,
): Core.APIPromise<EventDeleteResponse> {
return (
this._client.delete(
`/zones/${zoneIdentifier}/waiting_rooms/${waitingRoomId}/events/${eventId}`,
options,
) as Core.APIPromise<{ result: EventDeleteResponse }>
)._thenUnwrap((obj) => obj.result);
}
/**
* Patches a configured event for a waiting room.
*/
edit(
zoneIdentifier: string,
waitingRoomId: string,
eventId: string,
body: EventEditParams,
options?: Core.RequestOptions,
): Core.APIPromise<WaitingroomEvent> {
return (
this._client.patch(`/zones/${zoneIdentifier}/waiting_rooms/${waitingRoomId}/events/${eventId}`, {
body,
...options,
}) as Core.APIPromise<{ result: WaitingroomEvent }>
)._thenUnwrap((obj) => obj.result);
}
/**
* Fetches a single configured event for a waiting room.
*/
get(
zoneIdentifier: string,
waitingRoomId: string,
eventId: string,
options?: Core.RequestOptions,
): Core.APIPromise<WaitingroomEvent> {
return (
this._client.get(
`/zones/${zoneIdentifier}/waiting_rooms/${waitingRoomId}/events/${eventId}`,
options,
) as Core.APIPromise<{ result: WaitingroomEvent }>
)._thenUnwrap((obj) => obj.result);
}
}
export class WaitingroomEventsSinglePage extends SinglePage<WaitingroomEvent> {}
export interface WaitingroomEvent {
id?: string;
created_on?: 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.
*/
custom_page_html?: string | null;
/**
* A note that you can use to add more details about the event.
*/
description?: string;
/**
* 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.
*/
disable_session_renewal?: boolean | null;
/**
* An ISO 8601 timestamp that marks the end of the event.
*/
event_end_time?: 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`.
*/
event_start_time?: string;
modified_on?: string;
/**
* A unique name to identify the event. Only alphanumeric characters, hyphens and
* underscores are allowed.
*/
name?: string;
/**
* 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.
*/
new_users_per_minute?: number | null;
/**
* 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`.
*/
prequeue_start_time?: string | null;
/**
* If set, the event will override the waiting room's `queueing_method` property
* while it is active. If null, the event will inherit it.
*/
queueing_method?: string | null;
/**
* If set, the event will override the waiting room's `session_duration` property
* while it is active. If null, the event will inherit it.
*/
session_duration?: number | null;
/**
* 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.
*/
shuffle_at_event_start?: boolean;
/**
* Suspends or allows an event. If set to `true`, the event is ignored and traffic
* will be handled based on the waiting room configuration.
*/
suspended?: boolean;
/**
* 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.
*/
total_active_users?: number | null;
}
export interface EventDeleteResponse {
id?: string;
}
export interface EventCreateParams {
/**
* An ISO 8601 timestamp that marks the end of the event.
*/
event_end_time: 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`.
*/
event_start_time: string;
/**
* A unique name to identify the event. Only alphanumeric characters, hyphens and
* underscores are allowed.
*/
name: 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.
*/
custom_page_html?: string | null;
/**
* A note that you can use to add more details about the event.
*/
description?: string;
/**
* 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.
*/
disable_session_renewal?: boolean | null;
/**
* 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.
*/
new_users_per_minute?: number | null;
/**
* 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`.
*/
prequeue_start_time?: string | null;
/**
* If set, the event will override the waiting room's `queueing_method` property
* while it is active. If null, the event will inherit it.
*/
queueing_method?: string | null;
/**
* If set, the event will override the waiting room's `session_duration` property
* while it is active. If null, the event will inherit it.
*/
session_duration?: number | null;
/**
* 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.
*/
shuffle_at_event_start?: boolean;
/**
* Suspends or allows an event. If set to `true`, the event is ignored and traffic
* will be handled based on the waiting room configuration.
*/
suspended?: boolean;
/**
* 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.
*/
total_active_users?: number | null;
}
export interface EventUpdateParams {
/**
* An ISO 8601 timestamp that marks the end of the event.
*/
event_end_time: 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`.
*/
event_start_time: string;
/**
* A unique name to identify the event. Only alphanumeric characters, hyphens and
* underscores are allowed.
*/
name: 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.
*/
custom_page_html?: string | null;
/**
* A note that you can use to add more details about the event.
*/
description?: string;
/**
* 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.
*/
disable_session_renewal?: boolean | null;
/**
* 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.
*/
new_users_per_minute?: number | null;
/**
* 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`.
*/
prequeue_start_time?: string | null;
/**
* If set, the event will override the waiting room's `queueing_method` property
* while it is active. If null, the event will inherit it.
*/
queueing_method?: string | null;
/**
* If set, the event will override the waiting room's `session_duration` property
* while it is active. If null, the event will inherit it.
*/
session_duration?: number | null;
/**
* 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.
*/
shuffle_at_event_start?: boolean;
/**
* Suspends or allows an event. If set to `true`, the event is ignored and traffic
* will be handled based on the waiting room configuration.
*/
suspended?: boolean;
/**
* 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.
*/
total_active_users?: number | null;
}
export interface EventEditParams {
/**
* An ISO 8601 timestamp that marks the end of the event.
*/
event_end_time: 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`.
*/
event_start_time: string;
/**
* A unique name to identify the event. Only alphanumeric characters, hyphens and
* underscores are allowed.
*/
name: 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.
*/
custom_page_html?: string | null;
/**
* A note that you can use to add more details about the event.
*/
description?: string;
/**
* 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.
*/
disable_session_renewal?: boolean | null;
/**
* 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.
*/
new_users_per_minute?: number | null;
/**
* 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`.
*/
prequeue_start_time?: string | null;
/**
* If set, the event will override the waiting room's `queueing_method` property
* while it is active. If null, the event will inherit it.
*/
queueing_method?: string | null;
/**
* If set, the event will override the waiting room's `session_duration` property
* while it is active. If null, the event will inherit it.
*/
session_duration?: number | null;
/**
* 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.
*/
shuffle_at_event_start?: boolean;
/**
* Suspends or allows an event. If set to `true`, the event is ignored and traffic
* will be handled based on the waiting room configuration.
*/
suspended?: boolean;
/**
* 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.
*/
total_active_users?: number | null;
}
export namespace Events {
export import WaitingroomEvent = EventsAPI.WaitingroomEvent;
export import EventDeleteResponse = EventsAPI.EventDeleteResponse;
export import WaitingroomEventsSinglePage = EventsAPI.WaitingroomEventsSinglePage;
export import EventCreateParams = EventsAPI.EventCreateParams;
export import EventUpdateParams = EventsAPI.EventUpdateParams;
export import EventEditParams = EventsAPI.EventEditParams;
export import Details = DetailsAPI.Details;
export import WaitingroomEventDetails = DetailsAPI.WaitingroomEventDetails;
}