rcs 1.0.17 → 2.0.0.pre.rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (321) hide show
  1. checksums.yaml +4 -4
  2. data/lib/environment.rb +1 -1
  3. data/lib/rcs/brands/client.rb +631 -0
  4. data/lib/rcs/brands/types/autofill_brand_schema_options.rb +61 -0
  5. data/lib/rcs/brands/types/brand_contact.rb +84 -0
  6. data/lib/rcs/campaigns/client.rb +44 -0
  7. data/lib/rcs/campaigns/dlc/client.rb +480 -0
  8. data/lib/rcs/campaigns/dlc/types/upsert_dlc_schema_keywords.rb +99 -0
  9. data/lib/rcs/campaigns/dlc/types/upsert_dlc_schema_keywords_help.rb +74 -0
  10. data/lib/rcs/campaigns/dlc/types/upsert_dlc_schema_keywords_opt_in.rb +74 -0
  11. data/lib/rcs/campaigns/dlc/types/upsert_dlc_schema_keywords_opt_out.rb +74 -0
  12. data/lib/rcs/campaigns/dlc/types/upsert_dlc_schema_links.rb +74 -0
  13. data/lib/rcs/campaigns/dlc/types/upsert_dlc_schema_options.rb +110 -0
  14. data/lib/rcs/campaigns/dlc/types/upsert_dlc_schema_use_case.rb +76 -0
  15. data/lib/rcs/campaigns/rcs/client.rb +457 -0
  16. data/lib/rcs/campaigns/rcs/types/rcs_autofill_response.rb +155 -0
  17. data/lib/rcs/campaigns/rcs/types/upsert_rcs_schema_agent.rb +140 -0
  18. data/lib/rcs/campaigns/rcs/types/upsert_rcs_schema_agent_emails_item.rb +73 -0
  19. data/lib/rcs/campaigns/rcs/types/upsert_rcs_schema_agent_phones_item.rb +73 -0
  20. data/lib/rcs/campaigns/rcs/types/upsert_rcs_schema_agent_websites_item.rb +73 -0
  21. data/lib/rcs/campaigns/rcs/types/upsert_rcs_schema_links.rb +74 -0
  22. data/lib/rcs/campaigns/rcs/types/upsert_rcs_schema_opt_in.rb +75 -0
  23. data/lib/rcs/campaigns/rcs/types/upsert_rcs_schema_opt_out.rb +76 -0
  24. data/lib/rcs/campaigns/rcs/types/upsert_rcs_schema_use_case.rb +75 -0
  25. data/lib/rcs/campaigns/toll_free/client.rb +429 -0
  26. data/lib/rcs/campaigns/toll_free/types/toll_free_autofill_response.rb +130 -0
  27. data/lib/rcs/campaigns/toll_free/types/upsert_toll_free_schema_opt_in.rb +86 -0
  28. data/lib/rcs/campaigns/toll_free/types/upsert_toll_free_schema_use_case.rb +75 -0
  29. data/lib/rcs/contacts/client.rb +275 -0
  30. data/lib/rcs/conversations/client.rb +273 -0
  31. data/lib/rcs/message/client.rb +30 -0
  32. data/lib/rcs/message/sms/client.rb +96 -0
  33. data/lib/rcs/messages/client.rb +185 -0
  34. data/lib/rcs/messages/mms/client.rb +98 -0
  35. data/lib/rcs/messages/rcs/client.rb +94 -0
  36. data/lib/rcs/messages/send/client.rb +318 -0
  37. data/lib/rcs/messages/send/types/send_mms_response.rb +60 -0
  38. data/lib/rcs/messages/send/types/send_mms_schema_options.rb +108 -0
  39. data/lib/rcs/messages/send/types/send_rcs_response.rb +60 -0
  40. data/lib/rcs/messages/send/types/send_sms_response.rb +60 -0
  41. data/lib/rcs/messages/send/types/send_sms_schema_options.rb +81 -0
  42. data/lib/rcs/messages/types/message_reaction_schema_options.rb +71 -0
  43. data/lib/rcs/phone_numbers/campaign/client.rb +179 -0
  44. data/lib/rcs/phone_numbers/client.rb +345 -0
  45. data/lib/rcs/phone_numbers/types/phone_details_schema_level.rb +16 -0
  46. data/lib/rcs/phone_numbers/types/phone_details_schema_options.rb +93 -0
  47. data/lib/rcs/phone_numbers/types/phone_details_schema_options_enhanced_contact_info.rb +64 -0
  48. data/lib/rcs/phone_numbers/types/phone_numbers_get_response.rb +58 -0
  49. data/lib/rcs/phone_numbers/types/search_schema_location.rb +96 -0
  50. data/lib/rcs/phone_numbers/types/search_schema_number.rb +81 -0
  51. data/lib/rcs/phone_numbers/types/search_schema_options.rb +62 -0
  52. data/lib/rcs/phone_numbers/webhook/client.rb +191 -0
  53. data/lib/rcs/status/client.rb +30 -0
  54. data/lib/rcs/status/get/client.rb +367 -0
  55. data/lib/rcs/tools/client.rb +32 -199
  56. data/lib/rcs/tools/contact_card/client.rb +285 -0
  57. data/lib/rcs/tools/contact_card/types/get_v_card_schema_options.rb +67 -0
  58. data/lib/rcs/tools/file/client.rb +138 -0
  59. data/lib/rcs/tools/file/types/file_upload_schema_options.rb +70 -0
  60. data/lib/rcs/tools/file/types/file_upload_schema_options_download.rb +66 -0
  61. data/lib/rcs/tools/url/client.rb +245 -0
  62. data/lib/rcs/types/advanced_phone_information.rb +147 -0
  63. data/lib/rcs/types/advanced_phone_information_carrier.rb +90 -0
  64. data/lib/rcs/types/advanced_phone_information_contact.rb +146 -0
  65. data/lib/rcs/types/advanced_phone_information_location.rb +142 -0
  66. data/lib/rcs/types/advanced_phone_information_location_coordinates.rb +73 -0
  67. data/lib/rcs/types/advanced_phone_information_location_country.rb +77 -0
  68. data/lib/rcs/types/advanced_phone_information_type.rb +97 -0
  69. data/lib/rcs/types/advanced_phone_information_type_recommendation.rb +15 -0
  70. data/lib/rcs/types/agent.rb +68 -0
  71. data/lib/rcs/types/attach_webhook_params.rb +60 -0
  72. data/lib/rcs/types/attach_webhook_response_webhook.rb +86 -0
  73. data/lib/rcs/types/attach_webhook_schema_name.rb +88 -0
  74. data/lib/rcs/types/attach_webhook_schema_webhook_id.rb +77 -0
  75. data/lib/rcs/types/attached_phone_number_result.rb +75 -0
  76. data/lib/rcs/types/autofill_campaign_params.rb +69 -0
  77. data/lib/rcs/types/autofill_dlc_campaign_response.rb +169 -0
  78. data/lib/rcs/types/autofill_dlc_response_keywords.rb +95 -0
  79. data/lib/rcs/types/autofill_dlc_response_keywords_help.rb +70 -0
  80. data/lib/rcs/{send/types/send_sms_response.rb → types/autofill_dlc_response_keywords_opt_in.rb} +18 -17
  81. data/lib/rcs/types/autofill_dlc_response_keywords_opt_out.rb +70 -0
  82. data/lib/rcs/types/autofill_dlc_response_links.rb +70 -0
  83. data/lib/rcs/types/autofill_dlc_response_options.rb +106 -0
  84. data/lib/rcs/types/autofill_dlc_response_use_case.rb +72 -0
  85. data/lib/rcs/types/bad_request_error_body.rb +44 -45
  86. data/lib/rcs/types/basic_phone_information.rb +127 -0
  87. data/lib/rcs/{company/types/company_register_response_brand.rb → types/basic_phone_information_contact.rb} +12 -21
  88. data/lib/rcs/types/basic_phone_information_location.rb +74 -0
  89. data/lib/rcs/types/basic_phone_information_location_country.rb +75 -0
  90. data/lib/rcs/types/brand_status.rb +92 -0
  91. data/lib/rcs/types/brand_status_enum.rb +21 -0
  92. data/lib/rcs/types/buy_response_capabilities.rb +77 -0
  93. data/lib/rcs/types/campaign_enum.rb +15 -0
  94. data/lib/rcs/types/campaign_query.rb +69 -0
  95. data/lib/rcs/{company/types/company_register_request_company_id.rb → types/campaign_submission_result.rb} +15 -16
  96. data/lib/rcs/types/campaign_validation_response_errors_item.rb +76 -0
  97. data/lib/rcs/types/campaign_validation_result.rb +71 -0
  98. data/lib/rcs/types/click_action.rb +73 -0
  99. data/lib/rcs/types/click_action_data.rb +56 -0
  100. data/lib/rcs/types/click_action_data_metadata.rb +69 -0
  101. data/lib/rcs/types/company_sector_enum.rb +26 -0
  102. data/lib/rcs/types/company_type_enum.rb +14 -0
  103. data/lib/rcs/types/configured_webhook.rb +85 -0
  104. data/lib/rcs/types/contact.rb +105 -0
  105. data/lib/rcs/types/contact_id.rb +57 -0
  106. data/lib/rcs/types/conversation.rb +146 -0
  107. data/lib/rcs/types/conversation_contact.rb +68 -0
  108. data/lib/rcs/types/conversation_list.rb +79 -0
  109. data/lib/rcs/types/conversation_sender.rb +60 -0
  110. data/lib/rcs/types/create_url_options.rb +61 -0
  111. data/lib/rcs/types/detached_phone_number_result.rb +75 -0
  112. data/lib/rcs/types/detached_webhook_info.rb +74 -0
  113. data/lib/rcs/types/detailed_phone_number_enum.rb +25 -0
  114. data/lib/rcs/types/dlc_assignment_status_enum.rb +19 -0
  115. data/lib/rcs/types/dlc_campaign_status.rb +107 -0
  116. data/lib/rcs/types/dlc_campaign_use_case_enum.rb +35 -0
  117. data/lib/rcs/types/dlc_campaign_with_extended_brand_and_status.rb +194 -0
  118. data/lib/rcs/types/dlc_with_extended_brand_and_status_keywords.rb +94 -0
  119. data/lib/rcs/types/dlc_with_extended_brand_and_status_keywords_help.rb +72 -0
  120. data/lib/rcs/{send/types/send_mms_response.rb → types/dlc_with_extended_brand_and_status_keywords_opt_in.rb} +20 -17
  121. data/lib/rcs/{send/types/send_rcs_response.rb → types/dlc_with_extended_brand_and_status_keywords_opt_out.rb} +20 -17
  122. data/lib/rcs/types/dlc_with_extended_brand_and_status_links.rb +70 -0
  123. data/lib/rcs/types/dlc_with_extended_brand_and_status_options.rb +106 -0
  124. data/lib/rcs/types/dlc_with_extended_brand_and_status_use_case.rb +72 -0
  125. data/lib/rcs/types/enhanced_contact.rb +9 -0
  126. data/lib/rcs/types/enhanced_contact_item.rb +104 -0
  127. data/lib/rcs/types/error.rb +61 -0
  128. data/lib/rcs/types/extended_brand.rb +194 -0
  129. data/lib/rcs/types/extended_brand_with_vetting.rb +226 -0
  130. data/lib/rcs/types/extended_rcs_campaign.rb +173 -0
  131. data/lib/rcs/{company/types/company_register_request.rb → types/get_conversation_params.rb} +13 -12
  132. data/lib/rcs/types/get_conversation_request_id.rb +58 -0
  133. data/lib/rcs/types/get_conversation_request_recipient.rb +72 -0
  134. data/lib/rcs/types/get_dlc_campaign_status_response_updates.rb +96 -0
  135. data/lib/rcs/types/get_toll_free_campaign_status_response_updates.rb +92 -0
  136. data/lib/rcs/types/inbound_button.rb +56 -0
  137. data/lib/rcs/types/link_click_event.rb +465 -0
  138. data/lib/rcs/{company/types/company_update_response.rb → types/location_share_action.rb} +19 -19
  139. data/lib/rcs/types/location_share_action_data.rb +89 -0
  140. data/lib/rcs/types/message.rb +174 -0
  141. data/lib/rcs/types/message_content.rb +85 -0
  142. data/lib/rcs/types/message_method_enum.rb +12 -0
  143. data/lib/rcs/types/message_protocol_enum.rb +12 -0
  144. data/lib/rcs/types/message_schedule.rb +94 -0
  145. data/lib/rcs/types/message_status_enum.rb +16 -0
  146. data/lib/rcs/types/message_volume_enum.rb +20 -0
  147. data/lib/rcs/types/messaging_profile_enum.rb +11 -0
  148. data/lib/rcs/types/mms_content.rb +74 -0
  149. data/lib/rcs/types/mms_validation_response_segments.rb +85 -0
  150. data/lib/rcs/types/mms_validation_response_segments_value_item.rb +75 -0
  151. data/lib/rcs/types/mms_validation_result.rb +82 -0
  152. data/lib/rcs/types/nullable_contact.rb +84 -0
  153. data/lib/rcs/types/number_format.rb +79 -0
  154. data/lib/rcs/types/opt_in_method_enum.rb +13 -0
  155. data/lib/rcs/types/optional_brand_info.rb +145 -0
  156. data/lib/rcs/types/optional_contact.rb +83 -0
  157. data/lib/rcs/types/optional_contacts.rb +84 -0
  158. data/lib/rcs/types/phone.rb +101 -0
  159. data/lib/rcs/types/phone_capabilities.rb +75 -0
  160. data/lib/rcs/types/phone_enum.rb +13 -0
  161. data/lib/rcs/types/phone_feature_enum.rb +18 -0
  162. data/lib/rcs/types/phone_number_campaign_attach_failed_item.rb +67 -0
  163. data/lib/rcs/types/phone_number_campaign_attach_phone_numbers_item.rb +75 -0
  164. data/lib/rcs/types/phone_number_campaign_attach_phone_numbers_item_campaign.rb +78 -0
  165. data/lib/rcs/types/phone_number_campaign_detach_failed_item.rb +67 -0
  166. data/lib/rcs/types/phone_number_campaign_detach_phone_numbers_item.rb +75 -0
  167. data/lib/rcs/types/phone_number_campaign_detach_phone_numbers_item_campaign.rb +78 -0
  168. data/lib/rcs/types/phone_number_cost.rb +75 -0
  169. data/lib/rcs/types/phone_number_details.rb +110 -0
  170. data/lib/rcs/types/phone_number_enum.rb +18 -0
  171. data/lib/rcs/types/phone_number_region.rb +91 -0
  172. data/lib/rcs/types/phone_number_status.rb +90 -0
  173. data/lib/rcs/types/phone_number_status_enum.rb +16 -0
  174. data/lib/rcs/types/pinnacle_file_upload_metadata.rb +84 -0
  175. data/lib/rcs/types/pinnacle_url_config.rb +71 -0
  176. data/lib/rcs/types/profile_status_enum.rb +17 -0
  177. data/lib/rcs/types/purchased_number.rb +75 -0
  178. data/lib/rcs/types/rcs.rb +70 -0
  179. data/lib/rcs/types/rcs_base.rb +82 -0
  180. data/lib/rcs/types/rcs_base_options.rb +100 -0
  181. data/lib/rcs/types/rcs_button_call.rb +68 -0
  182. data/lib/rcs/types/rcs_button_content.rb +148 -0
  183. data/lib/rcs/types/rcs_button_open_url.rb +68 -0
  184. data/lib/rcs/types/rcs_button_request_user_location.rb +58 -0
  185. data/lib/rcs/types/rcs_button_schedule_event.rb +98 -0
  186. data/lib/rcs/types/rcs_button_send_location.rb +74 -0
  187. data/lib/rcs/types/rcs_button_send_location_lat_long.rb +68 -0
  188. data/lib/rcs/types/rcs_button_trigger.rb +78 -0
  189. data/lib/rcs/types/rcs_campaign.rb +143 -0
  190. data/lib/rcs/types/rcs_campaign_opt_in_method_enum.rb +15 -0
  191. data/lib/rcs/types/rcs_campaign_schema_agent.rb +134 -0
  192. data/lib/rcs/types/rcs_campaign_schema_agent_emails_item.rb +69 -0
  193. data/lib/rcs/types/rcs_campaign_schema_agent_phones_item.rb +69 -0
  194. data/lib/rcs/types/rcs_campaign_schema_agent_websites_item.rb +69 -0
  195. data/lib/rcs/types/rcs_campaign_schema_extra_agent.rb +134 -0
  196. data/lib/rcs/types/rcs_campaign_schema_extra_agent_emails_item.rb +70 -0
  197. data/lib/rcs/types/rcs_campaign_schema_extra_agent_phones_item.rb +70 -0
  198. data/lib/rcs/types/rcs_campaign_schema_extra_agent_websites_item.rb +71 -0
  199. data/lib/rcs/types/rcs_campaign_schema_extra_links.rb +70 -0
  200. data/lib/rcs/types/rcs_campaign_schema_extra_opt_in.rb +71 -0
  201. data/lib/rcs/types/rcs_campaign_schema_extra_opt_out.rb +70 -0
  202. data/lib/rcs/types/rcs_campaign_schema_extra_use_case.rb +71 -0
  203. data/lib/rcs/types/rcs_campaign_schema_links.rb +70 -0
  204. data/lib/rcs/types/rcs_campaign_schema_opt_in.rb +71 -0
  205. data/lib/rcs/types/rcs_campaign_schema_opt_out.rb +70 -0
  206. data/lib/rcs/types/rcs_campaign_schema_use_case.rb +71 -0
  207. data/lib/rcs/types/rcs_campaign_status.rb +86 -0
  208. data/lib/rcs/types/rcs_campaign_use_case_enum.rb +23 -0
  209. data/lib/rcs/types/rcs_card.rb +110 -0
  210. data/lib/rcs/types/rcs_cards.rb +79 -0
  211. data/lib/rcs/types/rcs_cards_cards_item.rb +88 -0
  212. data/lib/rcs/types/rcs_cards_content.rb +79 -0
  213. data/lib/rcs/types/rcs_cards_content_cards_item.rb +94 -0
  214. data/lib/rcs/types/rcs_content.rb +72 -0
  215. data/lib/rcs/types/rcs_media.rb +110 -0
  216. data/lib/rcs/types/rcs_media_content.rb +81 -0
  217. data/lib/rcs/types/rcs_media_details_content.rb +77 -0
  218. data/lib/rcs/types/rcs_text.rb +106 -0
  219. data/lib/rcs/types/rcs_text_content.rb +72 -0
  220. data/lib/rcs/types/rcs_validate_content.rb +70 -0
  221. data/lib/rcs/{company/types/company_register_response.rb → types/rcs_validate_content_media.rb} +19 -21
  222. data/lib/rcs/types/rcs_validation_result.rb +76 -0
  223. data/lib/rcs/types/reaction_result.rb +67 -0
  224. data/lib/rcs/types/scheduled_messaage.rb +73 -0
  225. data/lib/rcs/types/scheduled_send_response_config.rb +89 -0
  226. data/lib/rcs/types/send_sms_response_segments.rb +69 -0
  227. data/lib/rcs/types/send_sms_response_segments_encoding.rb +11 -0
  228. data/lib/rcs/types/sent_mms_details.rb +102 -0
  229. data/lib/rcs/types/sent_rcs_details.rb +105 -0
  230. data/lib/rcs/types/sent_sms_details.rb +108 -0
  231. data/lib/rcs/types/shortened_url.rb +77 -0
  232. data/lib/rcs/types/shortened_url_with_click_data.rb +90 -0
  233. data/lib/rcs/types/sms_content.rb +58 -0
  234. data/lib/rcs/types/sms_validation_response_segments.rb +80 -0
  235. data/lib/rcs/types/sms_validation_response_segments_gsm_7.rb +75 -0
  236. data/lib/rcs/types/sms_validation_response_segments_utf_16.rb +68 -0
  237. data/lib/rcs/types/sms_validation_response_total.rb +75 -0
  238. data/lib/rcs/types/sms_validation_result.rb +102 -0
  239. data/lib/rcs/types/sub_use_case_enum.rb +19 -0
  240. data/lib/rcs/types/submission_results.rb +57 -0
  241. data/lib/rcs/types/successful_conversation_update.rb +58 -0
  242. data/lib/rcs/types/toll_free_campaign.rb +118 -0
  243. data/lib/rcs/types/toll_free_campaign_schema_opt_in.rb +78 -0
  244. data/lib/rcs/types/toll_free_campaign_schema_use_case.rb +71 -0
  245. data/lib/rcs/types/toll_free_campaign_status.rb +91 -0
  246. data/lib/rcs/types/toll_free_campaign_use_case_enum.rb +52 -0
  247. data/lib/rcs/types/toll_free_campaign_with_extended_brand_and_status.rb +155 -0
  248. data/lib/rcs/types/toll_free_status_enum.rb +20 -0
  249. data/lib/rcs/types/tracking.rb +17 -0
  250. data/lib/rcs/types/updated_contact_id.rb +57 -0
  251. data/lib/rcs/types/upload_results.rb +80 -0
  252. data/lib/rcs/types/v_card_address_schema_type_item.rb +15 -0
  253. data/lib/rcs/types/v_card_data.rb +237 -0
  254. data/lib/rcs/types/v_card_data_file.rb +74 -0
  255. data/lib/rcs/types/v_card_data_file_metadata.rb +62 -0
  256. data/lib/rcs/types/v_card_email_schema_type_item.rb +21 -0
  257. data/lib/rcs/types/v_card_geo.rb +70 -0
  258. data/lib/rcs/types/v_card_name.rb +98 -0
  259. data/lib/rcs/types/v_card_organization.rb +70 -0
  260. data/lib/rcs/types/v_card_phone_schema_type_item.rb +21 -0
  261. data/lib/rcs/types/validate_campaign_params.rb +69 -0
  262. data/lib/rcs/types/validation_error_details.rb +76 -0
  263. data/lib/rcs/types/validation_results.rb +71 -0
  264. data/lib/rcs/types/vcard.rb +215 -0
  265. data/lib/rcs/types/vcard_address.rb +130 -0
  266. data/lib/rcs/types/vcard_content.rb +223 -0
  267. data/lib/rcs/types/vcard_email.rb +70 -0
  268. data/lib/rcs/types/vcard_phone.rb +70 -0
  269. data/lib/rcs/types/vcard_resource.rb +71 -0
  270. data/lib/rcs/types/vetting_feedback.rb +81 -0
  271. data/lib/rcs/types/vetting_history.rb +98 -0
  272. data/lib/rcs/types/vetting_history_vetting_status.rb +13 -0
  273. data/lib/rcs/types/vetting_results.rb +57 -0
  274. data/lib/rcs/types/webhook_event_enum.rb +13 -0
  275. data/lib/rcs/types/webhook_result.rb +64 -0
  276. data/lib/rcs/{company/types/company_update_response_brand.rb → types/webhooks.rb} +25 -17
  277. data/lib/rcs/types/zod_error.rb +73 -0
  278. data/lib/rcs/webhooks/client.rb +93 -0
  279. data/lib/rcs.rb +67 -83
  280. data/lib/requests.rb +4 -4
  281. data/lib/types_export.rb +252 -46
  282. metadata +278 -52
  283. data/lib/rcs/company/client.rb +0 -375
  284. data/lib/rcs/company/types/company_register_request_company.rb +0 -128
  285. data/lib/rcs/send/client.rb +0 -382
  286. data/lib/rcs/send/types/rcs_fallback.rb +0 -84
  287. data/lib/rcs/tools/types/tools_shorten_url_response.rb +0 -70
  288. data/lib/rcs/tools/types/tools_upload_url_response.rb +0 -69
  289. data/lib/rcs/types/action.rb +0 -154
  290. data/lib/rcs/types/action_lat_long.rb +0 -68
  291. data/lib/rcs/types/action_type.rb +0 -16
  292. data/lib/rcs/types/additional_email.rb +0 -65
  293. data/lib/rcs/types/additional_phone_number.rb +0 -65
  294. data/lib/rcs/types/additional_website.rb +0 -65
  295. data/lib/rcs/types/card.rb +0 -90
  296. data/lib/rcs/types/company.rb +0 -319
  297. data/lib/rcs/types/company_additional_emails_item.rb +0 -67
  298. data/lib/rcs/types/company_additional_phone_numbers_item.rb +0 -67
  299. data/lib/rcs/types/company_additional_websites_item.rb +0 -67
  300. data/lib/rcs/types/company_category.rb +0 -20
  301. data/lib/rcs/types/company_contact.rb +0 -117
  302. data/lib/rcs/types/company_details.rb +0 -120
  303. data/lib/rcs/types/forbidden_error_body.rb +0 -57
  304. data/lib/rcs/types/inbound_action_message.rb +0 -117
  305. data/lib/rcs/types/inbound_location_message.rb +0 -106
  306. data/lib/rcs/types/inbound_location_message_coordinates.rb +0 -65
  307. data/lib/rcs/types/inbound_media_message.rb +0 -112
  308. data/lib/rcs/types/inbound_message.rb +0 -88
  309. data/lib/rcs/types/inbound_message_message_type.rb +0 -10
  310. data/lib/rcs/types/inbound_message_metadata.rb +0 -79
  311. data/lib/rcs/types/inbound_text_message.rb +0 -100
  312. data/lib/rcs/types/internal_server_error_body.rb +0 -57
  313. data/lib/rcs/types/media_payload.rb +0 -65
  314. data/lib/rcs/types/message_metadata.rb +0 -56
  315. data/lib/rcs/types/messaging.rb +0 -95
  316. data/lib/rcs/types/optionals.rb +0 -99
  317. data/lib/rcs/types/payment_required_error_body.rb +0 -57
  318. data/lib/rcs/types/point_of_contact.rb +0 -72
  319. data/lib/rcs/types/rcs_functionalities.rb +0 -117
  320. data/lib/rcs/types/sender_metadata.rb +0 -74
  321. data/lib/rcs/types/unauthorized_error_body.rb +0 -57
