sentdm 0.26.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 (293) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +40 -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/inbound_message_event.rb +52 -0
  15. data/lib/sentdm/models/inbound_message_event_payload.rb +81 -0
  16. data/lib/sentdm/models/me_retrieve_response.rb +242 -12
  17. data/lib/sentdm/models/message_event.rb +53 -0
  18. data/lib/sentdm/models/message_event_payload.rb +92 -0
  19. data/lib/sentdm/models/message_retrieve_activities_response.rb +165 -7
  20. data/lib/sentdm/models/message_retrieve_status_response.rb +74 -6
  21. data/lib/sentdm/models/message_send_response.rb +113 -28
  22. data/lib/sentdm/models/number_lookup_response.rb +74 -6
  23. data/lib/sentdm/models/profile_complete_response.rb +74 -6
  24. data/lib/sentdm/models/profile_create_params.rb +378 -26
  25. data/lib/sentdm/models/profile_create_response.rb +760 -0
  26. data/lib/sentdm/models/profile_delete_params.rb +16 -2
  27. data/lib/sentdm/models/profile_list_response.rb +825 -14
  28. data/lib/sentdm/models/profile_retrieve_response.rb +762 -0
  29. data/lib/sentdm/models/profile_update_params.rb +391 -24
  30. data/lib/sentdm/models/profile_update_response.rb +760 -0
  31. data/lib/sentdm/models/profiles/campaign_create_params.rb +156 -3
  32. data/lib/sentdm/models/profiles/campaign_create_response.rb +420 -0
  33. data/lib/sentdm/models/profiles/campaign_delete_params.rb +17 -2
  34. data/lib/sentdm/models/profiles/campaign_list_response.rb +421 -0
  35. data/lib/sentdm/models/profiles/campaign_update_params.rb +156 -3
  36. data/lib/sentdm/models/profiles/campaign_update_response.rb +420 -0
  37. data/lib/sentdm/models/template_create_response.rb +209 -0
  38. data/lib/sentdm/models/template_event.rb +52 -0
  39. data/lib/sentdm/models/template_event_payload.rb +88 -0
  40. data/lib/sentdm/models/template_list_params.rb +9 -2
  41. data/lib/sentdm/models/template_list_response.rb +262 -16
  42. data/lib/sentdm/models/template_retrieve_response.rb +209 -0
  43. data/lib/sentdm/models/template_update_response.rb +209 -0
  44. data/lib/sentdm/models/user_invite_response.rb +201 -0
  45. data/lib/sentdm/models/user_list_response.rb +259 -14
  46. data/lib/sentdm/models/user_remove_params.rb +16 -2
  47. data/lib/sentdm/models/user_retrieve_response.rb +201 -0
  48. data/lib/sentdm/models/user_update_role_response.rb +201 -0
  49. data/lib/sentdm/models/webhook_create_response.rb +229 -0
  50. data/lib/sentdm/models/webhook_list_event_types_response.rb +213 -13
  51. data/lib/sentdm/models/webhook_list_events_response.rb +207 -16
  52. data/lib/sentdm/models/webhook_list_response.rb +280 -15
  53. data/lib/sentdm/models/webhook_retrieve_response.rb +229 -0
  54. data/lib/sentdm/models/webhook_rotate_secret_params.rb +17 -2
  55. data/lib/sentdm/models/webhook_rotate_secret_response.rb +74 -6
  56. data/lib/sentdm/models/webhook_test_response.rb +74 -6
  57. data/lib/sentdm/models/webhook_toggle_status_response.rb +229 -0
  58. data/lib/sentdm/models/webhook_update_response.rb +229 -0
  59. data/lib/sentdm/models.rb +11 -51
  60. data/lib/sentdm/resources/contacts.rb +30 -13
  61. data/lib/sentdm/resources/conversations.rb +12 -4
  62. data/lib/sentdm/resources/me.rb +6 -1
  63. data/lib/sentdm/resources/messages.rb +17 -5
  64. data/lib/sentdm/resources/numbers.rb +6 -1
  65. data/lib/sentdm/resources/profiles/campaigns.rb +47 -9
  66. data/lib/sentdm/resources/profiles.rb +137 -61
  67. data/lib/sentdm/resources/templates.rb +14 -8
  68. data/lib/sentdm/resources/users.rb +15 -10
  69. data/lib/sentdm/resources/webhooks.rb +19 -9
  70. data/lib/sentdm/version.rb +1 -1
  71. data/lib/sentdm.rb +28 -32
  72. data/rbi/sentdm/client.rbi +71 -8
  73. data/rbi/sentdm/models/contact_create_response.rbi +407 -0
  74. data/rbi/sentdm/models/contact_delete_params.rbi +19 -2
  75. data/rbi/sentdm/models/contact_list_response.rbi +527 -21
  76. data/rbi/sentdm/models/contact_retrieve_message_summary_response.rbi +397 -0
  77. data/rbi/sentdm/models/contact_retrieve_response.rbi +409 -0
  78. data/rbi/sentdm/models/contact_update_response.rbi +407 -0
  79. data/rbi/sentdm/models/conversation_list_messages_response.rbi +843 -0
  80. data/rbi/sentdm/models/conversation_list_response.rbi +819 -0
  81. data/rbi/sentdm/models/inbound_message_event.rbi +88 -0
  82. data/rbi/sentdm/models/inbound_message_event_payload.rbi +122 -0
  83. data/rbi/sentdm/models/me_retrieve_response.rbi +367 -16
  84. data/rbi/sentdm/models/message_event.rbi +86 -0
  85. data/rbi/sentdm/models/message_event_payload.rbi +132 -0
  86. data/rbi/sentdm/models/message_retrieve_activities_response.rbi +335 -11
  87. data/rbi/sentdm/models/message_retrieve_status_response.rbi +148 -8
  88. data/rbi/sentdm/models/message_send_response.rbi +178 -32
  89. data/rbi/sentdm/models/number_lookup_response.rbi +135 -8
  90. data/rbi/sentdm/models/profile_complete_response.rbi +137 -8
  91. data/rbi/sentdm/models/profile_create_params.rbi +592 -42
  92. data/rbi/sentdm/models/profile_create_response.rbi +1226 -0
  93. data/rbi/sentdm/models/profile_delete_params.rbi +19 -2
  94. data/rbi/sentdm/models/profile_list_response.rbi +1366 -18
  95. data/rbi/sentdm/models/profile_retrieve_response.rbi +1230 -0
  96. data/rbi/sentdm/models/profile_update_params.rbi +610 -30
  97. data/rbi/sentdm/models/profile_update_response.rbi +1226 -0
  98. data/rbi/sentdm/models/profiles/campaign_create_params.rbi +218 -4
  99. data/rbi/sentdm/models/profiles/campaign_create_response.rbi +674 -0
  100. data/rbi/sentdm/models/profiles/campaign_delete_params.rbi +14 -1
  101. data/rbi/sentdm/models/profiles/campaign_list_response.rbi +667 -0
  102. data/rbi/sentdm/models/profiles/campaign_update_params.rbi +218 -4
  103. data/rbi/sentdm/models/profiles/campaign_update_response.rbi +674 -0
  104. data/rbi/sentdm/models/template_create_response.rbi +349 -0
  105. data/rbi/sentdm/models/template_event.rbi +84 -0
  106. data/rbi/sentdm/models/template_event_payload.rbi +131 -0
  107. data/rbi/sentdm/models/template_list_params.rbi +10 -2
  108. data/rbi/sentdm/models/template_list_response.rbi +469 -21
  109. data/rbi/sentdm/models/template_retrieve_response.rbi +355 -0
  110. data/rbi/sentdm/models/template_update_response.rbi +349 -0
  111. data/rbi/sentdm/models/user_invite_response.rbi +336 -0
  112. data/rbi/sentdm/models/user_list_response.rbi +463 -18
  113. data/rbi/sentdm/models/user_remove_params.rbi +19 -2
  114. data/rbi/sentdm/models/user_retrieve_response.rbi +336 -0
  115. data/rbi/sentdm/models/user_update_role_response.rbi +341 -0
  116. data/rbi/sentdm/models/webhook_create_response.rbi +361 -0
  117. data/rbi/sentdm/models/webhook_list_event_types_response.rbi +433 -16
  118. data/rbi/sentdm/models/webhook_list_events_response.rbi +379 -19
  119. data/rbi/sentdm/models/webhook_list_response.rbi +480 -19
  120. data/rbi/sentdm/models/webhook_retrieve_response.rbi +363 -0
  121. data/rbi/sentdm/models/webhook_rotate_secret_params.rbi +14 -1
  122. data/rbi/sentdm/models/webhook_rotate_secret_response.rbi +148 -8
  123. data/rbi/sentdm/models/webhook_test_response.rbi +135 -8
  124. data/rbi/sentdm/models/webhook_toggle_status_response.rbi +379 -0
  125. data/rbi/sentdm/models/webhook_update_response.rbi +361 -0
  126. data/rbi/sentdm/models.rbi +11 -53
  127. data/rbi/sentdm/resources/contacts.rbi +24 -9
  128. data/rbi/sentdm/resources/conversations.rbi +10 -2
  129. data/rbi/sentdm/resources/me.rbi +6 -1
  130. data/rbi/sentdm/resources/messages.rbi +17 -5
  131. data/rbi/sentdm/resources/numbers.rbi +6 -1
  132. data/rbi/sentdm/resources/profiles/campaigns.rbi +36 -6
  133. data/rbi/sentdm/resources/profiles.rbi +177 -68
  134. data/rbi/sentdm/resources/templates.rbi +15 -5
  135. data/rbi/sentdm/resources/users.rbi +12 -6
  136. data/rbi/sentdm/resources/webhooks.rbi +15 -5
  137. data/sig/sentdm/models/contact_create_response.rbs +216 -0
  138. data/sig/sentdm/models/contact_delete_params.rbs +10 -6
  139. data/sig/sentdm/models/contact_list_response.rbs +263 -20
  140. data/sig/sentdm/models/contact_retrieve_message_summary_response.rbs +182 -0
  141. data/sig/sentdm/models/contact_retrieve_response.rbs +216 -0
  142. data/sig/sentdm/models/contact_update_response.rbs +216 -0
  143. data/sig/sentdm/models/conversation_list_messages_response.rbs +404 -0
  144. data/sig/sentdm/models/conversation_list_response.rbs +404 -0
  145. data/sig/sentdm/models/inbound_message_event.rbs +39 -0
  146. data/sig/sentdm/models/inbound_message_event_payload.rbs +69 -0
  147. data/sig/sentdm/models/me_retrieve_response.rbs +176 -18
  148. data/sig/sentdm/models/message_event.rbs +39 -0
  149. data/sig/sentdm/models/message_event_payload.rbs +72 -0
  150. data/sig/sentdm/models/message_retrieve_activities_response.rbs +147 -12
  151. data/sig/sentdm/models/message_retrieve_status_response.rbs +71 -9
  152. data/sig/sentdm/models/message_send_response.rbs +71 -9
  153. data/sig/sentdm/models/number_lookup_response.rbs +71 -9
  154. data/sig/sentdm/models/profile_complete_response.rbs +71 -9
  155. data/sig/sentdm/models/profile_create_params.rbs +271 -24
  156. data/sig/sentdm/models/profile_create_response.rbs +559 -0
  157. data/sig/sentdm/models/profile_delete_params.rbs +10 -6
  158. data/sig/sentdm/models/profile_list_response.rbs +615 -15
  159. data/sig/sentdm/models/profile_retrieve_response.rbs +559 -0
  160. data/sig/sentdm/models/profile_update_params.rbs +263 -12
  161. data/sig/sentdm/models/profile_update_response.rbs +559 -0
  162. data/sig/sentdm/models/profiles/campaign_create_params.rbs +108 -4
  163. data/sig/sentdm/models/profiles/campaign_create_response.rbs +357 -0
  164. data/sig/sentdm/models/profiles/campaign_delete_params.rbs +15 -8
  165. data/sig/sentdm/models/profiles/campaign_list_response.rbs +357 -0
  166. data/sig/sentdm/models/profiles/campaign_update_params.rbs +108 -4
  167. data/sig/sentdm/models/profiles/campaign_update_response.rbs +357 -0
  168. data/sig/sentdm/models/template_create_response.rbs +182 -0
  169. data/sig/sentdm/models/template_event.rbs +39 -0
  170. data/sig/sentdm/models/template_event_payload.rbs +76 -0
  171. data/sig/sentdm/models/template_list_response.rbs +230 -19
  172. data/sig/sentdm/models/template_retrieve_response.rbs +182 -0
  173. data/sig/sentdm/models/template_update_response.rbs +182 -0
  174. data/sig/sentdm/models/user_invite_response.rbs +177 -0
  175. data/sig/sentdm/models/user_list_response.rbs +233 -15
  176. data/sig/sentdm/models/user_remove_params.rbs +10 -6
  177. data/sig/sentdm/models/user_retrieve_response.rbs +177 -0
  178. data/sig/sentdm/models/user_update_role_response.rbs +177 -0
  179. data/sig/sentdm/models/webhook_create_response.rbs +208 -0
  180. data/sig/sentdm/models/webhook_list_event_types_response.rbs +203 -15
  181. data/sig/sentdm/models/webhook_list_events_response.rbs +160 -19
  182. data/sig/sentdm/models/webhook_list_response.rbs +255 -20
  183. data/sig/sentdm/models/webhook_retrieve_response.rbs +208 -0
  184. data/sig/sentdm/models/webhook_rotate_secret_params.rbs +17 -8
  185. data/sig/sentdm/models/webhook_rotate_secret_response.rbs +71 -9
  186. data/sig/sentdm/models/webhook_test_response.rbs +71 -9
  187. data/sig/sentdm/models/webhook_toggle_status_response.rbs +208 -0
  188. data/sig/sentdm/models/webhook_update_response.rbs +208 -0
  189. data/sig/sentdm/models.rbs +11 -51
  190. data/sig/sentdm/resources/contacts.rbs +4 -4
  191. data/sig/sentdm/resources/conversations.rbs +2 -2
  192. data/sig/sentdm/resources/profiles/campaigns.rbs +5 -5
  193. data/sig/sentdm/resources/profiles.rbs +11 -11
  194. data/sig/sentdm/resources/templates.rbs +3 -3
  195. data/sig/sentdm/resources/users.rbs +3 -3
  196. data/sig/sentdm/resources/webhooks.rbs +4 -4
  197. metadata +86 -98
  198. data/lib/sentdm/models/api_meta.rb +0 -34
  199. data/lib/sentdm/models/api_response_of_contact.rb +0 -46
  200. data/lib/sentdm/models/api_response_of_contact_message_summary.rb +0 -43
  201. data/lib/sentdm/models/api_response_of_conversation_messages_list.rb +0 -43
  202. data/lib/sentdm/models/api_response_of_profile_detail.rb +0 -43
  203. data/lib/sentdm/models/api_response_of_user.rb +0 -43
  204. data/lib/sentdm/models/api_response_template.rb +0 -43
  205. data/lib/sentdm/models/api_response_webhook.rb +0 -43
  206. data/lib/sentdm/models/billing_contact_info.rb +0 -47
  207. data/lib/sentdm/models/brand_business_info.rb +0 -114
  208. data/lib/sentdm/models/brand_compliance_info.rb +0 -67
  209. data/lib/sentdm/models/brand_contact_info.rb +0 -58
  210. data/lib/sentdm/models/brands_brand_data.rb +0 -34
  211. data/lib/sentdm/models/contact_message_summary.rb +0 -76
  212. data/lib/sentdm/models/contact_response.rb +0 -126
  213. data/lib/sentdm/models/conversation_messages_list.rb +0 -245
  214. data/lib/sentdm/models/error_detail.rb +0 -42
  215. data/lib/sentdm/models/mutation_request.rb +0 -20
  216. data/lib/sentdm/models/pagination_meta.rb +0 -80
  217. data/lib/sentdm/models/payment_details.rb +0 -44
  218. data/lib/sentdm/models/profile_detail.rb +0 -597
  219. data/lib/sentdm/models/profile_settings.rb +0 -66
  220. data/lib/sentdm/models/profiles/api_response_of_brand_campaign.rb +0 -45
  221. data/lib/sentdm/models/profiles/api_response_of_list_of_brand_campaign.rb +0 -45
  222. data/lib/sentdm/models/profiles/brand_campaign.rb +0 -247
  223. data/lib/sentdm/models/profiles/campaign_data.rb +0 -130
  224. data/lib/sentdm/models/profiles/campaign_use_case.rb +0 -71
  225. data/lib/sentdm/models/profiles/campaign_use_case_data.rb +0 -29
  226. data/lib/sentdm/models/template.rb +0 -90
  227. data/lib/sentdm/models/user_response.rb +0 -82
  228. data/lib/sentdm/models/webhook_event_type.rb +0 -45
  229. data/lib/sentdm/models/webhook_response.rb +0 -95
  230. data/rbi/sentdm/models/api_meta.rbi +0 -55
  231. data/rbi/sentdm/models/api_response_of_contact.rbi +0 -74
  232. data/rbi/sentdm/models/api_response_of_contact_message_summary.rbi +0 -79
  233. data/rbi/sentdm/models/api_response_of_conversation_messages_list.rbi +0 -79
  234. data/rbi/sentdm/models/api_response_of_profile_detail.rbi +0 -74
  235. data/rbi/sentdm/models/api_response_of_user.rbi +0 -74
  236. data/rbi/sentdm/models/api_response_template.rbi +0 -74
  237. data/rbi/sentdm/models/api_response_webhook.rbi +0 -74
  238. data/rbi/sentdm/models/billing_contact_info.rbi +0 -65
  239. data/rbi/sentdm/models/brand_business_info.rbi +0 -162
  240. data/rbi/sentdm/models/brand_compliance_info.rbi +0 -84
  241. data/rbi/sentdm/models/brand_contact_info.rbi +0 -78
  242. data/rbi/sentdm/models/brands_brand_data.rbi +0 -65
  243. data/rbi/sentdm/models/contact_message_summary.rbi +0 -144
  244. data/rbi/sentdm/models/contact_response.rbi +0 -183
  245. data/rbi/sentdm/models/conversation_messages_list.rbi +0 -419
  246. data/rbi/sentdm/models/error_detail.rbi +0 -66
  247. data/rbi/sentdm/models/mutation_request.rbi +0 -32
  248. data/rbi/sentdm/models/pagination_meta.rbi +0 -135
  249. data/rbi/sentdm/models/payment_details.rbi +0 -59
  250. data/rbi/sentdm/models/profile_detail.rbi +0 -866
  251. data/rbi/sentdm/models/profile_settings.rbi +0 -86
  252. data/rbi/sentdm/models/profiles/api_response_of_brand_campaign.rbi +0 -81
  253. data/rbi/sentdm/models/profiles/api_response_of_list_of_brand_campaign.rbi +0 -76
  254. data/rbi/sentdm/models/profiles/brand_campaign.rbi +0 -299
  255. data/rbi/sentdm/models/profiles/campaign_data.rbi +0 -146
  256. data/rbi/sentdm/models/profiles/campaign_use_case.rbi +0 -110
  257. data/rbi/sentdm/models/profiles/campaign_use_case_data.rbi +0 -51
  258. data/rbi/sentdm/models/template.rbi +0 -129
  259. data/rbi/sentdm/models/user_response.rbi +0 -118
  260. data/rbi/sentdm/models/webhook_event_type.rbi +0 -74
  261. data/rbi/sentdm/models/webhook_response.rbi +0 -140
  262. data/sig/sentdm/models/api_meta.rbs +0 -27
  263. data/sig/sentdm/models/api_response_of_contact.rbs +0 -39
  264. data/sig/sentdm/models/api_response_of_contact_message_summary.rbs +0 -39
  265. data/sig/sentdm/models/api_response_of_conversation_messages_list.rbs +0 -39
  266. data/sig/sentdm/models/api_response_of_profile_detail.rbs +0 -39
  267. data/sig/sentdm/models/api_response_of_user.rbs +0 -39
  268. data/sig/sentdm/models/api_response_template.rbs +0 -39
  269. data/sig/sentdm/models/api_response_webhook.rbs +0 -39
  270. data/sig/sentdm/models/billing_contact_info.rbs +0 -30
  271. data/sig/sentdm/models/brand_business_info.rbs +0 -89
  272. data/sig/sentdm/models/brand_compliance_info.rbs +0 -50
  273. data/sig/sentdm/models/brand_contact_info.rbs +0 -45
  274. data/sig/sentdm/models/brands_brand_data.rbs +0 -30
  275. data/sig/sentdm/models/contact_message_summary.rbs +0 -84
  276. data/sig/sentdm/models/contact_response.rbs +0 -111
  277. data/sig/sentdm/models/conversation_messages_list.rbs +0 -240
  278. data/sig/sentdm/models/error_detail.rbs +0 -39
  279. data/sig/sentdm/models/mutation_request.rbs +0 -15
  280. data/sig/sentdm/models/pagination_meta.rbs +0 -67
  281. data/sig/sentdm/models/payment_details.rbs +0 -30
  282. data/sig/sentdm/models/profile_detail.rbs +0 -469
  283. data/sig/sentdm/models/profile_settings.rbs +0 -50
  284. data/sig/sentdm/models/profiles/api_response_of_brand_campaign.rbs +0 -41
  285. data/sig/sentdm/models/profiles/api_response_of_list_of_brand_campaign.rbs +0 -41
  286. data/sig/sentdm/models/profiles/brand_campaign.rbs +0 -194
  287. data/sig/sentdm/models/profiles/campaign_data.rbs +0 -87
  288. data/sig/sentdm/models/profiles/campaign_use_case.rbs +0 -66
  289. data/sig/sentdm/models/profiles/campaign_use_case_data.rbs +0 -27
  290. data/sig/sentdm/models/template.rbs +0 -79
  291. data/sig/sentdm/models/user_response.rbs +0 -72
  292. data/sig/sentdm/models/webhook_event_type.rbs +0 -51
  293. data/sig/sentdm/models/webhook_response.rbs +0 -103
