sentdm 0.1.0 → 0.3.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 (361) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +18 -0
  3. data/README.md +96 -39
  4. data/lib/sentdm/client.rb +29 -36
  5. data/lib/sentdm/internal/type/base_model.rb +5 -5
  6. data/lib/sentdm/internal/type/enum.rb +25 -0
  7. data/lib/sentdm/models/api_error.rb +42 -0
  8. data/lib/sentdm/models/api_meta.rb +42 -0
  9. data/lib/sentdm/models/api_response_brand_with_kyc.rb +43 -0
  10. data/lib/sentdm/models/api_response_contact.rb +43 -0
  11. data/lib/sentdm/models/api_response_of_profile_detail.rb +43 -0
  12. data/lib/sentdm/models/api_response_of_user.rb +43 -0
  13. data/lib/sentdm/models/api_response_template.rb +43 -0
  14. data/lib/sentdm/models/api_response_webhook.rb +43 -0
  15. data/lib/sentdm/models/brand_create_params.rb +41 -0
  16. data/lib/sentdm/models/brand_data.rb +237 -0
  17. data/lib/sentdm/models/brand_delete_params.rb +27 -0
  18. data/lib/sentdm/models/brand_list_params.rb +14 -0
  19. data/lib/sentdm/models/brand_list_response.rb +43 -0
  20. data/lib/sentdm/models/brand_update_params.rb +41 -0
  21. data/lib/sentdm/models/brand_with_kyc.rb +335 -0
  22. data/lib/sentdm/models/brands/api_response_tcr_campaign_with_use_cases.rb +45 -0
  23. data/lib/sentdm/models/brands/base_dto.rb +32 -0
  24. data/lib/sentdm/models/brands/campaign_create_params.rb +43 -0
  25. data/lib/sentdm/models/brands/campaign_data.rb +123 -0
  26. data/lib/sentdm/models/brands/campaign_delete_params.rb +36 -0
  27. data/lib/sentdm/models/brands/campaign_list_params.rb +16 -0
  28. data/lib/sentdm/models/brands/campaign_list_response.rb +47 -0
  29. data/lib/sentdm/models/brands/campaign_update_params.rb +50 -0
  30. data/lib/sentdm/models/brands/messaging_use_case_us.rb +28 -0
  31. data/lib/sentdm/models/brands/sent_dm_services_endpoints_customer_ap_iv3_contracts_requests_campaigns_campaign_use_case_data.rb +30 -0
  32. data/lib/sentdm/models/brands/tcr_campaign_with_use_cases.rb +236 -0
  33. data/lib/sentdm/models/contact.rb +122 -0
  34. data/lib/sentdm/models/contact_create_params.rb +41 -0
  35. data/lib/sentdm/models/contact_delete_params.rb +27 -0
  36. data/lib/sentdm/models/contact_list_params.rb +28 -5
  37. data/lib/sentdm/models/contact_list_response.rb +46 -21
  38. data/lib/sentdm/models/{message_retrieve_params.rb → contact_retrieve_params.rb} +2 -2
  39. data/lib/sentdm/models/contact_update_params.rb +49 -0
  40. data/lib/sentdm/models/destination_country.rb +21 -0
  41. data/lib/sentdm/models/lookup_retrieve_phone_info_params.rb +14 -0
  42. data/lib/sentdm/models/lookup_retrieve_phone_info_response.rb +104 -0
  43. data/lib/sentdm/models/me_retrieve_params.rb +14 -0
  44. data/lib/sentdm/models/me_retrieve_response.rb +200 -0
  45. data/lib/sentdm/models/message_retrieve_activities_params.rb +14 -0
  46. data/lib/sentdm/models/message_retrieve_activities_response.rb +103 -0
  47. data/lib/sentdm/models/message_retrieve_status_params.rb +14 -0
  48. data/lib/sentdm/models/message_retrieve_status_response.rb +237 -0
  49. data/lib/sentdm/models/message_send_params.rb +88 -0
  50. data/lib/sentdm/models/message_send_response.rb +123 -0
  51. data/lib/sentdm/models/mutation_request.rb +20 -0
  52. data/lib/sentdm/models/pagination_meta.rb +80 -0
  53. data/lib/sentdm/models/profile_complete_params.rb +41 -0
  54. data/lib/sentdm/models/profile_complete_response.rb +8 -0
  55. data/lib/sentdm/models/profile_create_params.rb +122 -0
  56. data/lib/sentdm/models/profile_delete_params.rb +34 -0
  57. data/lib/sentdm/models/profile_detail.rb +200 -0
  58. data/lib/sentdm/models/profile_list_params.rb +14 -0
  59. data/lib/sentdm/models/profile_list_response.rb +57 -0
  60. data/lib/sentdm/models/profile_retrieve_params.rb +14 -0
  61. data/lib/sentdm/models/profile_settings.rb +66 -0
  62. data/lib/sentdm/models/profile_update_params.rb +169 -0
  63. data/lib/sentdm/models/sent_dm_services_common_contracts_poc_os_authentication_config.rb +34 -0
  64. data/lib/sentdm/models/sent_dm_services_common_contracts_poc_os_template_body.rb +40 -0
  65. data/lib/sentdm/models/sent_dm_services_common_contracts_poc_os_template_button.rb +38 -0
  66. data/lib/sentdm/models/sent_dm_services_common_contracts_poc_os_template_button_props.rb +81 -0
  67. data/lib/sentdm/models/sent_dm_services_common_contracts_poc_os_template_footer.rb +34 -0
  68. data/lib/sentdm/models/sent_dm_services_common_contracts_poc_os_template_header.rb +39 -0
  69. data/lib/sentdm/models/tcr_brand_relationship.rb +18 -0
  70. data/lib/sentdm/models/tcr_vertical.rb +36 -0
  71. data/lib/sentdm/models/template.rb +90 -0
  72. data/lib/sentdm/models/template_create_params.rb +40 -19
  73. data/lib/sentdm/models/template_definition.rb +15 -255
  74. data/lib/sentdm/models/template_delete_params.rb +22 -1
  75. data/lib/sentdm/models/template_list_params.rb +9 -10
  76. data/lib/sentdm/models/template_list_response.rb +46 -21
  77. data/lib/sentdm/models/template_update_params.rb +73 -0
  78. data/lib/sentdm/models/user_invite_params.rb +57 -0
  79. data/lib/sentdm/models/user_list_params.rb +14 -0
  80. data/lib/sentdm/models/user_list_response.rb +57 -0
  81. data/lib/sentdm/models/user_remove_params.rb +34 -0
  82. data/lib/sentdm/models/user_response.rb +82 -0
  83. data/lib/sentdm/models/user_retrieve_params.rb +14 -0
  84. data/lib/sentdm/models/user_update_role_params.rb +49 -0
  85. data/lib/sentdm/models/webhook_create_params.rb +68 -0
  86. data/lib/sentdm/models/webhook_delete_params.rb +14 -0
  87. data/lib/sentdm/models/webhook_list_event_types_params.rb +14 -0
  88. data/lib/sentdm/models/webhook_list_event_types_response.rb +85 -0
  89. data/lib/sentdm/models/webhook_list_events_params.rb +32 -0
  90. data/lib/sentdm/models/webhook_list_events_response.rb +135 -0
  91. data/lib/sentdm/models/webhook_list_params.rb +38 -0
  92. data/lib/sentdm/models/webhook_list_response.rb +64 -0
  93. data/lib/sentdm/models/webhook_response.rb +87 -0
  94. data/lib/sentdm/models/webhook_retrieve_params.rb +14 -0
  95. data/lib/sentdm/models/webhook_rotate_secret_params.rb +30 -0
  96. data/lib/sentdm/models/webhook_rotate_secret_response.rb +56 -0
  97. data/lib/sentdm/models/webhook_test_params.rb +40 -0
  98. data/lib/sentdm/models/webhook_test_response.rb +62 -0
  99. data/lib/sentdm/models/webhook_toggle_status_params.rb +40 -0
  100. data/lib/sentdm/models/webhook_update_params.rb +68 -0
  101. data/lib/sentdm/models.rb +124 -10
  102. data/lib/sentdm/resources/brands/campaigns.rb +144 -0
  103. data/lib/sentdm/resources/brands.rb +128 -0
  104. data/lib/sentdm/resources/contacts.rb +111 -38
  105. data/lib/sentdm/resources/lookup.rb +35 -0
  106. data/lib/sentdm/resources/me.rb +34 -0
  107. data/lib/sentdm/resources/messages.rb +42 -77
  108. data/lib/sentdm/resources/profiles.rb +254 -0
  109. data/lib/sentdm/resources/templates.rb +94 -45
  110. data/lib/sentdm/resources/users.rb +158 -0
  111. data/lib/sentdm/resources/webhooks.rb +295 -0
  112. data/lib/sentdm/version.rb +1 -1
  113. data/lib/sentdm.rb +94 -14
  114. data/rbi/sentdm/client.rbi +22 -25
  115. data/rbi/sentdm/models/api_error.rbi +66 -0
  116. data/rbi/sentdm/models/api_meta.rbi +69 -0
  117. data/rbi/sentdm/models/api_response_brand_with_kyc.rbi +74 -0
  118. data/rbi/sentdm/models/api_response_contact.rbi +74 -0
  119. data/rbi/sentdm/models/api_response_of_profile_detail.rbi +74 -0
  120. data/rbi/sentdm/models/api_response_of_user.rbi +74 -0
  121. data/rbi/sentdm/models/api_response_template.rbi +74 -0
  122. data/rbi/sentdm/models/api_response_webhook.rbi +74 -0
  123. data/rbi/sentdm/models/brand_create_params.rbi +68 -0
  124. data/rbi/sentdm/models/brand_data.rbi +266 -0
  125. data/rbi/sentdm/models/brand_delete_params.rbi +62 -0
  126. data/rbi/sentdm/models/brand_list_params.rbi +27 -0
  127. data/rbi/sentdm/models/brand_list_response.rbi +71 -0
  128. data/rbi/sentdm/models/brand_update_params.rbi +68 -0
  129. data/rbi/sentdm/models/brand_with_kyc.rbi +398 -0
  130. data/rbi/sentdm/models/brands/api_response_tcr_campaign_with_use_cases.rbi +83 -0
  131. data/rbi/sentdm/models/brands/base_dto.rbi +53 -0
  132. data/rbi/sentdm/models/brands/campaign_create_params.rbi +73 -0
  133. data/rbi/sentdm/models/brands/campaign_data.rbi +148 -0
  134. data/rbi/sentdm/models/brands/campaign_delete_params.rbi +78 -0
  135. data/rbi/sentdm/models/brands/campaign_list_params.rbi +29 -0
  136. data/rbi/sentdm/models/brands/campaign_list_response.rbi +82 -0
  137. data/rbi/sentdm/models/brands/campaign_update_params.rbi +79 -0
  138. data/rbi/sentdm/models/brands/messaging_use_case_us.rbi +69 -0
  139. data/rbi/sentdm/models/brands/sent_dm_services_endpoints_customer_ap_iv3_contracts_requests_campaigns_campaign_use_case_data.rbi +52 -0
  140. data/rbi/sentdm/models/brands/tcr_campaign_with_use_cases.rbi +404 -0
  141. data/rbi/sentdm/models/contact.rbi +179 -0
  142. data/rbi/sentdm/models/contact_create_params.rbi +68 -0
  143. data/rbi/sentdm/models/contact_delete_params.rbi +62 -0
  144. data/rbi/sentdm/models/contact_list_params.rbi +26 -4
  145. data/rbi/sentdm/models/contact_list_response.rbi +91 -37
  146. data/rbi/sentdm/models/{message_retrieve_params.rbi → contact_retrieve_params.rbi} +2 -2
  147. data/rbi/sentdm/models/contact_update_params.rbi +73 -0
  148. data/rbi/sentdm/models/destination_country.rbi +32 -0
  149. data/rbi/sentdm/models/lookup_retrieve_phone_info_params.rbi +30 -0
  150. data/rbi/sentdm/models/lookup_retrieve_phone_info_response.rbi +183 -0
  151. data/rbi/sentdm/models/me_retrieve_params.rbi +27 -0
  152. data/rbi/sentdm/models/me_retrieve_response.rbi +314 -0
  153. data/rbi/sentdm/models/message_retrieve_activities_params.rbi +30 -0
  154. data/rbi/sentdm/models/message_retrieve_activities_response.rbi +234 -0
  155. data/rbi/sentdm/models/message_retrieve_status_params.rbi +27 -0
  156. data/rbi/sentdm/models/message_retrieve_status_response.rbi +434 -0
  157. data/rbi/sentdm/models/message_send_params.rbi +143 -0
  158. data/rbi/sentdm/models/message_send_response.rbi +231 -0
  159. data/rbi/sentdm/models/mutation_request.rbi +32 -0
  160. data/rbi/sentdm/models/pagination_meta.rbi +135 -0
  161. data/rbi/sentdm/models/profile_complete_params.rbi +65 -0
  162. data/rbi/sentdm/models/profile_complete_response.rbi +8 -0
  163. data/rbi/sentdm/models/profile_create_params.rbi +156 -0
  164. data/rbi/sentdm/models/profile_delete_params.rbi +59 -0
  165. data/rbi/sentdm/models/profile_detail.rbi +273 -0
  166. data/rbi/sentdm/models/profile_list_params.rbi +27 -0
  167. data/rbi/sentdm/models/profile_list_response.rbi +111 -0
  168. data/rbi/sentdm/models/profile_retrieve_params.rbi +27 -0
  169. data/rbi/sentdm/models/profile_settings.rbi +86 -0
  170. data/rbi/sentdm/models/profile_update_params.rbi +196 -0
  171. data/rbi/sentdm/models/sent_dm_services_common_contracts_poc_os_authentication_config.rbi +56 -0
  172. data/rbi/sentdm/models/sent_dm_services_common_contracts_poc_os_template_body.rbi +76 -0
  173. data/rbi/sentdm/models/sent_dm_services_common_contracts_poc_os_template_button.rbi +79 -0
  174. data/rbi/sentdm/models/sent_dm_services_common_contracts_poc_os_template_button_props.rbi +104 -0
  175. data/rbi/sentdm/models/sent_dm_services_common_contracts_poc_os_template_footer.rbi +60 -0
  176. data/rbi/sentdm/models/sent_dm_services_common_contracts_poc_os_template_header.rbi +62 -0
  177. data/rbi/sentdm/models/tcr_brand_relationship.rbi +30 -0
  178. data/rbi/sentdm/models/tcr_vertical.rbi +41 -0
  179. data/rbi/sentdm/models/template.rbi +129 -0
  180. data/rbi/sentdm/models/template_create_params.rbi +47 -23
  181. data/rbi/sentdm/models/template_definition.rbi +74 -405
  182. data/rbi/sentdm/models/template_delete_params.rbi +36 -5
  183. data/rbi/sentdm/models/template_list_params.rbi +8 -10
  184. data/rbi/sentdm/models/template_list_response.rbi +91 -37
  185. data/rbi/sentdm/models/template_update_params.rbi +105 -0
  186. data/rbi/sentdm/models/user_invite_params.rbi +90 -0
  187. data/rbi/sentdm/models/user_list_params.rbi +27 -0
  188. data/rbi/sentdm/models/user_list_response.rbi +111 -0
  189. data/rbi/sentdm/models/user_remove_params.rbi +59 -0
  190. data/rbi/sentdm/models/user_response.rbi +118 -0
  191. data/rbi/sentdm/models/user_retrieve_params.rbi +27 -0
  192. data/rbi/sentdm/models/user_update_role_params.rbi +79 -0
  193. data/rbi/sentdm/models/webhook_create_params.rbi +102 -0
  194. data/rbi/sentdm/models/webhook_delete_params.rbi +27 -0
  195. data/rbi/sentdm/models/webhook_list_event_types_params.rbi +27 -0
  196. data/rbi/sentdm/models/webhook_list_event_types_response.rbi +206 -0
  197. data/rbi/sentdm/models/webhook_list_events_params.rbi +48 -0
  198. data/rbi/sentdm/models/webhook_list_events_response.rbi +263 -0
  199. data/rbi/sentdm/models/webhook_list_params.rbi +59 -0
  200. data/rbi/sentdm/models/webhook_list_response.rbi +126 -0
  201. data/rbi/sentdm/models/webhook_response.rbi +134 -0
  202. data/rbi/sentdm/models/webhook_retrieve_params.rbi +27 -0
  203. data/rbi/sentdm/models/webhook_rotate_secret_params.rbi +67 -0
  204. data/rbi/sentdm/models/webhook_rotate_secret_response.rbi +112 -0
  205. data/rbi/sentdm/models/webhook_test_params.rbi +66 -0
  206. data/rbi/sentdm/models/webhook_test_response.rbi +111 -0
  207. data/rbi/sentdm/models/webhook_toggle_status_params.rbi +66 -0
  208. data/rbi/sentdm/models/webhook_update_params.rbi +102 -0
  209. data/rbi/sentdm/models.rbi +125 -10
  210. data/rbi/sentdm/resources/brands/campaigns.rbi +108 -0
  211. data/rbi/sentdm/resources/brands.rbi +93 -0
  212. data/rbi/sentdm/resources/contacts.rbi +89 -26
  213. data/rbi/sentdm/resources/lookup.rbi +24 -0
  214. data/rbi/sentdm/resources/me.rbi +23 -0
  215. data/rbi/sentdm/resources/messages.rbi +41 -60
  216. data/rbi/sentdm/resources/profiles.rbi +238 -0
  217. data/rbi/sentdm/resources/templates.rbi +94 -41
  218. data/rbi/sentdm/resources/users.rbi +116 -0
  219. data/rbi/sentdm/resources/webhooks.rbi +218 -0
  220. data/sig/sentdm/client.rbs +9 -8
  221. data/sig/sentdm/models/api_error.rbs +39 -0
  222. data/sig/sentdm/models/api_meta.rbs +41 -0
  223. data/sig/sentdm/models/api_response_brand_with_kyc.rbs +39 -0
  224. data/sig/sentdm/models/api_response_contact.rbs +39 -0
  225. data/sig/sentdm/models/api_response_of_profile_detail.rbs +39 -0
  226. data/sig/sentdm/models/api_response_of_user.rbs +39 -0
  227. data/sig/sentdm/models/api_response_template.rbs +39 -0
  228. data/sig/sentdm/models/api_response_webhook.rbs +39 -0
  229. data/sig/sentdm/models/brand_create_params.rbs +36 -0
  230. data/sig/sentdm/models/brand_data.rbs +164 -0
  231. data/sig/sentdm/models/brand_delete_params.rbs +32 -0
  232. data/sig/sentdm/models/brand_list_params.rbs +14 -0
  233. data/sig/sentdm/models/brand_list_response.rbs +39 -0
  234. data/sig/sentdm/models/brand_update_params.rbs +36 -0
  235. data/sig/sentdm/models/brand_with_kyc.rbs +237 -0
  236. data/sig/sentdm/models/brands/api_response_tcr_campaign_with_use_cases.rbs +41 -0
  237. data/sig/sentdm/models/brands/base_dto.rbs +27 -0
  238. data/sig/sentdm/models/brands/campaign_create_params.rbs +42 -0
  239. data/sig/sentdm/models/brands/campaign_data.rbs +82 -0
  240. data/sig/sentdm/models/brands/campaign_delete_params.rbs +38 -0
  241. data/sig/sentdm/models/brands/campaign_list_params.rbs +17 -0
  242. data/sig/sentdm/models/brands/campaign_list_response.rbs +41 -0
  243. data/sig/sentdm/models/brands/campaign_update_params.rbs +47 -0
  244. data/sig/sentdm/models/brands/messaging_use_case_us.rbs +40 -0
  245. data/sig/sentdm/models/brands/sent_dm_services_endpoints_customer_ap_iv3_contracts_requests_campaigns_campaign_use_case_data.rbs +27 -0
  246. data/sig/sentdm/models/brands/tcr_campaign_with_use_cases.rbs +285 -0
  247. data/sig/sentdm/models/{contact_list_item.rbs → contact.rbs} +31 -5
  248. data/sig/sentdm/models/contact_create_params.rbs +38 -0
  249. data/sig/sentdm/models/contact_delete_params.rbs +32 -0
  250. data/sig/sentdm/models/contact_list_params.rbs +19 -1
  251. data/sig/sentdm/models/contact_list_response.rbs +44 -31
  252. data/sig/sentdm/models/{message_retrieve_params.rbs → contact_retrieve_params.rbs} +2 -2
  253. data/sig/sentdm/models/contact_update_params.rbs +45 -0
  254. data/sig/sentdm/models/destination_country.rbs +19 -0
  255. data/sig/sentdm/models/lookup_retrieve_phone_info_params.rbs +15 -0
  256. data/sig/sentdm/models/lookup_retrieve_phone_info_response.rbs +102 -0
  257. data/sig/sentdm/models/me_retrieve_params.rbs +14 -0
  258. data/sig/sentdm/models/me_retrieve_response.rbs +162 -0
  259. data/sig/sentdm/models/message_retrieve_activities_params.rbs +15 -0
  260. data/sig/sentdm/models/message_retrieve_activities_response.rbs +105 -0
  261. data/sig/sentdm/models/message_retrieve_status_params.rbs +15 -0
  262. data/sig/sentdm/models/message_retrieve_status_response.rbs +224 -0
  263. data/sig/sentdm/models/message_send_params.rbs +79 -0
  264. data/sig/sentdm/models/message_send_response.rbs +108 -0
  265. data/sig/sentdm/models/mutation_request.rbs +15 -0
  266. data/sig/sentdm/models/pagination_meta.rbs +67 -0
  267. data/sig/sentdm/models/profile_complete_params.rbs +36 -0
  268. data/sig/sentdm/models/profile_complete_response.rbs +5 -0
  269. data/sig/sentdm/models/profile_create_params.rbs +96 -0
  270. data/sig/sentdm/models/profile_delete_params.rbs +32 -0
  271. data/sig/sentdm/models/profile_detail.rbs +168 -0
  272. data/sig/sentdm/models/profile_list_params.rbs +14 -0
  273. data/sig/sentdm/models/profile_list_response.rbs +53 -0
  274. data/sig/sentdm/models/profile_retrieve_params.rbs +15 -0
  275. data/sig/sentdm/models/profile_settings.rbs +50 -0
  276. data/sig/sentdm/models/profile_update_params.rbs +122 -0
  277. data/sig/sentdm/models/sent_dm_services_common_contracts_poc_os_authentication_config.rbs +24 -0
  278. data/sig/sentdm/models/sent_dm_services_common_contracts_poc_os_template_body.rbs +30 -0
  279. data/sig/sentdm/models/sent_dm_services_common_contracts_poc_os_template_button.rbs +38 -0
  280. data/sig/sentdm/models/sent_dm_services_common_contracts_poc_os_template_button_props.rbs +75 -0
  281. data/sig/sentdm/models/sent_dm_services_common_contracts_poc_os_template_footer.rbs +32 -0
  282. data/sig/sentdm/models/sent_dm_services_common_contracts_poc_os_template_header.rbs +32 -0
  283. data/sig/sentdm/models/tcr_brand_relationship.rbs +22 -0
  284. data/sig/sentdm/models/tcr_vertical.rbs +58 -0
  285. data/sig/sentdm/models/{template_response.rbs → template.rbs} +18 -31
  286. data/sig/sentdm/models/template_create_params.rbs +29 -6
  287. data/sig/sentdm/models/template_definition.rbs +20 -233
  288. data/sig/sentdm/models/template_delete_params.rbs +18 -3
  289. data/sig/sentdm/models/template_list_response.rbs +44 -31
  290. data/sig/sentdm/models/template_update_params.rbs +62 -0
  291. data/sig/sentdm/models/user_invite_params.rbs +56 -0
  292. data/sig/sentdm/models/user_list_params.rbs +14 -0
  293. data/sig/sentdm/models/user_list_response.rbs +53 -0
  294. data/sig/sentdm/models/user_remove_params.rbs +32 -0
  295. data/sig/sentdm/models/user_response.rbs +72 -0
  296. data/sig/sentdm/models/user_retrieve_params.rbs +15 -0
  297. data/sig/sentdm/models/user_update_role_params.rbs +49 -0
  298. data/sig/sentdm/models/webhook_create_params.rbs +70 -0
  299. data/sig/sentdm/models/webhook_delete_params.rbs +15 -0
  300. data/sig/sentdm/models/webhook_list_event_types_params.rbs +15 -0
  301. data/sig/sentdm/models/webhook_list_event_types_response.rbs +98 -0
  302. data/sig/sentdm/models/webhook_list_events_params.rbs +32 -0
  303. data/sig/sentdm/models/webhook_list_events_response.rbs +146 -0
  304. data/sig/sentdm/models/webhook_list_params.rbs +36 -0
  305. data/sig/sentdm/models/webhook_list_response.rbs +67 -0
  306. data/sig/sentdm/models/webhook_response.rbs +98 -0
  307. data/sig/sentdm/models/webhook_retrieve_params.rbs +15 -0
  308. data/sig/sentdm/models/webhook_rotate_secret_params.rbs +38 -0
  309. data/sig/sentdm/models/webhook_rotate_secret_response.rbs +51 -0
  310. data/sig/sentdm/models/webhook_test_params.rbs +38 -0
  311. data/sig/sentdm/models/webhook_test_response.rbs +55 -0
  312. data/sig/sentdm/models/webhook_toggle_status_params.rbs +38 -0
  313. data/sig/sentdm/models/webhook_update_params.rbs +70 -0
  314. data/sig/sentdm/models.rbs +118 -10
  315. data/sig/sentdm/resources/brands/campaigns.rbs +38 -0
  316. data/sig/sentdm/resources/brands.rbs +34 -0
  317. data/sig/sentdm/resources/contacts.rbs +28 -8
  318. data/sig/sentdm/resources/lookup.rbs +12 -0
  319. data/sig/sentdm/resources/{number_lookup.rbs → me.rbs} +2 -3
  320. data/sig/sentdm/resources/messages.rbs +12 -18
  321. data/sig/sentdm/resources/profiles.rbs +72 -0
  322. data/sig/sentdm/resources/templates.rbs +24 -4
  323. data/sig/sentdm/resources/users.rbs +41 -0
  324. data/sig/sentdm/resources/webhooks.rbs +80 -0
  325. metadata +284 -44
  326. data/lib/sentdm/models/contact_list_item.rb +0 -96
  327. data/lib/sentdm/models/contact_retrieve_by_phone_params.rb +0 -22
  328. data/lib/sentdm/models/contact_retrieve_id_params.rb +0 -22
  329. data/lib/sentdm/models/message_retrieve_response.rb +0 -227
  330. data/lib/sentdm/models/message_send_quick_message_params.rb +0 -34
  331. data/lib/sentdm/models/message_send_to_contact_params.rb +0 -46
  332. data/lib/sentdm/models/message_send_to_phone_params.rb +0 -47
  333. data/lib/sentdm/models/number_lookup_retrieve_params.rb +0 -20
  334. data/lib/sentdm/models/number_lookup_retrieve_response.rb +0 -83
  335. data/lib/sentdm/models/template_response.rb +0 -100
  336. data/lib/sentdm/resources/number_lookup.rb +0 -37
  337. data/lib/sentdm/resources/organizations/users.rb +0 -16
  338. data/lib/sentdm/resources/organizations.rb +0 -18
  339. data/rbi/sentdm/models/contact_list_item.rbi +0 -144
  340. data/rbi/sentdm/models/contact_retrieve_by_phone_params.rbi +0 -40
  341. data/rbi/sentdm/models/contact_retrieve_id_params.rbi +0 -40
  342. data/rbi/sentdm/models/message_retrieve_response.rbi +0 -376
  343. data/rbi/sentdm/models/message_send_quick_message_params.rbi +0 -56
  344. data/rbi/sentdm/models/message_send_to_contact_params.rbi +0 -63
  345. data/rbi/sentdm/models/message_send_to_phone_params.rbi +0 -65
  346. data/rbi/sentdm/models/number_lookup_retrieve_params.rbi +0 -35
  347. data/rbi/sentdm/models/number_lookup_retrieve_response.rbi +0 -132
  348. data/rbi/sentdm/models/template_response.rbi +0 -149
  349. data/rbi/sentdm/resources/number_lookup.rbi +0 -24
  350. data/rbi/sentdm/resources/organizations/users.rbi +0 -14
  351. data/rbi/sentdm/resources/organizations.rbi +0 -15
  352. data/sig/sentdm/models/contact_retrieve_by_phone_params.rbs +0 -23
  353. data/sig/sentdm/models/contact_retrieve_id_params.rbs +0 -20
  354. data/sig/sentdm/models/message_retrieve_response.rbs +0 -188
  355. data/sig/sentdm/models/message_send_quick_message_params.rbs +0 -28
  356. data/sig/sentdm/models/message_send_to_contact_params.rbs +0 -36
  357. data/sig/sentdm/models/message_send_to_phone_params.rbs +0 -36
  358. data/sig/sentdm/models/number_lookup_retrieve_params.rbs +0 -23
  359. data/sig/sentdm/models/number_lookup_retrieve_response.rbs +0 -78
  360. data/sig/sentdm/resources/organizations/users.rbs +0 -9
  361. data/sig/sentdm/resources/organizations.rbs +0 -9
