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
@@ -21,8 +21,8 @@ module Sentdm
21
21
  # @!attribute campaign
22
22
  # Campaign data for create or update operation
23
23
  #
24
- # @return [Sentdm::Models::Profiles::CampaignUpdateParams::Campaign]
25
- required :campaign, -> { Sentdm::Profiles::CampaignUpdateParams::Campaign }
24
+ # @return [Sentdm::Models::Profiles::CampaignData]
25
+ required :campaign, -> { Sentdm::Profiles::CampaignData }
26
26
 
27
27
  # @!attribute sandbox
28
28
  # Sandbox flag - when true, the operation is simulated without side effects Useful
@@ -49,7 +49,7 @@ module Sentdm
49
49
  #
50
50
  # @param campaign_id [String]
51
51
  #
52
- # @param campaign [Sentdm::Models::Profiles::CampaignUpdateParams::Campaign] Campaign data for create or update operation
52
+ # @param campaign [Sentdm::Models::Profiles::CampaignData] Campaign data for create or update operation
53
53
  #
54
54
  # @param sandbox [Boolean] Sandbox flag - when true, the operation is simulated without side effects
55
55
  #
@@ -58,159 +58,6 @@ module Sentdm
58
58
  # @param x_profile_id [String]
59
59
  #
60
60
  # @param request_options [Sentdm::RequestOptions, Hash{Symbol=>Object}]