@@ -0,0 +1,106 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "rcs_base_options"
4
+ require_relative "rcs_button_content"
5
+ require "ostruct"
6
+ require "json"
7
+
8
+ module Pinnacle
9
+ module Types
10
+ class RcsText
11
+ # @return [String] Your RCS agent ID which must be prefixed with 'agent_'.
12
+ attr_reader :from
13
+ # @return [Pinnacle::Types::RcsBaseOptions] Configure how your RCS message is sent and tracked.
14
+ attr_reader :options
15
+ # @return [String] Recipient's phone number in E.164 format.
16
+ attr_reader :to
17
+ # @return [Array<Pinnacle::Types::RcsButtonContent>] List of interactive quick reply buttons in the message.
18
+ attr_reader :quick_replies
19
+ # @return [String] Text content of the RCS message.
20
+ attr_reader :text
21
+ # @return [OpenStruct] Additional properties unmapped to the current class definition
22
+ attr_reader :additional_properties
23
+ # @return [Object]
24
+ attr_reader :_field_set
25
+ protected :_field_set
26
+
27
+ OMIT = Object.new
28
+
29
+ # @param from [String] Your RCS agent ID which must be prefixed with 'agent_'.
30
+ # @param options [Pinnacle::Types::RcsBaseOptions] Configure how your RCS message is sent and tracked.
31
+ # @param to [String] Recipient's phone number in E.164 format.
32
+ # @param quick_replies [Array<Pinnacle::Types::RcsButtonContent>] List of interactive quick reply buttons in the message.
33
+ # @param text [String] Text content of the RCS message.
34
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
35
+ # @return [Pinnacle::Types::RcsText]
36
+ def initialize(from:, to:, quick_replies:, text:, options: OMIT, additional_properties: nil)
37
+ @from = from
38
+ @options = options if options != OMIT
39
+ @to = to
40
+ @quick_replies = quick_replies
41
+ @text = text
42
+ @additional_properties = additional_properties
43
+ @_field_set = {
44
+ "from": from,
45
+ "options": options,
46
+ "to": to,
47
+ "quickReplies": quick_replies,
48
+ "text": text
49
+ }.reject do |_k, v|
50
+ v == OMIT
51
+ end
52
+ end
53
+
54
+ # Deserialize a JSON object to an instance of RcsText
55
+ #
56
+ # @param json_object [String]
57
+ # @return [Pinnacle::Types::RcsText]
58
+ def self.from_json(json_object:)
59
+ struct = JSON.parse(json_object, object_class: OpenStruct)
60
+ parsed_json = JSON.parse(json_object)
61
+ from = parsed_json["from"]
62
+ if parsed_json["options"].nil?
63
+ options = nil
64
+ else
65
+ options = parsed_json["options"].to_json
66
+ options = Pinnacle::Types::RcsBaseOptions.from_json(json_object: options)
67
+ end
68
+ to = parsed_json["to"]
69
+ quick_replies = parsed_json["quickReplies"]&.map do |item|
70
+ item = item.to_json
71
+ Pinnacle::Types::RcsButtonContent.from_json(json_object: item)
72
+ end
73
+ text = parsed_json["text"]
74
+ new(
75
+ from: from,
76
+ options: options,
77
+ to: to,
78
+ quick_replies: quick_replies,
79
+ text: text,
80
+ additional_properties: struct
81
+ )
82
+ end
83
+
84
+ # Serialize an instance of RcsText to a JSON object
85
+ #
86
+ # @return [String]
87
+ def to_json(*_args)
88
+ @_field_set&.to_json
89
+ end
90
+
91
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
92
+ # hash and check each fields type against the current object's property
93
+ # definitions.
94
+ #
95
+ # @param obj [Object]
96
+ # @return [Void]
97
+ def self.validate_raw(obj:)
98
+ obj.from.is_a?(String) != false || raise("Passed value for field obj.from is not the expected type, validation failed.")
99
+ obj.options.nil? || Pinnacle::Types::RcsBaseOptions.validate_raw(obj: obj.options)
100
+ obj.to.is_a?(String) != false || raise("Passed value for field obj.to is not the expected type, validation failed.")
101
+ obj.quick_replies.is_a?(Array) != false || raise("Passed value for field obj.quick_replies is not the expected type, validation failed.")
102
+ obj.text.is_a?(String) != false || raise("Passed value for field obj.text is not the expected type, validation failed.")
103
+ end
104
+ end
105
+ end
106
+ end
@@ -0,0 +1,72 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "rcs_button_content"
4
+ require "ostruct"
5
+ require "json"
6
+
7
+ module Pinnacle
8
+ module Types
9
+ # Message containing longer text content with optional quick reply buttons.
10
+ class RcsTextContent
11
+ # @return [Array<Pinnacle::Types::RcsButtonContent>] List of interactive quick reply buttons in the message.
12
+ attr_reader :quick_replies
13
+ # @return [String] Text content of the RCS message.
14
+ attr_reader :text
15
+ # @return [OpenStruct] Additional properties unmapped to the current class definition
16
+ attr_reader :additional_properties
17
+ # @return [Object]
18
+ attr_reader :_field_set
19
+ protected :_field_set
20
+
21
+ OMIT = Object.new
22
+
23
+ # @param quick_replies [Array<Pinnacle::Types::RcsButtonContent>] List of interactive quick reply buttons in the message.
24
+ # @param text [String] Text content of the RCS message.
25
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
26
+ # @return [Pinnacle::Types::RcsTextContent]
27
+ def initialize(quick_replies:, text:, additional_properties: nil)
28
+ @quick_replies = quick_replies
29
+ @text = text
30
+ @additional_properties = additional_properties
31
+ @_field_set = { "quickReplies": quick_replies, "text": text }
32
+ end
33
+
34
+ # Deserialize a JSON object to an instance of RcsTextContent
35
+ #
36
+ # @param json_object [String]
37
+ # @return [Pinnacle::Types::RcsTextContent]
38
+ def self.from_json(json_object:)
39
+ struct = JSON.parse(json_object, object_class: OpenStruct)
40
+ parsed_json = JSON.parse(json_object)
41
+ quick_replies = parsed_json["quickReplies"]&.map do |item|
42
+ item = item.to_json
43
+ Pinnacle::Types::RcsButtonContent.from_json(json_object: item)
44
+ end
45
+ text = parsed_json["text"]
46
+ new(
47
+ quick_replies: quick_replies,
48
+ text: text,
49
+ additional_properties: struct
50
+ )
51
+ end
52
+
53
+ # Serialize an instance of RcsTextContent to a JSON object
54
+ #
55
+ # @return [String]
56
+ def to_json(*_args)
57
+ @_field_set&.to_json
58
+ end
59
+
60
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
61
+ # hash and check each fields type against the current object's property
62
+ # definitions.
63
+ #
64
+ # @param obj [Object]
65
+ # @return [Void]
66
+ def self.validate_raw(obj:)
67
+ obj.quick_replies.is_a?(Array) != false || raise("Passed value for field obj.quick_replies is not the expected type, validation failed.")
68
+ obj.text.is_a?(String) != false || raise("Passed value for field obj.text is not the expected type, validation failed.")
69
+ end
70
+ end
71
+ end
72
+ end
@@ -0,0 +1,70 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "json"
4
+ require_relative "rcs_text_content"
5
+ require_relative "rcs_validate_content_media"
6
+ require_relative "rcs_cards"
7
+
8
+ module Pinnacle
9
+ module Types
10
+ class RcsValidateContent
11
+ # Deserialize a JSON object to an instance of RcsValidateContent
12
+ #
13
+ # @param json_object [String]
14
+ # @return [Pinnacle::Types::RcsValidateContent]
15
+ def self.from_json(json_object:)
16
+ struct = JSON.parse(json_object, object_class: OpenStruct)
17
+ begin
18
+ Pinnacle::Types::RcsTextContent.validate_raw(obj: struct)
19
+ return Pinnacle::Types::RcsTextContent.from_json(json_object: struct) unless struct.nil?
20
+
21
+ return nil
22
+ rescue StandardError
23
+ # noop
24
+ end
25
+ begin
26
+ Pinnacle::Types::RcsValidateContentMedia.validate_raw(obj: struct)
27
+ return Pinnacle::Types::RcsValidateContentMedia.from_json(json_object: struct) unless struct.nil?
28
+
29
+ return nil
30
+ rescue StandardError
31
+ # noop
32
+ end
33
+ begin
34
+ Pinnacle::Types::RcsCards.validate_raw(obj: struct)
35
+ return Pinnacle::Types::RcsCards.from_json(json_object: struct) unless struct.nil?
36
+
37
+ return nil
38
+ rescue StandardError
39
+ # noop
40
+ end
41
+ struct
42
+ end
43
+
44
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
45
+ # hash and check each fields type against the current object's property
46
+ # definitions.
47
+ #
48
+ # @param obj [Object]
49
+ # @return [Void]
50
+ def self.validate_raw(obj:)
51
+ begin
52
+ return Pinnacle::Types::RcsTextContent.validate_raw(obj: obj)
53
+ rescue StandardError
54
+ # noop
55
+ end
56
+ begin
57
+ return Pinnacle::Types::RcsValidateContentMedia.validate_raw(obj: obj)
58
+ rescue StandardError
59
+ # noop
60
+ end
61
+ begin
62
+ return Pinnacle::Types::RcsCards.validate_raw(obj: obj)
63
+ rescue StandardError
64
+ # noop
65
+ end
66
+ raise("Passed value matched no type within the union, validation failed.")
67
+ end
68
+ end
69
+ end
70
+ end
@@ -1,14 +1,17 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative "company_register_response_brand"
4
3
  require "ostruct"
