rcs 2.0.18 → 2.0.20.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 (494) hide show
  1. checksums.yaml +4 -4
  2. data/.fern/metadata.json +6 -4
  3. data/.rubocop.yml +34 -0
  4. data/CONTRIBUTING.md +120 -0
  5. data/lib/pinnacle/audiences/client.rb +0 -4
  6. data/lib/pinnacle/audiences/contacts/types/add_contacts_params.rb +1 -0
  7. data/lib/pinnacle/audiences/contacts/types/remove_contacts_params.rb +1 -0
  8. data/lib/pinnacle/audiences/types/audiences_get_request.rb +2 -0
  9. data/lib/pinnacle/audiences/types/audiences_get_response.rb +1 -0
  10. data/lib/pinnacle/audiences/types/create_audience_params.rb +2 -0
  11. data/lib/pinnacle/audiences/types/list_audiences_params.rb +2 -0
  12. data/lib/pinnacle/audiences/types/update_audience_params.rb +2 -0
  13. data/lib/pinnacle/brands/client.rb +1 -3
  14. data/lib/pinnacle/brands/types/autofill_brand_params.rb +3 -0
  15. data/lib/pinnacle/brands/types/brands_get_request.rb +1 -0
  16. data/lib/pinnacle/brands/types/list_brands_params.rb +4 -0
  17. data/lib/pinnacle/brands/types/upsert_brand_params.rb +11 -0
  18. data/lib/pinnacle/brands/types/upsert_brand_schema_contact.rb +3 -0
  19. data/lib/pinnacle/brands/types/vet_brand_params.rb +3 -0
  20. data/lib/pinnacle/calls/client.rb +359 -0
  21. data/lib/pinnacle/calls/types/calls_download_recording_request.rb +13 -0
  22. data/lib/pinnacle/calls/types/calls_list_events_request.rb +15 -0
  23. data/lib/pinnacle/calls/types/calls_list_request.rb +25 -0
  24. data/lib/pinnacle/calls/types/create_call_params.rb +17 -0
  25. data/lib/pinnacle/calls/types/create_stream_token_params.rb +17 -0
  26. data/lib/pinnacle/calls/types/update_call_params.rb +13 -0
  27. data/lib/pinnacle/campaigns/dlc/types/dlc_campaign_help_keywords.rb +1 -0
  28. data/lib/pinnacle/campaigns/dlc/types/dlc_campaign_keywords.rb +2 -0
  29. data/lib/pinnacle/campaigns/dlc/types/dlc_campaign_links.rb +1 -0
  30. data/lib/pinnacle/campaigns/dlc/types/dlc_campaign_opt_in_keywords.rb +1 -0
  31. data/lib/pinnacle/campaigns/dlc/types/dlc_campaign_opt_out_keywords.rb +1 -0
  32. data/lib/pinnacle/campaigns/dlc/types/dlc_campaign_options.rb +5 -0
  33. data/lib/pinnacle/campaigns/dlc/types/dlc_campaign_use_case.rb +1 -0
  34. data/lib/pinnacle/campaigns/dlc/types/list_dlc_campaigns_params.rb +4 -0
  35. data/lib/pinnacle/campaigns/dlc/types/upsert_dlc_campaign_params.rb +10 -0
  36. data/lib/pinnacle/campaigns/rcs/types/list_rcs_campaigns_params.rb +4 -0
  37. data/lib/pinnacle/campaigns/rcs/types/rcs_agent.rb +7 -0
  38. data/lib/pinnacle/campaigns/rcs/types/rcs_agent_email.rb +1 -0
  39. data/lib/pinnacle/campaigns/rcs/types/rcs_agent_phone.rb +1 -0
  40. data/lib/pinnacle/campaigns/rcs/types/rcs_agent_website.rb +1 -0
  41. data/lib/pinnacle/campaigns/rcs/types/rcs_campaign_help_keywords.rb +1 -0
  42. data/lib/pinnacle/campaigns/rcs/types/rcs_campaign_keywords.rb +2 -0
  43. data/lib/pinnacle/campaigns/rcs/types/rcs_campaign_opt_in_keywords.rb +1 -0
  44. data/lib/pinnacle/campaigns/rcs/types/rcs_campaign_opt_out_keywords.rb +1 -0
  45. data/lib/pinnacle/campaigns/rcs/types/rcs_campaign_traffic.rb +1 -0
  46. data/lib/pinnacle/campaigns/rcs/types/rcs_links.rb +1 -0
  47. data/lib/pinnacle/campaigns/rcs/types/upsert_rcs_campaign_params.rb +12 -0
  48. data/lib/pinnacle/campaigns/toll_free/types/list_toll_free_campaigns_params.rb +4 -0
  49. data/lib/pinnacle/campaigns/toll_free/types/toll_free_campaign_keywords.rb +1 -0
  50. data/lib/pinnacle/campaigns/toll_free/types/toll_free_campaign_links.rb +1 -0
  51. data/lib/pinnacle/campaigns/toll_free/types/toll_free_campaign_opt_in.rb +2 -0
  52. data/lib/pinnacle/campaigns/toll_free/types/toll_free_campaign_opt_in_keywords.rb +1 -0
  53. data/lib/pinnacle/campaigns/toll_free/types/toll_free_campaign_use_case.rb +1 -0
  54. data/lib/pinnacle/campaigns/toll_free/types/upsert_toll_free_campaign_params.rb +9 -0
  55. data/lib/pinnacle/client.rb +12 -2
  56. data/lib/pinnacle/contacts/client.rb +0 -2
  57. data/lib/pinnacle/contacts/types/contacts_get_request.rb +1 -0
  58. data/lib/pinnacle/contacts/types/create_contact_params.rb +4 -0
  59. data/lib/pinnacle/contacts/types/list_contacts_params.rb +5 -0
  60. data/lib/pinnacle/contacts/types/update_contact_params.rb +4 -0
  61. data/lib/pinnacle/conversations/client.rb +0 -2
  62. data/lib/pinnacle/conversations/types/conversations_list_messages_request.rb +8 -0
  63. data/lib/pinnacle/conversations/types/list_conversations_params.rb +6 -0
  64. data/lib/pinnacle/conversations/types/update_conversation_params.rb +1 -0
  65. data/lib/pinnacle/forms/client.rb +2 -2
  66. data/lib/pinnacle/forms/submissions/client.rb +1 -1
  67. data/lib/pinnacle/forms/submissions/types/list_form_submissions_params.rb +2 -0
  68. data/lib/pinnacle/forms/types/forms_send_response.rb +1 -0
  69. data/lib/pinnacle/forms/types/list_forms_params.rb +1 -0
  70. data/lib/pinnacle/forms/types/update_form_params.rb +7 -0
  71. data/lib/pinnacle/internal/http/raw_client.rb +3 -2
  72. data/lib/pinnacle/internal/iterators/cursor_page_iterator.rb +14 -2
  73. data/lib/pinnacle/internal/iterators/item_iterator.rb +6 -0
  74. data/lib/pinnacle/internal/iterators/offset_page_iterator.rb +22 -2
  75. data/lib/pinnacle/internal/types/utils.rb +2 -2
  76. data/lib/pinnacle/messages/blast/types/blast_mms.rb +3 -0
  77. data/lib/pinnacle/messages/blast/types/blast_mms_options.rb +1 -0
  78. data/lib/pinnacle/messages/blast/types/blast_mms_response.rb +1 -0
  79. data/lib/pinnacle/messages/blast/types/blast_rcs.rb +4 -0
  80. data/lib/pinnacle/messages/blast/types/blast_rcs_options.rb +3 -0
  81. data/lib/pinnacle/messages/blast/types/blast_rcs_request_options_standalone_card.rb +1 -0
  82. data/lib/pinnacle/messages/blast/types/blast_rcs_response.rb +1 -0
  83. data/lib/pinnacle/messages/blast/types/blast_sms.rb +3 -0
  84. data/lib/pinnacle/messages/blast/types/blast_sms_response.rb +1 -0
  85. data/lib/pinnacle/messages/blasts/types/list_blasts_params.rb +4 -0
  86. data/lib/pinnacle/messages/mms/types/mms.rb +4 -0
  87. data/lib/pinnacle/messages/mms/types/mms_send_response.rb +1 -0
  88. data/lib/pinnacle/messages/mms/types/send_mms_options.rb +3 -0
  89. data/lib/pinnacle/messages/rcs/types/send_rich_message_response.rb +3 -0
  90. data/lib/pinnacle/messages/rcs/types/send_typing_indicator_schema.rb +1 -0
  91. data/lib/pinnacle/messages/schedules/types/list_scheduled_messages_params.rb +4 -0
  92. data/lib/pinnacle/messages/sms/types/send_sms_options.rb +1 -0
  93. data/lib/pinnacle/messages/sms/types/sms.rb +3 -0
  94. data/lib/pinnacle/messages/sms/types/sms_send_response.rb +1 -0
  95. data/lib/pinnacle/messages/types/list_messages_params.rb +10 -0
  96. data/lib/pinnacle/messages/types/react_message_params.rb +2 -0
  97. data/lib/pinnacle/network/client.rb +34 -0
  98. data/lib/pinnacle/network/requests/client.rb +94 -0
  99. data/lib/pinnacle/network/requests/types/list_network_requests_params.rb +21 -0
  100. data/lib/pinnacle/network/silent_auth/client.rb +107 -0
  101. data/lib/pinnacle/network/silent_auth/types/silent_auth_check_request.rb +15 -0
  102. data/lib/pinnacle/network/silent_auth/types/silent_auth_request.rb +17 -0
  103. data/lib/pinnacle/network/sim_swap/client.rb +55 -0
  104. data/lib/pinnacle/network/sim_swap/types/sim_swap_request.rb +15 -0
  105. data/lib/pinnacle/network/subscriber_match/client.rb +55 -0
  106. data/lib/pinnacle/network/subscriber_match/types/subscriber_match_request.rb +15 -0
  107. data/lib/pinnacle/phone_numbers/campaign/types/attach_campaign_params.rb +2 -0
  108. data/lib/pinnacle/phone_numbers/types/list_phone_numbers_params.rb +1 -0
  109. data/lib/pinnacle/phone_numbers/types/phone_numbers_get_response.rb +1 -0
  110. data/lib/pinnacle/phone_numbers/types/retrieve_phone_number_details_options.rb +2 -0
  111. data/lib/pinnacle/phone_numbers/types/retrieve_phone_number_details_params.rb +2 -0
  112. data/lib/pinnacle/phone_numbers/types/search_phone_number_by_digits.rb +2 -0
  113. data/lib/pinnacle/phone_numbers/types/search_phone_number_by_location.rb +3 -0
  114. data/lib/pinnacle/phone_numbers/types/search_phone_number_params.rb +4 -0
  115. data/lib/pinnacle/pinnacle_client.rb +8 -0
  116. data/lib/pinnacle/rcs/agents/types/list_agents_params.rb +3 -0
  117. data/lib/pinnacle/rcs/test/client.rb +2 -4
  118. data/lib/pinnacle/rcs/test/types/create_test_agent_request.rb +11 -0
  119. data/lib/pinnacle/rcs/test/types/test_agent_whitelist_request.rb +1 -0
  120. data/lib/pinnacle/rcs/test/types/test_get_whitelist_status_request.rb +1 -0
  121. data/lib/pinnacle/rcs/test/types/update_test_agent_request.rb +12 -0
  122. data/lib/pinnacle/rcs/types/rcs_capabilities_query.rb +1 -0
  123. data/lib/pinnacle/rcs/types/rcs_link_request.rb +2 -0
  124. data/lib/pinnacle/rcs/whitelisted_numbers/types/list_test_numbers_params.rb +4 -0
  125. data/lib/pinnacle/tools/contact_card/types/get_vcard_params.rb +1 -0
  126. data/lib/pinnacle/tools/contact_card/types/upsert_vcard_params.rb +16 -0
  127. data/lib/pinnacle/tools/file/types/upload_file_options.rb +1 -0
  128. data/lib/pinnacle/tools/file/types/upload_file_params.rb +3 -0
  129. data/lib/pinnacle/tools/url/client.rb +1 -1
  130. data/lib/pinnacle/tools/url/types/create_url_params.rb +1 -0
  131. data/lib/pinnacle/tools/url/types/list_links_params.rb +2 -0
  132. data/lib/pinnacle/tools/url/types/update_url_params.rb +2 -0
  133. data/lib/pinnacle/types/address_field.rb +3 -0
  134. data/lib/pinnacle/types/advanced_phone_information.rb +5 -0
  135. data/lib/pinnacle/types/advanced_phone_information_carrier.rb +3 -0
  136. data/lib/pinnacle/types/advanced_phone_information_contact.rb +9 -0
  137. data/lib/pinnacle/types/advanced_phone_information_location.rb +7 -0
  138. data/lib/pinnacle/types/advanced_phone_information_location_coordinates.rb +1 -0
  139. data/lib/pinnacle/types/advanced_phone_information_location_country.rb +2 -0
  140. data/lib/pinnacle/types/advanced_phone_information_type.rb +3 -0
  141. data/lib/pinnacle/types/agent.rb +1 -0
  142. data/lib/pinnacle/types/agent_email_entry.rb +1 -0
  143. data/lib/pinnacle/types/agent_phone_entry.rb +1 -0
  144. data/lib/pinnacle/types/agent_summary.rb +6 -0
  145. data/lib/pinnacle/types/agent_summary_carrier_launches.rb +6 -1
  146. data/lib/pinnacle/types/agent_summary_config.rb +11 -0
  147. data/lib/pinnacle/types/agent_summary_config_emails_item.rb +1 -0
  148. data/lib/pinnacle/types/agent_summary_config_phones_item.rb +1 -0
  149. data/lib/pinnacle/types/agent_summary_config_websites_item.rb +1 -0
  150. data/lib/pinnacle/types/agent_website_entry.rb +1 -0
  151. data/lib/pinnacle/types/attach_webhook_response_webhook.rb +4 -0
  152. data/lib/pinnacle/types/attach_webhook_result.rb +3 -0
  153. data/lib/pinnacle/types/attached_phone_number_result.rb +1 -0
  154. data/lib/pinnacle/types/audience_count_only.rb +3 -0
  155. data/lib/pinnacle/types/audience_summary.rb +4 -0
  156. data/lib/pinnacle/types/audience_with_pagination.rb +5 -0
  157. data/lib/pinnacle/types/autofill_campaign_params.rb +1 -0
  158. data/lib/pinnacle/types/autofill_dlc_campaign_response.rb +10 -0
  159. data/lib/pinnacle/types/autofill_dlc_response_keywords.rb +2 -0
  160. data/lib/pinnacle/types/autofill_dlc_response_keywords_help.rb +1 -0
  161. data/lib/pinnacle/types/autofill_dlc_response_keywords_opt_in.rb +1 -0
  162. data/lib/pinnacle/types/autofill_dlc_response_keywords_opt_out.rb +1 -0
  163. data/lib/pinnacle/types/autofill_dlc_response_links.rb +1 -0
  164. data/lib/pinnacle/types/autofill_dlc_response_options.rb +5 -0
  165. data/lib/pinnacle/types/autofill_dlc_response_use_case.rb +1 -0
  166. data/lib/pinnacle/types/bad_request_error_body.rb +1 -0
  167. data/lib/pinnacle/types/base_rich_message.rb +3 -0
  168. data/lib/pinnacle/types/basic_phone_information.rb +5 -0
  169. data/lib/pinnacle/types/basic_phone_information_location.rb +1 -0
  170. data/lib/pinnacle/types/basic_phone_information_location_country.rb +2 -0
  171. data/lib/pinnacle/types/blast_details.rb +5 -0
  172. data/lib/pinnacle/types/blast_summary.rb +7 -0
  173. data/lib/pinnacle/types/brand_status.rb +2 -0
  174. data/lib/pinnacle/types/button_clicked.rb +1 -0
  175. data/lib/pinnacle/types/button_clicked_data.rb +1 -0
  176. data/lib/pinnacle/types/button_clicked_data_button.rb +4 -0
  177. data/lib/pinnacle/types/button_clicked_data_button_raw.rb +1 -0
  178. data/lib/pinnacle/types/buy_response_capabilities.rb +2 -0
  179. data/lib/pinnacle/types/call.rb +31 -0
  180. data/lib/pinnacle/types/call_direction.rb +12 -0
  181. data/lib/pinnacle/types/call_event.rb +27 -0
  182. data/lib/pinnacle/types/call_event_source.rb +14 -0
  183. data/lib/pinnacle/types/call_metadata.rb +23 -0
  184. data/lib/pinnacle/types/call_state.rb +19 -0
  185. data/lib/pinnacle/types/call_status_event.rb +14 -0
  186. data/lib/pinnacle/types/call_status_event_call.rb +17 -0
  187. data/lib/pinnacle/types/call_stream_token.rb +13 -0
  188. data/lib/pinnacle/types/campaign_query.rb +1 -0
  189. data/lib/pinnacle/types/campaign_status_event.rb +5 -0
  190. data/lib/pinnacle/types/campaign_status_event_agent.rb +1 -0
  191. data/lib/pinnacle/types/campaign_status_event_brand.rb +1 -0
  192. data/lib/pinnacle/types/campaign_status_event_campaign.rb +1 -0
  193. data/lib/pinnacle/types/campaign_status_event_carrier_launches.rb +1 -0
  194. data/lib/pinnacle/types/campaign_status_event_carrier_launches_carriers.rb +3 -0
  195. data/lib/pinnacle/types/campaign_status_event_carrier_launches_verification.rb +1 -0
  196. data/lib/pinnacle/types/campaign_validation_response_errors_item.rb +2 -0
  197. data/lib/pinnacle/types/campaign_validation_result.rb +1 -0
  198. data/lib/pinnacle/types/carrier_launches.rb +1 -0
  199. data/lib/pinnacle/types/carrier_launches_carriers.rb +3 -0
  200. data/lib/pinnacle/types/carrier_launches_verification.rb +1 -0
  201. data/lib/pinnacle/types/checkbox_field.rb +2 -0
  202. data/lib/pinnacle/types/contact.rb +5 -0
  203. data/lib/pinnacle/types/conversation.rb +7 -0
  204. data/lib/pinnacle/types/conversation_by_participants_params.rb +1 -0
  205. data/lib/pinnacle/types/conversation_contact.rb +1 -0
  206. data/lib/pinnacle/types/conversation_list.rb +2 -0
  207. data/lib/pinnacle/types/conversation_sender.rb +1 -0
  208. data/lib/pinnacle/types/created_call.rb +33 -0
  209. data/lib/pinnacle/types/date_field.rb +2 -0
  210. data/lib/pinnacle/types/datetime_field.rb +2 -0
  211. data/lib/pinnacle/types/detach_webhook_result.rb +2 -0
  212. data/lib/pinnacle/types/detached_phone_number_result.rb +1 -0
  213. data/lib/pinnacle/types/dlc_campaign_status.rb +3 -0
  214. data/lib/pinnacle/types/dlc_campaign_summary.rb +6 -0
  215. data/lib/pinnacle/types/dlc_campaign_with_extended_brand_and_status.rb +13 -0
  216. data/lib/pinnacle/types/dlc_with_extended_brand_and_status_keywords.rb +2 -0
  217. data/lib/pinnacle/types/dlc_with_extended_brand_and_status_keywords_help.rb +1 -0
  218. data/lib/pinnacle/types/dlc_with_extended_brand_and_status_keywords_opt_in.rb +1 -0
  219. data/lib/pinnacle/types/dlc_with_extended_brand_and_status_keywords_opt_out.rb +1 -0
  220. data/lib/pinnacle/types/dlc_with_extended_brand_and_status_links.rb +1 -0
  221. data/lib/pinnacle/types/dlc_with_extended_brand_and_status_options.rb +5 -0
  222. data/lib/pinnacle/types/dlc_with_extended_brand_and_status_use_case.rb +1 -0
  223. data/lib/pinnacle/types/e_164_phone_number.rb +23 -0
  224. data/lib/pinnacle/types/enhanced_contact_item.rb +4 -0
  225. data/lib/pinnacle/types/extended_brand.rb +4 -0
  226. data/lib/pinnacle/types/extended_brand_with_vetting.rb +2 -0
  227. data/lib/pinnacle/types/extended_rcs_campaign.rb +14 -0
  228. data/lib/pinnacle/types/failed_sender.rb +1 -0
  229. data/lib/pinnacle/types/fallback_message.rb +2 -0
  230. data/lib/pinnacle/types/field_base.rb +3 -0
  231. data/lib/pinnacle/types/form.rb +12 -0
  232. data/lib/pinnacle/types/form_background.rb +3 -0
  233. data/lib/pinnacle/types/form_background_gradient.rb +1 -0
  234. data/lib/pinnacle/types/form_background_image.rb +3 -0
  235. data/lib/pinnacle/types/form_color_palette.rb +2 -0
  236. data/lib/pinnacle/types/form_definition.rb +5 -0
  237. data/lib/pinnacle/types/form_field.rb +15 -0
  238. data/lib/pinnacle/types/form_field_option.rb +1 -0
  239. data/lib/pinnacle/types/form_gradient.rb +2 -0
  240. data/lib/pinnacle/types/form_submission.rb +9 -0
  241. data/lib/pinnacle/types/form_submission_answer.rb +3 -0
  242. data/lib/pinnacle/types/form_submission_event.rb +4 -0
  243. data/lib/pinnacle/types/form_submission_event_conversation.rb +2 -0
  244. data/lib/pinnacle/types/form_submission_event_form.rb +2 -0
  245. data/lib/pinnacle/types/form_submission_event_submission.rb +7 -0
  246. data/lib/pinnacle/types/form_submitted_field.rb +3 -0
  247. data/lib/pinnacle/types/form_theme_override.rb +14 -0
  248. data/lib/pinnacle/types/form_theme_override_colors.rb +1 -0
  249. data/lib/pinnacle/types/get_conversation_params.rb +1 -0
  250. data/lib/pinnacle/types/get_dlc_campaign_status_response_updates.rb +2 -0
  251. data/lib/pinnacle/types/get_toll_free_campaign_status_response_updates.rb +2 -0
  252. data/lib/pinnacle/types/hosted_silent_auth_response.rb +13 -0
  253. data/lib/pinnacle/types/json_silent_auth_response.rb +13 -0
  254. data/lib/pinnacle/types/link_click_event.rb +48 -0
  255. data/lib/pinnacle/types/link_summary.rb +3 -0
  256. data/lib/pinnacle/types/list_agents_response.rb +2 -0
  257. data/lib/pinnacle/types/list_audiences_response.rb +2 -0
  258. data/lib/pinnacle/types/list_blasts_response.rb +2 -0
  259. data/lib/pinnacle/types/list_brands_response.rb +2 -0
  260. data/lib/pinnacle/types/list_call_events_response.rb +11 -0
  261. data/lib/pinnacle/types/list_calls_response.rb +11 -0
  262. data/lib/pinnacle/types/list_contacts_response.rb +2 -0
  263. data/lib/pinnacle/types/list_dlc_campaigns_response.rb +2 -0
  264. data/lib/pinnacle/types/list_form_submissions_response.rb +2 -0
  265. data/lib/pinnacle/types/list_forms_response.rb +2 -0
  266. data/lib/pinnacle/types/list_links_response.rb +2 -0
  267. data/lib/pinnacle/types/list_messages_response.rb +2 -0
  268. data/lib/pinnacle/types/list_network_requests_response.rb +13 -0
  269. data/lib/pinnacle/types/list_phone_numbers_response.rb +2 -0
  270. data/lib/pinnacle/types/list_rcs_campaigns_response.rb +2 -0
  271. data/lib/pinnacle/types/list_scheduled_messages_response.rb +2 -0
  272. data/lib/pinnacle/types/list_test_numbers_response.rb +2 -0
  273. data/lib/pinnacle/types/list_toll_free_campaigns_response.rb +2 -0
  274. data/lib/pinnacle/types/list_webhooks_response.rb +2 -0
  275. data/lib/pinnacle/types/location_share_action_data.rb +3 -0
  276. data/lib/pinnacle/types/message.rb +11 -0
  277. data/lib/pinnacle/types/message_content.rb +3 -0
  278. data/lib/pinnacle/types/message_event.rb +9 -0
  279. data/lib/pinnacle/types/message_event_content.rb +6 -0
  280. data/lib/pinnacle/types/message_event_conversation.rb +2 -0
  281. data/lib/pinnacle/types/message_event_fallback_message.rb +5 -0
  282. data/lib/pinnacle/types/message_event_mms_content.rb +2 -0
  283. data/lib/pinnacle/types/message_event_rcs_button_data.rb +2 -0
  284. data/lib/pinnacle/types/message_event_rcs_button_data_button.rb +4 -0
  285. data/lib/pinnacle/types/message_event_rcs_button_data_button_raw.rb +1 -0
  286. data/lib/pinnacle/types/message_event_rcs_cards_content.rb +2 -0
  287. data/lib/pinnacle/types/message_event_rcs_cards_content_cards_item.rb +3 -0
  288. data/lib/pinnacle/types/message_event_rcs_location_data.rb +2 -0
  289. data/lib/pinnacle/types/message_event_rcs_location_data_data.rb +3 -0
  290. data/lib/pinnacle/types/message_event_rcs_media_content.rb +2 -0
  291. data/lib/pinnacle/types/message_event_rcs_text_content.rb +2 -0
  292. data/lib/pinnacle/types/message_event_sms_content.rb +1 -0
  293. data/lib/pinnacle/types/message_list.rb +2 -0
  294. data/lib/pinnacle/types/message_schedule.rb +3 -0
  295. data/lib/pinnacle/types/message_summary.rb +16 -0
  296. data/lib/pinnacle/types/message_with_reactions.rb +1 -0
  297. data/lib/pinnacle/types/mms_content.rb +1 -0
  298. data/lib/pinnacle/types/mms_validation_response_segments.rb +2 -0
  299. data/lib/pinnacle/types/mms_validation_response_segments_value_item.rb +2 -0
  300. data/lib/pinnacle/types/mms_validation_result.rb +2 -0
  301. data/lib/pinnacle/types/network_insight_status.rb +14 -0
  302. data/lib/pinnacle/types/network_request_id.rb +23 -0
  303. data/lib/pinnacle/types/network_request_result.rb +16 -0
  304. data/lib/pinnacle/types/network_request_status.rb +15 -0
  305. data/lib/pinnacle/types/network_request_summary.rb +27 -0
  306. data/lib/pinnacle/types/network_request_type.rb +13 -0
  307. data/lib/pinnacle/types/number_field.rb +3 -0
  308. data/lib/pinnacle/types/number_format.rb +2 -0
  309. data/lib/pinnacle/types/optional_brand_info.rb +10 -0
  310. data/lib/pinnacle/types/optional_contact.rb +3 -0
  311. data/lib/pinnacle/types/optional_contacts.rb +3 -0
  312. data/lib/pinnacle/types/owned_phone_number.rb +5 -0
  313. data/lib/pinnacle/types/pagination.rb +3 -0
  314. data/lib/pinnacle/types/phone.rb +4 -0
  315. data/lib/pinnacle/types/phone_capabilities.rb +2 -0
  316. data/lib/pinnacle/types/phone_number_campaign_attach_failed_item.rb +1 -0
  317. data/lib/pinnacle/types/phone_number_campaign_attach_phone_numbers_item.rb +1 -0
  318. data/lib/pinnacle/types/phone_number_campaign_attach_phone_numbers_item_campaign.rb +2 -0
  319. data/lib/pinnacle/types/phone_number_campaign_detach_failed_item.rb +1 -0
  320. data/lib/pinnacle/types/phone_number_campaign_detach_phone_numbers_item.rb +1 -0
  321. data/lib/pinnacle/types/phone_number_campaign_detach_phone_numbers_item_campaign.rb +2 -0
  322. data/lib/pinnacle/types/phone_number_cost.rb +2 -0
  323. data/lib/pinnacle/types/phone_number_details.rb +4 -0
  324. data/lib/pinnacle/types/phone_number_region.rb +3 -0
  325. data/lib/pinnacle/types/phone_number_status.rb +2 -0
  326. data/lib/pinnacle/types/pinnacle_file_upload_metadata.rb +3 -0
  327. data/lib/pinnacle/types/pinnacle_url_config.rb +1 -0
  328. data/lib/pinnacle/types/purchased_number.rb +1 -0
  329. data/lib/pinnacle/types/range_field.rb +2 -0
  330. data/lib/pinnacle/types/rating_field.rb +1 -0
  331. data/lib/pinnacle/types/rcs_agent_details.rb +11 -0
  332. data/lib/pinnacle/types/rcs_agent_details_emails_item.rb +1 -0
  333. data/lib/pinnacle/types/rcs_agent_details_phones_item.rb +1 -0
  334. data/lib/pinnacle/types/rcs_agent_details_websites_item.rb +1 -0
  335. data/lib/pinnacle/types/rcs_agent_response.rb +4 -0
  336. data/lib/pinnacle/types/rcs_button_call.rb +2 -0
  337. data/lib/pinnacle/types/rcs_button_open_url.rb +3 -0
  338. data/lib/pinnacle/types/rcs_button_request_user_location.rb +1 -0
  339. data/lib/pinnacle/types/rcs_button_schedule_event.rb +5 -0
  340. data/lib/pinnacle/types/rcs_button_send_location.rb +3 -0
  341. data/lib/pinnacle/types/rcs_button_send_location_lat_long.rb +1 -0
  342. data/lib/pinnacle/types/rcs_button_trigger.rb +2 -0
  343. data/lib/pinnacle/types/rcs_campaign.rb +11 -0
  344. data/lib/pinnacle/types/rcs_campaign_schema_agent.rb +7 -0
  345. data/lib/pinnacle/types/rcs_campaign_schema_agent_emails_item.rb +1 -0
  346. data/lib/pinnacle/types/rcs_campaign_schema_agent_phones_item.rb +1 -0
  347. data/lib/pinnacle/types/rcs_campaign_schema_agent_websites_item.rb +1 -0
  348. data/lib/pinnacle/types/rcs_campaign_schema_extra_agent.rb +7 -0
  349. data/lib/pinnacle/types/rcs_campaign_schema_extra_agent_emails_item.rb +1 -0
  350. data/lib/pinnacle/types/rcs_campaign_schema_extra_agent_phones_item.rb +1 -0
  351. data/lib/pinnacle/types/rcs_campaign_schema_extra_agent_websites_item.rb +1 -0
  352. data/lib/pinnacle/types/rcs_campaign_schema_extra_keywords.rb +2 -0
  353. data/lib/pinnacle/types/rcs_campaign_schema_extra_keywords_help.rb +1 -0
  354. data/lib/pinnacle/types/rcs_campaign_schema_extra_keywords_opt_in.rb +1 -0
  355. data/lib/pinnacle/types/rcs_campaign_schema_extra_keywords_opt_out.rb +1 -0
  356. data/lib/pinnacle/types/rcs_campaign_schema_extra_links.rb +1 -0
  357. data/lib/pinnacle/types/rcs_campaign_schema_extra_traffic.rb +1 -0
  358. data/lib/pinnacle/types/rcs_campaign_schema_keywords.rb +2 -0
  359. data/lib/pinnacle/types/rcs_campaign_schema_keywords_help.rb +1 -0
  360. data/lib/pinnacle/types/rcs_campaign_schema_keywords_opt_in.rb +1 -0
  361. data/lib/pinnacle/types/rcs_campaign_schema_keywords_opt_out.rb +1 -0
  362. data/lib/pinnacle/types/rcs_campaign_schema_links.rb +1 -0
  363. data/lib/pinnacle/types/rcs_campaign_schema_traffic.rb +1 -0
  364. data/lib/pinnacle/types/rcs_campaign_status.rb +2 -0
  365. data/lib/pinnacle/types/rcs_campaign_summary.rb +6 -0
  366. data/lib/pinnacle/types/rcs_capability.rb +1 -0
  367. data/lib/pinnacle/types/rcs_capability_actions.rb +5 -0
  368. data/lib/pinnacle/types/rcs_capability_cards.rb +1 -0
  369. data/lib/pinnacle/types/rcs_cards_content.rb +1 -0
  370. data/lib/pinnacle/types/rcs_cards_content_cards_item.rb +3 -0
  371. data/lib/pinnacle/types/rcs_content.rb +2 -0
  372. data/lib/pinnacle/types/rcs_link_result.rb +1 -0
  373. data/lib/pinnacle/types/rcs_media_content.rb +1 -0
  374. data/lib/pinnacle/types/rcs_media_details_content.rb +2 -0
  375. data/lib/pinnacle/types/rcs_validate_content.rb +2 -0
  376. data/lib/pinnacle/types/rcs_validate_content_media.rb +1 -0
  377. data/lib/pinnacle/types/rcs_validation_result.rb +3 -0
  378. data/lib/pinnacle/types/reaction_result.rb +1 -0
  379. data/lib/pinnacle/types/recording_download.rb +11 -0
  380. data/lib/pinnacle/types/recording_state.rb +14 -0
  381. data/lib/pinnacle/types/refreshed_file.rb +1 -0
  382. data/lib/pinnacle/types/rich_button.rb +5 -0
  383. data/lib/pinnacle/types/rich_card.rb +3 -0
  384. data/lib/pinnacle/types/rich_cards.rb +1 -0
  385. data/lib/pinnacle/types/rich_cards_message.rb +3 -0
  386. data/lib/pinnacle/types/rich_media_message.rb +1 -0
  387. data/lib/pinnacle/types/rich_message.rb +2 -0
  388. data/lib/pinnacle/types/rich_standalone_card_options.rb +1 -0
  389. data/lib/pinnacle/types/rich_text.rb +1 -0
  390. data/lib/pinnacle/types/scheduled_blast_details.rb +1 -0
  391. data/lib/pinnacle/types/scheduled_blast_response_config.rb +3 -0
  392. data/lib/pinnacle/types/scheduled_form_send_response_form.rb +1 -0
  393. data/lib/pinnacle/types/scheduled_form_send_response_submission.rb +1 -0
  394. data/lib/pinnacle/types/scheduled_form_send_result.rb +3 -0
  395. data/lib/pinnacle/types/scheduled_message.rb +1 -0
  396. data/lib/pinnacle/types/scheduled_message_summary.rb +8 -0
  397. data/lib/pinnacle/types/scheduled_send_response_config.rb +3 -0
  398. data/lib/pinnacle/types/select_field.rb +1 -0
  399. data/lib/pinnacle/types/send_form_options.rb +1 -0
  400. data/lib/pinnacle/types/send_form_params.rb +1 -0
  401. data/lib/pinnacle/types/send_form_result.rb +2 -0
  402. data/lib/pinnacle/types/send_form_via_rcs_params.rb +4 -0
  403. data/lib/pinnacle/types/send_form_via_rcs_request_form.rb +1 -0
  404. data/lib/pinnacle/types/send_form_via_sms_params.rb +3 -0
  405. data/lib/pinnacle/types/send_form_via_sms_request_form.rb +1 -0
  406. data/lib/pinnacle/types/send_rich_cards_options.rb +4 -0
  407. data/lib/pinnacle/types/send_rich_message_options.rb +3 -0
  408. data/lib/pinnacle/types/send_rich_message_options_4.rb +3 -0
  409. data/lib/pinnacle/types/send_sms_response_segments.rb +1 -0
  410. data/lib/pinnacle/types/send_typing_indicator_response.rb +4 -0
  411. data/lib/pinnacle/types/sent_mms_details.rb +5 -0
  412. data/lib/pinnacle/types/sent_rich_message.rb +5 -0
  413. data/lib/pinnacle/types/sent_rich_message_fallback_mms.rb +1 -0
  414. data/lib/pinnacle/types/sent_rich_message_fallback_sms.rb +1 -0
  415. data/lib/pinnacle/types/sent_sms_details.rb +5 -0
  416. data/lib/pinnacle/types/shortened_url.rb +1 -0
  417. data/lib/pinnacle/types/silent_auth_check_response.rb +11 -0
  418. data/lib/pinnacle/types/silent_auth_check_response_status.rb +12 -0
  419. data/lib/pinnacle/types/silent_auth_response.rb +15 -0
  420. data/lib/pinnacle/types/sim_swap_response.rb +15 -0
  421. data/lib/pinnacle/types/simulate_message_input.rb +1 -0
  422. data/lib/pinnacle/types/simulate_user_button.rb +2 -0
  423. data/lib/pinnacle/types/simulate_user_message.rb +2 -0
  424. data/lib/pinnacle/types/simulate_user_params.rb +1 -0
  425. data/lib/pinnacle/types/sms_validation_response_segments.rb +1 -0
  426. data/lib/pinnacle/types/sms_validation_response_segments_gsm_7.rb +2 -0
  427. data/lib/pinnacle/types/sms_validation_response_segments_utf_16.rb +1 -0
  428. data/lib/pinnacle/types/sms_validation_response_total.rb +1 -0
  429. data/lib/pinnacle/types/sms_validation_result.rb +3 -0
  430. data/lib/pinnacle/types/subscriber_match_attributes.rb +30 -0
  431. data/lib/pinnacle/types/subscriber_match_response.rb +13 -0
  432. data/lib/pinnacle/types/subscriber_match_response_matches.rb +41 -0
  433. data/lib/pinnacle/types/subscriber_match_result.rb +18 -0
  434. data/lib/pinnacle/types/test_agent_response.rb +3 -0
  435. data/lib/pinnacle/types/text_field.rb +3 -0
  436. data/lib/pinnacle/types/textarea_field.rb +3 -0
  437. data/lib/pinnacle/types/time_field.rb +2 -0
  438. data/lib/pinnacle/types/toll_free_campaign.rb +8 -0
  439. data/lib/pinnacle/types/toll_free_campaign_schema_keywords.rb +1 -0
  440. data/lib/pinnacle/types/toll_free_campaign_schema_keywords_opt_in.rb +1 -0
  441. data/lib/pinnacle/types/toll_free_campaign_schema_links.rb +1 -0
  442. data/lib/pinnacle/types/toll_free_campaign_schema_opt_in.rb +2 -0
  443. data/lib/pinnacle/types/toll_free_campaign_schema_use_case.rb +1 -0
  444. data/lib/pinnacle/types/toll_free_campaign_status.rb +2 -0
  445. data/lib/pinnacle/types/toll_free_campaign_summary.rb +6 -0
  446. data/lib/pinnacle/types/toll_free_campaign_with_extended_brand_and_status.rb +10 -0
  447. data/lib/pinnacle/types/toll_free_with_extended_brand_and_status_keywords.rb +1 -0
  448. data/lib/pinnacle/types/toll_free_with_extended_brand_and_status_keywords_opt_in.rb +1 -0
  449. data/lib/pinnacle/types/toll_free_with_extended_brand_and_status_links.rb +1 -0
  450. data/lib/pinnacle/types/toll_free_with_extended_brand_and_status_opt_in.rb +2 -0
  451. data/lib/pinnacle/types/toll_free_with_extended_brand_and_status_use_case.rb +1 -0
  452. data/lib/pinnacle/types/upload_results.rb +2 -0
  453. data/lib/pinnacle/types/user_button_press.rb +5 -0
  454. data/lib/pinnacle/types/user_button_press_call.rb +2 -0
  455. data/lib/pinnacle/types/user_button_press_open_url.rb +2 -0
  456. data/lib/pinnacle/types/user_button_press_request_user_location.rb +2 -0
  457. data/lib/pinnacle/types/user_button_press_request_user_location_location.rb +3 -0
  458. data/lib/pinnacle/types/user_button_press_schedule_event.rb +5 -0
  459. data/lib/pinnacle/types/user_button_press_send_location.rb +3 -0
  460. data/lib/pinnacle/types/user_button_press_send_location_lat_long.rb +1 -0
  461. data/lib/pinnacle/types/user_button_press_trigger.rb +2 -0
  462. data/lib/pinnacle/types/user_event.rb +2 -0
  463. data/lib/pinnacle/types/user_event_conversation.rb +2 -0
  464. data/lib/pinnacle/types/v_card_data_file.rb +1 -0
  465. data/lib/pinnacle/types/v_card_geo.rb +1 -0
  466. data/lib/pinnacle/types/v_card_name.rb +4 -0
  467. data/lib/pinnacle/types/v_card_organization.rb +1 -0
  468. data/lib/pinnacle/types/validate_campaign_params.rb +1 -0
  469. data/lib/pinnacle/types/validation_error_details.rb +2 -0
  470. data/lib/pinnacle/types/validation_results.rb +1 -0
  471. data/lib/pinnacle/types/vcard.rb +15 -0
  472. data/lib/pinnacle/types/vcard_address.rb +8 -0
  473. data/lib/pinnacle/types/vcard_email.rb +1 -0
  474. data/lib/pinnacle/types/vcard_phone.rb +1 -0
  475. data/lib/pinnacle/types/vcard_resource.rb +1 -0
  476. data/lib/pinnacle/types/vetting_feedback.rb +3 -0
  477. data/lib/pinnacle/types/vetting_history.rb +4 -0
  478. data/lib/pinnacle/types/webhook_event_enum.rb +1 -0
  479. data/lib/pinnacle/types/webhook_summary.rb +6 -0
  480. data/lib/pinnacle/types/webhooks.rb +3 -0
  481. data/lib/pinnacle/types/whitelisted_number_summary.rb +3 -0
  482. data/lib/pinnacle/types/zod_error.rb +1 -0
  483. data/lib/pinnacle/version.rb +1 -1
  484. data/lib/pinnacle/webhooks/types/attach_webhook_params.rb +5 -0
  485. data/lib/pinnacle/webhooks/types/detach_webhook_params.rb +1 -0
  486. data/lib/pinnacle/webhooks/types/list_webhooks_params.rb +3 -0
  487. data/lib/pinnacle/wrapper/messages/client.rb +4 -1
  488. data/lib/pinnacle/wrapper/voice/client.rb +125 -0
  489. data/lib/pinnacle/wrapper/voice/types.rb +38 -0
  490. data/lib/pinnacle/wrapper/voice/voice_socket.rb +354 -0
  491. data/lib/pinnacle.rb +54 -0
  492. data/lib/rcs.rb +1 -637
  493. data/reference.md +2011 -804
  494. metadata +76 -3
