telnyx 5.168.0 → 5.169.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 (267) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +7 -0
  3. data/README.md +1 -1
  4. data/lib/telnyx/client.rb +40 -0
  5. data/lib/telnyx/internal/type/union.rb +6 -6
  6. data/lib/telnyx/models/ai/assistant_create_params.rb +6 -6
  7. data/lib/telnyx/models/ai/assistant_tool.rb +285 -12
  8. data/lib/telnyx/models/ai/assistant_update_params.rb +20 -9
  9. data/lib/telnyx/models/ai/assistants/update_assistant.rb +20 -9
  10. data/lib/telnyx/models/ai/audio_transcribe_params.rb +33 -13
  11. data/lib/telnyx/models/ai/audio_transcribe_response.rb +34 -56
  12. data/lib/telnyx/models/ai/audio_transcription_response_word.rb +74 -0
  13. data/lib/telnyx/models/ai/chat_completion_request.rb +3 -26
  14. data/lib/telnyx/models/ai/flow_node.rb +2 -2
  15. data/lib/telnyx/models/ai/inference_embedding.rb +13 -10
  16. data/lib/telnyx/models/ai/inference_embedding_interruption_settings.rb +10 -1
  17. data/lib/telnyx/models/ai/inference_embedding_webhook_tool_params.rb +21 -1
  18. data/lib/telnyx/models/ai/openai/function_definition.rb +31 -0
  19. data/lib/telnyx/models/ai/post_conversation_settings.rb +4 -4
  20. data/lib/telnyx/models/ai/post_conversation_settings_req.rb +4 -4
  21. data/lib/telnyx/models/ai/privacy_settings.rb +20 -1
  22. data/lib/telnyx/models/ai/retrieval_tool.rb +21 -1
  23. data/lib/telnyx/models/ai/telephony_settings.rb +86 -16
  24. data/lib/telnyx/models/ai/tool_node.rb +2 -2
  25. data/lib/telnyx/models/ai/transcription_settings.rb +12 -4
  26. data/lib/telnyx/models/ai/transcription_settings_config.rb +12 -11
  27. data/lib/telnyx/models/ai/typesafe/v1_systemone_params.rb +268 -0
  28. data/lib/telnyx/models/ai/typesafe/v1_systemone_response.rb +222 -0
  29. data/lib/telnyx/models/bot_challenge_create_params.rb +38 -0
  30. data/lib/telnyx/models/bot_challenge_create_response.rb +87 -0
  31. data/lib/telnyx/models/bot_session_list_params.rb +34 -0
  32. data/lib/telnyx/models/bot_session_list_response.rb +32 -0
  33. data/lib/telnyx/models/bot_signup_create_params.rb +103 -0
  34. data/lib/telnyx/models/bot_signup_resend_magic_link_params.rb +22 -0
  35. data/lib/telnyx/models/call_dial_params.rb +75 -7
  36. data/lib/telnyx/models/calls/action_transfer_params.rb +75 -7
  37. data/lib/telnyx/models/calls/transcription_config.rb +14 -3
  38. data/lib/telnyx/models/calls/transcription_engine_assemblyai_config.rb +6 -3
  39. data/lib/telnyx/models/calls/transcription_engine_parakeet_config.rb +1 -0
  40. data/lib/telnyx/models/compute/funcs/export_create_params.rb +62 -0
  41. data/lib/telnyx/models/compute/funcs/export_delete_all_params.rb +24 -0
  42. data/lib/telnyx/models/compute/funcs/export_list_params.rb +24 -0
  43. data/lib/telnyx/models/compute/funcs/func_log_export_config_response.rb +113 -0
  44. data/lib/telnyx/models/connection_retrieve_count_params.rb +14 -0
  45. data/lib/telnyx/models/connection_retrieve_count_response.rb +215 -0
  46. data/lib/telnyx/models/detail_record_list_params.rb +19 -2
  47. data/lib/telnyx/models/inbound_message_webhook_event.rb +3 -70
  48. data/lib/telnyx/models/machine_payment_account_credit_params.rb +29 -0
  49. data/lib/telnyx/models/machine_payment_account_credit_response.rb +223 -0
  50. data/lib/telnyx/models/message_retrieve_group_messages_response.rb +3 -3
  51. data/lib/telnyx/models/message_retrieve_response.rb +4 -4
  52. data/lib/telnyx/models/message_schedule_response.rb +3 -3
  53. data/lib/telnyx/models/message_send_group_mms_response.rb +3 -3
  54. data/lib/telnyx/models/message_send_long_code_response.rb +3 -3
  55. data/lib/telnyx/models/message_send_number_pool_response.rb +3 -3
  56. data/lib/telnyx/models/message_send_response.rb +3 -3
  57. data/lib/telnyx/models/message_send_short_code_response.rb +3 -3
  58. data/lib/telnyx/models/messaging_inbound_message.rb +71 -0
  59. data/lib/telnyx/models/messaging_inbound_message_payload.rb +216 -13
  60. data/lib/telnyx/models/messaging_outbound_message_payload.rb +42 -2
  61. data/lib/telnyx/models/noise_suppression_engine_list_params.rb +14 -0
  62. data/lib/telnyx/models/noise_suppression_engine_list_response.rb +50 -0
  63. data/lib/telnyx/models/number_order_status_update.rb +15 -3
  64. data/lib/telnyx/models/number_order_status_update_webhook_event.rb +15 -3
  65. data/lib/telnyx/models/outbound_message.rb +1 -0
  66. data/lib/telnyx/models/outbound_message_payload.rb +45 -5
  67. data/lib/telnyx/models/speech_to_text_retrieve_transcription_params.rb +1 -0
  68. data/lib/telnyx/models/success_response.rb +27 -0
  69. data/lib/telnyx/models/texml/accounts/call_calls_params.rb +246 -3
  70. data/lib/telnyx/models/texml/accounts/conferences/participant_participants_params.rb +82 -1
  71. data/lib/telnyx/models/texml/call_create_params.rb +78 -0
  72. data/lib/telnyx/models/texml/call_create_response.rb +55 -0
  73. data/lib/telnyx/models/texml_initiate_ai_call_params.rb +76 -1
  74. data/lib/telnyx/models/voice_clone_create_from_upload_params.rb +2 -2
  75. data/lib/telnyx/models.rb +18 -0
  76. data/lib/telnyx/resources/ai/assistants/versions.rb +1 -1
  77. data/lib/telnyx/resources/ai/assistants.rb +2 -2
  78. data/lib/telnyx/resources/ai/audio.rb +2 -2
  79. data/lib/telnyx/resources/ai/typesafe/v1.rb +62 -0
  80. data/lib/telnyx/resources/ai/typesafe.rb +22 -0
  81. data/lib/telnyx/resources/ai.rb +4 -0
  82. data/lib/telnyx/resources/bot_challenge.rb +53 -0
  83. data/lib/telnyx/resources/bot_sessions.rb +57 -0
  84. data/lib/telnyx/resources/bot_signup.rb +97 -0
  85. data/lib/telnyx/resources/calls/actions.rb +1 -1
  86. data/lib/telnyx/resources/calls.rb +1 -1
  87. data/lib/telnyx/resources/compute/funcs/export.rb +105 -0
  88. data/lib/telnyx/resources/compute/funcs.rb +4 -0
  89. data/lib/telnyx/resources/connections.rb +20 -0
  90. data/lib/telnyx/resources/detail_records.rb +1 -1
  91. data/lib/telnyx/resources/email_messages.rb +5 -3
  92. data/lib/telnyx/resources/machine_payments.rb +73 -0
  93. data/lib/telnyx/resources/noise_suppression_engines.rb +37 -0
  94. data/lib/telnyx/resources/texml/accounts/conferences/participants.rb +15 -1
  95. data/lib/telnyx/resources/texml/calls.rb +57 -0
  96. data/lib/telnyx/resources/texml.rb +20 -1
  97. data/lib/telnyx/resources/voice_clones.rb +4 -2
  98. data/lib/telnyx/version.rb +1 -1
  99. data/lib/telnyx.rb +33 -0
  100. data/rbi/telnyx/client.rbi +35 -0
  101. data/rbi/telnyx/models/ai/assistant_create_params.rbi +16 -12
  102. data/rbi/telnyx/models/ai/assistant_tool.rbi +423 -20
  103. data/rbi/telnyx/models/ai/assistant_update_params.rbi +42 -16
  104. data/rbi/telnyx/models/ai/assistants/update_assistant.rbi +42 -16
  105. data/rbi/telnyx/models/ai/audio_transcribe_params.rbi +71 -20
  106. data/rbi/telnyx/models/ai/audio_transcribe_response.rbi +63 -97
  107. data/rbi/telnyx/models/ai/audio_transcription_response_word.rbi +108 -0
  108. data/rbi/telnyx/models/ai/chat_completion_request.rbi +4 -58
  109. data/rbi/telnyx/models/ai/flow_node.rbi +4 -2
  110. data/rbi/telnyx/models/ai/inference_embedding.rbi +24 -16
  111. data/rbi/telnyx/models/ai/inference_embedding_interruption_settings.rbi +10 -0
  112. data/rbi/telnyx/models/ai/inference_embedding_webhook_tool_params.rbi +29 -3
  113. data/rbi/telnyx/models/ai/openai/function_definition.rbi +56 -0
  114. data/rbi/telnyx/models/ai/post_conversation_settings.rbi +4 -4
  115. data/rbi/telnyx/models/ai/post_conversation_settings_req.rbi +4 -4
  116. data/rbi/telnyx/models/ai/privacy_settings.rbi +43 -3
  117. data/rbi/telnyx/models/ai/retrieval_tool.rbi +29 -3
  118. data/rbi/telnyx/models/ai/telephony_settings.rbi +174 -20
  119. data/rbi/telnyx/models/ai/tool_node.rbi +4 -2
  120. data/rbi/telnyx/models/ai/transcription_settings.rbi +25 -6
  121. data/rbi/telnyx/models/ai/transcription_settings_config.rbi +18 -16
  122. data/rbi/telnyx/models/ai/typesafe/v1_systemone_params.rbi +504 -0
  123. data/rbi/telnyx/models/ai/typesafe/v1_systemone_response.rbi +348 -0
  124. data/rbi/telnyx/models/bot_challenge_create_params.rbi +68 -0
  125. data/rbi/telnyx/models/bot_challenge_create_response.rbi +169 -0
  126. data/rbi/telnyx/models/bot_session_list_params.rbi +53 -0
  127. data/rbi/telnyx/models/bot_session_list_response.rbi +64 -0
  128. data/rbi/telnyx/models/bot_signup_create_params.rbi +179 -0
  129. data/rbi/telnyx/models/bot_signup_resend_magic_link_params.rbi +43 -0
  130. data/rbi/telnyx/models/call_dial_params.rbi +111 -10
  131. data/rbi/telnyx/models/calls/action_transfer_params.rbi +111 -10
  132. data/rbi/telnyx/models/calls/transcription_config.rbi +29 -5
  133. data/rbi/telnyx/models/calls/transcription_engine_assemblyai_config.rbi +11 -3
  134. data/rbi/telnyx/models/calls/transcription_engine_parakeet_config.rbi +5 -0
  135. data/rbi/telnyx/models/compute/funcs/export_create_params.rbi +84 -0
  136. data/rbi/telnyx/models/compute/funcs/export_delete_all_params.rbi +42 -0
  137. data/rbi/telnyx/models/compute/funcs/export_list_params.rbi +42 -0
  138. data/rbi/telnyx/models/compute/funcs/func_log_export_config_response.rbi +227 -0
  139. data/rbi/telnyx/models/connection_retrieve_count_params.rbi +30 -0
  140. data/rbi/telnyx/models/connection_retrieve_count_response.rbi +353 -0
  141. data/rbi/telnyx/models/detail_record_list_params.rbi +30 -2
  142. data/rbi/telnyx/models/inbound_message_webhook_event.rbi +4 -173
  143. data/rbi/telnyx/models/machine_payment_account_credit_params.rbi +51 -0
  144. data/rbi/telnyx/models/machine_payment_account_credit_response.rbi +446 -0
  145. data/rbi/telnyx/models/message_retrieve_group_messages_response.rbi +6 -12
  146. data/rbi/telnyx/models/message_retrieve_response.rbi +3 -3
  147. data/rbi/telnyx/models/message_schedule_response.rbi +4 -6
  148. data/rbi/telnyx/models/message_send_group_mms_response.rbi +4 -6
  149. data/rbi/telnyx/models/message_send_long_code_response.rbi +4 -6
  150. data/rbi/telnyx/models/message_send_number_pool_response.rbi +4 -6
  151. data/rbi/telnyx/models/message_send_response.rbi +4 -6
  152. data/rbi/telnyx/models/message_send_short_code_response.rbi +4 -6
  153. data/rbi/telnyx/models/messaging_inbound_message.rbi +152 -0
  154. data/rbi/telnyx/models/messaging_inbound_message_payload.rbi +477 -15
  155. data/rbi/telnyx/models/messaging_outbound_message_payload.rbi +90 -16
  156. data/rbi/telnyx/models/noise_suppression_engine_list_params.rbi +30 -0
  157. data/rbi/telnyx/models/noise_suppression_engine_list_response.rbi +94 -0
  158. data/rbi/telnyx/models/number_order_status_update.rbi +34 -3
  159. data/rbi/telnyx/models/number_order_status_update_webhook_event.rbi +39 -3
  160. data/rbi/telnyx/models/outbound_message.rbi +5 -0
  161. data/rbi/telnyx/models/outbound_message_payload.rbi +74 -4
  162. data/rbi/telnyx/models/speech_to_text_retrieve_transcription_params.rbi +5 -0
  163. data/rbi/telnyx/models/success_response.rbi +36 -0
  164. data/rbi/telnyx/models/texml/accounts/call_calls_params.rbi +339 -0
  165. data/rbi/telnyx/models/texml/accounts/conferences/participant_participants_params.rbi +111 -0
  166. data/rbi/telnyx/models/texml/call_create_params.rbi +124 -0
  167. data/rbi/telnyx/models/texml/call_create_response.rbi +98 -0
  168. data/rbi/telnyx/models/texml_initiate_ai_call_params.rbi +103 -0
  169. data/rbi/telnyx/models/voice_clone_create_from_upload_params.rbi +4 -4
  170. data/rbi/telnyx/models.rbi +21 -0
  171. data/rbi/telnyx/resources/ai/assistants/versions.rbi +19 -7
  172. data/rbi/telnyx/resources/ai/assistants.rbi +25 -12
  173. data/rbi/telnyx/resources/ai/audio.rbi +20 -9
  174. data/rbi/telnyx/resources/ai/typesafe/v1.rbi +61 -0
  175. data/rbi/telnyx/resources/ai/typesafe.rbi +19 -0
  176. data/rbi/telnyx/resources/ai.rbi +3 -0
  177. data/rbi/telnyx/resources/bot_challenge.rbi +45 -0
  178. data/rbi/telnyx/resources/bot_sessions.rbi +45 -0
  179. data/rbi/telnyx/resources/bot_signup.rbi +87 -0
  180. data/rbi/telnyx/resources/calls/actions.rbi +6 -5
  181. data/rbi/telnyx/resources/calls.rbi +6 -5
  182. data/rbi/telnyx/resources/compute/funcs/export.rbi +86 -0
  183. data/rbi/telnyx/resources/compute/funcs.rbi +3 -0
  184. data/rbi/telnyx/resources/connections.rbi +11 -0
  185. data/rbi/telnyx/resources/detail_records.rbi +12 -1
  186. data/rbi/telnyx/resources/email_messages.rbi +5 -3
  187. data/rbi/telnyx/resources/machine_payments.rbi +64 -0
  188. data/rbi/telnyx/resources/noise_suppression_engines.rbi +26 -0
  189. data/rbi/telnyx/resources/texml/accounts/conferences/participants.rbi +32 -0
  190. data/rbi/telnyx/resources/texml/calls.rbi +50 -0
  191. data/rbi/telnyx/resources/texml.rbi +36 -0
  192. data/rbi/telnyx/resources/voice_clones.rbi +4 -2
  193. data/sig/telnyx/client.rbs +10 -0
  194. data/sig/telnyx/models/ai/assistant_tool.rbs +162 -23
  195. data/sig/telnyx/models/ai/audio_transcribe_params.rbs +10 -0
  196. data/sig/telnyx/models/ai/audio_transcribe_response.rbs +29 -43
  197. data/sig/telnyx/models/ai/audio_transcription_response_word.rbs +60 -0
  198. data/sig/telnyx/models/ai/chat_completion_request.rbs +4 -35
  199. data/sig/telnyx/models/ai/inference_embedding_interruption_settings.rbs +5 -0
  200. data/sig/telnyx/models/ai/inference_embedding_webhook_tool_params.rbs +10 -3
  201. data/sig/telnyx/models/ai/openai/function_definition.rbs +34 -0
  202. data/sig/telnyx/models/ai/privacy_settings.rbs +11 -3
  203. data/sig/telnyx/models/ai/retrieval_tool.rbs +10 -3
  204. data/sig/telnyx/models/ai/telephony_settings.rbs +52 -4
  205. data/sig/telnyx/models/ai/transcription_settings.rbs +4 -0
  206. data/sig/telnyx/models/ai/typesafe/v1_systemone_params.rbs +195 -0
  207. data/sig/telnyx/models/ai/typesafe/v1_systemone_response.rbs +141 -0
  208. data/sig/telnyx/models/bot_challenge_create_params.rbs +42 -0
  209. data/sig/telnyx/models/bot_challenge_create_response.rbs +72 -0
  210. data/sig/telnyx/models/bot_session_list_params.rbs +28 -0
  211. data/sig/telnyx/models/bot_session_list_response.rbs +26 -0
  212. data/sig/telnyx/models/bot_signup_create_params.rbs +89 -0
  213. data/sig/telnyx/models/bot_signup_resend_magic_link_params.rbs +20 -0
  214. data/sig/telnyx/models/call_dial_params.rbs +49 -0
  215. data/sig/telnyx/models/calls/action_transfer_params.rbs +49 -0
  216. data/sig/telnyx/models/calls/transcription_config.rbs +4 -0
  217. data/sig/telnyx/models/calls/transcription_engine_assemblyai_config.rbs +3 -1
  218. data/sig/telnyx/models/calls/transcription_engine_parakeet_config.rbs +3 -1
  219. data/sig/telnyx/models/compute/funcs/export_create_params.rbs +50 -0
  220. data/sig/telnyx/models/compute/funcs/export_delete_all_params.rbs +27 -0
  221. data/sig/telnyx/models/compute/funcs/export_list_params.rbs +27 -0
  222. data/sig/telnyx/models/compute/funcs/func_log_export_config_response.rbs +115 -0
  223. data/sig/telnyx/models/connection_retrieve_count_params.rbs +15 -0
  224. data/sig/telnyx/models/connection_retrieve_count_response.rbs +169 -0
  225. data/sig/telnyx/models/inbound_message_webhook_event.rbs +6 -79
  226. data/sig/telnyx/models/machine_payment_account_credit_params.rbs +23 -0
  227. data/sig/telnyx/models/machine_payment_account_credit_response.rbs +164 -0
  228. data/sig/telnyx/models/message_retrieve_group_messages_response.rbs +6 -8
  229. data/sig/telnyx/models/message_retrieve_response.rbs +1 -2
  230. data/sig/telnyx/models/message_schedule_response.rbs +6 -7
  231. data/sig/telnyx/models/message_send_group_mms_response.rbs +6 -6
  232. data/sig/telnyx/models/message_send_long_code_response.rbs +6 -6
  233. data/sig/telnyx/models/message_send_number_pool_response.rbs +6 -6
  234. data/sig/telnyx/models/message_send_response.rbs +6 -7
  235. data/sig/telnyx/models/message_send_short_code_response.rbs +6 -6
  236. data/sig/telnyx/models/messaging_inbound_message.rbs +76 -0
  237. data/sig/telnyx/models/messaging_inbound_message_payload.rbs +235 -6
  238. data/sig/telnyx/models/messaging_outbound_message_payload.rbs +39 -1
  239. data/sig/telnyx/models/noise_suppression_engine_list_params.rbs +15 -0
  240. data/sig/telnyx/models/noise_suppression_engine_list_response.rbs +43 -0
  241. data/sig/telnyx/models/number_order_status_update.rbs +14 -4
  242. data/sig/telnyx/models/number_order_status_update_webhook_event.rbs +14 -4
  243. data/sig/telnyx/models/outbound_message.rbs +2 -1
  244. data/sig/telnyx/models/outbound_message_payload.rbs +45 -7
  245. data/sig/telnyx/models/speech_to_text_retrieve_transcription_params.rbs +2 -0
  246. data/sig/telnyx/models/success_response.rbs +15 -0
  247. data/sig/telnyx/models/texml/accounts/call_calls_params.rbs +159 -0
  248. data/sig/telnyx/models/texml/accounts/conferences/participant_participants_params.rbs +49 -0
  249. data/sig/telnyx/models/texml/call_create_params.rbs +72 -0
  250. data/sig/telnyx/models/texml/call_create_response.rbs +47 -0
  251. data/sig/telnyx/models/texml_initiate_ai_call_params.rbs +49 -0
  252. data/sig/telnyx/models.rbs +18 -0
  253. data/sig/telnyx/resources/ai/typesafe/v1.rbs +17 -0
  254. data/sig/telnyx/resources/ai/typesafe.rbs +11 -0
  255. data/sig/telnyx/resources/ai.rbs +2 -0
  256. data/sig/telnyx/resources/bot_challenge.rbs +14 -0
  257. data/sig/telnyx/resources/bot_sessions.rbs +13 -0
  258. data/sig/telnyx/resources/bot_signup.rbs +24 -0
  259. data/sig/telnyx/resources/compute/funcs/export.rbs +30 -0
  260. data/sig/telnyx/resources/compute/funcs.rbs +2 -0
  261. data/sig/telnyx/resources/connections.rbs +4 -0
  262. data/sig/telnyx/resources/machine_payments.rbs +12 -0
  263. data/sig/telnyx/resources/noise_suppression_engines.rbs +11 -0
  264. data/sig/telnyx/resources/texml/accounts/conferences/participants.rbs +7 -0
  265. data/sig/telnyx/resources/texml/calls.rbs +19 -0
  266. data/sig/telnyx/resources/texml.rbs +9 -0
  267. metadata +101 -2
