telnyx 5.112.0 → 5.113.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 (261) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +17 -0
  3. data/README.md +1 -1
  4. data/lib/telnyx/models/ai/assistant_create_params.rb +9 -178
  5. data/lib/telnyx/models/ai/assistant_integration.rb +38 -0
  6. data/lib/telnyx/models/ai/assistant_mcp_server.rb +35 -0
  7. data/lib/telnyx/models/ai/assistant_tool.rb +14 -14
  8. data/lib/telnyx/models/ai/assistant_update_params.rb +9 -178
  9. data/lib/telnyx/models/ai/assistants/canary_deploy.rb +3 -123
  10. data/lib/telnyx/models/ai/assistants/canary_deploy_response.rb +3 -125
  11. data/lib/telnyx/models/ai/assistants/clause.rb +54 -0
  12. data/lib/telnyx/models/ai/assistants/rollout_slot.rb +27 -0
  13. data/lib/telnyx/models/ai/assistants/rule_input.rb +40 -0
  14. data/lib/telnyx/models/ai/assistants/rule_output.rb +40 -0
  15. data/lib/telnyx/models/ai/assistants/serve.rb +33 -0
  16. data/lib/telnyx/models/ai/assistants/update_assistant.rb +9 -179
  17. data/lib/telnyx/models/ai/inference_embedding.rb +9 -177
  18. data/lib/telnyx/models/ai/inference_embedding_interruption_settings.rb +47 -0
  19. data/lib/telnyx/models/ai/openai_create_response_params.rb +3 -3
  20. data/lib/telnyx/models/ai/openai_list_models_response.rb +3 -210
  21. data/lib/telnyx/models/ai/start_speaking_plan.rb +37 -0
  22. data/lib/telnyx/models/ai/transcription_endpointing_plan.rb +39 -0
  23. data/lib/telnyx/models/ai/transfer_tool.rb +7 -9
  24. data/lib/telnyx/models/ai_create_response_params.rb +4 -4
  25. data/lib/telnyx/models/ai_retrieve_models_response.rb +3 -210
  26. data/lib/telnyx/models/call_conversation_ended.rb +13 -1
  27. data/lib/telnyx/models/calls/action_gather_using_ai_params.rb +4 -23
  28. data/lib/telnyx/models/calls/action_gather_using_speak_params.rb +4 -23
  29. data/lib/telnyx/models/calls/action_speak_params.rb +4 -23
  30. data/lib/telnyx/models/calls/action_start_ai_assistant_params.rb +4 -23
  31. data/lib/telnyx/models/calls/action_start_conversation_relay_params.rb +169 -118
  32. data/lib/telnyx/models/calls/transcription_engine_assemblyai_config.rb +64 -0
  33. data/lib/telnyx/models/calls/transcription_engine_speechmatics_config.rb +100 -0
  34. data/lib/telnyx/models/calls/transcription_engine_xai_config.rb +108 -0
  35. data/lib/telnyx/models/calls/transcription_start_request.rb +8 -167
  36. data/lib/telnyx/models/conferences/action_speak_params.rb +4 -23
  37. data/lib/telnyx/models/fax.rb +7 -5
  38. data/lib/telnyx/models/fax_create_params.rb +7 -5
  39. data/lib/telnyx/models/fax_delivered.rb +3 -2
  40. data/lib/telnyx/models/fax_failed.rb +3 -2
  41. data/lib/telnyx/models/fax_media_processed.rb +3 -2
  42. data/lib/telnyx/models/fax_queued.rb +3 -2
  43. data/lib/telnyx/models/fax_sending_started.rb +3 -2
  44. data/lib/telnyx/models/model_metadata.rb +212 -0
  45. data/lib/telnyx/models/network_list_interfaces_response.rb +112 -2
  46. data/lib/telnyx/models/public_internet_gateway_create_response.rb +3 -8
  47. data/lib/telnyx/models/public_internet_gateway_delete_response.rb +3 -8
  48. data/lib/telnyx/models/public_internet_gateway_read.rb +83 -0
  49. data/lib/telnyx/models/public_internet_gateway_retrieve_response.rb +3 -8
  50. data/lib/telnyx/models/texml/accounts/call_calls_params.rb +62 -12
  51. data/lib/telnyx/models/texml_initiate_ai_call_params.rb +18 -4
  52. data/lib/telnyx/models/text_to_speech_generate_params.rb +6 -6
  53. data/lib/telnyx/models/uac_connection.rb +412 -0
  54. data/lib/telnyx/models/uac_connection_create_params.rb +9 -255
  55. data/lib/telnyx/models/uac_connection_create_response.rb +3 -878
  56. data/lib/telnyx/models/uac_connection_delete_response.rb +3 -878
  57. data/lib/telnyx/models/uac_connection_retrieve_response.rb +3 -879
  58. data/lib/telnyx/models/uac_connection_update_params.rb +9 -255
  59. data/lib/telnyx/models/uac_connection_update_response.rb +3 -878
  60. data/lib/telnyx/models/uac_external_settings.rb +101 -0
  61. data/lib/telnyx/models/uac_inbound.rb +210 -0
  62. data/lib/telnyx/models/uac_internal_settings.rb +25 -0
  63. data/lib/telnyx/models/uac_outbound.rb +131 -0
  64. data/lib/telnyx/models/virtual_cross_connect_combined.rb +212 -0
  65. data/lib/telnyx/models/virtual_cross_connect_create_response.rb +3 -8
  66. data/lib/telnyx/models/virtual_cross_connect_delete_response.rb +3 -8
  67. data/lib/telnyx/models/virtual_cross_connect_retrieve_response.rb +3 -8
  68. data/lib/telnyx/models/virtual_cross_connect_update_response.rb +3 -8
  69. data/lib/telnyx/models/wireguard_interface_create_response.rb +3 -8
  70. data/lib/telnyx/models/wireguard_interface_delete_response.rb +3 -8
  71. data/lib/telnyx/models/wireguard_interface_read.rb +136 -0
  72. data/lib/telnyx/models/wireguard_interface_retrieve_response.rb +3 -8
  73. data/lib/telnyx/models/xai_voice_settings.rb +36 -0
  74. data/lib/telnyx/models.rb +20 -0
  75. data/lib/telnyx/resources/ai/assistants/canary_deploys.rb +2 -2
  76. data/lib/telnyx/resources/ai/assistants/versions.rb +3 -3
  77. data/lib/telnyx/resources/ai/assistants.rb +6 -6
  78. data/lib/telnyx/resources/ai/openai.rb +1 -1
  79. data/lib/telnyx/resources/ai.rb +3 -3
  80. data/lib/telnyx/resources/calls/actions.rb +15 -17
  81. data/lib/telnyx/resources/conferences/actions.rb +1 -1
  82. data/lib/telnyx/resources/faxes.rb +13 -1
  83. data/lib/telnyx/resources/public_internet_gateways.rb +2 -2
  84. data/lib/telnyx/resources/texml.rb +4 -2
  85. data/lib/telnyx/resources/uac_connections.rb +8 -8
  86. data/lib/telnyx/resources/virtual_cross_connects.rb +2 -2
  87. data/lib/telnyx/resources/wireguard_interfaces.rb +2 -2
  88. data/lib/telnyx/version.rb +1 -1
  89. data/lib/telnyx.rb +23 -4
  90. data/rbi/telnyx/models/ai/assistant_create_params.rbi +12 -352
  91. data/rbi/telnyx/models/ai/assistant_integration.rbi +60 -0
  92. data/rbi/telnyx/models/ai/assistant_mcp_server.rbi +51 -0
  93. data/rbi/telnyx/models/ai/assistant_tool.rbi +10 -10
  94. data/rbi/telnyx/models/ai/assistant_update_params.rbi +12 -352
  95. data/rbi/telnyx/models/ai/assistants/canary_deploy.rbi +4 -290
  96. data/rbi/telnyx/models/ai/assistants/canary_deploy_response.rbi +3 -301
  97. data/rbi/telnyx/models/ai/assistants/clause.rbi +91 -0
  98. data/rbi/telnyx/models/ai/assistants/rollout_slot.rbi +36 -0
  99. data/rbi/telnyx/models/ai/assistants/rule_input.rbi +73 -0
  100. data/rbi/telnyx/models/ai/assistants/rule_output.rbi +73 -0
  101. data/rbi/telnyx/models/ai/assistants/serve.rbi +61 -0
  102. data/rbi/telnyx/models/ai/assistants/update_assistant.rbi +12 -366
  103. data/rbi/telnyx/models/ai/inference_embedding.rbi +12 -351
  104. data/rbi/telnyx/models/ai/inference_embedding_interruption_settings.rbi +83 -0
  105. data/rbi/telnyx/models/ai/openai_create_response_params.rbi +4 -4
  106. data/rbi/telnyx/models/ai/openai_list_models_response.rbi +3 -315
  107. data/rbi/telnyx/models/ai/start_speaking_plan.rbi +70 -0
  108. data/rbi/telnyx/models/ai/transcription_endpointing_plan.rbi +71 -0
  109. data/rbi/telnyx/models/ai/transfer_tool.rbi +5 -5
  110. data/rbi/telnyx/models/ai_create_response_params.rbi +4 -4
  111. data/rbi/telnyx/models/ai_retrieve_models_response.rbi +3 -310
  112. data/rbi/telnyx/models/call_conversation_ended.rbi +10 -0
  113. data/rbi/telnyx/models/calls/action_gather_using_ai_params.rbi +5 -41
  114. data/rbi/telnyx/models/calls/action_gather_using_speak_params.rbi +5 -41
  115. data/rbi/telnyx/models/calls/action_speak_params.rbi +5 -41
  116. data/rbi/telnyx/models/calls/action_start_ai_assistant_params.rbi +5 -41
  117. data/rbi/telnyx/models/calls/action_start_conversation_relay_params.rbi +371 -254
  118. data/rbi/telnyx/models/calls/transcription_engine_assemblyai_config.rbi +155 -0
  119. data/rbi/telnyx/models/calls/transcription_engine_speechmatics_config.rbi +289 -0
  120. data/rbi/telnyx/models/calls/transcription_engine_xai_config.rbi +329 -0
  121. data/rbi/telnyx/models/calls/transcription_start_request.rbi +20 -480
  122. data/rbi/telnyx/models/conferences/action_speak_params.rbi +5 -41
  123. data/rbi/telnyx/models/fax.rbi +12 -8
  124. data/rbi/telnyx/models/fax_create_params.rbi +12 -8
  125. data/rbi/telnyx/models/fax_delivered.rbi +6 -4
  126. data/rbi/telnyx/models/fax_failed.rbi +6 -4
  127. data/rbi/telnyx/models/fax_media_processed.rbi +6 -4
  128. data/rbi/telnyx/models/fax_queued.rbi +6 -4
  129. data/rbi/telnyx/models/fax_sending_started.rbi +6 -4
  130. data/rbi/telnyx/models/model_metadata.rbi +272 -0
  131. data/rbi/telnyx/models/network_list_interfaces_response.rbi +181 -4
  132. data/rbi/telnyx/models/public_internet_gateway_create_response.rbi +6 -38
  133. data/rbi/telnyx/models/public_internet_gateway_delete_response.rbi +6 -38
  134. data/rbi/telnyx/models/public_internet_gateway_read.rbi +128 -0
  135. data/rbi/telnyx/models/public_internet_gateway_retrieve_response.rbi +6 -38
  136. data/rbi/telnyx/models/texml/accounts/call_calls_params.rbi +81 -9
  137. data/rbi/telnyx/models/texml_initiate_ai_call_params.rbi +27 -3
  138. data/rbi/telnyx/models/text_to_speech_generate_params.rbi +6 -6
  139. data/rbi/telnyx/models/uac_connection.rbi +684 -0
  140. data/rbi/telnyx/models/uac_connection_create_params.rbi +12 -516
  141. data/rbi/telnyx/models/uac_connection_create_response.rbi +4 -1756
  142. data/rbi/telnyx/models/uac_connection_delete_response.rbi +4 -1756
  143. data/rbi/telnyx/models/uac_connection_retrieve_response.rbi +4 -1756
  144. data/rbi/telnyx/models/uac_connection_update_params.rbi +12 -516
  145. data/rbi/telnyx/models/uac_connection_update_response.rbi +4 -1756
  146. data/rbi/telnyx/models/uac_external_settings.rbi +146 -0
  147. data/rbi/telnyx/models/uac_inbound.rbi +410 -0
  148. data/rbi/telnyx/models/uac_internal_settings.rbi +39 -0
  149. data/rbi/telnyx/models/uac_outbound.rbi +224 -0
  150. data/rbi/telnyx/models/virtual_cross_connect_combined.rbi +345 -0
  151. data/rbi/telnyx/models/virtual_cross_connect_create_response.rbi +6 -36
  152. data/rbi/telnyx/models/virtual_cross_connect_delete_response.rbi +6 -36
  153. data/rbi/telnyx/models/virtual_cross_connect_retrieve_response.rbi +6 -38
  154. data/rbi/telnyx/models/virtual_cross_connect_update_response.rbi +6 -36
  155. data/rbi/telnyx/models/wireguard_interface_create_response.rbi +6 -36
  156. data/rbi/telnyx/models/wireguard_interface_delete_response.rbi +6 -36
  157. data/rbi/telnyx/models/wireguard_interface_read.rbi +213 -0
  158. data/rbi/telnyx/models/wireguard_interface_retrieve_response.rbi +6 -36
  159. data/rbi/telnyx/models/xai_voice_settings.rbi +64 -0
  160. data/rbi/telnyx/models.rbi +20 -0
  161. data/rbi/telnyx/resources/ai/assistants/canary_deploys.rbi +2 -4
  162. data/rbi/telnyx/resources/ai/assistants/versions.rbi +3 -9
  163. data/rbi/telnyx/resources/ai/assistants.rbi +6 -10
  164. data/rbi/telnyx/resources/ai/openai.rbi +1 -1
  165. data/rbi/telnyx/resources/ai.rbi +2 -2
  166. data/rbi/telnyx/resources/calls/actions.rbi +24 -24
  167. data/rbi/telnyx/resources/conferences/actions.rbi +1 -1
  168. data/rbi/telnyx/resources/faxes.rbi +18 -4
  169. data/rbi/telnyx/resources/public_internet_gateways.rbi +1 -1
  170. data/rbi/telnyx/resources/texml.rbi +7 -1
  171. data/rbi/telnyx/resources/uac_connections.rbi +7 -13
  172. data/rbi/telnyx/resources/virtual_cross_connects.rbi +1 -1
  173. data/rbi/telnyx/resources/wireguard_interfaces.rbi +1 -1
  174. data/sig/telnyx/models/ai/assistant_create_params.rbs +18 -149
  175. data/sig/telnyx/models/ai/assistant_integration.rbs +26 -0
  176. data/sig/telnyx/models/ai/assistant_mcp_server.rbs +19 -0
  177. data/sig/telnyx/models/ai/assistant_tool.rbs +8 -8
  178. data/sig/telnyx/models/ai/assistant_update_params.rbs +18 -149
  179. data/sig/telnyx/models/ai/assistants/canary_deploy.rbs +6 -113
  180. data/sig/telnyx/models/ai/assistants/canary_deploy_response.rbs +4 -109
  181. data/sig/telnyx/models/ai/assistants/clause.rbs +46 -0
  182. data/sig/telnyx/models/ai/assistants/rollout_slot.rbs +19 -0
  183. data/sig/telnyx/models/ai/assistants/rule_input.rbs +33 -0
  184. data/sig/telnyx/models/ai/assistants/rule_output.rbs +33 -0
  185. data/sig/telnyx/models/ai/assistants/serve.rbs +35 -0
  186. data/sig/telnyx/models/ai/assistants/update_assistant.rbs +18 -152
  187. data/sig/telnyx/models/ai/inference_embedding.rbs +18 -149
  188. data/sig/telnyx/models/ai/inference_embedding_interruption_settings.rbs +40 -0
  189. data/sig/telnyx/models/ai/openai_create_response_params.rbs +5 -5
  190. data/sig/telnyx/models/ai/openai_list_models_response.rbs +4 -149
  191. data/sig/telnyx/models/ai/start_speaking_plan.rbs +33 -0
  192. data/sig/telnyx/models/ai/transcription_endpointing_plan.rbs +38 -0
  193. data/sig/telnyx/models/ai/transfer_tool.rbs +4 -4
  194. data/sig/telnyx/models/ai_create_response_params.rbs +5 -4
  195. data/sig/telnyx/models/ai_retrieve_models_response.rbs +4 -149
  196. data/sig/telnyx/models/call_conversation_ended.rbs +5 -0
  197. data/sig/telnyx/models/calls/action_gather_using_ai_params.rbs +1 -15
  198. data/sig/telnyx/models/calls/action_gather_using_speak_params.rbs +1 -15
  199. data/sig/telnyx/models/calls/action_speak_params.rbs +1 -15
  200. data/sig/telnyx/models/calls/action_start_ai_assistant_params.rbs +1 -15
  201. data/sig/telnyx/models/calls/action_start_conversation_relay_params.rbs +141 -102
  202. data/sig/telnyx/models/calls/transcription_engine_assemblyai_config.rbs +62 -0
  203. data/sig/telnyx/models/calls/transcription_engine_speechmatics_config.rbs +114 -0
  204. data/sig/telnyx/models/calls/transcription_engine_xai_config.rbs +130 -0
  205. data/sig/telnyx/models/calls/transcription_start_request.rbs +13 -185
  206. data/sig/telnyx/models/conferences/action_speak_params.rbs +1 -15
  207. data/sig/telnyx/models/model_metadata.rbs +142 -0
  208. data/sig/telnyx/models/network_list_interfaces_response.rbs +106 -4
  209. data/sig/telnyx/models/public_internet_gateway_create_response.rbs +6 -18
  210. data/sig/telnyx/models/public_internet_gateway_delete_response.rbs +6 -18
  211. data/sig/telnyx/models/public_internet_gateway_read.rbs +80 -0
  212. data/sig/telnyx/models/public_internet_gateway_retrieve_response.rbs +6 -18
  213. data/sig/telnyx/models/texml/accounts/call_calls_params.rbs +27 -3
  214. data/sig/telnyx/models/texml_initiate_ai_call_params.rbs +9 -1
  215. data/sig/telnyx/models/text_to_speech_generate_params.rbs +6 -6
  216. data/sig/telnyx/models/uac_connection.rbs +338 -0
  217. data/sig/telnyx/models/uac_connection_create_params.rbs +17 -211
  218. data/sig/telnyx/models/uac_connection_create_response.rbs +5 -731
  219. data/sig/telnyx/models/uac_connection_delete_response.rbs +5 -731
  220. data/sig/telnyx/models/uac_connection_retrieve_response.rbs +5 -731
  221. data/sig/telnyx/models/uac_connection_update_params.rbs +17 -211
  222. data/sig/telnyx/models/uac_connection_update_response.rbs +5 -731
  223. data/sig/telnyx/models/uac_external_settings.rbs +73 -0
  224. data/sig/telnyx/models/uac_inbound.rbs +190 -0
  225. data/sig/telnyx/models/uac_internal_settings.rbs +15 -0
  226. data/sig/telnyx/models/uac_outbound.rbs +113 -0
  227. data/sig/telnyx/models/virtual_cross_connect_combined.rbs +190 -0
  228. data/sig/telnyx/models/virtual_cross_connect_create_response.rbs +6 -18
  229. data/sig/telnyx/models/virtual_cross_connect_delete_response.rbs +6 -18
  230. data/sig/telnyx/models/virtual_cross_connect_retrieve_response.rbs +6 -18
  231. data/sig/telnyx/models/virtual_cross_connect_update_response.rbs +6 -18
  232. data/sig/telnyx/models/wireguard_interface_create_response.rbs +6 -18
  233. data/sig/telnyx/models/wireguard_interface_delete_response.rbs +6 -18
  234. data/sig/telnyx/models/wireguard_interface_read.rbs +127 -0
  235. data/sig/telnyx/models/wireguard_interface_retrieve_response.rbs +6 -18
  236. data/sig/telnyx/models/xai_voice_settings.rbs +34 -0
  237. data/sig/telnyx/models.rbs +20 -0
  238. data/sig/telnyx/resources/ai/assistants/canary_deploys.rbs +2 -2
  239. data/sig/telnyx/resources/ai/assistants/versions.rbs +3 -3
  240. data/sig/telnyx/resources/ai/assistants.rbs +6 -6
  241. data/sig/telnyx/resources/ai/openai.rbs +1 -1
  242. data/sig/telnyx/resources/ai.rbs +1 -1
  243. data/sig/telnyx/resources/calls/actions.rbs +2 -4
  244. data/sig/telnyx/resources/public_internet_gateways.rbs +1 -1
  245. data/sig/telnyx/resources/texml.rbs +1 -0
  246. data/sig/telnyx/resources/uac_connections.rbs +7 -7
  247. data/sig/telnyx/resources/virtual_cross_connects.rbs +1 -1
  248. data/sig/telnyx/resources/wireguard_interfaces.rbs +1 -1
  249. metadata +71 -14
  250. data/lib/telnyx/models/public_internet_gateway_list_response.rb +0 -10
  251. data/lib/telnyx/models/uac_connection_list_response.rb +0 -876
  252. data/lib/telnyx/models/virtual_cross_connect_list_response.rb +0 -10
  253. data/lib/telnyx/models/wireguard_interface_list_response.rb +0 -10
  254. data/rbi/telnyx/models/public_internet_gateway_list_response.rbi +0 -23
  255. data/rbi/telnyx/models/uac_connection_list_response.rbi +0 -1727
  256. data/rbi/telnyx/models/virtual_cross_connect_list_response.rbi +0 -23
  257. data/rbi/telnyx/models/wireguard_interface_list_response.rbi +0 -23
  258. data/sig/telnyx/models/public_internet_gateway_list_response.rbs +0 -11
  259. data/sig/telnyx/models/uac_connection_list_response.rbs +0 -722
  260. data/sig/telnyx/models/virtual_cross_connect_list_response.rbs +0 -11
  261. data/sig/telnyx/models/wireguard_interface_list_response.rbs +0 -11
