sentdm 0.27.0 → 0.28.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 (275) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +13 -0
  3. data/README.md +1 -27
  4. data/lib/sentdm/client.rb +71 -8
  5. data/lib/sentdm/internal/type/base_model.rb +5 -5
  6. data/lib/sentdm/models/contact_create_response.rb +249 -0
  7. data/lib/sentdm/models/contact_delete_params.rb +16 -2
  8. data/lib/sentdm/models/contact_list_response.rb +299 -16
  9. data/lib/sentdm/models/contact_retrieve_message_summary_response.rb +186 -0
  10. data/lib/sentdm/models/contact_retrieve_response.rb +249 -0
  11. data/lib/sentdm/models/contact_update_response.rb +249 -0
  12. data/lib/sentdm/models/conversation_list_messages_response.rb +436 -0
  13. data/lib/sentdm/models/conversation_list_response.rb +433 -0
  14. data/lib/sentdm/models/me_retrieve_response.rb +242 -12
  15. data/lib/sentdm/models/message_retrieve_activities_response.rb +165 -7
  16. data/lib/sentdm/models/message_retrieve_status_response.rb +74 -6
  17. data/lib/sentdm/models/message_send_response.rb +113 -28
  18. data/lib/sentdm/models/number_lookup_response.rb +74 -6
  19. data/lib/sentdm/models/profile_complete_response.rb +74 -6
  20. data/lib/sentdm/models/profile_create_params.rb +378 -26
  21. data/lib/sentdm/models/profile_create_response.rb +760 -0
  22. data/lib/sentdm/models/profile_delete_params.rb +16 -2
  23. data/lib/sentdm/models/profile_list_response.rb +825 -14
  24. data/lib/sentdm/models/profile_retrieve_response.rb +762 -0
  25. data/lib/sentdm/models/profile_update_params.rb +391 -24
  26. data/lib/sentdm/models/profile_update_response.rb +760 -0
  27. data/lib/sentdm/models/profiles/campaign_create_params.rb +156 -3
  28. data/lib/sentdm/models/profiles/campaign_create_response.rb +420 -0
  29. data/lib/sentdm/models/profiles/campaign_delete_params.rb +17 -2
  30. data/lib/sentdm/models/profiles/campaign_list_response.rb +421 -0
  31. data/lib/sentdm/models/profiles/campaign_update_params.rb +156 -3
  32. data/lib/sentdm/models/profiles/campaign_update_response.rb +420 -0
  33. data/lib/sentdm/models/template_create_response.rb +209 -0
  34. data/lib/sentdm/models/template_list_params.rb +9 -2
  35. data/lib/sentdm/models/template_list_response.rb +262 -16
  36. data/lib/sentdm/models/template_retrieve_response.rb +209 -0
  37. data/lib/sentdm/models/template_update_response.rb +209 -0
  38. data/lib/sentdm/models/user_invite_response.rb +201 -0
  39. data/lib/sentdm/models/user_list_response.rb +259 -14
  40. data/lib/sentdm/models/user_remove_params.rb +16 -2
  41. data/lib/sentdm/models/user_retrieve_response.rb +201 -0
  42. data/lib/sentdm/models/user_update_role_response.rb +201 -0
  43. data/lib/sentdm/models/webhook_create_response.rb +229 -0
  44. data/lib/sentdm/models/webhook_list_event_types_response.rb +213 -13
  45. data/lib/sentdm/models/webhook_list_events_response.rb +162 -13
  46. data/lib/sentdm/models/webhook_list_response.rb +280 -15
  47. data/lib/sentdm/models/webhook_retrieve_response.rb +229 -0
  48. data/lib/sentdm/models/webhook_rotate_secret_params.rb +17 -2
  49. data/lib/sentdm/models/webhook_rotate_secret_response.rb +74 -6
  50. data/lib/sentdm/models/webhook_test_response.rb +74 -6
  51. data/lib/sentdm/models/webhook_toggle_status_response.rb +229 -0
  52. data/lib/sentdm/models/webhook_update_response.rb +229 -0
  53. data/lib/sentdm/models.rb +0 -52
  54. data/lib/sentdm/resources/contacts.rb +30 -13
  55. data/lib/sentdm/resources/conversations.rb +12 -4
  56. data/lib/sentdm/resources/me.rb +6 -1
  57. data/lib/sentdm/resources/messages.rb +11 -1
  58. data/lib/sentdm/resources/numbers.rb +6 -1
  59. data/lib/sentdm/resources/profiles/campaigns.rb +47 -9
  60. data/lib/sentdm/resources/profiles.rb +134 -58
  61. data/lib/sentdm/resources/templates.rb +14 -8
  62. data/lib/sentdm/resources/users.rb +12 -7
  63. data/lib/sentdm/resources/webhooks.rb +19 -9
  64. data/lib/sentdm/version.rb +1 -1
  65. data/lib/sentdm.rb +22 -32
  66. data/rbi/sentdm/client.rbi +71 -8
  67. data/rbi/sentdm/models/contact_create_response.rbi +407 -0
  68. data/rbi/sentdm/models/contact_delete_params.rbi +19 -2
  69. data/rbi/sentdm/models/contact_list_response.rbi +527 -21
  70. data/rbi/sentdm/models/contact_retrieve_message_summary_response.rbi +397 -0
  71. data/rbi/sentdm/models/contact_retrieve_response.rbi +409 -0
  72. data/rbi/sentdm/models/contact_update_response.rbi +407 -0
  73. data/rbi/sentdm/models/conversation_list_messages_response.rbi +843 -0
  74. data/rbi/sentdm/models/conversation_list_response.rbi +819 -0
  75. data/rbi/sentdm/models/me_retrieve_response.rbi +367 -16
  76. data/rbi/sentdm/models/message_retrieve_activities_response.rbi +335 -11
  77. data/rbi/sentdm/models/message_retrieve_status_response.rbi +148 -8
  78. data/rbi/sentdm/models/message_send_response.rbi +178 -32
  79. data/rbi/sentdm/models/number_lookup_response.rbi +135 -8
  80. data/rbi/sentdm/models/profile_complete_response.rbi +137 -8
  81. data/rbi/sentdm/models/profile_create_params.rbi +592 -42
  82. data/rbi/sentdm/models/profile_create_response.rbi +1226 -0
  83. data/rbi/sentdm/models/profile_delete_params.rbi +19 -2
  84. data/rbi/sentdm/models/profile_list_response.rbi +1366 -18
  85. data/rbi/sentdm/models/profile_retrieve_response.rbi +1230 -0
  86. data/rbi/sentdm/models/profile_update_params.rbi +610 -30
  87. data/rbi/sentdm/models/profile_update_response.rbi +1226 -0
  88. data/rbi/sentdm/models/profiles/campaign_create_params.rbi +218 -4
  89. data/rbi/sentdm/models/profiles/campaign_create_response.rbi +674 -0
  90. data/rbi/sentdm/models/profiles/campaign_delete_params.rbi +14 -1
  91. data/rbi/sentdm/models/profiles/campaign_list_response.rbi +667 -0
  92. data/rbi/sentdm/models/profiles/campaign_update_params.rbi +218 -4
  93. data/rbi/sentdm/models/profiles/campaign_update_response.rbi +674 -0
  94. data/rbi/sentdm/models/template_create_response.rbi +349 -0
  95. data/rbi/sentdm/models/template_list_params.rbi +10 -2
  96. data/rbi/sentdm/models/template_list_response.rbi +469 -21
  97. data/rbi/sentdm/models/template_retrieve_response.rbi +355 -0
  98. data/rbi/sentdm/models/template_update_response.rbi +349 -0
  99. data/rbi/sentdm/models/user_invite_response.rbi +336 -0
  100. data/rbi/sentdm/models/user_list_response.rbi +463 -18
  101. data/rbi/sentdm/models/user_remove_params.rbi +19 -2
  102. data/rbi/sentdm/models/user_retrieve_response.rbi +336 -0
  103. data/rbi/sentdm/models/user_update_role_response.rbi +341 -0
  104. data/rbi/sentdm/models/webhook_create_response.rbi +361 -0
  105. data/rbi/sentdm/models/webhook_list_event_types_response.rbi +433 -16
  106. data/rbi/sentdm/models/webhook_list_events_response.rbi +319 -15
  107. data/rbi/sentdm/models/webhook_list_response.rbi +480 -19
  108. data/rbi/sentdm/models/webhook_retrieve_response.rbi +363 -0
  109. data/rbi/sentdm/models/webhook_rotate_secret_params.rbi +14 -1
  110. data/rbi/sentdm/models/webhook_rotate_secret_response.rbi +148 -8
  111. data/rbi/sentdm/models/webhook_test_response.rbi +135 -8
  112. data/rbi/sentdm/models/webhook_toggle_status_response.rbi +379 -0
  113. data/rbi/sentdm/models/webhook_update_response.rbi +361 -0
  114. data/rbi/sentdm/models.rbi +0 -54
  115. data/rbi/sentdm/resources/contacts.rbi +24 -9
  116. data/rbi/sentdm/resources/conversations.rbi +10 -2
  117. data/rbi/sentdm/resources/me.rbi +6 -1
  118. data/rbi/sentdm/resources/messages.rbi +11 -1
  119. data/rbi/sentdm/resources/numbers.rbi +6 -1
  120. data/rbi/sentdm/resources/profiles/campaigns.rbi +36 -6
  121. data/rbi/sentdm/resources/profiles.rbi +174 -66
  122. data/rbi/sentdm/resources/templates.rbi +15 -5
  123. data/rbi/sentdm/resources/users.rbi +9 -4
  124. data/rbi/sentdm/resources/webhooks.rbi +15 -5
  125. data/sig/sentdm/models/contact_create_response.rbs +216 -0
  126. data/sig/sentdm/models/contact_delete_params.rbs +10 -6
  127. data/sig/sentdm/models/contact_list_response.rbs +263 -20
  128. data/sig/sentdm/models/contact_retrieve_message_summary_response.rbs +182 -0
  129. data/sig/sentdm/models/contact_retrieve_response.rbs +216 -0
  130. data/sig/sentdm/models/contact_update_response.rbs +216 -0
  131. data/sig/sentdm/models/conversation_list_messages_response.rbs +404 -0
  132. data/sig/sentdm/models/conversation_list_response.rbs +404 -0
  133. data/sig/sentdm/models/me_retrieve_response.rbs +176 -18
  134. data/sig/sentdm/models/message_retrieve_activities_response.rbs +147 -12
  135. data/sig/sentdm/models/message_retrieve_status_response.rbs +71 -9
  136. data/sig/sentdm/models/message_send_response.rbs +71 -9
  137. data/sig/sentdm/models/number_lookup_response.rbs +71 -9
  138. data/sig/sentdm/models/profile_complete_response.rbs +71 -9
  139. data/sig/sentdm/models/profile_create_params.rbs +271 -24
  140. data/sig/sentdm/models/profile_create_response.rbs +559 -0
  141. data/sig/sentdm/models/profile_delete_params.rbs +10 -6
  142. data/sig/sentdm/models/profile_list_response.rbs +615 -15
  143. data/sig/sentdm/models/profile_retrieve_response.rbs +559 -0
  144. data/sig/sentdm/models/profile_update_params.rbs +263 -12
  145. data/sig/sentdm/models/profile_update_response.rbs +559 -0
  146. data/sig/sentdm/models/profiles/campaign_create_params.rbs +108 -4
  147. data/sig/sentdm/models/profiles/campaign_create_response.rbs +357 -0
  148. data/sig/sentdm/models/profiles/campaign_delete_params.rbs +15 -8
  149. data/sig/sentdm/models/profiles/campaign_list_response.rbs +357 -0
  150. data/sig/sentdm/models/profiles/campaign_update_params.rbs +108 -4
  151. data/sig/sentdm/models/profiles/campaign_update_response.rbs +357 -0
  152. data/sig/sentdm/models/template_create_response.rbs +182 -0
  153. data/sig/sentdm/models/template_list_response.rbs +230 -19
  154. data/sig/sentdm/models/template_retrieve_response.rbs +182 -0
  155. data/sig/sentdm/models/template_update_response.rbs +182 -0
  156. data/sig/sentdm/models/user_invite_response.rbs +177 -0
  157. data/sig/sentdm/models/user_list_response.rbs +233 -15
  158. data/sig/sentdm/models/user_remove_params.rbs +10 -6
  159. data/sig/sentdm/models/user_retrieve_response.rbs +177 -0
  160. data/sig/sentdm/models/user_update_role_response.rbs +177 -0
  161. data/sig/sentdm/models/webhook_create_response.rbs +208 -0
  162. data/sig/sentdm/models/webhook_list_event_types_response.rbs +203 -15
  163. data/sig/sentdm/models/webhook_list_events_response.rbs +142 -14
  164. data/sig/sentdm/models/webhook_list_response.rbs +255 -20
  165. data/sig/sentdm/models/webhook_retrieve_response.rbs +208 -0
  166. data/sig/sentdm/models/webhook_rotate_secret_params.rbs +17 -8
  167. data/sig/sentdm/models/webhook_rotate_secret_response.rbs +71 -9
  168. data/sig/sentdm/models/webhook_test_response.rbs +71 -9
  169. data/sig/sentdm/models/webhook_toggle_status_response.rbs +208 -0
  170. data/sig/sentdm/models/webhook_update_response.rbs +208 -0
  171. data/sig/sentdm/models.rbs +0 -52
  172. data/sig/sentdm/resources/contacts.rbs +4 -4
  173. data/sig/sentdm/resources/conversations.rbs +2 -2
  174. data/sig/sentdm/resources/profiles/campaigns.rbs +5 -5
  175. data/sig/sentdm/resources/profiles.rbs +11 -11
  176. data/sig/sentdm/resources/templates.rbs +3 -3
  177. data/sig/sentdm/resources/users.rbs +3 -3
  178. data/sig/sentdm/resources/webhooks.rbs +4 -4
  179. metadata +68 -98
  180. data/lib/sentdm/models/api_meta.rb +0 -34
  181. data/lib/sentdm/models/api_response_of_contact.rb +0 -46
  182. data/lib/sentdm/models/api_response_of_contact_message_summary.rb +0 -43
  183. data/lib/sentdm/models/api_response_of_conversation_messages_list.rb +0 -43
  184. data/lib/sentdm/models/api_response_of_profile_detail.rb +0 -43
  185. data/lib/sentdm/models/api_response_of_user.rb +0 -43
  186. data/lib/sentdm/models/api_response_template.rb +0 -43
  187. data/lib/sentdm/models/api_response_webhook.rb +0 -43
  188. data/lib/sentdm/models/billing_contact_info.rb +0 -47
  189. data/lib/sentdm/models/brand_business_info.rb +0 -114
  190. data/lib/sentdm/models/brand_compliance_info.rb +0 -67
  191. data/lib/sentdm/models/brand_contact_info.rb +0 -58
  192. data/lib/sentdm/models/brands_brand_data.rb +0 -34
  193. data/lib/sentdm/models/contact_message_summary.rb +0 -76
  194. data/lib/sentdm/models/contact_response.rb +0 -126
  195. data/lib/sentdm/models/conversation_messages_list.rb +0 -245
  196. data/lib/sentdm/models/error_detail.rb +0 -42
  197. data/lib/sentdm/models/mutation_request.rb +0 -20
  198. data/lib/sentdm/models/pagination_meta.rb +0 -80
  199. data/lib/sentdm/models/payment_details.rb +0 -44
  200. data/lib/sentdm/models/profile_detail.rb +0 -605
  201. data/lib/sentdm/models/profile_settings.rb +0 -66
  202. data/lib/sentdm/models/profiles/api_response_of_brand_campaign.rb +0 -45
  203. data/lib/sentdm/models/profiles/api_response_of_list_of_brand_campaign.rb +0 -45
  204. data/lib/sentdm/models/profiles/brand_campaign.rb +0 -247
  205. data/lib/sentdm/models/profiles/campaign_data.rb +0 -130
  206. data/lib/sentdm/models/profiles/campaign_use_case.rb +0 -71
  207. data/lib/sentdm/models/profiles/campaign_use_case_data.rb +0 -29
  208. data/lib/sentdm/models/template.rb +0 -90
  209. data/lib/sentdm/models/user_response.rb +0 -82
  210. data/lib/sentdm/models/webhook_event_type.rb +0 -45
  211. data/lib/sentdm/models/webhook_response.rb +0 -95
  212. data/rbi/sentdm/models/api_meta.rbi +0 -55
  213. data/rbi/sentdm/models/api_response_of_contact.rbi +0 -74
  214. data/rbi/sentdm/models/api_response_of_contact_message_summary.rbi +0 -79
  215. data/rbi/sentdm/models/api_response_of_conversation_messages_list.rbi +0 -79
  216. data/rbi/sentdm/models/api_response_of_profile_detail.rbi +0 -74
  217. data/rbi/sentdm/models/api_response_of_user.rbi +0 -74
  218. data/rbi/sentdm/models/api_response_template.rbi +0 -74
  219. data/rbi/sentdm/models/api_response_webhook.rbi +0 -74
  220. data/rbi/sentdm/models/billing_contact_info.rbi +0 -65
  221. data/rbi/sentdm/models/brand_business_info.rbi +0 -162
  222. data/rbi/sentdm/models/brand_compliance_info.rbi +0 -84
  223. data/rbi/sentdm/models/brand_contact_info.rbi +0 -78
  224. data/rbi/sentdm/models/brands_brand_data.rbi +0 -65
  225. data/rbi/sentdm/models/contact_message_summary.rbi +0 -144
  226. data/rbi/sentdm/models/contact_response.rbi +0 -183
  227. data/rbi/sentdm/models/conversation_messages_list.rbi +0 -419
  228. data/rbi/sentdm/models/error_detail.rbi +0 -66
  229. data/rbi/sentdm/models/mutation_request.rbi +0 -32
  230. data/rbi/sentdm/models/pagination_meta.rbi +0 -135
  231. data/rbi/sentdm/models/payment_details.rbi +0 -59
  232. data/rbi/sentdm/models/profile_detail.rbi +0 -872
  233. data/rbi/sentdm/models/profile_settings.rbi +0 -86
  234. data/rbi/sentdm/models/profiles/api_response_of_brand_campaign.rbi +0 -81
  235. data/rbi/sentdm/models/profiles/api_response_of_list_of_brand_campaign.rbi +0 -76
  236. data/rbi/sentdm/models/profiles/brand_campaign.rbi +0 -299
  237. data/rbi/sentdm/models/profiles/campaign_data.rbi +0 -146
  238. data/rbi/sentdm/models/profiles/campaign_use_case.rbi +0 -110
  239. data/rbi/sentdm/models/profiles/campaign_use_case_data.rbi +0 -51
  240. data/rbi/sentdm/models/template.rbi +0 -129
  241. data/rbi/sentdm/models/user_response.rbi +0 -118
  242. data/rbi/sentdm/models/webhook_event_type.rbi +0 -74
  243. data/rbi/sentdm/models/webhook_response.rbi +0 -140
  244. data/sig/sentdm/models/api_meta.rbs +0 -27
  245. data/sig/sentdm/models/api_response_of_contact.rbs +0 -39
  246. data/sig/sentdm/models/api_response_of_contact_message_summary.rbs +0 -39
  247. data/sig/sentdm/models/api_response_of_conversation_messages_list.rbs +0 -39
  248. data/sig/sentdm/models/api_response_of_profile_detail.rbs +0 -39
  249. data/sig/sentdm/models/api_response_of_user.rbs +0 -39
  250. data/sig/sentdm/models/api_response_template.rbs +0 -39
  251. data/sig/sentdm/models/api_response_webhook.rbs +0 -39
  252. data/sig/sentdm/models/billing_contact_info.rbs +0 -30
  253. data/sig/sentdm/models/brand_business_info.rbs +0 -89
  254. data/sig/sentdm/models/brand_compliance_info.rbs +0 -50
  255. data/sig/sentdm/models/brand_contact_info.rbs +0 -45
  256. data/sig/sentdm/models/brands_brand_data.rbs +0 -30
  257. data/sig/sentdm/models/contact_message_summary.rbs +0 -84
  258. data/sig/sentdm/models/contact_response.rbs +0 -111
  259. data/sig/sentdm/models/conversation_messages_list.rbs +0 -240
  260. data/sig/sentdm/models/error_detail.rbs +0 -39
  261. data/sig/sentdm/models/mutation_request.rbs +0 -15
  262. data/sig/sentdm/models/pagination_meta.rbs +0 -67
  263. data/sig/sentdm/models/payment_details.rbs +0 -30
  264. data/sig/sentdm/models/profile_detail.rbs +0 -469
  265. data/sig/sentdm/models/profile_settings.rbs +0 -50
  266. data/sig/sentdm/models/profiles/api_response_of_brand_campaign.rbs +0 -41
  267. data/sig/sentdm/models/profiles/api_response_of_list_of_brand_campaign.rbs +0 -41
  268. data/sig/sentdm/models/profiles/brand_campaign.rbs +0 -194
  269. data/sig/sentdm/models/profiles/campaign_data.rbs +0 -87
  270. data/sig/sentdm/models/profiles/campaign_use_case.rbs +0 -66
  271. data/sig/sentdm/models/profiles/campaign_use_case_data.rbs +0 -27
  272. data/sig/sentdm/models/template.rbs +0 -79
  273. data/sig/sentdm/models/user_response.rbs +0 -72
  274. data/sig/sentdm/models/webhook_event_type.rbs +0 -51
  275. data/sig/sentdm/models/webhook_response.rbs +0 -103
