sentdm 0.3.1 → 0.4.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 (214) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +8 -0
  3. data/README.md +9 -9
  4. data/lib/sentdm/client.rb +0 -1
  5. data/lib/sentdm/models/api_meta.rb +1 -9
  6. data/lib/sentdm/models/brand_data.rb +235 -198
  7. data/lib/sentdm/models/brand_with_kyc.rb +249 -214
  8. data/lib/sentdm/models/brands/api_response_tcr_campaign_with_use_cases.rb +0 -1
  9. data/lib/sentdm/models/contact_create_params.rb +13 -6
  10. data/lib/sentdm/models/contact_delete_params.rb +8 -1
  11. data/lib/sentdm/models/contact_list_params.rb +10 -2
  12. data/lib/sentdm/models/contact_retrieve_params.rb +7 -1
  13. data/lib/sentdm/models/contact_update_params.rb +13 -6
  14. data/lib/sentdm/models/me_retrieve_params.rb +7 -1
  15. data/lib/sentdm/models/me_retrieve_response.rb +152 -7
  16. data/lib/sentdm/models/message_retrieve_activities_params.rb +7 -1
  17. data/lib/sentdm/models/message_retrieve_activities_response.rb +19 -5
  18. data/lib/sentdm/models/message_retrieve_status_params.rb +7 -1
  19. data/lib/sentdm/models/message_retrieve_status_response.rb +8 -1
  20. data/lib/sentdm/models/message_send_params.rb +17 -10
  21. data/lib/sentdm/models/mutation_request.rb +6 -6
  22. data/lib/sentdm/models/profile_complete_params.rb +13 -6
  23. data/lib/sentdm/models/profile_create_params.rb +192 -10
  24. data/lib/sentdm/models/profile_delete_params.rb +18 -18
  25. data/lib/sentdm/models/profile_detail.rb +144 -95
  26. data/lib/sentdm/models/profile_list_params.rb +7 -1
  27. data/lib/sentdm/models/profile_retrieve_params.rb +7 -1
  28. data/lib/sentdm/models/profile_update_params.rb +142 -22
  29. data/lib/sentdm/models/template_create_params.rb +17 -10
  30. data/lib/sentdm/models/template_delete_params.rb +13 -6
  31. data/lib/sentdm/models/template_list_params.rb +18 -2
  32. data/lib/sentdm/models/template_retrieve_params.rb +7 -1
  33. data/lib/sentdm/models/template_update_params.rb +17 -10
  34. data/lib/sentdm/models/template_variable.rb +7 -1
  35. data/lib/sentdm/models/user_invite_params.rb +13 -6
  36. data/lib/sentdm/models/user_list_params.rb +7 -1
  37. data/lib/sentdm/models/user_remove_params.rb +17 -17
  38. data/lib/sentdm/models/user_retrieve_params.rb +7 -1
  39. data/lib/sentdm/models/user_update_role_params.rb +15 -16
  40. data/lib/sentdm/models/webhook_create_params.rb +13 -6
  41. data/lib/sentdm/models/webhook_delete_params.rb +7 -1
  42. data/lib/sentdm/models/webhook_list_event_types_params.rb +7 -1
  43. data/lib/sentdm/models/webhook_list_events_params.rb +7 -1
  44. data/lib/sentdm/models/webhook_list_params.rb +7 -1
  45. data/lib/sentdm/models/webhook_retrieve_params.rb +7 -1
  46. data/lib/sentdm/models/webhook_rotate_secret_params.rb +7 -1
  47. data/lib/sentdm/models/webhook_test_params.rb +13 -6
  48. data/lib/sentdm/models/webhook_toggle_status_params.rb +13 -6
  49. data/lib/sentdm/models/webhook_update_params.rb +13 -6
  50. data/lib/sentdm/models.rb +0 -12
  51. data/lib/sentdm/resources/brands/campaigns.rb +0 -129
  52. data/lib/sentdm/resources/brands.rb +0 -112
  53. data/lib/sentdm/resources/contacts.rb +43 -20
  54. data/lib/sentdm/resources/lookup.rb +0 -21
  55. data/lib/sentdm/resources/me.rb +24 -5
  56. data/lib/sentdm/resources/messages.rb +24 -8
  57. data/lib/sentdm/resources/profiles.rb +116 -32
  58. data/lib/sentdm/resources/templates.rb +47 -24
  59. data/lib/sentdm/resources/users.rb +40 -23
  60. data/lib/sentdm/resources/webhooks.rb +92 -34
  61. data/lib/sentdm/version.rb +1 -1
  62. data/lib/sentdm.rb +1 -14
  63. data/rbi/sentdm/client.rbi +0 -1
  64. data/rbi/sentdm/models/api_meta.rbi +4 -18
  65. data/rbi/sentdm/models/brand_data.rbi +326 -203
  66. data/rbi/sentdm/models/brand_with_kyc.rbi +334 -216
  67. data/rbi/sentdm/models/brands/tcr_campaign_with_use_cases.rbi +6 -8
  68. data/rbi/sentdm/models/contact_create_params.rbi +19 -10
  69. data/rbi/sentdm/models/contact_delete_params.rbi +9 -0
  70. data/rbi/sentdm/models/contact_list_params.rbi +11 -0
  71. data/rbi/sentdm/models/contact_retrieve_params.rbi +13 -2
  72. data/rbi/sentdm/models/contact_update_params.rbi +19 -10
  73. data/rbi/sentdm/models/me_retrieve_params.rbi +16 -5
  74. data/rbi/sentdm/models/me_retrieve_response.rbi +316 -16
  75. data/rbi/sentdm/models/message_retrieve_activities_params.rbi +13 -2
  76. data/rbi/sentdm/models/message_retrieve_activities_response.rbi +18 -6
  77. data/rbi/sentdm/models/message_retrieve_status_params.rbi +13 -2
  78. data/rbi/sentdm/models/message_retrieve_status_response.rbi +6 -0
  79. data/rbi/sentdm/models/message_send_params.rbi +22 -13
  80. data/rbi/sentdm/models/mutation_request.rbi +10 -10
  81. data/rbi/sentdm/models/profile_complete_params.rbi +19 -10
  82. data/rbi/sentdm/models/profile_create_params.rbi +323 -15
  83. data/rbi/sentdm/models/profile_delete_params.rbi +36 -24
  84. data/rbi/sentdm/models/profile_detail.rbi +184 -128
  85. data/rbi/sentdm/models/profile_list_params.rbi +16 -5
  86. data/rbi/sentdm/models/profile_retrieve_params.rbi +13 -2
  87. data/rbi/sentdm/models/profile_update_params.rbi +231 -30
  88. data/rbi/sentdm/models/template_create_params.rbi +22 -13
  89. data/rbi/sentdm/models/template_delete_params.rbi +19 -10
  90. data/rbi/sentdm/models/template_list_params.rbi +19 -0
  91. data/rbi/sentdm/models/template_retrieve_params.rbi +13 -2
  92. data/rbi/sentdm/models/template_update_params.rbi +22 -13
  93. data/rbi/sentdm/models/template_variable.rbi +6 -0
  94. data/rbi/sentdm/models/user_invite_params.rbi +19 -10
  95. data/rbi/sentdm/models/user_list_params.rbi +16 -5
  96. data/rbi/sentdm/models/user_remove_params.rbi +35 -23
  97. data/rbi/sentdm/models/user_retrieve_params.rbi +13 -2
  98. data/rbi/sentdm/models/user_update_role_params.rbi +23 -25
  99. data/rbi/sentdm/models/webhook_create_params.rbi +19 -10
  100. data/rbi/sentdm/models/webhook_delete_params.rbi +13 -2
  101. data/rbi/sentdm/models/webhook_list_event_types_params.rbi +16 -5
  102. data/rbi/sentdm/models/webhook_list_events_params.rbi +16 -1
  103. data/rbi/sentdm/models/webhook_list_params.rbi +9 -0
  104. data/rbi/sentdm/models/webhook_retrieve_params.rbi +13 -2
  105. data/rbi/sentdm/models/webhook_rotate_secret_params.rbi +15 -1
  106. data/rbi/sentdm/models/webhook_test_params.rbi +19 -10
  107. data/rbi/sentdm/models/webhook_toggle_status_params.rbi +19 -10
  108. data/rbi/sentdm/models/webhook_update_params.rbi +19 -10
  109. data/rbi/sentdm/models.rbi +0 -12
  110. data/rbi/sentdm/resources/brands/campaigns.rbi +0 -95
  111. data/rbi/sentdm/resources/brands.rbi +0 -80
  112. data/rbi/sentdm/resources/contacts.rbi +37 -12
  113. data/rbi/sentdm/resources/lookup.rbi +0 -12
  114. data/rbi/sentdm/resources/me.rbi +25 -7
  115. data/rbi/sentdm/resources/messages.rbi +17 -4
  116. data/rbi/sentdm/resources/profiles.rbi +178 -38
  117. data/rbi/sentdm/resources/templates.rbi +47 -19
  118. data/rbi/sentdm/resources/users.rbi +47 -25
  119. data/rbi/sentdm/resources/webhooks.rbi +92 -20
  120. data/sig/sentdm/models/api_meta.rbs +2 -16
  121. data/sig/sentdm/models/brand_data.rbs +188 -142
  122. data/sig/sentdm/models/brand_with_kyc.rbs +184 -133
  123. data/sig/sentdm/models/contact_create_params.rbs +16 -5
  124. data/sig/sentdm/models/contact_delete_params.rbs +11 -1
  125. data/sig/sentdm/models/contact_list_params.rbs +8 -1
  126. data/sig/sentdm/models/contact_retrieve_params.rbs +12 -2
  127. data/sig/sentdm/models/contact_update_params.rbs +13 -6
  128. data/sig/sentdm/models/me_retrieve_params.rbs +14 -3
  129. data/sig/sentdm/models/me_retrieve_response.rbs +134 -7
  130. data/sig/sentdm/models/message_retrieve_activities_params.rbs +12 -2
  131. data/sig/sentdm/models/message_retrieve_activities_response.rbs +9 -4
  132. data/sig/sentdm/models/message_retrieve_status_params.rbs +12 -2
  133. data/sig/sentdm/models/message_retrieve_status_response.rbs +5 -0
  134. data/sig/sentdm/models/message_send_params.rbs +15 -8
  135. data/sig/sentdm/models/mutation_request.rbs +5 -5
  136. data/sig/sentdm/models/profile_complete_params.rbs +13 -6
  137. data/sig/sentdm/models/profile_create_params.rbs +111 -7
  138. data/sig/sentdm/models/profile_delete_params.rbs +23 -13
  139. data/sig/sentdm/models/profile_detail.rbs +105 -84
  140. data/sig/sentdm/models/profile_list_params.rbs +14 -3
  141. data/sig/sentdm/models/profile_retrieve_params.rbs +8 -1
  142. data/sig/sentdm/models/profile_update_params.rbs +86 -17
  143. data/sig/sentdm/models/template_create_params.rbs +15 -8
  144. data/sig/sentdm/models/template_delete_params.rbs +16 -5
  145. data/sig/sentdm/models/template_list_params.rbs +13 -1
  146. data/sig/sentdm/models/template_retrieve_params.rbs +12 -2
  147. data/sig/sentdm/models/template_update_params.rbs +15 -8
  148. data/sig/sentdm/models/template_variable.rbs +5 -0
  149. data/sig/sentdm/models/user_invite_params.rbs +13 -6
  150. data/sig/sentdm/models/user_list_params.rbs +14 -3
  151. data/sig/sentdm/models/user_remove_params.rbs +23 -13
  152. data/sig/sentdm/models/user_retrieve_params.rbs +8 -1
  153. data/sig/sentdm/models/user_update_role_params.rbs +17 -17
  154. data/sig/sentdm/models/webhook_create_params.rbs +13 -6
  155. data/sig/sentdm/models/webhook_delete_params.rbs +12 -2
  156. data/sig/sentdm/models/webhook_list_event_types_params.rbs +13 -3
  157. data/sig/sentdm/models/webhook_list_events_params.rbs +13 -1
  158. data/sig/sentdm/models/webhook_list_params.rbs +13 -1
  159. data/sig/sentdm/models/webhook_retrieve_params.rbs +12 -2
  160. data/sig/sentdm/models/webhook_rotate_secret_params.rbs +8 -1
  161. data/sig/sentdm/models/webhook_test_params.rbs +13 -6
  162. data/sig/sentdm/models/webhook_toggle_status_params.rbs +17 -5
  163. data/sig/sentdm/models/webhook_update_params.rbs +13 -6
  164. data/sig/sentdm/models.rbs +0 -12
  165. data/sig/sentdm/resources/brands/campaigns.rbs +0 -29
  166. data/sig/sentdm/resources/brands.rbs +0 -25
  167. data/sig/sentdm/resources/contacts.rbs +7 -2
  168. data/sig/sentdm/resources/lookup.rbs +0 -5
  169. data/sig/sentdm/resources/me.rbs +1 -0
  170. data/sig/sentdm/resources/messages.rbs +4 -1
  171. data/sig/sentdm/resources/profiles.rbs +19 -8
  172. data/sig/sentdm/resources/templates.rbs +9 -3
  173. data/sig/sentdm/resources/users.rbs +10 -7
  174. data/sig/sentdm/resources/webhooks.rbs +18 -5
  175. metadata +1 -40
  176. data/lib/sentdm/models/api_response_brand_with_kyc.rb +0 -43
  177. data/lib/sentdm/models/brand_create_params.rb +0 -41
  178. data/lib/sentdm/models/brand_delete_params.rb +0 -34
  179. data/lib/sentdm/models/brand_list_params.rb +0 -14
  180. data/lib/sentdm/models/brand_list_response.rb +0 -43
  181. data/lib/sentdm/models/brand_update_params.rb +0 -48
  182. data/lib/sentdm/models/brands/campaign_create_params.rb +0 -50
  183. data/lib/sentdm/models/brands/campaign_delete_params.rb +0 -43
  184. data/lib/sentdm/models/brands/campaign_list_params.rb +0 -22
  185. data/lib/sentdm/models/brands/campaign_list_response.rb +0 -47
  186. data/lib/sentdm/models/brands/campaign_update_params.rb +0 -57
  187. data/lib/sentdm/models/lookup_retrieve_phone_info_params.rb +0 -20
  188. data/lib/sentdm/models/lookup_retrieve_phone_info_response.rb +0 -104
  189. data/rbi/sentdm/models/api_response_brand_with_kyc.rbi +0 -74
  190. data/rbi/sentdm/models/brand_create_params.rbi +0 -68
  191. data/rbi/sentdm/models/brand_delete_params.rbi +0 -68
  192. data/rbi/sentdm/models/brand_list_params.rbi +0 -27
  193. data/rbi/sentdm/models/brand_list_response.rbi +0 -71
  194. data/rbi/sentdm/models/brand_update_params.rbi +0 -74
  195. data/rbi/sentdm/models/brands/campaign_create_params.rbi +0 -79
  196. data/rbi/sentdm/models/brands/campaign_delete_params.rbi +0 -84
  197. data/rbi/sentdm/models/brands/campaign_list_params.rbi +0 -37
  198. data/rbi/sentdm/models/brands/campaign_list_response.rbi +0 -82
  199. data/rbi/sentdm/models/brands/campaign_update_params.rbi +0 -85
  200. data/rbi/sentdm/models/lookup_retrieve_phone_info_params.rbi +0 -38
  201. data/rbi/sentdm/models/lookup_retrieve_phone_info_response.rbi +0 -183
  202. data/sig/sentdm/models/api_response_brand_with_kyc.rbs +0 -39
  203. data/sig/sentdm/models/brand_create_params.rbs +0 -36
  204. data/sig/sentdm/models/brand_delete_params.rbs +0 -36
  205. data/sig/sentdm/models/brand_list_params.rbs +0 -14
  206. data/sig/sentdm/models/brand_list_response.rbs +0 -39
  207. data/sig/sentdm/models/brand_update_params.rbs +0 -45
  208. data/sig/sentdm/models/brands/campaign_create_params.rbs +0 -47
  209. data/sig/sentdm/models/brands/campaign_delete_params.rbs +0 -46
  210. data/sig/sentdm/models/brands/campaign_list_params.rbs +0 -25
  211. data/sig/sentdm/models/brands/campaign_list_response.rbs +0 -41
  212. data/sig/sentdm/models/brands/campaign_update_params.rbs +0 -52
  213. data/sig/sentdm/models/lookup_retrieve_phone_info_params.rbs +0 -23
  214. data/sig/sentdm/models/lookup_retrieve_phone_info_response.rbs +0 -102