@@ -14,16 +14,13 @@ module Telnyx
14
14
  end
15
15
 
16
16
  sig do
17
- returns(
18
- T.nilable(T::Array[Telnyx::AI::Assistants::CanaryDeploy::Rule])
19
- )
17
+ returns(T.nilable(T::Array[Telnyx::AI::Assistants::RuleInput]))
20
18
  end
21
19
  attr_reader :rules
22
20
 
23
21
  sig do
24
22
  params(
25
- rules:
26
- T::Array[Telnyx::AI::Assistants::CanaryDeploy::Rule::OrHash]
23
+ rules: T::Array[Telnyx::AI::Assistants::RuleInput::OrHash]
27
24
  ).void
28
25
  end
29
26
  attr_writer :rules
@@ -33,8 +30,7 @@ module Telnyx
33
30
  # - `rules` — canonical ordered list of routing rules
34
31
  sig do
35
32
  params(
36
- rules:
37
- T::Array[Telnyx::AI::Assistants::CanaryDeploy::Rule::OrHash]
33
+ rules: T::Array[Telnyx::AI::Assistants::RuleInput::OrHash]
38
34
  ).returns(T.attached_class)
39
35
  end
40
36
  def self.new(rules: nil)
@@ -42,293 +38,11 @@ module Telnyx
42
38
 