5
4
  require "json"
6
5
 
7
6
  module Pinnacle
8
- class Company
9
- class CompanyRegisterResponse
10
- # @return [Pinnacle::Company::CompanyRegisterResponseBrand]
11
- attr_reader :brand
7
+ module Types
8
+ # Message containing a media file and/or text with optional quick reply
9
+ # buttons.<br>
10
+ # See [supported media
11
+ # types](https://app.pinnacle.sh/supported-file-types?type=RCS-MEDIA).
12
+ class RcsValidateContentMedia
13
+ # @return [String] Media file URLs to send.
14
+ attr_reader :media
12
15
  # @return [OpenStruct] Additional properties unmapped to the current class definition
13
16
  attr_reader :additional_properties
14
17
  # @return [Object]
@@ -17,32 +20,27 @@ module Pinnacle
17
20
 
18
21
  OMIT = Object.new
19
22
 
20
- # @param brand [Pinnacle::Company::CompanyRegisterResponseBrand]
23
+ # @param media [String] Media file URLs to send.
21
24
  # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
22
- # @return [Pinnacle::Company::CompanyRegisterResponse]
23
- def initialize(brand:, additional_properties: nil)
24
- @brand = brand
25
+ # @return [Pinnacle::Types::RcsValidateContentMedia]
26
+ def initialize(media:, additional_properties: nil)
27
+ @media = media
25
28
  @additional_properties = additional_properties