@@ -0,0 +1,88 @@
1
+ # typed: strong
2
+
3
+ module Sentdm
4
+ module Models
5
+ class InboundMessageEvent < Sentdm::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(Sentdm::InboundMessageEvent, Sentdm::Internal::AnyHash)
9
+ end
10
+
11
+ # The specific event within the family, for example message.delivered or
12
+ # message.received. Absent on events that have no subtype, so treat it as
13
+ # optional.
14
+ sig { returns(T.nilable(String)) }
15
+ attr_accessor :event
16
+
17
+ # The event family, for example message or templates. Route on this first, then on
18
+ # event for the specific change.
19
+ sig { returns(T.nilable(String)) }
20
+ attr_reader :field
21
+
22
+ sig { params(field: String).void }
23
+ attr_writer :field
24
+
25
+ # Body of a message.received event. Delivered when a contact messages one of your
26
+ # numbers.
27
+ sig { returns(T.nilable(Sentdm::InboundMessageEventPayload)) }
28
+ attr_reader :payload
29
+
30
+ sig do
31
+ params(
32
+ payload: T.nilable(Sentdm::InboundMessageEventPayload::OrHash)
33
+ ).void
34
+ end
35
+ attr_writer :payload
36
+
37
+ # When Sent emitted the event, in UTC (yyyy-MM-ddTHH:mm:ssZ). This is the emission
38
+ # time, not the time the underlying change happened. Use the timestamp inside the
39
+ # payload for the latter.
40
+ sig { returns(T.nilable(String)) }
41
+ attr_reader :timestamp
42
+
43
+ sig { params(timestamp: String).void }
44
+ attr_writer :timestamp
45
+
46
+ # The envelope Sent POSTs to a subscribed webhook endpoint. Every event shares
47
+ # this shape and varies only in Payload.
48
+ sig do
49
+ params(
50
+ event: T.nilable(String),
51
+ field: String,
52
+ payload: T.nilable(Sentdm::InboundMessageEventPayload::OrHash),
53
+ timestamp: String
54
+ ).returns(T.attached_class)
55
+ end
56
+ def self.new(
57
+ # The specific event within the family, for example message.delivered or
58
+ # message.received. Absent on events that have no subtype, so treat it as
59
+ # optional.
60
+ event: nil,
61
+ # The event family, for example message or templates. Route on this first, then on
62
+ # event for the specific change.
63
+ field: nil,
64
+ # Body of a message.received event. Delivered when a contact messages one of your
65
+ # numbers.
66
+ payload: nil,
67
+ # When Sent emitted the event, in UTC (yyyy-MM-ddTHH:mm:ssZ). This is the emission
68
+ # time, not the time the underlying change happened. Use the timestamp inside the
69
+ # payload for the latter.
70
+ timestamp: nil
71
+ )
72
+ end
73
+
74
+ sig do
75
+ override.returns(
76
+ {
77
+ event: T.nilable(String),
78
+ field: String,
79
+ payload: T.nilable(Sentdm::InboundMessageEventPayload),
80
+ timestamp: String
81
+ }
82
+ )
83
+ end
84
+ def to_hash
85
+ end
86
+ end
87
+ end
88
+ end
@@ -0,0 +1,122 @@
1
+ # typed: strong
2
+
3
+ module Sentdm
4
+ module Models
5
+ class InboundMessageEventPayload < Sentdm::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(Sentdm::InboundMessageEventPayload, Sentdm::Internal::AnyHash)
9
+ end
10
+
11
+ # The account the message belongs to.
12
+ sig { returns(T.nilable(String)) }
13
+ attr_reader :account_id
14
+
15
+ sig { params(account_id: String).void }
16
+ attr_writer :account_id
17
+
18
+ # The channel the message arrived on, for example sms or whatsapp.
19
+ sig { returns(T.nilable(String)) }
20
+ attr_reader :channel
21
+
22
+ sig { params(channel: String).void }
23
+ attr_writer :channel
24
+
25
+ # The contact's number in E.164 format, meaning the number the message came from.
26
+ sig { returns(T.nilable(String)) }
27
+ attr_reader :inbound_number
28
+
29
+ sig { params(inbound_number: String).void }
30
+ attr_writer :inbound_number
31
+
32
+ # The inbound message.
33
+ sig { returns(T.nilable(String)) }
34
+ attr_reader :message_id
35
+
36
+ sig { params(message_id: String).void }
37
+ attr_writer :message_id
38
+
39
+ # Your number in E.164 format, meaning the number the message was addressed to.
40
+ sig { returns(T.nilable(String)) }
41
+ attr_reader :outbound_number
42
+
43
+ sig { params(outbound_number: String).void }
44
+ attr_writer :outbound_number
45
+
46
+ # When the message was received, in UTC (yyyy-MM-ddTHH:mm:ssZ).
47
+ sig { returns(T.nilable(String)) }
48
+ attr_reader :received_at
49
+
50
+ sig { params(received_at: String).void }
51
+ attr_writer :received_at
52
+
53
+ # The message body. Sent as null when the inbound message carried no text, for
54
+ # example a media-only message. The field is always present, so read it and check
55
+ # for null rather than checking whether the key exists.
56
+ sig { returns(T.nilable(String)) }
57
+ attr_accessor :text
58
+
59
+ # When the message was received, in UTC (yyyy-MM-ddTHH:mm:ssZ). Same value as
60
+ # ReceivedAt, kept for envelope consistency with outbound events.
61
+ sig { returns(T.nilable(String)) }
62
+ attr_reader :updated_at
63
+
64
+ sig { params(updated_at: String).void }
65
+ attr_writer :updated_at
66
+
67
+ # Body of a message.received event. Delivered when a contact messages one of your
68
+ # numbers.
69
+ sig do
70
+ params(
71
+ account_id: String,
72
+ channel: String,
73
+ inbound_number: String,
74
+ message_id: String,
75
+ outbound_number: String,
76
+ received_at: String,
77
+ text: T.nilable(String),
78
+ updated_at: String
79
+ ).returns(T.attached_class)
80
+ end
81
+ def self.new(
82
+ # The account the message belongs to.
83
+ account_id: nil,
84
+ # The channel the message arrived on, for example sms or whatsapp.
85
+ channel: nil,
86
+ # The contact's number in E.164 format, meaning the number the message came from.
87
+ inbound_number: nil,
88
+ # The inbound message.
89
+ message_id: nil,
90
+ # Your number in E.164 format, meaning the number the message was addressed to.
91
+ outbound_number: nil,
92
+ # When the message was received, in UTC (yyyy-MM-ddTHH:mm:ssZ).
93
+ received_at: nil,
94
+ # The message body. Sent as null when the inbound message carried no text, for
95
+ # example a media-only message. The field is always present, so read it and check
96
+ # for null rather than checking whether the key exists.
97
+ text: nil,
98
+ # When the message was received, in UTC (yyyy-MM-ddTHH:mm:ssZ). Same value as
99
+ # ReceivedAt, kept for envelope consistency with outbound events.
100
+ updated_at: nil
101
+ )
102
+ end
103
+
104
+ sig do
105
+ override.returns(
106
+ {
107
+ account_id: String,
108
+ channel: String,
109
+ inbound_number: String,
110
+ message_id: String,
111
+ outbound_number: String,
112
+ received_at: String,
113
+ text: T.nilable(String),
114
+ updated_at: String
115
+ }
116
+ )
117
+ end
118
+ def to_hash
119
+ end
120
+ end
121
+ end
122
+ end
@@ -22,17 +22,23 @@ module Sentdm
22
22
  attr_writer :data