@@ -0,0 +1,359 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Pinnacle
4
+ module Calls
5
+ class Client
6
+ # @param client [Pinnacle::Internal::Http::RawClient]
7
+ #
8
+ # @return [void]
9
+ def initialize(client:)
10
+ @client = client
11
+ end
12
+
13
+ # List voice calls for your team. Results are sorted newest first.
14
+ #
15
+ # @param request_options [Hash]
16
+ # @param params [Hash]
17
+ # @option request_options [String] :base_url
18
+ # @option request_options [Hash{String => Object}] :additional_headers
19
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
20
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
21
+ # @option request_options [Integer] :timeout_in_seconds
22
+ # @option params [Integer, nil] :limit
23
+ # @option params [String, nil] :cursor
24
+ # @option params [Pinnacle::Types::CallState, nil] :state
25
+ # @option params [Pinnacle::Types::CallDirection, nil] :direction
26
+ # @option params [String, nil] :from
27
+ # @option params [String, nil] :to
28
+ # @option params [String, nil] :created_after
29
+ # @option params [String, nil] :created_before
30
+ #
31
+ # @return [Pinnacle::Types::ListCallsResponse]
32
+ def list(request_options: {}, **params)
33
+ params = Pinnacle::Internal::Types::Utils.normalize_keys(params)
34
+ query_params = {}
35
+ query_params["limit"] = params[:limit] if params.key?(:limit)
36
+ query_params["cursor"] = params[:cursor] if params.key?(:cursor)
37
+ query_params["state"] = params[:state] if params.key?(:state)
38
+ query_params["direction"] = params[:direction] if params.key?(:direction)
39
+ query_params["from"] = params[:from] if params.key?(:from)
40
+ query_params["to"] = params[:to] if params.key?(:to)
41
+ query_params["created_after"] = params[:created_after] if params.key?(:created_after)
42
+ query_params["created_before"] = params[:created_before] if params.key?(:created_before)
43
+
44
+ request = Pinnacle::Internal::JSON::Request.new(
45
+ base_url: request_options[:base_url],
46
+ method: "GET",
47
+ path: "calls",
48
+ query: query_params,
49
+ request_options: request_options
50
+ )
51
+ begin
52
+ response = @client.send(request)
53
+ rescue Net::HTTPRequestTimeout
54
+ raise Pinnacle::Errors::TimeoutError
55
+ end
56
+ code = response.code.to_i
57
+ if code.between?(200, 299)
58
+ Pinnacle::Types::ListCallsResponse.load(response.body)
59
+ else
60
+ error_class = Pinnacle::Errors::ResponseError.subclass_for_code(code)
61
+ raise error_class.new(response.body, code: code)
62
+ end
63
+ end
64
+
65
+ # Start an outbound voice call from a voice-enabled phone number owned by your team.
66
+ #
67
+ # @param request_options [Hash]
68
+ # @param params [Pinnacle::Calls::Types::CreateCallParams]
69
+ # @option request_options [String] :base_url
70
+ # @option request_options [Hash{String => Object}] :additional_headers
71
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
72
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
73
+ # @option request_options [Integer] :timeout_in_seconds
74
+ #
75
+ # @return [Pinnacle::Types::CreatedCall]
76
+ def create(request_options: {}, **params)
77
+ params = Pinnacle::Internal::Types::Utils.normalize_keys(params)
78
+ request = Pinnacle::Internal::JSON::Request.new(
79
+ base_url: request_options[:base_url],
80
+ method: "POST",
81
+ path: "calls",
82
+ body: Pinnacle::Calls::Types::CreateCallParams.new(params).to_h,
83
+ request_options: request_options
84
+ )
85
+ begin
86
+ response = @client.send(request)
87
+ rescue Net::HTTPRequestTimeout
88
+ raise Pinnacle::Errors::TimeoutError
89
+ end
90
+ code = response.code.to_i
91
+ if code.between?(200, 299)
92
+ Pinnacle::Types::CreatedCall.load(response.body)
93
+ else
94
+ error_class = Pinnacle::Errors::ResponseError.subclass_for_code(code)
95
+ raise error_class.new(response.body, code: code)
96
+ end
97
+ end
98
+
99
+ # Retrieve one voice call by its Pinnacle call ID.
100
+ #
101
+ # @param request_options [Hash]
102
+ # @param params [Hash]
103
+ # @option request_options [String] :base_url
104
+ # @option request_options [Hash{String => Object}] :additional_headers
105
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
106
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
107
+ # @option request_options [Integer] :timeout_in_seconds
108
+ # @option params [String] :id
109
+ #
110
+ # @return [Pinnacle::Types::Call]
111
+ def get(request_options: {}, **params)
112
+ params = Pinnacle::Internal::Types::Utils.normalize_keys(params)
113
+ request = Pinnacle::Internal::JSON::Request.new(
114
+ base_url: request_options[:base_url],
115
+ method: "GET",
116
+ path: "calls/#{URI.encode_uri_component(params[:id].to_s)}",
117
+ request_options: request_options
118
+ )
119
+ begin
120
+ response = @client.send(request)
121
+ rescue Net::HTTPRequestTimeout
122
+ raise Pinnacle::Errors::TimeoutError
123
+ end
124
+ code = response.code.to_i
125
+ if code.between?(200, 299)
126
+ Pinnacle::Types::Call.load(response.body)
127
+ else
128
+ error_class = Pinnacle::Errors::ResponseError.subclass_for_code(code)
129
+ raise error_class.new(response.body, code: code)
130
+ end
131
+ end
132
+
133
+ # End a live call. Terminal calls are returned unchanged.
134
+ #
135
+ # @param request_options [Hash]
136
+ # @param params [Hash]
137
+ # @option request_options [String] :base_url
138
+ # @option request_options [Hash{String => Object}] :additional_headers
139
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
140
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
141
+ # @option request_options [Integer] :timeout_in_seconds
142
+ # @option params [String] :id
143
+ #
144
+ # @return [Pinnacle::Types::Call]
145
+ def cancel(request_options: {}, **params)
146
+ params = Pinnacle::Internal::Types::Utils.normalize_keys(params)
147
+ request = Pinnacle::Internal::JSON::Request.new(
148
+ base_url: request_options[:base_url],
149
+ method: "DELETE",
150
+ path: "calls/#{URI.encode_uri_component(params[:id].to_s)}",
151
+ request_options: request_options
152
+ )
153
+ begin
154
+ response = @client.send(request)
155
+ rescue Net::HTTPRequestTimeout
156
+ raise Pinnacle::Errors::TimeoutError
157
+ end
158
+ code = response.code.to_i
159
+ if code.between?(200, 299)
160
+ Pinnacle::Types::Call.load(response.body)
161
+ else
162
+ error_class = Pinnacle::Errors::ResponseError.subclass_for_code(code)
163
+ raise error_class.new(response.body, code: code)
164
+ end
165
+ end
166
+
167
+ # Replace a call's metadata. For live calls, future call events carry the updated metadata.
168
+ #
169
+ # @param request_options [Hash]
170
+ # @param params [Pinnacle::Calls::Types::UpdateCallParams]
171
+ # @option request_options [String] :base_url
172
+ # @option request_options [Hash{String => Object}] :additional_headers
173
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
174
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
175
+ # @option request_options [Integer] :timeout_in_seconds
176
+ # @option params [String] :id
177
+ #
178
+ # @return [Pinnacle::Types::Call]
179
+ def update(request_options: {}, **params)
180
+ params = Pinnacle::Internal::Types::Utils.normalize_keys(params)
181
+ request_data = Pinnacle::Calls::Types::UpdateCallParams.new(params).to_h
182
+ non_body_param_names = %w[id]
183
+ body = request_data.except(*non_body_param_names)
184
+
185
+ request = Pinnacle::Internal::JSON::Request.new(
186
+ base_url: request_options[:base_url],
187
+ method: "PATCH",
188
+ path: "calls/#{URI.encode_uri_component(params[:id].to_s)}",
189
+ body: body,
190
+ request_options: request_options
191
+ )
192
+ begin
193
+ response = @client.send(request)
194
+ rescue Net::HTTPRequestTimeout
195
+ raise Pinnacle::Errors::TimeoutError
196
+ end
197
+ code = response.code.to_i
198
+ if code.between?(200, 299)
199
+ Pinnacle::Types::Call.load(response.body)
200
+ else
201
+ error_class = Pinnacle::Errors::ResponseError.subclass_for_code(code)
202
+ raise error_class.new(response.body, code: code)
203
+ end
204
+ end
205
+
206
+ # List the event timeline for a call.
207
+ #
208
+ # @param request_options [Hash]
209
+ # @param params [Hash]
210
+ # @option request_options [String] :base_url
211
+ # @option request_options [Hash{String => Object}] :additional_headers
212
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
213
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
214
+ # @option request_options [Integer] :timeout_in_seconds
215
+ # @option params [String] :id
216
+ # @option params [Integer, nil] :limit
217
+ # @option params [String, nil] :cursor
218
+ #
219
+ # @return [Pinnacle::Types::ListCallEventsResponse]
220
+ def list_events(request_options: {}, **params)
221
+ params = Pinnacle::Internal::Types::Utils.normalize_keys(params)
222
+ query_params = {}
223
+ query_params["limit"] = params[:limit] if params.key?(:limit)
224
+ query_params["cursor"] = params[:cursor] if params.key?(:cursor)
225
+
226
+ request = Pinnacle::Internal::JSON::Request.new(
227
+ base_url: request_options[:base_url],
228
+ method: "GET",
229
+ path: "calls/#{URI.encode_uri_component(params[:id].to_s)}/events",
230
+ query: query_params,
231
+ request_options: request_options
232
+ )
233
+ begin
234
+ response = @client.send(request)
235
+ rescue Net::HTTPRequestTimeout
236
+ raise Pinnacle::Errors::TimeoutError
237
+ end
238
+ code = response.code.to_i
239
+ if code.between?(200, 299)
240
+ Pinnacle::Types::ListCallEventsResponse.load(response.body)
241
+ else
242
+ error_class = Pinnacle::Errors::ResponseError.subclass_for_code(code)
243
+ raise error_class.new(response.body, code: code)
244
+ end
245
+ end
246
+
247
+ # Mint a short-lived WebSocket token for a call. Use the returned `stream_url` to connect to Pinnacle's
248
+ # bidirectional voice stream.
249
+ #
250
+ # @param request_options [Hash]
251
+ # @param params [Pinnacle::Calls::Types::CreateStreamTokenParams]
252
+ # @option request_options [String] :base_url
253
+ # @option request_options [Hash{String => Object}] :additional_headers
254
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
255
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
256
+ # @option request_options [Integer] :timeout_in_seconds
257
+ # @option params [String] :id
258
+ #
259
+ # @return [Pinnacle::Types::CallStreamToken]
260
+ def create_stream_token(request_options: {}, **params)
261
+ params = Pinnacle::Internal::Types::Utils.normalize_keys(params)
262
+ request_data = Pinnacle::Calls::Types::CreateStreamTokenParams.new(params).to_h
263
+ non_body_param_names = %w[id]
264
+ body = request_data.except(*non_body_param_names)
265
+
266
+ request = Pinnacle::Internal::JSON::Request.new(
267
+ base_url: request_options[:base_url],
268
+ method: "POST",
269
+ path: "calls/#{URI.encode_uri_component(params[:id].to_s)}/stream-token",
270
+ body: body,
271
+ request_options: request_options
272
+ )
273
+ begin
274
+ response = @client.send(request)
275
+ rescue Net::HTTPRequestTimeout
276
+ raise Pinnacle::Errors::TimeoutError
277
+ end
278
+ code = response.code.to_i
279
+ if code.between?(200, 299)
280
+ Pinnacle::Types::CallStreamToken.load(response.body)
281
+ else
282
+ error_class = Pinnacle::Errors::ResponseError.subclass_for_code(code)
283
+ raise error_class.new(response.body, code: code)
284
+ end
285
+ end
286
+
287
+ # Return a short-lived signed URL for the call recording.
288
+ #
289
+ # @param request_options [Hash]
290
+ # @param params [Hash]
291
+ # @option request_options [String] :base_url
292
+ # @option request_options [Hash{String => Object}] :additional_headers
293
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
294
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
295
+ # @option request_options [Integer] :timeout_in_seconds
296
+ # @option params [String] :id
297
+ # @option params [Integer, nil] :expires_in
298
+ #
299
+ # @return [Pinnacle::Types::RecordingDownload]
300
+ def download_recording(request_options: {}, **params)
301
+ params = Pinnacle::Internal::Types::Utils.normalize_keys(params)
302
+ query_params = {}
303
+ query_params["expires_in"] = params[:expires_in] if params.key?(:expires_in)
304
+
305
+ request = Pinnacle::Internal::JSON::Request.new(
306
+ base_url: request_options[:base_url],
307
+ method: "GET",
308
+ path: "calls/#{URI.encode_uri_component(params[:id].to_s)}/recording",
309
+ query: query_params,
310
+ request_options: request_options
311
+ )
312
+ begin
313
+ response = @client.send(request)
314
+ rescue Net::HTTPRequestTimeout
315
+ raise Pinnacle::Errors::TimeoutError
316
+ end
317
+ code = response.code.to_i
318
+ if code.between?(200, 299)
319
+ Pinnacle::Types::RecordingDownload.load(response.body)
320
+ else
321
+ error_class = Pinnacle::Errors::ResponseError.subclass_for_code(code)
322
+ raise error_class.new(response.body, code: code)
323
+ end
324
+ end
325
+
326
+ # Delete the canonical recording and queued fragments for a terminal call.
327
+ #
328
+ # @param request_options [Hash]
329
+ # @param params [Hash]
330
+ # @option request_options [String] :base_url
331
+ # @option request_options [Hash{String => Object}] :additional_headers
332
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
333
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
334
+ # @option request_options [Integer] :timeout_in_seconds
335
+ # @option params [String] :id
336
+ #
337
+ # @return [untyped]
338
+ def delete_recording(request_options: {}, **params)
339
+ params = Pinnacle::Internal::Types::Utils.normalize_keys(params)
340
+ request = Pinnacle::Internal::JSON::Request.new(
341
+ base_url: request_options[:base_url],
342
+ method: "DELETE",
343
+ path: "calls/#{URI.encode_uri_component(params[:id].to_s)}/recording",
344
+ request_options: request_options
345
+ )
346
+ begin
347
+ response = @client.send(request)
348
+ rescue Net::HTTPRequestTimeout
349
+ raise Pinnacle::Errors::TimeoutError
350
+ end
351
+ code = response.code.to_i
352
+ return if code.between?(200, 299)
353
+
354
+ error_class = Pinnacle::Errors::ResponseError.subclass_for_code(code)
355
+ raise error_class.new(response.body, code: code)
356
+ end
357
+ end
358
+ end
359
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Pinnacle
4
+ module Calls
5
+ module Types
6
+ class CallsDownloadRecordingRequest < Internal::Types::Model
7
+ field :id, -> { String }, optional: false, nullable: false
8
+
9
+ field :expires_in, -> { Integer }, optional: true, nullable: false
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Pinnacle
4
+ module Calls
5
+ module Types
6
+ class CallsListEventsRequest < Internal::Types::Model
7
+ field :id, -> { String }, optional: false, nullable: false
8
+
9
+ field :limit, -> { Integer }, optional: true, nullable: false
10
+
11
+ field :cursor, -> { String }, optional: true, nullable: false
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,25 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Pinnacle
4
+ module Calls
5
+ module Types
6
+ class CallsListRequest < Internal::Types::Model
7
+ field :limit, -> { Integer }, optional: true, nullable: false
8
+
9
+ field :cursor, -> { String }, optional: true, nullable: false
10
+
11
+ field :state, -> { Pinnacle::Types::CallState }, optional: true, nullable: false
12
+
13
+ field :direction, -> { Pinnacle::Types::CallDirection }, optional: true, nullable: false
14
+
15
+ field :from, -> { String }, optional: true, nullable: false
16
+
17
+ field :to, -> { String }, optional: true, nullable: false
18
+
19
+ field :created_after, -> { String }, optional: true, nullable: false
20
+
21
+ field :created_before, -> { String }, optional: true, nullable: false
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Pinnacle
4
+ module Calls
5
+ module Types
6
+ class CreateCallParams < Internal::Types::Model
7
+ field :to, -> { String }, optional: false, nullable: false
8
+
9
+ field :from, -> { String }, optional: false, nullable: false
10
+
11
+ field :record, -> { Internal::Types::Boolean }, optional: true, nullable: false
12
+
13
+ field :metadata, -> { Internal::Types::Hash[String, String] }, optional: true, nullable: false
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Pinnacle
4
+ module Calls
5
+ module Types
6
+ class CreateStreamTokenParams < Internal::Types::Model
7
+ field :id, -> { String }, optional: false, nullable: false
8
+
9
+ field :commands_enabled, -> { Internal::Types::Boolean }, optional: true, nullable: false
10
+
11
+ field :stream_id, -> { String }, optional: true, nullable: false
12
+
13
+ field :record, -> { Internal::Types::Boolean }, optional: true, nullable: false
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Pinnacle
4
+ module Calls
5
+ module Types
6
+ class UpdateCallParams < Internal::Types::Model
7
+ field :id, -> { String }, optional: false, nullable: false
8
+
9
+ field :metadata, -> { Internal::Types::Hash[String, String] }, optional: false, nullable: false
10
+ end
11
+ end
12
+ end
13
+ end
@@ -7,6 +7,7 @@ module Pinnacle
7
7
  # Help keyword settings.
