telnyx 5.111.0 → 5.112.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 (227) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +8 -0
  3. data/README.md +1 -1
  4. data/lib/telnyx/models/ai/assistant_create_params.rb +178 -9
  5. data/lib/telnyx/models/ai/assistant_tool.rb +14 -14
  6. data/lib/telnyx/models/ai/assistant_update_params.rb +178 -9
  7. data/lib/telnyx/models/ai/assistants/canary_deploy.rb +123 -3
  8. data/lib/telnyx/models/ai/assistants/canary_deploy_response.rb +125 -3
  9. data/lib/telnyx/models/ai/assistants/update_assistant.rb +179 -9
  10. data/lib/telnyx/models/ai/inference_embedding.rb +177 -9
  11. data/lib/telnyx/models/ai/openai_list_models_response.rb +210 -3
  12. data/lib/telnyx/models/ai/transfer_tool.rb +9 -7
  13. data/lib/telnyx/models/ai_retrieve_models_response.rb +210 -3
  14. data/lib/telnyx/models/calls/action_gather_using_ai_params.rb +23 -4
  15. data/lib/telnyx/models/calls/action_gather_using_speak_params.rb +23 -4
  16. data/lib/telnyx/models/calls/action_speak_params.rb +23 -4
  17. data/lib/telnyx/models/calls/action_start_ai_assistant_params.rb +23 -4
  18. data/lib/telnyx/models/calls/action_start_conversation_relay_params.rb +491 -0
  19. data/lib/telnyx/models/calls/action_start_conversation_relay_response.rb +37 -0
  20. data/lib/telnyx/models/calls/action_stop_conversation_relay_params.rb +44 -0
  21. data/lib/telnyx/models/calls/action_stop_conversation_relay_response.rb +18 -0
  22. data/lib/telnyx/models/calls/transcription_start_request.rb +167 -5
  23. data/lib/telnyx/models/conferences/action_speak_params.rb +23 -4
  24. data/lib/telnyx/models/network_list_interfaces_response.rb +2 -112
  25. data/lib/telnyx/models/public_internet_gateway_create_response.rb +8 -3
  26. data/lib/telnyx/models/public_internet_gateway_delete_response.rb +8 -3
  27. data/lib/telnyx/models/public_internet_gateway_list_response.rb +10 -0
  28. data/lib/telnyx/models/public_internet_gateway_retrieve_response.rb +8 -3
  29. data/lib/telnyx/models/text_to_speech_generate_params.rb +6 -6
  30. data/lib/telnyx/models/uac_connection_create_params.rb +255 -9
  31. data/lib/telnyx/models/uac_connection_create_response.rb +878 -3
  32. data/lib/telnyx/models/uac_connection_delete_response.rb +878 -3
  33. data/lib/telnyx/models/uac_connection_list_response.rb +876 -0
  34. data/lib/telnyx/models/uac_connection_retrieve_response.rb +879 -3
  35. data/lib/telnyx/models/uac_connection_update_params.rb +255 -9
  36. data/lib/telnyx/models/uac_connection_update_response.rb +878 -3
  37. data/lib/telnyx/models/virtual_cross_connect_create_response.rb +8 -3
  38. data/lib/telnyx/models/virtual_cross_connect_delete_response.rb +8 -3
  39. data/lib/telnyx/models/virtual_cross_connect_list_response.rb +10 -0
  40. data/lib/telnyx/models/virtual_cross_connect_retrieve_response.rb +8 -3
  41. data/lib/telnyx/models/virtual_cross_connect_update_response.rb +8 -3
  42. data/lib/telnyx/models/wireguard_interface_create_response.rb +8 -3
  43. data/lib/telnyx/models/wireguard_interface_delete_response.rb +8 -3
  44. data/lib/telnyx/models/wireguard_interface_list_response.rb +10 -0
  45. data/lib/telnyx/models/wireguard_interface_retrieve_response.rb +8 -3
  46. data/lib/telnyx/models.rb +0 -20
  47. data/lib/telnyx/resources/ai/assistants/canary_deploys.rb +2 -2
  48. data/lib/telnyx/resources/ai/assistants/versions.rb +3 -3
  49. data/lib/telnyx/resources/ai/assistants.rb +6 -6
  50. data/lib/telnyx/resources/calls/actions.rb +101 -5
  51. data/lib/telnyx/resources/conferences/actions.rb +1 -1
  52. data/lib/telnyx/resources/public_internet_gateways.rb +2 -2
  53. data/lib/telnyx/resources/uac_connections.rb +8 -8
  54. data/lib/telnyx/resources/virtual_cross_connects.rb +2 -2
  55. data/lib/telnyx/resources/wireguard_interfaces.rb +2 -2
  56. data/lib/telnyx/version.rb +1 -1
  57. data/lib/telnyx.rb +8 -22
  58. data/rbi/telnyx/models/ai/assistant_create_params.rbi +352 -12
  59. data/rbi/telnyx/models/ai/assistant_tool.rbi +10 -10
  60. data/rbi/telnyx/models/ai/assistant_update_params.rbi +352 -12
  61. data/rbi/telnyx/models/ai/assistants/canary_deploy.rbi +290 -4
  62. data/rbi/telnyx/models/ai/assistants/canary_deploy_response.rbi +301 -3
  63. data/rbi/telnyx/models/ai/assistants/update_assistant.rbi +366 -12
  64. data/rbi/telnyx/models/ai/inference_embedding.rbi +351 -12
  65. data/rbi/telnyx/models/ai/openai_list_models_response.rbi +315 -3
  66. data/rbi/telnyx/models/ai/transfer_tool.rbi +5 -5
  67. data/rbi/telnyx/models/ai_retrieve_models_response.rbi +310 -3
  68. data/rbi/telnyx/models/calls/action_gather_using_ai_params.rbi +41 -5
  69. data/rbi/telnyx/models/calls/action_gather_using_speak_params.rbi +41 -5
  70. data/rbi/telnyx/models/calls/action_speak_params.rbi +41 -5
  71. data/rbi/telnyx/models/calls/action_start_ai_assistant_params.rbi +41 -5
  72. data/rbi/telnyx/models/calls/action_start_conversation_relay_params.rbi +1075 -0
  73. data/rbi/telnyx/models/calls/action_start_conversation_relay_response.rbi +95 -0
  74. data/rbi/telnyx/models/calls/action_stop_conversation_relay_params.rbi +72 -0
  75. data/rbi/telnyx/models/calls/action_stop_conversation_relay_response.rbi +39 -0
  76. data/rbi/telnyx/models/calls/transcription_start_request.rbi +480 -10
  77. data/rbi/telnyx/models/conferences/action_speak_params.rbi +41 -5
  78. data/rbi/telnyx/models/network_list_interfaces_response.rbi +4 -181
  79. data/rbi/telnyx/models/public_internet_gateway_create_response.rbi +38 -6
  80. data/rbi/telnyx/models/public_internet_gateway_delete_response.rbi +38 -6
  81. data/rbi/telnyx/models/public_internet_gateway_list_response.rbi +23 -0
  82. data/rbi/telnyx/models/public_internet_gateway_retrieve_response.rbi +38 -6
  83. data/rbi/telnyx/models/text_to_speech_generate_params.rbi +6 -6
  84. data/rbi/telnyx/models/uac_connection_create_params.rbi +516 -12
  85. data/rbi/telnyx/models/uac_connection_create_response.rbi +1756 -4
  86. data/rbi/telnyx/models/uac_connection_delete_response.rbi +1756 -4
  87. data/rbi/telnyx/models/uac_connection_list_response.rbi +1727 -0
  88. data/rbi/telnyx/models/uac_connection_retrieve_response.rbi +1756 -4
  89. data/rbi/telnyx/models/uac_connection_update_params.rbi +516 -12
  90. data/rbi/telnyx/models/uac_connection_update_response.rbi +1756 -4
  91. data/rbi/telnyx/models/virtual_cross_connect_create_response.rbi +36 -6
  92. data/rbi/telnyx/models/virtual_cross_connect_delete_response.rbi +36 -6
  93. data/rbi/telnyx/models/virtual_cross_connect_list_response.rbi +23 -0
  94. data/rbi/telnyx/models/virtual_cross_connect_retrieve_response.rbi +38 -6
  95. data/rbi/telnyx/models/virtual_cross_connect_update_response.rbi +36 -6
  96. data/rbi/telnyx/models/wireguard_interface_create_response.rbi +36 -6
  97. data/rbi/telnyx/models/wireguard_interface_delete_response.rbi +36 -6
  98. data/rbi/telnyx/models/wireguard_interface_list_response.rbi +23 -0
  99. data/rbi/telnyx/models/wireguard_interface_retrieve_response.rbi +36 -6
  100. data/rbi/telnyx/models.rbi +0 -20
  101. data/rbi/telnyx/resources/ai/assistants/canary_deploys.rbi +4 -2
  102. data/rbi/telnyx/resources/ai/assistants/versions.rbi +9 -3
  103. data/rbi/telnyx/resources/ai/assistants.rbi +10 -6
  104. data/rbi/telnyx/resources/calls/actions.rbi +152 -6
  105. data/rbi/telnyx/resources/conferences/actions.rbi +1 -1
  106. data/rbi/telnyx/resources/public_internet_gateways.rbi +1 -1
  107. data/rbi/telnyx/resources/uac_connections.rbi +13 -7
  108. data/rbi/telnyx/resources/virtual_cross_connects.rbi +1 -1
  109. data/rbi/telnyx/resources/wireguard_interfaces.rbi +1 -1
  110. data/sig/telnyx/models/ai/assistant_create_params.rbs +149 -18
  111. data/sig/telnyx/models/ai/assistant_tool.rbs +8 -8
  112. data/sig/telnyx/models/ai/assistant_update_params.rbs +149 -18
  113. data/sig/telnyx/models/ai/assistants/canary_deploy.rbs +113 -6
  114. data/sig/telnyx/models/ai/assistants/canary_deploy_response.rbs +109 -4
  115. data/sig/telnyx/models/ai/assistants/update_assistant.rbs +152 -18
  116. data/sig/telnyx/models/ai/inference_embedding.rbs +149 -18
  117. data/sig/telnyx/models/ai/openai_list_models_response.rbs +149 -4
  118. data/sig/telnyx/models/ai/transfer_tool.rbs +4 -4
  119. data/sig/telnyx/models/ai_retrieve_models_response.rbs +149 -4
  120. data/sig/telnyx/models/calls/action_gather_using_ai_params.rbs +15 -1
  121. data/sig/telnyx/models/calls/action_gather_using_speak_params.rbs +15 -1
  122. data/sig/telnyx/models/calls/action_speak_params.rbs +15 -1
  123. data/sig/telnyx/models/calls/action_start_ai_assistant_params.rbs +15 -1
  124. data/sig/telnyx/models/calls/action_start_conversation_relay_params.rbs +416 -0
  125. data/sig/telnyx/models/calls/action_start_conversation_relay_response.rbs +45 -0
  126. data/sig/telnyx/models/calls/action_stop_conversation_relay_params.rbs +38 -0
  127. data/sig/telnyx/models/calls/action_stop_conversation_relay_response.rbs +20 -0
  128. data/sig/telnyx/models/calls/transcription_start_request.rbs +184 -2
  129. data/sig/telnyx/models/conferences/action_speak_params.rbs +15 -1
  130. data/sig/telnyx/models/network_list_interfaces_response.rbs +4 -106
  131. data/sig/telnyx/models/public_internet_gateway_create_response.rbs +18 -6
  132. data/sig/telnyx/models/public_internet_gateway_delete_response.rbs +18 -6
  133. data/sig/telnyx/models/public_internet_gateway_list_response.rbs +11 -0
  134. data/sig/telnyx/models/public_internet_gateway_retrieve_response.rbs +18 -6
  135. data/sig/telnyx/models/text_to_speech_generate_params.rbs +6 -6
  136. data/sig/telnyx/models/uac_connection_create_params.rbs +211 -17
  137. data/sig/telnyx/models/uac_connection_create_response.rbs +731 -5
  138. data/sig/telnyx/models/uac_connection_delete_response.rbs +731 -5
  139. data/sig/telnyx/models/uac_connection_list_response.rbs +722 -0
  140. data/sig/telnyx/models/uac_connection_retrieve_response.rbs +731 -5
  141. data/sig/telnyx/models/uac_connection_update_params.rbs +211 -17
  142. data/sig/telnyx/models/uac_connection_update_response.rbs +731 -5
  143. data/sig/telnyx/models/virtual_cross_connect_create_response.rbs +18 -6
  144. data/sig/telnyx/models/virtual_cross_connect_delete_response.rbs +18 -6
  145. data/sig/telnyx/models/virtual_cross_connect_list_response.rbs +11 -0
  146. data/sig/telnyx/models/virtual_cross_connect_retrieve_response.rbs +18 -6
  147. data/sig/telnyx/models/virtual_cross_connect_update_response.rbs +18 -6
  148. data/sig/telnyx/models/wireguard_interface_create_response.rbs +18 -6
  149. data/sig/telnyx/models/wireguard_interface_delete_response.rbs +18 -6
  150. data/sig/telnyx/models/wireguard_interface_list_response.rbs +11 -0
  151. data/sig/telnyx/models/wireguard_interface_retrieve_response.rbs +18 -6
  152. data/sig/telnyx/models.rbs +0 -20
  153. data/sig/telnyx/resources/ai/assistants/canary_deploys.rbs +2 -2
  154. data/sig/telnyx/resources/ai/assistants/versions.rbs +3 -3
  155. data/sig/telnyx/resources/ai/assistants.rbs +6 -6
  156. data/sig/telnyx/resources/calls/actions.rbs +29 -0
  157. data/sig/telnyx/resources/public_internet_gateways.rbs +1 -1
  158. data/sig/telnyx/resources/uac_connections.rbs +7 -7
  159. data/sig/telnyx/resources/virtual_cross_connects.rbs +1 -1
  160. data/sig/telnyx/resources/wireguard_interfaces.rbs +1 -1
  161. metadata +26 -68
  162. data/lib/telnyx/models/ai/assistant_integration.rb +0 -38
  163. data/lib/telnyx/models/ai/assistant_mcp_server.rb +0 -35
  164. data/lib/telnyx/models/ai/assistants/clause.rb +0 -54
  165. data/lib/telnyx/models/ai/assistants/rollout_slot.rb +0 -27
  166. data/lib/telnyx/models/ai/assistants/rule_input.rb +0 -40
  167. data/lib/telnyx/models/ai/assistants/rule_output.rb +0 -40
  168. data/lib/telnyx/models/ai/assistants/serve.rb +0 -33
  169. data/lib/telnyx/models/ai/inference_embedding_interruption_settings.rb +0 -47
  170. data/lib/telnyx/models/ai/start_speaking_plan.rb +0 -37
  171. data/lib/telnyx/models/ai/transcription_endpointing_plan.rb +0 -39
  172. data/lib/telnyx/models/calls/transcription_engine_assemblyai_config.rb +0 -64
  173. data/lib/telnyx/models/calls/transcription_engine_xai_config.rb +0 -108
  174. data/lib/telnyx/models/model_metadata.rb +0 -212
  175. data/lib/telnyx/models/public_internet_gateway_read.rb +0 -83
  176. data/lib/telnyx/models/uac_connection.rb +0 -412
  177. data/lib/telnyx/models/uac_external_settings.rb +0 -101
  178. data/lib/telnyx/models/uac_inbound.rb +0 -210
  179. data/lib/telnyx/models/uac_internal_settings.rb +0 -25
  180. data/lib/telnyx/models/uac_outbound.rb +0 -131
  181. data/lib/telnyx/models/virtual_cross_connect_combined.rb +0 -212
  182. data/lib/telnyx/models/wireguard_interface_read.rb +0 -136
  183. data/lib/telnyx/models/xai_voice_settings.rb +0 -36
  184. data/rbi/telnyx/models/ai/assistant_integration.rbi +0 -60
  185. data/rbi/telnyx/models/ai/assistant_mcp_server.rbi +0 -51
  186. data/rbi/telnyx/models/ai/assistants/clause.rbi +0 -91
  187. data/rbi/telnyx/models/ai/assistants/rollout_slot.rbi +0 -36
  188. data/rbi/telnyx/models/ai/assistants/rule_input.rbi +0 -73
  189. data/rbi/telnyx/models/ai/assistants/rule_output.rbi +0 -73
  190. data/rbi/telnyx/models/ai/assistants/serve.rbi +0 -61
  191. data/rbi/telnyx/models/ai/inference_embedding_interruption_settings.rbi +0 -83
  192. data/rbi/telnyx/models/ai/start_speaking_plan.rbi +0 -70
  193. data/rbi/telnyx/models/ai/transcription_endpointing_plan.rbi +0 -71
  194. data/rbi/telnyx/models/calls/transcription_engine_assemblyai_config.rbi +0 -155
  195. data/rbi/telnyx/models/calls/transcription_engine_xai_config.rbi +0 -329
  196. data/rbi/telnyx/models/model_metadata.rbi +0 -272
  197. data/rbi/telnyx/models/public_internet_gateway_read.rbi +0 -128
  198. data/rbi/telnyx/models/uac_connection.rbi +0 -684
  199. data/rbi/telnyx/models/uac_external_settings.rbi +0 -146
  200. data/rbi/telnyx/models/uac_inbound.rbi +0 -410
  201. data/rbi/telnyx/models/uac_internal_settings.rbi +0 -39
  202. data/rbi/telnyx/models/uac_outbound.rbi +0 -224
  203. data/rbi/telnyx/models/virtual_cross_connect_combined.rbi +0 -345
  204. data/rbi/telnyx/models/wireguard_interface_read.rbi +0 -213
  205. data/rbi/telnyx/models/xai_voice_settings.rbi +0 -64
  206. data/sig/telnyx/models/ai/assistant_integration.rbs +0 -26
  207. data/sig/telnyx/models/ai/assistant_mcp_server.rbs +0 -19
  208. data/sig/telnyx/models/ai/assistants/clause.rbs +0 -46
  209. data/sig/telnyx/models/ai/assistants/rollout_slot.rbs +0 -19
  210. data/sig/telnyx/models/ai/assistants/rule_input.rbs +0 -33
  211. data/sig/telnyx/models/ai/assistants/rule_output.rbs +0 -33
  212. data/sig/telnyx/models/ai/assistants/serve.rbs +0 -35
  213. data/sig/telnyx/models/ai/inference_embedding_interruption_settings.rbs +0 -40
  214. data/sig/telnyx/models/ai/start_speaking_plan.rbs +0 -33
  215. data/sig/telnyx/models/ai/transcription_endpointing_plan.rbs +0 -38
  216. data/sig/telnyx/models/calls/transcription_engine_assemblyai_config.rbs +0 -62
  217. data/sig/telnyx/models/calls/transcription_engine_xai_config.rbs +0 -130
  218. data/sig/telnyx/models/model_metadata.rbs +0 -142
  219. data/sig/telnyx/models/public_internet_gateway_read.rbs +0 -80
  220. data/sig/telnyx/models/uac_connection.rbs +0 -338
  221. data/sig/telnyx/models/uac_external_settings.rbs +0 -73
  222. data/sig/telnyx/models/uac_inbound.rbs +0 -190
  223. data/sig/telnyx/models/uac_internal_settings.rbs +0 -15
  224. data/sig/telnyx/models/uac_outbound.rbs +0 -113
  225. data/sig/telnyx/models/virtual_cross_connect_combined.rbs +0 -190
  226. data/sig/telnyx/models/wireguard_interface_read.rbs +0 -127
  227. data/sig/telnyx/models/xai_voice_settings.rbs +0 -34