@@ -83,13 +83,26 @@ module Sentdm
83
83
  )
84
84
  end
85
85
 
86
- # Customer ID (organization or profile)
86
+ # Customer ID (organization, account, or profile)
87
87
  sig { returns(T.nilable(String)) }
88
88
  attr_reader :id
89
89
 
90
90
  sig { params(id: String).void }
91
91
  attr_writer :id
92
92
 
93
+ # Messaging channel configuration
94
+ sig do
95
+ returns(T.nilable(Sentdm::Models::MeRetrieveResponse::Data::Channels))
96
+ end
97
+ attr_reader :channels
98
+
99
+ sig do
100
+ params(
101
+ channels: Sentdm::Models::MeRetrieveResponse::Data::Channels::OrHash
102
+ ).void
103
+ end
104
+ attr_writer :channels
105
+
93
106
  # When the account was created
94
107
  sig { returns(T.nilable(Time)) }
95
108
  attr_reader :created_at
@@ -101,6 +114,10 @@ module Sentdm
101
114
  sig { returns(T.nilable(String)) }
102
115
  attr_accessor :description
103
116
 
117
+ # Contact email address
118
+ sig { returns(T.nilable(String)) }
119
+ attr_accessor :email
120
+
104
121
  # Account icon URL
105
122
  sig { returns(T.nilable(String)) }
