telnyx 5.92.0 → 5.94.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 (29) 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 +265 -37
  5. data/lib/telnyx/models/ai/assistant_tool.rb +108 -21
  6. data/lib/telnyx/models/ai/assistant_update_params.rb +266 -30
  7. data/lib/telnyx/models/ai/assistants/update_assistant.rb +267 -30
  8. data/lib/telnyx/models/ai/inference_embedding.rb +287 -29
  9. data/lib/telnyx/models/ai/transfer_tool.rb +48 -22
  10. data/lib/telnyx/resources/ai/assistants/versions.rb +18 -6
  11. data/lib/telnyx/resources/ai/assistants.rb +35 -13
  12. data/lib/telnyx/version.rb +1 -1
  13. data/rbi/telnyx/models/ai/assistant_create_params.rbi +510 -52
  14. data/rbi/telnyx/models/ai/assistant_tool.rbi +171 -32
  15. data/rbi/telnyx/models/ai/assistant_update_params.rbi +510 -44
  16. data/rbi/telnyx/models/ai/assistants/update_assistant.rbi +526 -44
  17. data/rbi/telnyx/models/ai/inference_embedding.rbi +540 -44
  18. data/rbi/telnyx/models/ai/transfer_tool.rbi +64 -30
  19. data/rbi/telnyx/resources/ai/assistants/versions.rbi +61 -13
  20. data/rbi/telnyx/resources/ai/assistants.rbi +112 -27
  21. data/sig/telnyx/models/ai/assistant_create_params.rbs +172 -5
  22. data/sig/telnyx/models/ai/assistant_tool.rbs +53 -12
  23. data/sig/telnyx/models/ai/assistant_update_params.rbs +172 -0
  24. data/sig/telnyx/models/ai/assistants/update_assistant.rbs +175 -0
  25. data/sig/telnyx/models/ai/inference_embedding.rbs +193 -0
  26. data/sig/telnyx/models/ai/transfer_tool.rbs +22 -12
  27. data/sig/telnyx/resources/ai/assistants/versions.rbs +6 -0
  28. data/sig/telnyx/resources/ai/assistants.rbs +12 -1
  29. metadata +2 -2
@@ -54,22 +54,25 @@ module Telnyx
54
54
  attr_accessor :from
55
55
 
56
56
  # The different possible targets of the transfer. The assistant will be able to
57
- # choose one of the targets to transfer the call to.
58
- sig { returns(T::Array[Telnyx::AI::TransferTool::Transfer::Target]) }
57
+ # choose one of the targets to transfer the call to. This can also be a dynamic
58
+ # variable string like `{{ targets }}` where `targets` is returned by the dynamic
59
+ # variables webhook and resolves to an array of target objects at runtime.
60
+ sig { returns(Telnyx::AI::TransferTool::Transfer::Targets::Variants) }
59
61
  attr_accessor :targets
60
62
 
61
63
  sig do
62
64
  params(
63
65
  from: String,
64
- targets:
65
- T::Array[Telnyx::AI::TransferTool::Transfer::Target::OrHash]
66
+ targets: Telnyx::AI::TransferTool::Transfer::Targets::Variants
66
67
  ).returns(T.attached_class)
67
68
  end
68
69
  def self.new(
69
70
  # Number or SIP URI placing the call.
70
71
  from:,
71
72
  # The different possible targets of the transfer. The assistant will be able to
72
- # choose one of the targets to transfer the call to.
73
+ # choose one of the targets to transfer the call to. This can also be a dynamic
74
+ # variable string like `{{ targets }}` where `targets` is returned by the dynamic
75
+ # variables webhook and resolves to an array of target objects at runtime.
73
76
  targets:
74
77
  )
75
78
  end
@@ -78,48 +81,79 @@ module Telnyx
78
81
  override.returns(
79
82
  {
80
83
  from: String,
81
- targets: T::Array[Telnyx::AI::TransferTool::Transfer::Target]
84
+ targets: Telnyx::AI::TransferTool::Transfer::Targets::Variants
82
85
  }
83
86
  )
84
87
  end
85
88
  def to_hash
86
89
  end
87
90
 
