sentdm 0.45.0 → 0.46.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 (476) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +11 -0
  3. data/README.md +11 -11
  4. data/lib/sentdm/client.rb +66 -0
  5. data/lib/sentdm/internal/sender_profiles_page.rb +140 -0
  6. data/lib/sentdm/internal/type/enum.rb +11 -11
  7. data/lib/sentdm/models/account.rb +173 -0
  8. data/lib/sentdm/models/account_channels.rb +39 -0
  9. data/lib/sentdm/models/account_profile.rb +86 -0
  10. data/lib/sentdm/models/account_rcs_channel.rb +26 -0
  11. data/lib/sentdm/models/account_sms_channel.rb +26 -0
  12. data/lib/sentdm/models/account_whatsapp_channel.rb +35 -0
  13. data/lib/sentdm/models/api_response_of_account.rb +48 -0
  14. data/lib/sentdm/models/api_response_of_cancelled_message.rb +43 -0
  15. data/lib/sentdm/models/api_response_of_channels_state.rb +48 -0
  16. data/lib/sentdm/models/api_response_of_compliance_requirements.rb +47 -0
  17. data/lib/sentdm/models/api_response_of_contacts_list.rb +42 -0
  18. data/lib/sentdm/models/api_response_of_message.rb +51 -0
  19. data/lib/sentdm/models/api_response_of_message_activities.rb +43 -0
  20. data/lib/sentdm/models/api_response_of_number_lookup_result.rb +43 -0
  21. data/lib/sentdm/models/api_response_of_profile_completion_accepted.rb +47 -0
  22. data/lib/sentdm/models/api_response_of_profile_completion_result.rb +47 -0
  23. data/lib/sentdm/models/api_response_of_profiles_list.rb +43 -0
  24. data/lib/sentdm/models/api_response_of_sender_profile.rb +54 -0
  25. data/lib/sentdm/models/api_response_of_sender_profiles_list.rb +42 -0
  26. data/lib/sentdm/models/api_response_of_templates_list.rb +42 -0
  27. data/lib/sentdm/models/api_response_of_users_list.rb +43 -0
  28. data/lib/sentdm/models/api_response_of_webhook_event_types_list.rb +43 -0
  29. data/lib/sentdm/models/api_response_of_webhook_events_list.rb +42 -0
  30. data/lib/sentdm/models/{webhook_rotate_secret_response.rb → api_response_of_webhook_secret.rb} +4 -17
  31. data/lib/sentdm/models/{webhook_test_response.rb → api_response_of_webhook_test.rb} +4 -23
  32. data/lib/sentdm/models/api_response_of_webhooks_list.rb +42 -0
  33. data/lib/sentdm/models/billing_contact.rb +35 -0
  34. data/lib/sentdm/models/brand_business.rb +96 -0
  35. data/lib/sentdm/models/brand_business_info.rb +3 -20
  36. data/lib/sentdm/models/brand_compliance.rb +75 -0
  37. data/lib/sentdm/models/brand_contact.rb +56 -0
  38. data/lib/sentdm/models/brand_with_kyc.rb +129 -0
  39. data/lib/sentdm/models/cancelled_message.rb +28 -0
  40. data/lib/sentdm/models/channel_event_payload.rb +3 -114
  41. data/lib/sentdm/models/channel_list_params.rb +20 -0
  42. data/lib/sentdm/models/channel_score.rb +35 -0
  43. data/lib/sentdm/models/channels/api_response_of_list_of_sms_market.rb +45 -0
  44. data/lib/sentdm/models/channels/api_response_of_rcs_agent.rb +60 -0
  45. data/lib/sentdm/models/channels/api_response_of_sms_market.rb +54 -0
  46. data/lib/sentdm/models/channels/api_response_of_whatsapp_channel.rb +47 -0
  47. data/lib/sentdm/models/channels/market_compliance.rb +409 -0
  48. data/lib/sentdm/models/channels/rc_create_params.rb +260 -0
  49. data/lib/sentdm/models/channels/rcs_address.rb +43 -0
  50. data/lib/sentdm/models/channels/rcs_agent.rb +278 -0
  51. data/lib/sentdm/models/channels/sms_create_params.rb +173 -0
  52. data/lib/sentdm/models/channels/sms_list_params.rb +22 -0
  53. data/lib/sentdm/models/channels/sms_market.rb +158 -0
  54. data/lib/sentdm/models/channels/sms_number.rb +41 -0
  55. data/lib/sentdm/models/channels/sms_number_request.rb +33 -0
  56. data/lib/sentdm/models/channels/sms_retrieve_params.rb +34 -0
  57. data/lib/sentdm/models/channels/sms_update_params.rb +64 -0
  58. data/lib/sentdm/models/channels/supplied_compliance.rb +89 -0
  59. data/lib/sentdm/models/channels/supplied_document.rb +35 -0
  60. data/lib/sentdm/models/channels/whatsapp_channel.rb +109 -0
  61. data/lib/sentdm/models/channels/whatsapp_create_params.rb +65 -0
  62. data/lib/sentdm/models/channels_state.rb +89 -0
  63. data/lib/sentdm/models/compliance_attachment_template.rb +36 -0
  64. data/lib/sentdm/models/compliance_requirement.rb +112 -0
  65. data/lib/sentdm/models/compliance_requirements.rb +98 -0
  66. data/lib/sentdm/models/compliance_retrieve_requirements_params.rb +52 -0
  67. data/lib/sentdm/models/compliance_setup_step.rb +78 -0
  68. data/lib/sentdm/models/contact_message_summary.rb +3 -34
  69. data/lib/sentdm/models/contacts_list.rb +26 -0
  70. data/lib/sentdm/models/conversation_messages_list.rb +3 -430
  71. data/lib/sentdm/models/entity_type.rb +18 -0
  72. data/lib/sentdm/models/inbound_media.rb +53 -0
  73. data/lib/sentdm/models/inbound_message_event_payload.rb +3 -53
  74. data/lib/sentdm/models/link_event.rb +79 -0
  75. data/lib/sentdm/models/link_event_payload.rb +211 -0
  76. data/lib/sentdm/models/message.rb +168 -0
  77. data/lib/sentdm/models/message_activities.rb +34 -0
  78. data/lib/sentdm/models/message_activity.rb +105 -0
  79. data/lib/sentdm/models/message_body.rb +79 -0
  80. data/lib/sentdm/models/message_button.rb +33 -0
  81. data/lib/sentdm/models/message_cancel_params.rb +32 -0
  82. data/lib/sentdm/models/message_channel_options.rb +43 -0
  83. data/lib/sentdm/models/message_header_media.rb +31 -0
  84. data/lib/sentdm/models/message_media.rb +74 -0
  85. data/lib/sentdm/models/message_recipient.rb +46 -0
  86. data/lib/sentdm/models/message_send_params.rb +6 -90
  87. data/lib/sentdm/models/message_send_response.rb +3 -95
  88. data/lib/sentdm/models/message_send_result.rb +55 -0
  89. data/lib/sentdm/models/message_status_event.rb +54 -0
  90. data/lib/sentdm/models/mms_market.rb +48 -0
  91. data/lib/sentdm/models/number_lookup_result.rb +63 -0
  92. data/lib/sentdm/models/pagination_cursors.rb +27 -0
  93. data/lib/sentdm/models/pagination_meta.rb +3 -27
  94. data/lib/sentdm/models/profile_completion_accepted.rb +20 -0
  95. data/lib/sentdm/models/profile_completion_result.rb +31 -0
  96. data/lib/sentdm/models/profile_detail.rb +6 -408
  97. data/lib/sentdm/models/profiles/brand_campaign.rb +3 -15
  98. data/lib/sentdm/models/profiles_list.rb +26 -0
  99. data/lib/sentdm/models/sender_profile.rb +138 -0
  100. data/lib/sentdm/models/sender_profile_billing.rb +21 -0
  101. data/lib/sentdm/models/sender_profile_billing_request.rb +33 -0
  102. data/lib/sentdm/models/sender_profile_channels.rb +90 -0
  103. data/lib/sentdm/models/sender_profile_create_params.rb +116 -0
  104. data/lib/sentdm/models/sender_profile_delete_params.rb +20 -0
  105. data/lib/sentdm/models/sender_profile_list_params.rb +30 -0
  106. data/lib/sentdm/models/sender_profile_rcs.rb +209 -0
  107. data/lib/sentdm/models/sender_profile_retrieve_params.rb +20 -0
  108. data/lib/sentdm/models/sender_profile_sms.rb +106 -0
  109. data/lib/sentdm/models/sender_profile_update_params.rb +71 -0
  110. data/lib/sentdm/models/sender_profile_whatsapp.rb +61 -0
  111. data/lib/sentdm/models/sender_profiles_list.rb +26 -0
  112. data/lib/sentdm/models/tcr_brand_identity_status.rb +17 -0
  113. data/lib/sentdm/models/tcr_brand_status.rb +16 -0
  114. data/lib/sentdm/models/tcr_campaign_status.rb +16 -0
  115. data/lib/sentdm/models/template_body.rb +3 -70
  116. data/lib/sentdm/models/template_header.rb +3 -37
  117. data/lib/sentdm/models/template_header_location.rb +38 -0
  118. data/lib/sentdm/models/template_media_item.rb +34 -0
  119. data/lib/sentdm/models/template_mms_body_content.rb +49 -0
  120. data/lib/sentdm/models/template_ref.rb +51 -0
  121. data/lib/sentdm/models/template_variable.rb +3 -64
  122. data/lib/sentdm/models/template_variable_props.rb +65 -0
  123. data/lib/sentdm/models/templates_list.rb +26 -0
  124. data/lib/sentdm/models/users_list.rb +26 -0
  125. data/lib/sentdm/models/voice/call.rb +3 -54
  126. data/lib/sentdm/models/voice/call_leg.rb +58 -0
  127. data/lib/sentdm/models/webhook_create_params.rb +3 -25
  128. data/lib/sentdm/models/webhook_delivery.rb +160 -0
  129. data/lib/sentdm/models/webhook_event_types_list.rb +26 -0
  130. data/lib/sentdm/models/webhook_events_list.rb +26 -0
  131. data/lib/sentdm/models/webhook_response.rb +3 -28
  132. data/lib/sentdm/models/webhook_secret.rb +15 -0
  133. data/lib/sentdm/models/webhook_sender_profile.rb +29 -0
  134. data/lib/sentdm/models/webhook_sender_profile_config.rb +27 -0
  135. data/lib/sentdm/models/webhook_test.rb +21 -0
  136. data/lib/sentdm/models/webhook_update_params.rb +3 -25
  137. data/lib/sentdm/models/webhooks_list.rb +26 -0
  138. data/lib/sentdm/models.rb +188 -0
  139. data/lib/sentdm/resources/channels/rcs.rb +177 -0
  140. data/lib/sentdm/resources/channels/sms.rb +417 -0
  141. data/lib/sentdm/resources/channels/whatsapp.rb +106 -0
  142. data/lib/sentdm/resources/channels.rb +162 -0
  143. data/lib/sentdm/resources/compliance.rb +127 -0
  144. data/lib/sentdm/resources/conversations.rb +4 -4
  145. data/lib/sentdm/resources/me.rb +2 -2
  146. data/lib/sentdm/resources/messages.rb +71 -6
  147. data/lib/sentdm/resources/numbers.rb +2 -2
  148. data/lib/sentdm/resources/profiles.rb +4 -4
  149. data/lib/sentdm/resources/sender_profiles.rb +463 -0
  150. data/lib/sentdm/resources/users.rb +2 -2
  151. data/lib/sentdm/resources/webhooks.rb +10 -10
  152. data/lib/sentdm/version.rb +1 -1
  153. data/lib/sentdm.rb +120 -11
  154. data/rbi/sentdm/client.rbi +64 -0
  155. data/rbi/sentdm/internal/sender_profiles_page.rbi +122 -0
  156. data/rbi/sentdm/models/account.rbi +242 -0
  157. data/rbi/sentdm/models/account_channels.rbi +66 -0
  158. data/rbi/sentdm/models/account_profile.rbi +116 -0
  159. data/rbi/sentdm/models/account_rcs_channel.rbi +45 -0
  160. data/rbi/sentdm/models/account_sms_channel.rbi +45 -0
  161. data/rbi/sentdm/models/account_whatsapp_channel.rbi +58 -0
  162. data/rbi/sentdm/models/api_response_of_account.rbi +78 -0
  163. data/rbi/sentdm/models/{webhook_rotate_secret_response.rbi → api_response_of_cancelled_message.rbi} +6 -41
  164. data/rbi/sentdm/models/api_response_of_channels_state.rbi +78 -0
  165. data/rbi/sentdm/models/api_response_of_compliance_requirements.rbi +81 -0
  166. data/rbi/sentdm/models/api_response_of_contacts_list.rbi +74 -0
  167. data/rbi/sentdm/models/api_response_of_message.rbi +84 -0
  168. data/rbi/sentdm/models/api_response_of_message_activities.rbi +77 -0
  169. data/rbi/sentdm/models/{webhook_test_response.rbi → api_response_of_number_lookup_result.rbi} +9 -43
  170. data/rbi/sentdm/models/api_response_of_profile_completion_accepted.rbi +83 -0
  171. data/rbi/sentdm/models/{profile_complete_response.rbi → api_response_of_profile_completion_result.rbi} +6 -52
  172. data/rbi/sentdm/models/api_response_of_profiles_list.rbi +74 -0
  173. data/rbi/sentdm/models/api_response_of_sender_profile.rbi +90 -0
  174. data/rbi/sentdm/models/api_response_of_sender_profiles_list.rbi +77 -0
  175. data/rbi/sentdm/models/api_response_of_templates_list.rbi +74 -0
  176. data/rbi/sentdm/models/api_response_of_users_list.rbi +74 -0
  177. data/rbi/sentdm/models/api_response_of_webhook_event_types_list.rbi +79 -0
  178. data/rbi/sentdm/models/api_response_of_webhook_events_list.rbi +77 -0
  179. data/rbi/sentdm/models/api_response_of_webhook_secret.rbi +74 -0
  180. data/rbi/sentdm/models/api_response_of_webhook_test.rbi +74 -0
  181. data/rbi/sentdm/models/api_response_of_webhooks_list.rbi +74 -0
  182. data/rbi/sentdm/models/billing_contact.rbi +49 -0
  183. data/rbi/sentdm/models/brand_business.rbi +115 -0
  184. data/rbi/sentdm/models/brand_business_info.rbi +3 -49
  185. data/rbi/sentdm/models/brand_compliance.rbi +108 -0
  186. data/rbi/sentdm/models/brand_contact.rbi +78 -0
  187. data/rbi/sentdm/models/brand_with_kyc.rbi +167 -0
  188. data/rbi/sentdm/models/cancelled_message.rbi +37 -0
  189. data/rbi/sentdm/models/channel_event_payload.rbi +4 -204
  190. data/rbi/sentdm/models/channel_list_params.rbi +38 -0
  191. data/rbi/sentdm/models/channel_score.rbi +56 -0
  192. data/rbi/sentdm/models/channels/api_response_of_list_of_sms_market.rbi +76 -0
  193. data/rbi/sentdm/models/channels/api_response_of_rcs_agent.rbi +103 -0
  194. data/rbi/sentdm/models/channels/api_response_of_sms_market.rbi +93 -0
  195. data/rbi/sentdm/models/channels/api_response_of_whatsapp_channel.rbi +85 -0
  196. data/rbi/sentdm/models/channels/market_compliance.rbi +770 -0
  197. data/rbi/sentdm/models/channels/rc_create_params.rbi +397 -0
  198. data/rbi/sentdm/models/channels/rcs_address.rbi +62 -0
  199. data/rbi/sentdm/models/channels/rcs_agent.rbi +320 -0
  200. data/rbi/sentdm/models/channels/sms_create_params.rbi +291 -0
  201. data/rbi/sentdm/models/channels/sms_list_params.rbi +40 -0
  202. data/rbi/sentdm/models/channels/sms_market.rbi +247 -0
  203. data/rbi/sentdm/models/channels/sms_number.rbi +60 -0
  204. data/rbi/sentdm/models/channels/sms_number_request.rbi +48 -0
  205. data/rbi/sentdm/models/channels/sms_retrieve_params.rbi +56 -0
  206. data/rbi/sentdm/models/channels/sms_update_params.rbi +93 -0
  207. data/rbi/sentdm/models/channels/supplied_compliance.rbi +140 -0
  208. data/rbi/sentdm/models/channels/supplied_document.rbi +57 -0
  209. data/rbi/sentdm/models/channels/whatsapp_channel.rbi +172 -0
  210. data/rbi/sentdm/models/channels/whatsapp_create_params.rbi +104 -0
  211. data/rbi/sentdm/models/channels_state.rbi +151 -0
  212. data/rbi/sentdm/models/compliance_attachment_template.rbi +56 -0
  213. data/rbi/sentdm/models/compliance_requirement.rbi +149 -0
  214. data/rbi/sentdm/models/compliance_requirements.rbi +165 -0
  215. data/rbi/sentdm/models/compliance_retrieve_requirements_params.rbi +79 -0
  216. data/rbi/sentdm/models/compliance_setup_step.rbi +115 -0
  217. data/rbi/sentdm/models/contact_message_summary.rbi +4 -69
  218. data/rbi/sentdm/models/contacts_list.rbi +50 -0
  219. data/rbi/sentdm/models/conversation_messages_list.rbi +4 -669
  220. data/rbi/sentdm/models/entity_type.rbi +23 -0
  221. data/rbi/sentdm/models/inbound_media.rbi +76 -0
  222. data/rbi/sentdm/models/inbound_message_event_payload.rbi +3 -85
  223. data/rbi/sentdm/models/link_event.rbi +128 -0
  224. data/rbi/sentdm/models/link_event_payload.rbi +279 -0
  225. data/rbi/sentdm/models/message.rbi +214 -0
  226. data/rbi/sentdm/models/message_activities.rbi +63 -0
  227. data/rbi/sentdm/models/message_activity.rbi +145 -0
  228. data/rbi/sentdm/models/message_body.rbi +104 -0
  229. data/rbi/sentdm/models/message_button.rbi +52 -0
  230. data/rbi/sentdm/models/message_cancel_params.rbi +59 -0
  231. data/rbi/sentdm/models/message_channel_options.rbi +65 -0
  232. data/rbi/sentdm/models/message_header_media.rbi +44 -0
  233. data/rbi/sentdm/models/message_media.rbi +95 -0
  234. data/rbi/sentdm/models/message_recipient.rbi +70 -0
  235. data/rbi/sentdm/models/message_send_params.rbi +7 -155
  236. data/rbi/sentdm/models/message_send_response.rbi +4 -163
  237. data/rbi/sentdm/models/message_send_result.rbi +85 -0
  238. data/rbi/sentdm/models/message_status_event.rbi +70 -0
  239. data/rbi/sentdm/models/mms_market.rbi +66 -0
  240. data/rbi/sentdm/models/number_lookup_result.rbi +89 -0
  241. data/rbi/sentdm/models/pagination_cursors.rbi +42 -0
  242. data/rbi/sentdm/models/pagination_meta.rbi +4 -43
  243. data/rbi/sentdm/models/profile_completion_accepted.rbi +33 -0
  244. data/rbi/sentdm/models/profile_completion_result.rbi +43 -0
  245. data/rbi/sentdm/models/profile_detail.rbi +8 -621
  246. data/rbi/sentdm/models/profiles/brand_campaign.rbi +3 -45
  247. data/rbi/sentdm/models/profiles_list.rbi +50 -0
  248. data/rbi/sentdm/models/sender_profile.rbi +204 -0
  249. data/rbi/sentdm/models/sender_profile_billing.rbi +34 -0
  250. data/rbi/sentdm/models/sender_profile_billing_request.rbi +46 -0
  251. data/rbi/sentdm/models/sender_profile_channels.rbi +163 -0
  252. data/rbi/sentdm/models/sender_profile_create_params.rbi +190 -0
  253. data/rbi/sentdm/models/sender_profile_delete_params.rbi +35 -0
  254. data/rbi/sentdm/models/sender_profile_list_params.rbi +57 -0
  255. data/rbi/sentdm/models/sender_profile_rcs.rbi +211 -0
  256. data/rbi/sentdm/models/sender_profile_retrieve_params.rbi +35 -0
  257. data/rbi/sentdm/models/sender_profile_sms.rbi +156 -0
  258. data/rbi/sentdm/models/sender_profile_update_params.rbi +96 -0
  259. data/rbi/sentdm/models/sender_profile_whatsapp.rbi +83 -0
  260. data/rbi/sentdm/models/sender_profiles_list.rbi +54 -0
  261. data/rbi/sentdm/models/tcr_brand_identity_status.rbi +27 -0
  262. data/rbi/sentdm/models/tcr_brand_status.rbi +20 -0
  263. data/rbi/sentdm/models/tcr_campaign_status.rbi +23 -0
  264. data/rbi/sentdm/models/template_body.rbi +6 -114
  265. data/rbi/sentdm/models/template_header.rbi +4 -53
  266. data/rbi/sentdm/models/template_header_location.rbi +47 -0
  267. data/rbi/sentdm/models/template_media_item.rbi +51 -0
  268. data/rbi/sentdm/models/template_mms_body_content.rbi +73 -0
  269. data/rbi/sentdm/models/template_ref.rbi +79 -0
  270. data/rbi/sentdm/models/template_variable.rbi +4 -80
  271. data/rbi/sentdm/models/template_variable_props.rbi +81 -0
  272. data/rbi/sentdm/models/templates_list.rbi +50 -0
  273. data/rbi/sentdm/models/users_list.rbi +50 -0
  274. data/rbi/sentdm/models/voice/call.rbi +3 -86
  275. data/rbi/sentdm/models/voice/call_leg.rbi +90 -0
  276. data/rbi/sentdm/models/webhook_create_params.rbi +4 -49
  277. data/rbi/sentdm/models/webhook_delivery.rbi +211 -0
  278. data/rbi/sentdm/models/webhook_event_types_list.rbi +54 -0
  279. data/rbi/sentdm/models/webhook_events_list.rbi +52 -0
  280. data/rbi/sentdm/models/webhook_response.rbi +4 -50
  281. data/rbi/sentdm/models/webhook_secret.rbi +24 -0
  282. data/rbi/sentdm/models/webhook_sender_profile.rbi +46 -0
  283. data/rbi/sentdm/models/webhook_sender_profile_config.rbi +44 -0
  284. data/rbi/sentdm/models/webhook_test.rbi +32 -0
  285. data/rbi/sentdm/models/webhook_update_params.rbi +4 -49
  286. data/rbi/sentdm/models/webhooks_list.rbi +50 -0
  287. data/rbi/sentdm/models.rbi +197 -0
  288. data/rbi/sentdm/resources/channels/rcs.rbi +208 -0
  289. data/rbi/sentdm/resources/channels/sms.rbi +437 -0
  290. data/rbi/sentdm/resources/channels/whatsapp.rbi +108 -0
  291. data/rbi/sentdm/resources/channels.rbi +149 -0
  292. data/rbi/sentdm/resources/compliance.rbi +121 -0
  293. data/rbi/sentdm/resources/conversations.rbi +2 -10
  294. data/rbi/sentdm/resources/me.rbi +1 -1
  295. data/rbi/sentdm/resources/messages.rbi +64 -7
  296. data/rbi/sentdm/resources/numbers.rbi +1 -1
  297. data/rbi/sentdm/resources/profiles.rbi +2 -2
  298. data/rbi/sentdm/resources/sender_profiles.rbi +461 -0
  299. data/rbi/sentdm/resources/users.rbi +1 -1
  300. data/rbi/sentdm/resources/webhooks.rbi +6 -12
  301. data/sig/sentdm/client.rbs +4 -0
  302. data/sig/sentdm/internal/sender_profiles_page.rbs +80 -0
  303. data/sig/sentdm/models/account.rbs +111 -0
  304. data/sig/sentdm/models/account_channels.rbs +38 -0
  305. data/sig/sentdm/models/account_profile.rbs +68 -0
  306. data/sig/sentdm/models/account_rcs_channel.rbs +17 -0
  307. data/sig/sentdm/models/account_sms_channel.rbs +17 -0
  308. data/sig/sentdm/models/account_whatsapp_channel.rbs +28 -0
  309. data/sig/sentdm/models/api_response_of_account.rbs +39 -0
  310. data/sig/sentdm/models/api_response_of_cancelled_message.rbs +39 -0
  311. data/sig/sentdm/models/api_response_of_channels_state.rbs +39 -0
  312. data/sig/sentdm/models/api_response_of_compliance_requirements.rbs +39 -0
  313. data/sig/sentdm/models/api_response_of_contacts_list.rbs +39 -0
  314. data/sig/sentdm/models/api_response_of_message.rbs +39 -0
  315. data/sig/sentdm/models/api_response_of_message_activities.rbs +39 -0
  316. data/sig/sentdm/models/api_response_of_number_lookup_result.rbs +39 -0
  317. data/sig/sentdm/models/api_response_of_profile_completion_accepted.rbs +39 -0
  318. data/sig/sentdm/models/api_response_of_profile_completion_result.rbs +39 -0
  319. data/sig/sentdm/models/api_response_of_profiles_list.rbs +39 -0
  320. data/sig/sentdm/models/api_response_of_sender_profile.rbs +39 -0
  321. data/sig/sentdm/models/api_response_of_sender_profiles_list.rbs +39 -0
  322. data/sig/sentdm/models/api_response_of_templates_list.rbs +39 -0
  323. data/sig/sentdm/models/api_response_of_users_list.rbs +39 -0
  324. data/sig/sentdm/models/api_response_of_webhook_event_types_list.rbs +39 -0
  325. data/sig/sentdm/models/api_response_of_webhook_events_list.rbs +39 -0
  326. data/sig/sentdm/models/api_response_of_webhook_secret.rbs +39 -0
  327. data/sig/sentdm/models/api_response_of_webhook_test.rbs +39 -0
  328. data/sig/sentdm/models/api_response_of_webhooks_list.rbs +39 -0
  329. data/sig/sentdm/models/billing_contact.rbs +30 -0
  330. data/sig/sentdm/models/brand_business.rbs +70 -0
  331. data/sig/sentdm/models/brand_business_info.rbs +4 -23
  332. data/sig/sentdm/models/brand_compliance.rbs +56 -0
  333. data/sig/sentdm/models/brand_contact.rbs +47 -0
  334. data/sig/sentdm/models/brand_with_kyc.rbs +93 -0
  335. data/sig/sentdm/models/cancelled_message.rbs +15 -0
  336. data/sig/sentdm/models/channel_event_payload.rbs +4 -56
  337. data/sig/sentdm/models/channel_list_params.rbs +25 -0
  338. data/sig/sentdm/models/channel_score.rbs +32 -0
  339. data/sig/sentdm/models/channels/api_response_of_list_of_sms_market.rbs +41 -0
  340. data/sig/sentdm/models/channels/api_response_of_rcs_agent.rbs +41 -0
  341. data/sig/sentdm/models/channels/api_response_of_sms_market.rbs +41 -0
  342. data/sig/sentdm/models/channels/api_response_of_whatsapp_channel.rbs +43 -0
  343. data/sig/sentdm/models/channels/market_compliance.rbs +338 -0
  344. data/sig/sentdm/models/channels/rc_create_params.rbs +242 -0
  345. data/sig/sentdm/models/channels/rcs_address.rbs +42 -0
  346. data/sig/sentdm/models/channels/rcs_agent.rbs +181 -0
  347. data/sig/sentdm/models/channels/sms_create_params.rbs +116 -0
  348. data/sig/sentdm/models/channels/sms_list_params.rbs +27 -0
  349. data/sig/sentdm/models/channels/sms_market.rbs +85 -0
  350. data/sig/sentdm/models/channels/sms_number.rbs +28 -0
  351. data/sig/sentdm/models/channels/sms_number_request.rbs +17 -0
  352. data/sig/sentdm/models/channels/sms_retrieve_params.rbs +36 -0
  353. data/sig/sentdm/models/channels/sms_update_params.rbs +63 -0
  354. data/sig/sentdm/models/channels/supplied_compliance.rbs +32 -0
  355. data/sig/sentdm/models/channels/supplied_document.rbs +30 -0
  356. data/sig/sentdm/models/channels/whatsapp_channel.rbs +78 -0
  357. data/sig/sentdm/models/channels/whatsapp_create_params.rbs +56 -0
  358. data/sig/sentdm/models/channels_state.rbs +55 -0
  359. data/sig/sentdm/models/compliance_attachment_template.rbs +26 -0
  360. data/sig/sentdm/models/compliance_requirement.rbs +76 -0
  361. data/sig/sentdm/models/compliance_requirements.rbs +66 -0
  362. data/sig/sentdm/models/compliance_retrieve_requirements_params.rbs +43 -0
  363. data/sig/sentdm/models/compliance_setup_step.rbs +62 -0
  364. data/sig/sentdm/models/contact_message_summary.rbs +6 -35
  365. data/sig/sentdm/models/contacts_list.rbs +31 -0
  366. data/sig/sentdm/models/conversation_messages_list.rbs +5 -312
  367. data/sig/sentdm/models/entity_type.rbs +22 -0
  368. data/sig/sentdm/models/inbound_media.rbs +35 -0
  369. data/sig/sentdm/models/inbound_message_event_payload.rbs +4 -36
  370. data/sig/sentdm/models/link_event.rbs +44 -0
  371. data/sig/sentdm/models/link_event_payload.rbs +106 -0
  372. data/sig/sentdm/models/message.rbs +130 -0
  373. data/sig/sentdm/models/message_activities.rbs +38 -0
  374. data/sig/sentdm/models/message_activity.rbs +66 -0
  375. data/sig/sentdm/models/message_body.rbs +52 -0
  376. data/sig/sentdm/models/message_button.rbs +34 -0
  377. data/sig/sentdm/models/message_cancel_params.rbs +38 -0
  378. data/sig/sentdm/models/message_channel_options.rbs +26 -0
  379. data/sig/sentdm/models/message_header_media.rbs +19 -0
  380. data/sig/sentdm/models/message_media.rbs +40 -0
  381. data/sig/sentdm/models/message_recipient.rbs +34 -0
  382. data/sig/sentdm/models/message_send_params.rbs +8 -54
  383. data/sig/sentdm/models/message_send_response.rbs +4 -77
  384. data/sig/sentdm/models/message_send_result.rbs +45 -0
  385. data/sig/sentdm/models/message_status_event.rbs +40 -0
  386. data/sig/sentdm/models/mms_market.rbs +35 -0
  387. data/sig/sentdm/models/number_lookup_result.rbs +64 -0
  388. data/sig/sentdm/models/pagination_cursors.rbs +15 -0
  389. data/sig/sentdm/models/pagination_meta.rbs +4 -16
  390. data/sig/sentdm/models/profile_completion_accepted.rbs +15 -0
  391. data/sig/sentdm/models/profile_completion_result.rbs +19 -0
  392. data/sig/sentdm/models/profile_detail.rbs +8 -315
  393. data/sig/sentdm/models/profiles/brand_campaign.rbs +4 -16
  394. data/sig/sentdm/models/profiles_list.rbs +31 -0
  395. data/sig/sentdm/models/sender_profile.rbs +76 -0
  396. data/sig/sentdm/models/sender_profile_billing.rbs +15 -0
  397. data/sig/sentdm/models/sender_profile_billing_request.rbs +15 -0
  398. data/sig/sentdm/models/sender_profile_channels.rbs +30 -0
  399. data/sig/sentdm/models/sender_profile_create_params.rbs +78 -0
  400. data/sig/sentdm/models/sender_profile_delete_params.rbs +20 -0
  401. data/sig/sentdm/models/sender_profile_list_params.rbs +32 -0
  402. data/sig/sentdm/models/sender_profile_rcs.rbs +150 -0
  403. data/sig/sentdm/models/sender_profile_retrieve_params.rbs +20 -0
  404. data/sig/sentdm/models/sender_profile_sms.rbs +40 -0
  405. data/sig/sentdm/models/sender_profile_update_params.rbs +62 -0
  406. data/sig/sentdm/models/sender_profile_whatsapp.rbs +16 -0
  407. data/sig/sentdm/models/sender_profiles_list.rbs +31 -0
  408. data/sig/sentdm/models/tcr_brand_identity_status.rbs +17 -0
  409. data/sig/sentdm/models/tcr_brand_status.rbs +15 -0
  410. data/sig/sentdm/models/tcr_campaign_status.rbs +15 -0
  411. data/sig/sentdm/models/template_body.rbs +4 -43
  412. data/sig/sentdm/models/template_header.rbs +4 -31
  413. data/sig/sentdm/models/template_header_location.rbs +30 -0
  414. data/sig/sentdm/models/template_media_item.rbs +17 -0
  415. data/sig/sentdm/models/template_mms_body_content.rbs +28 -0
  416. data/sig/sentdm/models/template_ref.rbs +26 -0
  417. data/sig/sentdm/models/template_variable.rbs +4 -51
  418. data/sig/sentdm/models/template_variable_props.rbs +50 -0
  419. data/sig/sentdm/models/templates_list.rbs +29 -0
  420. data/sig/sentdm/models/users_list.rbs +31 -0
  421. data/sig/sentdm/models/voice/call.rbs +4 -49
  422. data/sig/sentdm/models/voice/call_leg.rbs +50 -0
  423. data/sig/sentdm/models/webhook_create_params.rbs +4 -28
  424. data/sig/sentdm/models/webhook_delivery.rbs +99 -0
  425. data/sig/sentdm/models/webhook_event_types_list.rbs +31 -0
  426. data/sig/sentdm/models/webhook_events_list.rbs +31 -0
  427. data/sig/sentdm/models/webhook_response.rbs +4 -28
  428. data/sig/sentdm/models/webhook_secret.rbs +15 -0
  429. data/sig/sentdm/models/webhook_sender_profile.rbs +27 -0
  430. data/sig/sentdm/models/webhook_sender_profile_config.rbs +27 -0
  431. data/sig/sentdm/models/webhook_test.rbs +19 -0
  432. data/sig/sentdm/models/webhook_update_params.rbs +4 -28
  433. data/sig/sentdm/models/webhooks_list.rbs +31 -0
  434. data/sig/sentdm/models.rbs +188 -0
  435. data/sig/sentdm/resources/channels/rcs.rbs +41 -0
  436. data/sig/sentdm/resources/channels/sms.rbs +44 -0
  437. data/sig/sentdm/resources/channels/whatsapp.rbs +18 -0
  438. data/sig/sentdm/resources/channels.rbs +11 -0
  439. data/sig/sentdm/resources/compliance.rbs +15 -0
  440. data/sig/sentdm/resources/conversations.rbs +2 -2
  441. data/sig/sentdm/resources/me.rbs +1 -1
  442. data/sig/sentdm/resources/messages.rbs +12 -4
  443. data/sig/sentdm/resources/numbers.rbs +1 -1
  444. data/sig/sentdm/resources/profiles.rbs +2 -2
  445. data/sig/sentdm/resources/sender_profiles.rbs +44 -0
  446. data/sig/sentdm/resources/users.rbs +1 -1
  447. data/sig/sentdm/resources/webhooks.rbs +6 -6
  448. metadata +362 -35
  449. data/lib/sentdm/models/me_retrieve_response.rb +0 -409
  450. data/lib/sentdm/models/message_retrieve_activities_response.rb +0 -175
  451. data/lib/sentdm/models/message_retrieve_status_response.rb +0 -477
  452. data/lib/sentdm/models/number_lookup_response.rb +0 -104
  453. data/lib/sentdm/models/profile_complete_response.rb +0 -74
  454. data/lib/sentdm/models/profile_list_response.rb +0 -65
  455. data/lib/sentdm/models/user_list_response.rb +0 -65
  456. data/lib/sentdm/models/webhook_list_event_types_response.rb +0 -65
  457. data/lib/sentdm/models/webhook_list_events_response.rb +0 -445
  458. data/rbi/sentdm/models/me_retrieve_response.rbi +0 -705
  459. data/rbi/sentdm/models/message_retrieve_activities_response.rbi +0 -319
  460. data/rbi/sentdm/models/message_retrieve_status_response.rbi +0 -765
  461. data/rbi/sentdm/models/number_lookup_response.rbi +0 -166
  462. data/rbi/sentdm/models/profile_list_response.rbi +0 -128
  463. data/rbi/sentdm/models/user_list_response.rbi +0 -128
  464. data/rbi/sentdm/models/webhook_list_event_types_response.rbi +0 -142
  465. data/rbi/sentdm/models/webhook_list_events_response.rbi +0 -647
  466. data/sig/sentdm/models/me_retrieve_response.rbs +0 -306
  467. data/sig/sentdm/models/message_retrieve_activities_response.rbs +0 -137
  468. data/sig/sentdm/models/message_retrieve_status_response.rbs +0 -341
  469. data/sig/sentdm/models/number_lookup_response.rbs +0 -100
  470. data/sig/sentdm/models/profile_complete_response.rbs +0 -55
  471. data/sig/sentdm/models/profile_list_response.rbs +0 -67
  472. data/sig/sentdm/models/user_list_response.rbs +0 -67
  473. data/sig/sentdm/models/webhook_list_event_types_response.rbs +0 -67
  474. data/sig/sentdm/models/webhook_list_events_response.rbs +0 -243
  475. data/sig/sentdm/models/webhook_rotate_secret_response.rbs +0 -51
  476. data/sig/sentdm/models/webhook_test_response.rbs +0 -55
