rcs 2.0.18 → 2.0.19

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 (439) hide show
  1. checksums.yaml +4 -4
  2. data/.fern/metadata.json +6 -3
  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/campaigns/dlc/types/dlc_campaign_help_keywords.rb +1 -0
  21. data/lib/pinnacle/campaigns/dlc/types/dlc_campaign_keywords.rb +2 -0
  22. data/lib/pinnacle/campaigns/dlc/types/dlc_campaign_links.rb +1 -0
  23. data/lib/pinnacle/campaigns/dlc/types/dlc_campaign_opt_in_keywords.rb +1 -0
  24. data/lib/pinnacle/campaigns/dlc/types/dlc_campaign_opt_out_keywords.rb +1 -0
  25. data/lib/pinnacle/campaigns/dlc/types/dlc_campaign_options.rb +5 -0
  26. data/lib/pinnacle/campaigns/dlc/types/dlc_campaign_use_case.rb +1 -0
  27. data/lib/pinnacle/campaigns/dlc/types/list_dlc_campaigns_params.rb +4 -0
  28. data/lib/pinnacle/campaigns/dlc/types/upsert_dlc_campaign_params.rb +10 -0
  29. data/lib/pinnacle/campaigns/rcs/types/list_rcs_campaigns_params.rb +4 -0
  30. data/lib/pinnacle/campaigns/rcs/types/rcs_agent.rb +7 -0
  31. data/lib/pinnacle/campaigns/rcs/types/rcs_agent_email.rb +1 -0
  32. data/lib/pinnacle/campaigns/rcs/types/rcs_agent_phone.rb +1 -0
  33. data/lib/pinnacle/campaigns/rcs/types/rcs_agent_website.rb +1 -0
  34. data/lib/pinnacle/campaigns/rcs/types/rcs_campaign_help_keywords.rb +1 -0
  35. data/lib/pinnacle/campaigns/rcs/types/rcs_campaign_keywords.rb +2 -0
  36. data/lib/pinnacle/campaigns/rcs/types/rcs_campaign_opt_in_keywords.rb +1 -0
  37. data/lib/pinnacle/campaigns/rcs/types/rcs_campaign_opt_out_keywords.rb +1 -0
  38. data/lib/pinnacle/campaigns/rcs/types/rcs_campaign_traffic.rb +1 -0
  39. data/lib/pinnacle/campaigns/rcs/types/rcs_links.rb +1 -0
  40. data/lib/pinnacle/campaigns/rcs/types/upsert_rcs_campaign_params.rb +12 -0
  41. data/lib/pinnacle/campaigns/toll_free/types/list_toll_free_campaigns_params.rb +4 -0
  42. data/lib/pinnacle/campaigns/toll_free/types/toll_free_campaign_keywords.rb +1 -0
  43. data/lib/pinnacle/campaigns/toll_free/types/toll_free_campaign_links.rb +1 -0
  44. data/lib/pinnacle/campaigns/toll_free/types/toll_free_campaign_opt_in.rb +2 -0
  45. data/lib/pinnacle/campaigns/toll_free/types/toll_free_campaign_opt_in_keywords.rb +1 -0
  46. data/lib/pinnacle/campaigns/toll_free/types/toll_free_campaign_use_case.rb +1 -0
  47. data/lib/pinnacle/campaigns/toll_free/types/upsert_toll_free_campaign_params.rb +9 -0
  48. data/lib/pinnacle/client.rb +2 -2
  49. data/lib/pinnacle/contacts/client.rb +0 -2
  50. data/lib/pinnacle/contacts/types/contacts_get_request.rb +1 -0
  51. data/lib/pinnacle/contacts/types/create_contact_params.rb +4 -0
  52. data/lib/pinnacle/contacts/types/list_contacts_params.rb +5 -0
  53. data/lib/pinnacle/contacts/types/update_contact_params.rb +4 -0
  54. data/lib/pinnacle/conversations/client.rb +0 -2
  55. data/lib/pinnacle/conversations/types/conversations_list_messages_request.rb +8 -0
  56. data/lib/pinnacle/conversations/types/list_conversations_params.rb +6 -0
  57. data/lib/pinnacle/conversations/types/update_conversation_params.rb +1 -0
  58. data/lib/pinnacle/forms/client.rb +1 -1
  59. data/lib/pinnacle/forms/submissions/client.rb +1 -1
  60. data/lib/pinnacle/forms/submissions/types/list_form_submissions_params.rb +2 -0
  61. data/lib/pinnacle/forms/types/forms_send_response.rb +1 -0
  62. data/lib/pinnacle/forms/types/list_forms_params.rb +1 -0
  63. data/lib/pinnacle/forms/types/update_form_params.rb +7 -0
  64. data/lib/pinnacle/internal/http/raw_client.rb +3 -2
  65. data/lib/pinnacle/internal/iterators/cursor_page_iterator.rb +14 -2
  66. data/lib/pinnacle/internal/iterators/item_iterator.rb +6 -0
  67. data/lib/pinnacle/internal/iterators/offset_page_iterator.rb +22 -2
  68. data/lib/pinnacle/internal/types/utils.rb +2 -2
  69. data/lib/pinnacle/messages/blast/types/blast_mms.rb +3 -0
  70. data/lib/pinnacle/messages/blast/types/blast_mms_options.rb +1 -0
  71. data/lib/pinnacle/messages/blast/types/blast_mms_response.rb +1 -0
  72. data/lib/pinnacle/messages/blast/types/blast_rcs.rb +4 -0
  73. data/lib/pinnacle/messages/blast/types/blast_rcs_options.rb +3 -0
  74. data/lib/pinnacle/messages/blast/types/blast_rcs_request_options_standalone_card.rb +1 -0
  75. data/lib/pinnacle/messages/blast/types/blast_rcs_response.rb +1 -0
  76. data/lib/pinnacle/messages/blast/types/blast_sms.rb +3 -0
  77. data/lib/pinnacle/messages/blast/types/blast_sms_response.rb +1 -0
  78. data/lib/pinnacle/messages/blasts/types/list_blasts_params.rb +4 -0
  79. data/lib/pinnacle/messages/mms/types/mms.rb +4 -0
  80. data/lib/pinnacle/messages/mms/types/mms_send_response.rb +1 -0
  81. data/lib/pinnacle/messages/mms/types/send_mms_options.rb +3 -0
  82. data/lib/pinnacle/messages/rcs/types/send_rich_message_response.rb +3 -0
  83. data/lib/pinnacle/messages/rcs/types/send_typing_indicator_schema.rb +1 -0
  84. data/lib/pinnacle/messages/schedules/types/list_scheduled_messages_params.rb +4 -0
  85. data/lib/pinnacle/messages/sms/types/send_sms_options.rb +1 -0
  86. data/lib/pinnacle/messages/sms/types/sms.rb +3 -0
  87. data/lib/pinnacle/messages/sms/types/sms_send_response.rb +1 -0
  88. data/lib/pinnacle/messages/types/list_messages_params.rb +10 -0
  89. data/lib/pinnacle/messages/types/react_message_params.rb +2 -0
  90. data/lib/pinnacle/phone_numbers/campaign/types/attach_campaign_params.rb +2 -0
  91. data/lib/pinnacle/phone_numbers/types/list_phone_numbers_params.rb +1 -0
  92. data/lib/pinnacle/phone_numbers/types/phone_numbers_get_response.rb +1 -0
  93. data/lib/pinnacle/phone_numbers/types/retrieve_phone_number_details_options.rb +2 -0
  94. data/lib/pinnacle/phone_numbers/types/retrieve_phone_number_details_params.rb +2 -0
  95. data/lib/pinnacle/phone_numbers/types/search_phone_number_by_digits.rb +2 -0
  96. data/lib/pinnacle/phone_numbers/types/search_phone_number_by_location.rb +3 -0
  97. data/lib/pinnacle/phone_numbers/types/search_phone_number_params.rb +4 -0
  98. data/lib/pinnacle/rcs/agents/types/list_agents_params.rb +3 -0
  99. data/lib/pinnacle/rcs/test/client.rb +2 -4
  100. data/lib/pinnacle/rcs/test/types/create_test_agent_request.rb +11 -0
  101. data/lib/pinnacle/rcs/test/types/test_agent_whitelist_request.rb +1 -0
  102. data/lib/pinnacle/rcs/test/types/test_get_whitelist_status_request.rb +1 -0
  103. data/lib/pinnacle/rcs/test/types/update_test_agent_request.rb +12 -0
  104. data/lib/pinnacle/rcs/types/rcs_capabilities_query.rb +1 -0
  105. data/lib/pinnacle/rcs/types/rcs_link_request.rb +2 -0
  106. data/lib/pinnacle/rcs/whitelisted_numbers/types/list_test_numbers_params.rb +4 -0
  107. data/lib/pinnacle/tools/contact_card/types/get_vcard_params.rb +1 -0
  108. data/lib/pinnacle/tools/contact_card/types/upsert_vcard_params.rb +16 -0
  109. data/lib/pinnacle/tools/file/types/upload_file_options.rb +1 -0
  110. data/lib/pinnacle/tools/file/types/upload_file_params.rb +3 -0
  111. data/lib/pinnacle/tools/url/client.rb +1 -1
  112. data/lib/pinnacle/tools/url/types/create_url_params.rb +1 -0
  113. data/lib/pinnacle/tools/url/types/list_links_params.rb +2 -0
  114. data/lib/pinnacle/tools/url/types/update_url_params.rb +2 -0
  115. data/lib/pinnacle/types/address_field.rb +3 -0
  116. data/lib/pinnacle/types/advanced_phone_information.rb +5 -0
  117. data/lib/pinnacle/types/advanced_phone_information_carrier.rb +3 -0
  118. data/lib/pinnacle/types/advanced_phone_information_contact.rb +9 -0
  119. data/lib/pinnacle/types/advanced_phone_information_location.rb +7 -0
  120. data/lib/pinnacle/types/advanced_phone_information_location_coordinates.rb +1 -0
  121. data/lib/pinnacle/types/advanced_phone_information_location_country.rb +2 -0
  122. data/lib/pinnacle/types/advanced_phone_information_type.rb +3 -0
  123. data/lib/pinnacle/types/agent.rb +1 -0
  124. data/lib/pinnacle/types/agent_email_entry.rb +1 -0
  125. data/lib/pinnacle/types/agent_phone_entry.rb +1 -0
  126. data/lib/pinnacle/types/agent_summary.rb +6 -0
  127. data/lib/pinnacle/types/agent_summary_carrier_launches.rb +5 -0
  128. data/lib/pinnacle/types/agent_summary_config.rb +11 -0
  129. data/lib/pinnacle/types/agent_summary_config_emails_item.rb +1 -0
  130. data/lib/pinnacle/types/agent_summary_config_phones_item.rb +1 -0
  131. data/lib/pinnacle/types/agent_summary_config_websites_item.rb +1 -0
  132. data/lib/pinnacle/types/agent_website_entry.rb +1 -0
  133. data/lib/pinnacle/types/attach_webhook_response_webhook.rb +4 -0
  134. data/lib/pinnacle/types/attach_webhook_result.rb +3 -0
  135. data/lib/pinnacle/types/attached_phone_number_result.rb +1 -0
  136. data/lib/pinnacle/types/audience_count_only.rb +3 -0
  137. data/lib/pinnacle/types/audience_summary.rb +4 -0
  138. data/lib/pinnacle/types/audience_with_pagination.rb +5 -0
  139. data/lib/pinnacle/types/autofill_campaign_params.rb +1 -0
  140. data/lib/pinnacle/types/autofill_dlc_campaign_response.rb +10 -0
  141. data/lib/pinnacle/types/autofill_dlc_response_keywords.rb +2 -0
  142. data/lib/pinnacle/types/autofill_dlc_response_keywords_help.rb +1 -0
  143. data/lib/pinnacle/types/autofill_dlc_response_keywords_opt_in.rb +1 -0
  144. data/lib/pinnacle/types/autofill_dlc_response_keywords_opt_out.rb +1 -0
  145. data/lib/pinnacle/types/autofill_dlc_response_links.rb +1 -0
  146. data/lib/pinnacle/types/autofill_dlc_response_options.rb +5 -0
  147. data/lib/pinnacle/types/autofill_dlc_response_use_case.rb +1 -0
  148. data/lib/pinnacle/types/bad_request_error_body.rb +1 -0
  149. data/lib/pinnacle/types/base_rich_message.rb +3 -0
  150. data/lib/pinnacle/types/basic_phone_information.rb +5 -0
  151. data/lib/pinnacle/types/basic_phone_information_location.rb +1 -0
  152. data/lib/pinnacle/types/basic_phone_information_location_country.rb +2 -0
  153. data/lib/pinnacle/types/blast_details.rb +5 -0
  154. data/lib/pinnacle/types/blast_summary.rb +7 -0
  155. data/lib/pinnacle/types/brand_status.rb +2 -0
  156. data/lib/pinnacle/types/button_clicked.rb +1 -0
  157. data/lib/pinnacle/types/button_clicked_data.rb +1 -0
  158. data/lib/pinnacle/types/button_clicked_data_button.rb +4 -0
  159. data/lib/pinnacle/types/button_clicked_data_button_raw.rb +1 -0
  160. data/lib/pinnacle/types/buy_response_capabilities.rb +2 -0
  161. data/lib/pinnacle/types/campaign_query.rb +1 -0
  162. data/lib/pinnacle/types/campaign_status_event.rb +5 -0
  163. data/lib/pinnacle/types/campaign_status_event_agent.rb +1 -0
  164. data/lib/pinnacle/types/campaign_status_event_brand.rb +1 -0
  165. data/lib/pinnacle/types/campaign_status_event_campaign.rb +1 -0
  166. data/lib/pinnacle/types/campaign_status_event_carrier_launches.rb +1 -0
  167. data/lib/pinnacle/types/campaign_status_event_carrier_launches_carriers.rb +3 -0
  168. data/lib/pinnacle/types/campaign_status_event_carrier_launches_verification.rb +1 -0
  169. data/lib/pinnacle/types/campaign_validation_response_errors_item.rb +2 -0
  170. data/lib/pinnacle/types/campaign_validation_result.rb +1 -0
  171. data/lib/pinnacle/types/carrier_launches.rb +1 -0
  172. data/lib/pinnacle/types/carrier_launches_carriers.rb +3 -0
  173. data/lib/pinnacle/types/carrier_launches_verification.rb +1 -0
  174. data/lib/pinnacle/types/checkbox_field.rb +2 -0
  175. data/lib/pinnacle/types/contact.rb +5 -0
  176. data/lib/pinnacle/types/conversation.rb +7 -0
  177. data/lib/pinnacle/types/conversation_by_participants_params.rb +1 -0
  178. data/lib/pinnacle/types/conversation_contact.rb +1 -0
  179. data/lib/pinnacle/types/conversation_list.rb +2 -0
  180. data/lib/pinnacle/types/conversation_sender.rb +1 -0
  181. data/lib/pinnacle/types/date_field.rb +2 -0
  182. data/lib/pinnacle/types/datetime_field.rb +2 -0
  183. data/lib/pinnacle/types/detach_webhook_result.rb +2 -0
  184. data/lib/pinnacle/types/detached_phone_number_result.rb +1 -0
  185. data/lib/pinnacle/types/dlc_campaign_status.rb +3 -0
  186. data/lib/pinnacle/types/dlc_campaign_summary.rb +6 -0
  187. data/lib/pinnacle/types/dlc_campaign_with_extended_brand_and_status.rb +13 -0
  188. data/lib/pinnacle/types/dlc_with_extended_brand_and_status_keywords.rb +2 -0
  189. data/lib/pinnacle/types/dlc_with_extended_brand_and_status_keywords_help.rb +1 -0
  190. data/lib/pinnacle/types/dlc_with_extended_brand_and_status_keywords_opt_in.rb +1 -0
  191. data/lib/pinnacle/types/dlc_with_extended_brand_and_status_keywords_opt_out.rb +1 -0
  192. data/lib/pinnacle/types/dlc_with_extended_brand_and_status_links.rb +1 -0
  193. data/lib/pinnacle/types/dlc_with_extended_brand_and_status_options.rb +5 -0
  194. data/lib/pinnacle/types/dlc_with_extended_brand_and_status_use_case.rb +1 -0
  195. data/lib/pinnacle/types/enhanced_contact_item.rb +4 -0
  196. data/lib/pinnacle/types/extended_brand.rb +4 -0
  197. data/lib/pinnacle/types/extended_brand_with_vetting.rb +2 -0
  198. data/lib/pinnacle/types/extended_rcs_campaign.rb +14 -0
  199. data/lib/pinnacle/types/failed_sender.rb +1 -0
  200. data/lib/pinnacle/types/fallback_message.rb +2 -0
  201. data/lib/pinnacle/types/field_base.rb +3 -0
  202. data/lib/pinnacle/types/form.rb +12 -0
  203. data/lib/pinnacle/types/form_background.rb +3 -0
  204. data/lib/pinnacle/types/form_background_gradient.rb +1 -0
  205. data/lib/pinnacle/types/form_background_image.rb +3 -0
  206. data/lib/pinnacle/types/form_color_palette.rb +2 -0
  207. data/lib/pinnacle/types/form_definition.rb +5 -0
  208. data/lib/pinnacle/types/form_field.rb +15 -0
  209. data/lib/pinnacle/types/form_field_option.rb +1 -0
  210. data/lib/pinnacle/types/form_gradient.rb +2 -0
  211. data/lib/pinnacle/types/form_submission.rb +9 -0
  212. data/lib/pinnacle/types/form_submission_answer.rb +3 -0
  213. data/lib/pinnacle/types/form_submission_event.rb +4 -0
  214. data/lib/pinnacle/types/form_submission_event_conversation.rb +2 -0
  215. data/lib/pinnacle/types/form_submission_event_form.rb +2 -0
  216. data/lib/pinnacle/types/form_submission_event_submission.rb +7 -0
  217. data/lib/pinnacle/types/form_submitted_field.rb +3 -0
  218. data/lib/pinnacle/types/form_theme_override.rb +14 -0
  219. data/lib/pinnacle/types/form_theme_override_colors.rb +1 -0
  220. data/lib/pinnacle/types/get_conversation_params.rb +1 -0
  221. data/lib/pinnacle/types/get_dlc_campaign_status_response_updates.rb +2 -0
  222. data/lib/pinnacle/types/get_toll_free_campaign_status_response_updates.rb +2 -0
  223. data/lib/pinnacle/types/link_click_event.rb +48 -0
  224. data/lib/pinnacle/types/link_summary.rb +3 -0
  225. data/lib/pinnacle/types/list_agents_response.rb +2 -0
  226. data/lib/pinnacle/types/list_audiences_response.rb +2 -0
  227. data/lib/pinnacle/types/list_blasts_response.rb +2 -0
  228. data/lib/pinnacle/types/list_brands_response.rb +2 -0
  229. data/lib/pinnacle/types/list_contacts_response.rb +2 -0
  230. data/lib/pinnacle/types/list_dlc_campaigns_response.rb +2 -0
  231. data/lib/pinnacle/types/list_form_submissions_response.rb +2 -0
  232. data/lib/pinnacle/types/list_forms_response.rb +2 -0
  233. data/lib/pinnacle/types/list_links_response.rb +2 -0
  234. data/lib/pinnacle/types/list_messages_response.rb +2 -0
  235. data/lib/pinnacle/types/list_phone_numbers_response.rb +2 -0
  236. data/lib/pinnacle/types/list_rcs_campaigns_response.rb +2 -0
  237. data/lib/pinnacle/types/list_scheduled_messages_response.rb +2 -0
  238. data/lib/pinnacle/types/list_test_numbers_response.rb +2 -0
  239. data/lib/pinnacle/types/list_toll_free_campaigns_response.rb +2 -0
  240. data/lib/pinnacle/types/list_webhooks_response.rb +2 -0
  241. data/lib/pinnacle/types/location_share_action_data.rb +3 -0
  242. data/lib/pinnacle/types/message.rb +11 -0
  243. data/lib/pinnacle/types/message_content.rb +3 -0
  244. data/lib/pinnacle/types/message_event.rb +9 -0
  245. data/lib/pinnacle/types/message_event_content.rb +6 -0
  246. data/lib/pinnacle/types/message_event_conversation.rb +2 -0
  247. data/lib/pinnacle/types/message_event_fallback_message.rb +5 -0
  248. data/lib/pinnacle/types/message_event_mms_content.rb +2 -0
  249. data/lib/pinnacle/types/message_event_rcs_button_data.rb +2 -0
  250. data/lib/pinnacle/types/message_event_rcs_button_data_button.rb +4 -0
  251. data/lib/pinnacle/types/message_event_rcs_button_data_button_raw.rb +1 -0
  252. data/lib/pinnacle/types/message_event_rcs_cards_content.rb +2 -0
  253. data/lib/pinnacle/types/message_event_rcs_cards_content_cards_item.rb +3 -0
  254. data/lib/pinnacle/types/message_event_rcs_location_data.rb +2 -0
  255. data/lib/pinnacle/types/message_event_rcs_location_data_data.rb +3 -0
  256. data/lib/pinnacle/types/message_event_rcs_media_content.rb +2 -0
  257. data/lib/pinnacle/types/message_event_rcs_text_content.rb +2 -0
  258. data/lib/pinnacle/types/message_event_sms_content.rb +1 -0
  259. data/lib/pinnacle/types/message_list.rb +2 -0
  260. data/lib/pinnacle/types/message_schedule.rb +3 -0
  261. data/lib/pinnacle/types/message_summary.rb +16 -0
  262. data/lib/pinnacle/types/message_with_reactions.rb +1 -0
  263. data/lib/pinnacle/types/mms_content.rb +1 -0
  264. data/lib/pinnacle/types/mms_validation_response_segments.rb +2 -0
  265. data/lib/pinnacle/types/mms_validation_response_segments_value_item.rb +2 -0
  266. data/lib/pinnacle/types/mms_validation_result.rb +2 -0
  267. data/lib/pinnacle/types/number_field.rb +3 -0
  268. data/lib/pinnacle/types/number_format.rb +2 -0
  269. data/lib/pinnacle/types/optional_brand_info.rb +10 -0
  270. data/lib/pinnacle/types/optional_contact.rb +3 -0
  271. data/lib/pinnacle/types/optional_contacts.rb +3 -0
  272. data/lib/pinnacle/types/owned_phone_number.rb +5 -0
  273. data/lib/pinnacle/types/pagination.rb +3 -0
  274. data/lib/pinnacle/types/phone.rb +4 -0
  275. data/lib/pinnacle/types/phone_capabilities.rb +2 -0
  276. data/lib/pinnacle/types/phone_number_campaign_attach_failed_item.rb +1 -0
  277. data/lib/pinnacle/types/phone_number_campaign_attach_phone_numbers_item.rb +1 -0
  278. data/lib/pinnacle/types/phone_number_campaign_attach_phone_numbers_item_campaign.rb +2 -0
  279. data/lib/pinnacle/types/phone_number_campaign_detach_failed_item.rb +1 -0
  280. data/lib/pinnacle/types/phone_number_campaign_detach_phone_numbers_item.rb +1 -0
  281. data/lib/pinnacle/types/phone_number_campaign_detach_phone_numbers_item_campaign.rb +2 -0
  282. data/lib/pinnacle/types/phone_number_cost.rb +2 -0
  283. data/lib/pinnacle/types/phone_number_details.rb +4 -0
  284. data/lib/pinnacle/types/phone_number_region.rb +3 -0
  285. data/lib/pinnacle/types/phone_number_status.rb +2 -0
  286. data/lib/pinnacle/types/pinnacle_file_upload_metadata.rb +3 -0
  287. data/lib/pinnacle/types/pinnacle_url_config.rb +1 -0
  288. data/lib/pinnacle/types/purchased_number.rb +1 -0
  289. data/lib/pinnacle/types/range_field.rb +2 -0
  290. data/lib/pinnacle/types/rating_field.rb +1 -0
  291. data/lib/pinnacle/types/rcs_agent_details.rb +11 -0
  292. data/lib/pinnacle/types/rcs_agent_details_emails_item.rb +1 -0
  293. data/lib/pinnacle/types/rcs_agent_details_phones_item.rb +1 -0
  294. data/lib/pinnacle/types/rcs_agent_details_websites_item.rb +1 -0
  295. data/lib/pinnacle/types/rcs_agent_response.rb +4 -0
  296. data/lib/pinnacle/types/rcs_button_call.rb +2 -0
  297. data/lib/pinnacle/types/rcs_button_open_url.rb +3 -0
  298. data/lib/pinnacle/types/rcs_button_request_user_location.rb +1 -0
  299. data/lib/pinnacle/types/rcs_button_schedule_event.rb +5 -0
  300. data/lib/pinnacle/types/rcs_button_send_location.rb +3 -0
  301. data/lib/pinnacle/types/rcs_button_send_location_lat_long.rb +1 -0
  302. data/lib/pinnacle/types/rcs_button_trigger.rb +2 -0
  303. data/lib/pinnacle/types/rcs_campaign.rb +11 -0
  304. data/lib/pinnacle/types/rcs_campaign_schema_agent.rb +7 -0
  305. data/lib/pinnacle/types/rcs_campaign_schema_agent_emails_item.rb +1 -0
  306. data/lib/pinnacle/types/rcs_campaign_schema_agent_phones_item.rb +1 -0
  307. data/lib/pinnacle/types/rcs_campaign_schema_agent_websites_item.rb +1 -0
  308. data/lib/pinnacle/types/rcs_campaign_schema_extra_agent.rb +7 -0
  309. data/lib/pinnacle/types/rcs_campaign_schema_extra_agent_emails_item.rb +1 -0
  310. data/lib/pinnacle/types/rcs_campaign_schema_extra_agent_phones_item.rb +1 -0
  311. data/lib/pinnacle/types/rcs_campaign_schema_extra_agent_websites_item.rb +1 -0
  312. data/lib/pinnacle/types/rcs_campaign_schema_extra_keywords.rb +2 -0
  313. data/lib/pinnacle/types/rcs_campaign_schema_extra_keywords_help.rb +1 -0
  314. data/lib/pinnacle/types/rcs_campaign_schema_extra_keywords_opt_in.rb +1 -0
  315. data/lib/pinnacle/types/rcs_campaign_schema_extra_keywords_opt_out.rb +1 -0
  316. data/lib/pinnacle/types/rcs_campaign_schema_extra_links.rb +1 -0
  317. data/lib/pinnacle/types/rcs_campaign_schema_extra_traffic.rb +1 -0
  318. data/lib/pinnacle/types/rcs_campaign_schema_keywords.rb +2 -0
  319. data/lib/pinnacle/types/rcs_campaign_schema_keywords_help.rb +1 -0
  320. data/lib/pinnacle/types/rcs_campaign_schema_keywords_opt_in.rb +1 -0
  321. data/lib/pinnacle/types/rcs_campaign_schema_keywords_opt_out.rb +1 -0
  322. data/lib/pinnacle/types/rcs_campaign_schema_links.rb +1 -0
  323. data/lib/pinnacle/types/rcs_campaign_schema_traffic.rb +1 -0
  324. data/lib/pinnacle/types/rcs_campaign_status.rb +2 -0
  325. data/lib/pinnacle/types/rcs_campaign_summary.rb +6 -0
  326. data/lib/pinnacle/types/rcs_capability.rb +1 -0
  327. data/lib/pinnacle/types/rcs_capability_actions.rb +5 -0
  328. data/lib/pinnacle/types/rcs_capability_cards.rb +1 -0
  329. data/lib/pinnacle/types/rcs_cards_content.rb +1 -0
  330. data/lib/pinnacle/types/rcs_cards_content_cards_item.rb +3 -0
  331. data/lib/pinnacle/types/rcs_content.rb +2 -0
  332. data/lib/pinnacle/types/rcs_link_result.rb +1 -0
  333. data/lib/pinnacle/types/rcs_media_content.rb +1 -0
  334. data/lib/pinnacle/types/rcs_media_details_content.rb +2 -0
  335. data/lib/pinnacle/types/rcs_validate_content.rb +2 -0
  336. data/lib/pinnacle/types/rcs_validate_content_media.rb +1 -0
  337. data/lib/pinnacle/types/rcs_validation_result.rb +3 -0
  338. data/lib/pinnacle/types/reaction_result.rb +1 -0
  339. data/lib/pinnacle/types/refreshed_file.rb +1 -0
  340. data/lib/pinnacle/types/rich_button.rb +5 -0
  341. data/lib/pinnacle/types/rich_card.rb +3 -0
  342. data/lib/pinnacle/types/rich_cards.rb +1 -0
  343. data/lib/pinnacle/types/rich_cards_message.rb +3 -0
  344. data/lib/pinnacle/types/rich_media_message.rb +1 -0
  345. data/lib/pinnacle/types/rich_message.rb +2 -0
  346. data/lib/pinnacle/types/rich_standalone_card_options.rb +1 -0
  347. data/lib/pinnacle/types/rich_text.rb +1 -0
  348. data/lib/pinnacle/types/scheduled_blast_details.rb +1 -0
  349. data/lib/pinnacle/types/scheduled_blast_response_config.rb +3 -0
  350. data/lib/pinnacle/types/scheduled_form_send_response_form.rb +1 -0
  351. data/lib/pinnacle/types/scheduled_form_send_response_submission.rb +1 -0
  352. data/lib/pinnacle/types/scheduled_form_send_result.rb +3 -0
  353. data/lib/pinnacle/types/scheduled_message.rb +1 -0
  354. data/lib/pinnacle/types/scheduled_message_summary.rb +8 -0
  355. data/lib/pinnacle/types/scheduled_send_response_config.rb +3 -0
  356. data/lib/pinnacle/types/select_field.rb +1 -0
  357. data/lib/pinnacle/types/send_form_options.rb +1 -0
  358. data/lib/pinnacle/types/send_form_params.rb +1 -0
  359. data/lib/pinnacle/types/send_form_result.rb +2 -0
  360. data/lib/pinnacle/types/send_form_via_rcs_params.rb +4 -0
  361. data/lib/pinnacle/types/send_form_via_rcs_request_form.rb +1 -0
  362. data/lib/pinnacle/types/send_form_via_sms_params.rb +3 -0
  363. data/lib/pinnacle/types/send_form_via_sms_request_form.rb +1 -0
  364. data/lib/pinnacle/types/send_rich_cards_options.rb +4 -0
  365. data/lib/pinnacle/types/send_rich_message_options.rb +3 -0
  366. data/lib/pinnacle/types/send_rich_message_options_4.rb +3 -0
  367. data/lib/pinnacle/types/send_sms_response_segments.rb +1 -0
  368. data/lib/pinnacle/types/send_typing_indicator_response.rb +4 -0
  369. data/lib/pinnacle/types/sent_mms_details.rb +5 -0
  370. data/lib/pinnacle/types/sent_rich_message.rb +5 -0
  371. data/lib/pinnacle/types/sent_rich_message_fallback_mms.rb +1 -0
  372. data/lib/pinnacle/types/sent_rich_message_fallback_sms.rb +1 -0
  373. data/lib/pinnacle/types/sent_sms_details.rb +5 -0
  374. data/lib/pinnacle/types/shortened_url.rb +1 -0
  375. data/lib/pinnacle/types/simulate_message_input.rb +1 -0
  376. data/lib/pinnacle/types/simulate_user_button.rb +2 -0
  377. data/lib/pinnacle/types/simulate_user_message.rb +2 -0
  378. data/lib/pinnacle/types/simulate_user_params.rb +1 -0
  379. data/lib/pinnacle/types/sms_validation_response_segments.rb +1 -0
  380. data/lib/pinnacle/types/sms_validation_response_segments_gsm_7.rb +2 -0
  381. data/lib/pinnacle/types/sms_validation_response_segments_utf_16.rb +1 -0
  382. data/lib/pinnacle/types/sms_validation_response_total.rb +1 -0
  383. data/lib/pinnacle/types/sms_validation_result.rb +3 -0
  384. data/lib/pinnacle/types/test_agent_response.rb +3 -0
  385. data/lib/pinnacle/types/text_field.rb +3 -0
  386. data/lib/pinnacle/types/textarea_field.rb +3 -0
  387. data/lib/pinnacle/types/time_field.rb +2 -0
  388. data/lib/pinnacle/types/toll_free_campaign.rb +8 -0
  389. data/lib/pinnacle/types/toll_free_campaign_schema_keywords.rb +1 -0
  390. data/lib/pinnacle/types/toll_free_campaign_schema_keywords_opt_in.rb +1 -0
  391. data/lib/pinnacle/types/toll_free_campaign_schema_links.rb +1 -0
  392. data/lib/pinnacle/types/toll_free_campaign_schema_opt_in.rb +2 -0
  393. data/lib/pinnacle/types/toll_free_campaign_schema_use_case.rb +1 -0
  394. data/lib/pinnacle/types/toll_free_campaign_status.rb +2 -0
  395. data/lib/pinnacle/types/toll_free_campaign_summary.rb +6 -0
  396. data/lib/pinnacle/types/toll_free_campaign_with_extended_brand_and_status.rb +10 -0
  397. data/lib/pinnacle/types/toll_free_with_extended_brand_and_status_keywords.rb +1 -0
  398. data/lib/pinnacle/types/toll_free_with_extended_brand_and_status_keywords_opt_in.rb +1 -0
  399. data/lib/pinnacle/types/toll_free_with_extended_brand_and_status_links.rb +1 -0
  400. data/lib/pinnacle/types/toll_free_with_extended_brand_and_status_opt_in.rb +2 -0
  401. data/lib/pinnacle/types/toll_free_with_extended_brand_and_status_use_case.rb +1 -0
  402. data/lib/pinnacle/types/upload_results.rb +2 -0
  403. data/lib/pinnacle/types/user_button_press.rb +5 -0
  404. data/lib/pinnacle/types/user_button_press_call.rb +2 -0
  405. data/lib/pinnacle/types/user_button_press_open_url.rb +2 -0
  406. data/lib/pinnacle/types/user_button_press_request_user_location.rb +2 -0
  407. data/lib/pinnacle/types/user_button_press_request_user_location_location.rb +3 -0
  408. data/lib/pinnacle/types/user_button_press_schedule_event.rb +5 -0
  409. data/lib/pinnacle/types/user_button_press_send_location.rb +3 -0
  410. data/lib/pinnacle/types/user_button_press_send_location_lat_long.rb +1 -0
  411. data/lib/pinnacle/types/user_button_press_trigger.rb +2 -0
  412. data/lib/pinnacle/types/user_event.rb +2 -0
  413. data/lib/pinnacle/types/user_event_conversation.rb +2 -0
  414. data/lib/pinnacle/types/v_card_data_file.rb +1 -0
  415. data/lib/pinnacle/types/v_card_geo.rb +1 -0
  416. data/lib/pinnacle/types/v_card_name.rb +4 -0
  417. data/lib/pinnacle/types/v_card_organization.rb +1 -0
  418. data/lib/pinnacle/types/validate_campaign_params.rb +1 -0
  419. data/lib/pinnacle/types/validation_error_details.rb +2 -0
  420. data/lib/pinnacle/types/validation_results.rb +1 -0
  421. data/lib/pinnacle/types/vcard.rb +15 -0
  422. data/lib/pinnacle/types/vcard_address.rb +8 -0
  423. data/lib/pinnacle/types/vcard_email.rb +1 -0
  424. data/lib/pinnacle/types/vcard_phone.rb +1 -0
  425. data/lib/pinnacle/types/vcard_resource.rb +1 -0
  426. data/lib/pinnacle/types/vetting_feedback.rb +3 -0
  427. data/lib/pinnacle/types/vetting_history.rb +4 -0
  428. data/lib/pinnacle/types/webhook_summary.rb +6 -0
  429. data/lib/pinnacle/types/webhooks.rb +3 -0
  430. data/lib/pinnacle/types/whitelisted_number_summary.rb +3 -0
  431. data/lib/pinnacle/types/zod_error.rb +1 -0
  432. data/lib/pinnacle/version.rb +1 -1
  433. data/lib/pinnacle/webhooks/types/attach_webhook_params.rb +5 -0
  434. data/lib/pinnacle/webhooks/types/detach_webhook_params.rb +1 -0
  435. data/lib/pinnacle/webhooks/types/list_webhooks_params.rb +3 -0
  436. data/lib/pinnacle.rb +5 -0
  437. data/lib/rcs.rb +1 -637
  438. data/reference.md +2 -2
  439. metadata +3 -2