8
8
  class DlcCampaignHelpKeywords < Internal::Types::Model
9
9
  field :message, -> { String }, optional: true, nullable: false
10
+
10
11
  field :values, -> { Internal::Types::Array[String] }, optional: true, nullable: false
11
12
  end
12
13
  end
@@ -7,7 +7,9 @@ module Pinnacle
7
7
  # Keyword response configuration.
8
8
  class DlcCampaignKeywords < Internal::Types::Model
9
9
  field :help, -> { Pinnacle::Campaigns::Dlc::Types::DlcCampaignHelpKeywords }, optional: true, nullable: false, api_name: "HELP"
10
+
10
11
  field :opt_in, -> { Pinnacle::Campaigns::Dlc::Types::DlcCampaignOptInKeywords }, optional: true, nullable: false, api_name: "OPT_IN"
12
+
11
13
  field :opt_out, -> { Pinnacle::Campaigns::Dlc::Types::DlcCampaignOptOutKeywords }, optional: true, nullable: false, api_name: "OPT_OUT"
12
14
  end
13
15
  end
@@ -7,6 +7,7 @@ module Pinnacle
7
7
  # Legal documentation links.
8
8
  class DlcCampaignLinks < Internal::Types::Model
9
9
  field :privacy_policy, -> { String }, optional: true, nullable: false, api_name: "privacyPolicy"
