talon_one 9.0.0 → 10.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 (258) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +39 -3
  3. data/docs/Account.md +1 -1
  4. data/docs/AccountAdditionalCost.md +1 -1
  5. data/docs/Achievement.md +2 -2
  6. data/docs/AchievementBase.md +1 -1
  7. data/docs/AchievementProgressWithDefinition.md +1 -1
  8. data/docs/AchievementStatusEntry.md +2 -2
  9. data/docs/AddPriceAdjustmentCatalogAction.md +19 -0
  10. data/docs/AddedDeductedPointsBalancesNotificationPolicy.md +19 -0
  11. data/docs/Application.md +1 -1
  12. data/docs/ApplicationCIF.md +1 -1
  13. data/docs/ApplicationCIFExpression.md +1 -1
  14. data/docs/ApplicationCustomer.md +2 -2
  15. data/docs/ApplicationEvent.md +1 -1
  16. data/docs/ApplicationSession.md +1 -1
  17. data/docs/Attribute.md +1 -1
  18. data/docs/Audience.md +1 -1
  19. data/docs/AudienceCustomer.md +2 -2
  20. data/docs/BaseNotificationWebhook.md +1 -1
  21. data/docs/Binding.md +9 -1
  22. data/docs/CampaignCollection.md +1 -1
  23. data/docs/CampaignCollectionWithoutPayload.md +1 -1
  24. data/docs/CampaignDeactivationRequest.md +17 -0
  25. data/docs/CampaignGroup.md +1 -1
  26. data/docs/CampaignSet.md +1 -1
  27. data/docs/CampaignStoreBudget.md +1 -1
  28. data/docs/CampaignTemplate.md +1 -1
  29. data/docs/CardAddedDeductedPointsBalancesNotificationPolicy.md +19 -0
  30. data/docs/CartItem.md +12 -2
  31. data/docs/Catalog.md +1 -1
  32. data/docs/CatalogItem.md +1 -1
  33. data/docs/Change.md +1 -1
  34. data/docs/Collection.md +1 -1
  35. data/docs/CollectionWithoutPayload.md +1 -1
  36. data/docs/Coupon.md +2 -2
  37. data/docs/CouponCreationJob.md +1 -1
  38. data/docs/CouponDeletionJob.md +1 -1
  39. data/docs/CouponEntity.md +19 -0
  40. data/docs/CreateAchievement.md +1 -1
  41. data/docs/CustomEffect.md +1 -1
  42. data/docs/CustomerProfile.md +2 -2
  43. data/docs/CustomerProfileEntity.md +19 -0
  44. data/docs/CustomerSessionV2.md +1 -1
  45. data/docs/Effect.md +6 -0
  46. data/docs/EffectEntity.md +7 -1
  47. data/docs/Entity.md +1 -1
  48. data/docs/Environment.md +4 -2
  49. data/docs/Event.md +1 -1
  50. data/docs/EventType.md +1 -1
  51. data/docs/Export.md +1 -1
  52. data/docs/ExtendLoyaltyPointsExpiryDateEffectProps.md +25 -0
  53. data/docs/Giveaway.md +1 -1
  54. data/docs/GiveawaysPool.md +1 -1
  55. data/docs/Import.md +1 -1
  56. data/docs/InlineResponse20048.md +2 -4
  57. data/docs/InlineResponse20049.md +2 -4
  58. data/docs/InlineResponse20050.md +19 -0
  59. data/docs/InlineResponse20051.md +19 -0
  60. data/docs/IntegrationApi.md +3 -3
  61. data/docs/IntegrationCoupon.md +2 -2
  62. data/docs/IntegrationCustomerProfileAudienceRequest.md +17 -0
  63. data/docs/IntegrationCustomerProfileAudienceRequestItem.md +21 -0
  64. data/docs/IntegrationEventV2Request.md +2 -0
  65. data/docs/InventoryCoupon.md +2 -2
  66. data/docs/InventoryReferral.md +1 -1
  67. data/docs/LedgerEntry.md +1 -1
  68. data/docs/LedgerInfo.md +2 -2
  69. data/docs/LoyaltyCard.md +1 -1
  70. data/docs/LoyaltyProgramBalance.md +2 -2
  71. data/docs/LoyaltyTier.md +1 -1
  72. data/docs/ManagementApi.md +792 -29
  73. data/docs/ModelReturn.md +1 -1
  74. data/docs/MultipleAudiencesItem.md +1 -1
  75. data/docs/NewPriceAdjustment.md +27 -0
  76. data/docs/NewPriceType.md +23 -0
  77. data/docs/NewWebhook.md +2 -0
  78. data/docs/Picklist.md +1 -1
  79. data/docs/PriceDetail.md +23 -0
  80. data/docs/PriceType.md +33 -0
  81. data/docs/Referral.md +1 -1
  82. data/docs/RevisionActivationRequest.md +19 -0
  83. data/docs/Role.md +1 -1
  84. data/docs/RoleV2.md +1 -1
  85. data/docs/Ruleset.md +1 -1
  86. data/docs/SamlConnection.md +1 -1
  87. data/docs/ScimBaseGroup.md +19 -0
  88. data/docs/ScimGroup.md +21 -0
  89. data/docs/ScimGroupMember.md +19 -0
  90. data/docs/ScimGroupsListResponse.md +21 -0
  91. data/docs/Store.md +1 -1
  92. data/docs/TemplateDef.md +1 -1
  93. data/docs/UpdateAchievement.md +1 -1
  94. data/docs/User.md +1 -1
  95. data/docs/Webhook.md +3 -1
  96. data/docs/WebhookAuthentication.md +33 -0
  97. data/docs/WebhookAuthenticationBase.md +21 -0
  98. data/docs/WebhookAuthenticationDataBasic.md +19 -0
  99. data/docs/WebhookAuthenticationDataCustom.md +17 -0
  100. data/docs/WebhookAuthenticationWebhookRef.md +21 -0
  101. data/docs/WebhookWithOutgoingIntegrationDetails.md +3 -1
  102. data/lib/talon_one/api/integration_api.rb +6 -6
  103. data/lib/talon_one/api/management_api.rb +879 -11
  104. data/lib/talon_one/models/account.rb +1 -1
  105. data/lib/talon_one/models/account_additional_cost.rb +1 -1
  106. data/lib/talon_one/models/achievement.rb +4 -4
  107. data/lib/talon_one/models/achievement_base.rb +3 -3
  108. data/lib/talon_one/models/achievement_progress_with_definition.rb +3 -3
  109. data/lib/talon_one/models/achievement_status_entry.rb +4 -4
  110. data/lib/talon_one/models/add_price_adjustment_catalog_action.rb +230 -0
  111. data/lib/talon_one/models/added_deducted_points_balances_notification_policy.rb +269 -0
  112. data/lib/talon_one/models/application.rb +1 -1
  113. data/lib/talon_one/models/application_cif.rb +1 -1
  114. data/lib/talon_one/models/application_cif_expression.rb +1 -1
  115. data/lib/talon_one/models/application_customer.rb +2 -2
  116. data/lib/talon_one/models/application_event.rb +1 -1
  117. data/lib/talon_one/models/application_session.rb +1 -1
  118. data/lib/talon_one/models/attribute.rb +1 -1
  119. data/lib/talon_one/models/audience.rb +1 -1
  120. data/lib/talon_one/models/audience_customer.rb +2 -2
  121. data/lib/talon_one/models/base_notification.rb +2 -2
  122. data/lib/talon_one/models/base_notification_webhook.rb +1 -1
  123. data/lib/talon_one/models/binding.rb +44 -4
  124. data/lib/talon_one/models/campaign_collection.rb +1 -1
  125. data/lib/talon_one/models/campaign_collection_without_payload.rb +1 -1
  126. data/lib/talon_one/models/campaign_deactivation_request.rb +214 -0
  127. data/lib/talon_one/models/campaign_group.rb +1 -1
  128. data/lib/talon_one/models/campaign_set.rb +1 -1
  129. data/lib/talon_one/models/campaign_store_budget.rb +1 -1
  130. data/lib/talon_one/models/campaign_template.rb +1 -1
  131. data/lib/talon_one/models/card_added_deducted_points_balances_notification_policy.rb +269 -0
  132. data/lib/talon_one/models/cart_item.rb +57 -5
  133. data/lib/talon_one/models/catalog.rb +1 -1
  134. data/lib/talon_one/models/catalog_action.rb +2 -2
  135. data/lib/talon_one/models/catalog_item.rb +1 -1
  136. data/lib/talon_one/models/change.rb +1 -1
  137. data/lib/talon_one/models/collection.rb +1 -1
  138. data/lib/talon_one/models/collection_without_payload.rb +1 -1
  139. data/lib/talon_one/models/coupon.rb +7 -7
  140. data/lib/talon_one/models/coupon_constraints.rb +5 -5
  141. data/lib/talon_one/models/coupon_creation_job.rb +6 -6
  142. data/lib/talon_one/models/coupon_deletion_job.rb +1 -1
  143. data/lib/talon_one/models/coupon_entity.rb +227 -0
  144. data/lib/talon_one/models/create_achievement.rb +3 -3
  145. data/lib/talon_one/models/custom_effect.rb +1 -1
  146. data/lib/talon_one/models/customer_profile.rb +2 -2
  147. data/lib/talon_one/models/customer_profile_entity.rb +227 -0
  148. data/lib/talon_one/models/customer_session_v2.rb +1 -1
  149. data/lib/talon_one/models/effect.rb +31 -1
  150. data/lib/talon_one/models/effect_entity.rb +34 -4
  151. data/lib/talon_one/models/entity.rb +1 -1
  152. data/lib/talon_one/models/environment.rb +17 -5
  153. data/lib/talon_one/models/event.rb +1 -1
  154. data/lib/talon_one/models/event_type.rb +1 -1
  155. data/lib/talon_one/models/export.rb +1 -1
  156. data/lib/talon_one/models/extend_loyalty_points_expiry_date_effect_props.rb +270 -0
  157. data/lib/talon_one/models/giveaway.rb +1 -1
  158. data/lib/talon_one/models/giveaways_pool.rb +1 -1
  159. data/lib/talon_one/models/import.rb +1 -1
  160. data/lib/talon_one/models/inline_response20048.rb +2 -16
  161. data/lib/talon_one/models/inline_response20049.rb +2 -21
  162. data/lib/talon_one/models/inline_response20050.rb +222 -0
  163. data/lib/talon_one/models/inline_response20051.rb +227 -0
  164. data/lib/talon_one/models/integration_coupon.rb +7 -7
  165. data/lib/talon_one/models/integration_customer_profile_audience_request.rb +208 -0
  166. data/lib/talon_one/models/integration_customer_profile_audience_request_item.rb +295 -0
  167. data/lib/talon_one/models/integration_event_v2_request.rb +13 -1
  168. data/lib/talon_one/models/inventory_coupon.rb +7 -7
  169. data/lib/talon_one/models/inventory_referral.rb +1 -1
  170. data/lib/talon_one/models/ledger_entry.rb +1 -1
  171. data/lib/talon_one/models/ledger_info.rb +0 -10
  172. data/lib/talon_one/models/loyalty_card.rb +1 -1
  173. data/lib/talon_one/models/loyalty_program_balance.rb +0 -10
  174. data/lib/talon_one/models/loyalty_tier.rb +1 -1
  175. data/lib/talon_one/models/model_return.rb +1 -1
  176. data/lib/talon_one/models/multiple_audiences_item.rb +1 -1
  177. data/lib/talon_one/models/new_coupon_creation_job.rb +5 -5
  178. data/lib/talon_one/models/new_coupons.rb +5 -5
  179. data/lib/talon_one/models/new_coupons_for_multiple_recipients.rb +5 -5
  180. data/lib/talon_one/models/new_message_test.rb +2 -2
  181. data/lib/talon_one/models/new_price_adjustment.rb +268 -0
  182. data/lib/talon_one/models/new_price_type.rb +270 -0
  183. data/lib/talon_one/models/new_webhook.rb +16 -1
  184. data/lib/talon_one/models/picklist.rb +1 -1
  185. data/lib/talon_one/models/price_detail.rb +237 -0
  186. data/lib/talon_one/models/price_type.rb +347 -0
  187. data/lib/talon_one/models/referral.rb +1 -1
  188. data/lib/talon_one/models/revision_activation_request.rb +224 -0
  189. data/lib/talon_one/models/role.rb +1 -1
  190. data/lib/talon_one/models/role_v2.rb +1 -1
  191. data/lib/talon_one/models/ruleset.rb +1 -1
  192. data/lib/talon_one/models/saml_connection.rb +1 -1
  193. data/lib/talon_one/models/scim_base_group.rb +220 -0
  194. data/lib/talon_one/models/scim_group.rb +235 -0
  195. data/lib/talon_one/models/scim_group_member.rb +218 -0
  196. data/lib/talon_one/models/scim_groups_list_response.rb +236 -0
  197. data/lib/talon_one/models/store.rb +1 -1
  198. data/lib/talon_one/models/template_def.rb +1 -1
  199. data/lib/talon_one/models/update_achievement.rb +3 -3
  200. data/lib/talon_one/models/update_coupon.rb +5 -5
  201. data/lib/talon_one/models/update_coupon_batch.rb +5 -5
  202. data/lib/talon_one/models/user.rb +1 -1
  203. data/lib/talon_one/models/webhook.rb +17 -2
  204. data/lib/talon_one/models/webhook_authentication.rb +365 -0
  205. data/lib/talon_one/models/webhook_authentication_base.rb +274 -0
  206. data/lib/talon_one/models/webhook_authentication_data_basic.rb +227 -0
  207. data/lib/talon_one/models/webhook_authentication_data_custom.rb +213 -0
  208. data/lib/talon_one/models/webhook_authentication_webhook_ref.rb +258 -0
  209. data/lib/talon_one/models/webhook_with_outgoing_integration_details.rb +17 -2
  210. data/lib/talon_one/version.rb +1 -1
  211. data/lib/talon_one.rb +24 -0
  212. data/spec/api/integration_api_spec.rb +3 -3
  213. data/spec/api/management_api_spec.rb +167 -3
  214. data/spec/models/achievement_base_spec.rb +1 -1
  215. data/spec/models/achievement_progress_with_definition_spec.rb +1 -1
  216. data/spec/models/achievement_spec.rb +1 -1
  217. data/spec/models/achievement_status_entry_spec.rb +1 -1
  218. data/spec/models/add_price_adjustment_catalog_action_spec.rb +47 -0
  219. data/spec/models/added_deducted_points_balances_notification_policy_spec.rb +51 -0
  220. data/spec/models/base_notification_spec.rb +1 -1
  221. data/spec/models/binding_spec.rb +24 -0
  222. data/spec/models/campaign_deactivation_request_spec.rb +41 -0
  223. data/spec/models/card_added_deducted_points_balances_notification_policy_spec.rb +51 -0
  224. data/spec/models/cart_item_spec.rb +30 -0
  225. data/spec/models/catalog_action_spec.rb +1 -1
  226. data/spec/models/coupon_entity_spec.rb +47 -0
  227. data/spec/models/create_achievement_spec.rb +1 -1
  228. data/spec/models/customer_profile_entity_spec.rb +47 -0
  229. data/spec/models/effect_entity_spec.rb +18 -0
  230. data/spec/models/effect_spec.rb +18 -0
  231. data/spec/models/environment_spec.rb +6 -0
  232. data/spec/models/extend_loyalty_points_expiry_date_effect_props_spec.rb +65 -0
  233. data/spec/models/inline_response20048_spec.rb +0 -6
  234. data/spec/models/inline_response20049_spec.rb +0 -6
  235. data/spec/models/inline_response20050_spec.rb +47 -0
  236. data/spec/models/inline_response20051_spec.rb +47 -0
  237. data/spec/models/integration_customer_profile_audience_request_item_spec.rb +57 -0
  238. data/spec/models/integration_customer_profile_audience_request_spec.rb +41 -0
  239. data/spec/models/integration_event_v2_request_spec.rb +6 -0
  240. data/spec/models/new_message_test_spec.rb +1 -1
  241. data/spec/models/new_price_adjustment_spec.rb +71 -0
  242. data/spec/models/new_price_type_spec.rb +59 -0
  243. data/spec/models/new_webhook_spec.rb +6 -0
  244. data/spec/models/price_detail_spec.rb +59 -0
  245. data/spec/models/price_type_spec.rb +89 -0
  246. data/spec/models/scim_base_group_spec.rb +47 -0
  247. data/spec/models/scim_group_member_spec.rb +47 -0
  248. data/spec/models/scim_group_spec.rb +53 -0
  249. data/spec/models/scim_groups_list_response_spec.rb +53 -0
  250. data/spec/models/update_achievement_spec.rb +1 -1
  251. data/spec/models/webhook_authentication_base_spec.rb +57 -0
  252. data/spec/models/webhook_authentication_data_basic_spec.rb +47 -0
  253. data/spec/models/webhook_authentication_data_custom_spec.rb +41 -0
  254. data/spec/models/webhook_authentication_spec.rb +93 -0
  255. data/spec/models/webhook_authentication_webhook_ref_spec.rb +53 -0
  256. data/spec/models/webhook_spec.rb +6 -0
  257. data/spec/models/webhook_with_outgoing_integration_details_spec.rb +6 -0
  258. metadata +100 -2
