sentdm 0.29.0 → 0.30.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (265) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +11 -0
  3. data/README.md +27 -1
  4. data/lib/sentdm/internal/type/base_model.rb +5 -5
  5. data/lib/sentdm/models/api_meta.rb +34 -0
  6. data/lib/sentdm/models/api_response_of_contact.rb +46 -0
  7. data/lib/sentdm/models/api_response_of_contact_message_summary.rb +43 -0
  8. data/lib/sentdm/models/api_response_of_conversation_messages_list.rb +43 -0
  9. data/lib/sentdm/models/api_response_of_profile_detail.rb +43 -0
  10. data/lib/sentdm/models/api_response_of_user.rb +43 -0
  11. data/lib/sentdm/models/api_response_template.rb +43 -0
  12. data/lib/sentdm/models/api_response_webhook.rb +43 -0
  13. data/lib/sentdm/models/billing_contact_info.rb +47 -0
  14. data/lib/sentdm/models/brand_business_info.rb +114 -0
  15. data/lib/sentdm/models/brand_compliance_info.rb +59 -0
  16. data/lib/sentdm/models/brand_contact_info.rb +58 -0
  17. data/lib/sentdm/models/brands_brand_data.rb +34 -0
  18. data/lib/sentdm/models/contact_delete_params.rb +2 -16
  19. data/lib/sentdm/models/contact_list_response.rb +12 -295
  20. data/lib/sentdm/models/contact_message_summary.rb +76 -0
  21. data/lib/sentdm/models/contact_response.rb +139 -0
  22. data/lib/sentdm/models/conversation_messages_list.rb +245 -0
  23. data/lib/sentdm/models/error_detail.rb +42 -0
  24. data/lib/sentdm/models/me_retrieve_response.rb +12 -242
  25. data/lib/sentdm/models/message_retrieve_activities_response.rb +9 -159
  26. data/lib/sentdm/models/message_retrieve_status_response.rb +6 -74
  27. data/lib/sentdm/models/message_send_response.rb +6 -74
  28. data/lib/sentdm/models/mutation_request.rb +20 -0
  29. data/lib/sentdm/models/number_lookup_response.rb +6 -74
  30. data/lib/sentdm/models/pagination_meta.rb +84 -0
  31. data/lib/sentdm/models/payment_details.rb +40 -0
  32. data/lib/sentdm/models/profile_complete_response.rb +6 -74
  33. data/lib/sentdm/models/profile_create_params.rb +9 -345
  34. data/lib/sentdm/models/profile_delete_params.rb +2 -16
  35. data/lib/sentdm/models/profile_detail.rb +650 -0
  36. data/lib/sentdm/models/profile_list_response.rb +12 -815
  37. data/lib/sentdm/models/profile_settings.rb +85 -0
  38. data/lib/sentdm/models/profile_update_params.rb +9 -345
  39. data/lib/sentdm/models/profiles/api_response_of_brand_campaign.rb +45 -0
  40. data/lib/sentdm/models/profiles/api_response_of_list_of_brand_campaign.rb +45 -0
  41. data/lib/sentdm/models/profiles/brand_campaign.rb +247 -0
  42. data/lib/sentdm/models/profiles/campaign_create_params.rb +3 -156
  43. data/lib/sentdm/models/profiles/campaign_data.rb +136 -0
  44. data/lib/sentdm/models/profiles/campaign_delete_params.rb +2 -17
  45. data/lib/sentdm/models/profiles/campaign_update_params.rb +3 -156
  46. data/lib/sentdm/models/profiles/campaign_use_case.rb +71 -0
  47. data/lib/sentdm/models/profiles/campaign_use_case_data.rb +29 -0
  48. data/lib/sentdm/models/template.rb +102 -0
  49. data/lib/sentdm/models/template_list_response.rb +12 -258
  50. data/lib/sentdm/models/user_list_response.rb +12 -249
  51. data/lib/sentdm/models/user_remove_params.rb +2 -16
  52. data/lib/sentdm/models/user_response.rb +94 -0
  53. data/lib/sentdm/models/webhook_event_type.rb +45 -0
  54. data/lib/sentdm/models/webhook_list_event_types_response.rb +12 -203
  55. data/lib/sentdm/models/webhook_list_events_response.rb +9 -157
  56. data/lib/sentdm/models/webhook_list_response.rb +12 -276
  57. data/lib/sentdm/models/webhook_response.rb +120 -0
  58. data/lib/sentdm/models/webhook_rotate_secret_params.rb +2 -17
  59. data/lib/sentdm/models/webhook_rotate_secret_response.rb +6 -74
  60. data/lib/sentdm/models/webhook_test_response.rb +6 -74
  61. data/lib/sentdm/models.rb +52 -0
  62. data/lib/sentdm/resources/contacts.rb +8 -8
  63. data/lib/sentdm/resources/conversations.rb +4 -4
  64. data/lib/sentdm/resources/profiles/campaigns.rb +8 -8
  65. data/lib/sentdm/resources/profiles.rb +12 -12
  66. data/lib/sentdm/resources/templates.rb +6 -6
  67. data/lib/sentdm/resources/users.rb +6 -6
  68. data/lib/sentdm/resources/webhooks.rb +8 -8
  69. data/lib/sentdm/version.rb +1 -1
  70. data/lib/sentdm.rb +32 -22
  71. data/rbi/sentdm/models/api_meta.rbi +55 -0
  72. data/rbi/sentdm/models/api_response_of_contact.rbi +74 -0
  73. data/rbi/sentdm/models/api_response_of_contact_message_summary.rbi +79 -0
  74. data/rbi/sentdm/models/api_response_of_conversation_messages_list.rbi +79 -0
  75. data/rbi/sentdm/models/api_response_of_profile_detail.rbi +74 -0
  76. data/rbi/sentdm/models/api_response_of_user.rbi +74 -0
  77. data/rbi/sentdm/models/api_response_template.rbi +74 -0
  78. data/rbi/sentdm/models/api_response_webhook.rbi +74 -0
  79. data/rbi/sentdm/models/billing_contact_info.rbi +65 -0
  80. data/rbi/sentdm/models/brand_business_info.rbi +162 -0
  81. data/rbi/sentdm/models/brand_compliance_info.rbi +76 -0
  82. data/rbi/sentdm/models/brand_contact_info.rbi +78 -0
  83. data/rbi/sentdm/models/brands_brand_data.rbi +65 -0
  84. data/rbi/sentdm/models/contact_delete_params.rbi +2 -19
  85. data/rbi/sentdm/models/contact_list_response.rbi +16 -522
  86. data/rbi/sentdm/models/contact_message_summary.rbi +144 -0
  87. data/rbi/sentdm/models/contact_response.rbi +200 -0
  88. data/rbi/sentdm/models/conversation_messages_list.rbi +419 -0
  89. data/rbi/sentdm/models/error_detail.rbi +66 -0
  90. data/rbi/sentdm/models/me_retrieve_response.rbi +16 -367
  91. data/rbi/sentdm/models/message_retrieve_activities_response.rbi +12 -325
  92. data/rbi/sentdm/models/message_retrieve_status_response.rbi +8 -148
  93. data/rbi/sentdm/models/message_send_response.rbi +8 -135
  94. data/rbi/sentdm/models/mutation_request.rbi +32 -0
  95. data/rbi/sentdm/models/number_lookup_response.rbi +8 -135
  96. data/rbi/sentdm/models/pagination_meta.rbi +135 -0
  97. data/rbi/sentdm/models/payment_details.rbi +56 -0
  98. data/rbi/sentdm/models/profile_complete_response.rbi +8 -137
  99. data/rbi/sentdm/models/profile_create_params.rbi +12 -546
  100. data/rbi/sentdm/models/profile_delete_params.rbi +2 -19
  101. data/rbi/sentdm/models/profile_detail.rbi +918 -0
  102. data/rbi/sentdm/models/profile_list_response.rbi +16 -1347
  103. data/rbi/sentdm/models/profile_settings.rbi +102 -0
  104. data/rbi/sentdm/models/profile_update_params.rbi +12 -546
  105. data/rbi/sentdm/models/profiles/api_response_of_brand_campaign.rbi +81 -0
  106. data/rbi/sentdm/models/profiles/api_response_of_list_of_brand_campaign.rbi +76 -0
  107. data/rbi/sentdm/models/profiles/brand_campaign.rbi +299 -0
  108. data/rbi/sentdm/models/profiles/campaign_create_params.rbi +4 -218
  109. data/rbi/sentdm/models/profiles/campaign_data.rbi +158 -0
  110. data/rbi/sentdm/models/profiles/campaign_delete_params.rbi +1 -14
  111. data/rbi/sentdm/models/profiles/campaign_update_params.rbi +4 -218
  112. data/rbi/sentdm/models/profiles/campaign_use_case.rbi +110 -0
  113. data/rbi/sentdm/models/profiles/campaign_use_case_data.rbi +51 -0
  114. data/rbi/sentdm/models/template.rbi +139 -0
  115. data/rbi/sentdm/models/template_list_response.rbi +16 -464
  116. data/rbi/sentdm/models/user_list_response.rbi +16 -444
  117. data/rbi/sentdm/models/user_remove_params.rbi +2 -19
  118. data/rbi/sentdm/models/user_response.rbi +131 -0
  119. data/rbi/sentdm/models/webhook_event_type.rbi +74 -0
  120. data/rbi/sentdm/models/webhook_list_event_types_response.rbi +16 -414
  121. data/rbi/sentdm/models/webhook_list_events_response.rbi +12 -314
  122. data/rbi/sentdm/models/webhook_list_response.rbi +16 -475
  123. data/rbi/sentdm/models/webhook_response.rbi +153 -0
  124. data/rbi/sentdm/models/webhook_rotate_secret_params.rbi +1 -14
  125. data/rbi/sentdm/models/webhook_rotate_secret_response.rbi +8 -148
  126. data/rbi/sentdm/models/webhook_test_response.rbi +8 -135
  127. data/rbi/sentdm/models.rbi +54 -0
  128. data/rbi/sentdm/resources/contacts.rbi +4 -4
  129. data/rbi/sentdm/resources/conversations.rbi +2 -2
  130. data/rbi/sentdm/resources/profiles/campaigns.rbi +5 -5
  131. data/rbi/sentdm/resources/profiles.rbi +9 -13
  132. data/rbi/sentdm/resources/templates.rbi +3 -3
  133. data/rbi/sentdm/resources/users.rbi +3 -3
  134. data/rbi/sentdm/resources/webhooks.rbi +4 -4
  135. data/sig/sentdm/models/api_meta.rbs +27 -0
  136. data/sig/sentdm/models/api_response_of_contact.rbs +39 -0
  137. data/sig/sentdm/models/api_response_of_contact_message_summary.rbs +39 -0
  138. data/sig/sentdm/models/api_response_of_conversation_messages_list.rbs +39 -0
  139. data/sig/sentdm/models/api_response_of_profile_detail.rbs +39 -0
  140. data/sig/sentdm/models/api_response_of_user.rbs +39 -0
  141. data/sig/sentdm/models/api_response_template.rbs +39 -0
  142. data/sig/sentdm/models/api_response_webhook.rbs +39 -0
  143. data/sig/sentdm/models/billing_contact_info.rbs +30 -0
  144. data/sig/sentdm/models/brand_business_info.rbs +89 -0
  145. data/sig/sentdm/models/brand_compliance_info.rbs +45 -0
  146. data/sig/sentdm/models/brand_contact_info.rbs +45 -0
  147. data/sig/sentdm/models/brands_brand_data.rbs +30 -0
  148. data/sig/sentdm/models/contact_delete_params.rbs +6 -10
  149. data/sig/sentdm/models/contact_list_response.rbs +20 -263
  150. data/sig/sentdm/models/contact_message_summary.rbs +84 -0
  151. data/sig/sentdm/models/contact_response.rbs +118 -0
  152. data/sig/sentdm/models/conversation_messages_list.rbs +240 -0
  153. data/sig/sentdm/models/error_detail.rbs +39 -0
  154. data/sig/sentdm/models/me_retrieve_response.rbs +18 -176
  155. data/sig/sentdm/models/message_retrieve_activities_response.rbs +14 -142
  156. data/sig/sentdm/models/message_retrieve_status_response.rbs +9 -71
  157. data/sig/sentdm/models/message_send_response.rbs +9 -71
  158. data/sig/sentdm/models/mutation_request.rbs +15 -0
  159. data/sig/sentdm/models/number_lookup_response.rbs +9 -71
  160. data/sig/sentdm/models/pagination_meta.rbs +67 -0
  161. data/sig/sentdm/models/payment_details.rbs +30 -0
  162. data/sig/sentdm/models/profile_complete_response.rbs +9 -71
  163. data/sig/sentdm/models/profile_create_params.rbs +12 -263
  164. data/sig/sentdm/models/profile_delete_params.rbs +6 -10
  165. data/sig/sentdm/models/profile_detail.rbs +461 -0
  166. data/sig/sentdm/models/profile_list_response.rbs +20 -606
  167. data/sig/sentdm/models/profile_settings.rbs +50 -0
  168. data/sig/sentdm/models/profile_update_params.rbs +12 -263
  169. data/sig/sentdm/models/profiles/api_response_of_brand_campaign.rbs +41 -0
  170. data/sig/sentdm/models/profiles/api_response_of_list_of_brand_campaign.rbs +41 -0
  171. data/sig/sentdm/models/profiles/brand_campaign.rbs +194 -0
  172. data/sig/sentdm/models/profiles/campaign_create_params.rbs +4 -108
  173. data/sig/sentdm/models/profiles/campaign_data.rbs +87 -0
  174. data/sig/sentdm/models/profiles/campaign_delete_params.rbs +8 -15
  175. data/sig/sentdm/models/profiles/campaign_update_params.rbs +4 -108
  176. data/sig/sentdm/models/profiles/campaign_use_case.rbs +66 -0
  177. data/sig/sentdm/models/profiles/campaign_use_case_data.rbs +27 -0
  178. data/sig/sentdm/models/template.rbs +84 -0
  179. data/sig/sentdm/models/template_list_response.rbs +19 -230
  180. data/sig/sentdm/models/user_list_response.rbs +20 -224
  181. data/sig/sentdm/models/user_remove_params.rbs +6 -10
  182. data/sig/sentdm/models/user_response.rbs +79 -0
  183. data/sig/sentdm/models/webhook_event_type.rbs +51 -0
  184. data/sig/sentdm/models/webhook_list_event_types_response.rbs +20 -196
  185. data/sig/sentdm/models/webhook_list_events_response.rbs +14 -142
  186. data/sig/sentdm/models/webhook_list_response.rbs +20 -255
  187. data/sig/sentdm/models/webhook_response.rbs +110 -0
  188. data/sig/sentdm/models/webhook_rotate_secret_params.rbs +8 -17
  189. data/sig/sentdm/models/webhook_rotate_secret_response.rbs +9 -71
  190. data/sig/sentdm/models/webhook_test_response.rbs +9 -71
  191. data/sig/sentdm/models.rbs +52 -0
  192. data/sig/sentdm/resources/contacts.rbs +4 -4
  193. data/sig/sentdm/resources/conversations.rbs +2 -2
  194. data/sig/sentdm/resources/profiles/campaigns.rbs +5 -5
  195. data/sig/sentdm/resources/profiles.rbs +9 -9
  196. data/sig/sentdm/resources/templates.rbs +3 -3
  197. data/sig/sentdm/resources/users.rbs +3 -3
  198. data/sig/sentdm/resources/webhooks.rbs +4 -4
  199. metadata +98 -68
  200. data/lib/sentdm/models/contact_create_response.rb +0 -249
  201. data/lib/sentdm/models/contact_retrieve_message_summary_response.rb +0 -186
  202. data/lib/sentdm/models/contact_retrieve_response.rb +0 -249
  203. data/lib/sentdm/models/contact_update_response.rb +0 -249
  204. data/lib/sentdm/models/conversation_list_messages_response.rb +0 -436
  205. data/lib/sentdm/models/conversation_list_response.rb +0 -433
  206. data/lib/sentdm/models/profile_create_response.rb +0 -760
  207. data/lib/sentdm/models/profile_retrieve_response.rb +0 -762
  208. data/lib/sentdm/models/profile_update_response.rb +0 -760
  209. data/lib/sentdm/models/profiles/campaign_create_response.rb +0 -420
  210. data/lib/sentdm/models/profiles/campaign_list_response.rb +0 -421
  211. data/lib/sentdm/models/profiles/campaign_update_response.rb +0 -420
  212. data/lib/sentdm/models/template_create_response.rb +0 -209
  213. data/lib/sentdm/models/template_retrieve_response.rb +0 -209
  214. data/lib/sentdm/models/template_update_response.rb +0 -209
  215. data/lib/sentdm/models/user_invite_response.rb +0 -201
  216. data/lib/sentdm/models/user_retrieve_response.rb +0 -201
  217. data/lib/sentdm/models/user_update_role_response.rb +0 -201
  218. data/lib/sentdm/models/webhook_create_response.rb +0 -229
  219. data/lib/sentdm/models/webhook_retrieve_response.rb +0 -229
  220. data/lib/sentdm/models/webhook_toggle_status_response.rb +0 -229
  221. data/lib/sentdm/models/webhook_update_response.rb +0 -229
  222. data/rbi/sentdm/models/contact_create_response.rbi +0 -407
  223. data/rbi/sentdm/models/contact_retrieve_message_summary_response.rbi +0 -397
  224. data/rbi/sentdm/models/contact_retrieve_response.rbi +0 -409
  225. data/rbi/sentdm/models/contact_update_response.rbi +0 -407
  226. data/rbi/sentdm/models/conversation_list_messages_response.rbi +0 -843
  227. data/rbi/sentdm/models/conversation_list_response.rbi +0 -819
  228. data/rbi/sentdm/models/profile_create_response.rbi +0 -1226
  229. data/rbi/sentdm/models/profile_retrieve_response.rbi +0 -1230
  230. data/rbi/sentdm/models/profile_update_response.rbi +0 -1226
  231. data/rbi/sentdm/models/profiles/campaign_create_response.rbi +0 -674
  232. data/rbi/sentdm/models/profiles/campaign_list_response.rbi +0 -667
  233. data/rbi/sentdm/models/profiles/campaign_update_response.rbi +0 -674
  234. data/rbi/sentdm/models/template_create_response.rbi +0 -349
  235. data/rbi/sentdm/models/template_retrieve_response.rbi +0 -355
  236. data/rbi/sentdm/models/template_update_response.rbi +0 -349
  237. data/rbi/sentdm/models/user_invite_response.rbi +0 -336
  238. data/rbi/sentdm/models/user_retrieve_response.rbi +0 -336
  239. data/rbi/sentdm/models/user_update_role_response.rbi +0 -341
  240. data/rbi/sentdm/models/webhook_create_response.rbi +0 -361
  241. data/rbi/sentdm/models/webhook_retrieve_response.rbi +0 -363
  242. data/rbi/sentdm/models/webhook_toggle_status_response.rbi +0 -379
  243. data/rbi/sentdm/models/webhook_update_response.rbi +0 -361
  244. data/sig/sentdm/models/contact_create_response.rbs +0 -216
  245. data/sig/sentdm/models/contact_retrieve_message_summary_response.rbs +0 -182
  246. data/sig/sentdm/models/contact_retrieve_response.rbs +0 -216
  247. data/sig/sentdm/models/contact_update_response.rbs +0 -216
  248. data/sig/sentdm/models/conversation_list_messages_response.rbs +0 -404
  249. data/sig/sentdm/models/conversation_list_response.rbs +0 -404
  250. data/sig/sentdm/models/profile_create_response.rbs +0 -559
  251. data/sig/sentdm/models/profile_retrieve_response.rbs +0 -559
  252. data/sig/sentdm/models/profile_update_response.rbs +0 -559
  253. data/sig/sentdm/models/profiles/campaign_create_response.rbs +0 -357
  254. data/sig/sentdm/models/profiles/campaign_list_response.rbs +0 -357
  255. data/sig/sentdm/models/profiles/campaign_update_response.rbs +0 -357
  256. data/sig/sentdm/models/template_create_response.rbs +0 -182
  257. data/sig/sentdm/models/template_retrieve_response.rbs +0 -182
  258. data/sig/sentdm/models/template_update_response.rbs +0 -182
  259. data/sig/sentdm/models/user_invite_response.rbs +0 -177
  260. data/sig/sentdm/models/user_retrieve_response.rbs +0 -177
  261. data/sig/sentdm/models/user_update_role_response.rbs +0 -177
  262. data/sig/sentdm/models/webhook_create_response.rbs +0 -208
  263. data/sig/sentdm/models/webhook_retrieve_response.rbs +0 -208
  264. data/sig/sentdm/models/webhook_toggle_status_response.rbs +0 -208
  265. data/sig/sentdm/models/webhook_update_response.rbs +0 -208
