sentdm 0.26.0 → 0.28.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (293) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +40 -0
  3. data/README.md +1 -27
  4. data/lib/sentdm/client.rb +71 -8
  5. data/lib/sentdm/internal/type/base_model.rb +5 -5
  6. data/lib/sentdm/models/contact_create_response.rb +249 -0
  7. data/lib/sentdm/models/contact_delete_params.rb +16 -2
  8. data/lib/sentdm/models/contact_list_response.rb +299 -16
  9. data/lib/sentdm/models/contact_retrieve_message_summary_response.rb +186 -0
  10. data/lib/sentdm/models/contact_retrieve_response.rb +249 -0
  11. data/lib/sentdm/models/contact_update_response.rb +249 -0
  12. data/lib/sentdm/models/conversation_list_messages_response.rb +436 -0
  13. data/lib/sentdm/models/conversation_list_response.rb +433 -0
  14. data/lib/sentdm/models/inbound_message_event.rb +52 -0
  15. data/lib/sentdm/models/inbound_message_event_payload.rb +81 -0
  16. data/lib/sentdm/models/me_retrieve_response.rb +242 -12
  17. data/lib/sentdm/models/message_event.rb +53 -0
  18. data/lib/sentdm/models/message_event_payload.rb +92 -0
  19. data/lib/sentdm/models/message_retrieve_activities_response.rb +165 -7
  20. data/lib/sentdm/models/message_retrieve_status_response.rb +74 -6
  21. data/lib/sentdm/models/message_send_response.rb +113 -28
  22. data/lib/sentdm/models/number_lookup_response.rb +74 -6
  23. data/lib/sentdm/models/profile_complete_response.rb +74 -6
  24. data/lib/sentdm/models/profile_create_params.rb +378 -26
  25. data/lib/sentdm/models/profile_create_response.rb +760 -0
  26. data/lib/sentdm/models/profile_delete_params.rb +16 -2
  27. data/lib/sentdm/models/profile_list_response.rb +825 -14
  28. data/lib/sentdm/models/profile_retrieve_response.rb +762 -0
  29. data/lib/sentdm/models/profile_update_params.rb +391 -24
  30. data/lib/sentdm/models/profile_update_response.rb +760 -0
  31. data/lib/sentdm/models/profiles/campaign_create_params.rb +156 -3
  32. data/lib/sentdm/models/profiles/campaign_create_response.rb +420 -0
  33. data/lib/sentdm/models/profiles/campaign_delete_params.rb +17 -2
  34. data/lib/sentdm/models/profiles/campaign_list_response.rb +421 -0
  35. data/lib/sentdm/models/profiles/campaign_update_params.rb +156 -3
  36. data/lib/sentdm/models/profiles/campaign_update_response.rb +420 -0
  37. data/lib/sentdm/models/template_create_response.rb +209 -0
  38. data/lib/sentdm/models/template_event.rb +52 -0
  39. data/lib/sentdm/models/template_event_payload.rb +88 -0
  40. data/lib/sentdm/models/template_list_params.rb +9 -2
  41. data/lib/sentdm/models/template_list_response.rb +262 -16
  42. data/lib/sentdm/models/template_retrieve_response.rb +209 -0
  43. data/lib/sentdm/models/template_update_response.rb +209 -0
  44. data/lib/sentdm/models/user_invite_response.rb +201 -0
  45. data/lib/sentdm/models/user_list_response.rb +259 -14
  46. data/lib/sentdm/models/user_remove_params.rb +16 -2
  47. data/lib/sentdm/models/user_retrieve_response.rb +201 -0
  48. data/lib/sentdm/models/user_update_role_response.rb +201 -0
  49. data/lib/sentdm/models/webhook_create_response.rb +229 -0
  50. data/lib/sentdm/models/webhook_list_event_types_response.rb +213 -13
  51. data/lib/sentdm/models/webhook_list_events_response.rb +207 -16
  52. data/lib/sentdm/models/webhook_list_response.rb +280 -15
  53. data/lib/sentdm/models/webhook_retrieve_response.rb +229 -0
  54. data/lib/sentdm/models/webhook_rotate_secret_params.rb +17 -2
  55. data/lib/sentdm/models/webhook_rotate_secret_response.rb +74 -6
  56. data/lib/sentdm/models/webhook_test_response.rb +74 -6
  57. data/lib/sentdm/models/webhook_toggle_status_response.rb +229 -0
  58. data/lib/sentdm/models/webhook_update_response.rb +229 -0
  59. data/lib/sentdm/models.rb +11 -51
  60. data/lib/sentdm/resources/contacts.rb +30 -13
  61. data/lib/sentdm/resources/conversations.rb +12 -4
  62. data/lib/sentdm/resources/me.rb +6 -1
  63. data/lib/sentdm/resources/messages.rb +17 -5
  64. data/lib/sentdm/resources/numbers.rb +6 -1
  65. data/lib/sentdm/resources/profiles/campaigns.rb +47 -9
  66. data/lib/sentdm/resources/profiles.rb +137 -61
  67. data/lib/sentdm/resources/templates.rb +14 -8
  68. data/lib/sentdm/resources/users.rb +15 -10
  69. data/lib/sentdm/resources/webhooks.rb +19 -9
  70. data/lib/sentdm/version.rb +1 -1
  71. data/lib/sentdm.rb +28 -32
  72. data/rbi/sentdm/client.rbi +71 -8
  73. data/rbi/sentdm/models/contact_create_response.rbi +407 -0
  74. data/rbi/sentdm/models/contact_delete_params.rbi +19 -2
  75. data/rbi/sentdm/models/contact_list_response.rbi +527 -21
  76. data/rbi/sentdm/models/contact_retrieve_message_summary_response.rbi +397 -0
  77. data/rbi/sentdm/models/contact_retrieve_response.rbi +409 -0
  78. data/rbi/sentdm/models/contact_update_response.rbi +407 -0
  79. data/rbi/sentdm/models/conversation_list_messages_response.rbi +843 -0
  80. data/rbi/sentdm/models/conversation_list_response.rbi +819 -0
  81. data/rbi/sentdm/models/inbound_message_event.rbi +88 -0
  82. data/rbi/sentdm/models/inbound_message_event_payload.rbi +122 -0
  83. data/rbi/sentdm/models/me_retrieve_response.rbi +367 -16
  84. data/rbi/sentdm/models/message_event.rbi +86 -0
  85. data/rbi/sentdm/models/message_event_payload.rbi +132 -0
  86. data/rbi/sentdm/models/message_retrieve_activities_response.rbi +335 -11
  87. data/rbi/sentdm/models/message_retrieve_status_response.rbi +148 -8
  88. data/rbi/sentdm/models/message_send_response.rbi +178 -32
  89. data/rbi/sentdm/models/number_lookup_response.rbi +135 -8
  90. data/rbi/sentdm/models/profile_complete_response.rbi +137 -8
  91. data/rbi/sentdm/models/profile_create_params.rbi +592 -42
  92. data/rbi/sentdm/models/profile_create_response.rbi +1226 -0
  93. data/rbi/sentdm/models/profile_delete_params.rbi +19 -2
  94. data/rbi/sentdm/models/profile_list_response.rbi +1366 -18
  95. data/rbi/sentdm/models/profile_retrieve_response.rbi +1230 -0
  96. data/rbi/sentdm/models/profile_update_params.rbi +610 -30
  97. data/rbi/sentdm/models/profile_update_response.rbi +1226 -0
  98. data/rbi/sentdm/models/profiles/campaign_create_params.rbi +218 -4
  99. data/rbi/sentdm/models/profiles/campaign_create_response.rbi +674 -0
  100. data/rbi/sentdm/models/profiles/campaign_delete_params.rbi +14 -1
  101. data/rbi/sentdm/models/profiles/campaign_list_response.rbi +667 -0
  102. data/rbi/sentdm/models/profiles/campaign_update_params.rbi +218 -4
  103. data/rbi/sentdm/models/profiles/campaign_update_response.rbi +674 -0
  104. data/rbi/sentdm/models/template_create_response.rbi +349 -0
  105. data/rbi/sentdm/models/template_event.rbi +84 -0
  106. data/rbi/sentdm/models/template_event_payload.rbi +131 -0
  107. data/rbi/sentdm/models/template_list_params.rbi +10 -2
  108. data/rbi/sentdm/models/template_list_response.rbi +469 -21
  109. data/rbi/sentdm/models/template_retrieve_response.rbi +355 -0
  110. data/rbi/sentdm/models/template_update_response.rbi +349 -0
  111. data/rbi/sentdm/models/user_invite_response.rbi +336 -0
  112. data/rbi/sentdm/models/user_list_response.rbi +463 -18
  113. data/rbi/sentdm/models/user_remove_params.rbi +19 -2
  114. data/rbi/sentdm/models/user_retrieve_response.rbi +336 -0
  115. data/rbi/sentdm/models/user_update_role_response.rbi +341 -0
  116. data/rbi/sentdm/models/webhook_create_response.rbi +361 -0
  117. data/rbi/sentdm/models/webhook_list_event_types_response.rbi +433 -16
  118. data/rbi/sentdm/models/webhook_list_events_response.rbi +379 -19
  119. data/rbi/sentdm/models/webhook_list_response.rbi +480 -19
  120. data/rbi/sentdm/models/webhook_retrieve_response.rbi +363 -0
  121. data/rbi/sentdm/models/webhook_rotate_secret_params.rbi +14 -1
  122. data/rbi/sentdm/models/webhook_rotate_secret_response.rbi +148 -8
  123. data/rbi/sentdm/models/webhook_test_response.rbi +135 -8
  124. data/rbi/sentdm/models/webhook_toggle_status_response.rbi +379 -0
  125. data/rbi/sentdm/models/webhook_update_response.rbi +361 -0
  126. data/rbi/sentdm/models.rbi +11 -53
  127. data/rbi/sentdm/resources/contacts.rbi +24 -9
  128. data/rbi/sentdm/resources/conversations.rbi +10 -2
  129. data/rbi/sentdm/resources/me.rbi +6 -1
  130. data/rbi/sentdm/resources/messages.rbi +17 -5
  131. data/rbi/sentdm/resources/numbers.rbi +6 -1
  132. data/rbi/sentdm/resources/profiles/campaigns.rbi +36 -6
  133. data/rbi/sentdm/resources/profiles.rbi +177 -68
  134. data/rbi/sentdm/resources/templates.rbi +15 -5
  135. data/rbi/sentdm/resources/users.rbi +12 -6
  136. data/rbi/sentdm/resources/webhooks.rbi +15 -5
  137. data/sig/sentdm/models/contact_create_response.rbs +216 -0
  138. data/sig/sentdm/models/contact_delete_params.rbs +10 -6
  139. data/sig/sentdm/models/contact_list_response.rbs +263 -20
  140. data/sig/sentdm/models/contact_retrieve_message_summary_response.rbs +182 -0
  141. data/sig/sentdm/models/contact_retrieve_response.rbs +216 -0
  142. data/sig/sentdm/models/contact_update_response.rbs +216 -0
  143. data/sig/sentdm/models/conversation_list_messages_response.rbs +404 -0
  144. data/sig/sentdm/models/conversation_list_response.rbs +404 -0
  145. data/sig/sentdm/models/inbound_message_event.rbs +39 -0
  146. data/sig/sentdm/models/inbound_message_event_payload.rbs +69 -0
  147. data/sig/sentdm/models/me_retrieve_response.rbs +176 -18
  148. data/sig/sentdm/models/message_event.rbs +39 -0
  149. data/sig/sentdm/models/message_event_payload.rbs +72 -0
  150. data/sig/sentdm/models/message_retrieve_activities_response.rbs +147 -12
  151. data/sig/sentdm/models/message_retrieve_status_response.rbs +71 -9
  152. data/sig/sentdm/models/message_send_response.rbs +71 -9
  153. data/sig/sentdm/models/number_lookup_response.rbs +71 -9
  154. data/sig/sentdm/models/profile_complete_response.rbs +71 -9
  155. data/sig/sentdm/models/profile_create_params.rbs +271 -24
  156. data/sig/sentdm/models/profile_create_response.rbs +559 -0
  157. data/sig/sentdm/models/profile_delete_params.rbs +10 -6
  158. data/sig/sentdm/models/profile_list_response.rbs +615 -15
  159. data/sig/sentdm/models/profile_retrieve_response.rbs +559 -0
  160. data/sig/sentdm/models/profile_update_params.rbs +263 -12
  161. data/sig/sentdm/models/profile_update_response.rbs +559 -0
  162. data/sig/sentdm/models/profiles/campaign_create_params.rbs +108 -4
  163. data/sig/sentdm/models/profiles/campaign_create_response.rbs +357 -0
  164. data/sig/sentdm/models/profiles/campaign_delete_params.rbs +15 -8
  165. data/sig/sentdm/models/profiles/campaign_list_response.rbs +357 -0
  166. data/sig/sentdm/models/profiles/campaign_update_params.rbs +108 -4
  167. data/sig/sentdm/models/profiles/campaign_update_response.rbs +357 -0
  168. data/sig/sentdm/models/template_create_response.rbs +182 -0
  169. data/sig/sentdm/models/template_event.rbs +39 -0
  170. data/sig/sentdm/models/template_event_payload.rbs +76 -0
  171. data/sig/sentdm/models/template_list_response.rbs +230 -19
  172. data/sig/sentdm/models/template_retrieve_response.rbs +182 -0
  173. data/sig/sentdm/models/template_update_response.rbs +182 -0
  174. data/sig/sentdm/models/user_invite_response.rbs +177 -0
  175. data/sig/sentdm/models/user_list_response.rbs +233 -15
  176. data/sig/sentdm/models/user_remove_params.rbs +10 -6
  177. data/sig/sentdm/models/user_retrieve_response.rbs +177 -0
  178. data/sig/sentdm/models/user_update_role_response.rbs +177 -0
  179. data/sig/sentdm/models/webhook_create_response.rbs +208 -0
  180. data/sig/sentdm/models/webhook_list_event_types_response.rbs +203 -15
  181. data/sig/sentdm/models/webhook_list_events_response.rbs +160 -19
  182. data/sig/sentdm/models/webhook_list_response.rbs +255 -20
  183. data/sig/sentdm/models/webhook_retrieve_response.rbs +208 -0
  184. data/sig/sentdm/models/webhook_rotate_secret_params.rbs +17 -8
  185. data/sig/sentdm/models/webhook_rotate_secret_response.rbs +71 -9
  186. data/sig/sentdm/models/webhook_test_response.rbs +71 -9
  187. data/sig/sentdm/models/webhook_toggle_status_response.rbs +208 -0
  188. data/sig/sentdm/models/webhook_update_response.rbs +208 -0
  189. data/sig/sentdm/models.rbs +11 -51
  190. data/sig/sentdm/resources/contacts.rbs +4 -4
  191. data/sig/sentdm/resources/conversations.rbs +2 -2
  192. data/sig/sentdm/resources/profiles/campaigns.rbs +5 -5
  193. data/sig/sentdm/resources/profiles.rbs +11 -11
  194. data/sig/sentdm/resources/templates.rbs +3 -3
  195. data/sig/sentdm/resources/users.rbs +3 -3
  196. data/sig/sentdm/resources/webhooks.rbs +4 -4
  197. metadata +86 -98
  198. data/lib/sentdm/models/api_meta.rb +0 -34
  199. data/lib/sentdm/models/api_response_of_contact.rb +0 -46
  200. data/lib/sentdm/models/api_response_of_contact_message_summary.rb +0 -43
  201. data/lib/sentdm/models/api_response_of_conversation_messages_list.rb +0 -43
  202. data/lib/sentdm/models/api_response_of_profile_detail.rb +0 -43
  203. data/lib/sentdm/models/api_response_of_user.rb +0 -43
  204. data/lib/sentdm/models/api_response_template.rb +0 -43
  205. data/lib/sentdm/models/api_response_webhook.rb +0 -43
  206. data/lib/sentdm/models/billing_contact_info.rb +0 -47
  207. data/lib/sentdm/models/brand_business_info.rb +0 -114
  208. data/lib/sentdm/models/brand_compliance_info.rb +0 -67
  209. data/lib/sentdm/models/brand_contact_info.rb +0 -58
  210. data/lib/sentdm/models/brands_brand_data.rb +0 -34
  211. data/lib/sentdm/models/contact_message_summary.rb +0 -76
  212. data/lib/sentdm/models/contact_response.rb +0 -126
  213. data/lib/sentdm/models/conversation_messages_list.rb +0 -245
  214. data/lib/sentdm/models/error_detail.rb +0 -42
  215. data/lib/sentdm/models/mutation_request.rb +0 -20
  216. data/lib/sentdm/models/pagination_meta.rb +0 -80
  217. data/lib/sentdm/models/payment_details.rb +0 -44
  218. data/lib/sentdm/models/profile_detail.rb +0 -597
  219. data/lib/sentdm/models/profile_settings.rb +0 -66
  220. data/lib/sentdm/models/profiles/api_response_of_brand_campaign.rb +0 -45
  221. data/lib/sentdm/models/profiles/api_response_of_list_of_brand_campaign.rb +0 -45
  222. data/lib/sentdm/models/profiles/brand_campaign.rb +0 -247
  223. data/lib/sentdm/models/profiles/campaign_data.rb +0 -130
  224. data/lib/sentdm/models/profiles/campaign_use_case.rb +0 -71
  225. data/lib/sentdm/models/profiles/campaign_use_case_data.rb +0 -29
  226. data/lib/sentdm/models/template.rb +0 -90
  227. data/lib/sentdm/models/user_response.rb +0 -82
  228. data/lib/sentdm/models/webhook_event_type.rb +0 -45
  229. data/lib/sentdm/models/webhook_response.rb +0 -95
  230. data/rbi/sentdm/models/api_meta.rbi +0 -55
  231. data/rbi/sentdm/models/api_response_of_contact.rbi +0 -74
  232. data/rbi/sentdm/models/api_response_of_contact_message_summary.rbi +0 -79
  233. data/rbi/sentdm/models/api_response_of_conversation_messages_list.rbi +0 -79
  234. data/rbi/sentdm/models/api_response_of_profile_detail.rbi +0 -74
  235. data/rbi/sentdm/models/api_response_of_user.rbi +0 -74
  236. data/rbi/sentdm/models/api_response_template.rbi +0 -74
  237. data/rbi/sentdm/models/api_response_webhook.rbi +0 -74
  238. data/rbi/sentdm/models/billing_contact_info.rbi +0 -65
  239. data/rbi/sentdm/models/brand_business_info.rbi +0 -162
  240. data/rbi/sentdm/models/brand_compliance_info.rbi +0 -84
  241. data/rbi/sentdm/models/brand_contact_info.rbi +0 -78
  242. data/rbi/sentdm/models/brands_brand_data.rbi +0 -65
  243. data/rbi/sentdm/models/contact_message_summary.rbi +0 -144
  244. data/rbi/sentdm/models/contact_response.rbi +0 -183
  245. data/rbi/sentdm/models/conversation_messages_list.rbi +0 -419
  246. data/rbi/sentdm/models/error_detail.rbi +0 -66
  247. data/rbi/sentdm/models/mutation_request.rbi +0 -32
  248. data/rbi/sentdm/models/pagination_meta.rbi +0 -135
  249. data/rbi/sentdm/models/payment_details.rbi +0 -59
  250. data/rbi/sentdm/models/profile_detail.rbi +0 -866
  251. data/rbi/sentdm/models/profile_settings.rbi +0 -86
  252. data/rbi/sentdm/models/profiles/api_response_of_brand_campaign.rbi +0 -81
  253. data/rbi/sentdm/models/profiles/api_response_of_list_of_brand_campaign.rbi +0 -76
  254. data/rbi/sentdm/models/profiles/brand_campaign.rbi +0 -299
  255. data/rbi/sentdm/models/profiles/campaign_data.rbi +0 -146
  256. data/rbi/sentdm/models/profiles/campaign_use_case.rbi +0 -110
  257. data/rbi/sentdm/models/profiles/campaign_use_case_data.rbi +0 -51
  258. data/rbi/sentdm/models/template.rbi +0 -129
  259. data/rbi/sentdm/models/user_response.rbi +0 -118
  260. data/rbi/sentdm/models/webhook_event_type.rbi +0 -74
  261. data/rbi/sentdm/models/webhook_response.rbi +0 -140
  262. data/sig/sentdm/models/api_meta.rbs +0 -27
  263. data/sig/sentdm/models/api_response_of_contact.rbs +0 -39
  264. data/sig/sentdm/models/api_response_of_contact_message_summary.rbs +0 -39
  265. data/sig/sentdm/models/api_response_of_conversation_messages_list.rbs +0 -39
  266. data/sig/sentdm/models/api_response_of_profile_detail.rbs +0 -39
  267. data/sig/sentdm/models/api_response_of_user.rbs +0 -39
  268. data/sig/sentdm/models/api_response_template.rbs +0 -39
  269. data/sig/sentdm/models/api_response_webhook.rbs +0 -39
  270. data/sig/sentdm/models/billing_contact_info.rbs +0 -30
  271. data/sig/sentdm/models/brand_business_info.rbs +0 -89
  272. data/sig/sentdm/models/brand_compliance_info.rbs +0 -50
  273. data/sig/sentdm/models/brand_contact_info.rbs +0 -45
  274. data/sig/sentdm/models/brands_brand_data.rbs +0 -30
  275. data/sig/sentdm/models/contact_message_summary.rbs +0 -84
  276. data/sig/sentdm/models/contact_response.rbs +0 -111
  277. data/sig/sentdm/models/conversation_messages_list.rbs +0 -240
  278. data/sig/sentdm/models/error_detail.rbs +0 -39
  279. data/sig/sentdm/models/mutation_request.rbs +0 -15
  280. data/sig/sentdm/models/pagination_meta.rbs +0 -67
  281. data/sig/sentdm/models/payment_details.rbs +0 -30
  282. data/sig/sentdm/models/profile_detail.rbs +0 -469
  283. data/sig/sentdm/models/profile_settings.rbs +0 -50
  284. data/sig/sentdm/models/profiles/api_response_of_brand_campaign.rbs +0 -41
  285. data/sig/sentdm/models/profiles/api_response_of_list_of_brand_campaign.rbs +0 -41
  286. data/sig/sentdm/models/profiles/brand_campaign.rbs +0 -194
  287. data/sig/sentdm/models/profiles/campaign_data.rbs +0 -87
  288. data/sig/sentdm/models/profiles/campaign_use_case.rbs +0 -66
  289. data/sig/sentdm/models/profiles/campaign_use_case_data.rbs +0 -27
  290. data/sig/sentdm/models/template.rbs +0 -79
  291. data/sig/sentdm/models/user_response.rbs +0 -72
  292. data/sig/sentdm/models/webhook_event_type.rbs +0 -51
  293. data/sig/sentdm/models/webhook_response.rbs +0 -103
