telnyx 5.166.0 → 5.168.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 (205) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +19 -0
  3. data/README.md +1 -1
  4. data/lib/telnyx/client.rb +4 -0
  5. data/lib/telnyx/internal/default_flat_pagination.rb +7 -3
  6. data/lib/telnyx/internal/default_flat_pagination_for_inexplicit_number_orders.rb +7 -3
  7. data/lib/telnyx/internal/default_flat_pagination_top_level_array.rb +10 -8
  8. data/lib/telnyx/internal/default_pagination_for_log_messages.rb +7 -3
  9. data/lib/telnyx/internal/default_pagination_for_messaging_tollfree.rb +12 -3
  10. data/lib/telnyx/internal/default_pagination_for_queues.rb +12 -3
  11. data/lib/telnyx/internal/per_page_pagination.rb +8 -1
  12. data/lib/telnyx/internal/per_page_pagination_v2.rb +8 -1
  13. data/lib/telnyx/internal/type/converter.rb +2 -0
  14. data/lib/telnyx/models/ai/anthropic/v1_messages_params.rb +57 -1
  15. data/lib/telnyx/models/ai/assistant_a2_a_agent.rb +195 -0
  16. data/lib/telnyx/models/ai/assistant_create_params.rb +16 -1
  17. data/lib/telnyx/models/ai/assistant_update_params.rb +17 -1
  18. data/lib/telnyx/models/ai/assistants/update_assistant.rb +17 -1
  19. data/lib/telnyx/models/ai/chat_completion_request.rb +185 -48
  20. data/lib/telnyx/models/ai/inference_embedding.rb +16 -1
  21. data/lib/telnyx/models/ai/openai_create_response_params.rb +57 -1
  22. data/lib/telnyx/models/ai/telephony_settings.rb +15 -1
  23. data/lib/telnyx/models/compute/func_retrieve_logs_params.rb +66 -0
  24. data/lib/telnyx/models/compute/func_retrieve_logs_response.rb +161 -0
  25. data/lib/telnyx/models/compute/func_retrieve_metric_aggregates_params.rb +69 -0
  26. data/lib/telnyx/models/compute/func_retrieve_metric_aggregates_response.rb +137 -0
  27. data/lib/telnyx/models/compute/func_retrieve_revisions_params.rb +34 -0
  28. data/lib/telnyx/models/compute/func_retrieve_revisions_response.rb +101 -0
  29. data/lib/telnyx/models/compute/func_retrieve_ship_inspection_params.rb +22 -0
  30. data/lib/telnyx/models/compute/func_retrieve_ship_inspection_response.rb +94 -0
  31. data/lib/telnyx/models/compute/functions_observability_pagination_meta.rb +35 -0
  32. data/lib/telnyx/models/compute/logs_meta.rb +23 -0
  33. data/lib/telnyx/models/credential_connection.rb +4 -1
  34. data/lib/telnyx/models/email_inboxes/email_message.rb +12 -1
  35. data/lib/telnyx/models/email_message_batch_params.rb +4 -1
  36. data/lib/telnyx/models/email_message_batch_response.rb +1 -0
  37. data/lib/telnyx/models/fqdn_connection.rb +5 -2
  38. data/lib/telnyx/models/fqdn_connections/fqdn_authentication.rb +9 -2
  39. data/lib/telnyx/models/messaging_inbound_message_payload.rb +210 -67
  40. data/lib/telnyx/models/messaging_messaging_profile.rb +284 -0
  41. data/lib/telnyx/models/messaging_profile.rb +0 -1
  42. data/lib/telnyx/models/messaging_profile_create_params.rb +11 -1
  43. data/lib/telnyx/models/messaging_profile_create_response.rb +3 -3
  44. data/lib/telnyx/models/messaging_profile_delete_response.rb +3 -3
  45. data/lib/telnyx/models/messaging_profile_features.rb +26 -0
  46. data/lib/telnyx/models/messaging_profile_retrieve_response.rb +3 -3
  47. data/lib/telnyx/models/messaging_profile_update_params.rb +32 -1
  48. data/lib/telnyx/models/messaging_profile_update_response.rb +3 -3
  49. data/lib/telnyx/models/messaging_profiles/action_regenerate_secret_response.rb +3 -3
  50. data/lib/telnyx/models/uac_connection.rb +4 -1
  51. data/lib/telnyx/models/uac_external_settings.rb +6 -2
  52. data/lib/telnyx/models/unsafe_unwrap_webhook_event.rb +5 -1
  53. data/lib/telnyx/models/unwrap_webhook_event.rb +5 -1
  54. data/lib/telnyx/models/whatsapp/business_accounts/phone_number_list_response.rb +104 -1
  55. data/lib/telnyx/models/whatsapp/phone_number_get_response.rb +103 -1
  56. data/lib/telnyx/models/whatsapp/phone_number_list_response.rb +103 -1
  57. data/lib/telnyx/models/whatsapp/phone_number_retrieve_phone_number_params.rb +22 -0
  58. data/lib/telnyx/models/whatsapp/phone_number_retrieve_phone_number_response.rb +207 -0
  59. data/lib/telnyx/models/whatsapp_account_update.rb +112 -0
  60. data/lib/telnyx/models/whatsapp_message_echo.rb +340 -0
  61. data/lib/telnyx/models/x402/credit_account/payment_list_params.rb +34 -0
  62. data/lib/telnyx/models/x402/credit_account/payment_retrieve_params.rb +24 -0
  63. data/lib/telnyx/models/x402/credit_account/payment_retrieve_response.rb +21 -0
  64. data/lib/telnyx/models/x402/credit_account/x402_transaction_record.rb +113 -0
  65. data/lib/telnyx/models.rb +10 -0
  66. data/lib/telnyx/resources/ai/anthropic/v1.rb +5 -1
  67. data/lib/telnyx/resources/ai/assistants/versions.rb +3 -1
  68. data/lib/telnyx/resources/ai/assistants.rb +6 -2
  69. data/lib/telnyx/resources/ai/openai/chat.rb +6 -8
  70. data/lib/telnyx/resources/ai/openai.rb +5 -1
  71. data/lib/telnyx/resources/compute/funcs.rb +141 -0
  72. data/lib/telnyx/resources/compute.rb +18 -0
  73. data/lib/telnyx/resources/email_messages.rb +4 -2
  74. data/lib/telnyx/resources/messaging_profiles.rb +12 -4
  75. data/lib/telnyx/resources/webhooks.rb +2 -2
  76. data/lib/telnyx/resources/whatsapp/phone_numbers.rb +22 -0
  77. data/lib/telnyx/resources/x402/credit_account/payments.rb +71 -0
  78. data/lib/telnyx/resources/x402/credit_account.rb +8 -2
  79. data/lib/telnyx/version.rb +1 -1
  80. data/lib/telnyx.rb +24 -0
  81. data/rbi/telnyx/client.rbi +3 -0
  82. data/rbi/telnyx/models/ai/anthropic/v1_messages_params.rbi +139 -0
  83. data/rbi/telnyx/models/ai/assistant_a2_a_agent.rbi +345 -0
  84. data/rbi/telnyx/models/ai/assistant_create_params.rbi +29 -0
  85. data/rbi/telnyx/models/ai/assistant_update_params.rbi +31 -0
  86. data/rbi/telnyx/models/ai/assistants/update_assistant.rbi +31 -0
  87. data/rbi/telnyx/models/ai/chat_completion_request.rbi +339 -91
  88. data/rbi/telnyx/models/ai/inference_embedding.rbi +29 -0
  89. data/rbi/telnyx/models/ai/openai_create_response_params.rbi +136 -0
  90. data/rbi/telnyx/models/ai/telephony_settings.rbi +23 -0
  91. data/rbi/telnyx/models/compute/func_retrieve_logs_params.rbi +130 -0
  92. data/rbi/telnyx/models/compute/func_retrieve_logs_response.rbi +410 -0
  93. data/rbi/telnyx/models/compute/func_retrieve_metric_aggregates_params.rbi +102 -0
  94. data/rbi/telnyx/models/compute/func_retrieve_metric_aggregates_response.rbi +231 -0
  95. data/rbi/telnyx/models/compute/func_retrieve_revisions_params.rbi +59 -0
  96. data/rbi/telnyx/models/compute/func_retrieve_revisions_response.rbi +213 -0
  97. data/rbi/telnyx/models/compute/func_retrieve_ship_inspection_params.rbi +40 -0
  98. data/rbi/telnyx/models/compute/func_retrieve_ship_inspection_response.rbi +252 -0
  99. data/rbi/telnyx/models/compute/functions_observability_pagination_meta.rbi +70 -0
  100. data/rbi/telnyx/models/compute/logs_meta.rbi +38 -0
  101. data/rbi/telnyx/models/credential_connection.rbi +8 -2
  102. data/rbi/telnyx/models/email_inboxes/email_message.rbi +22 -3
  103. data/rbi/telnyx/models/email_message_batch_params.rbi +6 -0
  104. data/rbi/telnyx/models/email_message_batch_response.rbi +5 -0
  105. data/rbi/telnyx/models/fqdn_connection.rbi +8 -2
  106. data/rbi/telnyx/models/fqdn_connections/fqdn_authentication.rbi +8 -2
  107. data/rbi/telnyx/models/messaging_inbound_message_payload.rbi +450 -193
  108. data/rbi/telnyx/models/messaging_messaging_profile.rbi +463 -0
  109. data/rbi/telnyx/models/messaging_profile.rbi +4 -6
  110. data/rbi/telnyx/models/messaging_profile_create_params.rbi +19 -0
  111. data/rbi/telnyx/models/messaging_profile_create_response.rbi +6 -4
  112. data/rbi/telnyx/models/messaging_profile_delete_response.rbi +6 -4
  113. data/rbi/telnyx/models/messaging_profile_features.rbi +43 -0
  114. data/rbi/telnyx/models/messaging_profile_retrieve_response.rbi +6 -4
  115. data/rbi/telnyx/models/messaging_profile_update_params.rbi +51 -0
  116. data/rbi/telnyx/models/messaging_profile_update_response.rbi +6 -4
  117. data/rbi/telnyx/models/messaging_profiles/action_regenerate_secret_response.rbi +4 -4
  118. data/rbi/telnyx/models/uac_connection.rbi +8 -2
  119. data/rbi/telnyx/models/uac_external_settings.rbi +10 -2
  120. data/rbi/telnyx/models/unsafe_unwrap_webhook_event.rbi +3 -1
  121. data/rbi/telnyx/models/unwrap_webhook_event.rbi +3 -1
  122. data/rbi/telnyx/models/whatsapp/business_accounts/phone_number_list_response.rbi +213 -0
  123. data/rbi/telnyx/models/whatsapp/phone_number_get_response.rbi +213 -0
  124. data/rbi/telnyx/models/whatsapp/phone_number_list_response.rbi +213 -0
  125. data/rbi/telnyx/models/whatsapp/phone_number_retrieve_phone_number_params.rbi +40 -0
  126. data/rbi/telnyx/models/whatsapp/phone_number_retrieve_phone_number_response.rbi +401 -0
  127. data/rbi/telnyx/models/whatsapp_account_update.rbi +236 -0
  128. data/rbi/telnyx/models/whatsapp_message_echo.rbi +611 -0
  129. data/rbi/telnyx/models/x402/credit_account/payment_list_params.rbi +64 -0
  130. data/rbi/telnyx/models/x402/credit_account/payment_retrieve_params.rbi +42 -0
  131. data/rbi/telnyx/models/x402/credit_account/payment_retrieve_response.rbi +53 -0
  132. data/rbi/telnyx/models/x402/credit_account/x402_transaction_record.rbi +219 -0
  133. data/rbi/telnyx/models.rbi +10 -0
  134. data/rbi/telnyx/resources/ai/anthropic/v1.rbi +14 -0
  135. data/rbi/telnyx/resources/ai/assistants/versions.rbi +12 -0
  136. data/rbi/telnyx/resources/ai/assistants.rbi +21 -0
  137. data/rbi/telnyx/resources/ai/openai/chat.rbi +23 -13
  138. data/rbi/telnyx/resources/ai/openai.rbi +14 -0
  139. data/rbi/telnyx/resources/compute/funcs.rbi +111 -0
  140. data/rbi/telnyx/resources/compute.rbi +15 -0
  141. data/rbi/telnyx/resources/email_messages.rbi +6 -2
  142. data/rbi/telnyx/resources/messaging_profiles.rbi +24 -1
  143. data/rbi/telnyx/resources/webhooks.rbi +6 -2
  144. data/rbi/telnyx/resources/whatsapp/phone_numbers.rbi +18 -0
  145. data/rbi/telnyx/resources/x402/credit_account/payments.rbi +60 -0
  146. data/rbi/telnyx/resources/x402/credit_account.rbi +5 -0
  147. data/sig/telnyx/client.rbs +2 -0
  148. data/sig/telnyx/models/ai/anthropic/v1_messages_params.rbs +42 -0
  149. data/sig/telnyx/models/ai/assistant_a2_a_agent.rbs +140 -0
  150. data/sig/telnyx/models/ai/assistant_create_params.rbs +9 -0
  151. data/sig/telnyx/models/ai/assistant_update_params.rbs +9 -0
  152. data/sig/telnyx/models/ai/assistants/update_assistant.rbs +9 -0
  153. data/sig/telnyx/models/ai/chat_completion_request.rbs +128 -44
  154. data/sig/telnyx/models/ai/inference_embedding.rbs +9 -0
  155. data/sig/telnyx/models/ai/openai_create_response_params.rbs +42 -0
  156. data/sig/telnyx/models/ai/telephony_settings.rbs +7 -0
  157. data/sig/telnyx/models/compute/func_retrieve_logs_params.rbs +69 -0
  158. data/sig/telnyx/models/compute/func_retrieve_logs_response.rbs +210 -0
  159. data/sig/telnyx/models/compute/func_retrieve_metric_aggregates_params.rbs +66 -0
  160. data/sig/telnyx/models/compute/func_retrieve_metric_aggregates_response.rbs +149 -0
  161. data/sig/telnyx/models/compute/func_retrieve_revisions_params.rbs +38 -0
  162. data/sig/telnyx/models/compute/func_retrieve_revisions_response.rbs +131 -0
  163. data/sig/telnyx/models/compute/func_retrieve_ship_inspection_params.rbs +22 -0
  164. data/sig/telnyx/models/compute/func_retrieve_ship_inspection_response.rbs +117 -0
  165. data/sig/telnyx/models/compute/functions_observability_pagination_meta.rbs +45 -0
  166. data/sig/telnyx/models/compute/logs_meta.rbs +21 -0
  167. data/sig/telnyx/models/email_inboxes/email_message.rbs +12 -3
  168. data/sig/telnyx/models/email_message_batch_response.rbs +2 -0
  169. data/sig/telnyx/models/messaging_inbound_message_payload.rbs +207 -95
  170. data/sig/telnyx/models/messaging_messaging_profile.rbs +212 -0
  171. data/sig/telnyx/models/messaging_profile_create_params.rbs +5 -0
  172. data/sig/telnyx/models/messaging_profile_create_response.rbs +8 -5
  173. data/sig/telnyx/models/messaging_profile_delete_response.rbs +8 -5
  174. data/sig/telnyx/models/messaging_profile_features.rbs +15 -0
  175. data/sig/telnyx/models/messaging_profile_retrieve_response.rbs +7 -5
  176. data/sig/telnyx/models/messaging_profile_update_params.rbs +19 -0
  177. data/sig/telnyx/models/messaging_profile_update_response.rbs +8 -5
  178. data/sig/telnyx/models/messaging_profiles/action_regenerate_secret_response.rbs +7 -5
  179. data/sig/telnyx/models/unsafe_unwrap_webhook_event.rbs +2 -0
  180. data/sig/telnyx/models/unwrap_webhook_event.rbs +2 -0
  181. data/sig/telnyx/models/whatsapp/business_accounts/phone_number_list_response.rbs +90 -0
  182. data/sig/telnyx/models/whatsapp/phone_number_get_response.rbs +90 -0
  183. data/sig/telnyx/models/whatsapp/phone_number_list_response.rbs +90 -0
  184. data/sig/telnyx/models/whatsapp/phone_number_retrieve_phone_number_params.rbs +25 -0
  185. data/sig/telnyx/models/whatsapp/phone_number_retrieve_phone_number_response.rbs +201 -0
  186. data/sig/telnyx/models/whatsapp_account_update.rbs +107 -0
  187. data/sig/telnyx/models/whatsapp_message_echo.rbs +291 -0
  188. data/sig/telnyx/models/x402/credit_account/payment_list_params.rbs +36 -0
  189. data/sig/telnyx/models/x402/credit_account/payment_retrieve_params.rbs +27 -0
  190. data/sig/telnyx/models/x402/credit_account/payment_retrieve_response.rbs +26 -0
  191. data/sig/telnyx/models/x402/credit_account/x402_transaction_record.rbs +104 -0
  192. data/sig/telnyx/models.rbs +10 -0
  193. data/sig/telnyx/resources/ai/anthropic/v1.rbs +2 -0
  194. data/sig/telnyx/resources/ai/assistants/versions.rbs +1 -0
  195. data/sig/telnyx/resources/ai/assistants.rbs +2 -0
  196. data/sig/telnyx/resources/ai/openai/chat.rbs +3 -4
  197. data/sig/telnyx/resources/ai/openai.rbs +2 -0
  198. data/sig/telnyx/resources/compute/funcs.rbs +41 -0
  199. data/sig/telnyx/resources/compute.rbs +9 -0
  200. data/sig/telnyx/resources/messaging_profiles.rbs +5 -1
  201. data/sig/telnyx/resources/webhooks.rbs +6 -2
  202. data/sig/telnyx/resources/whatsapp/phone_numbers.rbs +5 -0
  203. data/sig/telnyx/resources/x402/credit_account/payments.rbs +22 -0
  204. data/sig/telnyx/resources/x402/credit_account.rbs +2 -0
  205. metadata +74 -2
