sentdm 0.29.0 → 0.30.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 (265) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +11 -0
  3. data/README.md +27 -1
  4. data/lib/sentdm/internal/type/base_model.rb +5 -5
  5. data/lib/sentdm/models/api_meta.rb +34 -0
  6. data/lib/sentdm/models/api_response_of_contact.rb +46 -0
  7. data/lib/sentdm/models/api_response_of_contact_message_summary.rb +43 -0
  8. data/lib/sentdm/models/api_response_of_conversation_messages_list.rb +43 -0
  9. data/lib/sentdm/models/api_response_of_profile_detail.rb +43 -0
  10. data/lib/sentdm/models/api_response_of_user.rb +43 -0
  11. data/lib/sentdm/models/api_response_template.rb +43 -0
  12. data/lib/sentdm/models/api_response_webhook.rb +43 -0
  13. data/lib/sentdm/models/billing_contact_info.rb +47 -0
  14. data/lib/sentdm/models/brand_business_info.rb +114 -0
  15. data/lib/sentdm/models/brand_compliance_info.rb +59 -0
  16. data/lib/sentdm/models/brand_contact_info.rb +58 -0
  17. data/lib/sentdm/models/brands_brand_data.rb +34 -0
  18. data/lib/sentdm/models/contact_delete_params.rb +2 -16
  19. data/lib/sentdm/models/contact_list_response.rb +12 -295
  20. data/lib/sentdm/models/contact_message_summary.rb +76 -0
  21. data/lib/sentdm/models/contact_response.rb +139 -0
  22. data/lib/sentdm/models/conversation_messages_list.rb +245 -0
  23. data/lib/sentdm/models/error_detail.rb +42 -0
  24. data/lib/sentdm/models/me_retrieve_response.rb +12 -242
  25. data/lib/sentdm/models/message_retrieve_activities_response.rb +9 -159
  26. data/lib/sentdm/models/message_retrieve_status_response.rb +6 -74
  27. data/lib/sentdm/models/message_send_response.rb +6 -74
  28. data/lib/sentdm/models/mutation_request.rb +20 -0
  29. data/lib/sentdm/models/number_lookup_response.rb +6 -74
  30. data/lib/sentdm/models/pagination_meta.rb +84 -0
  31. data/lib/sentdm/models/payment_details.rb +40 -0
  32. data/lib/sentdm/models/profile_complete_response.rb +6 -74
  33. data/lib/sentdm/models/profile_create_params.rb +9 -345
  34. data/lib/sentdm/models/profile_delete_params.rb +2 -16
  35. data/lib/sentdm/models/profile_detail.rb +650 -0
  36. data/lib/sentdm/models/profile_list_response.rb +12 -815
  37. data/lib/sentdm/models/profile_settings.rb +85 -0
  38. data/lib/sentdm/models/profile_update_params.rb +9 -345
  39. data/lib/sentdm/models/profiles/api_response_of_brand_campaign.rb +45 -0
  40. data/lib/sentdm/models/profiles/api_response_of_list_of_brand_campaign.rb +45 -0
  41. data/lib/sentdm/models/profiles/brand_campaign.rb +247 -0
  42. data/lib/sentdm/models/profiles/campaign_create_params.rb +3 -156
  43. data/lib/sentdm/models/profiles/campaign_data.rb +136 -0
  44. data/lib/sentdm/models/profiles/campaign_delete_params.rb +2 -17
  45. data/lib/sentdm/models/profiles/campaign_update_params.rb +3 -156
  46. data/lib/sentdm/models/profiles/campaign_use_case.rb +71 -0
  47. data/lib/sentdm/models/profiles/campaign_use_case_data.rb +29 -0
  48. data/lib/sentdm/models/template.rb +102 -0
  49. data/lib/sentdm/models/template_list_response.rb +12 -258
  50. data/lib/sentdm/models/user_list_response.rb +12 -249
  51. data/lib/sentdm/models/user_remove_params.rb +2 -16
  52. data/lib/sentdm/models/user_response.rb +94 -0
  53. data/lib/sentdm/models/webhook_event_type.rb +45 -0
  54. data/lib/sentdm/models/webhook_list_event_types_response.rb +12 -203
  55. data/lib/sentdm/models/webhook_list_events_response.rb +9 -157
  56. data/lib/sentdm/models/webhook_list_response.rb +12 -276
  57. data/lib/sentdm/models/webhook_response.rb +120 -0
  58. data/lib/sentdm/models/webhook_rotate_secret_params.rb +2 -17
  59. data/lib/sentdm/models/webhook_rotate_secret_response.rb +6 -74
  60. data/lib/sentdm/models/webhook_test_response.rb +6 -74
  61. data/lib/sentdm/models.rb +52 -0
  62. data/lib/sentdm/resources/contacts.rb +8 -8
  63. data/lib/sentdm/resources/conversations.rb +4 -4
  64. data/lib/sentdm/resources/profiles/campaigns.rb +8 -8
  65. data/lib/sentdm/resources/profiles.rb +12 -12
  66. data/lib/sentdm/resources/templates.rb +6 -6
  67. data/lib/sentdm/resources/users.rb +6 -6
  68. data/lib/sentdm/resources/webhooks.rb +8 -8
  69. data/lib/sentdm/version.rb +1 -1
  70. data/lib/sentdm.rb +32 -22
  71. data/rbi/sentdm/models/api_meta.rbi +55 -0
  72. data/rbi/sentdm/models/api_response_of_contact.rbi +74 -0
  73. data/rbi/sentdm/models/api_response_of_contact_message_summary.rbi +79 -0
  74. data/rbi/sentdm/models/api_response_of_conversation_messages_list.rbi +79 -0
  75. data/rbi/sentdm/models/api_response_of_profile_detail.rbi +74 -0
  76. data/rbi/sentdm/models/api_response_of_user.rbi +74 -0
  77. data/rbi/sentdm/models/api_response_template.rbi +74 -0
  78. data/rbi/sentdm/models/api_response_webhook.rbi +74 -0
  79. data/rbi/sentdm/models/billing_contact_info.rbi +65 -0
  80. data/rbi/sentdm/models/brand_business_info.rbi +162 -0
  81. data/rbi/sentdm/models/brand_compliance_info.rbi +76 -0
  82. data/rbi/sentdm/models/brand_contact_info.rbi +78 -0
  83. data/rbi/sentdm/models/brands_brand_data.rbi +65 -0
  84. data/rbi/sentdm/models/contact_delete_params.rbi +2 -19
  85. data/rbi/sentdm/models/contact_list_response.rbi +16 -522
  86. data/rbi/sentdm/models/contact_message_summary.rbi +144 -0
  87. data/rbi/sentdm/models/contact_response.rbi +200 -0
  88. data/rbi/sentdm/models/conversation_messages_list.rbi +419 -0
  89. data/rbi/sentdm/models/error_detail.rbi +66 -0
  90. data/rbi/sentdm/models/me_retrieve_response.rbi +16 -367
  91. data/rbi/sentdm/models/message_retrieve_activities_response.rbi +12 -325
  92. data/rbi/sentdm/models/message_retrieve_status_response.rbi +8 -148
  93. data/rbi/sentdm/models/message_send_response.rbi +8 -135
  94. data/rbi/sentdm/models/mutation_request.rbi +32 -0
  95. data/rbi/sentdm/models/number_lookup_response.rbi +8 -135
  96. data/rbi/sentdm/models/pagination_meta.rbi +135 -0
  97. data/rbi/sentdm/models/payment_details.rbi +56 -0
  98. data/rbi/sentdm/models/profile_complete_response.rbi +8 -137
  99. data/rbi/sentdm/models/profile_create_params.rbi +12 -546
  100. data/rbi/sentdm/models/profile_delete_params.rbi +2 -19
  101. data/rbi/sentdm/models/profile_detail.rbi +918 -0
  102. data/rbi/sentdm/models/profile_list_response.rbi +16 -1347
  103. data/rbi/sentdm/models/profile_settings.rbi +102 -0
  104. data/rbi/sentdm/models/profile_update_params.rbi +12 -546
  105. data/rbi/sentdm/models/profiles/api_response_of_brand_campaign.rbi +81 -0
  106. data/rbi/sentdm/models/profiles/api_response_of_list_of_brand_campaign.rbi +76 -0
  107. data/rbi/sentdm/models/profiles/brand_campaign.rbi +299 -0
  108. data/rbi/sentdm/models/profiles/campaign_create_params.rbi +4 -218
  109. data/rbi/sentdm/models/profiles/campaign_data.rbi +158 -0
  110. data/rbi/sentdm/models/profiles/campaign_delete_params.rbi +1 -14
  111. data/rbi/sentdm/models/profiles/campaign_update_params.rbi +4 -218
  112. data/rbi/sentdm/models/profiles/campaign_use_case.rbi +110 -0
  113. data/rbi/sentdm/models/profiles/campaign_use_case_data.rbi +51 -0
  114. data/rbi/sentdm/models/template.rbi +139 -0
  115. data/rbi/sentdm/models/template_list_response.rbi +16 -464
  116. data/rbi/sentdm/models/user_list_response.rbi +16 -444
  117. data/rbi/sentdm/models/user_remove_params.rbi +2 -19
  118. data/rbi/sentdm/models/user_response.rbi +131 -0
  119. data/rbi/sentdm/models/webhook_event_type.rbi +74 -0
  120. data/rbi/sentdm/models/webhook_list_event_types_response.rbi +16 -414
  121. data/rbi/sentdm/models/webhook_list_events_response.rbi +12 -314
  122. data/rbi/sentdm/models/webhook_list_response.rbi +16 -475
  123. data/rbi/sentdm/models/webhook_response.rbi +153 -0
  124. data/rbi/sentdm/models/webhook_rotate_secret_params.rbi +1 -14
  125. data/rbi/sentdm/models/webhook_rotate_secret_response.rbi +8 -148
  126. data/rbi/sentdm/models/webhook_test_response.rbi +8 -135
  127. data/rbi/sentdm/models.rbi +54 -0
  128. data/rbi/sentdm/resources/contacts.rbi +4 -4
  129. data/rbi/sentdm/resources/conversations.rbi +2 -2
  130. data/rbi/sentdm/resources/profiles/campaigns.rbi +5 -5
  131. data/rbi/sentdm/resources/profiles.rbi +9 -13
  132. data/rbi/sentdm/resources/templates.rbi +3 -3
  133. data/rbi/sentdm/resources/users.rbi +3 -3
  134. data/rbi/sentdm/resources/webhooks.rbi +4 -4
  135. data/sig/sentdm/models/api_meta.rbs +27 -0
  136. data/sig/sentdm/models/api_response_of_contact.rbs +39 -0
  137. data/sig/sentdm/models/api_response_of_contact_message_summary.rbs +39 -0
  138. data/sig/sentdm/models/api_response_of_conversation_messages_list.rbs +39 -0
  139. data/sig/sentdm/models/api_response_of_profile_detail.rbs +39 -0
  140. data/sig/sentdm/models/api_response_of_user.rbs +39 -0
  141. data/sig/sentdm/models/api_response_template.rbs +39 -0
  142. data/sig/sentdm/models/api_response_webhook.rbs +39 -0
  143. data/sig/sentdm/models/billing_contact_info.rbs +30 -0
  144. data/sig/sentdm/models/brand_business_info.rbs +89 -0
  145. data/sig/sentdm/models/brand_compliance_info.rbs +45 -0
  146. data/sig/sentdm/models/brand_contact_info.rbs +45 -0
  147. data/sig/sentdm/models/brands_brand_data.rbs +30 -0
  148. data/sig/sentdm/models/contact_delete_params.rbs +6 -10
  149. data/sig/sentdm/models/contact_list_response.rbs +20 -263
  150. data/sig/sentdm/models/contact_message_summary.rbs +84 -0
  151. data/sig/sentdm/models/contact_response.rbs +118 -0
  152. data/sig/sentdm/models/conversation_messages_list.rbs +240 -0
  153. data/sig/sentdm/models/error_detail.rbs +39 -0
  154. data/sig/sentdm/models/me_retrieve_response.rbs +18 -176
  155. data/sig/sentdm/models/message_retrieve_activities_response.rbs +14 -142
  156. data/sig/sentdm/models/message_retrieve_status_response.rbs +9 -71
  157. data/sig/sentdm/models/message_send_response.rbs +9 -71
  158. data/sig/sentdm/models/mutation_request.rbs +15 -0
  159. data/sig/sentdm/models/number_lookup_response.rbs +9 -71
  160. data/sig/sentdm/models/pagination_meta.rbs +67 -0
  161. data/sig/sentdm/models/payment_details.rbs +30 -0
  162. data/sig/sentdm/models/profile_complete_response.rbs +9 -71
  163. data/sig/sentdm/models/profile_create_params.rbs +12 -263
  164. data/sig/sentdm/models/profile_delete_params.rbs +6 -10
  165. data/sig/sentdm/models/profile_detail.rbs +461 -0
  166. data/sig/sentdm/models/profile_list_response.rbs +20 -606
  167. data/sig/sentdm/models/profile_settings.rbs +50 -0
  168. data/sig/sentdm/models/profile_update_params.rbs +12 -263
  169. data/sig/sentdm/models/profiles/api_response_of_brand_campaign.rbs +41 -0
  170. data/sig/sentdm/models/profiles/api_response_of_list_of_brand_campaign.rbs +41 -0
  171. data/sig/sentdm/models/profiles/brand_campaign.rbs +194 -0
  172. data/sig/sentdm/models/profiles/campaign_create_params.rbs +4 -108
  173. data/sig/sentdm/models/profiles/campaign_data.rbs +87 -0
  174. data/sig/sentdm/models/profiles/campaign_delete_params.rbs +8 -15
  175. data/sig/sentdm/models/profiles/campaign_update_params.rbs +4 -108
  176. data/sig/sentdm/models/profiles/campaign_use_case.rbs +66 -0
  177. data/sig/sentdm/models/profiles/campaign_use_case_data.rbs +27 -0
  178. data/sig/sentdm/models/template.rbs +84 -0
  179. data/sig/sentdm/models/template_list_response.rbs +19 -230
  180. data/sig/sentdm/models/user_list_response.rbs +20 -224
  181. data/sig/sentdm/models/user_remove_params.rbs +6 -10
  182. data/sig/sentdm/models/user_response.rbs +79 -0
  183. data/sig/sentdm/models/webhook_event_type.rbs +51 -0
  184. data/sig/sentdm/models/webhook_list_event_types_response.rbs +20 -196
  185. data/sig/sentdm/models/webhook_list_events_response.rbs +14 -142
  186. data/sig/sentdm/models/webhook_list_response.rbs +20 -255
  187. data/sig/sentdm/models/webhook_response.rbs +110 -0
  188. data/sig/sentdm/models/webhook_rotate_secret_params.rbs +8 -17
  189. data/sig/sentdm/models/webhook_rotate_secret_response.rbs +9 -71
  190. data/sig/sentdm/models/webhook_test_response.rbs +9 -71
  191. data/sig/sentdm/models.rbs +52 -0
  192. data/sig/sentdm/resources/contacts.rbs +4 -4
  193. data/sig/sentdm/resources/conversations.rbs +2 -2
  194. data/sig/sentdm/resources/profiles/campaigns.rbs +5 -5
  195. data/sig/sentdm/resources/profiles.rbs +9 -9
  196. data/sig/sentdm/resources/templates.rbs +3 -3
  197. data/sig/sentdm/resources/users.rbs +3 -3
  198. data/sig/sentdm/resources/webhooks.rbs +4 -4
  199. metadata +98 -68
  200. data/lib/sentdm/models/contact_create_response.rb +0 -249
  201. data/lib/sentdm/models/contact_retrieve_message_summary_response.rb +0 -186
  202. data/lib/sentdm/models/contact_retrieve_response.rb +0 -249
  203. data/lib/sentdm/models/contact_update_response.rb +0 -249
  204. data/lib/sentdm/models/conversation_list_messages_response.rb +0 -436
  205. data/lib/sentdm/models/conversation_list_response.rb +0 -433
  206. data/lib/sentdm/models/profile_create_response.rb +0 -760
  207. data/lib/sentdm/models/profile_retrieve_response.rb +0 -762
  208. data/lib/sentdm/models/profile_update_response.rb +0 -760
  209. data/lib/sentdm/models/profiles/campaign_create_response.rb +0 -420
  210. data/lib/sentdm/models/profiles/campaign_list_response.rb +0 -421
  211. data/lib/sentdm/models/profiles/campaign_update_response.rb +0 -420
  212. data/lib/sentdm/models/template_create_response.rb +0 -209
  213. data/lib/sentdm/models/template_retrieve_response.rb +0 -209
  214. data/lib/sentdm/models/template_update_response.rb +0 -209
  215. data/lib/sentdm/models/user_invite_response.rb +0 -201
  216. data/lib/sentdm/models/user_retrieve_response.rb +0 -201
  217. data/lib/sentdm/models/user_update_role_response.rb +0 -201
  218. data/lib/sentdm/models/webhook_create_response.rb +0 -229
  219. data/lib/sentdm/models/webhook_retrieve_response.rb +0 -229
  220. data/lib/sentdm/models/webhook_toggle_status_response.rb +0 -229
  221. data/lib/sentdm/models/webhook_update_response.rb +0 -229
  222. data/rbi/sentdm/models/contact_create_response.rbi +0 -407
  223. data/rbi/sentdm/models/contact_retrieve_message_summary_response.rbi +0 -397
  224. data/rbi/sentdm/models/contact_retrieve_response.rbi +0 -409
  225. data/rbi/sentdm/models/contact_update_response.rbi +0 -407
  226. data/rbi/sentdm/models/conversation_list_messages_response.rbi +0 -843
  227. data/rbi/sentdm/models/conversation_list_response.rbi +0 -819
  228. data/rbi/sentdm/models/profile_create_response.rbi +0 -1226
  229. data/rbi/sentdm/models/profile_retrieve_response.rbi +0 -1230
  230. data/rbi/sentdm/models/profile_update_response.rbi +0 -1226
  231. data/rbi/sentdm/models/profiles/campaign_create_response.rbi +0 -674
  232. data/rbi/sentdm/models/profiles/campaign_list_response.rbi +0 -667
  233. data/rbi/sentdm/models/profiles/campaign_update_response.rbi +0 -674
  234. data/rbi/sentdm/models/template_create_response.rbi +0 -349
  235. data/rbi/sentdm/models/template_retrieve_response.rbi +0 -355
  236. data/rbi/sentdm/models/template_update_response.rbi +0 -349
  237. data/rbi/sentdm/models/user_invite_response.rbi +0 -336
  238. data/rbi/sentdm/models/user_retrieve_response.rbi +0 -336
  239. data/rbi/sentdm/models/user_update_role_response.rbi +0 -341
  240. data/rbi/sentdm/models/webhook_create_response.rbi +0 -361
  241. data/rbi/sentdm/models/webhook_retrieve_response.rbi +0 -363
  242. data/rbi/sentdm/models/webhook_toggle_status_response.rbi +0 -379
  243. data/rbi/sentdm/models/webhook_update_response.rbi +0 -361
  244. data/sig/sentdm/models/contact_create_response.rbs +0 -216
  245. data/sig/sentdm/models/contact_retrieve_message_summary_response.rbs +0 -182
  246. data/sig/sentdm/models/contact_retrieve_response.rbs +0 -216
  247. data/sig/sentdm/models/contact_update_response.rbs +0 -216
  248. data/sig/sentdm/models/conversation_list_messages_response.rbs +0 -404
  249. data/sig/sentdm/models/conversation_list_response.rbs +0 -404
  250. data/sig/sentdm/models/profile_create_response.rbs +0 -559
  251. data/sig/sentdm/models/profile_retrieve_response.rbs +0 -559
  252. data/sig/sentdm/models/profile_update_response.rbs +0 -559
  253. data/sig/sentdm/models/profiles/campaign_create_response.rbs +0 -357
  254. data/sig/sentdm/models/profiles/campaign_list_response.rbs +0 -357
  255. data/sig/sentdm/models/profiles/campaign_update_response.rbs +0 -357
  256. data/sig/sentdm/models/template_create_response.rbs +0 -182
  257. data/sig/sentdm/models/template_retrieve_response.rbs +0 -182
  258. data/sig/sentdm/models/template_update_response.rbs +0 -182
  259. data/sig/sentdm/models/user_invite_response.rbs +0 -177
  260. data/sig/sentdm/models/user_retrieve_response.rbs +0 -177
  261. data/sig/sentdm/models/user_update_role_response.rbs +0 -177
  262. data/sig/sentdm/models/webhook_create_response.rbs +0 -208
  263. data/sig/sentdm/models/webhook_retrieve_response.rbs +0 -208
  264. data/sig/sentdm/models/webhook_toggle_status_response.rbs +0 -208
  265. data/sig/sentdm/models/webhook_update_response.rbs +0 -208