61
-
62
- class Campaign < Sentdm::Internal::Type::BaseModel
63
- # @!attribute description
64
- # Campaign description
65
- #
66
- # @return [String]
67
- required :description, String
68
-
69
- # @!attribute name
70
- # Campaign name
71
- #
72
- # @return [String]
73
- required :name, String
74
-
75
- # @!attribute type
76
- # Campaign type (e.g., "KYC", "App").
77
- #
78
- # Still required of a caller, and consulted by nothing. It named the signup path
79
- # that produced the campaign, was written to a column no query filters on, no TCR
80
- # payload carries and no fee or status decision reads, and is now defaulted at the
81
- # entity instead. It stays required so that a request which was valid before is
82
- # still valid — dropping it would be the client-visible change, not keeping it.
83
- #
84
- # @return [String]
85
- required :type, String
86
-
87
- # @!attribute use_cases
88
- # List of use cases with sample messages
89
- #
90
- # @return [Array<Sentdm::Models::Profiles::CampaignUpdateParams::Campaign::UseCase>]
91
- required :use_cases,
92
- -> {
93
- Sentdm::Internal::Type::ArrayOf[Sentdm::Profiles::CampaignUpdateParams::Campaign::UseCase]
94
- },
95
- api_name: :useCases
96
-
97
- # @!attribute help_keywords
98
- # Comma-separated keywords that trigger help message (e.g., "HELP, INFO, SUPPORT")
99
- #
100
- # @return [String, nil]
101
- optional :help_keywords, String, api_name: :helpKeywords, nil?: true
102
-
103
- # @!attribute help_message
104
- # Message sent when user requests help
105
- #
106
- # @return [String, nil]
107
- optional :help_message, String, api_name: :helpMessage, nil?: true
108
-
109
- # @!attribute message_flow
110
- # Description of how messages flow in the campaign
111
- #
112
- # @return [String, nil]
113
- optional :message_flow, String, api_name: :messageFlow, nil?: true
114
-
115
- # @!attribute optin_keywords
116
- # Comma-separated keywords that trigger opt-in (e.g., "YES, START, SUBSCRIBE")
117
- #
118
- # @return [String, nil]
119
- optional :optin_keywords, String, api_name: :optinKeywords, nil?: true
120
-
121
- # @!attribute optin_message
122
- # Message sent when user opts in
123
- #
124
- # @return [String, nil]
125
- optional :optin_message, String, api_name: :optinMessage, nil?: true
126
-
127
- # @!attribute optout_keywords
128
- # Comma-separated keywords that trigger opt-out (e.g., "STOP, UNSUBSCRIBE, END")
129
- #
130
- # @return [String, nil]
131
- optional :optout_keywords, String, api_name: :optoutKeywords, nil?: true
132
-
133
- # @!attribute optout_message
134
- # Message sent when user opts out
135
- #
136
- # @return [String, nil]
137
- optional :optout_message, String, api_name: :optoutMessage, nil?: true
138
-
139
- # @!attribute privacy_policy_link
140
- # URL to privacy policy
141
- #
142
- # @return [String, nil]
143
- optional :privacy_policy_link, String, api_name: :privacyPolicyLink, nil?: true
144
-
145
- # @!attribute terms_and_conditions_link
146
- # URL to terms and conditions
147
- #
148
- # @return [String, nil]
149
- optional :terms_and_conditions_link, String, api_name: :termsAndConditionsLink, nil?: true
150
-
151
- # @!attribute volume
152
- # Expected messaging volume for this campaign. Numeric string (e.g. "1999",
153
- # "5000"). Values below 2000 bill at the low-volume tier.
154
- #
155
- # @return [String, nil]
156
- optional :volume, String, nil?: true
157
-
158
- # @!method initialize(description:, name:, type:, use_cases:, help_keywords: nil, help_message: nil, message_flow: nil, optin_keywords: nil, optin_message: nil, optout_keywords: nil, optout_message: nil, privacy_policy_link: nil, terms_and_conditions_link: nil, volume: nil)
159
- # Some parameter documentations has been truncated, see
160
- # {Sentdm::Models::Profiles::CampaignUpdateParams::Campaign} for more details.
161
- #
162
- # Campaign data for create or update operation
163
- #
164
- # @param description [String] Campaign description
165
- #
166
- # @param name [String] Campaign name
167
- #
168
- # @param type [String] Campaign type (e.g., "KYC", "App").
169
- #
170
- # @param use_cases [Array<Sentdm::Models::Profiles::CampaignUpdateParams::Campaign::UseCase>] List of use cases with sample messages
171
- #
172
- # @param help_keywords [String, nil] Comma-separated keywords that trigger help message (e.g., "HELP, INFO, SUPPORT")
173
- #
174
- # @param help_message [String, nil] Message sent when user requests help
175
- #
176
- # @param message_flow [String, nil] Description of how messages flow in the campaign
177
- #
178
- # @param optin_keywords [String, nil] Comma-separated keywords that trigger opt-in (e.g., "YES, START, SUBSCRIBE")
179
- #
180
- # @param optin_message [String, nil] Message sent when user opts in
181
- #
182
- # @param optout_keywords [String, nil] Comma-separated keywords that trigger opt-out (e.g., "STOP, UNSUBSCRIBE, END")
183
- #
184
- # @param optout_message [String, nil] Message sent when user opts out
185
- #
186
- # @param privacy_policy_link [String, nil] URL to privacy policy
187
- #
188
- # @param terms_and_conditions_link [String, nil] URL to terms and conditions
189
- #
190
- # @param volume [String, nil] Expected messaging volume for this campaign. Numeric string (e.g. "1999", "5000"
191
-
192
- class UseCase < Sentdm::Internal::Type::BaseModel
193
- # @!attribute messaging_use_case_us
194
- #
195
- # @return [Symbol, Sentdm::Models::Profiles::MessagingUseCaseUs]
196
- required :messaging_use_case_us,
197
- enum: -> { Sentdm::Profiles::MessagingUseCaseUs },
198
- api_name: :messagingUseCaseUs
199
-
200
- # @!attribute sample_messages
201
- # Sample messages for this use case (1-5 messages, max 1024 characters each)
202
- #
203
- # @return [Array<String>]
204
- required :sample_messages, Sentdm::Internal::Type::ArrayOf[String], api_name: :sampleMessages
205
-
206
- # @!method initialize(messaging_use_case_us:, sample_messages:)
207
- # Campaign use case with sample messages
208
- #
209
- # @param messaging_use_case_us [Symbol, Sentdm::Models::Profiles::MessagingUseCaseUs]
210
- #
211
- # @param sample_messages [Array<String>] Sample messages for this use case (1-5 messages, max 1024 characters each)
212
- end
213
- end
214
61
  end