10
+
10
11
  field :terms_of_service, -> { String }, optional: true, nullable: false, api_name: "termsOfService"
11
12
  end
12
13
  end
@@ -7,6 +7,7 @@ module Pinnacle
7
7
  # Opt-in keyword settings.
8
8
  class DlcCampaignOptInKeywords < Internal::Types::Model
9
9
  field :message, -> { String }, optional: true, nullable: false
10
+
10
11
  field :values, -> { Internal::Types::Array[String] }, optional: true, nullable: false
11
12
  end
12
13
  end
@@ -7,6 +7,7 @@ module Pinnacle
7
7
  # Opt-out keyword settings.
8
8
  class DlcCampaignOptOutKeywords < Internal::Types::Model
9
9
  field :message, -> { String }, optional: true, nullable: false
10
+
10
11
  field :values, -> { Internal::Types::Array[String] }, optional: true, nullable: false
11
12
  end
12
13
  end
@@ -7,10 +7,15 @@ module Pinnacle
7
7
  # Campaign configuration options.
8
8
  class DlcCampaignOptions < Internal::Types::Model
9
9
  field :affiliate_marketing, -> { Internal::Types::Boolean }, optional: true, nullable: false, api_name: "affiliateMarketing"
10
+
10
11
  field :age_gated, -> { Internal::Types::Boolean }, optional: true, nullable: false, api_name: "ageGated"