@@ -6,17 +6,29 @@ module Pinnacle
6
6
  module Types
7
7
  class UpsertRcsCampaignParams < Internal::Types::Model
8
8
  field :agent, -> { Pinnacle::Campaigns::Rcs::Types::RcsAgent }, optional: true, nullable: false
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 :expected_agent_responses, -> { Internal::Types::Array[String] }, optional: true, nullable: false, api_name: "expectedAgentResponses"
15
+
12
16
  field :links, -> { Pinnacle::Campaigns::Rcs::Types::RcsLinks }, optional: true, nullable: false
17
+
13
18
  field :use_case_description, -> { String }, optional: true, nullable: false, api_name: "useCaseDescription"
19
+
14
20
  field :messaging_type, -> { Pinnacle::Types::RcsMessagingTypeEnum }, optional: true, nullable: false, api_name: "messagingType"
21
+
15
22
  field :cta_media, -> { String }, optional: true, nullable: false, api_name: "ctaMedia"
23
+
16
24
  field :opt_in_method, -> { String }, optional: true, nullable: false, api_name: "optInMethod"
25
+
17
26
  field :keywords, -> { Pinnacle::Campaigns::Rcs::Types::RcsCampaignKeywords }, optional: true, nullable: false
27
+
18
28
  field :traffic, -> { Pinnacle::Campaigns::Rcs::Types::RcsCampaignTraffic }, optional: true, nullable: false