@@ -0,0 +1,361 @@
1
+ # typed: strong
2
+
3
+ module Sentdm
4
+ module Models
5
+ class WebhookUpdateResponse < Sentdm::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(
9
+ Sentdm::Models::WebhookUpdateResponse,
10
+ Sentdm::Internal::AnyHash
11
+ )
12
+ end
13
+
14
+ # The response data (null if error)
15
+ sig { returns(T.nilable(Sentdm::Models::WebhookUpdateResponse::Data)) }
16
+ attr_reader :data
17
+
18
+ sig do
19
+ params(
20
+ data: T.nilable(Sentdm::Models::WebhookUpdateResponse::Data::OrHash)
21
+ ).void
22
+ end
23
+ attr_writer :data
24
+
25
+ # Error information
26
+ sig { returns(T.nilable(Sentdm::Models::WebhookUpdateResponse::Error)) }
27
+ attr_reader :error
28
+
29
+ sig do
30
+ params(
31
+ error: T.nilable(Sentdm::Models::WebhookUpdateResponse::Error::OrHash)
32
+ ).void
33
+ end
34
+ attr_writer :error
35
+
36
+ # Request and response metadata
37
+ sig { returns(T.nilable(Sentdm::Models::WebhookUpdateResponse::Meta)) }
38
+ attr_reader :meta
39
+
40
+ sig do
41
+ params(meta: Sentdm::Models::WebhookUpdateResponse::Meta::OrHash).void
42
+ end
43
+ attr_writer :meta
44
+
45
+ # Indicates whether the request was successful
46
+ sig { returns(T.nilable(T::Boolean)) }
47
+ attr_reader :success
48
+
49
+ sig { params(success: T::Boolean).void }
50
+ attr_writer :success
51
+
52
+ # Standard API response envelope for all v3 endpoints
53
+ sig do
54
+ params(
55
+ data: T.nilable(Sentdm::Models::WebhookUpdateResponse::Data::OrHash),
56
+ error:
57
+ T.nilable(Sentdm::Models::WebhookUpdateResponse::Error::OrHash),
58
+ meta: Sentdm::Models::WebhookUpdateResponse::Meta::OrHash,
59
+ success: T::Boolean
60
+ ).returns(T.attached_class)
61
+ end
62
+ def self.new(
63
+ # The response data (null if error)
64
+ data: nil,
65
+ # Error information
66
+ error: nil,
67
+ # Request and response metadata
68
+ meta: nil,
69
+ # Indicates whether the request was successful
70
+ success: nil
71
+ )
72
+ end
73
+
74
+ sig do
75
+ override.returns(
76
+ {
77
+ data: T.nilable(Sentdm::Models::WebhookUpdateResponse::Data),
78
+ error: T.nilable(Sentdm::Models::WebhookUpdateResponse::Error),
79
+ meta: Sentdm::Models::WebhookUpdateResponse::Meta,
80
+ success: T::Boolean
81
+ }
82
+ )
83
+ end
84
+ def to_hash
85
+ end
86
+
87
+ class Data < Sentdm::Internal::Type::BaseModel
88
+ OrHash =
89
+ T.type_alias do
90
+ T.any(
91
+ Sentdm::Models::WebhookUpdateResponse::Data,
92
+ Sentdm::Internal::AnyHash
93
+ )
94
+ end
95
+
96
+ sig { returns(T.nilable(String)) }
97
+ attr_reader :id
98
+
99
+ sig { params(id: String).void }
100
+ attr_writer :id
101
+
102
+ sig { returns(T.nilable(Integer)) }
103
+ attr_reader :consecutive_failures
104
+
105
+ sig { params(consecutive_failures: Integer).void }
106
+ attr_writer :consecutive_failures
107
+
108
+ sig { returns(T.nilable(Time)) }
109
+ attr_reader :created_at
110
+
111
+ sig { params(created_at: Time).void }
112
+ attr_writer :created_at
113
+
114
+ # Which customer owns this — the key's own, or the profile named in x-profile-id.
115
+ # Says whose resource this is, which the resource's own id does not.
116
+ sig { returns(T.nilable(String)) }
117
+ attr_reader :customer_id
118
+
119
+ sig { params(customer_id: String).void }
120
+ attr_writer :customer_id
121
+
122
+ sig { returns(T.nilable(String)) }
123
+ attr_reader :display_name
124
+
125
+ sig { params(display_name: String).void }
126
+ attr_writer :display_name
127
+
128
+ sig { returns(T.nilable(String)) }
129
+ attr_reader :endpoint_url
130
+
131
+ sig { params(endpoint_url: String).void }
132
+ attr_writer :endpoint_url
133
+
134
+ sig { returns(T.nilable(T::Hash[Symbol, T::Array[String]])) }
135
+ attr_accessor :event_filters
136
+
137
+ sig { returns(T.nilable(T::Array[String])) }
138
+ attr_reader :event_types
139
+
140
+ sig { params(event_types: T::Array[String]).void }
141
+ attr_writer :event_types
142
+
143
+ sig { returns(T.nilable(T::Boolean)) }
144
+ attr_reader :is_active
145
+
146
+ sig { params(is_active: T::Boolean).void }
147
+ attr_writer :is_active
148
+
149
+ sig { returns(T.nilable(Time)) }
150
+ attr_accessor :last_delivery_attempt_at
151
+
152
+ sig { returns(T.nilable(Time)) }
153
+ attr_accessor :last_successful_delivery_at
154
+
155
+ sig { returns(T.nilable(Integer)) }
156
+ attr_reader :retry_count
157
+
158
+ sig { params(retry_count: Integer).void }
159
+ attr_writer :retry_count
160
+
161
+ sig { returns(T.nilable(String)) }
162
+ attr_accessor :signing_secret
163
+
164
+ sig { returns(T.nilable(Integer)) }
165
+ attr_reader :timeout_seconds
166
+
167
+ sig { params(timeout_seconds: Integer).void }
168
+ attr_writer :timeout_seconds
169
+
170
+ sig { returns(T.nilable(Time)) }
171
+ attr_accessor :updated_at
172
+
173
+ # The response data (null if error)
174
+ sig do
175
+ params(
176
+ id: String,
177
+ consecutive_failures: Integer,
178
+ created_at: Time,
179
+ customer_id: String,
180
+ display_name: String,
181
+ endpoint_url: String,
182
+ event_filters: T.nilable(T::Hash[Symbol, T::Array[String]]),
183
+ event_types: T::Array[String],
184
+ is_active: T::Boolean,
185
+ last_delivery_attempt_at: T.nilable(Time),
186
+ last_successful_delivery_at: T.nilable(Time),
187
+ retry_count: Integer,
188
+ signing_secret: T.nilable(String),
189
+ timeout_seconds: Integer,
190
+ updated_at: T.nilable(Time)
191
+ ).returns(T.attached_class)
192
+ end
193
+ def self.new(
194
+ id: nil,
195
+ consecutive_failures: nil,
196
+ created_at: nil,
197
+ # Which customer owns this — the key's own, or the profile named in x-profile-id.
198
+ # Says whose resource this is, which the resource's own id does not.
199
+ customer_id: nil,
200
+ display_name: nil,
201
+ endpoint_url: nil,
202
+ event_filters: nil,
203
+ event_types: nil,
204
+ is_active: nil,
205
+ last_delivery_attempt_at: nil,
206
+ last_successful_delivery_at: nil,
207
+ retry_count: nil,
208
+ signing_secret: nil,
209
+ timeout_seconds: nil,
210
+ updated_at: nil
211
+ )
212
+ end
213
+
214
+ sig do
215
+ override.returns(
216
+ {
217
+ id: String,
218
+ consecutive_failures: Integer,
219
+ created_at: Time,
220
+ customer_id: String,
221
+ display_name: String,
222
+ endpoint_url: String,
223
+ event_filters: T.nilable(T::Hash[Symbol, T::Array[String]]),
224
+ event_types: T::Array[String],
225
+ is_active: T::Boolean,
226
+ last_delivery_attempt_at: T.nilable(Time),
227
+ last_successful_delivery_at: T.nilable(Time),
228
+ retry_count: Integer,
229
+ signing_secret: T.nilable(String),
230
+ timeout_seconds: Integer,
231
+ updated_at: T.nilable(Time)
232
+ }
233
+ )
234
+ end
235
+ def to_hash
236
+ end
237
+ end
238
+
239
+ class Error < Sentdm::Internal::Type::BaseModel
240
+ OrHash =
241
+ T.type_alias do
242
+ T.any(
243
+ Sentdm::Models::WebhookUpdateResponse::Error,
244
+ Sentdm::Internal::AnyHash
245
+ )
246
+ end
247
+
248
+ # Machine-readable error code (e.g., "RESOURCE_001")
249
+ sig { returns(T.nilable(String)) }
250
+ attr_reader :code
251
+
252
+ sig { params(code: String).void }
253
+ attr_writer :code
254
+
255
+ # Additional validation error details (field-level errors)
256
+ sig { returns(T.nilable(T::Hash[Symbol, T::Array[String]])) }
257
+ attr_accessor :details
258
+
259
+ # URL to documentation about this error
260
+ sig { returns(T.nilable(String)) }
261
+ attr_accessor :doc_url
262
+
263
+ # Human-readable error message
264
+ sig { returns(T.nilable(String)) }
265
+ attr_reader :message
266
+
267
+ sig { params(message: String).void }
268
+ attr_writer :message
269
+
270
+ # Error information
271
+ sig do
272
+ params(
273
+ code: String,
274
+ details: T.nilable(T::Hash[Symbol, T::Array[String]]),
275
+ doc_url: T.nilable(String),
276
+ message: String
277
+ ).returns(T.attached_class)
278
+ end
279
+ def self.new(
280
+ # Machine-readable error code (e.g., "RESOURCE_001")
281
+ code: nil,
282
+ # Additional validation error details (field-level errors)
283
+ details: nil,
284
+ # URL to documentation about this error
285
+ doc_url: nil,
286
+ # Human-readable error message
287
+ message: nil
288
+ )
289
+ end
290
+
291
+ sig do
292
+ override.returns(
293
+ {
294
+ code: String,
295
+ details: T.nilable(T::Hash[Symbol, T::Array[String]]),
296
+ doc_url: T.nilable(String),
297
+ message: String
298
+ }
299
+ )
300
+ end
301
+ def to_hash
302
+ end
303
+ end
304
+
305
+ class Meta < Sentdm::Internal::Type::BaseModel
306
+ OrHash =
307
+ T.type_alias do
308
+ T.any(
309
+ Sentdm::Models::WebhookUpdateResponse::Meta,
310
+ Sentdm::Internal::AnyHash
311
+ )
312
+ end
313
+
314
+ # Unique identifier for this request (for tracing and support)
315
+ sig { returns(T.nilable(String)) }
316
+ attr_reader :request_id
317
+
318
+ sig { params(request_id: String).void }
319
+ attr_writer :request_id
320
+
321
+ # Server timestamp when the response was generated
322
+ sig { returns(T.nilable(Time)) }
323
+ attr_reader :timestamp
324
+
325
+ sig { params(timestamp: Time).void }
326
+ attr_writer :timestamp
327
+
328
+ # API version used for this request
329
+ sig { returns(T.nilable(String)) }
330
+ attr_reader :version
331
+
332
+ sig { params(version: String).void }
333
+ attr_writer :version
334
+
335
+ # Request and response metadata
336
+ sig do
337
+ params(request_id: String, timestamp: Time, version: String).returns(
338
+ T.attached_class
339
+ )
340
+ end
341
+ def self.new(
342
+ # Unique identifier for this request (for tracing and support)
343
+ request_id: nil,
344
+ # Server timestamp when the response was generated
345
+ timestamp: nil,
346
+ # API version used for this request
347
+ version: nil
348
+ )
349
+ end
350
+
351
+ sig do
352
+ override.returns(
353
+ { request_id: String, timestamp: Time, version: String }
354
+ )
355
+ end
356
+ def to_hash
357
+ end
358
+ end
359
+ end
360
+ end
361
+ end
@@ -1,46 +1,14 @@
1
1
  # typed: strong
