telnyx 5.167.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 (167) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +7 -0
  3. data/README.md +1 -1
  4. data/lib/telnyx/client.rb +4 -0
  5. data/lib/telnyx/models/ai/assistant_a2_a_agent.rb +195 -0
  6. data/lib/telnyx/models/ai/assistant_create_params.rb +16 -1
  7. data/lib/telnyx/models/ai/assistant_update_params.rb +17 -1
  8. data/lib/telnyx/models/ai/assistants/update_assistant.rb +17 -1
  9. data/lib/telnyx/models/ai/chat_completion_request.rb +125 -48
  10. data/lib/telnyx/models/ai/inference_embedding.rb +16 -1
  11. data/lib/telnyx/models/ai/telephony_settings.rb +15 -1
  12. data/lib/telnyx/models/compute/func_retrieve_logs_params.rb +66 -0
  13. data/lib/telnyx/models/compute/func_retrieve_logs_response.rb +161 -0
  14. data/lib/telnyx/models/compute/func_retrieve_metric_aggregates_params.rb +69 -0
  15. data/lib/telnyx/models/compute/func_retrieve_metric_aggregates_response.rb +137 -0
  16. data/lib/telnyx/models/compute/func_retrieve_revisions_params.rb +34 -0
  17. data/lib/telnyx/models/compute/func_retrieve_revisions_response.rb +101 -0
  18. data/lib/telnyx/models/compute/func_retrieve_ship_inspection_params.rb +22 -0
  19. data/lib/telnyx/models/compute/func_retrieve_ship_inspection_response.rb +94 -0
  20. data/lib/telnyx/models/compute/functions_observability_pagination_meta.rb +35 -0
  21. data/lib/telnyx/models/compute/logs_meta.rb +23 -0
  22. data/lib/telnyx/models/credential_connection.rb +4 -1
  23. data/lib/telnyx/models/email_inboxes/email_message.rb +12 -1
  24. data/lib/telnyx/models/email_message_batch_params.rb +4 -1
  25. data/lib/telnyx/models/email_message_batch_response.rb +1 -0
  26. data/lib/telnyx/models/fqdn_connection.rb +5 -2
  27. data/lib/telnyx/models/fqdn_connections/fqdn_authentication.rb +9 -2
  28. data/lib/telnyx/models/messaging_inbound_message_payload.rb +210 -67
  29. data/lib/telnyx/models/messaging_messaging_profile.rb +11 -1
  30. data/lib/telnyx/models/messaging_profile_create_params.rb +11 -1
  31. data/lib/telnyx/models/messaging_profile_features.rb +26 -0
  32. data/lib/telnyx/models/messaging_profile_update_params.rb +11 -1
  33. data/lib/telnyx/models/uac_connection.rb +4 -1
  34. data/lib/telnyx/models/uac_external_settings.rb +6 -2
  35. data/lib/telnyx/models/unsafe_unwrap_webhook_event.rb +5 -1
  36. data/lib/telnyx/models/unwrap_webhook_event.rb +5 -1
  37. data/lib/telnyx/models/whatsapp/business_accounts/phone_number_list_response.rb +104 -1
  38. data/lib/telnyx/models/whatsapp/phone_number_get_response.rb +103 -1
  39. data/lib/telnyx/models/whatsapp/phone_number_list_response.rb +103 -1
  40. data/lib/telnyx/models/whatsapp/phone_number_retrieve_phone_number_params.rb +22 -0
  41. data/lib/telnyx/models/whatsapp/phone_number_retrieve_phone_number_response.rb +207 -0
  42. data/lib/telnyx/models/whatsapp_account_update.rb +112 -0
  43. data/lib/telnyx/models/whatsapp_message_echo.rb +340 -0
  44. data/lib/telnyx/models/x402/credit_account/payment_list_params.rb +34 -0
  45. data/lib/telnyx/models/x402/credit_account/payment_retrieve_params.rb +24 -0
  46. data/lib/telnyx/models/x402/credit_account/payment_retrieve_response.rb +21 -0
  47. data/lib/telnyx/models/x402/credit_account/x402_transaction_record.rb +113 -0
  48. data/lib/telnyx/models.rb +8 -0
  49. data/lib/telnyx/resources/ai/assistants/versions.rb +3 -1
  50. data/lib/telnyx/resources/ai/assistants.rb +6 -2
  51. data/lib/telnyx/resources/ai/openai/chat.rb +2 -8
  52. data/lib/telnyx/resources/compute/funcs.rb +141 -0
  53. data/lib/telnyx/resources/compute.rb +18 -0
  54. data/lib/telnyx/resources/email_messages.rb +4 -2
  55. data/lib/telnyx/resources/messaging_profiles.rb +6 -2
  56. data/lib/telnyx/resources/webhooks.rb +2 -2
  57. data/lib/telnyx/resources/whatsapp/phone_numbers.rb +22 -0
  58. data/lib/telnyx/resources/x402/credit_account/payments.rb +71 -0
  59. data/lib/telnyx/resources/x402/credit_account.rb +8 -2
  60. data/lib/telnyx/version.rb +1 -1
  61. data/lib/telnyx.rb +23 -0
  62. data/rbi/telnyx/client.rbi +3 -0
  63. data/rbi/telnyx/models/ai/assistant_a2_a_agent.rbi +345 -0
  64. data/rbi/telnyx/models/ai/assistant_create_params.rbi +29 -0
  65. data/rbi/telnyx/models/ai/assistant_update_params.rbi +31 -0
  66. data/rbi/telnyx/models/ai/assistants/update_assistant.rbi +31 -0
  67. data/rbi/telnyx/models/ai/chat_completion_request.rbi +224 -92
  68. data/rbi/telnyx/models/ai/inference_embedding.rbi +29 -0
  69. data/rbi/telnyx/models/ai/telephony_settings.rbi +23 -0
  70. data/rbi/telnyx/models/compute/func_retrieve_logs_params.rbi +130 -0
  71. data/rbi/telnyx/models/compute/func_retrieve_logs_response.rbi +410 -0
  72. data/rbi/telnyx/models/compute/func_retrieve_metric_aggregates_params.rbi +102 -0
  73. data/rbi/telnyx/models/compute/func_retrieve_metric_aggregates_response.rbi +231 -0
  74. data/rbi/telnyx/models/compute/func_retrieve_revisions_params.rbi +59 -0
  75. data/rbi/telnyx/models/compute/func_retrieve_revisions_response.rbi +213 -0
  76. data/rbi/telnyx/models/compute/func_retrieve_ship_inspection_params.rbi +40 -0
  77. data/rbi/telnyx/models/compute/func_retrieve_ship_inspection_response.rbi +252 -0
  78. data/rbi/telnyx/models/compute/functions_observability_pagination_meta.rbi +70 -0
  79. data/rbi/telnyx/models/compute/logs_meta.rbi +38 -0
  80. data/rbi/telnyx/models/credential_connection.rbi +8 -2
  81. data/rbi/telnyx/models/email_inboxes/email_message.rbi +22 -3
  82. data/rbi/telnyx/models/email_message_batch_params.rbi +6 -0
  83. data/rbi/telnyx/models/email_message_batch_response.rbi +5 -0
  84. data/rbi/telnyx/models/fqdn_connection.rbi +8 -2
  85. data/rbi/telnyx/models/fqdn_connections/fqdn_authentication.rbi +8 -2
  86. data/rbi/telnyx/models/messaging_inbound_message_payload.rbi +450 -193
  87. data/rbi/telnyx/models/messaging_messaging_profile.rbi +19 -0
  88. data/rbi/telnyx/models/messaging_profile_create_params.rbi +19 -0
  89. data/rbi/telnyx/models/messaging_profile_features.rbi +43 -0
  90. data/rbi/telnyx/models/messaging_profile_update_params.rbi +19 -0
  91. data/rbi/telnyx/models/uac_connection.rbi +8 -2
  92. data/rbi/telnyx/models/uac_external_settings.rbi +10 -2
  93. data/rbi/telnyx/models/unsafe_unwrap_webhook_event.rbi +3 -1
  94. data/rbi/telnyx/models/unwrap_webhook_event.rbi +3 -1
  95. data/rbi/telnyx/models/whatsapp/business_accounts/phone_number_list_response.rbi +213 -0
  96. data/rbi/telnyx/models/whatsapp/phone_number_get_response.rbi +213 -0
  97. data/rbi/telnyx/models/whatsapp/phone_number_list_response.rbi +213 -0
  98. data/rbi/telnyx/models/whatsapp/phone_number_retrieve_phone_number_params.rbi +40 -0
  99. data/rbi/telnyx/models/whatsapp/phone_number_retrieve_phone_number_response.rbi +401 -0
  100. data/rbi/telnyx/models/whatsapp_account_update.rbi +236 -0
  101. data/rbi/telnyx/models/whatsapp_message_echo.rbi +611 -0
  102. data/rbi/telnyx/models/x402/credit_account/payment_list_params.rbi +64 -0
  103. data/rbi/telnyx/models/x402/credit_account/payment_retrieve_params.rbi +42 -0
  104. data/rbi/telnyx/models/x402/credit_account/payment_retrieve_response.rbi +53 -0
  105. data/rbi/telnyx/models/x402/credit_account/x402_transaction_record.rbi +219 -0
  106. data/rbi/telnyx/models.rbi +8 -0
  107. data/rbi/telnyx/resources/ai/assistants/versions.rbi +12 -0
  108. data/rbi/telnyx/resources/ai/assistants.rbi +21 -0
  109. data/rbi/telnyx/resources/ai/openai/chat.rbi +9 -13
  110. data/rbi/telnyx/resources/compute/funcs.rbi +111 -0
  111. data/rbi/telnyx/resources/compute.rbi +15 -0
  112. data/rbi/telnyx/resources/email_messages.rbi +6 -2
  113. data/rbi/telnyx/resources/messaging_profiles.rbi +10 -0
  114. data/rbi/telnyx/resources/webhooks.rbi +6 -2
  115. data/rbi/telnyx/resources/whatsapp/phone_numbers.rbi +18 -0
  116. data/rbi/telnyx/resources/x402/credit_account/payments.rbi +60 -0
  117. data/rbi/telnyx/resources/x402/credit_account.rbi +5 -0
  118. data/sig/telnyx/client.rbs +2 -0
  119. data/sig/telnyx/models/ai/assistant_a2_a_agent.rbs +140 -0
  120. data/sig/telnyx/models/ai/assistant_create_params.rbs +9 -0
  121. data/sig/telnyx/models/ai/assistant_update_params.rbs +9 -0
  122. data/sig/telnyx/models/ai/assistants/update_assistant.rbs +9 -0
  123. data/sig/telnyx/models/ai/chat_completion_request.rbs +86 -44
  124. data/sig/telnyx/models/ai/inference_embedding.rbs +9 -0
  125. data/sig/telnyx/models/ai/telephony_settings.rbs +7 -0
  126. data/sig/telnyx/models/compute/func_retrieve_logs_params.rbs +69 -0
  127. data/sig/telnyx/models/compute/func_retrieve_logs_response.rbs +210 -0
  128. data/sig/telnyx/models/compute/func_retrieve_metric_aggregates_params.rbs +66 -0
  129. data/sig/telnyx/models/compute/func_retrieve_metric_aggregates_response.rbs +149 -0
  130. data/sig/telnyx/models/compute/func_retrieve_revisions_params.rbs +38 -0
  131. data/sig/telnyx/models/compute/func_retrieve_revisions_response.rbs +131 -0
  132. data/sig/telnyx/models/compute/func_retrieve_ship_inspection_params.rbs +22 -0
  133. data/sig/telnyx/models/compute/func_retrieve_ship_inspection_response.rbs +117 -0
  134. data/sig/telnyx/models/compute/functions_observability_pagination_meta.rbs +45 -0
  135. data/sig/telnyx/models/compute/logs_meta.rbs +21 -0
  136. data/sig/telnyx/models/email_inboxes/email_message.rbs +12 -3
  137. data/sig/telnyx/models/email_message_batch_response.rbs +2 -0
  138. data/sig/telnyx/models/messaging_inbound_message_payload.rbs +207 -95
  139. data/sig/telnyx/models/messaging_messaging_profile.rbs +5 -0
  140. data/sig/telnyx/models/messaging_profile_create_params.rbs +5 -0
  141. data/sig/telnyx/models/messaging_profile_features.rbs +15 -0
  142. data/sig/telnyx/models/messaging_profile_update_params.rbs +5 -0
  143. data/sig/telnyx/models/unsafe_unwrap_webhook_event.rbs +2 -0
  144. data/sig/telnyx/models/unwrap_webhook_event.rbs +2 -0
  145. data/sig/telnyx/models/whatsapp/business_accounts/phone_number_list_response.rbs +90 -0
  146. data/sig/telnyx/models/whatsapp/phone_number_get_response.rbs +90 -0
  147. data/sig/telnyx/models/whatsapp/phone_number_list_response.rbs +90 -0
  148. data/sig/telnyx/models/whatsapp/phone_number_retrieve_phone_number_params.rbs +25 -0
  149. data/sig/telnyx/models/whatsapp/phone_number_retrieve_phone_number_response.rbs +201 -0
  150. data/sig/telnyx/models/whatsapp_account_update.rbs +107 -0
  151. data/sig/telnyx/models/whatsapp_message_echo.rbs +291 -0
  152. data/sig/telnyx/models/x402/credit_account/payment_list_params.rbs +36 -0
  153. data/sig/telnyx/models/x402/credit_account/payment_retrieve_params.rbs +27 -0
  154. data/sig/telnyx/models/x402/credit_account/payment_retrieve_response.rbs +26 -0
  155. data/sig/telnyx/models/x402/credit_account/x402_transaction_record.rbs +104 -0
  156. data/sig/telnyx/models.rbs +8 -0
  157. data/sig/telnyx/resources/ai/assistants/versions.rbs +1 -0
  158. data/sig/telnyx/resources/ai/assistants.rbs +2 -0
  159. data/sig/telnyx/resources/ai/openai/chat.rbs +1 -4
  160. data/sig/telnyx/resources/compute/funcs.rbs +41 -0
  161. data/sig/telnyx/resources/compute.rbs +9 -0
  162. data/sig/telnyx/resources/messaging_profiles.rbs +2 -0
  163. data/sig/telnyx/resources/webhooks.rbs +6 -2
  164. data/sig/telnyx/resources/whatsapp/phone_numbers.rbs +5 -0
  165. data/sig/telnyx/resources/x402/credit_account/payments.rbs +22 -0
  166. data/sig/telnyx/resources/x402/credit_account.rbs +2 -0
  167. metadata +71 -2