@@ -0,0 +1,167 @@
1
+ # typed: strong
2
+
3
+ module Sentdm
4
+ module Models
5
+ class BrandWithKYC < Sentdm::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias { T.any(Sentdm::BrandWithKYC, Sentdm::Internal::AnyHash) }
8
+
9
+ # Unique identifier for the brand
10
+ sig { returns(T.nilable(String)) }
11
+ attr_reader :id
12
+
13
+ sig { params(id: String).void }
14
+ attr_writer :id
15
+
16
+ # Business details and address information
17
+ sig { returns(T.nilable(Sentdm::BrandBusiness)) }
18
+ attr_reader :business
19
+
20
+ sig { params(business: T.nilable(Sentdm::BrandBusiness::OrHash)).void }
21
+ attr_writer :business
22
+
23
+ # Compliance and TCR-related information
24
+ sig { returns(T.nilable(Sentdm::BrandCompliance)) }
25
+ attr_reader :compliance
26
+
27
+ sig do
28
+ params(compliance: T.nilable(Sentdm::BrandCompliance::OrHash)).void
29
+ end
30
+ attr_writer :compliance
31
+
32
+ # Contact information for the brand
33
+ sig { returns(T.nilable(Sentdm::BrandContact)) }
34
+ attr_reader :contact
35
+
36
+ sig { params(contact: T.nilable(Sentdm::BrandContact::OrHash)).void }
37
+ attr_writer :contact
38
+
39
+ # When the brand was created
40
+ sig { returns(T.nilable(Time)) }
41
+ attr_reader :created_at
42
+
43
+ sig { params(created_at: Time).void }
44
+ attr_writer :created_at
45
+
46
+ # Deprecated and scheduled for removal. Identifies the Campaign Service Provider
47
+ # that registered the brand, which is Sent, so the value is the same for every
48
+ # brand and every account. Nothing on your side can act on it and there is no
49
+ # replacement. Stop reading it.
50
+ sig { returns(T.nilable(String)) }
51
+ attr_accessor :csp_id
52
+
53
+ sig { returns(T.nilable(Sentdm::TcrBrandIdentityStatus::TaggedSymbol)) }
54
+ attr_accessor :identity_status
55
+
56
+ # Whether this brand is inherited from the parent organization
57
+ sig { returns(T.nilable(T::Boolean)) }
58
+ attr_reader :is_inherited
59
+
60
+ sig { params(is_inherited: T::Boolean).void }
61
+ attr_writer :is_inherited
62
+
63
+ sig { returns(T.nilable(Sentdm::TcrBrandStatus::TaggedSymbol)) }
64
+ attr_accessor :status
65
+
66
+ # When the brand was submitted to TCR
67
+ sig { returns(T.nilable(Time)) }
68
+ attr_accessor :submitted_at
69
+
70
+ # Whether this brand has been submitted to TCR
71
+ sig { returns(T.nilable(T::Boolean)) }
72
+ attr_reader :submitted_to_tcr
73
+
74
+ sig { params(submitted_to_tcr: T::Boolean).void }
75
+ attr_writer :submitted_to_tcr
76
+
77
+ # TCR brand ID (populated after TCR submission)
78
+ sig { returns(T.nilable(String)) }
79
+ attr_accessor :tcr_brand_id
80
+
81
+ # Universal EIN from TCR
82
+ sig { returns(T.nilable(String)) }
83
+ attr_accessor :universal_ein
84
+
85
+ # When the brand was last updated
86
+ sig { returns(T.nilable(Time)) }
87
+ attr_accessor :updated_at
88
+
89
+ # Brand response with nested contact, business, and compliance sections — mirrors
90
+ # the request structure.
91
+ sig do
92
+ params(
93
+ id: String,
94
+ business: T.nilable(Sentdm::BrandBusiness::OrHash),
95
+ compliance: T.nilable(Sentdm::BrandCompliance::OrHash),
96
+ contact: T.nilable(Sentdm::BrandContact::OrHash),
97
+ created_at: Time,
98
+ csp_id: T.nilable(String),
99
+ identity_status: T.nilable(Sentdm::TcrBrandIdentityStatus::OrSymbol),
100
+ is_inherited: T::Boolean,
101
+ status: T.nilable(Sentdm::TcrBrandStatus::OrSymbol),
102
+ submitted_at: T.nilable(Time),
103
+ submitted_to_tcr: T::Boolean,
104
+ tcr_brand_id: T.nilable(String),
105
+ universal_ein: T.nilable(String),
106
+ updated_at: T.nilable(Time)
107
+ ).returns(T.attached_class)
108
+ end
109
+ def self.new(
110
+ # Unique identifier for the brand
111
+ id: nil,
112
+ # Business details and address information
113
+ business: nil,
114
+ # Compliance and TCR-related information
115
+ compliance: nil,
116
+ # Contact information for the brand
117
+ contact: nil,
118
+ # When the brand was created
119
+ created_at: nil,
120
+ # Deprecated and scheduled for removal. Identifies the Campaign Service Provider
121
+ # that registered the brand, which is Sent, so the value is the same for every
122
+ # brand and every account. Nothing on your side can act on it and there is no
123
+ # replacement. Stop reading it.
124
+ csp_id: nil,
125
+ identity_status: nil,
126
+ # Whether this brand is inherited from the parent organization
127
+ is_inherited: nil,
128
+ status: nil,
129
+ # When the brand was submitted to TCR
130
+ submitted_at: nil,
131
+ # Whether this brand has been submitted to TCR
132
+ submitted_to_tcr: nil,
133
+ # TCR brand ID (populated after TCR submission)
134
+ tcr_brand_id: nil,
135
+ # Universal EIN from TCR
136
+ universal_ein: nil,
137
+ # When the brand was last updated
138
+ updated_at: nil
139
+ )
140
+ end
141
+
142
+ sig do
143
+ override.returns(
144
+ {
145
+ id: String,
146
+ business: T.nilable(Sentdm::BrandBusiness),
147
+ compliance: T.nilable(Sentdm::BrandCompliance),
148
+ contact: T.nilable(Sentdm::BrandContact),
149
+ created_at: Time,
150
+ csp_id: T.nilable(String),
151
+ identity_status:
152
+ T.nilable(Sentdm::TcrBrandIdentityStatus::TaggedSymbol),
153
+ is_inherited: T::Boolean,
154
+ status: T.nilable(Sentdm::TcrBrandStatus::TaggedSymbol),
155
+ submitted_at: T.nilable(Time),
156
+ submitted_to_tcr: T::Boolean,
157
+ tcr_brand_id: T.nilable(String),
158
+ universal_ein: T.nilable(String),
159
+ updated_at: T.nilable(Time)
160
+ }
161
+ )
162
+ end
163
+ def to_hash
164
+ end
165
+ end
166
+ end
167
+ end
@@ -0,0 +1,37 @@
1
+ # typed: strong
2
+
3
+ module Sentdm
4
+ module Models
5
+ class CancelledMessage < Sentdm::Models::Message
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(Sentdm::CancelledMessage, Sentdm::Internal::AnyHash)
9
+ end
10
+
11
+ # The send time that was called off, in UTC — the scheduled_at the message was
12
+ # being held for, whether you set it or the recipient's quiet hours moved it
13
+ # there. Omitted only for a held message that carried no recorded instant.
14
+ sig { returns(T.nilable(Time)) }
15
+ attr_accessor :scheduled_at
16
+
17
+ # Message response for v3 API — same shape as v2 with snake_case JSON conventions.
18
+ #
19
+ # The shape of a message that was sent immediately: it never has a scheduled_at
20
+ # key. A message that is or was held for a later instant is a
21
+ # ScheduledMessageResponse, and the endpoint decides which of the two to answer
22
+ # with. From always returns this type.
23
+ sig { params(scheduled_at: T.nilable(Time)).returns(T.attached_class) }
24
+ def self.new(
25
+ # The send time that was called off, in UTC — the scheduled_at the message was
26
+ # being held for, whether you set it or the recipient's quiet hours moved it
27
+ # there. Omitted only for a held message that carried no recorded instant.
28
+ scheduled_at: nil
29
+ )
30
+ end
31
+
32
+ sig { override.returns({ scheduled_at: T.nilable(Time) }) }
33
+ def to_hash
34
+ end
35
+ end
36
+ end
37
+ end
@@ -53,12 +53,12 @@ module Sentdm
53
53
  # fetched; empty says the market has been given none. The parent object is null
