rcs 1.0.18 → 2.0.0.pre.rc.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (321) hide show
  1. checksums.yaml +4 -4
  2. data/lib/environment.rb +1 -1
  3. data/lib/rcs/brands/client.rb +631 -0
  4. data/lib/rcs/brands/types/autofill_brand_schema_options.rb +61 -0
  5. data/lib/rcs/brands/types/brand_contact.rb +84 -0
  6. data/lib/rcs/campaigns/client.rb +44 -0
  7. data/lib/rcs/campaigns/dlc/client.rb +480 -0
  8. data/lib/rcs/campaigns/dlc/types/upsert_dlc_schema_keywords.rb +99 -0
  9. data/lib/rcs/campaigns/dlc/types/upsert_dlc_schema_keywords_help.rb +74 -0
  10. data/lib/rcs/campaigns/dlc/types/upsert_dlc_schema_keywords_opt_in.rb +74 -0
  11. data/lib/rcs/campaigns/dlc/types/upsert_dlc_schema_keywords_opt_out.rb +74 -0
  12. data/lib/rcs/campaigns/dlc/types/upsert_dlc_schema_links.rb +74 -0
  13. data/lib/rcs/campaigns/dlc/types/upsert_dlc_schema_options.rb +110 -0
  14. data/lib/rcs/campaigns/dlc/types/upsert_dlc_schema_use_case.rb +76 -0
  15. data/lib/rcs/campaigns/rcs/client.rb +457 -0
  16. data/lib/rcs/campaigns/rcs/types/rcs_autofill_response.rb +155 -0
  17. data/lib/rcs/campaigns/rcs/types/upsert_rcs_schema_agent.rb +140 -0
  18. data/lib/rcs/campaigns/rcs/types/upsert_rcs_schema_agent_emails_item.rb +73 -0
  19. data/lib/rcs/campaigns/rcs/types/upsert_rcs_schema_agent_phones_item.rb +73 -0
  20. data/lib/rcs/campaigns/rcs/types/upsert_rcs_schema_agent_websites_item.rb +73 -0
  21. data/lib/rcs/campaigns/rcs/types/upsert_rcs_schema_links.rb +74 -0
  22. data/lib/rcs/campaigns/rcs/types/upsert_rcs_schema_opt_in.rb +75 -0
  23. data/lib/rcs/campaigns/rcs/types/upsert_rcs_schema_opt_out.rb +76 -0
  24. data/lib/rcs/campaigns/rcs/types/upsert_rcs_schema_use_case.rb +75 -0
  25. data/lib/rcs/campaigns/toll_free/client.rb +429 -0
  26. data/lib/rcs/campaigns/toll_free/types/toll_free_autofill_response.rb +130 -0
  27. data/lib/rcs/campaigns/toll_free/types/upsert_toll_free_schema_opt_in.rb +86 -0
  28. data/lib/rcs/campaigns/toll_free/types/upsert_toll_free_schema_use_case.rb +75 -0
  29. data/lib/rcs/contacts/client.rb +275 -0
  30. data/lib/rcs/conversations/client.rb +273 -0
  31. data/lib/rcs/message/client.rb +30 -0
  32. data/lib/rcs/message/sms/client.rb +96 -0
  33. data/lib/rcs/messages/client.rb +192 -0
  34. data/lib/rcs/messages/mms/client.rb +98 -0
  35. data/lib/rcs/messages/rcs/client.rb +94 -0
  36. data/lib/rcs/messages/send/client.rb +318 -0
  37. data/lib/rcs/messages/send/types/send_mms_response.rb +60 -0
  38. data/lib/rcs/messages/send/types/send_mms_schema_options.rb +108 -0
  39. data/lib/rcs/messages/send/types/send_rcs_response.rb +60 -0
  40. data/lib/rcs/messages/send/types/send_sms_response.rb +60 -0
  41. data/lib/rcs/messages/send/types/send_sms_schema_options.rb +81 -0
  42. data/lib/rcs/messages/types/message_reaction_schema_options.rb +71 -0
  43. data/lib/rcs/phone_numbers/campaign/client.rb +179 -0
  44. data/lib/rcs/phone_numbers/client.rb +359 -0
  45. data/lib/rcs/phone_numbers/types/phone_details_schema_level.rb +16 -0
  46. data/lib/rcs/phone_numbers/types/phone_details_schema_options.rb +93 -0
  47. data/lib/rcs/phone_numbers/types/phone_details_schema_options_enhanced_contact_info.rb +64 -0
  48. data/lib/rcs/phone_numbers/types/phone_numbers_get_response.rb +58 -0
  49. data/lib/rcs/phone_numbers/types/search_schema_location.rb +96 -0
  50. data/lib/rcs/phone_numbers/types/search_schema_number.rb +81 -0
  51. data/lib/rcs/phone_numbers/types/search_schema_options.rb +62 -0
  52. data/lib/rcs/phone_numbers/webhook/client.rb +191 -0
  53. data/lib/rcs/status/client.rb +30 -0
  54. data/lib/rcs/status/get/client.rb +367 -0
  55. data/lib/rcs/tools/client.rb +32 -199
  56. data/lib/rcs/tools/contact_card/client.rb +285 -0
  57. data/lib/rcs/tools/contact_card/types/get_v_card_schema_options.rb +67 -0
  58. data/lib/rcs/tools/file/client.rb +138 -0
  59. data/lib/rcs/tools/file/types/file_upload_schema_options.rb +70 -0
  60. data/lib/rcs/tools/file/types/file_upload_schema_options_download.rb +66 -0
  61. data/lib/rcs/tools/url/client.rb +245 -0
  62. data/lib/rcs/types/advanced_phone_information.rb +147 -0
  63. data/lib/rcs/types/advanced_phone_information_carrier.rb +90 -0
  64. data/lib/rcs/types/advanced_phone_information_contact.rb +146 -0
  65. data/lib/rcs/types/advanced_phone_information_location.rb +142 -0
  66. data/lib/rcs/types/advanced_phone_information_location_coordinates.rb +73 -0
  67. data/lib/rcs/types/advanced_phone_information_location_country.rb +77 -0
  68. data/lib/rcs/types/advanced_phone_information_type.rb +97 -0
  69. data/lib/rcs/types/advanced_phone_information_type_recommendation.rb +15 -0
  70. data/lib/rcs/types/agent.rb +68 -0
  71. data/lib/rcs/types/attach_webhook_params.rb +60 -0
  72. data/lib/rcs/types/attach_webhook_response_webhook.rb +86 -0
  73. data/lib/rcs/types/attach_webhook_schema_name.rb +88 -0
  74. data/lib/rcs/types/attach_webhook_schema_webhook_id.rb +77 -0
  75. data/lib/rcs/types/attached_phone_number_result.rb +75 -0
  76. data/lib/rcs/types/autofill_campaign_params.rb +69 -0
  77. data/lib/rcs/types/autofill_dlc_campaign_response.rb +169 -0
  78. data/lib/rcs/types/autofill_dlc_response_keywords.rb +95 -0
  79. data/lib/rcs/types/autofill_dlc_response_keywords_help.rb +70 -0
  80. data/lib/rcs/{send/types/send_sms_response.rb → types/autofill_dlc_response_keywords_opt_in.rb} +18 -17
  81. data/lib/rcs/types/autofill_dlc_response_keywords_opt_out.rb +70 -0
  82. data/lib/rcs/types/autofill_dlc_response_links.rb +70 -0
  83. data/lib/rcs/types/autofill_dlc_response_options.rb +106 -0
  84. data/lib/rcs/types/autofill_dlc_response_use_case.rb +72 -0
  85. data/lib/rcs/types/bad_request_error_body.rb +44 -45
  86. data/lib/rcs/types/basic_phone_information.rb +127 -0
  87. data/lib/rcs/{company/types/company_register_response_brand.rb → types/basic_phone_information_contact.rb} +12 -21
  88. data/lib/rcs/types/basic_phone_information_location.rb +74 -0
  89. data/lib/rcs/types/basic_phone_information_location_country.rb +75 -0
  90. data/lib/rcs/types/brand_status.rb +92 -0
  91. data/lib/rcs/types/brand_status_enum.rb +21 -0
  92. data/lib/rcs/types/buy_response_capabilities.rb +77 -0
  93. data/lib/rcs/types/campaign_enum.rb +15 -0
  94. data/lib/rcs/types/campaign_query.rb +69 -0
  95. data/lib/rcs/{company/types/company_register_request_company_id.rb → types/campaign_submission_result.rb} +15 -16
  96. data/lib/rcs/types/campaign_validation_response_errors_item.rb +76 -0
  97. data/lib/rcs/types/campaign_validation_result.rb +71 -0
  98. data/lib/rcs/types/click_action.rb +73 -0
  99. data/lib/rcs/types/click_action_data.rb +56 -0
  100. data/lib/rcs/types/click_action_data_metadata.rb +69 -0
  101. data/lib/rcs/types/company_sector_enum.rb +26 -0
  102. data/lib/rcs/types/company_type_enum.rb +14 -0
  103. data/lib/rcs/types/configured_webhook.rb +85 -0
  104. data/lib/rcs/types/contact.rb +105 -0
  105. data/lib/rcs/types/contact_id.rb +57 -0
  106. data/lib/rcs/types/conversation.rb +146 -0
  107. data/lib/rcs/types/conversation_contact.rb +68 -0
  108. data/lib/rcs/types/conversation_list.rb +79 -0
  109. data/lib/rcs/types/conversation_sender.rb +60 -0
  110. data/lib/rcs/types/create_url_options.rb +61 -0
  111. data/lib/rcs/types/detached_phone_number_result.rb +75 -0
  112. data/lib/rcs/types/detached_webhook_info.rb +74 -0
  113. data/lib/rcs/types/detailed_phone_number_enum.rb +25 -0
  114. data/lib/rcs/types/dlc_assignment_status_enum.rb +19 -0
  115. data/lib/rcs/types/dlc_campaign_status.rb +107 -0
  116. data/lib/rcs/types/dlc_campaign_use_case_enum.rb +35 -0
  117. data/lib/rcs/types/dlc_campaign_with_extended_brand_and_status.rb +194 -0
  118. data/lib/rcs/types/dlc_with_extended_brand_and_status_keywords.rb +94 -0
  119. data/lib/rcs/types/dlc_with_extended_brand_and_status_keywords_help.rb +72 -0
  120. data/lib/rcs/{send/types/send_mms_response.rb → types/dlc_with_extended_brand_and_status_keywords_opt_in.rb} +20 -17
  121. data/lib/rcs/{send/types/send_rcs_response.rb → types/dlc_with_extended_brand_and_status_keywords_opt_out.rb} +20 -17
  122. data/lib/rcs/types/dlc_with_extended_brand_and_status_links.rb +70 -0
  123. data/lib/rcs/types/dlc_with_extended_brand_and_status_options.rb +106 -0
  124. data/lib/rcs/types/dlc_with_extended_brand_and_status_use_case.rb +72 -0
  125. data/lib/rcs/types/enhanced_contact.rb +9 -0
  126. data/lib/rcs/types/enhanced_contact_item.rb +104 -0
  127. data/lib/rcs/types/error.rb +61 -0
  128. data/lib/rcs/types/extended_brand.rb +194 -0
  129. data/lib/rcs/types/extended_brand_with_vetting.rb +226 -0
  130. data/lib/rcs/types/extended_rcs_campaign.rb +173 -0
  131. data/lib/rcs/{company/types/company_register_request.rb → types/get_conversation_params.rb} +13 -12
  132. data/lib/rcs/types/get_conversation_request_id.rb +58 -0
  133. data/lib/rcs/types/get_conversation_request_recipient.rb +72 -0
  134. data/lib/rcs/types/get_dlc_campaign_status_response_updates.rb +96 -0
  135. data/lib/rcs/types/get_toll_free_campaign_status_response_updates.rb +92 -0
  136. data/lib/rcs/types/inbound_button.rb +56 -0
  137. data/lib/rcs/types/link_click_event.rb +465 -0
  138. data/lib/rcs/{company/types/company_update_response.rb → types/location_share_action.rb} +19 -19
  139. data/lib/rcs/types/location_share_action_data.rb +89 -0
  140. data/lib/rcs/types/message.rb +174 -0
  141. data/lib/rcs/types/message_content.rb +85 -0
  142. data/lib/rcs/types/message_method_enum.rb +12 -0
  143. data/lib/rcs/types/message_protocol_enum.rb +12 -0
  144. data/lib/rcs/types/message_schedule.rb +94 -0
  145. data/lib/rcs/types/message_status_enum.rb +16 -0
  146. data/lib/rcs/types/message_volume_enum.rb +20 -0
  147. data/lib/rcs/types/messaging_profile_enum.rb +11 -0
  148. data/lib/rcs/types/mms_content.rb +74 -0
  149. data/lib/rcs/types/mms_validation_response_segments.rb +85 -0
  150. data/lib/rcs/types/mms_validation_response_segments_value_item.rb +75 -0
  151. data/lib/rcs/types/mms_validation_result.rb +82 -0
  152. data/lib/rcs/types/nullable_contact.rb +84 -0
  153. data/lib/rcs/types/number_format.rb +79 -0
  154. data/lib/rcs/types/opt_in_method_enum.rb +13 -0
  155. data/lib/rcs/types/optional_brand_info.rb +145 -0
  156. data/lib/rcs/types/optional_contact.rb +83 -0
  157. data/lib/rcs/types/optional_contacts.rb +84 -0
  158. data/lib/rcs/types/phone.rb +101 -0
  159. data/lib/rcs/types/phone_capabilities.rb +75 -0
  160. data/lib/rcs/types/phone_enum.rb +13 -0
  161. data/lib/rcs/types/phone_feature_enum.rb +18 -0
  162. data/lib/rcs/types/phone_number_campaign_attach_failed_item.rb +67 -0
  163. data/lib/rcs/types/phone_number_campaign_attach_phone_numbers_item.rb +75 -0
  164. data/lib/rcs/types/phone_number_campaign_attach_phone_numbers_item_campaign.rb +78 -0
  165. data/lib/rcs/types/phone_number_campaign_detach_failed_item.rb +67 -0
  166. data/lib/rcs/types/phone_number_campaign_detach_phone_numbers_item.rb +75 -0
  167. data/lib/rcs/types/phone_number_campaign_detach_phone_numbers_item_campaign.rb +78 -0
  168. data/lib/rcs/types/phone_number_cost.rb +75 -0
  169. data/lib/rcs/types/phone_number_details.rb +110 -0
  170. data/lib/rcs/types/phone_number_enum.rb +18 -0
  171. data/lib/rcs/types/phone_number_region.rb +91 -0
  172. data/lib/rcs/types/phone_number_status.rb +90 -0
  173. data/lib/rcs/types/phone_number_status_enum.rb +16 -0
  174. data/lib/rcs/types/pinnacle_file_upload_metadata.rb +84 -0
  175. data/lib/rcs/types/pinnacle_url_config.rb +71 -0
  176. data/lib/rcs/types/profile_status_enum.rb +17 -0
  177. data/lib/rcs/types/purchased_number.rb +75 -0
  178. data/lib/rcs/types/rcs.rb +70 -0
  179. data/lib/rcs/types/rcs_base.rb +82 -0
  180. data/lib/rcs/types/rcs_base_options.rb +100 -0
  181. data/lib/rcs/types/rcs_button_call.rb +68 -0
  182. data/lib/rcs/types/rcs_button_content.rb +148 -0
  183. data/lib/rcs/types/rcs_button_open_url.rb +68 -0
  184. data/lib/rcs/types/rcs_button_request_user_location.rb +58 -0
  185. data/lib/rcs/types/rcs_button_schedule_event.rb +98 -0
  186. data/lib/rcs/types/rcs_button_send_location.rb +74 -0
  187. data/lib/rcs/types/rcs_button_send_location_lat_long.rb +68 -0
  188. data/lib/rcs/types/rcs_button_trigger.rb +78 -0
  189. data/lib/rcs/types/rcs_campaign.rb +143 -0
  190. data/lib/rcs/types/rcs_campaign_opt_in_method_enum.rb +15 -0
  191. data/lib/rcs/types/rcs_campaign_schema_agent.rb +134 -0
  192. data/lib/rcs/types/rcs_campaign_schema_agent_emails_item.rb +69 -0
  193. data/lib/rcs/types/rcs_campaign_schema_agent_phones_item.rb +69 -0
  194. data/lib/rcs/types/rcs_campaign_schema_agent_websites_item.rb +69 -0
  195. data/lib/rcs/types/rcs_campaign_schema_extra_agent.rb +134 -0
  196. data/lib/rcs/types/rcs_campaign_schema_extra_agent_emails_item.rb +70 -0
  197. data/lib/rcs/types/rcs_campaign_schema_extra_agent_phones_item.rb +70 -0
  198. data/lib/rcs/types/rcs_campaign_schema_extra_agent_websites_item.rb +71 -0
  199. data/lib/rcs/types/rcs_campaign_schema_extra_links.rb +70 -0
  200. data/lib/rcs/types/rcs_campaign_schema_extra_opt_in.rb +71 -0
  201. data/lib/rcs/types/rcs_campaign_schema_extra_opt_out.rb +70 -0
  202. data/lib/rcs/types/rcs_campaign_schema_extra_use_case.rb +71 -0
  203. data/lib/rcs/types/rcs_campaign_schema_links.rb +70 -0
  204. data/lib/rcs/types/rcs_campaign_schema_opt_in.rb +71 -0
  205. data/lib/rcs/types/rcs_campaign_schema_opt_out.rb +70 -0
  206. data/lib/rcs/types/rcs_campaign_schema_use_case.rb +71 -0
  207. data/lib/rcs/types/rcs_campaign_status.rb +86 -0
  208. data/lib/rcs/types/rcs_campaign_use_case_enum.rb +23 -0
  209. data/lib/rcs/types/rcs_card.rb +110 -0
  210. data/lib/rcs/types/rcs_cards.rb +79 -0
  211. data/lib/rcs/types/rcs_cards_cards_item.rb +88 -0
  212. data/lib/rcs/types/rcs_cards_content.rb +79 -0
  213. data/lib/rcs/types/rcs_cards_content_cards_item.rb +94 -0
  214. data/lib/rcs/types/rcs_content.rb +72 -0
  215. data/lib/rcs/types/rcs_media.rb +110 -0
  216. data/lib/rcs/types/rcs_media_content.rb +81 -0
  217. data/lib/rcs/types/rcs_media_details_content.rb +77 -0
  218. data/lib/rcs/types/rcs_text.rb +106 -0
  219. data/lib/rcs/types/rcs_text_content.rb +72 -0
  220. data/lib/rcs/types/rcs_validate_content.rb +70 -0
  221. data/lib/rcs/{company/types/company_register_response.rb → types/rcs_validate_content_media.rb} +19 -21
  222. data/lib/rcs/types/rcs_validation_result.rb +76 -0
  223. data/lib/rcs/types/reaction_result.rb +67 -0
  224. data/lib/rcs/types/scheduled_messaage.rb +73 -0
  225. data/lib/rcs/types/scheduled_send_response_config.rb +89 -0
  226. data/lib/rcs/types/send_sms_response_segments.rb +69 -0
  227. data/lib/rcs/types/send_sms_response_segments_encoding.rb +11 -0
  228. data/lib/rcs/types/sent_mms_details.rb +102 -0
  229. data/lib/rcs/types/sent_rcs_details.rb +105 -0
  230. data/lib/rcs/types/sent_sms_details.rb +108 -0
  231. data/lib/rcs/types/shortened_url.rb +77 -0
  232. data/lib/rcs/types/shortened_url_with_click_data.rb +90 -0
  233. data/lib/rcs/types/sms_content.rb +58 -0
  234. data/lib/rcs/types/sms_validation_response_segments.rb +80 -0
  235. data/lib/rcs/types/sms_validation_response_segments_gsm_7.rb +75 -0
  236. data/lib/rcs/types/sms_validation_response_segments_utf_16.rb +68 -0
  237. data/lib/rcs/types/sms_validation_response_total.rb +75 -0
  238. data/lib/rcs/types/sms_validation_result.rb +102 -0
  239. data/lib/rcs/types/sub_use_case_enum.rb +19 -0
  240. data/lib/rcs/types/submission_results.rb +57 -0
  241. data/lib/rcs/types/successful_conversation_update.rb +58 -0
  242. data/lib/rcs/types/toll_free_campaign.rb +118 -0
  243. data/lib/rcs/types/toll_free_campaign_schema_opt_in.rb +78 -0
  244. data/lib/rcs/types/toll_free_campaign_schema_use_case.rb +71 -0
  245. data/lib/rcs/types/toll_free_campaign_status.rb +91 -0
  246. data/lib/rcs/types/toll_free_campaign_use_case_enum.rb +52 -0
  247. data/lib/rcs/types/toll_free_campaign_with_extended_brand_and_status.rb +155 -0
  248. data/lib/rcs/types/toll_free_status_enum.rb +20 -0
  249. data/lib/rcs/types/tracking.rb +17 -0
  250. data/lib/rcs/types/updated_contact_id.rb +57 -0
  251. data/lib/rcs/types/upload_results.rb +80 -0
  252. data/lib/rcs/types/v_card_address_schema_type_item.rb +15 -0
  253. data/lib/rcs/types/v_card_data.rb +237 -0
  254. data/lib/rcs/types/v_card_data_file.rb +74 -0
  255. data/lib/rcs/types/v_card_data_file_metadata.rb +62 -0
  256. data/lib/rcs/types/v_card_email_schema_type_item.rb +21 -0
  257. data/lib/rcs/types/v_card_geo.rb +70 -0
  258. data/lib/rcs/types/v_card_name.rb +98 -0
  259. data/lib/rcs/types/v_card_organization.rb +70 -0
  260. data/lib/rcs/types/v_card_phone_schema_type_item.rb +21 -0
  261. data/lib/rcs/types/validate_campaign_params.rb +69 -0
  262. data/lib/rcs/types/validation_error_details.rb +76 -0
  263. data/lib/rcs/types/validation_results.rb +71 -0
  264. data/lib/rcs/types/vcard.rb +215 -0
  265. data/lib/rcs/types/vcard_address.rb +130 -0
  266. data/lib/rcs/types/vcard_content.rb +223 -0
  267. data/lib/rcs/types/vcard_email.rb +70 -0
  268. data/lib/rcs/types/vcard_phone.rb +70 -0
  269. data/lib/rcs/types/vcard_resource.rb +71 -0
  270. data/lib/rcs/types/vetting_feedback.rb +81 -0
  271. data/lib/rcs/types/vetting_history.rb +98 -0
  272. data/lib/rcs/types/vetting_history_vetting_status.rb +13 -0
  273. data/lib/rcs/types/vetting_results.rb +57 -0
  274. data/lib/rcs/types/webhook_event_enum.rb +13 -0
  275. data/lib/rcs/types/webhook_result.rb +64 -0
  276. data/lib/rcs/{company/types/company_update_response_brand.rb → types/webhooks.rb} +25 -17
  277. data/lib/rcs/types/zod_error.rb +73 -0
  278. data/lib/rcs/webhooks/client.rb +93 -0
  279. data/lib/rcs.rb +67 -83
  280. data/lib/requests.rb +4 -4
  281. data/lib/types_export.rb +252 -46
  282. metadata +278 -52
  283. data/lib/rcs/company/client.rb +0 -375
  284. data/lib/rcs/company/types/company_register_request_company.rb +0 -128
  285. data/lib/rcs/send/client.rb +0 -382
  286. data/lib/rcs/send/types/rcs_fallback.rb +0 -84
  287. data/lib/rcs/tools/types/tools_shorten_url_response.rb +0 -70
  288. data/lib/rcs/tools/types/tools_upload_url_response.rb +0 -69
  289. data/lib/rcs/types/action.rb +0 -154
  290. data/lib/rcs/types/action_lat_long.rb +0 -68
  291. data/lib/rcs/types/action_type.rb +0 -16
  292. data/lib/rcs/types/additional_email.rb +0 -65
  293. data/lib/rcs/types/additional_phone_number.rb +0 -65
  294. data/lib/rcs/types/additional_website.rb +0 -65
  295. data/lib/rcs/types/card.rb +0 -90
  296. data/lib/rcs/types/company.rb +0 -319
  297. data/lib/rcs/types/company_additional_emails_item.rb +0 -67
  298. data/lib/rcs/types/company_additional_phone_numbers_item.rb +0 -67
  299. data/lib/rcs/types/company_additional_websites_item.rb +0 -67
  300. data/lib/rcs/types/company_category.rb +0 -20
  301. data/lib/rcs/types/company_contact.rb +0 -117
  302. data/lib/rcs/types/company_details.rb +0 -120
  303. data/lib/rcs/types/forbidden_error_body.rb +0 -57
  304. data/lib/rcs/types/inbound_action_message.rb +0 -117
  305. data/lib/rcs/types/inbound_location_message.rb +0 -106
  306. data/lib/rcs/types/inbound_location_message_coordinates.rb +0 -65
  307. data/lib/rcs/types/inbound_media_message.rb +0 -112
  308. data/lib/rcs/types/inbound_message.rb +0 -88
  309. data/lib/rcs/types/inbound_message_message_type.rb +0 -10
  310. data/lib/rcs/types/inbound_message_metadata.rb +0 -79
  311. data/lib/rcs/types/inbound_text_message.rb +0 -100
  312. data/lib/rcs/types/internal_server_error_body.rb +0 -57
  313. data/lib/rcs/types/media_payload.rb +0 -65
  314. data/lib/rcs/types/message_metadata.rb +0 -56
  315. data/lib/rcs/types/messaging.rb +0 -95
  316. data/lib/rcs/types/optionals.rb +0 -99
  317. data/lib/rcs/types/payment_required_error_body.rb +0 -57
  318. data/lib/rcs/types/point_of_contact.rb +0 -72
  319. data/lib/rcs/types/rcs_functionalities.rb +0 -117
  320. data/lib/rcs/types/sender_metadata.rb +0 -74
  321. data/lib/rcs/types/unauthorized_error_body.rb +0 -57
