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,770 @@
1
+ # typed: strong
2
+
3
+ module Sentdm
4
+ module Models
5
+ module Channels
6
+ class MarketCompliance < Sentdm::Internal::Type::BaseModel
7
+ OrHash =
8
+ T.type_alias do
9
+ T.any(Sentdm::Channels::MarketCompliance, Sentdm::Internal::AnyHash)
10
+ end
11
+
12
+ # Business identity. The identity the registration is filed against. Omit to have
13
+ # none; { "inherit": true } to register under your organization's.
14
+ sig { returns(T.nilable(Sentdm::Channels::MarketCompliance::Brand)) }
15
+ attr_reader :brand
16
+
17
+ sig do
18
+ params(brand: Sentdm::Channels::MarketCompliance::Brand::OrHash).void
19
+ end
20
+ attr_writer :brand
21
+
22
+ # Messaging campaign. What the programme sends and how recipients consented. Omit
23
+ # to run on your organization's; supplying it takes one of your own. { "inherit":
24
+ # true } says so outright. Required when `compliance.campaign.inherit != true`.
25
+ sig { returns(T.nilable(Sentdm::Channels::MarketCompliance::Campaign)) }
26
+ attr_reader :campaign
27
+
28
+ sig do
29
+ params(
30
+ campaign: Sentdm::Channels::MarketCompliance::Campaign::OrHash
31
+ ).void
32
+ end
33
+ attr_writer :campaign
34
+
35
+ # The compliance values a market registers with. `brand` and `campaign` apply to
36
+ # US `TEN_DLC`; other markets fill this map with the document keys their own
37
+ # requirements name.
38
+ sig do
39
+ params(
40
+ brand: Sentdm::Channels::MarketCompliance::Brand::OrHash,
41
+ campaign: Sentdm::Channels::MarketCompliance::Campaign::OrHash
42
+ ).returns(T.attached_class)
43
+ end
44
+ def self.new(
45
+ # Business identity. The identity the registration is filed against. Omit to have
46
+ # none; { "inherit": true } to register under your organization's.
47
+ brand: nil,
48
+ # Messaging campaign. What the programme sends and how recipients consented. Omit
49
+ # to run on your organization's; supplying it takes one of your own. { "inherit":
50
+ # true } says so outright. Required when `compliance.campaign.inherit != true`.
51
+ campaign: nil
52
+ )
53
+ end
54
+
55
+ sig do
56
+ override.returns(
57
+ {
58
+ brand: Sentdm::Channels::MarketCompliance::Brand,
59
+ campaign: Sentdm::Channels::MarketCompliance::Campaign
60
+ }
61
+ )
62
+ end
63
+ def to_hash
64
+ end
65
+
66
+ class Brand < Sentdm::Internal::Type::BaseModel
67
+ OrHash =
68
+ T.type_alias do
69
+ T.any(
70
+ Sentdm::Channels::MarketCompliance::Brand,
71
+ Sentdm::Internal::AnyHash
72
+ )
73
+ end
74
+
75
+ # Public-facing name. TCR displayName — the name recipients would recognise. Named
76
+ # for what it holds rather than for TCR's field, which is why it is not
77
+ # `display_name`. Required when `compliance.brand.inherit != true`.
78
+ sig { returns(T.nilable(String)) }
79
+ attr_reader :business_name
80
+
81
+ sig { params(business_name: String).void }
82
+ attr_writer :business_name
83
+
84
+ # City. Required when `compliance.brand.inherit != true`.
85
+ sig { returns(T.nilable(String)) }
86
+ attr_reader :city
87
+
88
+ sig { params(city: String).void }
89
+ attr_writer :city
90
+
91
+ # Contact email. TCR email. Required when `compliance.brand.inherit != true`.
92
+ sig { returns(T.nilable(String)) }
93
+ attr_reader :contact_email
94
+
95
+ sig { params(contact_email: String).void }
96
+ attr_writer :contact_email
97
+
98
+ # Responsible contact. Split into TCR's firstName/lastName on submission.
99
+ # BrandService refuses a blank one, so a missing name is reported here rather than
100
+ # thrown after the profile was written. Required when
101
+ # `compliance.brand.inherit != true`.
102
+ sig { returns(T.nilable(String)) }
103
+ attr_reader :contact_name
104
+
105
+ sig { params(contact_name: String).void }
106
+ attr_writer :contact_name
107
+
108
+ # Contact phone. TCR sends it as both phone and mobilePhone, so it is asked for
109
+ # once. Named for the contact it belongs to rather than as a bare `phone` on a
110
+ # block that also carries an address. Required when
111
+ # `compliance.brand.inherit != true`.
112
+ sig { returns(T.nilable(String)) }
113
+ attr_reader :contact_phone
114
+
115
+ sig { params(contact_phone: String).void }
116
+ attr_writer :contact_phone
117
+
118
+ # Country of registration. Two letters — US. The country spelled out in full is
119
+ # accepted too and stored as its code, which is what a read answers with and what
120
+ # is filed. Required when `compliance.brand.inherit != true`.
121
+ sig { returns(T.nilable(String)) }
122
+ attr_reader :country
123
+
124
+ sig { params(country: String).void }
125
+ attr_writer :country
126
+
127
+ # Country that issued the tax id. TCR einIssuingCountry — where the tax id was
128
+ # issued, which is not always where the business trades. Defaults to `country`
129
+ # when omitted, which is right for most. Takes the code or the country spelled
130
+ # out, as `country` does.
131
+ sig { returns(T.nilable(String)) }
132
+ attr_reader :ein_issuing_country
133
+
134
+ sig { params(ein_issuing_country: String).void }
135
+ attr_writer :ein_issuing_country
136
+
137
+ # Entity type. TCR entityType. Decides which vetting TCR applies and, for
138
+ # SOLE_PROPRIETOR, fixes the campaign fee regardless of volume. Also refused at
139
+ # submission if absent. Required when `compliance.brand.inherit != true`.
140
+ sig do
141
+ returns(
142
+ T.nilable(
143
+ Sentdm::Channels::MarketCompliance::Brand::EntityType::OrSymbol
144
+ )
145
+ )
146
+ end
147
+ attr_reader :entity_type
148
+
149
+ sig do
150
+ params(
151
+ entity_type:
152
+ Sentdm::Channels::MarketCompliance::Brand::EntityType::OrSymbol
153
+ ).void
154
+ end
155
+ attr_writer :entity_type
156
+
157
+ # Run on the organization's brand. True to register under the parent
158
+ # organization's identity rather than one of this profile's own; every field below
159
+ # is then neither asked for nor accepted. Omitted, the brand is the organization's
160
+ # unless this block supplies identity fields, which says plainly enough that it
161
+ # wants one of its own.
162
+ sig { returns(T.nilable(T::Boolean)) }
163
+ attr_reader :inherit
164
+
165
+ sig { params(inherit: T::Boolean).void }
166
+ attr_writer :inherit
167
+
168
+ # Registered legal name. TCR companyName — the name on the incorporation
169
+ # documents, which is often not the name recipients would recognise. Required when
170
+ # `compliance.brand.inherit != true`.
171
+ sig { returns(T.nilable(String)) }
172
+ attr_reader :legal_name
173
+
174
+ sig { params(legal_name: String).void }
175
+ attr_writer :legal_name
176
+
177
+ # Postal code. Required when `compliance.brand.inherit != true`.
178
+ sig { returns(T.nilable(String)) }
179
+ attr_reader :postal_code
180
+
181
+ sig { params(postal_code: String).void }
182
+ attr_writer :postal_code
183
+
184
+ # State or region. TCR state. Two letters for a US registration. Required when
185
+ # `compliance.brand.inherit != true`.
186
+ sig { returns(T.nilable(String)) }
187
+ attr_reader :state
188
+
189
+ sig { params(state: String).void }
190
+ attr_writer :state
191
+
192
+ # Street address. Required when `compliance.brand.inherit != true`.
193
+ sig { returns(T.nilable(String)) }
194
+ attr_reader :street
195
+
196
+ sig { params(street: String).void }
197
+ attr_writer :street
198
+
199
+ # Tax identifier. TCR ein. TcrBrandSubmissionValidator refuses a submission
200
+ # without one, so it is wanted here rather than discovered at filing time.
201
+ # Required when `compliance.brand.inherit != true`.
202
+ sig { returns(T.nilable(String)) }
203
+ attr_reader :tax_id
204
+
205
+ sig { params(tax_id: String).void }
206
+ attr_writer :tax_id
207
+
208
+ # Kind of tax identifier. Which kind of identifier `tax_id` is, e.g. us_ein.
209
+ # Derived onto the brand form, and not itself sent to TCR. Required when
210
+ # `compliance.brand.inherit != true`.
211
+ sig { returns(T.nilable(String)) }
212
+ attr_reader :tax_id_type
213
+
214
+ sig { params(tax_id_type: String).void }
215
+ attr_writer :tax_id_type
216
+
217
+ # Website. TCR website. Optional, and worth sending: carriers weigh it when
218
+ # vetting, so a brand that has one and omits it is vetted on less than it could
219
+ # be.
220
+ sig { returns(T.nilable(String)) }
221
+ attr_reader :website
222
+
223
+ sig { params(website: String).void }
224
+ attr_writer :website
225
+
226
+ # Business identity. The identity the registration is filed against. Omit to have
227
+ # none; { "inherit": true } to register under your organization's.
228
+ sig do
229
+ params(
230
+ business_name: String,
231
+ city: String,
232
+ contact_email: String,
233
+ contact_name: String,
234
+ contact_phone: String,
235
+ country: String,
236
+ ein_issuing_country: String,
237
+ entity_type:
238
+ Sentdm::Channels::MarketCompliance::Brand::EntityType::OrSymbol,
239
+ inherit: T::Boolean,
240
+ legal_name: String,
241
+ postal_code: String,
242
+ state: String,
243
+ street: String,
244
+ tax_id: String,
245
+ tax_id_type: String,
246
+ website: String
247
+ ).returns(T.attached_class)
248
+ end
249
+ def self.new(
250
+ # Public-facing name. TCR displayName — the name recipients would recognise. Named
251
+ # for what it holds rather than for TCR's field, which is why it is not
252
+ # `display_name`. Required when `compliance.brand.inherit != true`.
253
+ business_name: nil,
254
+ # City. Required when `compliance.brand.inherit != true`.
255
+ city: nil,
256
+ # Contact email. TCR email. Required when `compliance.brand.inherit != true`.
257
+ contact_email: nil,
258
+ # Responsible contact. Split into TCR's firstName/lastName on submission.
259
+ # BrandService refuses a blank one, so a missing name is reported here rather than
260
+ # thrown after the profile was written. Required when
261
+ # `compliance.brand.inherit != true`.
262
+ contact_name: nil,
263
+ # Contact phone. TCR sends it as both phone and mobilePhone, so it is asked for
264
+ # once. Named for the contact it belongs to rather than as a bare `phone` on a
265
+ # block that also carries an address. Required when
266
+ # `compliance.brand.inherit != true`.
267
+ contact_phone: nil,
268
+ # Country of registration. Two letters — US. The country spelled out in full is
269
+ # accepted too and stored as its code, which is what a read answers with and what
270
+ # is filed. Required when `compliance.brand.inherit != true`.
271
+ country: nil,
272
+ # Country that issued the tax id. TCR einIssuingCountry — where the tax id was
273
+ # issued, which is not always where the business trades. Defaults to `country`
274
+ # when omitted, which is right for most. Takes the code or the country spelled
275
+ # out, as `country` does.
276
+ ein_issuing_country: nil,
277
+ # Entity type. TCR entityType. Decides which vetting TCR applies and, for
278
+ # SOLE_PROPRIETOR, fixes the campaign fee regardless of volume. Also refused at
279
+ # submission if absent. Required when `compliance.brand.inherit != true`.
280
+ entity_type: nil,
281
+ # Run on the organization's brand. True to register under the parent
282
+ # organization's identity rather than one of this profile's own; every field below
283
+ # is then neither asked for nor accepted. Omitted, the brand is the organization's
284
+ # unless this block supplies identity fields, which says plainly enough that it
285
+ # wants one of its own.
286
+ inherit: nil,
287
+ # Registered legal name. TCR companyName — the name on the incorporation
288
+ # documents, which is often not the name recipients would recognise. Required when
289
+ # `compliance.brand.inherit != true`.
290
+ legal_name: nil,
291
+ # Postal code. Required when `compliance.brand.inherit != true`.
292
+ postal_code: nil,
293
+ # State or region. TCR state. Two letters for a US registration. Required when
294
+ # `compliance.brand.inherit != true`.
295
+ state: nil,
296
+ # Street address. Required when `compliance.brand.inherit != true`.
297
+ street: nil,
298
+ # Tax identifier. TCR ein. TcrBrandSubmissionValidator refuses a submission
299
+ # without one, so it is wanted here rather than discovered at filing time.
300
+ # Required when `compliance.brand.inherit != true`.
301
+ tax_id: nil,
302
+ # Kind of tax identifier. Which kind of identifier `tax_id` is, e.g. us_ein.
303
+ # Derived onto the brand form, and not itself sent to TCR. Required when
304
+ # `compliance.brand.inherit != true`.
305
+ tax_id_type: nil,
306
+ # Website. TCR website. Optional, and worth sending: carriers weigh it when
307
+ # vetting, so a brand that has one and omits it is vetted on less than it could
308
+ # be.
309
+ website: nil
310
+ )
311
+ end
312
+
313
+ sig do
314
+ override.returns(
315
+ {
316
+ business_name: String,
317
+ city: String,
318
+ contact_email: String,
319
+ contact_name: String,
320
+ contact_phone: String,
321
+ country: String,
322
+ ein_issuing_country: String,
323
+ entity_type:
324
+ Sentdm::Channels::MarketCompliance::Brand::EntityType::OrSymbol,
325
+ inherit: T::Boolean,
326
+ legal_name: String,
327
+ postal_code: String,
328
+ state: String,
329
+ street: String,
330
+ tax_id: String,
331
+ tax_id_type: String,
332
+ website: String
333
+ }
334
+ )
335
+ end
336
+ def to_hash
337
+ end
338
+
339
+ # Entity type. TCR entityType. Decides which vetting TCR applies and, for
340
+ # SOLE_PROPRIETOR, fixes the campaign fee regardless of volume. Also refused at
341
+ # submission if absent. Required when `compliance.brand.inherit != true`.
342
+ module EntityType
343
+ extend Sentdm::Internal::Type::Enum
344
+
345
+ TaggedSymbol =
346
+ T.type_alias do
347
+ T.all(
348
+ Symbol,
349
+ Sentdm::Channels::MarketCompliance::Brand::EntityType
350
+ )
351
+ end
352
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
353
+
354
+ PRIVATE_PROFIT =
355
+ T.let(
356
+ :PRIVATE_PROFIT,
357
+ Sentdm::Channels::MarketCompliance::Brand::EntityType::TaggedSymbol
358
+ )
359
+ PUBLIC_PROFIT =
360
+ T.let(
361
+ :PUBLIC_PROFIT,
362
+ Sentdm::Channels::MarketCompliance::Brand::EntityType::TaggedSymbol
363
+ )
364
+ NON_PROFIT =
365
+ T.let(
366
+ :NON_PROFIT,
367
+ Sentdm::Channels::MarketCompliance::Brand::EntityType::TaggedSymbol
368
+ )
369
+ SOLE_PROPRIETOR =
370
+ T.let(
371
+ :SOLE_PROPRIETOR,
372
+ Sentdm::Channels::MarketCompliance::Brand::EntityType::TaggedSymbol
373
+ )
374
+ GOVERNMENT =
375
+ T.let(
376
+ :GOVERNMENT,
377
+ Sentdm::Channels::MarketCompliance::Brand::EntityType::TaggedSymbol
378
+ )
379
+
380
+ sig do
381
+ override.returns(
382
+ T::Array[
383
+ Sentdm::Channels::MarketCompliance::Brand::EntityType::TaggedSymbol
384
+ ]
385
+ )
386
+ end
387
+ def self.values
388
+ end
389
+ end
390
+ end
391
+
392
+ class Campaign < Sentdm::Internal::Type::BaseModel
393
+ OrHash =
394
+ T.type_alias do
395
+ T.any(
396
+ Sentdm::Channels::MarketCompliance::Campaign,
397
+ Sentdm::Internal::AnyHash
398
+ )
399
+ end
400
+
401
+ # What this programme sends. TCR description: what recipients will get and why, in
402
+ # a sentence. The only one of these TCR takes verbatim as a description of the
403
+ # programme, which is why it is asked for rather than derived from the customer's
404
+ # name. Required when `compliance.campaign.inherit != true`.
405
+ sig { returns(T.nilable(String)) }
406
+ attr_reader :description
407
+
408
+ sig { params(description: String).void }
409
+ attr_writer :description
410
+
411
+ # Help keywords. TCR helpKeywords, comma separated, e.g. HELP,INFO. Required when
412
+ # `compliance.campaign.inherit != true`.
413
+ sig { returns(T.nilable(String)) }
414
+ attr_reader :help_keywords
415
+
416
+ sig { params(help_keywords: String).void }
417
+ attr_writer :help_keywords
418
+
419
+ # Help reply. TCR helpMessage. Its presence is what sets subscriberHelp. Required
420
+ # when `compliance.campaign.inherit != true`.
421
+ sig { returns(T.nilable(String)) }
422
+ attr_reader :help_message
423
+
424
+ sig { params(help_message: String).void }
425
+ attr_writer :help_message
426
+
427
+ # Run on the organization's campaign. True to register under the parent
428
+ # organization's programme rather than one of this profile's own; every field
429
+ # below is then neither asked for nor accepted. Owning the identity and inheriting
430
+ # the campaign is refused — a campaign is filed against an identity registration,
431
+ # and chk_tcr_inheritance forbids that pairing outright.
432
+ sig { returns(T.nilable(T::Boolean)) }
433
+ attr_reader :inherit
434
+
435
+ sig { params(inherit: T::Boolean).void }
436
+ attr_writer :inherit
437
+
438
+ # Consent narrative. TCR messageFlow: how recipients opt in, in prose. Under 40
439
+ # characters is refused, and carriers reject vague descriptions — say where opt-in
440
+ # happens, that the box is unchecked by default, and that consent is not a
441
+ # condition of purchase. Required when `compliance.campaign.inherit != true`.
442
+ sig { returns(T.nilable(String)) }
443
+ attr_reader :message_flow
444
+
445
+ sig { params(message_flow: String).void }
446
+ attr_writer :message_flow
447
+
448
+ # Opt-in keywords. TCR optinKeywords, comma separated, e.g. START,YES. Required
449
+ # when `compliance.campaign.inherit != true`.
450
+ sig { returns(T.nilable(String)) }
451
+ attr_reader :opt_in_keywords
452
+
453
+ sig { params(opt_in_keywords: String).void }
454
+ attr_writer :opt_in_keywords
455
+
456
+ # Opt-in confirmation. TCR optinMessage. Should state message frequency and that
457
+ # rates may apply. Its presence is what sets subscriberOptin. Required when
458
+ # `compliance.campaign.inherit != true`.
459
+ sig { returns(T.nilable(String)) }
460
+ attr_reader :opt_in_message
461
+
462
+ sig { params(opt_in_message: String).void }
463
+ attr_writer :opt_in_message
464
+
465
+ # Opt-out keywords. TCR optoutKeywords, comma separated. STOP, END, CANCEL,
466
+ # UNSUBSCRIBE and QUIT are honoured regardless of what is declared. Required when
467
+ # `compliance.campaign.inherit != true`.
468
+ sig { returns(T.nilable(String)) }
469
+ attr_reader :opt_out_keywords
470
+
471
+ sig { params(opt_out_keywords: String).void }
472
+ attr_writer :opt_out_keywords
473
+
474
+ # Opt-out confirmation. TCR optoutMessage. Its presence is what sets
475
+ # subscriberOptout. Required when `compliance.campaign.inherit != true`.
476
+ sig { returns(T.nilable(String)) }
477
+ attr_reader :opt_out_message
478
+
479
+ sig { params(opt_out_message: String).void }
480
+ attr_writer :opt_out_message
481
+
482
+ # Privacy policy URL. TCR privacyPolicyLink. Required when
483
+ # `compliance.campaign.inherit != true`.
484
+ sig { returns(T.nilable(String)) }
485
+ attr_reader :privacy_policy_link
486
+
487
+ sig { params(privacy_policy_link: String).void }
488
+ attr_writer :privacy_policy_link
489
+
490
+ # Terms and conditions URL. TCR termsAndConditionsLink. Required when
491
+ # `compliance.campaign.inherit != true`.
492
+ sig { returns(T.nilable(String)) }
493
+ attr_reader :terms_and_conditions_link
494
+
495
+ sig { params(terms_and_conditions_link: String).void }
496
+ attr_writer :terms_and_conditions_link
497
+
498
+ # Use cases. What the campaign sends, and an example of each. One to five entries;
499
+ # how they register is decided by volume, never declared. Required when
500
+ # `compliance.campaign.inherit != true`.
501
+ sig do
502
+ returns(
503
+ T.nilable(
504
+ T::Array[Sentdm::Channels::MarketCompliance::Campaign::UseCase]
505
+ )
506
+ )
507
+ end
508
+ attr_reader :use_cases
509
+
510
+ sig do
511
+ params(
512
+ use_cases:
513
+ T::Array[
514
+ Sentdm::Channels::MarketCompliance::Campaign::UseCase::OrHash
515
+ ]
516
+ ).void
517
+ end
518
+ attr_writer :use_cases
519
+
520
+ # Expected monthly volume. Decides how the campaign registers and which fee tier
521
+ # applies: below the low-volume threshold it registers as LOW_VOLUME with
522
+ # sub-use-cases, above it as a single use case or MIXED. Omitting it registers the
523
+ # campaign at the higher-fee standard tier.
524
+ sig { returns(T.nilable(String)) }
525
+ attr_reader :volume
526
+
527
+ sig { params(volume: String).void }
528
+ attr_writer :volume
529
+
530
+ # Messaging campaign. What the programme sends and how recipients consented. Omit
531
+ # to run on your organization's; supplying it takes one of your own. { "inherit":
532
+ # true } says so outright. Required when `compliance.campaign.inherit != true`.
533
+ sig do
534
+ params(
535
+ description: String,
536
+ help_keywords: String,
537
+ help_message: String,
538
+ inherit: T::Boolean,
539
+ message_flow: String,
540
+ opt_in_keywords: String,
541
+ opt_in_message: String,
542
+ opt_out_keywords: String,
543
+ opt_out_message: String,
544
+ privacy_policy_link: String,
545
+ terms_and_conditions_link: String,
546
+ use_cases:
547
+ T::Array[
548
+ Sentdm::Channels::MarketCompliance::Campaign::UseCase::OrHash
549
+ ],
550
+ volume: String
551
+ ).returns(T.attached_class)
552
+ end
553
+ def self.new(
554
+ # What this programme sends. TCR description: what recipients will get and why, in
555
+ # a sentence. The only one of these TCR takes verbatim as a description of the
556
+ # programme, which is why it is asked for rather than derived from the customer's
557
+ # name. Required when `compliance.campaign.inherit != true`.
558
+ description: nil,
559
+ # Help keywords. TCR helpKeywords, comma separated, e.g. HELP,INFO. Required when
560
+ # `compliance.campaign.inherit != true`.
561
+ help_keywords: nil,
562
+ # Help reply. TCR helpMessage. Its presence is what sets subscriberHelp. Required
563
+ # when `compliance.campaign.inherit != true`.
564
+ help_message: nil,
565
+ # Run on the organization's campaign. True to register under the parent
566
+ # organization's programme rather than one of this profile's own; every field
567
+ # below is then neither asked for nor accepted. Owning the identity and inheriting
568
+ # the campaign is refused — a campaign is filed against an identity registration,
569
+ # and chk_tcr_inheritance forbids that pairing outright.
570
+ inherit: nil,
571
+ # Consent narrative. TCR messageFlow: how recipients opt in, in prose. Under 40
572
+ # characters is refused, and carriers reject vague descriptions — say where opt-in
573
+ # happens, that the box is unchecked by default, and that consent is not a
574
+ # condition of purchase. Required when `compliance.campaign.inherit != true`.
575
+ message_flow: nil,
576
+ # Opt-in keywords. TCR optinKeywords, comma separated, e.g. START,YES. Required
577
+ # when `compliance.campaign.inherit != true`.
578
+ opt_in_keywords: nil,
579
+ # Opt-in confirmation. TCR optinMessage. Should state message frequency and that
580
+ # rates may apply. Its presence is what sets subscriberOptin. Required when
581
+ # `compliance.campaign.inherit != true`.
582
+ opt_in_message: nil,
583
+ # Opt-out keywords. TCR optoutKeywords, comma separated. STOP, END, CANCEL,
584
+ # UNSUBSCRIBE and QUIT are honoured regardless of what is declared. Required when
585
+ # `compliance.campaign.inherit != true`.
586
+ opt_out_keywords: nil,
587
+ # Opt-out confirmation. TCR optoutMessage. Its presence is what sets
588
+ # subscriberOptout. Required when `compliance.campaign.inherit != true`.
589
+ opt_out_message: nil,
590
+ # Privacy policy URL. TCR privacyPolicyLink. Required when
591
+ # `compliance.campaign.inherit != true`.
592
+ privacy_policy_link: nil,
593
+ # Terms and conditions URL. TCR termsAndConditionsLink. Required when
594
+ # `compliance.campaign.inherit != true`.
595
+ terms_and_conditions_link: nil,
596
+ # Use cases. What the campaign sends, and an example of each. One to five entries;
597
+ # how they register is decided by volume, never declared. Required when
598
+ # `compliance.campaign.inherit != true`.
599
+ use_cases: nil,
600
+ # Expected monthly volume. Decides how the campaign registers and which fee tier
601
+ # applies: below the low-volume threshold it registers as LOW_VOLUME with
602
+ # sub-use-cases, above it as a single use case or MIXED. Omitting it registers the
603
+ # campaign at the higher-fee standard tier.
604
+ volume: nil
605
+ )
606
+ end
607
+
608
+ sig do
609
+ override.returns(
610
+ {
611
+ description: String,
612
+ help_keywords: String,
613
+ help_message: String,
614
+ inherit: T::Boolean,
615
+ message_flow: String,
616
+ opt_in_keywords: String,
617
+ opt_in_message: String,
618
+ opt_out_keywords: String,
619
+ opt_out_message: String,
620
+ privacy_policy_link: String,
621
+ terms_and_conditions_link: String,
622
+ use_cases:
623
+ T::Array[
624
+ Sentdm::Channels::MarketCompliance::Campaign::UseCase
625
+ ],
626
+ volume: String
627
+ }
628
+ )
629
+ end
630
+ def to_hash
631
+ end
632
+
633
+ class UseCase < Sentdm::Internal::Type::BaseModel
634
+ OrHash =
635
+ T.type_alias do
636
+ T.any(
637
+ Sentdm::Channels::MarketCompliance::Campaign::UseCase,
638
+ Sentdm::Internal::AnyHash
639
+ )
640
+ end
641
+
642
+ # Sample messages. TCR sample1..sample5 for this use case. One to five, each
643
+ # carrying the brand name and an opt-out instruction.
644
+ sig { returns(T::Array[T.anything]) }
645
+ attr_accessor :sample_messages
646
+
647
+ # Use case. What this entry sends. MIXED and LOW_VOLUME are refused — volume
648
+ # decides those.
649
+ sig do
650
+ returns(
651
+ Sentdm::Channels::MarketCompliance::Campaign::UseCase::UseCase::OrSymbol
652
+ )
653
+ end
654
+ attr_accessor :use_case
655
+
656
+ sig do
657
+ params(
658
+ sample_messages: T::Array[T.anything],
659
+ use_case:
660
+ Sentdm::Channels::MarketCompliance::Campaign::UseCase::UseCase::OrSymbol
661
+ ).returns(T.attached_class)
662
+ end
663
+ def self.new(
664
+ # Sample messages. TCR sample1..sample5 for this use case. One to five, each
665
+ # carrying the brand name and an opt-out instruction.
666
+ sample_messages:,
667
+ # Use case. What this entry sends. MIXED and LOW_VOLUME are refused — volume
668
+ # decides those.
669
+ use_case:
670
+ )
671
+ end
672
+
673
+ sig do
674
+ override.returns(
675
+ {
676
+ sample_messages: T::Array[T.anything],
677
+ use_case:
678
+ Sentdm::Channels::MarketCompliance::Campaign::UseCase::UseCase::OrSymbol
679
+ }
680
+ )
681
+ end
682
+ def to_hash
683
+ end
684
+
685
+ # Use case. What this entry sends. MIXED and LOW_VOLUME are refused — volume
686
+ # decides those.
687
+ module UseCase
688
+ extend Sentdm::Internal::Type::Enum
689
+
690
+ TaggedSymbol =
691
+ T.type_alias do
692
+ T.all(
693
+ Symbol,
694
+ Sentdm::Channels::MarketCompliance::Campaign::UseCase::UseCase
695
+ )
696
+ end
697
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
698
+
699
+ MARKETING =
700
+ T.let(
701
+ :MARKETING,
702
+ Sentdm::Channels::MarketCompliance::Campaign::UseCase::UseCase::TaggedSymbol
703
+ )
704
+ ACCOUNT_NOTIFICATION =
705
+ T.let(
706
+ :ACCOUNT_NOTIFICATION,
707
+ Sentdm::Channels::MarketCompliance::Campaign::UseCase::UseCase::TaggedSymbol
708
+ )
709
+ CUSTOMER_CARE =
710
+ T.let(
711
+ :CUSTOMER_CARE,
712
+ Sentdm::Channels::MarketCompliance::Campaign::UseCase::UseCase::TaggedSymbol
713
+ )
714
+ FRAUD_ALERT =
715
+ T.let(
716
+ :FRAUD_ALERT,
717
+ Sentdm::Channels::MarketCompliance::Campaign::UseCase::UseCase::TaggedSymbol
718
+ )
719
+ USE_CASE_2_FA =
720
+ T.let(
721
+ :"2FA",
722
+ Sentdm::Channels::MarketCompliance::Campaign::UseCase::UseCase::TaggedSymbol
723
+ )
724
+ DELIVERY_NOTIFICATION =
725
+ T.let(
726
+ :DELIVERY_NOTIFICATION,
727
+ Sentdm::Channels::MarketCompliance::Campaign::UseCase::UseCase::TaggedSymbol
728
+ )
729
+ SECURITY_ALERT =
730
+ T.let(
731
+ :SECURITY_ALERT,
732
+ Sentdm::Channels::MarketCompliance::Campaign::UseCase::UseCase::TaggedSymbol
733
+ )
734
+ M2_M =
735
+ T.let(
736
+ :M2M,
737
+ Sentdm::Channels::MarketCompliance::Campaign::UseCase::UseCase::TaggedSymbol
738
+ )
739
+ HIGHER_EDUCATION =
740
+ T.let(
741
+ :HIGHER_EDUCATION,
742
+ Sentdm::Channels::MarketCompliance::Campaign::UseCase::UseCase::TaggedSymbol
743
+ )
744
+ POLLING_VOTING =
745
+ T.let(
746
+ :POLLING_VOTING,
747
+ Sentdm::Channels::MarketCompliance::Campaign::UseCase::UseCase::TaggedSymbol
748
+ )
749
+ PUBLIC_SERVICE_ANNOUNCEMENT =
750
+ T.let(
751
+ :PUBLIC_SERVICE_ANNOUNCEMENT,
752
+ Sentdm::Channels::MarketCompliance::Campaign::UseCase::UseCase::TaggedSymbol
753
+ )
754
+
755
+ sig do
756
+ override.returns(
757
+ T::Array[
758
+ Sentdm::Channels::MarketCompliance::Campaign::UseCase::UseCase::TaggedSymbol
759
+ ]
760
+ )
761
+ end
762
+ def self.values
763
+ end
764
+ end
765
+ end
766
+ end
767
+ end
768
+ end
769
+ end
770
+ end