88
- class Target < Telnyx::Internal::Type::BaseModel
89
- OrHash =
91
+ # The different possible targets of the transfer. The assistant will be able to
92
+ # choose one of the targets to transfer the call to. This can also be a dynamic
93
+ # variable string like `{{ targets }}` where `targets` is returned by the dynamic
94
+ # variables webhook and resolves to an array of target objects at runtime.
95
+ module Targets
96
+ extend Telnyx::Internal::Type::Union
97
+
98
+ Variants =
90
99
  T.type_alias do
91
100
  T.any(
92
- Telnyx::AI::TransferTool::Transfer::Target,
93
- Telnyx::Internal::AnyHash
101
+ T::Array[
102
+ Telnyx::AI::TransferTool::Transfer::Targets::UnionMember0
103
+ ],
104
+ String
94
105
  )
95
106
  end
96
107
 
97
- # The name of the target.
98
- sig { returns(T.nilable(String)) }
99
- attr_reader :name
100
-
101
- sig { params(name: String).void }
102
- attr_writer :name
103
-
104
- # The destination number or SIP URI of the call.
105
- sig { returns(T.nilable(String)) }
106
- attr_reader :to
108
+ class UnionMember0 < Telnyx::Internal::Type::BaseModel
109
+ OrHash =
110
+ T.type_alias do
111
+ T.any(
112
+ Telnyx::AI::TransferTool::Transfer::Targets::UnionMember0,
113
+ Telnyx::Internal::AnyHash
114
+ )
115
+ end
107
116
 
108
- sig { params(to: String).void }
109
- attr_writer :to
117
+ # The destination number or SIP URI of the call.
118
+ sig { returns(String) }
119
+ attr_accessor :to
110
120
 
111
- sig { params(name: String, to: String).returns(T.attached_class) }
112
- def self.new(
113
121
  # The name of the target.
114
- name: nil,
115
- # The destination number or SIP URI of the call.
116
- to: nil
117
- )
122
+ sig { returns(T.nilable(String)) }
123
+ attr_reader :name
124
+
125
+ sig { params(name: String).void }
126
+ attr_writer :name
127
+
128
+ sig { params(to: String, name: String).returns(T.attached_class) }
129
+ def self.new(
130
+ # The destination number or SIP URI of the call.
131
+ to:,
132
+ # The name of the target.
133
+ name: nil
134
+ )
135
+ end
136
+
137
+ sig { override.returns({ to: String, name: String }) }
138
+ def to_hash
139
+ end
118
140
  end
119
141
 
120
- sig { override.returns({ name: String, to: String }) }
121
- def to_hash
142
+ sig do
143
+ override.returns(
144
+ T::Array[Telnyx::AI::TransferTool::Transfer::Targets::Variants]
145
+ )
122
146
  end
147
+ def self.variants
148
+ end
149
+
150
+ UnionMember0Array =
151
+ T.let(
152
+ Telnyx::Internal::Type::ArrayOf[
153
+ Telnyx::AI::TransferTool::Transfer::Targets::UnionMember0
154
+ ],
155
+ Telnyx::Internal::Type::Converter
156
+ )
123
157
  end
124
158
  end
125
159
 
@@ -34,6 +34,7 @@ module Telnyx
34
34
  assistant_id: String,
35
35
  description: String,
36
36
  dynamic_variables: T::Hash[Symbol, T.anything],
37
+ dynamic_variables_webhook_timeout_ms: Integer,
37
38
  dynamic_variables_webhook_url: String,
38
39
  enabled_features: T::Array[Telnyx::AI::EnabledFeatures::OrSymbol],
39
40
  external_llm:
@@ -43,7 +44,17 @@ module Telnyx
43
44
  greeting: String,
44
45
  insight_settings: Telnyx::AI::InsightSettings::OrHash,
45
46
  instructions: String,
47
+ integrations:
48
+ T::Array[
49
+ Telnyx::AI::Assistants::UpdateAssistant::Integration::OrHash
50
+ ],
51
+ interruption_settings:
52
+ Telnyx::AI::Assistants::UpdateAssistant::InterruptionSettings::OrHash,
46
53
  llm_api_key_ref: String,
54
+ mcp_servers:
55
+ T::Array[
56
+ Telnyx::AI::Assistants::UpdateAssistant::McpServer::OrHash
57
+ ],
47
58
  messaging_settings: Telnyx::AI::MessagingSettings::OrHash,
