rcs 1.0.17 → 2.0.0.pre.rc.1

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 +185 -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 +345 -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,429 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "../../../requests"
4
+ require_relative "../../types/autofill_campaign_params"
5
+ require_relative "types/toll_free_autofill_response"
6
+ require_relative "../../types/toll_free_campaign_with_extended_brand_and_status"
7
+ require_relative "../../types/campaign_submission_result"
8
+ require_relative "../../types/message_volume_enum"
9
+ require_relative "types/upsert_toll_free_schema_opt_in"
10
+ require_relative "types/upsert_toll_free_schema_use_case"
11
+ require_relative "../../types/validate_campaign_params"
12
+ require_relative "../../types/campaign_validation_result"
13
+ require "async"
14
+
15
+ module Pinnacle
16
+ module Campaigns
17
+ class TollFreeClient
18
+ # @return [Pinnacle::RequestClient]
19
+ attr_reader :request_client
20
+
21
+ # @param request_client [Pinnacle::RequestClient]
22
+ # @return [Pinnacle::Campaigns::TollFreeClient]
23
+ def initialize(request_client:)
24
+ @request_client = request_client
25
+ end
26
+
27
+ # Generate campaign details based off existing campaign and the brand it's
28
+ # connected to.
29
+ #
30
+ # @param request [Hash] Request of type Pinnacle::Types::AutofillCampaignParams, as a Hash
31
+ # * :additional_info (String)
32
+ # * :campaign_id (Integer)
33
+ # @param request_options [Pinnacle::RequestOptions]
34
+ # @return [Pinnacle::Campaigns::TollFree::Types::TollFreeAutofillResponse]
35
+ # @example
36
+ # api = Pinnacle::Client.new(
37
+ # base_url: "https://api.example.com",
38
+ # environment: Pinnacle::Environment::DEFAULT,
39
+ # api_key: "YOUR_API_KEY"
40
+ # )
41
+ # api.campaigns.toll_free.autofill(request: { additional_info: "Please autofill missing DLC campaign fields using my brand profile", campaign_id: 161 })
42
+ def autofill(request:, request_options: nil)
43
+ response = @request_client.conn.post do |req|
44
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
45
+ req.headers["PINNACLE-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
46
+ req.headers = {
47
+ **(req.headers || {}),
48
+ **@request_client.get_headers,
49
+ **(request_options&.additional_headers || {})
50
+ }.compact
51
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
52
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
53
+ end
54
+ req.body = { **(request || {}), **(request_options&.additional_body_parameters || {}) }.compact
55
+ req.url "#{@request_client.get_url(request_options: request_options)}/campaigns/toll-free/autofill"
56
+ end
57
+ Pinnacle::Campaigns::TollFree::Types::TollFreeAutofillResponse.from_json(json_object: response.body)
58
+ end
59
+
60
+ # Retrieve Toll-Free campaign.
61
+ #
62
+ # @param campaign_id [Integer] Unique identifier of toll-free campaign.
63
+ # @param request_options [Pinnacle::RequestOptions]
64
+ # @return [Pinnacle::Types::TollFreeCampaignWithExtendedBrandAndStatus]
65
+ # @example
66
+ # api = Pinnacle::Client.new(
67
+ # base_url: "https://api.example.com",
68
+ # environment: Pinnacle::Environment::DEFAULT,
69
+ # api_key: "YOUR_API_KEY"
70
+ # )
71
+ # api.campaigns.toll_free.get(campaign_id: 161)
72
+ def get(campaign_id:, request_options: nil)
73
+ response = @request_client.conn.get do |req|
74
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
75
+ req.headers["PINNACLE-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
76
+ req.headers = {
77
+ **(req.headers || {}),
78
+ **@request_client.get_headers,
79
+ **(request_options&.additional_headers || {})
80
+ }.compact
81
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
82
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
83
+ end
84
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
85
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
86
+ end
87
+ req.url "#{@request_client.get_url(request_options: request_options)}/campaigns/toll-free/#{campaign_id}"
88
+ end
89
+ Pinnacle::Types::TollFreeCampaignWithExtendedBrandAndStatus.from_json(json_object: response.body)
90
+ end
91
+
92
+ # Submit your toll-free campaign for approval and activation with carriers.
93
+ #
94
+ # @param campaign_id [Integer] Unique identifier of the toll-free campaign to submit.
95
+ # @param request_options [Pinnacle::RequestOptions]
96
+ # @return [Pinnacle::Types::CampaignSubmissionResult]
97
+ # @example
98
+ # api = Pinnacle::Client.new(
99
+ # base_url: "https://api.example.com",
100
+ # environment: Pinnacle::Environment::DEFAULT,
101
+ # api_key: "YOUR_API_KEY"
102
+ # )
103
+ # api.campaigns.toll_free.submit(campaign_id: 161)
104
+ def submit(campaign_id:, request_options: nil)
105
+ response = @request_client.conn.post do |req|
106
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
107
+ req.headers["PINNACLE-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
108
+ req.headers = {
109
+ **(req.headers || {}),
110
+ **@request_client.get_headers,
111
+ **(request_options&.additional_headers || {})
112
+ }.compact
113
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
114
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
115
+ end
116
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
117
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
118
+ end
119
+ req.url "#{@request_client.get_url(request_options: request_options)}/campaigns/toll-free/submit/#{campaign_id}"
120
+ end
121
+ Pinnacle::Types::CampaignSubmissionResult.from_json(json_object: response.body)
122
+ end
123
+
124
+ # Create a new toll-free campaign or updates an existing one.<br>
125
+ # Omit campaignId to create a campaign.
126
+ #
127
+ # @param brand [Integer] Brand id.
128
+ # @param campaign_id [Integer] Unique identifier for the campaign.
129
+ # @param monthly_volume [Pinnacle::Types::MessageVolumeEnum]
130
+ # @param name [String] Display name of the campaign.
131
+ # @param opt_in [Hash] Opt-in keyword settings.Request of type Pinnacle::Campaigns::TollFree::Types::UpsertTollFreeSchemaOptIn, as a Hash
132
+ # * :method (Pinnacle::Types::OptInMethodEnum)
133
+ # * :url (String)
134
+ # * :workflow_description (String)
135
+ # @param production_message_content [String] Explain message that would be sent.
136
+ # @param use_case [Hash] Use case classification for the campaign.Request of type Pinnacle::Campaigns::TollFree::Types::UpsertTollFreeSchemaUseCase, as a Hash
137
+ # * :summary (String)
138
+ # * :value (Pinnacle::Types::TollFreeCampaignUseCaseEnum)
139
+ # @param request_options [Pinnacle::RequestOptions]
140
+ # @return [Pinnacle::Types::TollFreeCampaignWithExtendedBrandAndStatus]
141
+ # @example
142
+ # api = Pinnacle::Client.new(
143
+ # base_url: "https://api.example.com",
144
+ # environment: Pinnacle::Environment::DEFAULT,
145
+ # api_key: "YOUR_API_KEY"
146
+ # )
147
+ # api.campaigns.toll_free.upsert(
148
+ # brand: 2,
149
+ # campaign_id: 161,
150
+ # monthly_volume: ONE_000,
151
+ # name: "Pinnacle",
152
+ # opt_in: { method: DIGITAL, url: "https://www.pinnacle.sh/", workflow_description: "Visit https://www.pinnacle.sh/" },
153
+ # production_message_content: "Join Pinnacle's workshop tomorrow and send your first RCS!",
154
+ # use_case: { summary: "Alerts clients about any Pinnacle hosted workshops.", value: WORKSHOP_ALERTS }
155
+ # )
156
+ def upsert(brand: nil, campaign_id: nil, monthly_volume: nil, name: nil, opt_in: nil,
157
+ production_message_content: nil, use_case: nil, request_options: nil)
158
+ response = @request_client.conn.post do |req|
159
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
160
+ req.headers["PINNACLE-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
161
+ req.headers = {
162
+ **(req.headers || {}),
163
+ **@request_client.get_headers,
164
+ **(request_options&.additional_headers || {})
165
+ }.compact
166
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
167
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
168
+ end
169
+ req.body = {
170
+ **(request_options&.additional_body_parameters || {}),
171
+ brand: brand,
172
+ campaignId: campaign_id,
173
+ monthlyVolume: monthly_volume,
174
+ name: name,
175
+ optIn: opt_in,
176
+ productionMessageContent: production_message_content,
177
+ useCase: use_case
178
+ }.compact
179
+ req.url "#{@request_client.get_url(request_options: request_options)}/campaigns/toll-free"
180
+ end
181
+ Pinnacle::Types::TollFreeCampaignWithExtendedBrandAndStatus.from_json(json_object: response.body)
182
+ end
183
+
184
+ # Validate your toll-free campaign configuration against carrier requirements and
185
+ # compliance rules.
186
+ #
187
+ # @param request [Hash] Request of type Pinnacle::Types::ValidateCampaignParams, as a Hash
188
+ # * :additional_info (String)
189
+ # * :campaign_id (Integer)
190
+ # @param request_options [Pinnacle::RequestOptions]
191
+ # @return [Pinnacle::Types::CampaignValidationResult]
192
+ # @example
193
+ # api = Pinnacle::Client.new(
194
+ # base_url: "https://api.example.com",
195
+ # environment: Pinnacle::Environment::DEFAULT,
196
+ # api_key: "YOUR_API_KEY"
197
+ # )
198
+ # api.campaigns.toll_free.validate(request: { additional_info: "Please validate this DLC campaign for 10DLC compliance", campaign_id: 161 })
199
+ def validate(request:, request_options: nil)
200
+ response = @request_client.conn.post do |req|
201
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
202
+ req.headers["PINNACLE-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
203
+ req.headers = {
204
+ **(req.headers || {}),
205
+ **@request_client.get_headers,
206
+ **(request_options&.additional_headers || {})
207
+ }.compact
208
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
209
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
210
+ end
211
+ req.body = { **(request || {}), **(request_options&.additional_body_parameters || {}) }.compact
212
+ req.url "#{@request_client.get_url(request_options: request_options)}/campaigns/toll-free/validate"
213
+ end
214
+ Pinnacle::Types::CampaignValidationResult.from_json(json_object: response.body)
215
+ end
216
+ end
217
+
218
+ class AsyncTollFreeClient
219
+ # @return [Pinnacle::AsyncRequestClient]
220
+ attr_reader :request_client
221
+
222
+ # @param request_client [Pinnacle::AsyncRequestClient]
223
+ # @return [Pinnacle::Campaigns::AsyncTollFreeClient]
224
+ def initialize(request_client:)
225
+ @request_client = request_client
226
+ end
227
+
228
+ # Generate campaign details based off existing campaign and the brand it's
229
+ # connected to.
230
+ #
231
+ # @param request [Hash] Request of type Pinnacle::Types::AutofillCampaignParams, as a Hash
232
+ # * :additional_info (String)
233
+ # * :campaign_id (Integer)
234
+ # @param request_options [Pinnacle::RequestOptions]
235
+ # @return [Pinnacle::Campaigns::TollFree::Types::TollFreeAutofillResponse]
236
+ # @example
237
+ # api = Pinnacle::Client.new(
238
+ # base_url: "https://api.example.com",
239
+ # environment: Pinnacle::Environment::DEFAULT,
240
+ # api_key: "YOUR_API_KEY"
241
+ # )
242
+ # api.campaigns.toll_free.autofill(request: { additional_info: "Please autofill missing DLC campaign fields using my brand profile", campaign_id: 161 })
243
+ def autofill(request:, request_options: nil)
244
+ Async do
245
+ response = @request_client.conn.post do |req|
246
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
247
+ req.headers["PINNACLE-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
248
+ req.headers = {
249
+ **(req.headers || {}),
250
+ **@request_client.get_headers,
251
+ **(request_options&.additional_headers || {})
252
+ }.compact
253
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
254
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
255
+ end
256
+ req.body = { **(request || {}), **(request_options&.additional_body_parameters || {}) }.compact
257
+ req.url "#{@request_client.get_url(request_options: request_options)}/campaigns/toll-free/autofill"
258
+ end
259
+ Pinnacle::Campaigns::TollFree::Types::TollFreeAutofillResponse.from_json(json_object: response.body)
260
+ end
261
+ end
262
+
263
+ # Retrieve Toll-Free campaign.
264
+ #
265
+ # @param campaign_id [Integer] Unique identifier of toll-free campaign.
266
+ # @param request_options [Pinnacle::RequestOptions]
267
+ # @return [Pinnacle::Types::TollFreeCampaignWithExtendedBrandAndStatus]
268
+ # @example
269
+ # api = Pinnacle::Client.new(
270
+ # base_url: "https://api.example.com",
271
+ # environment: Pinnacle::Environment::DEFAULT,
272
+ # api_key: "YOUR_API_KEY"
273
+ # )
274
+ # api.campaigns.toll_free.get(campaign_id: 161)
275
+ def get(campaign_id:, request_options: nil)
276
+ Async do
277
+ response = @request_client.conn.get do |req|
278
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
279
+ req.headers["PINNACLE-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
280
+ req.headers = {
281
+ **(req.headers || {}),
282
+ **@request_client.get_headers,
283
+ **(request_options&.additional_headers || {})
284
+ }.compact
285
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
286
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
287
+ end
288
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
289
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
290
+ end
291
+ req.url "#{@request_client.get_url(request_options: request_options)}/campaigns/toll-free/#{campaign_id}"
292
+ end
293
+ Pinnacle::Types::TollFreeCampaignWithExtendedBrandAndStatus.from_json(json_object: response.body)
294
+ end
295
+ end
296
+
297
+ # Submit your toll-free campaign for approval and activation with carriers.
298
+ #
299
+ # @param campaign_id [Integer] Unique identifier of the toll-free campaign to submit.
300
+ # @param request_options [Pinnacle::RequestOptions]
301
+ # @return [Pinnacle::Types::CampaignSubmissionResult]
302
+ # @example
303
+ # api = Pinnacle::Client.new(
304
+ # base_url: "https://api.example.com",
305
+ # environment: Pinnacle::Environment::DEFAULT,
306
+ # api_key: "YOUR_API_KEY"
307
+ # )
308
+ # api.campaigns.toll_free.submit(campaign_id: 161)
309
+ def submit(campaign_id:, request_options: nil)
310
+ Async do
311
+ response = @request_client.conn.post do |req|
312
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
313
+ req.headers["PINNACLE-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
314
+ req.headers = {
315
+ **(req.headers || {}),
316
+ **@request_client.get_headers,
317
+ **(request_options&.additional_headers || {})
318
+ }.compact
319
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
320
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
321
+ end
322
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
323
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
324
+ end
325
+ req.url "#{@request_client.get_url(request_options: request_options)}/campaigns/toll-free/submit/#{campaign_id}"
326
+ end
327
+ Pinnacle::Types::CampaignSubmissionResult.from_json(json_object: response.body)
328
+ end
329
+ end
330
+
331
+ # Create a new toll-free campaign or updates an existing one.<br>
332
+ # Omit campaignId to create a campaign.
333
+ #
334
+ # @param brand [Integer] Brand id.
335
+ # @param campaign_id [Integer] Unique identifier for the campaign.
336
+ # @param monthly_volume [Pinnacle::Types::MessageVolumeEnum]
337
+ # @param name [String] Display name of the campaign.
338
+ # @param opt_in [Hash] Opt-in keyword settings.Request of type Pinnacle::Campaigns::TollFree::Types::UpsertTollFreeSchemaOptIn, as a Hash
339
+ # * :method (Pinnacle::Types::OptInMethodEnum)
340
+ # * :url (String)
341
+ # * :workflow_description (String)
342
+ # @param production_message_content [String] Explain message that would be sent.
343
+ # @param use_case [Hash] Use case classification for the campaign.Request of type Pinnacle::Campaigns::TollFree::Types::UpsertTollFreeSchemaUseCase, as a Hash
344
+ # * :summary (String)
345
+ # * :value (Pinnacle::Types::TollFreeCampaignUseCaseEnum)
346
+ # @param request_options [Pinnacle::RequestOptions]
347
+ # @return [Pinnacle::Types::TollFreeCampaignWithExtendedBrandAndStatus]
348
+ # @example
349
+ # api = Pinnacle::Client.new(
350
+ # base_url: "https://api.example.com",
351
+ # environment: Pinnacle::Environment::DEFAULT,
352
+ # api_key: "YOUR_API_KEY"
353
+ # )
354
+ # api.campaigns.toll_free.upsert(
355
+ # brand: 2,
356
+ # campaign_id: 161,
357
+ # monthly_volume: ONE_000,
358
+ # name: "Pinnacle",
359
+ # opt_in: { method: DIGITAL, url: "https://www.pinnacle.sh/", workflow_description: "Visit https://www.pinnacle.sh/" },
360
+ # production_message_content: "Join Pinnacle's workshop tomorrow and send your first RCS!",
361
+ # use_case: { summary: "Alerts clients about any Pinnacle hosted workshops.", value: WORKSHOP_ALERTS }
362
+ # )
363
+ def upsert(brand: nil, campaign_id: nil, monthly_volume: nil, name: nil, opt_in: nil,
364
+ production_message_content: nil, use_case: nil, request_options: nil)
365
+ Async do
366
+ response = @request_client.conn.post do |req|
367
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
368
+ req.headers["PINNACLE-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
369
+ req.headers = {
370
+ **(req.headers || {}),
371
+ **@request_client.get_headers,
372
+ **(request_options&.additional_headers || {})
373
+ }.compact
374
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
375
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
376
+ end
377
+ req.body = {
378
+ **(request_options&.additional_body_parameters || {}),
379
+ brand: brand,
380
+ campaignId: campaign_id,
381
+ monthlyVolume: monthly_volume,
382
+ name: name,
383
+ optIn: opt_in,
384
+ productionMessageContent: production_message_content,
385
+ useCase: use_case
386
+ }.compact
387
+ req.url "#{@request_client.get_url(request_options: request_options)}/campaigns/toll-free"
388
+ end
389
+ Pinnacle::Types::TollFreeCampaignWithExtendedBrandAndStatus.from_json(json_object: response.body)
390
+ end
391
+ end
392
+
393
+ # Validate your toll-free campaign configuration against carrier requirements and
394
+ # compliance rules.
395
+ #
396
+ # @param request [Hash] Request of type Pinnacle::Types::ValidateCampaignParams, as a Hash
397
+ # * :additional_info (String)
398
+ # * :campaign_id (Integer)
399
+ # @param request_options [Pinnacle::RequestOptions]
400
+ # @return [Pinnacle::Types::CampaignValidationResult]
401
+ # @example
402
+ # api = Pinnacle::Client.new(
403
+ # base_url: "https://api.example.com",
404
+ # environment: Pinnacle::Environment::DEFAULT,
405
+ # api_key: "YOUR_API_KEY"
406
+ # )
407
+ # api.campaigns.toll_free.validate(request: { additional_info: "Please validate this DLC campaign for 10DLC compliance", campaign_id: 161 })
408
+ def validate(request:, request_options: nil)
409
+ Async do
410
+ response = @request_client.conn.post do |req|
411
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
412
+ req.headers["PINNACLE-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
413
+ req.headers = {
414
+ **(req.headers || {}),
415
+ **@request_client.get_headers,
416
+ **(request_options&.additional_headers || {})
417
+ }.compact
418
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
419
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
420
+ end
421
+ req.body = { **(request || {}), **(request_options&.additional_body_parameters || {}) }.compact
422
+ req.url "#{@request_client.get_url(request_options: request_options)}/campaigns/toll-free/validate"
423
+ end
424
+ Pinnacle::Types::CampaignValidationResult.from_json(json_object: response.body)
425
+ end
426
+ end
427
+ end
428
+ end
429
+ end
@@ -0,0 +1,130 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "../../../types/message_volume_enum"
4
+ require_relative "../../../types/toll_free_campaign_schema_opt_in"
5
+ require_relative "../../../types/toll_free_campaign_schema_use_case"
6
+ require "ostruct"
7
+ require "json"
8
+
9
+ module Pinnacle
10
+ module Campaigns
11
+ module TollFree
12
+ module Types
13
+ class TollFreeAutofillResponse
14
+ # @return [Integer]
15
+ attr_reader :brand
16
+ # @return [Integer] Unique identifier for the campaign.
17
+ attr_reader :campaign_id
18
+ # @return [Pinnacle::Types::MessageVolumeEnum]
19
+ attr_reader :monthly_volume
20
+ # @return [String] Display name of the campaign.
21
+ attr_reader :name
22
+ # @return [Pinnacle::Types::TollFreeCampaignSchemaOptIn] Opt-in keyword settings.
23
+ attr_reader :opt_in
24
+ # @return [String] Explain message that would be sent.
25
+ attr_reader :production_message_content
26
+ # @return [Pinnacle::Types::TollFreeCampaignSchemaUseCase] Use case classification for the campaign.
27
+ attr_reader :use_case
28
+ # @return [OpenStruct] Additional properties unmapped to the current class definition
29
+ attr_reader :additional_properties
30
+ # @return [Object]
31
+ attr_reader :_field_set
32
+ protected :_field_set
33
+
34
+ OMIT = Object.new
35
+
36
+ # @param brand [Integer]
37
+ # @param campaign_id [Integer] Unique identifier for the campaign.
38
+ # @param monthly_volume [Pinnacle::Types::MessageVolumeEnum]
39
+ # @param name [String] Display name of the campaign.
40
+ # @param opt_in [Pinnacle::Types::TollFreeCampaignSchemaOptIn] Opt-in keyword settings.
41
+ # @param production_message_content [String] Explain message that would be sent.
42
+ # @param use_case [Pinnacle::Types::TollFreeCampaignSchemaUseCase] Use case classification for the campaign.
43
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
44
+ # @return [Pinnacle::Campaigns::TollFree::Types::TollFreeAutofillResponse]
45
+ def initialize(brand: OMIT, campaign_id: OMIT, monthly_volume: OMIT, name: OMIT, opt_in: OMIT,
46
+ production_message_content: OMIT, use_case: OMIT, additional_properties: nil)
47
+ @brand = brand if brand != OMIT
48
+ @campaign_id = campaign_id if campaign_id != OMIT
49
+ @monthly_volume = monthly_volume if monthly_volume != OMIT
50
+ @name = name if name != OMIT
51
+ @opt_in = opt_in if opt_in != OMIT
52
+ @production_message_content = production_message_content if production_message_content != OMIT
53
+ @use_case = use_case if use_case != OMIT
54
+ @additional_properties = additional_properties
55
+ @_field_set = {
56
+ "brand": brand,
57
+ "campaignId": campaign_id,
58
+ "monthlyVolume": monthly_volume,
59
+ "name": name,
60
+ "optIn": opt_in,
61
+ "productionMessageContent": production_message_content,
62
+ "useCase": use_case
63
+ }.reject do |_k, v|
64
+ v == OMIT
65
+ end
66
+ end
67
+
68
+ # Deserialize a JSON object to an instance of TollFreeAutofillResponse
69
+ #
70
+ # @param json_object [String]
71
+ # @return [Pinnacle::Campaigns::TollFree::Types::TollFreeAutofillResponse]
72
+ def self.from_json(json_object:)
73
+ struct = JSON.parse(json_object, object_class: OpenStruct)
74
+ parsed_json = JSON.parse(json_object)
75
+ brand = parsed_json["brand"]
76
+ campaign_id = parsed_json["campaignId"]
77
+ monthly_volume = parsed_json["monthlyVolume"]
78
+ name = parsed_json["name"]
79
+ if parsed_json["optIn"].nil?
80
+ opt_in = nil
81
+ else
82
+ opt_in = parsed_json["optIn"].to_json
83
+ opt_in = Pinnacle::Types::TollFreeCampaignSchemaOptIn.from_json(json_object: opt_in)
84
+ end
85
+ production_message_content = parsed_json["productionMessageContent"]
86
+ if parsed_json["useCase"].nil?
87
+ use_case = nil
88
+ else
89
+ use_case = parsed_json["useCase"].to_json
90
+ use_case = Pinnacle::Types::TollFreeCampaignSchemaUseCase.from_json(json_object: use_case)
91
+ end
92
+ new(
93
+ brand: brand,
94
+ campaign_id: campaign_id,
95
+ monthly_volume: monthly_volume,
96
+ name: name,
97
+ opt_in: opt_in,
98
+ production_message_content: production_message_content,
99
+ use_case: use_case,
100
+ additional_properties: struct
101
+ )
102
+ end
103
+
104
+ # Serialize an instance of TollFreeAutofillResponse to a JSON object
105
+ #
106
+ # @return [String]
107
+ def to_json(*_args)
108
+ @_field_set&.to_json
109
+ end
110
+
111
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
112
+ # hash and check each fields type against the current object's property
113
+ # definitions.
114
+ #
115
+ # @param obj [Object]
116
+ # @return [Void]
117
+ def self.validate_raw(obj:)
118
+ obj.brand&.is_a?(Integer) != false || raise("Passed value for field obj.brand is not the expected type, validation failed.")
119
+ obj.campaign_id&.is_a?(Integer) != false || raise("Passed value for field obj.campaign_id is not the expected type, validation failed.")
120
+ obj.monthly_volume&.is_a?(Pinnacle::Types::MessageVolumeEnum) != false || raise("Passed value for field obj.monthly_volume is not the expected type, validation failed.")
121
+ obj.name&.is_a?(String) != false || raise("Passed value for field obj.name is not the expected type, validation failed.")
122
+ obj.opt_in.nil? || Pinnacle::Types::TollFreeCampaignSchemaOptIn.validate_raw(obj: obj.opt_in)
123
+ obj.production_message_content&.is_a?(String) != false || raise("Passed value for field obj.production_message_content is not the expected type, validation failed.")
124
+ obj.use_case.nil? || Pinnacle::Types::TollFreeCampaignSchemaUseCase.validate_raw(obj: obj.use_case)
125
+ end
126
+ end
127
+ end
128
+ end
129
+ end
130
+ end
@@ -0,0 +1,86 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "../../../types/opt_in_method_enum"
4
+ require "ostruct"
5
+ require "json"
6
+
7
+ module Pinnacle
8
+ module Campaigns
9
+ module TollFree
10
+ module Types
11
+ # Opt-in keyword settings.
12
+ class UpsertTollFreeSchemaOptIn
13
+ # @return [Pinnacle::Types::OptInMethodEnum]
14
+ attr_reader :method
15
+ # @return [String] Url to opt in.
16
+ attr_reader :url
17
+ # @return [String] Explain how users find the opt-in.
18
+ attr_reader :workflow_description
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 method [Pinnacle::Types::OptInMethodEnum]
28
+ # @param url [String] Url to opt in.
29
+ # @param workflow_description [String] Explain how users find the opt-in.
30
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
31
+ # @return [Pinnacle::Campaigns::TollFree::Types::UpsertTollFreeSchemaOptIn]
32
+ def initialize(method: OMIT, url: OMIT, workflow_description: OMIT, additional_properties: nil)
33
+ @method = method if method != OMIT
34
+ @url = url if url != OMIT
35
+ @workflow_description = workflow_description if workflow_description != OMIT
36
+ @additional_properties = additional_properties
37
+ @_field_set = {
38
+ "method": method,
39
+ "url": url,
40
+ "workflowDescription": workflow_description
41
+ }.reject do |_k, v|
42
+ v == OMIT
43
+ end
44
+ end
45
+
46
+ # Deserialize a JSON object to an instance of UpsertTollFreeSchemaOptIn
47
+ #
48
+ # @param json_object [String]
49
+ # @return [Pinnacle::Campaigns::TollFree::Types::UpsertTollFreeSchemaOptIn]
50
+ def self.from_json(json_object:)
51
+ struct = JSON.parse(json_object, object_class: OpenStruct)
52
+ parsed_json = JSON.parse(json_object)
53
+ method = parsed_json["method"]
54
+ url = parsed_json["url"]
55
+ workflow_description = parsed_json["workflowDescription"]
56
+ new(
57
+ method: method,
58
+ url: url,
59
+ workflow_description: workflow_description,
60
+ additional_properties: struct
61
+ )
62
+ end
63
+
64
+ # Serialize an instance of UpsertTollFreeSchemaOptIn to a JSON object
65
+ #
66
+ # @return [String]
67
+ def to_json(*_args)
68
+ @_field_set&.to_json
69
+ end
70
+
71
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
72
+ # hash and check each fields type against the current object's property
73
+ # definitions.
74
+ #
75
+ # @param obj [Object]
76
+ # @return [Void]
77
+ def self.validate_raw(obj:)
78
+ obj.method&.is_a?(Pinnacle::Types::OptInMethodEnum) != false || raise("Passed value for field obj.method is not the expected type, validation failed.")
79
+ obj.url&.is_a?(String) != false || raise("Passed value for field obj.url is not the expected type, validation failed.")
80
+ obj.workflow_description&.is_a?(String) != false || raise("Passed value for field obj.workflow_description is not the expected type, validation failed.")
81
+ end
82
+ end
83
+ end
84
+ end
85
+ end
86
+ end