sentdm 0.45.0 → 0.47.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 (483) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +22 -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 +148 -0
  54. data/lib/sentdm/models/channels/sms_number.rb +52 -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_campaign.rb +10 -0
  59. data/lib/sentdm/models/channels/supplied_compliance.rb +115 -0
  60. data/lib/sentdm/models/channels/supplied_document.rb +35 -0
  61. data/lib/sentdm/models/channels/whatsapp_channel.rb +109 -0
  62. data/lib/sentdm/models/channels/whatsapp_create_params.rb +65 -0
  63. data/lib/sentdm/models/channels_state.rb +89 -0
  64. data/lib/sentdm/models/compliance_attachment_template.rb +36 -0
  65. data/lib/sentdm/models/compliance_requirement.rb +112 -0
  66. data/lib/sentdm/models/compliance_requirements.rb +98 -0
  67. data/lib/sentdm/models/compliance_retrieve_requirements_params.rb +52 -0
  68. data/lib/sentdm/models/compliance_setup_step.rb +78 -0
  69. data/lib/sentdm/models/contact_message_summary.rb +3 -34
  70. data/lib/sentdm/models/contacts_list.rb +26 -0
  71. data/lib/sentdm/models/conversation_messages_list.rb +3 -430
  72. data/lib/sentdm/models/entity_type.rb +18 -0
  73. data/lib/sentdm/models/inbound_media.rb +53 -0
  74. data/lib/sentdm/models/inbound_message_event_payload.rb +3 -53
  75. data/lib/sentdm/models/link_event.rb +79 -0
  76. data/lib/sentdm/models/link_event_payload.rb +211 -0
  77. data/lib/sentdm/models/message.rb +168 -0
  78. data/lib/sentdm/models/message_activities.rb +34 -0
  79. data/lib/sentdm/models/message_activity.rb +105 -0
  80. data/lib/sentdm/models/message_body.rb +79 -0
  81. data/lib/sentdm/models/message_button.rb +33 -0
  82. data/lib/sentdm/models/message_cancel_params.rb +32 -0
  83. data/lib/sentdm/models/message_channel_options.rb +43 -0
  84. data/lib/sentdm/models/message_header_media.rb +31 -0
  85. data/lib/sentdm/models/message_media.rb +74 -0
  86. data/lib/sentdm/models/message_recipient.rb +46 -0
  87. data/lib/sentdm/models/message_send_params.rb +6 -90
  88. data/lib/sentdm/models/message_send_response.rb +3 -95
  89. data/lib/sentdm/models/message_send_result.rb +55 -0
  90. data/lib/sentdm/models/message_status_event.rb +54 -0
  91. data/lib/sentdm/models/mms_market.rb +48 -0
  92. data/lib/sentdm/models/number_lookup_result.rb +63 -0
  93. data/lib/sentdm/models/pagination_cursors.rb +27 -0
  94. data/lib/sentdm/models/pagination_meta.rb +3 -27
  95. data/lib/sentdm/models/profile_completion_accepted.rb +20 -0
  96. data/lib/sentdm/models/profile_completion_result.rb +31 -0
  97. data/lib/sentdm/models/profile_detail.rb +6 -408
  98. data/lib/sentdm/models/profiles/brand_campaign.rb +14 -16
  99. data/lib/sentdm/models/profiles_list.rb +26 -0
  100. data/lib/sentdm/models/sender_profile.rb +138 -0
  101. data/lib/sentdm/models/sender_profile_billing.rb +21 -0
  102. data/lib/sentdm/models/sender_profile_billing_request.rb +33 -0
  103. data/lib/sentdm/models/sender_profile_channels.rb +90 -0
  104. data/lib/sentdm/models/sender_profile_create_params.rb +116 -0
  105. data/lib/sentdm/models/sender_profile_delete_params.rb +20 -0
  106. data/lib/sentdm/models/sender_profile_list_params.rb +30 -0
  107. data/lib/sentdm/models/sender_profile_rcs.rb +209 -0
  108. data/lib/sentdm/models/sender_profile_retrieve_params.rb +20 -0
  109. data/lib/sentdm/models/sender_profile_sms.rb +106 -0
  110. data/lib/sentdm/models/sender_profile_update_params.rb +71 -0
  111. data/lib/sentdm/models/sender_profile_whatsapp.rb +61 -0
  112. data/lib/sentdm/models/sender_profiles_list.rb +26 -0
  113. data/lib/sentdm/models/tcr_brand_identity_status.rb +17 -0
  114. data/lib/sentdm/models/tcr_brand_status.rb +16 -0
  115. data/lib/sentdm/models/tcr_campaign_status.rb +16 -0
  116. data/lib/sentdm/models/template_body.rb +3 -70
  117. data/lib/sentdm/models/template_header.rb +3 -37
  118. data/lib/sentdm/models/template_header_location.rb +38 -0
  119. data/lib/sentdm/models/template_media_item.rb +34 -0
  120. data/lib/sentdm/models/template_mms_body_content.rb +49 -0
  121. data/lib/sentdm/models/template_ref.rb +51 -0
  122. data/lib/sentdm/models/template_variable.rb +3 -64
  123. data/lib/sentdm/models/template_variable_props.rb +65 -0
  124. data/lib/sentdm/models/templates_list.rb +26 -0
  125. data/lib/sentdm/models/users_list.rb +26 -0
  126. data/lib/sentdm/models/voice/call.rb +7 -57
  127. data/lib/sentdm/models/voice/call_leg.rb +58 -0
  128. data/lib/sentdm/models/webhook_create_params.rb +3 -25
  129. data/lib/sentdm/models/webhook_delivery.rb +160 -0
  130. data/lib/sentdm/models/webhook_event_types_list.rb +26 -0
  131. data/lib/sentdm/models/webhook_events_list.rb +26 -0
  132. data/lib/sentdm/models/webhook_response.rb +3 -28
  133. data/lib/sentdm/models/webhook_secret.rb +15 -0
  134. data/lib/sentdm/models/webhook_sender_profile.rb +29 -0
  135. data/lib/sentdm/models/webhook_sender_profile_config.rb +27 -0
  136. data/lib/sentdm/models/webhook_test.rb +21 -0
  137. data/lib/sentdm/models/webhook_update_params.rb +3 -25
  138. data/lib/sentdm/models/webhooks_list.rb +26 -0
  139. data/lib/sentdm/models.rb +188 -0
  140. data/lib/sentdm/resources/channels/rcs.rb +177 -0
  141. data/lib/sentdm/resources/channels/sms.rb +420 -0
  142. data/lib/sentdm/resources/channels/whatsapp.rb +106 -0
  143. data/lib/sentdm/resources/channels.rb +162 -0
  144. data/lib/sentdm/resources/compliance.rb +127 -0
  145. data/lib/sentdm/resources/conversations.rb +4 -4
  146. data/lib/sentdm/resources/me.rb +2 -2
  147. data/lib/sentdm/resources/messages.rb +71 -6
  148. data/lib/sentdm/resources/numbers.rb +2 -2
  149. data/lib/sentdm/resources/profiles/campaigns.rb +4 -1
  150. data/lib/sentdm/resources/profiles.rb +4 -4
  151. data/lib/sentdm/resources/sender_profiles.rb +465 -0
  152. data/lib/sentdm/resources/users.rb +2 -2
  153. data/lib/sentdm/resources/voice/calls/participants.rb +5 -5
  154. data/lib/sentdm/resources/webhooks.rb +10 -10
  155. data/lib/sentdm/version.rb +1 -1
  156. data/lib/sentdm.rb +121 -11
  157. data/rbi/sentdm/client.rbi +64 -0
  158. data/rbi/sentdm/internal/sender_profiles_page.rbi +122 -0
  159. data/rbi/sentdm/models/account.rbi +242 -0
  160. data/rbi/sentdm/models/account_channels.rbi +66 -0
  161. data/rbi/sentdm/models/account_profile.rbi +116 -0
  162. data/rbi/sentdm/models/account_rcs_channel.rbi +45 -0
  163. data/rbi/sentdm/models/account_sms_channel.rbi +45 -0
  164. data/rbi/sentdm/models/account_whatsapp_channel.rbi +58 -0
  165. data/rbi/sentdm/models/api_response_of_account.rbi +78 -0
  166. data/rbi/sentdm/models/{webhook_rotate_secret_response.rbi → api_response_of_cancelled_message.rbi} +6 -41
  167. data/rbi/sentdm/models/api_response_of_channels_state.rbi +78 -0
  168. data/rbi/sentdm/models/api_response_of_compliance_requirements.rbi +81 -0
  169. data/rbi/sentdm/models/api_response_of_contacts_list.rbi +74 -0
  170. data/rbi/sentdm/models/api_response_of_message.rbi +84 -0
  171. data/rbi/sentdm/models/api_response_of_message_activities.rbi +77 -0
  172. data/rbi/sentdm/models/{webhook_test_response.rbi → api_response_of_number_lookup_result.rbi} +9 -43
  173. data/rbi/sentdm/models/api_response_of_profile_completion_accepted.rbi +83 -0
  174. data/rbi/sentdm/models/{profile_complete_response.rbi → api_response_of_profile_completion_result.rbi} +6 -52
  175. data/rbi/sentdm/models/api_response_of_profiles_list.rbi +74 -0
  176. data/rbi/sentdm/models/api_response_of_sender_profile.rbi +90 -0
  177. data/rbi/sentdm/models/api_response_of_sender_profiles_list.rbi +77 -0
  178. data/rbi/sentdm/models/api_response_of_templates_list.rbi +74 -0
  179. data/rbi/sentdm/models/api_response_of_users_list.rbi +74 -0
  180. data/rbi/sentdm/models/api_response_of_webhook_event_types_list.rbi +79 -0
  181. data/rbi/sentdm/models/api_response_of_webhook_events_list.rbi +77 -0
  182. data/rbi/sentdm/models/api_response_of_webhook_secret.rbi +74 -0
  183. data/rbi/sentdm/models/api_response_of_webhook_test.rbi +74 -0
  184. data/rbi/sentdm/models/api_response_of_webhooks_list.rbi +74 -0
  185. data/rbi/sentdm/models/billing_contact.rbi +49 -0
  186. data/rbi/sentdm/models/brand_business.rbi +115 -0
  187. data/rbi/sentdm/models/brand_business_info.rbi +3 -49
  188. data/rbi/sentdm/models/brand_compliance.rbi +108 -0
  189. data/rbi/sentdm/models/brand_contact.rbi +78 -0
  190. data/rbi/sentdm/models/brand_with_kyc.rbi +167 -0
  191. data/rbi/sentdm/models/cancelled_message.rbi +37 -0
  192. data/rbi/sentdm/models/channel_event_payload.rbi +4 -204
  193. data/rbi/sentdm/models/channel_list_params.rbi +38 -0
  194. data/rbi/sentdm/models/channel_score.rbi +56 -0
  195. data/rbi/sentdm/models/channels/api_response_of_list_of_sms_market.rbi +76 -0
  196. data/rbi/sentdm/models/channels/api_response_of_rcs_agent.rbi +103 -0
  197. data/rbi/sentdm/models/channels/api_response_of_sms_market.rbi +93 -0
  198. data/rbi/sentdm/models/channels/api_response_of_whatsapp_channel.rbi +85 -0
  199. data/rbi/sentdm/models/channels/market_compliance.rbi +770 -0
  200. data/rbi/sentdm/models/channels/rc_create_params.rbi +397 -0
  201. data/rbi/sentdm/models/channels/rcs_address.rbi +62 -0
  202. data/rbi/sentdm/models/channels/rcs_agent.rbi +320 -0
  203. data/rbi/sentdm/models/channels/sms_create_params.rbi +291 -0
  204. data/rbi/sentdm/models/channels/sms_list_params.rbi +40 -0
  205. data/rbi/sentdm/models/channels/sms_market.rbi +235 -0
  206. data/rbi/sentdm/models/channels/sms_number.rbi +74 -0
  207. data/rbi/sentdm/models/channels/sms_number_request.rbi +48 -0
  208. data/rbi/sentdm/models/channels/sms_retrieve_params.rbi +56 -0
  209. data/rbi/sentdm/models/channels/sms_update_params.rbi +93 -0
  210. data/rbi/sentdm/models/channels/supplied_campaign.rbi +13 -0
  211. data/rbi/sentdm/models/channels/supplied_compliance.rbi +180 -0
  212. data/rbi/sentdm/models/channels/supplied_document.rbi +57 -0
  213. data/rbi/sentdm/models/channels/whatsapp_channel.rbi +172 -0
  214. data/rbi/sentdm/models/channels/whatsapp_create_params.rbi +104 -0
  215. data/rbi/sentdm/models/channels_state.rbi +151 -0
  216. data/rbi/sentdm/models/compliance_attachment_template.rbi +56 -0
  217. data/rbi/sentdm/models/compliance_requirement.rbi +149 -0
  218. data/rbi/sentdm/models/compliance_requirements.rbi +165 -0
  219. data/rbi/sentdm/models/compliance_retrieve_requirements_params.rbi +79 -0
  220. data/rbi/sentdm/models/compliance_setup_step.rbi +115 -0
  221. data/rbi/sentdm/models/contact_message_summary.rbi +4 -69
  222. data/rbi/sentdm/models/contacts_list.rbi +50 -0
  223. data/rbi/sentdm/models/conversation_messages_list.rbi +4 -669
  224. data/rbi/sentdm/models/entity_type.rbi +23 -0
  225. data/rbi/sentdm/models/inbound_media.rbi +76 -0
  226. data/rbi/sentdm/models/inbound_message_event_payload.rbi +3 -85
  227. data/rbi/sentdm/models/link_event.rbi +128 -0
  228. data/rbi/sentdm/models/link_event_payload.rbi +279 -0
  229. data/rbi/sentdm/models/message.rbi +214 -0
  230. data/rbi/sentdm/models/message_activities.rbi +63 -0
  231. data/rbi/sentdm/models/message_activity.rbi +145 -0
  232. data/rbi/sentdm/models/message_body.rbi +104 -0
  233. data/rbi/sentdm/models/message_button.rbi +52 -0
  234. data/rbi/sentdm/models/message_cancel_params.rbi +59 -0
  235. data/rbi/sentdm/models/message_channel_options.rbi +65 -0
  236. data/rbi/sentdm/models/message_header_media.rbi +44 -0
  237. data/rbi/sentdm/models/message_media.rbi +95 -0
  238. data/rbi/sentdm/models/message_recipient.rbi +70 -0
  239. data/rbi/sentdm/models/message_send_params.rbi +7 -155
  240. data/rbi/sentdm/models/message_send_response.rbi +4 -163
  241. data/rbi/sentdm/models/message_send_result.rbi +85 -0
  242. data/rbi/sentdm/models/message_status_event.rbi +70 -0
  243. data/rbi/sentdm/models/mms_market.rbi +66 -0
  244. data/rbi/sentdm/models/number_lookup_result.rbi +89 -0
  245. data/rbi/sentdm/models/pagination_cursors.rbi +42 -0
  246. data/rbi/sentdm/models/pagination_meta.rbi +4 -43
  247. data/rbi/sentdm/models/profile_completion_accepted.rbi +33 -0
  248. data/rbi/sentdm/models/profile_completion_result.rbi +43 -0
  249. data/rbi/sentdm/models/profile_detail.rbi +8 -621
  250. data/rbi/sentdm/models/profiles/brand_campaign.rbi +18 -45
  251. data/rbi/sentdm/models/profiles_list.rbi +50 -0
  252. data/rbi/sentdm/models/sender_profile.rbi +204 -0
  253. data/rbi/sentdm/models/sender_profile_billing.rbi +34 -0
  254. data/rbi/sentdm/models/sender_profile_billing_request.rbi +46 -0
  255. data/rbi/sentdm/models/sender_profile_channels.rbi +163 -0
  256. data/rbi/sentdm/models/sender_profile_create_params.rbi +190 -0
  257. data/rbi/sentdm/models/sender_profile_delete_params.rbi +35 -0
  258. data/rbi/sentdm/models/sender_profile_list_params.rbi +57 -0
  259. data/rbi/sentdm/models/sender_profile_rcs.rbi +211 -0
  260. data/rbi/sentdm/models/sender_profile_retrieve_params.rbi +35 -0
  261. data/rbi/sentdm/models/sender_profile_sms.rbi +156 -0
  262. data/rbi/sentdm/models/sender_profile_update_params.rbi +96 -0
  263. data/rbi/sentdm/models/sender_profile_whatsapp.rbi +83 -0
  264. data/rbi/sentdm/models/sender_profiles_list.rbi +54 -0
  265. data/rbi/sentdm/models/tcr_brand_identity_status.rbi +27 -0
  266. data/rbi/sentdm/models/tcr_brand_status.rbi +20 -0
  267. data/rbi/sentdm/models/tcr_campaign_status.rbi +23 -0
  268. data/rbi/sentdm/models/template_body.rbi +6 -114
  269. data/rbi/sentdm/models/template_header.rbi +4 -53
  270. data/rbi/sentdm/models/template_header_location.rbi +47 -0
  271. data/rbi/sentdm/models/template_media_item.rbi +51 -0
  272. data/rbi/sentdm/models/template_mms_body_content.rbi +73 -0
  273. data/rbi/sentdm/models/template_ref.rbi +79 -0
  274. data/rbi/sentdm/models/template_variable.rbi +4 -80
  275. data/rbi/sentdm/models/template_variable_props.rbi +81 -0
  276. data/rbi/sentdm/models/templates_list.rbi +50 -0
  277. data/rbi/sentdm/models/users_list.rbi +50 -0
  278. data/rbi/sentdm/models/voice/call.rbi +11 -92
  279. data/rbi/sentdm/models/voice/call_leg.rbi +90 -0
  280. data/rbi/sentdm/models/webhook_create_params.rbi +4 -49
  281. data/rbi/sentdm/models/webhook_delivery.rbi +211 -0
  282. data/rbi/sentdm/models/webhook_event_types_list.rbi +54 -0
  283. data/rbi/sentdm/models/webhook_events_list.rbi +52 -0
  284. data/rbi/sentdm/models/webhook_response.rbi +4 -50
  285. data/rbi/sentdm/models/webhook_secret.rbi +24 -0
  286. data/rbi/sentdm/models/webhook_sender_profile.rbi +46 -0
  287. data/rbi/sentdm/models/webhook_sender_profile_config.rbi +44 -0
  288. data/rbi/sentdm/models/webhook_test.rbi +32 -0
  289. data/rbi/sentdm/models/webhook_update_params.rbi +4 -49
  290. data/rbi/sentdm/models/webhooks_list.rbi +50 -0
  291. data/rbi/sentdm/models.rbi +197 -0
  292. data/rbi/sentdm/resources/channels/rcs.rbi +208 -0
  293. data/rbi/sentdm/resources/channels/sms.rbi +440 -0
  294. data/rbi/sentdm/resources/channels/whatsapp.rbi +108 -0
  295. data/rbi/sentdm/resources/channels.rbi +149 -0
  296. data/rbi/sentdm/resources/compliance.rbi +121 -0
  297. data/rbi/sentdm/resources/conversations.rbi +2 -10
  298. data/rbi/sentdm/resources/me.rbi +1 -1
  299. data/rbi/sentdm/resources/messages.rbi +64 -7
  300. data/rbi/sentdm/resources/numbers.rbi +1 -1
  301. data/rbi/sentdm/resources/profiles/campaigns.rbi +4 -1
  302. data/rbi/sentdm/resources/profiles.rbi +2 -2
  303. data/rbi/sentdm/resources/sender_profiles.rbi +463 -0
  304. data/rbi/sentdm/resources/users.rbi +1 -1
  305. data/rbi/sentdm/resources/voice/calls/participants.rbi +5 -5
  306. data/rbi/sentdm/resources/webhooks.rbi +6 -12
  307. data/sig/sentdm/client.rbs +4 -0
  308. data/sig/sentdm/internal/sender_profiles_page.rbs +80 -0
  309. data/sig/sentdm/models/account.rbs +111 -0
  310. data/sig/sentdm/models/account_channels.rbs +38 -0
  311. data/sig/sentdm/models/account_profile.rbs +68 -0
  312. data/sig/sentdm/models/account_rcs_channel.rbs +17 -0
  313. data/sig/sentdm/models/account_sms_channel.rbs +17 -0
  314. data/sig/sentdm/models/account_whatsapp_channel.rbs +28 -0
  315. data/sig/sentdm/models/api_response_of_account.rbs +39 -0
  316. data/sig/sentdm/models/api_response_of_cancelled_message.rbs +39 -0
  317. data/sig/sentdm/models/api_response_of_channels_state.rbs +39 -0
  318. data/sig/sentdm/models/api_response_of_compliance_requirements.rbs +39 -0
  319. data/sig/sentdm/models/api_response_of_contacts_list.rbs +39 -0
  320. data/sig/sentdm/models/api_response_of_message.rbs +39 -0
  321. data/sig/sentdm/models/api_response_of_message_activities.rbs +39 -0
  322. data/sig/sentdm/models/api_response_of_number_lookup_result.rbs +39 -0
  323. data/sig/sentdm/models/api_response_of_profile_completion_accepted.rbs +39 -0
  324. data/sig/sentdm/models/api_response_of_profile_completion_result.rbs +39 -0
  325. data/sig/sentdm/models/api_response_of_profiles_list.rbs +39 -0
  326. data/sig/sentdm/models/api_response_of_sender_profile.rbs +39 -0
  327. data/sig/sentdm/models/api_response_of_sender_profiles_list.rbs +39 -0
  328. data/sig/sentdm/models/api_response_of_templates_list.rbs +39 -0
  329. data/sig/sentdm/models/api_response_of_users_list.rbs +39 -0
  330. data/sig/sentdm/models/api_response_of_webhook_event_types_list.rbs +39 -0
  331. data/sig/sentdm/models/api_response_of_webhook_events_list.rbs +39 -0
  332. data/sig/sentdm/models/api_response_of_webhook_secret.rbs +39 -0
  333. data/sig/sentdm/models/api_response_of_webhook_test.rbs +39 -0
  334. data/sig/sentdm/models/api_response_of_webhooks_list.rbs +39 -0
  335. data/sig/sentdm/models/billing_contact.rbs +30 -0
  336. data/sig/sentdm/models/brand_business.rbs +70 -0
  337. data/sig/sentdm/models/brand_business_info.rbs +4 -23
  338. data/sig/sentdm/models/brand_compliance.rbs +56 -0
  339. data/sig/sentdm/models/brand_contact.rbs +47 -0
  340. data/sig/sentdm/models/brand_with_kyc.rbs +93 -0
  341. data/sig/sentdm/models/cancelled_message.rbs +15 -0
  342. data/sig/sentdm/models/channel_event_payload.rbs +4 -56
  343. data/sig/sentdm/models/channel_list_params.rbs +25 -0
  344. data/sig/sentdm/models/channel_score.rbs +32 -0
  345. data/sig/sentdm/models/channels/api_response_of_list_of_sms_market.rbs +41 -0
  346. data/sig/sentdm/models/channels/api_response_of_rcs_agent.rbs +41 -0
  347. data/sig/sentdm/models/channels/api_response_of_sms_market.rbs +41 -0
  348. data/sig/sentdm/models/channels/api_response_of_whatsapp_channel.rbs +43 -0
  349. data/sig/sentdm/models/channels/market_compliance.rbs +338 -0
  350. data/sig/sentdm/models/channels/rc_create_params.rbs +242 -0
  351. data/sig/sentdm/models/channels/rcs_address.rbs +42 -0
  352. data/sig/sentdm/models/channels/rcs_agent.rbs +181 -0
  353. data/sig/sentdm/models/channels/sms_create_params.rbs +116 -0
  354. data/sig/sentdm/models/channels/sms_list_params.rbs +27 -0
  355. data/sig/sentdm/models/channels/sms_market.rbs +80 -0
  356. data/sig/sentdm/models/channels/sms_number.rbs +37 -0
  357. data/sig/sentdm/models/channels/sms_number_request.rbs +17 -0
  358. data/sig/sentdm/models/channels/sms_retrieve_params.rbs +36 -0
  359. data/sig/sentdm/models/channels/sms_update_params.rbs +63 -0
  360. data/sig/sentdm/models/channels/supplied_campaign.rbs +9 -0
  361. data/sig/sentdm/models/channels/supplied_compliance.rbs +37 -0
  362. data/sig/sentdm/models/channels/supplied_document.rbs +30 -0
  363. data/sig/sentdm/models/channels/whatsapp_channel.rbs +78 -0
  364. data/sig/sentdm/models/channels/whatsapp_create_params.rbs +56 -0
  365. data/sig/sentdm/models/channels_state.rbs +55 -0
  366. data/sig/sentdm/models/compliance_attachment_template.rbs +26 -0
  367. data/sig/sentdm/models/compliance_requirement.rbs +76 -0
  368. data/sig/sentdm/models/compliance_requirements.rbs +66 -0
  369. data/sig/sentdm/models/compliance_retrieve_requirements_params.rbs +43 -0
  370. data/sig/sentdm/models/compliance_setup_step.rbs +62 -0
  371. data/sig/sentdm/models/contact_message_summary.rbs +6 -35
  372. data/sig/sentdm/models/contacts_list.rbs +31 -0
  373. data/sig/sentdm/models/conversation_messages_list.rbs +5 -312
  374. data/sig/sentdm/models/entity_type.rbs +22 -0
  375. data/sig/sentdm/models/inbound_media.rbs +35 -0
  376. data/sig/sentdm/models/inbound_message_event_payload.rbs +4 -36
  377. data/sig/sentdm/models/link_event.rbs +44 -0
  378. data/sig/sentdm/models/link_event_payload.rbs +106 -0
  379. data/sig/sentdm/models/message.rbs +130 -0
  380. data/sig/sentdm/models/message_activities.rbs +38 -0
  381. data/sig/sentdm/models/message_activity.rbs +66 -0
  382. data/sig/sentdm/models/message_body.rbs +52 -0
  383. data/sig/sentdm/models/message_button.rbs +34 -0
  384. data/sig/sentdm/models/message_cancel_params.rbs +38 -0
  385. data/sig/sentdm/models/message_channel_options.rbs +26 -0
  386. data/sig/sentdm/models/message_header_media.rbs +19 -0
  387. data/sig/sentdm/models/message_media.rbs +40 -0
  388. data/sig/sentdm/models/message_recipient.rbs +34 -0
  389. data/sig/sentdm/models/message_send_params.rbs +8 -54
  390. data/sig/sentdm/models/message_send_response.rbs +4 -77
  391. data/sig/sentdm/models/message_send_result.rbs +45 -0
  392. data/sig/sentdm/models/message_status_event.rbs +40 -0
  393. data/sig/sentdm/models/mms_market.rbs +35 -0
  394. data/sig/sentdm/models/number_lookup_result.rbs +64 -0
  395. data/sig/sentdm/models/pagination_cursors.rbs +15 -0
  396. data/sig/sentdm/models/pagination_meta.rbs +4 -16
  397. data/sig/sentdm/models/profile_completion_accepted.rbs +15 -0
  398. data/sig/sentdm/models/profile_completion_result.rbs +19 -0
  399. data/sig/sentdm/models/profile_detail.rbs +8 -315
  400. data/sig/sentdm/models/profiles/brand_campaign.rbs +11 -16
  401. data/sig/sentdm/models/profiles_list.rbs +31 -0
  402. data/sig/sentdm/models/sender_profile.rbs +76 -0
  403. data/sig/sentdm/models/sender_profile_billing.rbs +15 -0
  404. data/sig/sentdm/models/sender_profile_billing_request.rbs +15 -0
  405. data/sig/sentdm/models/sender_profile_channels.rbs +30 -0
  406. data/sig/sentdm/models/sender_profile_create_params.rbs +78 -0
  407. data/sig/sentdm/models/sender_profile_delete_params.rbs +20 -0
  408. data/sig/sentdm/models/sender_profile_list_params.rbs +32 -0
  409. data/sig/sentdm/models/sender_profile_rcs.rbs +150 -0
  410. data/sig/sentdm/models/sender_profile_retrieve_params.rbs +20 -0
  411. data/sig/sentdm/models/sender_profile_sms.rbs +40 -0
  412. data/sig/sentdm/models/sender_profile_update_params.rbs +62 -0
  413. data/sig/sentdm/models/sender_profile_whatsapp.rbs +16 -0
  414. data/sig/sentdm/models/sender_profiles_list.rbs +31 -0
  415. data/sig/sentdm/models/tcr_brand_identity_status.rbs +17 -0
  416. data/sig/sentdm/models/tcr_brand_status.rbs +15 -0
  417. data/sig/sentdm/models/tcr_campaign_status.rbs +15 -0
  418. data/sig/sentdm/models/template_body.rbs +4 -43
  419. data/sig/sentdm/models/template_header.rbs +4 -31
  420. data/sig/sentdm/models/template_header_location.rbs +30 -0
  421. data/sig/sentdm/models/template_media_item.rbs +17 -0
  422. data/sig/sentdm/models/template_mms_body_content.rbs +28 -0
  423. data/sig/sentdm/models/template_ref.rbs +26 -0
  424. data/sig/sentdm/models/template_variable.rbs +4 -51
  425. data/sig/sentdm/models/template_variable_props.rbs +50 -0
  426. data/sig/sentdm/models/templates_list.rbs +29 -0
  427. data/sig/sentdm/models/users_list.rbs +31 -0
  428. data/sig/sentdm/models/voice/call.rbs +4 -49
  429. data/sig/sentdm/models/voice/call_leg.rbs +50 -0
  430. data/sig/sentdm/models/webhook_create_params.rbs +4 -28
  431. data/sig/sentdm/models/webhook_delivery.rbs +99 -0
  432. data/sig/sentdm/models/webhook_event_types_list.rbs +31 -0
  433. data/sig/sentdm/models/webhook_events_list.rbs +31 -0
  434. data/sig/sentdm/models/webhook_response.rbs +4 -28
  435. data/sig/sentdm/models/webhook_secret.rbs +15 -0
  436. data/sig/sentdm/models/webhook_sender_profile.rbs +27 -0
  437. data/sig/sentdm/models/webhook_sender_profile_config.rbs +27 -0
  438. data/sig/sentdm/models/webhook_test.rbs +19 -0
  439. data/sig/sentdm/models/webhook_update_params.rbs +4 -28
  440. data/sig/sentdm/models/webhooks_list.rbs +31 -0
  441. data/sig/sentdm/models.rbs +188 -0
  442. data/sig/sentdm/resources/channels/rcs.rbs +41 -0
  443. data/sig/sentdm/resources/channels/sms.rbs +44 -0
  444. data/sig/sentdm/resources/channels/whatsapp.rbs +18 -0
  445. data/sig/sentdm/resources/channels.rbs +11 -0
  446. data/sig/sentdm/resources/compliance.rbs +15 -0
  447. data/sig/sentdm/resources/conversations.rbs +2 -2
  448. data/sig/sentdm/resources/me.rbs +1 -1
  449. data/sig/sentdm/resources/messages.rbs +12 -4
  450. data/sig/sentdm/resources/numbers.rbs +1 -1
  451. data/sig/sentdm/resources/profiles.rbs +2 -2
  452. data/sig/sentdm/resources/sender_profiles.rbs +44 -0
  453. data/sig/sentdm/resources/users.rbs +1 -1
  454. data/sig/sentdm/resources/webhooks.rbs +6 -6
  455. metadata +365 -35
  456. data/lib/sentdm/models/me_retrieve_response.rb +0 -409
  457. data/lib/sentdm/models/message_retrieve_activities_response.rb +0 -175
  458. data/lib/sentdm/models/message_retrieve_status_response.rb +0 -477
  459. data/lib/sentdm/models/number_lookup_response.rb +0 -104
  460. data/lib/sentdm/models/profile_complete_response.rb +0 -74
  461. data/lib/sentdm/models/profile_list_response.rb +0 -65
  462. data/lib/sentdm/models/user_list_response.rb +0 -65
  463. data/lib/sentdm/models/webhook_list_event_types_response.rb +0 -65
  464. data/lib/sentdm/models/webhook_list_events_response.rb +0 -445
  465. data/rbi/sentdm/models/me_retrieve_response.rbi +0 -705
  466. data/rbi/sentdm/models/message_retrieve_activities_response.rbi +0 -319
  467. data/rbi/sentdm/models/message_retrieve_status_response.rbi +0 -765
  468. data/rbi/sentdm/models/number_lookup_response.rbi +0 -166
  469. data/rbi/sentdm/models/profile_list_response.rbi +0 -128
  470. data/rbi/sentdm/models/user_list_response.rbi +0 -128
  471. data/rbi/sentdm/models/webhook_list_event_types_response.rbi +0 -142
  472. data/rbi/sentdm/models/webhook_list_events_response.rbi +0 -647
  473. data/sig/sentdm/models/me_retrieve_response.rbs +0 -306
  474. data/sig/sentdm/models/message_retrieve_activities_response.rbs +0 -137
  475. data/sig/sentdm/models/message_retrieve_status_response.rbs +0 -341
  476. data/sig/sentdm/models/number_lookup_response.rbs +0 -100
  477. data/sig/sentdm/models/profile_complete_response.rbs +0 -55
  478. data/sig/sentdm/models/profile_list_response.rbs +0 -67
  479. data/sig/sentdm/models/user_list_response.rbs +0 -67
  480. data/sig/sentdm/models/webhook_list_event_types_response.rbs +0 -67
  481. data/sig/sentdm/models/webhook_list_events_response.rbs +0 -243
  482. data/sig/sentdm/models/webhook_rotate_secret_response.rbs +0 -51
  483. data/sig/sentdm/models/webhook_test_response.rbs +0 -55
