talon_one 8.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 (293) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +42 -8
  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 +35 -0
  7. data/docs/AchievementProgressWithDefinition.md +45 -0
  8. data/docs/AchievementStatusEntry.md +45 -0
  9. data/docs/AddPriceAdjustmentCatalogAction.md +19 -0
  10. data/docs/AddedDeductedPointsBalancesNotificationPolicy.md +19 -0
  11. data/docs/AnalyticsSKU.md +23 -0
  12. data/docs/Application.md +1 -1
  13. data/docs/ApplicationCIF.md +1 -1
  14. data/docs/ApplicationCIFExpression.md +1 -1
  15. data/docs/ApplicationCIFReferences.md +19 -0
  16. data/docs/ApplicationCustomer.md +2 -2
  17. data/docs/ApplicationEvent.md +1 -1
  18. data/docs/ApplicationSession.md +1 -1
  19. data/docs/Attribute.md +1 -1
  20. data/docs/Audience.md +1 -1
  21. data/docs/AudienceCustomer.md +2 -2
  22. data/docs/BaseNotificationWebhook.md +1 -1
  23. data/docs/Binding.md +9 -1
  24. data/docs/CampaignCollection.md +1 -1
  25. data/docs/CampaignCollectionWithoutPayload.md +1 -1
  26. data/docs/CampaignDeactivationRequest.md +17 -0
  27. data/docs/CampaignDetail.md +19 -0
  28. data/docs/CampaignGroup.md +1 -1
  29. data/docs/CampaignSet.md +1 -1
  30. data/docs/CampaignStoreBudget.md +1 -1
  31. data/docs/CampaignStoreBudgetLimitConfig.md +25 -0
  32. data/docs/CampaignTemplate.md +4 -2
  33. data/docs/CardAddedDeductedPointsBalancesNotificationPolicy.md +19 -0
  34. data/docs/CartItem.md +12 -2
  35. data/docs/Catalog.md +1 -1
  36. data/docs/CatalogItem.md +1 -1
  37. data/docs/Change.md +1 -1
  38. data/docs/Collection.md +1 -1
  39. data/docs/CollectionWithoutPayload.md +1 -1
  40. data/docs/Coupon.md +2 -2
  41. data/docs/CouponCreationJob.md +1 -1
  42. data/docs/CouponDeletionJob.md +1 -1
  43. data/docs/CouponEntity.md +19 -0
  44. data/docs/CreateAchievement.md +1 -1
  45. data/docs/CustomEffect.md +1 -1
  46. data/docs/CustomerProfile.md +2 -2
  47. data/docs/CustomerProfileEntity.md +19 -0
  48. data/docs/CustomerSessionV2.md +1 -1
  49. data/docs/Effect.md +6 -0
  50. data/docs/EffectEntity.md +7 -1
  51. data/docs/Entity.md +1 -1
  52. data/docs/Environment.md +4 -2
  53. data/docs/Event.md +1 -1
  54. data/docs/EventType.md +1 -1
  55. data/docs/Export.md +1 -1
  56. data/docs/ExtendLoyaltyPointsExpiryDateEffectProps.md +25 -0
  57. data/docs/Giveaway.md +1 -1
  58. data/docs/GiveawaysPool.md +1 -1
  59. data/docs/HiddenConditionsEffects.md +23 -0
  60. data/docs/Import.md +1 -1
  61. data/docs/InlineResponse20048.md +17 -0
  62. data/docs/InlineResponse20049.md +17 -0
  63. data/docs/InlineResponse20050.md +19 -0
  64. data/docs/InlineResponse20051.md +19 -0
  65. data/docs/IntegrationApi.md +6 -4
  66. data/docs/IntegrationCoupon.md +2 -2
  67. data/docs/IntegrationCustomerProfileAudienceRequest.md +17 -0
  68. data/docs/IntegrationCustomerProfileAudienceRequestItem.md +21 -0
  69. data/docs/IntegrationEventV2Request.md +2 -0
  70. data/docs/InventoryCoupon.md +2 -2
  71. data/docs/InventoryReferral.md +1 -1
  72. data/docs/LedgerEntry.md +1 -1
  73. data/docs/LedgerInfo.md +2 -2
  74. data/docs/LedgerTransactionLogEntryIntegrationAPI.md +3 -1
  75. data/docs/LoyaltyCard.md +1 -1
  76. data/docs/LoyaltyLedgerEntryFlags.md +17 -0
  77. data/docs/LoyaltyProgramBalance.md +2 -2
  78. data/docs/LoyaltyProgramTransaction.md +3 -1
  79. data/docs/LoyaltyTier.md +1 -1
  80. data/docs/ManagementApi.md +824 -220
  81. data/docs/MessageTest.md +27 -0
  82. data/docs/ModelReturn.md +1 -1
  83. data/docs/MultipleAudiencesItem.md +1 -1
  84. data/docs/NewMessageTest.md +29 -0
  85. data/docs/NewPriceAdjustment.md +27 -0
  86. data/docs/NewPriceType.md +23 -0
  87. data/docs/NewWebhook.md +2 -0
  88. data/docs/Picklist.md +1 -1
  89. data/docs/PriceDetail.md +23 -0
  90. data/docs/PriceType.md +33 -0
  91. data/docs/ProductUnitAnalyticsDataPoint.md +25 -0
  92. data/docs/ProductUnitAnalyticsTotals.md +17 -0
  93. data/docs/Referral.md +1 -1
  94. data/docs/RevisionActivationRequest.md +19 -0
  95. data/docs/Role.md +1 -1
  96. data/docs/RoleV2.md +1 -1
  97. data/docs/Ruleset.md +1 -1
  98. data/docs/SamlConnection.md +1 -1
  99. data/docs/ScimBaseGroup.md +19 -0
  100. data/docs/ScimGroup.md +21 -0
  101. data/docs/ScimGroupMember.md +19 -0
  102. data/docs/ScimGroupsListResponse.md +21 -0
  103. data/docs/SkuUnitAnalytics.md +19 -0
  104. data/docs/SkuUnitAnalyticsDataPoint.md +23 -0
  105. data/docs/Store.md +1 -1
  106. data/docs/StrikethroughLabelingNotification.md +2 -0
  107. data/docs/TemplateDef.md +1 -1
  108. data/docs/UpdateAchievement.md +1 -1
  109. data/docs/User.md +1 -1
  110. data/docs/Webhook.md +3 -1
  111. data/docs/WebhookAuthentication.md +33 -0
  112. data/docs/WebhookAuthenticationBase.md +21 -0
  113. data/docs/WebhookAuthenticationDataBasic.md +19 -0
  114. data/docs/WebhookAuthenticationDataCustom.md +17 -0
  115. data/docs/WebhookAuthenticationWebhookRef.md +21 -0
  116. data/docs/WebhookWithOutgoingIntegrationDetails.md +3 -1
  117. data/lib/talon_one/api/integration_api.rb +9 -6
  118. data/lib/talon_one/api/management_api.rb +1009 -304
  119. data/lib/talon_one/models/account.rb +1 -1
  120. data/lib/talon_one/models/account_additional_cost.rb +1 -1
  121. data/lib/talon_one/models/achievement.rb +4 -4
  122. data/lib/talon_one/models/achievement_base.rb +377 -0
  123. data/lib/talon_one/models/achievement_progress_with_definition.rb +490 -0
  124. data/lib/talon_one/models/achievement_status_entry.rb +472 -0
  125. data/lib/talon_one/models/add_price_adjustment_catalog_action.rb +230 -0
  126. data/lib/talon_one/models/added_deducted_points_balances_notification_policy.rb +269 -0
  127. data/lib/talon_one/models/analytics_sku.rb +246 -0
  128. data/lib/talon_one/models/application.rb +1 -1
  129. data/lib/talon_one/models/application_cif.rb +1 -1
  130. data/lib/talon_one/models/application_cif_expression.rb +1 -1
  131. data/lib/talon_one/models/application_cif_references.rb +219 -0
  132. data/lib/talon_one/models/application_customer.rb +2 -2
  133. data/lib/talon_one/models/application_event.rb +1 -1
  134. data/lib/talon_one/models/application_session.rb +1 -1
  135. data/lib/talon_one/models/attribute.rb +1 -1
  136. data/lib/talon_one/models/audience.rb +1 -1
  137. data/lib/talon_one/models/audience_customer.rb +2 -2
  138. data/lib/talon_one/models/base_notification.rb +2 -2
  139. data/lib/talon_one/models/base_notification_webhook.rb +1 -1
  140. data/lib/talon_one/models/binding.rb +44 -4
  141. data/lib/talon_one/models/campaign_collection.rb +1 -1
  142. data/lib/talon_one/models/campaign_collection_without_payload.rb +1 -1
  143. data/lib/talon_one/models/campaign_deactivation_request.rb +214 -0
  144. data/lib/talon_one/models/campaign_detail.rb +232 -0
  145. data/lib/talon_one/models/campaign_group.rb +1 -1
  146. data/lib/talon_one/models/campaign_set.rb +1 -1
  147. data/lib/talon_one/models/campaign_store_budget.rb +1 -1
  148. data/lib/talon_one/models/campaign_store_budget_limit_config.rb +322 -0
  149. data/lib/talon_one/models/campaign_template.rb +17 -5
  150. data/lib/talon_one/models/card_added_deducted_points_balances_notification_policy.rb +269 -0
  151. data/lib/talon_one/models/cart_item.rb +57 -5
  152. data/lib/talon_one/models/catalog.rb +1 -1
  153. data/lib/talon_one/models/catalog_action.rb +2 -2
  154. data/lib/talon_one/models/catalog_item.rb +1 -1
  155. data/lib/talon_one/models/change.rb +1 -1
  156. data/lib/talon_one/models/collection.rb +1 -1
  157. data/lib/talon_one/models/collection_without_payload.rb +1 -1
  158. data/lib/talon_one/models/coupon.rb +7 -7
  159. data/lib/talon_one/models/coupon_constraints.rb +5 -5
  160. data/lib/talon_one/models/coupon_creation_job.rb +6 -6
  161. data/lib/talon_one/models/coupon_deletion_job.rb +1 -1
  162. data/lib/talon_one/models/coupon_entity.rb +227 -0
  163. data/lib/talon_one/models/create_achievement.rb +3 -3
  164. data/lib/talon_one/models/custom_effect.rb +1 -1
  165. data/lib/talon_one/models/customer_profile.rb +2 -2
  166. data/lib/talon_one/models/customer_profile_entity.rb +227 -0
  167. data/lib/talon_one/models/customer_session_v2.rb +1 -1
  168. data/lib/talon_one/models/delete_user_request.rb +0 -1
  169. data/lib/talon_one/models/effect.rb +31 -1
  170. data/lib/talon_one/models/effect_entity.rb +34 -4
  171. data/lib/talon_one/models/entity.rb +1 -1
  172. data/lib/talon_one/models/environment.rb +17 -5
  173. data/lib/talon_one/models/event.rb +1 -1
  174. data/lib/talon_one/models/event_type.rb +1 -1
  175. data/lib/talon_one/models/export.rb +1 -1
  176. data/lib/talon_one/models/extend_loyalty_points_expiry_date_effect_props.rb +270 -0
  177. data/lib/talon_one/models/giveaway.rb +1 -1
  178. data/lib/talon_one/models/giveaways_pool.rb +1 -1
  179. data/lib/talon_one/models/hidden_conditions_effects.rb +246 -0
  180. data/lib/talon_one/models/import.rb +1 -1
  181. data/lib/talon_one/models/inline_response20048.rb +208 -0
  182. data/lib/talon_one/models/inline_response20049.rb +208 -0
  183. data/lib/talon_one/models/inline_response20050.rb +222 -0
  184. data/lib/talon_one/models/inline_response20051.rb +227 -0
  185. data/lib/talon_one/models/integration_coupon.rb +7 -7
  186. data/lib/talon_one/models/integration_customer_profile_audience_request.rb +208 -0
  187. data/lib/talon_one/models/integration_customer_profile_audience_request_item.rb +295 -0
  188. data/lib/talon_one/models/integration_event_v2_request.rb +13 -1
  189. data/lib/talon_one/models/inventory_coupon.rb +7 -7
  190. data/lib/talon_one/models/inventory_referral.rb +1 -1
  191. data/lib/talon_one/models/ledger_entry.rb +1 -1
  192. data/lib/talon_one/models/ledger_info.rb +0 -10
  193. data/lib/talon_one/models/ledger_transaction_log_entry_integration_api.rb +13 -4
  194. data/lib/talon_one/models/loyalty_card.rb +1 -1
  195. data/lib/talon_one/models/loyalty_ledger_entry_flags.rb +208 -0
  196. data/lib/talon_one/models/loyalty_program_balance.rb +0 -10
  197. data/lib/talon_one/models/loyalty_program_transaction.rb +13 -4
  198. data/lib/talon_one/models/loyalty_tier.rb +1 -1
  199. data/lib/talon_one/models/message_test.rb +227 -0
  200. data/lib/talon_one/models/model_return.rb +1 -1
  201. data/lib/talon_one/models/multiple_audiences_item.rb +1 -1
  202. data/lib/talon_one/models/new_coupon_creation_job.rb +5 -5
  203. data/lib/talon_one/models/new_coupons.rb +5 -5
  204. data/lib/talon_one/models/new_coupons_for_multiple_recipients.rb +5 -5
  205. data/lib/talon_one/models/new_message_test.rb +322 -0
  206. data/lib/talon_one/models/new_price_adjustment.rb +268 -0
  207. data/lib/talon_one/models/new_price_type.rb +270 -0
  208. data/lib/talon_one/models/new_webhook.rb +16 -1
  209. data/lib/talon_one/models/picklist.rb +1 -1
  210. data/lib/talon_one/models/price_detail.rb +237 -0
  211. data/lib/talon_one/models/price_type.rb +347 -0
  212. data/lib/talon_one/models/product_unit_analytics_data_point.rb +271 -0
  213. data/lib/talon_one/models/product_unit_analytics_totals.rb +206 -0
  214. data/lib/talon_one/models/referral.rb +1 -1
  215. data/lib/talon_one/models/revision_activation_request.rb +224 -0
  216. data/lib/talon_one/models/role.rb +1 -1
  217. data/lib/talon_one/models/role_v2.rb +1 -1
  218. data/lib/talon_one/models/ruleset.rb +1 -1
  219. data/lib/talon_one/models/saml_connection.rb +1 -1
  220. data/lib/talon_one/models/scim_base_group.rb +220 -0
  221. data/lib/talon_one/models/scim_group.rb +235 -0
  222. data/lib/talon_one/models/scim_group_member.rb +218 -0
  223. data/lib/talon_one/models/scim_groups_list_response.rb +236 -0
  224. data/lib/talon_one/models/sku_unit_analytics.rb +227 -0
  225. data/lib/talon_one/models/sku_unit_analytics_data_point.rb +256 -0
  226. data/lib/talon_one/models/store.rb +1 -1
  227. data/lib/talon_one/models/strikethrough_labeling_notification.rb +11 -1
  228. data/lib/talon_one/models/template_def.rb +1 -1
  229. data/lib/talon_one/models/update_achievement.rb +3 -3
  230. data/lib/talon_one/models/update_coupon.rb +5 -5
  231. data/lib/talon_one/models/update_coupon_batch.rb +5 -5
  232. data/lib/talon_one/models/user.rb +1 -1
  233. data/lib/talon_one/models/webhook.rb +17 -2
  234. data/lib/talon_one/models/webhook_authentication.rb +365 -0
  235. data/lib/talon_one/models/webhook_authentication_base.rb +274 -0
  236. data/lib/talon_one/models/webhook_authentication_data_basic.rb +227 -0
  237. data/lib/talon_one/models/webhook_authentication_data_custom.rb +213 -0
  238. data/lib/talon_one/models/webhook_authentication_webhook_ref.rb +258 -0
  239. data/lib/talon_one/models/webhook_with_outgoing_integration_details.rb +17 -2
  240. data/lib/talon_one/version.rb +1 -1
  241. data/lib/talon_one.rb +26 -1
  242. data/spec/api/integration_api_spec.rb +4 -3
  243. data/spec/api/management_api_spec.rb +227 -90
  244. data/spec/models/achievement_base_spec.rb +1 -1
  245. data/spec/models/achievement_progress_with_definition_spec.rb +1 -1
  246. data/spec/models/achievement_spec.rb +1 -1
  247. data/spec/models/achievement_status_entry_spec.rb +1 -1
  248. data/spec/models/add_price_adjustment_catalog_action_spec.rb +47 -0
  249. data/spec/models/added_deducted_points_balances_notification_policy_spec.rb +51 -0
  250. data/spec/models/base_notification_spec.rb +1 -1
  251. data/spec/models/binding_spec.rb +24 -0
  252. data/spec/models/campaign_deactivation_request_spec.rb +41 -0
  253. data/spec/models/campaign_template_spec.rb +6 -0
  254. data/spec/models/card_added_deducted_points_balances_notification_policy_spec.rb +51 -0
  255. data/spec/models/cart_item_spec.rb +30 -0
  256. data/spec/models/catalog_action_spec.rb +1 -1
  257. data/spec/models/coupon_entity_spec.rb +47 -0
  258. data/spec/models/create_achievement_spec.rb +1 -1
  259. data/spec/models/customer_profile_entity_spec.rb +47 -0
  260. data/spec/models/effect_entity_spec.rb +18 -0
  261. data/spec/models/effect_spec.rb +18 -0
  262. data/spec/models/environment_spec.rb +6 -0
  263. data/spec/models/extend_loyalty_points_expiry_date_effect_props_spec.rb +65 -0
  264. data/spec/models/inline_response20048_spec.rb +0 -6
  265. data/spec/models/inline_response20049_spec.rb +0 -6
  266. data/spec/models/inline_response20050_spec.rb +47 -0
  267. data/spec/models/inline_response20051_spec.rb +47 -0
  268. data/spec/models/integration_customer_profile_audience_request_item_spec.rb +57 -0
  269. data/spec/models/integration_customer_profile_audience_request_spec.rb +41 -0
  270. data/spec/models/integration_event_v2_request_spec.rb +6 -0
  271. data/spec/models/ledger_transaction_log_entry_integration_api_spec.rb +6 -0
  272. data/spec/models/loyalty_program_transaction_spec.rb +6 -0
  273. data/spec/models/new_message_test_spec.rb +1 -1
  274. data/spec/models/new_price_adjustment_spec.rb +71 -0
  275. data/spec/models/new_price_type_spec.rb +59 -0
  276. data/spec/models/new_webhook_spec.rb +6 -0
  277. data/spec/models/price_detail_spec.rb +59 -0
  278. data/spec/models/price_type_spec.rb +89 -0
  279. data/spec/models/revision_activation_request_spec.rb +47 -0
  280. data/spec/models/scim_base_group_spec.rb +47 -0
  281. data/spec/models/scim_group_member_spec.rb +47 -0
  282. data/spec/models/scim_group_spec.rb +53 -0
  283. data/spec/models/scim_groups_list_response_spec.rb +53 -0
  284. data/spec/models/strikethrough_labeling_notification_spec.rb +6 -0
  285. data/spec/models/update_achievement_spec.rb +1 -1
  286. data/spec/models/webhook_authentication_base_spec.rb +57 -0
  287. data/spec/models/webhook_authentication_data_basic_spec.rb +47 -0
  288. data/spec/models/webhook_authentication_data_custom_spec.rb +41 -0
  289. data/spec/models/webhook_authentication_spec.rb +93 -0
  290. data/spec/models/webhook_authentication_webhook_ref_spec.rb +53 -0
  291. data/spec/models/webhook_spec.rb +6 -0
  292. data/spec/models/webhook_with_outgoing_integration_details_spec.rb +6 -0
  293. metadata +661 -527