@@ -0,0 +1,139 @@
1
+ # typed: strong
2
+
3
+ module Sentdm
4
+ module Models
5
+ class Template < Sentdm::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias { T.any(Sentdm::Template, Sentdm::Internal::AnyHash) }
8
+
9
+ # Which customer owns this — the key's own, or the profile named in x-profile-id.
10
+ # Says whose resource this is, which the resource's own id does not.
11
+ sig { returns(String) }
12
+ attr_accessor :customer_id
13
+
14
+ # Unique template identifier
15
+ sig { returns(T.nilable(String)) }
16
+ attr_reader :id
17
+
18
+ sig { params(id: String).void }
19
+ attr_writer :id
20
+
21
+ # Template category: MARKETING, UTILITY, AUTHENTICATION
22
+ sig { returns(T.nilable(String)) }
23
+ attr_reader :category
24
+
25
+ sig { params(category: String).void }
26
+ attr_writer :category
27
+
28
+ # Supported channels: sms, whatsapp
29
+ sig { returns(T.nilable(T::Array[String])) }
30
+ attr_accessor :channels
31
+
32
+ # When the template was created
33
+ sig { returns(T.nilable(Time)) }
34
+ attr_reader :created_at
35
+
36
+ sig { params(created_at: Time).void }
37
+ attr_writer :created_at
38
+
39
+ # Whether the template is published and active
40
+ sig { returns(T.nilable(T::Boolean)) }
41
+ attr_reader :is_published
42
+
43
+ sig { params(is_published: T::Boolean).void }
44
+ attr_writer :is_published
45
+
46
+ # Template language code (e.g., en_US)
47
+ sig { returns(T.nilable(String)) }
48
+ attr_reader :language
49
+
50
+ sig { params(language: String).void }
51
+ attr_writer :language
52
+
53
+ # Template display name
54
+ sig { returns(T.nilable(String)) }
55
+ attr_reader :name
56
+
57
+ sig { params(name: String).void }
58
+ attr_writer :name
59
+
60
+ # Template status: APPROVED, PENDING, REJECTED
61
+ sig { returns(T.nilable(String)) }
62
+ attr_reader :status
63
+
64
+ sig { params(status: String).void }
65
+ attr_writer :status
66
+
67
+ # When the template was last updated
68
+ sig { returns(T.nilable(Time)) }
69
+ attr_accessor :updated_at
70
+
71
+ # Template variables for personalization
72
+ sig { returns(T.nilable(T::Array[String])) }
73
+ attr_accessor :variables
74
+
75
+ # Template response for v3 API
76
+ sig do
77
+ params(
78
+ customer_id: String,
79
+ id: String,
80
+ category: String,
81
+ channels: T.nilable(T::Array[String]),
82
+ created_at: Time,
83
+ is_published: T::Boolean,
84
+ language: String,
85
+ name: String,
86
+ status: String,
87
+ updated_at: T.nilable(Time),
88
+ variables: T.nilable(T::Array[String])
89
+ ).returns(T.attached_class)
90
+ end
91
+ def self.new(
92
+ # Which customer owns this — the key's own, or the profile named in x-profile-id.
93
+ # Says whose resource this is, which the resource's own id does not.
94
+ customer_id:,
95
+ # Unique template identifier
96
+ id: nil,
97
+ # Template category: MARKETING, UTILITY, AUTHENTICATION
98
+ category: nil,
99
+ # Supported channels: sms, whatsapp
100
+ channels: nil,
101
+ # When the template was created
102
+ created_at: nil,
103
+ # Whether the template is published and active
104
+ is_published: nil,
105
+ # Template language code (e.g., en_US)
106
+ language: nil,
107
+ # Template display name
108
+ name: nil,
109
+ # Template status: APPROVED, PENDING, REJECTED
110
+ status: nil,
111
+ # When the template was last updated
112
+ updated_at: nil,
113
+ # Template variables for personalization
114
+ variables: nil
115
+ )
116
+ end
117
+
118
+ sig do
119
+ override.returns(
120
+ {
121
+ customer_id: String,
122
+ id: String,
123
+ category: String,
124
+ channels: T.nilable(T::Array[String]),
125
+ created_at: Time,
126
+ is_published: T::Boolean,
127
+ language: String,
128
+ name: String,
129
+ status: String,
130
+ updated_at: T.nilable(Time),
131
+ variables: T.nilable(T::Array[String])
132
+ }
133
+ )
134
+ end
135
+ def to_hash
136
+ end
137
+ end
138
+ end
139
+ end
@@ -20,23 +20,17 @@ module Sentdm
20
20
  attr_writer :data