12
+
11
13
  field :direct_lending, -> { Internal::Types::Boolean }, optional: true, nullable: false, api_name: "directLending"
14
+
12
15
  field :embedded_link, -> { String }, optional: true, nullable: false, api_name: "embeddedLink"
16
+
13
17
  field :embedded_phone, -> { Internal::Types::Boolean }, optional: true, nullable: false, api_name: "embeddedPhone"
18
+
14
19
  field :number_pooling, -> { Internal::Types::Boolean }, optional: true, nullable: false, api_name: "numberPooling"
15
20
  end
16
21
  end
@@ -7,6 +7,7 @@ module Pinnacle
7
7
  # Use case for the campaign.
8
8
  class DlcCampaignUseCase < Internal::Types::Model
9
9
  field :sub, -> { Internal::Types::Array[Pinnacle::Types::SubUseCaseEnum] }, optional: true, nullable: false
10
+
10
11
  field :value, -> { Pinnacle::Types::DlcCampaignUseCaseEnum }, optional: true, nullable: false
11
12
  end
12
13
  end
@@ -6,9 +6,13 @@ module Pinnacle
6
6
  module Types
7
7
  class ListDlcCampaignsParams < Internal::Types::Model
8
8
  field :page_index, -> { Integer }, optional: true, nullable: false, api_name: "pageIndex"