215
62
  end
216
63
  end
@@ -0,0 +1,71 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Sentdm
4
+ module Models
5
+ module Profiles
6
+ class CampaignUseCase < Sentdm::Internal::Type::BaseModel
7
+ # @!attribute id
8
+ #
9
+ # @return [String, nil]
10
+ optional :id, String
11
+
12
+ # @!attribute campaign_id
13
+ #
14
+ # @return [String, nil]
15
+ optional :campaign_id, String, api_name: :campaignId
16
+
17
+ # @!attribute created_at
18
+ #
19
+ # @return [Time, nil]
20
+ optional :created_at, Time, api_name: :createdAt
21
+
22
+ # @!attribute customer_id
23
+ #
24
+ # @return [String, nil]
25
+ optional :customer_id, String, api_name: :customerId
26
+
27
+ # @!attribute messaging_use_case_us
28
+ #
29
+ # @return [Symbol, Sentdm::Models::Profiles::MessagingUseCaseUs, nil]
30
+ optional :messaging_use_case_us,
31
+ enum: -> { Sentdm::Profiles::MessagingUseCaseUs },
32
+ api_name: :messagingUseCaseUs
33
+
34
+ # @!attribute sample_messages
35
+ # Sample messages submitted to the registry for this use case.
36
+ #
37
+ # @return [Array<String>, nil]
38
+ optional :sample_messages, Sentdm::Internal::Type::ArrayOf[String], api_name: :sampleMessages
39
+
40
+ # @!attribute updated_at
41
+ #
42
+ # @return [Time, nil]
43
+ optional :updated_at, Time, api_name: :updatedAt, nil?: true
44
+
45
+ # @!method initialize(id: nil, campaign_id: nil, created_at: nil, customer_id: nil, messaging_use_case_us: nil, sample_messages: nil, updated_at: nil)
46
+ # Customer-facing use-case representation for the public v3 campaign contract.
47
+ # Exists for the same reason as BrandCampaignV3Response: nesting the
48
+ # TcrCampaignUseCase database entity in a public response means any column added
49
+ # to that table silently becomes part of the customer-facing contract. This DTO is
50
+ # an explicit allowlist, so a new column stays invisible until it is added here on
51
+ # purpose. This mirrors exactly the fields the entity already serialized, so it
52
+ # removes nothing from the current response shape. It only closes the future-leak
53
+ # path.
54
+ #
55
+ # @param id [String]
56
+ #
57
+ # @param campaign_id [String]
58
+ #
59
+ # @param created_at [Time]
60
+ #
61
+ # @param customer_id [String]
62
+ #
63
+ # @param messaging_use_case_us [Symbol, Sentdm::Models::Profiles::MessagingUseCaseUs]
64
+ #
65
+ # @param sample_messages [Array<String>] Sample messages submitted to the registry for this use case.
66
+ #
67
+ # @param updated_at [Time, nil]
68
+ end
69
+ end
70
+ end
71
+ end
@@ -0,0 +1,29 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Sentdm
4
+ module Models
5
+ module Profiles
6
+ class CampaignUseCaseData < Sentdm::Internal::Type::BaseModel
7
+ # @!attribute messaging_use_case_us
8
+ #
9
+ # @return [Symbol, Sentdm::Models::Profiles::MessagingUseCaseUs]
10
+ required :messaging_use_case_us,
11
+ enum: -> { Sentdm::Profiles::MessagingUseCaseUs },
12
+ api_name: :messagingUseCaseUs
13
+
14
+ # @!attribute sample_messages
15
+ # Sample messages for this use case (1-5 messages, max 1024 characters each)
16
+ #
17
+ # @return [Array<String>]
18
+ required :sample_messages, Sentdm::Internal::Type::ArrayOf[String], api_name: :sampleMessages
19
+
20
+ # @!method initialize(messaging_use_case_us:, sample_messages:)
21
+ # Campaign use case with sample messages
22
+ #
23
+ # @param messaging_use_case_us [Symbol, Sentdm::Models::Profiles::MessagingUseCaseUs]
24
+ #
25
+ # @param sample_messages [Array<String>] Sample messages for this use case (1-5 messages, max 1024 characters each)
26
+ end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,102 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Sentdm
4
+ module Models
5
+ class Template < Sentdm::Internal::Type::BaseModel
6
+ # @!attribute customer_id
7
+ # Which customer owns this — the key's own, or the profile named in x-profile-id.
8
+ # Says whose resource this is, which the resource's own id does not.
9
+ #
10
+ # @return [String]
11
+ required :customer_id, String
12
+
13
+ # @!attribute id
14
+ # Unique template identifier
15
+ #
16
+ # @return [String, nil]
17
+ optional :id, String
18
+
19
+ # @!attribute category
20
+ # Template category: MARKETING, UTILITY, AUTHENTICATION
21
+ #
22
+ # @return [String, nil]
23
+ optional :category, String
24
+
25
+ # @!attribute channels
26
+ # Supported channels: sms, whatsapp
27
+ #
28
+ # @return [Array<String>, nil]
29
+ optional :channels, Sentdm::Internal::Type::ArrayOf[String], nil?: true
30
+
31
+ # @!attribute created_at
32
+ # When the template was created
33
+ #
34
+ # @return [Time, nil]
35
+ optional :created_at, Time
36
+
37
+ # @!attribute is_published
38
+ # Whether the template is published and active
39
+ #
40
+ # @return [Boolean, nil]
41
+ optional :is_published, Sentdm::Internal::Type::Boolean
42
+
43
+ # @!attribute language
44
+ # Template language code (e.g., en_US)
45
+ #
46
+ # @return [String, nil]
47
+ optional :language, String
48
+
49
+ # @!attribute name
50
+ # Template display name
51
+ #
52
+ # @return [String, nil]
53
+ optional :name, String
54
+
55
+ # @!attribute status
56
+ # Template status: APPROVED, PENDING, REJECTED
57
+ #
58
+ # @return [String, nil]
59
+ optional :status, String
60
+
61
+ # @!attribute updated_at
62
+ # When the template was last updated
63
+ #
64
+ # @return [Time, nil]
65
+ optional :updated_at, Time, nil?: true
66
+
67
+ # @!attribute variables
68
+ # Template variables for personalization
69
+ #
70
+ # @return [Array<String>, nil]
71
+ optional :variables, Sentdm::Internal::Type::ArrayOf[String], nil?: true
72
+
73
+ # @!method initialize(customer_id:, id: nil, category: nil, channels: nil, created_at: nil, is_published: nil, language: nil, name: nil, status: nil, updated_at: nil, variables: nil)
74
+ # Some parameter documentations has been truncated, see {Sentdm::Models::Template}
75
+ # for more details.
76
+ #
77
+ # Template response for v3 API
78
+ #
79
+ # @param customer_id [String] Which customer owns this — the key's own, or the profile named in x-profile-id.
80
+ #
81
+ # @param id [String] Unique template identifier
82
+ #
83
+ # @param category [String] Template category: MARKETING, UTILITY, AUTHENTICATION
84
+ #
85
+ # @param channels [Array<String>, nil] Supported channels: sms, whatsapp
86
+ #
87
+ # @param created_at [Time] When the template was created
88
+ #
89
+ # @param is_published [Boolean] Whether the template is published and active
90
+ #
91
+ # @param language [String] Template language code (e.g., en_US)
92
+ #
93
+ # @param name [String] Template display name
94
+ #
95
+ # @param status [String] Template status: APPROVED, PENDING, REJECTED
96
+ #
97
+ # @param updated_at [Time, nil] When the template was last updated
98
+ #
99
+ # @param variables [Array<String>, nil] Template variables for personalization
100
+ end
101
+ end
102
+ end
@@ -13,14 +13,14 @@ module Sentdm
13
13
  # @!attribute error