@@ -0,0 +1,295 @@
1
+ =begin
2
+ #Talon.One API
3
+
4
+ #Use the Talon.One API to integrate with your application and to manage applications and campaigns: - Use the operations in the [Integration API section](#integration-api) are used to integrate with our platform - Use the operation in the [Management API section](#management-api) to manage applications and campaigns. ## Determining the base URL of the endpoints The API is available at the same hostname as your Campaign Manager deployment. For example, if you access the Campaign Manager at `https://yourbaseurl.talon.one/`, the URL for the [updateCustomerSessionV2](https://docs.talon.one/integration-api#operation/updateCustomerSessionV2) endpoint is `https://yourbaseurl.talon.one/v2/customer_sessions/{Id}`
5
+
6
+ The version of the OpenAPI document:
7
+
8
+ Generated by: https://openapi-generator.tech
9
+ OpenAPI Generator version: 4.3.1
10
+
11
+ =end
12
+
13
+ require 'date'
14
+
15
+ module TalonOne
16
+ class IntegrationCustomerProfileAudienceRequestItem
17
+ # Defines the action to perform: - `add`: Adds the customer profile to the audience. **Note**: If the customer profile does not exist, it will be created. The profile will not be visible in any Application until a session or profile update is received for that profile. - `delete`: Removes the customer profile from the audience.
18
+ attr_accessor :action
19
+
20
+ # The ID of this customer profile in the third-party integration.
21
+ attr_accessor :profile_integration_id
22
+
23
+ # The ID of this audience in the third-party integration.
24
+ attr_accessor :integration_id
25
+
26
+ class EnumAttributeValidator
27
+ attr_reader :datatype
28
+ attr_reader :allowable_values
29
+
30
+ def initialize(datatype, allowable_values)
31
+ @allowable_values = allowable_values.map do |value|
32
+ case datatype.to_s
33
+ when /Integer/i
34
+ value.to_i
35
+ when /Float/i
36
+ value.to_f
37
+ else
38
+ value
39
+ end
40
+ end
41
+ end
42
+
43
+ def valid?(value)
44
+ !value || allowable_values.include?(value)
45
+ end
46
+ end
47
+
48
+ # Attribute mapping from ruby-style variable name to JSON key.
49
+ def self.attribute_map
50
+ {
51
+ :'action' => :'action',
52
+ :'profile_integration_id' => :'profileIntegrationId',
53
+ :'integration_id' => :'integrationId'
54
+ }
55
+ end
56
+
57
+ # Attribute type mapping.
58
+ def self.openapi_types
59
+ {
60
+ :'action' => :'String',
61
+ :'profile_integration_id' => :'String',
62
+ :'integration_id' => :'String'
63
+ }
64
+ end
65
+
66
+ # List of attributes with nullable: true
67
+ def self.openapi_nullable
68
+ Set.new([
69
+ ])
70
+ end
71
+
72
+ # Initializes the object
73
+ # @param [Hash] attributes Model attributes in the form of hash
74
+ def initialize(attributes = {})
75
+ if (!attributes.is_a?(Hash))
76
+ fail ArgumentError, "The input argument (attributes) must be a hash in `TalonOne::IntegrationCustomerProfileAudienceRequestItem` initialize method"
77
+ end
78
+
79
+ # check to see if the attribute exists and convert string to symbol for hash key
80
+ attributes = attributes.each_with_object({}) { |(k, v), h|
81
+ if (!self.class.attribute_map.key?(k.to_sym))
82
+ fail ArgumentError, "`#{k}` is not a valid attribute in `TalonOne::IntegrationCustomerProfileAudienceRequestItem`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
83
+ end
84
+ h[k.to_sym] = v
85
+ }
86
+
87
+ if attributes.key?(:'action')
88
+ self.action = attributes[:'action']
89
+ end
90
+
91
+ if attributes.key?(:'profile_integration_id')
92
+ self.profile_integration_id = attributes[:'profile_integration_id']
93
+ end
94
+
95
+ if attributes.key?(:'integration_id')
96
+ self.integration_id = attributes[:'integration_id']
97
+ end
98
+ end
99
+
100
+ # Show invalid properties with the reasons. Usually used together with valid?
101
+ # @return Array for valid properties with the reasons
102
+ def list_invalid_properties
103
+ invalid_properties = Array.new
104
+ if @action.nil?
105
+ invalid_properties.push('invalid value for "action", action cannot be nil.')
106
+ end
107
+
108
+ if @profile_integration_id.nil?
109
+ invalid_properties.push('invalid value for "profile_integration_id", profile_integration_id cannot be nil.')
110
+ end
111
+
112
+ if @profile_integration_id.to_s.length > 1000
113
+ invalid_properties.push('invalid value for "profile_integration_id", the character length must be smaller than or equal to 1000.')
114
+ end
115
+
116
+ if @integration_id.nil?
117
+ invalid_properties.push('invalid value for "integration_id", integration_id cannot be nil.')
118
+ end
119
+
120
+ invalid_properties
121
+ end
122
+
123
+ # Check to see if the all the properties in the model are valid
124
+ # @return true if the model is valid
125
+ def valid?
126
+ return false if @action.nil?
127
+ action_validator = EnumAttributeValidator.new('String', ["add", "delete"])
128
+ return false unless action_validator.valid?(@action)
129
+ return false if @profile_integration_id.nil?
130
+ return false if @profile_integration_id.to_s.length > 1000
131
+ return false if @integration_id.nil?
132
+ true
133
+ end
134
+
135
+ # Custom attribute writer method checking allowed values (enum).
136
+ # @param [Object] action Object to be assigned
137
+ def action=(action)
138
+ validator = EnumAttributeValidator.new('String', ["add", "delete"])
139
+ unless validator.valid?(action)
140
+ fail ArgumentError, "invalid value for \"action\", must be one of #{validator.allowable_values}."
141
+ end
142
+ @action = action
143
+ end
144
+
145
+ # Custom attribute writer method with validation
146
+ # @param [Object] profile_integration_id Value to be assigned
147
+ def profile_integration_id=(profile_integration_id)
148
+ if profile_integration_id.nil?
149
+ fail ArgumentError, 'profile_integration_id cannot be nil'
150
+ end
151
+
152
+ if profile_integration_id.to_s.length > 1000
153
+ fail ArgumentError, 'invalid value for "profile_integration_id", the character length must be smaller than or equal to 1000.'
154
+ end
155
+
156
+ @profile_integration_id = profile_integration_id
157
+ end
158
+
159
+ # Checks equality by comparing each attribute.
160
+ # @param [Object] Object to be compared
161
+ def ==(o)
162
+ return true if self.equal?(o)
163
+ self.class == o.class &&
164
+ action == o.action &&
165
+ profile_integration_id == o.profile_integration_id &&
166
+ integration_id == o.integration_id
167
+ end
168
+
169
+ # @see the `==` method
170
+ # @param [Object] Object to be compared
171
+ def eql?(o)
172
+ self == o
173
+ end
174
+
175
+ # Calculates hash code according to all attributes.
176
+ # @return [Integer] Hash code
177
+ def hash
178
+ [action, profile_integration_id, integration_id].hash
179
+ end
180
+
181
+ # Builds the object from hash
182
+ # @param [Hash] attributes Model attributes in the form of hash
183
+ # @return [Object] Returns the model itself
184
+ def self.build_from_hash(attributes)
185
+ new.build_from_hash(attributes)
186
+ end
187
+
188
+ # Builds the object from hash
189
+ # @param [Hash] attributes Model attributes in the form of hash
190
+ # @return [Object] Returns the model itself
191
+ def build_from_hash(attributes)
192
+ return nil unless attributes.is_a?(Hash)
193
+ self.class.openapi_types.each_pair do |key, type|
194
+ if type =~ /\AArray<(.*)>/i
195
+ # check to ensure the input is an array given that the attribute
196
+ # is documented as an array but the input is not
197
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
198
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
199
+ end
200
+ elsif !attributes[self.class.attribute_map[key]].nil?
201
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
202
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
203
+ end
204
+
205
+ self
206
+ end
207
+
208
+ # Deserializes the data based on type
209
+ # @param string type Data type
210
+ # @param string value Value to be deserialized
211
+ # @return [Object] Deserialized data
212
+ def _deserialize(type, value)
213
+ case type.to_sym
214
+ when :DateTime
215
+ DateTime.parse(value)
216
+ when :Date
217
+ Date.parse(value)
218
+ when :String
219
+ value.to_s
220
+ when :Integer
221
+ value.to_i
222
+ when :Float
223
+ value.to_f
224
+ when :Boolean
225
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
226
+ true
227
+ else
228
+ false
229
+ end
230
+ when :Object
231
+ # generic object (usually a Hash), return directly
232
+ value
233
+ when /\AArray<(?<inner_type>.+)>\z/
234
+ inner_type = Regexp.last_match[:inner_type]
235
+ value.map { |v| _deserialize(inner_type, v) }
236
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
237
+ k_type = Regexp.last_match[:k_type]
238
+ v_type = Regexp.last_match[:v_type]
239
+ {}.tap do |hash|
240
+ value.each do |k, v|
241
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
242
+ end
243
+ end
244
+ else # model
245
+ TalonOne.const_get(type).build_from_hash(value)
246
+ end
247
+ end
248
+
249
+ # Returns the string representation of the object
250
+ # @return [String] String presentation of the object
251
+ def to_s
252
+ to_hash.to_s
253
+ end
254
+
255
+ # to_body is an alias to to_hash (backward compatibility)
256
+ # @return [Hash] Returns the object in the form of hash
257
+ def to_body
258
+ to_hash
259
+ end
260
+
261
+ # Returns the object in the form of hash
262
+ # @return [Hash] Returns the object in the form of hash
263
+ def to_hash
264
+ hash = {}
265
+ self.class.attribute_map.each_pair do |attr, param|
266
+ value = self.send(attr)
267
+ if value.nil?
268
+ is_nullable = self.class.openapi_nullable.include?(attr)
269
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
270
+ end
271
+
272
+ hash[param] = _to_hash(value)
273
+ end
274
+ hash
275
+ end
276
+
277
+ # Outputs non-array value in the form of hash
278
+ # For object, use to_hash. Otherwise, just return the value
279
+ # @param [Object] value Any valid value
280
+ # @return [Hash] Returns the value in the form of hash
281
+ def _to_hash(value)
282
+ if value.is_a?(Array)
283
+ value.compact.map { |v| _to_hash(v) }
284
+ elsif value.is_a?(Hash)
285
+ {}.tap do |hash|
286
+ value.each { |k, v| hash[k] = _to_hash(v) }
287
+ end
288
+ elsif value.respond_to? :to_hash
289
+ value.to_hash
290
+ else
291
+ value
292
+ end
293
+ end
294
+ end
295
+ end
@@ -29,6 +29,9 @@ module TalonOne
29
29
  # Arbitrary additional JSON properties associated with the event. They must be created in the Campaign Manager before setting them with this property. See [creating custom attributes](https://docs.talon.one/docs/product/account/dev-tools/managing-attributes#creating-a-custom-attribute).