23
23
 
24
24
  # Error information
25
- sig { returns(T.nilable(Sentdm::ErrorDetail)) }
25
+ sig { returns(T.nilable(Sentdm::Models::MeRetrieveResponse::Error)) }
26
26
  attr_reader :error
27
27
 
28
- sig { params(error: T.nilable(Sentdm::ErrorDetail::OrHash)).void }
28
+ sig do
29
+ params(
30
+ error: T.nilable(Sentdm::Models::MeRetrieveResponse::Error::OrHash)
31
+ ).void
32
+ end
29
33
  attr_writer :error
30
34
 
31
35
  # Request and response metadata
32
- sig { returns(T.nilable(Sentdm::APIMeta)) }
36
+ sig { returns(T.nilable(Sentdm::Models::MeRetrieveResponse::Meta)) }
33
37
  attr_reader :meta
34
38
 
35
- sig { params(meta: Sentdm::APIMeta::OrHash).void }
39
+ sig do
40
+ params(meta: Sentdm::Models::MeRetrieveResponse::Meta::OrHash).void
41
+ end
36
42
  attr_writer :meta
37
43
 
38
44
  # Indicates whether the request was successful
@@ -46,8 +52,8 @@ module Sentdm
46
52
  sig do
47
53
  params(
48
54
  data: T.nilable(Sentdm::Models::MeRetrieveResponse::Data::OrHash),
49
- error: T.nilable(Sentdm::ErrorDetail::OrHash),
50
- meta: Sentdm::APIMeta::OrHash,
55
+ error: T.nilable(Sentdm::Models::MeRetrieveResponse::Error::OrHash),
56
+ meta: Sentdm::Models::MeRetrieveResponse::Meta::OrHash,
51
57
  success: T::Boolean
52
58
  ).returns(T.attached_class)