@@ -39,6 +39,19 @@ module Telnyx
39
39
  sig { params(enabled: T::Boolean).void }
40
40
  attr_writer :enabled
41
41
 
42
+ # Telnyx product features the messaging customer can enable on the messaging
43
+ # profile. Keys map to individual feature flags; unknown keys are accepted and
44
+ # preserved for forward compatibility with rolling deployments.
45
+ sig { returns(T.nilable(Telnyx::MessagingProfileFeatures)) }
46
+ attr_reader :features
47
+
48
+ sig do
49
+ params(
50
+ features: T.nilable(Telnyx::MessagingProfileFeatures::OrHash)
51
+ ).void
52
+ end
53
+ attr_writer :features
54
+
42
55
  # DEPRECATED: health check url service checking
43
56
  sig { returns(T.nilable(String)) }
44
57
  attr_accessor :health_webhook_url
@@ -234,6 +247,7 @@ module Telnyx
234
247
  daily_spend_limit: String,
235
248
  daily_spend_limit_enabled: T::Boolean,
236
249
  enabled: T::Boolean,
250
+ features: T.nilable(Telnyx::MessagingProfileFeatures::OrHash),
237
251
  health_webhook_url: T.nilable(String),
238
252
  mms_fall_back_to_sms: T::Boolean,