@@ -110,12 +110,21 @@ module Telnyx
110
110
  # integrations is at `/ai/integrations`; the user's connected integrations are at
111
111
  # `/ai/integrations/connections`. Each item references a catalog integration by
112
112
  # `integration_id`.
113
- sig { returns(T.nilable(T::Array[Telnyx::AI::AssistantIntegration])) }
113
+ sig do
114
+ returns(
115
+ T.nilable(
116
+ T::Array[Telnyx::AI::Assistants::UpdateAssistant::Integration]
117
+ )
118
+ )
119
+ end
114
120
  attr_reader :integrations
115
121
 
116
122
  sig do
117
123
  params(
118
- integrations: T::Array[Telnyx::AI::AssistantIntegration::OrHash]
124
+ integrations:
125
+ T::Array[
126
+ Telnyx::AI::Assistants::UpdateAssistant::Integration::OrHash
127
+ ]
119
128
  ).void
120
129
  end
121
130
  attr_writer :integrations
@@ -128,7 +137,9 @@ module Telnyx
128
137
  # `eager_eot_threshold`).
129
138
  sig do
130
139
  returns(
131
- T.nilable(Telnyx::AI::InferenceEmbeddingInterruptionSettings)
140
+ T.nilable(
141
+ Telnyx::AI::Assistants::UpdateAssistant::InterruptionSettings
142
+ )
132
143
  )
