rcs 1.0.18 → 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,318 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "../../../requests"
4
+ require_relative "types/send_sms_schema_options"
5
+ require_relative "types/send_sms_response"
6
+ require_relative "types/send_mms_schema_options"
7
+ require_relative "types/send_mms_response"
8
+ require_relative "../../types/rcs"
9
+ require_relative "types/send_rcs_response"
10
+ require "async"
11
+
12
+ module Pinnacle
13
+ module Messages
14
+ class SendClient
15
+ # @return [Pinnacle::RequestClient]
16
+ attr_reader :request_client
17
+
18
+ # @param request_client [Pinnacle::RequestClient]
19
+ # @return [Pinnacle::Messages::SendClient]
20
+ def initialize(request_client:)
21
+ @request_client = request_client
22
+ end
23
+
24
+ # Send a SMS message immediately or schedule it for future delivery.
25
+ #
26
+ # @param from [String] Phone number that sends the message in E.164 format.
27
+ # @param options [Hash] Additional settings to customize SMS delivery.Request of type Pinnacle::Messages::Send::Types::SendSmsSchemaOptions, as a Hash
28
+ # * :schedule (Hash)
29
+ # * :end_date (DateTime)
30
+ # * :recurrence (String)
31
+ # * :send_at (String)
32
+ # * :timezone (String)
33
+ # * :tracking (Pinnacle::Types::Tracking)
34
+ # @param text [String] Message content.
35
+ # @param to [String] Recipient's phone number in E.164 format.
36
+ # @param request_options [Pinnacle::RequestOptions]
37
+ # @return [Pinnacle::Types::SentSmsDetails, Pinnacle::Types::ScheduledMessaage]
38
+ # @example
39
+ # api = Pinnacle::Client.new(
40
+ # base_url: "https://api.example.com",
41
+ # environment: Pinnacle::Environment::DEFAULT,
42
+ # api_key: "YOUR_API_KEY"
43
+ # )
44
+ # api.messages.send.sms(
45
+ # from: "+14155164736",
46
+ # text: "Hey! 😂",
47
+ # to: "+14154746461"
48
+ # )
49
+ def sms(from:, text:, to:, options: nil, request_options: nil)
50
+ response = @request_client.conn.post do |req|
51
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
52
+ req.headers["PINNACLE-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
53
+ req.headers = {
54
+ **(req.headers || {}),
55
+ **@request_client.get_headers,
56
+ **(request_options&.additional_headers || {})
57
+ }.compact
58
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
59
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
60
+ end
61
+ req.body = {
62
+ **(request_options&.additional_body_parameters || {}),
63
+ from: from,
64
+ options: options,
65
+ text: text,
66
+ to: to
67
+ }.compact
68
+ req.url "#{@request_client.get_url(request_options: request_options)}/messages/send/sms"
69
+ end
70
+ Pinnacle::Messages::Send::Types::SendSmsResponse.from_json(json_object: response.body)
71
+ end
72
+
73
+ # Send a MMS immediately or schedule it for future delivery.
74
+ #
75
+ # @param from [String] Phone number you want to send the message from in E.164 format.
76
+ # @param media_urls [Array<String>] Media file URLs to send.<br>
77
+ # See [supported media
78
+ # types](https://app.pinnacle.sh/supported-file-types?type=MMS).
79
+ # @param options [Hash] Control how your MMS is processed and delivered.Request of type Pinnacle::Messages::Send::Types::SendMmsSchemaOptions, as a Hash
80
+ # * :multiple_messages (Boolean)
81
+ # * :schedule (Hash)
82
+ # * :end_date (DateTime)
83
+ # * :recurrence (String)
84
+ # * :send_at (String)
85
+ # * :timezone (String)
86
+ # * :tracking (Pinnacle::Types::Tracking)
87
+ # * :validate (Boolean)
88
+ # @param text [String] Message text to accompany the media.
89
+ # @param to [String] Recipient's phone number in E.164 format.
90
+ # @param request_options [Pinnacle::RequestOptions]
91
+ # @return [Pinnacle::Types::SentMmsDetails, Pinnacle::Types::ScheduledMessaage]
92
+ # @example
93
+ # api = Pinnacle::Client.new(
94
+ # base_url: "https://api.example.com",
95
+ # environment: Pinnacle::Environment::DEFAULT,
96
+ # api_key: "YOUR_API_KEY"
97
+ # )
98
+ # api.messages.send.mms(
99
+ # from: "+14155164736",
100
+ # media_urls: ["https://fastly.picsum.photos/id/941/300/300.jpg?hmac=mDxM9PWSqRDjecwSCEpzU4bj35gqnG7yA25OL29uNv0"],
101
+ # options: { multiple_messages: true, validate: true },
102
+ # text: "Check out this image!",
103
+ # to: "+14154746461"
104
+ # )
105
+ def mms(from:, media_urls:, text:, to:, options: nil, 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
+ req.body = {
118
+ **(request_options&.additional_body_parameters || {}),
119
+ from: from,
120
+ mediaUrls: media_urls,
121
+ options: options,
122
+ text: text,
123
+ to: to
124
+ }.compact
125
+ req.url "#{@request_client.get_url(request_options: request_options)}/messages/send/mms"
126
+ end
127
+ Pinnacle::Messages::Send::Types::SendMmsResponse.from_json(json_object: response.body)
128
+ end
129
+
130
+ # Send a RCS message immediately or schedule it for future delivery. <br>
131
+ # Requires an active RCS agent and recipient devices that support RCS Business
132
+ # Messaging.
133
+ #
134
+ # @param request [Pinnacle::Types::RcsText, Pinnacle::Types::RcsMedia, Pinnacle::Types::RcsCard]
135
+ # @param request_options [Pinnacle::RequestOptions]
136
+ # @return [Pinnacle::Types::SentRcsDetails, Pinnacle::Types::ScheduledMessaage]
137
+ # @example
138
+ # api = Pinnacle::Client.new(
139
+ # base_url: "https://api.example.com",
140
+ # environment: Pinnacle::Environment::DEFAULT,
141
+ # api_key: "YOUR_API_KEY"
142
+ # )
143
+ # api.messages.send.rcs(request: { quick_replies: , text: "text", from: "from", to: "to" })
144
+ def rcs(request:, request_options: nil)
145
+ response = @request_client.conn.post do |req|
146
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
147
+ req.headers["PINNACLE-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
148
+ req.headers = {
149
+ **(req.headers || {}),
150
+ **@request_client.get_headers,
151
+ **(request_options&.additional_headers || {})
152
+ }.compact
153
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
154
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
155
+ end
156
+ req.body = { **(request || {}), **(request_options&.additional_body_parameters || {}) }.compact
157
+ req.url "#{@request_client.get_url(request_options: request_options)}/messages/send/rcs"
158
+ end
159
+ Pinnacle::Messages::Send::Types::SendRcsResponse.from_json(json_object: response.body)
160
+ end
161
+ end
162
+
163
+ class AsyncSendClient
164
+ # @return [Pinnacle::AsyncRequestClient]
165
+ attr_reader :request_client
166
+
167
+ # @param request_client [Pinnacle::AsyncRequestClient]
168
+ # @return [Pinnacle::Messages::AsyncSendClient]
169
+ def initialize(request_client:)
170
+ @request_client = request_client
171
+ end
172
+
173
+ # Send a SMS message immediately or schedule it for future delivery.
174
+ #
175
+ # @param from [String] Phone number that sends the message in E.164 format.
176
+ # @param options [Hash] Additional settings to customize SMS delivery.Request of type Pinnacle::Messages::Send::Types::SendSmsSchemaOptions, as a Hash
177
+ # * :schedule (Hash)
178
+ # * :end_date (DateTime)
179
+ # * :recurrence (String)
180
+ # * :send_at (String)
181
+ # * :timezone (String)
182
+ # * :tracking (Pinnacle::Types::Tracking)
183
+ # @param text [String] Message content.
184
+ # @param to [String] Recipient's phone number in E.164 format.
185
+ # @param request_options [Pinnacle::RequestOptions]
186
+ # @return [Pinnacle::Types::SentSmsDetails, Pinnacle::Types::ScheduledMessaage]
187
+ # @example
188
+ # api = Pinnacle::Client.new(
189
+ # base_url: "https://api.example.com",
190
+ # environment: Pinnacle::Environment::DEFAULT,
191
+ # api_key: "YOUR_API_KEY"
192
+ # )
193
+ # api.messages.send.sms(
194
+ # from: "+14155164736",
195
+ # text: "Hey! 😂",
196
+ # to: "+14154746461"
197
+ # )
198
+ def sms(from:, text:, to:, options: nil, request_options: nil)
199
+ Async do
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 = {
212
+ **(request_options&.additional_body_parameters || {}),
213
+ from: from,
214
+ options: options,
215
+ text: text,
216
+ to: to
217
+ }.compact
218
+ req.url "#{@request_client.get_url(request_options: request_options)}/messages/send/sms"
219
+ end
220
+ Pinnacle::Messages::Send::Types::SendSmsResponse.from_json(json_object: response.body)
221
+ end
222
+ end
223
+
224
+ # Send a MMS immediately or schedule it for future delivery.
225
+ #
226
+ # @param from [String] Phone number you want to send the message from in E.164 format.
227
+ # @param media_urls [Array<String>] Media file URLs to send.<br>
228
+ # See [supported media
229
+ # types](https://app.pinnacle.sh/supported-file-types?type=MMS).
230
+ # @param options [Hash] Control how your MMS is processed and delivered.Request of type Pinnacle::Messages::Send::Types::SendMmsSchemaOptions, as a Hash
231
+ # * :multiple_messages (Boolean)
232
+ # * :schedule (Hash)
233
+ # * :end_date (DateTime)
234
+ # * :recurrence (String)
235
+ # * :send_at (String)
236
+ # * :timezone (String)
237
+ # * :tracking (Pinnacle::Types::Tracking)
238
+ # * :validate (Boolean)
239
+ # @param text [String] Message text to accompany the media.
240
+ # @param to [String] Recipient's phone number in E.164 format.
241
+ # @param request_options [Pinnacle::RequestOptions]
242
+ # @return [Pinnacle::Types::SentMmsDetails, Pinnacle::Types::ScheduledMessaage]
243
+ # @example
244
+ # api = Pinnacle::Client.new(
245
+ # base_url: "https://api.example.com",
246
+ # environment: Pinnacle::Environment::DEFAULT,
247
+ # api_key: "YOUR_API_KEY"
248
+ # )
249
+ # api.messages.send.mms(
250
+ # from: "+14155164736",
251
+ # media_urls: ["https://fastly.picsum.photos/id/941/300/300.jpg?hmac=mDxM9PWSqRDjecwSCEpzU4bj35gqnG7yA25OL29uNv0"],
252
+ # options: { multiple_messages: true, validate: true },
253
+ # text: "Check out this image!",
254
+ # to: "+14154746461"
255
+ # )
256
+ def mms(from:, media_urls:, text:, to:, options: nil, request_options: nil)
257
+ Async do
258
+ response = @request_client.conn.post do |req|
259
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
260
+ req.headers["PINNACLE-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
261
+ req.headers = {
262
+ **(req.headers || {}),
263
+ **@request_client.get_headers,
264
+ **(request_options&.additional_headers || {})
265
+ }.compact
266
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
267
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
268
+ end
269
+ req.body = {
270
+ **(request_options&.additional_body_parameters || {}),
271
+ from: from,
272
+ mediaUrls: media_urls,
273
+ options: options,
274
+ text: text,
275
+ to: to
276
+ }.compact
277
+ req.url "#{@request_client.get_url(request_options: request_options)}/messages/send/mms"
278
+ end
279
+ Pinnacle::Messages::Send::Types::SendMmsResponse.from_json(json_object: response.body)
280
+ end
281
+ end
282
+
283
+ # Send a RCS message immediately or schedule it for future delivery. <br>
284
+ # Requires an active RCS agent and recipient devices that support RCS Business
285
+ # Messaging.
286
+ #
287
+ # @param request [Pinnacle::Types::RcsText, Pinnacle::Types::RcsMedia, Pinnacle::Types::RcsCard]
288
+ # @param request_options [Pinnacle::RequestOptions]
289
+ # @return [Pinnacle::Types::SentRcsDetails, Pinnacle::Types::ScheduledMessaage]
290
+ # @example
291
+ # api = Pinnacle::Client.new(
292
+ # base_url: "https://api.example.com",
293
+ # environment: Pinnacle::Environment::DEFAULT,
294
+ # api_key: "YOUR_API_KEY"
295
+ # )
296
+ # api.messages.send.rcs(request: { quick_replies: , text: "text", from: "from", to: "to" })
297
+ def rcs(request:, request_options: nil)
298
+ Async do
299
+ response = @request_client.conn.post do |req|
300
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
301
+ req.headers["PINNACLE-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
302
+ req.headers = {
303
+ **(req.headers || {}),
304
+ **@request_client.get_headers,
305
+ **(request_options&.additional_headers || {})
306
+ }.compact
307
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
308
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
309
+ end
310
+ req.body = { **(request || {}), **(request_options&.additional_body_parameters || {}) }.compact
311
+ req.url "#{@request_client.get_url(request_options: request_options)}/messages/send/rcs"
312
+ end
313
+ Pinnacle::Messages::Send::Types::SendRcsResponse.from_json(json_object: response.body)
314
+ end
315
+ end
316
+ end
317
+ end
318
+ end
@@ -0,0 +1,60 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "json"
4
+ require_relative "../../../types/sent_mms_details"
5
+ require_relative "../../../types/scheduled_messaage"
6
+
7
+ module Pinnacle
8
+ module Messages
9
+ module Send
10
+ module Types
11
+ class SendMmsResponse
12
+ # Deserialize a JSON object to an instance of SendMmsResponse
13
+ #
14
+ # @param json_object [String]
15
+ # @return [Pinnacle::Messages::Send::Types::SendMmsResponse]
16
+ def self.from_json(json_object:)
17
+ struct = JSON.parse(json_object, object_class: OpenStruct)
18
+ begin
19
+ Pinnacle::Types::SentMmsDetails.validate_raw(obj: struct)
20
+ return Pinnacle::Types::SentMmsDetails.from_json(json_object: struct) unless struct.nil?
21
+
22
+ return nil
23
+ rescue StandardError
24
+ # noop
25
+ end
26
+ begin
27
+ Pinnacle::Types::ScheduledMessaage.validate_raw(obj: struct)
28
+ return Pinnacle::Types::ScheduledMessaage.from_json(json_object: struct) unless struct.nil?
29
+
30
+ return nil
31
+ rescue StandardError
32
+ # noop
33
+ end
34
+ struct
35
+ end
36
+
37
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
38
+ # hash and check each fields type against the current object's property
39
+ # definitions.
40
+ #
41
+ # @param obj [Object]
42
+ # @return [Void]
43
+ def self.validate_raw(obj:)
44
+ begin
45
+ return Pinnacle::Types::SentMmsDetails.validate_raw(obj: obj)
46
+ rescue StandardError
47
+ # noop
48
+ end
49
+ begin
50
+ return Pinnacle::Types::ScheduledMessaage.validate_raw(obj: obj)
51
+ rescue StandardError
52
+ # noop
53
+ end
54
+ raise("Passed value matched no type within the union, validation failed.")
55
+ end
56
+ end
57
+ end
58
+ end
59
+ end
60
+ end
@@ -0,0 +1,108 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "../../../types/message_schedule"
4
+ require_relative "../../../types/tracking"
5
+ require "ostruct"
6
+ require "json"
7
+
8
+ module Pinnacle
9
+ module Messages
10
+ module Send
11
+ module Types
12
+ # Control how your MMS is processed and delivered.
13
+ class SendMmsSchemaOptions
14
+ # @return [Boolean] Allow splitting large content into multiple MMS messages if size limits are
15
+ # exceeded. <br>
16
+ # If `false`, MMS over the limit will throw an error and won't be sent.
17
+ attr_reader :multiple_messages
18
+ # @return [Pinnacle::Types::MessageSchedule]
19
+ attr_reader :schedule
20
+ # @return [Pinnacle::Types::Tracking]
21
+ attr_reader :tracking
22
+ # @return [Boolean] Set to true to check this message and throw an error when validation fails. <br>
23
+ # If errors occur, the message is not sent. Otherwise message is sent after
24
+ # validation.
25
+ attr_reader :validate
26
+ # @return [OpenStruct] Additional properties unmapped to the current class definition
27
+ attr_reader :additional_properties
28
+ # @return [Object]
29
+ attr_reader :_field_set
30
+ protected :_field_set
31
+
32
+ OMIT = Object.new
33
+
34
+ # @param multiple_messages [Boolean] Allow splitting large content into multiple MMS messages if size limits are
35
+ # exceeded. <br>
36
+ # If `false`, MMS over the limit will throw an error and won't be sent.
37
+ # @param schedule [Pinnacle::Types::MessageSchedule]
38
+ # @param tracking [Pinnacle::Types::Tracking]
39
+ # @param validate [Boolean] Set to true to check this message and throw an error when validation fails. <br>
40
+ # If errors occur, the message is not sent. Otherwise message is sent after
41
+ # validation.
42
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
43
+ # @return [Pinnacle::Messages::Send::Types::SendMmsSchemaOptions]
44
+ def initialize(multiple_messages:, validate:, schedule: OMIT, tracking: OMIT, additional_properties: nil)
45
+ @multiple_messages = multiple_messages
46
+ @schedule = schedule if schedule != OMIT
47
+ @tracking = tracking if tracking != OMIT
48
+ @validate = validate
49
+ @additional_properties = additional_properties
50
+ @_field_set = {
51
+ "multiple_messages": multiple_messages,
52
+ "schedule": schedule,
53
+ "tracking": tracking,
54
+ "validate": validate
55
+ }.reject do |_k, v|
56
+ v == OMIT
57
+ end
58
+ end
59
+
60
+ # Deserialize a JSON object to an instance of SendMmsSchemaOptions
61
+ #
62
+ # @param json_object [String]
63
+ # @return [Pinnacle::Messages::Send::Types::SendMmsSchemaOptions]
64
+ def self.from_json(json_object:)
65
+ struct = JSON.parse(json_object, object_class: OpenStruct)
66
+ parsed_json = JSON.parse(json_object)
67
+ multiple_messages = parsed_json["multiple_messages"]
68
+ if parsed_json["schedule"].nil?
69
+ schedule = nil
70
+ else
71
+ schedule = parsed_json["schedule"].to_json
72
+ schedule = Pinnacle::Types::MessageSchedule.from_json(json_object: schedule)
73
+ end
74
+ tracking = parsed_json["tracking"]
75
+ validate = parsed_json["validate"]
76
+ new(
77
+ multiple_messages: multiple_messages,
78
+ schedule: schedule,
79
+ tracking: tracking,
80
+ validate: validate,
81
+ additional_properties: struct
82
+ )
83
+ end
84
+
85
+ # Serialize an instance of SendMmsSchemaOptions to a JSON object
86
+ #
87
+ # @return [String]
88
+ def to_json(*_args)
89
+ @_field_set&.to_json
90
+ end
91
+
92
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
93
+ # hash and check each fields type against the current object's property
94
+ # definitions.
95
+ #
96
+ # @param obj [Object]
97
+ # @return [Void]
98
+ def self.validate_raw(obj:)
99
+ obj.multiple_messages.is_a?(Boolean) != false || raise("Passed value for field obj.multiple_messages is not the expected type, validation failed.")
100
+ obj.schedule.nil? || Pinnacle::Types::MessageSchedule.validate_raw(obj: obj.schedule)
101
+ obj.tracking&.is_a?(Pinnacle::Types::Tracking) != false || raise("Passed value for field obj.tracking is not the expected type, validation failed.")
102
+ obj.validate.is_a?(Boolean) != false || raise("Passed value for field obj.validate is not the expected type, validation failed.")
103
+ end
104
+ end
105
+ end
106
+ end
107
+ end
108
+ end
@@ -0,0 +1,60 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "json"
4
+ require_relative "../../../types/sent_rcs_details"
5
+ require_relative "../../../types/scheduled_messaage"
6
+
7
+ module Pinnacle
8
+ module Messages
9
+ module Send
10
+ module Types
11
+ class SendRcsResponse
12
+ # Deserialize a JSON object to an instance of SendRcsResponse
13
+ #
14
+ # @param json_object [String]
15
+ # @return [Pinnacle::Messages::Send::Types::SendRcsResponse]
16
+ def self.from_json(json_object:)
17
+ struct = JSON.parse(json_object, object_class: OpenStruct)
18
+ begin
19
+ Pinnacle::Types::SentRcsDetails.validate_raw(obj: struct)
20
+ return Pinnacle::Types::SentRcsDetails.from_json(json_object: struct) unless struct.nil?
21
+
22
+ return nil
23
+ rescue StandardError
24
+ # noop
25
+ end
26
+ begin
27
+ Pinnacle::Types::ScheduledMessaage.validate_raw(obj: struct)
28
+ return Pinnacle::Types::ScheduledMessaage.from_json(json_object: struct) unless struct.nil?
29
+
30
+ return nil
31
+ rescue StandardError
32
+ # noop
33
+ end
34
+ struct
35
+ end
36
+
37
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
38
+ # hash and check each fields type against the current object's property
39
+ # definitions.
40
+ #
41
+ # @param obj [Object]
42
+ # @return [Void]
43
+ def self.validate_raw(obj:)
44
+ begin
45
+ return Pinnacle::Types::SentRcsDetails.validate_raw(obj: obj)
46
+ rescue StandardError
47
+ # noop
48
+ end
49
+ begin
50
+ return Pinnacle::Types::ScheduledMessaage.validate_raw(obj: obj)
51
+ rescue StandardError
52
+ # noop
53
+ end
54
+ raise("Passed value matched no type within the union, validation failed.")
55
+ end
56
+ end
57
+ end
58
+ end
59
+ end
60
+ end
@@ -0,0 +1,60 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "json"
4
+ require_relative "../../../types/sent_sms_details"
5
+ require_relative "../../../types/scheduled_messaage"
6
+
7
+ module Pinnacle
8
+ module Messages
9
+ module Send
10
+ module Types
11
+ class SendSmsResponse
12
+ # Deserialize a JSON object to an instance of SendSmsResponse
13
+ #
14
+ # @param json_object [String]
15
+ # @return [Pinnacle::Messages::Send::Types::SendSmsResponse]
16
+ def self.from_json(json_object:)
17
+ struct = JSON.parse(json_object, object_class: OpenStruct)
18
+ begin
19
+ Pinnacle::Types::SentSmsDetails.validate_raw(obj: struct)
20
+ return Pinnacle::Types::SentSmsDetails.from_json(json_object: struct) unless struct.nil?
21
+
22
+ return nil
23
+ rescue StandardError
24
+ # noop
25
+ end
26
+ begin
27
+ Pinnacle::Types::ScheduledMessaage.validate_raw(obj: struct)
28
+ return Pinnacle::Types::ScheduledMessaage.from_json(json_object: struct) unless struct.nil?
29
+
30
+ return nil
31
+ rescue StandardError
32
+ # noop
33
+ end
34
+ struct
35
+ end
36
+
37
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
38
+ # hash and check each fields type against the current object's property
39
+ # definitions.
40
+ #
41
+ # @param obj [Object]
42
+ # @return [Void]
43
+ def self.validate_raw(obj:)
44
+ begin
45
+ return Pinnacle::Types::SentSmsDetails.validate_raw(obj: obj)
46
+ rescue StandardError
47
+ # noop
48
+ end
49
+ begin
50
+ return Pinnacle::Types::ScheduledMessaage.validate_raw(obj: obj)
51
+ rescue StandardError
52
+ # noop
53
+ end
54
+ raise("Passed value matched no type within the union, validation failed.")
55
+ end
56
+ end
57
+ end
58
+ end
59
+ end
60
+ end
@@ -0,0 +1,81 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "../../../types/message_schedule"
4
+ require_relative "../../../types/tracking"
5
+ require "ostruct"
6
+ require "json"
7
+
8
+ module Pinnacle
9
+ module Messages
10
+ module Send
11
+ module Types
12
+ # Additional settings to customize SMS delivery.
13
+ class SendSmsSchemaOptions
14
+ # @return [Pinnacle::Types::MessageSchedule]
15
+ attr_reader :schedule
16
+ # @return [Pinnacle::Types::Tracking]
17
+ attr_reader :tracking
18
+ # @return [OpenStruct] Additional properties unmapped to the current class definition
19
+ attr_reader :additional_properties
20
+ # @return [Object]
21
+ attr_reader :_field_set
22
+ protected :_field_set
23
+
24
+ OMIT = Object.new
25
+
26
+ # @param schedule [Pinnacle::Types::MessageSchedule]
27
+ # @param tracking [Pinnacle::Types::Tracking]
28
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
29
+ # @return [Pinnacle::Messages::Send::Types::SendSmsSchemaOptions]
30
+ def initialize(schedule: OMIT, tracking: OMIT, additional_properties: nil)
31
+ @schedule = schedule if schedule != OMIT
32
+ @tracking = tracking if tracking != OMIT
33
+ @additional_properties = additional_properties
34
+ @_field_set = { "schedule": schedule, "tracking": tracking }.reject do |_k, v|
35
+ v == OMIT
36
+ end
37
+ end
38
+
39
+ # Deserialize a JSON object to an instance of SendSmsSchemaOptions
40
+ #
41
+ # @param json_object [String]
42
+ # @return [Pinnacle::Messages::Send::Types::SendSmsSchemaOptions]
43
+ def self.from_json(json_object:)
44
+ struct = JSON.parse(json_object, object_class: OpenStruct)
45
+ parsed_json = JSON.parse(json_object)
46
+ if parsed_json["schedule"].nil?
47
+ schedule = nil
48
+ else
49
+ schedule = parsed_json["schedule"].to_json
50
+ schedule = Pinnacle::Types::MessageSchedule.from_json(json_object: schedule)
51
+ end
52
+ tracking = parsed_json["tracking"]
53
+ new(
54
+ schedule: schedule,
55
+ tracking: tracking,
56
+ additional_properties: struct
57
+ )
58
+ end
59
+
60
+ # Serialize an instance of SendSmsSchemaOptions to a JSON object
61
+ #
62
+ # @return [String]
63
+ def to_json(*_args)
64
+ @_field_set&.to_json
65
+ end
66
+
67
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
68
+ # hash and check each fields type against the current object's property
69
+ # definitions.
70
+ #
71
+ # @param obj [Object]
72
+ # @return [Void]
73
+ def self.validate_raw(obj:)
74
+ obj.schedule.nil? || Pinnacle::Types::MessageSchedule.validate_raw(obj: obj.schedule)
75
+ obj.tracking&.is_a?(Pinnacle::Types::Tracking) != false || raise("Passed value for field obj.tracking is not the expected type, validation failed.")
76
+ end
77
+ end
78
+ end
79
+ end
80
+ end
81
+ end