@@ -0,0 +1,96 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "../../../requests"
4
+ require_relative "../../types/sms_content"
5
+ require_relative "../../types/sms_validation_result"
6
+ require "async"
7
+
8
+ module Pinnacle
9
+ module Message
10
+ class SmsClient
11
+ # @return [Pinnacle::RequestClient]
12
+ attr_reader :request_client
13
+
14
+ # @param request_client [Pinnacle::RequestClient]
15
+ # @return [Pinnacle::Message::SmsClient]
16
+ def initialize(request_client:)
17
+ @request_client = request_client
18
+ end
19
+
20
+ # Validate SMS message content without sending it.
21
+ #
22
+ # @param request [Hash] Request of type Pinnacle::Types::SmsContent, as a Hash
23
+ # * :text (String)
24
+ # @param request_options [Pinnacle::RequestOptions]
25
+ # @return [Pinnacle::Types::SmsValidationResult]
26
+ # @example
27
+ # api = Pinnacle::Client.new(
28
+ # base_url: "https://api.example.com",
29
+ # environment: Pinnacle::Environment::DEFAULT,
30
+ # api_key: "YOUR_API_KEY"
31
+ # )
32
+ # api.message.sms.validate(request: { text: "Hello from Pinnacle" })
33
+ def validate(request:, request_options: nil)
34
+ response = @request_client.conn.post do |req|
35
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
36
+ req.headers["PINNACLE-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
37
+ req.headers = {
38
+ **(req.headers || {}),
39
+ **@request_client.get_headers,
40
+ **(request_options&.additional_headers || {})
41
+ }.compact
42
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
43
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
44
+ end
45
+ req.body = { **(request || {}), **(request_options&.additional_body_parameters || {}) }.compact
46
+ req.url "#{@request_client.get_url(request_options: request_options)}/messages/validate/sms"
47
+ end
48
+ Pinnacle::Types::SmsValidationResult.from_json(json_object: response.body)
49
+ end
50
+ end
51
+
52
+ class AsyncSmsClient
53
+ # @return [Pinnacle::AsyncRequestClient]
54
+ attr_reader :request_client
55
+
56
+ # @param request_client [Pinnacle::AsyncRequestClient]
57
+ # @return [Pinnacle::Message::AsyncSmsClient]
58
+ def initialize(request_client:)
59
+ @request_client = request_client
60
+ end
61
+
62
+ # Validate SMS message content without sending it.
63
+ #
64
+ # @param request [Hash] Request of type Pinnacle::Types::SmsContent, as a Hash
65
+ # * :text (String)
66
+ # @param request_options [Pinnacle::RequestOptions]
67
+ # @return [Pinnacle::Types::SmsValidationResult]
68
+ # @example
69
+ # api = Pinnacle::Client.new(
70
+ # base_url: "https://api.example.com",
71
+ # environment: Pinnacle::Environment::DEFAULT,
72
+ # api_key: "YOUR_API_KEY"
73
+ # )
74
+ # api.message.sms.validate(request: { text: "Hello from Pinnacle" })
75
+ def validate(request:, request_options: nil)
76
+ Async do
77
+ response = @request_client.conn.post do |req|
78
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
79
+ req.headers["PINNACLE-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
80
+ req.headers = {
81
+ **(req.headers || {}),
82
+ **@request_client.get_headers,
83
+ **(request_options&.additional_headers || {})
84
+ }.compact
85
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
86
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
87
+ end
88
+ req.body = { **(request || {}), **(request_options&.additional_body_parameters || {}) }.compact
89
+ req.url "#{@request_client.get_url(request_options: request_options)}/messages/validate/sms"
90
+ end
91
+ Pinnacle::Types::SmsValidationResult.from_json(json_object: response.body)
92
+ end
93
+ end
94
+ end
95
+ end
96
+ end
@@ -0,0 +1,192 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "../../requests"
4
+ require_relative "../types/message"
5
+ require_relative "types/message_reaction_schema_options"
6
+ require_relative "../types/reaction_result"
7
+ require_relative "send/client"
8
+ require "async"
9
+
10
+ module Pinnacle
11
+ class MessagesClient
12
+ # @return [Pinnacle::RequestClient]
13
+ attr_reader :request_client
14
+ # @return [Pinnacle::Messages::SendClient]
15
+ attr_reader :send
16
+
17
+ # @param request_client [Pinnacle::RequestClient]
18
+ # @return [Pinnacle::MessagesClient]
19
+ def initialize(request_client:)
20
+ @request_client = request_client
21
+ @send = Pinnacle::Messages::SendClient.new(request_client: request_client)
22
+ end
23
+
24
+ # Retrieve a previously sent message.
25
+ #
26
+ # @param id [Integer] Unique identifier of the message.
27
+ # @param request_options [Pinnacle::RequestOptions]
28
+ # @return [Pinnacle::Types::Message]
29
+ # @example
30
+ # api = Pinnacle::Client.new(
31
+ # base_url: "https://api.example.com",
32
+ # environment: Pinnacle::Environment::DEFAULT,
33
+ # api_key: "YOUR_API_KEY"
34
+ # )
35
+ # api.messages.get(id: 1240)
36
+ def get(id:, request_options: nil)
37
+ response = @request_client.conn.get do |req|
38
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
39
+ req.headers["PINNACLE-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
40
+ req.headers = {
41
+ **(req.headers || {}),
42
+ **@request_client.get_headers,
43
+ **(request_options&.additional_headers || {})
44
+ }.compact
45
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
46
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
47
+ end
48
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
49
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
50
+ end
51
+ req.url "#{@request_client.get_url(request_options: request_options)}/messages/#{id}"
52
+ end
53
+ Pinnacle::Types::Message.from_json(json_object: response.body)
54
+ end
55
+
56
+ # Add or remove an emoji reaction to a previously sent message.
57
+ #
58
+ # @param message_id [Integer] Unique identifier of the message.
59
+ # @param options [Hash] Request of type Pinnacle::Messages::Types::MessageReactionSchemaOptions, as a Hash
60
+ # * :force (Boolean)
61
+ # @param reaction [String] Unicode emoji to add. <br>
62
+ # Use `null` to remove existing reaction.
63
+ # @param request_options [Pinnacle::RequestOptions]
64
+ # @return [Pinnacle::Types::ReactionResult]
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.messages.react(
72
+ # message_id: 1410,
73
+ # options: { force: true },
74
+ # reaction: "👍"
75
+ # )
76
+ def react(message_id:, options: nil, reaction: nil, request_options: nil)
77
+ response = @request_client.conn.post do |req|
78
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
79
+ req.headers["PINNACLE-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
80
+ req.headers = {
81
+ **(req.headers || {}),
82
+ **@request_client.get_headers,
83
+ **(request_options&.additional_headers || {})
84
+ }.compact
85
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
86
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
87
+ end
88
+ req.body = {
89
+ **(request_options&.additional_body_parameters || {}),
90
+ messageId: message_id,
91
+ options: options,
92
+ reaction: reaction
93
+ }.compact
94
+ req.url "#{@request_client.get_url(request_options: request_options)}/messages/react"
95
+ end
96
+ Pinnacle::Types::ReactionResult.from_json(json_object: response.body)
97
+ end
98
+ end
99
+
100
+ class AsyncMessagesClient
101
+ # @return [Pinnacle::AsyncRequestClient]
102
+ attr_reader :request_client
103
+ # @return [Pinnacle::Messages::AsyncSendClient]
104
+ attr_reader :send
105
+
106
+ # @param request_client [Pinnacle::AsyncRequestClient]
107
+ # @return [Pinnacle::AsyncMessagesClient]
108
+ def initialize(request_client:)
109
+ @request_client = request_client
110
+ @send = Pinnacle::Messages::AsyncSendClient.new(request_client: request_client)
111
+ end
112
+
113
+ # Retrieve a previously sent message.
114
+ #
115
+ # @param id [Integer] Unique identifier of the message.
116
+ # @param request_options [Pinnacle::RequestOptions]
117
+ # @return [Pinnacle::Types::Message]
118
+ # @example
119
+ # api = Pinnacle::Client.new(
120
+ # base_url: "https://api.example.com",
121
+ # environment: Pinnacle::Environment::DEFAULT,
122
+ # api_key: "YOUR_API_KEY"
123
+ # )
124
+ # api.messages.get(id: 1240)
125
+ def get(id:, request_options: nil)
126
+ Async do
127
+ response = @request_client.conn.get do |req|
128
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
129
+ req.headers["PINNACLE-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
130
+ req.headers = {
131
+ **(req.headers || {}),
132
+ **@request_client.get_headers,
133
+ **(request_options&.additional_headers || {})
134
+ }.compact
135
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
136
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
137
+ end
138
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
139
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
140
+ end
141
+ req.url "#{@request_client.get_url(request_options: request_options)}/messages/#{id}"
142
+ end
143
+ Pinnacle::Types::Message.from_json(json_object: response.body)
144
+ end
145
+ end
146
+
147
+ # Add or remove an emoji reaction to a previously sent message.
148
+ #
149
+ # @param message_id [Integer] Unique identifier of the message.
150
+ # @param options [Hash] Request of type Pinnacle::Messages::Types::MessageReactionSchemaOptions, as a Hash
151
+ # * :force (Boolean)
152
+ # @param reaction [String] Unicode emoji to add. <br>
153
+ # Use `null` to remove existing reaction.
154
+ # @param request_options [Pinnacle::RequestOptions]
155
+ # @return [Pinnacle::Types::ReactionResult]
156
+ # @example
157
+ # api = Pinnacle::Client.new(
158
+ # base_url: "https://api.example.com",
159
+ # environment: Pinnacle::Environment::DEFAULT,
160
+ # api_key: "YOUR_API_KEY"
161
+ # )
162
+ # api.messages.react(
163
+ # message_id: 1410,
164
+ # options: { force: true },
165
+ # reaction: "👍"
166
+ # )
167
+ def react(message_id:, options: nil, reaction: nil, request_options: nil)
168
+ Async do
169
+ response = @request_client.conn.post do |req|
170
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
171
+ req.headers["PINNACLE-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
172
+ req.headers = {
173
+ **(req.headers || {}),
174
+ **@request_client.get_headers,
175
+ **(request_options&.additional_headers || {})
176
+ }.compact
177
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
178
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
179
+ end
180
+ req.body = {
181
+ **(request_options&.additional_body_parameters || {}),
182
+ messageId: message_id,
183
+ options: options,
184
+ reaction: reaction
185
+ }.compact
186
+ req.url "#{@request_client.get_url(request_options: request_options)}/messages/react"
187
+ end
188
+ Pinnacle::Types::ReactionResult.from_json(json_object: response.body)
189
+ end
190
+ end
191
+ end
192
+ end
@@ -0,0 +1,98 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "../../../requests"
4
+ require_relative "../../types/mms_content"
5
+ require_relative "../../types/mms_validation_result"
6
+ require "async"
7
+
8
+ module Pinnacle
9
+ module Messages
10
+ class MmsClient
11
+ # @return [Pinnacle::RequestClient]
12
+ attr_reader :request_client
13
+
14
+ # @param request_client [Pinnacle::RequestClient]
15
+ # @return [Pinnacle::Messages::MmsClient]
16
+ def initialize(request_client:)
17
+ @request_client = request_client
18
+ end
19
+
20
+ # Validate MMS message content without sending it.
21
+ #
22
+ # @param request [Hash] Request of type Pinnacle::Types::MmsContent, as a Hash
23
+ # * :media_urls (Array<String>)
24
+ # * :text (String)
25
+ # @param request_options [Pinnacle::RequestOptions]
26
+ # @return [Pinnacle::Types::MmsValidationResult]
27
+ # @example
28
+ # api = Pinnacle::Client.new(
29
+ # base_url: "https://api.example.com",
30
+ # environment: Pinnacle::Environment::DEFAULT,
31
+ # api_key: "YOUR_API_KEY"
32
+ # )
33
+ # api.messages.mms.validate(request: { media_urls: ["https://upload.wikimedia.org/wikipedia/commons/b/b9/Pizigani_1367_Chart_1MB.jpg", "https://fastly.picsum.photos/id/528/1000/1000.jpg?hmac=aTG0xNif9KbNryFN0ZNZ_nFK6aEpZxqUGCZF1KjOT8w", "https://file-examples.com/storage/fefdd7ab126835e7993bb1a/2017/10/file_example_JPG_500kB.jpg"], text: "Check out these images!" })
34
+ def validate(request:, request_options: nil)
35
+ response = @request_client.conn.post do |req|
36
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
37
+ req.headers["PINNACLE-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
38
+ req.headers = {
39
+ **(req.headers || {}),
40
+ **@request_client.get_headers,
41
+ **(request_options&.additional_headers || {})
42
+ }.compact
43
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
44
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
45
+ end
46
+ req.body = { **(request || {}), **(request_options&.additional_body_parameters || {}) }.compact
47
+ req.url "#{@request_client.get_url(request_options: request_options)}/messages/validate/mms"
48
+ end
49
+ Pinnacle::Types::MmsValidationResult.from_json(json_object: response.body)
50
+ end
51
+ end
52
+
53
+ class AsyncMmsClient
54
+ # @return [Pinnacle::AsyncRequestClient]
55
+ attr_reader :request_client
56
+
57
+ # @param request_client [Pinnacle::AsyncRequestClient]
58
+ # @return [Pinnacle::Messages::AsyncMmsClient]
59
+ def initialize(request_client:)
60
+ @request_client = request_client
61
+ end
62
+
63
+ # Validate MMS message content without sending it.
64
+ #
65
+ # @param request [Hash] Request of type Pinnacle::Types::MmsContent, as a Hash
66
+ # * :media_urls (Array<String>)
67
+ # * :text (String)
68
+ # @param request_options [Pinnacle::RequestOptions]
69
+ # @return [Pinnacle::Types::MmsValidationResult]
70
+ # @example
71
+ # api = Pinnacle::Client.new(
72
+ # base_url: "https://api.example.com",
73
+ # environment: Pinnacle::Environment::DEFAULT,
74
+ # api_key: "YOUR_API_KEY"
75
+ # )
76
+ # api.messages.mms.validate(request: { media_urls: ["https://upload.wikimedia.org/wikipedia/commons/b/b9/Pizigani_1367_Chart_1MB.jpg", "https://fastly.picsum.photos/id/528/1000/1000.jpg?hmac=aTG0xNif9KbNryFN0ZNZ_nFK6aEpZxqUGCZF1KjOT8w", "https://file-examples.com/storage/fefdd7ab126835e7993bb1a/2017/10/file_example_JPG_500kB.jpg"], text: "Check out these images!" })
77
+ def validate(request:, request_options: nil)
78
+ Async do
79
+ response = @request_client.conn.post do |req|
80
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
81
+ req.headers["PINNACLE-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
82
+ req.headers = {
83
+ **(req.headers || {}),
84
+ **@request_client.get_headers,
85
+ **(request_options&.additional_headers || {})
86
+ }.compact
87
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
88
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
89
+ end
90
+ req.body = { **(request || {}), **(request_options&.additional_body_parameters || {}) }.compact
91
+ req.url "#{@request_client.get_url(request_options: request_options)}/messages/validate/mms"
92
+ end
93
+ Pinnacle::Types::MmsValidationResult.from_json(json_object: response.body)
94
+ end
95
+ end
96
+ end
97
+ end
98
+ end
@@ -0,0 +1,94 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "../../../requests"
4
+ require_relative "../../types/rcs_validate_content"
5
+ require_relative "../../types/rcs_validation_result"
6
+ require "async"
7
+
8
+ module Pinnacle
9
+ module Messages
10
+ class RcsClient
11
+ # @return [Pinnacle::RequestClient]
12
+ attr_reader :request_client
13
+
14
+ # @param request_client [Pinnacle::RequestClient]
15
+ # @return [Pinnacle::Messages::RcsClient]
16
+ def initialize(request_client:)
17
+ @request_client = request_client
18
+ end
19
+
20
+ # Validate RCS message content without sending it.
21
+ #
22
+ # @param request [Pinnacle::Types::RcsTextContent, Pinnacle::Types::RcsValidateContentMedia, Pinnacle::Types::RcsCards]
23
+ # @param request_options [Pinnacle::RequestOptions]
24
+ # @return [Pinnacle::Types::RcsValidationResult]
25
+ # @example
26
+ # api = Pinnacle::Client.new(
27
+ # base_url: "https://api.example.com",
28
+ # environment: Pinnacle::Environment::DEFAULT,
29
+ # api_key: "YOUR_API_KEY"
30
+ # )
31
+ # api.messages.rcs.validate(request: { quick_replies: , text: "text" })
32
+ def validate(request:, request_options: nil)
33
+ response = @request_client.conn.post do |req|
34
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
35
+ req.headers["PINNACLE-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
36
+ req.headers = {
37
+ **(req.headers || {}),
38
+ **@request_client.get_headers,
39
+ **(request_options&.additional_headers || {})
40
+ }.compact
41
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
42
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
43
+ end
44
+ req.body = { **(request || {}), **(request_options&.additional_body_parameters || {}) }.compact
45
+ req.url "#{@request_client.get_url(request_options: request_options)}/messages/validate/rcs"
46
+ end
47
+ Pinnacle::Types::RcsValidationResult.from_json(json_object: response.body)
48
+ end
49
+ end
50
+
51
+ class AsyncRcsClient
52
+ # @return [Pinnacle::AsyncRequestClient]
53
+ attr_reader :request_client
54
+
55
+ # @param request_client [Pinnacle::AsyncRequestClient]
56
+ # @return [Pinnacle::Messages::AsyncRcsClient]
57
+ def initialize(request_client:)
58
+ @request_client = request_client
59
+ end
60
+
61
+ # Validate RCS message content without sending it.
62
+ #
63
+ # @param request [Pinnacle::Types::RcsTextContent, Pinnacle::Types::RcsValidateContentMedia, Pinnacle::Types::RcsCards]
64
+ # @param request_options [Pinnacle::RequestOptions]
65
+ # @return [Pinnacle::Types::RcsValidationResult]
66
+ # @example
67
+ # api = Pinnacle::Client.new(
68
+ # base_url: "https://api.example.com",
69
+ # environment: Pinnacle::Environment::DEFAULT,
70
+ # api_key: "YOUR_API_KEY"
71
+ # )
72
+ # api.messages.rcs.validate(request: { quick_replies: , text: "text" })
73
+ def validate(request:, request_options: nil)
74
+ Async do
75
+ response = @request_client.conn.post do |req|
76
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
77
+ req.headers["PINNACLE-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
78
+ req.headers = {
79
+ **(req.headers || {}),
80
+ **@request_client.get_headers,
81
+ **(request_options&.additional_headers || {})
82
+ }.compact
83
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
84
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
85
+ end
86
+ req.body = { **(request || {}), **(request_options&.additional_body_parameters || {}) }.compact
87
+ req.url "#{@request_client.get_url(request_options: request_options)}/messages/validate/rcs"
88
+ end
89
+ Pinnacle::Types::RcsValidationResult.from_json(json_object: response.body)
90
+ end
91
+ end
92
+ end
93
+ end
94
+ end