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
@@ -0,0 +1,463 @@
1
+ # typed: strong
2
+
3
+ module Telnyx
4
+ module Models
5
+ class MessagingMessagingProfile < Telnyx::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(Telnyx::MessagingMessagingProfile, Telnyx::Internal::AnyHash)
9
+ end
10
+
11
+ # The AI assistant ID associated with this messaging profile.
12
+ sig { returns(T.nilable(String)) }
13
+ attr_accessor :ai_assistant_id
14
+
15
+ # The alphanumeric sender ID to use when sending to destinations that require an
16
+ # alphanumeric sender ID.
17
+ sig { returns(T.nilable(String)) }
18
+ attr_accessor :alpha_sender
19
+
20
+ # The maximum amount of money (in USD) that can be spent by this profile before
21
+ # midnight UTC.
22
+ sig { returns(T.nilable(String)) }
23
+ attr_reader :daily_spend_limit
24
+
25
+ sig { params(daily_spend_limit: String).void }
26
+ attr_writer :daily_spend_limit
27
+
28
+ # Whether to enforce the value configured by `daily_spend_limit`.
29
+ sig { returns(T.nilable(T::Boolean)) }
30
+ attr_reader :daily_spend_limit_enabled
31
+
32
+ sig { params(daily_spend_limit_enabled: T::Boolean).void }
33
+ attr_writer :daily_spend_limit_enabled
34
+
35
+ # Specifies whether the messaging profile is enabled or not.
36
+ sig { returns(T.nilable(T::Boolean)) }
37
+ attr_reader :enabled
38
+
39
+ sig { params(enabled: T::Boolean).void }
40
+ attr_writer :enabled
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
+
55
+ # DEPRECATED: health check url service checking
56
+ sig { returns(T.nilable(String)) }
57
+ attr_accessor :health_webhook_url
58
+
59
+ # enables SMS fallback for MMS messages.
60
+ sig { returns(T.nilable(T::Boolean)) }
61
+ attr_reader :mms_fall_back_to_sms
62
+
63
+ sig { params(mms_fall_back_to_sms: T::Boolean).void }
64
+ attr_writer :mms_fall_back_to_sms
65
+
66
+ # enables automated resizing of MMS media.
67
+ sig { returns(T.nilable(T::Boolean)) }
68
+ attr_reader :mms_transcoding
69
+
70
+ sig { params(mms_transcoding: T::Boolean).void }
71
+ attr_writer :mms_transcoding
72
+
73
+ # Send messages only to mobile phone numbers.
74
+ sig { returns(T.nilable(T::Boolean)) }
75
+ attr_reader :mobile_only
76
+
77
+ sig { params(mobile_only: T::Boolean).void }
78
+ attr_writer :mobile_only
79
+
80
+ # A user friendly name for the messaging profile.
81
+ sig { returns(T.nilable(String)) }
82
+ attr_reader :name
83
+
84
+ sig { params(name: String).void }
85
+ attr_writer :name
86
+
87
+ # Number Pool allows you to send messages from a pool of numbers of different
88
+ # types, assigning weights to each type. The pool consists of all the long code
89
+ # and toll free numbers assigned to the messaging profile.
90
+ #
91
+ # To disable this feature, set the object field to `null`.
92
+ sig { returns(T.nilable(Telnyx::NumberPoolSettings)) }
93
+ attr_reader :number_pool_settings
94
+
95
+ sig do
96
+ params(
97
+ number_pool_settings: T.nilable(Telnyx::NumberPoolSettings::OrHash)
98
+ ).void
99
+ end
100
+ attr_writer :number_pool_settings
101
+
102
+ # The organization that owns this messaging profile.
103
+ sig { returns(T.nilable(String)) }
104
+ attr_reader :organization_id
105
+
106
+ sig { params(organization_id: String).void }
107
+ attr_writer :organization_id
108
+
109
+ # Indicates whether message content redaction is enabled for this profile. When
110
+ # enabled, message text, MMS media, and the counterparty phone number are redacted
111
+ # in message records and reporting. Requires organization activation — contact
112
+ # support to enable. The field is only present in responses for organizations with
113
+ # redaction access.
114
+ sig { returns(T.nilable(T::Boolean)) }
115
+ attr_reader :redaction_enabled
116
+
117
+ sig { params(redaction_enabled: T::Boolean).void }
118
+ attr_writer :redaction_enabled
119
+
120
+ # Determines how much information is redacted for privacy or compliance purposes.
121
+ # Level 1: message records and reporting are redacted, but inbound webhook
122
+ # payloads are not. Level 2 (default): message records, reporting, and inbound
123
+ # webhook payloads are all redacted.
124
+ sig { returns(T.nilable(Integer)) }
125
+ attr_reader :redaction_level
126
+
127
+ sig { params(redaction_level: Integer).void }
128
+ attr_writer :redaction_level
129
+
130
+ # The resource group ID associated with this messaging profile.
131
+ sig { returns(T.nilable(String)) }
132
+ attr_accessor :resource_group_id
133
+
134
+ # Enables automatic character encoding optimization for SMS messages. When
135
+ # enabled, the system automatically selects the most efficient encoding (GSM-7 or
136
+ # UCS-2) based on message content to maximize character limits and minimize costs.
137
+ sig { returns(T.nilable(T::Boolean)) }
138
+ attr_reader :smart_encoding
139
+
140
+ sig { params(smart_encoding: T::Boolean).void }
141
+ attr_writer :smart_encoding
142
+
143
+ # The URL shortener feature allows automatic replacement of URLs that were
144
+ # generated using a public URL shortener service. Some examples include bit.do,
145
+ # bit.ly, goo.gl, ht.ly, is.gd, ow.ly, rebrand.ly, t.co, tiny.cc, and tinyurl.com.
146
+ # Such URLs are replaced with with links generated by Telnyx. The use of custom
147
+ # links can improve branding and message deliverability.
148
+ #
149
+ # To disable this feature, set the object field to `null`.
150
+ sig { returns(T.nilable(Telnyx::URLShortenerSettings)) }
151
+ attr_reader :url_shortener_settings
152
+
153
+ sig do
154
+ params(
155
+ url_shortener_settings:
156
+ T.nilable(Telnyx::URLShortenerSettings::OrHash)
157
+ ).void
158
+ end
159
+ attr_writer :url_shortener_settings
160
+
161
+ # Secret used to authenticate with v1 endpoints.
162
+ sig { returns(T.nilable(String)) }
163
+ attr_reader :v1_secret
164
+
165
+ sig { params(v1_secret: String).void }
166
+ attr_writer :v1_secret
167
+
168
+ # Determines which webhook format will be used, Telnyx API v1, v2, or a legacy
169
+ # 2010-04-01 format.
170
+ sig do
171
+ returns(
172
+ T.nilable(
173
+ Telnyx::MessagingMessagingProfile::WebhookAPIVersion::TaggedSymbol
174
+ )
175
+ )
176
+ end
177
+ attr_reader :webhook_api_version
178
+
179
+ sig do
180
+ params(
181
+ webhook_api_version:
182
+ Telnyx::MessagingMessagingProfile::WebhookAPIVersion::OrSymbol
183
+ ).void
184
+ end
185
+ attr_writer :webhook_api_version
186
+
187
+ # The failover URL where webhooks related to this messaging profile will be sent
188
+ # if sending to the primary URL fails.
189
+ sig { returns(T.nilable(String)) }
190
+ attr_accessor :webhook_failover_url
191
+
192
+ # The URL where webhooks related to this messaging profile will be sent.
193
+ sig { returns(T.nilable(String)) }
194
+ attr_accessor :webhook_url
195
+
196
+ # Destinations to which the messaging profile is allowed to send. The elements in
197
+ # the list must be valid ISO 3166-1 alpha-2 country codes. If set to `["*"]`, all
198
+ # destinations will be allowed.
199
+ sig { returns(T.nilable(T::Array[String])) }
200
+ attr_reader :whitelisted_destinations
201
+
202
+ sig { params(whitelisted_destinations: T::Array[String]).void }
203
+ attr_writer :whitelisted_destinations
204
+
205
+ # Identifies the type of resource.
206
+ sig { returns(T.nilable(String)) }
207
+ attr_reader :id
208
+
209
+ sig { params(id: String).void }
210
+ attr_writer :id
211
+
212
+ # ISO 8601 formatted date indicating when the resource was created.
213
+ sig { returns(T.nilable(Time)) }
214
+ attr_reader :created_at
215
+
216
+ sig { params(created_at: Time).void }
217
+ attr_writer :created_at
218
+
219
+ # Identifies the type of the resource.
220
+ sig do
221
+ returns(
222
+ T.nilable(Telnyx::MessagingMessagingProfile::RecordType::TaggedSymbol)
223
+ )
224
+ end
225
+ attr_reader :record_type
226
+
227
+ sig do
228
+ params(
229
+ record_type: Telnyx::MessagingMessagingProfile::RecordType::OrSymbol
230
+ ).void
231
+ end
232
+ attr_writer :record_type
233
+
234
+ # ISO 8601 formatted date indicating when the resource was updated.
235
+ sig { returns(T.nilable(Time)) }
236
+ attr_reader :updated_at
237
+
238
+ sig { params(updated_at: Time).void }
239
+ attr_writer :updated_at
240
+
241
+ sig do
242
+ params(
243
+ id: String,
244
+ ai_assistant_id: T.nilable(String),
245
+ alpha_sender: T.nilable(String),
246
+ created_at: Time,
247
+ daily_spend_limit: String,
248
+ daily_spend_limit_enabled: T::Boolean,
249
+ enabled: T::Boolean,
250
+ features: T.nilable(Telnyx::MessagingProfileFeatures::OrHash),
251
+ health_webhook_url: T.nilable(String),
252
+ mms_fall_back_to_sms: T::Boolean,
253
+ mms_transcoding: T::Boolean,
254
+ mobile_only: T::Boolean,
255
+ name: String,
256
+ number_pool_settings: T.nilable(Telnyx::NumberPoolSettings::OrHash),
257
+ organization_id: String,
258
+ record_type: Telnyx::MessagingMessagingProfile::RecordType::OrSymbol,
259
+ redaction_enabled: T::Boolean,
260
+ redaction_level: Integer,
261
+ resource_group_id: T.nilable(String),
262
+ smart_encoding: T::Boolean,
263
+ updated_at: Time,
264
+ url_shortener_settings:
265
+ T.nilable(Telnyx::URLShortenerSettings::OrHash),
266
+ v1_secret: String,
267
+ webhook_api_version:
268
+ Telnyx::MessagingMessagingProfile::WebhookAPIVersion::OrSymbol,
269
+ webhook_failover_url: T.nilable(String),
270
+ webhook_url: T.nilable(String),
271
+ whitelisted_destinations: T::Array[String]
272
+ ).returns(T.attached_class)
273
+ end
274
+ def self.new(
275
+ # Identifies the type of resource.
276
+ id: nil,
277
+ # The AI assistant ID associated with this messaging profile.
278
+ ai_assistant_id: nil,
279
+ # The alphanumeric sender ID to use when sending to destinations that require an
280
+ # alphanumeric sender ID.
281
+ alpha_sender: nil,
282
+ # ISO 8601 formatted date indicating when the resource was created.
283
+ created_at: nil,
284
+ # The maximum amount of money (in USD) that can be spent by this profile before
285
+ # midnight UTC.
286
+ daily_spend_limit: nil,
287
+ # Whether to enforce the value configured by `daily_spend_limit`.
288
+ daily_spend_limit_enabled: nil,
289
+ # Specifies whether the messaging profile is enabled or not.
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,
295
+ # DEPRECATED: health check url service checking
296
+ health_webhook_url: nil,
297
+ # enables SMS fallback for MMS messages.
298
+ mms_fall_back_to_sms: nil,
299
+ # enables automated resizing of MMS media.
300
+ mms_transcoding: nil,
301
+ # Send messages only to mobile phone numbers.
302
+ mobile_only: nil,
303
+ # A user friendly name for the messaging profile.
304
+ name: nil,
305
+ # Number Pool allows you to send messages from a pool of numbers of different
306
+ # types, assigning weights to each type. The pool consists of all the long code
307
+ # and toll free numbers assigned to the messaging profile.
308
+ #
309
+ # To disable this feature, set the object field to `null`.
310
+ number_pool_settings: nil,
311
+ # The organization that owns this messaging profile.
312
+ organization_id: nil,
313
+ # Identifies the type of the resource.
314
+ record_type: nil,
315
+ # Indicates whether message content redaction is enabled for this profile. When
316
+ # enabled, message text, MMS media, and the counterparty phone number are redacted
317
+ # in message records and reporting. Requires organization activation — contact
318
+ # support to enable. The field is only present in responses for organizations with
319
+ # redaction access.
320
+ redaction_enabled: nil,
321
+ # Determines how much information is redacted for privacy or compliance purposes.
322
+ # Level 1: message records and reporting are redacted, but inbound webhook
323
+ # payloads are not. Level 2 (default): message records, reporting, and inbound
324
+ # webhook payloads are all redacted.
325
+ redaction_level: nil,
326
+ # The resource group ID associated with this messaging profile.
327
+ resource_group_id: nil,
328
+ # Enables automatic character encoding optimization for SMS messages. When
329
+ # enabled, the system automatically selects the most efficient encoding (GSM-7 or
330
+ # UCS-2) based on message content to maximize character limits and minimize costs.
331
+ smart_encoding: nil,
332
+ # ISO 8601 formatted date indicating when the resource was updated.
333
+ updated_at: nil,
334
+ # The URL shortener feature allows automatic replacement of URLs that were
335
+ # generated using a public URL shortener service. Some examples include bit.do,
336
+ # bit.ly, goo.gl, ht.ly, is.gd, ow.ly, rebrand.ly, t.co, tiny.cc, and tinyurl.com.
337
+ # Such URLs are replaced with with links generated by Telnyx. The use of custom
338
+ # links can improve branding and message deliverability.
339
+ #
340
+ # To disable this feature, set the object field to `null`.
341
+ url_shortener_settings: nil,
342
+ # Secret used to authenticate with v1 endpoints.
343
+ v1_secret: nil,
344
+ # Determines which webhook format will be used, Telnyx API v1, v2, or a legacy
345
+ # 2010-04-01 format.
346
+ webhook_api_version: nil,
347
+ # The failover URL where webhooks related to this messaging profile will be sent
348
+ # if sending to the primary URL fails.
349
+ webhook_failover_url: nil,
350
+ # The URL where webhooks related to this messaging profile will be sent.
351
+ webhook_url: nil,
352
+ # Destinations to which the messaging profile is allowed to send. The elements in
353
+ # the list must be valid ISO 3166-1 alpha-2 country codes. If set to `["*"]`, all
354
+ # destinations will be allowed.
355
+ whitelisted_destinations: nil
356
+ )
357
+ end
358
+
359
+ sig do
360
+ override.returns(
361
+ {
362
+ id: String,
363
+ ai_assistant_id: T.nilable(String),
364
+ alpha_sender: T.nilable(String),
365
+ created_at: Time,
366
+ daily_spend_limit: String,
367
+ daily_spend_limit_enabled: T::Boolean,
368
+ enabled: T::Boolean,
369
+ features: T.nilable(Telnyx::MessagingProfileFeatures),
370
+ health_webhook_url: T.nilable(String),
371
+ mms_fall_back_to_sms: T::Boolean,
372
+ mms_transcoding: T::Boolean,
373
+ mobile_only: T::Boolean,
374
+ name: String,
375
+ number_pool_settings: T.nilable(Telnyx::NumberPoolSettings),
376
+ organization_id: String,
377
+ record_type:
378
+ Telnyx::MessagingMessagingProfile::RecordType::TaggedSymbol,
379
+ redaction_enabled: T::Boolean,
380
+ redaction_level: Integer,
381
+ resource_group_id: T.nilable(String),
382
+ smart_encoding: T::Boolean,
383
+ updated_at: Time,
384
+ url_shortener_settings: T.nilable(Telnyx::URLShortenerSettings),
385
+ v1_secret: String,
386
+ webhook_api_version:
387
+ Telnyx::MessagingMessagingProfile::WebhookAPIVersion::TaggedSymbol,
388
+ webhook_failover_url: T.nilable(String),
389
+ webhook_url: T.nilable(String),
390
+ whitelisted_destinations: T::Array[String]
391
+ }
392
+ )
393
+ end
394
+ def to_hash
395
+ end
396
+
397
+ # Identifies the type of the resource.
398
+ module RecordType
399
+ extend Telnyx::Internal::Type::Enum
400
+
401
+ TaggedSymbol =
402
+ T.type_alias do
403
+ T.all(Symbol, Telnyx::MessagingMessagingProfile::RecordType)
404
+ end
405
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
406
+
407
+ MESSAGING_PROFILE =
408
+ T.let(
409
+ :messaging_profile,
410
+ Telnyx::MessagingMessagingProfile::RecordType::TaggedSymbol
411
+ )
412
+
413
+ sig do
414
+ override.returns(
415
+ T::Array[
416
+ Telnyx::MessagingMessagingProfile::RecordType::TaggedSymbol
417
+ ]
418
+ )
419
+ end
420
+ def self.values
421
+ end
422
+ end
423
+
424
+ # Determines which webhook format will be used, Telnyx API v1, v2, or a legacy
425
+ # 2010-04-01 format.
426
+ module WebhookAPIVersion
427
+ extend Telnyx::Internal::Type::Enum
428
+
429
+ TaggedSymbol =
430
+ T.type_alias do
431
+ T.all(Symbol, Telnyx::MessagingMessagingProfile::WebhookAPIVersion)
432
+ end
433
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
434
+
435
+ V1 =
436
+ T.let(
437
+ :"1",
438
+ Telnyx::MessagingMessagingProfile::WebhookAPIVersion::TaggedSymbol
439
+ )
440
+ V2 =
441
+ T.let(
442
+ :"2",
443
+ Telnyx::MessagingMessagingProfile::WebhookAPIVersion::TaggedSymbol
444
+ )
445
+ V2010_04_01 =
446
+ T.let(
447
+ :"2010-04-01",
448
+ Telnyx::MessagingMessagingProfile::WebhookAPIVersion::TaggedSymbol
449
+ )
450
+
451
+ sig do
452
+ override.returns(
453
+ T::Array[
454
+ Telnyx::MessagingMessagingProfile::WebhookAPIVersion::TaggedSymbol
455
+ ]
456
+ )
457
+ end
458
+ def self.values
459
+ end
460
+ end
461
+ end
462
+ end
463
+ end
@@ -150,7 +150,7 @@ module Telnyx
150
150
  # 2010-04-01 format.