53
59
  end
@@ -69,8 +75,8 @@ module Sentdm
69
75
  override.returns(
70
76
  {
71
77
  data: T.nilable(Sentdm::Models::MeRetrieveResponse::Data),
72
- error: T.nilable(Sentdm::ErrorDetail),
73
- meta: Sentdm::APIMeta,
78
+ error: T.nilable(Sentdm::Models::MeRetrieveResponse::Error),
79
+ meta: Sentdm::Models::MeRetrieveResponse::Meta,
74
80
  success: T::Boolean
75
81
  }
76
82
  )
@@ -160,11 +166,18 @@ module Sentdm
160
166
  attr_writer :profiles
161
167
 
162
168
  # Profile configuration settings
163
- sig { returns(T.nilable(Sentdm::ProfileSettings)) }
169
+ sig do
170
+ returns(T.nilable(Sentdm::Models::MeRetrieveResponse::Data::Settings))
171
+ end
164
172
  attr_reader :settings
165
173
 
166
174
  sig do
167
- params(settings: T.nilable(Sentdm::ProfileSettings::OrHash)).void
175
+ params(
176
+ settings:
177
+ T.nilable(
178
+ Sentdm::Models::MeRetrieveResponse::Data::Settings::OrHash
179
+ )
180
+ ).void
168
181
  end
