telnyx 5.103.0 → 5.103.1

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 (214) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +13 -0
  3. data/README.md +1 -1
  4. data/lib/telnyx/models/ai/assistant_create_params.rb +9 -170
  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 -170
  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 -171
  17. data/lib/telnyx/models/ai/inference_embedding.rb +9 -169
  18. data/lib/telnyx/models/ai/inference_embedding_interruption_settings.rb +39 -0
  19. data/lib/telnyx/models/ai/openai_list_models_response.rb +3 -31
  20. data/lib/telnyx/models/ai/start_speaking_plan.rb +37 -0
  21. data/lib/telnyx/models/ai/transcription_endpointing_plan.rb +39 -0
  22. data/lib/telnyx/models/ai/transfer_tool.rb +7 -9
  23. data/lib/telnyx/models/ai_retrieve_models_response.rb +3 -31
  24. data/lib/telnyx/models/calls/action_gather_using_ai_params.rb +4 -23
  25. data/lib/telnyx/models/calls/action_gather_using_speak_params.rb +4 -23
  26. data/lib/telnyx/models/calls/action_speak_params.rb +4 -23
  27. data/lib/telnyx/models/calls/action_start_ai_assistant_params.rb +4 -23
  28. data/lib/telnyx/models/calls/transcription_engine_assemblyai_config.rb +64 -0
  29. data/lib/telnyx/models/calls/transcription_engine_xai_config.rb +108 -0
  30. data/lib/telnyx/models/calls/transcription_start_request.rb +5 -167
  31. data/lib/telnyx/models/conferences/action_speak_params.rb +4 -23
  32. data/lib/telnyx/models/model_metadata.rb +33 -0
  33. data/lib/telnyx/models/network_list_interfaces_response.rb +112 -2
  34. data/lib/telnyx/models/public_internet_gateway_create_response.rb +3 -8
  35. data/lib/telnyx/models/public_internet_gateway_delete_response.rb +3 -8
  36. data/lib/telnyx/models/public_internet_gateway_read.rb +83 -0
  37. data/lib/telnyx/models/public_internet_gateway_retrieve_response.rb +3 -8
  38. data/lib/telnyx/models/text_to_speech_generate_params.rb +6 -6
  39. data/lib/telnyx/models/uac_connection.rb +412 -0
  40. data/lib/telnyx/models/uac_connection_create_params.rb +9 -255
  41. data/lib/telnyx/models/uac_connection_create_response.rb +3 -878
  42. data/lib/telnyx/models/uac_connection_delete_response.rb +3 -878
  43. data/lib/telnyx/models/uac_connection_retrieve_response.rb +3 -879
  44. data/lib/telnyx/models/uac_connection_update_params.rb +9 -255
  45. data/lib/telnyx/models/uac_connection_update_response.rb +3 -878
  46. data/lib/telnyx/models/uac_external_settings.rb +101 -0
  47. data/lib/telnyx/models/uac_inbound.rb +210 -0
  48. data/lib/telnyx/models/uac_internal_settings.rb +25 -0
  49. data/lib/telnyx/models/uac_outbound.rb +131 -0
  50. data/lib/telnyx/models/virtual_cross_connect_combined.rb +212 -0
  51. data/lib/telnyx/models/virtual_cross_connect_create_response.rb +3 -8
  52. data/lib/telnyx/models/virtual_cross_connect_delete_response.rb +3 -8
  53. data/lib/telnyx/models/virtual_cross_connect_retrieve_response.rb +3 -8
  54. data/lib/telnyx/models/virtual_cross_connect_update_response.rb +3 -8
  55. data/lib/telnyx/models/wireguard_interface_create_response.rb +3 -8
  56. data/lib/telnyx/models/wireguard_interface_delete_response.rb +3 -8
  57. data/lib/telnyx/models/wireguard_interface_read.rb +136 -0
  58. data/lib/telnyx/models/wireguard_interface_retrieve_response.rb +3 -8
  59. data/lib/telnyx/models/xai_voice_settings.rb +36 -0
  60. data/lib/telnyx/models.rb +20 -0
  61. data/lib/telnyx/resources/ai/assistants/canary_deploys.rb +2 -2
  62. data/lib/telnyx/resources/ai/assistants/versions.rb +3 -3
  63. data/lib/telnyx/resources/ai/assistants.rb +6 -6
  64. data/lib/telnyx/resources/calls/actions.rb +5 -5
  65. data/lib/telnyx/resources/conferences/actions.rb +1 -1
  66. data/lib/telnyx/resources/public_internet_gateways.rb +2 -2
  67. data/lib/telnyx/resources/uac_connections.rb +8 -8
  68. data/lib/telnyx/resources/virtual_cross_connects.rb +2 -2
  69. data/lib/telnyx/resources/wireguard_interfaces.rb +2 -2
  70. data/lib/telnyx/version.rb +1 -1
  71. data/lib/telnyx.rb +22 -4
  72. data/rbi/telnyx/models/ai/assistant_create_params.rbi +12 -341
  73. data/rbi/telnyx/models/ai/assistant_integration.rbi +60 -0
  74. data/rbi/telnyx/models/ai/assistant_mcp_server.rbi +51 -0
  75. data/rbi/telnyx/models/ai/assistant_tool.rbi +10 -10
  76. data/rbi/telnyx/models/ai/assistant_update_params.rbi +12 -341
  77. data/rbi/telnyx/models/ai/assistants/canary_deploy.rbi +4 -290
  78. data/rbi/telnyx/models/ai/assistants/canary_deploy_response.rbi +3 -301
  79. data/rbi/telnyx/models/ai/assistants/clause.rbi +91 -0
  80. data/rbi/telnyx/models/ai/assistants/rollout_slot.rbi +36 -0
  81. data/rbi/telnyx/models/ai/assistants/rule_input.rbi +73 -0
  82. data/rbi/telnyx/models/ai/assistants/rule_output.rbi +73 -0
  83. data/rbi/telnyx/models/ai/assistants/serve.rbi +61 -0
  84. data/rbi/telnyx/models/ai/assistants/update_assistant.rbi +12 -355
  85. data/rbi/telnyx/models/ai/inference_embedding.rbi +12 -340
  86. data/rbi/telnyx/models/ai/inference_embedding_interruption_settings.rbi +72 -0
  87. data/rbi/telnyx/models/ai/openai_list_models_response.rbi +3 -56
  88. data/rbi/telnyx/models/ai/start_speaking_plan.rbi +70 -0
  89. data/rbi/telnyx/models/ai/transcription_endpointing_plan.rbi +71 -0
  90. data/rbi/telnyx/models/ai/transfer_tool.rbi +5 -5
  91. data/rbi/telnyx/models/ai_retrieve_models_response.rbi +3 -51
  92. data/rbi/telnyx/models/calls/action_gather_using_ai_params.rbi +5 -41
  93. data/rbi/telnyx/models/calls/action_gather_using_speak_params.rbi +5 -41
  94. data/rbi/telnyx/models/calls/action_speak_params.rbi +5 -41
  95. data/rbi/telnyx/models/calls/action_start_ai_assistant_params.rbi +5 -41
  96. data/rbi/telnyx/models/calls/transcription_engine_assemblyai_config.rbi +155 -0
  97. data/rbi/telnyx/models/calls/transcription_engine_xai_config.rbi +329 -0
  98. data/rbi/telnyx/models/calls/transcription_start_request.rbi +10 -480
  99. data/rbi/telnyx/models/conferences/action_speak_params.rbi +5 -41
  100. data/rbi/telnyx/models/model_metadata.rbi +44 -0
  101. data/rbi/telnyx/models/network_list_interfaces_response.rbi +181 -4
  102. data/rbi/telnyx/models/public_internet_gateway_create_response.rbi +6 -38
  103. data/rbi/telnyx/models/public_internet_gateway_delete_response.rbi +6 -38
  104. data/rbi/telnyx/models/public_internet_gateway_read.rbi +128 -0
  105. data/rbi/telnyx/models/public_internet_gateway_retrieve_response.rbi +6 -38
  106. data/rbi/telnyx/models/text_to_speech_generate_params.rbi +6 -6
  107. data/rbi/telnyx/models/uac_connection.rbi +684 -0
  108. data/rbi/telnyx/models/uac_connection_create_params.rbi +12 -516
  109. data/rbi/telnyx/models/uac_connection_create_response.rbi +4 -1756
  110. data/rbi/telnyx/models/uac_connection_delete_response.rbi +4 -1756
  111. data/rbi/telnyx/models/uac_connection_retrieve_response.rbi +4 -1756
  112. data/rbi/telnyx/models/uac_connection_update_params.rbi +12 -516
  113. data/rbi/telnyx/models/uac_connection_update_response.rbi +4 -1756
  114. data/rbi/telnyx/models/uac_external_settings.rbi +146 -0
  115. data/rbi/telnyx/models/uac_inbound.rbi +410 -0
  116. data/rbi/telnyx/models/uac_internal_settings.rbi +39 -0
  117. data/rbi/telnyx/models/uac_outbound.rbi +224 -0
  118. data/rbi/telnyx/models/virtual_cross_connect_combined.rbi +345 -0
  119. data/rbi/telnyx/models/virtual_cross_connect_create_response.rbi +6 -36
  120. data/rbi/telnyx/models/virtual_cross_connect_delete_response.rbi +6 -36
  121. data/rbi/telnyx/models/virtual_cross_connect_retrieve_response.rbi +6 -38
  122. data/rbi/telnyx/models/virtual_cross_connect_update_response.rbi +6 -36
  123. data/rbi/telnyx/models/wireguard_interface_create_response.rbi +6 -36
  124. data/rbi/telnyx/models/wireguard_interface_delete_response.rbi +6 -36
  125. data/rbi/telnyx/models/wireguard_interface_read.rbi +213 -0
  126. data/rbi/telnyx/models/wireguard_interface_retrieve_response.rbi +6 -36
  127. data/rbi/telnyx/models/xai_voice_settings.rbi +64 -0
  128. data/rbi/telnyx/models.rbi +20 -0
  129. data/rbi/telnyx/resources/ai/assistants/canary_deploys.rbi +2 -4
  130. data/rbi/telnyx/resources/ai/assistants/versions.rbi +3 -9
  131. data/rbi/telnyx/resources/ai/assistants.rbi +6 -10
  132. data/rbi/telnyx/resources/calls/actions.rbi +6 -6
  133. data/rbi/telnyx/resources/conferences/actions.rbi +1 -1
  134. data/rbi/telnyx/resources/public_internet_gateways.rbi +1 -1
  135. data/rbi/telnyx/resources/uac_connections.rbi +7 -13
  136. data/rbi/telnyx/resources/virtual_cross_connects.rbi +1 -1
  137. data/rbi/telnyx/resources/wireguard_interfaces.rbi +1 -1
  138. data/sig/telnyx/models/ai/assistant_create_params.rbs +18 -142
  139. data/sig/telnyx/models/ai/assistant_integration.rbs +26 -0
  140. data/sig/telnyx/models/ai/assistant_mcp_server.rbs +19 -0
  141. data/sig/telnyx/models/ai/assistant_tool.rbs +8 -8
  142. data/sig/telnyx/models/ai/assistant_update_params.rbs +18 -142
  143. data/sig/telnyx/models/ai/assistants/canary_deploy.rbs +6 -113
  144. data/sig/telnyx/models/ai/assistants/canary_deploy_response.rbs +4 -109
  145. data/sig/telnyx/models/ai/assistants/clause.rbs +46 -0
  146. data/sig/telnyx/models/ai/assistants/rollout_slot.rbs +19 -0
  147. data/sig/telnyx/models/ai/assistants/rule_input.rbs +33 -0
  148. data/sig/telnyx/models/ai/assistants/rule_output.rbs +33 -0
  149. data/sig/telnyx/models/ai/assistants/serve.rbs +35 -0
  150. data/sig/telnyx/models/ai/assistants/update_assistant.rbs +18 -145
  151. data/sig/telnyx/models/ai/inference_embedding.rbs +18 -142
  152. data/sig/telnyx/models/ai/inference_embedding_interruption_settings.rbs +30 -0
  153. data/sig/telnyx/models/ai/openai_list_models_response.rbs +4 -39
  154. data/sig/telnyx/models/ai/start_speaking_plan.rbs +33 -0
  155. data/sig/telnyx/models/ai/transcription_endpointing_plan.rbs +38 -0
  156. data/sig/telnyx/models/ai/transfer_tool.rbs +4 -4
  157. data/sig/telnyx/models/ai_retrieve_models_response.rbs +4 -39
  158. data/sig/telnyx/models/calls/action_gather_using_ai_params.rbs +1 -15
  159. data/sig/telnyx/models/calls/action_gather_using_speak_params.rbs +1 -15
  160. data/sig/telnyx/models/calls/action_speak_params.rbs +1 -15
  161. data/sig/telnyx/models/calls/action_start_ai_assistant_params.rbs +1 -15
  162. data/sig/telnyx/models/calls/transcription_engine_assemblyai_config.rbs +62 -0
  163. data/sig/telnyx/models/calls/transcription_engine_xai_config.rbs +130 -0
  164. data/sig/telnyx/models/calls/transcription_start_request.rbs +2 -184
  165. data/sig/telnyx/models/conferences/action_speak_params.rbs +1 -15
  166. data/sig/telnyx/models/model_metadata.rbs +32 -0
  167. data/sig/telnyx/models/network_list_interfaces_response.rbs +106 -4
  168. data/sig/telnyx/models/public_internet_gateway_create_response.rbs +6 -18
  169. data/sig/telnyx/models/public_internet_gateway_delete_response.rbs +6 -18
  170. data/sig/telnyx/models/public_internet_gateway_read.rbs +80 -0
  171. data/sig/telnyx/models/public_internet_gateway_retrieve_response.rbs +6 -18
  172. data/sig/telnyx/models/text_to_speech_generate_params.rbs +6 -6
  173. data/sig/telnyx/models/uac_connection.rbs +338 -0
  174. data/sig/telnyx/models/uac_connection_create_params.rbs +17 -211
  175. data/sig/telnyx/models/uac_connection_create_response.rbs +5 -731
  176. data/sig/telnyx/models/uac_connection_delete_response.rbs +5 -731
  177. data/sig/telnyx/models/uac_connection_retrieve_response.rbs +5 -731
  178. data/sig/telnyx/models/uac_connection_update_params.rbs +17 -211
  179. data/sig/telnyx/models/uac_connection_update_response.rbs +5 -731
  180. data/sig/telnyx/models/uac_external_settings.rbs +73 -0
  181. data/sig/telnyx/models/uac_inbound.rbs +190 -0
  182. data/sig/telnyx/models/uac_internal_settings.rbs +15 -0
  183. data/sig/telnyx/models/uac_outbound.rbs +113 -0
  184. data/sig/telnyx/models/virtual_cross_connect_combined.rbs +190 -0
  185. data/sig/telnyx/models/virtual_cross_connect_create_response.rbs +6 -18
  186. data/sig/telnyx/models/virtual_cross_connect_delete_response.rbs +6 -18
  187. data/sig/telnyx/models/virtual_cross_connect_retrieve_response.rbs +6 -18
  188. data/sig/telnyx/models/virtual_cross_connect_update_response.rbs +6 -18
  189. data/sig/telnyx/models/wireguard_interface_create_response.rbs +6 -18
  190. data/sig/telnyx/models/wireguard_interface_delete_response.rbs +6 -18
  191. data/sig/telnyx/models/wireguard_interface_read.rbs +127 -0
  192. data/sig/telnyx/models/wireguard_interface_retrieve_response.rbs +6 -18
  193. data/sig/telnyx/models/xai_voice_settings.rbs +34 -0
  194. data/sig/telnyx/models.rbs +20 -0
  195. data/sig/telnyx/resources/ai/assistants/canary_deploys.rbs +2 -2
  196. data/sig/telnyx/resources/ai/assistants/versions.rbs +3 -3
  197. data/sig/telnyx/resources/ai/assistants.rbs +6 -6
  198. data/sig/telnyx/resources/public_internet_gateways.rbs +1 -1
  199. data/sig/telnyx/resources/uac_connections.rbs +7 -7
  200. data/sig/telnyx/resources/virtual_cross_connects.rbs +1 -1
  201. data/sig/telnyx/resources/wireguard_interfaces.rbs +1 -1
  202. metadata +67 -13
  203. data/lib/telnyx/models/public_internet_gateway_list_response.rb +0 -10
  204. data/lib/telnyx/models/uac_connection_list_response.rb +0 -876
  205. data/lib/telnyx/models/virtual_cross_connect_list_response.rb +0 -10
  206. data/lib/telnyx/models/wireguard_interface_list_response.rb +0 -10
  207. data/rbi/telnyx/models/public_internet_gateway_list_response.rbi +0 -23
  208. data/rbi/telnyx/models/uac_connection_list_response.rbi +0 -1727
  209. data/rbi/telnyx/models/virtual_cross_connect_list_response.rbi +0 -23
  210. data/rbi/telnyx/models/wireguard_interface_list_response.rbi +0 -23
  211. data/sig/telnyx/models/public_internet_gateway_list_response.rbs +0 -11
  212. data/sig/telnyx/models/uac_connection_list_response.rbs +0 -722
  213. data/sig/telnyx/models/virtual_cross_connect_list_response.rbs +0 -11
  214. data/sig/telnyx/models/wireguard_interface_list_response.rbs +0 -11