106
123
  attr_accessor :icon
@@ -112,7 +129,12 @@ module Sentdm
112
129
  sig { params(name: String).void }
113
130
  attr_writer :name
114
131
 
115
- # List of profiles (only for organization type)
132
+ # Organization ID (only for profile type — the parent organization)
133
+ sig { returns(T.nilable(String)) }
134
+ attr_accessor :organization_id
135
+
136
+ # List of profiles (populated for organization type, empty for user and profile
137
+ # types)
116
138
  sig do
117
139
  returns(
118
140
  T.nilable(
@@ -120,7 +142,17 @@ module Sentdm
120
142
  )
121
143
  )
122
144
  end
123
- attr_accessor :profiles
145
+ attr_reader :profiles
146
+
147
+ sig do
148
+ params(
149
+ profiles:
150
+ T::Array[
151
+ Sentdm::Models::MeRetrieveResponse::Data::Profile::OrHash
152
+ ]
153
+ ).void
154
+ end
155
+ attr_writer :profiles
124
156
 
125
157
  # Profile settings (only for profile type)
126
158
  sig { returns(T.nilable(Sentdm::ProfileSettings)) }
@@ -131,47 +163,75 @@ module Sentdm
131
163
  end
132
164
  attr_writer :settings
133
165
 
166
+ # Short name / abbreviation (only for profile type)
167
+ sig { returns(T.nilable(String)) }
168
+ attr_accessor :short_name
169
+
134
170
  # Profile status (only for profile type): incomplete, pending_review, approved,