29
+
19
30
  field :cta_language, -> { String }, optional: true, nullable: false, api_name: "ctaLanguage"
31
+
20
32
  field :demo_trigger, -> { String }, optional: true, nullable: false, api_name: "demoTrigger"
21
33
  end
22
34
  end
@@ -6,9 +6,13 @@ module Pinnacle
6
6
  module Types
7
7
  class ListTollFreeCampaignsParams < 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::TollFree::Types::ListTollFreeCampaignsRequestStatus }, 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,6 +7,7 @@ module Pinnacle
7
7
  # Keyword response configuration.
8
8
  class TollFreeCampaignKeywords < Internal::Types::Model
9
9
  field :help, -> { Pinnacle::Campaigns::TollFree::Types::TollFreeCampaignHelpKeywords }, optional: true, nullable: false, api_name: "HELP"
10
+
10
11
  field :opt_in, -> { Pinnacle::Campaigns::TollFree::Types::TollFreeCampaignOptInKeywords }, optional: true, nullable: false, api_name: "OPT_IN"
11
12
  end
12
13
  end
@@ -7,6 +7,7 @@ module Pinnacle
7
7
  # Legal documentation links.
8
8
  class TollFreeCampaignLinks < 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,7 +7,9 @@ module Pinnacle
7
7
  # Opt-in method and workflow.
