telnyx 5.102.1 → 5.103.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 (163) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +16 -0
  3. data/README.md +1 -1
  4. data/lib/telnyx/models/ai/assistant_create_params.rb +170 -9
  5. data/lib/telnyx/models/ai/assistant_tool.rb +14 -14
  6. data/lib/telnyx/models/ai/assistant_update_params.rb +170 -9
  7. data/lib/telnyx/models/ai/assistants/canary_deploy.rb +123 -3
  8. data/lib/telnyx/models/ai/assistants/canary_deploy_response.rb +125 -3
  9. data/lib/telnyx/models/ai/assistants/scheduled_event_create_params.rb +17 -1
  10. data/lib/telnyx/models/ai/assistants/scheduled_phone_call_event_response.rb +91 -1
  11. data/lib/telnyx/models/ai/assistants/update_assistant.rb +171 -9
  12. data/lib/telnyx/models/ai/inference_embedding.rb +169 -9
  13. data/lib/telnyx/models/ai/openai_list_models_response.rb +31 -3
  14. data/lib/telnyx/models/ai/transfer_tool.rb +9 -7
  15. data/lib/telnyx/models/ai_retrieve_models_response.rb +31 -3
  16. data/lib/telnyx/models/calls/action_gather_using_ai_params.rb +23 -4
  17. data/lib/telnyx/models/calls/action_gather_using_speak_params.rb +23 -4
  18. data/lib/telnyx/models/calls/action_speak_params.rb +23 -4
  19. data/lib/telnyx/models/calls/action_start_ai_assistant_params.rb +23 -4
  20. data/lib/telnyx/models/calls/transcription_start_request.rb +167 -5
  21. data/lib/telnyx/models/conferences/action_speak_params.rb +23 -4
  22. data/lib/telnyx/models/text_to_speech_generate_params.rb +6 -6
  23. data/lib/telnyx/models/uac_connection_create_params.rb +255 -9
  24. data/lib/telnyx/models/uac_connection_create_response.rb +878 -3
  25. data/lib/telnyx/models/uac_connection_delete_response.rb +878 -3
  26. data/lib/telnyx/models/uac_connection_list_response.rb +876 -0
  27. data/lib/telnyx/models/uac_connection_retrieve_response.rb +879 -3
  28. data/lib/telnyx/models/uac_connection_update_params.rb +255 -9
  29. data/lib/telnyx/models/uac_connection_update_response.rb +878 -3
  30. data/lib/telnyx/models.rb +0 -14
  31. data/lib/telnyx/resources/ai/assistants/canary_deploys.rb +2 -2
  32. data/lib/telnyx/resources/ai/assistants/scheduled_events.rb +5 -1
  33. data/lib/telnyx/resources/ai/assistants/versions.rb +3 -3
  34. data/lib/telnyx/resources/ai/assistants.rb +6 -6
  35. data/lib/telnyx/resources/calls/actions.rb +5 -5
  36. data/lib/telnyx/resources/conferences/actions.rb +1 -1
  37. data/lib/telnyx/resources/uac_connections.rb +8 -8
  38. data/lib/telnyx/version.rb +1 -1
  39. data/lib/telnyx.rb +1 -19
  40. data/rbi/telnyx/models/ai/assistant_create_params.rbi +341 -12
  41. data/rbi/telnyx/models/ai/assistant_tool.rbi +10 -10
  42. data/rbi/telnyx/models/ai/assistant_update_params.rbi +341 -12
  43. data/rbi/telnyx/models/ai/assistants/canary_deploy.rbi +290 -4
  44. data/rbi/telnyx/models/ai/assistants/canary_deploy_response.rbi +301 -3
  45. data/rbi/telnyx/models/ai/assistants/scheduled_event_create_params.rbi +22 -0
  46. data/rbi/telnyx/models/ai/assistants/scheduled_phone_call_event_response.rbi +153 -0
  47. data/rbi/telnyx/models/ai/assistants/update_assistant.rbi +355 -12
  48. data/rbi/telnyx/models/ai/inference_embedding.rbi +340 -12
  49. data/rbi/telnyx/models/ai/openai_list_models_response.rbi +56 -3
  50. data/rbi/telnyx/models/ai/transfer_tool.rbi +5 -5
  51. data/rbi/telnyx/models/ai_retrieve_models_response.rbi +51 -3
  52. data/rbi/telnyx/models/calls/action_gather_using_ai_params.rbi +41 -5
  53. data/rbi/telnyx/models/calls/action_gather_using_speak_params.rbi +41 -5
  54. data/rbi/telnyx/models/calls/action_speak_params.rbi +41 -5
  55. data/rbi/telnyx/models/calls/action_start_ai_assistant_params.rbi +41 -5
  56. data/rbi/telnyx/models/calls/transcription_start_request.rbi +480 -10
  57. data/rbi/telnyx/models/conferences/action_speak_params.rbi +41 -5
  58. data/rbi/telnyx/models/text_to_speech_generate_params.rbi +6 -6
  59. data/rbi/telnyx/models/uac_connection_create_params.rbi +516 -12
  60. data/rbi/telnyx/models/uac_connection_create_response.rbi +1756 -4
  61. data/rbi/telnyx/models/uac_connection_delete_response.rbi +1756 -4
  62. data/rbi/telnyx/models/uac_connection_list_response.rbi +1727 -0
  63. data/rbi/telnyx/models/uac_connection_retrieve_response.rbi +1756 -4
  64. data/rbi/telnyx/models/uac_connection_update_params.rbi +516 -12
  65. data/rbi/telnyx/models/uac_connection_update_response.rbi +1756 -4
  66. data/rbi/telnyx/models.rbi +0 -14
  67. data/rbi/telnyx/resources/ai/assistants/canary_deploys.rbi +4 -2
  68. data/rbi/telnyx/resources/ai/assistants/scheduled_events.rbi +6 -0
  69. data/rbi/telnyx/resources/ai/assistants/versions.rbi +9 -3
  70. data/rbi/telnyx/resources/ai/assistants.rbi +10 -6
  71. data/rbi/telnyx/resources/calls/actions.rbi +6 -6
  72. data/rbi/telnyx/resources/conferences/actions.rbi +1 -1
  73. data/rbi/telnyx/resources/uac_connections.rbi +13 -7
  74. data/sig/telnyx/models/ai/assistant_create_params.rbs +142 -18
  75. data/sig/telnyx/models/ai/assistant_tool.rbs +8 -8
  76. data/sig/telnyx/models/ai/assistant_update_params.rbs +142 -18
  77. data/sig/telnyx/models/ai/assistants/canary_deploy.rbs +113 -6
  78. data/sig/telnyx/models/ai/assistants/canary_deploy_response.rbs +109 -4
  79. data/sig/telnyx/models/ai/assistants/scheduled_event_create_params.rbs +14 -0
  80. data/sig/telnyx/models/ai/assistants/scheduled_phone_call_event_response.rbs +85 -0
  81. data/sig/telnyx/models/ai/assistants/update_assistant.rbs +145 -18
  82. data/sig/telnyx/models/ai/inference_embedding.rbs +142 -18
  83. data/sig/telnyx/models/ai/openai_list_models_response.rbs +39 -4
  84. data/sig/telnyx/models/ai/transfer_tool.rbs +4 -4
  85. data/sig/telnyx/models/ai_retrieve_models_response.rbs +39 -4
  86. data/sig/telnyx/models/calls/action_gather_using_ai_params.rbs +15 -1
  87. data/sig/telnyx/models/calls/action_gather_using_speak_params.rbs +15 -1
  88. data/sig/telnyx/models/calls/action_speak_params.rbs +15 -1
  89. data/sig/telnyx/models/calls/action_start_ai_assistant_params.rbs +15 -1
  90. data/sig/telnyx/models/calls/transcription_start_request.rbs +184 -2
  91. data/sig/telnyx/models/conferences/action_speak_params.rbs +15 -1
  92. data/sig/telnyx/models/text_to_speech_generate_params.rbs +6 -6
  93. data/sig/telnyx/models/uac_connection_create_params.rbs +211 -17
  94. data/sig/telnyx/models/uac_connection_create_response.rbs +731 -5
  95. data/sig/telnyx/models/uac_connection_delete_response.rbs +731 -5
  96. data/sig/telnyx/models/uac_connection_list_response.rbs +722 -0
  97. data/sig/telnyx/models/uac_connection_retrieve_response.rbs +731 -5
  98. data/sig/telnyx/models/uac_connection_update_params.rbs +211 -17
  99. data/sig/telnyx/models/uac_connection_update_response.rbs +731 -5
  100. data/sig/telnyx/models.rbs +0 -14
  101. data/sig/telnyx/resources/ai/assistants/canary_deploys.rbs +2 -2
  102. data/sig/telnyx/resources/ai/assistants/scheduled_events.rbs +2 -0
  103. data/sig/telnyx/resources/ai/assistants/versions.rbs +3 -3
  104. data/sig/telnyx/resources/ai/assistants.rbs +6 -6
  105. data/sig/telnyx/resources/uac_connections.rbs +7 -7
  106. metadata +4 -58
  107. data/lib/telnyx/models/ai/assistant_integration.rb +0 -38
  108. data/lib/telnyx/models/ai/assistant_mcp_server.rb +0 -35
  109. data/lib/telnyx/models/ai/assistants/clause.rb +0 -54
  110. data/lib/telnyx/models/ai/assistants/rollout_slot.rb +0 -27
  111. data/lib/telnyx/models/ai/assistants/rule_input.rb +0 -40
  112. data/lib/telnyx/models/ai/assistants/rule_output.rb +0 -40
  113. data/lib/telnyx/models/ai/assistants/serve.rb +0 -33
  114. data/lib/telnyx/models/ai/inference_embedding_interruption_settings.rb +0 -39
  115. data/lib/telnyx/models/ai/start_speaking_plan.rb +0 -37
  116. data/lib/telnyx/models/ai/transcription_endpointing_plan.rb +0 -39
  117. data/lib/telnyx/models/calls/transcription_engine_assemblyai_config.rb +0 -64
  118. data/lib/telnyx/models/calls/transcription_engine_xai_config.rb +0 -108
  119. data/lib/telnyx/models/model_metadata.rb +0 -33
  120. data/lib/telnyx/models/uac_connection.rb +0 -412
  121. data/lib/telnyx/models/uac_external_settings.rb +0 -101
  122. data/lib/telnyx/models/uac_inbound.rb +0 -210
  123. data/lib/telnyx/models/uac_internal_settings.rb +0 -25
  124. data/lib/telnyx/models/uac_outbound.rb +0 -131
  125. data/lib/telnyx/models/xai_voice_settings.rb +0 -36
  126. data/rbi/telnyx/models/ai/assistant_integration.rbi +0 -60
  127. data/rbi/telnyx/models/ai/assistant_mcp_server.rbi +0 -51
  128. data/rbi/telnyx/models/ai/assistants/clause.rbi +0 -91
  129. data/rbi/telnyx/models/ai/assistants/rollout_slot.rbi +0 -36
  130. data/rbi/telnyx/models/ai/assistants/rule_input.rbi +0 -73
  131. data/rbi/telnyx/models/ai/assistants/rule_output.rbi +0 -73
  132. data/rbi/telnyx/models/ai/assistants/serve.rbi +0 -61
  133. data/rbi/telnyx/models/ai/inference_embedding_interruption_settings.rbi +0 -72
  134. data/rbi/telnyx/models/ai/start_speaking_plan.rbi +0 -70
  135. data/rbi/telnyx/models/ai/transcription_endpointing_plan.rbi +0 -71
  136. data/rbi/telnyx/models/calls/transcription_engine_assemblyai_config.rbi +0 -155
  137. data/rbi/telnyx/models/calls/transcription_engine_xai_config.rbi +0 -329
  138. data/rbi/telnyx/models/model_metadata.rbi +0 -44
  139. data/rbi/telnyx/models/uac_connection.rbi +0 -684
  140. data/rbi/telnyx/models/uac_external_settings.rbi +0 -146
  141. data/rbi/telnyx/models/uac_inbound.rbi +0 -410
  142. data/rbi/telnyx/models/uac_internal_settings.rbi +0 -39
  143. data/rbi/telnyx/models/uac_outbound.rbi +0 -224
  144. data/rbi/telnyx/models/xai_voice_settings.rbi +0 -64
  145. data/sig/telnyx/models/ai/assistant_integration.rbs +0 -26
  146. data/sig/telnyx/models/ai/assistant_mcp_server.rbs +0 -19
  147. data/sig/telnyx/models/ai/assistants/clause.rbs +0 -46
  148. data/sig/telnyx/models/ai/assistants/rollout_slot.rbs +0 -19
  149. data/sig/telnyx/models/ai/assistants/rule_input.rbs +0 -33
  150. data/sig/telnyx/models/ai/assistants/rule_output.rbs +0 -33
  151. data/sig/telnyx/models/ai/assistants/serve.rbs +0 -35
  152. data/sig/telnyx/models/ai/inference_embedding_interruption_settings.rbs +0 -30
  153. data/sig/telnyx/models/ai/start_speaking_plan.rbs +0 -33
  154. data/sig/telnyx/models/ai/transcription_endpointing_plan.rbs +0 -38
  155. data/sig/telnyx/models/calls/transcription_engine_assemblyai_config.rbs +0 -62
  156. data/sig/telnyx/models/calls/transcription_engine_xai_config.rbs +0 -130
  157. data/sig/telnyx/models/model_metadata.rbs +0 -32
  158. data/sig/telnyx/models/uac_connection.rbs +0 -338
  159. data/sig/telnyx/models/uac_external_settings.rbs +0 -73
  160. data/sig/telnyx/models/uac_inbound.rbs +0 -190
  161. data/sig/telnyx/models/uac_internal_settings.rbs +0 -15
  162. data/sig/telnyx/models/uac_outbound.rbs +0 -113
  163. data/sig/telnyx/models/xai_voice_settings.rbs +0 -34