@@ -15,11 +15,30 @@ module Telnyx
15
15
  # @return [Boolean, nil]
16
16
  optional :data_retention, Telnyx::Internal::Type::Boolean
17
17
 
18
- # @!method initialize(data_retention: nil)
18
+ # @!attribute in_transit_data_locality
19
+ # Requires every model call made for a web chat turn to be received and served
20
+ # inside your organization's data-locality region, rather than only stored there.
21
+ # Applies to web chat only — voice and messaging assistants are unaffected.
22
+ # Enabling it requires a data-locality region with in-region inference (USA, EU,
23
+ # AUS, UAE; see
24
+ # [Inference regions](https://developers.telnyx.com/docs/inference/models/regions))
25
+ # and Telnyx-hosted models for the assistant, its fallback, and any
26
+ # conversation-flow node that overrides the model; the request is rejected
27
+ # otherwise. Once enabled, send chat requests to your region's API hostname: a
28
+ # request entering the platform in another region is rejected rather than
29
+ # forwarded, because forwarding it would already have moved the content across the
30
+ # border. Defaults to false.
31
+ #
32
+ # @return [Boolean, nil]
33
+ optional :in_transit_data_locality, Telnyx::Internal::Type::Boolean
34
+
35
+ # @!method initialize(data_retention: nil, in_transit_data_locality: nil)
19
36
  # Some parameter documentations has been truncated, see