135
171
  # etc.
136
172
  sig { returns(T.nilable(String)) }
137
173
  attr_accessor :status
138
174
 
175
+ # Account type: "organization" (has profiles), "user" (no profiles), or "profile"
176
+ # (child of an organization)
177
+ sig { returns(T.nilable(String)) }
178
+ attr_reader :type
179
+
180
+ sig { params(type: String).void }
181
+ attr_writer :type
182
+
139
183
  # The response data (null if error)
140
184
  sig do
141
185
  params(
142
186
  id: String,
187
+ channels:
188
+ Sentdm::Models::MeRetrieveResponse::Data::Channels::OrHash,
143
189
  created_at: Time,
144
190
  description: T.nilable(String),
191
+ email: T.nilable(String),
145
192
  icon: T.nilable(String),
146
193
  name: String,
194
+ organization_id: T.nilable(String),
147
195
  profiles:
148
- T.nilable(
149
- T::Array[
150
- Sentdm::Models::MeRetrieveResponse::Data::Profile::OrHash
151
- ]
152
- ),
196
+ T::Array[
197
+ Sentdm::Models::MeRetrieveResponse::Data::Profile::OrHash
198
+ ],
153
199
  settings: T.nilable(Sentdm::ProfileSettings::OrHash),
154
- status: T.nilable(String)
200
+ short_name: T.nilable(String),
201
+ status: T.nilable(String),
202
+ type: String
155
203
  ).returns(T.attached_class)