@@ -124,12 +124,17 @@ module Telnyx
124
124
  # integrations is at `/ai/integrations`; the user's connected integrations are at
125
125
  # `/ai/integrations/connections`. Each item references a catalog integration by
126
126
  # `integration_id`.
127
- sig { returns(T.nilable(T::Array[Telnyx::AI::AssistantIntegration])) }
127
+ sig do
128
+ returns(
129
+ T.nilable(T::Array[Telnyx::AI::InferenceEmbedding::Integration])
130
+ )
131
+ end
128
132
  attr_reader :integrations
129
133
 
130
134
  sig do
131
135
  params(
132
- integrations: T::Array[Telnyx::AI::AssistantIntegration::OrHash]
136
+ integrations:
137
+ T::Array[Telnyx::AI::InferenceEmbedding::Integration::OrHash]
133
138
  ).void
134
139
  end
135
140
  attr_writer :integrations
@@ -141,14 +146,16 @@ module Telnyx
141
146
  # `transcription.settings` (`eot_threshold`, `eot_timeout_ms`,
142
147
  # `eager_eot_threshold`).
143
148
  sig do
144
- returns(T.nilable(Telnyx::AI::InferenceEmbeddingInterruptionSettings))
149
+ returns(
150
+ T.nilable(Telnyx::AI::InferenceEmbedding::InterruptionSettings)
151
+ )
145
152
  end