54
54
  # only when the market registers with nobody and compliance was not computed —
55
55
  # nothing to show at all.
56
- sig { returns(T.nilable(Sentdm::ChannelEventPayload::Compliance)) }
56
+ sig { returns(T.nilable(Sentdm::Channels::SuppliedCompliance)) }
57
57
  attr_reader :compliance
58
58
 
59
59
  sig do
60
60
  params(
61
- compliance: T.nilable(Sentdm::ChannelEventPayload::Compliance::OrHash)
61
+ compliance: T.nilable(Sentdm::Channels::SuppliedCompliance::OrHash)
62
62
  ).void
63
63
  end
64
64
  attr_writer :compliance
@@ -144,8 +144,7 @@ module Sentdm
144
144
  country: String,
145
145
  account_id: String,
146
146
  channel: String,
147
- compliance:
148
- T.nilable(Sentdm::ChannelEventPayload::Compliance::OrHash),
147
+ compliance: T.nilable(Sentdm::Channels::SuppliedCompliance::OrHash),
149
148
  number_type: T.nilable(String),
150
149
  reason: T.nilable(String),
151
150
  reason_code: T.nilable(String),
@@ -236,7 +235,7 @@ module Sentdm
236
235
  country: String,
237
236
  account_id: String,
238
237
  channel: String,