26
- @_field_set = { "brand": brand }
29
+ @_field_set = { "media": media }
27
30
  end
28
31
 
29
- # Deserialize a JSON object to an instance of CompanyRegisterResponse
32
+ # Deserialize a JSON object to an instance of RcsValidateContentMedia
30
33
  #
31
34
  # @param json_object [String]
32
- # @return [Pinnacle::Company::CompanyRegisterResponse]
35
+ # @return [Pinnacle::Types::RcsValidateContentMedia]
33
36
  def self.from_json(json_object:)
34
37
  struct = JSON.parse(json_object, object_class: OpenStruct)
35
38
  parsed_json = JSON.parse(json_object)
36
- if parsed_json["brand"].nil?
37
- brand = nil
38
- else
39
- brand = parsed_json["brand"].to_json
40
- brand = Pinnacle::Company::CompanyRegisterResponseBrand.from_json(json_object: brand)
41
- end
42
- new(brand: brand, additional_properties: struct)
39
+ media = parsed_json["media"]
40
+ new(media: media, additional_properties: struct)
43
41
  end
44
42
 
45
- # Serialize an instance of CompanyRegisterResponse to a JSON object
43
+ # Serialize an instance of RcsValidateContentMedia to a JSON object
46
44
  #
47
45
  # @return [String]
