telnyx 5.173.0 → 5.174.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 (118) 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 +0 -4
  5. data/lib/telnyx/lib/access_token.rb +141 -0
  6. data/lib/telnyx/lib/telephony_credentials.rb +87 -0
  7. data/lib/telnyx/lib.rb +2 -0
  8. data/lib/telnyx/models/ai/memory/namespaces/namespace_settings.rb +26 -0
  9. data/lib/telnyx/models/ai/memory/namespaces/namespace_settings_response.rb +3 -41
  10. data/lib/telnyx/models/ai/memory/namespaces/summary_settings.rb +33 -0
  11. data/lib/telnyx/models/ai/transcription_challenger.rb +148 -0
  12. data/lib/telnyx/models/ai/transcription_fallback_model.rb +78 -0
  13. data/lib/telnyx/models/ai/transcription_settings.rb +6 -219
  14. data/lib/telnyx/models/compute/funcs/func_log_export_config.rb +96 -0
  15. data/lib/telnyx/models/compute/funcs/func_log_export_config_response.rb +3 -89
  16. data/lib/telnyx/models/email_template_common.rb +5 -26
  17. data/lib/telnyx/models/email_template_create_params.rb +5 -26
  18. data/lib/telnyx/models/messaging_outbound_message_payload.rb +22 -1
  19. data/lib/telnyx/models/messaging_profile_features.rb +16 -1
  20. data/lib/telnyx/models/model_metadata.rb +10 -1
  21. data/lib/telnyx/models/outbound_message_payload.rb +22 -1
  22. data/lib/telnyx/models/phone_numbers/numbers_phone_numbers_job.rb +6 -50
  23. data/lib/telnyx/models/phone_numbers/phone_numbers_job.rb +6 -50
  24. data/lib/telnyx/models/phone_numbers/phone_numbers_job_pending_operation.rb +28 -0
  25. data/lib/telnyx/models/phone_numbers/phone_numbers_job_successful_operation.rb +28 -0
  26. data/lib/telnyx/models/update_email_template_request.rb +5 -26
  27. data/lib/telnyx/models/variable_schema_entry.rb +28 -0
  28. data/lib/telnyx/models/whatsapp/hosted_signup_create_response.rb +3 -83
  29. data/lib/telnyx/models/whatsapp/hosted_signup_retrieve_response.rb +3 -84
  30. data/lib/telnyx/models/whatsapp/phone_number_get_response.rb +3 -191
  31. data/lib/telnyx/models/whatsapp/phone_number_retrieve_phone_number_response.rb +3 -192
  32. data/lib/telnyx/models/whatsapp/{hosted_signup_list_response.rb → whatsapp_hosted_signup.rb} +8 -6
  33. data/lib/telnyx/models/whatsapp/{phone_number_list_response.rb → whatsapp_phone_response.rb} +12 -12
  34. data/lib/telnyx/models.rb +2 -0
  35. data/lib/telnyx/resources/email_templates.rb +3 -3
  36. data/lib/telnyx/resources/portouts.rb +2 -1
  37. data/lib/telnyx/resources/whatsapp/business_accounts/phone_numbers.rb +2 -2
  38. data/lib/telnyx/resources/whatsapp/hosted_signups.rb +2 -2
  39. data/lib/telnyx/resources/whatsapp/phone_numbers.rb +2 -2
  40. data/lib/telnyx/version.rb +1 -1
  41. data/lib/telnyx.rb +10 -5
  42. data/rbi/telnyx/client.rbi +0 -3
  43. data/rbi/telnyx/lib/access_token.rbi +73 -0
  44. data/rbi/telnyx/lib/telephony_credentials.rbi +50 -0
  45. data/rbi/telnyx/models/ai/memory/namespaces/namespace_settings.rbi +58 -0
  46. data/rbi/telnyx/models/ai/memory/namespaces/namespace_settings_response.rbi +4 -107
  47. data/rbi/telnyx/models/ai/memory/namespaces/summary_settings.rbi +51 -0
  48. data/rbi/telnyx/models/ai/transcription_challenger.rbi +318 -0
  49. data/rbi/telnyx/models/ai/transcription_fallback_model.rbi +171 -0
  50. data/rbi/telnyx/models/ai/transcription_settings.rbi +7 -531
  51. data/rbi/telnyx/models/compute/funcs/func_log_export_config.rbi +175 -0
  52. data/rbi/telnyx/models/compute/funcs/func_log_export_config_response.rbi +4 -176
  53. data/rbi/telnyx/models/email_template_common.rbi +3 -56
  54. data/rbi/telnyx/models/email_template_create_params.rbi +3 -59
  55. data/rbi/telnyx/models/messaging_outbound_message_payload.rbi +26 -0
  56. data/rbi/telnyx/models/messaging_profile_features.rbi +36 -5
  57. data/rbi/telnyx/models/model_metadata.rbi +13 -0
  58. data/rbi/telnyx/models/outbound_message_payload.rbi +26 -0
  59. data/rbi/telnyx/models/phone_numbers/numbers_phone_numbers_job.rbi +8 -96
  60. data/rbi/telnyx/models/phone_numbers/phone_numbers_job.rbi +8 -94
  61. data/rbi/telnyx/models/phone_numbers/phone_numbers_job_pending_operation.rbi +49 -0
  62. data/rbi/telnyx/models/phone_numbers/phone_numbers_job_successful_operation.rbi +49 -0
  63. data/rbi/telnyx/models/update_email_template_request.rbi +3 -59
  64. data/rbi/telnyx/models/variable_schema_entry.rbi +40 -0
  65. data/rbi/telnyx/models/whatsapp/hosted_signup_create_response.rbi +6 -173
  66. data/rbi/telnyx/models/whatsapp/hosted_signup_retrieve_response.rbi +6 -175
  67. data/rbi/telnyx/models/whatsapp/phone_number_get_response.rbi +4 -366
  68. data/rbi/telnyx/models/whatsapp/phone_number_retrieve_phone_number_response.rbi +6 -368
  69. data/rbi/telnyx/models/whatsapp/{hosted_signup_list_response.rbi → whatsapp_hosted_signup.rbi} +11 -12
  70. data/rbi/telnyx/models/whatsapp/{phone_number_list_response.rbi → whatsapp_phone_response.rbi} +23 -23
  71. data/rbi/telnyx/models.rbi +2 -0
  72. data/rbi/telnyx/resources/email_templates.rbi +3 -18
  73. data/rbi/telnyx/resources/portouts.rbi +2 -1
  74. data/rbi/telnyx/resources/whatsapp/business_accounts/phone_numbers.rbi +1 -1
  75. data/rbi/telnyx/resources/whatsapp/hosted_signups.rbi +1 -1
  76. data/rbi/telnyx/resources/whatsapp/phone_numbers.rbi +1 -1
  77. data/sig/telnyx/client.rbs +0 -2
  78. data/sig/telnyx/models/ai/memory/namespaces/namespace_settings.rbs +30 -0
  79. data/sig/telnyx/models/ai/memory/namespaces/namespace_settings_response.rbs +4 -37
  80. data/sig/telnyx/models/ai/memory/namespaces/summary_settings.rbs +19 -0
  81. data/sig/telnyx/models/ai/transcription_challenger.rbs +98 -0
  82. data/sig/telnyx/models/ai/transcription_fallback_model.rbs +63 -0
  83. data/sig/telnyx/models/ai/transcription_settings.rbs +8 -159
  84. data/sig/telnyx/models/compute/funcs/func_log_export_config.rbs +96 -0
  85. data/sig/telnyx/models/compute/funcs/func_log_export_config_response.rbs +6 -95
  86. data/sig/telnyx/models/email_template_common.rbs +4 -18
  87. data/sig/telnyx/models/email_template_create_params.rbs +4 -18
  88. data/sig/telnyx/models/messaging_outbound_message_payload.rbs +10 -0
  89. data/sig/telnyx/models/messaging_profile_features.rbs +14 -3
  90. data/sig/telnyx/models/model_metadata.rbs +7 -0
  91. data/sig/telnyx/models/outbound_message_payload.rbs +10 -0
  92. data/sig/telnyx/models/phone_numbers/numbers_phone_numbers_job.rbs +12 -44
  93. data/sig/telnyx/models/phone_numbers/phone_numbers_job.rbs +12 -44
  94. data/sig/telnyx/models/phone_numbers/phone_numbers_job_pending_operation.rbs +24 -0
  95. data/sig/telnyx/models/phone_numbers/phone_numbers_job_successful_operation.rbs +24 -0
  96. data/sig/telnyx/models/update_email_template_request.rbs +4 -18
  97. data/sig/telnyx/models/variable_schema_entry.rbs +17 -0
  98. data/sig/telnyx/models/whatsapp/hosted_signup_create_response.rbs +6 -90
  99. data/sig/telnyx/models/whatsapp/hosted_signup_retrieve_response.rbs +6 -90
  100. data/sig/telnyx/models/whatsapp/phone_number_get_response.rbs +6 -185
  101. data/sig/telnyx/models/whatsapp/phone_number_retrieve_phone_number_response.rbs +4 -189
  102. data/sig/telnyx/models/whatsapp/{hosted_signup_list_response.rbs → whatsapp_hosted_signup.rbs} +11 -9
  103. data/sig/telnyx/models/whatsapp/{phone_number_list_response.rbs → whatsapp_phone_response.rbs} +13 -11
  104. data/sig/telnyx/models.rbs +2 -0
  105. data/sig/telnyx/resources/email_templates.rbs +3 -3
  106. data/sig/telnyx/resources/whatsapp/business_accounts/phone_numbers.rbs +1 -1
  107. data/sig/telnyx/resources/whatsapp/hosted_signups.rbs +1 -1
  108. data/sig/telnyx/resources/whatsapp/phone_numbers.rbs +1 -1
  109. metadata +36 -17
  110. data/lib/telnyx/models/whatsapp/business_accounts/phone_number_list_response.rb +0 -198
  111. data/lib/telnyx/resources/tts_integrations/actions.rb +0 -16
  112. data/lib/telnyx/resources/tts_integrations.rb +0 -18
  113. data/rbi/telnyx/models/whatsapp/business_accounts/phone_number_list_response.rbi +0 -358
  114. data/rbi/telnyx/resources/tts_integrations/actions.rbi +0 -14
  115. data/rbi/telnyx/resources/tts_integrations.rbi +0 -15
  116. data/sig/telnyx/models/whatsapp/business_accounts/phone_number_list_response.rbs +0 -186
  117. data/sig/telnyx/resources/tts_integrations/actions.rbs +0 -9
  118. data/sig/telnyx/resources/tts_integrations.rbs +0 -9