@@ -48,25 +48,6 @@ module Telnyx
48
48
  # @return [Float, nil]
49
49
  optional :frequency_penalty, Float
50
50
 
51
- # @!attribute guided_choice
52
- # If specified, the output will be exactly one of the choices.
53
- #
54
- # @return [Array<String>, nil]
55
- optional :guided_choice, Telnyx::Internal::Type::ArrayOf[String]
56
-
57
- # @!attribute guided_json
58
- # Must be a valid JSON schema. If specified, the output will follow the JSON
59
- # schema.
60
- #
61
- # @return [Hash{Symbol=>Object}, nil]
62
- optional :guided_json, Telnyx::Internal::Type::HashOf[Telnyx::Internal::Type::Unknown]
63
-
64
- # @!attribute guided_regex
65
- # If specified, the output will follow the regex pattern.
66
- #
67
- # @return [String, nil]
68
- optional :guided_regex, String
69
-
70
51
  # @!attribute length_penalty
71
52
  # This is used with `use_beam_search` to prefer shorter or longer completions.
72
53
  #
@@ -95,6 +76,16 @@ module Telnyx
95
76
  # @return [Float, nil]
96
77
  optional :min_p, Float
97
78
 
79
+ # @!attribute mode
80
+ # How strictly `region` is applied. `preferred` (the default when `region` is set)
81
+ # tries that region first and falls back to another when the model cannot be
82
+ # served there, so a request that would have succeeded still succeeds. `strict`
83
+ # pins the request: it is served from that region or it fails with a 422, never
84
+ # redirected to another region. Requires `region`.
85
+ #
86
+ # @return [Symbol, Telnyx::Models::AI::ChatCompletionRequest::Mode, nil]
87
+ optional :mode, enum: -> { Telnyx::AI::ChatCompletionRequest::Mode }
88
+
98
89
  # @!attribute model