2
2
 
3
3
  module Sentdm
4
- APIMeta = Sentdm::Models::APIMeta
5
-
6
- APIResponseOfContact = Sentdm::Models::APIResponseOfContact
7
-
8
- APIResponseOfContactMessageSummary =
9
- Sentdm::Models::APIResponseOfContactMessageSummary
10
-
11
- APIResponseOfConversationMessagesList =
12
- Sentdm::Models::APIResponseOfConversationMessagesList
13
-
14
- APIResponseOfProfileDetail = Sentdm::Models::APIResponseOfProfileDetail
15
-
16
- APIResponseOfUser = Sentdm::Models::APIResponseOfUser
17
-
18
- APIResponseTemplate = Sentdm::Models::APIResponseTemplate
19
-
20
- APIResponseWebhook = Sentdm::Models::APIResponseWebhook
21
-
22
4
  AuthenticationConfig = Sentdm::Models::AuthenticationConfig
23
5
 
24
- BillingContactInfo = Sentdm::Models::BillingContactInfo
25
-
26
- BrandBusinessInfo = Sentdm::Models::BrandBusinessInfo
27
-
28
- BrandComplianceInfo = Sentdm::Models::BrandComplianceInfo
29
-
30
- BrandContactInfo = Sentdm::Models::BrandContactInfo
31
-
32
- BrandsBrandData = Sentdm::Models::BrandsBrandData
33
-
34
6
  ContactCreateParams = Sentdm::Models::ContactCreateParams