21
21
 
22
22
  # Error information
23
- sig { returns(T.nilable(Sentdm::Models::TemplateListResponse::Error)) }
23
+ sig { returns(T.nilable(Sentdm::ErrorDetail)) }
24
24
  attr_reader :error
25
25
 
26
- sig do
27
- params(
28
- error: T.nilable(Sentdm::Models::TemplateListResponse::Error::OrHash)
29
- ).void
30
- end
26
+ sig { params(error: T.nilable(Sentdm::ErrorDetail::OrHash)).void }
31
27
  attr_writer :error
32
28
 
33
29
  # Request and response metadata
34
- sig { returns(T.nilable(Sentdm::Models::TemplateListResponse::Meta)) }
30
+ sig { returns(T.nilable(Sentdm::APIMeta)) }
35
31
  attr_reader :meta
36
32
 
37
- sig do
38
- params(meta: Sentdm::Models::TemplateListResponse::Meta::OrHash).void
39
- end
33
+ sig { params(meta: Sentdm::APIMeta::OrHash).void }
40
34
  attr_writer :meta
41
35
 
42
36
  # Indicates whether the request was successful
@@ -50,8 +44,8 @@ module Sentdm
50
44
  sig do
51
45
  params(
52
46
  data: T.nilable(Sentdm::Models::TemplateListResponse::Data::OrHash),
53
- error: T.nilable(Sentdm::Models::TemplateListResponse::Error::OrHash),
54
- meta: Sentdm::Models::TemplateListResponse::Meta::OrHash,
47
+ error: T.nilable(Sentdm::ErrorDetail::OrHash),
48
+ meta: Sentdm::APIMeta::OrHash,
55
49
  success: T::Boolean
56
50
  ).returns(T.attached_class)