146
153
  attr_reader :interruption_settings
147
154
 
148
155
  sig do
149
156
  params(
150
157
  interruption_settings:
151
- Telnyx::AI::InferenceEmbeddingInterruptionSettings::OrHash
158
+ Telnyx::AI::InferenceEmbedding::InterruptionSettings::OrHash
152
159
  ).void
153
160
  end
154
161
  attr_writer :interruption_settings
@@ -167,12 +174,17 @@ module Telnyx
167
174
 
168
175
  # MCP servers attached to the assistant. Create MCP servers with
169
176
  # `/ai/mcp_servers`, then reference them by `id` here.
170
- sig { returns(T.nilable(T::Array[Telnyx::AI::AssistantMcpServer])) }
177
+ sig do
178
+ returns(
179
+ T.nilable(T::Array[Telnyx::AI::InferenceEmbedding::McpServer])
180
+ )
181
+ end
171
182
  attr_reader :mcp_servers
172
183
 
173
184
  sig do
174
185
  params(
175
- mcp_servers: T::Array[Telnyx::AI::AssistantMcpServer::OrHash]
186
+ mcp_servers:
187
+ T::Array[Telnyx::AI::InferenceEmbedding::McpServer::OrHash]
176
188
  ).void
177
189
  end
178
190
  attr_writer :mcp_servers