30
30
  attr_accessor :attributes
31
31
 
32
+ # Identifier of the loyalty card used during this event.
33
+ attr_accessor :loyalty_cards
34
+
32
35
  # Optional list of requested information to be present on the response related to the tracking custom event.
33
36
  attr_accessor :response_content
34
37
 
@@ -62,6 +65,7 @@ module TalonOne
62
65
  :'evaluable_campaign_ids' => :'evaluableCampaignIds',
63
66
  :'type' => :'type',
64
67
  :'attributes' => :'attributes',
68
+ :'loyalty_cards' => :'loyaltyCards',
65
69
  :'response_content' => :'responseContent'
66
70
  }
67
71
  end
@@ -74,6 +78,7 @@ module TalonOne
74
78
  :'evaluable_campaign_ids' => :'Array<Integer>',
75
79
  :'type' => :'String',
76
80
  :'attributes' => :'Object',
81
+ :'loyalty_cards' => :'Array<String>',
77
82
  :'response_content' => :'Array<String>'
78
83
  }
79
84
  end
@@ -121,6 +126,12 @@ module TalonOne
121
126
  self.attributes = attributes[:'attributes']
122
127
  end
123
128
 
129
+ if attributes.key?(:'loyalty_cards')
130
+ if (value = attributes[:'loyalty_cards']).is_a?(Array)
131
+ self.loyalty_cards = value
132
+ end
133
+ end
134
+
124
135
  if attributes.key?(:'response_content')