239
253
  mms_transcoding: T::Boolean,
@@ -274,6 +288,10 @@ module Telnyx
274
288
  daily_spend_limit_enabled: nil,
275
289
  # Specifies whether the messaging profile is enabled or not.
276
290
  enabled: nil,
291
+ # Telnyx product features the messaging customer can enable on the messaging
292
+ # profile. Keys map to individual feature flags; unknown keys are accepted and
293
+ # preserved for forward compatibility with rolling deployments.
294
+ features: nil,
277
295
  # DEPRECATED: health check url service checking
278
296
  health_webhook_url: nil,
279
297
  # enables SMS fallback for MMS messages.
@@ -348,6 +366,7 @@ module Telnyx
348
366
  daily_spend_limit: String,
349
367
  daily_spend_limit_enabled: T::Boolean,
350
368
  enabled: T::Boolean,
369
+ features: T.nilable(Telnyx::MessagingProfileFeatures),
351
370
  health_webhook_url: T.nilable(String),
352
371
  mms_fall_back_to_sms: T::Boolean,
353
372
  mms_transcoding: T::Boolean,
@@ -52,6 +52,19 @@ module Telnyx
52
52
  sig { params(enabled: T::Boolean).void }
53
53
  attr_writer :enabled
54
54
 
55
+ # Telnyx product features the messaging customer can enable on the messaging
56
+ # profile. Keys map to individual feature flags; unknown keys are accepted and
57
+ # preserved for forward compatibility with rolling deployments.
58
+ sig { returns(T.nilable(Telnyx::MessagingProfileFeatures)) }
59
+ attr_reader :features
60
+
61
+ sig do
62
+ params(
63
+ features: T.nilable(Telnyx::MessagingProfileFeatures::OrHash)
64
+ ).void
65
+ end
66
+ attr_writer :features
67
+
55
68
  # A URL to receive health check webhooks for numbers in this profile.