14
14
  # Error information
15
15
  #
16
- # @return [Sentdm::Models::TemplateListResponse::Error, nil]
17
- optional :error, -> { Sentdm::Models::TemplateListResponse::Error }, nil?: true
16
+ # @return [Sentdm::Models::ErrorDetail, nil]
17
+ optional :error, -> { Sentdm::ErrorDetail }, nil?: true
18
18
 
19
19
  # @!attribute meta
20
20
  # Request and response metadata
21
21
  #
22
- # @return [Sentdm::Models::TemplateListResponse::Meta, nil]
23
- optional :meta, -> { Sentdm::Models::TemplateListResponse::Meta }
22
+ # @return [Sentdm::Models::APIMeta, nil]
23
+ optional :meta, -> { Sentdm::APIMeta }
24
24
 
25
25
  # @!attribute success
26
26
  # Indicates whether the request was successful
@@ -33,9 +33,9 @@ module Sentdm
33
33
  #
34
34
  # @param data [Sentdm::Models::TemplateListResponse::Data, nil] A paginated list of templates.
35
35
  #
36
- # @param error [Sentdm::Models::TemplateListResponse::Error, nil] Error information
36
+ # @param error [Sentdm::Models::ErrorDetail, nil] Error information
37
37
  #
38
- # @param meta [Sentdm::Models::TemplateListResponse::Meta] Request and response metadata
38
+ # @param meta [Sentdm::Models::APIMeta] Request and response metadata
39
39
  #