@@ -0,0 +1,180 @@
1
+ # typed: strong
2
+
3
+ module Sentdm
4
+ module Models
5
+ module Channels
6
+ class SuppliedCompliance < Sentdm::Internal::Type::BaseModel
7
+ OrHash =
8
+ T.type_alias do
9
+ T.any(
10
+ Sentdm::Channels::SuppliedCompliance,
11
+ Sentdm::Internal::AnyHash
12
+ )
13
+ end
14
+
15
+ # The identity this market registers under, with inherit saying whose it is.
16
+ #
17
+ # Reported here rather than on the profile because it belongs to the registration
18
+ # this market files, and only one market files one. It was a top-level block for a
19
+ # while, which put a per-registration value beside a list of markets and left a
20
+ # caller to work out which market it belonged to.
21
+ #
22
+ # Absent for a market that registers with nobody — such a market asks for no
23
+ # identity, so there is none to report. Absent and null mean different things:
24
+ # absent says this market does not ask, null would say it asks and nothing was
25
+ # supplied.
26
+ #
27
+ # Untyped, like the request side, because its members are declared by the market's
28
+ # own schema rather than by a C# class. A typed pair here would be a second
29
+ # definition of what a market wants, free to drift from the one that validates.
30
+ sig { returns(T.nilable(T::Hash[Symbol, T.anything])) }
31
+ attr_accessor :brand
32
+
33
+ # The programme this market registers, with inherit saying whose it is.
34
+ #
35
+ # One, not a list. TcrCampaigns permits several and an account built on the admin
36
+ # side may hold them, but this surface offers one — which is what lets the
37
+ # market's PATCH be an upsert rather than a collection with an addressable create
38
+ # behind it. An account holding several is reported as its first and refused on
39
+ # write, rather than half-edited.
40
+ #
41
+ # Carries no id. Nothing addresses a campaign, and an undeclared key would be
42
+ # refused if the caller sent this object back — which it is meant to be able to
43
+ # do.
44
+ sig { returns(T.nilable(T::Hash[Symbol, T.anything])) }
45
+ attr_accessor :campaign
46
+
47
+ # Every campaign this market registers, each with inherit saying whose it is —
48
+ # oldest first.
49
+ #
50
+ # A list, because a market can now be on more than one. POST
51
+ # /v3/channels/sms/compliances/US/TEN_DLC/campaigns adds a campaign of the
52
+ # customer's own beside the one it has, and a profile running on its
53
+ # organization's campaign keeps that one when it adds its own. Campaign can only
54
+ # show one of them, so it stays as it was, for callers that read it, and this is
55
+ # where the rest are.
56
+ #
57
+ # The organization's campaign reads "inherit": true and the customer's own read
58
+ # "inherit": false. Each entry is the shape of Campaign plus id, the campaign's
59
+ # own id, so several can be told apart. Campaign carries no id, because it is sent
60
+ # back to PATCH, which refuses a key it does not declare; this list is read-only.
61
+ #
62
+ # Absent for a market that registers with nobody; empty for one that registers and
63
+ # has no campaign yet.
64
+ sig { returns(T.nilable(T::Array[T::Hash[Symbol, T.anything]])) }
65
+ attr_accessor :campaigns
66
+
67
+ # What has been supplied for this market.
68
+ #
69
+ # Files, not values — the declared halves above carry the values. A document
70
+ # cannot be a JSON value, so it is sent as multipart on the channel call and
71
+ # reported here as a reference.
72
+ #
73
+ # Absent on a list read, which fetches identity but does not compute compliance
74
+ # documents per market. Absent and empty mean different things: absent says the
75
+ # documents were not fetched; empty says the market has been given none.
76
+ sig { returns(T.nilable(T::Array[Sentdm::Channels::SuppliedDocument])) }
77
+ attr_accessor :documents
78
+
79
+ # What a market has been given: the identity it registers under, its programme,
80
+ # and any documents attached.
81
+ #
82
+ # What it does not carry is what the market asks for. That is the subject of GET
83
+ # /v3/compliance/requirements, and it is the same answer for every caller — a
84
+ # description of what a compliance regime wants, not a record of one customer's
85
+ # progress through it. It was reported here as well for a while, which put the
86
+ # same array in six response shapes and left a caller deciding which of two
87
+ # sources to believe.
88
+ #
89
+ # Present on a list read for markets that register (carrying brand and campaign),
90
+ # but with documents absent — documents are not fetched for a list, because a
91
+ # catalog lookup and a document read per market would multiply across a page.
92
+ # Absent documents is distinct from an empty list: absent says they were not
93
+ # fetched; empty says the market has been given none. The parent object is null
94
+ # only when the market registers with nobody and compliance was not computed —
95
+ # nothing to show at all.
96
+ sig do
97
+ params(
98
+ brand: T.nilable(T::Hash[Symbol, T.anything]),
99
+ campaign: T.nilable(T::Hash[Symbol, T.anything]),
100
+ campaigns: T.nilable(T::Array[T::Hash[Symbol, T.anything]]),
101
+ documents:
102
+ T.nilable(T::Array[Sentdm::Channels::SuppliedDocument::OrHash])
103
+ ).returns(T.attached_class)
104
+ end
105
+ def self.new(
106
+ # The identity this market registers under, with inherit saying whose it is.
107
+ #
108
+ # Reported here rather than on the profile because it belongs to the registration
109
+ # this market files, and only one market files one. It was a top-level block for a
110
+ # while, which put a per-registration value beside a list of markets and left a
111
+ # caller to work out which market it belonged to.
112
+ #
113
+ # Absent for a market that registers with nobody — such a market asks for no
114
+ # identity, so there is none to report. Absent and null mean different things:
115
+ # absent says this market does not ask, null would say it asks and nothing was
116
+ # supplied.
117
+ #
118
+ # Untyped, like the request side, because its members are declared by the market's
119
+ # own schema rather than by a C# class. A typed pair here would be a second
120
+ # definition of what a market wants, free to drift from the one that validates.
121
+ brand: nil,
122
+ # The programme this market registers, with inherit saying whose it is.
123
+ #
124
+ # One, not a list. TcrCampaigns permits several and an account built on the admin
125
+ # side may hold them, but this surface offers one — which is what lets the
126
+ # market's PATCH be an upsert rather than a collection with an addressable create
127
+ # behind it. An account holding several is reported as its first and refused on
128
+ # write, rather than half-edited.
129
+ #
130
+ # Carries no id. Nothing addresses a campaign, and an undeclared key would be
131
+ # refused if the caller sent this object back — which it is meant to be able to
132
+ # do.
133
+ campaign: nil,
134
+ # Every campaign this market registers, each with inherit saying whose it is —
135
+ # oldest first.
136
+ #
137
+ # A list, because a market can now be on more than one. POST
138
+ # /v3/channels/sms/compliances/US/TEN_DLC/campaigns adds a campaign of the
139
+ # customer's own beside the one it has, and a profile running on its
140
+ # organization's campaign keeps that one when it adds its own. Campaign can only
141
+ # show one of them, so it stays as it was, for callers that read it, and this is
142
+ # where the rest are.
143
+ #
144
+ # The organization's campaign reads "inherit": true and the customer's own read
145
+ # "inherit": false. Each entry is the shape of Campaign plus id, the campaign's
146
+ # own id, so several can be told apart. Campaign carries no id, because it is sent
147
+ # back to PATCH, which refuses a key it does not declare; this list is read-only.
148
+ #
149
+ # Absent for a market that registers with nobody; empty for one that registers and
150
+ # has no campaign yet.
151
+ campaigns: nil,
152
+ # What has been supplied for this market.
153
+ #
154
+ # Files, not values — the declared halves above carry the values. A document
155
+ # cannot be a JSON value, so it is sent as multipart on the channel call and
156
+ # reported here as a reference.
157
+ #
158
+ # Absent on a list read, which fetches identity but does not compute compliance
159
+ # documents per market. Absent and empty mean different things: absent says the
160
+ # documents were not fetched; empty says the market has been given none.
161
+ documents: nil
162
+ )
163
+ end
164
+
165
+ sig do
166
+ override.returns(
167
+ {
168
+ brand: T.nilable(T::Hash[Symbol, T.anything]),
169
+ campaign: T.nilable(T::Hash[Symbol, T.anything]),
170
+ campaigns: T.nilable(T::Array[T::Hash[Symbol, T.anything]]),
171
+ documents: T.nilable(T::Array[Sentdm::Channels::SuppliedDocument])
172
+ }
173
+ )
174
+ end
175
+ def to_hash
176
+ end
177
+ end
178
+ end
179
+ end
180
+ end
@@ -0,0 +1,57 @@
1
+ # typed: strong
2
+
3
+ module Sentdm
4
+ module Models
5
+ module Channels
6
+ class SuppliedDocument < Sentdm::Internal::Type::BaseModel
7
+ OrHash =
8
+ T.type_alias do
9
+ T.any(Sentdm::Channels::SuppliedDocument, Sentdm::Internal::AnyHash)
10
+ end
11
+
12
+ # Identifier of the upload, for fetching it back through the documents endpoints.
13
+ sig { returns(T.nilable(String)) }
14
+ attr_accessor :document_id
15
+
16
+ sig { returns(T.nilable(String)) }
17
+ attr_accessor :file_name
18
+
19
+ # The catalog's name for this document, matching the requirement it satisfies.
20
+ sig { returns(T.nilable(String)) }
21
+ attr_reader :key
22
+
23
+ sig { params(key: String).void }
24
+ attr_writer :key
25
+
26
+ # A document a market asked for and has been given.
27
+ sig do
28
+ params(
29
+ document_id: T.nilable(String),
30
+ file_name: T.nilable(String),
31
+ key: String
32
+ ).returns(T.attached_class)
33
+ end
34
+ def self.new(
35
+ # Identifier of the upload, for fetching it back through the documents endpoints.
36
+ document_id: nil,
37
+ file_name: nil,
38
+ # The catalog's name for this document, matching the requirement it satisfies.
39
+ key: nil
40
+ )
41
+ end
42
+
43
+ sig do
44
+ override.returns(
45
+ {
46
+ document_id: T.nilable(String),
47
+ file_name: T.nilable(String),
48
+ key: String
49
+ }
50
+ )
51
+ end
52
+ def to_hash
53
+ end
54
+ end
55
+ end
56
+ end
57
+ end
@@ -0,0 +1,172 @@
1
+ # typed: strong
2
+
3
+ module Sentdm
4
+ module Models
5
+ WhatsappChannel = Channels::WhatsappChannel
6
+
7
+ module Channels
8
+ class WhatsappChannel < Sentdm::Internal::Type::BaseModel
9
+ OrHash =
10
+ T.type_alias do
11
+ T.any(Sentdm::Channels::WhatsappChannel, Sentdm::Internal::AnyHash)
12
+ end
13
+
14
+ # Derived from the organization's shared-account listing, like SolutionId.
15
+ sig { returns(T.nilable(String)) }
16
+ attr_accessor :owner_business_id
17
+
18
+ # The Meta phone-number id the profile sends from, or null when the account is
19
+ # connected but no number has been named yet — which is what a provisioning status
20
+ # means here.
21
+ sig { returns(T.nilable(String)) }
22
+ attr_accessor :phone_number_id
23
+
24
+ # A sentence for reason_code, saying what to do where it is yours. Omitted while
25
+ # ACTIVE.
26
+ sig { returns(T.nilable(String)) }
27
+ attr_accessor :reason
28
+
29
+ # Why the account is not ACTIVE, as a stable code: an ErrorCodes CHANNEL_xxx value
30
+ # such as CHANNEL_001 (something you owe) or CHANNEL_009 (under review). Switch on
31
+ # this rather than on reason. Omitted while ACTIVE. Read-only; when nothing more
32
+ # specific is known it is the generic reason for the status.
33
+ sig { returns(T.nilable(String)) }
34
+ attr_accessor :reason_code
35
+
36
+ # Derived, not echoed. The request no longer accepts this — it is read off the
37
+ # organization's shared-account listing at connect time and reported back so a
38
+ # caller can see which partnership the account actually arrived through.
39
+ sig { returns(T.nilable(String)) }
40
+ attr_accessor :solution_id
41
+
42
+ # Read-only. Never carries a token — the row holds that and it is not returned.
43
+ # ACTION_NEEDED when no account is connected or the account has no phone number:
44
+ # both are yours to do.
45
+ sig do
46
+ returns(
47
+ T.nilable(Sentdm::Channels::WhatsappChannel::Status::TaggedSymbol)
48
+ )
49
+ end
50
+ attr_accessor :status
51
+
52
+ sig { returns(T.nilable(String)) }
53
+ attr_accessor :waba_id
54
+
55
+ # The profile's WhatsApp account. Its status is Meta's verification state.
56
+ sig do
57
+ params(
58
+ owner_business_id: T.nilable(String),
59
+ phone_number_id: T.nilable(String),
60
+ reason: T.nilable(String),
61
+ reason_code: T.nilable(String),
62
+ solution_id: T.nilable(String),
63
+ status:
64
+ T.nilable(Sentdm::Channels::WhatsappChannel::Status::OrSymbol),
65
+ waba_id: T.nilable(String)
66
+ ).returns(T.attached_class)
67
+ end
68
+ def self.new(
69
+ # Derived from the organization's shared-account listing, like SolutionId.
70
+ owner_business_id: nil,
71
+ # The Meta phone-number id the profile sends from, or null when the account is
72
+ # connected but no number has been named yet — which is what a provisioning status
73
+ # means here.
74
+ phone_number_id: nil,
75
+ # A sentence for reason_code, saying what to do where it is yours. Omitted while
76
+ # ACTIVE.
77
+ reason: nil,
78
+ # Why the account is not ACTIVE, as a stable code: an ErrorCodes CHANNEL_xxx value
79
+ # such as CHANNEL_001 (something you owe) or CHANNEL_009 (under review). Switch on
80
+ # this rather than on reason. Omitted while ACTIVE. Read-only; when nothing more
81
+ # specific is known it is the generic reason for the status.
82
+ reason_code: nil,
83
+ # Derived, not echoed. The request no longer accepts this — it is read off the
84
+ # organization's shared-account listing at connect time and reported back so a
85
+ # caller can see which partnership the account actually arrived through.
86
+ solution_id: nil,
87
+ # Read-only. Never carries a token — the row holds that and it is not returned.
88
+ # ACTION_NEEDED when no account is connected or the account has no phone number:
89
+ # both are yours to do.
90
+ status: nil,
91
+ waba_id: nil
92
+ )
93
+ end
94
+
95
+ sig do
96
+ override.returns(
97
+ {
98
+ owner_business_id: T.nilable(String),
99
+ phone_number_id: T.nilable(String),
100
+ reason: T.nilable(String),
101
+ reason_code: T.nilable(String),
102
+ solution_id: T.nilable(String),
103
+ status:
104
+ T.nilable(
105
+ Sentdm::Channels::WhatsappChannel::Status::TaggedSymbol
106
+ ),
107
+ waba_id: T.nilable(String)
108
+ }
109
+ )
110
+ end
111
+ def to_hash
112
+ end
113
+
114
+ # Read-only. Never carries a token — the row holds that and it is not returned.
115
+ # ACTION_NEEDED when no account is connected or the account has no phone number:
116
+ # both are yours to do.
117
+ module Status
118
+ extend Sentdm::Internal::Type::Enum
119
+
120
+ TaggedSymbol =
121
+ T.type_alias do
122
+ T.all(Symbol, Sentdm::Channels::WhatsappChannel::Status)
123
+ end
124
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
125
+
126
+ # We are working on it and there is nothing for you to do — a number is being procured, or a registration is being assembled. Minutes to hours.
127
+ PROVISIONING =
128
+ T.let(
129
+ :PROVISIONING,
130
+ Sentdm::Channels::WhatsappChannel::Status::TaggedSymbol
131
+ )
132
+
133
+ # **Waiting on you.** Something the market asks for has not been supplied, a regulator rejected what was, or we have asked you to correct and resubmit your identity data. Nothing progresses until you act. For an SMS market, `GET /v3/channels/sms/{country}/{type}` names what it wants and `PATCH` on the same path supplies it — compliance values, documents and numbers alike.
134
+ ACTION_NEEDED =
135
+ T.let(
136
+ :ACTION_NEEDED,
137
+ Sentdm::Channels::WhatsappChannel::Status::TaggedSymbol
138
+ )
139
+
140
+ # With a regulator or carrier — filed, or assembled and queued for us to file — and their answer is what moves it, to `ACTIVE` or back to `ACTION_NEEDED`. Nothing on your side changes it. Days for SMS, weeks for RCS.
141
+ PENDING_REVIEW =
142
+ T.let(
143
+ :PENDING_REVIEW,
144
+ Sentdm::Channels::WhatsappChannel::Status::TaggedSymbol
145
+ )
146
+
147
+ # Can carry traffic now. A channel a sender profile runs on its organization's reads `ACTIVE` too — it sends, which is what the field is about.
148
+ ACTIVE =
149
+ T.let(
150
+ :ACTIVE,
151
+ Sentdm::Channels::WhatsappChannel::Status::TaggedSymbol
152
+ )
153
+
154
+ # **It had a working sender and no longer does** — the number was released, or the campaign it carried lapsed. Distinct from `PROVISIONING`, which means it has never sent yet: the same absence of a sender, opposite news. Sends will fail until it returns to `ACTIVE`.
155
+ INACTIVE =
156
+ T.let(
157
+ :INACTIVE,
158
+ Sentdm::Channels::WhatsappChannel::Status::TaggedSymbol
159
+ )
160
+
161
+ sig do
162
+ override.returns(
163
+ T::Array[Sentdm::Channels::WhatsappChannel::Status::TaggedSymbol]
164
+ )
165
+ end
166
+ def self.values
167
+ end
168
+ end
169
+ end
170
+ end
171
+ end
172
+ end
@@ -0,0 +1,104 @@
1
+ # typed: strong
2
+
3
+ module Sentdm
4
+ module Models
5
+ module Channels
6
+ class WhatsappCreateParams < Sentdm::Internal::Type::BaseModel
7
+ extend Sentdm::Internal::Type::RequestParameters::Converter
8
+ include Sentdm::Internal::Type::RequestParameters
9
+
10
+ OrHash =
11
+ T.type_alias do
12
+ T.any(
13
+ Sentdm::Channels::WhatsappCreateParams,
14
+ Sentdm::Internal::AnyHash
15
+ )
16
+ end
17
+
18
+ # The Meta phone-number id of the number on WabaId, which assigns it to this
19
+ # profile as the number it sends from. It is not checked against the account here,
20
+ # so name the account's number; it is refused if another profile already uses it.
21
+ #
22
+ # Optional: omit it to connect the account and settle the number later. Nothing
23
+ # picks one on your behalf.
24
+ sig { returns(T.nilable(String)) }
25
+ attr_accessor :phone_number_id
26
+
27
+ # Sandbox flag - when true, the operation is simulated without side effects Useful
28
+ # for testing integrations without actual execution
29
+ sig { returns(T.nilable(T::Boolean)) }
30
+ attr_reader :sandbox
31
+
32
+ sig { params(sandbox: T::Boolean).void }
33
+ attr_writer :sandbox
34
+
35
+ # WhatsApp Business Account id — one of the accounts shared into your
36
+ # organization. Required: the organization holds one per client, and nothing but
37
+ # the caller says which is meant here.
38
+ sig { returns(T.nilable(String)) }
39
+ attr_reader :waba_id
40
+
41
+ sig { params(waba_id: String).void }
42
+ attr_writer :waba_id
43
+
44
+ sig { returns(T.nilable(String)) }
45
+ attr_reader :idempotency_key
46
+
47
+ sig { params(idempotency_key: String).void }
48
+ attr_writer :idempotency_key
49
+
50
+ sig { returns(T.nilable(String)) }
51
+ attr_reader :x_profile_id
52
+
53
+ sig { params(x_profile_id: String).void }
54
+ attr_writer :x_profile_id
55
+
56
+ sig do
57
+ params(
58
+ phone_number_id: T.nilable(String),
59
+ sandbox: T::Boolean,
60
+ waba_id: String,
61
+ idempotency_key: String,
62
+ x_profile_id: String,
63
+ request_options: Sentdm::RequestOptions::OrHash
64
+ ).returns(T.attached_class)
65
+ end
66
+ def self.new(
67
+ # The Meta phone-number id of the number on WabaId, which assigns it to this
68
+ # profile as the number it sends from. It is not checked against the account here,
69
+ # so name the account's number; it is refused if another profile already uses it.
70
+ #
71
+ # Optional: omit it to connect the account and settle the number later. Nothing
72
+ # picks one on your behalf.
73
+ phone_number_id: nil,
74
+ # Sandbox flag - when true, the operation is simulated without side effects Useful
75
+ # for testing integrations without actual execution
76
+ sandbox: nil,
77
+ # WhatsApp Business Account id — one of the accounts shared into your
78
+ # organization. Required: the organization holds one per client, and nothing but
79
+ # the caller says which is meant here.
80
+ waba_id: nil,
81
+ idempotency_key: nil,
82
+ x_profile_id: nil,
83
+ request_options: {}
84
+ )
85
+ end
86
+
87
+ sig do
88
+ override.returns(
89
+ {
90
+ phone_number_id: T.nilable(String),
91
+ sandbox: T::Boolean,
92
+ waba_id: String,
93
+ idempotency_key: String,
94
+ x_profile_id: String,
95
+ request_options: Sentdm::RequestOptions
96
+ }
97
+ )
98
+ end
99
+ def to_hash
100
+ end
101
+ end
102
+ end
103
+ end
104
+ end
@@ -0,0 +1,151 @@
1
+ # typed: strong
2
+
3
+ module Sentdm
4
+ module Models
5
+ class ChannelsState < Sentdm::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias { T.any(Sentdm::ChannelsState, Sentdm::Internal::AnyHash) }
8
+
9
+ # Which customer these channels belong to — the key's own, or the profile named in
10
+ # x-profile-id.
11
+ #
12
+ # Same reason the brand carries one: as the response to /v3/channels there is no
13
+ # other id in the document, and under x-profile-id this is the profile the call
14
+ # resolved to rather than the caller. Absent when nested inside a sender profile,
15
+ # whose own id already says whose they are.
16
+ sig { returns(T.nilable(String)) }
17
+ attr_accessor :customer_id
18
+
19
+ # The markets this profile can send MMS in, one entry per country, or empty when
20
+ # none.
21
+ #
22
+ # Appears alongside sms rather than replacing an entry in it: the two are separate
23
+ # senders on the same number and a caller needs to see both — a market can be live
24
+ # for SMS while its MMS row is still provisioning, or MMS-incapable entirely
25
+ # because the market's sender-type SKU does not carry it.
26
+ sig { returns(T.nilable(T::Array[Sentdm::MmsMarket])) }
27
+ attr_reader :mms
28
+
29
+ sig { params(mms: T::Array[Sentdm::MmsMarket::OrHash]).void }
30
+ attr_writer :mms
31
+
32
+ # An RCS agent as its owner sees it: the order form back, plus where the
33
+ # submission stands.
34
+ #
35
+ # Not RcsSenderResponse. That one is the admin projection and carries the pipeline
36
+ # we track about a customer's request — internalStatus, statusReason, isLaunched —
37
+ # and the S3 keys behind the assets. None of that is the customer's to read: an
38
+ # internal status is a note to ourselves, and an S3 key is a storage detail that
39
+ # would become a contract the moment it was published.
40
+ #
41
+ # What is here is what the caller sent, in the names it sent them under, plus the
42
+ # three things only we can answer: the record's id, its status, and the number it
43
+ # sends from. So a read after a write shows the form as stored rather than as
44
+ # echoed.
45
+ sig { returns(T.nilable(Sentdm::Channels::RcsAgent)) }
46
+ attr_reader :rcs
47
+
48
+ sig { params(rcs: T.nilable(Sentdm::Channels::RcsAgent::OrHash)).void }
49
+ attr_writer :rcs
50
+
51
+ sig { returns(T.nilable(T::Array[Sentdm::Channels::SMSMarket])) }
52
+ attr_reader :sms
53
+
54
+ sig { params(sms: T::Array[Sentdm::Channels::SMSMarket::OrHash]).void }
55
+ attr_writer :sms
56
+
57
+ # The numbers this profile carries phone calls on, one entry per number, or empty
58
+ # when none. Voice is per number like an SMS market is per country: each number is
59
+ # its own channel row, turned on and off on its own, and one of them is the line
60
+ # app-originated calls fall back to.
61
+ sig { returns(T.nilable(T::Array[Sentdm::Channels::VoiceNumber])) }
62
+ attr_reader :voice
63
+
64
+ sig do
65
+ params(voice: T::Array[Sentdm::Channels::VoiceNumber::OrHash]).void
66
+ end
67
+ attr_writer :voice
68
+
69
+ # The profile's WhatsApp account. Its status is Meta's verification state.
70
+ sig { returns(T.nilable(Sentdm::Channels::WhatsappChannel)) }
71
+ attr_reader :whatsapp
72
+
73
+ sig do
74
+ params(
75
+ whatsapp: T.nilable(Sentdm::Channels::WhatsappChannel::OrHash)
76
+ ).void
77
+ end
78
+ attr_writer :whatsapp
79
+
80
+ # The channels a profile sends on. SMS is a list because a profile can send in
81
+ # several markets; WhatsApp and RCS are single, because a profile has one business
82
+ # account and one agent.
83
+ sig do
84
+ params(
85
+ customer_id: T.nilable(String),
86
+ mms: T::Array[Sentdm::MmsMarket::OrHash],
87
+ rcs: T.nilable(Sentdm::Channels::RcsAgent::OrHash),
88
+ sms: T::Array[Sentdm::Channels::SMSMarket::OrHash],
89
+ voice: T::Array[Sentdm::Channels::VoiceNumber::OrHash],
90
+ whatsapp: T.nilable(Sentdm::Channels::WhatsappChannel::OrHash)
91
+ ).returns(T.attached_class)
92
+ end
93
+ def self.new(
94
+ # Which customer these channels belong to — the key's own, or the profile named in
95
+ # x-profile-id.
96
+ #
97
+ # Same reason the brand carries one: as the response to /v3/channels there is no
98
+ # other id in the document, and under x-profile-id this is the profile the call
99
+ # resolved to rather than the caller. Absent when nested inside a sender profile,
100
+ # whose own id already says whose they are.
101
+ customer_id: nil,
102
+ # The markets this profile can send MMS in, one entry per country, or empty when
103
+ # none.
104
+ #
105
+ # Appears alongside sms rather than replacing an entry in it: the two are separate
106
+ # senders on the same number and a caller needs to see both — a market can be live
107
+ # for SMS while its MMS row is still provisioning, or MMS-incapable entirely
108
+ # because the market's sender-type SKU does not carry it.
109
+ mms: nil,
110
+ # An RCS agent as its owner sees it: the order form back, plus where the
111
+ # submission stands.
112
+ #
113
+ # Not RcsSenderResponse. That one is the admin projection and carries the pipeline
114
+ # we track about a customer's request — internalStatus, statusReason, isLaunched —
115
+ # and the S3 keys behind the assets. None of that is the customer's to read: an
116
+ # internal status is a note to ourselves, and an S3 key is a storage detail that
117
+ # would become a contract the moment it was published.
118
+ #
119
+ # What is here is what the caller sent, in the names it sent them under, plus the
120
+ # three things only we can answer: the record's id, its status, and the number it
121
+ # sends from. So a read after a write shows the form as stored rather than as
122
+ # echoed.
123
+ rcs: nil,
124
+ sms: nil,
125
+ # The numbers this profile carries phone calls on, one entry per number, or empty
126
+ # when none. Voice is per number like an SMS market is per country: each number is
127
+ # its own channel row, turned on and off on its own, and one of them is the line
128
+ # app-originated calls fall back to.
129
+ voice: nil,
130
+ # The profile's WhatsApp account. Its status is Meta's verification state.
131
+ whatsapp: nil
132
+ )
133
+ end
134
+
135
+ sig do
136
+ override.returns(
137
+ {
138
+ customer_id: T.nilable(String),
139
+ mms: T::Array[Sentdm::MmsMarket],
140
+ rcs: T.nilable(Sentdm::Channels::RcsAgent),
141
+ sms: T::Array[Sentdm::Channels::SMSMarket],
142
+ voice: T::Array[Sentdm::Channels::VoiceNumber],
143
+ whatsapp: T.nilable(Sentdm::Channels::WhatsappChannel)
144
+ }
145
+ )
146
+ end
147
+ def to_hash
148
+ end
149
+ end
150
+ end
151
+ end