239
- compliance: T.nilable(Sentdm::ChannelEventPayload::Compliance),
238
+ compliance: T.nilable(Sentdm::Channels::SuppliedCompliance),
240
239
  number_type: T.nilable(String),
241
240
  reason: T.nilable(String),
242
241
  reason_code: T.nilable(String),
@@ -248,205 +247,6 @@ module Sentdm
248
247
  end
249
248
  def to_hash
250
249
  end
251
-
252
- class Compliance < Sentdm::Internal::Type::BaseModel
253
- OrHash =
254
- T.type_alias do
255
- T.any(
256
- Sentdm::ChannelEventPayload::Compliance,
257
- Sentdm::Internal::AnyHash
258
- )
259
- end
260
-
261
- # The identity this market registers under, with inherit saying whose it is.
262
- #
263
- # Reported here rather than on the profile because it belongs to the registration
264
- # this market files, and only one market files one. It was a top-level block for a
265
- # while, which put a per-registration value beside a list of markets and left a
266
- # caller to work out which market it belonged to.
267
- #
268
- # Absent for a market that registers with nobody — such a market asks for no
269
- # identity, so there is none to report. Absent and null mean different things:
270
- # absent says this market does not ask, null would say it asks and nothing was
271
- # supplied.
272
- #
273
- # Untyped, like the request side, because its members are declared by the market's
274
- # own schema rather than by a C# class. A typed pair here would be a second
275
- # definition of what a market wants, free to drift from the one that validates.
276
- sig { returns(T.nilable(T::Hash[Symbol, T.anything])) }
277
- attr_accessor :brand
278
-
279
- # The programme this market registers, with inherit saying whose it is.
280
- #
281
- # One, not a list. TcrCampaigns permits several and an account built on the admin
282
- # side may hold them, but this surface offers one — which is what lets the
283
- # market's PATCH be an upsert rather than a collection with an addressable create
284
- # behind it. An account holding several is reported as its first and refused on
285
- # write, rather than half-edited.
286
- #
287
- # Carries no id. Nothing addresses a campaign, and an undeclared key would be
288
- # refused if the caller sent this object back — which it is meant to be able to
289
- # do.
290
- sig { returns(T.nilable(T::Hash[Symbol, T.anything])) }
291
- attr_accessor :campaign
292
-
293
- # What has been supplied for this market.
294
- #
295
- # Files, not values — the declared halves above carry the values. A document
296
- # cannot be a JSON value, so it is sent as multipart on the channel call and
297
- # reported here as a reference.
298
- #
299
- # Absent on a list read, which fetches identity but does not compute compliance
300
- # documents per market. Absent and empty mean different things: absent says the
301
- # documents were not fetched; empty says the market has been given none.
302
- sig do
303
- returns(
304
- T.nilable(
305
- T::Array[Sentdm::ChannelEventPayload::Compliance::Document]
306
- )
307
- )
308
- end
309
- attr_accessor :documents
310
-
311
- # What a market has been given: the identity it registers under, its programme,
312
- # and any documents attached.
313
- #
314
- # What it does not carry is what the market asks for. That is the subject of GET
315
- # /v3/compliance/requirements, and it is the same answer for every caller — a
316
- # description of what a compliance regime wants, not a record of one customer's
317
- # progress through it. It was reported here as well for a while, which put the
318
- # same array in six response shapes and left a caller deciding which of two
319
- # sources to believe.
320
- #
321
- # Present on a list read for markets that register (carrying brand and campaign),
322
- # but with documents absent — documents are not fetched for a list, because a
323
- # catalog lookup and a document read per market would multiply across a page.
324
- # Absent documents is distinct from an empty list: absent says they were not
325
- # fetched; empty says the market has been given none. The parent object is null
326
- # only when the market registers with nobody and compliance was not computed —
327
- # nothing to show at all.
328
- sig do
329
- params(
330
- brand: T.nilable(T::Hash[Symbol, T.anything]),
331
- campaign: T.nilable(T::Hash[Symbol, T.anything]),
332
- documents:
333
- T.nilable(
334
- T::Array[
335
- Sentdm::ChannelEventPayload::Compliance::Document::OrHash
336
- ]
337
- )
338
- ).returns(T.attached_class)
339
- end
340
- def self.new(
341
- # The identity this market registers under, with inherit saying whose it is.
342
- #
343
- # Reported here rather than on the profile because it belongs to the registration
344
- # this market files, and only one market files one. It was a top-level block for a
345
- # while, which put a per-registration value beside a list of markets and left a
346
- # caller to work out which market it belonged to.
347
- #
348
- # Absent for a market that registers with nobody — such a market asks for no
349
- # identity, so there is none to report. Absent and null mean different things:
350
- # absent says this market does not ask, null would say it asks and nothing was
351
- # supplied.
352
- #
353
- # Untyped, like the request side, because its members are declared by the market's
354
- # own schema rather than by a C# class. A typed pair here would be a second
355
- # definition of what a market wants, free to drift from the one that validates.
356
- brand: nil,
357
- # The programme this market registers, with inherit saying whose it is.
358
- #
359
- # One, not a list. TcrCampaigns permits several and an account built on the admin
360
- # side may hold them, but this surface offers one — which is what lets the
361
- # market's PATCH be an upsert rather than a collection with an addressable create
362
- # behind it. An account holding several is reported as its first and refused on
363
- # write, rather than half-edited.
364
- #
365
- # Carries no id. Nothing addresses a campaign, and an undeclared key would be
366
- # refused if the caller sent this object back — which it is meant to be able to
367
- # do.
368
- campaign: nil,
369
- # What has been supplied for this market.
370
- #
371
- # Files, not values — the declared halves above carry the values. A document
372
- # cannot be a JSON value, so it is sent as multipart on the channel call and
373
- # reported here as a reference.
374
- #
375
- # Absent on a list read, which fetches identity but does not compute compliance
376
- # documents per market. Absent and empty mean different things: absent says the
377
- # documents were not fetched; empty says the market has been given none.
378
- documents: nil
379
- )
380
- end
381
-
382
- sig do
383
- override.returns(
384
- {
385
- brand: T.nilable(T::Hash[Symbol, T.anything]),
386
- campaign: T.nilable(T::Hash[Symbol, T.anything]),
387
- documents:
388
- T.nilable(
389
- T::Array[Sentdm::ChannelEventPayload::Compliance::Document]
390
- )
391
- }
392
- )
393
- end
394
- def to_hash
395
- end
396
-
397
- class Document < Sentdm::Internal::Type::BaseModel
398
- OrHash =
399
- T.type_alias do
400
- T.any(
401
- Sentdm::ChannelEventPayload::Compliance::Document,
402
- Sentdm::Internal::AnyHash
403
- )
404
- end
405
-
406
- # Identifier of the upload, for fetching it back through the documents endpoints.
407
- sig { returns(T.nilable(String)) }
408
- attr_accessor :document_id
409
-
410
- sig { returns(T.nilable(String)) }
411
- attr_accessor :file_name
412
-
413
- # The catalog's name for this document, matching the requirement it satisfies.
414
- sig { returns(T.nilable(String)) }
415
- attr_reader :key
416
-
417
- sig { params(key: String).void }
418
- attr_writer :key
419
-
420
- # A document a market asked for and has been given.
421
- sig do
422
- params(
423
- document_id: T.nilable(String),
424
- file_name: T.nilable(String),
425
- key: String
426
- ).returns(T.attached_class)
427
- end
428
- def self.new(
429
- # Identifier of the upload, for fetching it back through the documents endpoints.
430
- document_id: nil,
431
- file_name: nil,
432
- # The catalog's name for this document, matching the requirement it satisfies.
433
- key: nil
434
- )
435
- end
436
-
437
- sig do
438
- override.returns(
439
- {
440
- document_id: T.nilable(String),
441
- file_name: T.nilable(String),
442
- key: String
443
- }
444
- )
445
- end
446
- def to_hash
447
- end
448
- end
449
- end
450
250
  end