@@ -0,0 +1,91 @@
1
+ # typed: strong
2
+
3
+ module Telnyx
4
+ module Models
5
+ module AI
6
+ module Assistants
7
+ class Clause < Telnyx::Internal::Type::BaseModel
8
+ OrHash =
9
+ T.type_alias do
10
+ T.any(Telnyx::AI::Assistants::Clause, Telnyx::Internal::AnyHash)
11
+ end
12
+
13
+ # Attribute name from the routing context
14
+ sig { returns(String) }
15
+ attr_accessor :attribute
16
+
17
+ # Match operator
18
+ sig { returns(Telnyx::AI::Assistants::Clause::Operator::OrSymbol) }
19
+ attr_accessor :operator
20
+
21
+ sig { returns(T::Array[String]) }
22
+ attr_accessor :values
23
+
24
+ # A single attribute/operator/values check.
25
+ #
26
+ # A clause matches when the routing context's value for `attribute` satisfies
27
+ # `operator` against any of `values`.
28
+ sig do
29
+ params(
30
+ attribute: String,
31
+ operator: Telnyx::AI::Assistants::Clause::Operator::OrSymbol,
32
+ values: T::Array[String]
33
+ ).returns(T.attached_class)
34
+ end
35
+ def self.new(
36
+ # Attribute name from the routing context
37
+ attribute:,
38
+ # Match operator
39
+ operator:,
40
+ values:
41
+ )
42
+ end
43
+
44
+ sig do
45
+ override.returns(
46
+ {
47
+ attribute: String,
48
+ operator: Telnyx::AI::Assistants::Clause::Operator::OrSymbol,
49
+ values: T::Array[String]
50
+ }
51
+ )
52
+ end
53
+ def to_hash
54
+ end
55
+
56
+ # Match operator
57
+ module Operator
58
+ extend Telnyx::Internal::Type::Enum
59
+
60
+ TaggedSymbol =
61
+ T.type_alias do
62
+ T.all(Symbol, Telnyx::AI::Assistants::Clause::Operator)
63
+ end
64
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
65
+
66
+ IN =
67
+ T.let(:in, Telnyx::AI::Assistants::Clause::Operator::TaggedSymbol)
68
+ NOT_IN =
69
+ T.let(
70
+ :not_in,
71
+ Telnyx::AI::Assistants::Clause::Operator::TaggedSymbol
72
+ )
73
+ STARTS_WITH =
74
+ T.let(
75
+ :starts_with,
76
+ Telnyx::AI::Assistants::Clause::Operator::TaggedSymbol
77
+ )
78
+
79
+ sig do
80
+ override.returns(
81
+ T::Array[Telnyx::AI::Assistants::Clause::Operator::TaggedSymbol]
82
+ )
83
+ end
84
+ def self.values
85
+ end
86
+ end
87
+ end
88
+ end
89
+ end
90
+ end
91
+ end
@@ -0,0 +1,36 @@
1
+ # typed: strong
2
+
3
+ module Telnyx
4
+ module Models
5
+ module AI
6
+ module Assistants
7
+ class RolloutSlot < Telnyx::Internal::Type::BaseModel
8
+ OrHash =
9
+ T.type_alias do
10
+ T.any(
11
+ Telnyx::AI::Assistants::RolloutSlot,
12
+ Telnyx::Internal::AnyHash
13
+ )
14
+ end
15
+
16
+ sig { returns(String) }
17
+ attr_accessor :version_id
18
+
19
+ sig { returns(Float) }
20
+ attr_accessor :weight
21
+
22
+ # One slot in a percentage rollout.
23
+ sig do
24
+ params(version_id: String, weight: Float).returns(T.attached_class)
25
+ end
26
+ def self.new(version_id:, weight:)
27
+ end
28
+
29
+ sig { override.returns({ version_id: String, weight: Float }) }
30
+ def to_hash
31
+ end
32
+ end
33
+ end
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,73 @@
1
+ # typed: strong
2
+
3
+ module Telnyx
4
+ module Models
5
+ module AI
6
+ module Assistants
7
+ class RuleInput < Telnyx::Internal::Type::BaseModel
8
+ OrHash =
9
+ T.type_alias do
10
+ T.any(
11
+ Telnyx::AI::Assistants::RuleInput,
12
+ Telnyx::Internal::AnyHash
13
+ )
14
+ end
15
+
16
+ # What a rule serves when matched.
17
+ #
18
+ # Exactly one of:
19
+ #
20
+ # - `version_id` — serve a specific version
21
+ # - `rollout` — weighted random across versions; weights must sum to less than
22
+ # 100, with the leftover routing to the main version
23
+ sig { returns(Telnyx::AI::Assistants::Serve) }
24
+ attr_reader :serve
25
+
26
+ sig { params(serve: Telnyx::AI::Assistants::Serve::OrHash).void }
27
+ attr_writer :serve
28
+
29
+ sig { returns(T.nilable(T::Array[Telnyx::AI::Assistants::Clause])) }
30
+ attr_reader :match
31
+
32
+ sig do
33
+ params(match: T::Array[Telnyx::AI::Assistants::Clause::OrHash]).void
34
+ end
35
+ attr_writer :match
36
+
37
+ # A targeting rule: `match` clauses (AND) gate `serve`.
38
+ #
39
+ # An empty `match` is a catch-all (always fires).
40
+ sig do
41
+ params(
42
+ serve: Telnyx::AI::Assistants::Serve::OrHash,
43
+ match: T::Array[Telnyx::AI::Assistants::Clause::OrHash]
44
+ ).returns(T.attached_class)
45
+ end
46
+ def self.new(
47
+ # What a rule serves when matched.
48
+ #
49
+ # Exactly one of:
50
+ #
51
+ # - `version_id` — serve a specific version
52
+ # - `rollout` — weighted random across versions; weights must sum to less than
53
+ # 100, with the leftover routing to the main version
54
+ serve:,
55
+ match: nil
56
+ )
57
+ end
58
+
59
+ sig do
60
+ override.returns(
61
+ {
62
+ serve: Telnyx::AI::Assistants::Serve,
63
+ match: T::Array[Telnyx::AI::Assistants::Clause]
64
+ }
65
+ )
66
+ end
67
+ def to_hash
68
+ end
69
+ end
70
+ end
71
+ end
72
+ end
73
+ end
@@ -0,0 +1,73 @@
1
+ # typed: strong
2
+
3
+ module Telnyx
4
+ module Models
5
+ module AI
6
+ module Assistants
7
+ class RuleOutput < Telnyx::Internal::Type::BaseModel
8
+ OrHash =
9
+ T.type_alias do
10
+ T.any(
11
+ Telnyx::AI::Assistants::RuleOutput,
12
+ Telnyx::Internal::AnyHash
13
+ )
14
+ end
15
+
16
+ # What a rule serves when matched.
17
+ #
18
+ # Exactly one of:
19
+ #
20
+ # - `version_id` — serve a specific version
21
+ # - `rollout` — weighted random across versions; weights must sum to less than
22
+ # 100, with the leftover routing to the main version
23
+ sig { returns(Telnyx::AI::Assistants::Serve) }
24
+ attr_reader :serve
25
+
26
+ sig { params(serve: Telnyx::AI::Assistants::Serve::OrHash).void }
27
+ attr_writer :serve
28
+
29
+ sig { returns(T.nilable(T::Array[Telnyx::AI::Assistants::Clause])) }
30
+ attr_reader :match
31
+
32
+ sig do
33
+ params(match: T::Array[Telnyx::AI::Assistants::Clause::OrHash]).void
34
+ end
35
+ attr_writer :match
36
+
37
+ # A targeting rule: `match` clauses (AND) gate `serve`.
38
+ #
39
+ # An empty `match` is a catch-all (always fires).
40
+ sig do
41
+ params(
42
+ serve: Telnyx::AI::Assistants::Serve::OrHash,
43
+ match: T::Array[Telnyx::AI::Assistants::Clause::OrHash]
44
+ ).returns(T.attached_class)
45
+ end
46
+ def self.new(
47
+ # What a rule serves when matched.
48
+ #
49
+ # Exactly one of:
50
+ #
51
+ # - `version_id` — serve a specific version
52
+ # - `rollout` — weighted random across versions; weights must sum to less than
53
+ # 100, with the leftover routing to the main version
54
+ serve:,
55
+ match: nil
56
+ )
57
+ end
58
+
59
+ sig do
60
+ override.returns(
61
+ {
62
+ serve: Telnyx::AI::Assistants::Serve,
63
+ match: T::Array[Telnyx::AI::Assistants::Clause]
64
+ }
65
+ )
66
+ end
67
+ def to_hash
68
+ end
69
+ end
70
+ end
71
+ end
72
+ end
73
+ end
@@ -0,0 +1,61 @@
1
+ # typed: strong
2
+
3
+ module Telnyx
4
+ module Models
5
+ module AI
6
+ module Assistants
7
+ class Serve < Telnyx::Internal::Type::BaseModel
8
+ OrHash =
9
+ T.type_alias do
10
+ T.any(Telnyx::AI::Assistants::Serve, Telnyx::Internal::AnyHash)
11
+ end
12
+
13
+ sig do
14
+ returns(T.nilable(T::Array[Telnyx::AI::Assistants::RolloutSlot]))
15
+ end
16
+ attr_reader :rollout
17
+
18
+ sig do
19
+ params(
20
+ rollout: T::Array[Telnyx::AI::Assistants::RolloutSlot::OrHash]
21
+ ).void
22
+ end
23
+ attr_writer :rollout
24
+
25
+ sig { returns(T.nilable(String)) }
26
+ attr_reader :version_id
27
+
28
+ sig { params(version_id: String).void }
29
+ attr_writer :version_id
30
+
31
+ # What a rule serves when matched.
32
+ #
33
+ # Exactly one of:
34
+ #
35
+ # - `version_id` — serve a specific version
36
+ # - `rollout` — weighted random across versions; weights must sum to less than
37
+ # 100, with the leftover routing to the main version
38
+ sig do
39
+ params(
40
+ rollout: T::Array[Telnyx::AI::Assistants::RolloutSlot::OrHash],
41
+ version_id: String
42
+ ).returns(T.attached_class)
43
+ end
44
+ def self.new(rollout: nil, version_id: nil)
45
+ end
46
+
47
+ sig do
48
+ override.returns(
49
+ {
50
+ rollout: T::Array[Telnyx::AI::Assistants::RolloutSlot],
51
+ version_id: String
52
+ }
53
+ )
54
+ end
55
+ def to_hash
56
+ end
57
+ end
58
+ end
59
+ end
60
+ end
61
+ end