40
40
  # @param success [Boolean] Indicates whether the request was successful
41
41
 
@@ -44,267 +44,21 @@ module Sentdm
44
44
  # @!attribute pagination
45
45
  # Pagination metadata for list responses
46
46
  #
47
- # @return [Sentdm::Models::TemplateListResponse::Data::Pagination, nil]
48
- optional :pagination, -> { Sentdm::Models::TemplateListResponse::Data::Pagination }
47
+ # @return [Sentdm::Models::PaginationMeta, nil]
48
+ optional :pagination, -> { Sentdm::PaginationMeta }
49
49
 
50
50
  # @!attribute templates
51
51
  # The templates on this page.
52
52
  #
53
- # @return [Array<Sentdm::Models::TemplateListResponse::Data::Template>, nil]
54
- optional :templates,
55
- -> { Sentdm::Internal::Type::ArrayOf[Sentdm::Models::TemplateListResponse::Data::Template] }
53
+ # @return [Array<Sentdm::Models::Template>, nil]
54
+ optional :templates, -> { Sentdm::Internal::Type::ArrayOf[Sentdm::Template] }
56
55
 
57
56
  # @!method initialize(pagination: nil, templates: nil)
58
57
  # A paginated list of templates.
59
58
  #
60
- # @param pagination [Sentdm::Models::TemplateListResponse::Data::Pagination] Pagination metadata for list responses
59
+ # @param pagination [Sentdm::Models::PaginationMeta] Pagination metadata for list responses
61
60
  #