125
136
  if (value = attributes[:'response_content']).is_a?(Array)
126
137
  self.response_content = value
@@ -199,6 +210,7 @@ module TalonOne
199
210
  evaluable_campaign_ids == o.evaluable_campaign_ids &&
200
211
  type == o.type &&
201
212
  attributes == o.attributes &&
213
+ loyalty_cards == o.loyalty_cards &&
202
214
  response_content == o.response_content
203
215
  end
204
216
 
@@ -211,7 +223,7 @@ module TalonOne
211
223
  # Calculates hash code according to all attributes.
212
224
  # @return [Integer] Hash code
213
225
  def hash
214
- [profile_id, store_integration_id, evaluable_campaign_ids, type, attributes, response_content].hash
226
+ [profile_id, store_integration_id, evaluable_campaign_ids, type, attributes, loyalty_cards, response_content].hash
215
227
  end
216
228
 
217
229
  # Builds the object from hash
@@ -14,10 +14,10 @@ require 'date'
14
14
 
15
15
  module TalonOne
16
16
  class InventoryCoupon
17
- # Internal ID of this entity.
17
+ # The internal ID of the coupon.
18
18
  attr_accessor :id
19
19
 
20
- # The time this entity was created.
20
+ # The time the coupon was created.
21
21
  attr_accessor :created