@@ -2,7 +2,7 @@
2
2
 
3
3
  module Sentdm
4
4
  module Models
5
- class ContactDeleteParams < Sentdm::Models::MutationRequest
5
+ class ContactDeleteParams < Sentdm::Internal::Type::BaseModel
6
6
  extend Sentdm::Internal::Type::RequestParameters::Converter
7
7
  include Sentdm::Internal::Type::RequestParameters
8
8
 
@@ -14,6 +14,14 @@ module Sentdm
14
14
  sig { returns(String) }
15
15
  attr_accessor :id
16
16
 
17
+ # Sandbox flag - when true, the operation is simulated without side effects Useful
18
+ # for testing integrations without actual execution
19
+ sig { returns(T.nilable(T::Boolean)) }
20
+ attr_reader :sandbox
21
+
22
+ sig { params(sandbox: T::Boolean).void }
23
+ attr_writer :sandbox
24
+
17
25
  sig { returns(T.nilable(String)) }
18
26
  attr_reader :x_profile_id
19
27
 
@@ -23,17 +31,26 @@ module Sentdm
23
31
  sig do
24
32
  params(
25
33
  id: String,
34
+ sandbox: T::Boolean,
26
35
  x_profile_id: String,
27
36
  request_options: Sentdm::RequestOptions::OrHash
28
37
  ).returns(T.attached_class)
