@arbidocs/client 0.4.110 → 0.4.112

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -4073,7 +4073,8 @@ interface paths {
4073
4073
  * Create Call
4074
4074
  * @description Create a call: a chat's call (``chat_ext_id``), a thread call (``thread_ext_id``, get-or-create), or a
4075
4075
  * contacts / calendar-event call. Invitees must be invitable (``403 not_a_contact`` / ``workspace_locked``, agents
4076
- * ``422 agent_not_allowed``).
4076
+ * ``422 agent_not_allowed``). A webinar (``mode = 'webinar'``) is a contacts / calendar call only (``422
4077
+ * webinar_not_allowed_here`` with a chat or thread); its invitees carry their roles (default attendee).
4077
4078
  */
4078
4079
  post: operations['create_call'];
4079
4080
  delete?: never;
@@ -4108,7 +4109,9 @@ interface paths {
4108
4109
  /**
4109
4110
  * Update Call
4110
4111
  * @description Creator only: title, lock, join policy, and link reset (new key, old links stop working). ``sealed_keys``
4111
- * re-seals K for existing invitees only; new people are added by ringing.
4112
+ * re-seals K for existing invitees only; new people are added by ringing. ``roles`` changes a webinar's team /
4113
+ * audience roles (existing invitees only; it applies from their next join, and the room is told to refetch the
4114
+ * webinar state).
4112
4115
  */
4113
4116
  patch: operations['update_call'];
4114
4117
  trace?: never;
@@ -4135,6 +4138,8 @@ interface paths {
4135
4138
  * * Otherwise the body creates an E2E ``meeting`` chat at epoch 1 (members: usually the creator and the
4136
4139
  * invitees). A member who is not yet an invitee needs ``call_sealed_key`` (K sealed to them) and must be
4137
4140
  * invitable; they become an invitee so every member can always join.
4141
+ * * A webinar's meeting chat is its team's (host, co-hosts, panelists): only they open it, and every member must be
4142
+ * one of them (``422 attendee_not_member``).
4138
4143
  */
4139
4144
  post: operations['get_or_create_call_chat'];
4140
4145
  delete?: never;
@@ -4159,6 +4164,10 @@ interface paths {
4159
4164
  * ``invite_token`` (a personal invite link's ``i=``): valid for this call and sent to the caller's own e-mail, it
4160
4165
  * admits the caller at once — no lobby, no link version — and makes them an invitee. A forwarded link without the
4161
4166
  * token, or another account presenting it, follows the normal rules.
4167
+ *
4168
+ * A webinar mints the grant of the caller's role and stage state (on stage: publish, data, visible; the audience:
4169
+ * hidden, no publish, data only when the chat is open to everyone) with ``{"webinar_role": …}`` metadata; an
4170
+ * attendee before go-live gets 409 ``webinar_not_live``.
4162
4171
  */
4163
4172
  post: operations['create_call_token'];
4164
4173
  delete?: never;
@@ -4180,7 +4189,7 @@ interface paths {
4180
4189
  * Ring Call
4181
4190
  * @description Ring users into the call. Each gets the call key sealed to them and becomes an invitee. Targets must be
4182
4191
  * invitable: your contacts, members of the call's chat or its invitees; for a thread call members of its
4183
- * workspace; never an agent.
4192
+ * workspace; never an agent. In a webinar only its moderators ring (403 ``moderator_only``).
4184
4193
  */
4185
4194
  post: operations['ring_call'];
4186
4195
  delete?: never;
@@ -4222,7 +4231,8 @@ interface paths {
4222
4231
  * Knock Call
4223
4232
  * @description Ask to join (signed in). Admitted at once when the join policy lets you in directly (a host always;
4224
4233
  * ``signed_in`` / ``open`` with the current link); otherwise pending until a host admits or denies it (poll
4225
- * ``GET .../knock/{id}``). A thread call takes only members of its workspace.
4234
+ * ``GET .../knock/{id}``). A thread call takes only members of its workspace. A webinar's attendee cannot knock
4235
+ * before go-live (409 ``webinar_not_live``).
4226
4236
  */
4227
4237
  post: operations['knock_call'];
4228
4238
  delete?: never;
@@ -4247,7 +4257,8 @@ interface paths {
4247
4257
  /**
4248
4258
  * Resolve Call Knock
4249
4259
  * @description Admit or deny a knock. The creator or an invitee only (for a thread call, while a member of its workspace;
4250
- * the knocker must still be one too).
4260
+ * the knocker must still be one too); in a webinar its moderators, and only once it is live (409
4261
+ * ``webinar_not_live``: a knocker is an attendee).
4251
4262
  */
4252
4263
  post: operations['resolve_call_knock'];
4253
4264
  delete?: never;
@@ -4391,8 +4402,9 @@ interface paths {
4391
4402
  * @description Transcribe one segment of your own microphone. The speaker is you (attribution by origin).
4392
4403
  *
4393
4404
  * You must be admissible to the call (the ``POST /token`` rule; for a thread call a member of its workspace, any
4394
- * role) or already in the room. 410 cancelled, 403 not admissible, 409 ``transcription_off``, 429 over 30 segments
4395
- * a minute, 413 over 2 MB, 400 empty, 503 no transcriber, 502 the transcriber failed. Billed by the usual rule:
4405
+ * role) or already in the room; in a webinar, on stage (403 ``not_on_stage``: only the stage is transcribed). 410
4406
+ * cancelled, 403 not admissible, 409 ``transcription_off``, 429 over 30 segments a minute, 413 over 2 MB, 400
4407
+ * empty, 503 no transcriber, 502 the transcriber failed. Billed by the usual rule:
4396
4408
  * a thread call to its workspace's project, any other call to your own default project.
4397
4409
  *
4398
4410
  * The final open segment survives the switch-off: after the host turns transcription off, or the room finishes, a
@@ -4510,7 +4522,8 @@ interface paths {
4510
4522
  * parts tell you where you are).
4511
4523
  *
4512
4524
  * * ``speaker``: your own microphone. You must be admissible to the call (the ``POST /token`` rule; for a thread
4513
- * call a member of its workspace, any role — the workspace guest role included) or already in the room.
4525
+ * call a member of its workspace, any role — the workspace guest role included) or already in the room; in a
4526
+ * webinar, on stage (403 ``not_on_stage``).
4514
4527
  * * ``composite``: the host's view, host only, ``audio_video`` recordings only (422 ``composite_needs_video``).
4515
4528
  *
4516
4529
  * 409 ``recording_stopped`` once the recording has stopped.
@@ -4678,6 +4691,158 @@ interface paths {
4678
4691
  patch?: never;
4679
4692
  trace?: never;
4680
4693
  };
4694
+ '/v1/calls/{call_ext_id}/webinar': {
4695
+ parameters: {
4696
+ query?: never;
4697
+ header?: never;
4698
+ path?: never;
4699
+ cookie?: never;
4700
+ };
4701
+ /**
4702
+ * Get Call Webinar
4703
+ * @description The webinar's state and the caller's role / stage state; the moderators also get the hand queue (oldest
4704
+ * first) and everyone in the room (hidden audience included). A link holder who would have to knock gets the
4705
+ * state too (the "Starting soon" poll).
4706
+ */
4707
+ get: operations['get_call_webinar'];
4708
+ put?: never;
4709
+ post?: never;
4710
+ delete?: never;
4711
+ options?: never;
4712
+ head?: never;
4713
+ /**
4714
+ * Update Call Webinar
4715
+ * @description Moderators (403 ``moderator_only``): ``live`` true opens the stage; false ends the webinar for everyone (the
4716
+ * room is closed; its session state is cleared). ``chat`` (panelists | everyone) is applied live to the audience.
4717
+ * Changes are announced (``arbi.webinar {type: "state"}``, WS ``call.webinar``).
4718
+ */
4719
+ patch: operations['update_call_webinar'];
4720
+ trace?: never;
4721
+ };
4722
+ '/v1/calls/{call_ext_id}/webinar/hand': {
4723
+ parameters: {
4724
+ query?: never;
4725
+ header?: never;
4726
+ path?: never;
4727
+ cookie?: never;
4728
+ };
4729
+ get?: never;
4730
+ put?: never;
4731
+ /**
4732
+ * Raise Call Webinar Hand
4733
+ * @description Raise or lower your hand (an audience member: 409 ``on_stage`` otherwise). The moderators in the room get the
4734
+ * queue (``arbi.webinar {type: "hands", hands}``).
4735
+ */
4736
+ post: operations['raise_call_webinar_hand'];
4737
+ delete?: never;
4738
+ options?: never;
4739
+ head?: never;
4740
+ patch?: never;
4741
+ trace?: never;
4742
+ };
4743
+ '/v1/calls/{call_ext_id}/webinar/stage/{identity}': {
4744
+ parameters: {
4745
+ query?: never;
4746
+ header?: never;
4747
+ path?: never;
4748
+ cookie?: never;
4749
+ };
4750
+ get?: never;
4751
+ put?: never;
4752
+ /**
4753
+ * Promote Call Webinar Participant
4754
+ * @description Moderators: bring someone in the room on stage — publish and visible at once (404 not in the room). Their
4755
+ * hand is lowered; they get ``arbi.webinar {type: "promoted"}``. A reconnect keeps them on stage this session.
4756
+ */
4757
+ post: operations['promote_call_webinar_participant'];
4758
+ /**
4759
+ * Demote Call Webinar Participant
4760
+ * @description Take someone off the stage: a moderator, or yourself (step down; 403 ``moderator_only`` otherwise). The host
4761
+ * cannot be demoted (403 ``host_not_demotable``).
4762
+ *
4763
+ * Their publish permission is revoked while they stay visible (LiveKit unpublishes their tracks), they get
4764
+ * ``arbi.webinar {type: "demoted"}``, then they are removed from the room (the others see them leave). The client
4765
+ * rejoins at once: its new token is hidden, because this session's stage state now says so.
4766
+ */
4767
+ delete: operations['demote_call_webinar_participant'];
4768
+ options?: never;
4769
+ head?: never;
4770
+ patch?: never;
4771
+ trace?: never;
4772
+ };
4773
+ '/v1/calls/{call_ext_id}/webinar/questions': {
4774
+ parameters: {
4775
+ query?: never;
4776
+ header?: never;
4777
+ path?: never;
4778
+ cookie?: never;
4779
+ };
4780
+ /**
4781
+ * List Call Webinar Questions
4782
+ * @description The webinar's questions, oldest first (any admitted participant). Dismissed questions are shown to the team
4783
+ * and to their asker only; ``asker_ext_id`` likewise (attendees never learn who else attends).
4784
+ */
4785
+ get: operations['list_call_webinar_questions'];
4786
+ put?: never;
4787
+ /**
4788
+ * Ask Call Webinar Question
4789
+ * @description Ask a question (any admitted participant; ``body`` is ciphertext under the call key). 429 over 10 a minute.
4790
+ */
4791
+ post: operations['ask_call_webinar_question'];
4792
+ delete?: never;
4793
+ options?: never;
4794
+ head?: never;
4795
+ patch?: never;
4796
+ trace?: never;
4797
+ };
4798
+ '/v1/calls/{call_ext_id}/webinar/questions/{question_ext_id}/vote': {
4799
+ parameters: {
4800
+ query?: never;
4801
+ header?: never;
4802
+ path?: never;
4803
+ cookie?: never;
4804
+ };
4805
+ get?: never;
4806
+ put?: never;
4807
+ /**
4808
+ * Vote Call Webinar Question
4809
+ * @description Upvote (``up`` true) or withdraw your vote — one per user, idempotent. Not your own question (403
4810
+ * ``own_question``), not a dismissed one (409 ``question_dismissed``).
4811
+ */
4812
+ post: operations['vote_call_webinar_question'];
4813
+ delete?: never;
4814
+ options?: never;
4815
+ head?: never;
4816
+ patch?: never;
4817
+ trace?: never;
4818
+ };
4819
+ '/v1/calls/{call_ext_id}/webinar/questions/{question_ext_id}': {
4820
+ parameters: {
4821
+ query?: never;
4822
+ header?: never;
4823
+ path?: never;
4824
+ cookie?: never;
4825
+ };
4826
+ get?: never;
4827
+ put?: never;
4828
+ post?: never;
4829
+ /**
4830
+ * Delete Call Webinar Question
4831
+ * @description Delete a question: its asker while it is open (409 ``question_not_open`` after), or the team (403
4832
+ * ``team_only`` for anyone else).
4833
+ */
4834
+ delete: operations['delete_call_webinar_question'];
4835
+ options?: never;
4836
+ head?: never;
4837
+ /**
4838
+ * Update Call Webinar Question
4839
+ * @description The team (403 ``team_only``): ``status`` (``answering`` = being answered live, ``answered``, ``dismissed``,
4840
+ * ``open``) and/or a text ``answer`` (ciphertext under the call key; null clears it). Answering records who and
4841
+ * when.
4842
+ */
4843
+ patch: operations['update_call_webinar_question'];
4844
+ trace?: never;
4845
+ };
4681
4846
  '/v1/chats/attachments': {
4682
4847
  parameters: {
4683
4848
  query?: never;
@@ -4845,7 +5010,8 @@ interface paths {
4845
5010
  };
4846
5011
  /**
4847
5012
  * List Chat Messages
4848
- * @description Messages, newest first. Page backwards with ``before`` = the oldest message you have.
5013
+ * @description Messages, newest first; deleted ones are tombstones (``deleted``; no content or attachments). Page
5014
+ * backwards with ``before`` = the oldest message you have.
4849
5015
  */
4850
5016
  get: operations['list_chat_messages'];
4851
5017
  put?: never;
@@ -4882,7 +5048,10 @@ interface paths {
4882
5048
  post?: never;
4883
5049
  /**
4884
5050
  * Delete Chat Message
4885
- * @description Delete one of your own messages (404 for anyone else's). Its attachments go when nothing links them.
5051
+ * @description Delete one of your own messages (404 for anyone else's). It stays in place as a tombstone (``deleted``, no
5052
+ * ``content`` or ``attachments``), so every member sees "Message deleted", live (``chat.updated`` carrying the
5053
+ * tombstone) and after a reload. Its attachments go when nothing else links them. Deleting a tombstone again is
5054
+ * a no-op (204).
4886
5055
  */
4887
5056
  delete: operations['delete_chat_message'];
4888
5057
  options?: never;
@@ -9918,6 +10087,10 @@ interface components {
9918
10087
  *
9919
10088
  * Invitees must be invitable: never an agent; for a thread call members of its workspace; otherwise the caller's
9920
10089
  * contacts or members of the chat.
10090
+ *
10091
+ * ``mode = 'webinar'`` (docs/webinars-plan.md): a contacts / calendar call only (``422 webinar_not_allowed_here``
10092
+ * with a chat or thread); each invitee may carry a ``role`` (cohost | panelist | attendee, default attendee).
10093
+ * ``role`` on an ordinary call is a validation error.
9921
10094
  */
9922
10095
  CallCreate: {
9923
10096
  /** Title */
@@ -9932,6 +10105,12 @@ interface components {
9932
10105
  creator_sealed_key: string;
9933
10106
  /** Invitees */
9934
10107
  invitees?: components['schemas']['CallInviteeIn'][];
10108
+ /**
10109
+ * Mode
10110
+ * @default call
10111
+ * @enum {string}
10112
+ */
10113
+ mode: 'call' | 'webinar';
9935
10114
  };
9936
10115
  /**
9937
10116
  * CallDeclinedMessage
@@ -10017,6 +10196,8 @@ interface components {
10017
10196
  user_ext_id: string;
10018
10197
  /** Sealed Key */
10019
10198
  sealed_key: string;
10199
+ /** Role */
10200
+ role?: ('cohost' | 'panelist' | 'attendee') | null;
10020
10201
  };
10021
10202
  /** CallInviteeResponse */
10022
10203
  CallInviteeResponse: {
@@ -10030,6 +10211,8 @@ interface components {
10030
10211
  display_name: string;
10031
10212
  /** Encryption Public Key */
10032
10213
  encryption_public_key?: string | null;
10214
+ /** Role */
10215
+ role?: ('cohost' | 'panelist' | 'attendee') | null;
10033
10216
  };
10034
10217
  /** CallKnockDecision */
10035
10218
  CallKnockDecision: {
@@ -10111,6 +10294,72 @@ interface components {
10111
10294
  identity: string;
10112
10295
  /** Name */
10113
10296
  name: string;
10297
+ /**
10298
+ * Hidden
10299
+ * @default false
10300
+ */
10301
+ hidden: boolean;
10302
+ };
10303
+ /** CallQuestionCreate */
10304
+ CallQuestionCreate: {
10305
+ /** Body */
10306
+ body: string;
10307
+ };
10308
+ /** CallQuestionResponse */
10309
+ CallQuestionResponse: {
10310
+ /** External Id */
10311
+ external_id: string;
10312
+ /** Body */
10313
+ body: string;
10314
+ /**
10315
+ * Status
10316
+ * @enum {string}
10317
+ */
10318
+ status: 'open' | 'answering' | 'answered' | 'dismissed';
10319
+ /** Answer */
10320
+ answer?: string | null;
10321
+ /** Answered By Ext Id */
10322
+ answered_by_ext_id?: string | null;
10323
+ /** Answered At */
10324
+ answered_at?: string | null;
10325
+ /**
10326
+ * Vote Count
10327
+ * @default 0
10328
+ */
10329
+ vote_count: number;
10330
+ /**
10331
+ * Voted
10332
+ * @default false
10333
+ */
10334
+ voted: boolean;
10335
+ /** Asker Ext Id */
10336
+ asker_ext_id?: string | null;
10337
+ /**
10338
+ * Mine
10339
+ * @default false
10340
+ */
10341
+ mine: boolean;
10342
+ /**
10343
+ * Created At
10344
+ * Format: date-time
10345
+ */
10346
+ created_at: string;
10347
+ };
10348
+ /**
10349
+ * CallQuestionUpdate
10350
+ * @description Team only. ``answer`` (ciphertext under K, null clears it) answers in text; ``status`` answering marks the
10351
+ * question as being answered live.
10352
+ */
10353
+ CallQuestionUpdate: {
10354
+ /** Status */
10355
+ status?: ('open' | 'answering' | 'answered' | 'dismissed') | null;
10356
+ /** Answer */
10357
+ answer?: string | null;
10358
+ };
10359
+ /** CallQuestionVote */
10360
+ CallQuestionVote: {
10361
+ /** Up */
10362
+ up: boolean;
10114
10363
  };
10115
10364
  /**
10116
10365
  * CallRecordingPartCreate
@@ -10332,7 +10581,8 @@ interface components {
10332
10581
  /**
10333
10582
  * CallResponse
10334
10583
  * @description A call. A viewer who is neither a host nor (for a thread call) a member of the locked workspace gets the
10335
- * public stub: no title, context, invitees, participants or keys.
10584
+ * public stub: no title, context, invitees, participants or keys. In a webinar an attendee sees only the team
10585
+ * among ``invitees`` and only the visible (stage) people among ``participants``.
10336
10586
  */
10337
10587
  CallResponse: {
10338
10588
  /** External Id */
@@ -10409,6 +10659,13 @@ interface components {
10409
10659
  recording?: components['schemas']['CallRecordingState'] | null;
10410
10660
  /** Link Path */
10411
10661
  link_path: string;
10662
+ /**
10663
+ * Mode
10664
+ * @default call
10665
+ * @enum {string}
10666
+ */
10667
+ mode: 'call' | 'webinar';
10668
+ webinar?: components['schemas']['CallWebinarSummary'] | null;
10412
10669
  };
10413
10670
  /**
10414
10671
  * CallRingRequest
@@ -10572,6 +10829,9 @@ interface components {
10572
10829
  /**
10573
10830
  * CallUpdate
10574
10831
  * @description Creator only. ``reset_link`` needs the new K sealed to the creator (and, ideally, to every invitee).
10832
+ *
10833
+ * ``roles`` (webinars only, ``422 not_a_webinar`` otherwise): ``{usr-…: cohost | panelist | attendee}`` for existing
10834
+ * invitees (``422 not_an_invitee``). A new role applies from the person's next join.
10575
10835
  */
10576
10836
  CallUpdate: {
10577
10837
  /** Title */
@@ -10591,6 +10851,53 @@ interface components {
10591
10851
  sealed_keys?: {
10592
10852
  [key: string]: string;
10593
10853
  } | null;
10854
+ /** Roles */
10855
+ roles?: {
10856
+ [key: string]: 'cohost' | 'panelist' | 'attendee';
10857
+ } | null;
10858
+ };
10859
+ /**
10860
+ * CallWebinarMessage
10861
+ * @description A webinar went live, ended, or changed its chat setting (same audience as ``call.started``). Everyone in the
10862
+ * room also gets a server-sent LiveKit data message on topic ``arbi.webinar`` (``{type: "state", …}``).
10863
+ */
10864
+ CallWebinarMessage: {
10865
+ /**
10866
+ * Type
10867
+ * @default call.webinar
10868
+ * @constant
10869
+ */
10870
+ type: 'call.webinar';
10871
+ /** Call Ext Id */
10872
+ call_ext_id: string;
10873
+ /** Live */
10874
+ live: boolean;
10875
+ /**
10876
+ * Chat
10877
+ * @enum {string}
10878
+ */
10879
+ chat: 'panelists' | 'everyone';
10880
+ };
10881
+ /**
10882
+ * CallWebinarSummary
10883
+ * @description ``CallResponse.webinar``: the stage state and the viewer's role.
10884
+ */
10885
+ CallWebinarSummary: {
10886
+ /** Live */
10887
+ live: boolean;
10888
+ /** Live At */
10889
+ live_at?: string | null;
10890
+ /**
10891
+ * Chat
10892
+ * @default panelists
10893
+ * @enum {string}
10894
+ */
10895
+ chat: 'panelists' | 'everyone';
10896
+ /**
10897
+ * My Role
10898
+ * @enum {string}
10899
+ */
10900
+ my_role: 'host' | 'cohost' | 'panelist' | 'attendee';
10594
10901
  };
10595
10902
  /** CallsConfigResponse */
10596
10903
  CallsConfigResponse: {
@@ -10791,6 +11098,11 @@ interface components {
10791
11098
  recording_ext_id?: string | null;
10792
11099
  /** Dedupe Key */
10793
11100
  dedupe_key?: string | null;
11101
+ /**
11102
+ * Deleted
11103
+ * @default false
11104
+ */
11105
+ deleted: boolean;
10794
11106
  /** Workspace Ext Id */
10795
11107
  workspace_ext_id?: string | null;
10796
11108
  /**
@@ -10876,7 +11188,8 @@ interface components {
10876
11188
  };
10877
11189
  /**
10878
11190
  * ChatUpdatedMessage
10879
- * @description A chat changed (members, keys, title, a deleted message): refetch ``GET /v1/chats/{id}``.
11191
+ * @description A chat changed (members, keys, title, a deleted message): refetch ``GET /v1/chats/{id}``. ``message`` is a
11192
+ * message changed in place (a deleted message's tombstone, ``deleted: true``): replace it in the thread.
10880
11193
  */
10881
11194
  ChatUpdatedMessage: {
10882
11195
  /**
@@ -10887,6 +11200,7 @@ interface components {
10887
11200
  type: 'chat.updated';
10888
11201
  /** Chat Ext Id */
10889
11202
  chat_ext_id: string;
11203
+ message?: components['schemas']['ChatMessageResponse'] | null;
10890
11204
  };
10891
11205
  /** Chunk */
10892
11206
  Chunk: {
@@ -22327,6 +22641,7 @@ interface components {
22327
22641
  call_knock?: components['schemas']['CallKnockMessage'] | null;
22328
22642
  call_knock_resolved?: components['schemas']['CallKnockResolvedMessage'] | null;
22329
22643
  call_transcription?: components['schemas']['CallTranscriptionMessage'] | null;
22644
+ call_webinar?: components['schemas']['CallWebinarMessage'] | null;
22330
22645
  chat_message?: components['schemas']['ChatMessageMessage'] | null;
22331
22646
  chat_updated?: components['schemas']['ChatUpdatedMessage'] | null;
22332
22647
  chat_read?: components['schemas']['ChatReadMessage'] | null;
@@ -22334,6 +22649,86 @@ interface components {
22334
22649
  notification?: components['schemas']['NotificationResponse'] | null;
22335
22650
  auth?: components['schemas']['AuthMessage'] | null;
22336
22651
  };
22652
+ /**
22653
+ * WebinarAttendee
22654
+ * @description Someone in the room (``ListParticipants``, hidden people included), for the moderators' audience list.
22655
+ */
22656
+ WebinarAttendee: {
22657
+ /** Identity */
22658
+ identity: string;
22659
+ /** Name */
22660
+ name: string;
22661
+ /** On Stage */
22662
+ on_stage: boolean;
22663
+ /** Hand Raised */
22664
+ hand_raised: boolean;
22665
+ /**
22666
+ * Role
22667
+ * @enum {string}
22668
+ */
22669
+ role: 'host' | 'cohost' | 'panelist' | 'attendee';
22670
+ };
22671
+ /** WebinarHand */
22672
+ WebinarHand: {
22673
+ /** Identity */
22674
+ identity: string;
22675
+ /** Name */
22676
+ name: string;
22677
+ /**
22678
+ * Raised At
22679
+ * Format: date-time
22680
+ */
22681
+ raised_at: string;
22682
+ };
22683
+ /** WebinarHandRequest */
22684
+ WebinarHandRequest: {
22685
+ /** Raised */
22686
+ raised: boolean;
22687
+ };
22688
+ /**
22689
+ * WebinarState
22690
+ * @description ``GET /webinar``. ``hands`` (oldest first) and ``attendees`` are filled for the moderators only. ``attendees`` is
22691
+ * the audience: attendees in the room (promoted ones included) and team members who stepped off stage.
22692
+ */
22693
+ WebinarState: {
22694
+ /** Live */
22695
+ live: boolean;
22696
+ /** Live At */
22697
+ live_at?: string | null;
22698
+ /**
22699
+ * Chat
22700
+ * @default panelists
22701
+ * @enum {string}
22702
+ */
22703
+ chat: 'panelists' | 'everyone';
22704
+ /**
22705
+ * My Role
22706
+ * @enum {string}
22707
+ */
22708
+ my_role: 'host' | 'cohost' | 'panelist' | 'attendee';
22709
+ /** On Stage */
22710
+ on_stage: boolean;
22711
+ /**
22712
+ * Hand Raised
22713
+ * @default false
22714
+ */
22715
+ hand_raised: boolean;
22716
+ /** Hands */
22717
+ hands?: components['schemas']['WebinarHand'][];
22718
+ /** Attendees */
22719
+ attendees?: components['schemas']['WebinarAttendee'][];
22720
+ };
22721
+ /**
22722
+ * WebinarUpdate
22723
+ * @description Moderators: ``live`` true opens the stage, false ends the webinar for everyone (the room is closed);
22724
+ * ``chat`` sets who may chat.
22725
+ */
22726
+ WebinarUpdate: {
22727
+ /** Live */
22728
+ live?: boolean | null;
22729
+ /** Chat */
22730
+ chat?: ('panelists' | 'everyone') | null;
22731
+ };
22337
22732
  /** WeeklyHours */
22338
22733
  WeeklyHours: {
22339
22734
  /**
@@ -30247,6 +30642,355 @@ interface operations {
30247
30642
  };
30248
30643
  };
30249
30644
  };
30645
+ get_call_webinar: {
30646
+ parameters: {
30647
+ query?: {
30648
+ link_version?: number | null;
30649
+ };
30650
+ header?: never;
30651
+ path: {
30652
+ call_ext_id: string;
30653
+ };
30654
+ cookie?: never;
30655
+ };
30656
+ requestBody?: never;
30657
+ responses: {
30658
+ /** @description Successful Response */
30659
+ 200: {
30660
+ headers: {
30661
+ [name: string]: unknown;
30662
+ };
30663
+ content: {
30664
+ 'application/json': components['schemas']['WebinarState'];
30665
+ };
30666
+ };
30667
+ /** @description Validation Error */
30668
+ 422: {
30669
+ headers: {
30670
+ [name: string]: unknown;
30671
+ };
30672
+ content: {
30673
+ 'application/json': components['schemas']['HTTPValidationError'];
30674
+ };
30675
+ };
30676
+ };
30677
+ };
30678
+ update_call_webinar: {
30679
+ parameters: {
30680
+ query?: {
30681
+ link_version?: number | null;
30682
+ };
30683
+ header?: never;
30684
+ path: {
30685
+ call_ext_id: string;
30686
+ };
30687
+ cookie?: never;
30688
+ };
30689
+ requestBody: {
30690
+ content: {
30691
+ 'application/json': components['schemas']['WebinarUpdate'];
30692
+ };
30693
+ };
30694
+ responses: {
30695
+ /** @description Successful Response */
30696
+ 200: {
30697
+ headers: {
30698
+ [name: string]: unknown;
30699
+ };
30700
+ content: {
30701
+ 'application/json': components['schemas']['WebinarState'];
30702
+ };
30703
+ };
30704
+ /** @description Validation Error */
30705
+ 422: {
30706
+ headers: {
30707
+ [name: string]: unknown;
30708
+ };
30709
+ content: {
30710
+ 'application/json': components['schemas']['HTTPValidationError'];
30711
+ };
30712
+ };
30713
+ };
30714
+ };
30715
+ raise_call_webinar_hand: {
30716
+ parameters: {
30717
+ query?: {
30718
+ link_version?: number | null;
30719
+ };
30720
+ header?: never;
30721
+ path: {
30722
+ call_ext_id: string;
30723
+ };
30724
+ cookie?: never;
30725
+ };
30726
+ requestBody: {
30727
+ content: {
30728
+ 'application/json': components['schemas']['WebinarHandRequest'];
30729
+ };
30730
+ };
30731
+ responses: {
30732
+ /** @description Successful Response */
30733
+ 200: {
30734
+ headers: {
30735
+ [name: string]: unknown;
30736
+ };
30737
+ content: {
30738
+ 'application/json': components['schemas']['WebinarState'];
30739
+ };
30740
+ };
30741
+ /** @description Validation Error */
30742
+ 422: {
30743
+ headers: {
30744
+ [name: string]: unknown;
30745
+ };
30746
+ content: {
30747
+ 'application/json': components['schemas']['HTTPValidationError'];
30748
+ };
30749
+ };
30750
+ };
30751
+ };
30752
+ promote_call_webinar_participant: {
30753
+ parameters: {
30754
+ query?: {
30755
+ link_version?: number | null;
30756
+ };
30757
+ header?: never;
30758
+ path: {
30759
+ call_ext_id: string;
30760
+ identity: string;
30761
+ };
30762
+ cookie?: never;
30763
+ };
30764
+ requestBody?: never;
30765
+ responses: {
30766
+ /** @description Successful Response */
30767
+ 204: {
30768
+ headers: {
30769
+ [name: string]: unknown;
30770
+ };
30771
+ content?: never;
30772
+ };
30773
+ /** @description Validation Error */
30774
+ 422: {
30775
+ headers: {
30776
+ [name: string]: unknown;
30777
+ };
30778
+ content: {
30779
+ 'application/json': components['schemas']['HTTPValidationError'];
30780
+ };
30781
+ };
30782
+ };
30783
+ };
30784
+ demote_call_webinar_participant: {
30785
+ parameters: {
30786
+ query?: {
30787
+ link_version?: number | null;
30788
+ };
30789
+ header?: never;
30790
+ path: {
30791
+ call_ext_id: string;
30792
+ identity: string;
30793
+ };
30794
+ cookie?: never;
30795
+ };
30796
+ requestBody?: never;
30797
+ responses: {
30798
+ /** @description Successful Response */
30799
+ 204: {
30800
+ headers: {
30801
+ [name: string]: unknown;
30802
+ };
30803
+ content?: never;
30804
+ };
30805
+ /** @description Validation Error */
30806
+ 422: {
30807
+ headers: {
30808
+ [name: string]: unknown;
30809
+ };
30810
+ content: {
30811
+ 'application/json': components['schemas']['HTTPValidationError'];
30812
+ };
30813
+ };
30814
+ };
30815
+ };
30816
+ list_call_webinar_questions: {
30817
+ parameters: {
30818
+ query?: {
30819
+ link_version?: number | null;
30820
+ };
30821
+ header?: never;
30822
+ path: {
30823
+ call_ext_id: string;
30824
+ };
30825
+ cookie?: never;
30826
+ };
30827
+ requestBody?: never;
30828
+ responses: {
30829
+ /** @description Successful Response */
30830
+ 200: {
30831
+ headers: {
30832
+ [name: string]: unknown;
30833
+ };
30834
+ content: {
30835
+ 'application/json': components['schemas']['CallQuestionResponse'][];
30836
+ };
30837
+ };
30838
+ /** @description Validation Error */
30839
+ 422: {
30840
+ headers: {
30841
+ [name: string]: unknown;
30842
+ };
30843
+ content: {
30844
+ 'application/json': components['schemas']['HTTPValidationError'];
30845
+ };
30846
+ };
30847
+ };
30848
+ };
30849
+ ask_call_webinar_question: {
30850
+ parameters: {
30851
+ query?: {
30852
+ link_version?: number | null;
30853
+ };
30854
+ header?: never;
30855
+ path: {
30856
+ call_ext_id: string;
30857
+ };
30858
+ cookie?: never;
30859
+ };
30860
+ requestBody: {
30861
+ content: {
30862
+ 'application/json': components['schemas']['CallQuestionCreate'];
30863
+ };
30864
+ };
30865
+ responses: {
30866
+ /** @description Successful Response */
30867
+ 201: {
30868
+ headers: {
30869
+ [name: string]: unknown;
30870
+ };
30871
+ content: {
30872
+ 'application/json': components['schemas']['CallQuestionResponse'];
30873
+ };
30874
+ };
30875
+ /** @description Validation Error */
30876
+ 422: {
30877
+ headers: {
30878
+ [name: string]: unknown;
30879
+ };
30880
+ content: {
30881
+ 'application/json': components['schemas']['HTTPValidationError'];
30882
+ };
30883
+ };
30884
+ };
30885
+ };
30886
+ vote_call_webinar_question: {
30887
+ parameters: {
30888
+ query?: {
30889
+ link_version?: number | null;
30890
+ };
30891
+ header?: never;
30892
+ path: {
30893
+ call_ext_id: string;
30894
+ question_ext_id: string;
30895
+ };
30896
+ cookie?: never;
30897
+ };
30898
+ requestBody: {
30899
+ content: {
30900
+ 'application/json': components['schemas']['CallQuestionVote'];
30901
+ };
30902
+ };
30903
+ responses: {
30904
+ /** @description Successful Response */
30905
+ 200: {
30906
+ headers: {
30907
+ [name: string]: unknown;
30908
+ };
30909
+ content: {
30910
+ 'application/json': components['schemas']['CallQuestionResponse'];
30911
+ };
30912
+ };
30913
+ /** @description Validation Error */
30914
+ 422: {
30915
+ headers: {
30916
+ [name: string]: unknown;
30917
+ };
30918
+ content: {
30919
+ 'application/json': components['schemas']['HTTPValidationError'];
30920
+ };
30921
+ };
30922
+ };
30923
+ };
30924
+ delete_call_webinar_question: {
30925
+ parameters: {
30926
+ query?: {
30927
+ link_version?: number | null;
30928
+ };
30929
+ header?: never;
30930
+ path: {
30931
+ call_ext_id: string;
30932
+ question_ext_id: string;
30933
+ };
30934
+ cookie?: never;
30935
+ };
30936
+ requestBody?: never;
30937
+ responses: {
30938
+ /** @description Successful Response */
30939
+ 204: {
30940
+ headers: {
30941
+ [name: string]: unknown;
30942
+ };
30943
+ content?: never;
30944
+ };
30945
+ /** @description Validation Error */
30946
+ 422: {
30947
+ headers: {
30948
+ [name: string]: unknown;
30949
+ };
30950
+ content: {
30951
+ 'application/json': components['schemas']['HTTPValidationError'];
30952
+ };
30953
+ };
30954
+ };
30955
+ };
30956
+ update_call_webinar_question: {
30957
+ parameters: {
30958
+ query?: {
30959
+ link_version?: number | null;
30960
+ };
30961
+ header?: never;
30962
+ path: {
30963
+ call_ext_id: string;
30964
+ question_ext_id: string;
30965
+ };
30966
+ cookie?: never;
30967
+ };
30968
+ requestBody: {
30969
+ content: {
30970
+ 'application/json': components['schemas']['CallQuestionUpdate'];
30971
+ };
30972
+ };
30973
+ responses: {
30974
+ /** @description Successful Response */
30975
+ 200: {
30976
+ headers: {
30977
+ [name: string]: unknown;
30978
+ };
30979
+ content: {
30980
+ 'application/json': components['schemas']['CallQuestionResponse'];
30981
+ };
30982
+ };
30983
+ /** @description Validation Error */
30984
+ 422: {
30985
+ headers: {
30986
+ [name: string]: unknown;
30987
+ };
30988
+ content: {
30989
+ 'application/json': components['schemas']['HTTPValidationError'];
30990
+ };
30991
+ };
30992
+ };
30993
+ };
30250
30994
  upload_chat_attachment: {
30251
30995
  parameters: {
30252
30996
  query?: never;