99
90
  # The language model to chat with.
100
91
  #
@@ -123,12 +114,24 @@ module Telnyx
123
114
  # @return [Symbol, Telnyx::Models::AI::ChatCompletionRequest::ReasoningEffort, nil]
124
115
  optional :reasoning_effort, enum: -> { Telnyx::AI::ChatCompletionRequest::ReasoningEffort }
125
116
 
117
+ # @!attribute region
118
+ # Optional data-residency region the request should be served from, using the same
119
+ # vocabulary as your account's Data Locality setting. Behavior depends on `mode`.
120
+ # Supported for Telnyx-hosted models only: a request routed to an external
121
+ # provider never passes through Telnyx model routing, so a region cannot be
122
+ # enforced for it. Omit for today's latency-based routing.
123
+ #
124
+ # @return [Symbol, Telnyx::Models::AI::ChatCompletionRequest::Region, nil]
125
+ optional :region, enum: -> { Telnyx::AI::ChatCompletionRequest::Region }
126
+
126
127
  # @!attribute response_format
127
- # Use this is you want to guarantee a JSON output without defining a schema. For
128
- # control over the schema, use `guided_json`.
128
+ # Controls the format of the model output. `json_object` guarantees valid JSON
129
+ # output without defining a schema; `json_schema` constrains the output to the
130
+ # JSON schema you supply via the `json_schema` property and is the supported way
131
+ # to get guaranteed structured output on Telnyx-hosted models.
129
132
  #