8
8
  class TollFreeCampaignOptIn < Internal::Types::Model
9
9
  field :method_, -> { Pinnacle::Types::OptInMethodEnum }, optional: true, nullable: false, api_name: "method"
10
+
10
11
  field :url, -> { String }, optional: true, nullable: false
12
+
11
13
  field :workflow_description, -> { String }, optional: true, nullable: false, api_name: "workflowDescription"
12
14
  end
13
15
  end
@@ -7,6 +7,7 @@ module Pinnacle
7
7
  # Opt-in keyword settings.
8
8
  class TollFreeCampaignOptInKeywords < Internal::Types::Model
9
9
  field :message, -> { String }, optional: true, nullable: false
10
+
10
11
  field :keywords, -> { Internal::Types::Array[String] }, optional: true, nullable: false
11
12
  end
12
13
  end
@@ -7,6 +7,7 @@ module Pinnacle
7
7
  # Use case classification for the campaign.
8
8
  class TollFreeCampaignUseCase < Internal::Types::Model
9
9
  field :summary, -> { String }, optional: true, nullable: false
10
+
10
11
  field :value, -> { Pinnacle::Types::TollFreeCampaignUseCaseEnum }, optional: true, nullable: false
11
12
  end
12
13
  end
@@ -6,14 +6,23 @@ module Pinnacle
6
6
  module Types