133
144
  end
134
145
  attr_reader :interruption_settings
@@ -136,7 +147,7 @@ module Telnyx
136
147
  sig do
137
148
  params(
138
149
  interruption_settings:
139
- Telnyx::AI::InferenceEmbeddingInterruptionSettings::OrHash
150
+ Telnyx::AI::Assistants::UpdateAssistant::InterruptionSettings::OrHash
140
151
  ).void
141
152
  end
142
153
  attr_writer :interruption_settings
@@ -155,12 +166,21 @@ module Telnyx
155
166
 
156
167
  # MCP servers attached to the assistant. Create MCP servers with
157
168
  # `/ai/mcp_servers`, then reference them by `id` here.
158
- sig { returns(T.nilable(T::Array[Telnyx::AI::AssistantMcpServer])) }
169
+ sig do
170
+ returns(
171
+ T.nilable(
172
+ T::Array[Telnyx::AI::Assistants::UpdateAssistant::McpServer]
173
+ )
174
+ )
175
+ end
159
176
  attr_reader :mcp_servers
160
177
 
161
178
  sig do
162
179
  params(
163
- mcp_servers: T::Array[Telnyx::AI::AssistantMcpServer::OrHash]
180
+ mcp_servers:
181
+ T::Array[
182
+ Telnyx::AI::Assistants::UpdateAssistant::McpServer::OrHash
183
+ ]
164
184
  ).void