22
22
 
23
23
  # The ID of the campaign that owns this entity.
@@ -306,8 +306,8 @@ module TalonOne
306
306
  invalid_properties.push('invalid value for "usage_limit", must be greater than or equal to 0.')
307
307
  end
308
308
 
309
- if !@discount_limit.nil? && @discount_limit > 999999
310
- invalid_properties.push('invalid value for "discount_limit", must be smaller than or equal to 999999.')
309
+ if !@discount_limit.nil? && @discount_limit > 1E+15
310
+ invalid_properties.push('invalid value for "discount_limit", must be smaller than or equal to 1E+15.')
311
311
  end
312
312
 
313
313
  if !@discount_limit.nil? && @discount_limit < 0
@@ -352,7 +352,7 @@ module TalonOne
352
352
  return false if @usage_limit.nil?
353
353
  return false if @usage_limit > 999999
354
354
  return false if @usage_limit < 0
355
- return false if !@discount_limit.nil? && @discount_limit > 999999
355
+ return false if !@discount_limit.nil? && @discount_limit > 1E+15
356
356
  return false if !@discount_limit.nil? && @discount_limit < 0
357
357
  return false if !@reservation_limit.nil? && @reservation_limit > 999999
358
358
  return false if !@reservation_limit.nil? && @reservation_limit < 0