35
7
 
36
8
  ContactDeleteParams = Sentdm::Models::ContactDeleteParams
37
9
 
38
10
  ContactListParams = Sentdm::Models::ContactListParams
39
11
 
40
- ContactMessageSummary = Sentdm::Models::ContactMessageSummary
41
-
42
- ContactResponse = Sentdm::Models::ContactResponse
43
-
44
12
  ContactRetrieveMessageSummaryParams =
45
13
  Sentdm::Models::ContactRetrieveMessageSummaryParams
46
14
 
@@ -53,12 +21,8 @@ module Sentdm
53
21
 
54
22
  ConversationListParams = Sentdm::Models::ConversationListParams
55
23
 
56
- ConversationMessagesList = Sentdm::Models::ConversationMessagesList
57
-
58
24
  DestinationCountry = Sentdm::Models::DestinationCountry
59
25
 
60
- ErrorDetail = Sentdm::Models::ErrorDetail
61
-
62
26
  InboundMessageEvent = Sentdm::Models::InboundMessageEvent
63
27
 
64
28
  InboundMessageEventPayload = Sentdm::Models::InboundMessageEventPayload
@@ -76,38 +40,26 @@ module Sentdm
76
40
 
77
41
  MessageSendParams = Sentdm::Models::MessageSendParams