@@ -0,0 +1,175 @@
1
+ # typed: strong
2
+
3
+ module Telnyx
4
+ module Models
5
+ module Compute
6
+ FuncLogExportConfig = Funcs::FuncLogExportConfig
7
+
8
+ module Funcs
9
+ class FuncLogExportConfig < Telnyx::Internal::Type::BaseModel
10
+ OrHash =
11
+ T.type_alias do
12
+ T.any(
13
+ Telnyx::Compute::Funcs::FuncLogExportConfig,
14
+ Telnyx::Internal::AnyHash
15
+ )
16
+ end
17
+
18
+ # Configuration record ID
19
+ sig { returns(T.nilable(String)) }
20
+ attr_reader :id
21
+
22
+ sig { params(id: String).void }
23
+ attr_writer :id
24
+
25
+ sig { returns(T.nilable(Time)) }
26
+ attr_reader :created_at
27
+
28
+ sig { params(created_at: Time).void }
29
+ attr_writer :created_at
30
+
31
+ # Whether export is enabled for this function
32
+ sig { returns(T.nilable(T::Boolean)) }
33
+ attr_reader :enabled
34
+
35
+ sig { params(enabled: T::Boolean).void }
36
+ attr_writer :enabled
37
+
38
+ # HTTPS OTLP endpoint URL logs are pushed to
39
+ sig { returns(T.nilable(String)) }
40
+ attr_reader :endpoint
41
+
42
+ sig { params(endpoint: String).void }
43
+ attr_writer :endpoint
44
+
45
+ # Function ID this configuration belongs to
46
+ sig { returns(T.nilable(String)) }
47
+ attr_reader :func_id
48
+
49
+ sig { params(func_id: String).void }
50
+ attr_writer :func_id
51
+
52
+ # Whether invocation records (one per HTTP request) are exported
53
+ sig { returns(T.nilable(T::Boolean)) }
54
+ attr_reader :invocation_export_enabled
55
+
56
+ sig { params(invocation_export_enabled: T::Boolean).void }
57
+ attr_writer :invocation_export_enabled
58
+
59
+ sig do
60
+ returns(
61
+ T.nilable(
62
+ Telnyx::Compute::Funcs::FuncLogExportConfig::RecordType::TaggedSymbol
63
+ )
64
+ )
65
+ end
66
+ attr_reader :record_type
67
+
68
+ sig do
69
+ params(
70
+ record_type:
71
+ Telnyx::Compute::Funcs::FuncLogExportConfig::RecordType::OrSymbol
72
+ ).void
73
+ end
74
+ attr_writer :record_type
75
+
76
+ # Whether runtime logs (function stdout/stderr) are exported
77
+ sig { returns(T.nilable(T::Boolean)) }
78
+ attr_reader :runtime_export_enabled
79
+
80
+ sig { params(runtime_export_enabled: T::Boolean).void }
81
+ attr_writer :runtime_export_enabled
82
+
83
+ sig { returns(T.nilable(Time)) }
84
+ attr_reader :updated_at
85
+
86
+ sig { params(updated_at: Time).void }
87
+ attr_writer :updated_at
88
+
89
+ # Metadata-only view of a function's log export destination. Header values are
90
+ # write-only (encrypted server-side) and never appear in any response.
91
+ sig do
92
+ params(
93
+ id: String,
94
+ created_at: Time,
95
+ enabled: T::Boolean,
96
+ endpoint: String,
97
+ func_id: String,
98
+ invocation_export_enabled: T::Boolean,
99
+ record_type:
100
+ Telnyx::Compute::Funcs::FuncLogExportConfig::RecordType::OrSymbol,
101
+ runtime_export_enabled: T::Boolean,
102
+ updated_at: Time
103
+ ).returns(T.attached_class)
104
+ end
105
+ def self.new(
106
+ # Configuration record ID
107
+ id: nil,
108
+ created_at: nil,
109
+ # Whether export is enabled for this function
110
+ enabled: nil,
111
+ # HTTPS OTLP endpoint URL logs are pushed to
112
+ endpoint: nil,
113
+ # Function ID this configuration belongs to
114
+ func_id: nil,
115
+ # Whether invocation records (one per HTTP request) are exported
116
+ invocation_export_enabled: nil,
117
+ record_type: nil,
118
+ # Whether runtime logs (function stdout/stderr) are exported
119
+ runtime_export_enabled: nil,
120
+ updated_at: nil
121
+ )
122
+ end
123
+
124
+ sig do
125
+ override.returns(
126
+ {
127
+ id: String,
128
+ created_at: Time,
129
+ enabled: T::Boolean,
130
+ endpoint: String,
131
+ func_id: String,
132
+ invocation_export_enabled: T::Boolean,
133
+ record_type:
134
+ Telnyx::Compute::Funcs::FuncLogExportConfig::RecordType::TaggedSymbol,
135
+ runtime_export_enabled: T::Boolean,
136
+ updated_at: Time
137
+ }
138
+ )
139
+ end
140
+ def to_hash
141
+ end
142
+
143
+ module RecordType
144
+ extend Telnyx::Internal::Type::Enum
145
+
146
+ TaggedSymbol =
147
+ T.type_alias do
148
+ T.all(
149
+ Symbol,
150
+ Telnyx::Compute::Funcs::FuncLogExportConfig::RecordType
151
+ )
152
+ end
153
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
154
+
155
+ COMPUTE_FUNC_LOG_EXPORT_CONFIG =
156
+ T.let(
157
+ :compute_func_log_export_config,
158
+ Telnyx::Compute::Funcs::FuncLogExportConfig::RecordType::TaggedSymbol
159
+ )
160
+
161
+ sig do
162
+ override.returns(
163
+ T::Array[
164
+ Telnyx::Compute::Funcs::FuncLogExportConfig::RecordType::TaggedSymbol
165
+ ]
166
+ )
167
+ end
168
+ def self.values
169
+ end
170
+ end
171
+ end
172
+ end
173
+ end
174
+ end
175
+ end
@@ -18,26 +18,20 @@ module Telnyx
18
18
  # Metadata-only view of a function's log export destination. Header values are