56
69
  sig { returns(T.nilable(String)) }
57
70
  attr_accessor :health_webhook_url
@@ -160,6 +173,7 @@ module Telnyx
160
173
  daily_spend_limit: String,
161
174
  daily_spend_limit_enabled: T::Boolean,
162
175
  enabled: T::Boolean,
176
+ features: T.nilable(Telnyx::MessagingProfileFeatures::OrHash),
163
177
  health_webhook_url: T.nilable(String),
164
178
  mms_fall_back_to_sms: T::Boolean,
165
179
  mms_transcoding: T::Boolean,
@@ -195,6 +209,10 @@ module Telnyx
195
209
  daily_spend_limit_enabled: nil,
196
210
  # Specifies whether the messaging profile is enabled or not.
197
211
  enabled: nil,
212
+ # Telnyx product features the messaging customer can enable on the messaging
213
+ # profile. Keys map to individual feature flags; unknown keys are accepted and
214
+ # preserved for forward compatibility with rolling deployments.
215
+ features: nil,
198
216
  # A URL to receive health check webhooks for numbers in this profile.
199
217
  health_webhook_url: nil,
200
218
  # enables SMS fallback for MMS messages.
@@ -245,6 +263,7 @@ module Telnyx
245
263
  daily_spend_limit: String,
246
264
  daily_spend_limit_enabled: T::Boolean,