156
204
  end
157
205
  def self.new(
158
- # Customer ID (organization or profile)
206
+ # Customer ID (organization, account, or profile)
159
207
  id: nil,
208
+ # Messaging channel configuration
209
+ channels: nil,
160
210
  # When the account was created
161
211
  created_at: nil,
162
212
  # Account description
163
213
  description: nil,
214
+ # Contact email address
215
+ email: nil,
164
216
  # Account icon URL
165
217
  icon: nil,
166
218
  # Account name
167
219
  name: nil,
168
- # List of profiles (only for organization type)
220
+ # Organization ID (only for profile type — the parent organization)
221
+ organization_id: nil,
222
+ # List of profiles (populated for organization type, empty for user and profile
223
+ # types)
169
224
  profiles: nil,
170
225
  # Profile settings (only for profile type)
171
226
  settings: nil,
227
+ # Short name / abbreviation (only for profile type)
228
+ short_name: nil,
172
229
  # Profile status (only for profile type): incomplete, pending_review, approved,
173
230
  # etc.
174
- status: nil
231
+ status: nil,
232
+ # Account type: "organization" (has profiles), "user" (no profiles), or "profile"
233
+ # (child of an organization)
234
+ type: nil
175
235
  )
176
236
  end
177
237
 
@@ -179,22 +239,262 @@ module Sentdm
179
239
  override.returns(
180
240
  {
181
241
  id: String,
242
+ channels: Sentdm::Models::MeRetrieveResponse::Data::Channels,
182
243
  created_at: Time,
183
244
  description: T.nilable(String),
245
+ email: T.nilable(String),
184
246
  icon: T.nilable(String),
185
247
  name: String,
248
+ organization_id: T.nilable(String),
186
249
  profiles:
187
- T.nilable(
188
- T::Array[Sentdm::Models::MeRetrieveResponse::Data::Profile]
189
- ),
250
+ T::Array[Sentdm::Models::MeRetrieveResponse::Data::Profile],
190
251
  settings: T.nilable(Sentdm::ProfileSettings),
191
- status: T.nilable(String)
252
+ short_name: T.nilable(String),
253
+ status: T.nilable(String),
254
+ type: String
192
255
  }
193
256
  )
194
257
  end
195
258
  def to_hash
196
259
  end
197
260
 