19
19
  # write-only (encrypted server-side) and never appear in any response.
20
20
  sig do
21
- returns(
22
- T.nilable(
23
- Telnyx::Compute::Funcs::FuncLogExportConfigResponse::Data
24
- )
25
- )
21
+ returns(T.nilable(Telnyx::Compute::Funcs::FuncLogExportConfig))
26
22
  end
27
23
  attr_reader :data
28
24
 
29
25
  sig do
30
26
  params(
31
- data:
32
- Telnyx::Compute::Funcs::FuncLogExportConfigResponse::Data::OrHash
27
+ data: Telnyx::Compute::Funcs::FuncLogExportConfig::OrHash
33
28
  ).void
34
29
  end
35
30
  attr_writer :data
36
31
 
37
32
  sig do
38
33
  params(
39
- data:
40
- Telnyx::Compute::Funcs::FuncLogExportConfigResponse::Data::OrHash
34
+ data: Telnyx::Compute::Funcs::FuncLogExportConfig::OrHash
41
35
  ).returns(T.attached_class)
42
36
  end
43
37
  def self.new(
@@ -49,177 +43,11 @@ module Telnyx
49
43
 
50
44
  sig do
51
45
  override.returns(
52
- {
53
- data: Telnyx::Compute::Funcs::FuncLogExportConfigResponse::Data
54
- }
46
+ { data: Telnyx::Compute::Funcs::FuncLogExportConfig }
55
47
  )
56
48
  end
57
49
  def to_hash
58
50
  end
59
-
60
- class Data < Telnyx::Internal::Type::BaseModel
61
- OrHash =
62
- T.type_alias do
63
- T.any(
64
- Telnyx::Compute::Funcs::FuncLogExportConfigResponse::Data,
65
- Telnyx::Internal::AnyHash
66
- )
67
- end
68
-
69
- # Configuration record ID
70
- sig { returns(T.nilable(String)) }
71
- attr_reader :id
72
-
73
- sig { params(id: String).void }
74
- attr_writer :id
75
-
76
- sig { returns(T.nilable(Time)) }
77
- attr_reader :created_at
78
-
79
- sig { params(created_at: Time).void }
80
- attr_writer :created_at
81
-
82
- # Whether export is enabled for this function
83
- sig { returns(T.nilable(T::Boolean)) }
84
- attr_reader :enabled
85
-
86
- sig { params(enabled: T::Boolean).void }
87
- attr_writer :enabled
88
-
89
- # HTTPS OTLP endpoint URL logs are pushed to
90
- sig { returns(T.nilable(String)) }
91
- attr_reader :endpoint
92
-
93
- sig { params(endpoint: String).void }
94
- attr_writer :endpoint
95
-
96
- # Function ID this configuration belongs to
97
- sig { returns(T.nilable(String)) }
98
- attr_reader :func_id
99
-
100
- sig { params(func_id: String).void }
101
- attr_writer :func_id
102
-
103
- # Whether invocation records (one per HTTP request) are exported
104
- sig { returns(T.nilable(T::Boolean)) }
105
- attr_reader :invocation_export_enabled
106
-
107
- sig { params(invocation_export_enabled: T::Boolean).void }
108
- attr_writer :invocation_export_enabled
109
-
110
- sig do
111
- returns(
112
- T.nilable(
113
- Telnyx::Compute::Funcs::FuncLogExportConfigResponse::Data::RecordType::TaggedSymbol
114
- )
115
- )
116
- end
117
- attr_reader :record_type
118
-
119
- sig do
120
- params(
121
- record_type:
122
- Telnyx::Compute::Funcs::FuncLogExportConfigResponse::Data::RecordType::OrSymbol
123
- ).void
124
- end
125
- attr_writer :record_type
126
-
127
- # Whether runtime logs (function stdout/stderr) are exported
128
- sig { returns(T.nilable(T::Boolean)) }
129
- attr_reader :runtime_export_enabled
130
-
131
- sig { params(runtime_export_enabled: T::Boolean).void }
132
- attr_writer :runtime_export_enabled
133
-
134
- sig { returns(T.nilable(Time)) }
135
- attr_reader :updated_at
136
-
137
- sig { params(updated_at: Time).void }
138
- attr_writer :updated_at
139
-
140
- # Metadata-only view of a function's log export destination. Header values are
141
- # write-only (encrypted server-side) and never appear in any response.
142
- sig do
143
- params(
144
- id: String,
145
- created_at: Time,
146
- enabled: T::Boolean,
147
- endpoint: String,
148
- func_id: String,
149
- invocation_export_enabled: T::Boolean,
150
- record_type:
151
- Telnyx::Compute::Funcs::FuncLogExportConfigResponse::Data::RecordType::OrSymbol,
152
- runtime_export_enabled: T::Boolean,
153
- updated_at: Time
154
- ).returns(T.attached_class)
155
- end
156
- def self.new(
157
- # Configuration record ID
158
- id: nil,
159
- created_at: nil,
160
- # Whether export is enabled for this function
161
- enabled: nil,
162
- # HTTPS OTLP endpoint URL logs are pushed to
163
- endpoint: nil,
164
- # Function ID this configuration belongs to
165
- func_id: nil,
166
- # Whether invocation records (one per HTTP request) are exported
167
- invocation_export_enabled: nil,
168
- record_type: nil,
169
- # Whether runtime logs (function stdout/stderr) are exported
170
- runtime_export_enabled: nil,
171
- updated_at: nil
172
- )
173
- end
174
-
175
- sig do
176
- override.returns(
177
- {
178
- id: String,
179
- created_at: Time,
180
- enabled: T::Boolean,
181
- endpoint: String,
182
- func_id: String,
183
- invocation_export_enabled: T::Boolean,
184
- record_type:
185
- Telnyx::Compute::Funcs::FuncLogExportConfigResponse::Data::RecordType::TaggedSymbol,
186
- runtime_export_enabled: T::Boolean,
187
- updated_at: Time
188
- }
189
- )
190
- end
191
- def to_hash
192
- end
193
-
194
- module RecordType
195
- extend Telnyx::Internal::Type::Enum
196
-
197
- TaggedSymbol =
198
- T.type_alias do
199
- T.all(
200
- Symbol,
201
- Telnyx::Compute::Funcs::FuncLogExportConfigResponse::Data::RecordType
202
- )
203
- end
204
- OrSymbol = T.type_alias { T.any(Symbol, String) }
205
-
206
- COMPUTE_FUNC_LOG_EXPORT_CONFIG =
207
- T.let(
208
- :compute_func_log_export_config,
209
- Telnyx::Compute::Funcs::FuncLogExportConfigResponse::Data::RecordType::TaggedSymbol
210
- )
211
-
212
- sig do
213
- override.returns(
214
- T::Array[
215
- Telnyx::Compute::Funcs::FuncLogExportConfigResponse::Data::RecordType::TaggedSymbol
216
- ]
217
- )
218
- end
219
- def self.values
220
- end
221
- end
222
- end
223
51
  end
224
52
  end
225
53
  end
@@ -43,13 +43,7 @@ module Telnyx
43
43
 
44
44
  # Structured variable requirements, or `null` when the template uses only the
45
45
  # legacy `variables` array.
46
- sig do
47
- returns(
48
- T.nilable(
49
- T::Hash[Symbol, Telnyx::EmailTemplateCommon::VariableSchema]
50
- )
51
- )
52
- end
46
+ sig { returns(T.nilable(T::Hash[Symbol, Telnyx::VariableSchemaEntry])) }
53
47
  attr_accessor :variable_schema
54
48
 
55
49
  # Persisted variable names. In `explicit` mode this array preserves the exact
@@ -75,12 +69,7 @@ module Telnyx
75
69
  text_body: T.nilable(String),
76
70
  updated_at: Time,
77
71
  variable_schema:
78
- T.nilable(
79
- T::Hash[
80
- Symbol,
81
- Telnyx::EmailTemplateCommon::VariableSchema::OrHash
82
- ]
83
- ),
72
+ T.nilable(T::Hash[Symbol, Telnyx::VariableSchemaEntry::OrHash]),
84
73
  variables: T::Array[String],
85
74
  variables_mode: Telnyx::EmailTemplateCommon::VariablesMode::OrSymbol
86
75
  ).returns(T.attached_class)