48
46
  def to_json(*_args)
@@ -56,7 +54,7 @@ module Pinnacle
56
54
  # @param obj [Object]
57
55
  # @return [Void]
58
56
  def self.validate_raw(obj:)
59
- Pinnacle::Company::CompanyRegisterResponseBrand.validate_raw(obj: obj.brand)
57
+ obj.media.is_a?(String) != false || raise("Passed value for field obj.media is not the expected type, validation failed.")
60
58
  end
61
59
  end
62
60
  end
@@ -0,0 +1,76 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "ostruct"
4
+ require "json"
5
+
6
+ module Pinnacle
7
+ module Types
8
+ class RcsValidationResult
9
+ # @return [Float] Total price of this message. Calculated by multiplying the number of messages by
10
+ # the unit cost.
11
+ attr_reader :total
12
+ # @return [Float] Cost per message.
13
+ attr_reader :unit
14
+ # @return [Array<String>] List of unsupported media file names or URLs.
15
+ attr_reader :unsupported_files
16
+ # @return [OpenStruct] Additional properties unmapped to the current class definition
17
+ attr_reader :additional_properties
18
+ # @return [Object]
19
+ attr_reader :_field_set
20
+ protected :_field_set
21
+
22
+ OMIT = Object.new
23
+
24
+ # @param total [Float] Total price of this message. Calculated by multiplying the number of messages by
25
+ # the unit cost.
26
+ # @param unit [Float] Cost per message.
27
+ # @param unsupported_files [Array<String>] List of unsupported media file names or URLs.
28
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
29
+ # @return [Pinnacle::Types::RcsValidationResult]
30
+ def initialize(total:, unit:, unsupported_files:, additional_properties: nil)
31
+ @total = total
32
+ @unit = unit
33
+ @unsupported_files = unsupported_files
34
+ @additional_properties = additional_properties
35
+ @_field_set = { "total": total, "unit": unit, "unsupportedFiles": unsupported_files }
36
+ end
37
+
38
+ # Deserialize a JSON object to an instance of RcsValidationResult
39
+ #
40
+ # @param json_object [String]
41
+ # @return [Pinnacle::Types::RcsValidationResult]
42
+ def self.from_json(json_object:)
43
+ struct = JSON.parse(json_object, object_class: OpenStruct)
44
+ parsed_json = JSON.parse(json_object)
45
+ total = parsed_json["total"]
46
+ unit = parsed_json["unit"]
47
+ unsupported_files = parsed_json["unsupportedFiles"]
48
+ new(
49
+ total: total,
50
+ unit: unit,
51
+ unsupported_files: unsupported_files,
52
+ additional_properties: struct
53
+ )
54
+ end
55
+
56
+ # Serialize an instance of RcsValidationResult to a JSON object
57
+ #
58
+ # @return [String]
59
+ def to_json(*_args)
60
+ @_field_set&.to_json
61
+ end
62
+
63
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
64
+ # hash and check each fields type against the current object's property
65
+ # definitions.
66
+ #
67
+ # @param obj [Object]
68
+ # @return [Void]
69
+ def self.validate_raw(obj:)
70
+ obj.total.is_a?(Float) != false || raise("Passed value for field obj.total is not the expected type, validation failed.")
71
+ obj.unit.is_a?(Float) != false || raise("Passed value for field obj.unit is not the expected type, validation failed.")
72
+ obj.unsupported_files.is_a?(Array) != false || raise("Passed value for field obj.unsupported_files is not the expected type, validation failed.")
73
+ end
74
+ end
75
+ end
76
+ end
@@ -0,0 +1,67 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "ostruct"
4
+ require "json"
5
+
6
+ module Pinnacle
7
+ module Types
8
+ class ReactionResult
9
+ # @return [Integer] ID of the message.
10
+ attr_reader :message_id
11
+ # @return [Integer] Unique identifier for the reaction.
12
+ attr_reader :reaction_message_id
13
+ # @return [OpenStruct] Additional properties unmapped to the current class definition
14
+ attr_reader :additional_properties
15
+ # @return [Object]
16
+ attr_reader :_field_set
17
+ protected :_field_set
18
+
19
+ OMIT = Object.new
20
+
21
+ # @param message_id [Integer] ID of the message.
22
+ # @param reaction_message_id [Integer] Unique identifier for the reaction.
23
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
24
+ # @return [Pinnacle::Types::ReactionResult]
25
+ def initialize(message_id:, reaction_message_id:, additional_properties: nil)
26
+ @message_id = message_id
27
+ @reaction_message_id = reaction_message_id
28
+ @additional_properties = additional_properties
29
+ @_field_set = { "messageId": message_id, "reactionMessageId": reaction_message_id }
30
+ end
31
+
32
+ # Deserialize a JSON object to an instance of ReactionResult
33
+ #
34
+ # @param json_object [String]
35
+ # @return [Pinnacle::Types::ReactionResult]
36
+ def self.from_json(json_object:)
37
+ struct = JSON.parse(json_object, object_class: OpenStruct)
38
+ parsed_json = JSON.parse(json_object)
39
+ message_id = parsed_json["messageId"]
40
+ reaction_message_id = parsed_json["reactionMessageId"]
41
+ new(
42
+ message_id: message_id,
43
+ reaction_message_id: reaction_message_id,
44
+ additional_properties: struct
45
+ )
46
+ end
47
+
48
+ # Serialize an instance of ReactionResult to a JSON object
49
+ #
50
+ # @return [String]
51
+ def to_json(*_args)
52
+ @_field_set&.to_json
53
+ end
54
+
55
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
56
+ # hash and check each fields type against the current object's property
57
+ # definitions.
58
+ #
59
+ # @param obj [Object]
60
+ # @return [Void]
61
+ def self.validate_raw(obj:)
62
+ obj.message_id.is_a?(Integer) != false || raise("Passed value for field obj.message_id is not the expected type, validation failed.")
63
+ obj.reaction_message_id.is_a?(Integer) != false || raise("Passed value for field obj.reaction_message_id is not the expected type, validation failed.")
64
+ end
65
+ end
66
+ end
67
+ end
@@ -0,0 +1,73 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "scheduled_send_response_config"
4
+ require "ostruct"
5
+ require "json"
6
+
7
+ module Pinnacle
8
+ module Types
9
+ class ScheduledMessaage
10
+ # @return [Integer] Unique identifier for the scheduled send.
11
+ attr_reader :schedule_id
12
+ # @return [Pinnacle::Types::ScheduledSendResponseConfig] Configuration for the scheduled message.
13
+ attr_reader :config
14
+ # @return [OpenStruct] Additional properties unmapped to the current class definition
15
+ attr_reader :additional_properties
16
+ # @return [Object]
17
+ attr_reader :_field_set
18
+ protected :_field_set
19
+
20
+ OMIT = Object.new
21
+
22
+ # @param schedule_id [Integer] Unique identifier for the scheduled send.
23
+ # @param config [Pinnacle::Types::ScheduledSendResponseConfig] Configuration for the scheduled message.
24
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
25
+ # @return [Pinnacle::Types::ScheduledMessaage]
26
+ def initialize(schedule_id:, config:, additional_properties: nil)
27
+ @schedule_id = schedule_id
28
+ @config = config
29
+ @additional_properties = additional_properties
30
+ @_field_set = { "scheduleId": schedule_id, "config": config }
31
+ end
32
+
33
+ # Deserialize a JSON object to an instance of ScheduledMessaage
34
+ #
35
+ # @param json_object [String]
36
+ # @return [Pinnacle::Types::ScheduledMessaage]
37
+ def self.from_json(json_object:)
38
+ struct = JSON.parse(json_object, object_class: OpenStruct)
39
+ parsed_json = JSON.parse(json_object)
40
+ schedule_id = parsed_json["scheduleId"]
41
+ if parsed_json["config"].nil?
42
+ config = nil
43
+ else
44
+ config = parsed_json["config"].to_json
45
+ config = Pinnacle::Types::ScheduledSendResponseConfig.from_json(json_object: config)
46
+ end
47
+ new(
48
+ schedule_id: schedule_id,
49
+ config: config,
50
+ additional_properties: struct
51
+ )
52
+ end
53
+
54
+ # Serialize an instance of ScheduledMessaage to a JSON object
55
+ #
56
+ # @return [String]
57
+ def to_json(*_args)
58
+ @_field_set&.to_json
59
+ end
60
+
61
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
62
+ # hash and check each fields type against the current object's property
63
+ # definitions.
64
+ #
65
+ # @param obj [Object]
66
+ # @return [Void]
67
+ def self.validate_raw(obj:)
68
+ obj.schedule_id.is_a?(Integer) != false || raise("Passed value for field obj.schedule_id is not the expected type, validation failed.")
69
+ Pinnacle::Types::ScheduledSendResponseConfig.validate_raw(obj: obj.config)
70
+ end
71
+ end
72
+ end
73
+ end
@@ -0,0 +1,89 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "ostruct"
4
+ require "json"
5
+
6
+ module Pinnacle
7
+ module Types
8
+ # Configuration for the scheduled message.
9
+ class ScheduledSendResponseConfig
10
+ # @return [String] When the message will be sent in ISO 8601 format.
11
+ attr_reader :send_at
12
+ # @return [String] AWS cron expression used for recurring messages.
13
+ attr_reader :recurrence
14
+ # @return [String] IANA timezone identifier.
15
+ attr_reader :timezone
16
+ # @return [String] When the recurring messages stops in ISO 8601 format.
17
+ attr_reader :end_date
18
+ # @return [OpenStruct] Additional properties unmapped to the current class definition
19
+ attr_reader :additional_properties
20
+ # @return [Object]
21
+ attr_reader :_field_set
22
+ protected :_field_set
23
+
24
+ OMIT = Object.new
25
+
26
+ # @param send_at [String] When the message will be sent in ISO 8601 format.
27
+ # @param recurrence [String] AWS cron expression used for recurring messages.
28
+ # @param timezone [String] IANA timezone identifier.
29
+ # @param end_date [String] When the recurring messages stops in ISO 8601 format.
30
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
31
+ # @return [Pinnacle::Types::ScheduledSendResponseConfig]
32
+ def initialize(send_at:, timezone:, recurrence: OMIT, end_date: OMIT, additional_properties: nil)
33
+ @send_at = send_at
34
+ @recurrence = recurrence if recurrence != OMIT
35
+ @timezone = timezone
36
+ @end_date = end_date if end_date != OMIT
37
+ @additional_properties = additional_properties
38
+ @_field_set = {
39
+ "sendAt": send_at,
40
+ "recurrence": recurrence,
41
+ "timezone": timezone,
42
+ "endDate": end_date
43
+ }.reject do |_k, v|
44
+ v == OMIT
45
+ end
46
+ end
47
+
48
+ # Deserialize a JSON object to an instance of ScheduledSendResponseConfig
49
+ #
50
+ # @param json_object [String]
51
+ # @return [Pinnacle::Types::ScheduledSendResponseConfig]
52
+ def self.from_json(json_object:)
53
+ struct = JSON.parse(json_object, object_class: OpenStruct)
54
+ parsed_json = JSON.parse(json_object)
55
+ send_at = parsed_json["sendAt"]
56
+ recurrence = parsed_json["recurrence"]
57
+ timezone = parsed_json["timezone"]
58
+ end_date = parsed_json["endDate"]
59
+ new(
60
+ send_at: send_at,
61
+ recurrence: recurrence,
62
+ timezone: timezone,
63
+ end_date: end_date,
64
+ additional_properties: struct
65
+ )
66
+ end
67
+
68
+ # Serialize an instance of ScheduledSendResponseConfig to a JSON object
69
+ #
70
+ # @return [String]
71
+ def to_json(*_args)
72
+ @_field_set&.to_json
73
+ end
74
+
75
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
76
+ # hash and check each fields type against the current object's property
77
+ # definitions.
78
+ #
79
+ # @param obj [Object]
80
+ # @return [Void]
81
+ def self.validate_raw(obj:)
82
+ obj.send_at.is_a?(String) != false || raise("Passed value for field obj.send_at is not the expected type, validation failed.")
83
+ obj.recurrence&.is_a?(String) != false || raise("Passed value for field obj.recurrence is not the expected type, validation failed.")
84
+ obj.timezone.is_a?(String) != false || raise("Passed value for field obj.timezone is not the expected type, validation failed.")
85
+ obj.end_date&.is_a?(String) != false || raise("Passed value for field obj.end_date is not the expected type, validation failed.")
86
+ end
87
+ end
88
+ end
89
+ end