7
7
  class UpsertTollFreeCampaignParams < Internal::Types::Model
8
8
  field :brand, -> { String }, optional: true, nullable: false
9
+
9
10
  field :campaign_id, -> { String }, optional: true, nullable: false, api_name: "campaignId"
11
+
10
12
  field :keywords, -> { Pinnacle::Campaigns::TollFree::Types::TollFreeCampaignKeywords }, optional: true, nullable: false
13
+
11
14
  field :links, -> { Pinnacle::Campaigns::TollFree::Types::TollFreeCampaignLinks }, optional: true, nullable: false
15
+
12
16
  field :monthly_volume, -> { Pinnacle::Types::MessageVolumeEnum }, optional: true, nullable: false, api_name: "monthlyVolume"
17
+
13
18
  field :name, -> { String }, optional: true, nullable: false
19
+
14
20
  field :opt_in, -> { Pinnacle::Campaigns::TollFree::Types::TollFreeCampaignOptIn }, optional: true, nullable: false, api_name: "optIn"
21
+
15
22
  field :options, -> { Pinnacle::Campaigns::TollFree::Types::TollFreeCampaignOptions }, optional: true, nullable: false
23
+
16
24
  field :production_message_content, -> { String }, optional: true, nullable: false, api_name: "productionMessageContent"
