klaviyo-api-sdk 17.0.0 → 18.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 (201) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +22 -0
  3. data/README.md +932 -414
  4. data/klaviyo-api-sdk.gemspec +1 -1
  5. data/lib/klaviyo-api-sdk/api/accounts_api.rb +12 -12
  6. data/lib/klaviyo-api-sdk/api/campaigns_api.rb +215 -155
  7. data/lib/klaviyo-api-sdk/api/catalogs_api.rb +585 -381
  8. data/lib/klaviyo-api-sdk/api/client_api.rb +100 -0
  9. data/lib/klaviyo-api-sdk/api/conversations_api.rb +3 -3
  10. data/lib/klaviyo-api-sdk/api/coupons_api.rb +187 -108
  11. data/lib/klaviyo-api-sdk/api/custom_objects_api.rb +2755 -83
  12. data/lib/klaviyo-api-sdk/api/data_privacy_api.rb +3 -3
  13. data/lib/klaviyo-api-sdk/api/events_api.rb +72 -58
  14. data/lib/klaviyo-api-sdk/api/flows_api.rb +238 -152
  15. data/lib/klaviyo-api-sdk/api/forms_api.rb +81 -60
  16. data/lib/klaviyo-api-sdk/api/images_api.rb +48 -27
  17. data/lib/klaviyo-api-sdk/api/lists_api.rb +113 -88
  18. data/lib/klaviyo-api-sdk/api/metrics_api.rb +184 -156
  19. data/lib/klaviyo-api-sdk/api/profiles_api.rb +445 -226
  20. data/lib/klaviyo-api-sdk/api/reporting_api.rb +76 -27
  21. data/lib/klaviyo-api-sdk/api/reviews_api.rb +38 -31
  22. data/lib/klaviyo-api-sdk/api/segments_api.rb +107 -82
  23. data/lib/klaviyo-api-sdk/api/tags_api.rb +164 -128
  24. data/lib/klaviyo-api-sdk/api/templates_api.rb +113 -60
  25. data/lib/klaviyo-api-sdk/api/tracking_settings_api.rb +24 -17
  26. data/lib/klaviyo-api-sdk/api/web_feeds_api.rb +41 -27
  27. data/lib/klaviyo-api-sdk/api/webhooks_api.rb +73 -31
  28. data/lib/klaviyo-api-sdk/api_client.rb +1 -1
  29. data/lib/klaviyo-api-sdk/models/action_output_condition.rb +1 -1
  30. data/lib/klaviyo-api-sdk/models/action_output_condition_filter.rb +78 -195
  31. data/lib/klaviyo-api-sdk/models/action_output_split_action_data.rb +2 -6
  32. data/lib/klaviyo-api-sdk/models/{flow_push_notification_additional_filters.rb → action_output_split_action_data_action_output_filter.rb} +4 -4
  33. data/lib/klaviyo-api-sdk/models/{action_output_condition_condition_group.rb → action_output_split_action_data_action_output_filter_condition_groups_inner.rb} +3 -3
  34. data/lib/klaviyo-api-sdk/models/age_gate_properties.rb +11 -1
  35. data/lib/klaviyo-api-sdk/models/api_schema_property.rb +301 -0
  36. data/lib/klaviyo-api-sdk/models/back_in_stock_email_consent_checkbox_properties.rb +11 -1
  37. data/lib/klaviyo-api-sdk/models/base_event_create_query_bulk_entry_resource_object_attributes.rb +15 -2
  38. data/lib/klaviyo-api-sdk/models/base_style_properties.rb +15 -5
  39. data/lib/klaviyo-api-sdk/models/button_action.rb +1 -0
  40. data/lib/klaviyo-api-sdk/models/button_properties.rb +11 -1
  41. data/lib/klaviyo-api-sdk/models/button_styles.rb +25 -3
  42. data/lib/klaviyo-api-sdk/models/{action_output_condition_filter2.rb → button_styles_height.rb} +3 -7
  43. data/lib/klaviyo-api-sdk/models/cart_content.rb +277 -0
  44. data/lib/klaviyo-api-sdk/models/cart_content_properties.rb +236 -0
  45. data/lib/klaviyo-api-sdk/models/checkboxes_properties.rb +11 -1
  46. data/lib/klaviyo-api-sdk/models/conditional_branch_action_data_profile_filter_condition_groups_inner_conditions_inner.rb +5 -0
  47. data/lib/klaviyo-api-sdk/models/constant_property_mapping.rb +287 -0
  48. data/lib/klaviyo-api-sdk/models/{price_drop_condition_filter2.rb → constant_property_mapping_value.rb} +6 -16
  49. data/lib/klaviyo-api-sdk/models/content_experiment_action.rb +1 -1
  50. data/lib/klaviyo-api-sdk/models/{send_push_notification_action_content_experiment_action_data.rb → content_experiment_action_data.rb} +6 -5
  51. data/lib/klaviyo-api-sdk/models/{send_push_notification_action_current_experiment.rb → content_experiment_action_data_current_experiment.rb} +6 -6
  52. data/lib/klaviyo-api-sdk/models/{low_inventory_condition_filter2.rb → content_experiment_action_data_main_action.rb} +3 -16
  53. data/lib/klaviyo-api-sdk/models/countdown_timer_properties.rb +11 -1
  54. data/lib/klaviyo-api-sdk/models/coupon_properties.rb +11 -1
  55. data/lib/klaviyo-api-sdk/models/custom_css.rb +231 -0
  56. data/lib/klaviyo-api-sdk/models/custom_html.rb +292 -0
  57. data/lib/klaviyo-api-sdk/models/custom_html_properties.rb +263 -0
  58. data/lib/klaviyo-api-sdk/models/custom_object_date_trigger.rb +450 -0
  59. data/lib/klaviyo-api-sdk/models/custom_object_property_condition.rb +1 -1
  60. data/lib/klaviyo-api-sdk/models/custom_object_relationship_source.rb +328 -0
  61. data/lib/klaviyo-api-sdk/models/date_properties.rb +11 -1
  62. data/lib/klaviyo-api-sdk/models/display_options.rb +24 -4
  63. data/lib/klaviyo-api-sdk/models/dropdown_properties.rb +11 -1
  64. data/lib/klaviyo-api-sdk/models/email_properties.rb +11 -1
  65. data/lib/klaviyo-api-sdk/models/email_subscription_parameters.rb +13 -9
  66. data/lib/klaviyo-api-sdk/models/email_unsubscription_parameters.rb +13 -9
  67. data/lib/klaviyo-api-sdk/models/embedded_object_schema_resource_object.rb +237 -0
  68. data/lib/klaviyo-api-sdk/models/embedded_object_schema_resource_object_attributes.rb +292 -0
  69. data/lib/klaviyo-api-sdk/models/embedded_object_schema_resource_object_attributes_source_mapping.rb +224 -0
  70. data/lib/klaviyo-api-sdk/models/event_create_query_v2_resource_object_attributes.rb +15 -2
  71. data/lib/klaviyo-api-sdk/models/events_bulk_create_query_resource_object_attributes.rb +14 -1
  72. data/lib/klaviyo-api-sdk/models/flow_definition_profile_filter_condition_groups_inner_conditions_inner.rb +5 -0
  73. data/lib/klaviyo-api-sdk/models/flow_definition_triggers_inner.rb +1 -0
  74. data/lib/klaviyo-api-sdk/models/flow_email.rb +1 -1
  75. data/lib/klaviyo-api-sdk/models/flow_push_notification.rb +14 -4
  76. data/lib/klaviyo-api-sdk/models/flow_sms.rb +15 -2
  77. data/lib/klaviyo-api-sdk/models/form_create_query_resource_object_attributes.rb +2 -2
  78. data/lib/klaviyo-api-sdk/models/html_text_properties.rb +11 -1
  79. data/lib/klaviyo-api-sdk/models/iaf_deeplink_to_screen.rb +305 -0
  80. data/lib/klaviyo-api-sdk/models/iaf_deeplink_to_screen_properties.rb +220 -0
  81. data/lib/klaviyo-api-sdk/models/image_action.rb +1 -0
  82. data/lib/klaviyo-api-sdk/models/image_block_cropping_properties.rb +0 -35
  83. data/lib/klaviyo-api-sdk/models/image_properties.rb +11 -1
  84. data/lib/klaviyo-api-sdk/models/low_inventory_condition.rb +1 -1
  85. data/lib/klaviyo-api-sdk/models/low_inventory_trigger.rb +2 -6
  86. data/lib/klaviyo-api-sdk/models/{low_inventory_condition_filter.rb → low_inventory_trigger_trigger_filter.rb} +4 -4
  87. data/lib/klaviyo-api-sdk/models/{low_inventory_condition_condition_group.rb → low_inventory_trigger_trigger_filter_condition_groups_inner.rb} +3 -3
  88. data/lib/klaviyo-api-sdk/models/metric_aggregate_query_resource_object_attributes.rb +2 -2
  89. data/lib/klaviyo-api-sdk/models/metric_property_condition.rb +1 -1
  90. data/lib/klaviyo-api-sdk/models/metric_property_condition_filter.rb +87 -195
  91. data/lib/klaviyo-api-sdk/models/metric_trigger.rb +2 -1
  92. data/lib/klaviyo-api-sdk/models/{flow_email_additional_filters.rb → metric_trigger_trigger_filter.rb} +4 -4
  93. data/lib/klaviyo-api-sdk/models/{flow_email_additional_filters_condition_groups_inner.rb → metric_trigger_trigger_filter_condition_groups_inner.rb} +4 -4
  94. data/lib/klaviyo-api-sdk/models/mobile_push_content_create.rb +18 -5
  95. data/lib/klaviyo-api-sdk/models/mobile_push_content_update.rb +18 -5
  96. data/lib/klaviyo-api-sdk/models/mobile_push_options_on_open.rb +2 -1
  97. data/lib/klaviyo-api-sdk/models/multi_branch_split_branch_branch_filter_condition_groups_inner_conditions_inner.rb +5 -0
  98. data/lib/klaviyo-api-sdk/models/object_record_bulk_delete_job_enum.rb +35 -0
  99. data/lib/klaviyo-api-sdk/models/object_record_delete_job_create_query.rb +223 -0
  100. data/lib/klaviyo-api-sdk/models/object_record_delete_job_create_query_resource_object.rb +237 -0
  101. data/lib/klaviyo-api-sdk/models/{flow_push_notification_additional_filters_condition_groups_inner.rb → object_record_delete_job_create_query_resource_object_relationships.rb} +13 -15
  102. data/lib/klaviyo-api-sdk/models/object_record_delete_job_create_query_resource_object_relationships_object_records.rb +220 -0
  103. data/lib/klaviyo-api-sdk/models/object_record_delete_job_rels_records_data_inner.rb +238 -0
  104. data/lib/klaviyo-api-sdk/models/object_record_enum.rb +35 -0
  105. data/lib/klaviyo-api-sdk/models/object_schema_create_query.rb +223 -0
  106. data/lib/klaviyo-api-sdk/models/object_schema_create_query_resource_object.rb +246 -0
  107. data/lib/klaviyo-api-sdk/models/object_schema_create_query_resource_object_attributes.rb +322 -0
  108. data/lib/klaviyo-api-sdk/models/object_schema_create_query_resource_object_relationships.rb +218 -0
  109. data/lib/klaviyo-api-sdk/models/object_schema_create_query_resource_object_relationships_object_type.rb +218 -0
  110. data/lib/klaviyo-api-sdk/models/object_schema_create_query_resource_object_relationships_object_type_data.rb +238 -0
  111. data/lib/klaviyo-api-sdk/models/object_schema_enum.rb +35 -0
  112. data/lib/klaviyo-api-sdk/models/object_schema_partial_update_query.rb +223 -0
  113. data/lib/klaviyo-api-sdk/models/object_schema_partial_update_query_resource_object.rb +252 -0
  114. data/lib/klaviyo-api-sdk/models/object_schema_partial_update_query_resource_object_attributes.rb +302 -0
  115. data/lib/klaviyo-api-sdk/models/object_schema_relationship_create_meta.rb +237 -0
  116. data/lib/klaviyo-api-sdk/models/{metric_property_condition_condition_group.rb → object_schema_relationship_create_query.rb} +14 -14
  117. data/lib/klaviyo-api-sdk/models/{flow_sms_additional_filters_condition_groups_inner.rb → object_schema_relationship_create_query_data_inner.rb} +37 -15
  118. data/lib/klaviyo-api-sdk/models/object_schema_relationship_delete_meta.rb +224 -0
  119. data/lib/klaviyo-api-sdk/models/object_schema_relationship_delete_query.rb +225 -0
  120. data/lib/klaviyo-api-sdk/models/object_schema_relationship_delete_query_data_inner.rb +247 -0
  121. data/lib/klaviyo-api-sdk/models/object_schema_relationship_partial_update_query.rb +223 -0
  122. data/lib/klaviyo-api-sdk/models/object_schema_relationship_partial_update_query_data.rb +247 -0
  123. data/lib/klaviyo-api-sdk/models/object_schema_relationship_update_meta.rb +246 -0
  124. data/lib/klaviyo-api-sdk/models/object_type_create_query.rb +223 -0
  125. data/lib/klaviyo-api-sdk/models/object_type_create_query_resource_object.rb +237 -0
  126. data/lib/klaviyo-api-sdk/models/object_type_create_query_resource_object_attributes.rb +307 -0
  127. data/lib/klaviyo-api-sdk/models/object_type_create_query_resource_object_attributes_object_schema.rb +224 -0
  128. data/lib/klaviyo-api-sdk/models/object_type_enum.rb +35 -0
  129. data/lib/klaviyo-api-sdk/models/onsite_profile_meta.rb +13 -4
  130. data/lib/klaviyo-api-sdk/models/open_tracking_subscription_parameters.rb +258 -0
  131. data/lib/klaviyo-api-sdk/models/open_tracking_unsubscription_parameters.rb +258 -0
  132. data/lib/klaviyo-api-sdk/models/opt_in_code_properties.rb +11 -1
  133. data/lib/klaviyo-api-sdk/models/patch_identifiers.rb +227 -0
  134. data/lib/klaviyo-api-sdk/models/phone_number_properties.rb +11 -1
  135. data/lib/klaviyo-api-sdk/models/price_drop_condition.rb +1 -1
  136. data/lib/klaviyo-api-sdk/models/price_drop_trigger.rb +2 -6
  137. data/lib/klaviyo-api-sdk/models/{flow_sms_additional_filters.rb → price_drop_trigger_trigger_filter.rb} +4 -4
  138. data/lib/klaviyo-api-sdk/models/{price_drop_condition_condition_group.rb → price_drop_trigger_trigger_filter_condition_groups_inner.rb} +3 -3
  139. data/lib/klaviyo-api-sdk/models/profile_event_tracked_properties.rb +19 -9
  140. data/lib/klaviyo-api-sdk/models/profile_has_not_received_email_message_condition.rb +1 -1
  141. data/lib/klaviyo-api-sdk/models/{profile_has_not_received_push_message_condition_timeframe_filter.rb → profile_has_not_received_email_message_condition_timeframe_filter.rb} +1 -1
  142. data/lib/klaviyo-api-sdk/models/profile_has_not_received_push_message_condition.rb +1 -1
  143. data/lib/klaviyo-api-sdk/models/profile_has_not_received_sms_message_condition.rb +1 -1
  144. data/lib/klaviyo-api-sdk/models/profile_meta.rb +13 -4
  145. data/lib/klaviyo-api-sdk/models/profile_not_in_flow_condition.rb +1 -1
  146. data/lib/klaviyo-api-sdk/models/profile_object_schema_enum.rb +35 -0
  147. data/lib/klaviyo-api-sdk/models/profile_object_schema_relationship_create_query.rb +225 -0
  148. data/lib/klaviyo-api-sdk/models/profile_object_schema_relationship_create_query_data_inner.rb +247 -0
  149. data/lib/klaviyo-api-sdk/models/profile_object_schema_relationship_delete_query.rb +225 -0
  150. data/lib/klaviyo-api-sdk/models/profile_object_schema_relationship_delete_query_data_inner.rb +247 -0
  151. data/lib/klaviyo-api-sdk/models/profile_object_schema_relationship_partial_update_query.rb +223 -0
  152. data/lib/klaviyo-api-sdk/models/profile_object_schema_relationship_partial_update_query_data.rb +247 -0
  153. data/lib/klaviyo-api-sdk/models/profile_predictive_analytics_channel_affinity_priority_condition.rb +2 -2
  154. data/lib/klaviyo-api-sdk/models/profile_predictive_analytics_channel_affinity_rank_condition.rb +2 -2
  155. data/lib/klaviyo-api-sdk/models/profile_relationship_source.rb +330 -0
  156. data/lib/klaviyo-api-sdk/models/property_filter.rb +237 -0
  157. data/lib/klaviyo-api-sdk/models/property_source.rb +254 -0
  158. data/lib/klaviyo-api-sdk/models/push_action_button.rb +1 -5
  159. data/lib/klaviyo-api-sdk/models/push_action_button_definition.rb +261 -0
  160. data/lib/klaviyo-api-sdk/models/push_on_open_web_url.rb +268 -0
  161. data/lib/klaviyo-api-sdk/models/quote_style.rb +21 -1
  162. data/lib/klaviyo-api-sdk/models/radio_buttons_properties.rb +11 -1
  163. data/lib/klaviyo-api-sdk/models/redirect_properties.rb +2 -5
  164. data/lib/klaviyo-api-sdk/models/related_id_path.rb +273 -0
  165. data/lib/klaviyo-api-sdk/models/review_block_styles.rb +13 -13
  166. data/lib/klaviyo-api-sdk/models/review_properties.rb +11 -1
  167. data/lib/klaviyo-api-sdk/models/reviewer_name_style.rb +21 -1
  168. data/lib/klaviyo-api-sdk/models/row_v0_blocks_inner.rb +1 -0
  169. data/lib/klaviyo-api-sdk/models/signup_counter_properties.rb +11 -1
  170. data/lib/klaviyo-api-sdk/models/simple_property_mapping.rb +287 -0
  171. data/lib/klaviyo-api-sdk/models/simple_relationship_mapping.rb +287 -0
  172. data/lib/klaviyo-api-sdk/models/simple_relationship_mapping_source.rb +105 -0
  173. data/lib/klaviyo-api-sdk/models/sms_consent_checkbox_properties.rb +11 -1
  174. data/lib/klaviyo-api-sdk/models/sms_disclosure_link_text_style.rb +319 -0
  175. data/lib/klaviyo-api-sdk/models/sms_disclosure_properties.rb +11 -1
  176. data/lib/klaviyo-api-sdk/models/sms_disclosure_styles.rb +1 -1
  177. data/lib/klaviyo-api-sdk/models/source_mapping_create_query_resource_object.rb +237 -0
  178. data/lib/klaviyo-api-sdk/models/source_mapping_create_query_resource_object_attributes.rb +235 -0
  179. data/lib/klaviyo-api-sdk/models/source_mapping_create_query_resource_object_attributes_property_mappings_inner.rb +104 -0
  180. data/lib/klaviyo-api-sdk/models/source_mapping_enum.rb +35 -0
  181. data/lib/klaviyo-api-sdk/models/source_mapping_partial_update_query.rb +223 -0
  182. data/lib/klaviyo-api-sdk/models/source_mapping_partial_update_query_resource_object.rb +252 -0
  183. data/lib/klaviyo-api-sdk/models/spin_to_win_properties.rb +11 -1
  184. data/lib/klaviyo-api-sdk/models/string_phone_operator_string_array_filter.rb +1 -1
  185. data/lib/klaviyo-api-sdk/models/table_fallback_image_sub_block.rb +0 -13
  186. data/lib/klaviyo-api-sdk/models/table_image_sub_block.rb +0 -13
  187. data/lib/klaviyo-api-sdk/models/template_definition.rb +1 -0
  188. data/lib/klaviyo-api-sdk/models/text_properties.rb +11 -1
  189. data/lib/klaviyo-api-sdk/models/version.rb +39 -4
  190. data/lib/klaviyo-api-sdk/models/version_properties.rb +14 -4
  191. data/lib/klaviyo-api-sdk/models/version_styles.rb +15 -6
  192. data/lib/klaviyo-api-sdk/models/version_triggers_inner.rb +1 -0
  193. data/lib/klaviyo-api-sdk.rb +86 -23
  194. data/lib/klaviyo-api-sdk.rb.bak +87 -24
  195. metadata +88 -25
  196. data/lib/klaviyo-api-sdk/models/custom_object_property_condition_filter.rb +0 -117
  197. data/lib/klaviyo-api-sdk/models/flow_email_additional_filters_condition_groups_inner_conditions_inner.rb +0 -116
  198. data/lib/klaviyo-api-sdk/models/flow_push_notification_additional_filters_condition_groups_inner_conditions_inner.rb +0 -116
  199. data/lib/klaviyo-api-sdk/models/flow_sms_additional_filters_condition_groups_inner_conditions_inner.rb +0 -116
  200. data/lib/klaviyo-api-sdk/models/metric_property_condition_filter2.rb +0 -117
  201. data/lib/klaviyo-api-sdk/models/price_drop_condition_filter.rb +0 -225