151
151
  sig do
152
152
  returns(
153
- T.nilable(Telnyx::MessagingProfile::WebhookAPIVersion::TaggedSymbol)
153
+ T.nilable(Telnyx::MessagingProfile::WebhookAPIVersion::OrSymbol)
154
154
  )
155
155
  end
156
156
  attr_reader :webhook_api_version
@@ -196,9 +196,7 @@ module Telnyx
196
196
  attr_writer :created_at
197
197
 
198
198
  # Identifies the type of the resource.
199
- sig do
200
- returns(T.nilable(Telnyx::MessagingProfile::RecordType::TaggedSymbol))
201
- end
199
+ sig { returns(T.nilable(Telnyx::MessagingProfile::RecordType::OrSymbol)) }
202
200
  attr_reader :record_type
203
201
 
204
202
  sig do
@@ -337,7 +335,7 @@ module Telnyx
337
335
  name: String,
338
336
  number_pool_settings: T.nilable(Telnyx::NumberPoolSettings),
339
337
  organization_id: String,
340
- record_type: Telnyx::MessagingProfile::RecordType::TaggedSymbol,
338
+ record_type: Telnyx::MessagingProfile::RecordType::OrSymbol,
341
339
  redaction_enabled: T::Boolean,
342
340
  redaction_level: Integer,
