klaviyo-api-sdk 14.0.1 → 16.0.0

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 (342) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +17 -0
  3. data/README.md +332 -298
  4. data/klaviyo-api-sdk.gemspec +1 -1
  5. data/lib/klaviyo-api-sdk/api/accounts_api.rb +6 -6
  6. data/lib/klaviyo-api-sdk/api/campaigns_api.rb +82 -82
  7. data/lib/klaviyo-api-sdk/api/catalogs_api.rb +235 -235
  8. data/lib/klaviyo-api-sdk/api/coupons_api.rb +63 -63
  9. data/lib/klaviyo-api-sdk/api/custom_objects_api.rb +89 -13
  10. data/lib/klaviyo-api-sdk/api/data_privacy_api.rb +1 -1
  11. data/lib/klaviyo-api-sdk/api/events_api.rb +35 -35
  12. data/lib/klaviyo-api-sdk/api/flows_api.rb +180 -104
  13. data/lib/klaviyo-api-sdk/api/forms_api.rb +107 -51
  14. data/lib/klaviyo-api-sdk/api/images_api.rb +15 -15
  15. data/lib/klaviyo-api-sdk/api/lists_api.rb +60 -60
  16. data/lib/klaviyo-api-sdk/api/metrics_api.rb +86 -86
  17. data/lib/klaviyo-api-sdk/api/profiles_api.rb +132 -132
  18. data/lib/klaviyo-api-sdk/api/reporting_api.rb +13 -13
  19. data/lib/klaviyo-api-sdk/api/reviews_api.rb +21 -21
  20. data/lib/klaviyo-api-sdk/api/segments_api.rb +54 -54
  21. data/lib/klaviyo-api-sdk/api/tags_api.rb +58 -58
  22. data/lib/klaviyo-api-sdk/api/templates_api.rb +54 -54
  23. data/lib/klaviyo-api-sdk/api/tracking_settings_api.rb +9 -9
  24. data/lib/klaviyo-api-sdk/api/web_feeds_api.rb +15 -15
  25. data/lib/klaviyo-api-sdk/api/webhooks_api.rb +15 -15
  26. data/lib/klaviyo-api-sdk/api_client.rb +1 -1
  27. data/lib/klaviyo-api-sdk/models/account_default_enum.rb +35 -0
  28. data/lib/klaviyo-api-sdk/models/action_output_condition.rb +265 -0
  29. data/lib/klaviyo-api-sdk/models/action_output_condition_filter.rb +225 -0
  30. data/lib/klaviyo-api-sdk/models/action_output_condition_filter2.rb +108 -0
  31. data/lib/klaviyo-api-sdk/models/action_output_condition_group.rb +225 -0
  32. data/lib/klaviyo-api-sdk/models/action_output_enum.rb +35 -0
  33. data/lib/klaviyo-api-sdk/models/action_output_split_action.rb +263 -0
  34. data/lib/klaviyo-api-sdk/models/action_output_split_action_data.rb +223 -0
  35. data/lib/klaviyo-api-sdk/models/action_output_split_enum.rb +35 -0
  36. data/lib/klaviyo-api-sdk/models/additional_field.rb +237 -0
  37. data/lib/klaviyo-api-sdk/models/after_close_or_submit_timeout_enum.rb +35 -0
  38. data/lib/klaviyo-api-sdk/models/after_close_timeout.rb +242 -0
  39. data/lib/klaviyo-api-sdk/models/after_close_timeout_properties.rb +220 -0
  40. data/lib/klaviyo-api-sdk/models/age_gate.rb +289 -0
  41. data/lib/klaviyo-api-sdk/models/age_gate_enum.rb +35 -0
  42. data/lib/klaviyo-api-sdk/models/age_gate_properties.rb +349 -0
  43. data/lib/klaviyo-api-sdk/models/age_gate_styles.rb +228 -0
  44. data/lib/klaviyo-api-sdk/models/back_in_stock.rb +242 -0
  45. data/lib/klaviyo-api-sdk/models/back_in_stock_dynamic_button_border_styles.rb +289 -0
  46. data/lib/klaviyo-api-sdk/models/back_in_stock_dynamic_button_data.rb +284 -0
  47. data/lib/klaviyo-api-sdk/models/back_in_stock_dynamic_button_drop_shadow_styles.rb +231 -0
  48. data/lib/klaviyo-api-sdk/models/back_in_stock_dynamic_button_styles.rb +330 -0
  49. data/lib/klaviyo-api-sdk/models/back_in_stock_dynamic_button_text_styles.rb +318 -0
  50. data/lib/klaviyo-api-sdk/models/back_in_stock_email_consent_checkbox.rb +256 -0
  51. data/lib/klaviyo-api-sdk/models/back_in_stock_email_consent_checkbox_properties.rb +339 -0
  52. data/lib/klaviyo-api-sdk/models/back_in_stock_email_consent_checkbox_styles.rb +274 -0
  53. data/lib/klaviyo-api-sdk/models/back_in_stock_properties.rb +231 -0
  54. data/lib/klaviyo-api-sdk/models/background_image.rb +232 -0
  55. data/lib/klaviyo-api-sdk/models/background_image_styles.rb +323 -0
  56. data/lib/klaviyo-api-sdk/models/banner_styles.rb +290 -0
  57. data/lib/klaviyo-api-sdk/models/bis_promotional_email_checkbox_enum.rb +35 -0
  58. data/lib/klaviyo-api-sdk/models/border_style.rb +285 -0
  59. data/lib/klaviyo-api-sdk/models/button.rb +265 -0
  60. data/lib/klaviyo-api-sdk/models/button_action.rb +113 -0
  61. data/lib/klaviyo-api-sdk/models/button_properties.rb +268 -0
  62. data/lib/klaviyo-api-sdk/models/button_styles.rb +333 -0
  63. data/lib/klaviyo-api-sdk/models/campaign_values_request_dto_resource_object_attributes.rb +15 -2
  64. data/lib/klaviyo-api-sdk/models/cart_item_count.rb +242 -0
  65. data/lib/klaviyo-api-sdk/models/cart_item_count_enum.rb +35 -0
  66. data/lib/klaviyo-api-sdk/models/cart_item_count_properties.rb +264 -0
  67. data/lib/klaviyo-api-sdk/models/cart_product.rb +242 -0
  68. data/lib/klaviyo-api-sdk/models/cart_product_enum.rb +35 -0
  69. data/lib/klaviyo-api-sdk/models/cart_product_properties.rb +264 -0
  70. data/lib/klaviyo-api-sdk/models/cart_value.rb +242 -0
  71. data/lib/klaviyo-api-sdk/models/cart_value_enum.rb +35 -0
  72. data/lib/klaviyo-api-sdk/models/cart_value_properties.rb +264 -0
  73. data/lib/klaviyo-api-sdk/models/channel.rb +247 -0
  74. data/lib/klaviyo-api-sdk/models/channel_enum.rb +35 -0
  75. data/lib/klaviyo-api-sdk/models/channel_properties.rb +258 -0
  76. data/lib/klaviyo-api-sdk/models/channel_settings.rb +227 -0
  77. data/lib/klaviyo-api-sdk/models/checkboxes.rb +256 -0
  78. data/lib/klaviyo-api-sdk/models/checkboxes_enum.rb +35 -0
  79. data/lib/klaviyo-api-sdk/models/checkboxes_properties.rb +324 -0
  80. data/lib/klaviyo-api-sdk/models/checkboxes_styles.rb +298 -0
  81. data/lib/klaviyo-api-sdk/models/close.rb +256 -0
  82. data/lib/klaviyo-api-sdk/models/close_button_style.rb +273 -0
  83. data/lib/klaviyo-api-sdk/models/close_enum.rb +35 -0
  84. data/lib/klaviyo-api-sdk/models/close_properties.rb +219 -0
  85. data/lib/klaviyo-api-sdk/models/column.rb +239 -0
  86. data/lib/klaviyo-api-sdk/models/column_styles.rb +228 -0
  87. data/lib/klaviyo-api-sdk/models/condition_group_conditions_inner.rb +3 -1
  88. data/lib/klaviyo-api-sdk/models/conditional_branch_action_data_profile_filter_condition_groups_inner_conditions_inner.rb +1 -0
  89. data/lib/klaviyo-api-sdk/models/content_experiment_action.rb +264 -0
  90. data/lib/klaviyo-api-sdk/models/content_experiment_enum.rb +35 -0
  91. data/lib/klaviyo-api-sdk/models/countdown_timer.rb +256 -0
  92. data/lib/klaviyo-api-sdk/models/countdown_timer_enum.rb +35 -0
  93. data/lib/klaviyo-api-sdk/models/countdown_timer_properties.rb +305 -0
  94. data/lib/klaviyo-api-sdk/models/countdown_timer_properties_configuration.rb +104 -0
  95. data/lib/klaviyo-api-sdk/models/countdown_timer_styles.rb +305 -0
  96. data/lib/klaviyo-api-sdk/models/coupon.rb +256 -0
  97. data/lib/klaviyo-api-sdk/models/coupon_properties.rb +266 -0
  98. data/lib/klaviyo-api-sdk/models/coupon_properties_coupon.rb +104 -0
  99. data/lib/klaviyo-api-sdk/models/coupon_styles.rb +258 -0
  100. data/lib/klaviyo-api-sdk/models/custom_enum.rb +35 -0
  101. data/lib/klaviyo-api-sdk/models/custom_javascript.rb +248 -0
  102. data/lib/klaviyo-api-sdk/models/custom_javascript_enum.rb +35 -0
  103. data/lib/klaviyo-api-sdk/models/data_source_create_query_resource_object_attributes.rb +1 -1
  104. data/lib/klaviyo-api-sdk/models/data_source_record_create_job_create_query.rb +223 -0
  105. data/lib/klaviyo-api-sdk/models/data_source_record_create_job_create_query_resource_object.rb +246 -0
  106. data/lib/klaviyo-api-sdk/models/data_source_record_create_job_create_query_resource_object_attributes.rb +223 -0
  107. data/lib/klaviyo-api-sdk/models/data_source_record_create_job_create_query_resource_object_attributes_data_source_record.rb +224 -0
  108. data/lib/klaviyo-api-sdk/models/data_source_record_create_job_enum.rb +35 -0
  109. data/lib/klaviyo-api-sdk/models/date.rb +256 -0
  110. data/lib/klaviyo-api-sdk/models/date_properties.rb +319 -0
  111. data/lib/klaviyo-api-sdk/models/date_styles.rb +228 -0
  112. data/lib/klaviyo-api-sdk/models/delay.rb +242 -0
  113. data/lib/klaviyo-api-sdk/models/delay_enum.rb +35 -0
  114. data/lib/klaviyo-api-sdk/models/delay_properties.rb +220 -0
  115. data/lib/klaviyo-api-sdk/models/device.rb +242 -0
  116. data/lib/klaviyo-api-sdk/models/device_enum.rb +35 -0
  117. data/lib/klaviyo-api-sdk/models/device_properties.rb +255 -0
  118. data/lib/klaviyo-api-sdk/models/dollar_sign_age_gated_date_of_birth_enum.rb +35 -0
  119. data/lib/klaviyo-api-sdk/models/dollar_sign_email_enum.rb +35 -0
  120. data/lib/klaviyo-api-sdk/models/drop_shadow.rb +243 -0
  121. data/lib/klaviyo-api-sdk/models/dropdown.rb +256 -0
  122. data/lib/klaviyo-api-sdk/models/dropdown_enum.rb +35 -0
  123. data/lib/klaviyo-api-sdk/models/dropdown_properties.rb +324 -0
  124. data/lib/klaviyo-api-sdk/models/dropdown_styles.rb +228 -0
  125. data/lib/klaviyo-api-sdk/models/dynamic_button.rb +282 -0
  126. data/lib/klaviyo-api-sdk/models/effective_date_enum.rb +35 -0
  127. data/lib/klaviyo-api-sdk/models/effective_date_filter.rb +237 -0
  128. data/lib/klaviyo-api-sdk/models/email.rb +256 -0
  129. data/lib/klaviyo-api-sdk/models/email_properties.rb +303 -0
  130. data/lib/klaviyo-api-sdk/models/email_styles.rb +228 -0
  131. data/lib/klaviyo-api-sdk/models/error_messages.rb +231 -0
  132. data/lib/klaviyo-api-sdk/models/exit_intent.rb +248 -0
  133. data/lib/klaviyo-api-sdk/models/exit_intent_enum.rb +35 -0
  134. data/lib/klaviyo-api-sdk/models/explicitly_reachable.rb +239 -0
  135. data/lib/klaviyo-api-sdk/models/explicitly_reachable_enum.rb +35 -0
  136. data/lib/klaviyo-api-sdk/models/explicitly_reachable_filters_inner.rb +106 -0
  137. data/lib/klaviyo-api-sdk/models/explicitly_unreachable.rb +239 -0
  138. data/lib/klaviyo-api-sdk/models/explicitly_unreachable_enum.rb +35 -0
  139. data/lib/klaviyo-api-sdk/models/fixed_enum.rb +35 -0
  140. data/lib/klaviyo-api-sdk/models/fixed_timer_configuration.rb +281 -0
  141. data/lib/klaviyo-api-sdk/models/flow_action_enum.rb +35 -0
  142. data/lib/klaviyo-api-sdk/models/flow_action_update_query.rb +223 -0
  143. data/lib/klaviyo-api-sdk/models/flow_action_update_query_resource_object.rb +251 -0
  144. data/lib/klaviyo-api-sdk/models/flow_action_update_query_resource_object_attributes.rb +223 -0
  145. data/lib/klaviyo-api-sdk/models/flow_action_update_query_resource_object_attributes_definition.rb +124 -0
  146. data/lib/klaviyo-api-sdk/models/flow_definition_actions_inner.rb +3 -0
  147. data/lib/klaviyo-api-sdk/models/flow_definition_profile_filter_condition_groups_inner_conditions_inner.rb +1 -0
  148. data/lib/klaviyo-api-sdk/models/flow_email_additional_filters_condition_groups_inner_conditions_inner.rb +1 -0
  149. data/lib/klaviyo-api-sdk/models/flow_push_notification.rb +1 -1
  150. data/lib/klaviyo-api-sdk/models/flow_push_notification_additional_filters_condition_groups_inner_conditions_inner.rb +1 -0
  151. data/lib/klaviyo-api-sdk/models/flow_series_request_dto_resource_object_attributes.rb +15 -2
  152. data/lib/klaviyo-api-sdk/models/flow_sms_additional_filters_condition_groups_inner_conditions_inner.rb +1 -0
  153. data/lib/klaviyo-api-sdk/models/flow_values_request_dto_resource_object_attributes.rb +15 -2
  154. data/lib/klaviyo-api-sdk/models/flow_whats_app.rb +271 -0
  155. data/lib/klaviyo-api-sdk/models/form_create_query.rb +223 -0
  156. data/lib/klaviyo-api-sdk/models/form_create_query_resource_object.rb +237 -0
  157. data/lib/klaviyo-api-sdk/models/form_create_query_resource_object_attributes.rb +302 -0
  158. data/lib/klaviyo-api-sdk/models/form_definition.rb +225 -0
  159. data/lib/klaviyo-api-sdk/models/form_subscribe_filter.rb +246 -0
  160. data/lib/klaviyo-api-sdk/models/{profile_partial_update_query_resource_object_attributes.rb → go_to_inbox.rb} +76 -115
  161. data/lib/klaviyo-api-sdk/models/go_to_inbox_enum.rb +35 -0
  162. data/lib/klaviyo-api-sdk/models/html_text.rb +251 -0
  163. data/lib/klaviyo-api-sdk/models/html_text_enum.rb +35 -0
  164. data/lib/klaviyo-api-sdk/models/html_text_properties.rb +253 -0
  165. data/lib/klaviyo-api-sdk/models/html_text_styles.rb +228 -0
  166. data/lib/klaviyo-api-sdk/models/identified_profiles.rb +248 -0
  167. data/lib/klaviyo-api-sdk/models/identified_profiles_enum.rb +35 -0
  168. data/lib/klaviyo-api-sdk/models/image.rb +266 -0
  169. data/lib/klaviyo-api-sdk/models/image_action.rb +113 -0
  170. data/lib/klaviyo-api-sdk/models/image_asset_properties.rb +259 -0
  171. data/lib/klaviyo-api-sdk/models/image_properties.rb +268 -0
  172. data/lib/klaviyo-api-sdk/models/image_styles.rb +284 -0
  173. data/lib/klaviyo-api-sdk/models/implicitly_or_explicitly_reachable.rb +223 -0
  174. data/lib/klaviyo-api-sdk/models/implicitly_or_explicitly_reachable_enum.rb +35 -0
  175. data/lib/klaviyo-api-sdk/models/implicitly_or_explicitly_unreachable.rb +223 -0
  176. data/lib/klaviyo-api-sdk/models/implicitly_or_explicitly_unreachable_enum.rb +35 -0
  177. data/lib/klaviyo-api-sdk/models/implicitly_reachable.rb +223 -0
  178. data/lib/klaviyo-api-sdk/models/implicitly_reachable_enum.rb +35 -0
  179. data/lib/klaviyo-api-sdk/models/implicitly_unreachable.rb +223 -0
  180. data/lib/klaviyo-api-sdk/models/implicitly_unreachable_enum.rb +35 -0
  181. data/lib/klaviyo-api-sdk/models/input_styles.rb +317 -0
  182. data/lib/klaviyo-api-sdk/models/link_styles.rb +229 -0
  183. data/lib/klaviyo-api-sdk/models/list_create_query_resource_object_attributes.rb +49 -4
  184. data/lib/klaviyo-api-sdk/models/list_partial_update_query_resource_object.rb +1 -1
  185. data/lib/klaviyo-api-sdk/models/list_partial_update_query_resource_object_attributes.rb +265 -0
  186. data/lib/klaviyo-api-sdk/models/list_update_action.rb +18 -18
  187. data/lib/klaviyo-api-sdk/models/list_update_action_data.rb +1 -1
  188. data/lib/klaviyo-api-sdk/models/lists_and_segments.rb +247 -0
  189. data/lib/klaviyo-api-sdk/models/lists_and_segments_enum.rb +35 -0
  190. data/lib/klaviyo-api-sdk/models/lists_and_segments_properties.rb +233 -0
  191. data/lib/klaviyo-api-sdk/models/location.rb +247 -0
  192. data/lib/klaviyo-api-sdk/models/location_enum.rb +35 -0
  193. data/lib/klaviyo-api-sdk/models/location_properties.rb +233 -0
  194. data/lib/klaviyo-api-sdk/models/location_properties_allow_list_inner.rb +103 -0
  195. data/lib/klaviyo-api-sdk/models/margin.rb +253 -0
  196. data/lib/klaviyo-api-sdk/models/method_filter.rb +272 -0
  197. data/lib/klaviyo-api-sdk/models/metric_aggregate_query_resource_object_attributes.rb +2 -2
  198. data/lib/klaviyo-api-sdk/models/mobile_overlay.rb +266 -0
  199. data/lib/klaviyo-api-sdk/models/next_step.rb +256 -0
  200. data/lib/klaviyo-api-sdk/models/next_step_enum.rb +35 -0
  201. data/lib/klaviyo-api-sdk/models/next_step_properties.rb +219 -0
  202. data/lib/klaviyo-api-sdk/models/open_form.rb +292 -0
  203. data/lib/klaviyo-api-sdk/models/open_form_enum.rb +35 -0
  204. data/lib/klaviyo-api-sdk/models/open_form_properties.rb +234 -0
  205. data/lib/klaviyo-api-sdk/models/opt_in_code.rb +256 -0
  206. data/lib/klaviyo-api-sdk/models/opt_in_code_enum.rb +35 -0
  207. data/lib/klaviyo-api-sdk/models/opt_in_code_properties.rb +314 -0
  208. data/lib/klaviyo-api-sdk/models/opt_in_code_styles.rb +228 -0
  209. data/lib/klaviyo-api-sdk/models/opt_in_promotional_email_enum.rb +35 -0
  210. data/lib/klaviyo-api-sdk/models/opt_in_promotional_sms_enum.rb +35 -0
  211. data/lib/klaviyo-api-sdk/models/padding.rb +253 -0
  212. data/lib/klaviyo-api-sdk/models/page_visits.rb +242 -0
  213. data/lib/klaviyo-api-sdk/models/page_visits_enum.rb +35 -0
  214. data/lib/klaviyo-api-sdk/models/page_visits_properties.rb +220 -0
  215. data/lib/klaviyo-api-sdk/models/phone_number.rb +256 -0
  216. data/lib/klaviyo-api-sdk/models/phone_number_consent_channel_settings.rb +254 -0
  217. data/lib/klaviyo-api-sdk/models/phone_number_enum.rb +35 -0
  218. data/lib/klaviyo-api-sdk/models/phone_number_properties.rb +326 -0
  219. data/lib/klaviyo-api-sdk/models/phone_number_styles.rb +228 -0
  220. data/lib/klaviyo-api-sdk/models/previously_submitted.rb +248 -0
  221. data/lib/klaviyo-api-sdk/models/previously_submitted_enum.rb +35 -0
  222. data/lib/klaviyo-api-sdk/models/profile_event_tracked.rb +247 -0
  223. data/lib/klaviyo-api-sdk/models/profile_event_tracked_enum.rb +35 -0
  224. data/lib/klaviyo-api-sdk/models/profile_event_tracked_properties.rb +223 -0
  225. data/lib/klaviyo-api-sdk/models/profile_has_not_received_email_message_condition.rb +1 -1
  226. data/lib/klaviyo-api-sdk/models/{profile_not_in_flow_condition_timeframe_filter.rb → profile_has_not_received_email_message_condition_timeframe_filter.rb} +1 -1
  227. data/lib/klaviyo-api-sdk/models/profile_has_not_received_push_message_condition.rb +1 -1
  228. data/lib/klaviyo-api-sdk/models/profile_has_not_received_sms_message_condition.rb +1 -1
  229. data/lib/klaviyo-api-sdk/models/profile_identifier_dto_resource_object_attributes.rb +5 -15
  230. data/lib/klaviyo-api-sdk/models/profile_metric_funnel_enum.rb +35 -0
  231. data/lib/klaviyo-api-sdk/models/profile_metric_funnel_steps.rb +249 -0
  232. data/lib/klaviyo-api-sdk/models/profile_not_in_flow_condition.rb +1 -1
  233. data/lib/klaviyo-api-sdk/models/profile_partial_update_query_resource_object.rb +1 -1
  234. data/lib/klaviyo-api-sdk/models/profile_permissions_condition.rb +286 -0
  235. data/lib/klaviyo-api-sdk/models/profile_permissions_condition_permission.rb +108 -0
  236. data/lib/klaviyo-api-sdk/models/profile_permissions_enum.rb +35 -0
  237. data/lib/klaviyo-api-sdk/models/profile_upsert_query_resource_object_attributes.rb +1 -12
  238. data/lib/klaviyo-api-sdk/models/promotional_sms_checkbox_enum.rb +35 -0
  239. data/lib/klaviyo-api-sdk/models/promotional_sms_subscription.rb +299 -0
  240. data/lib/klaviyo-api-sdk/models/promotional_sms_subscription_enum.rb +35 -0
  241. data/lib/klaviyo-api-sdk/models/property_option.rb +237 -0
  242. data/lib/klaviyo-api-sdk/models/push_profile_upsert_query_resource_object_attributes.rb +1 -12
  243. data/lib/klaviyo-api-sdk/models/quote_style.rb +321 -0
  244. data/lib/klaviyo-api-sdk/models/radio_buttons.rb +256 -0
  245. data/lib/klaviyo-api-sdk/models/radio_buttons_enum.rb +35 -0
  246. data/lib/klaviyo-api-sdk/models/radio_buttons_properties.rb +324 -0
  247. data/lib/klaviyo-api-sdk/models/radio_buttons_styles.rb +298 -0
  248. data/lib/klaviyo-api-sdk/models/rating_style.rb +323 -0
  249. data/lib/klaviyo-api-sdk/models/recorded_date_enum.rb +35 -0
  250. data/lib/klaviyo-api-sdk/models/recorded_date_filter.rb +237 -0
  251. data/lib/klaviyo-api-sdk/models/redirect.rb +261 -0
  252. data/lib/klaviyo-api-sdk/models/redirect_enum.rb +35 -0
  253. data/lib/klaviyo-api-sdk/models/redirect_properties.rb +244 -0
  254. data/lib/klaviyo-api-sdk/models/resend_opt_in_code.rb +299 -0
  255. data/lib/klaviyo-api-sdk/models/resend_opt_in_code_enum.rb +35 -0
  256. data/lib/klaviyo-api-sdk/models/review.rb +256 -0
  257. data/lib/klaviyo-api-sdk/models/review_properties.rb +327 -0
  258. data/lib/klaviyo-api-sdk/models/review_styles.rb +266 -0
  259. data/lib/klaviyo-api-sdk/models/reviewer_name_style.rb +345 -0
  260. data/lib/klaviyo-api-sdk/models/rich_text_margin.rb +311 -0
  261. data/lib/klaviyo-api-sdk/models/rich_text_style.rb +343 -0
  262. data/lib/klaviyo-api-sdk/models/rich_text_styles.rb +281 -0
  263. data/lib/klaviyo-api-sdk/models/row.rb +235 -0
  264. data/lib/klaviyo-api-sdk/models/row_blocks_inner.rb +122 -0
  265. data/lib/klaviyo-api-sdk/models/scroll.rb +242 -0
  266. data/lib/klaviyo-api-sdk/models/scroll_percentage_enum.rb +35 -0
  267. data/lib/klaviyo-api-sdk/models/scroll_properties.rb +220 -0
  268. data/lib/klaviyo-api-sdk/models/segments_profile_metric_funnel_condition.rb +298 -0
  269. data/lib/klaviyo-api-sdk/models/segments_profile_metric_funnel_condition_timeframe_filter.rb +105 -0
  270. data/lib/klaviyo-api-sdk/models/send_email_action_data.rb +0 -5
  271. data/lib/klaviyo-api-sdk/models/send_push_notification_action_data.rb +0 -5
  272. data/lib/klaviyo-api-sdk/models/send_sms_action_data.rb +0 -5
  273. data/lib/klaviyo-api-sdk/models/send_whats_app_action.rb +263 -0
  274. data/lib/klaviyo-api-sdk/models/send_whats_app_action_data.rb +264 -0
  275. data/lib/klaviyo-api-sdk/models/send_whatsapp_enum.rb +35 -0
  276. data/lib/klaviyo-api-sdk/models/side_image_settings.rb +290 -0
  277. data/lib/klaviyo-api-sdk/models/signup_counter.rb +256 -0
  278. data/lib/klaviyo-api-sdk/models/signup_counter_enum.rb +35 -0
  279. data/lib/klaviyo-api-sdk/models/signup_counter_properties.rb +297 -0
  280. data/lib/klaviyo-api-sdk/models/signup_counter_styles.rb +228 -0
  281. data/lib/klaviyo-api-sdk/models/sms_consent_checkbox.rb +256 -0
  282. data/lib/klaviyo-api-sdk/models/sms_consent_checkbox_properties.rb +350 -0
  283. data/lib/klaviyo-api-sdk/models/sms_consent_checkbox_styles.rb +274 -0
  284. data/lib/klaviyo-api-sdk/models/sms_disclosure.rb +251 -0
  285. data/lib/klaviyo-api-sdk/models/sms_disclosure_account_default.rb +233 -0
  286. data/lib/klaviyo-api-sdk/models/sms_disclosure_custom.rb +267 -0
  287. data/lib/klaviyo-api-sdk/models/sms_disclosure_enum.rb +35 -0
  288. data/lib/klaviyo-api-sdk/models/sms_disclosure_properties.rb +251 -0
  289. data/lib/klaviyo-api-sdk/models/sms_disclosure_properties_content.rb +104 -0
  290. data/lib/klaviyo-api-sdk/models/sms_disclosure_styles.rb +246 -0
  291. data/lib/klaviyo-api-sdk/models/sms_disclosure_text_style.rb +299 -0
  292. data/lib/klaviyo-api-sdk/models/spin_to_win.rb +256 -0
  293. data/lib/klaviyo-api-sdk/models/spin_to_win_enum.rb +35 -0
  294. data/lib/klaviyo-api-sdk/models/spin_to_win_properties.rb +269 -0
  295. data/lib/klaviyo-api-sdk/models/spin_to_win_slice_config.rb +251 -0
  296. data/lib/klaviyo-api-sdk/models/spin_to_win_slice_style.rb +231 -0
  297. data/lib/klaviyo-api-sdk/models/spin_to_win_styles.rb +303 -0
  298. data/lib/klaviyo-api-sdk/models/static_coupon_config.rb +233 -0
  299. data/lib/klaviyo-api-sdk/models/step.rb +257 -0
  300. data/lib/klaviyo-api-sdk/models/string_operator_filter.rb +2 -2
  301. data/lib/klaviyo-api-sdk/models/string_phone_operator_array_filter.rb +1 -1
  302. data/lib/klaviyo-api-sdk/models/submit_back_in_stock.rb +287 -0
  303. data/lib/klaviyo-api-sdk/models/submit_back_in_stock_enum.rb +35 -0
  304. data/lib/klaviyo-api-sdk/models/submit_back_in_stock_properties.rb +219 -0
  305. data/lib/klaviyo-api-sdk/models/submit_opt_in_code.rb +299 -0
  306. data/lib/klaviyo-api-sdk/models/submit_opt_in_code_enum.rb +35 -0
  307. data/lib/klaviyo-api-sdk/models/subscribe_method_enum.rb +35 -0
  308. data/lib/klaviyo-api-sdk/models/subscribe_via_sms.rb +292 -0
  309. data/lib/klaviyo-api-sdk/models/subscribe_via_sms_enum.rb +35 -0
  310. data/lib/klaviyo-api-sdk/models/subscribe_via_sms_properties.rb +243 -0
  311. data/lib/klaviyo-api-sdk/models/subscribe_via_whats_app.rb +292 -0
  312. data/lib/klaviyo-api-sdk/models/subscribe_via_whats_app_properties.rb +243 -0
  313. data/lib/klaviyo-api-sdk/models/subscribe_via_whatsapp_enum.rb +35 -0
  314. data/lib/klaviyo-api-sdk/models/subscription_channels.rb +13 -4
  315. data/lib/klaviyo-api-sdk/models/teaser.rb +405 -0
  316. data/lib/klaviyo-api-sdk/models/teaser_styles.rb +267 -0
  317. data/lib/klaviyo-api-sdk/models/text.rb +256 -0
  318. data/lib/klaviyo-api-sdk/models/text_properties.rb +308 -0
  319. data/lib/klaviyo-api-sdk/models/text_style.rb +299 -0
  320. data/lib/klaviyo-api-sdk/models/text_style_font_family.rb +103 -0
  321. data/lib/klaviyo-api-sdk/models/text_styles.rb +228 -0
  322. data/lib/klaviyo-api-sdk/models/underline_enum.rb +35 -0
  323. data/lib/klaviyo-api-sdk/models/unidentified_profiles.rb +248 -0
  324. data/lib/klaviyo-api-sdk/models/unidentified_profiles_enum.rb +35 -0
  325. data/lib/klaviyo-api-sdk/models/unique_coupon_config.rb +299 -0
  326. data/lib/klaviyo-api-sdk/models/unique_enum.rb +35 -0
  327. data/lib/klaviyo-api-sdk/models/unsubscription_channels.rb +13 -4
  328. data/lib/klaviyo-api-sdk/models/url_patterns.rb +242 -0
  329. data/lib/klaviyo-api-sdk/models/url_patterns_enum.rb +35 -0
  330. data/lib/klaviyo-api-sdk/models/url_patterns_properties.rb +233 -0
  331. data/lib/klaviyo-api-sdk/models/variable_enum.rb +35 -0
  332. data/lib/klaviyo-api-sdk/models/variable_timer_configuration.rb +265 -0
  333. data/lib/klaviyo-api-sdk/models/version.rb +409 -0
  334. data/lib/klaviyo-api-sdk/models/version_properties.rb +299 -0
  335. data/lib/klaviyo-api-sdk/models/version_styles.rb +412 -0
  336. data/lib/klaviyo-api-sdk/models/version_triggers_inner.rb +121 -0
  337. data/lib/klaviyo-api-sdk/models/whats_app_subscription_parameters.rb +227 -0
  338. data/lib/klaviyo-api-sdk/models/whats_app_unsubscription_parameters.rb +236 -0
  339. data/lib/klaviyo-api-sdk.rb +280 -2
  340. data/lib/klaviyo-api-sdk.rb.bak +280 -2
  341. data/spec/.DS_Store +0 -0
  342. metadata +283 -4