20
37
  # {Telnyx::Models::AI::PrivacySettings} for more details.
21
38
  #
22
39
  # @param data_retention [Boolean] If true, conversation history and insights will be stored. If false, they will n
40
+ #
41
+ # @param in_transit_data_locality [Boolean] Requires every model call made for a web chat turn to be received and served ins
23
42
  end
24
43
  end
25
44
  end
@@ -14,9 +14,29 @@ module Telnyx
14
14
  # @return [Symbol, Telnyx::Models::AI::RetrievalTool::Type]
15
15
  required :type, enum: -> { Telnyx::AI::RetrievalTool::Type }
16
16
 
17
- # @!method initialize(retrieval:, type:)
17
+ response_only do
18
+ # @!attribute shared
19
+ # Whether this tool comes from the shared Tools Library. Responses merge shared
20
+ # tools into `tools` with `shared: true`; inline tools carry `shared: false`.
21
+ # Read-only: set by the server, not accepted in requests. When updating an
22
+ # assistant, omit `shared: true` tools from the request `tools` array and manage
23
+ # them through `tool_ids` instead — re-sending their definitions creates an inline
24
+ # duplicate (rejected with error code 10015 when the type allows only one instance
25
+ # per assistant).
26
+ #
27
+ # @return [Boolean, nil]
28
+ optional :shared, Telnyx::Internal::Type::Boolean
29
+ end
30
+
31
+ # @!method initialize(retrieval:, type:, shared: nil)
32
+ # Some parameter documentations has been truncated, see
33
+ # {Telnyx::Models::AI::RetrievalTool} for more details.
34
+ #
18
35
  # @param retrieval [Telnyx::Models::AI::BucketIDs]