9
+
9
10
  field :page_size, -> { Integer }, optional: true, nullable: false, api_name: "pageSize"
11
+
10
12
  field :status, -> { Pinnacle::Campaigns::Dlc::Types::ListDlcCampaignsRequestStatus }, optional: true, nullable: false
13
+
11
14
  field :brand_id, -> { String }, optional: true, nullable: false, api_name: "brandId"
15
+
12
16
  field :name, -> { String }, optional: true, nullable: false
13
17
  end
14
18
  end
@@ -6,15 +6,25 @@ module Pinnacle
6
6
  module Types
7
7
  class UpsertDlcCampaignParams < Internal::Types::Model
8
8
  field :auto_renew, -> { Internal::Types::Boolean }, optional: true, nullable: false, api_name: "autoRenew"
9
+
9
10
  field :brand, -> { String }, optional: true, nullable: false
11
+
10
12
  field :campaign_id, -> { String }, optional: true, nullable: false, api_name: "campaignId"
13
+
11
14
  field :description, -> { String }, optional: true, nullable: false
15
+
12
16
  field :keywords, -> { Pinnacle::Campaigns::Dlc::Types::DlcCampaignKeywords }, optional: true, nullable: false
17
+
13
18
  field :links, -> { Pinnacle::Campaigns::Dlc::Types::DlcCampaignLinks }, optional: true, nullable: false