247
265
  enabled: T::Boolean,
266
+ features: T.nilable(Telnyx::MessagingProfileFeatures),
248
267
  health_webhook_url: T.nilable(String),
249
268
  mms_fall_back_to_sms: T::Boolean,
250
269
  mms_transcoding: T::Boolean,
@@ -0,0 +1,43 @@
1
+ # typed: strong
2
+
3
+ module Telnyx
4
+ module Models
5
+ class MessagingProfileFeatures < Telnyx::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(Telnyx::MessagingProfileFeatures, Telnyx::Internal::AnyHash)
9
+ end
10
+
11
+ # Enables AI detection of inbound opt-out messages that do not follow the standard
12
+ # STOP/UNSTOP/HELP opt-out keyword pattern. When enabled, the messaging platform
13
+ # applies an AI model to identify non-standard opt-out requests (e.g.
14
+ # natural-language phrases) and treats them as opt-outs.
15
+ sig { returns(T.nilable(T::Boolean)) }
16
+ attr_reader :ai_opt_out_detection_enabled
17
+
18
+ sig { params(ai_opt_out_detection_enabled: T::Boolean).void }
19
+ attr_writer :ai_opt_out_detection_enabled
20
+
21
+ # Telnyx product features the messaging customer can enable on the messaging
22
+ # profile. Keys map to individual feature flags; unknown keys are accepted and
23
+ # preserved for forward compatibility with rolling deployments.
24
+ sig do
25
+ params(ai_opt_out_detection_enabled: T::Boolean).returns(
26
+ T.attached_class
27
+ )
28
+ end
29
+ def self.new(
30
+ # Enables AI detection of inbound opt-out messages that do not follow the standard
31
+ # STOP/UNSTOP/HELP opt-out keyword pattern. When enabled, the messaging platform
32
+ # applies an AI model to identify non-standard opt-out requests (e.g.
33
+ # natural-language phrases) and treats them as opt-outs.
34
+ ai_opt_out_detection_enabled: nil
35
+ )
36
+ end
37
+
38
+ sig { override.returns({ ai_opt_out_detection_enabled: T::Boolean }) }
39
+ def to_hash
40
+ end
41
+ end
42
+ end
43
+ end
@@ -45,6 +45,19 @@ module Telnyx
45
45
  sig { params(enabled: T::Boolean).void }
46
46
  attr_writer :enabled
47
47
 
48
+ # Telnyx product features the messaging customer can enable on the messaging
49
+ # profile. Keys map to individual feature flags; unknown keys are accepted and
50
+ # preserved for forward compatibility with rolling deployments.
51
+ sig { returns(T.nilable(Telnyx::MessagingProfileFeatures)) }
52
+ attr_reader :features
53
+
54
+ sig do
55
+ params(
56
+ features: T.nilable(Telnyx::MessagingProfileFeatures::OrHash)
57
+ ).void
58
+ end
59
+ attr_writer :features
60
+
48
61
  # enables SMS fallback for MMS messages.
49
62
  sig { returns(T.nilable(T::Boolean)) }
50
63
  attr_reader :mms_fall_back_to_sms
@@ -188,6 +201,7 @@ module Telnyx
188
201
  daily_spend_limit: String,
189
202
  daily_spend_limit_enabled: T::Boolean,
190
203
  enabled: T::Boolean,
204
+ features: T.nilable(Telnyx::MessagingProfileFeatures::OrHash),
191
205
  mms_fall_back_to_sms: T::Boolean,
192
206
  mms_transcoding: T::Boolean,
193
207
  mobile_only: T::Boolean,
@@ -221,6 +235,10 @@ module Telnyx
221
235
  daily_spend_limit_enabled: nil,
222
236
  # Specifies whether the messaging profile is enabled or not.
223
237
  enabled: nil,
238
+ # Telnyx product features the messaging customer can enable on the messaging
239
+ # profile. Keys map to individual feature flags; unknown keys are accepted and
240
+ # preserved for forward compatibility with rolling deployments.
241
+ features: nil,
224
242
  # enables SMS fallback for MMS messages.
225
243
  mms_fall_back_to_sms: nil,
226
244
  # enables automated resizing of MMS media.
@@ -285,6 +303,7 @@ module Telnyx
285
303
  daily_spend_limit: String,
286
304
  daily_spend_limit_enabled: T::Boolean,
287
305
  enabled: T::Boolean,
306
+ features: T.nilable(Telnyx::MessagingProfileFeatures),
288
307
  mms_fall_back_to_sms: T::Boolean,
289
308
  mms_transcoding: T::Boolean,
290
309
  mobile_only: T::Boolean,
@@ -217,7 +217,10 @@ module Telnyx
217
217
  attr_writer :outbound
218
218
 
219
219
  # The password to be used as part of the credentials. Must be 8 to 128 characters