36
+ #
19
37
  # @param type [Symbol, Telnyx::Models::AI::RetrievalTool::Type]
38
+ #
39
+ # @param shared [Boolean] Whether this tool comes from the shared Tools Library. Responses merge shared to
20
40
 
21
41
  # @see Telnyx::Models::AI::RetrievalTool#type
22
42
  module Type
@@ -32,15 +32,18 @@ module Telnyx
32
32
  optional :fallback_destination, String
33
33
 
34
34
  # @!attribute noise_suppression
35
- # The noise suppression engine to use. Use 'disabled' to turn off noise
36
- # suppression.
35
+ # The noise suppression engine to use. 'aicoustics' is STT-optimized and
36
+ # recommended for AI assistants (configure through noise_suppression_config). Use
37
+ # 'disabled' to turn off noise suppression.
37
38
  #
38
39
  # @return [Symbol, Telnyx::Models::AI::TelephonySettings::NoiseSuppression, nil]
39
40
  optional :noise_suppression, enum: -> { Telnyx::AI::TelephonySettings::NoiseSuppression }
40
41
 
41
42
  # @!attribute noise_suppression_config
42
- # Configuration for noise suppression. Only applicable when noise_suppression is
43
- # 'deepfilternet'.
43
+ # Configuration for noise suppression. Applicable fields depend on the engine:
44
+ # 'attenuation_limit' and 'mode' only when noise_suppression is 'deepfilternet';
45
+ # 'family', 'size' and 'enhancement_level' only when noise_suppression is
46
+ # 'aicoustics'.
44
47
  #
45
48
  # @return [Telnyx::Models::AI::TelephonySettings::NoiseSuppressionConfig, nil]
46
49
  optional :noise_suppression_config, -> { Telnyx::AI::TelephonySettings::NoiseSuppressionConfig }
@@ -119,9 +122,9 @@ module Telnyx
119
122
  #
120
123
  # @param fallback_destination [String] Destination number or SIP URI to transfer the caller to when the AI conversation
121
124
  #
122
- # @param noise_suppression [Symbol, Telnyx::Models::AI::TelephonySettings::NoiseSuppression] The noise suppression engine to use. Use 'disabled' to turn off noise suppressio
125
+ # @param noise_suppression [Symbol, Telnyx::Models::AI::TelephonySettings::NoiseSuppression] The noise suppression engine to use. 'aicoustics' is STT-optimized and recommend
123
126
  #
124
- # @param noise_suppression_config [Telnyx::Models::AI::TelephonySettings::NoiseSuppressionConfig] Configuration for noise suppression. Only applicable when noise_suppression is '
127
+ # @param noise_suppression_config [Telnyx::Models::AI::TelephonySettings::NoiseSuppressionConfig] Configuration for noise suppression. Applicable fields depend on the engine: 'at
125
128
  #
126
129
  # @param recording_settings [Telnyx::Models::AI::TelephonySettings::RecordingSettings] Configuration for call recording format and channel settings.
127
130
  #
@@ -137,13 +140,15 @@ module Telnyx
137
140
  #
138
141
  # @param voicemail_detection [Telnyx::Models::AI::TelephonySettings::VoicemailDetection] Configuration for voicemail detection (AMD - Answering Machine Detection) on out
139
142
 
140
- # The noise suppression engine to use. Use 'disabled' to turn off noise
141
- # suppression.
143
+ # The noise suppression engine to use. 'aicoustics' is STT-optimized and
144
+ # recommended for AI assistants (configure through noise_suppression_config). Use
145
+ # 'disabled' to turn off noise suppression.
142
146
  #
143
147
  # @see Telnyx::Models::AI::TelephonySettings#noise_suppression
144
148
  module NoiseSuppression
145
149
  extend Telnyx::Internal::Type::Enum
146
150
 
151
+ AICOUSTICS = :aicoustics
147
152
  KRISP = :krisp
148
153
  DEEPFILTERNET = :deepfilternet
149
154
  DISABLED = :disabled
@@ -155,26 +160,76 @@ module Telnyx
155
160
  # @see Telnyx::Models::AI::TelephonySettings#noise_suppression_config
156
161
  class NoiseSuppressionConfig < Telnyx::Internal::Type::BaseModel
157
162
  # @!attribute attenuation_limit
158
- # Attenuation limit for noise suppression. Range: 0-100.
163
+ # Attenuation limit for noise suppression. Range: 0-100. Only applicable when
164
+ # noise_suppression is 'deepfilternet'.
159
165
  #
160
166
  # @return [Integer, nil]
161
167
  optional :attenuation_limit, Integer
162
168
 