48
59
  model: String,
49
60
  name: String,
@@ -51,6 +62,7 @@ module Telnyx
51
62
  post_conversation_settings:
52
63
  Telnyx::AI::Assistants::UpdateAssistant::PostConversationSettings::OrHash,
53
64
  privacy_settings: Telnyx::AI::PrivacySettings::OrHash,
65
+ tags: T::Array[String],
54
66
  telephony_settings: Telnyx::AI::TelephonySettings::OrHash,
55
67
  tool_ids: T::Array[String],
56
68
  tools:
@@ -69,6 +81,7 @@ module Telnyx
69
81
  )
70
82
  ],
71
83
  transcription: Telnyx::AI::TranscriptionSettings::OrHash,
84
+ version_name: String,
72
85
  voice_settings: Telnyx::AI::VoiceSettings::OrHash,
73
86
  widget_settings: Telnyx::AI::WidgetSettings::OrHash,
74
87
  request_options: Telnyx::RequestOptions::OrHash
@@ -83,10 +96,19 @@ module Telnyx
83
96
  description: nil,
84
97
  # Body param: Map of dynamic variables and their default values
85
98
  dynamic_variables: nil,
86
- # Body param: If the dynamic_variables_webhook_url is set for the assistant, we
87
- # will send a request at the start of the conversation. See our
88
- # [guide](https://developers.telnyx.com/docs/inference/ai-assistants/dynamic-variables)
89
- # for more information.
99
+ # Body param: Timeout in milliseconds for the dynamic variables webhook. Must be
100
+ # between 1 and 10000 ms. If the webhook does not respond within this timeout, the
101
+ # call proceeds with default values. See the
102
+ # [dynamic variables guide](https://developers.telnyx.com/docs/inference/ai-assistants/dynamic-variables).
103
+ dynamic_variables_webhook_timeout_ms: nil,
104
+ # Body param: If `dynamic_variables_webhook_url` is set, Telnyx sends a POST
105
+ # request to this URL at the start of the conversation to resolve dynamic
106
+ # variables. **Gotcha:** the webhook response must wrap variables under a
107
+ # top-level `dynamic_variables` object, e.g.
108
+ # `{"dynamic_variables": {"customer_name": "Jane"}}`. Returning a flat object will
109
+ # be ignored and variables will fall back to their defaults. See the
110
+ # [dynamic variables guide](https://developers.telnyx.com/docs/inference/ai-assistants/dynamic-variables)
111
+ # for the full request/response format and timeout behavior.
90
112
  dynamic_variables_webhook_url: nil,
91
113
  # Body param
92
114
  enabled_features: nil,
@@ -106,17 +128,36 @@ module Telnyx
106
128
  # Body param: System instructions for the assistant. These may be templated with
107
129
  # [dynamic variables](https://developers.telnyx.com/docs/inference/ai-assistants/dynamic-variables)
108
130
  instructions: nil,
109
- # Body param: This is only needed when using third-party inference providers. The
110
- # `identifier` for an integration secret
131
+ # Body param: Connected integrations attached to the assistant. The catalog of
132
+ # available integrations is at `/ai/integrations`; the user's connected
133
+ # integrations are at `/ai/integrations/connections`. Each item references a
134
+ # catalog integration by `integration_id`.
135
+ integrations: nil,
136
+ # Body param: Settings for interruptions and how the assistant decides the user
137
+ # has finished speaking. These timings are most relevant when using non
138
+ # turn-taking transcription models. For turn-taking models like `deepgram/flux`,
139
+ # end-of-turn behavior is controlled by the transcription end-of-turn settings
140
+ # under `transcription.settings` (`eot_threshold`, `eot_timeout_ms`,
141
+ # `eager_eot_threshold`).
142
+ interruption_settings: nil,
143
+ # Body param: This is only needed when using third-party inference providers
144
+ # selected by `model`. The `identifier` for an integration secret
111
145
  # [/v2/integration_secrets](https://developers.telnyx.com/api-reference/integration-secrets/create-a-secret)
112
- # that refers to your LLM provider's API key. Warning: Free plans are unlikely to
113
- # work with this integration.
146
+ # that refers to your LLM provider's API key. For bring-your-own endpoint
147
+ # authentication, use `external_llm.llm_api_key_ref` instead. Warning: Free plans
148
+ # are unlikely to work with this integration.
114
149
  llm_api_key_ref: nil,
