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,367 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "../../../requests"
4
+ require_relative "../../types/brand_status"
5
+ require_relative "../../types/toll_free_campaign_status"
6
+ require_relative "../../types/dlc_campaign_status"
7
+ require_relative "../../types/rcs_campaign_status"
8
+ require_relative "../../types/phone_number_status"
9
+ require "async"
10
+
11
+ module Pinnacle
12
+ module Status
13
+ class GetClient
14
+ # @return [Pinnacle::RequestClient]
15
+ attr_reader :request_client
16
+
17
+ # @param request_client [Pinnacle::RequestClient]
18
+ # @return [Pinnacle::Status::GetClient]
19
+ def initialize(request_client:)
20
+ @request_client = request_client
21
+ end
22
+
23
+ # Retrieve a brand's status.
24
+ #
25
+ # @param brand_id [Integer] ID of the brand.
26
+ # @param request_options [Pinnacle::RequestOptions]
27
+ # @return [Pinnacle::Types::BrandStatus]
28
+ # @example
29
+ # api = Pinnacle::Client.new(
30
+ # base_url: "https://api.example.com",
31
+ # environment: Pinnacle::Environment::DEFAULT,
32
+ # api_key: "YOUR_API_KEY"
33
+ # )
34
+ # api.status.get.brand(brand_id: 28)
35
+ def brand(brand_id:, request_options: nil)
36
+ response = @request_client.conn.get do |req|
37
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
38
+ req.headers["PINNACLE-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
39
+ req.headers = {
40
+ **(req.headers || {}),
41
+ **@request_client.get_headers,
42
+ **(request_options&.additional_headers || {})
43
+ }.compact
44
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
45
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
46
+ end
47
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
48
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
49
+ end
50
+ req.url "#{@request_client.get_url(request_options: request_options)}/status/brand/#{brand_id}"
51
+ end
52
+ Pinnacle::Types::BrandStatus.from_json(json_object: response.body)
53
+ end
54
+
55
+ # Retrieve a toll-free campaign's status.
56
+ #
57
+ # @param campaign_id [Integer] ID of the toll-free campaign.
58
+ # @param request_options [Pinnacle::RequestOptions]
59
+ # @return [Pinnacle::Types::TollFreeCampaignStatus]
60
+ # @example
61
+ # api = Pinnacle::Client.new(
62
+ # base_url: "https://api.example.com",
63
+ # environment: Pinnacle::Environment::DEFAULT,
64
+ # api_key: "YOUR_API_KEY"
65
+ # )
66
+ # api.status.get.toll_free(campaign_id: 28)
67
+ def toll_free(campaign_id:, request_options: nil)
68
+ response = @request_client.conn.get do |req|
69
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
70
+ req.headers["PINNACLE-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
71
+ req.headers = {
72
+ **(req.headers || {}),
73
+ **@request_client.get_headers,
74
+ **(request_options&.additional_headers || {})
75
+ }.compact
76
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
77
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
78
+ end
79
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
80
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
81
+ end
82
+ req.url "#{@request_client.get_url(request_options: request_options)}/status/toll-free-campaign/#{campaign_id}"
83
+ end
84
+ Pinnacle::Types::TollFreeCampaignStatus.from_json(json_object: response.body)
85
+ end
86
+
87
+ # Retrieve a DLC campaign's status.
88
+ #
89
+ # @param campaign_id [Integer] ID of the DLC campaign.
90
+ # @param request_options [Pinnacle::RequestOptions]
91
+ # @return [Pinnacle::Types::DlcCampaignStatus]
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.status.get.dlc(campaign_id: 28)
99
+ def dlc(campaign_id:, request_options: nil)
100
+ response = @request_client.conn.get do |req|
101
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
102
+ req.headers["PINNACLE-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
103
+ req.headers = {
104
+ **(req.headers || {}),
105
+ **@request_client.get_headers,
106
+ **(request_options&.additional_headers || {})
107
+ }.compact
108
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
109
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
110
+ end
111
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
112
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
113
+ end
114
+ req.url "#{@request_client.get_url(request_options: request_options)}/status/dlc-campaign/#{campaign_id}"
115
+ end
116
+ Pinnacle::Types::DlcCampaignStatus.from_json(json_object: response.body)
117
+ end
118
+
119
+ # Retrieve a RCS campaign's status.
120
+ #
121
+ # @param campaign_id [Integer] ID of the campaign.
122
+ # @param request_options [Pinnacle::RequestOptions]
123
+ # @return [Pinnacle::Types::RcsCampaignStatus]
124
+ # @example
125
+ # api = Pinnacle::Client.new(
126
+ # base_url: "https://api.example.com",
127
+ # environment: Pinnacle::Environment::DEFAULT,
128
+ # api_key: "YOUR_API_KEY"
129
+ # )
130
+ # api.status.get.rcs(campaign_id: 28)
131
+ def rcs(campaign_id:, request_options: nil)
132
+ response = @request_client.conn.get do |req|
133
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
134
+ req.headers["PINNACLE-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
135
+ req.headers = {
136
+ **(req.headers || {}),
137
+ **@request_client.get_headers,
138
+ **(request_options&.additional_headers || {})
139
+ }.compact
140
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
141
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
142
+ end
143
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
144
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
145
+ end
146
+ req.url "#{@request_client.get_url(request_options: request_options)}/status/rcs-campaign/#{campaign_id}"
147
+ end
148
+ Pinnacle::Types::RcsCampaignStatus.from_json(json_object: response.body)
149
+ end
150
+
151
+ # Retrieve a phone number's order status and campaign attachment status. <br>
152
+ # Check if a number is active and ready to send messages.
153
+ #
154
+ # @param phone_number [String] Phone number in E164 format that is in review.
155
+ # @param request_options [Pinnacle::RequestOptions]
156
+ # @return [Pinnacle::Types::PhoneNumberStatus]
157
+ # @example
158
+ # api = Pinnacle::Client.new(
159
+ # base_url: "https://api.example.com",
160
+ # environment: Pinnacle::Environment::DEFAULT,
161
+ # api_key: "YOUR_API_KEY"
162
+ # )
163
+ # api.status.get.phone_number(phone_number: "+14151234567")
164
+ def phone_number(phone_number:, request_options: nil)
165
+ response = @request_client.conn.get do |req|
166
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
167
+ req.headers["PINNACLE-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
168
+ req.headers = {
169
+ **(req.headers || {}),
170
+ **@request_client.get_headers,
171
+ **(request_options&.additional_headers || {})
172
+ }.compact
173
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
174
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
175
+ end
176
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
177
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
178
+ end
179
+ req.url "#{@request_client.get_url(request_options: request_options)}/status/phone-number/#{phone_number}"
180
+ end
181
+ Pinnacle::Types::PhoneNumberStatus.from_json(json_object: response.body)
182
+ end
183
+ end
184
+
185
+ class AsyncGetClient
186
+ # @return [Pinnacle::AsyncRequestClient]
187
+ attr_reader :request_client
188
+
189
+ # @param request_client [Pinnacle::AsyncRequestClient]
190
+ # @return [Pinnacle::Status::AsyncGetClient]
191
+ def initialize(request_client:)
192
+ @request_client = request_client
193
+ end
194
+
195
+ # Retrieve a brand's status.
196
+ #
197
+ # @param brand_id [Integer] ID of the brand.
198
+ # @param request_options [Pinnacle::RequestOptions]
199
+ # @return [Pinnacle::Types::BrandStatus]
200
+ # @example
201
+ # api = Pinnacle::Client.new(
202
+ # base_url: "https://api.example.com",
203
+ # environment: Pinnacle::Environment::DEFAULT,
204
+ # api_key: "YOUR_API_KEY"
205
+ # )
206
+ # api.status.get.brand(brand_id: 28)
207
+ def brand(brand_id:, request_options: nil)
208
+ Async do
209
+ response = @request_client.conn.get do |req|
210
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
211
+ req.headers["PINNACLE-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
212
+ req.headers = {
213
+ **(req.headers || {}),
214
+ **@request_client.get_headers,
215
+ **(request_options&.additional_headers || {})
216
+ }.compact
217
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
218
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
219
+ end
220
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
221
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
222
+ end
223
+ req.url "#{@request_client.get_url(request_options: request_options)}/status/brand/#{brand_id}"
224
+ end
225
+ Pinnacle::Types::BrandStatus.from_json(json_object: response.body)
226
+ end
227
+ end
228
+
229
+ # Retrieve a toll-free campaign's status.
230
+ #
231
+ # @param campaign_id [Integer] ID of the toll-free campaign.
232
+ # @param request_options [Pinnacle::RequestOptions]
233
+ # @return [Pinnacle::Types::TollFreeCampaignStatus]
234
+ # @example
235
+ # api = Pinnacle::Client.new(
236
+ # base_url: "https://api.example.com",
237
+ # environment: Pinnacle::Environment::DEFAULT,
238
+ # api_key: "YOUR_API_KEY"
239
+ # )
240
+ # api.status.get.toll_free(campaign_id: 28)
241
+ def toll_free(campaign_id:, request_options: nil)
242
+ Async do
243
+ response = @request_client.conn.get do |req|
244
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
245
+ req.headers["PINNACLE-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
246
+ req.headers = {
247
+ **(req.headers || {}),
248
+ **@request_client.get_headers,
249
+ **(request_options&.additional_headers || {})
250
+ }.compact
251
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
252
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
253
+ end
254
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
255
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
256
+ end
257
+ req.url "#{@request_client.get_url(request_options: request_options)}/status/toll-free-campaign/#{campaign_id}"
258
+ end
259
+ Pinnacle::Types::TollFreeCampaignStatus.from_json(json_object: response.body)
260
+ end
261
+ end
262
+
263
+ # Retrieve a DLC campaign's status.
264
+ #
265
+ # @param campaign_id [Integer] ID of the DLC campaign.
266
+ # @param request_options [Pinnacle::RequestOptions]
267
+ # @return [Pinnacle::Types::DlcCampaignStatus]
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.status.get.dlc(campaign_id: 28)
275
+ def dlc(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)}/status/dlc-campaign/#{campaign_id}"
292
+ end
293
+ Pinnacle::Types::DlcCampaignStatus.from_json(json_object: response.body)
294
+ end
295
+ end
296
+
297
+ # Retrieve a RCS campaign's status.
298
+ #
299
+ # @param campaign_id [Integer] ID of the campaign.
300
+ # @param request_options [Pinnacle::RequestOptions]
301
+ # @return [Pinnacle::Types::RcsCampaignStatus]
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.status.get.rcs(campaign_id: 28)
309
+ def rcs(campaign_id:, request_options: nil)
310
+ Async do
311
+ response = @request_client.conn.get 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)}/status/rcs-campaign/#{campaign_id}"
326
+ end
327
+ Pinnacle::Types::RcsCampaignStatus.from_json(json_object: response.body)
328
+ end
329
+ end
330
+
331
+ # Retrieve a phone number's order status and campaign attachment status. <br>
332
+ # Check if a number is active and ready to send messages.
333
+ #
334
+ # @param phone_number [String] Phone number in E164 format that is in review.
335
+ # @param request_options [Pinnacle::RequestOptions]
336
+ # @return [Pinnacle::Types::PhoneNumberStatus]
337
+ # @example
338
+ # api = Pinnacle::Client.new(
339
+ # base_url: "https://api.example.com",
340
+ # environment: Pinnacle::Environment::DEFAULT,
341
+ # api_key: "YOUR_API_KEY"
342
+ # )
343
+ # api.status.get.phone_number(phone_number: "+14151234567")
344
+ def phone_number(phone_number:, request_options: nil)
345
+ Async do
346
+ response = @request_client.conn.get do |req|
347
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
348
+ req.headers["PINNACLE-API-KEY"] = request_options.api_key unless request_options&.api_key.nil?
349
+ req.headers = {
350
+ **(req.headers || {}),
351
+ **@request_client.get_headers,
352
+ **(request_options&.additional_headers || {})
353
+ }.compact
354
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
355
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
356
+ end
357
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
358
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
359
+ end
360
+ req.url "#{@request_client.get_url(request_options: request_options)}/status/phone-number/#{phone_number}"
361
+ end
362
+ Pinnacle::Types::PhoneNumberStatus.from_json(json_object: response.body)
363
+ end
364
+ end
365
+ end
366
+ end
367
+ end
@@ -1,210 +1,43 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require_relative "../../requests"
4
- require "date"
5
- require_relative "types/tools_shorten_url_response"
6
- require_relative "types/tools_upload_url_response"
7
- require "async"
4
+ require_relative "url/client"
5
+ require_relative "file/client"
6
+ require_relative "contact_card/client"
8
7
 
9
8
  module Pinnacle
10
- class ToolsClient
11
- # @return [Pinnacle::RequestClient]
12
- attr_reader :request_client
13
-
14
- # @param request_client [Pinnacle::RequestClient]
15
- # @return [Pinnacle::ToolsClient]
16
- def initialize(request_client:)
17
- @request_client = request_client
18
- end
19
-
20
- # Create a shortened URL with an optional expiration date (default and max
21
- # expiration is 90 days). The shortened URL will redirect to the original URL and
22
- # will have the following format https://urls.p1n.io/ABCD5678.
23
- #
24
- # @param url [String] The URL to be shortened. Must be a valid URL with either http or https protocol.
25
- # @param expires_at [DateTime] Optional expiration date for the shortened URL in ISO 8601 format. Default and
26
- # max expiration is 90 days.
27
- # @param request_options [Pinnacle::RequestOptions]
28
- # @return [Pinnacle::Tools::ToolsShortenUrlResponse]
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.tools.shorten_url(url: "https://example.com")
36
- def shorten_url(url:, expires_at: nil, request_options: nil)
37
- response = @request_client.conn.post 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
- req.body = { **(request_options&.additional_body_parameters || {}), url: url, expiresAt: expires_at }.compact
49
- req.url "#{@request_client.get_url(request_options: request_options)}/tools/urls/shorten"
50
- end
51
- Pinnacle::Tools::ToolsShortenUrlResponse.from_json(json_object: response.body)
52
- end
53
-
54
- # Generate signed upload (expires in 2 hours) and download URLs for a file
55
- # (expires in 1 hour).
56
- # See the [Upload](/api-reference/upload) page for native Python and Typescript
57
- # SDKs.
58
- #
59
- # @param content_type [String] The MIME type of the file.
60
- # Supported types are audio/basic, audio/L24, audio/mp4, audio/mpeg, audio/mpg,
61
- # audio/mp3, audio/ogg, audio/aac, audio/vndrn-realaudio, audio/vndwave,
62
- # audio/3gpp, audio/3gpp2, audio/ac3, audio/webm, audio/amrnb, audio/amr,
63
- # video/mpeg, video/mp4, video/quicktime, video/webm, video/3gpp, video/3gpp2,
64
- # video/3gpptt, video/H261, video/H263, video/H2631998, video/H2632000,
65
- # video/H264, video/m4v, video/mpeg4, video/webm, image/jpeg, image/gif,
66
- # image/png, image/gif, image/bmp, image/tiff, image/webp, text/vcard,
67
- # text/xvcard, text/csv, text/rtf, text/richtext, text/calendar, text/directory,
68
- # application/ogg, application/pdf, application/vcard,
69
- # application/vndapple.pkpass.
70
- # @param size [Integer] The size of the file in bytes. Should be less than 100 MB.
71
- # @param name [String] The name of the file.
72
- # @param request_options [Pinnacle::RequestOptions]
73
- # @return [Pinnacle::Tools::ToolsUploadUrlResponse]
74
- # @example
75
- # api = Pinnacle::Client.new(
76
- # base_url: "https://api.example.com",
77
- # environment: Pinnacle::Environment::DEFAULT,
78
- # api_key: "YOUR_API_KEY"
79
- # )
80
- # api.tools.upload_url(
81
- # content_type: "image/png",
82
- # size: 1024,
83
- # name: "example.png"
84
- # )
85
- def upload_url(content_type:, size:, name:, request_options: nil)
86
- response = @request_client.conn.post do |req|
87
- req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
88
- req.headers["PINNACLE-API-Key"] = request_options.api_key unless request_options&.api_key.nil?
89
- req.headers = {
90
- **(req.headers || {}),
91
- **@request_client.get_headers,
92
- **(request_options&.additional_headers || {})
93
- }.compact
94
- unless request_options.nil? || request_options&.additional_query_parameters.nil?
95
- req.params = { **(request_options&.additional_query_parameters || {}) }.compact
96
- end
97
- req.body = {
98
- **(request_options&.additional_body_parameters || {}),
99
- contentType: content_type,
100
- size: size,
101
- name: name
102
- }.compact
103
- req.url "#{@request_client.get_url(request_options: request_options)}/tools/uploadUrl"
104
- end
105
- Pinnacle::Tools::ToolsUploadUrlResponse.from_json(json_object: response.body)
106
- end
107
- end
108
-
109
- class AsyncToolsClient
110
- # @return [Pinnacle::AsyncRequestClient]
111
- attr_reader :request_client
112
-
113
- # @param request_client [Pinnacle::AsyncRequestClient]
114
- # @return [Pinnacle::AsyncToolsClient]
115
- def initialize(request_client:)
116
- @request_client = request_client
117
- end
118
-
119
- # Create a shortened URL with an optional expiration date (default and max
120
- # expiration is 90 days). The shortened URL will redirect to the original URL and
121
- # will have the following format https://urls.p1n.io/ABCD5678.
122
- #
123
- # @param url [String] The URL to be shortened. Must be a valid URL with either http or https protocol.
124
- # @param expires_at [DateTime] Optional expiration date for the shortened URL in ISO 8601 format. Default and
125
- # max expiration is 90 days.
126
- # @param request_options [Pinnacle::RequestOptions]
127
- # @return [Pinnacle::Tools::ToolsShortenUrlResponse]
128
- # @example
129
- # api = Pinnacle::Client.new(
130
- # base_url: "https://api.example.com",
131
- # environment: Pinnacle::Environment::DEFAULT,
132
- # api_key: "YOUR_API_KEY"
133
- # )
134
- # api.tools.shorten_url(url: "https://example.com")
135
- def shorten_url(url:, expires_at: nil, request_options: nil)
136
- Async do
137
- response = @request_client.conn.post do |req|
138
- req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
139
- req.headers["PINNACLE-API-Key"] = request_options.api_key unless request_options&.api_key.nil?
140
- req.headers = {
141
- **(req.headers || {}),
142
- **@request_client.get_headers,
143
- **(request_options&.additional_headers || {})
144
- }.compact
145
- unless request_options.nil? || request_options&.additional_query_parameters.nil?
146
- req.params = { **(request_options&.additional_query_parameters || {}) }.compact
147
- end
148
- req.body = { **(request_options&.additional_body_parameters || {}), url: url, expiresAt: expires_at }.compact
149
- req.url "#{@request_client.get_url(request_options: request_options)}/tools/urls/shorten"
150
- end
151
- Pinnacle::Tools::ToolsShortenUrlResponse.from_json(json_object: response.body)
9
+ module Tools
10
+ class Client
11
+ # @return [Pinnacle::Tools::UrlClient]
12
+ attr_reader :url
13
+ # @return [Pinnacle::Tools::FileClient]
14
+ attr_reader :file
15
+ # @return [Pinnacle::Tools::ContactCardClient]
16
+ attr_reader :contact_card
17
+
18
+ # @param request_client [Pinnacle::RequestClient]
19
+ # @return [Pinnacle::Tools::Client]
20
+ def initialize(request_client:)
21
+ @url = Pinnacle::Tools::UrlClient.new(request_client: request_client)
22
+ @file = Pinnacle::Tools::FileClient.new(request_client: request_client)
23
+ @contact_card = Pinnacle::Tools::ContactCardClient.new(request_client: request_client)
152
24
  end
153
25
  end
154
26
 
155
- # Generate signed upload (expires in 2 hours) and download URLs for a file
156
- # (expires in 1 hour).
157
- # See the [Upload](/api-reference/upload) page for native Python and Typescript
158
- # SDKs.
159
- #
160
- # @param content_type [String] The MIME type of the file.
161
- # Supported types are audio/basic, audio/L24, audio/mp4, audio/mpeg, audio/mpg,
162
- # audio/mp3, audio/ogg, audio/aac, audio/vndrn-realaudio, audio/vndwave,
163
- # audio/3gpp, audio/3gpp2, audio/ac3, audio/webm, audio/amrnb, audio/amr,
164
- # video/mpeg, video/mp4, video/quicktime, video/webm, video/3gpp, video/3gpp2,
165
- # video/3gpptt, video/H261, video/H263, video/H2631998, video/H2632000,
166
- # video/H264, video/m4v, video/mpeg4, video/webm, image/jpeg, image/gif,
167
- # image/png, image/gif, image/bmp, image/tiff, image/webp, text/vcard,
168
- # text/xvcard, text/csv, text/rtf, text/richtext, text/calendar, text/directory,
169
- # application/ogg, application/pdf, application/vcard,
170
- # application/vndapple.pkpass.
171
- # @param size [Integer] The size of the file in bytes. Should be less than 100 MB.
172
- # @param name [String] The name of the file.
173
- # @param request_options [Pinnacle::RequestOptions]
174
- # @return [Pinnacle::Tools::ToolsUploadUrlResponse]
175
- # @example
176
- # api = Pinnacle::Client.new(
177
- # base_url: "https://api.example.com",
178
- # environment: Pinnacle::Environment::DEFAULT,
179
- # api_key: "YOUR_API_KEY"
180
- # )
181
- # api.tools.upload_url(
182
- # content_type: "image/png",
183
- # size: 1024,
184
- # name: "example.png"
185
- # )
186
- def upload_url(content_type:, size:, name:, request_options: nil)
187
- Async do
188
- response = @request_client.conn.post do |req|
189
- req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
190
- req.headers["PINNACLE-API-Key"] = request_options.api_key unless request_options&.api_key.nil?
191
- req.headers = {
192
- **(req.headers || {}),
193
- **@request_client.get_headers,
194
- **(request_options&.additional_headers || {})
195
- }.compact
196
- unless request_options.nil? || request_options&.additional_query_parameters.nil?
197
- req.params = { **(request_options&.additional_query_parameters || {}) }.compact
198
- end
199
- req.body = {
200
- **(request_options&.additional_body_parameters || {}),
201
- contentType: content_type,
202
- size: size,
203
- name: name
204
- }.compact
205
- req.url "#{@request_client.get_url(request_options: request_options)}/tools/uploadUrl"
206
- end
207
- Pinnacle::Tools::ToolsUploadUrlResponse.from_json(json_object: response.body)
27
+ class AsyncClient
28
+ # @return [Pinnacle::Tools::AsyncUrlClient]
29
+ attr_reader :url
30
+ # @return [Pinnacle::Tools::AsyncFileClient]
31
+ attr_reader :file
32
+ # @return [Pinnacle::Tools::AsyncContactCardClient]
33
+ attr_reader :contact_card
34
+
35
+ # @param request_client [Pinnacle::AsyncRequestClient]
36
+ # @return [Pinnacle::Tools::AsyncClient]
37
+ def initialize(request_client:)
38
+ @url = Pinnacle::Tools::AsyncUrlClient.new(request_client: request_client)
39
+ @file = Pinnacle::Tools::AsyncFileClient.new(request_client: request_client)
40
+ @contact_card = Pinnacle::Tools::AsyncContactCardClient.new(request_client: request_client)
208
41
  end
209
42
  end
210
43
  end