@@ -330,11 +342,13 @@ module Telnyx
330
342
  greeting: String,
331
343
  import_metadata: Telnyx::AI::ImportMetadata::OrHash,
332
344
  insight_settings: Telnyx::AI::InsightSettings::OrHash,
333
- integrations: T::Array[Telnyx::AI::AssistantIntegration::OrHash],
345
+ integrations:
346
+ T::Array[Telnyx::AI::InferenceEmbedding::Integration::OrHash],
334
347
  interruption_settings:
335
- Telnyx::AI::InferenceEmbeddingInterruptionSettings::OrHash,
348
+ Telnyx::AI::InferenceEmbedding::InterruptionSettings::OrHash,
336
349
  llm_api_key_ref: String,
337
- mcp_servers: T::Array[Telnyx::AI::AssistantMcpServer::OrHash],
350
+ mcp_servers:
351
+ T::Array[Telnyx::AI::InferenceEmbedding::McpServer::OrHash],
338
352
  messaging_settings: Telnyx::AI::MessagingSettings::OrHash,
339
353
  observability_settings: Telnyx::AI::Observability::OrHash,
340
354
  post_conversation_settings:
@@ -483,11 +497,12 @@ module Telnyx
483
497
  greeting: String,
484
498
  import_metadata: Telnyx::AI::ImportMetadata,
485
499
  insight_settings: Telnyx::AI::InsightSettings,
486
- integrations: T::Array[Telnyx::AI::AssistantIntegration],
500
+ integrations:
501
+ T::Array[Telnyx::AI::InferenceEmbedding::Integration],
487
502
  interruption_settings:
488
- Telnyx::AI::InferenceEmbeddingInterruptionSettings,
503
+ Telnyx::AI::InferenceEmbedding::InterruptionSettings,
489
504
  llm_api_key_ref: String,
490
- mcp_servers: T::Array[Telnyx::AI::AssistantMcpServer],
505
+ mcp_servers: T::Array[Telnyx::AI::InferenceEmbedding::McpServer],
491
506
  messaging_settings: Telnyx::AI::MessagingSettings,
492
507
  observability_settings: Telnyx::AI::Observability,
493
508
  post_conversation_settings: Telnyx::AI::PostConversationSettings,
@@ -507,6 +522,319 @@ module Telnyx
507
522
  end
508
523
  def to_hash
509
524
  end