43
39
  sig do
44
40
  override.returns(
45
- { rules: T::Array[Telnyx::AI::Assistants::CanaryDeploy::Rule] }
41
+ { rules: T::Array[Telnyx::AI::Assistants::RuleInput] }
46
42
  )
47
43
  end
48
44
  def to_hash
49
45
  end
50
-
51
- class Rule < Telnyx::Internal::Type::BaseModel
52
- OrHash =
53
- T.type_alias do
54
- T.any(
55
- Telnyx::AI::Assistants::CanaryDeploy::Rule,
56
- Telnyx::Internal::AnyHash
57
- )
58
- end
59
-
60
- # What a rule serves when matched.
61
- #
62
- # Exactly one of:
63
- #
64
- # - `version_id` — serve a specific version
65
- # - `rollout` — weighted random across versions; weights must sum to less than
66
- # 100, with the leftover routing to the main version
67
- sig { returns(Telnyx::AI::Assistants::CanaryDeploy::Rule::Serve) }
68
- attr_reader :serve
69
-
70
- sig do
71
- params(
72
- serve: Telnyx::AI::Assistants::CanaryDeploy::Rule::Serve::OrHash
73
- ).void
74
- end
75
- attr_writer :serve
76
-
77
- sig do
78
- returns(
79
- T.nilable(
80
- T::Array[Telnyx::AI::Assistants::CanaryDeploy::Rule::Match]
81
- )
82
- )
83
- end
84
- attr_reader :match
85
-
86
- sig do
87
- params(
88
- match:
89
- T::Array[
90
- Telnyx::AI::Assistants::CanaryDeploy::Rule::Match::OrHash
91
- ]
92
- ).void
93
- end
94
- attr_writer :match
95
-
96
- # A targeting rule: `match` clauses (AND) gate `serve`.
97
- #
98
- # An empty `match` is a catch-all (always fires).
99
- sig do
100
- params(
101
- serve:
102
- Telnyx::AI::Assistants::CanaryDeploy::Rule::Serve::OrHash,
103
- match:
104
- T::Array[
105
- Telnyx::AI::Assistants::CanaryDeploy::Rule::Match::OrHash
106
- ]
107
- ).returns(T.attached_class)
108
- end
109
- def self.new(
110
- # What a rule serves when matched.
111
- #
112
- # Exactly one of:
113
- #
114
- # - `version_id` — serve a specific version
115
- # - `rollout` — weighted random across versions; weights must sum to less than
116
- # 100, with the leftover routing to the main version
117
- serve:,
118
- match: nil
119
- )
120
- end
121
-
122
- sig do
123
- override.returns(
124
- {
125
- serve: Telnyx::AI::Assistants::CanaryDeploy::Rule::Serve,
126
- match:
127
- T::Array[Telnyx::AI::Assistants::CanaryDeploy::Rule::Match]
128
- }
129
- )
130
- end
131
- def to_hash
132
- end
133
-
134
- class Serve < Telnyx::Internal::Type::BaseModel
135
- OrHash =
136
- T.type_alias do
137
- T.any(
138
- Telnyx::AI::Assistants::CanaryDeploy::Rule::Serve,
139
- Telnyx::Internal::AnyHash
140
- )
141
- end
142
-
143
- sig do
144
- returns(
145
- T.nilable(
146
- T::Array[
147
- Telnyx::AI::Assistants::CanaryDeploy::Rule::Serve::Rollout
148
- ]
149
- )
150
- )
151
- end
152
- attr_reader :rollout
153
-
154
- sig do
155
- params(
156
- rollout:
157
- T::Array[
158
- Telnyx::AI::Assistants::CanaryDeploy::Rule::Serve::Rollout::OrHash
159
- ]
160
- ).void
161
- end
162
- attr_writer :rollout
163
-
164
- sig { returns(T.nilable(String)) }
165
- attr_reader :version_id
166
-
167
- sig { params(version_id: String).void }
168
- attr_writer :version_id
169
-
170
- # What a rule serves when matched.
171
- #
172
- # Exactly one of:
173
- #
174
- # - `version_id` — serve a specific version
175
- # - `rollout` — weighted random across versions; weights must sum to less than
176
- # 100, with the leftover routing to the main version
177
- sig do
178
- params(
179
- rollout:
180
- T::Array[
181
- Telnyx::AI::Assistants::CanaryDeploy::Rule::Serve::Rollout::OrHash
182
- ],
183
- version_id: String
184
- ).returns(T.attached_class)
185
- end
186
- def self.new(rollout: nil, version_id: nil)
187
- end
188
-
189
- sig do
190
- override.returns(
191
- {
192
- rollout:
193
- T::Array[
194
- Telnyx::AI::Assistants::CanaryDeploy::Rule::Serve::Rollout
195
- ],
196
- version_id: String
197
- }
198
- )
199
- end
200
- def to_hash
201
- end
202
-
203
- class Rollout < Telnyx::Internal::Type::BaseModel
204
- OrHash =
205
- T.type_alias do
206
- T.any(
207
- Telnyx::AI::Assistants::CanaryDeploy::Rule::Serve::Rollout,
208
- Telnyx::Internal::AnyHash
209
- )
210
- end
211
-
212
- sig { returns(String) }
213
- attr_accessor :version_id
214
-
215
- sig { returns(Float) }
216
- attr_accessor :weight
217
-
218
- # One slot in a percentage rollout.
219
- sig do
220
- params(version_id: String, weight: Float).returns(
221
- T.attached_class
222
- )
223
- end
224
- def self.new(version_id:, weight:)
225
- end
226
-
227
- sig { override.returns({ version_id: String, weight: Float }) }
228
- def to_hash
229
- end
230
- end
231
- end
232
-
233
- class Match < Telnyx::Internal::Type::BaseModel
234
- OrHash =
235
- T.type_alias do
236
- T.any(
237
- Telnyx::AI::Assistants::CanaryDeploy::Rule::Match,
238
- Telnyx::Internal::AnyHash
239
- )
240
- end
241
-
242
- # Attribute name from the routing context
243
- sig { returns(String) }
244
- attr_accessor :attribute
245
-
246
- # Match operator
247
- sig do
248
- returns(
249
- Telnyx::AI::Assistants::CanaryDeploy::Rule::Match::Operator::OrSymbol
250
- )
251
- end
252
- attr_accessor :operator
253
-
254
- sig { returns(T::Array[String]) }
255
- attr_accessor :values
256
-
257
- # A single attribute/operator/values check.
258
- #
259
- # A clause matches when the routing context's value for `attribute` satisfies
260
- # `operator` against any of `values`.
261
- sig do
262
- params(
263
- attribute: String,
264
- operator:
265
- Telnyx::AI::Assistants::CanaryDeploy::Rule::Match::Operator::OrSymbol,
266
- values: T::Array[String]
267
- ).returns(T.attached_class)
268
- end
269
- def self.new(
270
- # Attribute name from the routing context
271
- attribute:,
272
- # Match operator
273
- operator:,
274
- values:
275
- )
276
- end
277
-
278
- sig do
279
- override.returns(
280
- {
281
- attribute: String,
282
- operator:
283
- Telnyx::AI::Assistants::CanaryDeploy::Rule::Match::Operator::OrSymbol,
284
- values: T::Array[String]
285
- }
286
- )
287
- end
288
- def to_hash
289
- end
290
-
291
- # Match operator
292
- module Operator
293
- extend Telnyx::Internal::Type::Enum
294
-
295
- TaggedSymbol =
296
- T.type_alias do
297
- T.all(
298
- Symbol,
299
- Telnyx::AI::Assistants::CanaryDeploy::Rule::Match::Operator
300
- )
301
- end
302
- OrSymbol = T.type_alias { T.any(Symbol, String) }
303
-
304
- IN =
305
- T.let(
306
- :in,
307
- Telnyx::AI::Assistants::CanaryDeploy::Rule::Match::Operator::TaggedSymbol
308
- )
309
- NOT_IN =
310
- T.let(
311
- :not_in,
312
- Telnyx::AI::Assistants::CanaryDeploy::Rule::Match::Operator::TaggedSymbol
313
- )
314
- STARTS_WITH =
315
- T.let(
316
- :starts_with,
317
- Telnyx::AI::Assistants::CanaryDeploy::Rule::Match::Operator::TaggedSymbol
318
- )
319
-
320
- sig do
321
- override.returns(
322
- T::Array[
323
- Telnyx::AI::Assistants::CanaryDeploy::Rule::Match::Operator::TaggedSymbol
324
- ]
325
- )
326
- end
327
- def self.values
328
- end
329
- end
330
- end
331
- end
332
46
  end