@@ -0,0 +1,74 @@
1
+ # typed: strong
2
+
3
+ module Sentdm
4
+ module Models
5
+ class APIResponseWebhook < Sentdm::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(Sentdm::APIResponseWebhook, Sentdm::Internal::AnyHash)
9
+ end
10
+
11
+ # The response data (null if error)
12
+ sig { returns(T.nilable(Sentdm::WebhookResponse)) }
13
+ attr_reader :data
14
+
15
+ sig { params(data: T.nilable(Sentdm::WebhookResponse::OrHash)).void }
16
+ attr_writer :data
17
+
18
+ # Error information
19
+ sig { returns(T.nilable(Sentdm::ErrorDetail)) }
20
+ attr_reader :error
21
+
22
+ sig { params(error: T.nilable(Sentdm::ErrorDetail::OrHash)).void }
23
+ attr_writer :error
24
+
25
+ # Request and response metadata
26
+ sig { returns(T.nilable(Sentdm::APIMeta)) }
27
+ attr_reader :meta
28
+
29
+ sig { params(meta: Sentdm::APIMeta::OrHash).void }
30
+ attr_writer :meta
31
+
32
+ # Indicates whether the request was successful
33
+ sig { returns(T.nilable(T::Boolean)) }
34
+ attr_reader :success
35
+
36
+ sig { params(success: T::Boolean).void }
37
+ attr_writer :success
38
+
39
+ # Standard API response envelope for all v3 endpoints
40
+ sig do
41
+ params(
42
+ data: T.nilable(Sentdm::WebhookResponse::OrHash),
43
+ error: T.nilable(Sentdm::ErrorDetail::OrHash),
44
+ meta: Sentdm::APIMeta::OrHash,
45
+ success: T::Boolean
46
+ ).returns(T.attached_class)
47
+ end
48
+ def self.new(
49
+ # The response data (null if error)
50
+ data: nil,
51
+ # Error information
52
+ error: nil,
53
+ # Request and response metadata
54
+ meta: nil,
55
+ # Indicates whether the request was successful
56
+ success: nil
57
+ )
58
+ end
59
+
60
+ sig do
61
+ override.returns(
62
+ {
63
+ data: T.nilable(Sentdm::WebhookResponse),
64
+ error: T.nilable(Sentdm::ErrorDetail),
65
+ meta: Sentdm::APIMeta,
66
+ success: T::Boolean
67
+ }
68
+ )
69
+ end
70
+ def to_hash
71
+ end
72
+ end
73
+ end
74
+ end
@@ -0,0 +1,65 @@
1
+ # typed: strong
2
+
3
+ module Sentdm
4
+ module Models
5
+ class BillingContactInfo < Sentdm::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(Sentdm::BillingContactInfo, Sentdm::Internal::AnyHash)
9
+ end
10
+
11
+ # Email address where invoices will be sent (required)
12
+ sig { returns(String) }
13
+ attr_accessor :email
14
+
15
+ # Full name of the billing contact or company (required)
16
+ sig { returns(String) }
17
+ attr_accessor :name
18
+
19
+ # Billing address (optional). Free-form text including street, city, state, postal
20
+ # code, and country.
21
+ sig { returns(T.nilable(String)) }
22
+ attr_accessor :address
23
+
24
+ # Phone number for the billing contact (optional)
25
+ sig { returns(T.nilable(String)) }
26
+ attr_accessor :phone
27
+
28
+ # Billing contact information for a profile. Required when billing_model is
29
+ # "profile" or "profile_and_organization".
30
+ sig do
31
+ params(
32
+ email: String,
33
+ name: String,
34
+ address: T.nilable(String),
35
+ phone: T.nilable(String)
36
+ ).returns(T.attached_class)
37
+ end
38
+ def self.new(
39
+ # Email address where invoices will be sent (required)
40
+ email:,
41
+ # Full name of the billing contact or company (required)
42
+ name:,
43
+ # Billing address (optional). Free-form text including street, city, state, postal
44
+ # code, and country.
45
+ address: nil,
46
+ # Phone number for the billing contact (optional)
47
+ phone: nil
48
+ )
49
+ end
50
+
51
+ sig do
52
+ override.returns(
53
+ {
54
+ email: String,
55
+ name: String,
56
+ address: T.nilable(String),
57
+ phone: T.nilable(String)
58
+ }
59
+ )
60
+ end
61
+ def to_hash
62
+ end
63
+ end
64
+ end
65
+ end
@@ -0,0 +1,162 @@
1
+ # typed: strong
2
+
3
+ module Sentdm
4
+ module Models
5
+ class BrandBusinessInfo < Sentdm::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(Sentdm::BrandBusinessInfo, Sentdm::Internal::AnyHash)
9
+ end
10
+
11
+ # City
12
+ sig { returns(T.nilable(String)) }
13
+ attr_accessor :city
14
+
15
+ # Country code (e.g., US, CA)
16
+ sig { returns(T.nilable(String)) }
17
+ attr_accessor :country
18
+
19
+ # Country where the business is registered
20
+ sig { returns(T.nilable(String)) }
21
+ attr_accessor :country_of_registration
22
+
23
+ sig do
24
+ returns(T.nilable(Sentdm::BrandBusinessInfo::EntityType::OrSymbol))
25
+ end
26
+ attr_accessor :entity_type
27
+
28
+ # Legal business name
29
+ sig { returns(T.nilable(String)) }
30
+ attr_accessor :legal_name
31
+
32
+ # Postal/ZIP code
33
+ sig { returns(T.nilable(String)) }
34
+ attr_accessor :postal_code
35
+
36
+ # State/province code
37
+ sig { returns(T.nilable(String)) }
38
+ attr_accessor :state
39
+
40
+ # Street address
41
+ sig { returns(T.nilable(String)) }
42
+ attr_accessor :street
43
+
44
+ # Tax ID/EIN number
45
+ sig { returns(T.nilable(String)) }
46
+ attr_accessor :tax_id
47
+
48
+ # Type of tax ID (e.g., us_ein, ca_bn)
49
+ sig { returns(T.nilable(String)) }
50
+ attr_accessor :tax_id_type
51
+
52
+ # Business website URL
53
+ sig { returns(T.nilable(String)) }
54
+ attr_accessor :url
55
+
56
+ # Business details and address for brand KYC
57
+ sig do
58
+ params(
59
+ city: T.nilable(String),
60
+ country: T.nilable(String),
61
+ country_of_registration: T.nilable(String),
62
+ entity_type:
63
+ T.nilable(Sentdm::BrandBusinessInfo::EntityType::OrSymbol),
64
+ legal_name: T.nilable(String),
65
+ postal_code: T.nilable(String),
66
+ state: T.nilable(String),
67
+ street: T.nilable(String),
68
+ tax_id: T.nilable(String),
69
+ tax_id_type: T.nilable(String),
70
+ url: T.nilable(String)
71
+ ).returns(T.attached_class)
72
+ end
73
+ def self.new(
74
+ # City
75
+ city: nil,
76
+ # Country code (e.g., US, CA)
77
+ country: nil,
78
+ # Country where the business is registered
79
+ country_of_registration: nil,
80
+ entity_type: nil,
81
+ # Legal business name
82
+ legal_name: nil,
83
+ # Postal/ZIP code
84
+ postal_code: nil,
85
+ # State/province code
86
+ state: nil,
87
+ # Street address
88
+ street: nil,
89
+ # Tax ID/EIN number
90
+ tax_id: nil,
91
+ # Type of tax ID (e.g., us_ein, ca_bn)
92
+ tax_id_type: nil,
93
+ # Business website URL
94
+ url: nil
95
+ )
96
+ end
97
+
98
+ sig do
99
+ override.returns(
100
+ {
101
+ city: T.nilable(String),
102
+ country: T.nilable(String),
103
+ country_of_registration: T.nilable(String),
104
+ entity_type:
105
+ T.nilable(Sentdm::BrandBusinessInfo::EntityType::OrSymbol),
106
+ legal_name: T.nilable(String),
107
+ postal_code: T.nilable(String),
108
+ state: T.nilable(String),
109
+ street: T.nilable(String),
110
+ tax_id: T.nilable(String),
111
+ tax_id_type: T.nilable(String),
112
+ url: T.nilable(String)
113
+ }
114
+ )
115
+ end
116
+ def to_hash
117
+ end
118
+
119
+ module EntityType
120
+ extend Sentdm::Internal::Type::Enum
121
+
122
+ TaggedSymbol =
123
+ T.type_alias { T.all(Symbol, Sentdm::BrandBusinessInfo::EntityType) }
124
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
125
+
126
+ PRIVATE_PROFIT =
127
+ T.let(
128
+ :PRIVATE_PROFIT,
129
+ Sentdm::BrandBusinessInfo::EntityType::TaggedSymbol
130
+ )
131
+ PUBLIC_PROFIT =
132
+ T.let(
133
+ :PUBLIC_PROFIT,
134
+ Sentdm::BrandBusinessInfo::EntityType::TaggedSymbol
135
+ )
136
+ NON_PROFIT =
137
+ T.let(
138
+ :NON_PROFIT,
139
+ Sentdm::BrandBusinessInfo::EntityType::TaggedSymbol
140
+ )
141
+ SOLE_PROPRIETOR =
142
+ T.let(
143
+ :SOLE_PROPRIETOR,
144
+ Sentdm::BrandBusinessInfo::EntityType::TaggedSymbol
145
+ )
146
+ GOVERNMENT =
147
+ T.let(
148
+ :GOVERNMENT,
149
+ Sentdm::BrandBusinessInfo::EntityType::TaggedSymbol
150
+ )
151
+
152
+ sig do
153
+ override.returns(
154
+ T::Array[Sentdm::BrandBusinessInfo::EntityType::TaggedSymbol]
155
+ )
156
+ end
157
+ def self.values
158
+ end
159
+ end
160
+ end
161
+ end
162
+ end
@@ -0,0 +1,76 @@
1
+ # typed: strong
2
+
3
+ module Sentdm
4
+ module Models
5
+ class BrandComplianceInfo < Sentdm::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(Sentdm::BrandComplianceInfo, Sentdm::Internal::AnyHash)
9
+ end
10
+
11
+ sig { returns(Sentdm::TcrBrandRelationship::OrSymbol) }
12
+ attr_accessor :brand_relationship
13
+
14
+ sig { returns(Sentdm::TcrVertical::OrSymbol) }
15
+ attr_accessor :vertical
16
+
17
+ # List of destination countries for messaging
18
+ sig { returns(T.nilable(T::Array[Sentdm::DestinationCountry])) }
19
+ attr_accessor :destination_countries
20
+
21
+ # Whether this is a TCR (Campaign Registry) application
22
+ sig { returns(T.nilable(T::Boolean)) }
23
+ attr_accessor :is_tcr_application
24
+
25
+ # Additional notes about the business or use case
26
+ sig { returns(T.nilable(String)) }
27
+ attr_accessor :notes
28
+
29
+ # Phone number prefix for messaging (e.g., "+1")
30
+ sig { returns(T.nilable(String)) }
31
+ attr_accessor :phone_number_prefix
32
+
33
+ # Compliance and TCR information for brand registration
34
+ sig do
35
+ params(
36
+ brand_relationship: Sentdm::TcrBrandRelationship::OrSymbol,
37
+ vertical: Sentdm::TcrVertical::OrSymbol,
38
+ destination_countries:
39
+ T.nilable(T::Array[Sentdm::DestinationCountry::OrHash]),
40
+ is_tcr_application: T.nilable(T::Boolean),
41
+ notes: T.nilable(String),
42
+ phone_number_prefix: T.nilable(String)
43
+ ).returns(T.attached_class)
44
+ end
45
+ def self.new(
46
+ brand_relationship:,
47
+ vertical:,
48
+ # List of destination countries for messaging
49
+ destination_countries: nil,
50
+ # Whether this is a TCR (Campaign Registry) application
51
+ is_tcr_application: nil,
52
+ # Additional notes about the business or use case
53
+ notes: nil,
54
+ # Phone number prefix for messaging (e.g., "+1")
55
+ phone_number_prefix: nil
56
+ )
57
+ end
58
+
59
+ sig do
60
+ override.returns(
61
+ {
62
+ brand_relationship: Sentdm::TcrBrandRelationship::OrSymbol,
63
+ vertical: Sentdm::TcrVertical::OrSymbol,
64
+ destination_countries:
65
+ T.nilable(T::Array[Sentdm::DestinationCountry]),
66
+ is_tcr_application: T.nilable(T::Boolean),
67
+ notes: T.nilable(String),
68
+ phone_number_prefix: T.nilable(String)
69
+ }
70
+ )
71
+ end
72
+ def to_hash
73
+ end
74
+ end
75
+ end
76
+ end
@@ -0,0 +1,78 @@
1
+ # typed: strong
2
+
3
+ module Sentdm
4
+ module Models
5
+ class BrandContactInfo < Sentdm::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(Sentdm::BrandContactInfo, Sentdm::Internal::AnyHash)
9
+ end
10
+
11
+ # Primary contact name (required)
12
+ sig { returns(String) }
13
+ attr_accessor :name
14
+
15
+ # Business/brand name
16
+ sig { returns(T.nilable(String)) }
17
+ attr_accessor :business_name
18
+
19
+ # Contact email address
20
+ sig { returns(T.nilable(String)) }
21
+ attr_accessor :email
22
+
23
+ # Contact phone number in E.164 format
24
+ sig { returns(T.nilable(String)) }
25
+ attr_accessor :phone
26
+
27
+ # Contact phone country code (e.g., "1" for US)
28
+ sig { returns(T.nilable(String)) }
29
+ attr_accessor :phone_country_code
30
+
31
+ # Contact's role in the business
32
+ sig { returns(T.nilable(String)) }
33
+ attr_accessor :role
34
+
35
+ # Contact information for brand KYC
36
+ sig do
37
+ params(
38
+ name: String,
39
+ business_name: T.nilable(String),
40
+ email: T.nilable(String),
41
+ phone: T.nilable(String),
42
+ phone_country_code: T.nilable(String),
43
+ role: T.nilable(String)
44
+ ).returns(T.attached_class)
45
+ end
46
+ def self.new(
47
+ # Primary contact name (required)
48
+ name:,
49
+ # Business/brand name
50
+ business_name: nil,
51
+ # Contact email address
52
+ email: nil,
53
+ # Contact phone number in E.164 format
54
+ phone: nil,
55
+ # Contact phone country code (e.g., "1" for US)
56
+ phone_country_code: nil,
57
+ # Contact's role in the business
58
+ role: nil
59
+ )
60
+ end
61
+
62
+ sig do
63
+ override.returns(
64
+ {
65
+ name: String,
66
+ business_name: T.nilable(String),
67
+ email: T.nilable(String),
68
+ phone: T.nilable(String),
69
+ phone_country_code: T.nilable(String),
70
+ role: T.nilable(String)
71
+ }
72
+ )
73
+ end
74
+ def to_hash
75
+ end
76
+ end
77
+ end
78
+ end
@@ -0,0 +1,65 @@
1
+ # typed: strong
2
+
3
+ module Sentdm
4
+ module Models
5
+ class BrandsBrandData < Sentdm::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(Sentdm::BrandsBrandData, Sentdm::Internal::AnyHash)
9
+ end
10
+
11
+ # Compliance and TCR information for brand registration
12
+ sig { returns(Sentdm::BrandComplianceInfo) }
13
+ attr_reader :compliance
14
+
15
+ sig { params(compliance: Sentdm::BrandComplianceInfo::OrHash).void }
16
+ attr_writer :compliance
17
+
18
+ # Contact information for brand KYC
19
+ sig { returns(Sentdm::BrandContactInfo) }
20
+ attr_reader :contact
21
+
22
+ sig { params(contact: Sentdm::BrandContactInfo::OrHash).void }
23
+ attr_writer :contact
24
+
25
+ # Business details and address for brand KYC
26
+ sig { returns(T.nilable(Sentdm::BrandBusinessInfo)) }
27
+ attr_reader :business
28
+
29
+ sig do
30
+ params(business: T.nilable(Sentdm::BrandBusinessInfo::OrHash)).void
31
+ end
32
+ attr_writer :business
33
+
34
+ # Brand and KYC data grouped into contact, business, and compliance sections
35
+ sig do
36
+ params(
37
+ compliance: Sentdm::BrandComplianceInfo::OrHash,
38
+ contact: Sentdm::BrandContactInfo::OrHash,
39
+ business: T.nilable(Sentdm::BrandBusinessInfo::OrHash)
40
+ ).returns(T.attached_class)
41
+ end
42
+ def self.new(
43
+ # Compliance and TCR information for brand registration
44
+ compliance:,
45
+ # Contact information for brand KYC
46
+ contact:,
47
+ # Business details and address for brand KYC
48
+ business: nil
49
+ )
50
+ end
51
+
52
+ sig do
53
+ override.returns(
54
+ {
55
+ compliance: Sentdm::BrandComplianceInfo,
56
+ contact: Sentdm::BrandContactInfo,
57
+ business: T.nilable(Sentdm::BrandBusinessInfo)
58
+ }
59
+ )
60
+ end
61
+ def to_hash
62
+ end
63
+ end
64
+ end
65
+ end
@@ -2,7 +2,7 @@
2
2
 
3
3
  module Sentdm
4
4
  module Models
5
- class ContactDeleteParams < Sentdm::Internal::Type::BaseModel
5
+ class ContactDeleteParams < Sentdm::Models::MutationRequest
6
6
  extend Sentdm::Internal::Type::RequestParameters::Converter
7
7
  include Sentdm::Internal::Type::RequestParameters
8
8
 
@@ -14,14 +14,6 @@ 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
-
25
17
  sig { returns(T.nilable(String)) }
26
18
  attr_reader :x_profile_id
27
19
 
@@ -31,26 +23,17 @@ module Sentdm
31
23
  sig do
32
24
  params(
33
25
  id: String,
34
- sandbox: T::Boolean,
35
26
  x_profile_id: String,
36
27
  request_options: Sentdm::RequestOptions::OrHash
37
28
  ).returns(T.attached_class)
38
29
  end
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
- )
30
+ def self.new(id:, x_profile_id: nil, request_options: {})
47
31
  end
48
32
 
49
33
  sig do
50
34
  override.returns(
51
35
  {
52
36
  id: String,
53
- sandbox: T::Boolean,
54
37
  x_profile_id: String,
55
38
  request_options: Sentdm::RequestOptions
56
39
  }