130
- # @return [Telnyx::Models::AI::ChatCompletionRequest::ResponseFormat, nil]
131
- optional :response_format, -> { Telnyx::AI::ChatCompletionRequest::ResponseFormat }
133
+ # @return [Telnyx::Models::AI::ChatCompletionRequest::ResponseFormat::ResponseFormatText, Telnyx::Models::AI::ChatCompletionRequest::ResponseFormat::ResponseFormatJsonObject, Telnyx::Models::AI::ChatCompletionRequest::ResponseFormat::ResponseFormatJsonSchemaParam, nil]
134
+ optional :response_format, union: -> { Telnyx::AI::ChatCompletionRequest::ResponseFormat }
132
135
 
133
136
  # @!attribute seed
134
137
  # If specified, the system will make a best effort to sample deterministically,
@@ -205,7 +208,7 @@ module Telnyx
205
208
  # @return [Boolean, nil]
206
209
  optional :use_beam_search, Telnyx::Internal::Type::Boolean
207
210
 
208
- # @!method initialize(messages:, api_key_ref: nil, best_of: nil, early_stopping: nil, enable_thinking: nil, frequency_penalty: nil, guided_choice: nil, guided_json: nil, guided_regex: nil, length_penalty: nil, logprobs: nil, max_tokens: nil, min_p: nil, model: nil, n: nil, presence_penalty: nil, reasoning_effort: nil, response_format: nil, seed: nil, service_tier: nil, stop: nil, stream: nil, temperature: nil, tool_choice: nil, tools: nil, top_logprobs: nil, top_p: nil, use_beam_search: nil)
211
+ # @!method initialize(messages:, api_key_ref: nil, best_of: nil, early_stopping: nil, enable_thinking: nil, frequency_penalty: nil, length_penalty: nil, logprobs: nil, max_tokens: nil, min_p: nil, mode: nil, model: nil, n: nil, presence_penalty: nil, reasoning_effort: nil, region: nil, response_format: nil, seed: nil, service_tier: nil, stop: nil, stream: nil, temperature: nil, tool_choice: nil, tools: nil, top_logprobs: nil, top_p: nil, use_beam_search: nil)
209
212
  # Some parameter documentations has been truncated, see
210
213
  # {Telnyx::Models::AI::ChatCompletionRequest} for more details.
211
214
  #
@@ -221,12 +224,6 @@ module Telnyx
221
224
  #
222
225
  # @param frequency_penalty [Float] Higher values will penalize the model from repeating the same output tokens.
223
226
  #
224
- # @param guided_choice [Array<String>] If specified, the output will be exactly one of the choices.
225
- #
226
- # @param guided_json [Hash{Symbol=>Object}] Must be a valid JSON schema. If specified, the output will follow the JSON schem
227
- #
228
- # @param guided_regex [String] If specified, the output will follow the regex pattern.
229
- #
230
227
  # @param length_penalty [Float] This is used with `use_beam_search` to prefer shorter or longer completions.
231
228
  #
232
229
  # @param logprobs [Boolean] Whether to return log probabilities of the output tokens or not. If true, return
@@ -235,6 +232,8 @@ module Telnyx
235
232
  #
236
233
  # @param min_p [Float] This is an alternative to `top_p` that [many prefer](https://github.com/huggingf
237
234
  #
235
+ # @param mode [Symbol, Telnyx::Models::AI::ChatCompletionRequest::Mode] How strictly `region` is applied. `preferred` (the default when `region` is set)
236
+ #
238
237
  # @param model [String] The language model to chat with.
239
238
  #
