···11+// This file is auto-generated by @hey-api/openapi-ts
22+33+/**
44+ * # session.user_phone_callout_ringing
55+ *
66+ * The **Invited party's phone (call out) ringing** event is triggered every time a user's phone is ringing when they were invited to join a session through phone (call out). Video SDK call out operates in a similar manner as [Zoom meeting call out](https://support.zoom.com/hc/article?id=zm_kb&sysparm_article=KB0062038).
77+ *
88+ * ## Prerequisites
99+ *
1010+ * * **Event Subscriptions** must be enabled for your app with the following configurations:
1111+ * * A valid **Event Notification Endpoint URL**.
1212+ * * The **Invited party's phone (call out) ringing** subscription enabled under the **Session** event.
1313+ *
1414+ *
1515+ *
1616+ *
1717+ * **Event type**: `session.user_phone_callout_ringing`
1818+ *
1919+ */
2020+export type SessionUserPhoneCalloutRingingWebhookPayload = {
2121+ /**
2222+ * The name of the event.
2323+ */
2424+ event: string;
2525+ /**
2626+ * A timestamp at which the event occurred.
2727+ */
2828+ event_ts: number;
2929+ payload: {
3030+ /**
3131+ * The account ID of the session host.
3232+ */
3333+ account_id: string;
3434+ /**
3535+ * Information about the session.
3636+ */
3737+ object: {
3838+ /**
3939+ * The session ID.
4040+ * @deprecated
4141+ */
4242+ id?: number;
4343+ /**
4444+ * The session's universally unique identifier (UUID). Each session instance generates a session UUID.
4545+ * @deprecated
4646+ */
4747+ uuid?: string;
4848+ /**
4949+ * Unique session identifier. Each instance of the session will have its own session_id.
5050+ */
5151+ session_id: string;
5252+ /**
5353+ * Session name.
5454+ */
5555+ session_name: string;
5656+ /**
5757+ * The Video SDK custom session ID.
5858+ */
5959+ session_key: string;
6060+ /**
6161+ * Another identifier for the inviter. Can be a number or characters.
6262+ */
6363+ user_key: string;
6464+ /**
6565+ * The user ID of the session host.
6666+ */
6767+ host_id: string;
6868+ /**
6969+ * Information about the invited user.
7070+ */
7171+ participant: {
7272+ /**
7373+ * The user's name to display in the session.
7474+ */
7575+ invitee_name: string;
7676+ /**
7777+ * The user's phone number.
7878+ */
7979+ phone_number: number;
8080+ /**
8181+ * The number used to call out to the invited user.
8282+ */
8383+ from_number: number;
8484+ };
8585+ };
8686+ };
8787+};
8888+8989+export type SessionUserPhoneCalloutRingingWebhookRequest = {
9090+ body: SessionUserPhoneCalloutRingingWebhookPayload;
9191+ key: 'session.user_phone_callout_ringing';
9292+ path?: never;
9393+ query?: never;
9494+};
9595+9696+/**
9797+ * # session.user_room_system_callout_ringing
9898+ *
9999+ * The **Invited party's phone (call out) ringing in Zoom room** event is triggered every time a user's phone is ringing when they were invited to [join a session through phone (call out) from a Zoom room](https://support.zoom.us/hc/en-us/articles/205369035).
100100+ *
101101+ * ## Prerequisites
102102+ *
103103+ * * **Event Subscriptions** must be enabled for your app with the following configurations:
104104+ * * A valid **Event Notification Endpoint URL**.
105105+ * * The **Invited party's phone (call out) ringing in Zoom room** subscription enabled under the **Session** event.
106106+ *
107107+ *
108108+ *
109109+ * **Event type**: `session.user_room_system_callout_ringing`
110110+ *
111111+ */
112112+export type SessionUserRoomSystemCalloutRingingWebhookPayload = {
113113+ /**
114114+ * The name of the event.
115115+ */
116116+ event: string;
117117+ /**
118118+ * A timestamp at which the event occurred.
119119+ */
120120+ event_ts: number;
121121+ payload: {
122122+ /**
123123+ * The account ID of the session host.
124124+ */
125125+ account_id: string;
126126+ /**
127127+ * Information about the session.
128128+ */
129129+ object: {
130130+ /**
131131+ * The session ID.
132132+ * @deprecated
133133+ */
134134+ id?: number;
135135+ /**
136136+ * The session's universally unique identifier (UUID). Each session instance generates a session UUID.
137137+ * @deprecated
138138+ */
139139+ uuid?: string;
140140+ /**
141141+ * Unique session identifier. Each instance of the session will have its own session_id.
142142+ */
143143+ session_id: string;
144144+ /**
145145+ * Session name.
146146+ */
147147+ session_name: string;
148148+ /**
149149+ * The user ID of the session host.
150150+ */
151151+ host_id: string;
152152+ /**
153153+ * The request unique identifier (UUID).
154154+ */
155155+ message_id: string;
156156+ /**
157157+ * The user name of the event's trigger.
158158+ */
159159+ inviter_name: string;
160160+ /**
161161+ * Information about the invited participant.
162162+ */
163163+ participant: {
164164+ /**
165165+ * The type of call out. Use a value of h323 or sip.
166166+ */
167167+ call_type: string;
168168+ /**
169169+ * The user's device IP address.
170170+ */
171171+ device_ip: string;
172172+ [key: string]: unknown | string;
173173+ };
174174+ };
175175+ };
176176+};
177177+178178+export type SessionUserRoomSystemCalloutRingingWebhookRequest = {
179179+ body: SessionUserRoomSystemCalloutRingingWebhookPayload;
180180+ key: 'session.user_room_system_callout_ringing';
181181+ path?: never;
182182+ query?: never;
183183+};
184184+185185+/**
186186+ * # session.recording_started
187187+ * ---
188188+ *
189189+ * Event: `session.recording_started`
190190+ *
191191+ * ## Event description
192192+ *
193193+ * The **Session recording started** event is triggered every time a recording is started by one of your app users or account users.
194194+ *
195195+ * Only a session host or co-host can start, pause, resume, or stop a cloud recording. A recording is considered complete **after** the host or co-host ends the session. See [Enable cloud recording](https://developers.zoom.us/docs/video-sdk/account/#enable-cloud-recording) for details.
196196+ *
197197+ * ## Prerequisites
198198+ *
199199+ * * Cloud Recording must be enabled on the Video SDK account.
200200+ * * Event Subscriptions must be enabled for your app with the following configurations:
201201+ * * A valid Event Notification Endpoint URL.
202202+ * * **Session recording started** subscription enabled under the **Recording** event.
203203+ *
204204+ * The tabs below display the complete schema, payload with data types, and an example of the `session.recording_started` event notification:
205205+ *
206206+ *
207207+ *
208208+ * **Event type**: `session.recording_started`
209209+ *
210210+ */
211211+export type SessionRecordingStartedWebhookPayload = {
212212+ /**
213213+ * The event's name.
214214+ */
215215+ event: 'session.recording_started';
216216+ /**
217217+ * A timestamp, in milliseconds since epoch, at which the event occurred.
218218+ */
219219+ event_ts: number;
220220+ payload: {
221221+ /**
222222+ * The Video SDK account ID.
223223+ */
224224+ account_id: string;
225225+ /**
226226+ * Information about the session. This object only returns updated properties.
227227+ */
228228+ object: {
229229+ /**
230230+ * Unique session identifier. Each instance of the session will have its own session_id.
231231+ */
232232+ session_id: string;
233233+ /**
234234+ * Session name.
235235+ */
236236+ session_name: string;
237237+ /**
238238+ * The Video SDK custom session ID.
239239+ */
240240+ session_key: string;
241241+ /**
242242+ * The time at which the session started.
243243+ */
244244+ start_time: string;
245245+ /**
246246+ * The user's timezone.
247247+ */
248248+ timezone: string;
249249+ recording_file: {
250250+ /**
251251+ * The recording start time.
252252+ */
253253+ recording_start?: string;
254254+ /**
255255+ * The recording end time. Response in general query.
256256+ */
257257+ recording_end?: string;
258258+ };
259259+ };
260260+ };
261261+};
262262+263263+export type SessionRecordingStartedWebhookRequest = {
264264+ body: SessionRecordingStartedWebhookPayload;
265265+ key: 'session.recording_started';
266266+ path?: never;
267267+ query?: never;
268268+};
269269+270270+/**
271271+ * # session.recording_resumed
272272+ * ---
273273+ *
274274+ * Event: `session.recording_resumed`
275275+ *
276276+ * ## Event description
277277+ *
278278+ * The **Session recording resumed** event is triggered every time a previously paused recording of a session is resumed.
279279+ *
280280+ * Only a session host or co-host can start, pause, resume, or stop a cloud recording. A recording is considered complete **after** the host or co-host ends the session. See [Enable cloud recording](https://developers.zoom.us/docs/video-sdk/account/#enable-cloud-recording) for details.
281281+ *
282282+ * ## Prerequisites
283283+ *
284284+ * * Cloud Recording must be enabled on the Video SDK account.
285285+ * * Event Subscriptions must be enabled for your app with the following configurations:
286286+ * * A valid Event Notification Endpoint URL.
287287+ * * **Session recording resumed** subscription enabled under the **Recording** event.
288288+ *
289289+ * The tabs below display the complete schema, payload with data types, and an example of the `session.recording_resumed` event notification:
290290+ *
291291+ *
292292+ *
293293+ * **Event type**: `session.recording_resumed`
294294+ *
295295+ */
296296+export type SessionRecordingResumedWebhookPayload = {
297297+ /**
298298+ * The event's name.
299299+ */
300300+ event: 'session.recording_resumed';
301301+ /**
302302+ * A timestamp, in milliseconds since epoch, at which the event occurred.
303303+ */
304304+ event_ts: number;
305305+ payload: {
306306+ /**
307307+ * The Video SDK account ID.
308308+ */
309309+ account_id: string;
310310+ /**
311311+ * Information about the session. This object only returns updated properties.
312312+ */
313313+ object: {
314314+ /**
315315+ * Unique session identifier. Each instance of the session will have its own session_id.
316316+ */
317317+ session_id: string;
318318+ /**
319319+ * Session name.
320320+ */
321321+ session_name: string;
322322+ /**
323323+ * The Video SDK custom session ID.
324324+ */
325325+ session_key: string;
326326+ /**
327327+ * The time at which the session started.
328328+ */
329329+ start_time: string;
330330+ /**
331331+ * The user's timezone.
332332+ */
333333+ timezone: string;
334334+ recording_file: {
335335+ /**
336336+ * The recording start time.
337337+ */
338338+ recording_start?: string;
339339+ /**
340340+ * The recording end time. Response in general query.
341341+ */
342342+ recording_end?: string;
343343+ };
344344+ };
345345+ };
346346+};
347347+348348+export type SessionRecordingResumedWebhookRequest = {
349349+ body: SessionRecordingResumedWebhookPayload;
350350+ key: 'session.recording_resumed';
351351+ path?: never;
352352+ query?: never;
353353+};
354354+355355+/**
356356+ * # session.live_streaming_stopped
357357+ * ---
358358+ *
359359+ *
360360+ * The Session Live Streaming Stopped event is triggered every time a user stops a live stream.
361361+ *
362362+ * ## Prerequisites
363363+ * Event Subscriptions must be enabled for your app with the following configurations:
364364+ *
365365+ * * A valid Event Notification Endpoint URL.
366366+ * * **Session Live Streaming Stopped** subscription enabled under the **Video SDK** event.
367367+ *
368368+ * The tabs below display the complete schema, payload with data types, and an example of the `session.live_streaming_stopped` event notification:
369369+ *
370370+ *
371371+ *
372372+ * **Event type**: `session.live_streaming_stopped`
373373+ *
374374+ */
375375+export type SessionLiveStreamingStoppedWebhookPayload = {
376376+ /**
377377+ * The name of the event.
378378+ */
379379+ event: 'session.live_streaming_stopped';
380380+ /**
381381+ * Timestamp (in milliseconds since epoch) at which the event occurred. The value of this field is returned in long(int64) format.
382382+ */
383383+ event_ts: number;
384384+ payload: {
385385+ /**
386386+ * The Video SDK account ID.
387387+ */
388388+ account_id: string;
389389+ /**
390390+ * Information about the session.
391391+ */
392392+ object: {
393393+ /**
394394+ * The session ID.
395395+ * @deprecated
396396+ */
397397+ id: string;
398398+ /**
399399+ * Unique session identifier. Each instance of the session will have its own session_id.
400400+ */
401401+ session_id: string;
402402+ /**
403403+ * Session name.
404404+ */
405405+ session_name: string;
406406+ /**
407407+ * The Video SDK custom session ID.
408408+ */
409409+ session_key?: string;
410410+ /**
411411+ * The session's start time.
412412+ */
413413+ start_time: string;
414414+ /**
415415+ * Information about the participant.
416416+ */
417417+ live_streaming: {
418418+ /**
419419+ * The name of the Live Streaming service.
420420+ */
421421+ service: 'Facebook' | 'Workplace_by_Facebook' | 'YouTube' | 'Custom_Live_Streaming_Service';
422422+ /**
423423+ * The live stream settings.
424424+ */
425425+ custom_live_streaming_settings: {
426426+ /**
427427+ * The stream's URL.
428428+ */
429429+ stream_url: string;
430430+ /**
431431+ * The stream's Key.
432432+ */
433433+ stream_key: string;
434434+ /**
435435+ * The live stream's page URL.
436436+ */
437437+ page_url: string;
438438+ /**
439439+ * The number of pixels in each dimension that the video camera can display.
440440+ */
441441+ resolution?: string;
442442+ };
443443+ /**
444444+ * The live stream's stop time.
445445+ */
446446+ date_time: string;
447447+ };
448448+ };
449449+ };
450450+};
451451+452452+export type SessionLiveStreamingStoppedWebhookRequest = {
453453+ body: SessionLiveStreamingStoppedWebhookPayload;
454454+ key: 'session.live_streaming_stopped';
455455+ path?: never;
456456+ query?: never;
457457+};
458458+459459+/**
460460+ * # session.stream_ingestion_stopped
461461+ * Zoom triggers the **Session stream ingestion stopped** event every time a user stops sending live incoming streams.
462462+ *
463463+ * ## Prerequisites
464464+ *
465465+ * * **Event Subscriptions** must be enabled for your app with the following configurations:
466466+ * * A valid **Event Notification Endpoint URL**.
467467+ * * The **Session stream ingestion stopped** subscription enabled under the **Video SDK** event.
468468+ *
469469+ *
470470+ * **Event type**: `session.stream_ingestion_stopped`
471471+ *
472472+ */
473473+export type SessionStreamIngestionStoppedWebhookPayload = {
474474+ /**
475475+ * Event name.
476476+ */
477477+ event: 'session.stream_ingestion_stopped';
478478+ /**
479479+ * Timestamp (in milliseconds since epoch) when the event occurred. The value of this field is returned in long (int64) format.
480480+ */
481481+ event_ts: number;
482482+ payload: {
483483+ /**
484484+ * The Video SDK account ID.
485485+ */
486486+ account_id: string;
487487+ /**
488488+ * Information about the session.
489489+ */
490490+ object: {
491491+ /**
492492+ * Unique session identifier. Each instance of the session will have its own session_id.
493493+ */
494494+ session_id: string;
495495+ /**
496496+ * Session name.
497497+ */
498498+ session_name: string;
499499+ /**
500500+ * The Video SDK custom session ID.
501501+ */
502502+ session_key?: string;
503503+ /**
504504+ * Information about the stream ingestion.
505505+ */
506506+ stream_ingestion: {
507507+ /**
508508+ * The stream ingestion ID.
509509+ */
510510+ stream_id: string;
511511+ /**
512512+ * The stream ingestion name.
513513+ */
514514+ stream_name: string;
515515+ /**
516516+ * The stream ingestion description.
517517+ */
518518+ stream_description?: string;
519519+ /**
520520+ * The stream ingestion key.
521521+ */
522522+ stream_key: string;
523523+ /**
524524+ * The stream URL.
525525+ */
526526+ stream_url: string;
527527+ /**
528528+ * The backup stream URL.
529529+ */
530530+ backup_stream_url: string;
531531+ };
532532+ };
533533+ };
534534+};
535535+536536+export type SessionStreamIngestionStoppedWebhookRequest = {
537537+ body: SessionStreamIngestionStoppedWebhookPayload;
538538+ key: 'session.stream_ingestion_stopped';
539539+ path?: never;
540540+ query?: never;
541541+};
542542+543543+/**
544544+ * # session.user_room_system_callout_rejected
545545+ *
546546+ * The **Invited party rejected a session invitation through phone (call out) via Zoom room** event is triggered every time a user rejects an invitation to [join a session through phone (call out) from a Zoom room](https://support.zoom.us/hc/en-us/articles/205369035).
547547+ *
548548+ * ## Prerequisites
549549+ *
550550+ * * **Event Subscriptions** must be enabled for your app with the following configurations:
551551+ * * A valid **Event Notification Endpoint URL**.
552552+ * * The **Invited party rejected a session invitation through phone (call out) via Zoom room** subscription enabled under the **Session** event.
553553+ *
554554+ *
555555+ *
556556+ * **Event type**: `session.user_room_system_callout_rejected`
557557+ *
558558+ */
559559+export type SessionUserRoomSystemCalloutRejectedWebhookPayload = {
560560+ /**
561561+ * The name of the event.
562562+ */
563563+ event: string;
564564+ /**
565565+ * A timestamp at which the event occurred.
566566+ */
567567+ event_ts: number;
568568+ payload: {
569569+ /**
570570+ * The account ID of the session host.
571571+ */
572572+ account_id: string;
573573+ /**
574574+ * Information about the session.
575575+ */
576576+ object: {
577577+ /**
578578+ * The session ID.
579579+ * @deprecated
580580+ */
581581+ id?: number;
582582+ /**
583583+ * The session's universally unique identifier (UUID). Each session instance generates a session UUID.
584584+ * @deprecated
585585+ */
586586+ uuid?: string;
587587+ /**
588588+ * Unique session identifier. Each instance of the session will have its own session_id.
589589+ */
590590+ session_id: string;
591591+ /**
592592+ * Session name.
593593+ */
594594+ session_name: string;
595595+ /**
596596+ * The user ID of the session host.
597597+ */
598598+ host_id: string;
599599+ /**
600600+ * The request unique identifier (UUID).
601601+ */
602602+ message_id: string;
603603+ /**
604604+ * The user name of the event's trigger.
605605+ */
606606+ inviter_name: string;
607607+ /**
608608+ * Information about the invited participant.
609609+ */
610610+ participant: {
611611+ /**
612612+ * The type of call out. Use a value of h323 or sip.
613613+ */
614614+ call_type: string;
615615+ /**
616616+ * The user's device IP address.
617617+ */
618618+ device_ip: string;
619619+ [key: string]: unknown | string;
620620+ };
621621+ };
622622+ };
623623+};
624624+625625+export type SessionUserRoomSystemCalloutRejectedWebhookRequest = {
626626+ body: SessionUserRoomSystemCalloutRejectedWebhookPayload;
627627+ key: 'session.user_room_system_callout_rejected';
628628+ path?: never;
629629+ query?: never;
630630+};
631631+632632+/**
633633+ * # session.alert
634634+ * ---
635635+ *
636636+ *
637637+ * The Session Alert event is triggered every time a service issue is encountered during a session in your account.
638638+ *
639639+ * The following quality metrics can trigger an alert:
640640+ *
641641+ * * Unstable audio quality
642642+ * * Unstable video quality
643643+ * * Unstable screen share quality
644644+ * * High CPU occupation
645645+ * * Call Reconnection
646646+ *
647647+ * ## Prerequisites
648648+ * Event Subscriptions must be enabled for your [Marketplace app](https://marketplace.zoom.us/user/build) with the following configurations:
649649+ *
650650+ * * A valid Event Notification Endpoint URL.
651651+ * * Session Alert subscription enabled under the Video SDK event.
652652+ *
653653+ * The tabs below display the complete schema, payload with data types, and an example of the `session.alert` event notification:
654654+ *
655655+ *
656656+ * **Event type**: `session.alert`
657657+ *
658658+ */
659659+export type SessionAlertWebhookPayload = {
660660+ /**
661661+ * The event's name.
662662+ */
663663+ event: 'session.alert';
664664+ /**
665665+ * A timestamp, in milliseconds since epoch, at which the event occurred.
666666+ */
667667+ event_ts: number;
668668+ payload: {
669669+ /**
670670+ * The Video SDK account ID.
671671+ */
672672+ account_id: string;
673673+ /**
674674+ * Information about the session. This object only returns updated properties.
675675+ */
676676+ object: {
677677+ /**
678678+ * The session ID.
679679+ */
680680+ id: string;
681681+ /**
682682+ * Unique session identifier. Each instance of the session will have its own session_id.
683683+ */
684684+ session_id: string;
685685+ /**
686686+ * Session name.
687687+ */
688688+ session_name: string;
689689+ /**
690690+ * The Video SDK custom session ID.
691691+ */
692692+ session_key?: string;
693693+ /**
694694+ * Issues that occurred during the session.
695695+ */
696696+ issues: Array<'Unstable audio quality' | 'Unstable video quality' | 'Unstable screen share quality' | 'High CPU occupation' | 'Call Reconnection'>;
697697+ };
698698+ };
699699+};
700700+701701+export type SessionAlertWebhookRequest = {
702702+ body: SessionAlertWebhookPayload;
703703+ key: 'session.alert';
704704+ path?: never;
705705+ query?: never;
706706+};
707707+708708+/**
709709+ * # session.sharing_ended
710710+ * ---
711711+ *
712712+ *
713713+ * The Session Sharing Ended event is triggered every time a user stops sharing the screen during a session.
714714+ *
715715+ * ## Prerequisites
716716+ * Event Subscriptions must be enabled for your [Marketplace app](https://marketplace.zoom.us/user/build) with the following configurations:
717717+ *
718718+ * * A valid Event Notification Endpoint URL.
719719+ * * **Session Sharing Ended** subscription enabled under the **Video SDK** event.
720720+ *
721721+ * The tabs below display the complete schema, payload with data types, and an example of the `session.sharing_ended` event notification:
722722+ *
723723+ *
724724+ *
725725+ * **Event type**: `session.sharing_ended`
726726+ *
727727+ */
728728+export type SessionSharingEndedWebhookPayload = {
729729+ /**
730730+ * The event's name.
731731+ */
732732+ event: 'session.sharing_ended';
733733+ /**
734734+ * A timestamp, in milliseconds since epoch, at which the event occurred.
735735+ */
736736+ event_ts: number;
737737+ payload: {
738738+ /**
739739+ * The Video SDK account ID.
740740+ */
741741+ account_id: string;
742742+ /**
743743+ * Information about the session. This object only returns updated properties.
744744+ */
745745+ object: {
746746+ /**
747747+ * The session ID.
748748+ * @deprecated
749749+ */
750750+ id: string;
751751+ /**
752752+ * Unique session identifier. Each instance of the session will have its own session_id.
753753+ */
754754+ session_id: string;
755755+ /**
756756+ * Session name.
757757+ */
758758+ session_name: string;
759759+ /**
760760+ * The Video SDK custom session ID.
761761+ */
762762+ session_key?: string;
763763+ /**
764764+ * Information about the user.
765765+ */
766766+ user: {
767767+ /**
768768+ * The user's unique ID. This value is assigned to the user upon joining a session and is only valid for that session.
769769+ */
770770+ id: string;
771771+ /**
772772+ * The user's username.
773773+ */
774774+ name: string;
775775+ /**
776776+ * Another identifier for the user. Can be a number or characters.
777777+ */
778778+ user_key?: string;
779779+ /**
780780+ * Information about the session's screen sharing.
781781+ */
782782+ sharing_details: {
783783+ /**
784784+ * The type of shared content:
785785+ * * application — An application. For example, a web browser.
786786+ * * whiteboard — The Zoom [whiteboard](https://support.zoom.us/hc/en-us/articles/205677665-Sharing-a-whiteboard).
787787+ * * desktop — A user's desktop.
788788+ * * unknown — An unrecognized application, such as a third party app.
789789+ */
790790+ content: 'application' | 'whiteboard' | 'desktop' | 'unknown';
791791+ /**
792792+ * The session's screen sharing date and time.
793793+ */
794794+ date_time: string;
795795+ };
796796+ };
797797+ };
798798+ };
799799+};
800800+801801+export type SessionSharingEndedWebhookRequest = {
802802+ body: SessionSharingEndedWebhookPayload;
803803+ key: 'session.sharing_ended';
804804+ path?: never;
805805+ query?: never;
806806+};
807807+808808+/**
809809+ * # session.recording_paused
810810+ * ---
811811+ *
812812+ * Event: `session.recording_paused`
813813+ *
814814+ * ## Event description
815815+ *
816816+ * The **Session recording paused** event is triggered every time a recording is paused by one of your app or account users.
817817+ *
818818+ * Only a session host or co-host can start, pause, resume, or stop a cloud recording. A recording is considered complete **after** the host or co-host ends the session. See [Enable cloud recording](https://developers.zoom.us/docs/video-sdk/account/#enable-cloud-recording) for details.
819819+ *
820820+ * ## Prerequisites
821821+ *
822822+ * * Cloud Recording must be enabled on the Video SDK account.
823823+ * * Event Subscriptions must be enabled for your app with the following configurations:
824824+ * * A valid Event Notification Endpoint URL.
825825+ * * "**Session recording paused**" subscription enabled under the **Recording** event.
826826+ *
827827+ * The tabs below display the complete schema, payload with data types, and an example of the `session.recording_paused` event notification:
828828+ *
829829+ *
830830+ *
831831+ * **Event type**: `session.recording_paused`
832832+ *
833833+ */
834834+export type SessionRecordingPausedWebhookPayload = {
835835+ /**
836836+ * The event's name.
837837+ */
838838+ event: 'session.recording_paused';
839839+ /**
840840+ * A timestamp, in milliseconds since epoch, at which the event occurred.
841841+ */
842842+ event_ts: number;
843843+ payload: {
844844+ /**
845845+ * The Video SDK account ID.
846846+ */
847847+ account_id: string;
848848+ /**
849849+ * Information about the session. This object only returns updated properties.
850850+ */
851851+ object: {
852852+ /**
853853+ * Unique session identifier. Each instance of the session will have its own session_id.
854854+ */
855855+ session_id: string;
856856+ /**
857857+ * Session name.
858858+ */
859859+ session_name: string;
860860+ /**
861861+ * The Video SDK custom session ID.
862862+ */
863863+ session_key: string;
864864+ /**
865865+ * The time at which the session started.
866866+ */
867867+ start_time: string;
868868+ /**
869869+ * The user's timezone.
870870+ */
871871+ timezone: string;
872872+ recording_file: {
873873+ /**
874874+ * The recording start time.
875875+ */
876876+ recording_start?: string;
877877+ /**
878878+ * The recording end time. Response in general query.
879879+ */
880880+ recording_end?: string;
881881+ };
882882+ };
883883+ };
884884+};
885885+886886+export type SessionRecordingPausedWebhookRequest = {
887887+ body: SessionRecordingPausedWebhookPayload;
888888+ key: 'session.recording_paused';
889889+ path?: never;
890890+ query?: never;
891891+};
892892+893893+/**
894894+ * # session.ended
895895+ * ---
896896+ *
897897+ *
898898+ * The Session Ended event is triggered when the host ends the session, or when all users have left the session.
899899+ *
900900+ * ## Prerequisites
901901+ * Event Subscriptions must be enabled for your app with the following configurations:
902902+ *
903903+ * * A valid Event Notification Endpoint URL.
904904+ * * **Session Ended** subscription enabled under the **Video SDK** event.
905905+ *
906906+ * The tabs below display the complete schema, payload with data types, and an example of the `session.ended` event notification:
907907+ *
908908+ *
909909+ *
910910+ * **Event type**: `session.ended`
911911+ *
912912+ */
913913+export type SessionEndedWebhookPayload = {
914914+ /**
915915+ * The name of the event.
916916+ */
917917+ event: 'session.ended';
918918+ /**
919919+ * Timestamp at which the event occurred, in milliseconds since epoch. The value of this field is returned in long(int64) format.
920920+ */
921921+ event_ts: number;
922922+ payload: {
923923+ /**
924924+ * The Video SDK account ID.
925925+ */
926926+ account_id: string;
927927+ /**
928928+ * Information about the session.
929929+ */
930930+ object: {
931931+ /**
932932+ * The session ID.
933933+ * @deprecated
934934+ */
935935+ id: string;
936936+ /**
937937+ * Unique session identifier. Each instance of the session will have its own session_id.
938938+ */
939939+ session_id: string;
940940+ /**
941941+ * Session name.
942942+ */
943943+ session_name: string;
944944+ /**
945945+ * The Video SDK custom session ID.
946946+ */
947947+ session_key?: string;
948948+ /**
949949+ * The session's start time.
950950+ */
951951+ start_time: string;
952952+ /**
953953+ * The session's end time.
954954+ */
955955+ end_time: string;
956956+ };
957957+ };
958958+};
959959+960960+export type SessionEndedWebhookRequest = {
961961+ body: SessionEndedWebhookPayload;
962962+ key: 'session.ended';
963963+ path?: never;
964964+ query?: never;
965965+};
966966+967967+/**
968968+ * # session.started
969969+ * ---
970970+ *
971971+ *
972972+ * The Session Start event is triggered when the first user (including host and co-host) joins.
973973+ *
974974+ * ## Prerequisites
975975+ * Event Subscriptions must be enabled for your app with the following configurations:
976976+ *
977977+ * * A valid Event Notification Endpoint URL.
978978+ * * **Session Started** subscription enabled under the **Video SDK** event.
979979+ *
980980+ * The tabs below display the complete schema, payload with data types, and an example of the `session.started` event notification:
981981+ *
982982+ *
983983+ *
984984+ * **Event type**: `session.started`
985985+ *
986986+ */
987987+export type SessionStartedWebhookPayload = {
988988+ /**
989989+ * The name of the event.
990990+ */
991991+ event: 'session.started';
992992+ /**
993993+ * Timestamp (in milliseconds since epoch) at which the event occurred. The value of this field is returned in long(int64) format.
994994+ */
995995+ event_ts: number;
996996+ payload: {
997997+ /**
998998+ * The Video SDK account ID.
999999+ */
10001000+ account_id: string;
10011001+ /**
10021002+ * Information about the session.
10031003+ */
10041004+ object: {
10051005+ /**
10061006+ * The session's ID.
10071007+ * @deprecated
10081008+ */
10091009+ id: string;
10101010+ /**
10111011+ * Unique session identifier. Each instance of the session will have its own session_id.
10121012+ */
10131013+ session_id: string;
10141014+ /**
10151015+ * Session name.
10161016+ */
10171017+ session_name: string;
10181018+ /**
10191019+ * The Video SDK custom session ID.
10201020+ */
10211021+ session_key?: string;
10221022+ /**
10231023+ * The session's start time.
10241024+ */
10251025+ start_time: string;
10261026+ };
10271027+ };
10281028+};
10291029+10301030+export type SessionStartedWebhookRequest = {
10311031+ body: SessionStartedWebhookPayload;
10321032+ key: 'session.started';
10331033+ path?: never;
10341034+ query?: never;
10351035+};
10361036+10371037+/**
10381038+ * # session.stream_ingestion_unbind
10391039+ * Zoom triggers the **Session stream ingestion unbind** event every time a session unbinds a stream key.
10401040+ *
10411041+ * ## Prerequisites
10421042+ *
10431043+ * * **Event Subscriptions** must be enabled for your app with the following configurations:
10441044+ * * A valid **Event Notification Endpoint URL**.
10451045+ * * The **Session stream ingestion unbind** subscription enabled under the **Video SDK** event.
10461046+ *
10471047+ *
10481048+ * **Event type**: `session.stream_ingestion_unbind`
10491049+ *
10501050+ */
10511051+export type SessionStreamIngestionUnbindWebhookPayload = {
10521052+ /**
10531053+ * Event name.
10541054+ */
10551055+ event: 'session.stream_ingestion_unbind';
10561056+ /**
10571057+ * Timestamp (in milliseconds since epoch) at which the event occurred. The value of this field is returned in long (int64) format.
10581058+ */
10591059+ event_ts: number;
10601060+ payload: {
10611061+ /**
10621062+ * The Video SDK account ID.
10631063+ */
10641064+ account_id: string;
10651065+ /**
10661066+ * Information about the session.
10671067+ */
10681068+ object: {
10691069+ /**
10701070+ * Unique session identifier. Each instance of the session will have its own session_id.
10711071+ */
10721072+ session_id: string;
10731073+ /**
10741074+ * Session name.
10751075+ */
10761076+ session_name: string;
10771077+ /**
10781078+ * The Video SDK custom session ID.
10791079+ */
10801080+ session_key?: string;
10811081+ /**
10821082+ * Information about the stream ingestion.
10831083+ */
10841084+ stream_ingestion: {
10851085+ /**
10861086+ * The stream ingestion ID.
10871087+ */
10881088+ stream_id: string;
10891089+ /**
10901090+ * The stream ingestion name.
10911091+ */
10921092+ stream_name: string;
10931093+ /**
10941094+ * The stream ingestion description.
10951095+ */
10961096+ stream_description?: string;
10971097+ /**
10981098+ * The stream ingestion key.
10991099+ */
11001100+ stream_key: string;
11011101+ /**
11021102+ * The stream URL.
11031103+ */
11041104+ stream_url: string;
11051105+ /**
11061106+ * The backup stream URL.
11071107+ */
11081108+ backup_stream_url: string;
11091109+ };
11101110+ };
11111111+ };
11121112+};
11131113+11141114+export type SessionStreamIngestionUnbindWebhookRequest = {
11151115+ body: SessionStreamIngestionUnbindWebhookPayload;
11161116+ key: 'session.stream_ingestion_unbind';
11171117+ path?: never;
11181118+ query?: never;
11191119+};
11201120+11211121+/**
11221122+ * # session.live_streaming_started
11231123+ * ---
11241124+ *
11251125+ *
11261126+ * The Session Live Streaming Started event is triggered every time a user starts a live stream.
11271127+ *
11281128+ * ## Prerequisites
11291129+ * Event Subscriptions must be enabled for your app with the following configurations:
11301130+ *
11311131+ * * A valid Event Notification Endpoint URL.
11321132+ * * **Session Live Streaming Started** subscription enabled under the **Video SDK** event.
11331133+ *
11341134+ * The tabs below display the complete schema, payload with data types, and an example of the `session.live_streaming_started` event notification:
11351135+ *
11361136+ *
11371137+ *
11381138+ * **Event type**: `session.live_streaming_started`
11391139+ *
11401140+ */
11411141+export type SessionLiveStreamingStartedWebhookPayload = {
11421142+ /**
11431143+ * Name of the event.
11441144+ */
11451145+ event: 'session.live_streaming_started';
11461146+ /**
11471147+ * Timestamp (in milliseconds since epoch) at which the event occurred. The value of this field is returned in long(int64) format.
11481148+ */
11491149+ event_ts: number;
11501150+ payload: {
11511151+ /**
11521152+ * The Video SDK account ID.
11531153+ */
11541154+ account_id: string;
11551155+ /**
11561156+ * Information about the session.
11571157+ */
11581158+ object: {
11591159+ /**
11601160+ * The session ID.
11611161+ * @deprecated
11621162+ */
11631163+ id: string;
11641164+ /**
11651165+ * Unique session identifier. Each instance of the session will have its own session_id.
11661166+ */
11671167+ session_id: string;
11681168+ /**
11691169+ * Session name.
11701170+ */
11711171+ session_name: string;
11721172+ /**
11731173+ * The Video SDK custom session ID.
11741174+ */
11751175+ session_key?: string;
11761176+ /**
11771177+ * The session's start time.
11781178+ */
11791179+ start_time: string;
11801180+ /**
11811181+ * Information about the participant.
11821182+ */
11831183+ live_streaming: {
11841184+ /**
11851185+ * The name of the Live Streaming service.
11861186+ */
11871187+ service: 'Facebook' | 'Workplace_by_Facebook' | 'YouTube' | 'Custom_Live_Streaming_Service';
11881188+ /**
11891189+ * The live stream settings.
11901190+ */
11911191+ custom_live_streaming_settings: {
11921192+ /**
11931193+ * The stream's URL.
11941194+ */
11951195+ stream_url: string;
11961196+ /**
11971197+ * The stream's key.
11981198+ */
11991199+ stream_key: string;
12001200+ /**
12011201+ * The live stream's page URL.
12021202+ */
12031203+ page_url: string;
12041204+ /**
12051205+ * The number of pixels in each dimension that the video camera can display.
12061206+ */
12071207+ resolution?: string;
12081208+ };
12091209+ /**
12101210+ * The live stream's start time.
12111211+ */
12121212+ date_time: string;
12131213+ };
12141214+ };
12151215+ };
12161216+};
12171217+12181218+export type SessionLiveStreamingStartedWebhookRequest = {
12191219+ body: SessionLiveStreamingStartedWebhookPayload;
12201220+ key: 'session.live_streaming_started';
12211221+ path?: never;
12221222+ query?: never;
12231223+};
12241224+12251225+/**
12261226+ * # session.user_room_system_callout_missed
12271227+ *
12281228+ * The **Invited party missed a session invitation through phone (call out) via Zoom room** event is triggered every time an invitation to [join a session through phone (call out) from a Zoom room](https://support.zoom.us/hc/en-us/articles/205369035) times out.
12291229+ *
12301230+ * ## Prerequisites
12311231+ *
12321232+ * * **Event Subscriptions** must be enabled for your app with the following configurations:
12331233+ * * A valid **Event Notification Endpoint URL**.
12341234+ * * The **Invited party missed a session invitation through phone (call out) via Zoom room** subscription enabled under the **Session** event.
12351235+ *
12361236+ *
12371237+ *
12381238+ * **Event type**: `session.user_room_system_callout_missed`
12391239+ *
12401240+ */
12411241+export type SessionUserRoomSystemCalloutMissedWebhookPayload = {
12421242+ /**
12431243+ * The name of the event.
12441244+ */
12451245+ event: string;
12461246+ /**
12471247+ * A timestamp at which the event occurred.
12481248+ */
12491249+ event_ts: number;
12501250+ payload: {
12511251+ /**
12521252+ * The account ID of the session host.
12531253+ */
12541254+ account_id: string;
12551255+ /**
12561256+ * Information about the session.
12571257+ */
12581258+ object: {
12591259+ /**
12601260+ * The session ID.
12611261+ * @deprecated
12621262+ */
12631263+ id?: number;
12641264+ /**
12651265+ * The session's universally unique identifier (UUID). Each session instance generates a session UUID.
12661266+ * @deprecated
12671267+ */
12681268+ uuid?: string;
12691269+ /**
12701270+ * Unique session identifier. Each instance of the session will have its own session_id.
12711271+ */
12721272+ session_id: string;
12731273+ /**
12741274+ * Session name.
12751275+ */
12761276+ session_name: string;
12771277+ /**
12781278+ * The user ID of the session host.
12791279+ */
12801280+ host_id: string;
12811281+ /**
12821282+ * The request unique identifier (UUID).
12831283+ */
12841284+ message_id: string;
12851285+ /**
12861286+ * The user name of the event's trigger.
12871287+ */
12881288+ inviter_name: string;
12891289+ /**
12901290+ * Information about the invited participant.
12911291+ */
12921292+ participant: {
12931293+ /**
12941294+ * The type of call out. Use a value of h323 or sip.
12951295+ */
12961296+ call_type: string;
12971297+ /**
12981298+ * The user's device IP address.
12991299+ */
13001300+ device_ip: string;
13011301+ [key: string]: unknown | string;
13021302+ };
13031303+ };
13041304+ };
13051305+};
13061306+13071307+export type SessionUserRoomSystemCalloutMissedWebhookRequest = {
13081308+ body: SessionUserRoomSystemCalloutMissedWebhookPayload;
13091309+ key: 'session.user_room_system_callout_missed';
13101310+ path?: never;
13111311+ query?: never;
13121312+};
13131313+13141314+/**
13151315+ * # session.user_phone_callout_accepted
13161316+ *
13171317+ * The **Invited party answered a session invitation through phone (call out)** event is triggered every time a user accepts an invitation to join a session through phone (call out). Video SDK call out operates in a similar manner as [Zoom meeting call out](https://support.zoom.com/hc/article?id=zm_kb&sysparm_article=KB0062038).
13181318+ *
13191319+ * ## Prerequisites
13201320+ *
13211321+ * * **Event Subscriptions** must be enabled for your app with the following configurations:
13221322+ * * A valid **Event Notification Endpoint URL**.
13231323+ * * The **Invited party answered a session invitation through phone (call out)** subscription enabled under the **Session** event.
13241324+ *
13251325+ *
13261326+ *
13271327+ * **Event type**: `session.user_phone_callout_accepted`
13281328+ *
13291329+ */
13301330+export type SessionUserPhoneCalloutAcceptedWebhookPayload = {
13311331+ /**
13321332+ * The name of the event.
13331333+ */
13341334+ event: string;
13351335+ /**
13361336+ * A timestamp at which the event occurred.
13371337+ */
13381338+ event_ts: number;
13391339+ payload: {
13401340+ /**
13411341+ * The account ID of the session host.
13421342+ */
13431343+ account_id: string;
13441344+ /**
13451345+ * Information about the session.
13461346+ */
13471347+ object: {
13481348+ /**
13491349+ * The session ID.
13501350+ * @deprecated
13511351+ */
13521352+ id?: number;
13531353+ /**
13541354+ * The session's universally unique identifier (UUID). Each session instance generates a session UUID.
13551355+ * @deprecated
13561356+ */
13571357+ uuid?: string;
13581358+ /**
13591359+ * Unique session identifier. Each instance of the session will have its own session_id.
13601360+ */
13611361+ session_id: string;
13621362+ /**
13631363+ * Session name.
13641364+ */
13651365+ session_name: string;
13661366+ /**
13671367+ * The Video SDK custom session ID.
13681368+ */
13691369+ session_key: string;
13701370+ /**
13711371+ * Another identifier for the inviter. Can be a number or characters.
13721372+ */
13731373+ user_key: string;
13741374+ /**
13751375+ * The user ID of the session host.
13761376+ */
13771377+ host_id: string;
13781378+ /**
13791379+ * Information about the invited participant.
13801380+ */
13811381+ participant: {
13821382+ /**
13831383+ * The user's name to display in the session.
13841384+ */
13851385+ invitee_name: string;
13861386+ /**
13871387+ * The user's phone number.
13881388+ */
13891389+ phone_number: number;
13901390+ /**
13911391+ * The number used to call out to the invited user.
13921392+ */
13931393+ from_number: number;
13941394+ };
13951395+ };
13961396+ };
13971397+};
13981398+13991399+export type SessionUserPhoneCalloutAcceptedWebhookRequest = {
14001400+ body: SessionUserPhoneCalloutAcceptedWebhookPayload;
14011401+ key: 'session.user_phone_callout_accepted';
14021402+ path?: never;
14031403+ query?: never;
14041404+};
14051405+14061406+/**
14071407+ * # session.user_left
14081408+ *
14091409+ *
14101410+ * The Session User Left event is triggered every time a user (including host and co-host) leaves a session.
14111411+ *
14121412+ * ## Prerequisites
14131413+ * Event Subscriptions must be enabled for your [Marketplace app](https://marketplace.zoom.us/user/build) with the following configurations:
14141414+ *
14151415+ * * A valid Event Notification Endpoint URL.
14161416+ * * Session User Left subscription enabled under the Video SDK event.
14171417+ *
14181418+ *
14191419+ *
14201420+ * **Event type**: `session.user_left`
14211421+ *
14221422+ */
14231423+export type SessionUserLeftWebhookPayload = {
14241424+ /**
14251425+ * The event's name.
14261426+ */
14271427+ event: 'session.user_left';
14281428+ /**
14291429+ * A timestamp, in milliseconds since epoch, at which the event occurred.
14301430+ */
14311431+ event_ts: number;
14321432+ payload: {
14331433+ /**
14341434+ * The Video SDK account ID.
14351435+ */
14361436+ account_id: string;
14371437+ /**
14381438+ * Information about the session. This object only returns updated properties.
14391439+ */
14401440+ object: {
14411441+ /**
14421442+ * The session ID.
14431443+ */
14441444+ id: string;
14451445+ /**
14461446+ * Unique session identifier. Each instance of the session will have its own session_id.
14471447+ */
14481448+ session_id: string;
14491449+ /**
14501450+ * Session name.
14511451+ */
14521452+ session_name: string;
14531453+ /**
14541454+ * The Video SDK custom session ID.
14551455+ */
14561456+ session_key?: string;
14571457+ /**
14581458+ * Information about the user.
14591459+ */
14601460+ user: {
14611461+ /**
14621462+ * The user's unique ID. This value is assigned to the user upon joining a session and is only valid for that session.
14631463+ */
14641464+ id: string;
14651465+ /**
14661466+ * The user's username.
14671467+ */
14681468+ name: string;
14691469+ /**
14701470+ * The time at which the user left the session.
14711471+ */
14721472+ leave_time: string;
14731473+ /**
14741474+ * The reason why the user left the session, where $name is the participant's username:
14751475+ * * $name left the session.
14761476+ * * $name got disconnected from the session.
14771477+ * * Host ended the session.
14781478+ * * Host closed the session.
14791479+ * * Host started a new session.
14801480+ * * Network connection error.
14811481+ * * Host did not join.
14821482+ * * Exceeded free session minutes limit.
14831483+ * * Removed by host.
14841484+ * * Unknown reason.
14851485+ * * Leave waiting room.
14861486+ * * Removed by host from waiting room.
14871487+ */
14881488+ leave_reason?: string;
14891489+ /**
14901490+ * Another identifier for the user. Can be a number or characters.
14911491+ */
14921492+ user_key?: string;
14931493+ /**
14941494+ * Phone number of participant joined via PSTN.
14951495+ */
14961496+ phone_number?: string;
14971497+ /**
14981498+ * The participant's UUID. This value is assigned to a participant upon joining a session and is only valid for the session's duration.
14991499+ */
15001500+ participant_uuid: string;
15011501+ };
15021502+ };
15031503+ };
15041504+};
15051505+15061506+export type SessionUserLeftWebhookRequest = {
15071507+ body: SessionUserLeftWebhookPayload;
15081508+ key: 'session.user_left';
15091509+ path?: never;
15101510+ query?: never;
15111511+};
15121512+15131513+/**
15141514+ * # session.sharing_started
15151515+ *
15161516+ *
15171517+ * The Session Sharing Started event is triggered every time a user starts sharing the screen during a session.
15181518+ *
15191519+ * ## Prerequisites
15201520+ * Event Subscriptions must be enabled for your [Marketplace app](https://marketplace.zoom.us/user/build) with the following configurations:
15211521+ *
15221522+ * * A valid Event Notification Endpoint URL.
15231523+ * * **Session Sharing Started** subscription enabled under the **Video SDK** event.
15241524+ *
15251525+ * The tabs below display the complete schema, payload with data types, and an example of the `session.sharing_started` event notification:
15261526+ *
15271527+ *
15281528+ *
15291529+ * **Event type**: `session.sharing_started`
15301530+ *
15311531+ */
15321532+export type SessionSharingStartedWebhookPayload = {
15331533+ /**
15341534+ * The event's name.
15351535+ */
15361536+ event: 'session.sharing_started';
15371537+ /**
15381538+ * A timestamp, in milliseconds since epoch, at which the event occurred.
15391539+ */
15401540+ event_ts: number;
15411541+ payload: {
15421542+ /**
15431543+ * The Video SDK account ID.
15441544+ */
15451545+ account_id: string;
15461546+ /**
15471547+ * Information about the session. This object only returns updated properties.
15481548+ */
15491549+ object: {
15501550+ /**
15511551+ * The session ID.
15521552+ */
15531553+ id: string;
15541554+ /**
15551555+ * Unique session identifier. Each instance of the session will have its own session_id.
15561556+ */
15571557+ session_id: string;
15581558+ /**
15591559+ * Session name.
15601560+ */
15611561+ session_name: string;
15621562+ /**
15631563+ * The Video SDK custom session ID.
15641564+ */
15651565+ session_key?: string;
15661566+ /**
15671567+ * Information about the user.
15681568+ */
15691569+ user: {
15701570+ /**
15711571+ * The user's unique ID. This value is assigned to the user upon joining a session and is only valid for that session.
15721572+ */
15731573+ id: string;
15741574+ /**
15751575+ * The user's username.
15761576+ */
15771577+ name: string;
15781578+ /**
15791579+ * Another identifier for the user. Can be a number or characters.
15801580+ */
15811581+ user_key?: string;
15821582+ /**
15831583+ * Information about the session's screen sharing.
15841584+ */
15851585+ sharing_details: {
15861586+ /**
15871587+ * The type of shared content:
15881588+ * * application — An application. For example, a web browser.
15891589+ * * whiteboard — The Zoom [whiteboard](https://support.zoom.us/hc/en-us/articles/205677665-Sharing-a-whiteboard).
15901590+ * * desktop — A user's desktop.
15911591+ * * unknown — An unrecognized application, such as a third party app.
15921592+ */
15931593+ content: 'application' | 'whiteboard' | 'desktop' | 'unknown';
15941594+ /**
15951595+ * The session's screen sharing date and time.
15961596+ */
15971597+ date_time: string;
15981598+ };
15991599+ };
16001600+ };
16011601+ };
16021602+};
16031603+16041604+export type SessionSharingStartedWebhookRequest = {
16051605+ body: SessionSharingStartedWebhookPayload;
16061606+ key: 'session.sharing_started';
16071607+ path?: never;
16081608+ query?: never;
16091609+};
16101610+16111611+/**
16121612+ * # session.user_phone_callout_canceled
16131613+ * The **Invited party's phone (call out) canceled** event is triggered every time the inviter cancels the call out when they were invited to join a session through phone (call out). Video SDK call out operates in a similar manner as [Zoom meeting call out](https://support.zoom.com/hc/article?id=zm_kb&sysparm_article=KB0062038).
16141614+ *
16151615+ * ## Prerequisites
16161616+ *
16171617+ * * **Event Subscriptions** must be enabled for your app with the following configurations:
16181618+ * * A valid **Event Notification Endpoint URL**.
16191619+ * * The **Invited party's phone (call out) canceled** subscription enabled under the **Session** event.
16201620+ *
16211621+ *
16221622+ * **Event type**: `session.user_phone_callout_canceled`
16231623+ *
16241624+ */
16251625+export type SessionUserPhoneCalloutCanceledWebhookPayload = {
16261626+ /**
16271627+ * The name of the event.
16281628+ */
16291629+ event: string;
16301630+ /**
16311631+ * A timestamp at which the event occurred.
16321632+ */
16331633+ event_ts: number;
16341634+ payload: {
16351635+ /**
16361636+ * The account ID of the session host.
16371637+ */
16381638+ account_id: string;
16391639+ /**
16401640+ * Information about the session.
16411641+ */
16421642+ object: {
16431643+ /**
16441644+ * Unique session identifier. Each instance of the session will have its own session_id.
16451645+ */
16461646+ session_id: string;
16471647+ /**
16481648+ * Session name.
16491649+ */
16501650+ session_name: string;
16511651+ /**
16521652+ * The Video SDK custom session ID.
16531653+ */
16541654+ session_key: string;
16551655+ /**
16561656+ * Another identifier for the inviter. Can be a number or characters.
16571657+ */
16581658+ user_key: string;
16591659+ /**
16601660+ * Information about the invited participant.
16611661+ */
16621662+ participant: {
16631663+ /**
16641664+ * The user's name to display in the session.
16651665+ */
16661666+ invitee_name: string;
16671667+ /**
16681668+ * The user's phone number.
16691669+ */
16701670+ phone_number: number;
16711671+ /**
16721672+ * The number used to call out to the invited user.
16731673+ */
16741674+ from_number: number;
16751675+ };
16761676+ };
16771677+ };
16781678+};
16791679+16801680+export type SessionUserPhoneCalloutCanceledWebhookRequest = {
16811681+ body: SessionUserPhoneCalloutCanceledWebhookPayload;
16821682+ key: 'session.user_phone_callout_canceled';
16831683+ path?: never;
16841684+ query?: never;
16851685+};
16861686+16871687+/**
16881688+ * # session.recording_transcript_completed
16891689+ * ---
16901690+ *
16911691+ * Event: `session.recording_transcript_completed`
16921692+ *
16931693+ * ## Event description
16941694+ *
16951695+ * The **Session recording transcript completed** event is triggered every time the transcript of the recording of a session becomes available to view or download.
16961696+ *
16971697+ * Only a session host or co-host can start, pause, resume, or stop a cloud recording. A recording is considered complete **after** the host or co-host ends the session. See [Enable cloud recording](https://developers.zoom.us/docs/video-sdk/account/#enable-cloud-recording) for details.
16981698+ *
16991699+ * ## Prerequisites
17001700+ *
17011701+ * * Cloud Recording must be enabled on the Video SDK account.
17021702+ * * Event Subscriptions must be enabled for your app with the following configurations:
17031703+ * * A valid Event Notification Endpoint URL.
17041704+ * * Session recording transcript completed subscription enabled under the Recording event.
17051705+ *
17061706+ * The tabs below display the complete schema, payload with data types, and an example of the `session.recording_transcript_completed` event notification:
17071707+ *
17081708+ *
17091709+ *
17101710+ * **Event type**: `session.recording_transcript_completed`
17111711+ *
17121712+ */
17131713+export type SessionRecordingTranscriptCompletedWebhookPayload = {
17141714+ /**
17151715+ * The event's name.
17161716+ */
17171717+ event: 'session.recording_transcript_completed';
17181718+ /**
17191719+ * A timestamp, in milliseconds since epoch, at which the event occurred.
17201720+ */
17211721+ event_ts: number;
17221722+ /**
17231723+ * A generated token used to download the recording. The download token only lasts for 24 hours after its creation and you can only download the file within 24 hours of receiving the event notification. You can either pass the download_token as a Bearer token in the Authorization header of your HTTP request (recommended) or include it as a query parameter. See the following for examples.
17241724+ *
17251725+ * **Using an Authorization header (Recommended)**
17261726+ *
17271727+ *
17281728+ * curl --request GET \
17291729+ * --url {download_url} \
17301730+ * --header 'authorization: Bearer {download_token} \
17311731+ * --header 'content-type: application/json'
17321732+ *
17331733+ *
17341734+ * **Using a query parameter**
17351735+ *
17361736+ *
17371737+ * {download_url}/?access_token={download_token}
17381738+ *
17391739+ *
17401740+ * For example: https://zoom.us/recording/download/123456?access_token=abcdefgh
17411741+ */
17421742+ download_token: string;
17431743+ payload: {
17441744+ /**
17451745+ * The Video SDK account ID.
17461746+ */
17471747+ account_id: string;
17481748+ /**
17491749+ * Information about the session. This object only returns updated properties.
17501750+ */
17511751+ object: {
17521752+ /**
17531753+ * Unique session identifier. Each instance of the session will have its own session_id.
17541754+ */
17551755+ session_id: string;
17561756+ /**
17571757+ * Session name.
17581758+ */
17591759+ session_name: string;
17601760+ /**
17611761+ * The Video SDK custom session ID.
17621762+ */
17631763+ session_key: string;
17641764+ /**
17651765+ * The time at which the session started.
17661766+ */
17671767+ start_time: string;
17681768+ /**
17691769+ * The user's timezone.
17701770+ */
17711771+ timezone: string;
17721772+ /**
17731773+ * Recording file List
17741774+ * List of recording file.
17751775+ */
17761776+ recording_files: Array<{
17771777+ /**
17781778+ * The recording file ID. Included in the response of general query.
17791779+ */
17801780+ id?: string;
17811781+ /**
17821782+ * The recording start time.
17831783+ */
17841784+ recording_start?: string;
17851785+ /**
17861786+ * The recording end time. Response in general query.
17871787+ */
17881788+ recording_end?: string;
17891789+ /**
17901790+ * Name of the file.
17911791+ */
17921792+ file_name?: string;
17931793+ /**
17941794+ * The file path to the On-Premise account recording.
17951795+ *
17961796+ * **Note:** This API only returns this field for [Zoom On-Premise accounts](https://support.zoom.us/hc/en-us/articles/360034064852-Zoom-On-Premise-Deployment). It does **not** return the download_url field.
17971797+ */
17981798+ file_path?: string;
17991799+ /**
18001800+ * The recording file type. The value of this field could be one of the following:<br>
18011801+ * MP4: Video file of the recording.<br>M4A Audio-only file of the recording.<br>TIMELINE: Timestamp file of the recording in JSON file format. To get a timeline file, the "Add a timestamp to the recording" setting must be enabled in the [recording settings](https://support.zoom.us/hc/en-us/articles/360060316092). The time will display in the host's timezone, set on their Zoom profile.
18021802+ * <br> TRANSCRIPT: Transcription file of the recording in VTT format.<br> CHAT: A TXT file containing in-session chat messages that were sent during the session.<br>CC: File containing closed captions of the recording in VTT file format.<br>CSV: File containing polling data in csv format.
18031803+ *
18041804+ * <br>
18051805+ *
18061806+ * A recording file object with file type of either CC or TIMELINE **does not have** the following properties:<br>
18071807+ * id, status, file_size, recording_type.
18081808+ */
18091809+ file_type?: 'MP4' | 'M4A' | 'CHAT' | 'TRANSCRIPT' | 'CSV' | 'CC' | 'TB' | 'CHAT_MESSAGE' | 'TIMELINE';
18101810+ /**
18111811+ * The recording file size.
18121812+ */
18131813+ file_size?: number;
18141814+ /**
18151815+ * The archived file's file extension.
18161816+ */
18171817+ file_extension?: 'MP4' | 'M4A' | 'TXT' | 'VTT' | 'CSV' | 'JSON' | 'JPG';
18181818+ /**
18191819+ * The URL at which to download the the recording.
18201820+ *
18211821+ * To access a private or password-protected cloud recording of a user in your account, use your [Video SDK API JWT](https://marketplace.zoom.us/docs/guides/build/video-sdk-app/#video-sdk-and-api-credentials). You can either pass the generated JWT as a Bearer token in the Authorization header of your HTTP request (recommended) or include it as a query parameter at the end of the URL. See the following for examples.
18221822+ *
18231823+ * **Using an Authorization header (Recommended)**
18241824+ *
18251825+ *
18261826+ * curl --request GET \
18271827+ * --url {download_url} \
18281828+ * --header 'authorization: Bearer {JWT} \
18291829+ * --header 'content-type: application/json'
18301830+ *
18311831+ *
18321832+ * **Using a query parameter**
18331833+ *
18341834+ *
18351835+ * {download_url}/?access_token={download_token}
18361836+ *
18371837+ *
18381838+ * For example: https://{base-domain}/recording/download/{path-to-file-download}?access_token={JWT}.
18391839+ */
18401840+ download_url?: string;
18411841+ /**
18421842+ * The recording status.
18431843+ */
18441844+ status?: 'completed';
18451845+ /**
18461846+ * The recording type. The value of this field can be one of the following:<br>shared_screen_with_speaker_view(CC)<br>shared_screen_with_speaker_view<br>shared_screen_with_gallery_view<br>speaker_view<br>gallery_view<br>shared_screen<br>audio_only<br>audio_transcript<br>chat_file<br>active_speaker<br>poll<br>timeline<br>closed_caption
18471847+ */
18481848+ recording_type?: 'shared_screen_with_speaker_view(CC)' | 'shared_screen_with_speaker_view' | 'shared_screen_with_gallery_view' | 'gallery_view' | 'shared_screen' | 'audio_only' | 'audio_transcript' | 'chat_file' | 'active_speaker' | 'host_video' | 'audio_only_each_participant' | 'cc_transcript' | 'closed_caption' | 'poll' | 'timeline' | 'thumbnail' | 'chat_message';
18491849+ }>;
18501850+ };
18511851+ };
18521852+};
18531853+18541854+export type SessionRecordingTranscriptCompletedWebhookRequest = {
18551855+ body: SessionRecordingTranscriptCompletedWebhookPayload;
18561856+ key: 'session.recording_transcript_completed';
18571857+ path?: never;
18581858+ query?: never;
18591859+};
18601860+18611861+/**
18621862+ * # session.recording_deleted
18631863+ * ---
18641864+ *
18651865+ * Event: `session.recording_deleted`
18661866+ *
18671867+ * ## Event description
18681868+ *
18691869+ * The **Session recording permanently deleted** event is triggered every time one of your app users or account users permanently deletes a cloud recording.
18701870+ *
18711871+ * When a user initially deletes a recording, it is sent to the trash. At this stage, the recording can still be recovered for up to 30 days after deletion. To permanently delete a recording, users must delete it from the trash. Users can permanently delete a recording using:
18721872+ *
18731873+ * * The [Delete session's recording API](https://developers.zoom.us/docs/api/rest/reference/video-sdk/methods/#operation/recordingDelete) **with the delete query parameter** or
18741874+ * * The Zoom web portal. See [Video SDK account](https://developers.zoom.us/docs/video-sdk/account/) for details.
18751875+ *
18761876+ * ## Prerequisites
18771877+ *
18781878+ * * Cloud Recording must be enabled on the Video SDK account.
18791879+ * * Event Subscriptions must be enabled for your app with the following configurations:
18801880+ * * A valid Event Notification Endpoint URL.
18811881+ * * "**Session recording permanently deleted**" subscription enabled under the **Recording** event.
18821882+ *
18831883+ * The tabs below display the complete schema, payload with data types, and an example of the `session.recording_deleted` event notification:
18841884+ *
18851885+ *
18861886+ *
18871887+ * **Event type**: `session.recording_deleted`
18881888+ *
18891889+ */
18901890+export type SessionRecordingDeletedWebhookPayload = {
18911891+ /**
18921892+ * The event's name.
18931893+ */
18941894+ event: 'session.recording_deleted';
18951895+ /**
18961896+ * A timestamp, in milliseconds since epoch, at which the event occurred.
18971897+ */
18981898+ event_ts: number;
18991899+ payload: {
19001900+ /**
19011901+ * The Video SDK account ID.
19021902+ */
19031903+ account_id: string;
19041904+ /**
19051905+ * The email address of the user who deleted the recording.
19061906+ */
19071907+ operator: string;
19081908+ /**
19091909+ * The user ID of the user who deleted the recording.
19101910+ */
19111911+ operator_id: string;
19121912+ /**
19131913+ * Information about the session. This object only returns updated properties.
19141914+ */
19151915+ object: {
19161916+ /**
19171917+ * Unique session identifier. Each instance of the session will have its own session_id.
19181918+ */
19191919+ session_id: string;
19201920+ /**
19211921+ * Session name.
19221922+ */
19231923+ session_name: string;
19241924+ /**
19251925+ * The Video SDK custom session ID.
19261926+ */
19271927+ session_key: string;
19281928+ /**
19291929+ * The time at which the session started.
19301930+ */
19311931+ start_time: string;
19321932+ /**
19331933+ * The user's timezone.
19341934+ */
19351935+ timezone: string;
19361936+ };
19371937+ };
19381938+};
19391939+19401940+export type SessionRecordingDeletedWebhookRequest = {
19411941+ body: SessionRecordingDeletedWebhookPayload;
19421942+ key: 'session.recording_deleted';
19431943+ path?: never;
19441944+ query?: never;
19451945+};
19461946+19471947+/**
19481948+ * # session.user_room_system_callout_failed
19491949+ *
19501950+ * The **Session invitation through phone (call out) via Zoom room failed** event is triggered every time an invitation to [join a session through phone (call out) from a Zoom room](https://support.zoom.us/hc/en-us/articles/205369035) fails.
19511951+ *
19521952+ * ## Prerequisites
19531953+ *
19541954+ * * **Event Subscriptions** must be enabled for your app with the following configurations:
19551955+ * * A valid **Event Notification Endpoint URL**.
19561956+ * * The **Session invitation through phone (call out) via Zoom room failed** subscription enabled under the **Session** event.
19571957+ *
19581958+ *
19591959+ *
19601960+ * **Event type**: `session.user_room_system_callout_failed`
19611961+ *
19621962+ */
19631963+export type SessionUserRoomSystemCalloutFailedWebhookPayload = {
19641964+ /**
19651965+ * The name of the event.
19661966+ */
19671967+ event: string;
19681968+ /**
19691969+ * A timestamp at which the event occurred.
19701970+ */
19711971+ event_ts: number;
19721972+ payload: {
19731973+ /**
19741974+ * The account ID of the session host.
19751975+ */
19761976+ account_id: string;
19771977+ /**
19781978+ * Information about the session.
19791979+ */
19801980+ object: {
19811981+ /**
19821982+ * The session ID.
19831983+ * @deprecated
19841984+ */
19851985+ id?: number;
19861986+ /**
19871987+ * The session's universally unique identifier (UUID). Each session instance generates a session UUID.
19881988+ * @deprecated
19891989+ */
19901990+ uuid?: string;
19911991+ /**
19921992+ * Unique session identifier. Each instance of the session will have its own session_id.
19931993+ */
19941994+ session_id: string;
19951995+ /**
19961996+ * Session name.
19971997+ */
19981998+ session_name: string;
19991999+ /**
20002000+ * The user ID of the session host.
20012001+ */
20022002+ host_id: string;
20032003+ /**
20042004+ * The request unique identifier (UUID).
20052005+ */
20062006+ message_id: string;
20072007+ /**
20082008+ * The user name of the event's trigger.
20092009+ */
20102010+ inviter_name: string;
20112011+ /**
20122012+ * reason type for failure:
20132013+ * * 1 — Encryption_Fail.
20142014+ * * 2 — Disconnected_By_Remote.
20152015+ * * 3 — Retry.
20162016+ * * 4 — Bad_Seq.
20172017+ * * 5 — Call_Limit.
20182018+ * * 6 — Not_Registered.
20192019+ * * 7 — Timeout.
20202020+ * * 8 — Bad_Addr.
20212021+ * * 9 — Unreachable
20222022+ * * 10 — Disconnect_By_Local
20232023+ * * 11 — Server_Internal_Error
20242024+ * * 12 — Exceed_Free_Port
20252025+ * * 13 — Connect_Error
20262026+ * * 14 — Proxy_Connect_Error
20272027+ * * 0 — Other_Failed_Reason.
20282028+ */
20292029+ reason_type: 0 | 1 | 2 | 3 | 4 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14;
20302030+ /**
20312031+ * Information about the invited participant.
20322032+ */
20332033+ participant: {
20342034+ /**
20352035+ * The type of call out. Use a value of h323 or sip.
20362036+ */
20372037+ call_type: string;
20382038+ /**
20392039+ * The user's device IP address.
20402040+ */
20412041+ device_ip: string;
20422042+ [key: string]: unknown | string;
20432043+ };
20442044+ };
20452045+ };
20462046+};
20472047+20482048+export type SessionUserRoomSystemCalloutFailedWebhookRequest = {
20492049+ body: SessionUserRoomSystemCalloutFailedWebhookPayload;
20502050+ key: 'session.user_room_system_callout_failed';
20512051+ path?: never;
20522052+ query?: never;
20532053+};
20542054+20552055+/**
20562056+ * # session.recording_completed
20572057+ * ---
20582058+ *
20592059+ * Event: `session.recording_completed`
20602060+ *
20612061+ * ## Event description
20622062+ *
20632063+ * The **Session recording completed** event is triggered every time a recording of a session becomes available to view and/or download.
20642064+ *
20652065+ * Only a session host or co-host can start, pause, resume, or stop a cloud recording. A recording is considered complete **after** the host or co-host ends the session. See [Enable cloud recording](https://developers.zoom.us/docs/video-sdk/account/#enable-cloud-recording) for details.
20662066+ *
20672067+ * ## Prerequisites
20682068+ *
20692069+ * * Cloud Recording must be enabled on the Video SDK account.
20702070+ * * Event Subscriptions must be enabled for your app with the following configurations:
20712071+ * * A valid Event Notification Endpoint URL.
20722072+ * * Session recording completed subscription enabled under the Recording event.
20732073+ *
20742074+ * The tabs below display the complete schema, payload with data types, and an example of the `session.recording_completed` event notification:
20752075+ *
20762076+ *
20772077+ *
20782078+ * **Event type**: `session.recording_completed`
20792079+ *
20802080+ */
20812081+export type SessionRecordingCompletedWebhookPayload = {
20822082+ /**
20832083+ * The event's name.
20842084+ */
20852085+ event: 'session.recording_completed';
20862086+ /**
20872087+ * A timestamp, in milliseconds since epoch, at which the event occurred.
20882088+ */
20892089+ event_ts: number;
20902090+ /**
20912091+ * A generated token used to download the recording. The download token only lasts for 24 hours after its creation and you can only download the file within 24 hours of receiving the event notification. Pass the download_token as a Bearer token in the Authorization header of your HTTP request. For example:
20922092+ *
20932093+ *
20942094+ * curl --request GET \
20952095+ * --url {download_url} \
20962096+ * --header 'authorization: Bearer {download_token} \
20972097+ * --header 'content-type: application/json'
20982098+ *
20992099+ */
21002100+ download_token: string;
21012101+ payload: {
21022102+ /**
21032103+ * The Video SDK account ID.
21042104+ */
21052105+ account_id: string;
21062106+ /**
21072107+ * Information about the session. This object only returns updated properties.
21082108+ */
21092109+ object: {
21102110+ /**
21112111+ * Unique session identifier. Each instance of the session will have its own session_id.
21122112+ */
21132113+ session_id: string;
21142114+ /**
21152115+ * Session name.
21162116+ */
21172117+ session_name: string;
21182118+ /**
21192119+ * The Video SDK custom session ID.
21202120+ */
21212121+ session_key: string;
21222122+ /**
21232123+ * The time at which the session started.
21242124+ */
21252125+ start_time: string;
21262126+ /**
21272127+ * The user's timezone.
21282128+ */
21292129+ timezone: string;
21302130+ /**
21312131+ * Recording file List
21322132+ * List of recording file.
21332133+ */
21342134+ recording_files: Array<{
21352135+ /**
21362136+ * The recording file ID. Included in the response of general query.
21372137+ */
21382138+ id?: string;
21392139+ /**
21402140+ * The recording start time.
21412141+ */
21422142+ recording_start?: string;
21432143+ /**
21442144+ * The recording end time. Response in general query.
21452145+ */
21462146+ recording_end?: string;
21472147+ /**
21482148+ * Name of the file.
21492149+ */
21502150+ file_name?: string;
21512151+ /**
21522152+ * The file path to the On-Premise account recording.
21532153+ *
21542154+ * **Note:** This API only returns this field for [Zoom On-Premise accounts](https://support.zoom.us/hc/en-us/articles/360034064852-Zoom-On-Premise-Deployment). It does **not** return the download_url field.
21552155+ */
21562156+ file_path?: string;
21572157+ /**
21582158+ * The recording file type. The value of this field could be one of the following:<br>
21592159+ * MP4: Video file of the recording.<br>M4A Audio-only file of the recording.<br>TIMELINE: Timestamp file of the recording in JSON file format. To get a timeline file, the "Add a timestamp to the recording" setting must be enabled in the [recording settings](https://support.zoom.us/hc/en-us/articles/360060316092). The time will display in the host's timezone, set on their Zoom profile.
21602160+ * <br> TRANSCRIPT: Transcription file of the recording in VTT format.<br> CHAT: A TXT file containing in-session chat messages that were sent during the session.<br>CC: File containing closed captions of the recording in VTT file format.<br>CSV: File containing polling data in csv format.
21612161+ *
21622162+ * <br>
21632163+ *
21642164+ * A recording file object with file type of either CC or TIMELINE **does not have** the following properties:<br>
21652165+ * id, status, file_size, recording_type.
21662166+ */
21672167+ file_type?: 'MP4' | 'M4A' | 'CHAT' | 'TRANSCRIPT' | 'CSV' | 'CC' | 'TB' | 'CHAT_MESSAGE';
21682168+ /**
21692169+ * The recording file size.
21702170+ */
21712171+ file_size?: number;
21722172+ /**
21732173+ * The archived file's file extension.
21742174+ */
21752175+ file_extension?: 'MP4' | 'M4A' | 'TXT' | 'VTT' | 'CSV' | 'JSON' | 'JPG';
21762176+ /**
21772177+ * The URL at which to download the the recording.
21782178+ *
21792179+ * To access a private or password-protected cloud recording of a user in your account, use your [Video SDK API JWT](https://marketplace.zoom.us/docs/guides/build/video-sdk-app/#video-sdk-and-api-credentials). Pass the generated JWT as a Bearer token in the Authorization header of your HTTP request. For example:
21802180+ *
21812181+ *
21822182+ * curl --request GET \
21832183+ * --url {download_url} \
21842184+ * --header 'authorization: Bearer {JWT} \
21852185+ * --header 'content-type: application/json'
21862186+ *
21872187+ */
21882188+ download_url?: string;
21892189+ /**
21902190+ * The recording status.
21912191+ */
21922192+ status?: 'completed';
21932193+ /**
21942194+ * The recording type. The value of this field can be one of the following:<br>shared_screen_with_speaker_view(CC)<br>shared_screen_with_speaker_view<br>shared_screen_with_gallery_view<br>speaker_view<br>gallery_view<br>shared_screen<br>audio_only<br>audio_transcript<br>chat_file<br>active_speaker<br>poll<br>timeline<br>closed_caption
21952195+ */
21962196+ recording_type?: 'shared_screen_with_speaker_view(CC)' | 'shared_screen_with_speaker_view' | 'shared_screen_with_gallery_view' | 'gallery_view' | 'shared_screen' | 'audio_only' | 'audio_transcript' | 'chat_file' | 'active_speaker' | 'host_video' | 'audio_only_each_participant' | 'cc_transcript' | 'closed_caption' | 'poll' | 'timeline' | 'thumbnail' | 'chat_message';
21972197+ }>;
21982198+ /**
21992199+ * Recording file List
22002200+ * List of recording file.
22012201+ */
22022202+ participant_audio_files?: Array<{
22032203+ /**
22042204+ * The recording file ID. Included in the response of general query.
22052205+ */
22062206+ id?: string;
22072207+ /**
22082208+ * The recording start time.
22092209+ */
22102210+ recording_start?: string;
22112211+ /**
22122212+ * The recording end time. Response in general query.
22132213+ */
22142214+ recording_end?: string;
22152215+ /**
22162216+ * Name of the file.
22172217+ */
22182218+ file_name?: string;
22192219+ /**
22202220+ * The file path to the On-Premise account recording.
22212221+ *
22222222+ * **Note:** This API only returns this field for [Zoom On-Premise accounts](https://support.zoom.us/hc/en-us/articles/360034064852-Zoom-On-Premise-Deployment). It does **not** return the download_url field.
22232223+ */
22242224+ file_path?: string;
22252225+ /**
22262226+ * The recording file type. The value of this field could be one of the following:<br>
22272227+ * MP4: Video file of the recording.<br>M4A Audio-only file of the recording.<br>TIMELINE: Timestamp file of the recording in JSON file format. To get a timeline file, the "Add a timestamp to the recording" setting must be enabled in the [recording settings](https://support.zoom.us/hc/en-us/articles/360060316092). The time will display in the host's timezone, set on their Zoom profile.
22282228+ * <br> TRANSCRIPT: Transcription file of the recording in VTT format.<br> CHAT: A TXT file containing in-session chat messages that were sent during the session.<br>CC: File containing closed captions of the recording in VTT file format.<br>CSV: File containing polling data in csv format.
22292229+ *
22302230+ * <br>
22312231+ *
22322232+ * A recording file object with file type of either CC or TIMELINE **does not have** the following properties:<br>
22332233+ * id, status, file_size, recording_type.
22342234+ */
22352235+ file_type?: 'MP4' | 'M4A' | 'CHAT' | 'TRANSCRIPT' | 'CSV' | 'CC' | 'TB' | 'CHAT_MESSAGE';
22362236+ /**
22372237+ * The recording file size.
22382238+ */
22392239+ file_size?: number;
22402240+ /**
22412241+ * The archived file's file extension.
22422242+ */
22432243+ file_extension?: 'MP4' | 'M4A' | 'TXT' | 'VTT' | 'CSV' | 'JSON' | 'JPG';
22442244+ /**
22452245+ * The URL at which to download the the recording.
22462246+ *
22472247+ * To access a private or password-protected cloud recording of a user in your account, use your [Video SDK API JWT](https://marketplace.zoom.us/docs/guides/build/video-sdk-app/#video-sdk-and-api-credentials). Pass the generated JWT as a Bearer token in the Authorization header of your HTTP request. For example:
22482248+ *
22492249+ *
22502250+ * curl --request GET \
22512251+ * --url {download_url} \
22522252+ * --header 'authorization: Bearer {JWT} \
22532253+ * --header 'content-type: application/json'
22542254+ *
22552255+ */
22562256+ download_url?: string;
22572257+ /**
22582258+ * The recording status.
22592259+ */
22602260+ status?: 'completed';
22612261+ /**
22622262+ * The recording type. The value of this field can be one of the following:<br>shared_screen_with_speaker_view(CC)<br>shared_screen_with_speaker_view<br>shared_screen_with_gallery_view<br>speaker_view<br>gallery_view<br>shared_screen<br>audio_only<br>audio_transcript<br>chat_file<br>active_speaker<br>poll<br>timeline<br>closed_caption
22632263+ */
22642264+ recording_type?: 'shared_screen_with_speaker_view(CC)' | 'shared_screen_with_speaker_view' | 'shared_screen_with_gallery_view' | 'gallery_view' | 'shared_screen' | 'audio_only' | 'audio_transcript' | 'chat_file' | 'active_speaker' | 'host_video' | 'audio_only_each_participant' | 'cc_transcript' | 'closed_caption' | 'poll' | 'timeline' | 'thumbnail' | 'chat_message';
22652265+ /**
22662266+ * The participant's session user ID. This value is assigned to a participant upon joining a session and is only valid for the duration of the session.
22672267+ */
22682268+ user_id?: string;
22692269+ /**
22702270+ * The participant's SDK identifier. Set with the user_identity key in the Video SDK JWT payload. This value can be alphanumeric, up to a maximum length of 35 characters.
22712271+ */
22722272+ user_key?: string;
22732273+ }>;
22742274+ /**
22752275+ * Recording file List
22762276+ * List of recording file.
22772277+ */
22782278+ participant_video_files?: Array<{
22792279+ /**
22802280+ * The recording file ID. Included in the response of general query.
22812281+ */
22822282+ id?: string;
22832283+ /**
22842284+ * The recording start time.
22852285+ */
22862286+ recording_start?: string;
22872287+ /**
22882288+ * The recording end time. Response in general query.
22892289+ */
22902290+ recording_end?: string;
22912291+ /**
22922292+ * Name of the file.
22932293+ */
22942294+ file_name?: string;
22952295+ /**
22962296+ * The file path to the On-Premise account recording.
22972297+ *
22982298+ * **Note:** This API only returns this field for [Zoom On-Premise accounts](https://support.zoom.us/hc/en-us/articles/360034064852-Zoom-On-Premise-Deployment). It does **not** return the download_url field.
22992299+ */
23002300+ file_path?: string;
23012301+ /**
23022302+ * The recording file type. The value of this field could be one of the following:<br>
23032303+ * MP4: Video file of the recording.
23042304+ */
23052305+ file_type?: 'MP4';
23062306+ /**
23072307+ * The recording file size.
23082308+ */
23092309+ file_size?: number;
23102310+ /**
23112311+ * The archived file's file extension.
23122312+ */
23132313+ file_extension?: 'MP4';
23142314+ /**
23152315+ * The URL at which to download the the recording.
23162316+ *
23172317+ * To access a private or password-protected cloud recording of a user in your account, use your [Video SDK API JWT](https://marketplace.zoom.us/docs/guides/build/video-sdk-app/#video-sdk-and-api-credentials). Pass the generated JWT as a Bearer token in the Authorization header of your HTTP request. For example:
23182318+ *
23192319+ *
23202320+ * curl --request GET \
23212321+ * --url {download_url} \
23222322+ * --header 'authorization: Bearer {JWT} \
23232323+ * --header 'content-type: application/json'
23242324+ *
23252325+ */
23262326+ download_url?: string;
23272327+ /**
23282328+ * The recording status.
23292329+ */
23302330+ status?: 'completed';
23312331+ /**
23322332+ * The recording type. The value of this field can be one of the following:<br>shared_screen_with_speaker_view(CC)<br>shared_screen_with_speaker_view<br>shared_screen_with_gallery_view<br>speaker_view<br>gallery_view<br>shared_screen<br>audio_only<br>audio_transcript<br>chat_file<br>active_speaker<br>poll<br>timeline<br>closed_caption
23332333+ */
23342334+ recording_type?: 'individual_user' | 'individual_shared_screen';
23352335+ /**
23362336+ * The participant's session user ID. This value is assigned to a participant upon joining a session and is only valid for the duration of the session.
23372337+ */
23382338+ user_id?: string;
23392339+ /**
23402340+ * The participant's SDK identifier. Set with the user_identity key in the Video SDK JWT payload. This value can be alphanumeric, up to a maximum length of 35 characters.
23412341+ */
23422342+ user_key?: string;
23432343+ }>;
23442344+ };
23452345+ };
23462346+};
23472347+23482348+export type SessionRecordingCompletedWebhookRequest = {
23492349+ body: SessionRecordingCompletedWebhookPayload;
23502350+ key: 'session.recording_completed';
23512351+ path?: never;
23522352+ query?: never;
23532353+};
23542354+23552355+/**
23562356+ * # session.recording_transcript_failed
23572357+ * ---
23582358+ *
23592359+ * Event: `session.recording_transcript_failed`
23602360+ *
23612361+ * ## Event description
23622362+ *
23632363+ * The **Session recording transcript failed** event is triggered every time the transcript of the recording of a session generated failed.
23642364+ *
23652365+ * Only a session host or co-host can start, pause, resume, or stop a cloud recording. A recording is considered complete **after** the host or co-host ends the session. See [Enable cloud recording](https://developers.zoom.us/docs/video-sdk/account/#enable-cloud-recording) for details.
23662366+ *
23672367+ * ## Prerequisites
23682368+ *
23692369+ * * Enable Cloud Recording on the Video SDK account.
23702370+ * * Enable Event Subscriptions for your app with the following configurations:
23712371+ * * A valid Event Notification Endpoint URL.
23722372+ * * Enable session recording transcript completed subscription under the Recording event.
23732373+ *
23742374+ * The tabs below display the complete schema, payload with data types, and an example of the `session.recording_transcript_completed` event notification:
23752375+ *
23762376+ *
23772377+ *
23782378+ * **Event type**: `session.recording_transcript_failed`
23792379+ *
23802380+ */
23812381+export type SessionRecordingTranscriptFailedWebhookPayload = {
23822382+ /**
23832383+ * The event's name.
23842384+ */
23852385+ event: 'session.recording_transcript_failed';
23862386+ /**
23872387+ * A timestamp, in milliseconds since epoch, when the event occurred.
23882388+ */
23892389+ event_ts: number;
23902390+ payload: {
23912391+ /**
23922392+ * The Video SDK account ID.
23932393+ */
23942394+ account_id: string;
23952395+ /**
23962396+ * Information about the session. This object only returns updated properties.
23972397+ */
23982398+ object: {
23992399+ /**
24002400+ * Unique session identifier. Each instance of the session will have its own session_id.
24012401+ */
24022402+ session_id: string;
24032403+ /**
24042404+ * Session name.
24052405+ */
24062406+ session_name: string;
24072407+ /**
24082408+ * The Video SDK custom session ID.
24092409+ */
24102410+ session_key: string;
24112411+ /**
24122412+ * The time when the session started.
24132413+ */
24142414+ start_time: string;
24152415+ /**
24162416+ * The user's timezone.
24172417+ */
24182418+ timezone: string;
24192419+ };
24202420+ };
24212421+};
24222422+24232423+export type SessionRecordingTranscriptFailedWebhookRequest = {
24242424+ body: SessionRecordingTranscriptFailedWebhookPayload;
24252425+ key: 'session.recording_transcript_failed';
24262426+ path?: never;
24272427+ query?: never;
24282428+};
24292429+24302430+/**
24312431+ * # session.recording_trashed
24322432+ * ---
24332433+ *
24342434+ * Event: `session.recording_trashed`
24352435+ *
24362436+ * ## Event description
24372437+ *
24382438+ * The **Session recording deleted to trash** event is triggered every time one of your app users or account users temporarily delete a cloud recording.
24392439+ *
24402440+ * When a user initially deletes a recording, it is deleted to the trash. Recordings deleted to the trash can be recovered up to 30 days after deletion. Users can move a recording to the trash using:
24412441+ *
24422442+ * * The [Delete session's recording](https://developers.zoom.us/docs/api/rest/reference/video-sdk/methods/#operation/recordingDelete) API **with the trash query parameter** or
24432443+ * * The Zoom web portal. See [Video SDK account](https://developers.zoom.us/docs/video-sdk/account/) for details.
24442444+ *
24452445+ * ## Prerequisites
24462446+ *
24472447+ * * Cloud Recording must be enabled on the Video SDK account.
24482448+ * * Event Subscriptions must be enabled for your app with the following configurations:
24492449+ * * A valid Event Notification Endpoint URL.
24502450+ * * **Session recording deleted to trash** subscription enabled under the **Recording** event.
24512451+ *
24522452+ * The tabs below display the complete schema, payload with data types, and an example of the `session.recording_trashed` event notification:
24532453+ *
24542454+ *
24552455+ *
24562456+ * **Event type**: `session.recording_trashed`
24572457+ *
24582458+ */
24592459+export type SessionRecordingTrashedWebhookPayload = {
24602460+ /**
24612461+ * The event's name.
24622462+ */
24632463+ event: 'session.recording_trashed';
24642464+ /**
24652465+ * A timestamp, in milliseconds since epoch, at which the event occurred.
24662466+ */
24672467+ event_ts: number;
24682468+ payload: {
24692469+ /**
24702470+ * The Video SDK account ID.
24712471+ */
24722472+ account_id: string;
24732473+ /**
24742474+ * The email address of the user who deleted the recording.
24752475+ */
24762476+ operator: string;
24772477+ /**
24782478+ * The user ID of the user who deleted the recording.
24792479+ */
24802480+ operator_id: string;
24812481+ /**
24822482+ * Information about the session. This object only returns updated properties.
24832483+ */
24842484+ object: {
24852485+ /**
24862486+ * Unique session identifier. Each instance of the session will have its own session_id.
24872487+ */
24882488+ session_id: string;
24892489+ /**
24902490+ * Session name.
24912491+ */
24922492+ session_name: string;
24932493+ /**
24942494+ * The Video SDK custom session ID.
24952495+ */
24962496+ session_key: string;
24972497+ /**
24982498+ * The time at which the session started.
24992499+ */
25002500+ start_time: string;
25012501+ /**
25022502+ * The user's timezone.
25032503+ */
25042504+ timezone: string;
25052505+ };
25062506+ };
25072507+};
25082508+25092509+export type SessionRecordingTrashedWebhookRequest = {
25102510+ body: SessionRecordingTrashedWebhookPayload;
25112511+ key: 'session.recording_trashed';
25122512+ path?: never;
25132513+ query?: never;
25142514+};
25152515+25162516+/**
25172517+ * # session.user_joined
25182518+ * ---
25192519+ *
25202520+ *
25212521+ * The Session User Joined event is triggered every time a user (including host and co-host) joins a session.
25222522+ *
25232523+ * ## Prerequisites
25242524+ * Event Subscriptions must be enabled for your [Marketplace app](https://marketplace.zoom.us/user/build) with the following configurations:
25252525+ *
25262526+ * * A valid Event Notification Endpoint URL.
25272527+ * * Session User Joined subscription enabled under the Video SDK event.
25282528+ *
25292529+ * The tabs below display the complete schema, payload with data types, and an example of the `session.user_joined` event notification:
25302530+ *
25312531+ *
25322532+ *
25332533+ * **Event type**: `session.user_joined`
25342534+ *
25352535+ */
25362536+export type SessionUserJoinedWebhookPayload = {
25372537+ /**
25382538+ * The event's name.
25392539+ */
25402540+ event: 'session.user_joined';
25412541+ /**
25422542+ * A timestamp, in milliseconds since epoch, at which the event occurred.
25432543+ */
25442544+ event_ts: number;
25452545+ payload: {
25462546+ /**
25472547+ * The Video SDK account ID.
25482548+ */
25492549+ account_id: string;
25502550+ /**
25512551+ * Information about the session. This object only returns updated properties.
25522552+ */
25532553+ object: {
25542554+ /**
25552555+ * The session ID.
25562556+ */
25572557+ id: string;
25582558+ /**
25592559+ * Unique session identifier. Each instance of the session will have its own session_id.
25602560+ */
25612561+ session_id: string;
25622562+ /**
25632563+ * Session name.
25642564+ */
25652565+ session_name: string;
25662566+ /**
25672567+ * The Video SDK custom session ID.
25682568+ */
25692569+ session_key?: string;
25702570+ /**
25712571+ * Information about the user.
25722572+ */
25732573+ user: {
25742574+ /**
25752575+ * The user's unique ID. This value is assigned to the user upon joining a session and is only valid for that session.
25762576+ */
25772577+ id: string;
25782578+ /**
25792579+ * The user's username.
25802580+ */
25812581+ name: string;
25822582+ /**
25832583+ * The time at which the user joined the session.
25842584+ */
25852585+ join_time: string;
25862586+ /**
25872587+ * Another identifier for the user. Can be a number or characters.
25882588+ */
25892589+ user_key?: string;
25902590+ /**
25912591+ * Phone number of participant joined via PSTN.
25922592+ */
25932593+ phone_number?: string;
25942594+ /**
25952595+ * The participant's UUID. This value is assigned to a participant upon joining a session and is only valid for the session's duration.
25962596+ */
25972597+ participant_uuid: string;
25982598+ };
25992599+ };
26002600+ };
26012601+};
26022602+26032603+export type SessionUserJoinedWebhookRequest = {
26042604+ body: SessionUserJoinedWebhookPayload;
26052605+ key: 'session.user_joined';
26062606+ path?: never;
26072607+ query?: never;
26082608+};
26092609+26102610+/**
26112611+ * # session.stream_ingestion_started
26122612+ * Zoom triggers the **Session stream ingestion started** event every time a host starts sending an incoming live stream to a session. The session user can subscribe to it to see what's being streamed live into this session.
26132613+ *
26142614+ * ## Prerequisites
26152615+ *
26162616+ * * **Event Subscriptions** must be enabled for your app with the following configurations:
26172617+ * * A valid **Event Notification Endpoint URL**.
26182618+ * * The **Session stream ingestion started** subscription enabled under the **Video SDK** event.
26192619+ *
26202620+ *
26212621+ * **Event type**: `session.stream_ingestion_started`
26222622+ *
26232623+ */
26242624+export type SessionStreamIngestionStartedWebhookPayload = {
26252625+ /**
26262626+ * Event name.
26272627+ */
26282628+ event: 'session.stream_ingestion_started';
26292629+ /**
26302630+ * Timestamp (in milliseconds since epoch) when the event occurred. The value of this field is returned in long (int64) format.
26312631+ */
26322632+ event_ts: number;
26332633+ payload: {
26342634+ /**
26352635+ * The Video SDK account ID.
26362636+ */
26372637+ account_id: string;
26382638+ /**
26392639+ * Information about the session.
26402640+ */
26412641+ object: {
26422642+ /**
26432643+ * Unique session identifier. Each instance of the session will have its own session_id.
26442644+ */
26452645+ session_id: string;
26462646+ /**
26472647+ * Session name.
26482648+ */
26492649+ session_name: string;
26502650+ /**
26512651+ * The Video SDK custom session ID.
26522652+ */
26532653+ session_key?: string;
26542654+ /**
26552655+ * Information about the stream ingestion.
26562656+ */
26572657+ stream_ingestion: {
26582658+ /**
26592659+ * The stream ingestion ID.
26602660+ */
26612661+ stream_id: string;
26622662+ /**
26632663+ * The stream ingestion name.
26642664+ */
26652665+ stream_name: string;
26662666+ /**
26672667+ * The stream ingestion description.
26682668+ */
26692669+ stream_description?: string;
26702670+ /**
26712671+ * The stream ingestion key.
26722672+ */
26732673+ stream_key: string;
26742674+ /**
26752675+ * The stream URL.
26762676+ */
26772677+ stream_url: string;
26782678+ /**
26792679+ * The backup stream URL.
26802680+ */
26812681+ backup_stream_url: string;
26822682+ };
26832683+ };
26842684+ };
26852685+};
26862686+26872687+export type SessionStreamIngestionStartedWebhookRequest = {
26882688+ body: SessionStreamIngestionStartedWebhookPayload;
26892689+ key: 'session.stream_ingestion_started';
26902690+ path?: never;
26912691+ query?: never;
26922692+};
26932693+26942694+/**
26952695+ * # session.stream_ingestion_connected
26962696+ * Zoom triggers the **Session stream ingestion connected** event every time live streaming software connects to the Zoom Video SDK session. This indicates that the Zoom streaming platform is receiving data from the streaming software, but the received Real-Time Messaging Protocol (RTMP) data is not sent to the session yet.
26972697+ *
26982698+ * ## Prerequisites
26992699+ *
27002700+ * * **Event Subscriptions** must be enabled for your app with the following configurations:
27012701+ * * A valid **Event Notification Endpoint URL**.
27022702+ * * The **Session stream ingestion connected** subscription enabled under the **Video SDK** event.
27032703+ *
27042704+ *
27052705+ * **Event type**: `session.stream_ingestion_connected`
27062706+ *
27072707+ */
27082708+export type SessionStreamIngestionConnectedWebhookPayload = {
27092709+ /**
27102710+ * Name of the event.
27112711+ */
27122712+ event: 'session.stream_ingestion_connected';
27132713+ /**
27142714+ * Timestamp (in milliseconds since epoch) when the event occurred. The value of this field is returned in long (int64) format.
27152715+ */
27162716+ event_ts: number;
27172717+ payload: {
27182718+ /**
27192719+ * The Video SDK account ID.
27202720+ */
27212721+ account_id: string;
27222722+ /**
27232723+ * Information about the session.
27242724+ */
27252725+ object: {
27262726+ /**
27272727+ * Unique session identifier. Each instance of the session will have its own session_id.
27282728+ */
27292729+ session_id: string;
27302730+ /**
27312731+ * Session name.
27322732+ */
27332733+ session_name: string;
27342734+ /**
27352735+ * The Video SDK custom session ID.
27362736+ */
27372737+ session_key?: string;
27382738+ /**
27392739+ * Information about the stream ingestion.
27402740+ */
27412741+ stream_ingestion: {
27422742+ /**
27432743+ * The stream ingestion ID.
27442744+ */
27452745+ stream_id: string;
27462746+ /**
27472747+ * The stream ingestion name.
27482748+ */
27492749+ stream_name: string;
27502750+ /**
27512751+ * The stream ingestion description.
27522752+ */
27532753+ stream_description?: string;
27542754+ /**
27552755+ * The stream ingestion key.
27562756+ */
27572757+ stream_key: string;
27582758+ /**
27592759+ * The stream URL.
27602760+ */
27612761+ stream_url: string;
27622762+ /**
27632763+ * The backup stream URL.
27642764+ */
27652765+ backup_stream_url: string;
27662766+ };
27672767+ };
27682768+ };
27692769+};
27702770+27712771+export type SessionStreamIngestionConnectedWebhookRequest = {
27722772+ body: SessionStreamIngestionConnectedWebhookPayload;
27732773+ key: 'session.stream_ingestion_connected';
27742774+ path?: never;
27752775+ query?: never;
27762776+};
27772777+27782778+/**
27792779+ * # session.stream_ingestion_disconnected
27802780+ * Zoom triggers the **Session stream ingestion disconnected** event every time a Real-Time Messaging Protocol (RTMP) software program disconnects.
27812781+ *
27822782+ * ## Prerequisites
27832783+ *
27842784+ * * **Event Subscriptions** must be enabled for your app with the following configurations:
27852785+ * * A valid **Event Notification Endpoint URL**.
27862786+ * * The **Session stream ingestion disconnected** subscription enabled under the **Video SDK** event.
27872787+ *
27882788+ *
27892789+ * **Event type**: `session.stream_ingestion_disconnected`
27902790+ *
27912791+ */
27922792+export type SessionStreamIngestionDisconnectedWebhookPayload = {
27932793+ /**
27942794+ * Name of the event.
27952795+ */
27962796+ event: 'session.stream_ingestion_disconnected';
27972797+ /**
27982798+ * Timestamp (in milliseconds since epoch) when the event occurred. The value of this field is returned in long (int64) format.
27992799+ */
28002800+ event_ts: number;
28012801+ payload: {
28022802+ /**
28032803+ * The Video SDK account ID.
28042804+ */
28052805+ account_id: string;
28062806+ /**
28072807+ * Information about the session.
28082808+ */
28092809+ object: {
28102810+ /**
28112811+ * Unique session identifier. Each instance of the session will have its own session_id.
28122812+ */
28132813+ session_id: string;
28142814+ /**
28152815+ * Session name.
28162816+ */
28172817+ session_name: string;
28182818+ /**
28192819+ * The Video SDK custom session ID.
28202820+ */
28212821+ session_key?: string;
28222822+ /**
28232823+ * Information about the stream ingestion.
28242824+ */
28252825+ stream_ingestion: {
28262826+ /**
28272827+ * The stream ingestion ID.
28282828+ */
28292829+ stream_id: string;
28302830+ /**
28312831+ * The stream ingestion name.
28322832+ */
28332833+ stream_name: string;
28342834+ /**
28352835+ * The stream ingestion description.
28362836+ */
28372837+ stream_description?: string;
28382838+ /**
28392839+ * The stream ingestion key.
28402840+ */
28412841+ stream_key: string;
28422842+ /**
28432843+ * The stream URL.
28442844+ */
28452845+ stream_url: string;
28462846+ /**
28472847+ * The backup stream URL.
28482848+ */
28492849+ backup_stream_url: string;
28502850+ };
28512851+ };
28522852+ };
28532853+};
28542854+28552855+export type SessionStreamIngestionDisconnectedWebhookRequest = {
28562856+ body: SessionStreamIngestionDisconnectedWebhookPayload;
28572857+ key: 'session.stream_ingestion_disconnected';
28582858+ path?: never;
28592859+ query?: never;
28602860+};
28612861+28622862+/**
28632863+ * # session.recording_recovered
28642864+ * ---
28652865+ *
28662866+ * Event: `session.recording_recovered`
28672867+ *
28682868+ * ## Event description
28692869+ *
28702870+ * The **Session recording recovered** event is triggered every time one of your app users or account users recover a recording from the trash.
28712871+ *
28722872+ * Zoom allows users to recover their cloud recordings from trash within 30 days of deletion. You can recover a deleted cloud recording with:
28732873+ *
28742874+ * * The tab in the Zoom web client. See [Video SDK recordings and reports](https://developers.zoom.us/docs/video-sdk/reports/) for details.
28752875+ * * The [Recover a single recording](https://developers.zoom.us/docs/api/rest/reference/video-sdk/methods/#operation/recordingStatusUpdateOne) or [Recover session's recordings](https://developers.zoom.us/docs/api/rest/reference/video-sdk/methods/#operation/recordingStatusUpdate) API.
28762876+ *
28772877+ * ## Prerequisites
28782878+ *
28792879+ * * Cloud Recording must be enabled on the Video SDK account.
28802880+ * * Event Subscriptions must be enabled for your app with the following configurations:
28812881+ * * A valid Event Notification Endpoint URL.
28822882+ * * "**Session recording recovered**" subscription enabled under the **Recording** event.
28832883+ *
28842884+ * The tabs below display the complete schema, payload with data types, and an example of the `session.recording_recovered` event notification:
28852885+ *
28862886+ *
28872887+ *
28882888+ * **Event type**: `session.recording_recovered`
28892889+ *
28902890+ */
28912891+export type SessionRecordingRecoveredWebhookPayload = {
28922892+ /**
28932893+ * The event's name.
28942894+ */
28952895+ event: 'session.recording_recovered';
28962896+ /**
28972897+ * A timestamp, in milliseconds since epoch, at which the event occurred.
28982898+ */
28992899+ event_ts: number;
29002900+ payload: {
29012901+ /**
29022902+ * The Video SDK account ID.
29032903+ */
29042904+ account_id: string;
29052905+ /**
29062906+ * The email address of the user who deleted the recording.
29072907+ */
29082908+ operator: string;
29092909+ /**
29102910+ * The user ID of the user who deleted the recording.
29112911+ */
29122912+ operator_id: string;
29132913+ /**
29142914+ * Information about the session. This object only returns updated properties.
29152915+ */
29162916+ object: {
29172917+ /**
29182918+ * Unique session identifier. Each instance of the session will have its own session_id.
29192919+ */
29202920+ session_id: string;
29212921+ /**
29222922+ * Session name.
29232923+ */
29242924+ session_name: string;
29252925+ /**
29262926+ * The Video SDK custom session ID.
29272927+ */
29282928+ session_key: string;
29292929+ /**
29302930+ * The time at which the session started.
29312931+ */
29322932+ start_time: string;
29332933+ /**
29342934+ * The user's timezone.
29352935+ */
29362936+ timezone: string;
29372937+ };
29382938+ };
29392939+};
29402940+29412941+export type SessionRecordingRecoveredWebhookRequest = {
29422942+ body: SessionRecordingRecoveredWebhookPayload;
29432943+ key: 'session.recording_recovered';
29442944+ path?: never;
29452945+ query?: never;
29462946+};
29472947+29482948+/**
29492949+ * # session.user_phone_callout_missed
29502950+ *
29512951+ * The **Invited party missed a session invitation through phone (call out)** event is triggered every time an invitation to join a session through phone (call out) times out. Video SDK call out operates in a similar manner as [Zoom meeting call out](https://support.zoom.com/hc/article?id=zm_kb&sysparm_article=KB0062038).
29522952+ *
29532953+ * ## Prerequisites
29542954+ *
29552955+ * * **Event Subscriptions** must be enabled for your app with the following configurations:
29562956+ * * A valid **Event Notification Endpoint URL**.
29572957+ * * The **Invited party missed a session invitation through phone (call out)** subscription enabled under the **Session** event.
29582958+ *
29592959+ *
29602960+ *
29612961+ *
29622962+ * **Event type**: `session.user_phone_callout_missed`
29632963+ *
29642964+ */
29652965+export type SessionUserPhoneCalloutMissedWebhookPayload = {
29662966+ /**
29672967+ * The name of the event.
29682968+ */
29692969+ event: string;
29702970+ /**
29712971+ * A timestamp at which the event occurred.
29722972+ */
29732973+ event_ts: number;
29742974+ payload: {
29752975+ /**
29762976+ * The account ID of the session host.
29772977+ */
29782978+ account_id: string;
29792979+ /**
29802980+ * Information about the session.
29812981+ */
29822982+ object: {
29832983+ /**
29842984+ * The session ID.
29852985+ * @deprecated
29862986+ */
29872987+ id?: number;
29882988+ /**
29892989+ * The session's universally unique identifier (UUID). Each session instance generates a session UUID.
29902990+ * @deprecated
29912991+ */
29922992+ uuid?: string;
29932993+ /**
29942994+ * Unique session identifier. Each instance of the session will have its own session_id.
29952995+ */
29962996+ session_id: string;
29972997+ /**
29982998+ * Session name.
29992999+ */
30003000+ session_name: string;
30013001+ /**
30023002+ * The Video SDK custom session ID.
30033003+ */
30043004+ session_key: string;
30053005+ /**
30063006+ * Another identifier for the inviter. Can be a number or characters.
30073007+ */
30083008+ user_key: string;
30093009+ /**
30103010+ * The user ID of the session host.
30113011+ */
30123012+ host_id: string;
30133013+ /**
30143014+ * Information about the invited user.
30153015+ */
30163016+ participant: {
30173017+ /**
30183018+ * The user's name to display in the session.
30193019+ */
30203020+ invitee_name: string;
30213021+ /**
30223022+ * The user's phone number.
30233023+ */
30243024+ phone_number: number;
30253025+ /**
30263026+ * The number used to call out to the invited user.
30273027+ */
30283028+ from_number: number;
30293029+ };
30303030+ };
30313031+ };
30323032+};
30333033+30343034+export type SessionUserPhoneCalloutMissedWebhookRequest = {
30353035+ body: SessionUserPhoneCalloutMissedWebhookPayload;
30363036+ key: 'session.user_phone_callout_missed';
30373037+ path?: never;
30383038+ query?: never;
30393039+};
30403040+30413041+/**
30423042+ * # session.user_phone_callout_rejected
30433043+ *
30443044+ * The **Invited party rejected a session invitation through phone (call out)** event is triggered every time a user rejects an invitation to join a session through phone (call out). Video SDK call out operates in a similar manner as [Zoom meeting call out](https://support.zoom.com/hc/article?id=zm_kb&sysparm_article=KB0062038).
30453045+ *
30463046+ * ## Prerequisites
30473047+ *
30483048+ * * **Event Subscriptions** must be enabled for your app with the following configurations:
30493049+ * * A valid **Event Notification Endpoint URL**.
30503050+ * * The **Invited party rejected a session invitation through phone (call out)** subscription enabled under the **Session** event.
30513051+ *
30523052+ *
30533053+ *
30543054+ *
30553055+ * **Event type**: `session.user_phone_callout_rejected`
30563056+ *
30573057+ */
30583058+export type SessionUserPhoneCalloutRejectedWebhookPayload = {
30593059+ /**
30603060+ * The name of the event.
30613061+ */
30623062+ event: string;
30633063+ /**
30643064+ * A timestamp at which the event occurred.
30653065+ */
30663066+ event_ts: number;
30673067+ payload: {
30683068+ /**
30693069+ * The account ID of the session host.
30703070+ */
30713071+ account_id: string;
30723072+ /**
30733073+ * Information about the session.
30743074+ */
30753075+ object: {
30763076+ /**
30773077+ * The session ID.
30783078+ * @deprecated
30793079+ */
30803080+ id?: number;
30813081+ /**
30823082+ * The session's universally unique identifier (UUID). Each session instance generates a session UUID.
30833083+ * @deprecated
30843084+ */
30853085+ uuid?: string;
30863086+ /**
30873087+ * Unique session identifier. Each instance of the session will have its own session_id.
30883088+ */
30893089+ session_id: string;
30903090+ /**
30913091+ * Session name.
30923092+ */
30933093+ session_name: string;
30943094+ /**
30953095+ * The Video SDK custom session ID.
30963096+ */
30973097+ session_key: string;
30983098+ /**
30993099+ * Another identifier for the inviter. Can be a number or characters.
31003100+ */
31013101+ user_key: string;
31023102+ /**
31033103+ * The user ID of the session host.
31043104+ */
31053105+ host_id: string;
31063106+ /**
31073107+ * Information about the invited user.
31083108+ */
31093109+ participant: {
31103110+ /**
31113111+ * The user's name to display in the session.
31123112+ */
31133113+ invitee_name: string;
31143114+ /**
31153115+ * The user's phone number.
31163116+ */
31173117+ phone_number: number;
31183118+ /**
31193119+ * The number used to call out to the invited user.
31203120+ */
31213121+ from_number: number;
31223122+ };
31233123+ };
31243124+ };
31253125+};
31263126+31273127+export type SessionUserPhoneCalloutRejectedWebhookRequest = {
31283128+ body: SessionUserPhoneCalloutRejectedWebhookPayload;
31293129+ key: 'session.user_phone_callout_rejected';
31303130+ path?: never;
31313131+ query?: never;
31323132+};
31333133+31343134+/**
31353135+ * # session.user_room_system_callout_accepted
31363136+ *
31373137+ * The **Invited party answered a session invitation through phone (call out) via Zoom room** event is triggered every time a user [joins a session through phone (call out) from a Zoom room](https://support.zoom.us/hc/en-us/articles/205369035).
31383138+ *
31393139+ * ## Prerequisites
31403140+ *
31413141+ * * **Event Subscriptions** must be enabled for your app with the following configurations:
31423142+ * * A valid **Event Notification Endpoint URL**.
31433143+ * * The **Invited party answered a session invitation through phone (call out) via Zoom room** subscription enabled under the **Session** event.
31443144+ *
31453145+ *
31463146+ *
31473147+ * **Event type**: `session.user_room_system_callout_accepted`
31483148+ *
31493149+ */
31503150+export type SessionUserRoomSystemCalloutAcceptedWebhookPayload = {
31513151+ /**
31523152+ * The name of the event.
31533153+ */
31543154+ event: string;
31553155+ /**
31563156+ * A timestamp at which the event occurred.
31573157+ */
31583158+ event_ts: number;
31593159+ payload: {
31603160+ /**
31613161+ * The account ID of the session host.
31623162+ */
31633163+ account_id: string;
31643164+ /**
31653165+ * Information about the session.
31663166+ */
31673167+ object: {
31683168+ /**
31693169+ * The session ID.
31703170+ * @deprecated
31713171+ */
31723172+ id?: number;
31733173+ /**
31743174+ * The session's universally unique identifier (UUID). Each session instance generates a session UUID.
31753175+ * @deprecated
31763176+ */
31773177+ uuid?: string;
31783178+ /**
31793179+ * Unique session identifier. Each instance of the session will have its own session_id.
31803180+ */
31813181+ session_id: string;
31823182+ /**
31833183+ * Session name.
31843184+ */
31853185+ session_name: string;
31863186+ /**
31873187+ * The user ID of the session host.
31883188+ */
31893189+ host_id: string;
31903190+ /**
31913191+ * The request unique identifier (UUID).
31923192+ */
31933193+ message_id: string;
31943194+ /**
31953195+ * The user name of the event's trigger.
31963196+ */
31973197+ inviter_name: string;
31983198+ /**
31993199+ * Information about the invited participant.
32003200+ */
32013201+ participant: {
32023202+ /**
32033203+ * The type of call out. Use a value of h323 or sip.
32043204+ */
32053205+ call_type: string;
32063206+ /**
32073207+ * The user's device IP address.
32083208+ */
32093209+ device_ip: string;
32103210+ [key: string]: unknown | string;
32113211+ };
32123212+ };
32133213+ };
32143214+};
32153215+32163216+export type SessionUserRoomSystemCalloutAcceptedWebhookRequest = {
32173217+ body: SessionUserRoomSystemCalloutAcceptedWebhookPayload;
32183218+ key: 'session.user_room_system_callout_accepted';
32193219+ path?: never;
32203220+ query?: never;
32213221+};
32223222+32233223+/**
32243224+ * # session.recording_stopped
32253225+ * ---
32263226+ *
32273227+ * Event: `session.recording_stopped`
32283228+ *
32293229+ * ## Event description
32303230+ *
32313231+ * The **Session recording stopped** event is triggered every time a previously paused recording of a session is resumed.
32323232+ *
32333233+ * Only a session host or co-host can start, pause, resume, or stop a cloud recording. A recording is considered complete **after** the host or co-host ends the session. See [Enable cloud recording](https://developers.zoom.us/docs/video-sdk/account/#enable-cloud-recording) for details.
32343234+ *
32353235+ * ## Prerequisites
32363236+ *
32373237+ * * Cloud Recording must be enabled on the Video SDK account.
32383238+ * * Event Subscriptions must be enabled for your app with the following configurations:
32393239+ * * A valid Event Notification Endpoint URL.
32403240+ * * **Session recording stopped** subscription enabled under the **Recording** event.
32413241+ *
32423242+ * The tabs below display the complete schema, payload with data types, and an example of the `session.recording_stopped` event notification:
32433243+ *
32443244+ *
32453245+ *
32463246+ * **Event type**: `session.recording_stopped`
32473247+ *
32483248+ */
32493249+export type SessionRecordingStoppedWebhookPayload = {
32503250+ /**
32513251+ * The event's name.
32523252+ */
32533253+ event: 'session.recording_stopped';
32543254+ /**
32553255+ * A timestamp, in milliseconds since epoch, at which the event occurred.
32563256+ */
32573257+ event_ts: number;
32583258+ payload: {
32593259+ /**
32603260+ * The Video SDK account ID.
32613261+ */
32623262+ account_id: string;
32633263+ /**
32643264+ * Information about the session. This object only returns updated properties.
32653265+ */
32663266+ object: {
32673267+ /**
32683268+ * Unique session identifier. Each instance of the session will have its own session_id.
32693269+ */
32703270+ session_id: string;
32713271+ /**
32723272+ * Session name.
32733273+ */
32743274+ session_name: string;
32753275+ /**
32763276+ * The Video SDK custom session ID.
32773277+ */
32783278+ session_key: string;
32793279+ /**
32803280+ * The time at which the session started.
32813281+ */
32823282+ start_time: string;
32833283+ /**
32843284+ * The user's timezone.
32853285+ */
32863286+ timezone: string;
32873287+ recording_file: {
32883288+ /**
32893289+ * The recording start time.
32903290+ */
32913291+ recording_start?: string;
32923292+ /**
32933293+ * The recording end time. Response in general query.
32943294+ */
32953295+ recording_end?: string;
32963296+ };
32973297+ };
32983298+ };
32993299+};
33003300+33013301+export type SessionRecordingStoppedWebhookRequest = {
33023302+ body: SessionRecordingStoppedWebhookPayload;
33033303+ key: 'session.recording_stopped';
33043304+ path?: never;
33053305+ query?: never;
33063306+};
33073307+33083308+export type ClientOptions = {
33093309+ baseUrl: `${string}://${string}` | (string & {});
33103310+};
33113311+33123312+export type Webhooks = SessionUserPhoneCalloutRingingWebhookRequest | SessionUserRoomSystemCalloutRingingWebhookRequest | SessionRecordingStartedWebhookRequest | SessionRecordingResumedWebhookRequest | SessionLiveStreamingStoppedWebhookRequest | SessionStreamIngestionStoppedWebhookRequest | SessionUserRoomSystemCalloutRejectedWebhookRequest | SessionAlertWebhookRequest | SessionSharingEndedWebhookRequest | SessionRecordingPausedWebhookRequest | SessionEndedWebhookRequest | SessionStartedWebhookRequest | SessionStreamIngestionUnbindWebhookRequest | SessionLiveStreamingStartedWebhookRequest | SessionUserRoomSystemCalloutMissedWebhookRequest | SessionUserPhoneCalloutAcceptedWebhookRequest | SessionUserLeftWebhookRequest | SessionSharingStartedWebhookRequest | SessionUserPhoneCalloutCanceledWebhookRequest | SessionRecordingTranscriptCompletedWebhookRequest | SessionRecordingDeletedWebhookRequest | SessionUserRoomSystemCalloutFailedWebhookRequest | SessionRecordingCompletedWebhookRequest | SessionRecordingTranscriptFailedWebhookRequest | SessionRecordingTrashedWebhookRequest | SessionUserJoinedWebhookRequest | SessionStreamIngestionStartedWebhookRequest | SessionStreamIngestionConnectedWebhookRequest | SessionStreamIngestionDisconnectedWebhookRequest | SessionRecordingRecoveredWebhookRequest | SessionUserPhoneCalloutMissedWebhookRequest | SessionUserPhoneCalloutRejectedWebhookRequest | SessionUserRoomSystemCalloutAcceptedWebhookRequest | SessionRecordingStoppedWebhookRequest;