169
+ # @!attribute enhancement_level
170
+ # AiCoustics enhancement intensity. Range: 0-1. Only applicable when
171
+ # noise_suppression is 'aicoustics'.
172
+ #
173
+ # @return [Float, nil]
174
+ optional :enhancement_level, Float
175
+
176
+ # @!attribute family
177
+ # AiCoustics model family optimized for Voice AI and STT. Only applicable when
178
+ # noise_suppression is 'aicoustics'.
179
+ #
180
+ # @return [Symbol, Telnyx::Models::AI::TelephonySettings::NoiseSuppressionConfig::Family, nil]
181
+ optional :family, enum: -> { Telnyx::AI::TelephonySettings::NoiseSuppressionConfig::Family }
182
+
163
183
  # @!attribute mode
164
- # Mode for noise suppression configuration.
184
+ # Mode for noise suppression configuration. Only applicable when noise_suppression
185
+ # is 'deepfilternet'.
165
186
  #
166
187
  # @return [Symbol, Telnyx::Models::AI::TelephonySettings::NoiseSuppressionConfig::Mode, nil]
167
188
  optional :mode, enum: -> { Telnyx::AI::TelephonySettings::NoiseSuppressionConfig::Mode }
168
189
 
169
- # @!method initialize(attenuation_limit: nil, mode: nil)
170
- # Configuration for noise suppression. Only applicable when noise_suppression is
171
- # 'deepfilternet'.
190
+ # @!attribute size
191
+ # AiCoustics model size. 'vf' tracks the latest model release; 'vf_2_0_l' is
192
+ # pinned to version 2.0 for consistent, predictable behavior. Only applicable when
193
+ # noise_suppression is 'aicoustics'.
194
+ #
195
+ # @return [Symbol, Telnyx::Models::AI::TelephonySettings::NoiseSuppressionConfig::Size, nil]
196
+ optional :size, enum: -> { Telnyx::AI::TelephonySettings::NoiseSuppressionConfig::Size }
197
+
198
+ # @!method initialize(attenuation_limit: nil, enhancement_level: nil, family: nil, mode: nil, size: nil)
199
+ # Some parameter documentations has been truncated, see
200
+ # {Telnyx::Models::AI::TelephonySettings::NoiseSuppressionConfig} for more
201
+ # details.
172
202
  #
173
- # @param attenuation_limit [Integer] Attenuation limit for noise suppression. Range: 0-100.
203
+ # Configuration for noise suppression. Applicable fields depend on the engine:
204
+ # 'attenuation_limit' and 'mode' only when noise_suppression is 'deepfilternet';
205
+ # 'family', 'size' and 'enhancement_level' only when noise_suppression is
206
+ # 'aicoustics'.
174
207
  #
175
- # @param mode [Symbol, Telnyx::Models::AI::TelephonySettings::NoiseSuppressionConfig::Mode] Mode for noise suppression configuration.
208
+ # @param attenuation_limit [Integer] Attenuation limit for noise suppression. Range: 0-100. Only applicable when nois
209
+ #
210
+ # @param enhancement_level [Float] AiCoustics enhancement intensity. Range: 0-1. Only applicable when noise_suppres
211
+ #
212
+ # @param family [Symbol, Telnyx::Models::AI::TelephonySettings::NoiseSuppressionConfig::Family] AiCoustics model family optimized for Voice AI and STT. Only applicable when noi
213
+ #
214
+ # @param mode [Symbol, Telnyx::Models::AI::TelephonySettings::NoiseSuppressionConfig::Mode] Mode for noise suppression configuration. Only applicable when noise_suppression
215
+ #
216
+ # @param size [Symbol, Telnyx::Models::AI::TelephonySettings::NoiseSuppressionConfig::Size] AiCoustics model size. 'vf' tracks the latest model release; 'vf_2_0_l' is pinne
176
217
 
177
- # Mode for noise suppression configuration.
218
+ # AiCoustics model family optimized for Voice AI and STT. Only applicable when
219
+ # noise_suppression is 'aicoustics'.
220
+ #
221
+ # @see Telnyx::Models::AI::TelephonySettings::NoiseSuppressionConfig#family
222
+ module Family
223
+ extend Telnyx::Internal::Type::Enum
224
+
225
+ QUAIL = :quail
226
+
227
+ # @!method self.values
228
+ # @return [Array<Symbol>]
229
+ end
230
+
231
+ # Mode for noise suppression configuration. Only applicable when noise_suppression
232
+ # is 'deepfilternet'.
178
233
  #
179
234
  # @see Telnyx::Models::AI::TelephonySettings::NoiseSuppressionConfig#mode
180
235
  module Mode
@@ -185,6 +240,21 @@ module Telnyx
185
240
  # @!method self.values
186
241
  # @return [Array<Symbol>]
187
242
  end
243
+
244
+ # AiCoustics model size. 'vf' tracks the latest model release; 'vf_2_0_l' is
245
+ # pinned to version 2.0 for consistent, predictable behavior. Only applicable when
246
+ # noise_suppression is 'aicoustics'.
247
+ #
248
+ # @see Telnyx::Models::AI::TelephonySettings::NoiseSuppressionConfig#size
249
+ module Size
250
+ extend Telnyx::Internal::Type::Enum
251
+
252
+ VF = :vf
253
+ VF_2_0_L = :vf_2_0_l
254
+
255
+ # @!method self.values
256
+ # @return [Array<Symbol>]
257
+ end
188
258
  end
189
259
 
190
260
  # @see Telnyx::Models::AI::TelephonySettings#recording_settings
@@ -40,7 +40,7 @@ module Telnyx
40
40
  # responses so clients can render the node without a follow-up fetch. Ignored on
41
41
  # input — set `shared_tool_id`.
42
42
  #
43
- # @return [Array<Telnyx::Models::AI::InferenceEmbeddingWebhookToolParams, Telnyx::Models::AI::AssistantTool::ClientSideTool, Telnyx::Models::AI::RetrievalTool, Telnyx::Models::AI::AssistantTool::Handoff, Telnyx::Models::AI::HangupTool, Telnyx::Models::AI::AssistantTool::Transfer, Telnyx::Models::AI::AssistantTool::Invite, Telnyx::Models::AI::AssistantTool::Refer, Telnyx::Models::AI::AssistantTool::SendDtmf, Telnyx::Models::AI::AssistantTool::SendMessage, Telnyx::Models::AI::AssistantTool::SkipTurn, Telnyx::Models::AI::AssistantTool::Pay, Telnyx::Models::AI::AssistantTool::UpdateDynamicVariables>, nil]
43
+ # @return [Array<Telnyx::Models::AI::AssistantTool::Function, Telnyx::Models::AI::InferenceEmbeddingWebhookToolParams, Telnyx::Models::AI::AssistantTool::ClientSideTool, Telnyx::Models::AI::RetrievalTool, Telnyx::Models::AI::AssistantTool::Handoff, Telnyx::Models::AI::AssistantTool::Hangup, Telnyx::Models::AI::AssistantTool::Transfer, Telnyx::Models::AI::AssistantTool::Invite, Telnyx::Models::AI::AssistantTool::Refer, Telnyx::Models::AI::AssistantTool::SendDtmf, Telnyx::Models::AI::AssistantTool::SendMessage, Telnyx::Models::AI::AssistantTool::SkipTurn, Telnyx::Models::AI::AssistantTool::Pay, Telnyx::Models::AI::AssistantTool::UpdateDynamicVariables>, nil]
44
44
  optional :tool, -> { Telnyx::Internal::Type::ArrayOf[union: Telnyx::AI::AssistantTool] }
45
45
 
46
46
  # @!attribute type
@@ -63,7 +63,7 @@ module Telnyx
63
63
  #
64
64
  # @param position [Telnyx::Models::AI::NodePosition] Optional canvas coordinates used by authoring UIs to lay out the graph. Ignored