240
239
  # @param n [Float] This will return multiple choices for you instead of a single chat completion.
@@ -243,7 +242,9 @@ module Telnyx
243
242
  #
244
243
  # @param reasoning_effort [Symbol, Telnyx::Models::AI::ChatCompletionRequest::ReasoningEffort] Controls the reasoning effort for models that support it. When set, the model sp
245
244
  #
246
- # @param response_format [Telnyx::Models::AI::ChatCompletionRequest::ResponseFormat] Use this is you want to guarantee a JSON output without defining a schema. For c
245
+ # @param region [Symbol, Telnyx::Models::AI::ChatCompletionRequest::Region] Optional data-residency region the request should be served from, using the same
246
+ #
247
+ # @param response_format [Telnyx::Models::AI::ChatCompletionRequest::ResponseFormat::ResponseFormatText, Telnyx::Models::AI::ChatCompletionRequest::ResponseFormat::ResponseFormatJsonObject, Telnyx::Models::AI::ChatCompletionRequest::ResponseFormat::ResponseFormatJsonSchemaParam] Controls the format of the model output. `json_object` guarantees valid JSON out
247
248
  #
248
249
  # @param seed [Integer] If specified, the system will make a best effort to sample deterministically, su
249
250
  #
@@ -345,6 +346,23 @@ module Telnyx
345
346
  end
346
347
  end
347
348
 
349
+ # How strictly `region` is applied. `preferred` (the default when `region` is set)
350
+ # tries that region first and falls back to another when the model cannot be
351
+ # served there, so a request that would have succeeded still succeeds. `strict`
352
+ # pins the request: it is served from that region or it fails with a 422, never
353
+ # redirected to another region. Requires `region`.
354
+ #
355
+ # @see Telnyx::Models::AI::ChatCompletionRequest#mode
356
+ module Mode
357
+ extend Telnyx::Internal::Type::Enum
358
+
359
+ PREFERRED = :preferred
360
+ STRICT = :strict
361
+
362
+ # @!method self.values
363
+ # @return [Array<Symbol>]
364
+ end
365
+
348
366
  # Controls the reasoning effort for models that support it. When set, the model
349
367
  # spends more or less compute on internal reasoning before generating its
350
368
  # response. Supported values: none, minimal, low, medium, high, xhigh, max. Not
@@ -367,29 +385,148 @@ module Telnyx
367
385
  # @return [Array<Symbol>]
368
386
  end
369
387
 
388
+ # Optional data-residency region the request should be served from, using the same
389
+ # vocabulary as your account's Data Locality setting. Behavior depends on `mode`.
390
+ # Supported for Telnyx-hosted models only: a request routed to an external
391
+ # provider never passes through Telnyx model routing, so a region cannot be
392
+ # enforced for it. Omit for today's latency-based routing.
393
+ #
394
+ # @see Telnyx::Models::AI::ChatCompletionRequest#region
395
+ module Region
396
+ extend Telnyx::Internal::Type::Enum
397
+
398
+ USA = :USA
399
+ EU = :EU
400
+ AUS = :AUS
401
+ UAE = :UAE
402
+
403
+ # @!method self.values
404
+ # @return [Array<Symbol>]
405
+ end
406
+
407
+ # Controls the format of the model output. `json_object` guarantees valid JSON
408
+ # output without defining a schema; `json_schema` constrains the output to the
409
+ # JSON schema you supply via the `json_schema` property and is the supported way
410
+ # to get guaranteed structured output on Telnyx-hosted models.
411
+ #
370
412
  # @see Telnyx::Models::AI::ChatCompletionRequest#response_format
371
- class ResponseFormat < Telnyx::Internal::Type::BaseModel
372
- # @!attribute type
373
- #
374
- # @return [Symbol, Telnyx::Models::AI::ChatCompletionRequest::ResponseFormat::Type]
375
- required :type, enum: -> { Telnyx::AI::ChatCompletionRequest::ResponseFormat::Type }
413
+ module ResponseFormat
414
+ extend Telnyx::Internal::Type::Union
376
415
 
377
- # @!method initialize(type:)
378
- # Use this is you want to guarantee a JSON output without defining a schema. For
379
- # control over the schema, use `guided_json`.
380
- #
381
- # @param type [Symbol, Telnyx::Models::AI::ChatCompletionRequest::ResponseFormat::Type]
416
+ # Plain text output.
417
+ variant -> { Telnyx::AI::ChatCompletionRequest::ResponseFormat::ResponseFormatText }
382
418
 
383
- # @see Telnyx::Models::AI::ChatCompletionRequest::ResponseFormat#type
384
- module Type
385
- extend Telnyx::Internal::Type::Enum
419
+ # JSON mode: the model output is valid JSON, without a schema.
420
+ variant -> { Telnyx::AI::ChatCompletionRequest::ResponseFormat::ResponseFormatJsonObject }
386
421
 
387
- TEXT = :text
388
- JSON_OBJECT = :json_object
422
+ # Structured output: the model output is constrained to the JSON schema supplied in `json_schema`.
423
+ variant -> { Telnyx::AI::ChatCompletionRequest::ResponseFormat::ResponseFormatJsonSchemaParam }
389
424
 
390
- # @!method self.values
391
- # @return [Array<Symbol>]
425
+ class ResponseFormatText < Telnyx::Internal::Type::BaseModel
426
+ # @!attribute type
427
+ #
428
+ # @return [Symbol, :text]
429
+ required :type, const: :text
430
+
431
+ # @!method initialize(type: :text)
432
+ # Plain text output.
433
+ #
434
+ # @param type [Symbol, :text]
392
435
  end
