rcs 1.0.18 → 2.0.0.pre.rc.2

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 (321) hide show
  1. checksums.yaml +4 -4
  2. data/lib/environment.rb +1 -1
  3. data/lib/rcs/brands/client.rb +631 -0
  4. data/lib/rcs/brands/types/autofill_brand_schema_options.rb +61 -0
  5. data/lib/rcs/brands/types/brand_contact.rb +84 -0
  6. data/lib/rcs/campaigns/client.rb +44 -0
  7. data/lib/rcs/campaigns/dlc/client.rb +480 -0
  8. data/lib/rcs/campaigns/dlc/types/upsert_dlc_schema_keywords.rb +99 -0
  9. data/lib/rcs/campaigns/dlc/types/upsert_dlc_schema_keywords_help.rb +74 -0
  10. data/lib/rcs/campaigns/dlc/types/upsert_dlc_schema_keywords_opt_in.rb +74 -0
  11. data/lib/rcs/campaigns/dlc/types/upsert_dlc_schema_keywords_opt_out.rb +74 -0
  12. data/lib/rcs/campaigns/dlc/types/upsert_dlc_schema_links.rb +74 -0
  13. data/lib/rcs/campaigns/dlc/types/upsert_dlc_schema_options.rb +110 -0
  14. data/lib/rcs/campaigns/dlc/types/upsert_dlc_schema_use_case.rb +76 -0
  15. data/lib/rcs/campaigns/rcs/client.rb +457 -0
  16. data/lib/rcs/campaigns/rcs/types/rcs_autofill_response.rb +155 -0
  17. data/lib/rcs/campaigns/rcs/types/upsert_rcs_schema_agent.rb +140 -0
  18. data/lib/rcs/campaigns/rcs/types/upsert_rcs_schema_agent_emails_item.rb +73 -0
  19. data/lib/rcs/campaigns/rcs/types/upsert_rcs_schema_agent_phones_item.rb +73 -0
  20. data/lib/rcs/campaigns/rcs/types/upsert_rcs_schema_agent_websites_item.rb +73 -0
  21. data/lib/rcs/campaigns/rcs/types/upsert_rcs_schema_links.rb +74 -0
  22. data/lib/rcs/campaigns/rcs/types/upsert_rcs_schema_opt_in.rb +75 -0
  23. data/lib/rcs/campaigns/rcs/types/upsert_rcs_schema_opt_out.rb +76 -0
  24. data/lib/rcs/campaigns/rcs/types/upsert_rcs_schema_use_case.rb +75 -0
  25. data/lib/rcs/campaigns/toll_free/client.rb +429 -0
  26. data/lib/rcs/campaigns/toll_free/types/toll_free_autofill_response.rb +130 -0
  27. data/lib/rcs/campaigns/toll_free/types/upsert_toll_free_schema_opt_in.rb +86 -0
  28. data/lib/rcs/campaigns/toll_free/types/upsert_toll_free_schema_use_case.rb +75 -0
  29. data/lib/rcs/contacts/client.rb +275 -0
  30. data/lib/rcs/conversations/client.rb +273 -0
  31. data/lib/rcs/message/client.rb +30 -0
  32. data/lib/rcs/message/sms/client.rb +96 -0
  33. data/lib/rcs/messages/client.rb +192 -0
  34. data/lib/rcs/messages/mms/client.rb +98 -0
  35. data/lib/rcs/messages/rcs/client.rb +94 -0
  36. data/lib/rcs/messages/send/client.rb +318 -0
  37. data/lib/rcs/messages/send/types/send_mms_response.rb +60 -0
  38. data/lib/rcs/messages/send/types/send_mms_schema_options.rb +108 -0
  39. data/lib/rcs/messages/send/types/send_rcs_response.rb +60 -0
  40. data/lib/rcs/messages/send/types/send_sms_response.rb +60 -0
  41. data/lib/rcs/messages/send/types/send_sms_schema_options.rb +81 -0
  42. data/lib/rcs/messages/types/message_reaction_schema_options.rb +71 -0
  43. data/lib/rcs/phone_numbers/campaign/client.rb +179 -0
  44. data/lib/rcs/phone_numbers/client.rb +359 -0
  45. data/lib/rcs/phone_numbers/types/phone_details_schema_level.rb +16 -0
  46. data/lib/rcs/phone_numbers/types/phone_details_schema_options.rb +93 -0
  47. data/lib/rcs/phone_numbers/types/phone_details_schema_options_enhanced_contact_info.rb +64 -0
  48. data/lib/rcs/phone_numbers/types/phone_numbers_get_response.rb +58 -0
  49. data/lib/rcs/phone_numbers/types/search_schema_location.rb +96 -0
  50. data/lib/rcs/phone_numbers/types/search_schema_number.rb +81 -0
  51. data/lib/rcs/phone_numbers/types/search_schema_options.rb +62 -0
  52. data/lib/rcs/phone_numbers/webhook/client.rb +191 -0
  53. data/lib/rcs/status/client.rb +30 -0
  54. data/lib/rcs/status/get/client.rb +367 -0
  55. data/lib/rcs/tools/client.rb +32 -199
  56. data/lib/rcs/tools/contact_card/client.rb +285 -0
  57. data/lib/rcs/tools/contact_card/types/get_v_card_schema_options.rb +67 -0
  58. data/lib/rcs/tools/file/client.rb +138 -0
  59. data/lib/rcs/tools/file/types/file_upload_schema_options.rb +70 -0
  60. data/lib/rcs/tools/file/types/file_upload_schema_options_download.rb +66 -0
  61. data/lib/rcs/tools/url/client.rb +245 -0
  62. data/lib/rcs/types/advanced_phone_information.rb +147 -0
  63. data/lib/rcs/types/advanced_phone_information_carrier.rb +90 -0
  64. data/lib/rcs/types/advanced_phone_information_contact.rb +146 -0
  65. data/lib/rcs/types/advanced_phone_information_location.rb +142 -0
  66. data/lib/rcs/types/advanced_phone_information_location_coordinates.rb +73 -0
  67. data/lib/rcs/types/advanced_phone_information_location_country.rb +77 -0
  68. data/lib/rcs/types/advanced_phone_information_type.rb +97 -0
  69. data/lib/rcs/types/advanced_phone_information_type_recommendation.rb +15 -0
  70. data/lib/rcs/types/agent.rb +68 -0
  71. data/lib/rcs/types/attach_webhook_params.rb +60 -0
  72. data/lib/rcs/types/attach_webhook_response_webhook.rb +86 -0
  73. data/lib/rcs/types/attach_webhook_schema_name.rb +88 -0
  74. data/lib/rcs/types/attach_webhook_schema_webhook_id.rb +77 -0
  75. data/lib/rcs/types/attached_phone_number_result.rb +75 -0
  76. data/lib/rcs/types/autofill_campaign_params.rb +69 -0
  77. data/lib/rcs/types/autofill_dlc_campaign_response.rb +169 -0
  78. data/lib/rcs/types/autofill_dlc_response_keywords.rb +95 -0
  79. data/lib/rcs/types/autofill_dlc_response_keywords_help.rb +70 -0
  80. data/lib/rcs/{send/types/send_sms_response.rb → types/autofill_dlc_response_keywords_opt_in.rb} +18 -17
  81. data/lib/rcs/types/autofill_dlc_response_keywords_opt_out.rb +70 -0
  82. data/lib/rcs/types/autofill_dlc_response_links.rb +70 -0
  83. data/lib/rcs/types/autofill_dlc_response_options.rb +106 -0
  84. data/lib/rcs/types/autofill_dlc_response_use_case.rb +72 -0
  85. data/lib/rcs/types/bad_request_error_body.rb +44 -45
  86. data/lib/rcs/types/basic_phone_information.rb +127 -0
  87. data/lib/rcs/{company/types/company_register_response_brand.rb → types/basic_phone_information_contact.rb} +12 -21
  88. data/lib/rcs/types/basic_phone_information_location.rb +74 -0
  89. data/lib/rcs/types/basic_phone_information_location_country.rb +75 -0
  90. data/lib/rcs/types/brand_status.rb +92 -0
  91. data/lib/rcs/types/brand_status_enum.rb +21 -0
  92. data/lib/rcs/types/buy_response_capabilities.rb +77 -0
  93. data/lib/rcs/types/campaign_enum.rb +15 -0
  94. data/lib/rcs/types/campaign_query.rb +69 -0
  95. data/lib/rcs/{company/types/company_register_request_company_id.rb → types/campaign_submission_result.rb} +15 -16
  96. data/lib/rcs/types/campaign_validation_response_errors_item.rb +76 -0
  97. data/lib/rcs/types/campaign_validation_result.rb +71 -0
  98. data/lib/rcs/types/click_action.rb +73 -0
  99. data/lib/rcs/types/click_action_data.rb +56 -0
  100. data/lib/rcs/types/click_action_data_metadata.rb +69 -0
  101. data/lib/rcs/types/company_sector_enum.rb +26 -0
  102. data/lib/rcs/types/company_type_enum.rb +14 -0
  103. data/lib/rcs/types/configured_webhook.rb +85 -0
  104. data/lib/rcs/types/contact.rb +105 -0
  105. data/lib/rcs/types/contact_id.rb +57 -0
  106. data/lib/rcs/types/conversation.rb +146 -0
  107. data/lib/rcs/types/conversation_contact.rb +68 -0
  108. data/lib/rcs/types/conversation_list.rb +79 -0
  109. data/lib/rcs/types/conversation_sender.rb +60 -0
  110. data/lib/rcs/types/create_url_options.rb +61 -0
  111. data/lib/rcs/types/detached_phone_number_result.rb +75 -0
  112. data/lib/rcs/types/detached_webhook_info.rb +74 -0
  113. data/lib/rcs/types/detailed_phone_number_enum.rb +25 -0
  114. data/lib/rcs/types/dlc_assignment_status_enum.rb +19 -0
  115. data/lib/rcs/types/dlc_campaign_status.rb +107 -0
  116. data/lib/rcs/types/dlc_campaign_use_case_enum.rb +35 -0
  117. data/lib/rcs/types/dlc_campaign_with_extended_brand_and_status.rb +194 -0
  118. data/lib/rcs/types/dlc_with_extended_brand_and_status_keywords.rb +94 -0
  119. data/lib/rcs/types/dlc_with_extended_brand_and_status_keywords_help.rb +72 -0
  120. data/lib/rcs/{send/types/send_mms_response.rb → types/dlc_with_extended_brand_and_status_keywords_opt_in.rb} +20 -17
  121. data/lib/rcs/{send/types/send_rcs_response.rb → types/dlc_with_extended_brand_and_status_keywords_opt_out.rb} +20 -17
  122. data/lib/rcs/types/dlc_with_extended_brand_and_status_links.rb +70 -0
  123. data/lib/rcs/types/dlc_with_extended_brand_and_status_options.rb +106 -0
  124. data/lib/rcs/types/dlc_with_extended_brand_and_status_use_case.rb +72 -0
  125. data/lib/rcs/types/enhanced_contact.rb +9 -0
  126. data/lib/rcs/types/enhanced_contact_item.rb +104 -0
  127. data/lib/rcs/types/error.rb +61 -0
  128. data/lib/rcs/types/extended_brand.rb +194 -0
  129. data/lib/rcs/types/extended_brand_with_vetting.rb +226 -0
  130. data/lib/rcs/types/extended_rcs_campaign.rb +173 -0
  131. data/lib/rcs/{company/types/company_register_request.rb → types/get_conversation_params.rb} +13 -12
  132. data/lib/rcs/types/get_conversation_request_id.rb +58 -0
  133. data/lib/rcs/types/get_conversation_request_recipient.rb +72 -0
  134. data/lib/rcs/types/get_dlc_campaign_status_response_updates.rb +96 -0
  135. data/lib/rcs/types/get_toll_free_campaign_status_response_updates.rb +92 -0
  136. data/lib/rcs/types/inbound_button.rb +56 -0
  137. data/lib/rcs/types/link_click_event.rb +465 -0
  138. data/lib/rcs/{company/types/company_update_response.rb → types/location_share_action.rb} +19 -19
  139. data/lib/rcs/types/location_share_action_data.rb +89 -0
  140. data/lib/rcs/types/message.rb +174 -0
  141. data/lib/rcs/types/message_content.rb +85 -0
  142. data/lib/rcs/types/message_method_enum.rb +12 -0
  143. data/lib/rcs/types/message_protocol_enum.rb +12 -0
  144. data/lib/rcs/types/message_schedule.rb +94 -0
  145. data/lib/rcs/types/message_status_enum.rb +16 -0
  146. data/lib/rcs/types/message_volume_enum.rb +20 -0
  147. data/lib/rcs/types/messaging_profile_enum.rb +11 -0
  148. data/lib/rcs/types/mms_content.rb +74 -0
  149. data/lib/rcs/types/mms_validation_response_segments.rb +85 -0
  150. data/lib/rcs/types/mms_validation_response_segments_value_item.rb +75 -0
  151. data/lib/rcs/types/mms_validation_result.rb +82 -0
  152. data/lib/rcs/types/nullable_contact.rb +84 -0
  153. data/lib/rcs/types/number_format.rb +79 -0
  154. data/lib/rcs/types/opt_in_method_enum.rb +13 -0
  155. data/lib/rcs/types/optional_brand_info.rb +145 -0
  156. data/lib/rcs/types/optional_contact.rb +83 -0
  157. data/lib/rcs/types/optional_contacts.rb +84 -0
  158. data/lib/rcs/types/phone.rb +101 -0
  159. data/lib/rcs/types/phone_capabilities.rb +75 -0
  160. data/lib/rcs/types/phone_enum.rb +13 -0
  161. data/lib/rcs/types/phone_feature_enum.rb +18 -0
  162. data/lib/rcs/types/phone_number_campaign_attach_failed_item.rb +67 -0
  163. data/lib/rcs/types/phone_number_campaign_attach_phone_numbers_item.rb +75 -0
  164. data/lib/rcs/types/phone_number_campaign_attach_phone_numbers_item_campaign.rb +78 -0
  165. data/lib/rcs/types/phone_number_campaign_detach_failed_item.rb +67 -0
  166. data/lib/rcs/types/phone_number_campaign_detach_phone_numbers_item.rb +75 -0
  167. data/lib/rcs/types/phone_number_campaign_detach_phone_numbers_item_campaign.rb +78 -0
  168. data/lib/rcs/types/phone_number_cost.rb +75 -0
  169. data/lib/rcs/types/phone_number_details.rb +110 -0
  170. data/lib/rcs/types/phone_number_enum.rb +18 -0
  171. data/lib/rcs/types/phone_number_region.rb +91 -0
  172. data/lib/rcs/types/phone_number_status.rb +90 -0
  173. data/lib/rcs/types/phone_number_status_enum.rb +16 -0
  174. data/lib/rcs/types/pinnacle_file_upload_metadata.rb +84 -0
  175. data/lib/rcs/types/pinnacle_url_config.rb +71 -0
  176. data/lib/rcs/types/profile_status_enum.rb +17 -0
  177. data/lib/rcs/types/purchased_number.rb +75 -0
  178. data/lib/rcs/types/rcs.rb +70 -0
  179. data/lib/rcs/types/rcs_base.rb +82 -0
  180. data/lib/rcs/types/rcs_base_options.rb +100 -0
  181. data/lib/rcs/types/rcs_button_call.rb +68 -0
  182. data/lib/rcs/types/rcs_button_content.rb +148 -0
  183. data/lib/rcs/types/rcs_button_open_url.rb +68 -0
  184. data/lib/rcs/types/rcs_button_request_user_location.rb +58 -0
  185. data/lib/rcs/types/rcs_button_schedule_event.rb +98 -0
  186. data/lib/rcs/types/rcs_button_send_location.rb +74 -0
  187. data/lib/rcs/types/rcs_button_send_location_lat_long.rb +68 -0
  188. data/lib/rcs/types/rcs_button_trigger.rb +78 -0
  189. data/lib/rcs/types/rcs_campaign.rb +143 -0
  190. data/lib/rcs/types/rcs_campaign_opt_in_method_enum.rb +15 -0
  191. data/lib/rcs/types/rcs_campaign_schema_agent.rb +134 -0
  192. data/lib/rcs/types/rcs_campaign_schema_agent_emails_item.rb +69 -0
  193. data/lib/rcs/types/rcs_campaign_schema_agent_phones_item.rb +69 -0
  194. data/lib/rcs/types/rcs_campaign_schema_agent_websites_item.rb +69 -0
  195. data/lib/rcs/types/rcs_campaign_schema_extra_agent.rb +134 -0
  196. data/lib/rcs/types/rcs_campaign_schema_extra_agent_emails_item.rb +70 -0
  197. data/lib/rcs/types/rcs_campaign_schema_extra_agent_phones_item.rb +70 -0
  198. data/lib/rcs/types/rcs_campaign_schema_extra_agent_websites_item.rb +71 -0
  199. data/lib/rcs/types/rcs_campaign_schema_extra_links.rb +70 -0
  200. data/lib/rcs/types/rcs_campaign_schema_extra_opt_in.rb +71 -0
  201. data/lib/rcs/types/rcs_campaign_schema_extra_opt_out.rb +70 -0
  202. data/lib/rcs/types/rcs_campaign_schema_extra_use_case.rb +71 -0
  203. data/lib/rcs/types/rcs_campaign_schema_links.rb +70 -0
  204. data/lib/rcs/types/rcs_campaign_schema_opt_in.rb +71 -0
  205. data/lib/rcs/types/rcs_campaign_schema_opt_out.rb +70 -0
  206. data/lib/rcs/types/rcs_campaign_schema_use_case.rb +71 -0
  207. data/lib/rcs/types/rcs_campaign_status.rb +86 -0
  208. data/lib/rcs/types/rcs_campaign_use_case_enum.rb +23 -0
  209. data/lib/rcs/types/rcs_card.rb +110 -0
  210. data/lib/rcs/types/rcs_cards.rb +79 -0
  211. data/lib/rcs/types/rcs_cards_cards_item.rb +88 -0
  212. data/lib/rcs/types/rcs_cards_content.rb +79 -0
  213. data/lib/rcs/types/rcs_cards_content_cards_item.rb +94 -0
  214. data/lib/rcs/types/rcs_content.rb +72 -0
  215. data/lib/rcs/types/rcs_media.rb +110 -0
  216. data/lib/rcs/types/rcs_media_content.rb +81 -0
  217. data/lib/rcs/types/rcs_media_details_content.rb +77 -0
  218. data/lib/rcs/types/rcs_text.rb +106 -0
  219. data/lib/rcs/types/rcs_text_content.rb +72 -0
  220. data/lib/rcs/types/rcs_validate_content.rb +70 -0
  221. data/lib/rcs/{company/types/company_register_response.rb → types/rcs_validate_content_media.rb} +19 -21
  222. data/lib/rcs/types/rcs_validation_result.rb +76 -0
  223. data/lib/rcs/types/reaction_result.rb +67 -0
  224. data/lib/rcs/types/scheduled_messaage.rb +73 -0
  225. data/lib/rcs/types/scheduled_send_response_config.rb +89 -0
  226. data/lib/rcs/types/send_sms_response_segments.rb +69 -0
  227. data/lib/rcs/types/send_sms_response_segments_encoding.rb +11 -0
  228. data/lib/rcs/types/sent_mms_details.rb +102 -0
  229. data/lib/rcs/types/sent_rcs_details.rb +105 -0
  230. data/lib/rcs/types/sent_sms_details.rb +108 -0
  231. data/lib/rcs/types/shortened_url.rb +77 -0
  232. data/lib/rcs/types/shortened_url_with_click_data.rb +90 -0
  233. data/lib/rcs/types/sms_content.rb +58 -0
  234. data/lib/rcs/types/sms_validation_response_segments.rb +80 -0
  235. data/lib/rcs/types/sms_validation_response_segments_gsm_7.rb +75 -0
  236. data/lib/rcs/types/sms_validation_response_segments_utf_16.rb +68 -0
  237. data/lib/rcs/types/sms_validation_response_total.rb +75 -0
  238. data/lib/rcs/types/sms_validation_result.rb +102 -0
  239. data/lib/rcs/types/sub_use_case_enum.rb +19 -0
  240. data/lib/rcs/types/submission_results.rb +57 -0
  241. data/lib/rcs/types/successful_conversation_update.rb +58 -0
  242. data/lib/rcs/types/toll_free_campaign.rb +118 -0
  243. data/lib/rcs/types/toll_free_campaign_schema_opt_in.rb +78 -0
  244. data/lib/rcs/types/toll_free_campaign_schema_use_case.rb +71 -0
  245. data/lib/rcs/types/toll_free_campaign_status.rb +91 -0
  246. data/lib/rcs/types/toll_free_campaign_use_case_enum.rb +52 -0
  247. data/lib/rcs/types/toll_free_campaign_with_extended_brand_and_status.rb +155 -0
  248. data/lib/rcs/types/toll_free_status_enum.rb +20 -0
  249. data/lib/rcs/types/tracking.rb +17 -0
  250. data/lib/rcs/types/updated_contact_id.rb +57 -0
  251. data/lib/rcs/types/upload_results.rb +80 -0
  252. data/lib/rcs/types/v_card_address_schema_type_item.rb +15 -0
  253. data/lib/rcs/types/v_card_data.rb +237 -0
  254. data/lib/rcs/types/v_card_data_file.rb +74 -0
  255. data/lib/rcs/types/v_card_data_file_metadata.rb +62 -0
  256. data/lib/rcs/types/v_card_email_schema_type_item.rb +21 -0
  257. data/lib/rcs/types/v_card_geo.rb +70 -0
  258. data/lib/rcs/types/v_card_name.rb +98 -0
  259. data/lib/rcs/types/v_card_organization.rb +70 -0
  260. data/lib/rcs/types/v_card_phone_schema_type_item.rb +21 -0
  261. data/lib/rcs/types/validate_campaign_params.rb +69 -0
  262. data/lib/rcs/types/validation_error_details.rb +76 -0
  263. data/lib/rcs/types/validation_results.rb +71 -0
  264. data/lib/rcs/types/vcard.rb +215 -0
  265. data/lib/rcs/types/vcard_address.rb +130 -0
  266. data/lib/rcs/types/vcard_content.rb +223 -0
  267. data/lib/rcs/types/vcard_email.rb +70 -0
  268. data/lib/rcs/types/vcard_phone.rb +70 -0
  269. data/lib/rcs/types/vcard_resource.rb +71 -0
  270. data/lib/rcs/types/vetting_feedback.rb +81 -0
  271. data/lib/rcs/types/vetting_history.rb +98 -0
  272. data/lib/rcs/types/vetting_history_vetting_status.rb +13 -0
  273. data/lib/rcs/types/vetting_results.rb +57 -0
  274. data/lib/rcs/types/webhook_event_enum.rb +13 -0
  275. data/lib/rcs/types/webhook_result.rb +64 -0
  276. data/lib/rcs/{company/types/company_update_response_brand.rb → types/webhooks.rb} +25 -17
  277. data/lib/rcs/types/zod_error.rb +73 -0
  278. data/lib/rcs/webhooks/client.rb +93 -0
  279. data/lib/rcs.rb +67 -83
  280. data/lib/requests.rb +4 -4
  281. data/lib/types_export.rb +252 -46
  282. metadata +278 -52
  283. data/lib/rcs/company/client.rb +0 -375
  284. data/lib/rcs/company/types/company_register_request_company.rb +0 -128
  285. data/lib/rcs/send/client.rb +0 -382
  286. data/lib/rcs/send/types/rcs_fallback.rb +0 -84
  287. data/lib/rcs/tools/types/tools_shorten_url_response.rb +0 -70
  288. data/lib/rcs/tools/types/tools_upload_url_response.rb +0 -69
  289. data/lib/rcs/types/action.rb +0 -154
  290. data/lib/rcs/types/action_lat_long.rb +0 -68
  291. data/lib/rcs/types/action_type.rb +0 -16
  292. data/lib/rcs/types/additional_email.rb +0 -65
  293. data/lib/rcs/types/additional_phone_number.rb +0 -65
  294. data/lib/rcs/types/additional_website.rb +0 -65
  295. data/lib/rcs/types/card.rb +0 -90
  296. data/lib/rcs/types/company.rb +0 -319
  297. data/lib/rcs/types/company_additional_emails_item.rb +0 -67
  298. data/lib/rcs/types/company_additional_phone_numbers_item.rb +0 -67
  299. data/lib/rcs/types/company_additional_websites_item.rb +0 -67
  300. data/lib/rcs/types/company_category.rb +0 -20
  301. data/lib/rcs/types/company_contact.rb +0 -117
  302. data/lib/rcs/types/company_details.rb +0 -120
  303. data/lib/rcs/types/forbidden_error_body.rb +0 -57
  304. data/lib/rcs/types/inbound_action_message.rb +0 -117
  305. data/lib/rcs/types/inbound_location_message.rb +0 -106
  306. data/lib/rcs/types/inbound_location_message_coordinates.rb +0 -65
  307. data/lib/rcs/types/inbound_media_message.rb +0 -112
  308. data/lib/rcs/types/inbound_message.rb +0 -88
  309. data/lib/rcs/types/inbound_message_message_type.rb +0 -10
  310. data/lib/rcs/types/inbound_message_metadata.rb +0 -79
  311. data/lib/rcs/types/inbound_text_message.rb +0 -100
  312. data/lib/rcs/types/internal_server_error_body.rb +0 -57
  313. data/lib/rcs/types/media_payload.rb +0 -65
  314. data/lib/rcs/types/message_metadata.rb +0 -56
  315. data/lib/rcs/types/messaging.rb +0 -95
  316. data/lib/rcs/types/optionals.rb +0 -99
  317. data/lib/rcs/types/payment_required_error_body.rb +0 -57
  318. data/lib/rcs/types/point_of_contact.rb +0 -72
  319. data/lib/rcs/types/rcs_functionalities.rb +0 -117
  320. data/lib/rcs/types/sender_metadata.rb +0 -74
  321. data/lib/rcs/types/unauthorized_error_body.rb +0 -57
