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,41 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Sentdm
4
+ module Models
5
+ module Channels
6
+ class SMSNumber < Sentdm::Internal::Type::BaseModel
7
+ # @!attribute area_code
8
+ # The number's area code, e.g. 212. While the number is still to be assigned, the
9
+ # area code it was asked for, or null when it was asked for in any area code.
10
+ #
11
+ # @return [String, nil]
12
+ optional :area_code, String, nil?: true
13
+
14
+ # @!attribute sender_value
15
+ # The number, or null while it is still to be assigned.
16
+ #
17
+ # @return [String, nil]
18
+ optional :sender_value, String, nil?: true
19
+
20
+ # @!attribute status
21
+ # ACTIVE once the number can send; PROVISIONING while it is still to be assigned;
22
+ # INACTIVE once it could send and no longer can.
23
+ #
24
+ # @return [String, nil]
25
+ optional :status, String, nil?: true
26
+
27
+ # @!method initialize(area_code: nil, sender_value: nil, status: nil)
28
+ # Some parameter documentations has been truncated, see
29
+ # {Sentdm::Models::Channels::SMSNumber} for more details.
30
+ #
31
+ # One number of an SMS market.
32
+ #
33
+ # @param area_code [String, nil] The number's area code, e.g. 212. While the number is still to be assigned, the
34
+ #
35
+ # @param sender_value [String, nil] The number, or null while it is still to be assigned.
36
+ #
37
+ # @param status [String, nil] ACTIVE once the number can send; PROVISIONING while it is still to be assigned;
38
+ end
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,33 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Sentdm
4
+ module Models
5
+ module Channels
6
+ class SMSNumberRequest < Sentdm::Internal::Type::BaseModel
7
+ # @!attribute area_code
8
+ # The area code, e.g. 212, validated against the request's country. Omit it for
9
+ # numbers in any area code.
10
+ #
11
+ # @return [String, nil]
12
+ optional :area_code, String, nil?: true
13
+
14
+ # @!attribute quantity
15
+ # How many numbers. At least 1; omitted means 1.
16
+ #
17
+ # @return [Integer, nil]
18
+ optional :quantity, Integer, nil?: true
19
+
20
+ # @!method initialize(area_code: nil, quantity: nil)
21
+ # Some parameter documentations has been truncated, see
22
+ # {Sentdm::Models::Channels::SMSNumberRequest} for more details.
23
+ #
24
+ # One entry of numbers: how many numbers to assign in one area code, or in any
25
+ # area code when AreaCode is omitted.
26
+ #
27
+ # @param area_code [String, nil] The area code, e.g. 212, validated against the request's country. Omit it for nu
28
+ #
29
+ # @param quantity [Integer, nil] How many numbers. At least 1; omitted means 1.
30
+ end
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,34 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Sentdm
4
+ module Models
5
+ module Channels
6
+ # @see Sentdm::Resources::Channels::SMS#retrieve
7
+ class SMSRetrieveParams < Sentdm::Internal::Type::BaseModel
8
+ extend Sentdm::Internal::Type::RequestParameters::Converter
9
+ include Sentdm::Internal::Type::RequestParameters
10
+
11
+ # @!attribute country
12
+ #
13
+ # @return [String]
14
+ required :country, String
15
+
16
+ # @!attribute type
17
+ #
18
+ # @return [String]
19
+ required :type, String
20
+
21
+ # @!attribute x_profile_id
22
+ #
23
+ # @return [String, nil]
24
+ optional :x_profile_id, String
25
+
26
+ # @!method initialize(country:, type:, x_profile_id: nil, request_options: {})
27
+ # @param country [String]
28
+ # @param type [String]
29
+ # @param x_profile_id [String]
30
+ # @param request_options [Sentdm::RequestOptions, Hash{Symbol=>Object}]
31
+ end
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,64 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Sentdm
4
+ module Models
5
+ module Channels
6
+ # @see Sentdm::Resources::Channels::SMS#update
7
+ class SMSUpdateParams < Sentdm::Internal::Type::BaseModel
8
+ extend Sentdm::Internal::Type::RequestParameters::Converter
9
+ include Sentdm::Internal::Type::RequestParameters
10
+
11
+ # @!attribute country
12
+ #
13
+ # @return [String]
14
+ required :country, String
15
+
16
+ # @!attribute type
17
+ #
18
+ # @return [String]
19
+ required :type, String
20
+
21
+ # @!attribute compliance
22
+ # The compliance values a market registers with. `brand` and `campaign` apply to
23
+ # US `TEN_DLC`; other markets fill this map with the document keys their own
24
+ # requirements name.
25
+ #
26
+ # @return [Sentdm::Models::Channels::MarketCompliance, nil]
27
+ optional :compliance, -> { Sentdm::Channels::MarketCompliance }
28
+
29
+ # @!attribute sandbox
30
+ #
31
+ # @return [Boolean, nil]
32
+ optional :sandbox, Sentdm::Internal::Type::Boolean
33
+
34
+ # @!attribute idempotency_key
35
+ #
36
+ # @return [String, nil]
37
+ optional :idempotency_key, String
38
+
39
+ # @!attribute x_profile_id
40
+ #
41
+ # @return [String, nil]
42
+ optional :x_profile_id, String
43
+
44
+ # @!method initialize(country:, type:, compliance: nil, sandbox: nil, idempotency_key: nil, x_profile_id: nil, request_options: {})
45
+ # Some parameter documentations has been truncated, see
46
+ # {Sentdm::Models::Channels::SMSUpdateParams} for more details.
47
+ #
48
+ # @param country [String]
49
+ #
50
+ # @param type [String]
51
+ #
52
+ # @param compliance [Sentdm::Models::Channels::MarketCompliance] The compliance values a market registers with. `brand` and `campaign` apply to U
53
+ #
54
+ # @param sandbox [Boolean]
55
+ #
56
+ # @param idempotency_key [String]
57
+ #
58
+ # @param x_profile_id [String]
59
+ #
60
+ # @param request_options [Sentdm::RequestOptions, Hash{Symbol=>Object}]
61
+ end
62
+ end
63
+ end
64
+ end
@@ -0,0 +1,89 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Sentdm
4
+ module Models
5
+ module Channels
6
+ class SuppliedCompliance < Sentdm::Internal::Type::BaseModel
7
+ # @!attribute brand
8
+ # The identity this market registers under, with inherit saying whose it is.
9
+ #
10
+ # Reported here rather than on the profile because it belongs to the registration
11
+ # this market files, and only one market files one. It was a top-level block for a
12
+ # while, which put a per-registration value beside a list of markets and left a
13
+ # caller to work out which market it belonged to.
14
+ #
15
+ # Absent for a market that registers with nobody — such a market asks for no
16
+ # identity, so there is none to report. Absent and null mean different things:
17
+ # absent says this market does not ask, null would say it asks and nothing was
18
+ # supplied.
19
+ #
20
+ # Untyped, like the request side, because its members are declared by the market's
21
+ # own schema rather than by a C# class. A typed pair here would be a second
22
+ # definition of what a market wants, free to drift from the one that validates.
23
+ #
24
+ # @return [Hash{Symbol=>Object}, nil]
25
+ optional :brand, Sentdm::Internal::Type::HashOf[Sentdm::Internal::Type::Unknown], nil?: true
26
+
27
+ # @!attribute campaign
28
+ # The programme this market registers, with inherit saying whose it is.
29
+ #
30
+ # One, not a list. TcrCampaigns permits several and an account built on the admin
31
+ # side may hold them, but this surface offers one — which is what lets the
32
+ # market's PATCH be an upsert rather than a collection with an addressable create
33
+ # behind it. An account holding several is reported as its first and refused on
34
+ # write, rather than half-edited.
35
+ #
36
+ # Carries no id. Nothing addresses a campaign, and an undeclared key would be
37
+ # refused if the caller sent this object back — which it is meant to be able to
38
+ # do.
39
+ #
40
+ # @return [Hash{Symbol=>Object}, nil]
41
+ optional :campaign, Sentdm::Internal::Type::HashOf[Sentdm::Internal::Type::Unknown], nil?: true
42
+
43
+ # @!attribute documents
44
+ # What has been supplied for this market.
45
+ #
46
+ # Files, not values — the declared halves above carry the values. A document
47
+ # cannot be a JSON value, so it is sent as multipart on the channel call and
48
+ # reported here as a reference.
49
+ #
50
+ # Absent on a list read, which fetches identity but does not compute compliance
51
+ # documents per market. Absent and empty mean different things: absent says the
52
+ # documents were not fetched; empty says the market has been given none.
53
+ #
54
+ # @return [Array<Sentdm::Models::Channels::SuppliedDocument>, nil]
55
+ optional :documents,
56
+ -> { Sentdm::Internal::Type::ArrayOf[Sentdm::Channels::SuppliedDocument] },
57
+ nil?: true
58
+
59
+ # @!method initialize(brand: nil, campaign: nil, documents: nil)
60
+ # Some parameter documentations has been truncated, see
61
+ # {Sentdm::Models::Channels::SuppliedCompliance} for more details.
62
+ #
63
+ # What a market has been given: the identity it registers under, its programme,
64
+ # and any documents attached.
65
+ #
66
+ # What it does not carry is what the market asks for. That is the subject of GET
67
+ # /v3/compliance/requirements, and it is the same answer for every caller — a
68
+ # description of what a compliance regime wants, not a record of one customer's
69
+ # progress through it. It was reported here as well for a while, which put the
70
+ # same array in six response shapes and left a caller deciding which of two
71
+ # sources to believe.
72
+ #
73
+ # Present on a list read for markets that register (carrying brand and campaign),
74
+ # but with documents absent — documents are not fetched for a list, because a
75
+ # catalog lookup and a document read per market would multiply across a page.
76
+ # Absent documents is distinct from an empty list: absent says they were not
77
+ # fetched; empty says the market has been given none. The parent object is null
78
+ # only when the market registers with nobody and compliance was not computed —
79
+ # nothing to show at all.
80
+ #
81
+ # @param brand [Hash{Symbol=>Object}, nil] The identity this market registers under, with inherit saying whose it is.
82
+ #
83
+ # @param campaign [Hash{Symbol=>Object}, nil] The programme this market registers, with inherit saying whose it is.
84
+ #
85
+ # @param documents [Array<Sentdm::Models::Channels::SuppliedDocument>, nil] What has been supplied for this market.
86
+ end
87
+ end
88
+ end
89
+ end
@@ -0,0 +1,35 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Sentdm
4
+ module Models
5
+ module Channels
6
+ class SuppliedDocument < Sentdm::Internal::Type::BaseModel
7
+ # @!attribute document_id
8
+ # Identifier of the upload, for fetching it back through the documents endpoints.
9
+ #
10
+ # @return [String, nil]
11
+ optional :document_id, String, nil?: true
12
+
13
+ # @!attribute file_name
14
+ #
15
+ # @return [String, nil]
16
+ optional :file_name, String, nil?: true
17
+
18
+ # @!attribute key
19
+ # The catalog's name for this document, matching the requirement it satisfies.
20
+ #
21
+ # @return [String, nil]
22
+ optional :key, String
23
+
24
+ # @!method initialize(document_id: nil, file_name: nil, key: nil)
25
+ # A document a market asked for and has been given.
26
+ #
27
+ # @param document_id [String, nil] Identifier of the upload, for fetching it back through the documents endpoints.
28
+ #
29
+ # @param file_name [String, nil]
30
+ #
31
+ # @param key [String] The catalog's name for this document, matching the requirement it satisfies.
32
+ end
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,109 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Sentdm
4
+ module Models
5
+ module Channels
6
+ class WhatsappChannel < Sentdm::Internal::Type::BaseModel
7
+ # @!attribute owner_business_id
8
+ # Derived from the organization's shared-account listing, like SolutionId.
9
+ #
10
+ # @return [String, nil]
11
+ optional :owner_business_id, String, nil?: true
12
+
13
+ # @!attribute phone_number_id
14
+ # The Meta phone-number id the profile sends from, or null when the account is
15
+ # connected but no number has been named yet — which is what a provisioning status
16
+ # means here.
17
+ #
18
+ # @return [String, nil]
19
+ optional :phone_number_id, String, nil?: true
20
+
21
+ # @!attribute reason
22
+ # A sentence for reason_code, saying what to do where it is yours. Omitted while
23
+ # ACTIVE.
24
+ #
25
+ # @return [String, nil]
26
+ optional :reason, String, nil?: true
27
+
28
+ # @!attribute reason_code
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
+ #
34
+ # @return [String, nil]
35
+ optional :reason_code, String, nil?: true
36
+
37
+ # @!attribute solution_id
38
+ # Derived, not echoed. The request no longer accepts this — it is read off the
39
+ # organization's shared-account listing at connect time and reported back so a
40
+ # caller can see which partnership the account actually arrived through.
41
+ #
42
+ # @return [String, nil]
43
+ optional :solution_id, String, nil?: true
44
+
45
+ # @!attribute status
46
+ # Read-only. Never carries a token — the row holds that and it is not returned.
47
+ # ACTION_NEEDED when no account is connected or the account has no phone number:
48
+ # both are yours to do.
49
+ #
50
+ # @return [Symbol, Sentdm::Models::Channels::WhatsappChannel::Status, nil]
51
+ optional :status, enum: -> { Sentdm::Channels::WhatsappChannel::Status }, nil?: true
52
+
53
+ # @!attribute waba_id
54
+ #
55
+ # @return [String, nil]
56
+ optional :waba_id, String, nil?: true
57
+
58
+ # @!method initialize(owner_business_id: nil, phone_number_id: nil, reason: nil, reason_code: nil, solution_id: nil, status: nil, waba_id: nil)
59
+ # Some parameter documentations has been truncated, see
60
+ # {Sentdm::Models::Channels::WhatsappChannel} for more details.
61
+ #
62
+ # The profile's WhatsApp account. Its status is Meta's verification state.
63
+ #
64
+ # @param owner_business_id [String, nil] Derived from the organization's shared-account listing, like SolutionId.
65
+ #
66
+ # @param phone_number_id [String, nil] The Meta phone-number id the profile sends from, or null when the account is con
67
+ #
68
+ # @param reason [String, nil] A sentence for reason_code, saying what to do where it is yours. Omitted while A
69
+ #
70
+ # @param reason_code [String, nil] Why the account is not ACTIVE, as a stable code: an ErrorCodes CHANNEL_xxx value
71
+ #
72
+ # @param solution_id [String, nil] Derived, not echoed. The request no longer accepts this — it is read off the org
73
+ #
74
+ # @param status [Symbol, Sentdm::Models::Channels::WhatsappChannel::Status, nil] Read-only. Never carries a token — the row holds that and it is not returned. AC
75
+ #
76
+ # @param waba_id [String, nil]
77
+
78
+ # Read-only. Never carries a token — the row holds that and it is not returned.
79
+ # ACTION_NEEDED when no account is connected or the account has no phone number:
80
+ # both are yours to do.
81
+ #
82
+ # @see Sentdm::Models::Channels::WhatsappChannel#status
83
+ module Status
84
+ extend Sentdm::Internal::Type::Enum
85
+
86
+ # 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.
87
+ PROVISIONING = :PROVISIONING
88
+
89
+ # **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.
90
+ ACTION_NEEDED = :ACTION_NEEDED
91
+
92
+ # 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.
93
+ PENDING_REVIEW = :PENDING_REVIEW
94
+
95
+ # 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.
96
+ ACTIVE = :ACTIVE
97
+
98
+ # **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`.
99
+ INACTIVE = :INACTIVE
100
+
101
+ # @!method self.values
102
+ # @return [Array<Symbol>]
103
+ end
104
+ end
105
+ end
106
+
107
+ WhatsappChannel = Channels::WhatsappChannel
108
+ end
109
+ end
@@ -0,0 +1,65 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Sentdm
4
+ module Models
5
+ module Channels
6
+ # @see Sentdm::Resources::Channels::Whatsapp#create
7
+ class WhatsappCreateParams < Sentdm::Internal::Type::BaseModel
8
+ extend Sentdm::Internal::Type::RequestParameters::Converter
9
+ include Sentdm::Internal::Type::RequestParameters
10
+
11
+ # @!attribute phone_number_id
12
+ # The Meta phone-number id of the number on WabaId, which assigns it to this
13
+ # profile as the number it sends from. It is not checked against the account here,
14
+ # so name the account's number; it is refused if another profile already uses it.
15
+ #
16
+ # Optional: omit it to connect the account and settle the number later. Nothing
17
+ # picks one on your behalf.
18
+ #
19
+ # @return [String, nil]
20
+ optional :phone_number_id, String, nil?: true
21
+
22
+ # @!attribute sandbox
23
+ # Sandbox flag - when true, the operation is simulated without side effects Useful
24
+ # for testing integrations without actual execution
25
+ #
26
+ # @return [Boolean, nil]
27
+ optional :sandbox, Sentdm::Internal::Type::Boolean
28
+
29
+ # @!attribute waba_id
30
+ # WhatsApp Business Account id — one of the accounts shared into your
31
+ # organization. Required: the organization holds one per client, and nothing but
32
+ # the caller says which is meant here.
33
+ #
34
+ # @return [String, nil]
35
+ optional :waba_id, String
36
+
37
+ # @!attribute idempotency_key
38
+ #
39
+ # @return [String, nil]
40
+ optional :idempotency_key, String
41
+
42
+ # @!attribute x_profile_id
43
+ #
44
+ # @return [String, nil]
45
+ optional :x_profile_id, String
46
+
47
+ # @!method initialize(phone_number_id: nil, sandbox: nil, waba_id: nil, idempotency_key: nil, x_profile_id: nil, request_options: {})
48
+ # Some parameter documentations has been truncated, see
49
+ # {Sentdm::Models::Channels::WhatsappCreateParams} for more details.
50
+ #
51
+ # @param phone_number_id [String, nil] The Meta phone-number id of the number on WabaId, which assigns it to this profi
52
+ #
53
+ # @param sandbox [Boolean] Sandbox flag - when true, the operation is simulated without side effects
54
+ #
55
+ # @param waba_id [String] WhatsApp Business Account id — one of the accounts shared into your organization
56
+ #
57
+ # @param idempotency_key [String]
58
+ #
59
+ # @param x_profile_id [String]
60
+ #
61
+ # @param request_options [Sentdm::RequestOptions, Hash{Symbol=>Object}]
62
+ end
63
+ end
64
+ end
65
+ end
@@ -0,0 +1,89 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Sentdm
4
+ module Models
5
+ class ChannelsState < Sentdm::Internal::Type::BaseModel
6
+ # @!attribute customer_id
7
+ # Which customer these channels belong to — the key's own, or the profile named in
8
+ # x-profile-id.
9
+ #
10
+ # Same reason the brand carries one: as the response to /v3/channels there is no
11
+ # other id in the document, and under x-profile-id this is the profile the call
12
+ # resolved to rather than the caller. Absent when nested inside a sender profile,
13
+ # whose own id already says whose they are.
14
+ #
15
+ # @return [String, nil]
16
+ optional :customer_id, String, nil?: true
17
+
18
+ # @!attribute mms
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
+ #
27
+ # @return [Array<Sentdm::Models::MmsMarket>, nil]
28
+ optional :mms, -> { Sentdm::Internal::Type::ArrayOf[Sentdm::MmsMarket] }
29
+
30
+ # @!attribute rcs
31
+ # An RCS agent as its owner sees it: the order form back, plus where the
32
+ # submission stands.
33
+ #
34
+ # Not RcsSenderResponse. That one is the admin projection and carries the pipeline
35
+ # we track about a customer's request — internalStatus, statusReason, isLaunched —
36
+ # and the S3 keys behind the assets. None of that is the customer's to read: an
37
+ # internal status is a note to ourselves, and an S3 key is a storage detail that
38
+ # would become a contract the moment it was published.
39
+ #
40
+ # What is here is what the caller sent, in the names it sent them under, plus the
41
+ # three things only we can answer: the record's id, its status, and the number it
42
+ # sends from. So a read after a write shows the form as stored rather than as
43
+ # echoed.
44
+ #
45
+ # @return [Sentdm::Models::Channels::RcsAgent, nil]
46
+ optional :rcs, -> { Sentdm::Channels::RcsAgent }, nil?: true
47
+
48
+ # @!attribute sms
49
+ #
50
+ # @return [Array<Sentdm::Models::Channels::SMSMarket>, nil]
51
+ optional :sms, -> { Sentdm::Internal::Type::ArrayOf[Sentdm::Channels::SMSMarket] }
52
+
53
+ # @!attribute voice
54
+ # The numbers this profile carries phone calls on, one entry per number, or empty
55
+ # when none. Voice is per number like an SMS market is per country: each number is
56
+ # its own channel row, turned on and off on its own, and one of them is the line
57
+ # app-originated calls fall back to.
58
+ #
59
+ # @return [Array<Sentdm::Models::Channels::VoiceNumber>, nil]
60
+ optional :voice, -> { Sentdm::Internal::Type::ArrayOf[Sentdm::Channels::VoiceNumber] }
61
+
62
+ # @!attribute whatsapp
63
+ # The profile's WhatsApp account. Its status is Meta's verification state.
64
+ #
65
+ # @return [Sentdm::Models::Channels::WhatsappChannel, nil]
66
+ optional :whatsapp, -> { Sentdm::Channels::WhatsappChannel }, nil?: true
67
+
68
+ # @!method initialize(customer_id: nil, mms: nil, rcs: nil, sms: nil, voice: nil, whatsapp: nil)
69
+ # Some parameter documentations has been truncated, see
70
+ # {Sentdm::Models::ChannelsState} for more details.
71
+ #
72
+ # The channels a profile sends on. SMS is a list because a profile can send in
73
+ # several markets; WhatsApp and RCS are single, because a profile has one business
74
+ # account and one agent.
75
+ #
76
+ # @param customer_id [String, nil] Which customer these channels belong to — the key's own, or the profile named in
77
+ #
78
+ # @param mms [Array<Sentdm::Models::MmsMarket>] The markets this profile can send MMS in, one entry per country, or empty when n
79
+ #
80
+ # @param rcs [Sentdm::Models::Channels::RcsAgent, nil] An RCS agent as its owner sees it: the order form back, plus where the submissio
81
+ #
82
+ # @param sms [Array<Sentdm::Models::Channels::SMSMarket>]
83
+ #
84
+ # @param voice [Array<Sentdm::Models::Channels::VoiceNumber>] The numbers this profile carries phone calls on, one entry per number, or empty
85
+ #
86
+ # @param whatsapp [Sentdm::Models::Channels::WhatsappChannel, nil] The profile's WhatsApp account. Its status is Meta's verification state.
87
+ end
88
+ end
89
+ end
@@ -0,0 +1,36 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Sentdm
4
+ module Models
5
+ class ComplianceAttachmentTemplate < Sentdm::Internal::Type::BaseModel
6
+ # @!attribute field_name
7
+ # The multipart field name to attach the file under.
8
+ #
9
+ # @return [String, nil]
10
+ optional :field_name, String
11
+
12
+ # @!attribute label
13
+ #
14
+ # @return [String, nil]
15
+ optional :label, String, nil?: true
16
+
17
+ # @!attribute required
18
+ #
19
+ # @return [Boolean, nil]
20
+ optional :required, Sentdm::Internal::Type::Boolean
21
+
22
+ # @!method initialize(field_name: nil, label: nil, required: nil)
23
+ # A file this market wants, and the multipart field to send it as.
24
+ #
25
+ # Separate from compliance because a file is not JSON: the channel call accepts
26
+ # multipart, and each file is named after the key it satisfies. Listing documents
27
+ # among the JSON entries would describe a request nobody could send.
28
+ #
29
+ # @param field_name [String] The multipart field name to attach the file under.
30
+ #
31
+ # @param label [String, nil]
32
+ #
33
+ # @param required [Boolean]
34
+ end
35
+ end
36
+ end