65
65
  #
66
- # @param tool [Array<Telnyx::Models::AI::InferenceEmbeddingWebhookToolParams, Telnyx::Models::AI::AssistantTool::ClientSideTool, Telnyx::Models::AI::RetrievalTool, Telnyx::Models::AI::AssistantTool::Handoff, Telnyx::Models::AI::HangupTool, Telnyx::Models::AI::AssistantTool::Transfer, Telnyx::Models::AI::AssistantTool::Invite, Telnyx::Models::AI::AssistantTool::Refer, Telnyx::Models::AI::AssistantTool::SendDtmf, Telnyx::Models::AI::AssistantTool::SendMessage, Telnyx::Models::AI::AssistantTool::SkipTurn, Telnyx::Models::AI::AssistantTool::Pay, Telnyx::Models::AI::AssistantTool::UpdateDynamicVariables>] Full tool definition resolved from `shared_tool_id` server-side. Populated on re
66
+ # @param tool [Array<Telnyx::Models::AI::AssistantTool::Function, Telnyx::Models::AI::InferenceEmbeddingWebhookToolParams, Telnyx::Models::AI::AssistantTool::ClientSideTool, Telnyx::Models::AI::RetrievalTool, Telnyx::Models::AI::AssistantTool::Handoff, Telnyx::Models::AI::AssistantTool::Hangup, Telnyx::Models::AI::AssistantTool::Transfer, Telnyx::Models::AI::AssistantTool::Invite, Telnyx::Models::AI::AssistantTool::Refer, Telnyx::Models::AI::AssistantTool::SendDtmf, Telnyx::Models::AI::AssistantTool::SendMessage, Telnyx::Models::AI::AssistantTool::SkipTurn, Telnyx::Models::AI::AssistantTool::Pay, Telnyx::Models::AI::AssistantTool::UpdateDynamicVariables>] Full tool definition resolved from `shared_tool_id` server-side. Populated on re
67
67
  #
68
68
  # @param type [Symbol, Telnyx::Models::AI::ToolNode::Type] Node kind discriminator. Always `tool` for a tool node.
69
69
 
@@ -41,14 +41,17 @@ module Telnyx
41
41
  # - `deepgram/nova-3` is multilingual with automatic language detection.
42
42
  # - `deepgram/nova-2` is Deepgram's previous-generation multilingual model.
43
43
  # - `azure/fast` is a multilingual Azure transcription model.
44
- # - `assemblyai/universal-streaming` is a multilingual streaming model with
45
- # configurable turn detection.
44
+ # - `assemblyai/universal-3-5-pro` is a multilingual streaming model with
45
+ # configurable turn detection. The legacy alias `assemblyai/universal-streaming`
46
+ # is still accepted and resolves to the same model.
46
47
  # - `xai/grok-stt` is a multilingual Grok STT model.
47
48
  # - `soniox/stt-rt-v4` and `soniox/stt-rt-v5` are multilingual streaming models
48
49
  # with automatic language detection, configurable endpointing, term biasing
49
50
  # (`context`), and `language_hints`.
50
51
  # - `nvidia/parakeet-v3` is a multilingual transcription model with automatic
51
52
  # language detection.
53
+ # - `omi-health/omi-med-stt-v1` is an English-only medical transcription model
54
+ # (Parakeet-based).
52
55
  # - `humain/realtime` is a streaming model with native Arabic and Arabic/English
53
56
  # code-switching support.
54
57
  # - `reson8/turns` is a turn-based streaming model covering 10 European languages
@@ -91,14 +94,17 @@ module Telnyx
91
94
  # - `deepgram/nova-3` is multilingual with automatic language detection.
92
95
  # - `deepgram/nova-2` is Deepgram's previous-generation multilingual model.
93
96
  # - `azure/fast` is a multilingual Azure transcription model.
94
- # - `assemblyai/universal-streaming` is a multilingual streaming model with
95
- # configurable turn detection.
97
+ # - `assemblyai/universal-3-5-pro` is a multilingual streaming model with
98
+ # configurable turn detection. The legacy alias `assemblyai/universal-streaming`
99
+ # is still accepted and resolves to the same model.
96
100
  # - `xai/grok-stt` is a multilingual Grok STT model.
97
101
  # - `soniox/stt-rt-v4` and `soniox/stt-rt-v5` are multilingual streaming models
98
102
  # with automatic language detection, configurable endpointing, term biasing
99
103
  # (`context`), and `language_hints`.
100
104
  # - `nvidia/parakeet-v3` is a multilingual transcription model with automatic
101
105
  # language detection.
106
+ # - `omi-health/omi-med-stt-v1` is an English-only medical transcription model
107
+ # (Parakeet-based).
102
108
  # - `humain/realtime` is a streaming model with native Arabic and Arabic/English
103
109
  # code-switching support.
104
110
  # - `reson8/turns` is a turn-based streaming model covering 10 European languages
@@ -113,11 +119,13 @@ module Telnyx
113
119
  DEEPGRAM_NOVA_3 = :"deepgram/nova-3"
114
120
  DEEPGRAM_NOVA_2 = :"deepgram/nova-2"
115
121
  AZURE_FAST = :"azure/fast"
122
+ ASSEMBLYAI_UNIVERSAL_3_5_PRO = :"assemblyai/universal-3-5-pro"
116
123
  ASSEMBLYAI_UNIVERSAL_STREAMING = :"assemblyai/universal-streaming"
117
124
  XAI_GROK_STT = :"xai/grok-stt"
118
125
  SONIOX_STT_RT_V4 = :"soniox/stt-rt-v4"
119
126
  SONIOX_STT_RT_V5 = :"soniox/stt-rt-v5"
120
127
  NVIDIA_PARAKEET_V3 = :"nvidia/parakeet-v3"
128
+ OMI_HEALTH_OMI_MED_STT_V1 = :"omi-health/omi-med-stt-v1"
121
129
  HUMAIN_REALTIME = :"humain/realtime"
122
130
  RESON8_TURNS = :"reson8/turns"
123
131
  COHERE_AR_STT = :"cohere/ar-stt"
@@ -33,9 +33,9 @@ module Telnyx
33
33
  optional :enable_endpoint_detection, Telnyx::Internal::Type::Boolean
34
34
 
35
35
  # @!attribute end_of_turn_confidence_threshold
36
- # Available only for assemblyai/universal-streaming. Confidence level required to
37
- # trigger an end of turn. Higher values require more certainty before ending a
38
- # turn.
36
+ # Available only for assemblyai/universal-3-5-pro (and its legacy alias
37
+ # assemblyai/universal-streaming). Confidence level required to trigger an end of
38
+ # turn. Higher values require more certainty before ending a turn.
39
39
  #
40
40
  # @return [Float, nil]
41
41
  optional :end_of_turn_confidence_threshold, Float
@@ -90,16 +90,17 @@ module Telnyx
90
90
  optional :max_endpoint_delay_ms, Integer
91
91
 
92
92
  # @!attribute max_turn_silence
93
- # Available only for assemblyai/universal-streaming. Maximum duration of silence
94
- # in milliseconds before forcing an end of turn.
93
+ # Available only for assemblyai/universal-3-5-pro (and its legacy alias
94
+ # assemblyai/universal-streaming). Maximum duration of silence in milliseconds
95
+ # before forcing an end of turn.
95
96
  #
96
97
  # @return [Integer, nil]
97
98
  optional :max_turn_silence, Integer
98
99
 
99
100
  # @!attribute min_turn_silence