@@ -0,0 +1,227 @@
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 PatchIdentifiers
17
+ attr_accessor :append
18
+
19
+ attr_accessor :unappend
20
+
21
+ # Attribute mapping from ruby-style variable name to JSON key.
22
+ def self.attribute_map
23
+ {
24
+ :'append' => :'append',
25
+ :'unappend' => :'unappend'
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
+ :'append' => :'Object',
38
+ :'unappend' => :'Object'
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::PatchIdentifiers` 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::PatchIdentifiers`. 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?(:'append')
64
+ self.append = attributes[:'append']
65
+ end
66
+
67
+ if attributes.key?(:'unappend')
68
+ self.unappend = attributes[:'unappend']
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
+ invalid_properties
77
+ end
78
+
79
+ # Check to see if the all the properties in the model are valid
80
+ # @return true if the model is valid
81
+ def valid?
82
+ true
83
+ end
84
+
85
+ # Checks equality by comparing each attribute.
86
+ # @param [Object] Object to be compared
87
+ def ==(o)
88
+ return true if self.equal?(o)
89
+ self.class == o.class &&
90
+ append == o.append &&
91
+ unappend == o.unappend
92
+ end
93
+
94
+ # @see the `==` method
95
+ # @param [Object] Object to be compared
96
+ def eql?(o)
97
+ self == o
98
+ end
99
+
100
+ # Calculates hash code according to all attributes.
101
+ # @return [Integer] Hash code
102
+ def hash
103
+ [append, unappend].hash
104
+ end
105
+
106
+ # Builds the object from hash
107
+ # @param [Hash] attributes Model attributes in the form of hash
108
+ # @return [Object] Returns the model itself
109
+ def self.build_from_hash(attributes)
110
+ new.build_from_hash(attributes)
111
+ end
112
+
113
+ # Builds the object from hash
114
+ # @param [Hash] attributes Model attributes in the form of hash
115
+ # @return [Object] Returns the model itself
116
+ def build_from_hash(attributes)
117
+ return nil unless attributes.is_a?(Hash)
118
+ attributes = attributes.transform_keys(&:to_sym)
119
+ self.class.openapi_types.each_pair do |key, type|
120
+ if attributes[self.class.attribute_map[key]].nil? && self.class.openapi_nullable.include?(key)
121
+ self.send("#{key}=", nil)
122
+ elsif type =~ /\AArray<(.*)>/i
123
+ # check to ensure the input is an array given that the attribute
124
+ # is documented as an array but the input is not
125
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
126
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
127
+ end
128
+ elsif !attributes[self.class.attribute_map[key]].nil?
129
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
130
+ end
131
+ end
132
+
133
+ self
134
+ end
135
+
136
+ # Deserializes the data based on type
137
+ # @param string type Data type
138
+ # @param string value Value to be deserialized
139
+ # @return [Object] Deserialized data
140
+ def _deserialize(type, value)
141
+ case type.to_sym
142
+ when :Time
143
+ Time.parse(value)
144
+ when :Date
145
+ Date.parse(value)
146
+ when :String
147
+ value.to_s
148
+ when :Integer
149
+ value.to_i
150
+ when :Float
151
+ value.to_f
152
+ when :Boolean
153
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
154
+ true
155
+ else
156
+ false
157
+ end
158
+ when :Object
159
+ # generic object (usually a Hash), return directly
160
+ value
161
+ when /\AArray<(?<inner_type>.+)>\z/
162
+ inner_type = Regexp.last_match[:inner_type]
163
+ value.map { |v| _deserialize(inner_type, v) }
164
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
165
+ k_type = Regexp.last_match[:k_type]
166
+ v_type = Regexp.last_match[:v_type]
167
+ {}.tap do |hash|
168
+ value.each do |k, v|
169
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
170
+ end
171
+ end
172
+ else # model
173
+ # models (e.g. Pet) or oneOf
174
+ klass = KlaviyoAPI.const_get(type)
175
+ klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
176
+ end
177
+ end
178
+
179
+ # Returns the string representation of the object
180
+ # @return [String] String presentation of the object
181
+ def to_s
182
+ to_hash.to_s
183
+ end
184
+
185
+ # to_body is an alias to to_hash (backward compatibility)
186
+ # @return [Hash] Returns the object in the form of hash
187
+ def to_body
188
+ to_hash
189
+ end
190
+
191
+ # Returns the object in the form of hash
192
+ # @return [Hash] Returns the object in the form of hash
193
+ def to_hash
194
+ hash = {}
195
+ self.class.attribute_map.each_pair do |attr, param|
196
+ value = self.send(attr)
197
+ if value.nil?
198
+ is_nullable = self.class.openapi_nullable.include?(attr)
199
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
200
+ end
201
+
202
+ hash[param] = _to_hash(value)
203
+ end
204
+ hash
205
+ end
206
+
207
+ # Outputs non-array value in the form of hash
208
+ # For object, use to_hash. Otherwise, just return the value
209
+ # @param [Object] value Any valid value
210
+ # @return [Hash] Returns the value in the form of hash
211
+ def _to_hash(value)
212
+ if value.is_a?(Array)
213
+ value.compact.map { |v| _to_hash(v) }
214
+ elsif value.is_a?(Hash)
215
+ {}.tap do |hash|
216
+ value.each { |k, v| hash[k] = _to_hash(v) }
217
+ end
218
+ elsif value.respond_to? :to_hash
219
+ value.to_hash
220
+ else
221
+ value
222
+ end
223
+ end
224
+
225
+ end
226
+
227
+ end
@@ -16,6 +16,8 @@ module KlaviyoAPI
16
16
  class PhoneNumberProperties
17
17
  attr_accessor :display_device
18
18
 
19
+ attr_accessor :classname
20
+
19
21
  attr_accessor :label
20
22
 
21
23
  attr_accessor :show_label
@@ -58,6 +60,7 @@ module KlaviyoAPI
58
60
  def self.attribute_map
59
61
  {
60
62
  :'display_device' => :'display_device',
63
+ :'classname' => :'classname',
61
64
  :'label' => :'label',
62
65
  :'show_label' => :'show_label',
63
66
  :'placeholder' => :'placeholder',
@@ -78,6 +81,7 @@ module KlaviyoAPI
78
81
  def self.openapi_types
79
82
  {
80
83
  :'display_device' => :'Array<String>',
84
+ :'classname' => :'String',
81
85
  :'label' => :'String',
82
86
  :'show_label' => :'Boolean',
83
87
  :'placeholder' => :'String',
@@ -92,6 +96,7 @@ module KlaviyoAPI
92
96
  # List of attributes with nullable: true
93
97
  def self.openapi_nullable
94
98
  Set.new([
99
+ :'classname',
95
100
  :'label',
96
101
  :'placeholder',
97
102
  :'required',
@@ -120,6 +125,10 @@ module KlaviyoAPI
120
125
  end
121
126
  end
122
127
 
128
+ if attributes.key?(:'classname')
129
+ self.classname = attributes[:'classname']
130
+ end
131
+
123
132
  if attributes.key?(:'label')
124
133
  self.label = attributes[:'label']
125
134
  end
@@ -180,6 +189,7 @@ module KlaviyoAPI
180
189
  return true if self.equal?(o)
181
190
  self.class == o.class &&
182
191
  display_device == o.display_device &&
192
+ classname == o.classname &&
183
193
  label == o.label &&
184
194
  show_label == o.show_label &&
185
195
  placeholder == o.placeholder &&
@@ -199,7 +209,7 @@ module KlaviyoAPI
199
209
  # Calculates hash code according to all attributes.
200
210
  # @return [Integer] Hash code
201
211
  def hash
202
- [display_device, label, show_label, placeholder, required, error_messages, property_name, sms_consent_type, channel_settings].hash
212
+ [display_device, classname, label, show_label, placeholder, required, error_messages, property_name, sms_consent_type, channel_settings].hash
203
213
  end
204
214
 
205
215
  # Builds the object from hash
@@ -65,7 +65,7 @@ module KlaviyoAPI
65
65
  :'type' => :'String',
66
66
  :'metric_id' => :'String',
67
67
  :'field' => :'String',
68
- :'filter' => :'PriceDropConditionFilter2'
68
+ :'filter' => :'MetricPropertyConditionFilter'
69
69
  }
70
70
  end
71
71
 
@@ -74,7 +74,7 @@ module KlaviyoAPI
74
74
  def self.openapi_types
75
75
  {
76
76
  :'type' => :'String',
77
- :'trigger_filter' => :'PriceDropConditionFilter',
77
+ :'trigger_filter' => :'PriceDropTriggerTriggerFilter',
78
78
  :'price_drop_amount_value' => :'NumericOperatorNumericFilterValue',
79
79
  :'price_drop_amount_unit' => :'String',
80
80
  :'audience' => :'Array<String>',
@@ -86,6 +86,7 @@ module KlaviyoAPI
86
86
  # List of attributes with nullable: true
87
87
  def self.openapi_nullable
88
88
  Set.new([
89
+ :'trigger_filter',
89
90
  ])
90
91
  end
91
92
 
@@ -149,10 +150,6 @@ module KlaviyoAPI
149
150
  invalid_properties.push('invalid value for "type", type cannot be nil.')
150
151
  end
151
152
 
152
- if @trigger_filter.nil?
153
- invalid_properties.push('invalid value for "trigger_filter", trigger_filter cannot be nil.')
154
- end
155
-
156
153
  if @price_drop_amount_value.nil?
157
154
  invalid_properties.push('invalid value for "price_drop_amount_value", price_drop_amount_value cannot be nil.')
158
155
  end
@@ -170,7 +167,6 @@ module KlaviyoAPI
170
167
  return false if @type.nil?
171
168
  type_validator = EnumAttributeValidator.new('String', ["price-drop"])
172
169
  return false unless type_validator.valid?(@type)
173
- return false if @trigger_filter.nil?
174
170
  return false if @price_drop_amount_value.nil?
175
171
  price_drop_amount_unit_validator = EnumAttributeValidator.new('String', ["currency", "percent"])
176
172
  return false unless price_drop_amount_unit_validator.valid?(@price_drop_amount_unit)
@@ -13,7 +13,7 @@ require 'date'
13
13
  require 'time'
14
14
 
15
15
  module KlaviyoAPI
16
- class FlowSmsAdditionalFilters
16
+ class PriceDropTriggerTriggerFilter
17
17
  attr_accessor :condition_groups
18
18
 
19
19
  # Attribute mapping from ruby-style variable name to JSON key.
@@ -31,7 +31,7 @@ module KlaviyoAPI
31
31
  # Attribute type mapping.
32
32
  def self.openapi_types
33
33
  {
34
- :'condition_groups' => :'Array<FlowSmsAdditionalFiltersConditionGroupsInner>'
34
+ :'condition_groups' => :'Array<PriceDropTriggerTriggerFilterConditionGroupsInner>'
35
35
  }
36
36
  end
37
37
 
@@ -45,13 +45,13 @@ module KlaviyoAPI
45
45
  # @param [Hash] attributes Model attributes in the form of hash
46
46
  def initialize(attributes = {})
47
47
  if (!attributes.is_a?(Hash))
48
- fail ArgumentError, "The input argument (attributes) must be a hash in `KlaviyoAPI::FlowSmsAdditionalFilters` initialize method"
48
+ fail ArgumentError, "The input argument (attributes) must be a hash in `KlaviyoAPI::PriceDropTriggerTriggerFilter` initialize method"
49
49
  end
50
50
 
51
51
  # check to see if the attribute exists and convert string to symbol for hash key
52
52
  attributes = attributes.each_with_object({}) { |(k, v), h|
53
53
  if (!self.class.attribute_map.key?(k.to_sym))
54
- fail ArgumentError, "`#{k}` is not a valid attribute in `KlaviyoAPI::FlowSmsAdditionalFilters`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
54
+ fail ArgumentError, "`#{k}` is not a valid attribute in `KlaviyoAPI::PriceDropTriggerTriggerFilter`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
55
55
  end
56
56
  h[k.to_sym] = v
57
57
  }
@@ -13,7 +13,7 @@ require 'date'
13
13
  require 'time'
14
14
 
15
15
  module KlaviyoAPI
16
- class PriceDropConditionConditionGroup
16
+ class PriceDropTriggerTriggerFilterConditionGroupsInner
17
17
  attr_accessor :conditions
18
18
 
19
19
  # Attribute mapping from ruby-style variable name to JSON key.
@@ -45,13 +45,13 @@ module KlaviyoAPI
45
45
  # @param [Hash] attributes Model attributes in the form of hash
46
46
  def initialize(attributes = {})
47
47
  if (!attributes.is_a?(Hash))
48
- fail ArgumentError, "The input argument (attributes) must be a hash in `KlaviyoAPI::PriceDropConditionConditionGroup` initialize method"
48
+ fail ArgumentError, "The input argument (attributes) must be a hash in `KlaviyoAPI::PriceDropTriggerTriggerFilterConditionGroupsInner` initialize method"
49
49
  end
50
50
 
51
51
  # check to see if the attribute exists and convert string to symbol for hash key
52
52
  attributes = attributes.each_with_object({}) { |(k, v), h|
53
53
  if (!self.class.attribute_map.key?(k.to_sym))
54
- fail ArgumentError, "`#{k}` is not a valid attribute in `KlaviyoAPI::PriceDropConditionConditionGroup`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
54
+ fail ArgumentError, "`#{k}` is not a valid attribute in `KlaviyoAPI::PriceDropTriggerTriggerFilterConditionGroupsInner`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
55
55
  end
56
56
  h[k.to_sym] = v
57
57
  }
@@ -16,10 +16,13 @@ module KlaviyoAPI
16
16
  class ProfileEventTrackedProperties
17
17
  attr_accessor :metric
18
18
 
19
+ attr_accessor :property_filters
20
+
19
21
  # Attribute mapping from ruby-style variable name to JSON key.
20
22
  def self.attribute_map
21
23
  {
22
- :'metric' => :'metric'
24
+ :'metric' => :'metric',
25
+ :'property_filters' => :'property_filters'
23
26
  }
24
27
  end
25
28
 
@@ -31,13 +34,16 @@ module KlaviyoAPI
31
34
  # Attribute type mapping.
32
35
  def self.openapi_types
33
36
  {
34
- :'metric' => :'String'
37
+ :'metric' => :'String',
38
+ :'property_filters' => :'Array<PropertyFilter>'
35
39
  }
36
40
  end
37
41
 
38
42
  # List of attributes with nullable: true
39
43
  def self.openapi_nullable
40
44
  Set.new([
45
+ :'metric',
46
+ :'property_filters'
41
47
  ])
42
48
  end
43
49
 
@@ -58,6 +64,14 @@ module KlaviyoAPI
58
64
 
59
65
  if attributes.key?(:'metric')
60
66
  self.metric = attributes[:'metric']
67
+ else
68
+ self.metric = ''
69
+ end
70
+
71
+ if attributes.key?(:'property_filters')
72
+ if (value = attributes[:'property_filters']).is_a?(Array)
73
+ self.property_filters = value
74
+ end
61
75
  end
62
76
  end
63
77
 
@@ -65,17 +79,12 @@ module KlaviyoAPI
65
79
  # @return Array for valid properties with the reasons
66
80
  def list_invalid_properties
67
81
  invalid_properties = Array.new
68
- if @metric.nil?
69
- invalid_properties.push('invalid value for "metric", metric cannot be nil.')
70
- end
71
-
72
82
  invalid_properties
73
83
  end
74
84
 
75
85
  # Check to see if the all the properties in the model are valid
76
86
  # @return true if the model is valid
77
87
  def valid?
78
- return false if @metric.nil?
79
88
  true
80
89
  end
81
90
 
@@ -84,7 +93,8 @@ module KlaviyoAPI
84
93
  def ==(o)
85
94
  return true if self.equal?(o)
86
95
  self.class == o.class &&
87
- metric == o.metric
96
+ metric == o.metric &&
97
+ property_filters == o.property_filters
88
98
  end
89
99
 
90
100
  # @see the `==` method
@@ -96,7 +106,7 @@ module KlaviyoAPI
96
106
  # Calculates hash code according to all attributes.
97
107
  # @return [Integer] Hash code
98
108
  def hash
99
- [metric].hash
109
+ [metric, property_filters].hash
100
110
  end
101
111
 
102
112
  # Builds the object from hash
@@ -57,7 +57,7 @@ module KlaviyoAPI
57
57
  def self.openapi_types
58
58
  {
59
59
  :'type' => :'String',
60
- :'timeframe_filter' => :'ProfileHasNotReceivedPushMessageConditionTimeframeFilter'
60
+ :'timeframe_filter' => :'ProfileHasNotReceivedEmailMessageConditionTimeframeFilter'
61
61
  }
62
62
  end
63
63
 
@@ -13,7 +13,7 @@ require 'date'
13
13
  require 'time'
14
14
 
15
15
  module KlaviyoAPI
16
- module ProfileHasNotReceivedPushMessageConditionTimeframeFilter
16
+ module ProfileHasNotReceivedEmailMessageConditionTimeframeFilter
17
17
  class << self
18
18
  # List of class defined in oneOf (OpenAPI v3)
19
19
  def openapi_one_of
@@ -57,7 +57,7 @@ module KlaviyoAPI
57
57
  def self.openapi_types
58
58
  {
59
59
  :'type' => :'String',
60
- :'timeframe_filter' => :'ProfileHasNotReceivedPushMessageConditionTimeframeFilter'
60
+ :'timeframe_filter' => :'ProfileHasNotReceivedEmailMessageConditionTimeframeFilter'
61
61
  }
62
62
  end
63
63
 
@@ -57,7 +57,7 @@ module KlaviyoAPI
57
57
  def self.openapi_types
58
58
  {
59
59
  :'type' => :'String',
60
- :'timeframe_filter' => :'ProfileHasNotReceivedPushMessageConditionTimeframeFilter'
60
+ :'timeframe_filter' => :'ProfileHasNotReceivedEmailMessageConditionTimeframeFilter'
61
61
  }
62
62
  end
63
63
 
@@ -16,10 +16,13 @@ module KlaviyoAPI
16
16
  class ProfileMeta
17
17
  attr_accessor :patch_properties
18
18
 
19
+ attr_accessor :patch_identifiers
20
+
19
21
  # Attribute mapping from ruby-style variable name to JSON key.
20
22
  def self.attribute_map
21
23
  {
22
- :'patch_properties' => :'patch_properties'
24
+ :'patch_properties' => :'patch_properties',
25
+ :'patch_identifiers' => :'patch_identifiers'
23
26
  }
24
27
  end
25
28
 
@@ -31,7 +34,8 @@ module KlaviyoAPI
31
34
  # Attribute type mapping.
32
35
  def self.openapi_types
33
36
  {
34
- :'patch_properties' => :'ProfileMetaPatchProperties'
37
+ :'patch_properties' => :'ProfileMetaPatchProperties',
38
+ :'patch_identifiers' => :'PatchIdentifiers'
35
39
  }
36
40
  end
37
41
 
@@ -59,6 +63,10 @@ module KlaviyoAPI
59
63
  if attributes.key?(:'patch_properties')
60
64
  self.patch_properties = attributes[:'patch_properties']
61
65
  end
66
+
67
+ if attributes.key?(:'patch_identifiers')
68
+ self.patch_identifiers = attributes[:'patch_identifiers']
69
+ end
62
70
  end
63
71
 
64
72
  # Show invalid properties with the reasons. Usually used together with valid?
@@ -79,7 +87,8 @@ module KlaviyoAPI
79
87
  def ==(o)
80
88
  return true if self.equal?(o)
81
89
  self.class == o.class &&
82
- patch_properties == o.patch_properties
90
+ patch_properties == o.patch_properties &&
91
+ patch_identifiers == o.patch_identifiers
83
92
  end
84
93
 
85
94
  # @see the `==` method
@@ -91,7 +100,7 @@ module KlaviyoAPI
91
100
  # Calculates hash code according to all attributes.
92
101
  # @return [Integer] Hash code
93
102
  def hash
94
- [patch_properties].hash
103
+ [patch_properties, patch_identifiers].hash
95
104
  end
96
105
 
97
106
  # Builds the object from hash
@@ -57,7 +57,7 @@ module KlaviyoAPI
57
57
  def self.openapi_types
58
58
  {
59
59
  :'type' => :'String',
60
- :'timeframe_filter' => :'ProfileHasNotReceivedPushMessageConditionTimeframeFilter'
60
+ :'timeframe_filter' => :'ProfileHasNotReceivedEmailMessageConditionTimeframeFilter'
61
61
  }
62
62
  end
63
63
 
@@ -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 ProfileObjectSchemaEnum
17
+ PROFILE_OBJECT_SCHEMA = "profile-object-schema".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 = ProfileObjectSchemaEnum.constants.select { |c| ProfileObjectSchemaEnum::const_get(c) == value }
31
+ raise "Invalid ENUM value #{value} for class #ProfileObjectSchemaEnum" if constantValues.empty?
32
+ value
33
+ end
34
+ end
35
+ end