@@ -127,9 +116,7 @@ module Telnyx
127
116
  text_body: T.nilable(String),
128
117
  updated_at: Time,
129
118
  variable_schema:
130
- T.nilable(
131
- T::Hash[Symbol, Telnyx::EmailTemplateCommon::VariableSchema]
132
- ),
119
+ T.nilable(T::Hash[Symbol, Telnyx::VariableSchemaEntry]),
133
120
  variables: T::Array[String],
134
121
  variables_mode:
135
122
  Telnyx::EmailTemplateCommon::VariablesMode::TaggedSymbol
@@ -163,46 +150,6 @@ module Telnyx
163
150
  end
164
151
  end
165
152
 
166
- class VariableSchema < Telnyx::Internal::Type::BaseModel
167
- OrHash =
168
- T.type_alias do
169
- T.any(
170
- Telnyx::EmailTemplateCommon::VariableSchema,
171
- Telnyx::Internal::AnyHash
172
- )
173
- end
174
-
175
- # Whether the variable must be supplied when strict variable validation is
176
- # enabled.
177
- sig { returns(T::Boolean) }
178
- attr_accessor :required
179
-
180
- # Default value for an optional variable. Rejected when `required` is `true`.
181
- sig { returns(T.nilable(String)) }
182
- attr_reader :default
183
-
184
- sig { params(default: String).void }
185
- attr_writer :default
186
-
187
- sig do
188
- params(required: T::Boolean, default: String).returns(
189
- T.attached_class
190
- )
191
- end
192
- def self.new(
193
- # Whether the variable must be supplied when strict variable validation is
194
- # enabled.
195
- required:,
196
- # Default value for an optional variable. Rejected when `required` is `true`.
197
- default: nil
198
- )
199
- end
200
-
201
- sig { override.returns({ required: T::Boolean, default: String }) }
202
- def to_hash
203
- end
204
- end
205
-
206
153
  # `automatic` when variable names are derived from template content; `explicit`
