sentdm 0.28.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 (276) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +19 -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/inbound_message_event_payload.rb +17 -17
  25. data/lib/sentdm/models/me_retrieve_response.rb +43 -243
  26. data/lib/sentdm/models/message_event_payload.rb +11 -11
  27. data/lib/sentdm/models/message_retrieve_activities_response.rb +9 -159
  28. data/lib/sentdm/models/message_retrieve_status_response.rb +6 -74
  29. data/lib/sentdm/models/message_send_response.rb +6 -74
  30. data/lib/sentdm/models/mutation_request.rb +20 -0
  31. data/lib/sentdm/models/number_lookup_response.rb +6 -74
  32. data/lib/sentdm/models/pagination_meta.rb +84 -0
  33. data/lib/sentdm/models/payment_details.rb +40 -0
  34. data/lib/sentdm/models/profile_complete_response.rb +6 -74
  35. data/lib/sentdm/models/profile_create_params.rb +9 -345
  36. data/lib/sentdm/models/profile_delete_params.rb +2 -16
  37. data/lib/sentdm/models/profile_detail.rb +650 -0
  38. data/lib/sentdm/models/profile_list_response.rb +12 -815
  39. data/lib/sentdm/models/profile_settings.rb +85 -0
  40. data/lib/sentdm/models/profile_update_params.rb +9 -345
  41. data/lib/sentdm/models/profiles/api_response_of_brand_campaign.rb +45 -0
  42. data/lib/sentdm/models/profiles/api_response_of_list_of_brand_campaign.rb +45 -0
  43. data/lib/sentdm/models/profiles/brand_campaign.rb +247 -0
  44. data/lib/sentdm/models/profiles/campaign_create_params.rb +3 -156
  45. data/lib/sentdm/models/profiles/campaign_data.rb +136 -0
  46. data/lib/sentdm/models/profiles/campaign_delete_params.rb +2 -17
  47. data/lib/sentdm/models/profiles/campaign_update_params.rb +3 -156
  48. data/lib/sentdm/models/profiles/campaign_use_case.rb +71 -0
  49. data/lib/sentdm/models/profiles/campaign_use_case_data.rb +29 -0
  50. data/lib/sentdm/models/template.rb +102 -0
  51. data/lib/sentdm/models/template_event_payload.rb +18 -18
  52. data/lib/sentdm/models/template_list_response.rb +12 -258
  53. data/lib/sentdm/models/user_list_response.rb +12 -249
  54. data/lib/sentdm/models/user_remove_params.rb +2 -16
  55. data/lib/sentdm/models/user_response.rb +94 -0
  56. data/lib/sentdm/models/webhook_event_type.rb +45 -0
  57. data/lib/sentdm/models/webhook_list_event_types_response.rb +12 -203
  58. data/lib/sentdm/models/webhook_list_events_response.rb +9 -157
  59. data/lib/sentdm/models/webhook_list_response.rb +12 -276
  60. data/lib/sentdm/models/webhook_response.rb +120 -0
  61. data/lib/sentdm/models/webhook_rotate_secret_params.rb +2 -17
  62. data/lib/sentdm/models/webhook_rotate_secret_response.rb +6 -74
  63. data/lib/sentdm/models/webhook_test_response.rb +6 -74
  64. data/lib/sentdm/models.rb +52 -0
  65. data/lib/sentdm/resources/contacts.rb +8 -8
  66. data/lib/sentdm/resources/conversations.rb +4 -4
  67. data/lib/sentdm/resources/me.rb +11 -0
  68. data/lib/sentdm/resources/profiles/campaigns.rb +8 -8
  69. data/lib/sentdm/resources/profiles.rb +12 -12
  70. data/lib/sentdm/resources/templates.rb +6 -6
  71. data/lib/sentdm/resources/users.rb +6 -6
  72. data/lib/sentdm/resources/webhooks.rb +8 -8
  73. data/lib/sentdm/version.rb +1 -1
  74. data/lib/sentdm.rb +32 -22
  75. data/rbi/sentdm/models/api_meta.rbi +55 -0
  76. data/rbi/sentdm/models/api_response_of_contact.rbi +74 -0
  77. data/rbi/sentdm/models/api_response_of_contact_message_summary.rbi +79 -0
  78. data/rbi/sentdm/models/api_response_of_conversation_messages_list.rbi +79 -0
  79. data/rbi/sentdm/models/api_response_of_profile_detail.rbi +74 -0
  80. data/rbi/sentdm/models/api_response_of_user.rbi +74 -0
  81. data/rbi/sentdm/models/api_response_template.rbi +74 -0
  82. data/rbi/sentdm/models/api_response_webhook.rbi +74 -0
  83. data/rbi/sentdm/models/billing_contact_info.rbi +65 -0
  84. data/rbi/sentdm/models/brand_business_info.rbi +162 -0
  85. data/rbi/sentdm/models/brand_compliance_info.rbi +76 -0
  86. data/rbi/sentdm/models/brand_contact_info.rbi +78 -0
  87. data/rbi/sentdm/models/brands_brand_data.rbi +65 -0
  88. data/rbi/sentdm/models/contact_delete_params.rbi +2 -19
  89. data/rbi/sentdm/models/contact_list_response.rbi +16 -522
  90. data/rbi/sentdm/models/contact_message_summary.rbi +144 -0
  91. data/rbi/sentdm/models/contact_response.rbi +200 -0
  92. data/rbi/sentdm/models/conversation_messages_list.rbi +419 -0
  93. data/rbi/sentdm/models/error_detail.rbi +66 -0
  94. data/rbi/sentdm/models/inbound_message_event_payload.rbi +16 -22
  95. data/rbi/sentdm/models/me_retrieve_response.rbi +60 -367
  96. data/rbi/sentdm/models/message_event_payload.rbi +12 -15
  97. data/rbi/sentdm/models/message_retrieve_activities_response.rbi +12 -325
  98. data/rbi/sentdm/models/message_retrieve_status_response.rbi +8 -148
  99. data/rbi/sentdm/models/message_send_response.rbi +8 -135
  100. data/rbi/sentdm/models/mutation_request.rbi +32 -0
  101. data/rbi/sentdm/models/number_lookup_response.rbi +8 -135
  102. data/rbi/sentdm/models/pagination_meta.rbi +135 -0
  103. data/rbi/sentdm/models/payment_details.rbi +56 -0
  104. data/rbi/sentdm/models/profile_complete_response.rbi +8 -137
  105. data/rbi/sentdm/models/profile_create_params.rbi +12 -546
  106. data/rbi/sentdm/models/profile_delete_params.rbi +2 -19
  107. data/rbi/sentdm/models/profile_detail.rbi +918 -0
  108. data/rbi/sentdm/models/profile_list_response.rbi +16 -1347
  109. data/rbi/sentdm/models/profile_settings.rbi +102 -0
  110. data/rbi/sentdm/models/profile_update_params.rbi +12 -546
  111. data/rbi/sentdm/models/profiles/api_response_of_brand_campaign.rbi +81 -0
  112. data/rbi/sentdm/models/profiles/api_response_of_list_of_brand_campaign.rbi +76 -0
  113. data/rbi/sentdm/models/profiles/brand_campaign.rbi +299 -0
  114. data/rbi/sentdm/models/profiles/campaign_create_params.rbi +4 -218
  115. data/rbi/sentdm/models/profiles/campaign_data.rbi +158 -0
  116. data/rbi/sentdm/models/profiles/campaign_delete_params.rbi +1 -14
  117. data/rbi/sentdm/models/profiles/campaign_update_params.rbi +4 -218
  118. data/rbi/sentdm/models/profiles/campaign_use_case.rbi +110 -0
  119. data/rbi/sentdm/models/profiles/campaign_use_case_data.rbi +51 -0
  120. data/rbi/sentdm/models/template.rbi +139 -0
  121. data/rbi/sentdm/models/template_event_payload.rbi +21 -27
  122. data/rbi/sentdm/models/template_list_response.rbi +16 -464
  123. data/rbi/sentdm/models/user_list_response.rbi +16 -444
  124. data/rbi/sentdm/models/user_remove_params.rbi +2 -19
  125. data/rbi/sentdm/models/user_response.rbi +131 -0
  126. data/rbi/sentdm/models/webhook_event_type.rbi +74 -0
  127. data/rbi/sentdm/models/webhook_list_event_types_response.rbi +16 -414
  128. data/rbi/sentdm/models/webhook_list_events_response.rbi +12 -314
  129. data/rbi/sentdm/models/webhook_list_response.rbi +16 -475
  130. data/rbi/sentdm/models/webhook_response.rbi +153 -0
  131. data/rbi/sentdm/models/webhook_rotate_secret_params.rbi +1 -14
  132. data/rbi/sentdm/models/webhook_rotate_secret_response.rbi +8 -148
  133. data/rbi/sentdm/models/webhook_test_response.rbi +8 -135
  134. data/rbi/sentdm/models.rbi +54 -0
  135. data/rbi/sentdm/resources/contacts.rbi +4 -4
  136. data/rbi/sentdm/resources/conversations.rbi +2 -2
  137. data/rbi/sentdm/resources/me.rbi +11 -0
  138. data/rbi/sentdm/resources/profiles/campaigns.rbi +5 -5
  139. data/rbi/sentdm/resources/profiles.rbi +9 -13
  140. data/rbi/sentdm/resources/templates.rbi +3 -3
  141. data/rbi/sentdm/resources/users.rbi +3 -3
  142. data/rbi/sentdm/resources/webhooks.rbi +4 -4
  143. data/sig/sentdm/models/api_meta.rbs +27 -0
  144. data/sig/sentdm/models/api_response_of_contact.rbs +39 -0
  145. data/sig/sentdm/models/api_response_of_contact_message_summary.rbs +39 -0
  146. data/sig/sentdm/models/api_response_of_conversation_messages_list.rbs +39 -0
  147. data/sig/sentdm/models/api_response_of_profile_detail.rbs +39 -0
  148. data/sig/sentdm/models/api_response_of_user.rbs +39 -0
  149. data/sig/sentdm/models/api_response_template.rbs +39 -0
  150. data/sig/sentdm/models/api_response_webhook.rbs +39 -0
  151. data/sig/sentdm/models/billing_contact_info.rbs +30 -0
  152. data/sig/sentdm/models/brand_business_info.rbs +89 -0
  153. data/sig/sentdm/models/brand_compliance_info.rbs +45 -0
  154. data/sig/sentdm/models/brand_contact_info.rbs +45 -0
  155. data/sig/sentdm/models/brands_brand_data.rbs +30 -0
  156. data/sig/sentdm/models/contact_delete_params.rbs +6 -10
  157. data/sig/sentdm/models/contact_list_response.rbs +20 -263
  158. data/sig/sentdm/models/contact_message_summary.rbs +84 -0
  159. data/sig/sentdm/models/contact_response.rbs +118 -0
  160. data/sig/sentdm/models/conversation_messages_list.rbs +240 -0
  161. data/sig/sentdm/models/error_detail.rbs +39 -0
  162. data/sig/sentdm/models/inbound_message_event_payload.rbs +10 -14
  163. data/sig/sentdm/models/me_retrieve_response.rbs +28 -176
  164. data/sig/sentdm/models/message_event_payload.rbs +5 -7
  165. data/sig/sentdm/models/message_retrieve_activities_response.rbs +14 -142
  166. data/sig/sentdm/models/message_retrieve_status_response.rbs +9 -71
  167. data/sig/sentdm/models/message_send_response.rbs +9 -71
  168. data/sig/sentdm/models/mutation_request.rbs +15 -0
  169. data/sig/sentdm/models/number_lookup_response.rbs +9 -71
  170. data/sig/sentdm/models/pagination_meta.rbs +67 -0
  171. data/sig/sentdm/models/payment_details.rbs +30 -0
  172. data/sig/sentdm/models/profile_complete_response.rbs +9 -71
  173. data/sig/sentdm/models/profile_create_params.rbs +12 -263
  174. data/sig/sentdm/models/profile_delete_params.rbs +6 -10
  175. data/sig/sentdm/models/profile_detail.rbs +461 -0
  176. data/sig/sentdm/models/profile_list_response.rbs +20 -606
  177. data/sig/sentdm/models/profile_settings.rbs +50 -0
  178. data/sig/sentdm/models/profile_update_params.rbs +12 -263
  179. data/sig/sentdm/models/profiles/api_response_of_brand_campaign.rbs +41 -0
  180. data/sig/sentdm/models/profiles/api_response_of_list_of_brand_campaign.rbs +41 -0
  181. data/sig/sentdm/models/profiles/brand_campaign.rbs +194 -0
  182. data/sig/sentdm/models/profiles/campaign_create_params.rbs +4 -108
  183. data/sig/sentdm/models/profiles/campaign_data.rbs +87 -0
  184. data/sig/sentdm/models/profiles/campaign_delete_params.rbs +8 -15
  185. data/sig/sentdm/models/profiles/campaign_update_params.rbs +4 -108
  186. data/sig/sentdm/models/profiles/campaign_use_case.rbs +66 -0
  187. data/sig/sentdm/models/profiles/campaign_use_case_data.rbs +27 -0
  188. data/sig/sentdm/models/template.rbs +84 -0
  189. data/sig/sentdm/models/template_event_payload.rbs +13 -17
  190. data/sig/sentdm/models/template_list_response.rbs +19 -230
  191. data/sig/sentdm/models/user_list_response.rbs +20 -224
  192. data/sig/sentdm/models/user_remove_params.rbs +6 -10
  193. data/sig/sentdm/models/user_response.rbs +79 -0
  194. data/sig/sentdm/models/webhook_event_type.rbs +51 -0
  195. data/sig/sentdm/models/webhook_list_event_types_response.rbs +20 -196
  196. data/sig/sentdm/models/webhook_list_events_response.rbs +14 -142
  197. data/sig/sentdm/models/webhook_list_response.rbs +20 -255
  198. data/sig/sentdm/models/webhook_response.rbs +110 -0
  199. data/sig/sentdm/models/webhook_rotate_secret_params.rbs +8 -17
  200. data/sig/sentdm/models/webhook_rotate_secret_response.rbs +9 -71
  201. data/sig/sentdm/models/webhook_test_response.rbs +9 -71
  202. data/sig/sentdm/models.rbs +52 -0
  203. data/sig/sentdm/resources/contacts.rbs +4 -4
  204. data/sig/sentdm/resources/conversations.rbs +2 -2
  205. data/sig/sentdm/resources/profiles/campaigns.rbs +5 -5
  206. data/sig/sentdm/resources/profiles.rbs +9 -9
  207. data/sig/sentdm/resources/templates.rbs +3 -3
  208. data/sig/sentdm/resources/users.rbs +3 -3
  209. data/sig/sentdm/resources/webhooks.rbs +4 -4
  210. metadata +98 -68
  211. data/lib/sentdm/models/contact_create_response.rb +0 -249
  212. data/lib/sentdm/models/contact_retrieve_message_summary_response.rb +0 -186
  213. data/lib/sentdm/models/contact_retrieve_response.rb +0 -249
  214. data/lib/sentdm/models/contact_update_response.rb +0 -249
  215. data/lib/sentdm/models/conversation_list_messages_response.rb +0 -436
  216. data/lib/sentdm/models/conversation_list_response.rb +0 -433
  217. data/lib/sentdm/models/profile_create_response.rb +0 -760
  218. data/lib/sentdm/models/profile_retrieve_response.rb +0 -762
  219. data/lib/sentdm/models/profile_update_response.rb +0 -760
  220. data/lib/sentdm/models/profiles/campaign_create_response.rb +0 -420
  221. data/lib/sentdm/models/profiles/campaign_list_response.rb +0 -421
  222. data/lib/sentdm/models/profiles/campaign_update_response.rb +0 -420
  223. data/lib/sentdm/models/template_create_response.rb +0 -209
  224. data/lib/sentdm/models/template_retrieve_response.rb +0 -209
  225. data/lib/sentdm/models/template_update_response.rb +0 -209
  226. data/lib/sentdm/models/user_invite_response.rb +0 -201
  227. data/lib/sentdm/models/user_retrieve_response.rb +0 -201
  228. data/lib/sentdm/models/user_update_role_response.rb +0 -201
  229. data/lib/sentdm/models/webhook_create_response.rb +0 -229
  230. data/lib/sentdm/models/webhook_retrieve_response.rb +0 -229
  231. data/lib/sentdm/models/webhook_toggle_status_response.rb +0 -229
  232. data/lib/sentdm/models/webhook_update_response.rb +0 -229
  233. data/rbi/sentdm/models/contact_create_response.rbi +0 -407
  234. data/rbi/sentdm/models/contact_retrieve_message_summary_response.rbi +0 -397
  235. data/rbi/sentdm/models/contact_retrieve_response.rbi +0 -409
  236. data/rbi/sentdm/models/contact_update_response.rbi +0 -407
  237. data/rbi/sentdm/models/conversation_list_messages_response.rbi +0 -843
  238. data/rbi/sentdm/models/conversation_list_response.rbi +0 -819
  239. data/rbi/sentdm/models/profile_create_response.rbi +0 -1226
  240. data/rbi/sentdm/models/profile_retrieve_response.rbi +0 -1230
  241. data/rbi/sentdm/models/profile_update_response.rbi +0 -1226
  242. data/rbi/sentdm/models/profiles/campaign_create_response.rbi +0 -674
  243. data/rbi/sentdm/models/profiles/campaign_list_response.rbi +0 -667
  244. data/rbi/sentdm/models/profiles/campaign_update_response.rbi +0 -674
  245. data/rbi/sentdm/models/template_create_response.rbi +0 -349
  246. data/rbi/sentdm/models/template_retrieve_response.rbi +0 -355
  247. data/rbi/sentdm/models/template_update_response.rbi +0 -349
  248. data/rbi/sentdm/models/user_invite_response.rbi +0 -336
  249. data/rbi/sentdm/models/user_retrieve_response.rbi +0 -336
  250. data/rbi/sentdm/models/user_update_role_response.rbi +0 -341
  251. data/rbi/sentdm/models/webhook_create_response.rbi +0 -361
  252. data/rbi/sentdm/models/webhook_retrieve_response.rbi +0 -363
  253. data/rbi/sentdm/models/webhook_toggle_status_response.rbi +0 -379
  254. data/rbi/sentdm/models/webhook_update_response.rbi +0 -361
  255. data/sig/sentdm/models/contact_create_response.rbs +0 -216
  256. data/sig/sentdm/models/contact_retrieve_message_summary_response.rbs +0 -182
  257. data/sig/sentdm/models/contact_retrieve_response.rbs +0 -216
  258. data/sig/sentdm/models/contact_update_response.rbs +0 -216
  259. data/sig/sentdm/models/conversation_list_messages_response.rbs +0 -404
  260. data/sig/sentdm/models/conversation_list_response.rbs +0 -404
  261. data/sig/sentdm/models/profile_create_response.rbs +0 -559
  262. data/sig/sentdm/models/profile_retrieve_response.rbs +0 -559
  263. data/sig/sentdm/models/profile_update_response.rbs +0 -559
  264. data/sig/sentdm/models/profiles/campaign_create_response.rbs +0 -357
  265. data/sig/sentdm/models/profiles/campaign_list_response.rbs +0 -357
  266. data/sig/sentdm/models/profiles/campaign_update_response.rbs +0 -357
  267. data/sig/sentdm/models/template_create_response.rbs +0 -182
  268. data/sig/sentdm/models/template_retrieve_response.rbs +0 -182
  269. data/sig/sentdm/models/template_update_response.rbs +0 -182
  270. data/sig/sentdm/models/user_invite_response.rbs +0 -177
  271. data/sig/sentdm/models/user_retrieve_response.rbs +0 -177
  272. data/sig/sentdm/models/user_update_role_response.rbs +0 -177
  273. data/sig/sentdm/models/webhook_create_response.rbs +0 -208
  274. data/sig/sentdm/models/webhook_retrieve_response.rbs +0 -208
  275. data/sig/sentdm/models/webhook_toggle_status_response.rbs +0 -208
  276. data/sig/sentdm/models/webhook_update_response.rbs +0 -208