@@ -0,0 +1,398 @@
1
+ # typed: strong
2
+
3
+ module Sentdm
4
+ module Models
5
+ class BrandWithKYC < Sentdm::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias { T.any(Sentdm::BrandWithKYC, Sentdm::Internal::AnyHash) }
8
+
9
+ # Unique identifier for the brand
10
+ sig { returns(T.nilable(String)) }
11
+ attr_reader :id
12
+
13
+ sig { params(id: String).void }
14
+ attr_writer :id
15
+
16
+ # Brand relationship level with TCR
17
+ sig { returns(T.nilable(Sentdm::TcrBrandRelationship::TaggedSymbol)) }
18
+ attr_accessor :brand_relationship
19
+
20
+ # Legal business name
21
+ sig { returns(T.nilable(String)) }
22
+ attr_accessor :business_legal_name
23
+
24
+ # Business/brand name
25
+ sig { returns(T.nilable(String)) }
26
+ attr_accessor :business_name
27
+
28
+ # Contact's role in the business
29
+ sig { returns(T.nilable(String)) }
30
+ attr_accessor :business_role
31
+
32
+ # Business website URL
33
+ sig { returns(T.nilable(String)) }
34
+ attr_accessor :business_url
35
+
36
+ # City
37
+ sig { returns(T.nilable(String)) }
38
+ attr_accessor :city
39
+
40
+ # Contact email address
41
+ sig { returns(T.nilable(String)) }
42
+ attr_accessor :contact_email
43
+
44
+ # Primary contact name
45
+ sig { returns(T.nilable(String)) }
46
+ attr_reader :contact_name
47
+
48
+ sig { params(contact_name: String).void }
49
+ attr_writer :contact_name
50
+
51
+ # Contact phone number
52
+ sig { returns(T.nilable(String)) }
53
+ attr_accessor :contact_phone
54
+
55
+ # Contact phone country code
56
+ sig { returns(T.nilable(String)) }
57
+ attr_accessor :contact_phone_country_code
58
+
59
+ # Country code
60
+ sig { returns(T.nilable(String)) }
61
+ attr_accessor :country
62
+
63
+ # Country where the business is registered
64
+ sig { returns(T.nilable(String)) }
65
+ attr_accessor :country_of_registration
66
+
67
+ # When the brand was created
68
+ sig { returns(T.nilable(Time)) }
69
+ attr_reader :created_at
70
+
71
+ sig { params(created_at: Time).void }
72
+ attr_writer :created_at
73
+
74
+ # CSP (Campaign Service Provider) ID
75
+ sig { returns(T.nilable(String)) }
76
+ attr_accessor :csp_id
77
+
78
+ # List of destination countries for messaging
79
+ sig { returns(T.nilable(T::Array[Sentdm::DestinationCountry])) }
80
+ attr_reader :destination_countries
81
+
82
+ sig do
83
+ params(
84
+ destination_countries: T::Array[Sentdm::DestinationCountry::OrHash]
85
+ ).void
86
+ end
87
+ attr_writer :destination_countries
88
+
89
+ # Business entity type
90
+ sig { returns(T.nilable(String)) }
91
+ attr_accessor :entity_type
92
+
93
+ # Expected daily messaging volume
94
+ sig { returns(T.nilable(String)) }
95
+ attr_accessor :expected_messaging_volume
96
+
97
+ # TCR brand identity verification status
98
+ sig do
99
+ returns(T.nilable(Sentdm::BrandWithKYC::IdentityStatus::TaggedSymbol))
100
+ end
101
+ attr_accessor :identity_status
102
+
103
+ # Whether this brand is inherited from parent organization
104
+ sig { returns(T.nilable(T::Boolean)) }
105
+ attr_reader :is_inherited
106
+
107
+ sig { params(is_inherited: T::Boolean).void }
108
+ attr_writer :is_inherited
109
+
110
+ # Whether this is a TCR application
111
+ sig { returns(T.nilable(T::Boolean)) }
112
+ attr_reader :is_tcr_application
113
+
114
+ sig { params(is_tcr_application: T::Boolean).void }
115
+ attr_writer :is_tcr_application
116
+
117
+ # Additional notes
118
+ sig { returns(T.nilable(String)) }
119
+ attr_accessor :notes
120
+
121
+ # Phone number prefix for messaging
122
+ sig { returns(T.nilable(String)) }
123
+ attr_accessor :phone_number_prefix
124
+
125
+ # Postal/ZIP code
126
+ sig { returns(T.nilable(String)) }
127
+ attr_accessor :postal_code
128
+
129
+ # Primary messaging use case description
130
+ sig { returns(T.nilable(String)) }
131
+ attr_accessor :primary_use_case
132
+
133
+ # State/province code
134
+ sig { returns(T.nilable(String)) }
135
+ attr_accessor :state
136
+
137
+ # TCR brand status
138
+ sig { returns(T.nilable(Sentdm::BrandWithKYC::Status::TaggedSymbol)) }
139
+ attr_accessor :status
140
+
141
+ # Street address
142
+ sig { returns(T.nilable(String)) }
143
+ attr_accessor :street
144
+
145
+ # When the brand was submitted to TCR
146
+ sig { returns(T.nilable(Time)) }
147
+ attr_accessor :submitted_at
148
+
149
+ # Whether this brand was submitted to TCR
150
+ sig { returns(T.nilable(T::Boolean)) }
151
+ attr_reader :submitted_to_tcr
152
+
153
+ sig { params(submitted_to_tcr: T::Boolean).void }
154
+ attr_writer :submitted_to_tcr
155
+
156
+ # Tax ID/EIN number
157
+ sig { returns(T.nilable(String)) }
158
+ attr_accessor :tax_id
159
+
160
+ # Type of tax ID
161
+ sig { returns(T.nilable(String)) }
162
+ attr_accessor :tax_id_type
163
+
164
+ # TCR brand ID (populated after TCR submission)
165
+ sig { returns(T.nilable(String)) }
166
+ attr_accessor :tcr_brand_id
167
+
168
+ # Universal EIN from TCR
169
+ sig { returns(T.nilable(String)) }
170
+ attr_accessor :universal_ein
171
+
172
+ # When the brand was last updated
173
+ sig { returns(T.nilable(Time)) }
174
+ attr_accessor :updated_at
175
+
176
+ # Business vertical/industry category
177
+ sig { returns(T.nilable(Sentdm::TcrVertical::TaggedSymbol)) }
178
+ attr_accessor :vertical
179
+
180
+ # Flattened brand response with embedded KYC information
181
+ sig do
182
+ params(
183
+ id: String,
184
+ brand_relationship: T.nilable(Sentdm::TcrBrandRelationship::OrSymbol),
185
+ business_legal_name: T.nilable(String),
186
+ business_name: T.nilable(String),
187
+ business_role: T.nilable(String),
188
+ business_url: T.nilable(String),
189
+ city: T.nilable(String),
190
+ contact_email: T.nilable(String),
191
+ contact_name: String,
192
+ contact_phone: T.nilable(String),
193
+ contact_phone_country_code: T.nilable(String),
194
+ country: T.nilable(String),
195
+ country_of_registration: T.nilable(String),
196
+ created_at: Time,
197
+ csp_id: T.nilable(String),
198
+ destination_countries: T::Array[Sentdm::DestinationCountry::OrHash],
199
+ entity_type: T.nilable(String),
200
+ expected_messaging_volume: T.nilable(String),
201
+ identity_status:
202
+ T.nilable(Sentdm::BrandWithKYC::IdentityStatus::OrSymbol),
203
+ is_inherited: T::Boolean,
204
+ is_tcr_application: T::Boolean,
205
+ notes: T.nilable(String),
206
+ phone_number_prefix: T.nilable(String),
207
+ postal_code: T.nilable(String),
208
+ primary_use_case: T.nilable(String),
209
+ state: T.nilable(String),
210
+ status: T.nilable(Sentdm::BrandWithKYC::Status::OrSymbol),
211
+ street: T.nilable(String),
212
+ submitted_at: T.nilable(Time),
213
+ submitted_to_tcr: T::Boolean,
214
+ tax_id: T.nilable(String),
215
+ tax_id_type: T.nilable(String),
216
+ tcr_brand_id: T.nilable(String),
217
+ universal_ein: T.nilable(String),
218
+ updated_at: T.nilable(Time),
219
+ vertical: T.nilable(Sentdm::TcrVertical::OrSymbol)
220
+ ).returns(T.attached_class)
221
+ end
222
+ def self.new(
223
+ # Unique identifier for the brand
224
+ id: nil,
225
+ # Brand relationship level with TCR
226
+ brand_relationship: nil,
227
+ # Legal business name
228
+ business_legal_name: nil,
229
+ # Business/brand name
230
+ business_name: nil,
231
+ # Contact's role in the business
232
+ business_role: nil,
233
+ # Business website URL
234
+ business_url: nil,
235
+ # City
236
+ city: nil,
237
+ # Contact email address
238
+ contact_email: nil,
239
+ # Primary contact name
240
+ contact_name: nil,
241
+ # Contact phone number
242
+ contact_phone: nil,
243
+ # Contact phone country code
244
+ contact_phone_country_code: nil,
245
+ # Country code
246
+ country: nil,
247
+ # Country where the business is registered
248
+ country_of_registration: nil,
249
+ # When the brand was created
250
+ created_at: nil,
251
+ # CSP (Campaign Service Provider) ID
252
+ csp_id: nil,
253
+ # List of destination countries for messaging
254
+ destination_countries: nil,
255
+ # Business entity type
256
+ entity_type: nil,
257
+ # Expected daily messaging volume
258
+ expected_messaging_volume: nil,
259
+ # TCR brand identity verification status
260
+ identity_status: nil,
261
+ # Whether this brand is inherited from parent organization
262
+ is_inherited: nil,
263
+ # Whether this is a TCR application
264
+ is_tcr_application: nil,
265
+ # Additional notes
266
+ notes: nil,
267
+ # Phone number prefix for messaging
268
+ phone_number_prefix: nil,
269
+ # Postal/ZIP code
270
+ postal_code: nil,
271
+ # Primary messaging use case description
272
+ primary_use_case: nil,
273
+ # State/province code
274
+ state: nil,
275
+ # TCR brand status
276
+ status: nil,
277
+ # Street address
278
+ street: nil,
279
+ # When the brand was submitted to TCR
280
+ submitted_at: nil,
281
+ # Whether this brand was submitted to TCR
282
+ submitted_to_tcr: nil,
283
+ # Tax ID/EIN number
284
+ tax_id: nil,
285
+ # Type of tax ID
286
+ tax_id_type: nil,
287
+ # TCR brand ID (populated after TCR submission)
288
+ tcr_brand_id: nil,
289
+ # Universal EIN from TCR
290
+ universal_ein: nil,
291
+ # When the brand was last updated
292
+ updated_at: nil,
293
+ # Business vertical/industry category
294
+ vertical: nil
295
+ )
296
+ end
297
+
298
+ sig do
299
+ override.returns(
300
+ {
301
+ id: String,
302
+ brand_relationship:
303
+ T.nilable(Sentdm::TcrBrandRelationship::TaggedSymbol),
304
+ business_legal_name: T.nilable(String),
305
+ business_name: T.nilable(String),
306
+ business_role: T.nilable(String),
307
+ business_url: T.nilable(String),
308
+ city: T.nilable(String),
309
+ contact_email: T.nilable(String),
310
+ contact_name: String,
311
+ contact_phone: T.nilable(String),
312
+ contact_phone_country_code: T.nilable(String),
313
+ country: T.nilable(String),
314
+ country_of_registration: T.nilable(String),
315
+ created_at: Time,
316
+ csp_id: T.nilable(String),
317
+ destination_countries: T::Array[Sentdm::DestinationCountry],
318
+ entity_type: T.nilable(String),
319
+ expected_messaging_volume: T.nilable(String),
320
+ identity_status:
321
+ T.nilable(Sentdm::BrandWithKYC::IdentityStatus::TaggedSymbol),
322
+ is_inherited: T::Boolean,
323
+ is_tcr_application: T::Boolean,
324
+ notes: T.nilable(String),
325
+ phone_number_prefix: T.nilable(String),
326
+ postal_code: T.nilable(String),
327
+ primary_use_case: T.nilable(String),
328
+ state: T.nilable(String),
329
+ status: T.nilable(Sentdm::BrandWithKYC::Status::TaggedSymbol),
330
+ street: T.nilable(String),
331
+ submitted_at: T.nilable(Time),
332
+ submitted_to_tcr: T::Boolean,
333
+ tax_id: T.nilable(String),
334
+ tax_id_type: T.nilable(String),
335
+ tcr_brand_id: T.nilable(String),
336
+ universal_ein: T.nilable(String),
337
+ updated_at: T.nilable(Time),
338
+ vertical: T.nilable(Sentdm::TcrVertical::TaggedSymbol)
339
+ }
340
+ )
341
+ end
342
+ def to_hash
343
+ end
344
+
345
+ # TCR brand identity verification status
346
+ module IdentityStatus
347
+ extend Sentdm::Internal::Type::Enum
348
+
349
+ TaggedSymbol =
350
+ T.type_alias { T.all(Symbol, Sentdm::BrandWithKYC::IdentityStatus) }
351
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
352
+
353
+ SELF_DECLARED =
354
+ T.let(
355
+ :SELF_DECLARED,
356
+ Sentdm::BrandWithKYC::IdentityStatus::TaggedSymbol
357
+ )
358
+ UNVERIFIED =
359
+ T.let(:UNVERIFIED, Sentdm::BrandWithKYC::IdentityStatus::TaggedSymbol)
360
+ VERIFIED =
361
+ T.let(:VERIFIED, Sentdm::BrandWithKYC::IdentityStatus::TaggedSymbol)
362
+ VETTED_VERIFIED =
363
+ T.let(
364
+ :VETTED_VERIFIED,
365
+ Sentdm::BrandWithKYC::IdentityStatus::TaggedSymbol
366
+ )
367
+
368
+ sig do
369
+ override.returns(
370
+ T::Array[Sentdm::BrandWithKYC::IdentityStatus::TaggedSymbol]
371
+ )
372
+ end
373
+ def self.values
374
+ end
375
+ end
376
+
377
+ # TCR brand status
378
+ module Status
379
+ extend Sentdm::Internal::Type::Enum
380
+
381
+ TaggedSymbol =
382
+ T.type_alias { T.all(Symbol, Sentdm::BrandWithKYC::Status) }
383
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
384
+
385
+ ACTIVE = T.let(:ACTIVE, Sentdm::BrandWithKYC::Status::TaggedSymbol)
386
+ INACTIVE = T.let(:INACTIVE, Sentdm::BrandWithKYC::Status::TaggedSymbol)
387
+ SUSPENDED =
388
+ T.let(:SUSPENDED, Sentdm::BrandWithKYC::Status::TaggedSymbol)
389
+
390
+ sig do
391
+ override.returns(T::Array[Sentdm::BrandWithKYC::Status::TaggedSymbol])
392
+ end
393
+ def self.values
394
+ end
395
+ end
396
+ end
397
+ end
398
+ end
@@ -0,0 +1,83 @@
1
+ # typed: strong
2
+
3
+ module Sentdm
4
+ module Models
5
+ module Brands
6
+ class APIResponseTcrCampaignWithUseCases < Sentdm::Internal::Type::BaseModel
7
+ OrHash =
8
+ T.type_alias do
9
+ T.any(
10
+ Sentdm::Brands::APIResponseTcrCampaignWithUseCases,
11
+ Sentdm::Internal::AnyHash
12
+ )
13
+ end
14
+
15
+ # The response data (null if error)
16
+ sig { returns(T.nilable(Sentdm::Brands::TcrCampaignWithUseCases)) }
17
+ attr_reader :data
18
+
19
+ sig do
20
+ params(
21
+ data: T.nilable(Sentdm::Brands::TcrCampaignWithUseCases::OrHash)
22
+ ).void
23
+ end
24
+ attr_writer :data
25
+
26
+ # Error details (null if successful)
27
+ sig { returns(T.nilable(Sentdm::APIError)) }
28
+ attr_reader :error
29
+
30
+ sig { params(error: T.nilable(Sentdm::APIError::OrHash)).void }
31
+ attr_writer :error
32
+
33
+ # Metadata about the request and response
34
+ sig { returns(T.nilable(Sentdm::APIMeta)) }
35
+ attr_reader :meta
36
+
37
+ sig { params(meta: Sentdm::APIMeta::OrHash).void }
38
+ attr_writer :meta
39
+
40
+ # Indicates whether the request was successful
41
+ sig { returns(T.nilable(T::Boolean)) }
42
+ attr_reader :success
43
+
44
+ sig { params(success: T::Boolean).void }
45
+ attr_writer :success
46
+
47
+ # Standard API response envelope for all v3 endpoints
48
+ sig do
49
+ params(
50
+ data: T.nilable(Sentdm::Brands::TcrCampaignWithUseCases::OrHash),
51
+ error: T.nilable(Sentdm::APIError::OrHash),
52
+ meta: Sentdm::APIMeta::OrHash,
53
+ success: T::Boolean
54
+ ).returns(T.attached_class)
55
+ end
56
+ def self.new(
57
+ # The response data (null if error)
58
+ data: nil,
59
+ # Error details (null if successful)
60
+ error: nil,
61
+ # Metadata about the request and response
62
+ meta: nil,
63
+ # Indicates whether the request was successful
64
+ success: nil
65
+ )
66
+ end
67
+
68
+ sig do
69
+ override.returns(
70
+ {
71
+ data: T.nilable(Sentdm::Brands::TcrCampaignWithUseCases),
72
+ error: T.nilable(Sentdm::APIError),
73
+ meta: Sentdm::APIMeta,
74
+ success: T::Boolean
75
+ }
76
+ )
77
+ end
78
+ def to_hash
79
+ end
80
+ end
81
+ end
82
+ end
83
+ end
@@ -0,0 +1,53 @@
1
+ # typed: strong
2
+
3
+ module Sentdm
4
+ module Models
5
+ module Brands
6
+ class BaseDto < Sentdm::Internal::Type::BaseModel
7
+ OrHash =
8
+ T.type_alias do
9
+ T.any(Sentdm::Brands::BaseDto, Sentdm::Internal::AnyHash)
10
+ end
11
+
12
+ # Unique identifier
13
+ sig { returns(T.nilable(String)) }
14
+ attr_reader :id
15
+
16
+ sig { params(id: String).void }
17
+ attr_writer :id
18
+
19
+ sig { returns(T.nilable(Time)) }
20
+ attr_reader :created_at
21
+
22
+ sig { params(created_at: Time).void }
23
+ attr_writer :created_at
24
+
25
+ sig { returns(T.nilable(Time)) }
26
+ attr_accessor :updated_at
27
+
28
+ sig do
29
+ params(
30
+ id: String,
31
+ created_at: Time,
32
+ updated_at: T.nilable(Time)
33
+ ).returns(T.attached_class)
34
+ end
35
+ def self.new(
36
+ # Unique identifier
37
+ id: nil,
38
+ created_at: nil,
39
+ updated_at: nil
40
+ )
41
+ end
42
+
43
+ sig do
44
+ override.returns(
45
+ { id: String, created_at: Time, updated_at: T.nilable(Time) }
46
+ )
47
+ end
48
+ def to_hash
49
+ end
50
+ end
51
+ end
52
+ end
53
+ end
@@ -0,0 +1,73 @@
1
+ # typed: strong
2
+
3
+ module Sentdm
4
+ module Models
5
+ module Brands
6
+ class CampaignCreateParams < Sentdm::Internal::Type::BaseModel
7
+ extend Sentdm::Internal::Type::RequestParameters::Converter
8
+ include Sentdm::Internal::Type::RequestParameters
9
+
10
+ OrHash =
11
+ T.type_alias do
12
+ T.any(
13
+ Sentdm::Brands::CampaignCreateParams,
14
+ Sentdm::Internal::AnyHash
15
+ )
16
+ end
17
+
18
+ # Campaign data
19
+ sig { returns(Sentdm::Brands::CampaignData) }
20
+ attr_reader :campaign
21
+
22
+ sig { params(campaign: Sentdm::Brands::CampaignData::OrHash).void }
23
+ attr_writer :campaign
24
+
25
+ # Test mode flag - when true, the operation is simulated without side effects
26
+ # Useful for testing integrations without actual execution
27
+ sig { returns(T.nilable(T::Boolean)) }
28
+ attr_reader :test_mode
29
+
30
+ sig { params(test_mode: T::Boolean).void }
31
+ attr_writer :test_mode
32
+
33
+ sig { returns(T.nilable(String)) }
34
+ attr_reader :idempotency_key
35
+
36
+ sig { params(idempotency_key: String).void }
37
+ attr_writer :idempotency_key
38
+
39
+ sig do
40
+ params(
41
+ campaign: Sentdm::Brands::CampaignData::OrHash,
42
+ test_mode: T::Boolean,
43
+ idempotency_key: String,
44
+ request_options: Sentdm::RequestOptions::OrHash
45
+ ).returns(T.attached_class)
46
+ end
47
+ def self.new(
48
+ # Campaign data
49
+ campaign:,
50
+ # Test mode flag - when true, the operation is simulated without side effects
51
+ # Useful for testing integrations without actual execution
52
+ test_mode: nil,
53
+ idempotency_key: nil,
54
+ request_options: {}
55
+ )
56
+ end
57
+
58
+ sig do
59
+ override.returns(
60
+ {
61
+ campaign: Sentdm::Brands::CampaignData,
62
+ test_mode: T::Boolean,
63
+ idempotency_key: String,
64
+ request_options: Sentdm::RequestOptions
65
+ }
66
+ )
67
+ end
68
+ def to_hash
69
+ end
70
+ end
71
+ end
72
+ end
73
+ end