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,380 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Telnyx
4
+ module Models
5
+ class MeetingSession < Telnyx::Internal::Type::BaseModel
6
+ # @!attribute id
7
+ # Unique identifier for the meeting session.
8
+ #
9
+ # @return [String]
10
+ required :id, String
11
+
12
+ # @!attribute account_id
13
+ # Identifier of the owning account.
14
+ #
15
+ # @return [String]
16
+ required :account_id, String
17
+
18
+ # @!attribute assistant
19
+ # Assistant configuration if an assistant is attached, otherwise null.
20
+ #
21
+ # @return [Telnyx::Models::MeetingSession::Assistant, nil]
22
+ required :assistant, -> { Telnyx::MeetingSession::Assistant }, nil?: true
23
+
24
+ # @!attribute assistant_state
25
+ # Current state of the assistant, or null if no assistant is attached.
26
+ #
27
+ # @return [Symbol, Telnyx::Models::MeetingSession::AssistantState, nil]
28
+ required :assistant_state, enum: -> { Telnyx::MeetingSession::AssistantState }, nil?: true
29
+
30
+ # @!attribute assistant_state_changed_at
31
+ # Timestamp of the last assistant state change, or null.
32
+ #
33
+ # @return [Time, nil]
34
+ required :assistant_state_changed_at, Time, nil?: true
35
+
36
+ # @!attribute avatar
37
+ # Avatar configuration if an avatar is attached, otherwise null.
38
+ #
39
+ # @return [Telnyx::Models::MeetingSession::Avatar, nil]
40
+ required :avatar, -> { Telnyx::MeetingSession::Avatar }, nil?: true
41
+
42
+ # @!attribute avatar_state
43
+ # Current state of the avatar connection, or null if no avatar is attached.
44
+ #
45
+ # @return [Symbol, Telnyx::Models::MeetingSession::AvatarState, nil]
46
+ required :avatar_state, enum: -> { Telnyx::MeetingSession::AvatarState }, nil?: true
47
+
48
+ # @!attribute avatar_state_changed_at
49
+ # Timestamp of the last avatar state change, or null.
50
+ #
51
+ # @return [Time, nil]
52
+ required :avatar_state_changed_at, Time, nil?: true
53
+
54
+ # @!attribute bot_name
55
+ # Display name of the bot in the meeting.
56
+ #
57
+ # @return [String]
58
+ required :bot_name, String
59
+
60
+ # @!attribute config
61
+ #
62
+ # @return [Telnyx::Models::MeetingSession::Config]
63
+ required :config, -> { Telnyx::MeetingSession::Config }
64
+
65
+ # @!attribute created_at
66
+ # Timestamp when the session was created.
67
+ #
68
+ # @return [Time]
69
+ required :created_at, Time
70
+
71
+ # @!attribute ended_at
72
+ # Timestamp when the session ended, or null if ongoing.
73
+ #
74
+ # @return [Time, nil]
75
+ required :ended_at, Time, nil?: true
76
+
77
+ # @!attribute failure_reason
78
+ # Human-readable failure reason if the session failed, or null.
79
+ #
80
+ # @return [String, nil]
81
+ required :failure_reason, String, nil?: true
82
+
83
+ # @!attribute join_at
84
+ # Scheduled join time, or null for immediate join.
85
+ #
86
+ # @return [Time, nil]
87
+ required :join_at, Time, nil?: true
88
+
89
+ # @!attribute joined_at
90
+ # Timestamp when the session first became `active`, or null if it never became
91
+ # active. This remains positive admission evidence after terminal transitions.
92
+ #
93
+ # @return [Time, nil]
94
+ required :joined_at, Time, nil?: true
95
+
96
+ # @!attribute meeting_url
97
+ # The meeting URL the bot joins.
98
+ #
99
+ # @return [String]
100
+ required :meeting_url, String
101
+
102
+ # @!attribute metadata
103
+ # Arbitrary key-value metadata attached to the session.
104
+ #
105
+ # @return [Hash{Symbol=>Object}]
106
+ required :metadata, Telnyx::Internal::Type::HashOf[Telnyx::Internal::Type::Unknown]
107
+
108
+ # @!attribute platform
109
+ # Detected meeting platform.
110
+ #
111
+ # @return [Symbol, Telnyx::Models::MeetingSession::Platform]
112
+ required :platform, enum: -> { Telnyx::MeetingSession::Platform }
113
+
114
+ # @!attribute provider
115
+ # Provider handling the meeting session.
116
+ #
117
+ # @return [String]
118
+ required :provider, String
119
+
120
+ # @!attribute recording
121
+ # Whether the session is being recorded.
122
+ #
123
+ # @return [Boolean]
124
+ required :recording, Telnyx::Internal::Type::Boolean
125
+
126
+ # @!attribute status
127
+ # Lifecycle status. `waiting_for_admission` means the bot reached the meeting
128
+ # lobby and may require host approval. `active` means the bot entered the
129
+ # meeting/media path. `ended` alone does not prove attendance; use non-null
130
+ # `joined_at` as positive evidence that the session became active.
131
+ # `admission_denied` is reserved for an explicit provider denial, while
132
+ # cancellation or another termination can end a never-admitted session as `ended`.
133
+ #
134
+ # @return [Symbol, Telnyx::Models::MeetingSession::Status]
135
+ required :status, enum: -> { Telnyx::MeetingSession::Status }
136
+
137
+ # @!attribute status_detail
138
+ # Additional human-readable detail about the status, or null.
139
+ #
140
+ # @return [String, nil]
141
+ required :status_detail, String, nil?: true
142
+
143
+ # @!attribute updated_at
144
+ # Timestamp of the last update to the session.
145
+ #
146
+ # @return [Time]
147
+ required :updated_at, Time
148
+
149
+ # @!attribute webhook_url
150
+ # Webhook endpoint for session lifecycle callbacks, or null if not configured.
151
+ #
152
+ # @return [String, nil]
153
+ required :webhook_url, String, nil?: true
154
+
155
+ # @!method initialize(id:, account_id:, assistant:, assistant_state:, assistant_state_changed_at:, avatar:, avatar_state:, avatar_state_changed_at:, bot_name:, config:, created_at:, ended_at:, failure_reason:, join_at:, joined_at:, meeting_url:, metadata:, platform:, provider:, recording:, status:, status_detail:, updated_at:, webhook_url:)
156
+ # Some parameter documentations has been truncated, see
157
+ # {Telnyx::Models::MeetingSession} for more details.
158
+ #
159
+ # Represents a meeting session. All serializer fields are present and required;
160
+ # nullable fields use null when absent. No actor, provider-bot, idempotency,
161
+ # routing, key, or internal fields are exposed.
162
+ #
163
+ # @param id [String] Unique identifier for the meeting session.
164
+ #
165
+ # @param account_id [String] Identifier of the owning account.
166
+ #
167
+ # @param assistant [Telnyx::Models::MeetingSession::Assistant, nil] Assistant configuration if an assistant is attached, otherwise null.
168
+ #
169
+ # @param assistant_state [Symbol, Telnyx::Models::MeetingSession::AssistantState, nil] Current state of the assistant, or null if no assistant is attached.
170
+ #
171
+ # @param assistant_state_changed_at [Time, nil] Timestamp of the last assistant state change, or null.
172
+ #
173
+ # @param avatar [Telnyx::Models::MeetingSession::Avatar, nil] Avatar configuration if an avatar is attached, otherwise null.
174
+ #
175
+ # @param avatar_state [Symbol, Telnyx::Models::MeetingSession::AvatarState, nil] Current state of the avatar connection, or null if no avatar is attached.
176
+ #
177
+ # @param avatar_state_changed_at [Time, nil] Timestamp of the last avatar state change, or null.
178
+ #
179
+ # @param bot_name [String] Display name of the bot in the meeting.
180
+ #
181
+ # @param config [Telnyx::Models::MeetingSession::Config]
182
+ #
183
+ # @param created_at [Time] Timestamp when the session was created.
184
+ #
185
+ # @param ended_at [Time, nil] Timestamp when the session ended, or null if ongoing.
186
+ #
187
+ # @param failure_reason [String, nil] Human-readable failure reason if the session failed, or null.
188
+ #
189
+ # @param join_at [Time, nil] Scheduled join time, or null for immediate join.
190
+ #
191
+ # @param joined_at [Time, nil] Timestamp when the session first became `active`, or null if it never became act
192
+ #
193
+ # @param meeting_url [String] The meeting URL the bot joins.
194
+ #
195
+ # @param metadata [Hash{Symbol=>Object}] Arbitrary key-value metadata attached to the session.
196
+ #
197
+ # @param platform [Symbol, Telnyx::Models::MeetingSession::Platform] Detected meeting platform.
198
+ #
199
+ # @param provider [String] Provider handling the meeting session.
200
+ #
201
+ # @param recording [Boolean] Whether the session is being recorded.
202
+ #
203
+ # @param status [Symbol, Telnyx::Models::MeetingSession::Status] Lifecycle status. `waiting_for_admission` means the bot reached the meeting lobb
204
+ #
205
+ # @param status_detail [String, nil] Additional human-readable detail about the status, or null.
206
+ #
207
+ # @param updated_at [Time] Timestamp of the last update to the session.
208
+ #
209
+ # @param webhook_url [String, nil] Webhook endpoint for session lifecycle callbacks, or null if not configured.
210
+
211
+ # @see Telnyx::Models::MeetingSession#assistant
212
+ class Assistant < Telnyx::Internal::Type::BaseModel
213
+ # @!attribute id
214
+ # Identifier of the assistant.
215
+ #
216
+ # @return [String]
217
+ required :id, String
218
+
219
+ # @!attribute audio_gate
220
+ # Audio gating strategy for the assistant call leg.
221
+ #
222
+ # @return [Symbol, Telnyx::Models::MeetingSession::Assistant::AudioGate]
223
+ required :audio_gate, enum: -> { Telnyx::MeetingSession::Assistant::AudioGate }
224
+
225
+ # @!method initialize(id:, audio_gate:)
226
+ # Assistant configuration if an assistant is attached, otherwise null.
227
+ #
228
+ # @param id [String] Identifier of the assistant.
229
+ #
230
+ # @param audio_gate [Symbol, Telnyx::Models::MeetingSession::Assistant::AudioGate] Audio gating strategy for the assistant call leg.
231
+
232
+ # Audio gating strategy for the assistant call leg.
233
+ #
234
+ # @see Telnyx::Models::MeetingSession::Assistant#audio_gate
235
+ module AudioGate
236
+ extend Telnyx::Internal::Type::Enum
237
+
238
+ NONE = :none
239
+ HALF_DUPLEX = :half_duplex
240
+
241
+ # @!method self.values
242
+ # @return [Array<Symbol>]
243
+ end
244
+ end
245
+
246
+ # Current state of the assistant, or null if no assistant is attached.
247
+ #
248
+ # @see Telnyx::Models::MeetingSession#assistant_state
249
+ module AssistantState
250
+ extend Telnyx::Internal::Type::Enum
251
+
252
+ STARTING = :starting
253
+ CONNECTED = :connected
254
+ FAILED = :failed
255
+ ENDED = :ended
256
+
257
+ # @!method self.values
258
+ # @return [Array<Symbol>]
259
+ end
260
+
261
+ # @see Telnyx::Models::MeetingSession#avatar
262
+ class Avatar < Telnyx::Internal::Type::BaseModel
263
+ # @!attribute avatar_id
264
+ # Identifier of the avatar.
265
+ #
266
+ # @return [String]
267
+ required :avatar_id, String
268
+
269
+ # @!attribute provider
270
+ # Avatar provider identifier.
271
+ #
272
+ # @return [Symbol, :anam]
273
+ required :provider, const: :anam
274
+
275
+ # @!method initialize(avatar_id:, provider: :anam)
276
+ # Avatar configuration if an avatar is attached, otherwise null.
277
+ #
278
+ # @param avatar_id [String] Identifier of the avatar.
279
+ #
280
+ # @param provider [Symbol, :anam] Avatar provider identifier.
281
+ end
282
+
283
+ # Current state of the avatar connection, or null if no avatar is attached.
284
+ #
285
+ # @see Telnyx::Models::MeetingSession#avatar_state
286
+ module AvatarState
287
+ extend Telnyx::Internal::Type::Enum
288
+
289
+ STARTING = :starting
290
+ CONNECTED = :connected
291
+ DEGRADED = :degraded
292
+ DISCONNECTED = :disconnected
293
+
294
+ # @!method self.values
295
+ # @return [Array<Symbol>]
296
+ end
297
+
298
+ # @see Telnyx::Models::MeetingSession#config
299
+ class Config < Telnyx::Internal::Type::BaseModel
300
+ # @!attribute barge_in
301
+ # When enabled, a human participant `speech_on` event interrupts and stops the
302
+ # current bot audio; it does not bypass admission or initiate speech. Assistant
303
+ # sessions reject `barge_in: true`.
304
+ #
305
+ # @return [Boolean]
306
+ required :barge_in, Telnyx::Internal::Type::Boolean
307
+
308
+ # @!attribute speak_on_enter
309
+ # Text spoken on meeting entry, or null if not set.
310
+ #
311
+ # @return [String, nil]
312
+ required :speak_on_enter, String, nil?: true
313
+
314
+ # @!attribute summarize_on_end
315
+ # Whether a summary artifact is generated on session end.
316
+ #
317
+ # @return [Boolean]
318
+ required :summarize_on_end, Telnyx::Internal::Type::Boolean
319
+
320
+ # @!attribute voice
321
+ # Configured voice identifier, or null if not set.
322
+ #
323
+ # @return [String, nil]
324
+ required :voice, String, nil?: true
325
+
326
+ # @!method initialize(barge_in:, speak_on_enter:, summarize_on_end:, voice:)
327
+ # Some parameter documentations has been truncated, see
328
+ # {Telnyx::Models::MeetingSession::Config} for more details.
329
+ #
330
+ # @param barge_in [Boolean] When enabled, a human participant `speech_on` event interrupts and stops the cur
331
+ #
332
+ # @param speak_on_enter [String, nil] Text spoken on meeting entry, or null if not set.
333
+ #
334
+ # @param summarize_on_end [Boolean] Whether a summary artifact is generated on session end.
335
+ #
336
+ # @param voice [String, nil] Configured voice identifier, or null if not set.
337
+ end
338
+
339
+ # Detected meeting platform.
340
+ #
341
+ # @see Telnyx::Models::MeetingSession#platform
342
+ module Platform
343
+ extend Telnyx::Internal::Type::Enum
344
+
345
+ ZOOM = :zoom
346
+ GOOGLE_MEET = :google_meet
347
+ TEAMS = :teams
348
+ WEBEX = :webex
349
+ UNKNOWN = :unknown
350
+
351
+ # @!method self.values
352
+ # @return [Array<Symbol>]
353
+ end
354
+
355
+ # Lifecycle status. `waiting_for_admission` means the bot reached the meeting
356
+ # lobby and may require host approval. `active` means the bot entered the
357
+ # meeting/media path. `ended` alone does not prove attendance; use non-null
358
+ # `joined_at` as positive evidence that the session became active.
359
+ # `admission_denied` is reserved for an explicit provider denial, while
360
+ # cancellation or another termination can end a never-admitted session as `ended`.
361
+ #
362
+ # @see Telnyx::Models::MeetingSession#status
363
+ module Status
364
+ extend Telnyx::Internal::Type::Enum
365
+
366
+ SCHEDULED = :scheduled
367
+ JOINING = :joining
368
+ WAITING_FOR_ADMISSION = :waiting_for_admission
369
+ ACTIVE = :active
370
+ LEAVING = :leaving
371
+ ENDED = :ended
372
+ FAILED = :failed
373
+ ADMISSION_DENIED = :admission_denied
374
+
375
+ # @!method self.values
376
+ # @return [Array<Symbol>]
377
+ end
378
+ end
379
+ end
380
+ end
@@ -0,0 +1,309 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Telnyx
4
+ module Models
5
+ # @see Telnyx::Resources::MeetingSessions#create
6
+ class MeetingSessionCreateParams < Telnyx::Internal::Type::BaseModel
7
+ extend Telnyx::Internal::Type::RequestParameters::Converter
8
+ include Telnyx::Internal::Type::RequestParameters
9
+
10
+ # @!attribute meeting_url
11
+ # The meeting URL the bot should join.
12
+ #
13
+ # @return [String]
14
+ required :meeting_url, String
15
+
16
+ # @!attribute assistant
17
+ # Request options for attaching a voice assistant to the session. Routing fields
18
+ # (`call_control_connection_id`, `from`, and `loopback_sip_uri`) are used only to
19
+ # establish the assistant call leg and are omitted from response objects.
20
+ # `audio_gate` is returned with `id` in the assistant response object.
21
+ #
22
+ # @return [Telnyx::Models::MeetingSessionCreateParams::Assistant, nil]
23
+ optional :assistant, -> { Telnyx::MeetingSessionCreateParams::Assistant }
24
+
25
+ # @!attribute avatar
26
+ # Request options for attaching a bring-your-own-key avatar to the session.
27
+ #
28
+ # @return [Telnyx::Models::MeetingSessionCreateParams::Avatar, nil]
29
+ optional :avatar, -> { Telnyx::MeetingSessionCreateParams::Avatar }
30
+
31
+ # @!attribute barge_in
32
+ # When enabled, a human participant `speech_on` event interrupts and stops the
33
+ # current bot audio; it does not bypass admission or initiate speech. Assistant
34
+ # sessions reject `barge_in: true`.
35
+ #
36
+ # @return [Boolean, nil]
37
+ optional :barge_in, Telnyx::Internal::Type::Boolean
38
+
39
+ # @!attribute bot_name
40
+ # Display name for the bot in the meeting. Defaults to "Meeting Bot".
41
+ #
42
+ # @return [String, nil]
43
+ optional :bot_name, String
44
+
45
+ # @!attribute camera_image
46
+ # Write-only static camera-tile image for this session, not a native account or
47
+ # participant profile photo. Supply exactly one JPEG source. When effective, the
48
+ # image is used as the bot's static camera/video output; presentation varies by
49
+ # meeting platform and recording configuration and is not guaranteed in
50
+ # recordings. An effective Avatar or Assistant webpage output takes precedence, so
51
+ # this input is ignored and a URL source is not fetched.
52
+ #
53
+ # @return [Telnyx::Models::MeetingSessionCreateParams::CameraImage::MeetingSessionCameraImageBase64Source, Telnyx::Models::MeetingSessionCreateParams::CameraImage::MeetingSessionCameraImageURLSource, nil]
54
+ optional :camera_image, union: -> { Telnyx::MeetingSessionCreateParams::CameraImage }
55
+
56
+ # @!attribute idempotency_key
57
+ # Client-supplied idempotency key to safely retry creation requests without
58
+ # duplicating sessions. Lookup is scoped to the authenticated account and compares
59
+ # the key only; the request payload is not fingerprinted or compared.
60
+ #
61
+ # @return [String, nil]
62
+ optional :idempotency_key, String
63
+
64
+ # @!attribute join_at
65
+ # ISO-8601 timestamp in the future at which the bot should join. If omitted, the
66
+ # bot joins immediately.
67
+ #
68
+ # @return [Time, nil]
69
+ optional :join_at, Time
70
+
71
+ # @!attribute metadata
72
+ # Arbitrary key-value metadata attached to the session. The serialized JSON
73
+ # representation must not exceed 16384 characters at runtime.
74
+ #
75
+ # @return [Hash{Symbol=>Object}, nil]
76
+ optional :metadata, Telnyx::Internal::Type::HashOf[Telnyx::Internal::Type::Unknown]
77
+
78
+ # @!attribute speak_on_enter
79
+ # Text the bot speaks when it enters the meeting.
80
+ #
81
+ # @return [String, nil]
82
+ optional :speak_on_enter, String
83
+
84
+ # @!attribute summarize_on_end
85
+ # If true, generate a summary artifact when the session ends.
86
+ #
87
+ # @return [Boolean, nil]
88
+ optional :summarize_on_end, Telnyx::Internal::Type::Boolean
89
+
90
+ # @!attribute voice
91
+ # Session-default voice identifier used for `speak_on_enter` and ordinary speak
92
+ # actions. A voice supplied on an individual speak action overrides this default
93
+ # for that utterance.
94
+ #
95
+ # @return [String, nil]
96
+ optional :voice, String
97
+
98
+ # @!attribute webhook_url
99
+ # HTTPS endpoint to receive session lifecycle callbacks. Static validation
100
+ # requires HTTPS, rejects embedded credentials and blocked hosts, and enforces
101
+ # egress policy. Validation makes no network request to the endpoint.
102
+ #
103
+ # @return [String, nil]
104
+ optional :webhook_url, String
105
+
106
+ # @!method initialize(meeting_url:, assistant: nil, avatar: nil, barge_in: nil, bot_name: nil, camera_image: nil, idempotency_key: nil, join_at: nil, metadata: nil, speak_on_enter: nil, summarize_on_end: nil, voice: nil, webhook_url: nil, request_options: {})
107
+ # Some parameter documentations has been truncated, see
108
+ # {Telnyx::Models::MeetingSessionCreateParams} for more details.
109
+ #
110
+ # @param meeting_url [String] The meeting URL the bot should join.
111
+ #
112
+ # @param assistant [Telnyx::Models::MeetingSessionCreateParams::Assistant] Request options for attaching a voice assistant to the session. Routing fields (
113
+ #
114
+ # @param avatar [Telnyx::Models::MeetingSessionCreateParams::Avatar] Request options for attaching a bring-your-own-key avatar to the session.
115
+ #
116
+ # @param barge_in [Boolean] When enabled, a human participant `speech_on` event interrupts and stops the cur
117
+ #
118
+ # @param bot_name [String] Display name for the bot in the meeting. Defaults to "Meeting Bot".
119
+ #
120
+ # @param camera_image [Telnyx::Models::MeetingSessionCreateParams::CameraImage::MeetingSessionCameraImageBase64Source, Telnyx::Models::MeetingSessionCreateParams::CameraImage::MeetingSessionCameraImageURLSource] Write-only static camera-tile image for this session, not a native account or pa
121
+ #
122
+ # @param idempotency_key [String] Client-supplied idempotency key to safely retry creation requests without duplic
123
+ #
124
+ # @param join_at [Time] ISO-8601 timestamp in the future at which the bot should join. If omitted, the b
125
+ #
126
+ # @param metadata [Hash{Symbol=>Object}] Arbitrary key-value metadata attached to the session. The serialized JSON repres
127
+ #
128
+ # @param speak_on_enter [String] Text the bot speaks when it enters the meeting.
129
+ #
130
+ # @param summarize_on_end [Boolean] If true, generate a summary artifact when the session ends.
131
+ #
132
+ # @param voice [String] Session-default voice identifier used for `speak_on_enter` and ordinary speak ac
133
+ #
134
+ # @param webhook_url [String] HTTPS endpoint to receive session lifecycle callbacks. Static validation require
135
+ #
136
+ # @param request_options [Telnyx::RequestOptions, Hash{Symbol=>Object}]
137
+
138
+ class Assistant < Telnyx::Internal::Type::BaseModel
139
+ # @!attribute id
140
+ # Identifier of the assistant to attach.
141
+ #
142
+ # @return [String]
143
+ required :id, String
144
+
145
+ # @!attribute call_control_connection_id
146
+ # Call control connection used to bridge the assistant into the meeting audio.
147
+ #
148
+ # @return [String]
149
+ required :call_control_connection_id, String
150
+
151
+ # @!attribute from
152
+ # E.164 calling number used as the originating party for the assistant call leg.
153
+ #
154
+ # @return [String]
155
+ required :from, String
156
+
157
+ # @!attribute loopback_sip_uri
158
+ # SIP URI to which the assistant media loopback is established.
159
+ #
160
+ # @return [String]
161
+ required :loopback_sip_uri, String
162
+
163
+ # @!attribute audio_gate
164
+ # Audio gating strategy for the assistant call leg.
165
+ #
166
+ # @return [Symbol, Telnyx::Models::MeetingSessionCreateParams::Assistant::AudioGate, nil]
167
+ optional :audio_gate, enum: -> { Telnyx::MeetingSessionCreateParams::Assistant::AudioGate }
168
+
169
+ # @!method initialize(id:, call_control_connection_id:, from:, loopback_sip_uri:, audio_gate: nil)
170
+ # Request options for attaching a voice assistant to the session. Routing fields
171
+ # (`call_control_connection_id`, `from`, and `loopback_sip_uri`) are used only to
172
+ # establish the assistant call leg and are omitted from response objects.
173
+ # `audio_gate` is returned with `id` in the assistant response object.
174
+ #
175
+ # @param id [String] Identifier of the assistant to attach.
176
+ #
177
+ # @param call_control_connection_id [String] Call control connection used to bridge the assistant into the meeting audio.
178
+ #
179
+ # @param from [String] E.164 calling number used as the originating party for the assistant call leg.
180
+ #
181
+ # @param loopback_sip_uri [String] SIP URI to which the assistant media loopback is established.
182
+ #
183
+ # @param audio_gate [Symbol, Telnyx::Models::MeetingSessionCreateParams::Assistant::AudioGate] Audio gating strategy for the assistant call leg.
184
+
185
+ # Audio gating strategy for the assistant call leg.
186
+ #
187
+ # @see Telnyx::Models::MeetingSessionCreateParams::Assistant#audio_gate
188
+ module AudioGate
189
+ extend Telnyx::Internal::Type::Enum
190
+
191
+ NONE = :none
192
+ HALF_DUPLEX = :half_duplex
193
+
194
+ # @!method self.values
195
+ # @return [Array<Symbol>]
196
+ end
197
+ end
198
+
199
+ class Avatar < Telnyx::Internal::Type::BaseModel
200
+ # @!attribute avatar_id
201
+ # Identifier of the avatar to use.
202
+ #
203
+ # @return [String]
204
+ required :avatar_id, String
205
+
206
+ # @!attribute provider
207
+ # Avatar provider identifier. Currently only "anam" is supported.
208
+ #
209
+ # @return [Symbol, :anam]
210
+ required :provider, const: :anam
211
+
212
+ request_only do
213
+ # @!attribute api_key
214
+ # Bring-your-own-key API key for the avatar provider. The key is never stored or
215
+ # returned by the API.
216
+ #
217
+ # @return [String]
218
+ required :api_key, String
219
+ end
220
+
221
+ # @!method initialize(api_key:, avatar_id:, provider: :anam)
222
+ # Some parameter documentations has been truncated, see
223
+ # {Telnyx::Models::MeetingSessionCreateParams::Avatar} for more details.
224
+ #
225
+ # Request options for attaching a bring-your-own-key avatar to the session.
226
+ #
227
+ # @param api_key [String] Bring-your-own-key API key for the avatar provider. The key is never stored or r
228
+ #
229
+ # @param avatar_id [String] Identifier of the avatar to use.
230
+ #
231
+ # @param provider [Symbol, :anam] Avatar provider identifier. Currently only "anam" is supported.
232
+ end
233
+
234
+ # Write-only static camera-tile image for this session, not a native account or
235
+ # participant profile photo. Supply exactly one JPEG source. When effective, the
236
+ # image is used as the bot's static camera/video output; presentation varies by
237
+ # meeting platform and recording configuration and is not guaranteed in
238
+ # recordings. An effective Avatar or Assistant webpage output takes precedence, so
239
+ # this input is ignored and a URL source is not fetched.
240
+ module CameraImage
241
+ extend Telnyx::Internal::Type::Union
242
+
243
+ variant -> { Telnyx::MeetingSessionCreateParams::CameraImage::MeetingSessionCameraImageBase64Source }
244
+
245
+ variant -> { Telnyx::MeetingSessionCreateParams::CameraImage::MeetingSessionCameraImageURLSource }
246
+
247
+ class MeetingSessionCameraImageBase64Source < Telnyx::Internal::Type::BaseModel
248
+ # @!attribute base64_data
249
+ # Canonical plain RFC 4648 Base64 for a valid decoded JPEG. Data URIs, whitespace,
250
+ # and the URL-safe alphabet are rejected. The encoded value is limited to
251
+ # 1,835,008 characters and the decoded JPEG to 1,363,148 bytes. The JPEG is
252
+ # limited to 4,096 pixels per dimension, 4 megapixels, and 128 MB of decoder
253
+ # memory. The image bytes are not persisted, returned, or logged.
254
+ #
255
+ # @return [String]
256
+ required :base64_data, String
257
+
258
+ # @!attribute format_
259
+ # Only JPEG images are accepted.
260
+ #
261
+ # @return [Symbol, :jpeg]
262
+ required :format_, const: :jpeg, api_name: :format
263
+
264
+ # @!method initialize(base64_data:, format_: :jpeg)
265
+ # Some parameter documentations has been truncated, see
266
+ # {Telnyx::Models::MeetingSessionCreateParams::CameraImage::MeetingSessionCameraImageBase64Source}
267
+ # for more details.
268
+ #
269
+ # @param base64_data [String] Canonical plain RFC 4648 Base64 for a valid decoded JPEG. Data URIs, whitespace,
270
+ #
271
+ # @param format_ [Symbol, :jpeg] Only JPEG images are accepted.
272
+ end
273
+
274
+ class MeetingSessionCameraImageURLSource < Telnyx::Internal::Type::BaseModel
275
+ # @!attribute format_
276
+ # Only JPEG images are accepted.
277
+ #
278
+ # @return [Symbol, :jpeg]
279
+ required :format_, const: :jpeg, api_name: :format
280
+
281
+ # @!attribute url
282
+ # Public HTTPS JPEG URL with at most 2,048 characters and no credentials,
283
+ # fragment, surrounding whitespace, raw control characters, or explicit
284
+ # non-default port. Signed queries are allowed but must be treated as credentials.
285
+ # Fetching is limited to public network destinations, a five-second timeout, no
286
+ # redirects, a 2xx image/jpeg response with identity or no content encoding, and a
287
+ # 1,363,148-byte limit enforced against both declared and streamed content. The
288
+ # service resolves the URL before bot creation and does not persist, return, or
289
+ # log the URL or image bytes.
290
+ #
291
+ # @return [String]
292
+ required :url, String
293
+
294
+ # @!method initialize(url:, format_: :jpeg)
295
+ # Some parameter documentations has been truncated, see
296
+ # {Telnyx::Models::MeetingSessionCreateParams::CameraImage::MeetingSessionCameraImageURLSource}
297
+ # for more details.
298
+ #
299
+ # @param url [String] Public HTTPS JPEG URL with at most 2,048 characters and no credentials, fragment
300
+ #
301
+ # @param format_ [Symbol, :jpeg] Only JPEG images are accepted.
302
+ end
303
+
304
+ # @!method self.variants
305
+ # @return [Array(Telnyx::Models::MeetingSessionCreateParams::CameraImage::MeetingSessionCameraImageBase64Source, Telnyx::Models::MeetingSessionCreateParams::CameraImage::MeetingSessionCameraImageURLSource)]
306
+ end
307
+ end
308
+ end
309
+ end