@@ -398,8 +398,8 @@ module TalonOne
398
398
  # Custom attribute writer method with validation
399
399
  # @param [Object] discount_limit Value to be assigned
400
400
  def discount_limit=(discount_limit)
401
- if !discount_limit.nil? && discount_limit > 999999
402
- fail ArgumentError, 'invalid value for "discount_limit", must be smaller than or equal to 999999.'
401
+ if !discount_limit.nil? && discount_limit > 1E+15
402
+ fail ArgumentError, 'invalid value for "discount_limit", must be smaller than or equal to 1E+15.'
403
403
  end
404
404
 
405
405
  if !discount_limit.nil? && discount_limit < 0
@@ -14,7 +14,7 @@ require 'date'
14
14
 
15
15
  module TalonOne
16
16
  class InventoryReferral
17
- # Internal ID of this entity.
17
+ # The internal ID of this entity.
18
18
  attr_accessor :id
19
19
 
20
20
  # The time this entity was created.
@@ -15,7 +15,7 @@ require 'date'
15
15
  module TalonOne
16
16
  # Entry in the point ledger.
17
17
  class LedgerEntry
18
- # Internal ID of this entity.
18
+ # The internal ID of this entity.
19
19
  attr_accessor :id
20
20
 
21
21
  # The time this entity was created.
@@ -150,10 +150,6 @@ module TalonOne
150
150
  invalid_properties.push('invalid value for "pending_balance", pending_balance cannot be nil.')
151
151
  end
152
152
 
153
- if @negative_balance.nil?
154
- invalid_properties.push('invalid value for "negative_balance", negative_balance cannot be nil.')
155
- end
156
-
157
153
  if @expired_balance.nil?
158
154
  invalid_properties.push('invalid value for "expired_balance", expired_balance cannot be nil.')
159
155
  end