19
+
14
20
  field :message_flow, -> { String }, optional: true, nullable: false, api_name: "messageFlow"
21
+
15
22
  field :name, -> { String }, optional: true, nullable: false
23
+
16
24
  field :options, -> { Pinnacle::Campaigns::Dlc::Types::DlcCampaignOptions }, optional: true, nullable: false
25
+
17
26
  field :sample_messages, -> { Internal::Types::Array[String] }, optional: true, nullable: false, api_name: "sampleMessages"
27
+
18
28
  field :use_case, -> { Pinnacle::Campaigns::Dlc::Types::DlcCampaignUseCase }, optional: true, nullable: false, api_name: "useCase"
19
29
  end
20
30
  end
@@ -6,9 +6,13 @@ module Pinnacle
6
6
  module Types
7
7
  class ListRcsCampaignsParams < Internal::Types::Model
8
8
  field :page_index, -> { Integer }, optional: true, nullable: false, api_name: "pageIndex"
9
+
9
10
  field :page_size, -> { Integer }, optional: true, nullable: false, api_name: "pageSize"
11
+
10
12
  field :status, -> { Pinnacle::Campaigns::Rcs::Types::ListRcsCampaignsRequestStatus }, optional: true, nullable: false
13
+
11
14
  field :brand_id, -> { String }, optional: true, nullable: false, api_name: "brandId"