261
+ class Channels < Sentdm::Internal::Type::BaseModel
262
+ OrHash =
263
+ T.type_alias do
264
+ T.any(
265
+ Sentdm::Models::MeRetrieveResponse::Data::Channels,
266
+ Sentdm::Internal::AnyHash
267
+ )
268
+ end
269
+
270
+ # RCS channel (provider: vibes)
271
+ sig do
272
+ returns(
273
+ T.nilable(Sentdm::Models::MeRetrieveResponse::Data::Channels::Rcs)
274
+ )
275
+ end
276
+ attr_reader :rcs
277
+
278
+ sig do
279
+ params(
280
+ rcs:
281
+ Sentdm::Models::MeRetrieveResponse::Data::Channels::Rcs::OrHash
282
+ ).void
283
+ end
284
+ attr_writer :rcs
285
+
286
+ # SMS channel (providers: telnyx, sinch)
287
+ sig do
288
+ returns(
289
+ T.nilable(Sentdm::Models::MeRetrieveResponse::Data::Channels::SMS)
290
+ )
291
+ end
292
+ attr_reader :sms
293
+
294
+ sig do
295
+ params(
296
+ sms:
297
+ Sentdm::Models::MeRetrieveResponse::Data::Channels::SMS::OrHash
298
+ ).void
299
+ end
300
+ attr_writer :sms
301
+
302
+ # WhatsApp Business channel (provider: meta)
303
+ sig do
304
+ returns(
305
+ T.nilable(
306
+ Sentdm::Models::MeRetrieveResponse::Data::Channels::Whatsapp
307
+ )
308
+ )
309
+ end
310
+ attr_reader :whatsapp
311
+
312
+ sig do
313
+ params(
314
+ whatsapp:
315
+ Sentdm::Models::MeRetrieveResponse::Data::Channels::Whatsapp::OrHash
316
+ ).void
317
+ end
318
+ attr_writer :whatsapp
319
+
320
+ # Messaging channel configuration
321
+ sig do
322
+ params(
323
+ rcs:
324
+ Sentdm::Models::MeRetrieveResponse::Data::Channels::Rcs::OrHash,
325
+ sms:
326
+ Sentdm::Models::MeRetrieveResponse::Data::Channels::SMS::OrHash,
327
+ whatsapp:
328
+ Sentdm::Models::MeRetrieveResponse::Data::Channels::Whatsapp::OrHash
329
+ ).returns(T.attached_class)
330
+ end
331
+ def self.new(
332
+ # RCS channel (provider: vibes)
333
+ rcs: nil,
334
+ # SMS channel (providers: telnyx, sinch)
335
+ sms: nil,
336
+ # WhatsApp Business channel (provider: meta)
337
+ whatsapp: nil
338
+ )
339
+ end
340
+
341
+ sig do
342
+ override.returns(
343
+ {
344
+ rcs: Sentdm::Models::MeRetrieveResponse::Data::Channels::Rcs,
345
+ sms: Sentdm::Models::MeRetrieveResponse::Data::Channels::SMS,
346
+ whatsapp:
347
+ Sentdm::Models::MeRetrieveResponse::Data::Channels::Whatsapp
348
+ }
349
+ )
350
+ end
351
+ def to_hash
352
+ end
353
+
354
+ class Rcs < Sentdm::Internal::Type::BaseModel
355
+ OrHash =
356
+ T.type_alias do
357
+ T.any(
358
+ Sentdm::Models::MeRetrieveResponse::Data::Channels::Rcs,
359
+ Sentdm::Internal::AnyHash
360
+ )
361
+ end
362
+
363
+ # Whether RCS is configured for this account
364
+ sig { returns(T.nilable(T::Boolean)) }
365
+ attr_reader :configured
366
+
367
+ sig { params(configured: T::Boolean).void }
368
+ attr_writer :configured
369
+
370
+ # RCS-enabled phone number in E.164 format
371
+ sig { returns(T.nilable(String)) }
372
+ attr_accessor :phone_number
373
+
374
+ # RCS channel (provider: vibes)
375
+ sig do
376
+ params(
377
+ configured: T::Boolean,
378
+ phone_number: T.nilable(String)
379
+ ).returns(T.attached_class)
380
+ end
381
+ def self.new(
382
+ # Whether RCS is configured for this account
383
+ configured: nil,
384
+ # RCS-enabled phone number in E.164 format
385
+ phone_number: nil
386
+ )
387
+ end
388
+
389
+ sig do
390
+ override.returns(
391
+ { configured: T::Boolean, phone_number: T.nilable(String) }
392
+ )
393
+ end
394
+ def to_hash
395
+ end
396
+ end
397
+
398
+ class SMS < Sentdm::Internal::Type::BaseModel
399
+ OrHash =
400
+ T.type_alias do
401
+ T.any(
402
+ Sentdm::Models::MeRetrieveResponse::Data::Channels::SMS,
403
+ Sentdm::Internal::AnyHash
404
+ )
405
+ end
406
+
407
+ # Whether SMS is configured for this account
408
+ sig { returns(T.nilable(T::Boolean)) }
409
+ attr_reader :configured
410
+
411
+ sig { params(configured: T::Boolean).void }
412
+ attr_writer :configured
413
+
414
+ # Sending phone number in E.164 format
415
+ sig { returns(T.nilable(String)) }
416
+ attr_accessor :phone_number
417
+
418
+ # SMS channel (providers: telnyx, sinch)
419
+ sig do
420
+ params(
421
+ configured: T::Boolean,
422
+ phone_number: T.nilable(String)
423
+ ).returns(T.attached_class)
424
+ end
425
+ def self.new(
426
+ # Whether SMS is configured for this account
427
+ configured: nil,
428
+ # Sending phone number in E.164 format
429
+ phone_number: nil
430
+ )
431
+ end
432
+
433
+ sig do
434
+ override.returns(
435
+ { configured: T::Boolean, phone_number: T.nilable(String) }
436
+ )
437
+ end
438
+ def to_hash
439
+ end
440
+ end
441
+
442
+ class Whatsapp < Sentdm::Internal::Type::BaseModel
443
+ OrHash =
444
+ T.type_alias do
445
+ T.any(
446
+ Sentdm::Models::MeRetrieveResponse::Data::Channels::Whatsapp,
447
+ Sentdm::Internal::AnyHash
448
+ )
449
+ end
450
+
451
+ # WhatsApp Business display name
452
+ sig { returns(T.nilable(String)) }
453
+ attr_accessor :business_name
454
+
455
+ # Whether WhatsApp is configured for this account
456
+ sig { returns(T.nilable(T::Boolean)) }
457
+ attr_reader :configured
458
+
459
+ sig { params(configured: T::Boolean).void }
460
+ attr_writer :configured
461
+
462
+ # WhatsApp phone number in E.164 format
463
+ sig { returns(T.nilable(String)) }
464
+ attr_accessor :phone_number
465
+
466
+ # WhatsApp Business channel (provider: meta)
467
+ sig do
468
+ params(
469
+ business_name: T.nilable(String),
470
+ configured: T::Boolean,
471
+ phone_number: T.nilable(String)
472
+ ).returns(T.attached_class)
473
+ end
474
+ def self.new(
475
+ # WhatsApp Business display name
476
+ business_name: nil,
477
+ # Whether WhatsApp is configured for this account
478
+ configured: nil,
479
+ # WhatsApp phone number in E.164 format
480
+ phone_number: nil
481
+ )
482
+ end
483
+
484
+ sig do
485
+ override.returns(
486
+ {
487
+ business_name: T.nilable(String),
488
+ configured: T::Boolean,
489
+ phone_number: T.nilable(String)
490
+ }
491
+ )
492
+ end
493
+ def to_hash
494
+ end
495
+ end
496
+ end
497
+
198
498
  class Profile < Sentdm::Internal::Type::BaseModel
199
499
  OrHash =
200
500
  T.type_alias do
@@ -17,18 +17,29 @@ module Sentdm
17
17
  sig { returns(String) }
18
18
  attr_accessor :id
19
19
 
20
+ sig { returns(T.nilable(String)) }
21
+ attr_reader :x_profile_id
22
+
23
+ sig { params(x_profile_id: String).void }
24
+ attr_writer :x_profile_id
25
+
20
26
  sig do