333
47
  end
334
48
  end
@@ -19,11 +19,7 @@ module Telnyx
19
19
  sig { returns(Time) }
20
20
  attr_accessor :created_at
21
21
 
22
- sig do
23
- returns(
24
- T::Array[Telnyx::AI::Assistants::CanaryDeployResponse::Rule]
25
- )
26
- end
22
+ sig { returns(T::Array[Telnyx::AI::Assistants::RuleOutput]) }
27
23
  attr_accessor :rules
28
24
 
29
25
  sig { returns(Time) }
@@ -36,10 +32,7 @@ module Telnyx
36
32
  params(
37
33
  assistant_id: String,
38
34
  created_at: Time,
39
- rules:
40
- T::Array[
41
- Telnyx::AI::Assistants::CanaryDeployResponse::Rule::OrHash
42
- ],
35
+ rules: T::Array[Telnyx::AI::Assistants::RuleOutput::OrHash],
43
36
  updated_at: Time
44
37
  ).returns(T.attached_class)
45
38
  end
@@ -51,304 +44,13 @@ module Telnyx
51
44
  {
52
45
  assistant_id: String,
53
46
  created_at: Time,
54
- rules:
55
- T::Array[Telnyx::AI::Assistants::CanaryDeployResponse::Rule],
47
+ rules: T::Array[Telnyx::AI::Assistants::RuleOutput],
56
48
  updated_at: Time
57
49
  }