78
42
 
79
- MutationRequest = Sentdm::Models::MutationRequest
80
-
81
43
  NumberLookupParams = Sentdm::Models::NumberLookupParams
82
44
 
83
- PaginationMeta = Sentdm::Models::PaginationMeta
84
-
85
- PaymentDetails = Sentdm::Models::PaymentDetails
86
-
87
45
  ProfileCompleteParams = Sentdm::Models::ProfileCompleteParams
88
46
 
89
47
  ProfileCreateParams = Sentdm::Models::ProfileCreateParams
90
48
 
91
49
  ProfileDeleteParams = Sentdm::Models::ProfileDeleteParams
92
50
 
93
- ProfileDetail = Sentdm::Models::ProfileDetail
94
-
95
51
  ProfileListParams = Sentdm::Models::ProfileListParams
96
52
 
97
53
  ProfileRetrieveParams = Sentdm::Models::ProfileRetrieveParams
98
54
 
99
55
  Profiles = Sentdm::Models::Profiles
100
56
 
101
- ProfileSettings = Sentdm::Models::ProfileSettings
102
-
103
57
  ProfileUpdateParams = Sentdm::Models::ProfileUpdateParams
104
58
 
105
59
  TcrBrandRelationship = Sentdm::Models::TcrBrandRelationship