165
185
  end
166
186
  attr_writer :mcp_servers
@@ -343,11 +363,17 @@ module Telnyx
343
363
  greeting: String,
344
364
  insight_settings: Telnyx::AI::InsightSettings::OrHash,
345
365
  instructions: String,
346
- integrations: T::Array[Telnyx::AI::AssistantIntegration::OrHash],
366
+ integrations:
367
+ T::Array[
368
+ Telnyx::AI::Assistants::UpdateAssistant::Integration::OrHash
369
+ ],
347
370
  interruption_settings:
348
- Telnyx::AI::InferenceEmbeddingInterruptionSettings::OrHash,
371
+ Telnyx::AI::Assistants::UpdateAssistant::InterruptionSettings::OrHash,
349
372
  llm_api_key_ref: String,
350
- mcp_servers: T::Array[Telnyx::AI::AssistantMcpServer::OrHash],
373
+ mcp_servers:
374
+ T::Array[
375
+ Telnyx::AI::Assistants::UpdateAssistant::McpServer::OrHash
376
+ ],
351
377
  messaging_settings: Telnyx::AI::MessagingSettings::OrHash,
352
378
  model: String,
353
379
  name: String,
@@ -484,11 +510,15 @@ module Telnyx
484
510
  greeting: String,
485
511
  insight_settings: Telnyx::AI::InsightSettings,