207
154
  # when `variables` is the exact manually managed array.
208
155
  module VariablesMode
@@ -60,13 +60,7 @@ module Telnyx
60
60
  # and empty array `[]` all fail with 422 naming the variable, while present values
61
61
  # such as `false` and `0` pass (they are present, not empty). Optional variables
62
62
  # fall back to their `default` when absent.
63
- sig do
64
- returns(
65
- T.nilable(
66
- T::Hash[Symbol, Telnyx::EmailTemplateCreateParams::VariableSchema]
67
- )
68
- )
69
- end
63
+ sig { returns(T.nilable(T::Hash[Symbol, Telnyx::VariableSchemaEntry])) }
70
64
  attr_accessor :variable_schema
71
65
 
72
66
  # Persisted variable names. In `automatic` mode a non-null array is rejected; in
@@ -111,12 +105,7 @@ module Telnyx
111
105
  subject: T.nilable(String),
112
106
  text_body: T.nilable(String),
113
107
  variable_schema:
114
- T.nilable(
115
- T::Hash[
116
- Symbol,
117
- Telnyx::EmailTemplateCreateParams::VariableSchema::OrHash
118
- ]
119
- ),
108
+ T.nilable(T::Hash[Symbol, Telnyx::VariableSchemaEntry::OrHash]),
120
109
  variables: T.nilable(T::Array[String]),
