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,349 @@
1
+ # typed: strong
2
+
3
+ module Sentdm
4
+ module Models
5
+ class TemplateCreateResponse < Sentdm::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(
9
+ Sentdm::Models::TemplateCreateResponse,
10
+ Sentdm::Internal::AnyHash
11
+ )
12
+ end
13
+
14
+ # Template response for v3 API
15
+ sig { returns(T.nilable(Sentdm::Models::TemplateCreateResponse::Data)) }
16
+ attr_reader :data
17
+
18
+ sig do
19
+ params(
20
+ data: T.nilable(Sentdm::Models::TemplateCreateResponse::Data::OrHash)
21
+ ).void
22
+ end
23
+ attr_writer :data
24
+
25
+ # Error information
26
+ sig { returns(T.nilable(Sentdm::Models::TemplateCreateResponse::Error)) }
27
+ attr_reader :error
28
+
29
+ sig do
30
+ params(
31
+ error:
32
+ T.nilable(Sentdm::Models::TemplateCreateResponse::Error::OrHash)
33
+ ).void
34
+ end
35
+ attr_writer :error
36
+
37
+ # Request and response metadata
38
+ sig { returns(T.nilable(Sentdm::Models::TemplateCreateResponse::Meta)) }
39
+ attr_reader :meta
40
+
41
+ sig do
42
+ params(meta: Sentdm::Models::TemplateCreateResponse::Meta::OrHash).void
43
+ end
44
+ attr_writer :meta
45
+
46
+ # Indicates whether the request was successful
47
+ sig { returns(T.nilable(T::Boolean)) }
48
+ attr_reader :success
49
+
50
+ sig { params(success: T::Boolean).void }
51
+ attr_writer :success
52
+
53
+ # Standard API response envelope for all v3 endpoints
54
+ sig do
55
+ params(
56
+ data: T.nilable(Sentdm::Models::TemplateCreateResponse::Data::OrHash),
57
+ error:
58
+ T.nilable(Sentdm::Models::TemplateCreateResponse::Error::OrHash),
59
+ meta: Sentdm::Models::TemplateCreateResponse::Meta::OrHash,
60
+ success: T::Boolean
61
+ ).returns(T.attached_class)
62
+ end
63
+ def self.new(
64
+ # Template response for v3 API
65
+ data: nil,
66
+ # Error information
67
+ error: nil,
68
+ # Request and response metadata
69
+ meta: nil,
70
+ # Indicates whether the request was successful
71
+ success: nil
72
+ )
73
+ end
74
+
75
+ sig do
76
+ override.returns(
77
+ {
78
+ data: T.nilable(Sentdm::Models::TemplateCreateResponse::Data),
79
+ error: T.nilable(Sentdm::Models::TemplateCreateResponse::Error),
80
+ meta: Sentdm::Models::TemplateCreateResponse::Meta,
81
+ success: T::Boolean
82
+ }
83
+ )
84
+ end
85
+ def to_hash
86
+ end
87
+
88
+ class Data < Sentdm::Internal::Type::BaseModel
89
+ OrHash =
90
+ T.type_alias do
91
+ T.any(
92
+ Sentdm::Models::TemplateCreateResponse::Data,
93
+ Sentdm::Internal::AnyHash
94
+ )
95
+ end
96
+
97
+ # Which customer owns this — the key's own, or the profile named in x-profile-id.
98
+ # Says whose resource this is, which the resource's own id does not.
99
+ sig { returns(String) }
100
+ attr_accessor :customer_id
101
+
102
+ # Unique template identifier
103
+ sig { returns(T.nilable(String)) }
104
+ attr_reader :id
105
+
106
+ sig { params(id: String).void }
107
+ attr_writer :id
108
+
109
+ # Template category: MARKETING, UTILITY, AUTHENTICATION
110
+ sig { returns(T.nilable(String)) }
111
+ attr_reader :category
112
+
113
+ sig { params(category: String).void }
114
+ attr_writer :category
115
+
116
+ # Supported channels: sms, whatsapp
117
+ sig { returns(T.nilable(T::Array[String])) }
118
+ attr_accessor :channels
119
+
120
+ # When the template was created
121
+ sig { returns(T.nilable(Time)) }
122
+ attr_reader :created_at
123
+
124
+ sig { params(created_at: Time).void }
125
+ attr_writer :created_at
126
+
127
+ # Whether the template is published and active
128
+ sig { returns(T.nilable(T::Boolean)) }
129
+ attr_reader :is_published
130
+
131
+ sig { params(is_published: T::Boolean).void }
132
+ attr_writer :is_published
133
+
134
+ # Template language code (e.g., en_US)
135
+ sig { returns(T.nilable(String)) }
136
+ attr_reader :language
137
+
138
+ sig { params(language: String).void }
139
+ attr_writer :language
140
+
141
+ # Template display name
142
+ sig { returns(T.nilable(String)) }
143
+ attr_reader :name
144
+
145
+ sig { params(name: String).void }
146
+ attr_writer :name
147
+
148
+ # Template status: APPROVED, PENDING, REJECTED
149
+ sig { returns(T.nilable(String)) }
150
+ attr_reader :status
151
+
152
+ sig { params(status: String).void }
153
+ attr_writer :status
154
+
155
+ # When the template was last updated
156
+ sig { returns(T.nilable(Time)) }
157
+ attr_accessor :updated_at
158
+
159
+ # Template variables for personalization
160
+ sig { returns(T.nilable(T::Array[String])) }
161
+ attr_accessor :variables
162
+
163
+ # Template response for v3 API
164
+ sig do
165
+ params(
166
+ customer_id: String,
167
+ id: String,
168
+ category: String,
169
+ channels: T.nilable(T::Array[String]),
170
+ created_at: Time,
171
+ is_published: T::Boolean,
172
+ language: String,
173
+ name: String,
174
+ status: String,
175
+ updated_at: T.nilable(Time),
176
+ variables: T.nilable(T::Array[String])
177
+ ).returns(T.attached_class)
178
+ end
179
+ def self.new(
180
+ # Which customer owns this — the key's own, or the profile named in x-profile-id.
181
+ # Says whose resource this is, which the resource's own id does not.
182
+ customer_id:,
183
+ # Unique template identifier
184
+ id: nil,
185
+ # Template category: MARKETING, UTILITY, AUTHENTICATION
186
+ category: nil,
187
+ # Supported channels: sms, whatsapp
188
+ channels: nil,
189
+ # When the template was created
190
+ created_at: nil,
191
+ # Whether the template is published and active
192
+ is_published: nil,
193
+ # Template language code (e.g., en_US)
194
+ language: nil,
195
+ # Template display name
196
+ name: nil,
197
+ # Template status: APPROVED, PENDING, REJECTED
198
+ status: nil,
199
+ # When the template was last updated
200
+ updated_at: nil,
201
+ # Template variables for personalization
202
+ variables: nil
203
+ )
204
+ end
205
+
206
+ sig do
207
+ override.returns(
208
+ {
209
+ customer_id: String,
210
+ id: String,
211
+ category: String,
212
+ channels: T.nilable(T::Array[String]),
213
+ created_at: Time,
214
+ is_published: T::Boolean,
215
+ language: String,
216
+ name: String,
217
+ status: String,
218
+ updated_at: T.nilable(Time),
219
+ variables: T.nilable(T::Array[String])
220
+ }
221
+ )
222
+ end
223
+ def to_hash
224
+ end
225
+ end
226
+
227
+ class Error < Sentdm::Internal::Type::BaseModel
228
+ OrHash =
229
+ T.type_alias do
230
+ T.any(
231
+ Sentdm::Models::TemplateCreateResponse::Error,
232
+ Sentdm::Internal::AnyHash
233
+ )
234
+ end
235
+
236
+ # Machine-readable error code (e.g., "RESOURCE_001")
237
+ sig { returns(T.nilable(String)) }
238
+ attr_reader :code
239
+
240
+ sig { params(code: String).void }
241
+ attr_writer :code
242
+
243
+ # Additional validation error details (field-level errors)
244
+ sig { returns(T.nilable(T::Hash[Symbol, T::Array[String]])) }
245
+ attr_accessor :details
246
+
247
+ # URL to documentation about this error
248
+ sig { returns(T.nilable(String)) }
249
+ attr_accessor :doc_url
250
+
251
+ # Human-readable error message
252
+ sig { returns(T.nilable(String)) }
253
+ attr_reader :message
254
+
255
+ sig { params(message: String).void }
256
+ attr_writer :message
257
+
258
+ # Error information
259
+ sig do
260
+ params(
261
+ code: String,
262
+ details: T.nilable(T::Hash[Symbol, T::Array[String]]),
263
+ doc_url: T.nilable(String),
264
+ message: String
265
+ ).returns(T.attached_class)
266
+ end
267
+ def self.new(
268
+ # Machine-readable error code (e.g., "RESOURCE_001")
269
+ code: nil,
270
+ # Additional validation error details (field-level errors)
271
+ details: nil,
272
+ # URL to documentation about this error
273
+ doc_url: nil,
274
+ # Human-readable error message
275
+ message: nil
276
+ )
277
+ end
278
+
279
+ sig do
280
+ override.returns(
281
+ {
282
+ code: String,
283
+ details: T.nilable(T::Hash[Symbol, T::Array[String]]),
284
+ doc_url: T.nilable(String),
285
+ message: String
286
+ }
287
+ )
288
+ end
289
+ def to_hash
290
+ end
291
+ end
292
+
293
+ class Meta < Sentdm::Internal::Type::BaseModel
294
+ OrHash =
295
+ T.type_alias do
296
+ T.any(
297
+ Sentdm::Models::TemplateCreateResponse::Meta,
298
+ Sentdm::Internal::AnyHash
299
+ )
300
+ end
301
+
302
+ # Unique identifier for this request (for tracing and support)
303
+ sig { returns(T.nilable(String)) }
304
+ attr_reader :request_id
305
+
306
+ sig { params(request_id: String).void }
307
+ attr_writer :request_id
308
+
309
+ # Server timestamp when the response was generated
310
+ sig { returns(T.nilable(Time)) }
311
+ attr_reader :timestamp
312
+
313
+ sig { params(timestamp: Time).void }
314
+ attr_writer :timestamp
315
+
316
+ # API version used for this request
317
+ sig { returns(T.nilable(String)) }
318
+ attr_reader :version
319
+
320
+ sig { params(version: String).void }
321
+ attr_writer :version
322
+
323
+ # Request and response metadata
324
+ sig do
325
+ params(request_id: String, timestamp: Time, version: String).returns(
326
+ T.attached_class
327
+ )
328
+ end
329
+ def self.new(
330
+ # Unique identifier for this request (for tracing and support)
331
+ request_id: nil,
332
+ # Server timestamp when the response was generated
333
+ timestamp: nil,
334
+ # API version used for this request
335
+ version: nil
336
+ )
337
+ end
338
+
339
+ sig do
340
+ override.returns(
341
+ { request_id: String, timestamp: Time, version: String }
342
+ )
343
+ end
344
+ def to_hash
345
+ end
346
+ end
347
+ end
348
+ end
349
+ end
@@ -0,0 +1,84 @@
1
+ # typed: strong
2
+
3
+ module Sentdm
4
+ module Models
5
+ class TemplateEvent < Sentdm::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias { T.any(Sentdm::TemplateEvent, Sentdm::Internal::AnyHash) }
8
+
9
+ # The specific event within the family, for example message.delivered or
10
+ # message.received. Absent on events that have no subtype, so treat it as
11
+ # optional.
12
+ sig { returns(T.nilable(String)) }
13
+ attr_accessor :event
14
+
15
+ # The event family, for example message or templates. Route on this first, then on
16
+ # event for the specific change.
17
+ sig { returns(T.nilable(String)) }
18
+ attr_reader :field
19
+
20
+ sig { params(field: String).void }
21
+ attr_writer :field
22
+
23
+ # Body of a template status event. Delivered when a template's review outcome
24
+ # changes, so you can react without polling.
25
+ sig { returns(T.nilable(Sentdm::TemplateEventPayload)) }
26
+ attr_reader :payload
27
+
28
+ sig do
29
+ params(payload: T.nilable(Sentdm::TemplateEventPayload::OrHash)).void
30
+ end
31
+ attr_writer :payload
32
+
33
+ # When Sent emitted the event, in UTC (yyyy-MM-ddTHH:mm:ssZ). This is the emission
34
+ # time, not the time the underlying change happened. Use the timestamp inside the
35
+ # payload for the latter.
36
+ sig { returns(T.nilable(String)) }
37
+ attr_reader :timestamp
38
+
39
+ sig { params(timestamp: String).void }
40
+ attr_writer :timestamp
41
+
42
+ # The envelope Sent POSTs to a subscribed webhook endpoint. Every event shares
43
+ # this shape and varies only in Payload.
44
+ sig do
45
+ params(
46
+ event: T.nilable(String),
47
+ field: String,
48
+ payload: T.nilable(Sentdm::TemplateEventPayload::OrHash),
49
+ timestamp: String
50
+ ).returns(T.attached_class)
51
+ end
52
+ def self.new(
53
+ # The specific event within the family, for example message.delivered or
54
+ # message.received. Absent on events that have no subtype, so treat it as
55
+ # optional.
56
+ event: nil,
57
+ # The event family, for example message or templates. Route on this first, then on
58
+ # event for the specific change.
59
+ field: nil,
60
+ # Body of a template status event. Delivered when a template's review outcome
61
+ # changes, so you can react without polling.
62
+ payload: nil,
63
+ # When Sent emitted the event, in UTC (yyyy-MM-ddTHH:mm:ssZ). This is the emission
64
+ # time, not the time the underlying change happened. Use the timestamp inside the
65
+ # payload for the latter.
66
+ timestamp: nil
67
+ )
68
+ end
69
+
70
+ sig do
71
+ override.returns(
72
+ {
73
+ event: T.nilable(String),
74
+ field: String,
75
+ payload: T.nilable(Sentdm::TemplateEventPayload),
76
+ timestamp: String
77
+ }
78
+ )
79
+ end
80
+ def to_hash
81
+ end
82
+ end
83
+ end
84
+ end
@@ -0,0 +1,131 @@
1
+ # typed: strong
2
+
3
+ module Sentdm
4
+ module Models
5
+ class TemplateEventPayload < Sentdm::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(Sentdm::TemplateEventPayload, Sentdm::Internal::AnyHash)
9
+ end
10
+
11
+ # The account the template 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 template's category, for example UTILITY, MARKETING, or AUTHENTICATION.
19
+ sig { returns(T.nilable(String)) }
20
+ attr_reader :category
21
+
22
+ sig { params(category: String).void }
23
+ attr_writer :category
24
+
25
+ # The channel the template applies to.
26
+ sig { returns(T.nilable(String)) }
27
+ attr_reader :channel
28
+
29
+ sig { params(channel: String).void }
30
+ attr_writer :channel
31
+
32
+ # The template's language code, for example en_US.
33
+ sig { returns(T.nilable(String)) }
34
+ attr_reader :language
35
+
36
+ sig { params(language: String).void }
37
+ attr_writer :language
38
+
39
+ # Why the template reached Status, when a reason was given. Populated on a
40
+ # rejection.
41
+ sig { returns(T.nilable(String)) }
42
+ attr_accessor :reason
43
+
44
+ # The review status the template just reached, for example APPROVED or REJECTED.
45
+ sig { returns(T.nilable(String)) }
46
+ attr_reader :status
47
+
48
+ sig { params(status: String).void }
49
+ attr_writer :status
50
+
51
+ # The template in Sent.
52
+ sig { returns(T.nilable(String)) }
53
+ attr_reader :template_id
54
+
55
+ sig { params(template_id: String).void }
56
+ attr_writer :template_id
57
+
58
+ # The template's display name.
59
+ sig { returns(T.nilable(String)) }
60
+ attr_reader :template_name
61
+
62
+ sig { params(template_name: String).void }
63
+ attr_writer :template_name
64
+
65
+ # The template's identifier with Meta, assigned when the template is submitted for
66
+ # review.
67
+ sig { returns(T.nilable(String)) }
68
+ attr_reader :whatsapp_template_id
69
+
70
+ sig { params(whatsapp_template_id: String).void }
71
+ attr_writer :whatsapp_template_id
72
+
73
+ # Body of a template status event. Delivered when a template's review outcome
74
+ # changes, so you can react without polling.
75
+ sig do
76
+ params(
77
+ account_id: String,
78
+ category: String,
79
+ channel: String,
80
+ language: String,
81
+ reason: T.nilable(String),
82
+ status: String,
83
+ template_id: String,
84
+ template_name: String,
85
+ whatsapp_template_id: String
86
+ ).returns(T.attached_class)
87
+ end
88
+ def self.new(
89
+ # The account the template belongs to.
90
+ account_id: nil,
91
+ # The template's category, for example UTILITY, MARKETING, or AUTHENTICATION.
92
+ category: nil,
93
+ # The channel the template applies to.
94
+ channel: nil,
95
+ # The template's language code, for example en_US.
96
+ language: nil,
97
+ # Why the template reached Status, when a reason was given. Populated on a
98
+ # rejection.
99
+ reason: nil,
100
+ # The review status the template just reached, for example APPROVED or REJECTED.
101
+ status: nil,
102
+ # The template in Sent.
103
+ template_id: nil,
104
+ # The template's display name.
105
+ template_name: nil,
106
+ # The template's identifier with Meta, assigned when the template is submitted for
107
+ # review.
108
+ whatsapp_template_id: nil
109
+ )
110
+ end
111
+
112
+ sig do
113
+ override.returns(
114
+ {
115
+ account_id: String,
116
+ category: String,
117
+ channel: String,
118
+ language: String,
119
+ reason: T.nilable(String),
120
+ status: String,
121
+ template_id: String,
122
+ template_name: String,
123
+ whatsapp_template_id: String
124
+ }
125
+ )
126
+ end
127
+ def to_hash
128
+ end
129
+ end
130
+ end
131
+ end
@@ -23,7 +23,11 @@ module Sentdm
23
23
  sig { returns(T.nilable(String)) }
24
24
  attr_accessor :category
25
25
 
26
- # Optional filter by welcome playground flag
26
+ # Accepted and ignored. It used to filter on the welcome-playground marker inside
27
+ # a template's LOB details; that filter is gone and nothing reads this value, so
28
+ # sending it neither narrows nor widens the result. Retained only so a client
29
+ # still passing is_welcome_playground keeps binding instead of the request shape
30
+ # changing under it.
27
31
  sig { returns(T.nilable(T::Boolean)) }
28
32
  attr_accessor :is_welcome_playground
29
33
 
@@ -60,7 +64,11 @@ module Sentdm
60
64
  page_size:,
61
65
  # Optional category filter: MARKETING, UTILITY, AUTHENTICATION
62
66
  category: nil,
63
- # Optional filter by welcome playground flag
67
+ # Accepted and ignored. It used to filter on the welcome-playground marker inside
68
+ # a template's LOB details; that filter is gone and nothing reads this value, so
69
+ # sending it neither narrows nor widens the result. Retained only so a client
70
+ # still passing is_welcome_playground keeps binding instead of the request shape
71
+ # changing under it.
64
72
  is_welcome_playground: nil,
65
73
  # Optional search term for filtering templates
66
74
  search: nil,