525
+
526
+ class Integration < Telnyx::Internal::Type::BaseModel
527
+ OrHash =
528
+ T.type_alias do
529
+ T.any(
530
+ Telnyx::AI::InferenceEmbedding::Integration,
531
+ Telnyx::Internal::AnyHash
532
+ )
533
+ end
534
+
535
+ # Catalog integration ID to attach. This is the `id` from the integrations catalog
536
+ # at `/ai/integrations` (the same value also appears as `integration_id` on
537
+ # entries returned by `/ai/integrations/connections`). It is **not** the
538
+ # connection-level `id` from `/ai/integrations/connections`.
539
+ sig { returns(String) }
540
+ attr_accessor :integration_id
541
+
542
+ # Optional per-assistant allowlist of integration tool names. When omitted or
543
+ # empty, all tools allowed by the connected integration are available to the
544
+ # assistant.
545
+ sig { returns(T.nilable(T::Array[String])) }
546
+ attr_reader :allowed_list
547
+
548
+ sig { params(allowed_list: T::Array[String]).void }
549
+ attr_writer :allowed_list
550
+
551
+ # Reference to a connected integration attached to an assistant. Discover
552
+ # available integrations with `/ai/integrations` and connected integrations with
553
+ # `/ai/integrations/connections`.
554
+ sig do
555
+ params(
556
+ integration_id: String,
557
+ allowed_list: T::Array[String]
558
+ ).returns(T.attached_class)
559
+ end
560
+ def self.new(
561
+ # Catalog integration ID to attach. This is the `id` from the integrations catalog
562
+ # at `/ai/integrations` (the same value also appears as `integration_id` on
563
+ # entries returned by `/ai/integrations/connections`). It is **not** the
564
+ # connection-level `id` from `/ai/integrations/connections`.
565
+ integration_id:,
566
+ # Optional per-assistant allowlist of integration tool names. When omitted or
567
+ # empty, all tools allowed by the connected integration are available to the
568
+ # assistant.
569
+ allowed_list: nil
570
+ )
571
+ end
572
+
573
+ sig do
574
+ override.returns(
575
+ { integration_id: String, allowed_list: T::Array[String] }
576
+ )
577
+ end
578
+ def to_hash
579
+ end
580
+ end
581
+
582
+ class InterruptionSettings < Telnyx::Internal::Type::BaseModel
583
+ OrHash =
584
+ T.type_alias do
585
+ T.any(
586
+ Telnyx::AI::InferenceEmbedding::InterruptionSettings,
587
+ Telnyx::Internal::AnyHash
588
+ )
589
+ end
590
+
591
+ # Whether users can interrupt the assistant while it is speaking.
592
+ sig { returns(T.nilable(T::Boolean)) }
593
+ attr_reader :enable
594
+
595
+ sig { params(enable: T::Boolean).void }
596
+ attr_writer :enable
597
+
598
+ # Controls when the assistant starts speaking after the user stops. These
599
+ # thresholds primarily apply to non turn-taking transcription models. For
600
+ # turn-taking models like `deepgram/flux`, end-of-turn detection is driven by the
601
+ # transcription end-of-turn settings under `transcription.settings` instead.
602
+ sig do
603
+ returns(
604
+ T.nilable(
605
+ Telnyx::AI::InferenceEmbedding::InterruptionSettings::StartSpeakingPlan
606
+ )
607
+ )
608
+ end
609
+ attr_reader :start_speaking_plan
610
+
611
+ sig do
612
+ params(
613
+ start_speaking_plan:
614
+ Telnyx::AI::InferenceEmbedding::InterruptionSettings::StartSpeakingPlan::OrHash
615
+ ).void
616
+ end
617
+ attr_writer :start_speaking_plan
618
+
619
+ # Settings for interruptions and how the assistant decides the user has finished
620
+ # speaking. These timings are most relevant when using non turn-taking
621
+ # transcription models. For turn-taking models like `deepgram/flux`, end-of-turn
622
+ # behavior is controlled by the transcription end-of-turn settings under
623
+ # `transcription.settings` (`eot_threshold`, `eot_timeout_ms`,
624
+ # `eager_eot_threshold`).
625
+ sig do
626
+ params(
627
+ enable: T::Boolean,
628
+ start_speaking_plan:
629
+ Telnyx::AI::InferenceEmbedding::InterruptionSettings::StartSpeakingPlan::OrHash
630
+ ).returns(T.attached_class)
631
+ end
632
+ def self.new(
633
+ # Whether users can interrupt the assistant while it is speaking.
634
+ enable: nil,
635
+ # Controls when the assistant starts speaking after the user stops. These
636
+ # thresholds primarily apply to non turn-taking transcription models. For
637
+ # turn-taking models like `deepgram/flux`, end-of-turn detection is driven by the
638
+ # transcription end-of-turn settings under `transcription.settings` instead.
639
+ start_speaking_plan: nil
640
+ )
641
+ end
642
+
643
+ sig do
644
+ override.returns(
645
+ {
646
+ enable: T::Boolean,
647
+ start_speaking_plan:
648
+ Telnyx::AI::InferenceEmbedding::InterruptionSettings::StartSpeakingPlan
649
+ }
650
+ )
651
+ end
652
+ def to_hash
653
+ end
654
+
655
+ class StartSpeakingPlan < Telnyx::Internal::Type::BaseModel
656
+ OrHash =
657
+ T.type_alias do
658
+ T.any(
659
+ Telnyx::AI::InferenceEmbedding::InterruptionSettings::StartSpeakingPlan,
660
+ Telnyx::Internal::AnyHash
661
+ )
662
+ end
663
+
664
+ # Endpointing thresholds used to decide when the user has finished speaking.
665
+ # Applies to non turn-taking transcription models. For `deepgram/flux`, use
666
+ # `transcription.settings.eot_threshold` / `eot_timeout_ms` /
667
+ # `eager_eot_threshold`.
668
+ sig do
669
+ returns(
670
+ T.nilable(
671
+ Telnyx::AI::InferenceEmbedding::InterruptionSettings::StartSpeakingPlan::TranscriptionEndpointingPlan
672
+ )
673
+ )
674
+ end
675
+ attr_reader :transcription_endpointing_plan
676
+
677
+ sig do
678
+ params(
679
+ transcription_endpointing_plan:
680
+ Telnyx::AI::InferenceEmbedding::InterruptionSettings::StartSpeakingPlan::TranscriptionEndpointingPlan::OrHash
681
+ ).void
682
+ end
683
+ attr_writer :transcription_endpointing_plan
684
+
685
+ # Minimum seconds to wait before the assistant starts speaking.
686
+ sig { returns(T.nilable(Float)) }
687
+ attr_reader :wait_seconds
688
+
689
+ sig { params(wait_seconds: Float).void }
690
+ attr_writer :wait_seconds
691
+
692
+ # Controls when the assistant starts speaking after the user stops. These
693
+ # thresholds primarily apply to non turn-taking transcription models. For
694
+ # turn-taking models like `deepgram/flux`, end-of-turn detection is driven by the
695
+ # transcription end-of-turn settings under `transcription.settings` instead.
696
+ sig do
697
+ params(
698
+ transcription_endpointing_plan:
699
+ Telnyx::AI::InferenceEmbedding::InterruptionSettings::StartSpeakingPlan::TranscriptionEndpointingPlan::OrHash,
700
+ wait_seconds: Float
701
+ ).returns(T.attached_class)
702
+ end
703
+ def self.new(
704
+ # Endpointing thresholds used to decide when the user has finished speaking.
705
+ # Applies to non turn-taking transcription models. For `deepgram/flux`, use
706
+ # `transcription.settings.eot_threshold` / `eot_timeout_ms` /
707
+ # `eager_eot_threshold`.
708
+ transcription_endpointing_plan: nil,
709
+ # Minimum seconds to wait before the assistant starts speaking.
710
+ wait_seconds: nil
711
+ )
712
+ end
713
+
714
+ sig do
715
+ override.returns(
716
+ {
717
+ transcription_endpointing_plan:
718
+ Telnyx::AI::InferenceEmbedding::InterruptionSettings::StartSpeakingPlan::TranscriptionEndpointingPlan,
719
+ wait_seconds: Float
720
+ }
721
+ )
722
+ end
723
+ def to_hash
724
+ end
725
+
726
+ class TranscriptionEndpointingPlan < Telnyx::Internal::Type::BaseModel
727
+ OrHash =
728
+ T.type_alias do
729
+ T.any(
730
+ Telnyx::AI::InferenceEmbedding::InterruptionSettings::StartSpeakingPlan::TranscriptionEndpointingPlan,
731
+ Telnyx::Internal::AnyHash
732
+ )
733
+ end
734
+
735
+ # Seconds to wait after the transcript ends without punctuation.
736
+ sig { returns(T.nilable(Float)) }
737
+ attr_reader :on_no_punctuation_seconds
738
+
739
+ sig { params(on_no_punctuation_seconds: Float).void }
740
+ attr_writer :on_no_punctuation_seconds
741
+
742
+ # Seconds to wait after the transcript ends with a number.
743
+ sig { returns(T.nilable(Float)) }
744
+ attr_reader :on_number_seconds
745
+
746
+ sig { params(on_number_seconds: Float).void }
747
+ attr_writer :on_number_seconds
748
+
749
+ # Seconds to wait after the transcript ends with punctuation.
750
+ sig { returns(T.nilable(Float)) }
751
+ attr_reader :on_punctuation_seconds
752
+
753
+ sig { params(on_punctuation_seconds: Float).void }
754
+ attr_writer :on_punctuation_seconds
755
+
756
+ # Endpointing thresholds used to decide when the user has finished speaking.
757
+ # Applies to non turn-taking transcription models. For `deepgram/flux`, use
758
+ # `transcription.settings.eot_threshold` / `eot_timeout_ms` /
759
+ # `eager_eot_threshold`.
760
+ sig do
761
+ params(
762
+ on_no_punctuation_seconds: Float,
763
+ on_number_seconds: Float,
764
+ on_punctuation_seconds: Float
765
+ ).returns(T.attached_class)
766
+ end
767
+ def self.new(
768
+ # Seconds to wait after the transcript ends without punctuation.
769
+ on_no_punctuation_seconds: nil,
770
+ # Seconds to wait after the transcript ends with a number.
771
+ on_number_seconds: nil,
772
+ # Seconds to wait after the transcript ends with punctuation.
773
+ on_punctuation_seconds: nil
774
+ )
775
+ end
776
+
777
+ sig do
778
+ override.returns(
779
+ {
780
+ on_no_punctuation_seconds: Float,
781
+ on_number_seconds: Float,
782
+ on_punctuation_seconds: Float
783
+ }
784
+ )
785
+ end
786
+ def to_hash
787
+ end
788
+ end
789
+ end
790
+ end
791
+
792
+ class McpServer < Telnyx::Internal::Type::BaseModel
793
+ OrHash =
794
+ T.type_alias do
795
+ T.any(
796
+ Telnyx::AI::InferenceEmbedding::McpServer,
797
+ Telnyx::Internal::AnyHash
798
+ )
799
+ end
800
+
801
+ # ID of the MCP server to attach. This must be the `id` of an MCP server returned
802
+ # by the `/ai/mcp_servers` endpoints.
803
+ sig { returns(String) }
804
+ attr_accessor :id
805
+
806
+ # Optional per-assistant allowlist of MCP tool names. When omitted, the assistant
807
+ # uses the MCP server's configured `allowed_tools`.
808
+ sig { returns(T.nilable(T::Array[String])) }
809
+ attr_reader :allowed_tools
810
+
811
+ sig { params(allowed_tools: T::Array[String]).void }
812
+ attr_writer :allowed_tools
813
+
814
+ # Reference to an MCP server attached to an assistant. Create and manage MCP
815
+ # servers with the `/ai/mcp_servers` endpoints, then attach them to assistants by
816
+ # ID.
817
+ sig do
818
+ params(id: String, allowed_tools: T::Array[String]).returns(
819
+ T.attached_class
820
+ )
821
+ end
822
+ def self.new(
823
+ # ID of the MCP server to attach. This must be the `id` of an MCP server returned
824
+ # by the `/ai/mcp_servers` endpoints.
825
+ id:,
826
+ # Optional per-assistant allowlist of MCP tool names. When omitted, the assistant
827
+ # uses the MCP server's configured `allowed_tools`.
828
+ allowed_tools: nil
829
+ )
830
+ end
831
+
832
+ sig do
833
+ override.returns({ id: String, allowed_tools: T::Array[String] })
834
+ end
835
+ def to_hash
836
+ end
837
+ end
510
838
  end