25
+
17
26
  field :use_case, -> { Pinnacle::Campaigns::TollFree::Types::TollFreeCampaignUseCase }, optional: true, nullable: false, api_name: "useCase"
18
27
  end
19
28
  end
@@ -2,15 +2,15 @@
2
2
 
3
3
  module Pinnacle
4
4
  class PinnacleBaseClient
5
- # @param base_url [String, nil]
6
5
  # @param api_key [String]
6
+ # @param base_url [String, nil]
7
7
  #
8
8
  # @return [void]
9
9
  def initialize(api_key:, base_url: nil)
10
10
  @raw_client = Pinnacle::Internal::Http::RawClient.new(
11
11
  base_url: base_url || Pinnacle::Environment::DEFAULT,
12
12
  headers: {
13
- "User-Agent" => "rcs/2.0.18",
13
+ "User-Agent" => "rcs/2.0.19",
14
14
  "X-Fern-Language" => "Ruby",
15
15
  "PINNACLE-API-KEY" => api_key.to_s
16
16
  }
@@ -25,11 +25,9 @@ module Pinnacle
25
25
  # @return [Pinnacle::Types::Contact]
26
26
  def get(request_options: {}, **params)
27
27
  params = Pinnacle::Internal::Types::Utils.normalize_keys(params)
28
- query_param_names = %i[id phone_number]
29
28
  query_params = {}
30
29
  query_params["id"] = params[:id] if params.key?(:id)
31
30
  query_params["phoneNumber"] = params[:phone_number] if params.key?(:phone_number)
32
- params.except(*query_param_names)
33
31
 
34
32
  request = Pinnacle::Internal::JSON::Request.new(
35
33
  base_url: request_options[:base_url],
@@ -5,6 +5,7 @@ module Pinnacle
5
5
  module Types
6
6
  class ContactsGetRequest < Internal::Types::Model
7
7
  field :id, -> { String }, optional: true, nullable: false
8
+
8
9
  field :phone_number, -> { String }, optional: true, nullable: false, api_name: "phoneNumber"
9
10
  end
10
11
  end
@@ -5,9 +5,13 @@ module Pinnacle
5
5
  module Types
6
6
  class CreateContactParams < Internal::Types::Model
7
7
  field :phone_number, -> { String }, optional: false, nullable: false, api_name: "phoneNumber"
8
+
8
9
  field :description, -> { String }, optional: true, nullable: false
10
+
9
11
  field :email, -> { String }, optional: true, nullable: false
12
+
10
13
  field :name, -> { String }, optional: true, nullable: false
14
+
11
15
  field :tags, -> { Internal::Types::Array[String] }, optional: true, nullable: false
12
16
  end
13
17
  end
@@ -5,10 +5,15 @@ module Pinnacle
5
5
  module Types
6
6
  class ListContactsParams < Internal::Types::Model
7
7
  field :page_index, -> { Integer }, optional: true, nullable: false, api_name: "pageIndex"
8
+
8
9
  field :page_size, -> { Integer }, optional: true, nullable: false, api_name: "pageSize"
10
+
9
11
  field :phone_number, -> { String }, optional: true, nullable: false, api_name: "phoneNumber"
12
+
10
13
  field :name, -> { String }, optional: true, nullable: false
14
+
11
15
  field :tags, -> { Internal::Types::Array[String] }, optional: true, nullable: false
16
+
12
17
  field :is_archived, -> { Internal::Types::Boolean }, optional: true, nullable: false, api_name: "isArchived"
13
18
  end
14
19
  end
@@ -5,9 +5,13 @@ module Pinnacle
5
5
  module Types
6
6
  class UpdateContactParams < Internal::Types::Model
7
7
  field :id, -> { String }, optional: false, nullable: false
8
+
8
9
  field :description, -> { String }, optional: true, nullable: false
10
+
9
11
  field :email, -> { String }, optional: true, nullable: false
12
+
10
13
  field :name, -> { String }, optional: true, nullable: false
14
+
11
15
  field :tags, -> { Internal::Types::Array[String] }, optional: true, nullable: false
12
16
  end
13
17
  end
@@ -132,7 +132,6 @@ module Pinnacle
132
132
  # @return [Pinnacle::Types::MessageList]
133
133
  def list_messages(request_options: {}, **params)
134
134
  params = Pinnacle::Internal::Types::Utils.normalize_keys(params)
135
- query_param_names = %i[page_index page_size sort_order direction status type date_from date_to]
136
135
  query_params = {}
137
136
  query_params["pageIndex"] = params[:page_index] if params.key?(:page_index)
138
137
  query_params["pageSize"] = params[:page_size] if params.key?(:page_size)
@@ -142,7 +141,6 @@ module Pinnacle
142
141
  query_params["type"] = params[:type] if params.key?(:type)
143
142
  query_params["dateFrom"] = params[:date_from] if params.key?(:date_from)
144
143
  query_params["dateTo"] = params[:date_to] if params.key?(:date_to)
145
- params = params.except(*query_param_names)
146
144
 
147
145
  request = Pinnacle::Internal::JSON::Request.new(
148
146
  base_url: request_options[:base_url],
@@ -5,13 +5,21 @@ module Pinnacle
5
5
  module Types
6
6
  class ConversationsListMessagesRequest < Internal::Types::Model
7
7
  field :id, -> { String }, optional: false, nullable: false
8
+
8
9
  field :page_index, -> { Integer }, optional: true, nullable: false, api_name: "pageIndex"
10
+
9
11
  field :page_size, -> { Integer }, optional: true, nullable: false, api_name: "pageSize"
12
+
10
13
  field :sort_order, -> { Pinnacle::Conversations::Types::ConversationsListMessagesRequestSortOrder }, optional: true, nullable: false, api_name: "sortOrder"
14
+
11
15
  field :direction, -> { Pinnacle::Conversations::Types::ConversationsListMessagesRequestDirection }, optional: true, nullable: false
16
+
12
17
  field :status, -> { Pinnacle::Conversations::Types::ConversationsListMessagesRequestStatus }, optional: true, nullable: false
18
+
13
19
  field :type, -> { Pinnacle::Conversations::Types::ConversationsListMessagesRequestType }, optional: true, nullable: false
20
+
14
21
  field :date_from, -> { String }, optional: true, nullable: false, api_name: "dateFrom"
22
+
15
23
  field :date_to, -> { String }, optional: true, nullable: false, api_name: "dateTo"
16
24
  end
17
25
  end
@@ -5,11 +5,17 @@ module Pinnacle
5
5
  module Types
6
6
  class ListConversationsParams < Internal::Types::Model
7
7
  field :brand_id, -> { String }, optional: true, nullable: false, api_name: "brandId"
8
+
8
9
  field :campaign_id, -> { String }, optional: true, nullable: false, api_name: "campaignId"
10
+
9
11
  field :campaign_type, -> { Pinnacle::Types::CampaignEnum }, optional: true, nullable: false, api_name: "campaignType"
12
+
10
13
  field :page_index, -> { Integer }, optional: false, nullable: false, api_name: "pageIndex"
14
+
11
15
  field :page_size, -> { Integer }, optional: true, nullable: false, api_name: "pageSize"
16
+
12
17
  field :receiver, -> { String }, optional: true, nullable: false
18
+
13
19
  field :sender, -> { String }, optional: true, nullable: false
14
20
  end
15
21
  end
@@ -5,6 +5,7 @@ module Pinnacle
5
5
  module Types
6
6
  class UpdateConversationParams < Internal::Types::Model
7
7
  field :id, -> { String }, optional: false, nullable: false
8
+
8
9
  field :notes, -> { String }, optional: false, nullable: false
9
10
  end
10
11
  end
@@ -60,7 +60,7 @@ module Pinnacle
60
60
  def update(request_options: {}, **params)
61
61
  params = Pinnacle::Internal::Types::Utils.normalize_keys(params)
62
62
  request_data = Pinnacle::Forms::Types::UpdateFormParams.new(params).to_h
63
- non_body_param_names = ["id"]
63
+ non_body_param_names = %w[id]
64
64
  body = request_data.except(*non_body_param_names)
65
65
 
66
66
  request = Pinnacle::Internal::JSON::Request.new(
@@ -27,7 +27,7 @@ module Pinnacle
27
27
  def list(request_options: {}, **params)
28
28
  params = Pinnacle::Internal::Types::Utils.normalize_keys(params)
29
29
  request_data = Pinnacle::Forms::Submissions::Types::ListFormSubmissionsParams.new(params).to_h
30
- non_body_param_names = ["id"]
30
+ non_body_param_names = %w[id]
31
31
  body = request_data.except(*non_body_param_names)
32
32
 
33
33
  request = Pinnacle::Internal::JSON::Request.new(
@@ -6,7 +6,9 @@ module Pinnacle
6
6
  module Types
7
7
  class ListFormSubmissionsParams < Internal::Types::Model
8
8
  field :id, -> { String }, optional: false, nullable: false
9
+
9
10
  field :page_index, -> { Integer }, optional: true, nullable: false, api_name: "pageIndex"
11
+
10
12
  field :page_size, -> { Integer }, optional: true, nullable: false, api_name: "pageSize"
11
13
  end
12
14
  end
@@ -7,6 +7,7 @@ module Pinnacle
7
7
  extend Pinnacle::Internal::Types::Union
8
8
 
9
9
  member -> { Pinnacle::Types::SendFormResult }
10
+
10
11
  member -> { Pinnacle::Types::ScheduledFormSendResult }
11
12
  end
12
13
  end
@@ -5,6 +5,7 @@ module Pinnacle
5
5
  module Types
6
6
  class ListFormsParams < Internal::Types::Model
7
7
  field :page_index, -> { Integer }, optional: true, nullable: false, api_name: "pageIndex"
8
+
8
9
  field :page_size, -> { Integer }, optional: true, nullable: false, api_name: "pageSize"
9
10
  end
10
11
  end
@@ -5,12 +5,19 @@ module Pinnacle
5
5
  module Types
6
6
  class UpdateFormParams < Internal::Types::Model
7
7
  field :id, -> { String }, optional: false, nullable: false
8
+
8
9
  field :name, -> { String }, optional: true, nullable: false
10
+
9
11
  field :description, -> { String }, optional: true, nullable: false
12
+
10
13
  field :fields, -> { Internal::Types::Array[Pinnacle::Types::FormField] }, optional: true, nullable: false
14
+
11
15
  field :can_update, -> { Internal::Types::Boolean }, optional: true, nullable: false
16
+
12
17
  field :expires_at, -> { String }, optional: true, nullable: false
18
+
13
19
  field :theme_override, -> { Pinnacle::Types::FormThemeOverride }, optional: true, nullable: false
20
+
14
21
  field :archived_at, -> { String }, optional: true, nullable: false
15
22
  end
16
23
  end
@@ -152,8 +152,9 @@ module Pinnacle
152
152
  return if url.scheme != "http"
153
153
  return if LOCALHOST_HOSTS.include?(url.host)
154
154
 
155
- raise ArgumentError, "Refusing to send request to non-HTTPS URL: #{url}. " \
156
- "HTTP is only allowed for localhost. Use HTTPS or pass a localhost URL."
155
+ raise ArgumentError,
156
+ "Refusing to send request to non-HTTPS URL: #{url}. " \
157
+ "HTTP is only allowed for localhost. Use HTTPS or pass a localhost URL."
157
158
  end
158
159
 
159
160
  # @param url [URI::Generic] The url to the resource.
@@ -5,17 +5,23 @@ module Pinnacle
5
5
  class CursorPageIterator
6
6
  include Enumerable
7
7
 
8
+ # The raw HTTP response from the most recent page response.
9
+ # @return [Net::HTTPResponse, nil]
10
+ attr_reader :http_response
11
+
8
12
  # Instantiates a CursorPageIterator, an Enumerable class which wraps calls to a cursor-based paginated API and yields pages of items.
9
13
  #
10
14
  # @param initial_cursor [String] The initial cursor to use when iterating, if any.
11
15
  # @param cursor_field [Symbol] The name of the field in API responses to extract the next cursor from.
12
16
  # @param block [Proc] A block which is responsible for receiving a cursor to use and returning the given page from the API.
17
+ # The block should return a two-element array: [parsed_page, raw_http_response].
13
18
  # @return [Pinnacle::Internal::CursorPageIterator]
14
19
  def initialize(initial_cursor:, cursor_field:, &block)
15
20
  @need_initial_load = initial_cursor.nil?
16
21
  @cursor = initial_cursor
17
22
  @cursor_field = cursor_field
18
23
  @get_next_page = block
24
+ @http_response = nil
19
25
  end
20
26
 
21
27
  # Iterates over each page returned by the API.
@@ -37,12 +43,18 @@ module Pinnacle
37
43
 
38
44
  # Retrieves the next page from the API.
39
45
  #
40
- # @return [Boolean]
46
+ # @return [Object, nil]
41
47
  def next_page
42
48
  return if !@need_initial_load && @cursor.nil?
43
49
 
44
50
  @need_initial_load = false
45
- fetched_page = @get_next_page.call(@cursor)
51
+ result = @get_next_page.call(@cursor)
52
+ if result.is_a?(Array)
53
+ fetched_page, raw_response = result
54
+ @http_response = raw_response
55
+ else
56
+ fetched_page = result
57
+ end
46
58
  @cursor = fetched_page.send(@cursor_field)
47
59
  fetched_page
48
60
  end
@@ -5,6 +5,12 @@ module Pinnacle
5
5
  class ItemIterator
6
6
  include Enumerable
7
7
 
8
+ # The raw HTTP response from the most recent page response.
9
+ # @return [Net::HTTPResponse, nil]
10
+ def http_response
11
+ @page_iterator&.http_response
12
+ end
13
+
8
14
  # Iterates over each item returned by the API.
9
15
  #
10
16
  # @param block [Proc] The block which each retrieved item is yielded to.
@@ -5,6 +5,10 @@ module Pinnacle
5
5
  class OffsetPageIterator
6
6
  include Enumerable
7
7
 
8
+ # The raw HTTP response from the most recent page response.
9
+ # @return [Net::HTTPResponse, nil]
10
+ attr_reader :http_response
11
+
8
12
  # Instantiates an OffsetPageIterator, an Enumerable class which wraps calls to an offset-based paginated API and yields pages of items from it.
9
13
  #
10
14
  # @param initial_page [Integer] The initial page to use when iterating, if any.
@@ -12,6 +16,7 @@ module Pinnacle
12
16
  # @param has_next_field [Symbol] The field to pull the boolean of whether a next page exists from, if any.
13
17
  # @param step [Boolean] If true, treats the page number as a true offset (i.e. increments the page number by the number of items returned from each call rather than just 1)
14
18
  # @param block [Proc] A block which is responsible for receiving a page number to use and returning the given page from the API.
19
+ # The block should return a two-element array: [parsed_page, raw_http_response].
15
20
  # @return [Pinnacle::Internal::OffsetPageIterator]
16
21
  def initialize(initial_page:, item_field:, has_next_field:, step:, &block)
17
22
  @page_number = initial_page || (step ? 0 : 1)
@@ -24,6 +29,8 @@ module Pinnacle
24
29
  @next_page = nil
25
30
  # ...or the actual next page, preloaded, if it doesn't.
26
31
  @has_next_page = nil
32
+
33
+ @http_response = nil
27
34
  end
28
35
 
29
36
  # Iterates over each page returned by the API.
@@ -43,7 +50,7 @@ module Pinnacle
43
50
  return @has_next_page unless @has_next_page.nil?
44
51
  return true if @next_page
45
52
 
46
- fetched_page = @get_next_page.call(@page_number)
53
+ fetched_page = fetch_page(@page_number)
47
54
  fetched_page_items = fetched_page&.send(@item_field)
48
55
  if fetched_page_items.nil? || fetched_page_items.empty?
49
56
  @has_next_page = false
@@ -61,7 +68,7 @@ module Pinnacle
61
68
  this_page = @next_page
62
69
  @next_page = nil
63
70
  else
64
- this_page = @get_next_page.call(@page_number)
71
+ this_page = fetch_page(@page_number)
65
72
  end
66
73
 
67
74
  @has_next_page = this_page&.send(@has_next_field) if @has_next_field
@@ -78,6 +85,19 @@ module Pinnacle
78
85
 
79
86
  this_page
80
87
  end
88
+
89
+ private
90
+
91
+ def fetch_page(page_number)
92
+ result = @get_next_page.call(page_number)
93
+ if result.is_a?(Array)
94
+ fetched_page, raw_response = result
95
+ @http_response = raw_response
96
+ fetched_page
97
+ else
98
+ result
99
+ end
100
+ end
81
101
  end
82
102
  end
83
103
  end
@@ -76,8 +76,8 @@ module Pinnacle
76
76
  in Module
77
77
  case type
78
78
  in ->(t) {
79
- t.singleton_class.include?(Enum) ||
80
- t.singleton_class.include?(Union)
79
+ t.singleton_class.included_modules.include?(Enum) ||
80
+ t.singleton_class.included_modules.include?(Union)
81
81
  }
82
82
  return type.coerce(value, strict: strict)
83
83
  else
@@ -6,8 +6,11 @@ module Pinnacle
6
6
  module Types
7
7
  class BlastMms < Internal::Types::Model
8
8
  field :audience_id, -> { String }, optional: false, nullable: false, api_name: "audienceId"
9
+
9
10
  field :senders, -> { Internal::Types::Array[String] }, optional: false, nullable: false
11
+
10
12
  field :message, -> { Pinnacle::Types::MmsContent }, optional: false, nullable: false
13
+
11
14
  field :options, -> { Pinnacle::Messages::Blast::Types::BlastMmsOptions }, optional: true, nullable: false
12
15
  end
13
16
  end
@@ -7,6 +7,7 @@ module Pinnacle
7
7
  # Additional settings to customize MMS blast delivery.
8
8
  class BlastMmsOptions < Internal::Types::Model
9
9
  field :validate, -> { Internal::Types::Boolean }, optional: true, nullable: false
10
+
10
11
  field :schedule, -> { Pinnacle::Types::MessageSchedule }, optional: true, nullable: false
11
12
  end
12
13
  end
@@ -8,6 +8,7 @@ module Pinnacle
8
8
  extend Pinnacle::Internal::Types::Union
9
9
 
10
10
  member -> { Pinnacle::Types::BlastDetails }
11
+
11
12
  member -> { Pinnacle::Types::ScheduledBlastDetails }
12
13
  end
13
14
  end
@@ -6,9 +6,13 @@ module Pinnacle
6
6
  module Types
7
7
  class BlastRcs < Internal::Types::Model
8
8
  field :audience_id, -> { String }, optional: false, nullable: false, api_name: "audienceId"
9
+
9
10
  field :senders, -> { Internal::Types::Array[String] }, optional: false, nullable: false
11
+
10
12
  field :message, -> { Pinnacle::Types::RcsValidateContent }, optional: false, nullable: false
13
+
11
14
  field :fallback, -> { Pinnacle::Types::FallbackMessage }, optional: true, nullable: false
15
+
12
16
  field :options, -> { Pinnacle::Messages::Blast::Types::BlastRcsOptions }, optional: true, nullable: false
13
17
  end
14
18
  end
@@ -7,8 +7,11 @@ module Pinnacle
7
7
  # Configure how your RCS blast is sent and tracked.
8
8
  class BlastRcsOptions < Internal::Types::Model
9
9
  field :transcode, -> { Internal::Types::Boolean }, optional: true, nullable: false
10
+
10
11
  field :validate, -> { Internal::Types::Boolean }, optional: true, nullable: false
12
+
11
13
  field :standalone_card, -> { Pinnacle::Messages::Blast::Types::BlastRcsRequestOptionsStandaloneCard }, optional: true, nullable: false
14
+
12
15
  field :schedule, -> { Pinnacle::Types::MessageSchedule }, optional: true, nullable: false
13
16
  end
14
17
  end
@@ -12,6 +12,7 @@ module Pinnacle
12
12
  # to fail with a validation error.
13
13
  class BlastRcsRequestOptionsStandaloneCard < Internal::Types::Model
14
14
  field :orientation, -> { Pinnacle::Messages::Blast::Types::BlastRcsRequestOptionsStandaloneCardOrientation }, optional: true, nullable: false
15
+
15
16
  field :image_alignment, -> { Pinnacle::Messages::Blast::Types::BlastRcsRequestOptionsStandaloneCardImageAlignment }, optional: true, nullable: false
16
17
  end
17
18
  end
@@ -8,6 +8,7 @@ module Pinnacle
8
8
  extend Pinnacle::Internal::Types::Union
9
9
 
10
10
  member -> { Pinnacle::Types::BlastDetails }
11
+
11
12
  member -> { Pinnacle::Types::ScheduledBlastDetails }
12
13
  end
13
14
  end
@@ -6,8 +6,11 @@ module Pinnacle
6
6
  module Types
7
7
  class BlastSms < Internal::Types::Model
8
8
  field :audience_id, -> { String }, optional: false, nullable: false, api_name: "audienceId"
9
+
9
10
  field :senders, -> { Internal::Types::Array[String] }, optional: false, nullable: false
11
+
10
12
  field :message, -> { Pinnacle::Types::SmsContent }, optional: false, nullable: false
13
+
11
14
  field :options, -> { Pinnacle::Messages::Blast::Types::BlastSmsOptions }, optional: true, nullable: false
12
15
  end
13
16
  end
@@ -8,6 +8,7 @@ module Pinnacle
8
8
  extend Pinnacle::Internal::Types::Union
9
9
 
10
10
  member -> { Pinnacle::Types::BlastDetails }
11
+
11
12
  member -> { Pinnacle::Types::ScheduledBlastDetails }
12
13
  end
13
14
  end
@@ -6,9 +6,13 @@ module Pinnacle
6
6
  module Types
7
7
  class ListBlastsParams < 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 :audience_id, -> { String }, optional: true, nullable: false, api_name: "audienceId"
13
+
11
14
  field :sender, -> { String }, optional: true, nullable: false
15
+
12
16
  field :content, -> { String }, optional: true, nullable: false
13
17
  end
14
18
  end
@@ -6,9 +6,13 @@ module Pinnacle
6
6
  module Types
7
7
  class Mms < Internal::Types::Model
8
8
  field :from, -> { String }, optional: false, nullable: false
9
+
9
10
  field :media_urls, -> { Internal::Types::Array[String] }, optional: false, nullable: false, api_name: "mediaUrls"
11
+
10
12
  field :options, -> { Pinnacle::Messages::Mms::Types::SendMmsOptions }, optional: true, nullable: false
13
+
11
14
  field :text, -> { String }, optional: false, nullable: false
15
+
12
16
  field :to, -> { String }, optional: false, nullable: false
13
17
  end
14
18
  end
@@ -8,6 +8,7 @@ module Pinnacle
8
8
  extend Pinnacle::Internal::Types::Union
9
9
 
10
10
  member -> { Pinnacle::Types::SentMmsDetails }
11
+
11
12
  member -> { Pinnacle::Types::ScheduledMessage }
12
13
  end
13
14
  end