486
512
  instructions: String,
487
- integrations: T::Array[Telnyx::AI::AssistantIntegration],
513
+ integrations:
514
+ T::Array[
515
+ Telnyx::AI::Assistants::UpdateAssistant::Integration
516
+ ],
488
517
  interruption_settings:
489
- Telnyx::AI::InferenceEmbeddingInterruptionSettings,
518
+ Telnyx::AI::Assistants::UpdateAssistant::InterruptionSettings,
490
519
  llm_api_key_ref: String,
491
- mcp_servers: T::Array[Telnyx::AI::AssistantMcpServer],
520
+ mcp_servers:
521
+ T::Array[Telnyx::AI::Assistants::UpdateAssistant::McpServer],
492
522
  messaging_settings: Telnyx::AI::MessagingSettings,
493
523
  model: String,
494
524
  name: String,
@@ -523,6 +553,330 @@ module Telnyx
523
553
  end
524
554
  def to_hash
525
555
  end
556
+
557
+ class Integration < Telnyx::Internal::Type::BaseModel
558
+ OrHash =
559
+ T.type_alias do
560
+ T.any(
561
+ Telnyx::AI::Assistants::UpdateAssistant::Integration,
562
+ Telnyx::Internal::AnyHash
563
+ )
564
+ end
565
+
566
+ # Catalog integration ID to attach. This is the `id` from the integrations catalog
567
+ # at `/ai/integrations` (the same value also appears as `integration_id` on
568
+ # entries returned by `/ai/integrations/connections`). It is **not** the
569
+ # connection-level `id` from `/ai/integrations/connections`.
570
+ sig { returns(String) }
571
+ attr_accessor :integration_id
572
+
573
+ # Optional per-assistant allowlist of integration tool names. When omitted or
574
+ # empty, all tools allowed by the connected integration are available to the
575
+ # assistant.
576
+ sig { returns(T.nilable(T::Array[String])) }
577
+ attr_reader :allowed_list
578
+
579
+ sig { params(allowed_list: T::Array[String]).void }
580
+ attr_writer :allowed_list
581
+
582
+ # Reference to a connected integration attached to an assistant. Discover
583
+ # available integrations with `/ai/integrations` and connected integrations with
584
+ # `/ai/integrations/connections`.
585
+ sig do
586
+ params(
587
+ integration_id: String,
588
+ allowed_list: T::Array[String]
589
+ ).returns(T.attached_class)
590
+ end
591
+ def self.new(
592
+ # Catalog integration ID to attach. This is the `id` from the integrations catalog
593
+ # at `/ai/integrations` (the same value also appears as `integration_id` on
594
+ # entries returned by `/ai/integrations/connections`). It is **not** the
595
+ # connection-level `id` from `/ai/integrations/connections`.
596
+ integration_id:,
597
+ # Optional per-assistant allowlist of integration tool names. When omitted or
598
+ # empty, all tools allowed by the connected integration are available to the
599
+ # assistant.
600
+ allowed_list: nil
601
+ )
602
+ end
603
+
604
+ sig do
605
+ override.returns(
606
+ { integration_id: String, allowed_list: T::Array[String] }
607
+ )
608
+ end
609
+ def to_hash
610
+ end
611
+ end
612
+
613
+ class InterruptionSettings < Telnyx::Internal::Type::BaseModel
614
+ OrHash =
615
+ T.type_alias do
616
+ T.any(
617
+ Telnyx::AI::Assistants::UpdateAssistant::InterruptionSettings,
618
+ Telnyx::Internal::AnyHash
619
+ )
620
+ end
621
+
622
+ # When true, disables user interruptions while the assistant greeting is playing.
623
+ sig { returns(T.nilable(T::Boolean)) }
624
+ attr_reader :disable_greeting_interruption
625
+
626
+ sig { params(disable_greeting_interruption: T::Boolean).void }
627
+ attr_writer :disable_greeting_interruption
628
+
629
+ # Whether users can interrupt the assistant while it is speaking.
630
+ sig { returns(T.nilable(T::Boolean)) }
631
+ attr_reader :enable
632
+
633
+ sig { params(enable: T::Boolean).void }
634
+ attr_writer :enable
635
+
636
+ # Controls when the assistant starts speaking after the user stops. These
637
+ # thresholds primarily apply to non turn-taking transcription models. For
638
+ # turn-taking models like `deepgram/flux`, end-of-turn detection is driven by the
639
+ # transcription end-of-turn settings under `transcription.settings` instead.
640
+ sig do
641
+ returns(
642
+ T.nilable(
643
+ Telnyx::AI::Assistants::UpdateAssistant::InterruptionSettings::StartSpeakingPlan
644
+ )
645
+ )
646
+ end
647
+ attr_reader :start_speaking_plan
648
+
649
+ sig do
650
+ params(
651
+ start_speaking_plan:
652
+ Telnyx::AI::Assistants::UpdateAssistant::InterruptionSettings::StartSpeakingPlan::OrHash
653
+ ).void
654
+ end
655
+ attr_writer :start_speaking_plan
656
+
657
+ # Settings for interruptions and how the assistant decides the user has finished
658
+ # speaking. These timings are most relevant when using non turn-taking
659
+ # transcription models. For turn-taking models like `deepgram/flux`, end-of-turn
660
+ # behavior is controlled by the transcription end-of-turn settings under
661
+ # `transcription.settings` (`eot_threshold`, `eot_timeout_ms`,
662
+ # `eager_eot_threshold`).
663
+ sig do
664
+ params(
665
+ disable_greeting_interruption: T::Boolean,
666
+ enable: T::Boolean,
667
+ start_speaking_plan:
668
+ Telnyx::AI::Assistants::UpdateAssistant::InterruptionSettings::StartSpeakingPlan::OrHash
669
+ ).returns(T.attached_class)
670
+ end
671
+ def self.new(
672
+ # When true, disables user interruptions while the assistant greeting is playing.
673
+ disable_greeting_interruption: nil,
674
+ # Whether users can interrupt the assistant while it is speaking.
675
+ enable: nil,
676
+ # Controls when the assistant starts speaking after the user stops. These
677
+ # thresholds primarily apply to non turn-taking transcription models. For
678
+ # turn-taking models like `deepgram/flux`, end-of-turn detection is driven by the
679
+ # transcription end-of-turn settings under `transcription.settings` instead.
680
+ start_speaking_plan: nil
681
+ )
682
+ end
683
+
684
+ sig do
685
+ override.returns(
686
+ {
687
+ disable_greeting_interruption: T::Boolean,
688
+ enable: T::Boolean,
689
+ start_speaking_plan:
690
+ Telnyx::AI::Assistants::UpdateAssistant::InterruptionSettings::StartSpeakingPlan
691
+ }
692
+ )
693
+ end
694
+ def to_hash
695
+ end
696
+
697
+ class StartSpeakingPlan < Telnyx::Internal::Type::BaseModel
698
+ OrHash =
699
+ T.type_alias do
700
+ T.any(
701
+ Telnyx::AI::Assistants::UpdateAssistant::InterruptionSettings::StartSpeakingPlan,
702
+ Telnyx::Internal::AnyHash
703
+ )
704
+ end
705
+
706
+ # Endpointing thresholds used to decide when the user has finished speaking.
707
+ # Applies to non turn-taking transcription models. For `deepgram/flux`, use
708
+ # `transcription.settings.eot_threshold` / `eot_timeout_ms` /
709
+ # `eager_eot_threshold`.
710
+ sig do
711
+ returns(
712
+ T.nilable(
713
+ Telnyx::AI::Assistants::UpdateAssistant::InterruptionSettings::StartSpeakingPlan::TranscriptionEndpointingPlan
714
+ )
715
+ )
716
+ end
717
+ attr_reader :transcription_endpointing_plan
718
+
719
+ sig do
720
+ params(
721
+ transcription_endpointing_plan:
722
+ Telnyx::AI::Assistants::UpdateAssistant::InterruptionSettings::StartSpeakingPlan::TranscriptionEndpointingPlan::OrHash
723
+ ).void
724
+ end
725
+ attr_writer :transcription_endpointing_plan
726
+
727
+ # Minimum seconds to wait before the assistant starts speaking.
728
+ sig { returns(T.nilable(Float)) }
729
+ attr_reader :wait_seconds
730
+
731
+ sig { params(wait_seconds: Float).void }
732
+ attr_writer :wait_seconds
733
+
734
+ # Controls when the assistant starts speaking after the user stops. These
735
+ # thresholds primarily apply to non turn-taking transcription models. For
736
+ # turn-taking models like `deepgram/flux`, end-of-turn detection is driven by the
737
+ # transcription end-of-turn settings under `transcription.settings` instead.
738
+ sig do
739
+ params(
740
+ transcription_endpointing_plan:
741
+ Telnyx::AI::Assistants::UpdateAssistant::InterruptionSettings::StartSpeakingPlan::TranscriptionEndpointingPlan::OrHash,
742
+ wait_seconds: Float
743
+ ).returns(T.attached_class)
744
+ end
745
+ def self.new(
746
+ # Endpointing thresholds used to decide when the user has finished speaking.
747
+ # Applies to non turn-taking transcription models. For `deepgram/flux`, use
748
+ # `transcription.settings.eot_threshold` / `eot_timeout_ms` /
749
+ # `eager_eot_threshold`.
750
+ transcription_endpointing_plan: nil,
751
+ # Minimum seconds to wait before the assistant starts speaking.
752
+ wait_seconds: nil
753
+ )
754
+ end
755
+
756
+ sig do
757
+ override.returns(
758
+ {
759
+ transcription_endpointing_plan:
760
+ Telnyx::AI::Assistants::UpdateAssistant::InterruptionSettings::StartSpeakingPlan::TranscriptionEndpointingPlan,
761
+ wait_seconds: Float
762
+ }
763
+ )
764
+ end
765
+ def to_hash
766
+ end
767
+
768
+ class TranscriptionEndpointingPlan < Telnyx::Internal::Type::BaseModel
769
+ OrHash =
770
+ T.type_alias do
771
+ T.any(
772
+ Telnyx::AI::Assistants::UpdateAssistant::InterruptionSettings::StartSpeakingPlan::TranscriptionEndpointingPlan,
773
+ Telnyx::Internal::AnyHash
774
+ )
775
+ end
776
+
777
+ # Seconds to wait after the transcript ends without punctuation.
778
+ sig { returns(T.nilable(Float)) }
779
+ attr_reader :on_no_punctuation_seconds
780
+
781
+ sig { params(on_no_punctuation_seconds: Float).void }
782
+ attr_writer :on_no_punctuation_seconds
783
+
784
+ # Seconds to wait after the transcript ends with a number.
785
+ sig { returns(T.nilable(Float)) }
786
+ attr_reader :on_number_seconds
787
+
788
+ sig { params(on_number_seconds: Float).void }
789
+ attr_writer :on_number_seconds
790
+
791
+ # Seconds to wait after the transcript ends with punctuation.
792
+ sig { returns(T.nilable(Float)) }
793
+ attr_reader :on_punctuation_seconds
794
+
795
+ sig { params(on_punctuation_seconds: Float).void }
796
+ attr_writer :on_punctuation_seconds
797
+
798
+ # Endpointing thresholds used to decide when the user has finished speaking.
799
+ # Applies to non turn-taking transcription models. For `deepgram/flux`, use
800
+ # `transcription.settings.eot_threshold` / `eot_timeout_ms` /
801
+ # `eager_eot_threshold`.
802
+ sig do
803
+ params(
804
+ on_no_punctuation_seconds: Float,
805
+ on_number_seconds: Float,
806
+ on_punctuation_seconds: Float
807
+ ).returns(T.attached_class)
808
+ end
809
+ def self.new(
810
+ # Seconds to wait after the transcript ends without punctuation.
811
+ on_no_punctuation_seconds: nil,
812
+ # Seconds to wait after the transcript ends with a number.
813
+ on_number_seconds: nil,
814
+ # Seconds to wait after the transcript ends with punctuation.
815
+ on_punctuation_seconds: nil
816
+ )
817
+ end
818
+
819
+ sig do
820
+ override.returns(
821
+ {
822
+ on_no_punctuation_seconds: Float,
823
+ on_number_seconds: Float,
824
+ on_punctuation_seconds: Float
825
+ }
826
+ )
827
+ end
828
+ def to_hash
829
+ end
830
+ end
831
+ end
832
+ end
833
+
834
+ class McpServer < Telnyx::Internal::Type::BaseModel
835
+ OrHash =
836
+ T.type_alias do
837
+ T.any(
838
+ Telnyx::AI::Assistants::UpdateAssistant::McpServer,
839
+ Telnyx::Internal::AnyHash
840
+ )
841
+ end
842
+
843
+ # ID of the MCP server to attach. This must be the `id` of an MCP server returned
844
+ # by the `/ai/mcp_servers` endpoints.
845
+ sig { returns(String) }
846
+ attr_accessor :id
847
+
848
+ # Optional per-assistant allowlist of MCP tool names. When omitted, the assistant
849
+ # uses the MCP server's configured `allowed_tools`.
850
+ sig { returns(T.nilable(T::Array[String])) }
851
+ attr_reader :allowed_tools
852
+
853
+ sig { params(allowed_tools: T::Array[String]).void }
854
+ attr_writer :allowed_tools
855
+
856
+ # Reference to an MCP server attached to an assistant. Create and manage MCP
857
+ # servers with the `/ai/mcp_servers` endpoints, then attach them to assistants by
858
+ # ID.
859
+ sig do
860
+ params(id: String, allowed_tools: T::Array[String]).returns(
861
+ T.attached_class
862
+ )
863
+ end
864
+ def self.new(
865
+ # ID of the MCP server to attach. This must be the `id` of an MCP server returned
866
+ # by the `/ai/mcp_servers` endpoints.
867
+ id:,
868
+ # Optional per-assistant allowlist of MCP tool names. When omitted, the assistant
869
+ # uses the MCP server's configured `allowed_tools`.
870
+ allowed_tools: nil
871
+ )
872
+ end
873
+
874
+ sig do
875
+ override.returns({ id: String, allowed_tools: T::Array[String] })
876
+ end
877
+ def to_hash
878
+ end
879
+ end
526
880
  end
527
881
  end
528
882
  end