@@ -0,0 +1,322 @@
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 NewMessageTest
17
+ # The message type.
18
+ attr_accessor :type
19
+
20
+ # Array of query parameters.
21
+ attr_accessor :_query_params
22
+
23
+ # List of API HTTP headers for the given message.
24
+ attr_accessor :headers
25
+
26
+ # API method for this message.
27
+ attr_accessor :verb
28
+
29
+ # API URL for the given message.
30
+ attr_accessor :url
31
+
32
+ # API payload of this message.
33
+ attr_accessor :payload
34
+
35
+ class EnumAttributeValidator
36
+ attr_reader :datatype
37
+ attr_reader :allowable_values
38
+
39
+ def initialize(datatype, allowable_values)
40
+ @allowable_values = allowable_values.map do |value|
41
+ case datatype.to_s
42
+ when /Integer/i
43
+ value.to_i
44
+ when /Float/i
45
+ value.to_f
46
+ else
47
+ value
48
+ end
49
+ end
50
+ end
51
+
52
+ def valid?(value)
53
+ !value || allowable_values.include?(value)
54
+ end
55
+ end
56
+
57
+ # Attribute mapping from ruby-style variable name to JSON key.
58
+ def self.attribute_map
59
+ {
60
+ :'type' => :'type',
61
+ :'_query_params' => :'queryParams',
62
+ :'headers' => :'headers',
63
+ :'verb' => :'verb',
64
+ :'url' => :'url',
65
+ :'payload' => :'payload'
66
+ }
67
+ end
68
+
69
+ # Attribute type mapping.
70
+ def self.openapi_types
71
+ {
72
+ :'type' => :'String',
73
+ :'_query_params' => :'Hash<String, String>',
74
+ :'headers' => :'Hash<String, String>',
75
+ :'verb' => :'String',
76
+ :'url' => :'String',
77
+ :'payload' => :'String'
78
+ }
79
+ end
80
+
81
+ # List of attributes with nullable: true
82
+ def self.openapi_nullable
83
+ Set.new([
84
+ ])
85
+ end
86
+
87
+ # Initializes the object
88
+ # @param [Hash] attributes Model attributes in the form of hash
89
+ def initialize(attributes = {})
90
+ if (!attributes.is_a?(Hash))
91
+ fail ArgumentError, "The input argument (attributes) must be a hash in `TalonOne::NewMessageTest` initialize method"
92
+ end
93
+
94
+ # check to see if the attribute exists and convert string to symbol for hash key
95
+ attributes = attributes.each_with_object({}) { |(k, v), h|
96
+ if (!self.class.attribute_map.key?(k.to_sym))
97
+ fail ArgumentError, "`#{k}` is not a valid attribute in `TalonOne::NewMessageTest`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
98
+ end
99
+ h[k.to_sym] = v
100
+ }
101
+
102
+ if attributes.key?(:'type')
103
+ self.type = attributes[:'type']
104
+ end
105
+
106
+ if attributes.key?(:'_query_params')
107
+ if (value = attributes[:'_query_params']).is_a?(Hash)
108
+ self._query_params = value
109
+ end
110
+ end
111
+
112
+ if attributes.key?(:'headers')
113
+ if (value = attributes[:'headers']).is_a?(Hash)
114
+ self.headers = value
115
+ end
116
+ end
117
+
118
+ if attributes.key?(:'verb')
119
+ self.verb = attributes[:'verb']
120
+ end
121
+
122
+ if attributes.key?(:'url')
123
+ self.url = attributes[:'url']
124
+ end
125
+
126
+ if attributes.key?(:'payload')
127
+ self.payload = attributes[:'payload']
128
+ end
129
+ end
130
+
131
+ # Show invalid properties with the reasons. Usually used together with valid?
132
+ # @return Array for valid properties with the reasons
133
+ def list_invalid_properties
134
+ invalid_properties = Array.new
135
+ if @type.nil?
136
+ invalid_properties.push('invalid value for "type", type cannot be nil.')
137
+ end
138
+
139
+ if @verb.nil?
140
+ invalid_properties.push('invalid value for "verb", verb cannot be nil.')
141
+ end
142
+
143
+ if @url.nil?
144
+ invalid_properties.push('invalid value for "url", url cannot be nil.')
145
+ end
146
+
147
+ invalid_properties
148
+ end
149
+
150
+ # Check to see if the all the properties in the model are valid
151
+ # @return true if the model is valid
152
+ def valid?
153
+ return false if @type.nil?
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
+ return false unless type_validator.valid?(@type)
156
+ return false if @verb.nil?
157
+ verb_validator = EnumAttributeValidator.new('String', ["POST", "PUT", "GET", "DELETE", "PATCH"])
158
+ return false unless verb_validator.valid?(@verb)
159
+ return false if @url.nil?
160
+ true
161
+ end
162
+
163
+ # Custom attribute writer method checking allowed values (enum).
164
+ # @param [Object] type Object to be assigned
165
+ def type=(type)
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
+ unless validator.valid?(type)
168
+ fail ArgumentError, "invalid value for \"type\", must be one of #{validator.allowable_values}."
169
+ end
170
+ @type = type
171
+ end
172
+
173
+ # Custom attribute writer method checking allowed values (enum).
174
+ # @param [Object] verb Object to be assigned
175
+ def verb=(verb)
176
+ validator = EnumAttributeValidator.new('String', ["POST", "PUT", "GET", "DELETE", "PATCH"])
177
+ unless validator.valid?(verb)
178
+ fail ArgumentError, "invalid value for \"verb\", must be one of #{validator.allowable_values}."
179
+ end
180
+ @verb = verb
181
+ end
182
+
183
+ # Checks equality by comparing each attribute.
184
+ # @param [Object] Object to be compared
185
+ def ==(o)
186
+ return true if self.equal?(o)
187
+ self.class == o.class &&
188
+ type == o.type &&
189
+ _query_params == o._query_params &&
190
+ headers == o.headers &&
191
+ verb == o.verb &&
192
+ url == o.url &&
193
+ payload == o.payload
194
+ end
195
+
196
+ # @see the `==` method
197
+ # @param [Object] Object to be compared
198
+ def eql?(o)
199
+ self == o
200
+ end
201
+
202
+ # Calculates hash code according to all attributes.
203
+ # @return [Integer] Hash code
204
+ def hash
205
+ [type, _query_params, headers, verb, url, payload].hash
206
+ end
207
+
208
+ # Builds the object from hash
209
+ # @param [Hash] attributes Model attributes in the form of hash
210
+ # @return [Object] Returns the model itself
211
+ def self.build_from_hash(attributes)
212
+ new.build_from_hash(attributes)
213
+ end
214
+
215
+ # Builds the object from hash
216
+ # @param [Hash] attributes Model attributes in the form of hash
217
+ # @return [Object] Returns the model itself
218
+ def build_from_hash(attributes)
219
+ return nil unless attributes.is_a?(Hash)
220
+ self.class.openapi_types.each_pair do |key, type|
221
+ if type =~ /\AArray<(.*)>/i
222
+ # check to ensure the input is an array given that the attribute
223
+ # is documented as an array but the input is not
224
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
225
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
226
+ end
227
+ elsif !attributes[self.class.attribute_map[key]].nil?
228
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
229
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
230
+ end
231
+
232
+ self
233
+ end
234
+
235
+ # Deserializes the data based on type
236
+ # @param string type Data type
237
+ # @param string value Value to be deserialized
238
+ # @return [Object] Deserialized data
239
+ def _deserialize(type, value)
240
+ case type.to_sym
241
+ when :DateTime
242
+ DateTime.parse(value)
243
+ when :Date
244
+ Date.parse(value)
245
+ when :String
246
+ value.to_s
247
+ when :Integer
248
+ value.to_i
249
+ when :Float
250
+ value.to_f
251
+ when :Boolean
252
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
253
+ true
254
+ else
255
+ false
256
+ end
257
+ when :Object
258
+ # generic object (usually a Hash), return directly
259
+ value
260
+ when /\AArray<(?<inner_type>.+)>\z/
261
+ inner_type = Regexp.last_match[:inner_type]
262
+ value.map { |v| _deserialize(inner_type, v) }
263
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
264
+ k_type = Regexp.last_match[:k_type]
265
+ v_type = Regexp.last_match[:v_type]
266
+ {}.tap do |hash|
267
+ value.each do |k, v|
268
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
269
+ end
270
+ end
271
+ else # model
272
+ TalonOne.const_get(type).build_from_hash(value)
273
+ end
274
+ end
275
+
276
+ # Returns the string representation of the object
277
+ # @return [String] String presentation of the object
278
+ def to_s
279
+ to_hash.to_s
280
+ end
281
+
282
+ # to_body is an alias to to_hash (backward compatibility)
283
+ # @return [Hash] Returns the object in the form of hash
284
+ def to_body
285
+ to_hash
286
+ end
287
+
288
+ # Returns the object in the form of hash
289
+ # @return [Hash] Returns the object in the form of hash
290
+ def to_hash
291
+ hash = {}
292
+ self.class.attribute_map.each_pair do |attr, param|
293
+ value = self.send(attr)
294
+ if value.nil?
295
+ is_nullable = self.class.openapi_nullable.include?(attr)
296
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
297
+ end
298
+
299
+ hash[param] = _to_hash(value)
300
+ end
301
+ hash
302
+ end
303
+
304
+ # Outputs non-array value in the form of hash
305
+ # For object, use to_hash. Otherwise, just return the value
306
+ # @param [Object] value Any valid value
307
+ # @return [Hash] Returns the value in the form of hash
308
+ def _to_hash(value)
309
+ if value.is_a?(Array)
310
+ value.compact.map { |v| _to_hash(v) }
311
+ elsif value.is_a?(Hash)
312
+ {}.tap do |hash|
313
+ value.each { |k, v| hash[k] = _to_hash(v) }
314
+ end
315
+ elsif value.respond_to? :to_hash
316
+ value.to_hash
317
+ else
318
+ value
319
+ end
320
+ end
321
+ end
322
+ end
@@ -0,0 +1,268 @@
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 NewPriceAdjustment
17
+ # The price type (e.g. the price for members only) to apply to a given SKU.
18
+ attr_accessor :price_type
19
+
20
+ # The value of the price type applied to the SKU. When set to `null`, the defined price type no longer applies to the SKU.
21
+ attr_accessor :price
22
+
23
+ # A unique reference identifier, e.g. a UUID.
24
+ attr_accessor :reference_id
25
+
26
+ # The time at which this price was calculated. If provided, this is used to determine the most recent price adjustment to choose if price adjustments overlap. Defaults to internal creation time if not provided.
27
+ attr_accessor :calculated_at
28
+
29
+ # The date and time from which the price adjustment is effective.
30
+ attr_accessor :effective_from
31
+
32
+ # The date and time until which the price adjustment is effective.
33
+ attr_accessor :effective_until
34
+
35
+ # Attribute mapping from ruby-style variable name to JSON key.
36
+ def self.attribute_map
37
+ {
38
+ :'price_type' => :'priceType',
39
+ :'price' => :'price',
40
+ :'reference_id' => :'referenceId',
41
+ :'calculated_at' => :'calculatedAt',
42
+ :'effective_from' => :'effectiveFrom',
43
+ :'effective_until' => :'effectiveUntil'
44
+ }
45
+ end
46
+
47
+ # Attribute type mapping.
48
+ def self.openapi_types
49
+ {
50
+ :'price_type' => :'String',
51
+ :'price' => :'Float',
52
+ :'reference_id' => :'String',
53
+ :'calculated_at' => :'DateTime',
54
+ :'effective_from' => :'DateTime',
55
+ :'effective_until' => :'DateTime'
56
+ }
57
+ end
58
+
59
+ # List of attributes with nullable: true
60
+ def self.openapi_nullable
61
+ Set.new([
62
+ :'price',
63
+ ])
64
+ end
65
+
66
+ # Initializes the object
67
+ # @param [Hash] attributes Model attributes in the form of hash
68
+ def initialize(attributes = {})
69
+ if (!attributes.is_a?(Hash))
70
+ fail ArgumentError, "The input argument (attributes) must be a hash in `TalonOne::NewPriceAdjustment` initialize method"
71
+ end
72
+
73
+ # check to see if the attribute exists and convert string to symbol for hash key
74
+ attributes = attributes.each_with_object({}) { |(k, v), h|
75
+ if (!self.class.attribute_map.key?(k.to_sym))
76
+ fail ArgumentError, "`#{k}` is not a valid attribute in `TalonOne::NewPriceAdjustment`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
77
+ end
78
+ h[k.to_sym] = v
79
+ }
80
+
81
+ if attributes.key?(:'price_type')
82
+ self.price_type = attributes[:'price_type']
83
+ end
84
+
85
+ if attributes.key?(:'price')
86
+ self.price = attributes[:'price']
87
+ end
88
+
89
+ if attributes.key?(:'reference_id')
90
+ self.reference_id = attributes[:'reference_id']
91
+ end
92
+
93
+ if attributes.key?(:'calculated_at')
94
+ self.calculated_at = attributes[:'calculated_at']
95
+ end
96
+
97
+ if attributes.key?(:'effective_from')
98
+ self.effective_from = attributes[:'effective_from']
99
+ end
100
+
101
+ if attributes.key?(:'effective_until')
102
+ self.effective_until = attributes[:'effective_until']
103
+ end
104
+ end
105
+
106
+ # Show invalid properties with the reasons. Usually used together with valid?
107
+ # @return Array for valid properties with the reasons
108
+ def list_invalid_properties
109
+ invalid_properties = Array.new
110
+ if @price_type.nil?
111
+ invalid_properties.push('invalid value for "price_type", price_type cannot be nil.')
112
+ end
113
+
114
+ if @reference_id.nil?
115
+ invalid_properties.push('invalid value for "reference_id", reference_id cannot be nil.')
116
+ end
117
+
118
+ invalid_properties
119
+ end
120
+
121
+ # Check to see if the all the properties in the model are valid
122
+ # @return true if the model is valid
123
+ def valid?
124
+ return false if @price_type.nil?
125
+ return false if @reference_id.nil?
126
+ true
127
+ end
128
+
129
+ # Checks equality by comparing each attribute.
130
+ # @param [Object] Object to be compared
131
+ def ==(o)
132
+ return true if self.equal?(o)
133
+ self.class == o.class &&
134
+ price_type == o.price_type &&
135
+ price == o.price &&
136
+ reference_id == o.reference_id &&
137
+ calculated_at == o.calculated_at &&
138
+ effective_from == o.effective_from &&
139
+ effective_until == o.effective_until
140
+ end
141
+
142
+ # @see the `==` method
143
+ # @param [Object] Object to be compared
144
+ def eql?(o)
145
+ self == o
146
+ end
147
+
148
+ # Calculates hash code according to all attributes.
149
+ # @return [Integer] Hash code
150
+ def hash
151
+ [price_type, price, reference_id, calculated_at, effective_from, effective_until].hash
152
+ end
153
+
154
+ # Builds the object from hash
155
+ # @param [Hash] attributes Model attributes in the form of hash
156
+ # @return [Object] Returns the model itself
157
+ def self.build_from_hash(attributes)
158
+ new.build_from_hash(attributes)
159
+ end
160
+
161
+ # Builds the object from hash
162
+ # @param [Hash] attributes Model attributes in the form of hash
163
+ # @return [Object] Returns the model itself
164
+ def build_from_hash(attributes)
165
+ return nil unless attributes.is_a?(Hash)
166
+ self.class.openapi_types.each_pair do |key, type|
167
+ if type =~ /\AArray<(.*)>/i
168
+ # check to ensure the input is an array given that the attribute
169
+ # is documented as an array but the input is not
170
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
171
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
172
+ end
173
+ elsif !attributes[self.class.attribute_map[key]].nil?
174
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
175
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
176
+ end
177
+
178
+ self
179
+ end
180
+
181
+ # Deserializes the data based on type
182
+ # @param string type Data type
183
+ # @param string value Value to be deserialized
184
+ # @return [Object] Deserialized data
185
+ def _deserialize(type, value)
186
+ case type.to_sym
187
+ when :DateTime
188
+ DateTime.parse(value)
189
+ when :Date
190
+ Date.parse(value)
191
+ when :String
192
+ value.to_s
193
+ when :Integer
194
+ value.to_i
195
+ when :Float
196
+ value.to_f
197
+ when :Boolean
198
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
199
+ true
200
+ else
201
+ false
202
+ end
203
+ when :Object
204
+ # generic object (usually a Hash), return directly
205
+ value
206
+ when /\AArray<(?<inner_type>.+)>\z/
207
+ inner_type = Regexp.last_match[:inner_type]
208
+ value.map { |v| _deserialize(inner_type, v) }
209
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
210
+ k_type = Regexp.last_match[:k_type]
211
+ v_type = Regexp.last_match[:v_type]
212
+ {}.tap do |hash|
213
+ value.each do |k, v|
214
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
215
+ end
216
+ end
217
+ else # model
218
+ TalonOne.const_get(type).build_from_hash(value)
219
+ end
220
+ end
221
+
222
+ # Returns the string representation of the object
223
+ # @return [String] String presentation of the object
224
+ def to_s
225
+ to_hash.to_s
226
+ end
227
+
228
+ # to_body is an alias to to_hash (backward compatibility)
229
+ # @return [Hash] Returns the object in the form of hash
230
+ def to_body
231
+ to_hash
232
+ end
233
+
234
+ # Returns the object in the form of hash
235
+ # @return [Hash] Returns the object in the form of hash
236
+ def to_hash
237
+ hash = {}
238
+ self.class.attribute_map.each_pair do |attr, param|
239
+ value = self.send(attr)
240
+ if value.nil?
241
+ is_nullable = self.class.openapi_nullable.include?(attr)
242
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
243
+ end
244
+
245
+ hash[param] = _to_hash(value)
246
+ end
247
+ hash
248
+ end
249
+
250
+ # Outputs non-array value in the form of hash
251
+ # For object, use to_hash. Otherwise, just return the value
252
+ # @param [Object] value Any valid value
253
+ # @return [Hash] Returns the value in the form of hash
254
+ def _to_hash(value)
255
+ if value.is_a?(Array)
256
+ value.compact.map { |v| _to_hash(v) }
257
+ elsif value.is_a?(Hash)
258
+ {}.tap do |hash|
259
+ value.each { |k, v| hash[k] = _to_hash(v) }
260
+ end
261
+ elsif value.respond_to? :to_hash
262
+ value.to_hash
263
+ else
264
+ value
265
+ end
266
+ end
267
+ end
268
+ end