@@ -0,0 +1,144 @@
1
+ # typed: strong
2
+
3
+ module Sentdm
4
+ module Models
5
+ class ContactMessageSummary < Sentdm::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(Sentdm::ContactMessageSummary, Sentdm::Internal::AnyHash)
9
+ end
10
+
11
+ sig do
12
+ returns(
13
+ T.nilable(T::Array[Sentdm::ContactMessageSummary::ChannelScore])
14
+ )
15
+ end
16
+ attr_reader :channel_scores
17
+
18
+ sig do
19
+ params(
20
+ channel_scores:
21
+ T::Array[Sentdm::ContactMessageSummary::ChannelScore::OrHash]
22
+ ).void
23
+ end
24
+ attr_writer :channel_scores
25
+
26
+ sig { returns(T.nilable(T::Array[String])) }
27
+ attr_reader :channels_used
28
+
29
+ sig { params(channels_used: T::Array[String]).void }
30
+ attr_writer :channels_used
31
+
32
+ sig { returns(T.nilable(String)) }
33
+ attr_reader :contact_id
34
+
35
+ sig { params(contact_id: String).void }
36
+ attr_writer :contact_id
37
+
38
+ sig { returns(T.nilable(Time)) }
39
+ attr_accessor :first_message_at
40
+
41
+ sig { returns(T.nilable(Time)) }
42
+ attr_accessor :last_message_at
43
+
44
+ sig { returns(T.nilable(Integer)) }
45
+ attr_reader :message_count
46
+
47
+ sig { params(message_count: Integer).void }
48
+ attr_writer :message_count
49
+
50
+ sig do
51
+ params(
52
+ channel_scores:
53
+ T::Array[Sentdm::ContactMessageSummary::ChannelScore::OrHash],
54
+ channels_used: T::Array[String],
55
+ contact_id: String,
56
+ first_message_at: T.nilable(Time),
57
+ last_message_at: T.nilable(Time),
58
+ message_count: Integer
59
+ ).returns(T.attached_class)
60
+ end
61
+ def self.new(
62
+ channel_scores: nil,
63
+ channels_used: nil,
64
+ contact_id: nil,
65
+ first_message_at: nil,
66
+ last_message_at: nil,
67
+ message_count: nil
68
+ )
69
+ end
70
+
71
+ sig do
72
+ override.returns(
73
+ {
74
+ channel_scores:
75
+ T::Array[Sentdm::ContactMessageSummary::ChannelScore],
76
+ channels_used: T::Array[String],
77
+ contact_id: String,
78
+ first_message_at: T.nilable(Time),
79
+ last_message_at: T.nilable(Time),
80
+ message_count: Integer
81
+ }
82
+ )
83
+ end
84
+ def to_hash
85
+ end
86
+
87
+ class ChannelScore < Sentdm::Internal::Type::BaseModel
88
+ OrHash =
89
+ T.type_alias do
90
+ T.any(
91
+ Sentdm::ContactMessageSummary::ChannelScore,
92
+ Sentdm::Internal::AnyHash
93
+ )
94
+ end
95
+
96
+ sig { returns(T.nilable(String)) }
97
+ attr_reader :channel
98
+
99
+ sig { params(channel: String).void }
100
+ attr_writer :channel
101
+
102
+ # Percentage (0-100) of messages on this channel that ended in FAILED.
103
+ sig { returns(T.nilable(Integer)) }
104
+ attr_reader :fail_score
105
+
106
+ sig { params(fail_score: Integer).void }
107
+ attr_writer :fail_score
108
+
109
+ # Percentage (0-100) of messages on this channel that reached a successful
110
+ # terminal state: SENT/DELIVERED/READ for outbound, RECEIVED for inbound.
111
+ sig { returns(T.nilable(Integer)) }
112
+ attr_reader :success_score
113
+
114
+ sig { params(success_score: Integer).void }
115
+ attr_writer :success_score
116
+
117
+ sig do
118
+ params(
119
+ channel: String,
120
+ fail_score: Integer,
121
+ success_score: Integer
122
+ ).returns(T.attached_class)
123
+ end
124
+ def self.new(
125
+ channel: nil,
126
+ # Percentage (0-100) of messages on this channel that ended in FAILED.
127
+ fail_score: nil,
128
+ # Percentage (0-100) of messages on this channel that reached a successful
129
+ # terminal state: SENT/DELIVERED/READ for outbound, RECEIVED for inbound.
130
+ success_score: nil
131
+ )
132
+ end
133
+
134
+ sig do
135
+ override.returns(
136
+ { channel: String, fail_score: Integer, success_score: Integer }
137
+ )
138
+ end
139
+ def to_hash
140
+ end
141
+ end
142
+ end
143
+ end
144
+ end
@@ -0,0 +1,200 @@
1
+ # typed: strong
2
+
3
+ module Sentdm
4
+ module Models
5
+ class ContactResponse < Sentdm::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(Sentdm::ContactResponse, Sentdm::Internal::AnyHash)
9
+ end
10
+
11
+ # Unique identifier for the contact
12
+ sig { returns(T.nilable(String)) }
13
+ attr_reader :id
14
+
15
+ sig { params(id: String).void }
16
+ attr_writer :id
17
+
18
+ # Comma-separated list of available messaging channels (e.g., "sms,whatsapp")
19
+ sig { returns(T.nilable(String)) }
20
+ attr_reader :available_channels
21
+
22
+ sig { params(available_channels: String).void }
23
+ attr_writer :available_channels
24
+
25
+ # Country calling code (e.g., 1 for US/Canada)
26
+ sig { returns(T.nilable(String)) }
27
+ attr_reader :country_code
28
+
29
+ sig { params(country_code: String).void }
30
+ attr_writer :country_code
31
+
32
+ # When the contact was created
33
+ sig { returns(T.nilable(Time)) }
34
+ attr_reader :created_at
35
+
36
+ sig { params(created_at: Time).void }
37
+ attr_writer :created_at
38
+
39
+ # Which customer owns this — the key's own, or the profile named in x-profile-id.
40
+ # Says whose resource this is, which the resource's own id does not.
41
+ sig { returns(T.nilable(String)) }
42
+ attr_reader :customer_id
43
+
44
+ sig { params(customer_id: String).void }
45
+ attr_writer :customer_id
46
+
47
+ # Default messaging channel to use (e.g., "sms" or "whatsapp")
48
+ sig { returns(T.nilable(String)) }
49
+ attr_reader :default_channel
50
+
51
+ sig { params(default_channel: String).void }
52
+ attr_writer :default_channel
53
+
54
+ # Phone number in E.164 format (e.g., +1234567890)
55
+ sig { returns(T.nilable(String)) }
56
+ attr_reader :format_e164
57
+
58
+ sig { params(format_e164: String).void }
59
+ attr_writer :format_e164
60
+
61
+ # Phone number in international format (e.g., +1 234-567-890)
62
+ sig { returns(T.nilable(String)) }
63
+ attr_reader :format_international
64
+
65
+ sig { params(format_international: String).void }
66
+ attr_writer :format_international
67
+
68
+ # Phone number in national format (e.g., (234) 567-890)
69
+ sig { returns(T.nilable(String)) }
70
+ attr_reader :format_national
71
+
72
+ sig { params(format_national: String).void }
73
+ attr_writer :format_national
74
+
75
+ # Phone number in RFC 3966 format (e.g., tel:+1-234-567-890)
76
+ sig { returns(T.nilable(String)) }
77
+ attr_reader :format_rfc
78
+
79
+ sig { params(format_rfc: String).void }
80
+ attr_writer :format_rfc
81
+
82
+ # Always false. Contacts are no longer shared or inherited between sender profiles
83
+ # — a profile sees only the contacts it owns. Retained so existing v3 clients
84
+ # reading is_inherited keep deserializing; it carries no information.
85
+ sig { returns(T.nilable(T::Boolean)) }
86
+ attr_reader :is_inherited
87
+
88
+ sig { params(is_inherited: T::Boolean).void }
89
+ attr_writer :is_inherited
90
+
91
+ # Whether the contact has opted out of messaging. Single source of truth — opt-out
92
+ # is per-contact, not per-channel.
93
+ sig { returns(T.nilable(T::Boolean)) }
94
+ attr_reader :opt_out
95
+
96
+ sig { params(opt_out: T::Boolean).void }
97
+ attr_writer :opt_out
98
+
99
+ # Phone number in original format
100
+ sig { returns(T.nilable(String)) }
101
+ attr_reader :phone_number
102
+
103
+ sig { params(phone_number: String).void }
104
+ attr_writer :phone_number
105
+
106
+ # ISO 3166-1 alpha-2 country code (e.g., US, CA, GB)
107
+ sig { returns(T.nilable(String)) }
108
+ attr_reader :region_code
109
+
110
+ sig { params(region_code: String).void }
111
+ attr_writer :region_code
112
+
113
+ # When the contact was last updated
114
+ sig { returns(T.nilable(Time)) }
115
+ attr_accessor :updated_at
116
+
117
+ # Contact response for v3 API Uses snake_case for JSON property names
118
+ sig do
119
+ params(
120
+ id: String,
121
+ available_channels: String,
122
+ country_code: String,
123
+ created_at: Time,
124
+ customer_id: String,
125
+ default_channel: String,
126
+ format_e164: String,
127
+ format_international: String,
128
+ format_national: String,
129
+ format_rfc: String,
130
+ is_inherited: T::Boolean,
131
+ opt_out: T::Boolean,
132
+ phone_number: String,
133
+ region_code: String,
134
+ updated_at: T.nilable(Time)
135
+ ).returns(T.attached_class)
136
+ end
137
+ def self.new(
138
+ # Unique identifier for the contact
139
+ id: nil,
140
+ # Comma-separated list of available messaging channels (e.g., "sms,whatsapp")
141
+ available_channels: nil,
142
+ # Country calling code (e.g., 1 for US/Canada)
143
+ country_code: nil,
144
+ # When the contact was created
145
+ created_at: nil,
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
+ customer_id: nil,
149
+ # Default messaging channel to use (e.g., "sms" or "whatsapp")
150
+ default_channel: nil,
151
+ # Phone number in E.164 format (e.g., +1234567890)
152
+ format_e164: nil,
153
+ # Phone number in international format (e.g., +1 234-567-890)
154
+ format_international: nil,
155
+ # Phone number in national format (e.g., (234) 567-890)
156
+ format_national: nil,
157
+ # Phone number in RFC 3966 format (e.g., tel:+1-234-567-890)
158
+ format_rfc: nil,
159
+ # Always false. Contacts are no longer shared or inherited between sender profiles
160
+ # — a profile sees only the contacts it owns. Retained so existing v3 clients
161
+ # reading is_inherited keep deserializing; it carries no information.
162
+ is_inherited: nil,
163
+ # Whether the contact has opted out of messaging. Single source of truth — opt-out
164
+ # is per-contact, not per-channel.
165
+ opt_out: nil,
166
+ # Phone number in original format
167
+ phone_number: nil,
168
+ # ISO 3166-1 alpha-2 country code (e.g., US, CA, GB)
169
+ region_code: nil,
170
+ # When the contact was last updated
171
+ updated_at: nil
172
+ )
173
+ end
174
+
175
+ sig do
176
+ override.returns(
177
+ {
178
+ id: String,
179
+ available_channels: String,
180
+ country_code: String,
181
+ created_at: Time,
182
+ customer_id: String,
183
+ default_channel: String,
184
+ format_e164: String,
185
+ format_international: String,
186
+ format_national: String,
187
+ format_rfc: String,
188
+ is_inherited: T::Boolean,
189
+ opt_out: T::Boolean,
190
+ phone_number: String,
191
+ region_code: String,
192
+ updated_at: T.nilable(Time)
193
+ }
194
+ )
195
+ end
196
+ def to_hash
197
+ end
198
+ end
199
+ end
200
+ end