220
- # long.
220
+ # long. For primary accounts created on or after September 8, 2026, this password
221
+ # is returned as `********`. The password is returned in full on create, and on
222
+ # update only when that update changed the password. Accounts created before
223
+ # September 8, 2026 are unaffected.
221
224
  sig { returns(T.nilable(String)) }
222
225
  attr_reader :password
223
226
 
@@ -440,7 +443,10 @@ module Telnyx
440
443
  onnet_t38_passthrough_enabled: nil,
441
444
  outbound: nil,
442
445
  # The password to be used as part of the credentials. Must be 8 to 128 characters
443
- # long.
446
+ # long. For primary accounts created on or after September 8, 2026, this password
447
+ # is returned as `********`. The password is returned in full on create, and on
448
+ # update only when that update changed the password. Accounts created before
449
+ # September 8, 2026 are unaffected.
444
450
  password: nil,
445
451
  # Identifies the type of the resource.
446
452
  record_type: nil,
@@ -28,7 +28,11 @@ module Telnyx
28
28
  sig { returns(T.nilable(String)) }
29
29
  attr_accessor :outbound_proxy
30
30
 
31
- # The SIP password used for digest authentication with the external SIP peer.
31
+ # The SIP password used for digest authentication with the external SIP peer. For
32
+ # primary accounts created on or after September 8, 2026, this password is
33
+ # returned as `********`. The password is returned in full on create, and on
34
+ # update only when that update changed the password. Accounts created before
35
+ # September 8, 2026 are unaffected.
32
36
  sig { returns(T.nilable(String)) }
33
37
  attr_reader :password
34
38
 
@@ -93,7 +97,11 @@ module Telnyx
93
97
  # An optional SIP proxy used to route outbound requests before reaching the
94
98
  # external SIP peer.
95
99
  outbound_proxy: nil,
96
- # The SIP password used for digest authentication with the external SIP peer.
100
+ # The SIP password used for digest authentication with the external SIP peer. For
101
+ # primary accounts created on or after September 8, 2026, this password is
102
+ # returned as `********`. The password is returned in full on create, and on
103
+ # update only when that update changed the password. Accounts created before
104
+ # September 8, 2026 are unaffected.
97
105
  password: nil,
98
106
  # The SIP proxy address of the external SIP peer used for registrations and
99
107
  # outbound call routing.
@@ -80,7 +80,9 @@ module Telnyx
80
80
  Telnyx::ReplacedLinkClickWebhookEvent,
81
81
  Telnyx::SessionStatusChangedWebhookEvent,
82
82
  Telnyx::TranscriptCompletedWebhookEvent,
83
- Telnyx::TranscriptionWebhookEvent
83
+ Telnyx::TranscriptionWebhookEvent,
84
+ Telnyx::WhatsappAccountUpdate,
85
+ Telnyx::WhatsappMessageEcho
84
86
  )
85
87
  end
86
88
 
@@ -80,7 +80,9 @@ module Telnyx
80
80
  Telnyx::ReplacedLinkClickWebhookEvent,
81
81
  Telnyx::SessionStatusChangedWebhookEvent,
82
82
  Telnyx::TranscriptCompletedWebhookEvent,
83
- Telnyx::TranscriptionWebhookEvent
83
+ Telnyx::TranscriptionWebhookEvent,
84
+ Telnyx::WhatsappAccountUpdate,
85
+ Telnyx::WhatsappMessageEcho
84
86
  )
85
87
  end
86
88
 
@@ -19,6 +19,17 @@ module Telnyx
19
19
  sig { params(calling_enabled: T::Boolean).void }
20
20
  attr_writer :calling_enabled
21
21
 
22
+ # Current lifecycle state for a coexistence number. This is null for a standard
23
+ # Cloud API number.
24
+ sig do
25
+ returns(
26
+ T.nilable(
27
+ Telnyx::Models::Whatsapp::BusinessAccounts::PhoneNumberListResponse::CoexistenceState::TaggedSymbol
28
+ )
29
+ )
30
+ end
31
+ attr_accessor :coexistence_state
32
+
22
33
  sig { returns(T.nilable(Time)) }
23
34
  attr_reader :created_at
24
35
 
@@ -37,6 +48,14 @@ module Telnyx
37
48
  sig { params(enabled: T::Boolean).void }
38
49
  attr_writer :enabled
39
50
 
51
+ # Indicates whether the number is connected to both the WhatsApp Business app and
52
+ # Cloud API through WhatsApp Coexistence.
53
+ sig { returns(T.nilable(T::Boolean)) }
54
+ attr_reader :is_on_biz_app
55
+
56
+ sig { params(is_on_biz_app: T::Boolean).void }
57
+ attr_writer :is_on_biz_app
58
+
40
59
  # Phone number in E164 format
41
60
  sig { returns(T.nilable(String)) }
42
61
  attr_reader :phone_number
@@ -70,6 +89,32 @@ module Telnyx
70
89
  sig { params(status: String).void }