169
182
  attr_writer :settings
170
183
 
@@ -203,7 +216,10 @@ module Sentdm
203
216
  T::Array[
204
217
  Sentdm::Models::MeRetrieveResponse::Data::Profile::OrHash
205
218
  ],
206
- settings: T.nilable(Sentdm::ProfileSettings::OrHash),
219
+ settings:
220
+ T.nilable(
221
+ Sentdm::Models::MeRetrieveResponse::Data::Settings::OrHash
222
+ ),
207
223
  short_name: T.nilable(String),
208
224
  status: T.nilable(String),
209
225
  type: String
@@ -256,7 +272,8 @@ module Sentdm
256
272
  organization_id: T.nilable(String),
257
273
  profiles:
258
274
  T::Array[Sentdm::Models::MeRetrieveResponse::Data::Profile],
259
- settings: T.nilable(Sentdm::ProfileSettings),
275
+ settings:
276
+ T.nilable(Sentdm::Models::MeRetrieveResponse::Data::Settings),
260
277
  short_name: T.nilable(String),
261
278
  status: T.nilable(String),
262
279
  type: String
@@ -551,10 +568,21 @@ module Sentdm
551
568
  attr_accessor :role
552
569
 
553
570
  # Profile configuration settings
554
- sig { returns(T.nilable(Sentdm::ProfileSettings)) }
571
+ sig do
572
+ returns(
573
+ T.nilable(
574
+ Sentdm::Models::MeRetrieveResponse::Data::Profile::Settings
575
+ )
576
+ )
577
+ end
555
578
  attr_reader :settings