150
+ # Body param: MCP servers attached to the assistant. Create MCP servers with
151
+ # `/ai/mcp_servers`, then reference them by `id` here.
152
+ mcp_servers: nil,
115
153
  # Body param
116
154
  messaging_settings: nil,
117
- # Body param: ID of the model to use. You can use the
155
+ # Body param: ID of the model to use when `external_llm` is not set. You can use
156
+ # the
118
157
  # [Get models API](https://developers.telnyx.com/api-reference/chat/get-available-models)
119
- # to see all of your available models,
158
+ # to see available models. If `external_llm` is provided, the assistant uses
159
+ # `external_llm` instead of this field. If neither `model` nor `external_llm` is
160
+ # provided, Telnyx applies the default model.
120
161
  model: nil,
121
162
  # Body param
122
163
  name: nil,
@@ -131,15 +172,22 @@ module Telnyx
131
172
  post_conversation_settings: nil,
132
173
  # Body param
133
174
  privacy_settings: nil,
175
+ # Body param: Tags associated with the assistant. Tags can also be managed with
176
+ # the assistant tag endpoints.
177
+ tags: nil,
134
178
  # Body param
135
179
  telephony_settings: nil,
136
- # Body param
180
+ # Body param: IDs of shared tools to attach to the assistant. New integrations
181
+ # should prefer `tool_ids` over inline `tools`.
137
182
  tool_ids: nil,
138
- # Body param: The tools that the assistant can use. These may be templated with
139
- # [dynamic variables](https://developers.telnyx.com/docs/inference/ai-assistants/dynamic-variables)
183
+ # Body param: Deprecated for new integrations. Inline tool definitions available
184
+ # to the assistant. Prefer `tool_ids` to attach shared tools created with the AI
185
+ # Tools endpoints.
140
186
  tools: nil,
141
187
  # Body param
142
188
  transcription: nil,
189
+ # Body param: Human-readable name for the assistant version.
190
+ version_name: nil,
143
191
  # Body param
144
192
  voice_settings: nil,
145
193
  # Body param: Configuration settings for the assistant's web widget.
@@ -33,10 +33,10 @@ module Telnyx
33
33
  sig do