58
50
  )
59
51
  end
60
52
  def to_hash
61
53
  end
62
-
63
- class Rule < Telnyx::Internal::Type::BaseModel
64
- OrHash =
65
- T.type_alias do
66
- T.any(
67
- Telnyx::AI::Assistants::CanaryDeployResponse::Rule,
68
- Telnyx::Internal::AnyHash
69
- )
70
- end
71
-
72
- # What a rule serves when matched.
73
- #
74
- # Exactly one of:
75
- #
76
- # - `version_id` — serve a specific version
77
- # - `rollout` — weighted random across versions; weights must sum to less than
78
- # 100, with the leftover routing to the main version
79
- sig do
80
- returns(Telnyx::AI::Assistants::CanaryDeployResponse::Rule::Serve)
81
- end
82
- attr_reader :serve
83
-
84
- sig do
85
- params(
86
- serve:
87
- Telnyx::AI::Assistants::CanaryDeployResponse::Rule::Serve::OrHash
88
- ).void
89
- end
90
- attr_writer :serve
91
-
92
- sig do
93
- returns(
94
- T.nilable(
95
- T::Array[
96
- Telnyx::AI::Assistants::CanaryDeployResponse::Rule::Match
97
- ]
98
- )
99
- )
100
- end
101
- attr_reader :match
102
-
103
- sig do
104
- params(
105
- match:
106
- T::Array[
107
- Telnyx::AI::Assistants::CanaryDeployResponse::Rule::Match::OrHash
108
- ]
109
- ).void
110
- end
111
- attr_writer :match
112
-
113
- # A targeting rule: `match` clauses (AND) gate `serve`.
114
- #
115
- # An empty `match` is a catch-all (always fires).
116
- sig do
117
- params(
118
- serve:
119
- Telnyx::AI::Assistants::CanaryDeployResponse::Rule::Serve::OrHash,
120
- match:
121
- T::Array[
122
- Telnyx::AI::Assistants::CanaryDeployResponse::Rule::Match::OrHash
123
- ]
124
- ).returns(T.attached_class)
125
- end
126
- def self.new(
127
- # What a rule serves when matched.
128
- #
129
- # Exactly one of:
130
- #
131
- # - `version_id` — serve a specific version
132
- # - `rollout` — weighted random across versions; weights must sum to less than
133
- # 100, with the leftover routing to the main version
134
- serve:,
135
- match: nil
136
- )
137
- end
138
-
139
- sig do
140
- override.returns(
141
- {
142
- serve:
143
- Telnyx::AI::Assistants::CanaryDeployResponse::Rule::Serve,
144
- match:
145
- T::Array[
146
- Telnyx::AI::Assistants::CanaryDeployResponse::Rule::Match
147
- ]
148
- }
149
- )
150
- end
151
- def to_hash
152
- end
153
-
154
- class Serve < Telnyx::Internal::Type::BaseModel
155
- OrHash =
156
- T.type_alias do
157
- T.any(
158
- Telnyx::AI::Assistants::CanaryDeployResponse::Rule::Serve,
159
- Telnyx::Internal::AnyHash
160
- )
161
- end
162
-
163
- sig do
164
- returns(
165
- T.nilable(
166
- T::Array[
167
- Telnyx::AI::Assistants::CanaryDeployResponse::Rule::Serve::Rollout
168
- ]
169
- )
170
- )
171
- end
172
- attr_reader :rollout
173
-
174
- sig do
175
- params(
176
- rollout:
177
- T::Array[
178
- Telnyx::AI::Assistants::CanaryDeployResponse::Rule::Serve::Rollout::OrHash
179
- ]
180
- ).void
181
- end
182
- attr_writer :rollout
183
-
184
- sig { returns(T.nilable(String)) }
185
- attr_reader :version_id
186
-
187
- sig { params(version_id: String).void }
188
- attr_writer :version_id
189
-
190
- # What a rule serves when matched.
191
- #
192
- # Exactly one of:
193
- #
194
- # - `version_id` — serve a specific version
195
- # - `rollout` — weighted random across versions; weights must sum to less than
196
- # 100, with the leftover routing to the main version
197
- sig do
198
- params(
199
- rollout:
200
- T::Array[
201
- Telnyx::AI::Assistants::CanaryDeployResponse::Rule::Serve::Rollout::OrHash
202
- ],
203
- version_id: String
204
- ).returns(T.attached_class)
205
- end
206
- def self.new(rollout: nil, version_id: nil)
207
- end
208
-
209
- sig do
210
- override.returns(
211
- {
212
- rollout:
213
- T::Array[
214
- Telnyx::AI::Assistants::CanaryDeployResponse::Rule::Serve::Rollout
215
- ],
216
- version_id: String
217
- }
218
- )
219
- end
220
- def to_hash
221
- end
222
-
223
- class Rollout < Telnyx::Internal::Type::BaseModel
224
- OrHash =
225
- T.type_alias do
226
- T.any(
227
- Telnyx::AI::Assistants::CanaryDeployResponse::Rule::Serve::Rollout,
228
- Telnyx::Internal::AnyHash
229
- )
230
- end
231
-
232
- sig { returns(String) }
233
- attr_accessor :version_id
234
-
235
- sig { returns(Float) }
236
- attr_accessor :weight
237
-
238
- # One slot in a percentage rollout.
239
- sig do
240
- params(version_id: String, weight: Float).returns(
241
- T.attached_class
242
- )
243
- end
244
- def self.new(version_id:, weight:)
245
- end
246
-
247
- sig { override.returns({ version_id: String, weight: Float }) }
248
- def to_hash
249
- end
250
- end
251
- end
252
-
253
- class Match < Telnyx::Internal::Type::BaseModel
254
- OrHash =
255
- T.type_alias do
256
- T.any(
257
- Telnyx::AI::Assistants::CanaryDeployResponse::Rule::Match,
258
- Telnyx::Internal::AnyHash
259
- )
260
- end
261
-
262
- # Attribute name from the routing context
263
- sig { returns(String) }
264
- attr_accessor :attribute
265
-
266
- # Match operator
267
- sig do
268
- returns(
269
- Telnyx::AI::Assistants::CanaryDeployResponse::Rule::Match::Operator::TaggedSymbol
270
- )
271
- end
272
- attr_accessor :operator
273
-
274
- sig { returns(T::Array[String]) }
275
- attr_accessor :values
276
-
277
- # A single attribute/operator/values check.
278
- #
279
- # A clause matches when the routing context's value for `attribute` satisfies
280
- # `operator` against any of `values`.
281
- sig do
282
- params(
283
- attribute: String,
284
- operator:
285
- Telnyx::AI::Assistants::CanaryDeployResponse::Rule::Match::Operator::OrSymbol,
286
- values: T::Array[String]
287
- ).returns(T.attached_class)
288
- end
289
- def self.new(
290
- # Attribute name from the routing context
291
- attribute:,
292
- # Match operator
293
- operator:,
294
- values:
295
- )
296
- end
297
-
298
- sig do
299
- override.returns(
300
- {
301
- attribute: String,
302
- operator:
303
- Telnyx::AI::Assistants::CanaryDeployResponse::Rule::Match::Operator::TaggedSymbol,
304
- values: T::Array[String]
305
- }
306
- )
307
- end
308
- def to_hash
309
- end
310
-
311
- # Match operator
312
- module Operator
313
- extend Telnyx::Internal::Type::Enum
314
-
315
- TaggedSymbol =
316
- T.type_alias do
317
- T.all(
318
- Symbol,
319
- Telnyx::AI::Assistants::CanaryDeployResponse::Rule::Match::Operator
320
- )
321
- end
322
- OrSymbol = T.type_alias { T.any(Symbol, String) }
323
-
324
- IN =
325
- T.let(
326
- :in,
327
- Telnyx::AI::Assistants::CanaryDeployResponse::Rule::Match::Operator::TaggedSymbol
328
- )
329
- NOT_IN =
330
- T.let(
331
- :not_in,
332
- Telnyx::AI::Assistants::CanaryDeployResponse::Rule::Match::Operator::TaggedSymbol
333
- )
334
- STARTS_WITH =
335
- T.let(
336
- :starts_with,
337
- Telnyx::AI::Assistants::CanaryDeployResponse::Rule::Match::Operator::TaggedSymbol
338
- )
339
-
340
- sig do
341
- override.returns(
342
- T::Array[
343
- Telnyx::AI::Assistants::CanaryDeployResponse::Rule::Match::Operator::TaggedSymbol
344
- ]
345
- )
346
- end
347
- def self.values
348
- end
349
- end
350
- end
351
- end
352
54
  end
353
55
  end
354
56
  end