@@ -166,10 +162,6 @@ module TalonOne
166
162
  invalid_properties.push('invalid value for "tentative_current_balance", tentative_current_balance cannot be nil.')
167
163
  end
168
164
 
169
- if @tentative_negative_balance.nil?
170
- invalid_properties.push('invalid value for "tentative_negative_balance", tentative_negative_balance cannot be nil.')
171
- end
172
-
173
165
  invalid_properties
174
166
  end
175
167
 
@@ -178,11 +170,9 @@ module TalonOne
178
170
  def valid?
179
171
  return false if @current_balance.nil?
180
172
  return false if @pending_balance.nil?
181
- return false if @negative_balance.nil?
182
173
  return false if @expired_balance.nil?
183
174
  return false if @spent_balance.nil?
184
175
  return false if @tentative_current_balance.nil?
185
- return false if @tentative_negative_balance.nil?
186
176
  true
187
177
  end
188
178
 
@@ -14,7 +14,7 @@ require 'date'
14
14
 
15
15
  module TalonOne
16
16
  class LoyaltyCard
17
- # Internal ID of this entity.
17
+ # The internal ID of this entity.
18
18
  attr_accessor :id
19
19
 
20
20
  # The time this entity was created.
@@ -133,10 +133,6 @@ module TalonOne
133
133
  invalid_properties.push('invalid value for "pending_balance", pending_balance cannot be nil.')
134
134
  end
135
135
 
136
- if @negative_balance.nil?
137
- invalid_properties.push('invalid value for "negative_balance", negative_balance cannot be nil.')
138
- end
139
-
140
136
  if @expired_balance.nil?
141
137
  invalid_properties.push('invalid value for "expired_balance", expired_balance cannot be nil.')
142
138
  end
@@ -149,10 +145,6 @@ module TalonOne
149
145
  invalid_properties.push('invalid value for "tentative_current_balance", tentative_current_balance cannot be nil.')
150
146
  end
151
147
 
152
- if @tentative_negative_balance.nil?
153
- invalid_properties.push('invalid value for "tentative_negative_balance", tentative_negative_balance cannot be nil.')
154
- end
155
-
156
148
  invalid_properties
157
149
  end
158
150
 
@@ -161,11 +153,9 @@ module TalonOne
161
153
  def valid?
162
154
  return false if @current_balance.nil?
163
155
  return false if @pending_balance.nil?
164
- return false if @negative_balance.nil?
165
156
  return false if @expired_balance.nil?
166
157
  return false if @spent_balance.nil?
167
158
  return false if @tentative_current_balance.nil?
168
- return false if @tentative_negative_balance.nil?
169
159
  true
170
160
  end
171
161
 
@@ -15,7 +15,7 @@ require 'date'
15
15
  module TalonOne
16
16
  # A tier in a loyalty program.
17
17
  class LoyaltyTier
18
- # Internal ID of this entity.
18
+ # The internal ID of this entity.
19
19
  attr_accessor :id
20
20
 
21
21
  # The time this entity was created.
@@ -14,7 +14,7 @@ require 'date'
14
14
 
15
15
  module TalonOne
16
16
  class ModelReturn
17
- # Internal ID of this entity.
17
+ # The internal ID of this entity.
18
18
  attr_accessor :id
19
19
 
20
20
  # The time this entity was created.
@@ -14,7 +14,7 @@ require 'date'
14
14
 
15
15
  module TalonOne
16
16
  class MultipleAudiencesItem
17
- # Internal ID of this entity.
17
+ # The internal ID of this entity.
18
18
  attr_accessor :id
19
19
 
20
20
  # The time this entity was created.
@@ -135,8 +135,8 @@ module TalonOne
135
135
  invalid_properties.push('invalid value for "usage_limit", must be greater than or equal to 0.')
136
136
  end
137
137
 
138
- if !@discount_limit.nil? && @discount_limit > 999999
139
- invalid_properties.push('invalid value for "discount_limit", must be smaller than or equal to 999999.')
138
+ if !@discount_limit.nil? && @discount_limit > 1E+15
139
+ invalid_properties.push('invalid value for "discount_limit", must be smaller than or equal to 1E+15.')
140
140
  end
141
141
 
142
142
  if !@discount_limit.nil? && @discount_limit < 0
@@ -176,7 +176,7 @@ module TalonOne
176
176
  return false if @usage_limit.nil?
177
177
  return false if @usage_limit > 999999
178
178
  return false if @usage_limit < 0
179
- return false if !@discount_limit.nil? && @discount_limit > 999999
179
+ return false if !@discount_limit.nil? && @discount_limit > 1E+15
180
180
  return false if !@discount_limit.nil? && @discount_limit < 0
181
181
  return false if !@reservation_limit.nil? && @reservation_limit > 999999
182
182
  return false if !@reservation_limit.nil? && @reservation_limit < 0
@@ -208,8 +208,8 @@ module TalonOne
208
208
  # Custom attribute writer method with validation
209
209
  # @param [Object] discount_limit Value to be assigned
210
210
  def discount_limit=(discount_limit)
211
- if !discount_limit.nil? && discount_limit > 999999
212
- fail ArgumentError, 'invalid value for "discount_limit", must be smaller than or equal to 999999.'
211
+ if !discount_limit.nil? && discount_limit > 1E+15
212
+ fail ArgumentError, 'invalid value for "discount_limit", must be smaller than or equal to 1E+15.'
213
213
  end
214
214
 
215
215
  if !discount_limit.nil? && discount_limit < 0
@@ -196,8 +196,8 @@ module TalonOne
196
196
  invalid_properties.push('invalid value for "usage_limit", must be greater than or equal to 0.')
197
197
  end
198
198
 
199
- if !@discount_limit.nil? && @discount_limit > 999999
200
- invalid_properties.push('invalid value for "discount_limit", must be smaller than or equal to 999999.')
199
+ if !@discount_limit.nil? && @discount_limit > 1E+15
200
+ invalid_properties.push('invalid value for "discount_limit", must be smaller than or equal to 1E+15.')
201
201
  end