34
34
  params(
35
35
  instructions: String,
36
- model: String,
37
36
  name: String,
38
37
  description: String,
39
38
  dynamic_variables: T::Hash[Symbol, T.anything],
39
+ dynamic_variables_webhook_timeout_ms: Integer,
40
40
  dynamic_variables_webhook_url: String,
41
41
  enabled_features: T::Array[Telnyx::AI::EnabledFeatures::OrSymbol],
42
42
  external_llm:
@@ -45,12 +45,20 @@ module Telnyx
45
45
  Telnyx::AI::AssistantCreateParams::FallbackConfig::OrHash,
46
46
  greeting: String,
47
47
  insight_settings: Telnyx::AI::InsightSettings::OrHash,
48
+ integrations:
49
+ T::Array[Telnyx::AI::AssistantCreateParams::Integration::OrHash],
50
+ interruption_settings:
51
+ Telnyx::AI::AssistantCreateParams::InterruptionSettings::OrHash,
48
52
  llm_api_key_ref: String,
53
+ mcp_servers:
54
+ T::Array[Telnyx::AI::AssistantCreateParams::McpServer::OrHash],
49
55
  messaging_settings: Telnyx::AI::MessagingSettings::OrHash,
56
+ model: String,
50
57
  observability_settings: Telnyx::AI::ObservabilityReq::OrHash,
51
58
  post_conversation_settings:
52
59
  Telnyx::AI::AssistantCreateParams::PostConversationSettings::OrHash,
53
60
  privacy_settings: Telnyx::AI::PrivacySettings::OrHash,
61
+ tags: T::Array[String],
54
62
  telephony_settings: Telnyx::AI::TelephonySettings::OrHash,
55
63
  tool_ids: T::Array[String],
56
64
  tools:
@@ -78,18 +86,23 @@ module Telnyx
78
86
  # System instructions for the assistant. These may be templated with
79
87
  # [dynamic variables](https://developers.telnyx.com/docs/inference/ai-assistants/dynamic-variables)
80
88
  instructions:,
81
- # ID of the model to use. You can use the
82
- # [Get models API](https://developers.telnyx.com/api-reference/chat/get-available-models)
83
- # to see all of your available models,
84
- model:,
85
89
  name:,
86
90
  description: nil,
87
91
  # Map of dynamic variables and their default values
88
92
  dynamic_variables: nil,
89
- # If the dynamic_variables_webhook_url is set for the assistant, we will send a
90
- # request at the start of the conversation. See our
91
- # [guide](https://developers.telnyx.com/docs/inference/ai-assistants/dynamic-variables)
92
- # for more information.
93
+ # Timeout in milliseconds for the dynamic variables webhook. Must be between 1 and
94
+ # 10000 ms. If the webhook does not respond within this timeout, the call proceeds
95
+ # with default values. See the
96
+ # [dynamic variables guide](https://developers.telnyx.com/docs/inference/ai-assistants/dynamic-variables).
97
+ dynamic_variables_webhook_timeout_ms: nil,
98
+ # If `dynamic_variables_webhook_url` is set, Telnyx sends a POST request to this
99
+ # URL at the start of the conversation to resolve dynamic variables. **Gotcha:**
100
+ # the webhook response must wrap variables under a top-level `dynamic_variables`
101
+ # object, e.g. `{"dynamic_variables": {"customer_name": "Jane"}}`. Returning a
102
+ # flat object will be ignored and variables will fall back to their defaults. See
103
+ # the
104
+ # [dynamic variables guide](https://developers.telnyx.com/docs/inference/ai-assistants/dynamic-variables)
105
+ # for the full request/response format and timeout behavior.
93
106
  dynamic_variables_webhook_url: nil,
94
107
  enabled_features: nil,
95
108
  external_llm: nil,
@@ -102,13 +115,35 @@ module Telnyx
102
115
  # have the assistant generate the greeting based on the system instructions.
103
116
  greeting: nil,
104
117
  insight_settings: nil,
105
- # This is only needed when using third-party inference providers. The `identifier`
106
- # for an integration secret
118
+ # Connected integrations attached to the assistant. The catalog of available
119
+ # integrations is at `/ai/integrations`; the user's connected integrations are at
120
+ # `/ai/integrations/connections`. Each item references a catalog integration by
121
+ # `integration_id`.
122
+ integrations: nil,
123
+ # Settings for interruptions and how the assistant decides the user has finished
124
+ # speaking. These timings are most relevant when using non turn-taking
125
+ # transcription models. For turn-taking models like `deepgram/flux`, end-of-turn
126
+ # behavior is controlled by the transcription end-of-turn settings under
127
+ # `transcription.settings` (`eot_threshold`, `eot_timeout_ms`,
128
+ # `eager_eot_threshold`).
129
+ interruption_settings: nil,
130
+ # This is only needed when using third-party inference providers selected by
131
+ # `model`. The `identifier` for an integration secret
107
132
  # [/v2/integration_secrets](https://developers.telnyx.com/api-reference/integration-secrets/create-a-secret)
108
- # that refers to your LLM provider's API key. Warning: Free plans are unlikely to
109
- # work with this integration.
133
+ # that refers to your LLM provider's API key. For bring-your-own endpoint
134
+ # authentication, use `external_llm.llm_api_key_ref` instead. Warning: Free plans
135
+ # are unlikely to work with this integration.
110
136
  llm_api_key_ref: nil,
137
+ # MCP servers attached to the assistant. Create MCP servers with
138
+ # `/ai/mcp_servers`, then reference them by `id` here.
139
+ mcp_servers: nil,
111
140
  messaging_settings: nil,
141
+ # ID of the model to use when `external_llm` is not set. You can use the
142
+ # [Get models API](https://developers.telnyx.com/api-reference/chat/get-available-models)
143
+ # to see available models. If `external_llm` is provided, the assistant uses
144
+ # `external_llm` instead of this field. If neither `model` nor `external_llm` is
145
+ # provided, Telnyx applies the default model.
146
+ model: nil,
112
147
  observability_settings: nil,
113
148
  # Configuration for post-conversation processing. When enabled, the assistant
114
149
  # receives one additional LLM turn after the conversation ends, allowing it to
@@ -118,10 +153,16 @@ module Telnyx
118
153
  # post-conversation. Beta feature.
119
154
  post_conversation_settings: nil,
120
155
  privacy_settings: nil,
156
+ # Tags associated with the assistant. Tags can also be managed with the assistant
157
+ # tag endpoints.
158
+ tags: nil,
121
159
  telephony_settings: nil,
160
+ # IDs of shared tools to attach to the assistant. New integrations should prefer
161
+ # `tool_ids` over inline `tools`.
122
162
  tool_ids: nil,
123
- # The tools that the assistant can use. These may be templated with
124
- # [dynamic variables](https://developers.telnyx.com/docs/inference/ai-assistants/dynamic-variables)
163
+ # Deprecated for new integrations. Inline tool definitions available to the
164
+ # assistant. Prefer `tool_ids` to attach shared tools created with the AI Tools
165
+ # endpoints.
125
166
  tools: nil,
126
167
  transcription: nil,
127
168
  voice_settings: nil,
@@ -158,6 +199,7 @@ module Telnyx
158
199
  assistant_id: String,
159
200
  description: String,
160
201
  dynamic_variables: T::Hash[Symbol, T.anything],
202
+ dynamic_variables_webhook_timeout_ms: Integer,
161
203
  dynamic_variables_webhook_url: String,
162
204
  enabled_features: T::Array[Telnyx::AI::EnabledFeatures::OrSymbol],
163
205
  external_llm:
@@ -167,7 +209,13 @@ module Telnyx
167
209
  greeting: String,
168
210
  insight_settings: Telnyx::AI::InsightSettings::OrHash,
169
211
  instructions: String,
212
+ integrations:
213
+ T::Array[Telnyx::AI::AssistantUpdateParams::Integration::OrHash],
214
+ interruption_settings:
215
+ Telnyx::AI::AssistantUpdateParams::InterruptionSettings::OrHash,
170
216
  llm_api_key_ref: String,
217
+ mcp_servers:
218
+ T::Array[Telnyx::AI::AssistantUpdateParams::McpServer::OrHash],
171
219
  messaging_settings: Telnyx::AI::MessagingSettings::OrHash,
172
220
  model: String,
173
221
  name: String,
@@ -176,6 +224,7 @@ module Telnyx
176
224
  Telnyx::AI::AssistantUpdateParams::PostConversationSettings::OrHash,
177
225
  privacy_settings: Telnyx::AI::PrivacySettings::OrHash,
178
226
  promote_to_main: T::Boolean,
227
+ tags: T::Array[String],
179
228
  telephony_settings: Telnyx::AI::TelephonySettings::OrHash,
180
229
  tool_ids: T::Array[String],
181
230
  tools:
@@ -194,6 +243,7 @@ module Telnyx
194
243
  )