511
839
  end
512
840
  end
@@ -12,7 +12,9 @@ module Telnyx
12
12
  )
13
13
  end
14
14
 
15
- sig { returns(T::Array[Telnyx::ModelMetadata]) }
15
+ sig do
16
+ returns(T::Array[Telnyx::Models::AI::OpenAIListModelsResponse::Data])
17
+ end
16
18
  attr_accessor :data
17
19
 
18
20
  sig { returns(T.nilable(String)) }
@@ -23,7 +25,10 @@ module Telnyx
23
25
 
24
26
  sig do
25
27
  params(
26
- data: T::Array[Telnyx::ModelMetadata::OrHash],
28
+ data:
29
+ T::Array[
30
+ Telnyx::Models::AI::OpenAIListModelsResponse::Data::OrHash
31
+ ],
27
32
  object: String
28
33
  ).returns(T.attached_class)
29
34
  end
@@ -32,11 +37,59 @@ module Telnyx
32
37
 
33
38
  sig do
34
39
  override.returns(
35
- { data: T::Array[Telnyx::ModelMetadata], object: String }
40
+ {
41
+ data:
42
+ T::Array[Telnyx::Models::AI::OpenAIListModelsResponse::Data],
43
+ object: String
44
+ }
36
45
  )
37
46
  end