202
202
 
203
203
  if !@discount_limit.nil? && @discount_limit < 0
@@ -237,7 +237,7 @@ module TalonOne
237
237
  return false if @usage_limit.nil?
238
238
  return false if @usage_limit > 999999
239
239
  return false if @usage_limit < 0
240
- return false if !@discount_limit.nil? && @discount_limit > 999999
240
+ return false if !@discount_limit.nil? && @discount_limit > 1E+15
241
241
  return false if !@discount_limit.nil? && @discount_limit < 0
242
242
  return false if !@reservation_limit.nil? && @reservation_limit > 999999
243
243
  return false if !@reservation_limit.nil? && @reservation_limit < 0
@@ -269,8 +269,8 @@ module TalonOne
269
269
  # Custom attribute writer method with validation
270
270
  # @param [Object] discount_limit Value to be assigned
271
271
  def discount_limit=(discount_limit)
272
- if !discount_limit.nil? && discount_limit > 999999
273
- fail ArgumentError, 'invalid value for "discount_limit", must be smaller than or equal to 999999.'
272
+ if !discount_limit.nil? && discount_limit > 1E+15
273
+ fail ArgumentError, 'invalid value for "discount_limit", must be smaller than or equal to 1E+15.'
274
274
  end
275
275
 
276
276
  if !discount_limit.nil? && discount_limit < 0
@@ -149,8 +149,8 @@ module TalonOne
149
149
  invalid_properties.push('invalid value for "usage_limit", must be greater than or equal to 0.')
150
150
  end
151
151
 
152
- if !@discount_limit.nil? && @discount_limit > 999999
153
- invalid_properties.push('invalid value for "discount_limit", must be smaller than or equal to 999999.')
152
+ if !@discount_limit.nil? && @discount_limit > 1E+15
153
+ invalid_properties.push('invalid value for "discount_limit", must be smaller than or equal to 1E+15.')
154
154
  end
155
155
 
156
156
  if !@discount_limit.nil? && @discount_limit < 0
@@ -186,7 +186,7 @@ module TalonOne
186
186
  return false if @usage_limit.nil?
187
187
  return false if @usage_limit > 999999
188
188
  return false if @usage_limit < 0
189
- return false if !@discount_limit.nil? && @discount_limit > 999999
189
+ return false if !@discount_limit.nil? && @discount_limit > 1E+15
190
190
  return false if !@discount_limit.nil? && @discount_limit < 0
191
191
  return false if !@reservation_limit.nil? && @reservation_limit > 999999
192
192
  return false if !@reservation_limit.nil? && @reservation_limit < 0
@@ -217,8 +217,8 @@ module TalonOne
217
217
  # Custom attribute writer method with validation
218
218
  # @param [Object] discount_limit Value to be assigned
219
219
  def discount_limit=(discount_limit)
220
- if !discount_limit.nil? && discount_limit > 999999
221
- fail ArgumentError, 'invalid value for "discount_limit", must be smaller than or equal to 999999.'
220
+ if !discount_limit.nil? && discount_limit > 1E+15
221
+ fail ArgumentError, 'invalid value for "discount_limit", must be smaller than or equal to 1E+15.'
222
222
  end
223
223
 
224
224
  if !discount_limit.nil? && discount_limit < 0
@@ -151,7 +151,7 @@ module TalonOne
151
151
  # @return true if the model is valid
152
152
  def valid?
153
153
  return false if @type.nil?
154
- type_validator = EnumAttributeValidator.new('String', ["campaign", "loyalty_added_deducted_points", "card_added_deducted_points", "coupon", "expiring_coupons", "expiring_points", "pending_to_active_points", "strikethrough_pricing", "tier_downgrade", "tier_upgrade", "tier_will_downgrade", "card_expiring_points", "rule_engine_webhook"])
154
+ type_validator = EnumAttributeValidator.new('String', ["campaign", "loyalty_added_deducted_points", "card_added_deducted_points", "loyalty_added_deducted_points_balances", "loyalty_card_added_deducted_points_balances", "coupon", "expiring_coupons", "expiring_points", "pending_to_active_points", "strikethrough_pricing", "tier_downgrade", "tier_upgrade", "tier_will_downgrade", "card_expiring_points", "rule_engine_webhook"])
155
155
  return false unless type_validator.valid?(@type)
156
156
  return false if @verb.nil?
157
157
  verb_validator = EnumAttributeValidator.new('String', ["POST", "PUT", "GET", "DELETE", "PATCH"])
@@ -163,7 +163,7 @@ module TalonOne
163
163
  # Custom attribute writer method checking allowed values (enum).
164
164
  # @param [Object] type Object to be assigned
165
165
  def type=(type)
166
- validator = EnumAttributeValidator.new('String', ["campaign", "loyalty_added_deducted_points", "card_added_deducted_points", "coupon", "expiring_coupons", "expiring_points", "pending_to_active_points", "strikethrough_pricing", "tier_downgrade", "tier_upgrade", "tier_will_downgrade", "card_expiring_points", "rule_engine_webhook"])
166
+ validator = EnumAttributeValidator.new('String', ["campaign", "loyalty_added_deducted_points", "card_added_deducted_points", "loyalty_added_deducted_points_balances", "loyalty_card_added_deducted_points_balances", "coupon", "expiring_coupons", "expiring_points", "pending_to_active_points", "strikethrough_pricing", "tier_downgrade", "tier_upgrade", "tier_will_downgrade", "card_expiring_points", "rule_engine_webhook"])
167
167
  unless validator.valid?(type)
168
168
  fail ArgumentError, "invalid value for \"type\", must be one of #{validator.allowable_values}."
169
169
  end