21
27
  params(
22
28
  id: String,
29
+ x_profile_id: String,
23
30
  request_options: Sentdm::RequestOptions::OrHash
24
31
  ).returns(T.attached_class)
25
32
  end
26
- def self.new(id:, request_options: {})
33
+ def self.new(id:, x_profile_id: nil, request_options: {})
27
34
  end
28
35
 
29
36
  sig do
30
37
  override.returns(
31
- { id: String, request_options: Sentdm::RequestOptions }
38
+ {
39
+ id: String,
40
+ x_profile_id: String,
41
+ request_options: Sentdm::RequestOptions
42
+ }
32
43
  )
33
44
  end
34
45
  def to_hash
@@ -169,9 +169,10 @@ module Sentdm
169
169
  )
170
170
  end
171
171
 
172
- # Additional content or payload for the activity (e.g., channel response)
172
+ # Active contact markup applied on top of the channel cost, formatted to 4 decimal
173
+ # places.
173
174
  sig { returns(T.nilable(String)) }
174
- attr_accessor :content
175
+ attr_accessor :active_contact_price
175
176
 
176
177
  # Human-readable description of the activity
177
178
  sig { returns(T.nilable(String)) }
@@ -180,6 +181,11 @@ module Sentdm
180
181
  sig { params(description: String).void }
181
182
  attr_writer :description
182
183
 
184
+ # Channel cost for this activity (e.g., SMS/WhatsApp provider cost), formatted to
185
+ # 4 decimal places.
186
+ sig { returns(T.nilable(String)) }
187
+ attr_accessor :price
188
+
183
189
  # Activity status (e.g., ACCEPTED, PROCESSED, SENT, DELIVERED, FAILED)
184
190
  sig { returns(T.nilable(String)) }
185
191
  attr_reader :status
@@ -197,17 +203,22 @@ module Sentdm
197
203
  # A single message activity event for v3 API
198
204
  sig do
199
205
  params(
200
- content: T.nilable(String),
206
+ active_contact_price: T.nilable(String),
201
207
  description: String,
208
+ price: T.nilable(String),
202
209
  status: String,
203
210
  timestamp: Time
204
211
  ).returns(T.attached_class)
205
212
  end