15
+
12
16
  field :name, -> { String }, optional: true, nullable: false
13
17
  end
14
18
  end
@@ -7,12 +7,19 @@ module Pinnacle
7
7
  # Create an agent for the campaign.
8
8
  class RcsAgent < Internal::Types::Model
9
9
  field :color, -> { String }, optional: true, nullable: false
10
+
10
11
  field :description, -> { String }, optional: true, nullable: false
12
+
11
13
  field :emails, -> { Internal::Types::Array[Pinnacle::Campaigns::Rcs::Types::RcsAgentEmail] }, optional: true, nullable: false
14
+
12
15
  field :hero_url, -> { String }, optional: true, nullable: false, api_name: "heroUrl"
16
+
13
17
  field :icon_url, -> { String }, optional: true, nullable: false, api_name: "iconUrl"
18
+
14
19
  field :name, -> { String }, optional: true, nullable: false
20
+
15
21
  field :phones, -> { Internal::Types::Array[Pinnacle::Campaigns::Rcs::Types::RcsAgentPhone] }, optional: true, nullable: false
22
+
16
23
  field :websites, -> { Internal::Types::Array[Pinnacle::Campaigns::Rcs::Types::RcsAgentWebsite] }, optional: true, nullable: false
17
24
  end
18
25
  end
@@ -6,6 +6,7 @@ module Pinnacle
6
6
  module Types
7
7
  class RcsAgentEmail < Internal::Types::Model
8
8
  field :email, -> { String }, optional: true, nullable: false
9
+
9
10
  field :label, -> { String }, optional: true, nullable: false
10
11
  end
11
12
  end
@@ -6,6 +6,7 @@ module Pinnacle
6
6
  module Types
7
7
  class RcsAgentPhone < Internal::Types::Model
8
8
  field :label, -> { String }, optional: true, nullable: false
9
+
9
10
  field :phone, -> { String }, optional: true, nullable: false
10
11
  end
11
12
  end
@@ -6,6 +6,7 @@ module Pinnacle
6
6
  module Types
7
7
  class RcsAgentWebsite < Internal::Types::Model
8
8
  field :label, -> { String }, optional: true, nullable: false
9
+
9
10
  field :url, -> { String }, optional: true, nullable: false
10
11
  end
11
12
  end
@@ -6,6 +6,7 @@ module Pinnacle
6
6
  module Types
7
7
  class RcsCampaignHelpKeywords < Internal::Types::Model
8
8
  field :message, -> { String }, optional: true, nullable: false
9
+
9
10
  field :keywords, -> { Internal::Types::Array[String] }, optional: true, nullable: false
10
11
  end
11
12
  end
@@ -6,7 +6,9 @@ module Pinnacle
6
6
  module Types
7
7
  class RcsCampaignKeywords < Internal::Types::Model
8
8
  field :help, -> { Pinnacle::Campaigns::Rcs::Types::RcsCampaignHelpKeywords }, optional: true, nullable: false, api_name: "HELP"
9
+
9
10
  field :opt_in, -> { Pinnacle::Campaigns::Rcs::Types::RcsCampaignOptInKeywords }, optional: true, nullable: false, api_name: "OPT_IN"
11
+
10
12
  field :opt_out, -> { Pinnacle::Campaigns::Rcs::Types::RcsCampaignOptOutKeywords }, optional: true, nullable: false, api_name: "OPT_OUT"
11
13
  end
12
14
  end