-
Notifications
You must be signed in to change notification settings - Fork 181
Vonage Meetings
Vonage Meetings • Docs
Documentation / Vonage Meetings
Enum representing different event types.
Enumeration Member | Value | Description | Defined in |
---|---|---|---|
RECORDING_ENDED |
"recording:ended" |
Event type for the end of recording. | meetings/lib/enums/eventTypes.ts:28 |
RECORDING_READY |
"recording:ready" |
Event type for a recording that is ready. | meetings/lib/enums/eventTypes.ts:33 |
RECORDING_STARTED |
"recording:started" |
Event type for the start of recording. | meetings/lib/enums/eventTypes.ts:23 |
ROOM_EXPIRED |
"room:expired" |
Event type for a room that has expired. | meetings/lib/enums/eventTypes.ts:8 |
SESSION_ENDED |
"session:ended" |
Event type for the end of a session. | meetings/lib/enums/eventTypes.ts:18 |
SESSION_PARTICIPANT_JOINED |
"session:participant:joined" |
Event type for a participant joining a session. | meetings/lib/enums/eventTypes.ts:38 |
SESSION_PARTICIPANT_LEFT |
"session:participant:left" |
Event type for a participant leaving a session. | meetings/lib/enums/eventTypes.ts:43 |
SESSION_STARTED |
"session:started" |
Event type for the start of a session. | meetings/lib/enums/eventTypes.ts:13 |
Enum representing different join approval levels for a meeting room.
Enumeration Member | Value | Description | Defined in |
---|---|---|---|
AFTER_OWNER_ONLY |
"after_owner_only" |
Participants can join only after the owner has joined. | meetings/lib/enums/joinType.ts:13 |
EXPLICIT_APPROVAL |
"explicit_approval" |
Participants need explicit approval from the host to join. | meetings/lib/enums/joinType.ts:18 |
NONE |
"none" |
No approval is required for participants to join. | meetings/lib/enums/joinType.ts:8 |
Enum representing different types of logos.
Enumeration Member | Value | Description | Defined in |
---|---|---|---|
COLORED |
"colored" |
Colored logo. | meetings/lib/enums/logoType.ts:13 |
FAVICON |
"favicon" |
Favicon logo. | meetings/lib/enums/logoType.ts:18 |
WHITE |
"white" |
White logo. | meetings/lib/enums/logoType.ts:8 |
Enum representing different types of meetings.
Enumeration Member | Value | Description | Defined in |
---|---|---|---|
INSTANT |
"instant" |
Instant meeting type. An instant meeting is active for a limited duration. | meetings/lib/enums/meetingType.ts:9 |
LONG_TERM |
"long_term" |
Long-term meeting type. A long-term meeting can last for an extended period. | meetings/lib/enums/meetingType.ts:15 |
Enum representing different states for a microphone.
Enumeration Member | Value | Description | Defined in |
---|---|---|---|
DEFAULT |
"default" |
Default microphone state. | meetings/lib/enums/microphoneState.ts:18 |
OFF |
"off" |
Microphone is turned off. | meetings/lib/enums/microphoneState.ts:13 |
ON |
"on" |
Microphone is turned on. | meetings/lib/enums/microphoneState.ts:8 |
Enum representing different recording statuses.
Enumeration Member | Value | Description | Defined in |
---|---|---|---|
PAUSED |
"paused" |
Recording is paused. | meetings/lib/enums/recordingStatus.ts:18 |
STARTED |
"started" |
Recording has started. | meetings/lib/enums/recordingStatus.ts:8 |
STOPPED |
"stopped" |
Recording has stopped. | meetings/lib/enums/recordingStatus.ts:13 |
UPLOADED |
"uploaded" |
Recording has been uploaded. | meetings/lib/enums/recordingStatus.ts:23 |
Enum representing different room languages.
Enumeration Member | Value | Description | Defined in |
---|---|---|---|
DEFAULT |
"default" |
Default language for the room. | meetings/lib/enums/roomLanguage.ts:8 |
EN |
"en" |
English language. | meetings/lib/enums/roomLanguage.ts:13 |
ES |
"es" |
Spanish language. | meetings/lib/enums/roomLanguage.ts:23 |
HE |
"he" |
Hebrew language. | meetings/lib/enums/roomLanguage.ts:18 |
IT |
"it" |
Italian language. | meetings/lib/enums/roomLanguage.ts:33 |
PT |
"pt" |
Portuguese language. | meetings/lib/enums/roomLanguage.ts:28 |
Enum representing different theme domains.
Enumeration Member | Value | Description | Defined in |
---|---|---|---|
VBC |
"VBC" |
Theme domain for Vonage Business Communications | meetings/lib/enums/themeDomain.ts:13 |
VCP |
"VCP" |
Theme domain for Vonage Cloud Platform | meetings/lib/enums/themeDomain.ts:8 |
Client class to interact with the Meetings API to create and manage meeting rooms.
the meetings API is officially sunsetted by Vonage.
This client is only available as a standalone client. It cannot be instantiated from the server-sdk package.
Create a standalone Meetings Client
import { Meetings } from '@vonage/meetings';
const meetingsClient = new Meetings({
apiKey: VONAGE_API_KEY,
apiSecret: VONAGE_API_SECRET,
applicationId: VONAGE_APPLICATION_ID,
privateKey: VONAGE_APPLICATION_PRIVATE_KEY_PATH
});
new Meetings(credentials, options?): Meetings
Creates a new instance of the Client.
• credentials: AuthInterface
| AuthParams
The authentication credentials or an authentication instance.
• options?: ConfigParams
Optional configuration settings for the client.
server-client/dist/lib/client.d.ts:35
protected auth: AuthInterface;
The authentication instance responsible for generating authentication headers and query parameters.
server-client/dist/lib/client.d.ts:24
authType: AuthenticationType = AuthenticationType.JWT;
The type of authentication used for the client's requests.
protected config: ConfigParams;
Configuration settings for the client, including default hosts for various services and other request settings.
server-client/dist/lib/client.d.ts:28
FORM_BOUNDARY: string = '-------------------------Vonage-Node_SDK';
Used to keep the form boundary consistent when uploading files
ROOM_WRITE_KEYS: string[];
List of properties from the room that can be written
THEME_WRITE_KEYS: string[];
List of properties from the theme that can be written
static transformers: object;
Static property containing utility transformers.
camelCaseObjectKeys: PartialTransformFunction;
kebabCaseObjectKeys: PartialTransformFunction;
omit: (keys, obj) => TransformedObject;
• keys: string
[]
• obj: ObjectToTransform
snakeCaseObjectKeys: PartialTransformFunction;
server-client/dist/lib/client.d.ts:11
protected _getIconUploadUrl(logo): Promise<UrlResponse>
Retrieves the URL for uploading an icon (logo) to the specified LogoType.
• logo: LogoType
The LogoType for which the upload URL is requested.
Promise
<UrlResponse
>
A promise that resolves to the URLResponse containing the upload URL and fields.
If the upload URL retrieval fails or encounters an error.
protected _uploadToAws(urlResponse, logoFile): Promise<true>
Uploads a file to an AWS S3 bucket using the provided URL and fields.
• urlResponse: UrlResponse
The URL and fields required for the AWS S3 upload.
• logoFile: string
The file path of the file to upload.
Promise
<true
>
A promise that resolves to true
when the file is successfully uploaded to AWS S3.
If the upload fails or encounters an error.
addAuthenticationToRequest(request): Promise<VetchOptions>
Adds the appropriate authentication headers or parameters to the request based on the authentication type.
• request: VetchOptions
The request options to which authentication needs to be added.
Promise
<VetchOptions
>
- The request options with the added authentication.
Client
.addAuthenticationToRequest
server-client/dist/lib/client.d.ts:43
protected addBasicAuthToRequest(request): Promise<VetchOptions>
Adds basic authentication headers to the request.
• request: VetchOptions
The request options to which authentication needs to be added.
Promise
<VetchOptions
>
- The request options with the added authentication.
server-client/dist/lib/client.d.ts:71
protected addJWTToRequest(request): Promise<VetchOptions>
Adds a JWT to the request.
• request: VetchOptions
The request options to which authentication needs to be added.
Promise
<VetchOptions
>
- The request options with the added authentication.
server-client/dist/lib/client.d.ts:64
protected addQueryKeySecretToRequest(request): Promise<VetchOptions>
Adds API key and secret to the request.
• request: VetchOptions
The request options to which authentication needs to be added.
Promise
<VetchOptions
>
- The request options with the added authentication.
Client
.addQueryKeySecretToRequest
server-client/dist/lib/client.d.ts:57
protected addQueryKeySecretToRequestBody(request): Promise<VetchOptions>
Adds API key and secret to the request body.
• request: VetchOptions
The request options to which authentication needs to be added.
Promise
<VetchOptions
>
- The request options with the added authentication.
Client
.addQueryKeySecretToRequestBody
server-client/dist/lib/client.d.ts:50
createRoom(room): Promise<MeetingRoom>
Creates a new meeting room.
• room: MeetingRoom
The meeting room object to create.
Promise
<MeetingRoom
>
A promise that resolves to the created meeting room.
Create a new meeting room
const room = await meetingsClient.createRoom({
displayName: 'My Room',
metadata: {
my_data: 'my_value'
}
});
console.log(`Created room with ID ${room.id}`);
createTheme(theme): Promise<Theme>
Creates a new theme with the provided theme details.
• theme: Theme
The theme details to create.
Promise
<Theme
>
A Promise that resolves with the created theme.
Create a new themes
const theme = await meetingsClient.createTheme({
themeName: 'My Theme',
mainColor: '#C0FFEE',
brandText: 'My Brand',
shortCompanyUrl: 'my-brand'
});
console.log(`Created theme with ID ${theme.id}`);
deleteRecording(recordingId): Promise<void>
Deletes a recording by its ID.
• recordingId: string
The ID of the recording to delete.
Promise
<void
>
A promise that resolves when the recording is successfully deleted.
Delete a recording by ID
await meetingsClient.deleteRecording('my-recording-id');
console.log(`Recording with ID ${recordingId} has been deleted`);
deleteTheme(themeId, force?): Promise<void>
Deletes a theme by its theme ID.
• themeId: string
The ID of the theme to delete.
• force?: boolean
= false
Whether to force the deletion even if it's associated with rooms.
Promise
<void
>
A Promise that resolves when the theme is successfully deleted.
Delete a theme by ID
await meetingsClient.deleteTheme('my-theme-id');
console.log(`Theme with ID ${themeId} has been deleted`);
getConfig(): ConfigParams
server-client/dist/lib/client.d.ts:36
getDialInNumbers(): AsyncGenerator<DialInNumber, void & DialInNumber, undefined>
Retrieves a list of dial-in numbers.
AsyncGenerator
<DialInNumber
, undefined
>
An asynchronous generator that yields dial-in numbers.
All numbers will be returned in one request
Get a list of dial-in numbers
for await (const number of meetingsClient.getDialInNumbers()) {
console.log(`Dial-in number ${number.number} is in ${number.country}`);
}
getRecording(recordingId): Promise<Recording>
Retrieves a recording by its ID.
• recordingId: string
The ID of the recording to retrieve.
Promise
<Recording
>
A promise that resolves to the recording.
Get a recording by ID
const recording = await meetingsClient.getRecording('my-recording-id');
console.log(`Recording ${recording.id} started at ${recording.startedAt}`);
console.log(`Recording ${recording.id} ended at ${recording.endedAt}`);
getRoom(roomId): Promise<MeetingRoom>
Retrieves a meeting room by its ID.
• roomId: string
The ID of the meeting room to retrieve.
Promise
<MeetingRoom
>
A promise that resolves to the meeting room.
Get a meeting room by ID
const room = await meetingsClient.getRoom('my-room-id');
console.log(`Room ${room.id} has ${room.participants} participants`);
console.log(`Room ${room.id} has ${room.members} members`);
console.log(`Room ${room.id} has ${room.sessions} sessions`);
console.log(`Room ${room.id} has ${room.recordings} recordings`);
getRoomPage(params): Promise<MeetingRoomPageResponse>
Retrieves a page of meeting rooms based on the provided parameters.
• params: MeetingRoomParams
= {}
Optional parameters for pagination.
Promise
<MeetingRoomPageResponse
>
A promise that resolves to a page of meeting rooms.
Get a page of meeting rooms
const resp = await meetingsClient.getRoomPage();
console.log(`There are ${resp.totalItems} meeting rooms`);
console.log(`There are ${resp.pageSize} meeting rooms per page`);
Get a specific page of meeting rooms
const resp = await meetingsClient.getRoomPage({pageSize: 10, pageNumber: 2});
console.log(`There are ${resp.totalItems} meeting rooms`);
console.log(`There are ${resp.pageSize} meeting rooms per page`);
getRooms(params): AsyncGenerator<MeetingRoom, void & MeetingRoom, undefined>
Retrieves a list of meeting rooms until there are no more pages
• params: MeetingRoomParams
= {}
Optional parameters for pagination.
AsyncGenerator
<MeetingRoom
, undefined
>
An async generator of meeting rooms.
Generate a list of meeting rooms
for await (const room of meetingsClient.getRooms()) {
console.log(`Room ${room.id} has ${room.participants} participants`);
console.log(`Room ${room.id} has ${room.sessions} sessions`);
console.log(`Room ${room.id} has ${room.recordings} recordings`);
console.log(`Room ${room.id} has ${room.members} members`);
}
getRoomsForTheme(themeId, params): AsyncGenerator<MeetingRoom, void & MeetingRoom, undefined>
Retrieves a list of meeting rooms associated with a specific theme. This will keep calling the API until there are no more pages
• themeId: string
The ID of the theme for which to retrieve meeting rooms.
• params: MeetingRoomParams
= {}
Optional parameters to filter and paginate the results.
AsyncGenerator
<MeetingRoom
, undefined
>
An async generator that yields meeting rooms associated with the theme.
Get meeting rooms for a theme
for await (const room of meetingsClient.getRoomsForTheme('my-theme-id')) {
console.log(`Room ${room.id} has ${room.participants} participants`);
console.log(`Room ${room.id} has ${room.sessions} sessions`);
console.log(`Room ${room.id} has ${room.recordings} recordings`);
console.log(`Room ${room.id} has ${room.members} members`);
}
getRoomsForThemePage(themeId, params): Promise<MeetingRoomPageResponse>
Retrieves a page of meeting rooms associated with a specific theme.
• themeId: string
The ID of the theme for which to retrieve meeting rooms.
• params: MeetingRoomParams
= {}
Optional parameters to filter and paginate the results.
Promise
<MeetingRoomPageResponse
>
A promise that resolves to a page of meeting rooms associated with the theme.
Get a page of meeting rooms for a theme
const resp = await meetingsClient.getRoomsForThemePage('my-theme-id');
console.log(`There are ${resp.totalItems} meeting rooms`);
console.log(`There are ${resp.pageSize} meeting rooms per page`);
Get a specific page of meeting rooms for a theme
const resp = await meetingsClient.getRoomsForThemePage('my-theme-id', {pageSize: 10, pageNumber: 2});
console.log(`There are ${resp.totalItems} meeting rooms`);
console.log(`There are ${resp.pageSize} meeting rooms per page`);
getSessionRecordings(sessionId): AsyncGenerator<Recording, void & Recording, undefined>
Retrieves recordings associated with a session by its ID until there are no more recordings
• sessionId: string
The ID of the session for which to retrieve recordings.
AsyncGenerator
<Recording
, undefined
>
An async generator that yields recordings associated with the session.
All the recordings will be returned in one request. There could be a large number of recordings.
Get recordings for a session
for await (const recording of meetingsClient.getSessionRecordings('my-session-id')) {
console.log(`Recording ${recording.id} started at ${recording.startedAt}`);
console.log(`Recording ${recording.id} ended at ${recording.endedAt}`);
}
getTheme(themeId): Promise<Theme>
Retrieves a theme by its theme ID.
• themeId: string
The ID of the theme to retrieve.
Promise
<Theme
>
A Promise that resolves to the retrieved theme.
Get a theme by ID
const theme = await meetingsClient.getTheme('my-theme-id');
console.log(`Theme ${theme.themeName} has ID ${theme.id}`);
getThemes(): AsyncGenerator<Theme, void & Theme, undefined>
Retrieves a list of themes.
AsyncGenerator
<Theme
, undefined
>
An asynchronous generator that yields themes.
All themes are returned in one request
Get a list of getThemes
for await (const theme of meetingsClient.getThemes()) {
console.log(`Theme ${theme.themeName} has ID ${theme.id}`);
}
protected parseResponse<T>(request, response): Promise<VetchResponse<T>>
Parses the response based on its content type.
• T
The expected type of the parsed response data.
• request: VetchOptions
The request options.
• response: Response
The raw response from the request.
Promise
<VetchResponse
<T
>>
- The parsed response.
server-client/dist/lib/client.d.ts:168
protected prepareBody(request): undefined | string
Prepares the body for the request based on the content type.
• request: VetchOptions
The request options.
undefined
| string
- The prepared request body as a string or undefined.
server-client/dist/lib/client.d.ts:158
protected prepareRequest(request): Promise<VetchOptions>
Prepares the request with necessary headers, authentication, and query parameters.
• request: VetchOptions
The initial request options.
Promise
<VetchOptions
>
- The modified request options.
server-client/dist/lib/client.d.ts:151
sendDeleteRequest<T>(url): Promise<VetchResponse<T>>
Sends a DELETE request to the specified URL.
• T
• url: string
The URL endpoint for the DELETE request.
Promise
<VetchResponse
<T
>>
- The response from the DELETE request.
server-client/dist/lib/client.d.ts:78
sendFormSubmitRequest<T>(url, payload?): Promise<VetchResponse<T>>
Sends a POST request with form data to the specified URL.
• T
• url: string
The URL endpoint for the POST request.
• payload?: Record
<string
, undefined
| string
>
Optional payload containing form data to send with the POST request.
Promise
<VetchResponse
<T
>>
- The response from the POST request.
server-client/dist/lib/client.d.ts:86
sendGetRequest<T>(url, queryParams?): Promise<VetchResponse<T>>
Sends a GET request to the specified URL with optional query parameters.
• T
• url: string
The URL endpoint for the GET request.
• queryParams?
Optional query parameters to append to the URL. These should be compatible with Node's URLSearchParams.
Promise
<VetchResponse
<T
>>
- The response from the GET request.
server-client/dist/lib/client.d.ts:94
sendPatchRequest<T>(url, payload?): Promise<VetchResponse<T>>
Sends a PATCH request to the specified URL with an optional payload.
• T
• url: string
The URL endpoint for the PATCH request.
• payload?
Optional payload to be sent as the body of the PATCH request.
Promise
<VetchResponse
<T
>>
- The response from the PATCH request.
server-client/dist/lib/client.d.ts:104
sendPostRequest<T>(url, payload?): Promise<VetchResponse<T>>
Sends a POST request to the specified URL with an optional payload.
• T
• url: string
The URL endpoint for the POST request.
• payload?
Optional payload to be sent as the body of the POST request.
Promise
<VetchResponse
<T
>>
- The response from the POST request.
server-client/dist/lib/client.d.ts:114
sendPutRequest<T>(url, payload?): Promise<VetchResponse<T>>
Sends a PUT request to the specified URL with an optional payload.
• T
• url: string
The URL endpoint for the PUT request.
• payload?
Optional payload to be sent as the body of the PUT request.
Promise
<VetchResponse
<T
>>
- The response from the PUT request.
server-client/dist/lib/client.d.ts:124
sendRequest<T>(request): Promise<VetchResponse<T>>
Sends a request adding necessary headers, handling authentication, and parsing the response.
• T
• request: VetchOptions
The options defining the request, including URL, method, headers, and data.
Promise
<VetchResponse
<T
>>
- The parsed response from the request.
server-client/dist/lib/client.d.ts:144
sendRequestWithData<T>(
method,
url,
payload?): Promise<VetchResponse<T>>
Sends a request with JSON-encoded data to the specified URL using the provided HTTP method.
• T
• method: POST
| PUT
| PATCH
The HTTP method to be used for the request (only POST, PATCH, or PUT are acceptable).
• url: string
The URL endpoint for the request.
• payload?
Optional payload to be sent as the body of the request, JSON-encoded.
Promise
<VetchResponse
<T
>>
- The response from the request.
server-client/dist/lib/client.d.ts:135
setDefaultTheme(themeId): Promise<true>
Sets the default theme for the application.
• themeId: string
The ID of the theme to set as the default theme.
Promise
<true
>
A promise that resolves to true
when the default theme is set successfully.
Set the default theme
await meetingsClient.setDefaultTheme('my-theme-id');
console.log(`Default theme has been set`);
updateRoom(roomId, room): Promise<MeetingRoom>
Updates an existing meeting room.
• roomId: string
The ID of the meeting room to update.
• room: MeetingRoom
The meeting room object with updated information.
Promise
<MeetingRoom
>
A promise that resolves to the updated meeting room.
Update a meeting room
const room = await meetingsClient.updateRoom('my-room-id', {
displayName: 'My Room',
metadata: {
my_data: 'my_value'
}
});
console.log(`Updated room with ID ${room.id}`);
updateTheme(themeId, theme): Promise<Theme>
Updates an existing theme with the provided theme details.
• themeId: string
The ID of the theme to update.
• theme: Theme
The updated theme details.
Promise
<Theme
>
A Promise that resolves with the updated theme.
Update a theme
const theme = await meetingsClient.updateTheme('my-theme-id', {
themeName: 'My Theme',
mainColor: '#C0FFEE',
brandText: 'My Brand',
shortCompanyUrl: 'my-brand'
});
console.log(`Updated theme with ID ${theme.id}`);
uploadIcon(
themeId,
logo,
logoFile): Promise<true>
Uploads an icon (logo) to a theme.
• themeId: string
The ID of the theme to which the icon will be attached.
• logo: LogoType
The type of logo to upload (e.g., LogoType.WHITE, LogoType.COLORED).
• logoFile: string
The file path of the logo to upload.
Promise
<true
>
A promise that resolves to true
when the icon is uploaded and attached to the theme successfully.
To add icons and logos to a theme, they first need to be uploaded to the Meetings API AWS bucket, and then paired with the respective theme. You should also ensure that your Logos and Favicons adhere to the Image.
Uploading Icons and Logos https://developer.vonage.com/en/meetings/guides/upload-icons-logo
If the file specified by logoFile
does not exist or if the upload fails.
Upload an icon to a theme
await meetingsClient.uploadIcon('my-theme-id', LogoType.WHITE, '/path/to/white-logo.png');
console.log(`Icon has been uploaded`);
Exported as interface in error. Please use RecordingEnded
duration: number;
The duration of the recording in seconds.
RecordingEnded.duration
meetings/lib/types/events/recordingEndedEvent.ts:40
ended_at: string;
The date and time when the recording ended.
RecordingEnded.ended_at
meetings/lib/types/events/recordingEndedEvent.ts:35
event: RECORDING_ENDED;
The type of event, which is 'recording:ended'.
RecordingEnded.event
meetings/lib/types/events/recordingEndedEvent.ts:15
recording_id: string;
The unique identifier for the recording.
RecordingEnded.recording_id
meetings/lib/types/events/recordingEndedEvent.ts:20
session_id: string;
The unique identifier for the session associated with the recording.
RecordingEnded.session_id
meetings/lib/types/events/recordingEndedEvent.ts:25
started_at: string;
The date and time when the recording started.
RecordingEnded.started_at
meetings/lib/types/events/recordingEndedEvent.ts:30
Exported as interface in error. Please use RecordingReady
duration: number;
The duration of the recording in seconds.
RecordingReady.duration
meetings/lib/types/events/recordingReadyEvent.ts:45
ended_at: string;
The date and time when the recording ended.
RecordingReady.ended_at
meetings/lib/types/events/recordingReadyEvent.ts:40
event: RECORDING_READY;
The type of event, which is 'recording:ready'.
RecordingReady.event
meetings/lib/types/events/recordingReadyEvent.ts:15
recording_id: string;
The unique identifier for the recording.
RecordingReady.recording_id
meetings/lib/types/events/recordingReadyEvent.ts:20
room_id: string;
The unique identifier for the room associated with the recording.
RecordingReady.room_id
meetings/lib/types/events/recordingReadyEvent.ts:30
session_id: string;
The unique identifier for the session associated with the recording.
RecordingReady.session_id
meetings/lib/types/events/recordingReadyEvent.ts:25
started_at: string;
The date and time when the recording started.
RecordingReady.started_at
meetings/lib/types/events/recordingReadyEvent.ts:35
url: string;
The URL where the recording can be accessed.
RecordingReady.url
meetings/lib/types/events/recordingReadyEvent.ts:50
Exported as interface in error. Please use RecordingStarted
event: RECORDING_STARTED;
The type of event, which is 'recording:started'.
RecordingStarted.event
meetings/lib/types/events/recordingStartedEvent.ts:15
recording_id: string;
The unique identifier for the recording.
RecordingStarted.recording_id
meetings/lib/types/events/recordingStartedEvent.ts:20
session_id: string;
The unique identifier for the session associated with the recording.
RecordingStarted.session_id
meetings/lib/types/events/recordingStartedEvent.ts:25
Exported as interface in error. Please use RoomExpired
created_at: string;
The date and time when the room was created, expressed in ISO 8601 format.
RoomExpired.created_at
meetings/lib/types/events/roomExpiredEvent.ts:36
event: ROOM_EXPIRED;
The type of event, which is 'room:expired'.
RoomExpired.event
meetings/lib/types/events/roomExpiredEvent.ts:15
expires_at: string;
The date and time when the room will expire, expressed in ISO 8601 format. The value must be greater than 10 minutes from now.
RoomExpired.expires_at
meetings/lib/types/events/roomExpiredEvent.ts:31
room_id: string;
The unique identifier for the room.
RoomExpired.room_id
meetings/lib/types/events/roomExpiredEvent.ts:20
room_type: MeetingType;
The type of meeting associated with the room.
RoomExpired.room_type
meetings/lib/types/events/roomExpiredEvent.ts:25
Exported as interface in error. Please use SessionEnded
ended_at: string;
The date and time when the session ended.
SessionEnded.ended_at
meetings/lib/types/events/sessionEndedEvent.ts:35
event: SESSION_ENDED;
The type of event, which is 'session:ended'.
SessionEnded.event
meetings/lib/types/events/sessionEndedEvent.ts:15
room_id: string;
The unique identifier for the room associated with the session.
SessionEnded.room_id
meetings/lib/types/events/sessionEndedEvent.ts:25
session_id: string;
The unique identifier for the session.
SessionEnded.session_id
meetings/lib/types/events/sessionEndedEvent.ts:20
started_at: string;
The date and time when the session started.
SessionEnded.started_at
meetings/lib/types/events/sessionEndedEvent.ts:30
Exported as interface in error. Please use SessionStarted
event: SESSION_STARTED;
The type of event, which is 'session:started'.
SessionStarted.event
meetings/lib/types/events/sessionStartedEvent.ts:15
room_id: string;
The unique identifier for the room associated with the session.
SessionStarted.room_id
meetings/lib/types/events/sessionStartedEvent.ts:25
session_id: string;
The unique identifier for the session.
SessionStarted.session_id
meetings/lib/types/events/sessionStartedEvent.ts:20
started_at: string;
The date and time when the session started.
SessionStarted.started_at
meetings/lib/types/events/sessionStartedEvent.ts:30
type AvailableFeatures: object;
Represents available features for a meeting room.
optional isCaptionsAvailable: boolean;
Indicates if captions are available in the UI.
optional isChatAvailable: boolean;
Indicates if chat feature is available in the UI.
optional isLocaleSwitcherAvailable: boolean;
Indicates if the locale switcher is available in the UI.
optional isRecordingAvailable: boolean;
Indicates if recording feature is available in the UI.
optional isWhiteboardAvailable: boolean;
Indicates if whiteboard feature is available in the UI.
meetings/lib/types/availableFeatures.ts:4
type AvailableFeaturesResponse: object;
Represents available features in the user interface of a meeting room.
is_captions_available: boolean;
Determine if captions are available in the UI.
is_chat_available: boolean;
Determine if the chat feature is available in the UI.
is_locale_switcher_available: boolean;
Determine if the locale switcher is available in the UI.
is_recording_available: boolean;
Determine if the recording feature is available in the UI.
is_whiteboard_available: boolean;
Determine if the whiteboard feature is available in the UI.
Vonage API's will return information using snake_case
. This represents the
pure response before the client will transform the keys into camelCase
meetings/lib/types/response/meetingRoomResponse.ts:69
type CallbackUrlsResponse: object;
Represents callback URLs for events related to a meeting room.
recordings_callback_url: string;
Callback URL for recordings events, overrides application-level recordings callback URL.
rooms_callback_url: string;
Callback URL for rooms events, overrides application-level rooms callback URL.
sessions_callback_url: string;
Callback URL for sessions events, overrides application-level sessions callback URL.
Vonage API's will return information using snake_case
. This represents the
pure response before the client will transform the keys into camelCase
meetings/lib/types/response/meetingRoomResponse.ts:45
type DefaultThemeResponse: object;
Represents the response containing default theme information.
account_id: string;
The account ID associated with the default theme.
application_id: string;
The application ID associated with the default theme.
default_theme_id: string;
The ID of the default theme.
meetings/lib/types/response/defaultThemeResponse.ts:4
type DialInNumber: object;
Represents a dial-in number with associated information.
displayName: string;
The display name or label for the dial-in number.
locale: string;
The locale or region associated with the dial-in number.
number: string;
The phone number for dialing in.
meetings/lib/types/dialInNumber.ts:4
type InitialJoinOptionsResponse: object;
Represents the default options for participants when joining a meeting room.
microphone_state: MicrophoneSate;
The default microphone state for users in the pre-join screen of this room.
Vonage API's will return information using snake_case
. This represents the
pure response before the client will transform the keys into camelCase
meetings/lib/types/response/meetingRoomResponse.ts:31
type MeetingRoom: object;
Represents a meeting room with associated properties.
availableFeatures: AvailableFeatures;
Available features for the meeting room's user interface.
optional callbackUrls: RoomCallbackURLS;
Callback URLs for various room-related events.
optional createdAt: string;
The date and time when the meeting room was created.
displayName: string;
The display name or label for the meeting room.
optional expireAfterUse: boolean;
Indicates whether the room should expire after use (only relevant for long-term rooms).
optional expiresAt: string;
The date and time when the meeting room will expire.
optional guestUrl: string;
The URL for joining the meeting room as a guest.
optional hostUrl: string;
The URL for joining the meeting room as a host.
optional id: string;
The unique identifier for the meeting room.
optional initialJoinOptions: object;
Options for participants when they initially join the room.
optional initialJoinOptions.microphoneState: MicrophoneSate;
The default microphone state for users in the pre-join screen of this room.
optional isAvailable: boolean;
Indicates whether the meeting room is available for use.
optional joinApprovalLevel: JoinType;
The level of approval needed to join the meeting in the room.
optional meetingCode: string;
The meeting PIN number or code.
optional metadata: string;
Additional metadata or information about the meeting room.
optional recordingOptions: RecordingOptions;
Options related to recording meetings in the room.
optional themeId: string;
The unique identifier for the theme associated with the meeting room.
type: MeetingType;
The type of meeting, which can be instant or long term.
optional uiSettings: object;
User interface settings for the meeting room.
optional uiSettings.language: RoomLanguage;
The desired language of the UI.
meetings/lib/types/meetingRoom.ts:14
type MeetingRoomPageResponse: object & APILinks;
Represents the response for a page of meeting rooms.
_embedded: MeetingRoomResponse[];
An array of meeting room responses embedded within the page.
page_size: number;
The number of meeting rooms on the page.
total_items: number;
The total number of meeting rooms across all pages.
meetings/lib/types/response/meetingRoomPageResponse.ts:7
type MeetingRoomParams: object;
Represents parameters for querying meeting rooms.
optional endId: string;
The ending identifier for filtering meeting rooms.
optional pageSize: number;
The maximum number of items to retrieve per page.
optional startId: string;
The starting identifier for filtering meeting rooms.
meetings/lib/types/meetingRoomParams.ts:4
type MeetingRoomResponse: object & APILinks & Omit<MeetingRoom,
| "displayName"
| "recordingOptions"
| "meetingCode"
| "isAvailable"
| "themeId"
| "createdAt"
| "expiresAt"
| "expireAfterUse"
| "joinApprovalLevel"
| "initialJoinOptions"
| "callbackUrls"
| "availableFeatures"
| "uiSettings">;
Represents the response structure for a meeting room.
optional _links: object;
Links for guest and host URLs to join the meeting room.
_links.guest_url: APILink;
_links.host_url: APILink;
available_features: AvailableFeaturesResponse;
Available features in the meeting room's user interface.
callback_urls: CallbackUrlsResponse;
Callback URLs for events related to the room.
created_at: string;
The time when the meeting room was created, expressed in ISO 8601 format.
display_name: string;
The display name of the meeting room.
expire_after_use: string;
Indicates whether to expire the room after a session ends.
expires_at: string;
The time for when the room will expire, expressed in ISO 8601 format.
initial_join_options: InitialJoinOptionsResponse;
Default options for participants joining the room.
is_available: boolean;
Indicates whether the meeting room is available.
join_approval_level: JoinType;
The level of approval needed to join the meeting in the room.
meeting_code: string;
The meeting PIN.
recording_options: RecordingOptionsResponse;
Recording options for the meeting room.
theme_id: string;
The theme UUID associated with the meeting room.
ui_settings: UiSettingsResponse;
User interface settings for the meeting room.
Vonage API's will return information using snake_case
. This represents the
pure response before the client will transform the keys into camelCase
meetings/lib/types/response/meetingRoomResponse.ts:117
type Recording: object;
Represents a recording with associated properties.
endedAt: string;
The date and time when the recording ended.
id: string;
The unique identifier for the recording.
sessionId: string;
The unique identifier for the session associated with the recording.
startedAt: string;
The date and time when the recording started.
status: RecordingStatus;
The status of the recording.
url: string;
The URL where the recording can be accessed.
meetings/lib/types/recording.ts:6
type RecordingEnded: object;
Represents an event for recording ended.
duration: number;
The duration of the recording in seconds.
ended_at: string;
The date and time when the recording ended.
event: EventType.RECORDING_ENDED;
The type of event, which is 'recording:ended'.
recording_id: string;
The unique identifier for the recording.
session_id: string;
The unique identifier for the session associated with the recording.
started_at: string;
The date and time when the recording started.
The SDK does not have any functionality for process incoming webhook events. The types are provided here to help with code completion and TS Compiling
meetings/lib/types/events/recordingEndedEvent.ts:11
type RecordingOptions: object;
Represents options for recording a meeting.
autoRecord: boolean;
Indicates whether recording should be automatically started for all sessions.
recordOnlyOwner: boolean;
Indicates whether recording should be limited to the owner's screen or any shared screen.
meetings/lib/types/recordingOptions.ts:4
type RecordingOptionsResponse: object;
Represents recording options for a meeting room.
auto_record: boolean;
Indicates whether to automatically record all sessions in this room.
record_owner_only: boolean;
Indicates whether to record only the owner's screen or any shared screen during video.
Vonage API's will return information using snake_case
. This represents the
pure response before the client will transform the keys into camelCase
meetings/lib/types/response/meetingRoomResponse.ts:12
type RecordingReady: object;
Represents an event type for recording readiness.
duration: number;
The duration of the recording in seconds.
ended_at: string;
The date and time when the recording ended.
event: EventType.RECORDING_READY;
The type of event, which is 'recording:ready'.
recording_id: string;
The unique identifier for the recording.
room_id: string;
The unique identifier for the room associated with the recording.
session_id: string;
The unique identifier for the session associated with the recording.
started_at: string;
The date and time when the recording started.
url: string;
The URL where the recording can be accessed.
The SDK does not have any functionality for process incoming webhook events. The types are provided here to help with code completion and TS Compiling
meetings/lib/types/events/recordingReadyEvent.ts:11
type RecordingResponse: object;
Represents a response for a recording.
_links: object;
Links for accessing the recording URL.
_links.url: APILink;
The URL to access the recording.
ended_at: string;
The date when the recording ended, expressed in ISO 8601 format.
id: string;
The ID of the recording.
session_id: string;
The session ID corresponding to the recording.
started_at: string;
The date when the recording started, expressed in ISO 8601 format.
status: RecordingStatus;
The current status of the recording.
Vonage API's will return information using snake_case
. This represents the
pure response before the client will transform the keys into camelCase
meetings/lib/types/response/recordingResponse.ts:11
type RecordingResponsePage: object;
Represents a response page containing an array of recording responses.
_embedded: object;
An object containing an array of recording responses embedded within the page.
_embedded.recordings: RecordingResponse[];
An array of recording responses.
meetings/lib/types/response/recordingResponsePage.ts:6
type RecordingStarted: object;
Represents an event for recording started.
event: EventType.RECORDING_STARTED;
The type of event, which is 'recording:started'.
recording_id: string;
The unique identifier for the recording.
session_id: string;
The unique identifier for the session associated with the recording.
The SDK does not have any functionality for process incoming webhook events. The types are provided here to help with code completion and TS Compiling
meetings/lib/types/events/recordingStartedEvent.ts:11
type RoomCallbackURLS: object;
Represents callback URLs for various room-related events.
recordingsCallbackUrl: string;
The callback URL for recordings events.
roomsCallbackUrl: string;
The callback URL for rooms events.
sessionsCallbackUrl: string;
The callback URL for sessions events.
meetings/lib/types/roomCallbackURLS.ts:4
type RoomExpired: object;
Represents an event for a room expiration.
created_at: string;
The date and time when the room was created, expressed in ISO 8601 format.
event: EventType.ROOM_EXPIRED;
The type of event, which is 'room:expired'.
expires_at: string;
The date and time when the room will expire, expressed in ISO 8601 format. The value must be greater than 10 minutes from now.
room_id: string;
The unique identifier for the room.
room_type: MeetingType;
The type of meeting associated with the room.
The SDK does not have any functionality for process incoming webhook events. The types are provided here to help with code completion and TS Compiling
meetings/lib/types/events/roomExpiredEvent.ts:11
type SessionEnded: object;
Represents an event for a session ending.
ended_at: string;
The date and time when the session ended.
event: EventType.SESSION_ENDED;
The type of event, which is 'session:ended'.
room_id: string;
The unique identifier for the room associated with the session.
session_id: string;
The unique identifier for the session.
started_at: string;
The date and time when the session started.
The SDK does not have any functionality for process incoming webhook events. The types are provided here to help with code completion and TS Compiling
meetings/lib/types/events/sessionEndedEvent.ts:11
type SessionStarted: object;
Represents an event for a session starting.
event: EventType.SESSION_STARTED;
The type of event, which is 'session:started'.
room_id: string;
The unique identifier for the room associated with the session.
session_id: string;
The unique identifier for the session.
started_at: string;
The date and time when the session started.
The SDK does not have any functionality for process incoming webhook events. The types are provided here to help with code completion and TS Compiling
meetings/lib/types/events/sessionStartedEvent.ts:11
type Theme: object;
Represents a theme configuration for meeting rooms.
optional accountId: string;
The application's account ID (ApiKey).
optional applicationId: string;
The application ID.
optional brandedFavicon: string;
Favicon key in the storage system.
optional brandedFaviconUrl: string;
Favicon link.
optional brandImageColored: string;
Colored logo's key in the storage system.
optional brandImageColoredUrl: string;
Colored logo's link.
optional brandImageWhite: string;
White logo's key in the storage system.
optional brandImageWhiteUrl: string;
White logo's link.
brandText: string;
The text that will appear on the meeting homepage, in the case that there is no brand image.
optional domain: ThemeDomain;
The domain of the theme, which must be one of 'VCP' or 'VBC'.
mainColor: string;
The main color that will be used for the meeting room.
optional shortCompanyUrl: string;
The URL that will represent every meeting room with this theme. The value must be unique across Vonage.
optional themeId: string;
The unique identifier for the theme.
optional themeName: string;
The name of the theme (must be unique). If null, a UUID will automatically be generated.
type ThemeResponse: Theme;
meetings/lib/types/response/themeResponse.ts:3
type UiSettingsResponse: object;
Represents user interface settings for a meeting room.
language: RoomLanguage;
The desired language of the user interface.
Vonage API's will return information using snake_case
. This represents the
pure response before the client will transform the keys into camelCase
meetings/lib/types/response/meetingRoomResponse.ts:103
type UrlResponse: object;
Represents a response containing URL and associated fields for an image.
fields: object;
Fields related to the image URL.
fields.bucket: string;
The bucket where the image is stored.
fields.Content-Type: "image/png";
The content type of the image, typically 'image/png'.
fields.key: string;
The key associated with the image.
fields.logoType: LogoType;
The logo type of the image.
fields.Policy: string;
The policy associated with image access.
fields.X-Amz-Algorithm: string;
The AWS S3 algorithm used for access.
fields.X-Amz-Credential: string;
The AWS S3 credential for access.
fields.X-Amz-Date: string;
The date associated with the image access.
fields.X-Amz-Security-Token: string;
The security token for AWS access.
fields.X-Amz-Signature: string;
The AWS S3 signature for image access.
url: string;
The URL for the image.
Uploading a theme requires fetching a singed URL form AWS. The SDK handles this process for you so there should be no need to use the type. It is included for convenience.