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
@@ -0,0 +1,1075 @@
1
+ # typed: strong
2
+
3
+ module Telnyx
4
+ module Models
5
+ module Calls
6
+ class ActionStartConversationRelayParams < Telnyx::Internal::Type::BaseModel
7
+ extend Telnyx::Internal::Type::RequestParameters::Converter
8
+ include Telnyx::Internal::Type::RequestParameters
9
+
10
+ OrHash =
11
+ T.type_alias do
12
+ T.any(
13
+ Telnyx::Calls::ActionStartConversationRelayParams,
14
+ Telnyx::Internal::AnyHash
15
+ )
16
+ end
17
+
18
+ sig { returns(String) }
19
+ attr_accessor :call_control_id
20
+
21
+ # WebSocket URL for your Conversation Relay server. Must start with `ws://` or
22
+ # `wss://`.
23
+ sig { returns(String) }
24
+ attr_accessor :conversation_relay_url
25
+
26
+ # Custom parameters for the Conversation Relay session. Pass key-value data as
27
+ # `assistant.dynamic_variables` to make it available to the relay session.
28
+ sig do
29
+ returns(
30
+ T.nilable(
31
+ Telnyx::Calls::ActionStartConversationRelayParams::Assistant
32
+ )
33
+ )
34
+ end
35
+ attr_reader :assistant
36
+
37
+ sig do
38
+ params(
39
+ assistant:
40
+ Telnyx::Calls::ActionStartConversationRelayParams::Assistant::OrHash
41
+ ).void
42
+ end
43
+ attr_writer :assistant
44
+
45
+ # Use this field to add state to subsequent webhooks. It must be a valid Base-64
46
+ # encoded string.
47
+ sig { returns(T.nilable(String)) }
48
+ attr_reader :client_state
49
+
50
+ sig { params(client_state: String).void }
51
+ attr_writer :client_state
52
+
53
+ # Use this field to avoid duplicate commands. Telnyx will ignore any command with
54
+ # the same `command_id` for the same `call_control_id`.
55
+ sig { returns(T.nilable(String)) }
56
+ attr_reader :command_id
57
+
58
+ sig { params(command_id: String).void }
59
+ attr_writer :command_id
60
+
61
+ # Enable DTMF detection for the relay session.
62
+ sig { returns(T.nilable(T::Boolean)) }
63
+ attr_reader :conversation_relay_dtmf_detection
64
+
65
+ sig { params(conversation_relay_dtmf_detection: T::Boolean).void }
66
+ attr_writer :conversation_relay_dtmf_detection
67
+
68
+ # Text played when the relay session starts.
69
+ sig { returns(T.nilable(String)) }
70
+ attr_reader :greeting
71
+
72
+ sig { params(greeting: String).void }
73
+ attr_writer :greeting
74
+
75
+ # Settings for handling caller interruptions during Conversation Relay speech.
76
+ sig do
77
+ returns(
78
+ T.nilable(
79
+ Telnyx::Calls::ActionStartConversationRelayParams::InterruptionSettings
80
+ )
81
+ )
82
+ end
83
+ attr_reader :interruption_settings
84
+
85
+ sig do
86
+ params(
87
+ interruption_settings:
88
+ Telnyx::Calls::ActionStartConversationRelayParams::InterruptionSettings::OrHash
89
+ ).void
90
+ end
91
+ attr_writer :interruption_settings
92
+
93
+ # Default language for the relay session. This value is used for both
94
+ # text-to-speech and speech recognition unless `tts_language` or
95
+ # `transcription_language` are provided.
96
+ sig { returns(T.nilable(String)) }
97
+ attr_reader :language
98
+
99
+ sig { params(language: String).void }
100
+ attr_writer :language
101
+
102
+ # Language-specific TTS and transcription settings. Use this when the relay
103
+ # session needs per-language provider, voice, or speech model configuration.
104
+ sig do
105
+ returns(
106
+ T.nilable(
107
+ T::Array[
108
+ Telnyx::Calls::ActionStartConversationRelayParams::Language
109
+ ]
110
+ )
111
+ )
112
+ end
113
+ attr_reader :languages
114
+
115
+ sig do
116
+ params(
117
+ languages:
118
+ T::Array[
119
+ Telnyx::Calls::ActionStartConversationRelayParams::Language::OrHash
120
+ ]
121
+ ).void
122
+ end
123
+ attr_writer :languages
124
+
125
+ # Participants to add to the conversation.
126
+ sig do
127
+ returns(
128
+ T.nilable(
129
+ T::Array[
130
+ Telnyx::Calls::ActionStartConversationRelayParams::Participant
131
+ ]
132
+ )
133
+ )
134
+ end
135
+ attr_reader :participants
136
+
137
+ sig do
138
+ params(
139
+ participants:
140
+ T::Array[
141
+ Telnyx::Calls::ActionStartConversationRelayParams::Participant::OrHash
142
+ ]
143
+ ).void
144
+ end
145
+ attr_writer :participants
146
+
147
+ # When true, sends message history update webhooks.
148
+ sig { returns(T.nilable(T::Boolean)) }
149
+ attr_reader :send_message_history_updates
150
+
151
+ sig { params(send_message_history_updates: T::Boolean).void }
152
+ attr_writer :send_message_history_updates
153
+
154
+ # Speech-to-text settings for Conversation Relay.
155
+ sig do
156
+ returns(
157
+ T.nilable(
158
+ Telnyx::Calls::ActionStartConversationRelayParams::Transcription
159
+ )
160
+ )
161
+ end
162
+ attr_reader :transcription
163
+
164
+ sig do
165
+ params(
166
+ transcription:
167
+ Telnyx::Calls::ActionStartConversationRelayParams::Transcription::OrHash
168
+ ).void
169
+ end
170
+ attr_writer :transcription
171
+
172
+ # Language to use for speech recognition. Overrides `language` for transcription
173
+ # when provided.
174
+ sig { returns(T.nilable(String)) }
175
+ attr_reader :transcription_language
176
+
177
+ sig { params(transcription_language: String).void }
178
+ attr_writer :transcription_language
179
+
180
+ # Language to use for text-to-speech. Overrides `language` for TTS when provided.
181
+ sig { returns(T.nilable(String)) }
182
+ attr_reader :tts_language
183
+
184
+ sig { params(tts_language: String).void }
185
+ attr_writer :tts_language
186
+
187
+ # Time in milliseconds to wait for caller input before timing out.
188
+ sig { returns(T.nilable(Integer)) }
189
+ attr_reader :user_response_timeout_ms
190
+
191
+ sig { params(user_response_timeout_ms: Integer).void }
192
+ attr_writer :user_response_timeout_ms
193
+
194
+ # The voice to be used by the voice assistant. Currently we support ElevenLabs,
195
+ # Telnyx and AWS voices.
196
+ #
197
+ # **Supported Providers:**
198
+ #
199
+ # - **AWS:** Use `AWS.Polly.<VoiceId>` (e.g., `AWS.Polly.Joanna`). For neural
200
+ # voices, which provide more realistic, human-like speech, append `-Neural` to
201
+ # the `VoiceId` (e.g., `AWS.Polly.Joanna-Neural`). Check the
202
+ # [available voices](https://docs.aws.amazon.com/polly/latest/dg/available-voices.html)
203
+ # for compatibility.
204
+ # - **Azure:** Use `Azure.<VoiceId>. (e.g. Azure.en-CA-ClaraNeural,
205
+ # Azure.en-CA-LiamNeural, Azure.en-US-BrianMultilingualNeural,
206
+ # Azure.en-US-Ava:DragonHDLatestNeural. For a complete list of voices, go to
207
+ # [Azure Voice Gallery](https://speech.microsoft.com/portal/voicegallery).)
208
+ # - **ElevenLabs:** Use `ElevenLabs.<ModelId>.<VoiceId>` (e.g.,
209
+ # `ElevenLabs.BaseModel.John`). The `ModelId` part is optional. To use
210
+ # ElevenLabs, you must provide your ElevenLabs API key as an integration secret
211
+ # under `"voice_settings": {"api_key_ref": "<secret_id>"}`. See
212
+ # [integration secrets documentation](https://developers.telnyx.com/api/secrets-manager/integration-secrets/create-integration-secret)
213
+ # for details. Check
214
+ # [available voices](https://elevenlabs.io/docs/api-reference/get-voices).
215
+ # - **Telnyx:** Use `Telnyx.<model_id>.<voice_id>`
216
+ # - **Inworld:** Use `Inworld.<ModelId>.<VoiceId>` (e.g., `Inworld.Mini.Loretta`,
217
+ # `Inworld.Max.Oliver`). Supported models: `Mini`, `Max`.
218
+ # - **xAI:** Use `xAI.<VoiceId>` (e.g., `xAI.eve`). Available voices: `eve`,
219
+ # `ara`, `rex`, `sal`, `leo`.
220
+ sig { returns(T.nilable(String)) }
221
+ attr_reader :voice
222
+
223
+ sig { params(voice: String).void }
224
+ attr_writer :voice
225
+
226
+ # The settings associated with the voice selected
227
+ sig do
228
+ returns(
229
+ T.nilable(
230
+ T.any(
231
+ Telnyx::Calls::ElevenLabsVoiceSettings,
232
+ Telnyx::Calls::TelnyxVoiceSettings,
233
+ Telnyx::Calls::AwsVoiceSettings,
234
+ Telnyx::AzureVoiceSettings,
235
+ Telnyx::RimeVoiceSettings,
236
+ Telnyx::ResembleVoiceSettings,
237
+ Telnyx::Calls::ActionStartConversationRelayParams::VoiceSettings::Xai
238
+ )
239
+ )
240
+ )
241
+ end
242
+ attr_reader :voice_settings
243
+
244
+ sig do
245
+ params(
246
+ voice_settings:
247
+ T.any(
248
+ Telnyx::Calls::ElevenLabsVoiceSettings::OrHash,
249
+ Telnyx::Calls::TelnyxVoiceSettings::OrHash,
250
+ Telnyx::Calls::AwsVoiceSettings::OrHash,
251
+ Telnyx::AzureVoiceSettings::OrHash,
252
+ Telnyx::RimeVoiceSettings::OrHash,
253
+ Telnyx::ResembleVoiceSettings::OrHash,
254
+ Telnyx::Calls::ActionStartConversationRelayParams::VoiceSettings::Xai::OrHash
255
+ )
256
+ ).void
257
+ end
258
+ attr_writer :voice_settings
259
+
260
+ sig do
261
+ params(
262
+ call_control_id: String,
263
+ conversation_relay_url: String,
264
+ assistant:
265
+ Telnyx::Calls::ActionStartConversationRelayParams::Assistant::OrHash,
266
+ client_state: String,
267
+ command_id: String,
268
+ conversation_relay_dtmf_detection: T::Boolean,
269
+ greeting: String,
270
+ interruption_settings:
271
+ Telnyx::Calls::ActionStartConversationRelayParams::InterruptionSettings::OrHash,
272
+ language: String,
273
+ languages:
274
+ T::Array[
275
+ Telnyx::Calls::ActionStartConversationRelayParams::Language::OrHash
276
+ ],
277
+ participants:
278
+ T::Array[
279
+ Telnyx::Calls::ActionStartConversationRelayParams::Participant::OrHash
280
+ ],
281
+ send_message_history_updates: T::Boolean,
282
+ transcription:
283
+ Telnyx::Calls::ActionStartConversationRelayParams::Transcription::OrHash,
284
+ transcription_language: String,
285
+ tts_language: String,
286
+ user_response_timeout_ms: Integer,
287
+ voice: String,
288
+ voice_settings:
289
+ T.any(
290
+ Telnyx::Calls::ElevenLabsVoiceSettings::OrHash,
291
+ Telnyx::Calls::TelnyxVoiceSettings::OrHash,
292
+ Telnyx::Calls::AwsVoiceSettings::OrHash,
293
+ Telnyx::AzureVoiceSettings::OrHash,
294
+ Telnyx::RimeVoiceSettings::OrHash,
295
+ Telnyx::ResembleVoiceSettings::OrHash,
296
+ Telnyx::Calls::ActionStartConversationRelayParams::VoiceSettings::Xai::OrHash
297
+ ),
298
+ request_options: Telnyx::RequestOptions::OrHash
299
+ ).returns(T.attached_class)
300
+ end
301
+ def self.new(
302
+ call_control_id:,
303
+ # WebSocket URL for your Conversation Relay server. Must start with `ws://` or
304
+ # `wss://`.
305
+ conversation_relay_url:,
306
+ # Custom parameters for the Conversation Relay session. Pass key-value data as
307
+ # `assistant.dynamic_variables` to make it available to the relay session.
308
+ assistant: nil,
309
+ # Use this field to add state to subsequent webhooks. It must be a valid Base-64
310
+ # encoded string.
311
+ client_state: nil,
312
+ # Use this field to avoid duplicate commands. Telnyx will ignore any command with
313
+ # the same `command_id` for the same `call_control_id`.
314
+ command_id: nil,
315
+ # Enable DTMF detection for the relay session.
316
+ conversation_relay_dtmf_detection: nil,
317
+ # Text played when the relay session starts.
318
+ greeting: nil,
319
+ # Settings for handling caller interruptions during Conversation Relay speech.
320
+ interruption_settings: nil,
321
+ # Default language for the relay session. This value is used for both
322
+ # text-to-speech and speech recognition unless `tts_language` or
323
+ # `transcription_language` are provided.
324
+ language: nil,
325
+ # Language-specific TTS and transcription settings. Use this when the relay
326
+ # session needs per-language provider, voice, or speech model configuration.
327
+ languages: nil,
328
+ # Participants to add to the conversation.
329
+ participants: nil,
330
+ # When true, sends message history update webhooks.
331
+ send_message_history_updates: nil,
332
+ # Speech-to-text settings for Conversation Relay.
333
+ transcription: nil,
334
+ # Language to use for speech recognition. Overrides `language` for transcription
335
+ # when provided.
336
+ transcription_language: nil,
337
+ # Language to use for text-to-speech. Overrides `language` for TTS when provided.
338
+ tts_language: nil,
339
+ # Time in milliseconds to wait for caller input before timing out.
340
+ user_response_timeout_ms: nil,
341
+ # The voice to be used by the voice assistant. Currently we support ElevenLabs,
342
+ # Telnyx and AWS voices.
343
+ #
344
+ # **Supported Providers:**
345
+ #
346
+ # - **AWS:** Use `AWS.Polly.<VoiceId>` (e.g., `AWS.Polly.Joanna`). For neural
347
+ # voices, which provide more realistic, human-like speech, append `-Neural` to
348
+ # the `VoiceId` (e.g., `AWS.Polly.Joanna-Neural`). Check the
349
+ # [available voices](https://docs.aws.amazon.com/polly/latest/dg/available-voices.html)
350
+ # for compatibility.
351
+ # - **Azure:** Use `Azure.<VoiceId>. (e.g. Azure.en-CA-ClaraNeural,
352
+ # Azure.en-CA-LiamNeural, Azure.en-US-BrianMultilingualNeural,
353
+ # Azure.en-US-Ava:DragonHDLatestNeural. For a complete list of voices, go to
354
+ # [Azure Voice Gallery](https://speech.microsoft.com/portal/voicegallery).)
355
+ # - **ElevenLabs:** Use `ElevenLabs.<ModelId>.<VoiceId>` (e.g.,
356
+ # `ElevenLabs.BaseModel.John`). The `ModelId` part is optional. To use
357
+ # ElevenLabs, you must provide your ElevenLabs API key as an integration secret
358
+ # under `"voice_settings": {"api_key_ref": "<secret_id>"}`. See
359
+ # [integration secrets documentation](https://developers.telnyx.com/api/secrets-manager/integration-secrets/create-integration-secret)
360
+ # for details. Check
361
+ # [available voices](https://elevenlabs.io/docs/api-reference/get-voices).
362
+ # - **Telnyx:** Use `Telnyx.<model_id>.<voice_id>`
363
+ # - **Inworld:** Use `Inworld.<ModelId>.<VoiceId>` (e.g., `Inworld.Mini.Loretta`,
364
+ # `Inworld.Max.Oliver`). Supported models: `Mini`, `Max`.
365
+ # - **xAI:** Use `xAI.<VoiceId>` (e.g., `xAI.eve`). Available voices: `eve`,
366
+ # `ara`, `rex`, `sal`, `leo`.
367
+ voice: nil,
368
+ # The settings associated with the voice selected
369
+ voice_settings: nil,
370
+ request_options: {}
371
+ )
372
+ end
373
+
374
+ sig do
375
+ override.returns(
376
+ {
377
+ call_control_id: String,
378
+ conversation_relay_url: String,
379
+ assistant:
380
+ Telnyx::Calls::ActionStartConversationRelayParams::Assistant,
381
+ client_state: String,
382
+ command_id: String,
383
+ conversation_relay_dtmf_detection: T::Boolean,
384
+ greeting: String,
385
+ interruption_settings:
386
+ Telnyx::Calls::ActionStartConversationRelayParams::InterruptionSettings,
387
+ language: String,
388
+ languages:
389
+ T::Array[
390
+ Telnyx::Calls::ActionStartConversationRelayParams::Language
391
+ ],
392
+ participants:
393
+ T::Array[
394
+ Telnyx::Calls::ActionStartConversationRelayParams::Participant
395
+ ],
396
+ send_message_history_updates: T::Boolean,
397
+ transcription:
398
+ Telnyx::Calls::ActionStartConversationRelayParams::Transcription,
399
+ transcription_language: String,
400
+ tts_language: String,
401
+ user_response_timeout_ms: Integer,
402
+ voice: String,
403
+ voice_settings:
404
+ T.any(
405
+ Telnyx::Calls::ElevenLabsVoiceSettings,
406
+ Telnyx::Calls::TelnyxVoiceSettings,
407
+ Telnyx::Calls::AwsVoiceSettings,
408
+ Telnyx::AzureVoiceSettings,
409
+ Telnyx::RimeVoiceSettings,
410
+ Telnyx::ResembleVoiceSettings,
411
+ Telnyx::Calls::ActionStartConversationRelayParams::VoiceSettings::Xai
412
+ ),
413
+ request_options: Telnyx::RequestOptions
414
+ }
415
+ )
416
+ end
417
+ def to_hash
418
+ end
419
+
420
+ class Assistant < Telnyx::Internal::Type::BaseModel
421
+ OrHash =
422
+ T.type_alias do
423
+ T.any(
424
+ Telnyx::Calls::ActionStartConversationRelayParams::Assistant,
425
+ Telnyx::Internal::AnyHash
426
+ )
427
+ end
428
+
429
+ # Custom key-value parameters forwarded to the Conversation Relay session.
430
+ sig { returns(T.nilable(T::Hash[Symbol, String])) }
431
+ attr_reader :dynamic_variables
432
+
433
+ sig { params(dynamic_variables: T::Hash[Symbol, String]).void }
434
+ attr_writer :dynamic_variables
435
+
436
+ # Custom parameters for the Conversation Relay session. Pass key-value data as
437
+ # `assistant.dynamic_variables` to make it available to the relay session.
438
+ sig do
439
+ params(dynamic_variables: T::Hash[Symbol, String]).returns(
440
+ T.attached_class
441
+ )
442
+ end
443
+ def self.new(
444
+ # Custom key-value parameters forwarded to the Conversation Relay session.
445
+ dynamic_variables: nil
446
+ )
447
+ end
448
+
449
+ sig do
450
+ override.returns({ dynamic_variables: T::Hash[Symbol, String] })
451
+ end
452
+ def to_hash
453
+ end
454
+ end
455
+
456
+ class InterruptionSettings < Telnyx::Internal::Type::BaseModel
457
+ OrHash =
458
+ T.type_alias do
459
+ T.any(
460
+ Telnyx::Calls::ActionStartConversationRelayParams::InterruptionSettings,
461
+ Telnyx::Internal::AnyHash
462
+ )
463
+ end
464
+
465
+ # Legacy boolean form. `true` is equivalent to `interruptible=any`; `false` is
466
+ # equivalent to `interruptible=none`.
467
+ sig { returns(T.nilable(T::Boolean)) }
468
+ attr_reader :enable
469
+
470
+ sig { params(enable: T::Boolean).void }
471
+ attr_writer :enable
472
+
473
+ # Controls when caller input can interrupt assistant speech. `any` allows speech
474
+ # or DTMF interruptions; `none` disables interruptions; `speech` allows speech
475
+ # only; `dtmf` allows DTMF only.
476
+ sig do
477
+ returns(
478
+ T.nilable(
479
+ Telnyx::Calls::ActionStartConversationRelayParams::InterruptionSettings::Interruptible::OrSymbol
480
+ )
481
+ )
482
+ end
483
+ attr_reader :interruptible
484
+
485
+ sig do
486
+ params(
487
+ interruptible:
488
+ Telnyx::Calls::ActionStartConversationRelayParams::InterruptionSettings::Interruptible::OrSymbol
489
+ ).void
490
+ end
491
+ attr_writer :interruptible
492
+
493
+ # Controls when caller input can interrupt assistant speech. `any` allows speech
494
+ # or DTMF interruptions; `none` disables interruptions; `speech` allows speech
495
+ # only; `dtmf` allows DTMF only.
496
+ sig do
497
+ returns(
498
+ T.nilable(
499
+ Telnyx::Calls::ActionStartConversationRelayParams::InterruptionSettings::InterruptibleGreeting::OrSymbol
500
+ )
501
+ )
502
+ end
503
+ attr_reader :interruptible_greeting
504
+
505
+ sig do
506
+ params(
507
+ interruptible_greeting:
508
+ Telnyx::Calls::ActionStartConversationRelayParams::InterruptionSettings::InterruptibleGreeting::OrSymbol
509
+ ).void
510
+ end
511
+ attr_writer :interruptible_greeting
512
+
513
+ # Controls when caller input can interrupt assistant speech. `any` allows speech
514
+ # or DTMF interruptions; `none` disables interruptions; `speech` allows speech
515
+ # only; `dtmf` allows DTMF only.
516
+ sig do
517
+ returns(
518
+ T.nilable(
519
+ Telnyx::Calls::ActionStartConversationRelayParams::InterruptionSettings::WelcomeGreetingInterruptible::OrSymbol
520
+ )
521
+ )
522
+ end
523
+ attr_reader :welcome_greeting_interruptible
524
+
525
+ sig do
526
+ params(
527
+ welcome_greeting_interruptible:
528
+ Telnyx::Calls::ActionStartConversationRelayParams::InterruptionSettings::WelcomeGreetingInterruptible::OrSymbol
529
+ ).void
530
+ end
531
+ attr_writer :welcome_greeting_interruptible
532
+
533
+ # Settings for handling caller interruptions during Conversation Relay speech.
534
+ sig do
535
+ params(
536
+ enable: T::Boolean,
537
+ interruptible:
538
+ Telnyx::Calls::ActionStartConversationRelayParams::InterruptionSettings::Interruptible::OrSymbol,
539
+ interruptible_greeting:
540
+ Telnyx::Calls::ActionStartConversationRelayParams::InterruptionSettings::InterruptibleGreeting::OrSymbol,
541
+ welcome_greeting_interruptible:
542
+ Telnyx::Calls::ActionStartConversationRelayParams::InterruptionSettings::WelcomeGreetingInterruptible::OrSymbol
543
+ ).returns(T.attached_class)
544
+ end
545
+ def self.new(
546
+ # Legacy boolean form. `true` is equivalent to `interruptible=any`; `false` is
547
+ # equivalent to `interruptible=none`.
548
+ enable: nil,
549
+ # Controls when caller input can interrupt assistant speech. `any` allows speech
550
+ # or DTMF interruptions; `none` disables interruptions; `speech` allows speech
551
+ # only; `dtmf` allows DTMF only.
552
+ interruptible: nil,
553
+ # Controls when caller input can interrupt assistant speech. `any` allows speech
554
+ # or DTMF interruptions; `none` disables interruptions; `speech` allows speech
555
+ # only; `dtmf` allows DTMF only.
556
+ interruptible_greeting: nil,
557
+ # Controls when caller input can interrupt assistant speech. `any` allows speech
558
+ # or DTMF interruptions; `none` disables interruptions; `speech` allows speech
559
+ # only; `dtmf` allows DTMF only.
560
+ welcome_greeting_interruptible: nil
561
+ )
562
+ end
563
+
564
+ sig do
565
+ override.returns(
566
+ {
567
+ enable: T::Boolean,
568
+ interruptible:
569
+ Telnyx::Calls::ActionStartConversationRelayParams::InterruptionSettings::Interruptible::OrSymbol,
570
+ interruptible_greeting:
571
+ Telnyx::Calls::ActionStartConversationRelayParams::InterruptionSettings::InterruptibleGreeting::OrSymbol,
572
+ welcome_greeting_interruptible:
573
+ Telnyx::Calls::ActionStartConversationRelayParams::InterruptionSettings::WelcomeGreetingInterruptible::OrSymbol
574
+ }
575
+ )
576
+ end
577
+ def to_hash
578
+ end
579
+
580
+ # Controls when caller input can interrupt assistant speech. `any` allows speech
581
+ # or DTMF interruptions; `none` disables interruptions; `speech` allows speech
582
+ # only; `dtmf` allows DTMF only.
583
+ module Interruptible
584
+ extend Telnyx::Internal::Type::Enum
585
+
586
+ TaggedSymbol =
587
+ T.type_alias do
588
+ T.all(
589
+ Symbol,
590
+ Telnyx::Calls::ActionStartConversationRelayParams::InterruptionSettings::Interruptible
591
+ )
592
+ end
593
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
594
+
595
+ NONE =
596
+ T.let(
597
+ :none,
598
+ Telnyx::Calls::ActionStartConversationRelayParams::InterruptionSettings::Interruptible::TaggedSymbol
599
+ )
600
+ ANY =
601
+ T.let(
602
+ :any,
603
+ Telnyx::Calls::ActionStartConversationRelayParams::InterruptionSettings::Interruptible::TaggedSymbol
604
+ )
605
+ SPEECH =
606
+ T.let(
607
+ :speech,
608
+ Telnyx::Calls::ActionStartConversationRelayParams::InterruptionSettings::Interruptible::TaggedSymbol
609
+ )
610
+ DTMF =
611
+ T.let(
612
+ :dtmf,
613
+ Telnyx::Calls::ActionStartConversationRelayParams::InterruptionSettings::Interruptible::TaggedSymbol
614
+ )
615
+
616
+ sig do
617
+ override.returns(
618
+ T::Array[
619
+ Telnyx::Calls::ActionStartConversationRelayParams::InterruptionSettings::Interruptible::TaggedSymbol
620
+ ]
621
+ )
622
+ end
623
+ def self.values
624
+ end
625
+ end
626
+
627
+ # Controls when caller input can interrupt assistant speech. `any` allows speech
628
+ # or DTMF interruptions; `none` disables interruptions; `speech` allows speech
629
+ # only; `dtmf` allows DTMF only.
630
+ module InterruptibleGreeting
631
+ extend Telnyx::Internal::Type::Enum
632
+
633
+ TaggedSymbol =
634
+ T.type_alias do
635
+ T.all(
636
+ Symbol,
637
+ Telnyx::Calls::ActionStartConversationRelayParams::InterruptionSettings::InterruptibleGreeting
638
+ )
639
+ end
640
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
641
+
642
+ NONE =
643
+ T.let(
644
+ :none,
645
+ Telnyx::Calls::ActionStartConversationRelayParams::InterruptionSettings::InterruptibleGreeting::TaggedSymbol
646
+ )
647
+ ANY =
648
+ T.let(
649
+ :any,
650
+ Telnyx::Calls::ActionStartConversationRelayParams::InterruptionSettings::InterruptibleGreeting::TaggedSymbol
651
+ )
652
+ SPEECH =
653
+ T.let(
654
+ :speech,
655
+ Telnyx::Calls::ActionStartConversationRelayParams::InterruptionSettings::InterruptibleGreeting::TaggedSymbol
656
+ )
657
+ DTMF =
658
+ T.let(
659
+ :dtmf,
660
+ Telnyx::Calls::ActionStartConversationRelayParams::InterruptionSettings::InterruptibleGreeting::TaggedSymbol
661
+ )
662
+
663
+ sig do
664
+ override.returns(
665
+ T::Array[
666
+ Telnyx::Calls::ActionStartConversationRelayParams::InterruptionSettings::InterruptibleGreeting::TaggedSymbol
667
+ ]
668
+ )
669
+ end
670
+ def self.values
671
+ end
672
+ end
673
+
674
+ # Controls when caller input can interrupt assistant speech. `any` allows speech
675
+ # or DTMF interruptions; `none` disables interruptions; `speech` allows speech
676
+ # only; `dtmf` allows DTMF only.
677
+ module WelcomeGreetingInterruptible
678
+ extend Telnyx::Internal::Type::Enum
679
+
680
+ TaggedSymbol =
681
+ T.type_alias do
682
+ T.all(
683
+ Symbol,
684
+ Telnyx::Calls::ActionStartConversationRelayParams::InterruptionSettings::WelcomeGreetingInterruptible
685
+ )
686
+ end
687
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
688
+
689
+ NONE =
690
+ T.let(
691
+ :none,
692
+ Telnyx::Calls::ActionStartConversationRelayParams::InterruptionSettings::WelcomeGreetingInterruptible::TaggedSymbol
693
+ )
694
+ ANY =
695
+ T.let(
696
+ :any,
697
+ Telnyx::Calls::ActionStartConversationRelayParams::InterruptionSettings::WelcomeGreetingInterruptible::TaggedSymbol
698
+ )
699
+ SPEECH =
700
+ T.let(
701
+ :speech,
702
+ Telnyx::Calls::ActionStartConversationRelayParams::InterruptionSettings::WelcomeGreetingInterruptible::TaggedSymbol
703
+ )
704
+ DTMF =
705
+ T.let(
706
+ :dtmf,
707
+ Telnyx::Calls::ActionStartConversationRelayParams::InterruptionSettings::WelcomeGreetingInterruptible::TaggedSymbol
708
+ )
709
+
710
+ sig do
711
+ override.returns(
712
+ T::Array[
713
+ Telnyx::Calls::ActionStartConversationRelayParams::InterruptionSettings::WelcomeGreetingInterruptible::TaggedSymbol
714
+ ]
715
+ )
716
+ end
717
+ def self.values
718
+ end
719
+ end
720
+ end
721
+
722
+ class Language < Telnyx::Internal::Type::BaseModel
723
+ OrHash =
724
+ T.type_alias do
725
+ T.any(
726
+ Telnyx::Calls::ActionStartConversationRelayParams::Language,
727
+ Telnyx::Internal::AnyHash
728
+ )
729
+ end
730
+
731
+ # BCP 47 language code.
732
+ sig { returns(T.nilable(String)) }
733
+ attr_reader :code
734
+
735
+ sig { params(code: String).void }
736
+ attr_writer :code
737
+
738
+ # Speech recognition model for this language.
739
+ sig { returns(T.nilable(String)) }
740
+ attr_reader :speech_model
741
+
742
+ sig { params(speech_model: String).void }
743
+ attr_writer :speech_model
744
+
745
+ # Speech-to-text provider for this language.
746
+ sig { returns(T.nilable(String)) }
747
+ attr_reader :transcription_provider
748
+
749
+ sig { params(transcription_provider: String).void }
750
+ attr_writer :transcription_provider
751
+
752
+ # Text-to-speech provider for this language.
753
+ sig { returns(T.nilable(String)) }
754
+ attr_reader :tts_provider
755
+
756
+ sig { params(tts_provider: String).void }
757
+ attr_writer :tts_provider
758
+
759
+ # Voice identifier for this language.
760
+ sig { returns(T.nilable(String)) }
761
+ attr_reader :voice
762
+
763
+ sig { params(voice: String).void }
764
+ attr_writer :voice
765
+
766
+ # Language-specific speech and transcription settings for Conversation Relay.
767
+ sig do
768
+ params(
769
+ code: String,
770
+ speech_model: String,
771
+ transcription_provider: String,
772
+ tts_provider: String,
773
+ voice: String
774
+ ).returns(T.attached_class)
775
+ end
776
+ def self.new(
777
+ # BCP 47 language code.
778
+ code: nil,
779
+ # Speech recognition model for this language.
780
+ speech_model: nil,
781
+ # Speech-to-text provider for this language.
782
+ transcription_provider: nil,
783
+ # Text-to-speech provider for this language.
784
+ tts_provider: nil,
785
+ # Voice identifier for this language.
786
+ voice: nil
787
+ )
788
+ end
789
+
790
+ sig do
791
+ override.returns(
792
+ {
793
+ code: String,
794
+ speech_model: String,
795
+ transcription_provider: String,
796
+ tts_provider: String,
797
+ voice: String
798
+ }
799
+ )
800
+ end
801
+ def to_hash
802
+ end
803
+ end
804
+
805
+ class Participant < Telnyx::Internal::Type::BaseModel
806
+ OrHash =
807
+ T.type_alias do
808
+ T.any(
809
+ Telnyx::Calls::ActionStartConversationRelayParams::Participant,
810
+ Telnyx::Internal::AnyHash
811
+ )
812
+ end
813
+
814
+ # The call_control_id of the participant to add to the conversation.
815
+ sig { returns(String) }
816
+ attr_accessor :id
817
+
818
+ # The role of the participant in the conversation.
819
+ sig do
820
+ returns(
821
+ Telnyx::Calls::ActionStartConversationRelayParams::Participant::Role::OrSymbol
822
+ )
823
+ end
824
+ attr_accessor :role
825
+
826
+ # Display name for the participant.
827
+ sig { returns(T.nilable(String)) }
828
+ attr_reader :name
829
+
830
+ sig { params(name: String).void }
831
+ attr_writer :name
832
+
833
+ # Determines what happens to the conversation when this participant hangs up.
834
+ sig do
835
+ returns(
836
+ T.nilable(
837
+ Telnyx::Calls::ActionStartConversationRelayParams::Participant::OnHangup::OrSymbol
838
+ )
839
+ )
840
+ end
841
+ attr_reader :on_hangup
842
+
843
+ sig do
844
+ params(
845
+ on_hangup:
846
+ Telnyx::Calls::ActionStartConversationRelayParams::Participant::OnHangup::OrSymbol
847
+ ).void
848
+ end
849
+ attr_writer :on_hangup
850
+
851
+ sig do
852
+ params(
853
+ id: String,
854
+ role:
855
+ Telnyx::Calls::ActionStartConversationRelayParams::Participant::Role::OrSymbol,
856
+ name: String,
857
+ on_hangup:
858
+ Telnyx::Calls::ActionStartConversationRelayParams::Participant::OnHangup::OrSymbol
859
+ ).returns(T.attached_class)
860
+ end
861
+ def self.new(
862
+ # The call_control_id of the participant to add to the conversation.
863
+ id:,
864
+ # The role of the participant in the conversation.
865
+ role:,
866
+ # Display name for the participant.
867
+ name: nil,
868
+ # Determines what happens to the conversation when this participant hangs up.
869
+ on_hangup: nil
870
+ )
871
+ end
872
+
873
+ sig do
874
+ override.returns(
875
+ {
876
+ id: String,
877
+ role:
878
+ Telnyx::Calls::ActionStartConversationRelayParams::Participant::Role::OrSymbol,
879
+ name: String,
880
+ on_hangup:
881
+ Telnyx::Calls::ActionStartConversationRelayParams::Participant::OnHangup::OrSymbol
882
+ }
883
+ )
884
+ end
885
+ def to_hash
886
+ end
887
+
888
+ # The role of the participant in the conversation.
889
+ module Role
890
+ extend Telnyx::Internal::Type::Enum
891
+
892
+ TaggedSymbol =
893
+ T.type_alias do
894
+ T.all(
895
+ Symbol,
896
+ Telnyx::Calls::ActionStartConversationRelayParams::Participant::Role
897
+ )
898
+ end
899
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
900
+
901
+ USER =
902
+ T.let(
903
+ :user,
904
+ Telnyx::Calls::ActionStartConversationRelayParams::Participant::Role::TaggedSymbol
905
+ )
906
+
907
+ sig do
908
+ override.returns(
909
+ T::Array[
910
+ Telnyx::Calls::ActionStartConversationRelayParams::Participant::Role::TaggedSymbol
911
+ ]
912
+ )
913
+ end
914
+ def self.values
915
+ end
916
+ end
917
+
918
+ # Determines what happens to the conversation when this participant hangs up.
919
+ module OnHangup
920
+ extend Telnyx::Internal::Type::Enum
921
+
922
+ TaggedSymbol =
923
+ T.type_alias do
924
+ T.all(
925
+ Symbol,
926
+ Telnyx::Calls::ActionStartConversationRelayParams::Participant::OnHangup
927
+ )
928
+ end
929
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
930
+
931
+ CONTINUE_CONVERSATION =
932
+ T.let(
933
+ :continue_conversation,
934
+ Telnyx::Calls::ActionStartConversationRelayParams::Participant::OnHangup::TaggedSymbol
935
+ )
936
+ END_CONVERSATION =
937
+ T.let(
938
+ :end_conversation,
939
+ Telnyx::Calls::ActionStartConversationRelayParams::Participant::OnHangup::TaggedSymbol
940
+ )
941
+
942
+ sig do
943
+ override.returns(
944
+ T::Array[
945
+ Telnyx::Calls::ActionStartConversationRelayParams::Participant::OnHangup::TaggedSymbol
946
+ ]
947
+ )
948
+ end
949
+ def self.values
950
+ end
951
+ end
952
+ end
953
+
954
+ class Transcription < Telnyx::Internal::Type::BaseModel
955
+ OrHash =
956
+ T.type_alias do
957
+ T.any(
958
+ Telnyx::Calls::ActionStartConversationRelayParams::Transcription,
959
+ Telnyx::Internal::AnyHash
960
+ )
961
+ end
962
+
963
+ # Transcription language.
964
+ sig { returns(T.nilable(String)) }
965
+ attr_reader :language
966
+
967
+ sig { params(language: String).void }
968
+ attr_writer :language
969
+
970
+ # Transcription model to use.
971
+ sig { returns(T.nilable(String)) }
972
+ attr_reader :model
973
+
974
+ sig { params(model: String).void }
975
+ attr_writer :model
976
+
977
+ # Transcription provider to use.
978
+ sig { returns(T.nilable(String)) }
979
+ attr_reader :provider
980
+
981
+ sig { params(provider: String).void }
982
+ attr_writer :provider
983
+
984
+ # Speech-to-text settings for Conversation Relay.
985
+ sig do
986
+ params(language: String, model: String, provider: String).returns(
987
+ T.attached_class
988
+ )
989
+ end
990
+ def self.new(
991
+ # Transcription language.
992
+ language: nil,
993
+ # Transcription model to use.
994
+ model: nil,
995
+ # Transcription provider to use.
996
+ provider: nil
997
+ )
998
+ end
999
+
1000
+ sig do
1001
+ override.returns(
1002
+ { language: String, model: String, provider: String }
1003
+ )
1004
+ end
1005
+ def to_hash
1006
+ end
1007
+ end
1008
+
1009
+ # The settings associated with the voice selected
1010
+ module VoiceSettings
1011
+ extend Telnyx::Internal::Type::Union
1012
+
1013
+ Variants =
1014
+ T.type_alias do
1015
+ T.any(
1016
+ Telnyx::Calls::ElevenLabsVoiceSettings,
1017
+ Telnyx::Calls::TelnyxVoiceSettings,
1018
+ Telnyx::Calls::AwsVoiceSettings,
1019
+ Telnyx::AzureVoiceSettings,
1020
+ Telnyx::RimeVoiceSettings,
1021
+ Telnyx::ResembleVoiceSettings,
1022
+ Telnyx::Calls::ActionStartConversationRelayParams::VoiceSettings::Xai
1023
+ )
1024
+ end
1025
+
1026
+ class Xai < Telnyx::Internal::Type::BaseModel
1027
+ OrHash =
1028
+ T.type_alias do
1029
+ T.any(
1030
+ Telnyx::Calls::ActionStartConversationRelayParams::VoiceSettings::Xai,
1031
+ Telnyx::Internal::AnyHash
1032
+ )
1033
+ end
1034
+
1035
+ # Voice settings provider type
1036
+ sig { returns(Symbol) }
1037
+ attr_accessor :type
1038
+
1039
+ # Language code, or `auto` to detect automatically.
1040
+ sig { returns(T.nilable(String)) }
1041
+ attr_reader :language
1042
+
1043
+ sig { params(language: String).void }
1044
+ attr_writer :language
1045
+
1046
+ sig do
1047
+ params(language: String, type: Symbol).returns(T.attached_class)
1048
+ end
1049
+ def self.new(
1050
+ # Language code, or `auto` to detect automatically.
1051
+ language: nil,
1052
+ # Voice settings provider type
1053
+ type: :xai
1054
+ )
1055
+ end
1056
+
1057
+ sig { override.returns({ type: Symbol, language: String }) }
1058
+ def to_hash
1059
+ end
1060
+ end
1061
+
1062
+ sig do
1063
+ override.returns(
1064
+ T::Array[
1065
+ Telnyx::Calls::ActionStartConversationRelayParams::VoiceSettings::Variants
1066
+ ]
1067
+ )
1068
+ end
1069
+ def self.variants
1070
+ end
1071
+ end
1072
+ end
1073
+ end
1074
+ end
1075
+ end