195
244
  ],
196
245
  transcription: Telnyx::AI::TranscriptionSettings::OrHash,
246
+ version_name: String,
197
247
  voice_settings: Telnyx::AI::VoiceSettings::OrHash,
198
248
  widget_settings: Telnyx::AI::WidgetSettings::OrHash,
199
249
  request_options: Telnyx::RequestOptions::OrHash
@@ -204,10 +254,19 @@ module Telnyx
204
254
  description: nil,
205
255
  # Map of dynamic variables and their default values
206
256
  dynamic_variables: nil,
207
- # If the dynamic_variables_webhook_url is set for the assistant, we will send a
208
- # request at the start of the conversation. See our
209
- # [guide](https://developers.telnyx.com/docs/inference/ai-assistants/dynamic-variables)
210
- # for more information.
257
+ # Timeout in milliseconds for the dynamic variables webhook. Must be between 1 and
258
+ # 10000 ms. If the webhook does not respond within this timeout, the call proceeds
259
+ # with default values. See the
260
+ # [dynamic variables guide](https://developers.telnyx.com/docs/inference/ai-assistants/dynamic-variables).
261
+ dynamic_variables_webhook_timeout_ms: nil,
262
+ # If `dynamic_variables_webhook_url` is set, Telnyx sends a POST request to this
263
+ # URL at the start of the conversation to resolve dynamic variables. **Gotcha:**
264
+ # the webhook response must wrap variables under a top-level `dynamic_variables`
265
+ # object, e.g. `{"dynamic_variables": {"customer_name": "Jane"}}`. Returning a
266
+ # flat object will be ignored and variables will fall back to their defaults. See
267
+ # the
268
+ # [dynamic variables guide](https://developers.telnyx.com/docs/inference/ai-assistants/dynamic-variables)
269
+ # for the full request/response format and timeout behavior.
211
270
  dynamic_variables_webhook_url: nil,