57
51
  end
@@ -71,8 +65,8 @@ module Sentdm
71
65
  override.returns(
72
66
  {
73
67
  data: T.nilable(Sentdm::Models::TemplateListResponse::Data),
74
- error: T.nilable(Sentdm::Models::TemplateListResponse::Error),
75
- meta: Sentdm::Models::TemplateListResponse::Meta,
68
+ error: T.nilable(Sentdm::ErrorDetail),
69
+ meta: Sentdm::APIMeta,
76
70
  success: T::Boolean
77
71
  }
78
72
  )
@@ -90,50 +84,24 @@ module Sentdm
90
84
  end
91
85
 
92
86
  # Pagination metadata for list responses
93
- sig do
94
- returns(
95
- T.nilable(Sentdm::Models::TemplateListResponse::Data::Pagination)
96
- )
97
- end
87
+ sig { returns(T.nilable(Sentdm::PaginationMeta)) }
98
88
  attr_reader :pagination
99
89
 
100
- sig do
101
- params(
102
- pagination:
103
- Sentdm::Models::TemplateListResponse::Data::Pagination::OrHash
104
- ).void
105
- end
90
+ sig { params(pagination: Sentdm::PaginationMeta::OrHash).void }
106
91
  attr_writer :pagination
107
92
 
108
93
  # The templates on this page.