29
38
  end
30
- def self.new(id:, x_profile_id: nil, request_options: {})
39
+ def self.new(
40
+ id:,
41
+ # Sandbox flag - when true, the operation is simulated without side effects Useful
42
+ # for testing integrations without actual execution
43
+ sandbox: nil,
44
+ x_profile_id: nil,
45
+ request_options: {}
46
+ )
31
47
  end
32
48
 
33
49
  sig do
34
50
  override.returns(
35
51
  {
36
52
  id: String,
53
+ sandbox: T::Boolean,
37
54
  x_profile_id: String,
38
55
  request_options: Sentdm::RequestOptions
39
56
  }
@@ -8,7 +8,7 @@ module Sentdm
8
8
  T.any(Sentdm::Models::ContactListResponse, Sentdm::Internal::AnyHash)
9
9
  end
10
10
 
11
- # Paginated list of contacts response
11
+ # A paginated list of contacts.
12
12
  sig { returns(T.nilable(Sentdm::Models::ContactListResponse::Data)) }
13
13
  attr_reader :data
14
14
 
@@ -20,17 +20,23 @@ module Sentdm
20
20
  attr_writer :data
21
21
 
22
22
  # Error information
23
- sig { returns(T.nilable(Sentdm::ErrorDetail)) }
23
+ sig { returns(T.nilable(Sentdm::Models::ContactListResponse::Error)) }
24
24
  attr_reader :error
25
25
 
26
- sig { params(error: T.nilable(Sentdm::ErrorDetail::OrHash)).void }
26
+ sig do
27
+ params(
28
+ error: T.nilable(Sentdm::Models::ContactListResponse::Error::OrHash)
29
+ ).void
30
+ end
27
31
  attr_writer :error
28
32
 
29
33
  # Request and response metadata
30
- sig { returns(T.nilable(Sentdm::APIMeta)) }
34
+ sig { returns(T.nilable(Sentdm::Models::ContactListResponse::Meta)) }
31
35
  attr_reader :meta
32
36
 
33
- sig { params(meta: Sentdm::APIMeta::OrHash).void }
37
+ sig do
38
+ params(meta: Sentdm::Models::ContactListResponse::Meta::OrHash).void
39
+ end
34
40
  attr_writer :meta
35
41
 
36
42
  # Indicates whether the request was successful
@@ -44,13 +50,13 @@ module Sentdm
44
50
  sig do
45
51
  params(
46
52
  data: T.nilable(Sentdm::Models::ContactListResponse::Data::OrHash),
47
- error: T.nilable(Sentdm::ErrorDetail::OrHash),
48
- meta: Sentdm::APIMeta::OrHash,
53
+ error: T.nilable(Sentdm::Models::ContactListResponse::Error::OrHash),
54
+ meta: Sentdm::Models::ContactListResponse::Meta::OrHash,
49
55
  success: T::Boolean
50
56
  ).returns(T.attached_class)
51
57
  end
52
58
  def self.new(
53
- # Paginated list of contacts response
59
+ # A paginated list of contacts.
54
60
  data: nil,
55
61
  # Error information
56
62
  error: nil,
@@ -65,8 +71,8 @@ module Sentdm
65
71
  override.returns(
66
72
  {
67
73
  data: T.nilable(Sentdm::Models::ContactListResponse::Data),
68
- error: T.nilable(Sentdm::ErrorDetail),
69
- meta: Sentdm::APIMeta,
74
+ error: T.nilable(Sentdm::Models::ContactListResponse::Error),
75
+ meta: Sentdm::Models::ContactListResponse::Meta,
70
76
  success: T::Boolean
71
77
  }
72
78
  )
@@ -83,29 +89,55 @@ module Sentdm
83
89
  )
84
90
  end
85
91
 
86
- # List of contacts
87
- sig { returns(T.nilable(T::Array[Sentdm::ContactResponse])) }
92
+ # The contacts on this page.
93
+ sig do
94
+ returns(
95
+ T.nilable(
96
+ T::Array[Sentdm::Models::ContactListResponse::Data::Contact]
97
+ )
98
+ )
99
+ end
88
100
  attr_reader :contacts
89
101
 
90
- sig { params(contacts: T::Array[Sentdm::ContactResponse::OrHash]).void }
102
+ sig do
103
+ params(
104
+ contacts:
105
+ T::Array[
106
+ Sentdm::Models::ContactListResponse::Data::Contact::OrHash
107
+ ]
108
+ ).void
109
+ end
91
110
  attr_writer :contacts
92
111
 
93
112
  # Pagination metadata for list responses
94
- sig { returns(T.nilable(Sentdm::PaginationMeta)) }
113
+ sig do
114
+ returns(
115
+ T.nilable(Sentdm::Models::ContactListResponse::Data::Pagination)
116
+ )
117
+ end
95
118
  attr_reader :pagination
96
119
 
97
- sig { params(pagination: Sentdm::PaginationMeta::OrHash).void }
120
+ sig do
121
+ params(
122
+ pagination:
123
+ Sentdm::Models::ContactListResponse::Data::Pagination::OrHash
124
+ ).void
125
+ end
98
126
  attr_writer :pagination
99
127
 
100
- # Paginated list of contacts response
128
+ # A paginated list of contacts.
101
129
  sig do
102
130
  params(
103
- contacts: T::Array[Sentdm::ContactResponse::OrHash],
104
- pagination: Sentdm::PaginationMeta::OrHash
131
+ contacts:
132
+ T::Array[
133
+ Sentdm::Models::ContactListResponse::Data::Contact::OrHash
134
+ ],
135
+ pagination:
136
+ Sentdm::Models::ContactListResponse::Data::Pagination::OrHash
105
137
  ).returns(T.attached_class)
106
138
  end
107
139
  def self.new(
108
- # List of contacts
140
+ # The contacts on this page.
109
141
  contacts: nil,
110
142
  # Pagination metadata for list responses
111
143
  pagination: nil
@@ -115,14 +147,488 @@ module Sentdm
115
147
  sig do
116
148
  override.returns(
117
149
  {
118
- contacts: T::Array[Sentdm::ContactResponse],
119
- pagination: Sentdm::PaginationMeta
150
+ contacts:
151
+ T::Array[Sentdm::Models::ContactListResponse::Data::Contact],
152
+ pagination: Sentdm::Models::ContactListResponse::Data::Pagination
153
+ }
154
+ )
155
+ end
156
+ def to_hash
157
+ end
158
+
159
+ class Contact < Sentdm::Internal::Type::BaseModel
160
+ OrHash =
161
+ T.type_alias do
162
+ T.any(
163
+ Sentdm::Models::ContactListResponse::Data::Contact,
164
+ Sentdm::Internal::AnyHash
165
+ )
166
+ end
167
+
168
+ # Unique identifier for the contact
169
+ sig { returns(T.nilable(String)) }
170
+ attr_reader :id
171
+
172
+ sig { params(id: String).void }
173
+ attr_writer :id
174
+
175
+ # Comma-separated list of available messaging channels (e.g., "sms,whatsapp")
176
+ sig { returns(T.nilable(String)) }
177
+ attr_reader :available_channels
178
+
179
+ sig { params(available_channels: String).void }
180
+ attr_writer :available_channels
181
+
182
+ # Country calling code (e.g., 1 for US/Canada)
183
+ sig { returns(T.nilable(String)) }
184
+ attr_reader :country_code
185
+
186
+ sig { params(country_code: String).void }
187
+ attr_writer :country_code
188
+
189
+ # When the contact was created
190
+ sig { returns(T.nilable(Time)) }
191
+ attr_reader :created_at
192
+
193
+ sig { params(created_at: Time).void }
194
+ attr_writer :created_at
195
+
196
+ # Which customer owns this — the key's own, or the profile named in x-profile-id.
197
+ # Says whose resource this is, which the resource's own id does not.
198
+ sig { returns(T.nilable(String)) }
199
+ attr_reader :customer_id
200
+
201
+ sig { params(customer_id: String).void }
202
+ attr_writer :customer_id
203
+
204
+ # Default messaging channel to use (e.g., "sms" or "whatsapp")
205
+ sig { returns(T.nilable(String)) }
206
+ attr_reader :default_channel
207
+
208
+ sig { params(default_channel: String).void }
209
+ attr_writer :default_channel
210
+
211
+ # Phone number in E.164 format (e.g., +1234567890)
212
+ sig { returns(T.nilable(String)) }
213
+ attr_reader :format_e164
214
+
215
+ sig { params(format_e164: String).void }
216
+ attr_writer :format_e164
217
+
218
+ # Phone number in international format (e.g., +1 234-567-890)
219
+ sig { returns(T.nilable(String)) }
220
+ attr_reader :format_international
221
+
222
+ sig { params(format_international: String).void }
223
+ attr_writer :format_international
224
+
225
+ # Phone number in national format (e.g., (234) 567-890)
226
+ sig { returns(T.nilable(String)) }
227
+ attr_reader :format_national
228
+
229
+ sig { params(format_national: String).void }
230
+ attr_writer :format_national
231
+
232
+ # Phone number in RFC 3966 format (e.g., tel:+1-234-567-890)
233
+ sig { returns(T.nilable(String)) }
234
+ attr_reader :format_rfc
235
+
236
+ sig { params(format_rfc: String).void }
237
+ attr_writer :format_rfc
238
+
239
+ # Always false. Contacts are no longer shared or inherited between sender profiles
240
+ # — a profile sees only the contacts it owns. Retained so existing v3 clients
241
+ # reading is_inherited keep deserializing; it carries no information.
242
+ sig { returns(T.nilable(T::Boolean)) }
243
+ attr_reader :is_inherited
244
+
245
+ sig { params(is_inherited: T::Boolean).void }
246
+ attr_writer :is_inherited
247
+
248
+ # Whether the contact has opted out of messaging. Single source of truth — opt-out
249
+ # is per-contact, not per-channel.
250
+ sig { returns(T.nilable(T::Boolean)) }
251
+ attr_reader :opt_out
252
+
253
+ sig { params(opt_out: T::Boolean).void }
254
+ attr_writer :opt_out
255
+
256
+ # Phone number in original format
257
+ sig { returns(T.nilable(String)) }
258
+ attr_reader :phone_number
259
+
260
+ sig { params(phone_number: String).void }
261
+ attr_writer :phone_number
262
+
263
+ # ISO 3166-1 alpha-2 country code (e.g., US, CA, GB)
264
+ sig { returns(T.nilable(String)) }
265
+ attr_reader :region_code
266
+
267
+ sig { params(region_code: String).void }
268
+ attr_writer :region_code
269
+
270
+ # When the contact was last updated
271
+ sig { returns(T.nilable(Time)) }
272
+ attr_accessor :updated_at
273
+
274
+ # Contact response for v3 API Uses snake_case for JSON property names
275
+ sig do
276
+ params(
277
+ id: String,
278
+ available_channels: String,
279
+ country_code: String,
280
+ created_at: Time,
281
+ customer_id: String,
282
+ default_channel: String,
283
+ format_e164: String,
284
+ format_international: String,
285
+ format_national: String,
286
+ format_rfc: String,
287
+ is_inherited: T::Boolean,
288
+ opt_out: T::Boolean,
289
+ phone_number: String,
290
+ region_code: String,
291
+ updated_at: T.nilable(Time)
292
+ ).returns(T.attached_class)
293
+ end
294
+ def self.new(
295
+ # Unique identifier for the contact
296
+ id: nil,
297
+ # Comma-separated list of available messaging channels (e.g., "sms,whatsapp")
298
+ available_channels: nil,
299
+ # Country calling code (e.g., 1 for US/Canada)
300
+ country_code: nil,
301
+ # When the contact was created
302
+ created_at: nil,
303
+ # Which customer owns this — the key's own, or the profile named in x-profile-id.
304
+ # Says whose resource this is, which the resource's own id does not.
305
+ customer_id: nil,
306
+ # Default messaging channel to use (e.g., "sms" or "whatsapp")
307
+ default_channel: nil,
308
+ # Phone number in E.164 format (e.g., +1234567890)
309
+ format_e164: nil,
310
+ # Phone number in international format (e.g., +1 234-567-890)
311
+ format_international: nil,
312
+ # Phone number in national format (e.g., (234) 567-890)
313
+ format_national: nil,
314
+ # Phone number in RFC 3966 format (e.g., tel:+1-234-567-890)
315
+ format_rfc: nil,
316
+ # Always false. Contacts are no longer shared or inherited between sender profiles
317
+ # — a profile sees only the contacts it owns. Retained so existing v3 clients
318
+ # reading is_inherited keep deserializing; it carries no information.
319
+ is_inherited: nil,
320
+ # Whether the contact has opted out of messaging. Single source of truth — opt-out
321
+ # is per-contact, not per-channel.
322
+ opt_out: nil,
323
+ # Phone number in original format
324
+ phone_number: nil,
325
+ # ISO 3166-1 alpha-2 country code (e.g., US, CA, GB)
326
+ region_code: nil,
327
+ # When the contact was last updated
328
+ updated_at: nil
329
+ )
330
+ end
331
+
332
+ sig do
333
+ override.returns(
334
+ {
335
+ id: String,
336
+ available_channels: String,
337
+ country_code: String,
338
+ created_at: Time,
339
+ customer_id: String,
340
+ default_channel: String,
341
+ format_e164: String,
342
+ format_international: String,
343
+ format_national: String,
344
+ format_rfc: String,
345
+ is_inherited: T::Boolean,
346
+ opt_out: T::Boolean,
347
+ phone_number: String,
348
+ region_code: String,
349
+ updated_at: T.nilable(Time)
350
+ }
351
+ )
352
+ end
353
+ def to_hash
354
+ end
355
+ end
356
+
357
+ class Pagination < Sentdm::Internal::Type::BaseModel
358
+ OrHash =
359
+ T.type_alias do
360
+ T.any(
361
+ Sentdm::Models::ContactListResponse::Data::Pagination,
362
+ Sentdm::Internal::AnyHash
363
+ )
364
+ end
365
+
366
+ # Cursor-based pagination. Never populated — see Cursors.
367
+ sig do
368
+ returns(
369
+ T.nilable(
370
+ Sentdm::Models::ContactListResponse::Data::Pagination::Cursors
371
+ )
372
+ )
373
+ end
374
+ attr_reader :cursors
375
+
376
+ sig do
377
+ params(
378
+ cursors:
379
+ T.nilable(
380
+ Sentdm::Models::ContactListResponse::Data::Pagination::Cursors::OrHash
381
+ )
382
+ ).void
383
+ end
384
+ attr_writer :cursors
385
+
386
+ # Whether there are more pages after this one
387
+ sig { returns(T.nilable(T::Boolean)) }
388
+ attr_reader :has_more
389
+
390
+ sig { params(has_more: T::Boolean).void }
391
+ attr_writer :has_more
392
+
393
+ # Current page number (1-indexed)
394
+ sig { returns(T.nilable(Integer)) }
395
+ attr_reader :page
396
+
397
+ sig { params(page: Integer).void }
398
+ attr_writer :page
399
+
400
+ # Number of items per page
401
+ sig { returns(T.nilable(Integer)) }
402
+ attr_reader :page_size
403
+
404
+ sig { params(page_size: Integer).void }
405
+ attr_writer :page_size
406
+
407
+ # Total number of items across all pages
408
+ sig { returns(T.nilable(Integer)) }
409
+ attr_reader :total_count
410
+
411
+ sig { params(total_count: Integer).void }
412
+ attr_writer :total_count
413
+
414
+ # Total number of pages
415
+ sig { returns(T.nilable(Integer)) }
416
+ attr_reader :total_pages
417
+
418
+ sig { params(total_pages: Integer).void }
419
+ attr_writer :total_pages
420
+
421
+ # Pagination metadata for list responses
422
+ sig do
423
+ params(
424
+ cursors:
425
+ T.nilable(
426
+ Sentdm::Models::ContactListResponse::Data::Pagination::Cursors::OrHash
427
+ ),
428
+ has_more: T::Boolean,
429
+ page: Integer,
430
+ page_size: Integer,
431
+ total_count: Integer,
432
+ total_pages: Integer
433
+ ).returns(T.attached_class)
434
+ end
435
+ def self.new(
436
+ # Cursor-based pagination. Never populated — see Cursors.
437
+ cursors: nil,
438
+ # Whether there are more pages after this one
439
+ has_more: nil,
440
+ # Current page number (1-indexed)
441
+ page: nil,
442
+ # Number of items per page
443
+ page_size: nil,
444
+ # Total number of items across all pages
445
+ total_count: nil,
446
+ # Total number of pages
447
+ total_pages: nil
448
+ )
449
+ end
450
+
451
+ sig do
452
+ override.returns(
453
+ {
454
+ cursors:
455
+ T.nilable(
456
+ Sentdm::Models::ContactListResponse::Data::Pagination::Cursors
457
+ ),
458
+ has_more: T::Boolean,
459
+ page: Integer,
460
+ page_size: Integer,
461
+ total_count: Integer,
462
+ total_pages: Integer
463
+ }
464
+ )
465
+ end
466
+ def to_hash
467
+ end
468
+
469
+ class Cursors < Sentdm::Internal::Type::BaseModel
470
+ OrHash =
471
+ T.type_alias do
472
+ T.any(
473
+ Sentdm::Models::ContactListResponse::Data::Pagination::Cursors,
474
+ Sentdm::Internal::AnyHash
475
+ )
476
+ end
477
+
478
+ # Cursor to fetch the next page.
479
+ sig { returns(T.nilable(String)) }
480
+ attr_accessor :after
481
+
482
+ # Cursor to fetch the previous page.
483
+ sig { returns(T.nilable(String)) }
484
+ attr_accessor :before
485
+
486
+ # Cursor-based pagination. Never populated — see Cursors.
487
+ sig do
488
+ params(
489
+ after: T.nilable(String),
490
+ before: T.nilable(String)
491
+ ).returns(T.attached_class)
492
+ end
493
+ def self.new(
494
+ # Cursor to fetch the next page.
495
+ after: nil,
496
+ # Cursor to fetch the previous page.
497
+ before: nil
498
+ )
499
+ end
500
+
501
+ sig do
502
+ override.returns(
503
+ { after: T.nilable(String), before: T.nilable(String) }
504
+ )
505
+ end
506
+ def to_hash
507
+ end
508
+ end
509
+ end
510
+ end
511
+
512
+ class Error < Sentdm::Internal::Type::BaseModel
513
+ OrHash =
514
+ T.type_alias do
515
+ T.any(
516
+ Sentdm::Models::ContactListResponse::Error,
517
+ Sentdm::Internal::AnyHash
518
+ )
519
+ end
520
+
521
+ # Machine-readable error code (e.g., "RESOURCE_001")
522
+ sig { returns(T.nilable(String)) }
523
+ attr_reader :code
524
+
525
+ sig { params(code: String).void }
526
+ attr_writer :code
527
+
528
+ # Additional validation error details (field-level errors)
529
+ sig { returns(T.nilable(T::Hash[Symbol, T::Array[String]])) }
530
+ attr_accessor :details
531
+
532
+ # URL to documentation about this error
533
+ sig { returns(T.nilable(String)) }
534
+ attr_accessor :doc_url
535
+
536
+ # Human-readable error message
537
+ sig { returns(T.nilable(String)) }
538
+ attr_reader :message
539
+
540
+ sig { params(message: String).void }
541
+ attr_writer :message
542
+
543
+ # Error information
544
+ sig do
545
+ params(
546
+ code: String,
547
+ details: T.nilable(T::Hash[Symbol, T::Array[String]]),
548
+ doc_url: T.nilable(String),
549
+ message: String
550
+ ).returns(T.attached_class)
551
+ end
552
+ def self.new(
553
+ # Machine-readable error code (e.g., "RESOURCE_001")
554
+ code: nil,
555
+ # Additional validation error details (field-level errors)
556
+ details: nil,
557
+ # URL to documentation about this error
558
+ doc_url: nil,
559
+ # Human-readable error message
560
+ message: nil
561
+ )
562
+ end
563
+
564
+ sig do
565
+ override.returns(
566
+ {
567
+ code: String,
568
+ details: T.nilable(T::Hash[Symbol, T::Array[String]]),
569
+ doc_url: T.nilable(String),
570
+ message: String
120
571
  }
121
572
  )
122
573
  end
123
574
  def to_hash
124
575
  end
125
576
  end
577
+
578
+ class Meta < Sentdm::Internal::Type::BaseModel
579
+ OrHash =
580
+ T.type_alias do
581
+ T.any(
582
+ Sentdm::Models::ContactListResponse::Meta,
583
+ Sentdm::Internal::AnyHash
584
+ )
585
+ end
586
+
587
+ # Unique identifier for this request (for tracing and support)
588
+ sig { returns(T.nilable(String)) }
589
+ attr_reader :request_id
590
+
591
+ sig { params(request_id: String).void }
592
+ attr_writer :request_id
593
+
594
+ # Server timestamp when the response was generated
595
+ sig { returns(T.nilable(Time)) }
596
+ attr_reader :timestamp
597
+
598
+ sig { params(timestamp: Time).void }
599
+ attr_writer :timestamp
600
+
601
+ # API version used for this request
602
+ sig { returns(T.nilable(String)) }
603
+ attr_reader :version
604
+
605
+ sig { params(version: String).void }
606
+ attr_writer :version
607
+
608
+ # Request and response metadata
609
+ sig do
610
+ params(request_id: String, timestamp: Time, version: String).returns(
611
+ T.attached_class
612
+ )
613
+ end
614
+ def self.new(
615
+ # Unique identifier for this request (for tracing and support)
616
+ request_id: nil,
617
+ # Server timestamp when the response was generated
618
+ timestamp: nil,
619
+ # API version used for this request
620
+ version: nil
621
+ )
622
+ end
623
+
624
+ sig do
625
+ override.returns(
626
+ { request_id: String, timestamp: Time, version: String }
627
+ )
628
+ end
629
+ def to_hash
630
+ end
631
+ end
126
632
  end
127
633
  end
128
634
  end