451
251
  end
452
252
  end
@@ -0,0 +1,38 @@
1
+ # typed: strong
2
+
3
+ module Sentdm
4
+ module Models
5
+ class ChannelListParams < Sentdm::Internal::Type::BaseModel
6
+ extend Sentdm::Internal::Type::RequestParameters::Converter
7
+ include Sentdm::Internal::Type::RequestParameters
8
+
9
+ OrHash =
10
+ T.type_alias do
11
+ T.any(Sentdm::ChannelListParams, Sentdm::Internal::AnyHash)
12
+ end
13
+
14
+ sig { returns(T.nilable(String)) }
15
+ attr_reader :x_profile_id
16
+
17
+ sig { params(x_profile_id: String).void }
18
+ attr_writer :x_profile_id
19
+
20
+ sig do
21
+ params(
22
+ x_profile_id: String,
23
+ request_options: Sentdm::RequestOptions::OrHash
24
+ ).returns(T.attached_class)
25
+ end
26
+ def self.new(x_profile_id: nil, request_options: {})
27
+ end
28
+
29
+ sig do
30
+ override.returns(
31
+ { x_profile_id: String, request_options: Sentdm::RequestOptions }
32
+ )
33
+ end
34
+ def to_hash
35
+ end
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,56 @@
1
+ # typed: strong
2
+
3
+ module Sentdm
4
+ module Models
5
+ class ChannelScore < Sentdm::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias { T.any(Sentdm::ChannelScore, Sentdm::Internal::AnyHash) }
8
+
9
+ sig { returns(T.nilable(String)) }
10
+ attr_reader :channel
11
+
12
+ sig { params(channel: String).void }
13
+ attr_writer :channel
14
+
15
+ # Percentage (0-100) of messages on this channel that ended in FAILED.
16
+ sig { returns(T.nilable(Integer)) }
17
+ attr_reader :fail_score
18
+
19
+ sig { params(fail_score: Integer).void }
20
+ attr_writer :fail_score
21
+
22
+ # Percentage (0-100) of messages on this channel that reached a successful
23
+ # terminal state: SENT/DELIVERED/READ for outbound, RECEIVED for inbound.
24
+ sig { returns(T.nilable(Integer)) }
25
+ attr_reader :success_score
26
+
27
+ sig { params(success_score: Integer).void }
28
+ attr_writer :success_score
29
+
30
+ sig do
31
+ params(
32
+ channel: String,
33
+ fail_score: Integer,
34
+ success_score: Integer
35
+ ).returns(T.attached_class)
36
+ end
37
+ def self.new(
38
+ channel: nil,
39
+ # Percentage (0-100) of messages on this channel that ended in FAILED.
40
+ fail_score: nil,
41
+ # Percentage (0-100) of messages on this channel that reached a successful
42
+ # terminal state: SENT/DELIVERED/READ for outbound, RECEIVED for inbound.
43
+ success_score: nil
44
+ )
45
+ end
46
+
47
+ sig do
48
+ override.returns(
49
+ { channel: String, fail_score: Integer, success_score: Integer }
50
+ )
51
+ end
52
+ def to_hash
53
+ end
54
+ end
55
+ end
56
+ end
@@ -0,0 +1,76 @@
1
+ # typed: strong
2
+
3
+ module Sentdm
4
+ module Models
5
+ module Channels
6
+ class APIResponseOfListOfSMSMarket < Sentdm::Internal::Type::BaseModel
7
+ OrHash =
8
+ T.type_alias do
9
+ T.any(
10
+ Sentdm::Channels::APIResponseOfListOfSMSMarket,
11
+ Sentdm::Internal::AnyHash
12
+ )
13
+ end
14
+
15
+ # The response data (null if error)
16
+ sig { returns(T.nilable(T::Array[Sentdm::Channels::SMSMarket])) }
17
+ attr_accessor :data
18
+
19
+ # Error information
20
+ sig { returns(T.nilable(Sentdm::ErrorDetail)) }
21
+ attr_reader :error
22
+
23
+ sig { params(error: T.nilable(Sentdm::ErrorDetail::OrHash)).void }
24
+ attr_writer :error
25
+
26
+ # Request and response metadata
27
+ sig { returns(T.nilable(Sentdm::APIMeta)) }
28
+ attr_reader :meta
29
+
30
+ sig { params(meta: Sentdm::APIMeta::OrHash).void }
31
+ attr_writer :meta
32
+
33
+ # Indicates whether the request was successful
34
+ sig { returns(T.nilable(T::Boolean)) }
35
+ attr_reader :success
36
+
37
+ sig { params(success: T::Boolean).void }
38
+ attr_writer :success
39
+
40
+ # Standard API response envelope for all v3 endpoints
41
+ sig do
42
+ params(
43
+ data: T.nilable(T::Array[Sentdm::Channels::SMSMarket::OrHash]),
44
+ error: T.nilable(Sentdm::ErrorDetail::OrHash),
45
+ meta: Sentdm::APIMeta::OrHash,
46
+ success: T::Boolean
47
+ ).returns(T.attached_class)
48
+ end
49
+ def self.new(
50
+ # The response data (null if error)
51
+ data: nil,
52
+ # Error information
53
+ error: nil,
54
+ # Request and response metadata
55
+ meta: nil,
56
+ # Indicates whether the request was successful
57
+ success: nil
58
+ )
59
+ end
60
+
61
+ sig do
62
+ override.returns(
63
+ {
64
+ data: T.nilable(T::Array[Sentdm::Channels::SMSMarket]),
65
+ error: T.nilable(Sentdm::ErrorDetail),
66
+ meta: Sentdm::APIMeta,
67
+ success: T::Boolean
68
+ }
69
+ )
70
+ end
71
+ def to_hash
72
+ end
73
+ end
74
+ end
75
+ end
76
+ end