@@ -0,0 +1,323 @@
1
+ =begin
2
+ #Klaviyo API
3
+
4
+ #The Klaviyo REST API. Please visit https://developers.klaviyo.com for more details.
5
+
6
+ Contact: developers@klaviyo.com
7
+ Generated by: https://openapi-generator.tech
8
+ OpenAPI Generator version: 6.2.1
9
+
10
+ =end
11
+
12
+ require 'date'
13
+ require 'time'
14
+
15
+ module KlaviyoAPI
16
+ class RatingStyle
17
+ attr_accessor :color
18
+
19
+ attr_accessor :empty_color
20
+
21
+ attr_accessor :font_size
22
+
23
+ # Enumeration for review shapes.
24
+ attr_accessor :shape
25
+
26
+ # Horizontal alignment enumeration.
27
+ attr_accessor :alignment
28
+
29
+ attr_accessor :character_spacing
30
+
31
+ class EnumAttributeValidator
32
+ attr_reader :datatype
33
+ attr_reader :allowable_values
34
+
35
+ def initialize(datatype, allowable_values)
36
+ @allowable_values = allowable_values.map do |value|
37
+ case datatype.to_s
38
+ when /Integer/i
39
+ value.to_i
40
+ when /Float/i
41
+ value.to_f
42
+ else
43
+ value
44
+ end
45
+ end
46
+ end
47
+
48
+ def valid?(value)
49
+ !value || allowable_values.include?(value)
50
+ end
51
+ end
52
+
53
+ # Attribute mapping from ruby-style variable name to JSON key.
54
+ def self.attribute_map
55
+ {
56
+ :'color' => :'color',
57
+ :'empty_color' => :'empty_color',
58
+ :'font_size' => :'font_size',
59
+ :'shape' => :'shape',
60
+ :'alignment' => :'alignment',
61
+ :'character_spacing' => :'character_spacing'
62
+ }
63
+ end
64
+
65
+ # Returns all the JSON keys this model knows about
66
+ def self.acceptable_attributes
67
+ attribute_map.values
68
+ end
69
+
70
+ # Attribute type mapping.
71
+ def self.openapi_types
72
+ {
73
+ :'color' => :'String',
74
+ :'empty_color' => :'String',
75
+ :'font_size' => :'Integer',
76
+ :'shape' => :'String',
77
+ :'alignment' => :'String',
78
+ :'character_spacing' => :'Float'
79
+ }
80
+ end
81
+
82
+ # List of attributes with nullable: true
83
+ def self.openapi_nullable
84
+ Set.new([
85
+ ])
86
+ end
87
+
88
+ # Initializes the object
89
+ # @param [Hash] attributes Model attributes in the form of hash
90
+ def initialize(attributes = {})
91
+ if (!attributes.is_a?(Hash))
92
+ fail ArgumentError, "The input argument (attributes) must be a hash in `KlaviyoAPI::RatingStyle` initialize method"
93
+ end
94
+
95
+ # check to see if the attribute exists and convert string to symbol for hash key
96
+ attributes = attributes.each_with_object({}) { |(k, v), h|
97
+ if (!self.class.attribute_map.key?(k.to_sym))
98
+ fail ArgumentError, "`#{k}` is not a valid attribute in `KlaviyoAPI::RatingStyle`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
99
+ end
100
+ h[k.to_sym] = v
101
+ }
102
+
103
+ if attributes.key?(:'color')
104
+ self.color = attributes[:'color']
105
+ else
106
+ self.color = '#F8BE00'
107
+ end
108
+
109
+ if attributes.key?(:'empty_color')
110
+ self.empty_color = attributes[:'empty_color']
111
+ else
112
+ self.empty_color = '#EBEEEF'
113
+ end
114
+
115
+ if attributes.key?(:'font_size')
116
+ self.font_size = attributes[:'font_size']
117
+ else
118
+ self.font_size = 16
119
+ end
120
+
121
+ if attributes.key?(:'shape')
122
+ self.shape = attributes[:'shape']
123
+ else
124
+ self.shape = 'star'
125
+ end
126
+
127
+ if attributes.key?(:'alignment')
128
+ self.alignment = attributes[:'alignment']
129
+ else
130
+ self.alignment = 'center'
131
+ end
132
+
133
+ if attributes.key?(:'character_spacing')
134
+ self.character_spacing = attributes[:'character_spacing']
135
+ else
136
+ self.character_spacing = 0
137
+ end
138
+ end
139
+
140
+ # Show invalid properties with the reasons. Usually used together with valid?
141
+ # @return Array for valid properties with the reasons
142
+ def list_invalid_properties
143
+ invalid_properties = Array.new
144
+ invalid_properties
145
+ end
146
+
147
+ # Check to see if the all the properties in the model are valid
148
+ # @return true if the model is valid
149
+ def valid?
150
+ shape_validator = EnumAttributeValidator.new('String', ["circle", "heart", "star"])
151
+ return false unless shape_validator.valid?(@shape)
152
+ alignment_validator = EnumAttributeValidator.new('String', ["center", "left", "right"])
153
+ return false unless alignment_validator.valid?(@alignment)
154
+ true
155
+ end
156
+
157
+ # Custom attribute writer method checking allowed values (enum).
158
+ # @param [Object] shape Object to be assigned
159
+ def shape=(shape)
160
+ validator = EnumAttributeValidator.new('String', ["circle", "heart", "star"])
161
+ unless validator.valid?(shape)
162
+ fail ArgumentError, "invalid value for \"shape\", must be one of #{validator.allowable_values}."
163
+ end
164
+ @shape = shape
165
+ end
166
+
167
+ # Custom attribute writer method checking allowed values (enum).
168
+ # @param [Object] alignment Object to be assigned
169
+ def alignment=(alignment)
170
+ validator = EnumAttributeValidator.new('String', ["center", "left", "right"])
171
+ unless validator.valid?(alignment)
172
+ fail ArgumentError, "invalid value for \"alignment\", must be one of #{validator.allowable_values}."
173
+ end
174
+ @alignment = alignment
175
+ end
176
+
177
+ # Checks equality by comparing each attribute.
178
+ # @param [Object] Object to be compared
179
+ def ==(o)
180
+ return true if self.equal?(o)
181
+ self.class == o.class &&
182
+ color == o.color &&
183
+ empty_color == o.empty_color &&
184
+ font_size == o.font_size &&
185
+ shape == o.shape &&
186
+ alignment == o.alignment &&
187
+ character_spacing == o.character_spacing
188
+ end
189
+
190
+ # @see the `==` method
191
+ # @param [Object] Object to be compared
192
+ def eql?(o)
193
+ self == o
194
+ end
195
+
196
+ # Calculates hash code according to all attributes.
197
+ # @return [Integer] Hash code
198
+ def hash
199
+ [color, empty_color, font_size, shape, alignment, character_spacing].hash
200
+ end
201
+
202
+ # Builds the object from hash
203
+ # @param [Hash] attributes Model attributes in the form of hash
204
+ # @return [Object] Returns the model itself
205
+ def self.build_from_hash(attributes)
206
+ new.build_from_hash(attributes)
207
+ end
208
+
209
+ # Builds the object from hash
210
+ # @param [Hash] attributes Model attributes in the form of hash
211
+ # @return [Object] Returns the model itself
212
+ def build_from_hash(attributes)
213
+ return nil unless attributes.is_a?(Hash)
214
+ attributes = attributes.transform_keys(&:to_sym)
215
+ self.class.openapi_types.each_pair do |key, type|
216
+ if attributes[self.class.attribute_map[key]].nil? && self.class.openapi_nullable.include?(key)
217
+ self.send("#{key}=", nil)
218
+ elsif type =~ /\AArray<(.*)>/i
219
+ # check to ensure the input is an array given that the attribute
220
+ # is documented as an array but the input is not
221
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
222
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
223
+ end
224
+ elsif !attributes[self.class.attribute_map[key]].nil?
225
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
226
+ end
227
+ end
228
+
229
+ self
230
+ end
231
+
232
+ # Deserializes the data based on type
233
+ # @param string type Data type
234
+ # @param string value Value to be deserialized
235
+ # @return [Object] Deserialized data
236
+ def _deserialize(type, value)
237
+ case type.to_sym
238
+ when :Time
239
+ Time.parse(value)
240
+ when :Date
241
+ Date.parse(value)
242
+ when :String
243
+ value.to_s
244
+ when :Integer
245
+ value.to_i
246
+ when :Float
247
+ value.to_f
248
+ when :Boolean
249
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
250
+ true
251
+ else
252
+ false
253
+ end
254
+ when :Object
255
+ # generic object (usually a Hash), return directly
256
+ value
257
+ when /\AArray<(?<inner_type>.+)>\z/
258
+ inner_type = Regexp.last_match[:inner_type]
259
+ value.map { |v| _deserialize(inner_type, v) }
260
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
261
+ k_type = Regexp.last_match[:k_type]
262
+ v_type = Regexp.last_match[:v_type]
263
+ {}.tap do |hash|
264
+ value.each do |k, v|
265
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
266
+ end
267
+ end
268
+ else # model
269
+ # models (e.g. Pet) or oneOf
270
+ klass = KlaviyoAPI.const_get(type)
271
+ klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
272
+ end
273
+ end
274
+
275
+ # Returns the string representation of the object
276
+ # @return [String] String presentation of the object
277
+ def to_s
278
+ to_hash.to_s
279
+ end
280
+
281
+ # to_body is an alias to to_hash (backward compatibility)
282
+ # @return [Hash] Returns the object in the form of hash
283
+ def to_body
284
+ to_hash
285
+ end
286
+
287
+ # Returns the object in the form of hash
288
+ # @return [Hash] Returns the object in the form of hash
289
+ def to_hash
290
+ hash = {}
291
+ self.class.attribute_map.each_pair do |attr, param|
292
+ value = self.send(attr)
293
+ if value.nil?
294
+ is_nullable = self.class.openapi_nullable.include?(attr)
295
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
296
+ end
297
+
298
+ hash[param] = _to_hash(value)
299
+ end
300
+ hash
301
+ end
302
+
303
+ # Outputs non-array value in the form of hash
304
+ # For object, use to_hash. Otherwise, just return the value
305
+ # @param [Object] value Any valid value
306
+ # @return [Hash] Returns the value in the form of hash
307
+ def _to_hash(value)
308
+ if value.is_a?(Array)
309
+ value.compact.map { |v| _to_hash(v) }
310
+ elsif value.is_a?(Hash)
311
+ {}.tap do |hash|
312
+ value.each { |k, v| hash[k] = _to_hash(v) }
313
+ end
314
+ elsif value.respond_to? :to_hash
315
+ value.to_hash
316
+ else
317
+ value
318
+ end
319
+ end
320
+
321
+ end
322
+
323
+ end
@@ -0,0 +1,35 @@
1
+ =begin
2
+ #Klaviyo API
3
+
4
+ #The Klaviyo REST API. Please visit https://developers.klaviyo.com for more details.
5
+
6
+ Contact: developers@klaviyo.com
7
+ Generated by: https://openapi-generator.tech
8
+ OpenAPI Generator version: 6.2.1
9
+
10
+ =end
11
+
12
+ require 'date'
13
+ require 'time'
14
+
15
+ module KlaviyoAPI
16
+ class RecordedDateEnum
17
+ RECORDED_DATE = "recorded_date".freeze
18
+
19
+ # Builds the enum from string
20
+ # @param [String] The enum value in the form of the string
21
+ # @return [String] The enum value
22
+ def self.build_from_hash(value)
23
+ new.build_from_hash(value)
24
+ end
25
+
26
+ # Builds the enum from string
27
+ # @param [String] The enum value in the form of the string
28
+ # @return [String] The enum value
29
+ def build_from_hash(value)
30
+ constantValues = RecordedDateEnum.constants.select { |c| RecordedDateEnum::const_get(c) == value }
31
+ raise "Invalid ENUM value #{value} for class #RecordedDateEnum" if constantValues.empty?
32
+ value
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,237 @@
1
+ =begin
2
+ #Klaviyo API
3
+
4
+ #The Klaviyo REST API. Please visit https://developers.klaviyo.com for more details.
5
+
6
+ Contact: developers@klaviyo.com
7
+ Generated by: https://openapi-generator.tech
8
+ OpenAPI Generator version: 6.2.1
9
+
10
+ =end
11
+
12
+ require 'date'
13
+ require 'time'
14
+
15
+ module KlaviyoAPI
16
+ class RecordedDateFilter
17
+ attr_accessor :field
18
+
19
+ attr_accessor :filter
20
+
21
+ # Attribute mapping from ruby-style variable name to JSON key.
22
+ def self.attribute_map
23
+ {
24
+ :'field' => :'field',
25
+ :'filter' => :'filter'
26
+ }
27
+ end
28
+
29
+ # Returns all the JSON keys this model knows about
30
+ def self.acceptable_attributes
31
+ attribute_map.values
32
+ end
33
+
34
+ # Attribute type mapping.
35
+ def self.openapi_types
36
+ {
37
+ :'field' => :'RecordedDateEnum',
38
+ :'filter' => :'StatusDateFilterFilter'
39
+ }
40
+ end
41
+
42
+ # List of attributes with nullable: true
43
+ def self.openapi_nullable
44
+ Set.new([
45
+ ])
46
+ end
47
+
48
+ # Initializes the object
49
+ # @param [Hash] attributes Model attributes in the form of hash
50
+ def initialize(attributes = {})
51
+ if (!attributes.is_a?(Hash))
52
+ fail ArgumentError, "The input argument (attributes) must be a hash in `KlaviyoAPI::RecordedDateFilter` initialize method"
53
+ end
54
+
55
+ # check to see if the attribute exists and convert string to symbol for hash key
56
+ attributes = attributes.each_with_object({}) { |(k, v), h|
57
+ if (!self.class.attribute_map.key?(k.to_sym))
58
+ fail ArgumentError, "`#{k}` is not a valid attribute in `KlaviyoAPI::RecordedDateFilter`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
59
+ end
60
+ h[k.to_sym] = v
61
+ }
62
+
63
+ if attributes.key?(:'field')
64
+ self.field = attributes[:'field']
65
+ end
66
+
67
+ if attributes.key?(:'filter')
68
+ self.filter = attributes[:'filter']
69
+ end
70
+ end
71
+
72
+ # Show invalid properties with the reasons. Usually used together with valid?
73
+ # @return Array for valid properties with the reasons
74
+ def list_invalid_properties
75
+ invalid_properties = Array.new
76
+ if @field.nil?
77
+ invalid_properties.push('invalid value for "field", field cannot be nil.')
78
+ end
79
+
80
+ if @filter.nil?
81
+ invalid_properties.push('invalid value for "filter", filter cannot be nil.')
82
+ end
83
+
84
+ invalid_properties
85
+ end
86
+
87
+ # Check to see if the all the properties in the model are valid
88
+ # @return true if the model is valid
89
+ def valid?
90
+ return false if @field.nil?
91
+ return false if @filter.nil?
92
+ true
93
+ end
94
+
95
+ # Checks equality by comparing each attribute.
96
+ # @param [Object] Object to be compared
97
+ def ==(o)
98
+ return true if self.equal?(o)
99
+ self.class == o.class &&
100
+ field == o.field &&
101
+ filter == o.filter
102
+ end
103
+
104
+ # @see the `==` method
105
+ # @param [Object] Object to be compared
106
+ def eql?(o)
107
+ self == o
108
+ end
109
+
110
+ # Calculates hash code according to all attributes.
111
+ # @return [Integer] Hash code
112
+ def hash
113
+ [field, filter].hash
114
+ end
115
+
116
+ # Builds the object from hash
117
+ # @param [Hash] attributes Model attributes in the form of hash
118
+ # @return [Object] Returns the model itself
119
+ def self.build_from_hash(attributes)
120
+ new.build_from_hash(attributes)
121
+ end
122
+
123
+ # Builds the object from hash
124
+ # @param [Hash] attributes Model attributes in the form of hash
125
+ # @return [Object] Returns the model itself
126
+ def build_from_hash(attributes)
127
+ return nil unless attributes.is_a?(Hash)
128
+ attributes = attributes.transform_keys(&:to_sym)
129
+ self.class.openapi_types.each_pair do |key, type|
130
+ if attributes[self.class.attribute_map[key]].nil? && self.class.openapi_nullable.include?(key)
131
+ self.send("#{key}=", nil)
132
+ elsif type =~ /\AArray<(.*)>/i
133
+ # check to ensure the input is an array given that the attribute
134
+ # is documented as an array but the input is not
135
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
136
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
137
+ end
138
+ elsif !attributes[self.class.attribute_map[key]].nil?
139
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
140
+ end
141
+ end
142
+
143
+ self
144
+ end
145
+
146
+ # Deserializes the data based on type
147
+ # @param string type Data type
148
+ # @param string value Value to be deserialized
149
+ # @return [Object] Deserialized data
150
+ def _deserialize(type, value)
151
+ case type.to_sym
152
+ when :Time
153
+ Time.parse(value)
154
+ when :Date
155
+ Date.parse(value)
156
+ when :String
157
+ value.to_s
158
+ when :Integer
159
+ value.to_i
160
+ when :Float
161
+ value.to_f
162
+ when :Boolean
163
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
164
+ true
165
+ else
166
+ false
167
+ end
168
+ when :Object
169
+ # generic object (usually a Hash), return directly
170
+ value
171
+ when /\AArray<(?<inner_type>.+)>\z/
172
+ inner_type = Regexp.last_match[:inner_type]
173
+ value.map { |v| _deserialize(inner_type, v) }
174
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
175
+ k_type = Regexp.last_match[:k_type]
176
+ v_type = Regexp.last_match[:v_type]
177
+ {}.tap do |hash|
178
+ value.each do |k, v|
179
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
180
+ end
181
+ end
182
+ else # model
183
+ # models (e.g. Pet) or oneOf
184
+ klass = KlaviyoAPI.const_get(type)
185
+ klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
186
+ end
187
+ end
188
+
189
+ # Returns the string representation of the object
190
+ # @return [String] String presentation of the object
191
+ def to_s
192
+ to_hash.to_s
193
+ end
194
+
195
+ # to_body is an alias to to_hash (backward compatibility)
196
+ # @return [Hash] Returns the object in the form of hash
197
+ def to_body
198
+ to_hash
199
+ end
200
+
201
+ # Returns the object in the form of hash
202
+ # @return [Hash] Returns the object in the form of hash
203
+ def to_hash
204
+ hash = {}
205
+ self.class.attribute_map.each_pair do |attr, param|
206
+ value = self.send(attr)
207
+ if value.nil?
208
+ is_nullable = self.class.openapi_nullable.include?(attr)
209
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
210
+ end
211
+
212
+ hash[param] = _to_hash(value)
213
+ end
214
+ hash
215
+ end
216
+
217
+ # Outputs non-array value in the form of hash
218
+ # For object, use to_hash. Otherwise, just return the value
219
+ # @param [Object] value Any valid value
220
+ # @return [Hash] Returns the value in the form of hash
221
+ def _to_hash(value)
222
+ if value.is_a?(Array)
223
+ value.compact.map { |v| _to_hash(v) }
224
+ elsif value.is_a?(Hash)
225
+ {}.tap do |hash|
226
+ value.each { |k, v| hash[k] = _to_hash(v) }
227
+ end
228
+ elsif value.respond_to? :to_hash
229
+ value.to_hash
230
+ else
231
+ value
232
+ end
233
+ end
234
+
235
+ end
236
+
237
+ end