@@ -0,0 +1,61 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "ostruct"
4
+ require "json"
5
+
6
+ module Pinnacle
7
+ module Brands
8
+ module Types
9
+ class AutofillBrandSchemaOptions
10
+ # @return [Boolean] Set to true to bypass cached data and fetch fresh information.
11
+ attr_reader :force_reload
12
+ # @return [OpenStruct] Additional properties unmapped to the current class definition
13
+ attr_reader :additional_properties
14
+ # @return [Object]
15
+ attr_reader :_field_set
16
+ protected :_field_set
17
+
18
+ OMIT = Object.new
19
+
20
+ # @param force_reload [Boolean] Set to true to bypass cached data and fetch fresh information.
21
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
22
+ # @return [Pinnacle::Brands::Types::AutofillBrandSchemaOptions]
23
+ def initialize(force_reload: OMIT, additional_properties: nil)
24
+ @force_reload = force_reload if force_reload != OMIT
25
+ @additional_properties = additional_properties
26
+ @_field_set = { "forceReload": force_reload }.reject do |_k, v|
27
+ v == OMIT
28
+ end
29
+ end
30
+
31
+ # Deserialize a JSON object to an instance of AutofillBrandSchemaOptions
32
+ #
33
+ # @param json_object [String]
34
+ # @return [Pinnacle::Brands::Types::AutofillBrandSchemaOptions]
35
+ def self.from_json(json_object:)
36
+ struct = JSON.parse(json_object, object_class: OpenStruct)
37
+ parsed_json = JSON.parse(json_object)
38
+ force_reload = parsed_json["forceReload"]
39
+ new(force_reload: force_reload, additional_properties: struct)
40
+ end
41
+
42
+ # Serialize an instance of AutofillBrandSchemaOptions to a JSON object
43
+ #
44
+ # @return [String]
45
+ def to_json(*_args)
46
+ @_field_set&.to_json
47
+ end
48
+
49
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
50
+ # hash and check each fields type against the current object's property
51
+ # definitions.
52
+ #
53
+ # @param obj [Object]
54
+ # @return [Void]
55
+ def self.validate_raw(obj:)
56
+ obj.force_reload&.is_a?(Boolean) != false || raise("Passed value for field obj.force_reload is not the expected type, validation failed.")
57
+ end
58
+ end
59
+ end
60
+ end
61
+ end
@@ -0,0 +1,84 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "ostruct"
4
+ require "json"
5
+
6
+ module Pinnacle
7
+ module Brands
8
+ module Types
9
+ # Contact information for the primary brand representative.
10
+ class BrandContact
11
+ # @return [String] Email address of the contact person.
12
+ attr_reader :email
13
+ # @return [String] Full name of the contact person.
14
+ attr_reader :name
15
+ # @return [String] Phone number of the contact person in E.164 format.
16
+ attr_reader :phone
17
+ # @return [String] Job title or position of the contact person.
18
+ attr_reader :title
19
+ # @return [OpenStruct] Additional properties unmapped to the current class definition
20
+ attr_reader :additional_properties
21
+ # @return [Object]
22
+ attr_reader :_field_set
23
+ protected :_field_set
24
+
25
+ OMIT = Object.new
26
+
27
+ # @param email [String] Email address of the contact person.
28
+ # @param name [String] Full name of the contact person.
29
+ # @param phone [String] Phone number of the contact person in E.164 format.
30
+ # @param title [String] Job title or position of the contact person.
31
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
32
+ # @return [Pinnacle::Brands::Types::BrandContact]
33
+ def initialize(email:, name:, phone:, title:, additional_properties: nil)
34
+ @email = email
35
+ @name = name
36
+ @phone = phone
37
+ @title = title
38
+ @additional_properties = additional_properties
39
+ @_field_set = { "email": email, "name": name, "phone": phone, "title": title }
40
+ end
41
+
42
+ # Deserialize a JSON object to an instance of BrandContact
43
+ #
44
+ # @param json_object [String]
45
+ # @return [Pinnacle::Brands::Types::BrandContact]
46
+ def self.from_json(json_object:)
47
+ struct = JSON.parse(json_object, object_class: OpenStruct)
48
+ parsed_json = JSON.parse(json_object)
49
+ email = parsed_json["email"]
50
+ name = parsed_json["name"]
51
+ phone = parsed_json["phone"]
52
+ title = parsed_json["title"]
53
+ new(
54
+ email: email,
55
+ name: name,
56
+ phone: phone,
57
+ title: title,
58
+ additional_properties: struct
59
+ )
60
+ end
61
+
62
+ # Serialize an instance of BrandContact to a JSON object
63
+ #
64
+ # @return [String]
65
+ def to_json(*_args)
66
+ @_field_set&.to_json
67
+ end
68
+
69
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
70
+ # hash and check each fields type against the current object's property
71
+ # definitions.
72
+ #
73
+ # @param obj [Object]
74
+ # @return [Void]
75
+ def self.validate_raw(obj:)
76
+ obj.email.is_a?(String) != false || raise("Passed value for field obj.email is not the expected type, validation failed.")
77
+ obj.name.is_a?(String) != false || raise("Passed value for field obj.name is not the expected type, validation failed.")
78
+ obj.phone.is_a?(String) != false || raise("Passed value for field obj.phone is not the expected type, validation failed.")
79
+ obj.title.is_a?(String) != false || raise("Passed value for field obj.title is not the expected type, validation failed.")
80
+ end
81
+ end
82
+ end
83
+ end
84
+ end
@@ -0,0 +1,44 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "../../requests"
4
+ require_relative "dlc/client"
5
+ require_relative "toll_free/client"
6
+ require_relative "rcs/client"
7
+
8
+ module Pinnacle
9
+ module Campaigns
10
+ class Client
11
+ # @return [Pinnacle::Campaigns::DlcClient]
12
+ attr_reader :dlc
13
+ # @return [Pinnacle::Campaigns::TollFreeClient]
14
+ attr_reader :toll_free
15
+ # @return [Pinnacle::Campaigns::RcsClient]
16
+ attr_reader :rcs
17
+
18
+ # @param request_client [Pinnacle::RequestClient]
19
+ # @return [Pinnacle::Campaigns::Client]
20
+ def initialize(request_client:)
21
+ @dlc = Pinnacle::Campaigns::DlcClient.new(request_client: request_client)
22
+ @toll_free = Pinnacle::Campaigns::TollFreeClient.new(request_client: request_client)
23
+ @rcs = Pinnacle::Campaigns::RcsClient.new(request_client: request_client)
24
+ end
25
+ end
26
+
27
+ class AsyncClient
28
+ # @return [Pinnacle::Campaigns::AsyncDlcClient]
29
+ attr_reader :dlc
30
+ # @return [Pinnacle::Campaigns::AsyncTollFreeClient]
31
+ attr_reader :toll_free
32
+ # @return [Pinnacle::Campaigns::AsyncRcsClient]
33
+ attr_reader :rcs
34
+
35
+ # @param request_client [Pinnacle::AsyncRequestClient]
36
+ # @return [Pinnacle::Campaigns::AsyncClient]
37
+ def initialize(request_client:)
38
+ @dlc = Pinnacle::Campaigns::AsyncDlcClient.new(request_client: request_client)
39
+ @toll_free = Pinnacle::Campaigns::AsyncTollFreeClient.new(request_client: request_client)
40
+ @rcs = Pinnacle::Campaigns::AsyncRcsClient.new(request_client: request_client)
41
+ end
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,480 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "../../../requests"
4
+ require_relative "../../types/autofill_campaign_params"
5
+ require_relative "../../types/autofill_dlc_campaign_response"
6
+ require_relative "../../types/dlc_campaign_with_extended_brand_and_status"
7
+ require_relative "../../types/campaign_submission_result"
8
+ require_relative "types/upsert_dlc_schema_keywords"
9
+ require_relative "types/upsert_dlc_schema_links"
10
+ require_relative "types/upsert_dlc_schema_options"
11
+ require_relative "types/upsert_dlc_schema_use_case"
12
+ require_relative "../../types/validate_campaign_params"
13
+ require_relative "../../types/campaign_validation_result"
14
+ require "async"
15
+
16
+ module Pinnacle
17
+ module Campaigns
18
+ class DlcClient
19
+ # @return [Pinnacle::RequestClient]
20
+ attr_reader :request_client
21
+
22
+ # @param request_client [Pinnacle::RequestClient]
23
+ # @return [Pinnacle::Campaigns::DlcClient]
24
+ def initialize(request_client:)
25
+ @request_client = request_client
26
+ end
27
+
28
+ # Generate campaign details based off existing campaign and the brand it's
29
+ # connected to.
30
+ #
31
+ # @param request [Hash] Request of type Pinnacle::Types::AutofillCampaignParams, as a Hash
32
+ # * :additional_info (String)
33
+ # * :campaign_id (Integer)
34
+ # @param request_options [Pinnacle::RequestOptions]
35
+ # @return [Pinnacle::Types::AutofillDlcCampaignResponse]
36
+ # @example
37
+ # api = Pinnacle::Client.new(
38
+ # base_url: "https://api.example.com",
39
+ # environment: Pinnacle::Environment::DEFAULT,
40
+ # api_key: "YOUR_API_KEY"
41
+ # )
42
+ # api.campaigns.dlc.autofill(request: { additional_info: "Please autofill missing DLC campaign fields using my brand profile", campaign_id: 161 })
43
+ def autofill(request:, request_options: nil)
44
+ response = @request_client.conn.post do |req|
45
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
46
+ req.headers["PINNACLE-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
47
+ req.headers = {
48
+ **(req.headers || {}),
49
+ **@request_client.get_headers,
50
+ **(request_options&.additional_headers || {})
51
+ }.compact
52
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
53
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
54
+ end
55
+ req.body = { **(request || {}), **(request_options&.additional_body_parameters || {}) }.compact
56
+ req.url "#{@request_client.get_url(request_options: request_options)}/campaigns/dlc/autofill"
57
+ end
58
+ Pinnacle::Types::AutofillDlcCampaignResponse.from_json(json_object: response.body)
59
+ end
60
+
61
+ # Retrieve DLC campaign.
62
+ #
63
+ # @param campaign_id [Integer] Unique identifier of the DLC campaign.
64
+ # @param request_options [Pinnacle::RequestOptions]
65
+ # @return [Pinnacle::Types::DlcCampaignWithExtendedBrandAndStatus]
66
+ # @example
67
+ # api = Pinnacle::Client.new(
68
+ # base_url: "https://api.example.com",
69
+ # environment: Pinnacle::Environment::DEFAULT,
70
+ # api_key: "YOUR_API_KEY"
71
+ # )
72
+ # api.campaigns.dlc.get(campaign_id: 28)
73
+ def get(campaign_id:, request_options: nil)
74
+ response = @request_client.conn.get do |req|
75
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
76
+ req.headers["PINNACLE-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
77
+ req.headers = {
78
+ **(req.headers || {}),
79
+ **@request_client.get_headers,
80
+ **(request_options&.additional_headers || {})
81
+ }.compact
82
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
83
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
84
+ end
85
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
86
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
87
+ end
88
+ req.url "#{@request_client.get_url(request_options: request_options)}/campaigns/dlc/#{campaign_id}"
89
+ end
90
+ Pinnacle::Types::DlcCampaignWithExtendedBrandAndStatus.from_json(json_object: response.body)
91
+ end
92
+
93
+ # Submit your DLC campaign for approval and activation with carriers.
94
+ #
95
+ # @param campaign_id [Integer] Unique identifier of the DLC campaign to submit.
96
+ # @param request_options [Pinnacle::RequestOptions]
97
+ # @return [Pinnacle::Types::CampaignSubmissionResult]
98
+ # @example
99
+ # api = Pinnacle::Client.new(
100
+ # base_url: "https://api.example.com",
101
+ # environment: Pinnacle::Environment::DEFAULT,
102
+ # api_key: "YOUR_API_KEY"
103
+ # )
104
+ # api.campaigns.dlc.submit(campaign_id: 161)
105
+ def submit(campaign_id:, request_options: nil)
106
+ response = @request_client.conn.post do |req|
107
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
108
+ req.headers["PINNACLE-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
109
+ req.headers = {
110
+ **(req.headers || {}),
111
+ **@request_client.get_headers,
112
+ **(request_options&.additional_headers || {})
113
+ }.compact
114
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
115
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
116
+ end
117
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
118
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
119
+ end
120
+ req.url "#{@request_client.get_url(request_options: request_options)}/campaigns/dlc/submit/#{campaign_id}"
121
+ end
122
+ Pinnacle::Types::CampaignSubmissionResult.from_json(json_object: response.body)
123
+ end
124
+
125
+ # Create a new DLC campaign or updates an existing one. <br>
126
+ # Omit campaignId to create a campaign.
127
+ #
128
+ # @param auto_renew [Boolean] Whether the campaign renews automatically.
129
+ # @param brand [Integer] Brand id.
130
+ # @param campaign_id [Integer] Unique identifier for the campaign.
131
+ # @param description [String] Description of the campaign.
132
+ # @param keywords [Hash] Keyword response configuration.Request of type Pinnacle::Campaigns::Dlc::Types::UpsertDlcSchemaKeywords, as a Hash
133
+ # * :help (Hash)
134
+ # * :message (String)
135
+ # * :values (Array<String>)
136
+ # * :opt_in (Hash)
137
+ # * :message (String)
138
+ # * :values (Array<String>)
139
+ # * :opt_out (Hash)
140
+ # * :message (String)
141
+ # * :values (Array<String>)
142
+ # @param links [Hash] Legal documentation links.Request of type Pinnacle::Campaigns::Dlc::Types::UpsertDlcSchemaLinks, as a Hash
143
+ # * :privacy_policy (String)
144
+ # * :terms_of_service (String)
145
+ # @param message_flow [String] Describe the flow of how users will opt in to this campaign.
146
+ # @param name [String] Display name of the campaign.
147
+ # @param options [Hash] Campaign configuration options.Request of type Pinnacle::Campaigns::Dlc::Types::UpsertDlcSchemaOptions, as a Hash
148
+ # * :affiliate_marketing (Boolean)
149
+ # * :age_gated (Boolean)
150
+ # * :direct_lending (Boolean)
151
+ # * :embedded_link (String)
152
+ # * :embedded_phone (Boolean)
153
+ # * :number_pooling (Boolean)
154
+ # @param sample_messages [Array<String>] Example messages for the campaign.
155
+ # @param use_case [Hash] Use case for the campaign.Request of type Pinnacle::Campaigns::Dlc::Types::UpsertDlcSchemaUseCase, as a Hash
156
+ # * :sub (Array<Pinnacle::Types::SubUseCaseEnum>)
157
+ # * :value (Pinnacle::Types::DlcCampaignUseCaseEnum)
158
+ # @param request_options [Pinnacle::RequestOptions]
159
+ # @return [Pinnacle::Types::DlcCampaignWithExtendedBrandAndStatus]
160
+ # @example
161
+ # api = Pinnacle::Client.new(
162
+ # base_url: "https://api.example.com",
163
+ # environment: Pinnacle::Environment::DEFAULT,
164
+ # api_key: "YOUR_API_KEY"
165
+ # )
166
+ # api.campaigns.dlc.upsert(
167
+ # auto_renew: true,
168
+ # brand: 1,
169
+ # campaign_id: 161,
170
+ # keywords: { help: { message: "Reply HELP for assistance, STOP to opt-out", values: ["HELP", "INFO", "SUPPORT"] }, opt_in: { message: "Welcome! You're now subscribed to Pinnacle.", values: ["JOIN", "START", "SUBSCRIBE"] }, opt_out: { message: "You've been unsubscribed. Reply START to rejoin.", values: ["STOP", "QUIT", "UNSUBSCRIBE"] } },
171
+ # links: { privacy_policy: "https://www.pinnacle.sh/privacy", terms_of_service: "https://www.pinnacle.sh/terms" },
172
+ # message_flow: "Customer initiates -> Automated response -> Agent follow-up if needed",
173
+ # name: "Account Notifications",
174
+ # options: { affiliate_marketing: false, age_gated: false, direct_lending: false, embedded_link: "https://www.pinnacle.sh/example", embedded_phone: false, number_pooling: false },
175
+ # sample_messages: ["Security alert: Unusual login detected from new device."],
176
+ # use_case: { sub: [FRAUD_ALERT], value: ACCOUNT_NOTIFICATION }
177
+ # )
178
+ def upsert(auto_renew: nil, brand: nil, campaign_id: nil, description: nil, keywords: nil, links: nil,
179
+ message_flow: nil, name: nil, options: nil, sample_messages: nil, use_case: nil, request_options: nil)
180
+ response = @request_client.conn.post do |req|
181
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
182
+ req.headers["PINNACLE-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
183
+ req.headers = {
184
+ **(req.headers || {}),
185
+ **@request_client.get_headers,
186
+ **(request_options&.additional_headers || {})
187
+ }.compact
188
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
189
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
190
+ end
191
+ req.body = {
192
+ **(request_options&.additional_body_parameters || {}),
193
+ autoRenew: auto_renew,
194
+ brand: brand,
195
+ campaignId: campaign_id,
196
+ description: description,
197
+ keywords: keywords,
198
+ links: links,
199
+ messageFlow: message_flow,
200
+ name: name,
201
+ options: options,
202
+ sampleMessages: sample_messages,
203
+ useCase: use_case
204
+ }.compact
205
+ req.url "#{@request_client.get_url(request_options: request_options)}/campaigns/dlc"
206
+ end
207
+ Pinnacle::Types::DlcCampaignWithExtendedBrandAndStatus.from_json(json_object: response.body)
208
+ end
209
+
210
+ # Validate your DLC campaign configuration against carrier requirements and
211
+ # compliance rules.
212
+ #
213
+ # @param request [Hash] Request of type Pinnacle::Types::ValidateCampaignParams, as a Hash
214
+ # * :additional_info (String)
215
+ # * :campaign_id (Integer)
216
+ # @param request_options [Pinnacle::RequestOptions]
217
+ # @return [Pinnacle::Types::CampaignValidationResult]
218
+ # @example
219
+ # api = Pinnacle::Client.new(
220
+ # base_url: "https://api.example.com",
221
+ # environment: Pinnacle::Environment::DEFAULT,
222
+ # api_key: "YOUR_API_KEY"
223
+ # )
224
+ # api.campaigns.dlc.validate(request: { additional_info: "Please validate this DLC campaign for 10DLC compliance", campaign_id: 161 })
225
+ def validate(request:, request_options: nil)
226
+ response = @request_client.conn.post do |req|
227
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
228
+ req.headers["PINNACLE-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
229
+ req.headers = {
230
+ **(req.headers || {}),
231
+ **@request_client.get_headers,
232
+ **(request_options&.additional_headers || {})
233
+ }.compact
234
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
235
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
236
+ end
237
+ req.body = { **(request || {}), **(request_options&.additional_body_parameters || {}) }.compact
238
+ req.url "#{@request_client.get_url(request_options: request_options)}/campaigns/dlc/validate"
239
+ end
240
+ Pinnacle::Types::CampaignValidationResult.from_json(json_object: response.body)
241
+ end
242
+ end
243
+
244
+ class AsyncDlcClient
245
+ # @return [Pinnacle::AsyncRequestClient]
246
+ attr_reader :request_client
247
+
248
+ # @param request_client [Pinnacle::AsyncRequestClient]
249
+ # @return [Pinnacle::Campaigns::AsyncDlcClient]
250
+ def initialize(request_client:)
251
+ @request_client = request_client
252
+ end
253
+
254
+ # Generate campaign details based off existing campaign and the brand it's
255
+ # connected to.
256
+ #
257
+ # @param request [Hash] Request of type Pinnacle::Types::AutofillCampaignParams, as a Hash
258
+ # * :additional_info (String)
259
+ # * :campaign_id (Integer)
260
+ # @param request_options [Pinnacle::RequestOptions]
261
+ # @return [Pinnacle::Types::AutofillDlcCampaignResponse]
262
+ # @example
263
+ # api = Pinnacle::Client.new(
264
+ # base_url: "https://api.example.com",
265
+ # environment: Pinnacle::Environment::DEFAULT,
266
+ # api_key: "YOUR_API_KEY"
267
+ # )
268
+ # api.campaigns.dlc.autofill(request: { additional_info: "Please autofill missing DLC campaign fields using my brand profile", campaign_id: 161 })
269
+ def autofill(request:, request_options: nil)
270
+ Async do
271
+ response = @request_client.conn.post do |req|
272
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
273
+ req.headers["PINNACLE-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
274
+ req.headers = {
275
+ **(req.headers || {}),
276
+ **@request_client.get_headers,
277
+ **(request_options&.additional_headers || {})
278
+ }.compact
279
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
280
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
281
+ end
282
+ req.body = { **(request || {}), **(request_options&.additional_body_parameters || {}) }.compact
283
+ req.url "#{@request_client.get_url(request_options: request_options)}/campaigns/dlc/autofill"
284
+ end
285
+ Pinnacle::Types::AutofillDlcCampaignResponse.from_json(json_object: response.body)
286
+ end
287
+ end
288
+
289
+ # Retrieve DLC campaign.
290
+ #
291
+ # @param campaign_id [Integer] Unique identifier of the DLC campaign.
292
+ # @param request_options [Pinnacle::RequestOptions]
293
+ # @return [Pinnacle::Types::DlcCampaignWithExtendedBrandAndStatus]
294
+ # @example
295
+ # api = Pinnacle::Client.new(
296
+ # base_url: "https://api.example.com",
297
+ # environment: Pinnacle::Environment::DEFAULT,
298
+ # api_key: "YOUR_API_KEY"
299
+ # )
300
+ # api.campaigns.dlc.get(campaign_id: 28)
301
+ def get(campaign_id:, request_options: nil)
302
+ Async do
303
+ response = @request_client.conn.get do |req|
304
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
305
+ req.headers["PINNACLE-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
306
+ req.headers = {
307
+ **(req.headers || {}),
308
+ **@request_client.get_headers,
309
+ **(request_options&.additional_headers || {})
310
+ }.compact
311
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
312
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
313
+ end
314
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
315
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
316
+ end
317
+ req.url "#{@request_client.get_url(request_options: request_options)}/campaigns/dlc/#{campaign_id}"
318
+ end
319
+ Pinnacle::Types::DlcCampaignWithExtendedBrandAndStatus.from_json(json_object: response.body)
320
+ end
321
+ end
322
+
323
+ # Submit your DLC campaign for approval and activation with carriers.
324
+ #
325
+ # @param campaign_id [Integer] Unique identifier of the DLC campaign to submit.
326
+ # @param request_options [Pinnacle::RequestOptions]
327
+ # @return [Pinnacle::Types::CampaignSubmissionResult]
328
+ # @example
329
+ # api = Pinnacle::Client.new(
330
+ # base_url: "https://api.example.com",
331
+ # environment: Pinnacle::Environment::DEFAULT,
332
+ # api_key: "YOUR_API_KEY"
333
+ # )
334
+ # api.campaigns.dlc.submit(campaign_id: 161)
335
+ def submit(campaign_id:, request_options: nil)
336
+ Async do
337
+ response = @request_client.conn.post do |req|
338
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
339
+ req.headers["PINNACLE-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
340
+ req.headers = {
341
+ **(req.headers || {}),
342
+ **@request_client.get_headers,
343
+ **(request_options&.additional_headers || {})
344
+ }.compact
345
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
346
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
347
+ end
348
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
349
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
350
+ end
351
+ req.url "#{@request_client.get_url(request_options: request_options)}/campaigns/dlc/submit/#{campaign_id}"
352
+ end
353
+ Pinnacle::Types::CampaignSubmissionResult.from_json(json_object: response.body)
354
+ end
355
+ end
356
+
357
+ # Create a new DLC campaign or updates an existing one. <br>
358
+ # Omit campaignId to create a campaign.
359
+ #
360
+ # @param auto_renew [Boolean] Whether the campaign renews automatically.
361
+ # @param brand [Integer] Brand id.
362
+ # @param campaign_id [Integer] Unique identifier for the campaign.
363
+ # @param description [String] Description of the campaign.
364
+ # @param keywords [Hash] Keyword response configuration.Request of type Pinnacle::Campaigns::Dlc::Types::UpsertDlcSchemaKeywords, as a Hash
365
+ # * :help (Hash)
366
+ # * :message (String)
367
+ # * :values (Array<String>)
368
+ # * :opt_in (Hash)
369
+ # * :message (String)
370
+ # * :values (Array<String>)
371
+ # * :opt_out (Hash)
372
+ # * :message (String)
373
+ # * :values (Array<String>)
374
+ # @param links [Hash] Legal documentation links.Request of type Pinnacle::Campaigns::Dlc::Types::UpsertDlcSchemaLinks, as a Hash
375
+ # * :privacy_policy (String)
376
+ # * :terms_of_service (String)
377
+ # @param message_flow [String] Describe the flow of how users will opt in to this campaign.
378
+ # @param name [String] Display name of the campaign.
379
+ # @param options [Hash] Campaign configuration options.Request of type Pinnacle::Campaigns::Dlc::Types::UpsertDlcSchemaOptions, as a Hash
380
+ # * :affiliate_marketing (Boolean)
381
+ # * :age_gated (Boolean)
382
+ # * :direct_lending (Boolean)
383
+ # * :embedded_link (String)
384
+ # * :embedded_phone (Boolean)
385
+ # * :number_pooling (Boolean)
386
+ # @param sample_messages [Array<String>] Example messages for the campaign.
387
+ # @param use_case [Hash] Use case for the campaign.Request of type Pinnacle::Campaigns::Dlc::Types::UpsertDlcSchemaUseCase, as a Hash
388
+ # * :sub (Array<Pinnacle::Types::SubUseCaseEnum>)
389
+ # * :value (Pinnacle::Types::DlcCampaignUseCaseEnum)
390
+ # @param request_options [Pinnacle::RequestOptions]
391
+ # @return [Pinnacle::Types::DlcCampaignWithExtendedBrandAndStatus]
392
+ # @example
393
+ # api = Pinnacle::Client.new(
394
+ # base_url: "https://api.example.com",
395
+ # environment: Pinnacle::Environment::DEFAULT,
396
+ # api_key: "YOUR_API_KEY"
397
+ # )
398
+ # api.campaigns.dlc.upsert(
399
+ # auto_renew: true,
400
+ # brand: 1,
401
+ # campaign_id: 161,
402
+ # keywords: { help: { message: "Reply HELP for assistance, STOP to opt-out", values: ["HELP", "INFO", "SUPPORT"] }, opt_in: { message: "Welcome! You're now subscribed to Pinnacle.", values: ["JOIN", "START", "SUBSCRIBE"] }, opt_out: { message: "You've been unsubscribed. Reply START to rejoin.", values: ["STOP", "QUIT", "UNSUBSCRIBE"] } },
403
+ # links: { privacy_policy: "https://www.pinnacle.sh/privacy", terms_of_service: "https://www.pinnacle.sh/terms" },
404
+ # message_flow: "Customer initiates -> Automated response -> Agent follow-up if needed",
405
+ # name: "Account Notifications",
406
+ # options: { affiliate_marketing: false, age_gated: false, direct_lending: false, embedded_link: "https://www.pinnacle.sh/example", embedded_phone: false, number_pooling: false },
407
+ # sample_messages: ["Security alert: Unusual login detected from new device."],
408
+ # use_case: { sub: [FRAUD_ALERT], value: ACCOUNT_NOTIFICATION }
409
+ # )
410
+ def upsert(auto_renew: nil, brand: nil, campaign_id: nil, description: nil, keywords: nil, links: nil,
411
+ message_flow: nil, name: nil, options: nil, sample_messages: nil, use_case: nil, request_options: nil)
412
+ Async do
413
+ response = @request_client.conn.post do |req|
414
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
415
+ req.headers["PINNACLE-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
416
+ req.headers = {
417
+ **(req.headers || {}),
418
+ **@request_client.get_headers,
419
+ **(request_options&.additional_headers || {})
420
+ }.compact
421
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
422
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
423
+ end
424
+ req.body = {
425
+ **(request_options&.additional_body_parameters || {}),
426
+ autoRenew: auto_renew,
427
+ brand: brand,
428
+ campaignId: campaign_id,
429
+ description: description,
430
+ keywords: keywords,
431
+ links: links,
432
+ messageFlow: message_flow,
433
+ name: name,
434
+ options: options,
435
+ sampleMessages: sample_messages,
436
+ useCase: use_case
437
+ }.compact
438
+ req.url "#{@request_client.get_url(request_options: request_options)}/campaigns/dlc"
439
+ end
440
+ Pinnacle::Types::DlcCampaignWithExtendedBrandAndStatus.from_json(json_object: response.body)
441
+ end
442
+ end
443
+
444
+ # Validate your DLC campaign configuration against carrier requirements and
445
+ # compliance rules.
446
+ #
447
+ # @param request [Hash] Request of type Pinnacle::Types::ValidateCampaignParams, as a Hash
448
+ # * :additional_info (String)
449
+ # * :campaign_id (Integer)
450
+ # @param request_options [Pinnacle::RequestOptions]
451
+ # @return [Pinnacle::Types::CampaignValidationResult]
452
+ # @example
453
+ # api = Pinnacle::Client.new(
454
+ # base_url: "https://api.example.com",
455
+ # environment: Pinnacle::Environment::DEFAULT,
456
+ # api_key: "YOUR_API_KEY"
457
+ # )
458
+ # api.campaigns.dlc.validate(request: { additional_info: "Please validate this DLC campaign for 10DLC compliance", campaign_id: 161 })
459
+ def validate(request:, request_options: nil)
460
+ Async do
461
+ response = @request_client.conn.post do |req|
462
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
463
+ req.headers["PINNACLE-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
464
+ req.headers = {
465
+ **(req.headers || {}),
466
+ **@request_client.get_headers,
467
+ **(request_options&.additional_headers || {})
468
+ }.compact
469
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
470
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
471
+ end
472
+ req.body = { **(request || {}), **(request_options&.additional_body_parameters || {}) }.compact
473
+ req.url "#{@request_client.get_url(request_options: request_options)}/campaigns/dlc/validate"
474
+ end
475
+ Pinnacle::Types::CampaignValidationResult.from_json(json_object: response.body)
476
+ end
477
+ end
478
+ end
479
+ end
480
+ end