106
60
 
107
61
  TcrVertical = Sentdm::Models::TcrVertical
108
62
 
109
- Template = Sentdm::Models::Template
110
-
111
63
  TemplateBody = Sentdm::Models::TemplateBody
112
64
 
113
65
  TemplateBodyContent = Sentdm::Models::TemplateBodyContent
@@ -144,8 +96,6 @@ module Sentdm
144
96
 
145
97
  UserRemoveParams = Sentdm::Models::UserRemoveParams
146
98
 
147
- UserResponse = Sentdm::Models::UserResponse
148
-
149
99
  UserRetrieveParams = Sentdm::Models::UserRetrieveParams
150
100
 
151
101
  UserUpdateRoleParams = Sentdm::Models::UserUpdateRoleParams
@@ -154,16 +104,12 @@ module Sentdm
154
104
 
155
105
  WebhookDeleteParams = Sentdm::Models::WebhookDeleteParams
156
106
 
157
- WebhookEventType = Sentdm::Models::WebhookEventType
158
-
159
107
  WebhookListEventsParams = Sentdm::Models::WebhookListEventsParams
160
108
 
161
109
  WebhookListEventTypesParams = Sentdm::Models::WebhookListEventTypesParams
162
110
 
163
111
  WebhookListParams = Sentdm::Models::WebhookListParams