212
271
  enabled_features: nil,
213
272
  external_llm: nil,
@@ -223,16 +282,34 @@ module Telnyx
223
282
  # System instructions for the assistant. These may be templated with
224
283
  # [dynamic variables](https://developers.telnyx.com/docs/inference/ai-assistants/dynamic-variables)
225
284
  instructions: nil,
226
- # This is only needed when using third-party inference providers. The `identifier`
227
- # for an integration secret
285
+ # Connected integrations attached to the assistant. The catalog of available
286
+ # integrations is at `/ai/integrations`; the user's connected integrations are at
287
+ # `/ai/integrations/connections`. Each item references a catalog integration by
288
+ # `integration_id`.
289
+ integrations: nil,
290
+ # Settings for interruptions and how the assistant decides the user has finished
291
+ # speaking. These timings are most relevant when using non turn-taking
292
+ # transcription models. For turn-taking models like `deepgram/flux`, end-of-turn
293
+ # behavior is controlled by the transcription end-of-turn settings under
294
+ # `transcription.settings` (`eot_threshold`, `eot_timeout_ms`,
295
+ # `eager_eot_threshold`).
296
+ interruption_settings: nil,
297
+ # This is only needed when using third-party inference providers selected by
298
+ # `model`. The `identifier` for an integration secret
228
299
  # [/v2/integration_secrets](https://developers.telnyx.com/api-reference/integration-secrets/create-a-secret)
229
- # that refers to your LLM provider's API key. Warning: Free plans are unlikely to
230
- # work with this integration.
300
+ # that refers to your LLM provider's API key. For bring-your-own endpoint
301
+ # authentication, use `external_llm.llm_api_key_ref` instead. Warning: Free plans
302
+ # are unlikely to work with this integration.
231
303
  llm_api_key_ref: nil,
304
+ # MCP servers attached to the assistant. Create MCP servers with
305
+ # `/ai/mcp_servers`, then reference them by `id` here.
306
+ mcp_servers: nil,
232
307
  messaging_settings: nil,
233
- # ID of the model to use. You can use the
308
+ # ID of the model to use when `external_llm` is not set. You can use the
234
309
  # [Get models API](https://developers.telnyx.com/api-reference/chat/get-available-models)
235
- # to see all of your available models,
310
+ # to see available models. If `external_llm` is provided, the assistant uses
311
+ # `external_llm` instead of this field. If neither `model` nor `external_llm` is
312
+ # provided, Telnyx applies the default model.
236
313
  model: nil,
237
314
  name: nil,
238
315
  observability_settings: nil,
@@ -247,12 +324,20 @@ module Telnyx
247
324
  # Indicates whether the assistant should be promoted to the main version. Defaults
248
325
  # to true.
249
326
  promote_to_main: nil,
327
+ # Tags associated with the assistant. Tags can also be managed with the assistant
328
+ # tag endpoints.
329
+ tags: nil,
250
330
  telephony_settings: nil,
331
+ # IDs of shared tools to attach to the assistant. New integrations should prefer
332
+ # `tool_ids` over inline `tools`.
251
333
  tool_ids: nil,
252
- # The tools that the assistant can use. These may be templated with
253
- # [dynamic variables](https://developers.telnyx.com/docs/inference/ai-assistants/dynamic-variables)
334
+ # Deprecated for new integrations. Inline tool definitions available to the
335
+ # assistant. Prefer `tool_ids` to attach shared tools created with the AI Tools
336
+ # endpoints.
254
337
  tools: nil,
255
338
  transcription: nil,
339
+ # Human-readable name for the assistant version.
340
+ version_name: nil,
256
341
  voice_settings: nil,
257
342
  # Configuration settings for the assistant's web widget.
258
343
  widget_settings: nil,