206
213
  def self.new(
207
- # Additional content or payload for the activity (e.g., channel response)
208
- content: nil,
214
+ # Active contact markup applied on top of the channel cost, formatted to 4 decimal
215
+ # places.
216
+ active_contact_price: nil,
209
217
  # Human-readable description of the activity
210
218
  description: nil,
219
+ # Channel cost for this activity (e.g., SMS/WhatsApp provider cost), formatted to
220
+ # 4 decimal places.
221
+ price: nil,
211
222
  # Activity status (e.g., ACCEPTED, PROCESSED, SENT, DELIVERED, FAILED)
212
223
  status: nil,
213
224
  # When this activity occurred
@@ -218,8 +229,9 @@ module Sentdm
218
229
  sig do
219
230
  override.returns(
220
231
  {
221
- content: T.nilable(String),
232
+ active_contact_price: T.nilable(String),
222
233
  description: String,
234
+ price: T.nilable(String),
223
235
  status: String,
224
236
  timestamp: Time
225
237
  }
@@ -14,18 +14,29 @@ module Sentdm
14
14
  sig { returns(String) }
15
15
  attr_accessor :id
16
16
 
17
+ sig { returns(T.nilable(String)) }
18
+ attr_reader :x_profile_id
19
+
20
+ sig { params(x_profile_id: String).void }
21
+ attr_writer :x_profile_id
22
+
17
23
  sig do
18
24
  params(
19
25
  id: String,
26
+ x_profile_id: String,
20
27
  request_options: Sentdm::RequestOptions::OrHash
21
28
  ).returns(T.attached_class)
22
29
  end
23
- def self.new(id:, request_options: {})
30
+ def self.new(id:, x_profile_id: nil, request_options: {})
24
31
  end
25
32
 
26
33
  sig do
27
34
  override.returns(
28
- { id: String, request_options: Sentdm::RequestOptions }
35
+ {
36
+ id: String,
37
+ x_profile_id: String,
38
+ request_options: Sentdm::RequestOptions
39
+ }
29
40
  )
30
41
  end
31
42
  def to_hash
@@ -101,6 +101,9 @@ module Sentdm
101
101
  sig { params(id: String).void }
102
102
  attr_writer :id
103
103
 
104
+ sig { returns(T.nilable(Float)) }
105
+ attr_accessor :active_contact_price
106
+
104
107
  sig { returns(T.nilable(String)) }
105
108
  attr_reader :channel
106
109
 
@@ -203,6 +206,7 @@ module Sentdm
203
206
  sig do
204
207
  params(
205
208
  id: String,
209
+ active_contact_price: T.nilable(Float),
206
210
  channel: String,
207
211
  contact_id: String,
208
212
  created_at: Time,
@@ -229,6 +233,7 @@ module Sentdm
229
233
  end
230
234
  def self.new(
231
235
  id: nil,
236
+ active_contact_price: nil,
232
237
  channel: nil,
233
238
  contact_id: nil,
234
239
  created_at: nil,
@@ -252,6 +257,7 @@ module Sentdm
252
257
  override.returns(
253
258
  {
254
259
  id: String,
260
+ active_contact_price: T.nilable(Float),
255
261
  channel: String,
256
262
  contact_id: String,
257
263
  created_at: Time,
@@ -17,6 +17,14 @@ module Sentdm
17
17
  sig { returns(T.nilable(T::Array[String])) }
18
18
  attr_accessor :channel
19
19
 
20
+ # Sandbox flag - when true, the operation is simulated without side effects Useful
21
+ # for testing integrations without actual execution
22
+ sig { returns(T.nilable(T::Boolean)) }
23
+ attr_reader :sandbox
24
+
25
+ sig { params(sandbox: T::Boolean).void }
26
+ attr_writer :sandbox
27
+
20
28
  # Template reference (by id or name, with optional parameters)
21
29
  sig { returns(T.nilable(Sentdm::MessageSendParams::Template)) }
22
30
  attr_reader :template
@@ -24,14 +32,6 @@ module Sentdm
24
32
  sig { params(template: Sentdm::MessageSendParams::Template::OrHash).void }
25
33
  attr_writer :template
26
34
 
27
- # Test mode flag - when true, the operation is simulated without side effects
28
- # Useful for testing integrations without actual execution
29
- sig { returns(T.nilable(T::Boolean)) }
30
- attr_reader :test_mode
31
-
32
- sig { params(test_mode: T::Boolean).void }
33
- attr_writer :test_mode
34
-
35
35
  # List of recipient phone numbers in E.164 format (multi-recipient fan-out)
36
36
  sig { returns(T.nilable(T::Array[String])) }
37
37
  attr_reader :to
@@ -45,13 +45,20 @@ module Sentdm
45
45
  sig { params(idempotency_key: String).void }
46
46
  attr_writer :idempotency_key
47
47
 
48
+ sig { returns(T.nilable(String)) }
49
+ attr_reader :x_profile_id
50
+
51
+ sig { params(x_profile_id: String).void }
52
+ attr_writer :x_profile_id
53
+
48
54
  sig do
49
55
  params(
50
56
  channel: T.nilable(T::Array[String]),
57
+ sandbox: T::Boolean,
51
58
  template: Sentdm::MessageSendParams::Template::OrHash,
52
- test_mode: T::Boolean,
53
59
  to: T::Array[String],
54
60
  idempotency_key: String,
61
+ x_profile_id: String,
55
62
  request_options: Sentdm::RequestOptions::OrHash
56
63
  ).returns(T.attached_class)
57
64
  end
@@ -60,14 +67,15 @@ module Sentdm
60
67
  # separate message per recipient. "sent" = auto-detect, "rcs" = reserved
61
68
  # (skipped). Defaults to ["sent"] (auto-detect) if omitted.
62
69
  channel: nil,
70
+ # Sandbox flag - when true, the operation is simulated without side effects Useful
71
+ # for testing integrations without actual execution
72
+ sandbox: nil,
63
73
  # Template reference (by id or name, with optional parameters)
64
74
  template: nil,
65
- # Test mode flag - when true, the operation is simulated without side effects
66
- # Useful for testing integrations without actual execution
67
- test_mode: nil,
68
75
  # List of recipient phone numbers in E.164 format (multi-recipient fan-out)
69
76
  to: nil,
70
77
  idempotency_key: nil,
78
+ x_profile_id: nil,
71
79
  request_options: {}
72
80
  )
73
81
  end
@@ -76,10 +84,11 @@ module Sentdm
76
84
  override.returns(
77
85
  {
78
86
  channel: T.nilable(T::Array[String]),
87
+ sandbox: T::Boolean,
79
88
  template: Sentdm::MessageSendParams::Template,
80
- test_mode: T::Boolean,
81
89
  to: T::Array[String],
82
90
  idempotency_key: String,
91
+ x_profile_id: String,
83
92
  request_options: Sentdm::RequestOptions
84
93
  }
85
94
  )
@@ -8,23 +8,23 @@ module Sentdm
8
8
  T.any(Sentdm::MutationRequest, Sentdm::Internal::AnyHash)
9
9
  end
10
10
 
11
- # Test mode flag - when true, the operation is simulated without side effects
12
- # Useful for testing integrations without actual execution
11
+ # Sandbox flag - when true, the operation is simulated without side effects Useful
12
+ # for testing integrations without actual execution
13
13
  sig { returns(T.nilable(T::Boolean)) }
14
- attr_reader :test_mode
14
+ attr_reader :sandbox
15
15
 
16
- sig { params(test_mode: T::Boolean).void }
17
- attr_writer :test_mode
16
+ sig { params(sandbox: T::Boolean).void }
17
+ attr_writer :sandbox
18
18
 
19
- sig { params(test_mode: T::Boolean).returns(T.attached_class) }
19
+ sig { params(sandbox: T::Boolean).returns(T.attached_class) }
20
20
  def self.new(
21
- # Test mode flag - when true, the operation is simulated without side effects
22
- # Useful for testing integrations without actual execution
23
- test_mode: nil
21
+ # Sandbox flag - when true, the operation is simulated without side effects Useful
22
+ # for testing integrations without actual execution
23
+ sandbox: nil
24
24
  )
25
25
  end
26
26
 
27
- sig { override.returns({ test_mode: T::Boolean }) }
27
+ sig { override.returns({ sandbox: T::Boolean }) }
28
28
  def to_hash
29
29
  end
30
30
  end