164
112
 
165
- WebhookResponse = Sentdm::Models::WebhookResponse
166
-
167
113
  WebhookRetrieveParams = Sentdm::Models::WebhookRetrieveParams
168
114
 
169
115
  WebhookRotateSecretParams = Sentdm::Models::WebhookRotateSecretParams
@@ -2,7 +2,15 @@
2
2
 
3
3
  module Sentdm
4
4
  module Resources
5
- # Create, update, and manage customer contact lists
5
+ # The people you message, and their channel identities.
6
+ #
7
+ # A contact holds one identity per channel — a phone number, a WhatsApp number —
8
+ # so routing can choose between them for the same person. Opt-out is recorded
9
+ # against the contact and honoured on every send, whichever channel it came
10
+ # through.
11
+ #
12
+ # `GET /v3/contacts/{id}/message-summary` is the per-contact view of what you have
13
+ # sent and what happened to it.
6
14
  class Contacts
7
15
  # Creates a new contact by phone number and associates it with the authenticated
8
16
  # customer.
@@ -13,7 +21,7 @@ module Sentdm
13
21
  idempotency_key: String,
14
22
  x_profile_id: String,
15
23
  request_options: Sentdm::RequestOptions::OrHash
16
- ).returns(Sentdm::APIResponseOfContact)
24
+ ).returns(Sentdm::Models::ContactCreateResponse)
17
25
  end
18
26
  def create(
19
27
  # Body param: Phone number of the contact to create
@@ -41,7 +49,7 @@ module Sentdm
41
49
  id: String,
42
50
  x_profile_id: String,
43
51
  request_options: Sentdm::RequestOptions::OrHash
44
- ).returns(Sentdm::APIResponseOfContact)
52
+ ).returns(Sentdm::Models::ContactRetrieveResponse)
45
53
  end