556
579
 
557
- sig { params(settings: Sentdm::ProfileSettings::OrHash).void }
580
+ sig do
581
+ params(
582
+ settings:
583
+ Sentdm::Models::MeRetrieveResponse::Data::Profile::Settings::OrHash
584
+ ).void
585
+ end
558
586
  attr_writer :settings
559
587
 
560
588
  # Profile short name (abbreviation)
@@ -574,7 +602,8 @@ module Sentdm
574
602
  icon: T.nilable(String),
575
603
  name: String,
576
604
  role: T.nilable(String),
577
- settings: Sentdm::ProfileSettings::OrHash,
605
+ settings:
606
+ Sentdm::Models::MeRetrieveResponse::Data::Profile::Settings::OrHash,
578
607
  short_name: T.nilable(String),
579
608
  status: T.nilable(String)
580
609
  ).returns(T.attached_class)
@@ -611,7 +640,8 @@ module Sentdm
611
640
  icon: T.nilable(String),
612
641
  name: String,
613
642
  role: T.nilable(String),
614
- settings: Sentdm::ProfileSettings,
643
+ settings:
644
+ Sentdm::Models::MeRetrieveResponse::Data::Profile::Settings,
615
645
  short_name: T.nilable(String),
616
646
  status: T.nilable(String)
617
647
  }
@@ -619,6 +649,327 @@ module Sentdm
619
649
  end
620
650
  def to_hash
621
651
  end