71
90
  attr_writer :status
72
91
 
92
+ # Deadline for initiating the current coexistence synchronization cycle. This is
93
+ # null when no deadline applies.
94
+ sig { returns(T.nilable(Time)) }
95
+ attr_accessor :sync_deadline
96
+
97
+ # Synchronization progress. This object is returned only while a coexistence
98
+ # number is synchronizing.
99
+ sig do
100
+ returns(
101
+ T.nilable(
102
+ Telnyx::Models::Whatsapp::BusinessAccounts::PhoneNumberListResponse::SyncProgress
103
+ )
104
+ )
105
+ end
106
+ attr_reader :sync_progress
107
+
108
+ sig do
109
+ params(
110
+ sync_progress:
111
+ T.nilable(
112
+ Telnyx::Models::Whatsapp::BusinessAccounts::PhoneNumberListResponse::SyncProgress::OrHash
113
+ )
114
+ ).void
115
+ end
116
+ attr_writer :sync_progress
117
+
73
118
  # User ID
74
119
  sig { returns(T.nilable(String)) }
75
120
  attr_reader :user_id
@@ -87,23 +132,39 @@ module Telnyx
87
132
  sig do
88
133
  params(
89
134
  calling_enabled: T::Boolean,
135
+ coexistence_state:
136
+ T.nilable(
137
+ Telnyx::Models::Whatsapp::BusinessAccounts::PhoneNumberListResponse::CoexistenceState::OrSymbol
138
+ ),
90
139
  created_at: Time,
91
140
  display_name: String,
92
141
  enabled: T::Boolean,
142
+ is_on_biz_app: T::Boolean,
93
143
  phone_number: String,
94
144
  phone_number_id: String,
95
145
  quality_rating: String,
96
146
  record_type: String,
97
147
  status: String,
148
+ sync_deadline: T.nilable(Time),
149
+ sync_progress:
150
+ T.nilable(
151
+ Telnyx::Models::Whatsapp::BusinessAccounts::PhoneNumberListResponse::SyncProgress::OrHash
152
+ ),
98
153
  user_id: String,
99
154
  waba_id: String
100
155
  ).returns(T.attached_class)
101
156
  end