62
- # @param templates [Array<Sentdm::Models::TemplateListResponse::Data::Template>] The templates on this page.
63
-
64
- # @see Sentdm::Models::TemplateListResponse::Data#pagination
65
- class Pagination < Sentdm::Internal::Type::BaseModel
66
- # @!attribute cursors
67
- # @deprecated
68
- #
69
- # Cursor-based pagination. Never populated — see Cursors.
70
- #
71
- # @return [Sentdm::Models::TemplateListResponse::Data::Pagination::Cursors, nil]
72
- optional :cursors, -> { Sentdm::Models::TemplateListResponse::Data::Pagination::Cursors }, nil?: true
73
-
74
- # @!attribute has_more
75
- # Whether there are more pages after this one
76
- #
77
- # @return [Boolean, nil]
78
- optional :has_more, Sentdm::Internal::Type::Boolean
79
-
80
- # @!attribute page
81
- # Current page number (1-indexed)
82
- #
83
- # @return [Integer, nil]
84
- optional :page, Integer
85
-
86
- # @!attribute page_size
87
- # Number of items per page
88
- #
89
- # @return [Integer, nil]
90
- optional :page_size, Integer
91
-
92
- # @!attribute total_count
93
- # Total number of items across all pages
94
- #
95
- # @return [Integer, nil]
96
- optional :total_count, Integer
97
-
98
- # @!attribute total_pages
99
- # Total number of pages
100
- #
101
- # @return [Integer, nil]
102
- optional :total_pages, Integer
103
-
104
- # @!method initialize(cursors: nil, has_more: nil, page: nil, page_size: nil, total_count: nil, total_pages: nil)
105
- # Pagination metadata for list responses
106
- #
107
- # @param cursors [Sentdm::Models::TemplateListResponse::Data::Pagination::Cursors, nil] Cursor-based pagination. Never populated — see Cursors.
108
- #
109
- # @param has_more [Boolean] Whether there are more pages after this one
110
- #
111
- # @param page [Integer] Current page number (1-indexed)
112
- #
113
- # @param page_size [Integer] Number of items per page
114
- #
115
- # @param total_count [Integer] Total number of items across all pages
116
- #
117
- # @param total_pages [Integer] Total number of pages
118
-
119
- # @deprecated
120
- #
121
- # @see Sentdm::Models::TemplateListResponse::Data::Pagination#cursors
122
- class Cursors < Sentdm::Internal::Type::BaseModel
123
- # @!attribute after
124
- # Cursor to fetch the next page.
125
- #
126
- # @return [String, nil]
127
- optional :after, String, nil?: true
128
-
129
- # @!attribute before
130
- # Cursor to fetch the previous page.
131
- #
132
- # @return [String, nil]
133
- optional :before, String, nil?: true
134
-
135
- # @!method initialize(after: nil, before: nil)
136
- # Cursor-based pagination. Never populated — see Cursors.
137
- #
138
- # @param after [String, nil] Cursor to fetch the next page.
139
- #
140
- # @param before [String, nil] Cursor to fetch the previous page.
141
- end
142
- end
143
-
144
- class Template < Sentdm::Internal::Type::BaseModel
145
- # @!attribute customer_id
146
- # Which customer owns this — the key's own, or the profile named in x-profile-id.
147
- # Says whose resource this is, which the resource's own id does not.
148
- #
149
- # @return [String]
150
- required :customer_id, String
151
-
152
- # @!attribute id
153
- # Unique template identifier
154
- #
155
- # @return [String, nil]
156
- optional :id, String
157
-
158
- # @!attribute category
159
- # Template category: MARKETING, UTILITY, AUTHENTICATION
160
- #
161
- # @return [String, nil]
162
- optional :category, String
163
-
164
- # @!attribute channels
165
- # Supported channels: sms, whatsapp
166
- #
167
- # @return [Array<String>, nil]
168
- optional :channels, Sentdm::Internal::Type::ArrayOf[String], nil?: true
169
-
170
- # @!attribute created_at
171
- # When the template was created
172
- #
173
- # @return [Time, nil]
174
- optional :created_at, Time
175
-
176
- # @!attribute is_published
177
- # Whether the template is published and active
178
- #
179
- # @return [Boolean, nil]
180
- optional :is_published, Sentdm::Internal::Type::Boolean
181
-
182
- # @!attribute language
183
- # Template language code (e.g., en_US)
184
- #
185
- # @return [String, nil]
186
- optional :language, String
187
-
188
- # @!attribute name
189
- # Template display name
190
- #
191
- # @return [String, nil]
192
- optional :name, String
193
-
194
- # @!attribute status
195
- # Template status: APPROVED, PENDING, REJECTED
196
- #
197
- # @return [String, nil]
198
- optional :status, String
199
-
200
- # @!attribute updated_at
201
- # When the template was last updated
202
- #
203
- # @return [Time, nil]
204
- optional :updated_at, Time, nil?: true
205
-
206
- # @!attribute variables
207
- # Template variables for personalization
208
- #
209
- # @return [Array<String>, nil]
210
- optional :variables, Sentdm::Internal::Type::ArrayOf[String], nil?: true
211
-
212
- # @!method initialize(customer_id:, id: nil, category: nil, channels: nil, created_at: nil, is_published: nil, language: nil, name: nil, status: nil, updated_at: nil, variables: nil)
213
- # Some parameter documentations has been truncated, see
214
- # {Sentdm::Models::TemplateListResponse::Data::Template} for more details.
215
- #
216
- # Template response for v3 API
217
- #
218
- # @param customer_id [String] Which customer owns this — the key's own, or the profile named in x-profile-id.
219
- #
220
- # @param id [String] Unique template identifier
221
- #
222
- # @param category [String] Template category: MARKETING, UTILITY, AUTHENTICATION
223
- #
224
- # @param channels [Array<String>, nil] Supported channels: sms, whatsapp
225
- #
226
- # @param created_at [Time] When the template was created
227
- #
228
- # @param is_published [Boolean] Whether the template is published and active
229
- #
230
- # @param language [String] Template language code (e.g., en_US)
231
- #
232
- # @param name [String] Template display name
233
- #
234
- # @param status [String] Template status: APPROVED, PENDING, REJECTED
235
- #
236
- # @param updated_at [Time, nil] When the template was last updated
237
- #
238
- # @param variables [Array<String>, nil] Template variables for personalization
239
- end
240
- end
241
-
242
- # @see Sentdm::Models::TemplateListResponse#error
243
- class Error < Sentdm::Internal::Type::BaseModel
244
- # @!attribute code
245
- # Machine-readable error code (e.g., "RESOURCE_001")
246
- #
247
- # @return [String, nil]
248
- optional :code, String
249
-
250
- # @!attribute details
251
- # Additional validation error details (field-level errors)
252
- #
253
- # @return [Hash{Symbol=>Array<String>}, nil]
254
- optional :details, Sentdm::Internal::Type::HashOf[Sentdm::Internal::Type::ArrayOf[String]], nil?: true
255
-
256
- # @!attribute doc_url
257
- # URL to documentation about this error
258
- #
259
- # @return [String, nil]
260
- optional :doc_url, String, nil?: true
261
-
262
- # @!attribute message
263
- # Human-readable error message
264
- #
265
- # @return [String, nil]
266
- optional :message, String
267
-
268
- # @!method initialize(code: nil, details: nil, doc_url: nil, message: nil)
269
- # Error information
270
- #
271
- # @param code [String] Machine-readable error code (e.g., "RESOURCE_001")
272
- #
273
- # @param details [Hash{Symbol=>Array<String>}, nil] Additional validation error details (field-level errors)
274
- #
275
- # @param doc_url [String, nil] URL to documentation about this error
276
- #
277
- # @param message [String] Human-readable error message
278
- end
279
-
280
- # @see Sentdm::Models::TemplateListResponse#meta
281
- class Meta < Sentdm::Internal::Type::BaseModel
282
- # @!attribute request_id
283
- # Unique identifier for this request (for tracing and support)
284
- #
285
- # @return [String, nil]
286
- optional :request_id, String
287
-
288
- # @!attribute timestamp
289
- # Server timestamp when the response was generated
290
- #
291
- # @return [Time, nil]
292
- optional :timestamp, Time
293
-
294
- # @!attribute version
295
- # API version used for this request
296
- #
297
- # @return [String, nil]
298
- optional :version, String
299
-
300
- # @!method initialize(request_id: nil, timestamp: nil, version: nil)
301
- # Request and response metadata
302
- #
303
- # @param request_id [String] Unique identifier for this request (for tracing and support)
304
- #
305
- # @param timestamp [Time] Server timestamp when the response was generated
306
- #
307
- # @param version [String] API version used for this request
61
+ # @param templates [Array<Sentdm::Models::Template>] The templates on this page.
308
62
  end
309
63
  end
310
64
  end