121
110
  variables_mode:
122
111
  Telnyx::EmailTemplateCreateParams::VariablesMode::OrSymbol,
@@ -183,12 +172,7 @@ module Telnyx
183
172
  subject: T.nilable(String),
184
173
  text_body: T.nilable(String),
185
174
  variable_schema:
186
- T.nilable(
187
- T::Hash[
188
- Symbol,
189
- Telnyx::EmailTemplateCreateParams::VariableSchema
190
- ]
191
- ),
175
+ T.nilable(T::Hash[Symbol, Telnyx::VariableSchemaEntry]),
192
176
  variables: T.nilable(T::Array[String]),
193
177
  variables_mode:
194
178
  Telnyx::EmailTemplateCreateParams::VariablesMode::OrSymbol,
@@ -200,46 +184,6 @@ module Telnyx
200
184
  def to_hash
201
185
  end
202
186
 
203
- class VariableSchema < Telnyx::Internal::Type::BaseModel
204
- OrHash =
205
- T.type_alias do
206
- T.any(
207
- Telnyx::EmailTemplateCreateParams::VariableSchema,
208
- Telnyx::Internal::AnyHash
209
- )
210
- end
211
-
212
- # Whether the variable must be supplied when strict variable validation is
213
- # enabled.
214
- sig { returns(T::Boolean) }
215
- attr_accessor :required
216
-
217
- # Default value for an optional variable. Rejected when `required` is `true`.
218
- sig { returns(T.nilable(String)) }
219
- attr_reader :default
220
-
221
- sig { params(default: String).void }
222
- attr_writer :default
223
-
224
- sig do
225
- params(required: T::Boolean, default: String).returns(
226
- T.attached_class
227
- )
228
- end
229
- def self.new(
230
- # Whether the variable must be supplied when strict variable validation is
231
- # enabled.
232
- required:,
233
- # Default value for an optional variable. Rejected when `required` is `true`.
234
- default: nil
235
- )
236
- end
237
-
238
- sig { override.returns({ required: T::Boolean, default: String }) }
239
- def to_hash
240
- end
241
- end
242
-
243
187
  # Controls how `variables` is maintained. If both fields are omitted (or