436
+
437
+ class ResponseFormatJsonObject < Telnyx::Internal::Type::BaseModel
438
+ # @!attribute type
439
+ #
440
+ # @return [Symbol, :json_object]
441
+ required :type, const: :json_object
442
+
443
+ # @!method initialize(type: :json_object)
444
+ # JSON mode: the model output is valid JSON, without a schema.
445
+ #
446
+ # @param type [Symbol, :json_object]
447
+ end
448
+
449
+ class ResponseFormatJsonSchemaParam < Telnyx::Internal::Type::BaseModel
450
+ # @!attribute json_schema
451
+ # The JSON schema configuration, required when `type` is `json_schema`. Matches
452
+ # the
453
+ # [OpenAI structured outputs](https://platform.openai.com/docs/guides/structured-outputs)
454
+ # `json_schema` response format.
455
+ #
456
+ # @return [Telnyx::Models::AI::ChatCompletionRequest::ResponseFormat::ResponseFormatJsonSchemaParam::JsonSchema]
457
+ required :json_schema,
458
+ -> { Telnyx::AI::ChatCompletionRequest::ResponseFormat::ResponseFormatJsonSchemaParam::JsonSchema }
459
+
460
+ # @!attribute type
461
+ #
462
+ # @return [Symbol, :json_schema]
463
+ required :type, const: :json_schema
464
+
465
+ # @!method initialize(json_schema:, type: :json_schema)
466
+ # Some parameter documentations has been truncated, see
467
+ # {Telnyx::Models::AI::ChatCompletionRequest::ResponseFormat::ResponseFormatJsonSchemaParam}
468
+ # for more details.
469
+ #
470
+ # Structured output: the model output is constrained to the JSON schema supplied
471
+ # in `json_schema`.
472
+ #
473
+ # @param json_schema [Telnyx::Models::AI::ChatCompletionRequest::ResponseFormat::ResponseFormatJsonSchemaParam::JsonSchema] The JSON schema configuration, required when `type` is `json_schema`. Matches th
474
+ #
475
+ # @param type [Symbol, :json_schema]
476
+
477
+ # @see Telnyx::Models::AI::ChatCompletionRequest::ResponseFormat::ResponseFormatJsonSchemaParam#json_schema
478
+ class JsonSchema < Telnyx::Internal::Type::BaseModel
479
+ # @!attribute name
480
+ # The name of the response format. Used for clarity only.
481
+ #
482
+ # @return [String]
483
+ required :name, String
484
+
485
+ # @!attribute description
486
+ # A description of what the response format is for, typically used to guide the
487
+ # model.
488
+ #
489
+ # @return [String, nil]
490
+ optional :description, String
491
+
492
+ # @!attribute schema
493
+ # The JSON schema the model output must conform to. A valid
494
+ # [JSON Schema](https://json-schema.org) object, e.g. a Pydantic
495
+ # `model_json_schema()` export.
496
+ #
497
+ # @return [Hash{Symbol=>Object}, nil]
498
+ optional :schema, Telnyx::Internal::Type::HashOf[Telnyx::Internal::Type::Unknown]
499
+
500
+ # @!attribute strict
501
+ # Enables strict schema adherence when supported by the model. If the generated
502
+ # output does not match the provided schema, the request fails instead of
503
+ # returning non-conformant output.
504
+ #
505
+ # @return [Boolean, nil]
506
+ optional :strict, Telnyx::Internal::Type::Boolean
507
+
508
+ # @!method initialize(name:, description: nil, schema: nil, strict: nil)
509
+ # Some parameter documentations has been truncated, see
510
+ # {Telnyx::Models::AI::ChatCompletionRequest::ResponseFormat::ResponseFormatJsonSchemaParam::JsonSchema}
511
+ # for more details.
512
+ #
513
+ # The JSON schema configuration, required when `type` is `json_schema`. Matches
514
+ # the
515
+ # [OpenAI structured outputs](https://platform.openai.com/docs/guides/structured-outputs)
516
+ # `json_schema` response format.
517
+ #
518
+ # @param name [String] The name of the response format. Used for clarity only.
519
+ #
520
+ # @param description [String] A description of what the response format is for, typically used to guide the mo
521
+ #
522
+ # @param schema [Hash{Symbol=>Object}] The JSON schema the model output must conform to. A valid [JSON Schema](https://
523
+ #
524
+ # @param strict [Boolean] Enables strict schema adherence when supported by the model. If the generated ou
525
+ end
526
+ end
527
+
528
+ # @!method self.variants
529
+ # @return [Array(Telnyx::Models::AI::ChatCompletionRequest::ResponseFormat::ResponseFormatText, Telnyx::Models::AI::ChatCompletionRequest::ResponseFormat::ResponseFormatJsonObject, Telnyx::Models::AI::ChatCompletionRequest::ResponseFormat::ResponseFormatJsonSchemaParam)]
393
530
  end
394
531
 
395
532
  # Up to 4 sequences where the API will stop generating further tokens. The
@@ -37,6 +37,19 @@ module Telnyx
37
37
  # @return [String]
38
38
  required :name, String
39
39
 
40
+ # @!attribute a2a_agents
41
+ # A2A agents this assistant can delegate to. Tools are not stored here: at the
42
+ # start of every conversation each agent's card is fetched and one tool is derived
43
+ # per skill the card advertises, named `a2a_<name>_<skill_id>`. The following
44
+ # limits are not enforced when the assistant is saved, and anything past them is
45
+ # dropped when the conversation starts: 64 agents per assistant, 64 skills per
46
+ # card, 128 derived tools per assistant, and a 6 second budget for all card
47
+ # fetches combined. An agent whose card cannot be fetched costs the assistant that
48
+ # capability for the conversation; it does not fail the call.
49
+ #
50
+ # @return [Array<Telnyx::Models::AI::AssistantA2AAgent>, nil]
51
+ optional :a2a_agents, -> { Telnyx::Internal::Type::ArrayOf[Telnyx::AI::AssistantA2AAgent] }
52
+
40
53
  # @!attribute conversation_flow
41
54
  # Conversation flow as returned by the API.
42
55
  #
@@ -237,7 +250,7 @@ module Telnyx
237
250
  # @return [Telnyx::Models::AI::WidgetSettings, nil]
238
251
  optional :widget_settings, -> { Telnyx::AI::WidgetSettings }
239
252
 