38
47
  def to_hash
39
48
  end
49
+
50
+ class Data < Telnyx::Internal::Type::BaseModel
51
+ OrHash =
52
+ T.type_alias do
53
+ T.any(
54
+ Telnyx::Models::AI::OpenAIListModelsResponse::Data,
55
+ Telnyx::Internal::AnyHash
56
+ )
57
+ end
58
+
59
+ sig { returns(String) }
60
+ attr_accessor :id
61
+
62
+ sig { returns(Integer) }
63
+ attr_accessor :created
64
+
65
+ sig { returns(String) }
66
+ attr_accessor :owned_by
67
+
68
+ sig { returns(T.nilable(String)) }
69
+ attr_reader :object
70
+
71
+ sig { params(object: String).void }
72
+ attr_writer :object
73
+
74
+ sig do
75
+ params(
76
+ id: String,
77
+ created: Integer,
78
+ owned_by: String,
79
+ object: String
80
+ ).returns(T.attached_class)
81
+ end
82
+ def self.new(id:, created:, owned_by:, object: nil)
83
+ end
84
+
85
+ sig do
86
+ override.returns(
87
+ { id: String, created: Integer, owned_by: String, object: String }
88
+ )
89
+ end
90
+ def to_hash
91
+ end
92
+ end
40
93
  end
41
94
  end
42
95
  end
@@ -99,17 +99,17 @@ module Telnyx
99
99
  T.type_alias do
100
100
  T.any(
101
101
  T::Array[
102
- Telnyx::AI::TransferTool::Transfer::Targets::TargetsList
102
+ Telnyx::AI::TransferTool::Transfer::Targets::UnionMember0
103
103
  ],
104
104
  String
105
105
  )
106
106
  end
107
107
 
108
- class TargetsList < Telnyx::Internal::Type::BaseModel
108
+ class UnionMember0 < Telnyx::Internal::Type::BaseModel
109
109
  OrHash =
110
110
  T.type_alias do
111
111
  T.any(
112
- Telnyx::AI::TransferTool::Transfer::Targets::TargetsList,
112
+ Telnyx::AI::TransferTool::Transfer::Targets::UnionMember0,
113
113
  Telnyx::Internal::AnyHash
114
114
  )
115
115
  end
@@ -147,10 +147,10 @@ module Telnyx
147
147
  def self.variants
148
148
  end
149
149
 
150
- TargetsListArray =
150
+ UnionMember0Array =
151
151
  T.let(
152
152
  Telnyx::Internal::Type::ArrayOf[
153
- Telnyx::AI::TransferTool::Transfer::Targets::TargetsList
153
+ Telnyx::AI::TransferTool::Transfer::Targets::UnionMember0
154
154
  ],
155
155
  Telnyx::Internal::Type::Converter
156
156
  )
@@ -11,7 +11,7 @@ module Telnyx
11
11
  )
12
12
  end
13
13
 
14
- sig { returns(T::Array[Telnyx::ModelMetadata]) }
14
+ sig { returns(T::Array[Telnyx::Models::AIRetrieveModelsResponse::Data]) }
15
15
  attr_accessor :data
16
16
 
17
17
  sig { returns(T.nilable(String)) }
@@ -22,7 +22,8 @@ module Telnyx
22
22
 
23
23
  sig do
24
24
  params(
25
- data: T::Array[Telnyx::ModelMetadata::OrHash],
25
+ data:
26
+ T::Array[Telnyx::Models::AIRetrieveModelsResponse::Data::OrHash],
26
27
  object: String
27
28
  ).returns(T.attached_class)
28
29
  end
@@ -31,11 +32,58 @@ module Telnyx
31
32
 