244
188
  # `variables` is null), the template uses `automatic` mode and extracts variable
245
189
  # names from the effective subject, HTML body, and text body. A non-null
@@ -42,6 +42,12 @@ module Telnyx
42
42
  end
43
43
  attr_writer :cc
44
44
 
45
+ # Identifies the next chunk when server-side SMS chunking
46
+ # (`auto_chunk_long_messages` on the messaging profile) split this message. Always
47
+ # present; null on non-chunked messages and on the final chunk.
48
+ sig { returns(T.nilable(String)) }
49
+ attr_accessor :child_message_id
50
+
45
51
  # ISO 8601 formatted date indicating when the message was finalized.
46
52
  sig { returns(T.nilable(Time)) }
47
53
  attr_accessor :completed_at
@@ -154,6 +160,13 @@ module Telnyx
154
160
  sig { params(organization_id: String).void }
155
161
  attr_writer :organization_id
156
162
 
163
+ # Identifies the original request's message when server-side SMS chunking
164
+ # (`auto_chunk_long_messages` on the messaging profile) split it into chunks. The
165
+ # first chunk's ID is the original request's message ID. Always present; null when
166
+ # this message is not part of a chunked send.
167
+ sig { returns(T.nilable(String)) }
168
+ attr_accessor :parent_message_id
169
+
157
170
  # Number of parts into which the message's body must be split.
158
171
  sig { returns(T.nilable(Integer)) }
159
172
  attr_reader :parts
@@ -305,6 +318,7 @@ module Telnyx
305
318
  id: String,
306
319
  body: Telnyx::MessagingOutboundMessagePayload::Body::OrHash,
307
320
  cc: T::Array[Telnyx::MessagingOutboundMessagePayload::Cc::OrHash],
321
+ child_message_id: T.nilable(String),
308
322
  completed_at: T.nilable(Time),
309
323
  cost:
310
324
  T.nilable(Telnyx::MessagingOutboundMessagePayload::Cost::OrHash),
@@ -322,6 +336,7 @@ module Telnyx
322
336
  messaging_profile_id: String,
323
337
  num_chars: Integer,
324
338
  organization_id: String,
339
+ parent_message_id: T.nilable(String),
325
340
  parts: Integer,
326
341
  received_at: Time,
327
342
  record_type:
@@ -351,6 +366,10 @@ module Telnyx
351
366
  # WhatsApp messages contain the `whatsapp_message` object from the send request.
352
367
  body: nil,
353
368
  cc: nil,
369
+ # Identifies the next chunk when server-side SMS chunking
370
+ # (`auto_chunk_long_messages` on the messaging profile) split this message. Always
371
+ # present; null on non-chunked messages and on the final chunk.
372
+ child_message_id: nil,
354
373
  # ISO 8601 formatted date indicating when the message was finalized.