240
- # @!method initialize(id:, created_at:, instructions:, model:, name:, conversation_flow: nil, description: nil, dynamic_variables: nil, dynamic_variables_webhook_timeout_ms: nil, dynamic_variables_webhook_url: nil, enabled_features: nil, external_llm: nil, fallback_config: nil, greeting: nil, import_metadata: nil, insight_settings: nil, integrations: nil, interruption_settings: nil, llm_api_key_ref: nil, mcp_servers: nil, messaging_settings: nil, observability_settings: nil, post_conversation_settings: nil, privacy_settings: nil, related_mission_ids: nil, tags: nil, telephony_settings: nil, tools: nil, transcription: nil, version_created_at: nil, version_id: nil, version_name: nil, voice_settings: nil, widget_settings: nil)
253
+ # @!method initialize(id:, created_at:, instructions:, model:, name:, a2a_agents: nil, conversation_flow: nil, description: nil, dynamic_variables: nil, dynamic_variables_webhook_timeout_ms: nil, dynamic_variables_webhook_url: nil, enabled_features: nil, external_llm: nil, fallback_config: nil, greeting: nil, import_metadata: nil, insight_settings: nil, integrations: nil, interruption_settings: nil, llm_api_key_ref: nil, mcp_servers: nil, messaging_settings: nil, observability_settings: nil, post_conversation_settings: nil, privacy_settings: nil, related_mission_ids: nil, tags: nil, telephony_settings: nil, tools: nil, transcription: nil, version_created_at: nil, version_id: nil, version_name: nil, voice_settings: nil, widget_settings: nil)
241
254
  # Some parameter documentations has been truncated, see
242
255
  # {Telnyx::Models::AI::InferenceEmbedding} for more details.
243
256
  #
@@ -251,6 +264,8 @@ module Telnyx
251
264
  #
252
265
  # @param name [String]
253
266
  #
267
+ # @param a2a_agents [Array<Telnyx::Models::AI::AssistantA2AAgent>] A2A agents this assistant can delegate to. Tools are not stored here: at the sta
268
+ #
254
269
  # @param conversation_flow [Telnyx::Models::AI::ConversationFlow] Conversation flow as returned by the API.
255
270
  #
256
271
  # @param description [String]
@@ -31,6 +31,16 @@ module Telnyx
31
31
  # @return [String, nil]
32
32
  optional :instructions, String
33
33
 
34
+ # @!attribute mode
35
+ # How strictly `region` is applied. `preferred` (the default when `region` is set)
36
+ # tries that region first and falls back to another when the model cannot be
37
+ # served there, so a request that would have succeeded still succeeds. `strict`
38
+ # pins the request: it is served from that region or it fails with a 422, never
39
+ # redirected to another region. Requires `region`.
40
+ #
41
+ # @return [Symbol, Telnyx::Models::AI::OpenAICreateResponseParams::Mode, nil]
42
+ optional :mode, enum: -> { Telnyx::AI::OpenAICreateResponseParams::Mode }
43
+
34
44
  # @!attribute model
35
45
  # Model identifier to use for the response, for example `zai-org/GLM-5.1-FP8` or
36
46
  # another model available from the Telnyx OpenAI-compatible models endpoint.
@@ -43,6 +53,16 @@ module Telnyx
43
53
  # @return [Telnyx::Models::AI::OpenAICreateResponseParams::Reasoning, nil]
44
54
  optional :reasoning, -> { Telnyx::AI::OpenAICreateResponseParams::Reasoning }
45
55
 
56
+ # @!attribute region
57
+ # Optional data-residency region the request should be served from, using the same
58
+ # vocabulary as your account's Data Locality setting. Behavior depends on `mode`.
59
+ # Supported for Telnyx-hosted models only: a request routed to an external
60
+ # provider never passes through Telnyx model routing, so a region cannot be
61
+ # enforced for it. Omit for today's latency-based routing.
62
+ #
63
+ # @return [Symbol, Telnyx::Models::AI::OpenAICreateResponseParams::Region, nil]
64
+ optional :region, enum: -> { Telnyx::AI::OpenAICreateResponseParams::Region }
65
+
46
66
  # @!attribute service_tier
47
67
  # The service tier to use for this request. Supported values vary by model; use
48
68
  # `GET /v2/ai/openai/models` and inspect the model's `service_tiers` field. If
@@ -58,7 +78,7 @@ module Telnyx
58
78
  # @return [Boolean, nil]
59
79
  optional :stream, Telnyx::Internal::Type::Boolean
60
80
 
61
- # @!method initialize(conversation: nil, input: nil, instructions: nil, model: nil, reasoning: nil, service_tier: nil, stream: nil, request_options: {})
81
+ # @!method initialize(conversation: nil, input: nil, instructions: nil, mode: nil, model: nil, reasoning: nil, region: nil, service_tier: nil, stream: nil, request_options: {})
62
82
  # Some parameter documentations has been truncated, see
63
83
  # {Telnyx::Models::AI::OpenAICreateResponseParams} for more details.
64
84
  #
@@ -68,16 +88,35 @@ module Telnyx
68
88
  #
69
89
  # @param instructions [String] Optional system/developer instructions for the model. When used with a persisted
70
90
  #
91
+ # @param mode [Symbol, Telnyx::Models::AI::OpenAICreateResponseParams::Mode] How strictly `region` is applied. `preferred` (the default when `region` is set)
92
+ #
71
93
  # @param model [String] Model identifier to use for the response, for example `zai-org/GLM-5.1-FP8` or a
72
94
  #
73
95
  # @param reasoning [Telnyx::Models::AI::OpenAICreateResponseParams::Reasoning]
74
96
  #
97
+ # @param region [Symbol, Telnyx::Models::AI::OpenAICreateResponseParams::Region] Optional data-residency region the request should be served from, using the same
98
+ #
75
99
  # @param service_tier [String] The service tier to use for this request. Supported values vary by model; use `G
76
100
  #
77
101
  # @param stream [Boolean] Set to `true` to stream Server-Sent Events, matching OpenAI's Responses streamin
78
102
  #
79
103
  # @param request_options [Telnyx::RequestOptions, Hash{Symbol=>Object}]
80
104
 
105
+ # How strictly `region` is applied. `preferred` (the default when `region` is set)
106
+ # tries that region first and falls back to another when the model cannot be
107
+ # served there, so a request that would have succeeded still succeeds. `strict`
108
+ # pins the request: it is served from that region or it fails with a 422, never
109
+ # redirected to another region. Requires `region`.
110
+ module Mode
111
+ extend Telnyx::Internal::Type::Enum
112
+
113
+ PREFERRED = :preferred
114
+ STRICT = :strict
115
+
116
+ # @!method self.values
117
+ # @return [Array<Symbol>]
118
+ end
119
+
81
120
  class Reasoning < Telnyx::Internal::Type::BaseModel
82
121
  # @!attribute effort