32
33
  sig do
33
34
  override.returns(
34
- { data: T::Array[Telnyx::ModelMetadata], object: String }
35
+ {
36
+ data: T::Array[Telnyx::Models::AIRetrieveModelsResponse::Data],
37
+ object: String
38
+ }
35
39
  )
36
40
  end
37
41
  def to_hash
38
42
  end
43
+
44
+ class Data < Telnyx::Internal::Type::BaseModel
45
+ OrHash =
46
+ T.type_alias do
47
+ T.any(
48
+ Telnyx::Models::AIRetrieveModelsResponse::Data,
49
+ Telnyx::Internal::AnyHash
50
+ )
51
+ end
52
+
53
+ sig { returns(String) }
54
+ attr_accessor :id
55
+
56
+ sig { returns(Integer) }
57
+ attr_accessor :created
58
+
59
+ sig { returns(String) }
60
+ attr_accessor :owned_by
61
+
62
+ sig { returns(T.nilable(String)) }
63
+ attr_reader :object
64
+
65
+ sig { params(object: String).void }
66
+ attr_writer :object
67
+
68
+ sig do
69
+ params(
70
+ id: String,
71
+ created: Integer,
72
+ owned_by: String,
73
+ object: String
74
+ ).returns(T.attached_class)
75
+ end
76
+ def self.new(id:, created:, owned_by:, object: nil)
77
+ end
78
+
79
+ sig do
80
+ override.returns(
81
+ { id: String, created: Integer, owned_by: String, object: String }
82
+ )
83
+ end
84
+ def to_hash
85
+ end
86
+ end
39
87
  end
40
88
  end
41
89
  end
@@ -194,7 +194,7 @@ module Telnyx
194
194
  Telnyx::AzureVoiceSettings,
195
195
  Telnyx::RimeVoiceSettings,
196
196
  Telnyx::ResembleVoiceSettings,
197
- Telnyx::XaiVoiceSettings
197
+ Telnyx::Calls::ActionGatherUsingAIParams::VoiceSettings::Xai
198
198
  )
199
199
  )
200
200
  )
@@ -211,7 +211,7 @@ module Telnyx
211
211
  Telnyx::AzureVoiceSettings::OrHash,
212
212
  Telnyx::RimeVoiceSettings::OrHash,
213
213
  Telnyx::ResembleVoiceSettings::OrHash,
214
- Telnyx::XaiVoiceSettings::OrHash
214
+ Telnyx::Calls::ActionGatherUsingAIParams::VoiceSettings::Xai::OrHash
215
215
  )
216
216
  ).void
217
217
  end
@@ -245,7 +245,7 @@ module Telnyx
245
245
  Telnyx::AzureVoiceSettings::OrHash,
246
246
  Telnyx::RimeVoiceSettings::OrHash,
247
247
  Telnyx::ResembleVoiceSettings::OrHash,
248
- Telnyx::XaiVoiceSettings::OrHash
248
+ Telnyx::Calls::ActionGatherUsingAIParams::VoiceSettings::Xai::OrHash
249
249
  ),
250
250
  request_options: Telnyx::RequestOptions::OrHash
251
251
  ).returns(T.attached_class)
@@ -358,7 +358,7 @@ module Telnyx
358
358
  Telnyx::AzureVoiceSettings,
359
359
  Telnyx::RimeVoiceSettings,
360
360
  Telnyx::ResembleVoiceSettings,
361
- Telnyx::XaiVoiceSettings
361
+ Telnyx::Calls::ActionGatherUsingAIParams::VoiceSettings::Xai
362
362
  ),
363
363
  request_options: Telnyx::RequestOptions
364
364
  }
@@ -477,10 +477,46 @@ module Telnyx
477
477
  Telnyx::AzureVoiceSettings,
478
478
  Telnyx::RimeVoiceSettings,
479
479
  Telnyx::ResembleVoiceSettings,
480
- Telnyx::XaiVoiceSettings
480
+ Telnyx::Calls::ActionGatherUsingAIParams::VoiceSettings::Xai
481
481
  )
482
482
  end
483
483
 
484
+ class Xai < Telnyx::Internal::Type::BaseModel
485
+ OrHash =
486
+ T.type_alias do
487
+ T.any(
488
+ Telnyx::Calls::ActionGatherUsingAIParams::VoiceSettings::Xai,
489
+ Telnyx::Internal::AnyHash
490
+ )
491
+ end
492
+
493
+ # Voice settings provider type
494
+ sig { returns(Symbol) }
495
+ attr_accessor :type
496
+
497
+ # Language code, or `auto` to detect automatically.
498
+ sig { returns(T.nilable(String)) }
499
+ attr_reader :language
500
+
501
+ sig { params(language: String).void }
502
+ attr_writer :language
503
+
504
+ sig do
505
+ params(language: String, type: Symbol).returns(T.attached_class)
506
+ end
507
+ def self.new(
508
+ # Language code, or `auto` to detect automatically.
509
+ language: nil,
510
+ # Voice settings provider type
511
+ type: :xai
512
+ )
513
+ end
514
+
515
+ sig { override.returns({ type: Symbol, language: String }) }
516
+ def to_hash
517
+ end
518
+ end
519
+
484
520
  sig do
485
521
  override.returns(
486
522
  T::Array[