100
- # Available only for assemblyai/universal-streaming. Minimum duration of silence
101
- # in milliseconds before a turn can end. Must be less than or equal to
102
- # max_turn_silence.
101
+ # Available only for assemblyai/universal-3-5-pro (and its legacy alias
102
+ # assemblyai/universal-streaming). Minimum duration of silence in milliseconds
103
+ # before a turn can end. Must be less than or equal to max_turn_silence.
103
104
  #
104
105
  # @return [Integer, nil]
105
106
  optional :min_turn_silence, Integer
@@ -124,7 +125,7 @@ module Telnyx
124
125
  #
125
126
  # @param enable_endpoint_detection [Boolean] Available only for soniox/stt-rt-v4 and soniox/stt-rt-v5. When true, Soniox emit
126
127
  #
127
- # @param end_of_turn_confidence_threshold [Float] Available only for assemblyai/universal-streaming. Confidence level required to
128
+ # @param end_of_turn_confidence_threshold [Float] Available only for assemblyai/universal-3-5-pro (and its legacy alias assemblyai
128
129
  #
129
130
  # @param eot_threshold [Float] Available only for deepgram/flux. Confidence required to trigger an end of turn.
130
131
  #
@@ -138,9 +139,9 @@ module Telnyx
138
139
  #
139
140
  # @param max_endpoint_delay_ms [Integer] Available only for soniox/stt-rt-v4 and soniox/stt-rt-v5. Maximum silence (in mi
140
141
  #
141
- # @param max_turn_silence [Integer] Available only for assemblyai/universal-streaming. Maximum duration of silence i
142
+ # @param max_turn_silence [Integer] Available only for assemblyai/universal-3-5-pro (and its legacy alias assemblyai
142
143
  #
143
- # @param min_turn_silence [Integer] Available only for assemblyai/universal-streaming. Minimum duration of silence i
144
+ # @param min_turn_silence [Integer] Available only for assemblyai/universal-3-5-pro (and its legacy alias assemblyai
144
145
  #
145
146
  # @param numerals [Boolean]
146
147
  #