83
122
  # Controls the reasoning effort for models that support it. Same values and
@@ -111,6 +150,23 @@ module Telnyx
111
150
  # @return [Array<Symbol>]
112
151
  end
113
152
  end
153
+
154
+ # Optional data-residency region the request should be served from, using the same
155
+ # vocabulary as your account's Data Locality setting. Behavior depends on `mode`.
156
+ # Supported for Telnyx-hosted models only: a request routed to an external
157
+ # provider never passes through Telnyx model routing, so a region cannot be
158
+ # enforced for it. Omit for today's latency-based routing.
159
+ module Region
160
+ extend Telnyx::Internal::Type::Enum
161
+
162
+ USA = :USA
163
+ EU = :EU
164
+ AUS = :AUS
165
+ UAE = :UAE
166
+
167
+ # @!method self.values
168
+ # @return [Array<Symbol>]
169
+ end
114
170
  end
115
171
  end
116
172
  end
@@ -19,6 +19,18 @@ module Telnyx
19
19
  # @return [Boolean, nil]
20
20
  optional :disable_dtmf, Telnyx::Internal::Type::Boolean
21
21
 
22
+ # @!attribute fallback_destination
23
+ # Destination number or SIP URI to transfer the caller to when the AI conversation
24
+ # ends abnormally, for example because of an assistant-side error, so the caller
25
+ # is not left in dead air. This only fires for abnormal ends: it does not fire
26
+ # when the conversation ends on purpose (the caller hung up, the assistant
27
+ # completed normally, the caller hung up after a relay handoff, or voicemail was
28
+ # detected), and it does not fire when the assistant already transferred or
29
+ # bridged the call.
30
+ #
31
+ # @return [String, nil]
32
+ optional :fallback_destination, String
33
+
22
34
  # @!attribute noise_suppression
23
35
  # The noise suppression engine to use. Use 'disabled' to turn off noise
24
36
  # suppression.
@@ -97,7 +109,7 @@ module Telnyx
97
109
  # @return [Telnyx::Models::AI::TelephonySettings::VoicemailDetection, nil]
98
110
  optional :voicemail_detection, -> { Telnyx::AI::TelephonySettings::VoicemailDetection }
99
111
 
100
- # @!method initialize(default_texml_app_id: nil, disable_dtmf: nil, noise_suppression: nil, noise_suppression_config: nil, recording_settings: nil, send_message_history_updates: nil, supports_unauthenticated_web_calls: nil, time_limit_secs: nil, user_idle_reply_secs: nil, user_idle_timeout_secs: nil, voicemail_detection: nil)
112
+ # @!method initialize(default_texml_app_id: nil, disable_dtmf: nil, fallback_destination: nil, noise_suppression: nil, noise_suppression_config: nil, recording_settings: nil, send_message_history_updates: nil, supports_unauthenticated_web_calls: nil, time_limit_secs: nil, user_idle_reply_secs: nil, user_idle_timeout_secs: nil, voicemail_detection: nil)
101
113
  # Some parameter documentations has been truncated, see
102
114
  # {Telnyx::Models::AI::TelephonySettings} for more details.
103
115
  #
@@ -105,6 +117,8 @@ module Telnyx
105
117
  #
106
118
  # @param disable_dtmf [Boolean] Disable inbound DTMF for the entire call. Must be set to true if a 'pay' tool is
107
119
  #
120
+ # @param fallback_destination [String] Destination number or SIP URI to transfer the caller to when the AI conversation
121
+ #
108
122
  # @param noise_suppression [Symbol, Telnyx::Models::AI::TelephonySettings::NoiseSuppression] The noise suppression engine to use. Use 'disabled' to turn off noise suppressio
109
123
  #
110
124
  # @param noise_suppression_config [Telnyx::Models::AI::TelephonySettings::NoiseSuppressionConfig] Configuration for noise suppression. Only applicable when noise_suppression is '
@@ -0,0 +1,66 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Telnyx
4
+ module Models
5
+ module Compute
6
+ # @see Telnyx::Resources::Compute::Funcs#retrieve_logs
7
+ class FuncRetrieveLogsParams < Telnyx::Internal::Type::BaseModel
8
+ extend Telnyx::Internal::Type::RequestParameters::Converter
9
+ include Telnyx::Internal::Type::RequestParameters
10
+
11
+ # @!attribute id
12
+ #
13
+ # @return [String]
14
+ required :id, String
15
+
16
+ # @!attribute end_time
17
+ # Return records at or before this RFC 3339 timestamp.
18
+ #
19
+ # @return [Time, nil]
20
+ optional :end_time, Time
21
+
22
+ # @!attribute limit
23
+ # Maximum records to return.
24
+ #
25
+ # @return [Integer, nil]
26
+ optional :limit, Integer
27
+
28
+ # @!attribute start_time
29
+ # Return records at or after this RFC 3339 timestamp.
30
+ #
31
+ # @return [Time, nil]
32
+ optional :start_time, Time
33
+
34
+ # @!attribute type
35
+ # Log stream to return.
36
+ #
37
+ # @return [Symbol, Telnyx::Models::Compute::FuncRetrieveLogsParams::Type, nil]
38
+ optional :type, enum: -> { Telnyx::Compute::FuncRetrieveLogsParams::Type }
39
+
40
+ # @!method initialize(id:, end_time: nil, limit: nil, start_time: nil, type: nil, request_options: {})
41
+ # @param id [String]
42
+ #
43
+ # @param end_time [Time] Return records at or before this RFC 3339 timestamp.
44
+ #
45
+ # @param limit [Integer] Maximum records to return.
46
+ #
47
+ # @param start_time [Time] Return records at or after this RFC 3339 timestamp.
48
+ #
49
+ # @param type [Symbol, Telnyx::Models::Compute::FuncRetrieveLogsParams::Type] Log stream to return.
50
+ #
51
+ # @param request_options [Telnyx::RequestOptions, Hash{Symbol=>Object}]
52
+
53
+ # Log stream to return.
54
+ module Type
55
+ extend Telnyx::Internal::Type::Enum
56
+
57
+ RUNTIME = :runtime
58
+ INVOCATIONS = :invocations
59
+
60
+ # @!method self.values
61
+ # @return [Array<Symbol>]
62
+ end
63
+ end
64
+ end
65
+ end
66
+ end