102
157
  def self.new(
103
158
  calling_enabled: nil,
159
+ # Current lifecycle state for a coexistence number. This is null for a standard
160
+ # Cloud API number.
161
+ coexistence_state: nil,
104
162
  created_at: nil,
105
163
  display_name: nil,
106
164
  enabled: nil,
165
+ # Indicates whether the number is connected to both the WhatsApp Business app and
166
+ # Cloud API through WhatsApp Coexistence.
167
+ is_on_biz_app: nil,
107
168
  # Phone number in E164 format
108
169
  phone_number: nil,
109
170
  # Whatsapp phone number ID
@@ -112,6 +173,12 @@ module Telnyx
112
173
  quality_rating: nil,
113
174
  record_type: nil,
114
175
  status: nil,
176
+ # Deadline for initiating the current coexistence synchronization cycle. This is
177
+ # null when no deadline applies.
178
+ sync_deadline: nil,
179
+ # Synchronization progress. This object is returned only while a coexistence
180
+ # number is synchronizing.
181
+ sync_progress: nil,
115
182
  # User ID
116
183
  user_id: nil,
117
184
  # WABA ID of Whatsapp business account
@@ -123,14 +190,24 @@ module Telnyx
123
190
  override.returns(
124
191
  {
125
192
  calling_enabled: T::Boolean,
193
+ coexistence_state:
194
+ T.nilable(
195
+ Telnyx::Models::Whatsapp::BusinessAccounts::PhoneNumberListResponse::CoexistenceState::TaggedSymbol
196
+ ),
126
197
  created_at: Time,
127
198
  display_name: String,
128
199
  enabled: T::Boolean,
200
+ is_on_biz_app: T::Boolean,
129
201
  phone_number: String,
130
202
  phone_number_id: String,
131
203
  quality_rating: String,
132
204
  record_type: String,
133
205
  status: String,
206
+ sync_deadline: T.nilable(Time),
207
+ sync_progress:
208
+ T.nilable(
209
+ Telnyx::Models::Whatsapp::BusinessAccounts::PhoneNumberListResponse::SyncProgress
210
+ ),
134
211
  user_id: String,
135
212
  waba_id: String
136
213
  }
@@ -138,6 +215,142 @@ module Telnyx
138
215
  end
139
216
  def to_hash
140
217
  end
218
+
219
+ # Current lifecycle state for a coexistence number. This is null for a standard
220
+ # Cloud API number.
221
+ module CoexistenceState
222
+ extend Telnyx::Internal::Type::Enum
223
+
224
+ TaggedSymbol =
225
+ T.type_alias do
226
+ T.all(
227
+ Symbol,
228
+ Telnyx::Models::Whatsapp::BusinessAccounts::PhoneNumberListResponse::CoexistenceState
229
+ )
230
+ end
231
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
232
+
233
+ PENDING_ONBOARDING =
234
+ T.let(
235
+ :pending_onboarding,
236
+ Telnyx::Models::Whatsapp::BusinessAccounts::PhoneNumberListResponse::CoexistenceState::TaggedSymbol
237
+ )
238
+ SYNC_PENDING =
239
+ T.let(
240
+ :sync_pending,
241
+ Telnyx::Models::Whatsapp::BusinessAccounts::PhoneNumberListResponse::CoexistenceState::TaggedSymbol
242
+ )
243
+ SYNCING =
244
+ T.let(
245
+ :syncing,
246
+ Telnyx::Models::Whatsapp::BusinessAccounts::PhoneNumberListResponse::CoexistenceState::TaggedSymbol
247
+ )
248
+ SYNC_COMPLETE =
249
+ T.let(
250
+ :sync_complete,
251
+ Telnyx::Models::Whatsapp::BusinessAccounts::PhoneNumberListResponse::CoexistenceState::TaggedSymbol
252
+ )
253
+ ACTIVE =
254
+ T.let(
255
+ :active,
256
+ Telnyx::Models::Whatsapp::BusinessAccounts::PhoneNumberListResponse::CoexistenceState::TaggedSymbol
257
+ )
258
+ HISTORY_DECLINED =
259
+ T.let(
260
+ :history_declined,
261
+ Telnyx::Models::Whatsapp::BusinessAccounts::PhoneNumberListResponse::CoexistenceState::TaggedSymbol
262
+ )
263
+ SYNC_DEADLINE_EXPIRED =
264
+ T.let(
265
+ :sync_deadline_expired,
266
+ Telnyx::Models::Whatsapp::BusinessAccounts::PhoneNumberListResponse::CoexistenceState::TaggedSymbol
267
+ )
268
+ OFFBOARDED =
269
+ T.let(
270
+ :offboarded,
271
+ Telnyx::Models::Whatsapp::BusinessAccounts::PhoneNumberListResponse::CoexistenceState::TaggedSymbol
272
+ )
273
+ DISCONNECTED =
274
+ T.let(
275
+ :disconnected,
276
+ Telnyx::Models::Whatsapp::BusinessAccounts::PhoneNumberListResponse::CoexistenceState::TaggedSymbol
277
+ )
278
+
279
+ sig do
280
+ override.returns(
281
+ T::Array[
282
+ Telnyx::Models::Whatsapp::BusinessAccounts::PhoneNumberListResponse::CoexistenceState::TaggedSymbol
283
+ ]
284
+ )
285
+ end
286
+ def self.values
287
+ end
288
+ end
289
+
290
+ class SyncProgress < Telnyx::Internal::Type::BaseModel
291
+ OrHash =
292
+ T.type_alias do
293
+ T.any(
294
+ Telnyx::Models::Whatsapp::BusinessAccounts::PhoneNumberListResponse::SyncProgress,
295
+ Telnyx::Internal::AnyHash
296
+ )
297
+ end
298
+
299
+ sig { returns(T.nilable(String)) }
300
+ attr_reader :contacts_status
301
+
302
+ sig { params(contacts_status: String).void }
303
+ attr_writer :contacts_status
304
+
305
+ sig { returns(T.nilable(Integer)) }
306
+ attr_accessor :history_chunk_order
307
+
308
+ sig { returns(T.nilable(Integer)) }
309
+ attr_accessor :history_phase
310
+
311
+ sig { returns(T.nilable(Integer)) }
312
+ attr_accessor :history_progress
313
+
314
+ sig { returns(T.nilable(String)) }
315
+ attr_reader :history_status
316
+
317
+ sig { params(history_status: String).void }
318
+ attr_writer :history_status
319
+
320
+ # Synchronization progress. This object is returned only while a coexistence
321
+ # number is synchronizing.
322
+ sig do
323
+ params(
324
+ contacts_status: String,
325
+ history_chunk_order: T.nilable(Integer),
326
+ history_phase: T.nilable(Integer),
327
+ history_progress: T.nilable(Integer),
328
+ history_status: String
329
+ ).returns(T.attached_class)
330
+ end
331
+ def self.new(
332
+ contacts_status: nil,
333
+ history_chunk_order: nil,
334
+ history_phase: nil,
335
+ history_progress: nil,
336
+ history_status: nil
337
+ )
338
+ end
339
+
340
+ sig do
341
+ override.returns(
342
+ {
343
+ contacts_status: String,
344
+ history_chunk_order: T.nilable(Integer),
345
+ history_phase: T.nilable(Integer),
346
+ history_progress: T.nilable(Integer),
347
+ history_status: String
348
+ }
349
+ )
350
+ end
351
+ def to_hash
352
+ end
353
+ end
141
354
  end
142
355
  end
143
356
  end