652
+
653
+ class Settings < Sentdm::Internal::Type::BaseModel
654
+ OrHash =
655
+ T.type_alias do
656
+ T.any(
657
+ Sentdm::Models::MeRetrieveResponse::Data::Profile::Settings,
658
+ Sentdm::Internal::AnyHash
659
+ )
660
+ end
661
+
662
+ # Always false. A profile no longer shares contacts with sibling profiles — it
663
+ # sees only what it owns. Retained so existing v3 clients reading
664
+ # allow_contact_sharing keep deserializing; it carries no information.
665
+ sig { returns(T.nilable(T::Boolean)) }
666
+ attr_accessor :allow_contact_sharing
667
+
668
+ # Always false. A profile no longer shares templates with sibling profiles.
669
+ # Retained so existing v3 clients reading allow_template_sharing keep
670
+ # deserializing; it carries no information.
671
+ sig { returns(T.nilable(T::Boolean)) }
672
+ attr_accessor :allow_template_sharing
673
+
674
+ # Billing model: profile, organization, or profile_and_organization
675
+ sig { returns(T.nilable(String)) }
676
+ attr_accessor :billing_model
677
+
678
+ # Always false. A profile no longer inherits its organization's contacts. Retained
679
+ # so existing v3 clients reading inherit_contacts keep deserializing; it carries
680
+ # no information.
681
+ sig { returns(T.nilable(T::Boolean)) }
682
+ attr_accessor :inherit_contacts
683
+
684
+ # Whether this profile inherits TCR brand from the organization
685
+ sig { returns(T.nilable(T::Boolean)) }
686
+ attr_accessor :inherit_tcr_brand
687
+
688
+ # Whether this profile inherits TCR campaign from the organization
689
+ sig { returns(T.nilable(T::Boolean)) }
690
+ attr_accessor :inherit_tcr_campaign
691
+
692
+ # Always false. A profile no longer inherits its organization's templates.
693
+ # Retained so existing v3 clients reading inherit_templates keep deserializing; it
694
+ # carries no information.
695
+ sig { returns(T.nilable(T::Boolean)) }
696
+ attr_accessor :inherit_templates
697
+
698
+ # Profile configuration settings
699
+ sig do
700
+ params(
701
+ allow_contact_sharing: T.nilable(T::Boolean),
702
+ allow_template_sharing: T.nilable(T::Boolean),
703
+ billing_model: T.nilable(String),
704
+ inherit_contacts: T.nilable(T::Boolean),
705
+ inherit_tcr_brand: T.nilable(T::Boolean),
706
+ inherit_tcr_campaign: T.nilable(T::Boolean),
707
+ inherit_templates: T.nilable(T::Boolean)
708
+ ).returns(T.attached_class)
709
+ end
710
+ def self.new(
711
+ # Always false. A profile no longer shares contacts with sibling profiles — it
712
+ # sees only what it owns. Retained so existing v3 clients reading
713
+ # allow_contact_sharing keep deserializing; it carries no information.
714
+ allow_contact_sharing: nil,
715
+ # Always false. A profile no longer shares templates with sibling profiles.
716
+ # Retained so existing v3 clients reading allow_template_sharing keep
717
+ # deserializing; it carries no information.
718
+ allow_template_sharing: nil,
719
+ # Billing model: profile, organization, or profile_and_organization
720
+ billing_model: nil,
721
+ # Always false. A profile no longer inherits its organization's contacts. Retained
722
+ # so existing v3 clients reading inherit_contacts keep deserializing; it carries
723
+ # no information.
724
+ inherit_contacts: nil,
725
+ # Whether this profile inherits TCR brand from the organization
726
+ inherit_tcr_brand: nil,
727
+ # Whether this profile inherits TCR campaign from the organization
728
+ inherit_tcr_campaign: nil,
729
+ # Always false. A profile no longer inherits its organization's templates.
730
+ # Retained so existing v3 clients reading inherit_templates keep deserializing; it
731
+ # carries no information.
732
+ inherit_templates: nil
733
+ )
734
+ end
735
+
736
+ sig do
737
+ override.returns(
738
+ {
739
+ allow_contact_sharing: T.nilable(T::Boolean),
740
+ allow_template_sharing: T.nilable(T::Boolean),
741
+ billing_model: T.nilable(String),
742
+ inherit_contacts: T.nilable(T::Boolean),
743
+ inherit_tcr_brand: T.nilable(T::Boolean),
744
+ inherit_tcr_campaign: T.nilable(T::Boolean),
745
+ inherit_templates: T.nilable(T::Boolean)
746
+ }
747
+ )
748
+ end
749
+ def to_hash
750
+ end
751
+ end
752
+ end
753
+
754
+ class Settings < Sentdm::Internal::Type::BaseModel
755
+ OrHash =
756
+ T.type_alias do
757
+ T.any(
758
+ Sentdm::Models::MeRetrieveResponse::Data::Settings,
759
+ Sentdm::Internal::AnyHash
760
+ )
761
+ end
762
+
763
+ # Always false. A profile no longer shares contacts with sibling profiles — it
764
+ # sees only what it owns. Retained so existing v3 clients reading
765
+ # allow_contact_sharing keep deserializing; it carries no information.
766
+ sig { returns(T.nilable(T::Boolean)) }
767
+ attr_accessor :allow_contact_sharing
768
+
769
+ # Always false. A profile no longer shares templates with sibling profiles.
770
+ # Retained so existing v3 clients reading allow_template_sharing keep
771
+ # deserializing; it carries no information.
772
+ sig { returns(T.nilable(T::Boolean)) }
773
+ attr_accessor :allow_template_sharing
774
+
775
+ # Billing model: profile, organization, or profile_and_organization
776
+ sig { returns(T.nilable(String)) }
777
+ attr_accessor :billing_model
778
+
779
+ # Always false. A profile no longer inherits its organization's contacts. Retained
780
+ # so existing v3 clients reading inherit_contacts keep deserializing; it carries
781
+ # no information.
782
+ sig { returns(T.nilable(T::Boolean)) }
783
+ attr_accessor :inherit_contacts
784
+
785
+ # Whether this profile inherits TCR brand from the organization
786
+ sig { returns(T.nilable(T::Boolean)) }
787
+ attr_accessor :inherit_tcr_brand
788
+
789
+ # Whether this profile inherits TCR campaign from the organization
790
+ sig { returns(T.nilable(T::Boolean)) }
791
+ attr_accessor :inherit_tcr_campaign
792
+
793
+ # Always false. A profile no longer inherits its organization's templates.
794
+ # Retained so existing v3 clients reading inherit_templates keep deserializing; it
795
+ # carries no information.
796
+ sig { returns(T.nilable(T::Boolean)) }
797
+ attr_accessor :inherit_templates
798
+
799
+ # Profile configuration settings
800
+ sig do
801
+ params(
802
+ allow_contact_sharing: T.nilable(T::Boolean),
803
+ allow_template_sharing: T.nilable(T::Boolean),
804
+ billing_model: T.nilable(String),
805
+ inherit_contacts: T.nilable(T::Boolean),
806
+ inherit_tcr_brand: T.nilable(T::Boolean),
807
+ inherit_tcr_campaign: T.nilable(T::Boolean),
808
+ inherit_templates: T.nilable(T::Boolean)
809
+ ).returns(T.attached_class)
810
+ end
811
+ def self.new(
812
+ # Always false. A profile no longer shares contacts with sibling profiles — it
813
+ # sees only what it owns. Retained so existing v3 clients reading
814
+ # allow_contact_sharing keep deserializing; it carries no information.
815
+ allow_contact_sharing: nil,
816
+ # Always false. A profile no longer shares templates with sibling profiles.
817
+ # Retained so existing v3 clients reading allow_template_sharing keep
818
+ # deserializing; it carries no information.
819
+ allow_template_sharing: nil,
820
+ # Billing model: profile, organization, or profile_and_organization
821
+ billing_model: nil,
822
+ # Always false. A profile no longer inherits its organization's contacts. Retained
823
+ # so existing v3 clients reading inherit_contacts keep deserializing; it carries
824
+ # no information.
825
+ inherit_contacts: nil,
826
+ # Whether this profile inherits TCR brand from the organization
827
+ inherit_tcr_brand: nil,
828
+ # Whether this profile inherits TCR campaign from the organization
829
+ inherit_tcr_campaign: nil,
830
+ # Always false. A profile no longer inherits its organization's templates.
831
+ # Retained so existing v3 clients reading inherit_templates keep deserializing; it
832
+ # carries no information.
833
+ inherit_templates: nil
834
+ )
835
+ end
836
+
837
+ sig do
838
+ override.returns(
839
+ {
840
+ allow_contact_sharing: T.nilable(T::Boolean),
841
+ allow_template_sharing: T.nilable(T::Boolean),
842
+ billing_model: T.nilable(String),
843
+ inherit_contacts: T.nilable(T::Boolean),
844
+ inherit_tcr_brand: T.nilable(T::Boolean),
845
+ inherit_tcr_campaign: T.nilable(T::Boolean),
846
+ inherit_templates: T.nilable(T::Boolean)
847
+ }
848
+ )
849
+ end
850
+ def to_hash
851
+ end
852
+ end
853
+ end
854
+
855
+ class Error < Sentdm::Internal::Type::BaseModel
856
+ OrHash =
857
+ T.type_alias do
858
+ T.any(
859
+ Sentdm::Models::MeRetrieveResponse::Error,
860
+ Sentdm::Internal::AnyHash
861
+ )
862
+ end
863
+
864
+ # Machine-readable error code (e.g., "RESOURCE_001")
865
+ sig { returns(T.nilable(String)) }
866
+ attr_reader :code
867
+
868
+ sig { params(code: String).void }
869
+ attr_writer :code
870
+
871
+ # Additional validation error details (field-level errors)
872
+ sig { returns(T.nilable(T::Hash[Symbol, T::Array[String]])) }
873
+ attr_accessor :details
874
+
875
+ # URL to documentation about this error
876
+ sig { returns(T.nilable(String)) }
877
+ attr_accessor :doc_url
878
+
879
+ # Human-readable error message
880
+ sig { returns(T.nilable(String)) }
881
+ attr_reader :message
882
+
883
+ sig { params(message: String).void }
884
+ attr_writer :message
885
+
886
+ # Error information
887
+ sig do
888
+ params(
889
+ code: String,
890
+ details: T.nilable(T::Hash[Symbol, T::Array[String]]),
891
+ doc_url: T.nilable(String),
892
+ message: String
893
+ ).returns(T.attached_class)
894
+ end
895
+ def self.new(
896
+ # Machine-readable error code (e.g., "RESOURCE_001")
897
+ code: nil,
898
+ # Additional validation error details (field-level errors)
899
+ details: nil,
900
+ # URL to documentation about this error
901
+ doc_url: nil,
902
+ # Human-readable error message
903
+ message: nil
904
+ )
905
+ end
906
+
907
+ sig do
908
+ override.returns(
909
+ {
910
+ code: String,
911
+ details: T.nilable(T::Hash[Symbol, T::Array[String]]),
912
+ doc_url: T.nilable(String),
913
+ message: String
914
+ }
915
+ )
916
+ end
917
+ def to_hash
918
+ end
919
+ end
920
+
921
+ class Meta < Sentdm::Internal::Type::BaseModel
922
+ OrHash =
923
+ T.type_alias do
924
+ T.any(
925
+ Sentdm::Models::MeRetrieveResponse::Meta,
926
+ Sentdm::Internal::AnyHash
927
+ )
928
+ end
929
+
930
+ # Unique identifier for this request (for tracing and support)
931
+ sig { returns(T.nilable(String)) }
932
+ attr_reader :request_id
933
+
934
+ sig { params(request_id: String).void }
935
+ attr_writer :request_id
936
+
937
+ # Server timestamp when the response was generated
938
+ sig { returns(T.nilable(Time)) }
939
+ attr_reader :timestamp
940
+
941
+ sig { params(timestamp: Time).void }
942
+ attr_writer :timestamp
943
+
944
+ # API version used for this request
945
+ sig { returns(T.nilable(String)) }
946
+ attr_reader :version
947
+
948
+ sig { params(version: String).void }
949
+ attr_writer :version
950
+
951
+ # Request and response metadata
952
+ sig do
953
+ params(request_id: String, timestamp: Time, version: String).returns(
954
+ T.attached_class
955
+ )
956
+ end
957
+ def self.new(
958
+ # Unique identifier for this request (for tracing and support)
959
+ request_id: nil,
960
+ # Server timestamp when the response was generated
961
+ timestamp: nil,
962
+ # API version used for this request
963
+ version: nil
964
+ )
965
+ end
966
+
967
+ sig do
968
+ override.returns(
969
+ { request_id: String, timestamp: Time, version: String }
970
+ )
971
+ end
972
+ def to_hash
622
973
  end
623
974
  end
624
975
  end