telnyx 5.160.0 → 5.161.0

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.
Files changed (245) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +12 -0
  3. data/README.md +1 -1
  4. data/lib/telnyx/client.rb +8 -0
  5. data/lib/telnyx/models/artifact_completed_webhook_event.rb +152 -0
  6. data/lib/telnyx/models/artifact_failed_webhook_event.rb +103 -0
  7. data/lib/telnyx/models/call_dial_params.rb +7 -7
  8. data/lib/telnyx/models/calls/action_answer_params.rb +7 -6
  9. data/lib/telnyx/models/calls/action_transfer_params.rb +7 -6
  10. data/lib/telnyx/models/meeting_session.rb +380 -0
  11. data/lib/telnyx/models/meeting_session_create_params.rb +309 -0
  12. data/lib/telnyx/models/meeting_session_delete_params.rb +20 -0
  13. data/lib/telnyx/models/meeting_session_delete_recording_media_params.rb +20 -0
  14. data/lib/telnyx/models/meeting_session_delete_recording_media_response.rb +61 -0
  15. data/lib/telnyx/models/meeting_session_list_params.rb +39 -0
  16. data/lib/telnyx/models/meeting_session_list_response.rb +16 -0
  17. data/lib/telnyx/models/meeting_session_response.rb +22 -0
  18. data/lib/telnyx/models/meeting_session_retrieve_events_params.rb +37 -0
  19. data/lib/telnyx/models/meeting_session_retrieve_events_response.rb +45 -0
  20. data/lib/telnyx/models/meeting_session_retrieve_params.rb +20 -0
  21. data/lib/telnyx/models/meeting_session_retrieve_recordings_params.rb +20 -0
  22. data/lib/telnyx/models/meeting_session_retrieve_recordings_response.rb +49 -0
  23. data/lib/telnyx/models/meeting_session_retrieve_transcript_params.rb +50 -0
  24. data/lib/telnyx/models/meeting_session_retrieve_transcript_response.rb +80 -0
  25. data/lib/telnyx/models/meeting_session_update_params.rb +37 -0
  26. data/lib/telnyx/models/meeting_sessions/action_accepted_response.rb +29 -0
  27. data/lib/telnyx/models/meeting_sessions/action_send_chat_params.rb +31 -0
  28. data/lib/telnyx/models/meeting_sessions/action_speak_params.rb +52 -0
  29. data/lib/telnyx/models/meeting_sessions/action_stop_speaking_params.rb +22 -0
  30. data/lib/telnyx/models/meeting_sessions/artifact_create_params.rb +42 -0
  31. data/lib/telnyx/models/meeting_sessions/artifact_list_params.rb +22 -0
  32. data/lib/telnyx/models/meeting_sessions/artifact_list_response.rb +18 -0
  33. data/lib/telnyx/models/meeting_sessions/artifact_retrieve_params.rb +28 -0
  34. data/lib/telnyx/models/meeting_sessions/meeting_session_artifact.rb +120 -0
  35. data/lib/telnyx/models/meeting_sessions/meeting_session_artifact_response.rb +20 -0
  36. data/lib/telnyx/models/phone_numbers/voicemail_pref_response.rb +64 -1
  37. data/lib/telnyx/models/phone_numbers/voicemail_request.rb +63 -1
  38. data/lib/telnyx/models/private_wireless_gateway_status.rb +2 -2
  39. data/lib/telnyx/models/recording_available_webhook_event.rb +82 -0
  40. data/lib/telnyx/models/session_status_changed_webhook_event.rb +102 -0
  41. data/lib/telnyx/models/sim_cards/action_bulk_enable_voice_params.rb +16 -1
  42. data/lib/telnyx/models/sim_cards/action_disable_voice_params.rb +22 -0
  43. data/lib/telnyx/models/sim_cards/action_disable_voice_response.rb +23 -0
  44. data/lib/telnyx/models/sim_cards/action_enable_voice_params.rb +37 -0
  45. data/lib/telnyx/models/sim_cards/action_enable_voice_response.rb +23 -0
  46. data/lib/telnyx/models/sim_cards/action_list_params.rb +2 -0
  47. data/lib/telnyx/models/sim_cards/wireless_sim_card_action.rb +6 -0
  48. data/lib/telnyx/models/storage/edge_compute_pagination_meta.rb +35 -0
  49. data/lib/telnyx/models/storage/sql_database.rb +75 -0
  50. data/lib/telnyx/models/storage/sql_database_response_wrapper.rb +18 -0
  51. data/lib/telnyx/models/storage/sqldb_create_params.rb +28 -0
  52. data/lib/telnyx/models/storage/sqldb_delete_params.rb +35 -0
  53. data/lib/telnyx/models/storage/sqldb_list_params.rb +85 -0
  54. data/lib/telnyx/models/storage/sqldb_retrieve_params.rb +22 -0
  55. data/lib/telnyx/models/storage/sqldbs/action_query_params.rb +66 -0
  56. data/lib/telnyx/models/storage/sqldbs/action_query_response.rb +109 -0
  57. data/lib/telnyx/models/transcript_completed_webhook_event.rb +98 -0
  58. data/lib/telnyx/models/unsafe_unwrap_webhook_event.rb +11 -1
  59. data/lib/telnyx/models/unwrap_webhook_event.rb +11 -1
  60. data/lib/telnyx/models/web_search/research_citation.rb +34 -0
  61. data/lib/telnyx/models/web_search/research_create_params.rb +65 -0
  62. data/lib/telnyx/models/web_search/research_create_response.rb +93 -0
  63. data/lib/telnyx/models/web_search/research_retrieve_params.rb +22 -0
  64. data/lib/telnyx/models/web_search/research_retrieve_response.rb +77 -0
  65. data/lib/telnyx/models/web_search_contents_params.rb +63 -0
  66. data/lib/telnyx/models/web_search_contents_response.rb +97 -0
  67. data/lib/telnyx/models/web_search_create_params.rb +95 -0
  68. data/lib/telnyx/models/web_search_create_response.rb +47 -0
  69. data/lib/telnyx/models/web_search_result.rb +56 -0
  70. data/lib/telnyx/models.rb +42 -0
  71. data/lib/telnyx/resources/calls/actions.rb +2 -2
  72. data/lib/telnyx/resources/calls.rb +1 -1
  73. data/lib/telnyx/resources/meeting_sessions/actions.rb +92 -0
  74. data/lib/telnyx/resources/meeting_sessions/artifacts.rb +92 -0
  75. data/lib/telnyx/resources/meeting_sessions.rb +290 -0
  76. data/lib/telnyx/resources/phone_numbers/voicemail.rb +20 -4
  77. data/lib/telnyx/resources/sim_cards/actions.rb +66 -1
  78. data/lib/telnyx/resources/storage/sqldbs/actions.rb +50 -0
  79. data/lib/telnyx/resources/storage/sqldbs.rb +140 -0
  80. data/lib/telnyx/resources/storage.rb +5 -0
  81. data/lib/telnyx/resources/web_search/research.rb +86 -0
  82. data/lib/telnyx/resources/web_search.rb +96 -0
  83. data/lib/telnyx/resources/webhooks.rb +2 -2
  84. data/lib/telnyx/version.rb +1 -1
  85. data/lib/telnyx.rb +61 -0
  86. data/rbi/telnyx/client.rbi +6 -0
  87. data/rbi/telnyx/models/artifact_completed_webhook_event.rbi +283 -0
  88. data/rbi/telnyx/models/artifact_failed_webhook_event.rbi +185 -0
  89. data/rbi/telnyx/models/call_dial_params.rbi +12 -12
  90. data/rbi/telnyx/models/calls/action_answer_params.rbi +12 -10
  91. data/rbi/telnyx/models/calls/action_transfer_params.rbi +12 -10
  92. data/rbi/telnyx/models/meeting_session.rbi +544 -0
  93. data/rbi/telnyx/models/meeting_session_create_params.rbi +526 -0
  94. data/rbi/telnyx/models/meeting_session_delete_params.rbi +35 -0
  95. data/rbi/telnyx/models/meeting_session_delete_recording_media_params.rbi +38 -0
  96. data/rbi/telnyx/models/meeting_session_delete_recording_media_response.rbi +143 -0
  97. data/rbi/telnyx/models/meeting_session_list_params.rbi +101 -0
  98. data/rbi/telnyx/models/meeting_session_list_response.rbi +30 -0
  99. data/rbi/telnyx/models/meeting_session_response.rbi +36 -0
  100. data/rbi/telnyx/models/meeting_session_retrieve_events_params.rbi +66 -0
  101. data/rbi/telnyx/models/meeting_session_retrieve_events_response.rbi +92 -0
  102. data/rbi/telnyx/models/meeting_session_retrieve_params.rbi +35 -0
  103. data/rbi/telnyx/models/meeting_session_retrieve_recordings_params.rbi +38 -0
  104. data/rbi/telnyx/models/meeting_session_retrieve_recordings_response.rbi +97 -0
  105. data/rbi/telnyx/models/meeting_session_retrieve_transcript_params.rbi +81 -0
  106. data/rbi/telnyx/models/meeting_session_retrieve_transcript_response.rbi +154 -0
  107. data/rbi/telnyx/models/meeting_session_update_params.rbi +63 -0
  108. data/rbi/telnyx/models/meeting_sessions/action_accepted_response.rbi +64 -0
  109. data/rbi/telnyx/models/meeting_sessions/action_send_chat_params.rbi +54 -0
  110. data/rbi/telnyx/models/meeting_sessions/action_speak_params.rbi +80 -0
  111. data/rbi/telnyx/models/meeting_sessions/action_stop_speaking_params.rbi +40 -0
  112. data/rbi/telnyx/models/meeting_sessions/artifact_create_params.rbi +89 -0
  113. data/rbi/telnyx/models/meeting_sessions/artifact_list_params.rbi +40 -0
  114. data/rbi/telnyx/models/meeting_sessions/artifact_list_response.rbi +39 -0
  115. data/rbi/telnyx/models/meeting_sessions/artifact_retrieve_params.rbi +48 -0
  116. data/rbi/telnyx/models/meeting_sessions/meeting_session_artifact.rbi +264 -0
  117. data/rbi/telnyx/models/meeting_sessions/meeting_session_artifact_response.rbi +46 -0
  118. data/rbi/telnyx/models/phone_numbers/voicemail_pref_response.rbi +149 -2
  119. data/rbi/telnyx/models/phone_numbers/voicemail_request.rbi +145 -2
  120. data/rbi/telnyx/models/private_wireless_gateway_status.rbi +2 -2
  121. data/rbi/telnyx/models/recording_available_webhook_event.rbi +146 -0
  122. data/rbi/telnyx/models/session_status_changed_webhook_event.rbi +171 -0
  123. data/rbi/telnyx/models/sim_cards/action_bulk_enable_voice_params.rbi +21 -1
  124. data/rbi/telnyx/models/sim_cards/action_disable_voice_params.rbi +40 -0
  125. data/rbi/telnyx/models/sim_cards/action_disable_voice_response.rbi +45 -0
  126. data/rbi/telnyx/models/sim_cards/action_enable_voice_params.rbi +63 -0
  127. data/rbi/telnyx/models/sim_cards/action_enable_voice_response.rbi +45 -0
  128. data/rbi/telnyx/models/sim_cards/action_list_params.rbi +10 -0
  129. data/rbi/telnyx/models/sim_cards/wireless_sim_card_action.rbi +16 -0
  130. data/rbi/telnyx/models/storage/edge_compute_pagination_meta.rbi +70 -0
  131. data/rbi/telnyx/models/storage/sql_database.rbi +131 -0
  132. data/rbi/telnyx/models/storage/sql_database_response_wrapper.rbi +35 -0
  133. data/rbi/telnyx/models/storage/sqldb_create_params.rbi +44 -0
  134. data/rbi/telnyx/models/storage/sqldb_delete_params.rbi +56 -0
  135. data/rbi/telnyx/models/storage/sqldb_list_params.rbi +198 -0
  136. data/rbi/telnyx/models/storage/sqldb_retrieve_params.rbi +40 -0
  137. data/rbi/telnyx/models/storage/sqldbs/action_query_params.rbi +125 -0
  138. data/rbi/telnyx/models/storage/sqldbs/action_query_response.rbi +226 -0
  139. data/rbi/telnyx/models/transcript_completed_webhook_event.rbi +166 -0
  140. data/rbi/telnyx/models/unsafe_unwrap_webhook_event.rbi +5 -0
  141. data/rbi/telnyx/models/unwrap_webhook_event.rbi +5 -0
  142. data/rbi/telnyx/models/web_search/research_citation.rbi +53 -0
  143. data/rbi/telnyx/models/web_search/research_create_params.rbi +138 -0
  144. data/rbi/telnyx/models/web_search/research_create_response.rbi +235 -0
  145. data/rbi/telnyx/models/web_search/research_retrieve_params.rbi +40 -0
  146. data/rbi/telnyx/models/web_search/research_retrieve_response.rbi +179 -0
  147. data/rbi/telnyx/models/web_search_contents_params.rbi +119 -0
  148. data/rbi/telnyx/models/web_search_contents_response.rbi +232 -0
  149. data/rbi/telnyx/models/web_search_create_params.rbi +162 -0
  150. data/rbi/telnyx/models/web_search_create_response.rbi +127 -0
  151. data/rbi/telnyx/models/web_search_result.rbi +83 -0
  152. data/rbi/telnyx/models.rbi +49 -0
  153. data/rbi/telnyx/resources/calls/actions.rbi +10 -8
  154. data/rbi/telnyx/resources/calls.rbi +5 -5
  155. data/rbi/telnyx/resources/meeting_sessions/actions.rbi +71 -0
  156. data/rbi/telnyx/resources/meeting_sessions/artifacts.rbi +67 -0
  157. data/rbi/telnyx/resources/meeting_sessions.rbi +256 -0
  158. data/rbi/telnyx/resources/phone_numbers/voicemail.rbi +22 -2
  159. data/rbi/telnyx/resources/sim_cards/actions.rbi +56 -1
  160. data/rbi/telnyx/resources/storage/sqldbs/actions.rbi +50 -0
  161. data/rbi/telnyx/resources/storage/sqldbs.rbi +105 -0
  162. data/rbi/telnyx/resources/storage.rbi +4 -0
  163. data/rbi/telnyx/resources/web_search/research.rbi +71 -0
  164. data/rbi/telnyx/resources/web_search.rbi +86 -0
  165. data/rbi/telnyx/resources/webhooks.rbi +10 -0
  166. data/sig/telnyx/client.rbs +4 -0
  167. data/sig/telnyx/models/artifact_completed_webhook_event.rbs +120 -0
  168. data/sig/telnyx/models/artifact_failed_webhook_event.rbs +88 -0
  169. data/sig/telnyx/models/call_dial_params.rbs +7 -5
  170. data/sig/telnyx/models/calls/action_answer_params.rbs +7 -5
  171. data/sig/telnyx/models/calls/action_transfer_params.rbs +7 -5
  172. data/sig/telnyx/models/meeting_session.rbs +277 -0
  173. data/sig/telnyx/models/meeting_session_create_params.rbs +222 -0
  174. data/sig/telnyx/models/meeting_session_delete_params.rbs +20 -0
  175. data/sig/telnyx/models/meeting_session_delete_recording_media_params.rbs +20 -0
  176. data/sig/telnyx/models/meeting_session_delete_recording_media_response.rbs +61 -0
  177. data/sig/telnyx/models/meeting_session_list_params.rbs +53 -0
  178. data/sig/telnyx/models/meeting_session_list_response.rbs +14 -0
  179. data/sig/telnyx/models/meeting_session_response.rbs +13 -0
  180. data/sig/telnyx/models/meeting_session_retrieve_events_params.rbs +36 -0
  181. data/sig/telnyx/models/meeting_session_retrieve_events_response.rbs +52 -0
  182. data/sig/telnyx/models/meeting_session_retrieve_params.rbs +20 -0
  183. data/sig/telnyx/models/meeting_session_retrieve_recordings_params.rbs +20 -0
  184. data/sig/telnyx/models/meeting_session_retrieve_recordings_response.rbs +34 -0
  185. data/sig/telnyx/models/meeting_session_retrieve_transcript_params.rbs +42 -0
  186. data/sig/telnyx/models/meeting_session_retrieve_transcript_response.rbs +77 -0
  187. data/sig/telnyx/models/meeting_session_update_params.rbs +36 -0
  188. data/sig/telnyx/models/meeting_sessions/action_accepted_response.rbs +30 -0
  189. data/sig/telnyx/models/meeting_sessions/action_send_chat_params.rbs +30 -0
  190. data/sig/telnyx/models/meeting_sessions/action_speak_params.rbs +42 -0
  191. data/sig/telnyx/models/meeting_sessions/action_stop_speaking_params.rbs +22 -0
  192. data/sig/telnyx/models/meeting_sessions/artifact_create_params.rbs +44 -0
  193. data/sig/telnyx/models/meeting_sessions/artifact_list_params.rbs +22 -0
  194. data/sig/telnyx/models/meeting_sessions/artifact_list_response.rbs +20 -0
  195. data/sig/telnyx/models/meeting_sessions/artifact_retrieve_params.rbs +30 -0
  196. data/sig/telnyx/models/meeting_sessions/meeting_session_artifact.rbs +109 -0
  197. data/sig/telnyx/models/meeting_sessions/meeting_session_artifact_response.rbs +22 -0
  198. data/sig/telnyx/models/phone_numbers/voicemail_pref_response.rbs +59 -3
  199. data/sig/telnyx/models/phone_numbers/voicemail_request.rbs +59 -3
  200. data/sig/telnyx/models/recording_available_webhook_event.rbs +65 -0
  201. data/sig/telnyx/models/session_status_changed_webhook_event.rbs +82 -0
  202. data/sig/telnyx/models/sim_cards/action_bulk_enable_voice_params.rbs +7 -1
  203. data/sig/telnyx/models/sim_cards/action_disable_voice_params.rbs +22 -0
  204. data/sig/telnyx/models/sim_cards/action_disable_voice_response.rbs +20 -0
  205. data/sig/telnyx/models/sim_cards/action_enable_voice_params.rbs +32 -0
  206. data/sig/telnyx/models/sim_cards/action_enable_voice_response.rbs +20 -0
  207. data/sig/telnyx/models/sim_cards/action_list_params.rbs +4 -0
  208. data/sig/telnyx/models/sim_cards/wireless_sim_card_action.rbs +8 -1
  209. data/sig/telnyx/models/storage/edge_compute_pagination_meta.rbs +45 -0
  210. data/sig/telnyx/models/storage/sql_database.rbs +80 -0
  211. data/sig/telnyx/models/storage/sql_database_response_wrapper.rbs +20 -0
  212. data/sig/telnyx/models/storage/sqldb_create_params.rbs +25 -0
  213. data/sig/telnyx/models/storage/sqldb_delete_params.rbs +31 -0
  214. data/sig/telnyx/models/storage/sqldb_list_params.rbs +97 -0
  215. data/sig/telnyx/models/storage/sqldb_retrieve_params.rbs +22 -0
  216. data/sig/telnyx/models/storage/sqldbs/action_query_params.rbs +52 -0
  217. data/sig/telnyx/models/storage/sqldbs/action_query_response.rbs +124 -0
  218. data/sig/telnyx/models/transcript_completed_webhook_event.rbs +82 -0
  219. data/sig/telnyx/models/unsafe_unwrap_webhook_event.rbs +5 -0
  220. data/sig/telnyx/models/unwrap_webhook_event.rbs +5 -0
  221. data/sig/telnyx/models/web_search/research_citation.rbs +21 -0
  222. data/sig/telnyx/models/web_search/research_create_params.rbs +63 -0
  223. data/sig/telnyx/models/web_search/research_create_response.rbs +95 -0
  224. data/sig/telnyx/models/web_search/research_retrieve_params.rbs +25 -0
  225. data/sig/telnyx/models/web_search/research_retrieve_response.rbs +80 -0
  226. data/sig/telnyx/models/web_search_contents_params.rbs +59 -0
  227. data/sig/telnyx/models/web_search_contents_response.rbs +104 -0
  228. data/sig/telnyx/models/web_search_create_params.rbs +89 -0
  229. data/sig/telnyx/models/web_search_create_response.rbs +65 -0
  230. data/sig/telnyx/models/web_search_result.rbs +49 -0
  231. data/sig/telnyx/models.rbs +42 -0
  232. data/sig/telnyx/resources/calls/actions.rbs +2 -2
  233. data/sig/telnyx/resources/calls.rbs +1 -1
  234. data/sig/telnyx/resources/meeting_sessions/actions.rbs +28 -0
  235. data/sig/telnyx/resources/meeting_sessions/artifacts.rbs +26 -0
  236. data/sig/telnyx/resources/meeting_sessions.rbs +75 -0
  237. data/sig/telnyx/resources/phone_numbers/voicemail.rbs +2 -0
  238. data/sig/telnyx/resources/sim_cards/actions.rbs +12 -0
  239. data/sig/telnyx/resources/storage/sqldbs/actions.rbs +18 -0
  240. data/sig/telnyx/resources/storage/sqldbs.rbs +36 -0
  241. data/sig/telnyx/resources/storage.rbs +2 -0
  242. data/sig/telnyx/resources/web_search/research.rbs +22 -0
  243. data/sig/telnyx/resources/web_search.rbs +29 -0
  244. data/sig/telnyx/resources/webhooks.rbs +10 -0
  245. metadata +185 -2