343
341
  resource_group_id: T.nilable(String),
@@ -346,7 +344,7 @@ module Telnyx
346
344
  url_shortener_settings: T.nilable(Telnyx::URLShortenerSettings),
347
345
  v1_secret: String,
348
346
  webhook_api_version:
349
- Telnyx::MessagingProfile::WebhookAPIVersion::TaggedSymbol,
347
+ Telnyx::MessagingProfile::WebhookAPIVersion::OrSymbol,
350
348
  webhook_failover_url: T.nilable(String),
351
349
  webhook_url: T.nilable(String),
352
350
  whitelisted_destinations: T::Array[String]
@@ -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,
@@ -11,19 +11,21 @@ module Telnyx
11
11
  )
12
12
  end
13
13
 
14
- sig { returns(T.nilable(Telnyx::MessagingProfile)) }
14
+ sig { returns(T.nilable(Telnyx::MessagingMessagingProfile)) }
15
15
  attr_reader :data
16
16
 
17
- sig { params(data: Telnyx::MessagingProfile::OrHash).void }
17
+ sig { params(data: Telnyx::MessagingMessagingProfile::OrHash).void }
18
18
  attr_writer :data
19
19
 
20
20
  sig do
21
- params(data: Telnyx::MessagingProfile::OrHash).returns(T.attached_class)
21
+ params(data: Telnyx::MessagingMessagingProfile::OrHash).returns(
22
+ T.attached_class
23
+ )
22
24
  end