@@ -0,0 +1,268 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Telnyx
4
+ module Models
5
+ module AI
6
+ module Typesafe
7
+ # @see Telnyx::Resources::AI::Typesafe::V1#systemone
8
+ class V1SystemoneParams < Telnyx::Internal::Type::BaseModel
9
+ extend Telnyx::Internal::Type::RequestParameters::Converter
10
+ include Telnyx::Internal::Type::RequestParameters
11
+
12
+ # @!attribute questions
13
+ # Between 1 and 64 named questions. Each key identifies the corresponding answer.
14
+ #
15
+ # @return [Hash{Symbol=>Telnyx::Models::AI::Typesafe::V1SystemoneParams::Question::Choice, Telnyx::Models::AI::Typesafe::V1SystemoneParams::Question::Noul, Telnyx::Models::AI::Typesafe::V1SystemoneParams::Question::Score}]
16
+ required :questions,
17
+ -> { Telnyx::Internal::Type::HashOf[union: Telnyx::AI::Typesafe::V1SystemoneParams::Question] }
18
+
19
+ # @!attribute state
20
+ # Shared context evaluated by every question.
21
+ #
22
+ # @return [String, Hash{Symbol=>Object}, Array<Object>]
23
+ required :state, union: -> { Telnyx::AI::Typesafe::V1SystemoneParams::State }
24
+
25
+ # @!method initialize(questions:, state:, request_options: {})
26
+ # @param questions [Hash{Symbol=>Telnyx::Models::AI::Typesafe::V1SystemoneParams::Question::Choice, Telnyx::Models::AI::Typesafe::V1SystemoneParams::Question::Noul, Telnyx::Models::AI::Typesafe::V1SystemoneParams::Question::Score}] Between 1 and 64 named questions. Each key identifies the corresponding answer.
27
+ #
28
+ # @param state [String, Hash{Symbol=>Object}, Array<Object>] Shared context evaluated by every question.
29
+ #
30
+ # @param request_options [Telnyx::RequestOptions, Hash{Symbol=>Object}]
31
+
32
+ # A choice, yes/no, or ordered-score question.
33
+ module Question
34
+ extend Telnyx::Internal::Type::Union
35
+
36
+ discriminator :type
37
+
38
+ # Select one of the supplied options.
39
+ variant :choice, -> { Telnyx::AI::Typesafe::V1SystemoneParams::Question::Choice }
40
+
41
+ # Evaluate a yes/no question. Omit criteria to use Yes and No descriptions.
42
+ variant :noul, -> { Telnyx::AI::Typesafe::V1SystemoneParams::Question::Noul }
43
+
44
+ # Rate the state against an ordered rubric.
45
+ variant :score, -> { Telnyx::AI::Typesafe::V1SystemoneParams::Question::Score }
46
+
47
+ class Choice < Telnyx::Internal::Type::BaseModel
48
+ # @!attribute criteria
49
+ # Between 2 and 64 option keys mapped to description strings or null. A null
50
+ # description uses the option key as its text.
51
+ #
52
+ # @return [Hash{Symbol=>String, nil}]
53
+ required :criteria, Telnyx::Internal::Type::HashOf[String, nil?: true]
54
+
55
+ # @!attribute instructions
56
+ # Required instructions describing what to decide about the shared state.
57
+ #
58
+ # @return [String, Hash{Symbol=>Object}, Array<Object>]
59
+ required :instructions,
60
+ union: -> { Telnyx::AI::Typesafe::V1SystemoneParams::Question::Choice::Instructions }
61
+
62
+ # @!attribute type
63
+ # Question type.
64
+ #
65
+ # @return [Symbol, :choice]
66
+ required :type, const: :choice
67
+
68
+ # @!method initialize(criteria:, instructions:, type: :choice)
69
+ # Some parameter documentations has been truncated, see
70
+ # {Telnyx::Models::AI::Typesafe::V1SystemoneParams::Question::Choice} for more
71
+ # details.
72
+ #
73
+ # Select one of the supplied options.
74
+ #
75
+ # @param criteria [Hash{Symbol=>String, nil}] Between 2 and 64 option keys mapped to description strings or null. A null descr
76
+ #
77
+ # @param instructions [String, Hash{Symbol=>Object}, Array<Object>] Required instructions describing what to decide about the shared state.
78
+ #
79
+ # @param type [Symbol, :choice] Question type.
80
+
81
+ # Required instructions describing what to decide about the shared state.
82
+ #
83
+ # @see Telnyx::Models::AI::Typesafe::V1SystemoneParams::Question::Choice#instructions
84
+ module Instructions
85
+ extend Telnyx::Internal::Type::Union
86
+
87
+ variant String
88
+
89
+ variant -> { Telnyx::Models::AI::Typesafe::V1SystemoneParams::Question::Choice::Instructions::UnionMember1Map }
90
+
91
+ variant -> { Telnyx::Models::AI::Typesafe::V1SystemoneParams::Question::Choice::Instructions::UnionMember2Array }
92
+
93
+ # @!method self.variants
94
+ # @return [Array(String, Hash{Symbol=>Object}, Array<Object>)]
95
+
96
+ # @type [Telnyx::Internal::Type::Converter]
97
+ UnionMember1Map = Telnyx::Internal::Type::HashOf[Telnyx::Internal::Type::Unknown]
98
+
99
+ # @type [Telnyx::Internal::Type::Converter]
100
+ UnionMember2Array = Telnyx::Internal::Type::ArrayOf[Telnyx::Internal::Type::Unknown]
101
+ end
102
+ end
103
+
104
+ class Noul < Telnyx::Internal::Type::BaseModel
105
+ # @!attribute instructions
106
+ # Required instructions describing what to decide about the shared state.
107
+ #
108
+ # @return [String, Hash{Symbol=>Object}, Array<Object>]
109
+ required :instructions,
110
+ union: -> { Telnyx::AI::Typesafe::V1SystemoneParams::Question::Noul::Instructions }
111
+
112
+ # @!attribute type
113
+ # Question type.
114
+ #
115
+ # @return [Symbol, :noul]
116
+ required :type, const: :noul
117
+
118
+ # @!attribute criteria
119
+ # Optional descriptions for the positive and negative outcomes. Descriptions must
120
+ # be strings.
121
+ #
122
+ # @return [Telnyx::Models::AI::Typesafe::V1SystemoneParams::Question::Noul::Criteria, nil]
123
+ optional :criteria, -> { Telnyx::AI::Typesafe::V1SystemoneParams::Question::Noul::Criteria }
124
+
125
+ # @!method initialize(instructions:, criteria: nil, type: :noul)
126
+ # Some parameter documentations has been truncated, see
127
+ # {Telnyx::Models::AI::Typesafe::V1SystemoneParams::Question::Noul} for more
128
+ # details.
129
+ #
130
+ # Evaluate a yes/no question. Omit criteria to use Yes and No descriptions.
131
+ #
132
+ # @param instructions [String, Hash{Symbol=>Object}, Array<Object>] Required instructions describing what to decide about the shared state.
133
+ #
134
+ # @param criteria [Telnyx::Models::AI::Typesafe::V1SystemoneParams::Question::Noul::Criteria] Optional descriptions for the positive and negative outcomes. Descriptions must
135
+ #
136
+ # @param type [Symbol, :noul] Question type.
137
+
138
+ # Required instructions describing what to decide about the shared state.
139
+ #
140
+ # @see Telnyx::Models::AI::Typesafe::V1SystemoneParams::Question::Noul#instructions
141
+ module Instructions
142
+ extend Telnyx::Internal::Type::Union
143
+
144
+ variant String
145
+
146
+ variant -> { Telnyx::Models::AI::Typesafe::V1SystemoneParams::Question::Noul::Instructions::UnionMember1Map }
147
+
148
+ variant -> { Telnyx::Models::AI::Typesafe::V1SystemoneParams::Question::Noul::Instructions::UnionMember2Array }
149
+
150
+ # @!method self.variants
151
+ # @return [Array(String, Hash{Symbol=>Object}, Array<Object>)]
152
+
153
+ # @type [Telnyx::Internal::Type::Converter]
154
+ UnionMember1Map = Telnyx::Internal::Type::HashOf[Telnyx::Internal::Type::Unknown]
155
+
156
+ # @type [Telnyx::Internal::Type::Converter]
157
+ UnionMember2Array = Telnyx::Internal::Type::ArrayOf[Telnyx::Internal::Type::Unknown]
158
+ end
159
+
160
+ # @see Telnyx::Models::AI::Typesafe::V1SystemoneParams::Question::Noul#criteria
161
+ class Criteria < Telnyx::Internal::Type::BaseModel
162
+ # @!attribute false_
163
+ # Description of the negative outcome.
164
+ #
165
+ # @return [String, nil]
166
+ optional :false_, String, api_name: :false
167
+
168
+ # @!attribute true_
169
+ # Description of the positive outcome.
170
+ #
171
+ # @return [String, nil]
172
+ optional :true_, String, api_name: :true
173
+
174
+ # @!method initialize(false_: nil, true_: nil)
175
+ # Optional descriptions for the positive and negative outcomes. Descriptions must
176
+ # be strings.
177
+ #
178
+ # @param false_ [String] Description of the negative outcome.
179
+ #
180
+ # @param true_ [String] Description of the positive outcome.
181
+ end
182
+ end
183
+
184
+ class Score < Telnyx::Internal::Type::BaseModel
185
+ # @!attribute criteria
186
+ # Between 2 and 64 description strings in ascending score order. Indices start at
187
+ # zero.
188
+ #
189
+ # @return [Array<String>]
190
+ required :criteria, Telnyx::Internal::Type::ArrayOf[String]
191
+
192
+ # @!attribute instructions
193
+ # Required instructions describing what to decide about the shared state.
194
+ #
195
+ # @return [String, Hash{Symbol=>Object}, Array<Object>]
196
+ required :instructions,
197
+ union: -> { Telnyx::AI::Typesafe::V1SystemoneParams::Question::Score::Instructions }
198
+
199
+ # @!attribute type
200
+ # Question type.
201
+ #
202
+ # @return [Symbol, :score]
203
+ required :type, const: :score
204
+
205
+ # @!method initialize(criteria:, instructions:, type: :score)
206
+ # Some parameter documentations has been truncated, see
207
+ # {Telnyx::Models::AI::Typesafe::V1SystemoneParams::Question::Score} for more
208
+ # details.
209
+ #
210
+ # Rate the state against an ordered rubric.
211
+ #
212
+ # @param criteria [Array<String>] Between 2 and 64 description strings in ascending score order. Indices start at
213
+ #
214
+ # @param instructions [String, Hash{Symbol=>Object}, Array<Object>] Required instructions describing what to decide about the shared state.
215
+ #
216
+ # @param type [Symbol, :score] Question type.
217
+
218
+ # Required instructions describing what to decide about the shared state.
219
+ #
220
+ # @see Telnyx::Models::AI::Typesafe::V1SystemoneParams::Question::Score#instructions
221
+ module Instructions
222
+ extend Telnyx::Internal::Type::Union
223
+
224
+ variant String
225
+
226
+ variant -> { Telnyx::Models::AI::Typesafe::V1SystemoneParams::Question::Score::Instructions::UnionMember1Map }
227
+
228
+ variant -> { Telnyx::Models::AI::Typesafe::V1SystemoneParams::Question::Score::Instructions::UnionMember2Array }
229
+
230
+ # @!method self.variants
231
+ # @return [Array(String, Hash{Symbol=>Object}, Array<Object>)]
232
+
233
+ # @type [Telnyx::Internal::Type::Converter]
234
+ UnionMember1Map = Telnyx::Internal::Type::HashOf[Telnyx::Internal::Type::Unknown]
235
+
236
+ # @type [Telnyx::Internal::Type::Converter]
237
+ UnionMember2Array = Telnyx::Internal::Type::ArrayOf[Telnyx::Internal::Type::Unknown]
238
+ end
239
+ end
240
+
241
+ # @!method self.variants
242
+ # @return [Array(Telnyx::Models::AI::Typesafe::V1SystemoneParams::Question::Choice, Telnyx::Models::AI::Typesafe::V1SystemoneParams::Question::Noul, Telnyx::Models::AI::Typesafe::V1SystemoneParams::Question::Score)]
243
+ end
244
+
245
+ # Shared context evaluated by every question.
246
+ module State
247
+ extend Telnyx::Internal::Type::Union
248
+
249
+ variant String
250
+
251
+ variant -> { Telnyx::Models::AI::Typesafe::V1SystemoneParams::State::UnionMember1Map }
252
+
253
+ variant -> { Telnyx::Models::AI::Typesafe::V1SystemoneParams::State::UnionMember2Array }
254
+
255
+ # @!method self.variants
256
+ # @return [Array(String, Hash{Symbol=>Object}, Array<Object>)]
257
+
258
+ # @type [Telnyx::Internal::Type::Converter]
259
+ UnionMember1Map = Telnyx::Internal::Type::HashOf[Telnyx::Internal::Type::Unknown]
260
+
261
+ # @type [Telnyx::Internal::Type::Converter]
262
+ UnionMember2Array = Telnyx::Internal::Type::ArrayOf[Telnyx::Internal::Type::Unknown]
263
+ end
264
+ end
265
+ end
266
+ end
267
+ end
268
+ end