@@ -0,0 +1,544 @@
1
+ # typed: strong
2
+
3
+ module Telnyx
4
+ module Models
5
+ class MeetingSession < Telnyx::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(Telnyx::MeetingSession, Telnyx::Internal::AnyHash)
9
+ end
10
+
11
+ # Unique identifier for the meeting session.
12
+ sig { returns(String) }
13
+ attr_accessor :id
14
+
15
+ # Identifier of the owning account.
16
+ sig { returns(String) }
17
+ attr_accessor :account_id
18
+
19
+ # Assistant configuration if an assistant is attached, otherwise null.
20
+ sig { returns(T.nilable(Telnyx::MeetingSession::Assistant)) }
21
+ attr_reader :assistant
22
+
23
+ sig do
24
+ params(
25
+ assistant: T.nilable(Telnyx::MeetingSession::Assistant::OrHash)
26
+ ).void
27
+ end
28
+ attr_writer :assistant
29
+
30
+ # Current state of the assistant, or null if no assistant is attached.
31
+ sig do
32
+ returns(T.nilable(Telnyx::MeetingSession::AssistantState::TaggedSymbol))
33
+ end
34
+ attr_accessor :assistant_state
35
+
36
+ # Timestamp of the last assistant state change, or null.
37
+ sig { returns(T.nilable(Time)) }
38
+ attr_accessor :assistant_state_changed_at
39
+
40
+ # Avatar configuration if an avatar is attached, otherwise null.
41
+ sig { returns(T.nilable(Telnyx::MeetingSession::Avatar)) }
42
+ attr_reader :avatar
43
+
44
+ sig do
45
+ params(avatar: T.nilable(Telnyx::MeetingSession::Avatar::OrHash)).void
46
+ end
47
+ attr_writer :avatar
48
+
49
+ # Current state of the avatar connection, or null if no avatar is attached.
50
+ sig do
51
+ returns(T.nilable(Telnyx::MeetingSession::AvatarState::TaggedSymbol))
52
+ end
53
+ attr_accessor :avatar_state
54
+
55
+ # Timestamp of the last avatar state change, or null.
56
+ sig { returns(T.nilable(Time)) }
57
+ attr_accessor :avatar_state_changed_at
58
+
59
+ # Display name of the bot in the meeting.
60
+ sig { returns(String) }
61
+ attr_accessor :bot_name
62
+
63
+ sig { returns(Telnyx::MeetingSession::Config) }
64
+ attr_reader :config
65
+
66
+ sig { params(config: Telnyx::MeetingSession::Config::OrHash).void }
67
+ attr_writer :config
68
+
69
+ # Timestamp when the session was created.
70
+ sig { returns(Time) }
71
+ attr_accessor :created_at
72
+
73
+ # Timestamp when the session ended, or null if ongoing.
74
+ sig { returns(T.nilable(Time)) }
75
+ attr_accessor :ended_at
76
+
77
+ # Human-readable failure reason if the session failed, or null.
78
+ sig { returns(T.nilable(String)) }
79
+ attr_accessor :failure_reason
80
+
81
+ # Scheduled join time, or null for immediate join.
82
+ sig { returns(T.nilable(Time)) }
83
+ attr_accessor :join_at
84
+
85
+ # Timestamp when the session first became `active`, or null if it never became
86
+ # active. This remains positive admission evidence after terminal transitions.
87
+ sig { returns(T.nilable(Time)) }
88
+ attr_accessor :joined_at
89
+
90
+ # The meeting URL the bot joins.
91
+ sig { returns(String) }
92
+ attr_accessor :meeting_url
93
+
94
+ # Arbitrary key-value metadata attached to the session.
95
+ sig { returns(T::Hash[Symbol, T.anything]) }
96
+ attr_accessor :metadata
97
+
98
+ # Detected meeting platform.
99
+ sig { returns(Telnyx::MeetingSession::Platform::TaggedSymbol) }
100
+ attr_accessor :platform
101
+
102
+ # Provider handling the meeting session.
103
+ sig { returns(String) }
104
+ attr_accessor :provider
105
+
106
+ # Whether the session is being recorded.
107
+ sig { returns(T::Boolean) }
108
+ attr_accessor :recording
109
+
110
+ # Lifecycle status. `waiting_for_admission` means the bot reached the meeting
111
+ # lobby and may require host approval. `active` means the bot entered the
112
+ # meeting/media path. `ended` alone does not prove attendance; use non-null
113
+ # `joined_at` as positive evidence that the session became active.
114
+ # `admission_denied` is reserved for an explicit provider denial, while
115
+ # cancellation or another termination can end a never-admitted session as `ended`.
116
+ sig { returns(Telnyx::MeetingSession::Status::TaggedSymbol) }
117
+ attr_accessor :status
118
+
119
+ # Additional human-readable detail about the status, or null.
120
+ sig { returns(T.nilable(String)) }
121
+ attr_accessor :status_detail
122
+
123
+ # Timestamp of the last update to the session.
124
+ sig { returns(Time) }
125
+ attr_accessor :updated_at
126
+
127
+ # Webhook endpoint for session lifecycle callbacks, or null if not configured.
128
+ sig { returns(T.nilable(String)) }
129
+ attr_accessor :webhook_url
130
+
131
+ # Represents a meeting session. All serializer fields are present and required;
132
+ # nullable fields use null when absent. No actor, provider-bot, idempotency,
133
+ # routing, key, or internal fields are exposed.
134
+ sig do
135
+ params(
136
+ id: String,
137
+ account_id: String,
138
+ assistant: T.nilable(Telnyx::MeetingSession::Assistant::OrHash),
139
+ assistant_state:
140
+ T.nilable(Telnyx::MeetingSession::AssistantState::OrSymbol),
141
+ assistant_state_changed_at: T.nilable(Time),
142
+ avatar: T.nilable(Telnyx::MeetingSession::Avatar::OrHash),
143
+ avatar_state:
144
+ T.nilable(Telnyx::MeetingSession::AvatarState::OrSymbol),
145
+ avatar_state_changed_at: T.nilable(Time),
146
+ bot_name: String,
147
+ config: Telnyx::MeetingSession::Config::OrHash,
148
+ created_at: Time,
149
+ ended_at: T.nilable(Time),
150
+ failure_reason: T.nilable(String),
151
+ join_at: T.nilable(Time),
152
+ joined_at: T.nilable(Time),
153
+ meeting_url: String,
154
+ metadata: T::Hash[Symbol, T.anything],
155
+ platform: Telnyx::MeetingSession::Platform::OrSymbol,
156
+ provider: String,
157
+ recording: T::Boolean,
158
+ status: Telnyx::MeetingSession::Status::OrSymbol,
159
+ status_detail: T.nilable(String),
160
+ updated_at: Time,
161
+ webhook_url: T.nilable(String)
162
+ ).returns(T.attached_class)
163
+ end
164
+ def self.new(
165
+ # Unique identifier for the meeting session.
166
+ id:,
167
+ # Identifier of the owning account.
168
+ account_id:,
169
+ # Assistant configuration if an assistant is attached, otherwise null.
170
+ assistant:,
171
+ # Current state of the assistant, or null if no assistant is attached.
172
+ assistant_state:,
173
+ # Timestamp of the last assistant state change, or null.
174
+ assistant_state_changed_at:,
175
+ # Avatar configuration if an avatar is attached, otherwise null.
176
+ avatar:,
177
+ # Current state of the avatar connection, or null if no avatar is attached.
178
+ avatar_state:,
179
+ # Timestamp of the last avatar state change, or null.
180
+ avatar_state_changed_at:,
181
+ # Display name of the bot in the meeting.
182
+ bot_name:,
183
+ config:,
184
+ # Timestamp when the session was created.
185
+ created_at:,
186
+ # Timestamp when the session ended, or null if ongoing.
187
+ ended_at:,
188
+ # Human-readable failure reason if the session failed, or null.
189
+ failure_reason:,
190
+ # Scheduled join time, or null for immediate join.
191
+ join_at:,
192
+ # Timestamp when the session first became `active`, or null if it never became
193
+ # active. This remains positive admission evidence after terminal transitions.
194
+ joined_at:,
195
+ # The meeting URL the bot joins.
196
+ meeting_url:,
197
+ # Arbitrary key-value metadata attached to the session.
198
+ metadata:,
199
+ # Detected meeting platform.
200
+ platform:,
201
+ # Provider handling the meeting session.
202
+ provider:,
203
+ # Whether the session is being recorded.
204
+ recording:,
205
+ # Lifecycle status. `waiting_for_admission` means the bot reached the meeting
206
+ # lobby and may require host approval. `active` means the bot entered the
207
+ # meeting/media path. `ended` alone does not prove attendance; use non-null
208
+ # `joined_at` as positive evidence that the session became active.
209
+ # `admission_denied` is reserved for an explicit provider denial, while
210
+ # cancellation or another termination can end a never-admitted session as `ended`.
211
+ status:,
212
+ # Additional human-readable detail about the status, or null.
213
+ status_detail:,
214
+ # Timestamp of the last update to the session.
215
+ updated_at:,
216
+ # Webhook endpoint for session lifecycle callbacks, or null if not configured.
217
+ webhook_url:
218
+ )
219
+ end
220
+
221
+ sig do
222
+ override.returns(
223
+ {
224
+ id: String,
225
+ account_id: String,
226
+ assistant: T.nilable(Telnyx::MeetingSession::Assistant),
227
+ assistant_state:
228
+ T.nilable(Telnyx::MeetingSession::AssistantState::TaggedSymbol),
229
+ assistant_state_changed_at: T.nilable(Time),
230
+ avatar: T.nilable(Telnyx::MeetingSession::Avatar),
231
+ avatar_state:
232
+ T.nilable(Telnyx::MeetingSession::AvatarState::TaggedSymbol),
233
+ avatar_state_changed_at: T.nilable(Time),
234
+ bot_name: String,
235
+ config: Telnyx::MeetingSession::Config,
236
+ created_at: Time,
237
+ ended_at: T.nilable(Time),
238
+ failure_reason: T.nilable(String),
239
+ join_at: T.nilable(Time),
240
+ joined_at: T.nilable(Time),
241
+ meeting_url: String,
242
+ metadata: T::Hash[Symbol, T.anything],
243
+ platform: Telnyx::MeetingSession::Platform::TaggedSymbol,
244
+ provider: String,
245
+ recording: T::Boolean,
246
+ status: Telnyx::MeetingSession::Status::TaggedSymbol,
247
+ status_detail: T.nilable(String),
248
+ updated_at: Time,
249
+ webhook_url: T.nilable(String)
250
+ }
251
+ )
252
+ end
253
+ def to_hash
254
+ end
255
+
256
+ class Assistant < Telnyx::Internal::Type::BaseModel
257
+ OrHash =
258
+ T.type_alias do
259
+ T.any(Telnyx::MeetingSession::Assistant, Telnyx::Internal::AnyHash)
260
+ end
261
+
262
+ # Identifier of the assistant.
263
+ sig { returns(String) }
264
+ attr_accessor :id
265
+
266
+ # Audio gating strategy for the assistant call leg.
267
+ sig do
268
+ returns(Telnyx::MeetingSession::Assistant::AudioGate::TaggedSymbol)
269
+ end
270
+ attr_accessor :audio_gate
271
+
272
+ # Assistant configuration if an assistant is attached, otherwise null.
273
+ sig do
274
+ params(
275
+ id: String,
276
+ audio_gate: Telnyx::MeetingSession::Assistant::AudioGate::OrSymbol
277
+ ).returns(T.attached_class)
278
+ end
279
+ def self.new(
280
+ # Identifier of the assistant.
281
+ id:,
282
+ # Audio gating strategy for the assistant call leg.
283
+ audio_gate:
284
+ )
285
+ end
286
+
287
+ sig do
288
+ override.returns(
289
+ {
290
+ id: String,
291
+ audio_gate:
292
+ Telnyx::MeetingSession::Assistant::AudioGate::TaggedSymbol
293
+ }
294
+ )
295
+ end
296
+ def to_hash
297
+ end
298
+
299
+ # Audio gating strategy for the assistant call leg.
300
+ module AudioGate
301
+ extend Telnyx::Internal::Type::Enum
302
+
303
+ TaggedSymbol =
304
+ T.type_alias do
305
+ T.all(Symbol, Telnyx::MeetingSession::Assistant::AudioGate)
306
+ end
307
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
308
+
309
+ NONE =
310
+ T.let(
311
+ :none,
312
+ Telnyx::MeetingSession::Assistant::AudioGate::TaggedSymbol
313
+ )
314
+ HALF_DUPLEX =
315
+ T.let(
316
+ :half_duplex,
317
+ Telnyx::MeetingSession::Assistant::AudioGate::TaggedSymbol
318
+ )
319
+
320
+ sig do
321
+ override.returns(
322
+ T::Array[
323
+ Telnyx::MeetingSession::Assistant::AudioGate::TaggedSymbol
324
+ ]
325
+ )
326
+ end
327
+ def self.values
328
+ end
329
+ end
330
+ end
331
+
332
+ # Current state of the assistant, or null if no assistant is attached.
333
+ module AssistantState
334
+ extend Telnyx::Internal::Type::Enum
335
+
336
+ TaggedSymbol =
337
+ T.type_alias { T.all(Symbol, Telnyx::MeetingSession::AssistantState) }
338
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
339
+
340
+ STARTING =
341
+ T.let(:starting, Telnyx::MeetingSession::AssistantState::TaggedSymbol)
342
+ CONNECTED =
343
+ T.let(
344
+ :connected,
345
+ Telnyx::MeetingSession::AssistantState::TaggedSymbol
346
+ )
347
+ FAILED =
348
+ T.let(:failed, Telnyx::MeetingSession::AssistantState::TaggedSymbol)
349
+ ENDED =
350
+ T.let(:ended, Telnyx::MeetingSession::AssistantState::TaggedSymbol)
351
+
352
+ sig do
353
+ override.returns(
354
+ T::Array[Telnyx::MeetingSession::AssistantState::TaggedSymbol]
355
+ )
356
+ end
357
+ def self.values
358
+ end
359
+ end
360
+
361
+ class Avatar < Telnyx::Internal::Type::BaseModel
362
+ OrHash =
363
+ T.type_alias do
364
+ T.any(Telnyx::MeetingSession::Avatar, Telnyx::Internal::AnyHash)
365
+ end
366
+
367
+ # Identifier of the avatar.
368
+ sig { returns(String) }
369
+ attr_accessor :avatar_id
370
+
371
+ # Avatar provider identifier.
372
+ sig { returns(Symbol) }
373
+ attr_accessor :provider
374
+
375
+ # Avatar configuration if an avatar is attached, otherwise null.
376
+ sig do
377
+ params(avatar_id: String, provider: Symbol).returns(T.attached_class)
378
+ end
379
+ def self.new(
380
+ # Identifier of the avatar.
381
+ avatar_id:,
382
+ # Avatar provider identifier.
383
+ provider: :anam
384
+ )
385
+ end
386
+
387
+ sig { override.returns({ avatar_id: String, provider: Symbol }) }
388
+ def to_hash
389
+ end
390
+ end
391
+
392
+ # Current state of the avatar connection, or null if no avatar is attached.
393
+ module AvatarState
394
+ extend Telnyx::Internal::Type::Enum
395
+
396
+ TaggedSymbol =
397
+ T.type_alias { T.all(Symbol, Telnyx::MeetingSession::AvatarState) }
398
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
399
+
400
+ STARTING =
401
+ T.let(:starting, Telnyx::MeetingSession::AvatarState::TaggedSymbol)
402
+ CONNECTED =
403
+ T.let(:connected, Telnyx::MeetingSession::AvatarState::TaggedSymbol)
404
+ DEGRADED =
405
+ T.let(:degraded, Telnyx::MeetingSession::AvatarState::TaggedSymbol)
406
+ DISCONNECTED =
407
+ T.let(
408
+ :disconnected,
409
+ Telnyx::MeetingSession::AvatarState::TaggedSymbol
410
+ )
411
+
412
+ sig do
413
+ override.returns(
414
+ T::Array[Telnyx::MeetingSession::AvatarState::TaggedSymbol]
415
+ )
416
+ end
417
+ def self.values
418
+ end
419
+ end
420
+
421
+ class Config < Telnyx::Internal::Type::BaseModel
422
+ OrHash =
423
+ T.type_alias do
424
+ T.any(Telnyx::MeetingSession::Config, Telnyx::Internal::AnyHash)
425
+ end
426
+
427
+ # When enabled, a human participant `speech_on` event interrupts and stops the
428
+ # current bot audio; it does not bypass admission or initiate speech. Assistant
429
+ # sessions reject `barge_in: true`.
430
+ sig { returns(T::Boolean) }
431
+ attr_accessor :barge_in
432
+
433
+ # Text spoken on meeting entry, or null if not set.
434
+ sig { returns(T.nilable(String)) }
435
+ attr_accessor :speak_on_enter
436
+
437
+ # Whether a summary artifact is generated on session end.
438
+ sig { returns(T::Boolean) }
439
+ attr_accessor :summarize_on_end
440
+
441
+ # Configured voice identifier, or null if not set.
442
+ sig { returns(T.nilable(String)) }
443
+ attr_accessor :voice
444
+
445
+ sig do
446
+ params(
447
+ barge_in: T::Boolean,
448
+ speak_on_enter: T.nilable(String),
449
+ summarize_on_end: T::Boolean,
450
+ voice: T.nilable(String)
451
+ ).returns(T.attached_class)
452
+ end
453
+ def self.new(
454
+ # When enabled, a human participant `speech_on` event interrupts and stops the
455
+ # current bot audio; it does not bypass admission or initiate speech. Assistant
456
+ # sessions reject `barge_in: true`.
457
+ barge_in:,
458
+ # Text spoken on meeting entry, or null if not set.
459
+ speak_on_enter:,
460
+ # Whether a summary artifact is generated on session end.
461
+ summarize_on_end:,
462
+ # Configured voice identifier, or null if not set.
463
+ voice:
464
+ )
465
+ end
466
+
467
+ sig do
468
+ override.returns(
469
+ {
470
+ barge_in: T::Boolean,
471
+ speak_on_enter: T.nilable(String),
472
+ summarize_on_end: T::Boolean,
473
+ voice: T.nilable(String)
474
+ }
475
+ )
476
+ end
477
+ def to_hash
478
+ end
479
+ end
480
+
481
+ # Detected meeting platform.
482
+ module Platform
483
+ extend Telnyx::Internal::Type::Enum
484
+
485
+ TaggedSymbol =
486
+ T.type_alias { T.all(Symbol, Telnyx::MeetingSession::Platform) }
487
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
488
+
489
+ ZOOM = T.let(:zoom, Telnyx::MeetingSession::Platform::TaggedSymbol)
490
+ GOOGLE_MEET =
491
+ T.let(:google_meet, Telnyx::MeetingSession::Platform::TaggedSymbol)
492
+ TEAMS = T.let(:teams, Telnyx::MeetingSession::Platform::TaggedSymbol)
493
+ WEBEX = T.let(:webex, Telnyx::MeetingSession::Platform::TaggedSymbol)
494
+ UNKNOWN =
495
+ T.let(:unknown, Telnyx::MeetingSession::Platform::TaggedSymbol)
496
+
497
+ sig do
498
+ override.returns(
499
+ T::Array[Telnyx::MeetingSession::Platform::TaggedSymbol]
500
+ )
501
+ end
502
+ def self.values
503
+ end
504
+ end
505
+
506
+ # Lifecycle status. `waiting_for_admission` means the bot reached the meeting
507
+ # lobby and may require host approval. `active` means the bot entered the
508
+ # meeting/media path. `ended` alone does not prove attendance; use non-null
509
+ # `joined_at` as positive evidence that the session became active.
510
+ # `admission_denied` is reserved for an explicit provider denial, while
511
+ # cancellation or another termination can end a never-admitted session as `ended`.
512
+ module Status
513
+ extend Telnyx::Internal::Type::Enum
514
+
515
+ TaggedSymbol =
516
+ T.type_alias { T.all(Symbol, Telnyx::MeetingSession::Status) }
517
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
518
+
519
+ SCHEDULED =
520
+ T.let(:scheduled, Telnyx::MeetingSession::Status::TaggedSymbol)
521
+ JOINING = T.let(:joining, Telnyx::MeetingSession::Status::TaggedSymbol)
522
+ WAITING_FOR_ADMISSION =
523
+ T.let(
524
+ :waiting_for_admission,
525
+ Telnyx::MeetingSession::Status::TaggedSymbol
526
+ )
527
+ ACTIVE = T.let(:active, Telnyx::MeetingSession::Status::TaggedSymbol)
528
+ LEAVING = T.let(:leaving, Telnyx::MeetingSession::Status::TaggedSymbol)
529
+ ENDED = T.let(:ended, Telnyx::MeetingSession::Status::TaggedSymbol)
530
+ FAILED = T.let(:failed, Telnyx::MeetingSession::Status::TaggedSymbol)
531
+ ADMISSION_DENIED =
532
+ T.let(:admission_denied, Telnyx::MeetingSession::Status::TaggedSymbol)
533
+
534
+ sig do
535
+ override.returns(
536
+ T::Array[Telnyx::MeetingSession::Status::TaggedSymbol]
537
+ )
538
+ end
539
+ def self.values
540
+ end
541
+ end
542
+ end
543
+ end
544
+ end