46
54
  def retrieve(
47
55
  # Contact ID from route parameter
@@ -53,8 +61,7 @@ module Sentdm
53
61
  )
54
62
  end
55
63
 
56
- # Updates a contact's default channel and/or opt-out status. Inherited contacts
57
- # cannot be updated.
64
+ # Updates a contact's default channel and/or opt-out status.
58
65
  sig do
59
66
  params(
60
67
  id: String,
@@ -64,7 +71,7 @@ module Sentdm
64
71
  idempotency_key: String,
65
72
  x_profile_id: String,
66
73
  request_options: Sentdm::RequestOptions::OrHash
67
- ).returns(Sentdm::APIResponseOfContact)
74
+ ).returns(Sentdm::Models::ContactUpdateResponse)
68
75
  end
69
76
  def update(
70
77
  # Path param: Contact ID from route parameter
@@ -121,8 +128,16 @@ module Sentdm
121
128
  )
122
129
  end
123
130
 
124
- # Dissociates a contact from the authenticated customer. Inherited contacts cannot
125
- # be deleted.
131
+ # **Deprecated.** Use `PATCH /v3/contacts/{id}` with `{"opt_out": true}` instead,
132
+ # and expect this to be removed in a future release. It still behaves exactly as
133
+ # before, so nothing needs to change today.
134
+ #
135
+ # Opting a contact out stops every send to them, which is what deleting one was
136
+ # mostly used for — and it keeps the record of who they were and that they asked.
137
+ # A delete discards the consent history along with the contact, which is the part
138
+ # you need if anyone ever asks why you stopped, or why you started again.
139
+ #
140
+ # Dissociates a contact from the authenticated customer.
126
141
  sig do
127
142
  params(
128
143
  id: String,
@@ -154,7 +169,7 @@ module Sentdm
154
169
  contact_id: String,
155
170
  x_profile_id: String,
156
171
  request_options: Sentdm::RequestOptions::OrHash
157
- ).returns(Sentdm::APIResponseOfContactMessageSummary)
172
+ ).returns(Sentdm::Models::ContactRetrieveMessageSummaryResponse)
158
173
  end
159
174
  def retrieve_message_summary(
160
175
  contact_id,
@@ -2,6 +2,14 @@
2
2
 
3
3
  module Sentdm
4
4
  module Resources
5
+ # Inbound and outbound messages, grouped by the person they are with.
6
+ #
7
+ # A conversation is the thread for one contact across every channel — a reply by
8
+ # SMS and one by WhatsApp belong to the same conversation, because they are the
9
+ # same person talking to you.
10
+ #
11
+ # Read-only. Sending is **Messages**; a reply arrives here and through your
12
+ # webhooks.
5
13
  class Conversations
6
14
  # Retrieves a paginated list of the authenticated customer's messages across all
7
15
  # conversations, ordered by created date (most recent first).
@@ -11,7 +19,7 @@ module Sentdm
11
19
  page_size: Integer,
12
20
  x_profile_id: String,
13
21
  request_options: Sentdm::RequestOptions::OrHash
14
- ).returns(Sentdm::APIResponseOfConversationMessagesList)
22
+ ).returns(Sentdm::Models::ConversationListResponse)
15
23
  end
16
24
  def list(
17
25
  # Query param
@@ -35,7 +43,7 @@ module Sentdm
35
43
  page_size: Integer,
36
44
  x_profile_id: String,
37
45
  request_options: Sentdm::RequestOptions::OrHash
38
- ).returns(Sentdm::APIResponseOfConversationMessagesList)
46
+ ).returns(Sentdm::Models::ConversationListMessagesResponse)
39
47
  end
40
48
  def list_messages(
41
49
  # Path param: Conversation id from the route.
@@ -2,7 +2,12 @@
2
2
 
3
3
  module Sentdm
4
4
  module Resources
5
- # Retrieve account details
5
+ # Who the current key is.
6
+ #
7
+ # `GET /v3/me` answers with the account the key authenticates as, which is the
8
+ # quickest way to tell a live key from a test one, an organization key from a
9
+ # sender profile's, and to confirm `x-profile-id` resolved to the profile you
10
+ # meant.
6
11
  class Me
7
12
  # Returns the account associated with the provided API key. The response includes
8
13
  # account identity, contact information, messaging channel configuration, and —
@@ -2,7 +2,17 @@
2
2
 
3
3
  module Sentdm
4
4
  module Resources
5
- # Send and track SMS and WhatsApp messages
5
+ # Send a message and follow what happened to it.
6
+ #
7
+ # One endpoint sends on any channel: pass `channel: "sent"` and we pick between
8
+ # SMS, WhatsApp and RCS per recipient using your routing rules, or name a channel
9
+ # to pin it. A send is accepted asynchronously — `POST /v3/messages` returns an
10
+ # id, and delivery is reported through `GET /v3/messages/{id}`, its activities, or
11
+ # a webhook.
12
+ #
13
+ # **A message needs a sender.** What you can send, where, and at what cost is
14
+ # decided by the markets under **Channels** — so a recipient in a country you hold
15
+ # no sender for is refused here rather than queued.
6
16
  class Messages
7
17
  # Retrieves the activity log for a specific message. Activities track the message
8
18
  # lifecycle including acceptance, processing, sending, delivery, and any errors.
@@ -2,7 +2,12 @@
2
2
 
3
3
  module Sentdm
4
4
  module Resources
5
- # Manage and lookup phone numbers
5
+ # What a phone number actually is, before you send to it.
6
+ #
7
+ # A lookup returns the number's country, line type and carrier, which is what
8
+ # decides whether it is reachable on a channel and what it costs. Worth doing on
9
+ # import rather than on send: a landline in a contact list is a message that can
10
+ # never be delivered.
6
11
  class Numbers
7
12
  # Retrieves detailed information about a phone number including carrier, line
8
13
  # type, porting status, and VoIP detection. Uses the customer's messaging provider