23
25
  def self.new(data: nil)
24
26
  end
25
27
 
26
- sig { override.returns({ data: Telnyx::MessagingProfile }) }
28
+ sig { override.returns({ data: Telnyx::MessagingMessagingProfile }) }
27
29
  def to_hash
28
30
  end
29
31
  end
@@ -11,19 +11,21 @@ module Telnyx
11
11
  )
12
12
  end
13
13
 
14
- sig { returns(T.nilable(Telnyx::MessagingProfile)) }
14
+ sig { returns(T.nilable(Telnyx::MessagingMessagingProfile)) }
15
15
  attr_reader :data
16
16
 
17
- sig { params(data: Telnyx::MessagingProfile::OrHash).void }
17
+ sig { params(data: Telnyx::MessagingMessagingProfile::OrHash).void }
18
18
  attr_writer :data
19
19
 
20
20
  sig do
21
- params(data: Telnyx::MessagingProfile::OrHash).returns(T.attached_class)
21
+ params(data: Telnyx::MessagingMessagingProfile::OrHash).returns(
22
+ T.attached_class
23
+ )
22
24
  end
23
25
  def self.new(data: nil)
24
26
  end
25
27
 
26
- sig { override.returns({ data: Telnyx::MessagingProfile }) }
28
+ sig { override.returns({ data: Telnyx::MessagingMessagingProfile }) }
27
29
  def to_hash
28
30
  end
29
31
  end
@@ -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
@@ -11,19 +11,21 @@ module Telnyx
11
11
  )
12
12
  end
13
13
 
14
- sig { returns(T.nilable(Telnyx::MessagingProfile)) }
14
+ sig { returns(T.nilable(Telnyx::MessagingMessagingProfile)) }
15
15
  attr_reader :data
16
16
 
17
- sig { params(data: Telnyx::MessagingProfile::OrHash).void }
17
+ sig { params(data: Telnyx::MessagingMessagingProfile::OrHash).void }
18
18
  attr_writer :data
19
19
 
20
20
  sig do
21
- params(data: Telnyx::MessagingProfile::OrHash).returns(T.attached_class)
21
+ params(data: Telnyx::MessagingMessagingProfile::OrHash).returns(
22
+ T.attached_class
23
+ )
22
24
  end
23
25
  def self.new(data: nil)
24
26
  end
25
27
 
26
- sig { override.returns({ data: Telnyx::MessagingProfile }) }
28
+ sig { override.returns({ data: Telnyx::MessagingMessagingProfile }) }
27
29
  def to_hash
28
30
  end
29
31
  end