109
- sig do
110
- returns(
111
- T.nilable(
112
- T::Array[Sentdm::Models::TemplateListResponse::Data::Template]
113
- )
114
- )
115
- end
94
+ sig { returns(T.nilable(T::Array[Sentdm::Template])) }
116
95
  attr_reader :templates
117
96
 
118
- sig do
119
- params(
120
- templates:
121
- T::Array[
122
- Sentdm::Models::TemplateListResponse::Data::Template::OrHash
123
- ]
124
- ).void
125
- end
97
+ sig { params(templates: T::Array[Sentdm::Template::OrHash]).void }
126
98
  attr_writer :templates
127
99
 
128
100
  # A paginated list of templates.
129
101
  sig do
130
102
  params(
131
- pagination:
132
- Sentdm::Models::TemplateListResponse::Data::Pagination::OrHash,
133
- templates:
134
- T::Array[
135
- Sentdm::Models::TemplateListResponse::Data::Template::OrHash
136
- ]
103
+ pagination: Sentdm::PaginationMeta::OrHash,
104
+ templates: T::Array[Sentdm::Template::OrHash]
137
105
  ).returns(T.attached_class)
138
106
  end
139
107
  def self.new(
@@ -147,429 +115,13 @@ module Sentdm
147
115
  sig do
148
116
  override.returns(
149
117
  {
150
- pagination:
151
- Sentdm::Models::TemplateListResponse::Data::Pagination,
152
- templates:
153
- T::Array[Sentdm::Models::TemplateListResponse::Data::Template]
118
+ pagination: Sentdm::PaginationMeta,
119
+ templates: T::Array[Sentdm::Template]
154
120
  }
155
121
  )
156
122
  end
157
123
  def to_hash
158
124
  end
159
-
160
- class Pagination < Sentdm::Internal::Type::BaseModel
161
- OrHash =
162
- T.type_alias do
163
- T.any(
164
- Sentdm::Models::TemplateListResponse::Data::Pagination,
165
- Sentdm::Internal::AnyHash
166
- )
167
- end
168
-
169
- # Cursor-based pagination. Never populated — see Cursors.
170
- sig do
171
- returns(
172
- T.nilable(
173
- Sentdm::Models::TemplateListResponse::Data::Pagination::Cursors
174
- )
175
- )
176
- end
177
- attr_reader :cursors
178
-
179
- sig do
180
- params(
181
- cursors:
182
- T.nilable(
183
- Sentdm::Models::TemplateListResponse::Data::Pagination::Cursors::OrHash
184
- )
185
- ).void
186
- end
187
- attr_writer :cursors
188
-
189
- # Whether there are more pages after this one
190
- sig { returns(T.nilable(T::Boolean)) }
191
- attr_reader :has_more
192
-
193
- sig { params(has_more: T::Boolean).void }
194
- attr_writer :has_more
195
-
196
- # Current page number (1-indexed)
197
- sig { returns(T.nilable(Integer)) }
198
- attr_reader :page
199
-
200
- sig { params(page: Integer).void }
201
- attr_writer :page
202
-
203
- # Number of items per page
204
- sig { returns(T.nilable(Integer)) }
205
- attr_reader :page_size
206
-
207
- sig { params(page_size: Integer).void }
208
- attr_writer :page_size
209
-
210
- # Total number of items across all pages
211
- sig { returns(T.nilable(Integer)) }
212
- attr_reader :total_count
213
-
214
- sig { params(total_count: Integer).void }
215
- attr_writer :total_count
216
-
217
- # Total number of pages
218
- sig { returns(T.nilable(Integer)) }
219
- attr_reader :total_pages
220
-
221
- sig { params(total_pages: Integer).void }
222
- attr_writer :total_pages
223
-
224
- # Pagination metadata for list responses
225
- sig do
226
- params(
227
- cursors:
228
- T.nilable(
229
- Sentdm::Models::TemplateListResponse::Data::Pagination::Cursors::OrHash
230
- ),
231
- has_more: T::Boolean,
232
- page: Integer,
233
- page_size: Integer,
234
- total_count: Integer,
235
- total_pages: Integer
236
- ).returns(T.attached_class)
237
- end
238
- def self.new(
239
- # Cursor-based pagination. Never populated — see Cursors.
240
- cursors: nil,
241
- # Whether there are more pages after this one
242
- has_more: nil,
243
- # Current page number (1-indexed)
244
- page: nil,
245
- # Number of items per page
246
- page_size: nil,
247
- # Total number of items across all pages
248
- total_count: nil,
249
- # Total number of pages
250
- total_pages: nil
251
- )
252
- end
253
-
254
- sig do
255
- override.returns(
256
- {
257
- cursors:
258
- T.nilable(
259
- Sentdm::Models::TemplateListResponse::Data::Pagination::Cursors
260
- ),
261
- has_more: T::Boolean,
262
- page: Integer,
263
- page_size: Integer,
264
- total_count: Integer,
265
- total_pages: Integer
266
- }
267
- )
268
- end
269
- def to_hash
270
- end
271
-
272
- class Cursors < Sentdm::Internal::Type::BaseModel
273
- OrHash =
274
- T.type_alias do
275
- T.any(
276
- Sentdm::Models::TemplateListResponse::Data::Pagination::Cursors,
277
- Sentdm::Internal::AnyHash
278
- )
279
- end
280
-
281
- # Cursor to fetch the next page.
282
- sig { returns(T.nilable(String)) }
283
- attr_accessor :after
284
-
285
- # Cursor to fetch the previous page.
286
- sig { returns(T.nilable(String)) }
287
- attr_accessor :before
288
-
289
- # Cursor-based pagination. Never populated — see Cursors.
290
- sig do
291
- params(
292
- after: T.nilable(String),
293
- before: T.nilable(String)
294
- ).returns(T.attached_class)
295
- end
296
- def self.new(
297
- # Cursor to fetch the next page.
298
- after: nil,
299
- # Cursor to fetch the previous page.
300
- before: nil
301
- )
302
- end
303
-
304
- sig do
305
- override.returns(
306
- { after: T.nilable(String), before: T.nilable(String) }
307
- )
308
- end
309
- def to_hash
310
- end
311
- end
312
- end
313
-
314
- class Template < Sentdm::Internal::Type::BaseModel
315
- OrHash =
316
- T.type_alias do
317
- T.any(
318
- Sentdm::Models::TemplateListResponse::Data::Template,
319
- Sentdm::Internal::AnyHash
320
- )
321
- end
322
-
323
- # Which customer owns this — the key's own, or the profile named in x-profile-id.
324
- # Says whose resource this is, which the resource's own id does not.
325
- sig { returns(String) }
326
- attr_accessor :customer_id
327
-
328
- # Unique template identifier
329
- sig { returns(T.nilable(String)) }
330
- attr_reader :id
331
-
332
- sig { params(id: String).void }
333
- attr_writer :id
334
-
335
- # Template category: MARKETING, UTILITY, AUTHENTICATION
336
- sig { returns(T.nilable(String)) }
337
- attr_reader :category
338
-
339
- sig { params(category: String).void }
340
- attr_writer :category
341
-
342
- # Supported channels: sms, whatsapp
343
- sig { returns(T.nilable(T::Array[String])) }
344
- attr_accessor :channels
345
-
346
- # When the template was created
347
- sig { returns(T.nilable(Time)) }
348
- attr_reader :created_at
349
-
350
- sig { params(created_at: Time).void }
351
- attr_writer :created_at
352
-
353
- # Whether the template is published and active
354
- sig { returns(T.nilable(T::Boolean)) }
355
- attr_reader :is_published
356
-
357
- sig { params(is_published: T::Boolean).void }
358
- attr_writer :is_published
359
-
360
- # Template language code (e.g., en_US)
361
- sig { returns(T.nilable(String)) }
362
- attr_reader :language
363
-
364
- sig { params(language: String).void }
365
- attr_writer :language
366
-
367
- # Template display name
368
- sig { returns(T.nilable(String)) }
369
- attr_reader :name
370
-
371
- sig { params(name: String).void }
372
- attr_writer :name
373
-
374
- # Template status: APPROVED, PENDING, REJECTED
375
- sig { returns(T.nilable(String)) }
376
- attr_reader :status
377
-
378
- sig { params(status: String).void }
379
- attr_writer :status
380
-
381
- # When the template was last updated
382
- sig { returns(T.nilable(Time)) }
383
- attr_accessor :updated_at
384
-
385
- # Template variables for personalization
386
- sig { returns(T.nilable(T::Array[String])) }
387
- attr_accessor :variables
388
-
389
- # Template response for v3 API
390
- sig do
391
- params(
392
- customer_id: String,
393
- id: String,
394
- category: String,
395
- channels: T.nilable(T::Array[String]),
396
- created_at: Time,
397
- is_published: T::Boolean,
398
- language: String,
399
- name: String,
400
- status: String,
401
- updated_at: T.nilable(Time),
402
- variables: T.nilable(T::Array[String])
403
- ).returns(T.attached_class)
404
- end
405
- def self.new(
406
- # Which customer owns this — the key's own, or the profile named in x-profile-id.
407
- # Says whose resource this is, which the resource's own id does not.
408
- customer_id:,
409
- # Unique template identifier
410
- id: nil,
411
- # Template category: MARKETING, UTILITY, AUTHENTICATION
412
- category: nil,
413
- # Supported channels: sms, whatsapp
414
- channels: nil,
415
- # When the template was created
416
- created_at: nil,
417
- # Whether the template is published and active
418
- is_published: nil,
419
- # Template language code (e.g., en_US)
420
- language: nil,
421
- # Template display name
422
- name: nil,
423
- # Template status: APPROVED, PENDING, REJECTED
424
- status: nil,
425
- # When the template was last updated
426
- updated_at: nil,
427
- # Template variables for personalization
428
- variables: nil
429
- )
430
- end
431
-
432
- sig do
433
- override.returns(
434
- {
435
- customer_id: String,
436
- id: String,
437
- category: String,
438
- channels: T.nilable(T::Array[String]),
439
- created_at: Time,
440
- is_published: T::Boolean,
441
- language: String,
442
- name: String,
443
- status: String,
444
- updated_at: T.nilable(Time),
445
- variables: T.nilable(T::Array[String])
446
- }
447
- )
448
- end
449
- def to_hash
450
- end
451
- end
452
- end
453
-
454
- class Error < Sentdm::Internal::Type::BaseModel
455
- OrHash =
456
- T.type_alias do
457
- T.any(
458
- Sentdm::Models::TemplateListResponse::Error,
459
- Sentdm::Internal::AnyHash
460
- )
461
- end
462
-
463
- # Machine-readable error code (e.g., "RESOURCE_001")
464
- sig { returns(T.nilable(String)) }
465
- attr_reader :code
466
-
467
- sig { params(code: String).void }
468
- attr_writer :code
469
-
470
- # Additional validation error details (field-level errors)
471
- sig { returns(T.nilable(T::Hash[Symbol, T::Array[String]])) }
472
- attr_accessor :details
473
-
474
- # URL to documentation about this error
475
- sig { returns(T.nilable(String)) }
476
- attr_accessor :doc_url
477
-
478
- # Human-readable error message
479
- sig { returns(T.nilable(String)) }
480
- attr_reader :message
481
-
482
- sig { params(message: String).void }
483
- attr_writer :message
484
-
485
- # Error information
486
- sig do
487
- params(
488
- code: String,
489
- details: T.nilable(T::Hash[Symbol, T::Array[String]]),
490
- doc_url: T.nilable(String),
491
- message: String
492
- ).returns(T.attached_class)
493
- end
494
- def self.new(
495
- # Machine-readable error code (e.g., "RESOURCE_001")
496
- code: nil,
497
- # Additional validation error details (field-level errors)
498
- details: nil,
499
- # URL to documentation about this error
500
- doc_url: nil,
501
- # Human-readable error message
502
- message: nil
503
- )
504
- end
505
-
506
- sig do
507
- override.returns(
508
- {
509
- code: String,
510
- details: T.nilable(T::Hash[Symbol, T::Array[String]]),
511
- doc_url: T.nilable(String),
512
- message: String
513
- }
514
- )
515
- end
516
- def to_hash
517
- end
518
- end
519
-
520
- class Meta < Sentdm::Internal::Type::BaseModel
521
- OrHash =
522
- T.type_alias do
523
- T.any(
524
- Sentdm::Models::TemplateListResponse::Meta,
525
- Sentdm::Internal::AnyHash
526
- )
527
- end
528
-
529
- # Unique identifier for this request (for tracing and support)
530
- sig { returns(T.nilable(String)) }
531
- attr_reader :request_id
532
-
533
- sig { params(request_id: String).void }
534
- attr_writer :request_id
535
-
536
- # Server timestamp when the response was generated
537
- sig { returns(T.nilable(Time)) }
538
- attr_reader :timestamp
539
-
540
- sig { params(timestamp: Time).void }
541
- attr_writer :timestamp
542
-
543
- # API version used for this request
544
- sig { returns(T.nilable(String)) }
545
- attr_reader :version
546
-
547
- sig { params(version: String).void }
548
- attr_writer :version
549
-
550
- # Request and response metadata
551
- sig do
552
- params(request_id: String, timestamp: Time, version: String).returns(
553
- T.attached_class
554
- )
555
- end
556
- def self.new(
557
- # Unique identifier for this request (for tracing and support)
558
- request_id: nil,
559
- # Server timestamp when the response was generated
560
- timestamp: nil,
561
- # API version used for this request
562
- version: nil
563
- )
564
- end
565
-
566
- sig do
567
- override.returns(
568
- { request_id: String, timestamp: Time, version: String }
569
- )
570
- end
571
- def to_hash
572
- end
573
125
  end
574
126
  end
575
127
  end