355
374
  completed_at: nil,
356
375
  cost: nil,
@@ -372,6 +391,11 @@ module Telnyx
372
391
  num_chars: nil,
373
392
  # The id of the organization the messaging profile belongs to.
374
393
  organization_id: nil,
394
+ # Identifies the original request's message when server-side SMS chunking
395
+ # (`auto_chunk_long_messages` on the messaging profile) split it into chunks. The
396
+ # first chunk's ID is the original request's message ID. Always present; null when
397
+ # this message is not part of a chunked send.
398
+ parent_message_id: nil,
375
399
  # Number of parts into which the message's body must be split.
376
400
  parts: nil,
377
401
  # ISO 8601 formatted date indicating when the message request was received.
@@ -429,6 +453,7 @@ module Telnyx
429
453
  id: String,
430
454
  body: Telnyx::MessagingOutboundMessagePayload::Body,
431
455
  cc: T::Array[Telnyx::MessagingOutboundMessagePayload::Cc],
456
+ child_message_id: T.nilable(String),
432
457
  completed_at: T.nilable(Time),
433
458
  cost: T.nilable(Telnyx::MessagingOutboundMessagePayload::Cost),
434
459
  cost_breakdown:
@@ -442,6 +467,7 @@ module Telnyx
442
467
  messaging_profile_id: String,
443
468
  num_chars: Integer,
444
469
  organization_id: String,
470
+ parent_message_id: T.nilable(String),
445
471
  parts: Integer,
446
472
  received_at: Time,
447
473
  record_type:
@@ -18,24 +18,55 @@ module Telnyx
18
18
  sig { params(ai_opt_out_detection_enabled: T::Boolean).void }
19
19
  attr_writer :ai_opt_out_detection_enabled
20
20
 
21
+ # Enables server-side chunking of outbound SMS. When enabled, an outbound message
22
+ # that exceeds the maximum number of segments allowed for its destination (10
23
+ # segments by default; some aggregators accept up to 25) is automatically split
24
+ # into multiple child messages, each within the segment limit, and sent
25
+ # sequentially in order. Splitting is encoding-aware: GSM-7 bodies split at
26
+ # 153-character boundaries and UCS-2 bodies at 134-byte (67-character) boundaries.
27
+ # When disabled (the default), messages exceeding the segment limit are rejected
28
+ # with an error.
29
+ sig { returns(T.nilable(T::Boolean)) }
30
+ attr_reader :auto_chunk_long_messages
31
+
32
+ sig { params(auto_chunk_long_messages: T::Boolean).void }
33
+ attr_writer :auto_chunk_long_messages
34
+
21
35
  # Telnyx product features the messaging customer can enable on the messaging
22
36
  # profile. Keys map to individual feature flags; unknown keys are accepted and
23
37
  # preserved for forward compatibility with rolling deployments.
24
38
  sig do
25
- params(ai_opt_out_detection_enabled: T::Boolean).returns(
26
- T.attached_class
27
- )
39
+ params(
40
+ ai_opt_out_detection_enabled: T::Boolean,
41
+ auto_chunk_long_messages: T::Boolean
42
+ ).returns(T.attached_class)
28
43
  end
29
44
  def self.new(
30
45
  # Enables AI detection of inbound opt-out messages that do not follow the standard
31
46
  # STOP/UNSTOP/HELP opt-out keyword pattern. When enabled, the messaging platform
32
47
  # applies an AI model to identify non-standard opt-out requests (e.g.
33
48
  # natural-language phrases) and treats them as opt-outs.
34
- ai_opt_out_detection_enabled: nil
49
+ ai_opt_out_detection_enabled: nil,
50
+ # Enables server-side chunking of outbound SMS. When enabled, an outbound message
51
+ # that exceeds the maximum number of segments allowed for its destination (10
52
+ # segments by default; some aggregators accept up to 25) is automatically split
53
+ # into multiple child messages, each within the segment limit, and sent
54
+ # sequentially in order. Splitting is encoding-aware: GSM-7 bodies split at
55
+ # 153-character boundaries and UCS-2 bodies at 134-byte (67-character) boundaries.
56
+ # When disabled (the default), messages exceeding the segment limit are rejected
57
+ # with an error.
58
+ auto_chunk_long_messages: nil
35
59
  )
36
60
  end
37
61
 
38
- sig { override.returns({ ai_opt_out_detection_enabled: T::Boolean }) }
62
+ sig do
63
+ override.returns(
64
+ {
65
+ ai_opt_out_detection_enabled: T::Boolean,
66
+ auto_chunk_long_messages: T::Boolean
67
+ }
68
+ )
69
+ end
39
70
  def to_hash
40
71
  end
41
72
  end