talon_one 7.0.0 → 9.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 (360) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +27 -12
  3. data/docs/Achievement.md +6 -4
  4. data/docs/AchievementAdditionalProperties.md +5 -3
  5. data/docs/AchievementBase.md +35 -0
  6. data/docs/AchievementProgress.md +3 -15
  7. data/docs/AchievementProgressWithDefinition.md +45 -0
  8. data/docs/AchievementStatusEntry.md +45 -0
  9. data/docs/AddFreeItemEffectProps.md +3 -1
  10. data/docs/AdditionalCampaignProperties.md +4 -2
  11. data/docs/AnalyticsProduct.md +6 -6
  12. data/docs/AnalyticsSKU.md +23 -0
  13. data/docs/ApplicationCIF.md +1 -1
  14. data/docs/ApplicationCIFExpression.md +1 -1
  15. data/docs/ApplicationCIFReferences.md +19 -0
  16. data/docs/ApplicationEntity.md +1 -1
  17. data/docs/ApplicationEvent.md +1 -1
  18. data/docs/ApplicationReferee.md +1 -1
  19. data/docs/ApplicationSession.md +2 -2
  20. data/docs/Audience.md +1 -1
  21. data/docs/BaseLoyaltyProgram.md +1 -1
  22. data/docs/Binding.md +1 -1
  23. data/docs/Campaign.md +4 -2
  24. data/docs/CampaignDetail.md +19 -0
  25. data/docs/CampaignEvaluationGroup.md +1 -1
  26. data/docs/CampaignNotificationPolicy.md +3 -1
  27. data/docs/CampaignSet.md +1 -1
  28. data/docs/CampaignStoreBudget.md +1 -1
  29. data/docs/CampaignStoreBudgetLimitConfig.md +25 -0
  30. data/docs/CampaignTemplate.md +3 -1
  31. data/docs/CardExpiringPointsNotificationPolicy.md +3 -1
  32. data/docs/CatalogsStrikethroughNotificationPolicy.md +3 -1
  33. data/docs/CouponCreationJob.md +1 -1
  34. data/docs/CouponDeletionJob.md +1 -1
  35. data/docs/CouponsNotificationPolicy.md +5 -1
  36. data/docs/CreateAchievement.md +1 -1
  37. data/docs/CustomerInventory.md +1 -1
  38. data/docs/CustomerSession.md +1 -1
  39. data/docs/CustomerSessionV2.md +2 -4
  40. data/docs/Environment.md +1 -1
  41. data/docs/Event.md +1 -1
  42. data/docs/ExpiringCouponsNotificationPolicy.md +3 -1
  43. data/docs/ExpiringPointsNotificationPolicy.md +3 -1
  44. data/docs/HiddenConditionsEffects.md +23 -0
  45. data/docs/InlineResponse2001.md +3 -3
  46. data/docs/InlineResponse20010.md +3 -3
  47. data/docs/InlineResponse20011.md +3 -3
  48. data/docs/InlineResponse20012.md +1 -1
  49. data/docs/InlineResponse20013.md +1 -1
  50. data/docs/InlineResponse20014.md +1 -1
  51. data/docs/InlineResponse20015.md +3 -3
  52. data/docs/InlineResponse20016.md +3 -3
  53. data/docs/InlineResponse20017.md +3 -5
  54. data/docs/InlineResponse20018.md +2 -2
  55. data/docs/InlineResponse20019.md +3 -3
  56. data/docs/InlineResponse2002.md +3 -3
  57. data/docs/InlineResponse20020.md +5 -3
  58. data/docs/InlineResponse20021.md +3 -5
  59. data/docs/InlineResponse20022.md +2 -4
  60. data/docs/InlineResponse20023.md +3 -5
  61. data/docs/InlineResponse20024.md +5 -3
  62. data/docs/InlineResponse20025.md +4 -2
  63. data/docs/InlineResponse20026.md +3 -1
  64. data/docs/InlineResponse20027.md +1 -1
  65. data/docs/InlineResponse20028.md +3 -3
  66. data/docs/InlineResponse20029.md +1 -3
  67. data/docs/InlineResponse2003.md +1 -1
  68. data/docs/InlineResponse20030.md +2 -2
  69. data/docs/InlineResponse20031.md +3 -3
  70. data/docs/InlineResponse20032.md +1 -1
  71. data/docs/InlineResponse20033.md +3 -3
  72. data/docs/InlineResponse20034.md +1 -3
  73. data/docs/InlineResponse20035.md +5 -3
  74. data/docs/InlineResponse20036.md +1 -1
  75. data/docs/InlineResponse20037.md +5 -3
  76. data/docs/InlineResponse20038.md +1 -1
  77. data/docs/InlineResponse20039.md +1 -1
  78. data/docs/InlineResponse2004.md +1 -1
  79. data/docs/InlineResponse20040.md +1 -1
  80. data/docs/InlineResponse20041.md +2 -4
  81. data/docs/InlineResponse20042.md +1 -1
  82. data/docs/InlineResponse20043.md +1 -1
  83. data/docs/InlineResponse20044.md +4 -4
  84. data/docs/InlineResponse20045.md +3 -3
  85. data/docs/InlineResponse20046.md +3 -3
  86. data/docs/InlineResponse20047.md +5 -3
  87. data/docs/InlineResponse20048.md +19 -0
  88. data/docs/InlineResponse20049.md +19 -0
  89. data/docs/InlineResponse2005.md +3 -3
  90. data/docs/InlineResponse2006.md +3 -3
  91. data/docs/InlineResponse2007.md +1 -1
  92. data/docs/InlineResponse2008.md +1 -1
  93. data/docs/InlineResponse2009.md +3 -3
  94. data/docs/IntegrationApi.md +159 -19
  95. data/docs/LedgerInfo.md +4 -0
  96. data/docs/LedgerTransactionLogEntryIntegrationAPI.md +3 -1
  97. data/docs/LimitCounter.md +1 -1
  98. data/docs/LoyaltyBalance.md +3 -1
  99. data/docs/LoyaltyBalanceWithTier.md +2 -0
  100. data/docs/LoyaltyBalances.md +1 -1
  101. data/docs/LoyaltyBalancesWithTiers.md +1 -1
  102. data/docs/LoyaltyCardBalances.md +1 -1
  103. data/docs/LoyaltyLedger.md +1 -1
  104. data/docs/LoyaltyLedgerEntry.md +3 -1
  105. data/docs/LoyaltyLedgerEntryFlags.md +17 -0
  106. data/docs/LoyaltyProgram.md +1 -1
  107. data/docs/LoyaltyProgramBalance.md +5 -1
  108. data/docs/LoyaltyProgramTransaction.md +3 -1
  109. data/docs/LoyaltySubLedger.md +2 -0
  110. data/docs/ManagementApi.md +345 -436
  111. data/docs/ManagementKey.md +3 -1
  112. data/docs/MessageTest.md +27 -0
  113. data/docs/ModelReturn.md +1 -1
  114. data/docs/NewAudience.md +1 -1
  115. data/docs/NewCampaignSet.md +1 -1
  116. data/docs/NewLoyaltyProgram.md +1 -1
  117. data/docs/NewManagementKey.md +2 -0
  118. data/docs/NewMessageTest.md +29 -0
  119. data/docs/PendingPointsNotificationPolicy.md +3 -1
  120. data/docs/ProductSearchMatch.md +2 -2
  121. data/docs/ProductUnitAnalytics.md +4 -10
  122. data/docs/ProductUnitAnalyticsDataPoint.md +25 -0
  123. data/docs/ProductUnitAnalyticsTotals.md +17 -0
  124. data/docs/SkuUnitAnalytics.md +19 -0
  125. data/docs/SkuUnitAnalyticsDataPoint.md +23 -0
  126. data/docs/Store.md +1 -1
  127. data/docs/StrikethroughEffect.md +5 -1
  128. data/docs/StrikethroughLabelingNotification.md +6 -2
  129. data/docs/SummaryCampaignStoreBudget.md +3 -1
  130. data/docs/TemplateDef.md +1 -1
  131. data/docs/TierDowngradeNotificationPolicy.md +3 -1
  132. data/docs/TierUpgradeNotificationPolicy.md +3 -1
  133. data/docs/TierWillDowngradeNotificationPolicy.md +2 -0
  134. data/docs/UpdateAchievement.md +2 -2
  135. data/docs/UpdateLoyaltyProgram.md +1 -1
  136. data/lib/talon_one/api/integration_api.rb +223 -29
  137. data/lib/talon_one/api/management_api.rb +434 -518
  138. data/lib/talon_one/models/achievement.rb +27 -15
  139. data/lib/talon_one/models/achievement_additional_properties.rb +49 -10
  140. data/lib/talon_one/models/achievement_base.rb +377 -0
  141. data/lib/talon_one/models/achievement_progress.rb +4 -137
  142. data/lib/talon_one/models/achievement_progress_with_definition.rb +490 -0
  143. data/lib/talon_one/models/achievement_status_entry.rb +472 -0
  144. data/lib/talon_one/models/add_free_item_effect_props.rb +14 -4
  145. data/lib/talon_one/models/additional_campaign_properties.rb +16 -9
  146. data/lib/talon_one/models/analytics_product.rb +20 -21
  147. data/lib/talon_one/models/analytics_sku.rb +246 -0
  148. data/lib/talon_one/models/application_api_key.rb +2 -2
  149. data/lib/talon_one/models/application_cif.rb +1 -1
  150. data/lib/talon_one/models/application_cif_expression.rb +1 -1
  151. data/lib/talon_one/models/application_cif_references.rb +219 -0
  152. data/lib/talon_one/models/application_entity.rb +1 -1
  153. data/lib/talon_one/models/application_event.rb +1 -1
  154. data/lib/talon_one/models/application_referee.rb +1 -1
  155. data/lib/talon_one/models/application_session.rb +2 -2
  156. data/lib/talon_one/models/audience.rb +1 -1
  157. data/lib/talon_one/models/base_loyalty_program.rb +3 -3
  158. data/lib/talon_one/models/campaign.rb +14 -7
  159. data/lib/talon_one/models/campaign_detail.rb +232 -0
  160. data/lib/talon_one/models/campaign_evaluation_group.rb +1 -1
  161. data/lib/talon_one/models/campaign_notification_policy.rb +14 -4
  162. data/lib/talon_one/models/campaign_set.rb +1 -1
  163. data/lib/talon_one/models/campaign_store_budget.rb +1 -1
  164. data/lib/talon_one/models/campaign_store_budget_limit_config.rb +322 -0
  165. data/lib/talon_one/models/campaign_template.rb +16 -4
  166. data/lib/talon_one/models/card_expiring_points_notification_policy.rb +14 -4
  167. data/lib/talon_one/models/catalogs_strikethrough_notification_policy.rb +38 -4
  168. data/lib/talon_one/models/coupon_creation_job.rb +1 -1
  169. data/lib/talon_one/models/coupon_deletion_job.rb +1 -1
  170. data/lib/talon_one/models/coupons_notification_policy.rb +24 -4
  171. data/lib/talon_one/models/create_achievement.rb +0 -5
  172. data/lib/talon_one/models/create_application_api_key.rb +2 -2
  173. data/lib/talon_one/models/customer_inventory.rb +1 -1
  174. data/lib/talon_one/models/customer_session.rb +1 -1
  175. data/lib/talon_one/models/customer_session_v2.rb +5 -15
  176. data/lib/talon_one/models/delete_user_request.rb +0 -1
  177. data/lib/talon_one/models/environment.rb +1 -1
  178. data/lib/talon_one/models/event.rb +1 -1
  179. data/lib/talon_one/models/expiring_coupons_notification_policy.rb +14 -4
  180. data/lib/talon_one/models/expiring_points_notification_policy.rb +14 -4
  181. data/lib/talon_one/models/hidden_conditions_effects.rb +246 -0
  182. data/lib/talon_one/models/inline_response2001.rb +11 -11
  183. data/lib/talon_one/models/inline_response20010.rb +11 -11
  184. data/lib/talon_one/models/inline_response20011.rb +11 -11
  185. data/lib/talon_one/models/inline_response20012.rb +1 -1
  186. data/lib/talon_one/models/inline_response20013.rb +1 -1
  187. data/lib/talon_one/models/inline_response20014.rb +1 -1
  188. data/lib/talon_one/models/inline_response20015.rb +11 -11
  189. data/lib/talon_one/models/inline_response20016.rb +11 -13
  190. data/lib/talon_one/models/inline_response20017.rb +7 -11
  191. data/lib/talon_one/models/inline_response20018.rb +1 -1
  192. data/lib/talon_one/models/inline_response20019.rb +3 -1
  193. data/lib/talon_one/models/inline_response2002.rb +11 -11
  194. data/lib/talon_one/models/inline_response20020.rb +11 -7
  195. data/lib/talon_one/models/inline_response20021.rb +7 -11
  196. data/lib/talon_one/models/inline_response20022.rb +7 -11
  197. data/lib/talon_one/models/inline_response20023.rb +7 -11
  198. data/lib/talon_one/models/inline_response20024.rb +11 -7
  199. data/lib/talon_one/models/inline_response20025.rb +11 -7
  200. data/lib/talon_one/models/inline_response20026.rb +11 -2
  201. data/lib/talon_one/models/inline_response20027.rb +1 -1
  202. data/lib/talon_one/models/inline_response20028.rb +11 -11
  203. data/lib/talon_one/models/inline_response20029.rb +2 -11
  204. data/lib/talon_one/models/inline_response2003.rb +1 -1
  205. data/lib/talon_one/models/inline_response20030.rb +6 -1
  206. data/lib/talon_one/models/inline_response20031.rb +13 -8
  207. data/lib/talon_one/models/inline_response20032.rb +1 -1
  208. data/lib/talon_one/models/inline_response20033.rb +8 -13
  209. data/lib/talon_one/models/inline_response20034.rb +2 -11
  210. data/lib/talon_one/models/inline_response20035.rb +11 -7
  211. data/lib/talon_one/models/inline_response20036.rb +1 -1
  212. data/lib/talon_one/models/inline_response20037.rb +11 -7
  213. data/lib/talon_one/models/inline_response20038.rb +1 -1
  214. data/lib/talon_one/models/inline_response20039.rb +1 -1
  215. data/lib/talon_one/models/inline_response2004.rb +1 -1
  216. data/lib/talon_one/models/inline_response20040.rb +1 -1
  217. data/lib/talon_one/models/inline_response20041.rb +7 -11
  218. data/lib/talon_one/models/inline_response20042.rb +1 -1
  219. data/lib/talon_one/models/inline_response20043.rb +1 -1
  220. data/lib/talon_one/models/inline_response20044.rb +11 -11
  221. data/lib/talon_one/models/inline_response20045.rb +13 -8
  222. data/lib/talon_one/models/inline_response20046.rb +11 -11
  223. data/lib/talon_one/models/inline_response20047.rb +11 -7
  224. data/lib/talon_one/models/inline_response20048.rb +222 -0
  225. data/lib/talon_one/models/inline_response20049.rb +227 -0
  226. data/lib/talon_one/models/inline_response2005.rb +11 -11
  227. data/lib/talon_one/models/inline_response2006.rb +11 -11
  228. data/lib/talon_one/models/inline_response2007.rb +1 -1
  229. data/lib/talon_one/models/inline_response2008.rb +1 -1
  230. data/lib/talon_one/models/inline_response2009.rb +11 -11
  231. data/lib/talon_one/models/ledger_info.rb +31 -1
  232. data/lib/talon_one/models/ledger_transaction_log_entry_integration_api.rb +13 -4
  233. data/lib/talon_one/models/limit_counter.rb +1 -1
  234. data/lib/talon_one/models/loyalty_balance.rb +14 -4
  235. data/lib/talon_one/models/loyalty_balance_with_tier.rb +11 -1
  236. data/lib/talon_one/models/loyalty_ledger_entry.rb +13 -4
  237. data/lib/talon_one/models/loyalty_ledger_entry_flags.rb +208 -0
  238. data/lib/talon_one/models/loyalty_program.rb +3 -3
  239. data/lib/talon_one/models/loyalty_program_balance.rb +34 -4
  240. data/lib/talon_one/models/loyalty_program_transaction.rb +13 -4
  241. data/lib/talon_one/models/loyalty_sub_ledger.rb +16 -1
  242. data/lib/talon_one/models/management_key.rb +14 -4
  243. data/lib/talon_one/models/message_test.rb +227 -0
  244. data/lib/talon_one/models/model_return.rb +1 -1
  245. data/lib/talon_one/models/new_application_api_key.rb +2 -2
  246. data/lib/talon_one/models/new_audience.rb +1 -1
  247. data/lib/talon_one/models/new_campaign_set.rb +1 -1
  248. data/lib/talon_one/models/new_loyalty_program.rb +3 -3
  249. data/lib/talon_one/models/new_management_key.rb +11 -1
  250. data/lib/talon_one/models/new_message_test.rb +322 -0
  251. data/lib/talon_one/models/pending_points_notification_policy.rb +14 -4
  252. data/lib/talon_one/models/product.rb +0 -19
  253. data/lib/talon_one/models/product_search_match.rb +1 -6
  254. data/lib/talon_one/models/product_unit_analytics.rb +21 -65
  255. data/lib/talon_one/models/product_unit_analytics_data_point.rb +271 -0
  256. data/lib/talon_one/models/product_unit_analytics_totals.rb +206 -0
  257. data/lib/talon_one/models/sku_unit_analytics.rb +227 -0
  258. data/lib/talon_one/models/sku_unit_analytics_data_point.rb +256 -0
  259. data/lib/talon_one/models/store.rb +1 -1
  260. data/lib/talon_one/models/strikethrough_effect.rb +24 -4
  261. data/lib/talon_one/models/strikethrough_labeling_notification.rb +56 -2
  262. data/lib/talon_one/models/summary_campaign_store_budget.rb +18 -4
  263. data/lib/talon_one/models/template_def.rb +1 -1
  264. data/lib/talon_one/models/tier_downgrade_notification_policy.rb +14 -4
  265. data/lib/talon_one/models/tier_upgrade_notification_policy.rb +14 -4
  266. data/lib/talon_one/models/tier_will_downgrade_notification_policy.rb +11 -1
  267. data/lib/talon_one/models/update_achievement.rb +2 -2
  268. data/lib/talon_one/models/update_loyalty_program.rb +3 -3
  269. data/lib/talon_one/version.rb +1 -1
  270. data/lib/talon_one.rb +20 -5
  271. data/spec/api/integration_api_spec.rb +46 -9
  272. data/spec/api/management_api_spec.rb +132 -144
  273. data/spec/models/achievement_additional_properties_spec.rb +10 -0
  274. data/spec/models/achievement_base_spec.rb +103 -0
  275. data/spec/models/achievement_progress_spec.rb +1 -37
  276. data/spec/models/achievement_progress_with_definition_spec.rb +137 -0
  277. data/spec/models/achievement_spec.rb +10 -0
  278. data/spec/models/achievement_status_entry_spec.rb +137 -0
  279. data/spec/models/add_free_item_effect_props_spec.rb +6 -0
  280. data/spec/models/additional_campaign_properties_spec.rb +6 -0
  281. data/spec/models/analytics_product_spec.rb +3 -3
  282. data/spec/models/analytics_sku_spec.rb +59 -0
  283. data/spec/models/application_api_key_spec.rb +1 -1
  284. data/spec/models/application_cif_references_spec.rb +47 -0
  285. data/spec/models/base_loyalty_program_spec.rb +1 -1
  286. data/spec/models/campaign_detail_spec.rb +47 -0
  287. data/spec/models/campaign_notification_policy_spec.rb +6 -0
  288. data/spec/models/campaign_spec.rb +6 -0
  289. data/spec/models/campaign_store_budget_limit_config_spec.rb +73 -0
  290. data/spec/models/campaign_template_spec.rb +6 -0
  291. data/spec/models/card_expiring_points_notification_policy_spec.rb +6 -0
  292. data/spec/models/catalogs_strikethrough_notification_policy_spec.rb +6 -0
  293. data/spec/models/coupons_notification_policy_spec.rb +12 -0
  294. data/spec/models/create_application_api_key_spec.rb +1 -1
  295. data/spec/models/customer_session_v2_spec.rb +0 -6
  296. data/spec/models/expiring_coupons_notification_policy_spec.rb +6 -0
  297. data/spec/models/expiring_points_notification_policy_spec.rb +6 -0
  298. data/spec/models/hidden_conditions_effects_spec.rb +59 -0
  299. data/spec/models/inline_response20010_spec.rb +1 -1
  300. data/spec/models/inline_response20011_spec.rb +1 -1
  301. data/spec/models/inline_response20015_spec.rb +1 -1
  302. data/spec/models/inline_response20016_spec.rb +1 -1
  303. data/spec/models/inline_response20017_spec.rb +0 -6
  304. data/spec/models/inline_response2001_spec.rb +1 -1
  305. data/spec/models/inline_response20020_spec.rb +6 -0
  306. data/spec/models/inline_response20021_spec.rb +0 -6
  307. data/spec/models/inline_response20022_spec.rb +0 -6
  308. data/spec/models/inline_response20023_spec.rb +0 -6
  309. data/spec/models/inline_response20024_spec.rb +6 -0
  310. data/spec/models/inline_response20025_spec.rb +6 -0
  311. data/spec/models/inline_response20026_spec.rb +6 -0
  312. data/spec/models/inline_response20028_spec.rb +1 -1
  313. data/spec/models/inline_response20029_spec.rb +0 -6
  314. data/spec/models/inline_response2002_spec.rb +1 -1
  315. data/spec/models/inline_response20031_spec.rb +1 -1
  316. data/spec/models/inline_response20033_spec.rb +1 -1
  317. data/spec/models/inline_response20034_spec.rb +0 -6
  318. data/spec/models/inline_response20035_spec.rb +6 -0
  319. data/spec/models/inline_response20037_spec.rb +6 -0
  320. data/spec/models/inline_response20041_spec.rb +0 -6
  321. data/spec/models/inline_response20044_spec.rb +2 -2
  322. data/spec/models/inline_response20045_spec.rb +1 -1
  323. data/spec/models/inline_response20046_spec.rb +1 -1
  324. data/spec/models/inline_response20047_spec.rb +6 -0
  325. data/spec/models/inline_response20048_spec.rb +47 -0
  326. data/spec/models/inline_response20049_spec.rb +47 -0
  327. data/spec/models/inline_response2005_spec.rb +1 -1
  328. data/spec/models/inline_response2006_spec.rb +1 -1
  329. data/spec/models/inline_response2009_spec.rb +1 -1
  330. data/spec/models/ledger_info_spec.rb +12 -0
  331. data/spec/models/ledger_transaction_log_entry_integration_api_spec.rb +6 -0
  332. data/spec/models/loyalty_balance_spec.rb +6 -0
  333. data/spec/models/loyalty_balance_with_tier_spec.rb +6 -0
  334. data/spec/models/loyalty_ledger_entry_flags_spec.rb +41 -0
  335. data/spec/models/loyalty_ledger_entry_spec.rb +6 -0
  336. data/spec/models/loyalty_program_balance_spec.rb +12 -0
  337. data/spec/models/loyalty_program_spec.rb +1 -1
  338. data/spec/models/loyalty_program_transaction_spec.rb +6 -0
  339. data/spec/models/loyalty_sub_ledger_spec.rb +6 -0
  340. data/spec/models/management_key_spec.rb +6 -0
  341. data/spec/models/message_test_spec.rb +47 -0
  342. data/spec/models/new_application_api_key_spec.rb +1 -1
  343. data/spec/models/new_loyalty_program_spec.rb +1 -1
  344. data/spec/models/new_management_key_spec.rb +6 -0
  345. data/spec/models/new_message_test_spec.rb +79 -0
  346. data/spec/models/pending_points_notification_policy_spec.rb +6 -0
  347. data/spec/models/product_unit_analytics_data_point_spec.rb +65 -0
  348. data/spec/models/product_unit_analytics_spec.rb +2 -20
  349. data/spec/models/product_unit_analytics_totals_spec.rb +41 -0
  350. data/spec/models/revision_activation_request_spec.rb +47 -0
  351. data/spec/models/sku_unit_analytics_data_point_spec.rb +59 -0
  352. data/spec/models/sku_unit_analytics_spec.rb +47 -0
  353. data/spec/models/strikethrough_effect_spec.rb +12 -0
  354. data/spec/models/strikethrough_labeling_notification_spec.rb +16 -0
  355. data/spec/models/summary_campaign_store_budget_spec.rb +6 -0
  356. data/spec/models/tier_downgrade_notification_policy_spec.rb +6 -0
  357. data/spec/models/tier_upgrade_notification_policy_spec.rb +6 -0
  358. data/spec/models/tier_will_downgrade_notification_policy_spec.rb +6 -0
  359. data/spec/models/update_loyalty_program_spec.rb +1 -1
  360. metadata +578 -508
@@ -0,0 +1,490 @@
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
+ # The current progress of the customer in the achievement.
17
+ class AchievementProgressWithDefinition
18
+ # The status of the achievement.
19
+ attr_accessor :status
20
+
21
+ # The current progress of the customer in the achievement.
22
+ attr_accessor :progress
23
+
24
+ # Timestamp at which the customer started the achievement.
25
+ attr_accessor :start_date
26
+
27
+ # Timestamp at which point the customer completed the achievement.
28
+ attr_accessor :completion_date
29
+
30
+ # Timestamp at which point the achievement ends and resets for the customer.
31
+ attr_accessor :end_date
32
+
33
+ # The internal ID of the achievement.
34
+ attr_accessor :achievement_id
35
+
36
+ # The internal name of the achievement used in API requests.
37
+ attr_accessor :name
38
+
39
+ # The display name of the achievement in the Campaign Manager.
40
+ attr_accessor :title
41
+
42
+ # The description of the achievement in the Campaign Manager.
43
+ attr_accessor :description
44
+
45
+ # The ID of the campaign the achievement belongs to.
46
+ attr_accessor :campaign_id
47
+
48
+ # The required number of actions or the transactional milestone to complete the achievement.
49
+ attr_accessor :target
50
+
51
+ # The policy that determines if and how the achievement recurs. - `no_recurrence`: The achievement can be completed only once. - `on_expiration`: The achievement resets after it expires and becomes available again.
52
+ attr_accessor :achievement_recurrence_policy
53
+
54
+ # The policy that determines how the achievement starts, ends, or resets. - `user_action`: The achievement ends or resets relative to when the customer started the achievement. - `fixed_schedule`: The achievement starts, ends, or resets for all customers following a fixed schedule.
55
+ attr_accessor :achievement_activation_policy
56
+
57
+ # The achievement's start date when `achievementActivationPolicy` is equal to `fixed_schedule`. **Note:** It is an RFC3339 timestamp string.
58
+ attr_accessor :achievement_fixed_start_date
59
+
60
+ # The achievement's end date. If defined, customers cannot participate in the achievement after this date. **Note:** It is an RFC3339 timestamp string.
61
+ attr_accessor :achievement_end_date
62
+
63
+ class EnumAttributeValidator
64
+ attr_reader :datatype
65
+ attr_reader :allowable_values
66
+
67
+ def initialize(datatype, allowable_values)
68
+ @allowable_values = allowable_values.map do |value|
69
+ case datatype.to_s
70
+ when /Integer/i
71
+ value.to_i
72
+ when /Float/i
73
+ value.to_f
74
+ else
75
+ value
76
+ end
77
+ end
78
+ end
79
+
80
+ def valid?(value)
81
+ !value || allowable_values.include?(value)
82
+ end
83
+ end
84
+
85
+ # Attribute mapping from ruby-style variable name to JSON key.
86
+ def self.attribute_map
87
+ {
88
+ :'status' => :'status',
89
+ :'progress' => :'progress',
90
+ :'start_date' => :'startDate',
91
+ :'completion_date' => :'completionDate',
92
+ :'end_date' => :'endDate',
93
+ :'achievement_id' => :'achievementId',
94
+ :'name' => :'name',
95
+ :'title' => :'title',
96
+ :'description' => :'description',
97
+ :'campaign_id' => :'campaignId',
98
+ :'target' => :'target',
99
+ :'achievement_recurrence_policy' => :'achievementRecurrencePolicy',
100
+ :'achievement_activation_policy' => :'achievementActivationPolicy',
101
+ :'achievement_fixed_start_date' => :'achievementFixedStartDate',
102
+ :'achievement_end_date' => :'achievementEndDate'
103
+ }
104
+ end
105
+
106
+ # Attribute type mapping.
107
+ def self.openapi_types
108
+ {
109
+ :'status' => :'String',
110
+ :'progress' => :'Float',
111
+ :'start_date' => :'DateTime',
112
+ :'completion_date' => :'DateTime',
113
+ :'end_date' => :'DateTime',
114
+ :'achievement_id' => :'Integer',
115
+ :'name' => :'String',
116
+ :'title' => :'String',
117
+ :'description' => :'String',
118
+ :'campaign_id' => :'Integer',
119
+ :'target' => :'Float',
120
+ :'achievement_recurrence_policy' => :'String',
121
+ :'achievement_activation_policy' => :'String',
122
+ :'achievement_fixed_start_date' => :'DateTime',
123
+ :'achievement_end_date' => :'DateTime'
124
+ }
125
+ end
126
+
127
+ # List of attributes with nullable: true
128
+ def self.openapi_nullable
129
+ Set.new([
130
+ ])
131
+ end
132
+
133
+ # Initializes the object
134
+ # @param [Hash] attributes Model attributes in the form of hash
135
+ def initialize(attributes = {})
136
+ if (!attributes.is_a?(Hash))
137
+ fail ArgumentError, "The input argument (attributes) must be a hash in `TalonOne::AchievementProgressWithDefinition` initialize method"
138
+ end
139
+
140
+ # check to see if the attribute exists and convert string to symbol for hash key
141
+ attributes = attributes.each_with_object({}) { |(k, v), h|
142
+ if (!self.class.attribute_map.key?(k.to_sym))
143
+ fail ArgumentError, "`#{k}` is not a valid attribute in `TalonOne::AchievementProgressWithDefinition`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
144
+ end
145
+ h[k.to_sym] = v
146
+ }
147
+
148
+ if attributes.key?(:'status')
149
+ self.status = attributes[:'status']
150
+ end
151
+
152
+ if attributes.key?(:'progress')
153
+ self.progress = attributes[:'progress']
154
+ end
155
+
156
+ if attributes.key?(:'start_date')
157
+ self.start_date = attributes[:'start_date']
158
+ end
159
+
160
+ if attributes.key?(:'completion_date')
161
+ self.completion_date = attributes[:'completion_date']
162
+ end
163
+
164
+ if attributes.key?(:'end_date')
165
+ self.end_date = attributes[:'end_date']
166
+ end
167
+
168
+ if attributes.key?(:'achievement_id')
169
+ self.achievement_id = attributes[:'achievement_id']
170
+ end
171
+
172
+ if attributes.key?(:'name')
173
+ self.name = attributes[:'name']
174
+ end
175
+
176
+ if attributes.key?(:'title')
177
+ self.title = attributes[:'title']
178
+ end
179
+
180
+ if attributes.key?(:'description')
181
+ self.description = attributes[:'description']
182
+ end
183
+
184
+ if attributes.key?(:'campaign_id')
185
+ self.campaign_id = attributes[:'campaign_id']
186
+ end
187
+
188
+ if attributes.key?(:'target')
189
+ self.target = attributes[:'target']
190
+ end
191
+
192
+ if attributes.key?(:'achievement_recurrence_policy')
193
+ self.achievement_recurrence_policy = attributes[:'achievement_recurrence_policy']
194
+ end
195
+
196
+ if attributes.key?(:'achievement_activation_policy')
197
+ self.achievement_activation_policy = attributes[:'achievement_activation_policy']
198
+ end
199
+
200
+ if attributes.key?(:'achievement_fixed_start_date')
201
+ self.achievement_fixed_start_date = attributes[:'achievement_fixed_start_date']
202
+ end
203
+
204
+ if attributes.key?(:'achievement_end_date')
205
+ self.achievement_end_date = attributes[:'achievement_end_date']
206
+ end
207
+ end
208
+
209
+ # Show invalid properties with the reasons. Usually used together with valid?
210
+ # @return Array for valid properties with the reasons
211
+ def list_invalid_properties
212
+ invalid_properties = Array.new
213
+ if @status.nil?
214
+ invalid_properties.push('invalid value for "status", status cannot be nil.')
215
+ end
216
+
217
+ if @progress.nil?
218
+ invalid_properties.push('invalid value for "progress", progress cannot be nil.')
219
+ end
220
+
221
+ if @achievement_id.nil?
222
+ invalid_properties.push('invalid value for "achievement_id", achievement_id cannot be nil.')
223
+ end
224
+
225
+ if @name.nil?
226
+ invalid_properties.push('invalid value for "name", name cannot be nil.')
227
+ end
228
+
229
+ if @name.to_s.length > 1000
230
+ invalid_properties.push('invalid value for "name", the character length must be smaller than or equal to 1000.')
231
+ end
232
+
233
+ if @name.to_s.length < 1
234
+ invalid_properties.push('invalid value for "name", the character length must be great than or equal to 1.')
235
+ end
236
+
237
+ pattern = Regexp.new(/^[a-zA-Z]\w+$/)
238
+ if @name !~ pattern
239
+ invalid_properties.push("invalid value for \"name\", must conform to the pattern #{pattern}.")
240
+ end
241
+
242
+ if @title.nil?
243
+ invalid_properties.push('invalid value for "title", title cannot be nil.')
244
+ end
245
+
246
+ if @description.nil?
247
+ invalid_properties.push('invalid value for "description", description cannot be nil.')
248
+ end
249
+
250
+ if @campaign_id.nil?
251
+ invalid_properties.push('invalid value for "campaign_id", campaign_id cannot be nil.')
252
+ end
253
+
254
+ if @achievement_recurrence_policy.nil?
255
+ invalid_properties.push('invalid value for "achievement_recurrence_policy", achievement_recurrence_policy cannot be nil.')
256
+ end
257
+
258
+ if @achievement_activation_policy.nil?
259
+ invalid_properties.push('invalid value for "achievement_activation_policy", achievement_activation_policy cannot be nil.')
260
+ end
261
+
262
+ invalid_properties
263
+ end
264
+
265
+ # Check to see if the all the properties in the model are valid
266
+ # @return true if the model is valid
267
+ def valid?
268
+ return false if @status.nil?
269
+ status_validator = EnumAttributeValidator.new('String', ["inprogress", "completed", "expired", "not_started"])
270
+ return false unless status_validator.valid?(@status)
271
+ return false if @progress.nil?
272
+ return false if @achievement_id.nil?
273
+ return false if @name.nil?
274
+ return false if @name.to_s.length > 1000
275
+ return false if @name.to_s.length < 1
276
+ return false if @name !~ Regexp.new(/^[a-zA-Z]\w+$/)
277
+ return false if @title.nil?
278
+ return false if @description.nil?
279
+ return false if @campaign_id.nil?
280
+ return false if @achievement_recurrence_policy.nil?
281
+ achievement_recurrence_policy_validator = EnumAttributeValidator.new('String', ["no_recurrence", "on_expiration"])
282
+ return false unless achievement_recurrence_policy_validator.valid?(@achievement_recurrence_policy)
283
+ return false if @achievement_activation_policy.nil?
284
+ achievement_activation_policy_validator = EnumAttributeValidator.new('String', ["user_action", "fixed_schedule"])
285
+ return false unless achievement_activation_policy_validator.valid?(@achievement_activation_policy)
286
+ true
287
+ end
288
+
289
+ # Custom attribute writer method checking allowed values (enum).
290
+ # @param [Object] status Object to be assigned
291
+ def status=(status)
292
+ validator = EnumAttributeValidator.new('String', ["inprogress", "completed", "expired", "not_started"])
293
+ unless validator.valid?(status)
294
+ fail ArgumentError, "invalid value for \"status\", must be one of #{validator.allowable_values}."
295
+ end
296
+ @status = status
297
+ end
298
+
299
+ # Custom attribute writer method with validation
300
+ # @param [Object] name Value to be assigned
301
+ def name=(name)
302
+ if name.nil?
303
+ fail ArgumentError, 'name cannot be nil'
304
+ end
305
+
306
+ if name.to_s.length > 1000
307
+ fail ArgumentError, 'invalid value for "name", the character length must be smaller than or equal to 1000.'
308
+ end
309
+
310
+ if name.to_s.length < 1
311
+ fail ArgumentError, 'invalid value for "name", the character length must be great than or equal to 1.'
312
+ end
313
+
314
+ pattern = Regexp.new(/^[a-zA-Z]\w+$/)
315
+ if name !~ pattern
316
+ fail ArgumentError, "invalid value for \"name\", must conform to the pattern #{pattern}."
317
+ end
318
+
319
+ @name = name
320
+ end
321
+
322
+ # Custom attribute writer method checking allowed values (enum).
323
+ # @param [Object] achievement_recurrence_policy Object to be assigned
324
+ def achievement_recurrence_policy=(achievement_recurrence_policy)
325
+ validator = EnumAttributeValidator.new('String', ["no_recurrence", "on_expiration"])
326
+ unless validator.valid?(achievement_recurrence_policy)
327
+ fail ArgumentError, "invalid value for \"achievement_recurrence_policy\", must be one of #{validator.allowable_values}."
328
+ end
329
+ @achievement_recurrence_policy = achievement_recurrence_policy
330
+ end
331
+
332
+ # Custom attribute writer method checking allowed values (enum).
333
+ # @param [Object] achievement_activation_policy Object to be assigned
334
+ def achievement_activation_policy=(achievement_activation_policy)
335
+ validator = EnumAttributeValidator.new('String', ["user_action", "fixed_schedule"])
336
+ unless validator.valid?(achievement_activation_policy)
337
+ fail ArgumentError, "invalid value for \"achievement_activation_policy\", must be one of #{validator.allowable_values}."
338
+ end
339
+ @achievement_activation_policy = achievement_activation_policy
340
+ end
341
+
342
+ # Checks equality by comparing each attribute.
343
+ # @param [Object] Object to be compared
344
+ def ==(o)
345
+ return true if self.equal?(o)
346
+ self.class == o.class &&
347
+ status == o.status &&
348
+ progress == o.progress &&
349
+ start_date == o.start_date &&
350
+ completion_date == o.completion_date &&
351
+ end_date == o.end_date &&
352
+ achievement_id == o.achievement_id &&
353
+ name == o.name &&
354
+ title == o.title &&
355
+ description == o.description &&
356
+ campaign_id == o.campaign_id &&
357
+ target == o.target &&
358
+ achievement_recurrence_policy == o.achievement_recurrence_policy &&
359
+ achievement_activation_policy == o.achievement_activation_policy &&
360
+ achievement_fixed_start_date == o.achievement_fixed_start_date &&
361
+ achievement_end_date == o.achievement_end_date
362
+ end
363
+
364
+ # @see the `==` method
365
+ # @param [Object] Object to be compared
366
+ def eql?(o)
367
+ self == o
368
+ end
369
+
370
+ # Calculates hash code according to all attributes.
371
+ # @return [Integer] Hash code
372
+ def hash
373
+ [status, progress, start_date, completion_date, end_date, achievement_id, name, title, description, campaign_id, target, achievement_recurrence_policy, achievement_activation_policy, achievement_fixed_start_date, achievement_end_date].hash
374
+ end
375
+
376
+ # Builds the object from hash
377
+ # @param [Hash] attributes Model attributes in the form of hash
378
+ # @return [Object] Returns the model itself
379
+ def self.build_from_hash(attributes)
380
+ new.build_from_hash(attributes)
381
+ end
382
+
383
+ # Builds the object from hash
384
+ # @param [Hash] attributes Model attributes in the form of hash
385
+ # @return [Object] Returns the model itself
386
+ def build_from_hash(attributes)
387
+ return nil unless attributes.is_a?(Hash)
388
+ self.class.openapi_types.each_pair do |key, type|
389
+ if type =~ /\AArray<(.*)>/i
390
+ # check to ensure the input is an array given that the attribute
391
+ # is documented as an array but the input is not
392
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
393
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
394
+ end
395
+ elsif !attributes[self.class.attribute_map[key]].nil?
396
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
397
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
398
+ end
399
+
400
+ self
401
+ end
402
+
403
+ # Deserializes the data based on type
404
+ # @param string type Data type
405
+ # @param string value Value to be deserialized
406
+ # @return [Object] Deserialized data
407
+ def _deserialize(type, value)
408
+ case type.to_sym
409
+ when :DateTime
410
+ DateTime.parse(value)
411
+ when :Date
412
+ Date.parse(value)
413
+ when :String
414
+ value.to_s
415
+ when :Integer
416
+ value.to_i
417
+ when :Float
418
+ value.to_f
419
+ when :Boolean
420
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
421
+ true
422
+ else
423
+ false
424
+ end
425
+ when :Object
426
+ # generic object (usually a Hash), return directly
427
+ value
428
+ when /\AArray<(?<inner_type>.+)>\z/
429
+ inner_type = Regexp.last_match[:inner_type]
430
+ value.map { |v| _deserialize(inner_type, v) }
431
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
432
+ k_type = Regexp.last_match[:k_type]
433
+ v_type = Regexp.last_match[:v_type]
434
+ {}.tap do |hash|
435
+ value.each do |k, v|
436
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
437
+ end
438
+ end
439
+ else # model
440
+ TalonOne.const_get(type).build_from_hash(value)
441
+ end
442
+ end
443
+
444
+ # Returns the string representation of the object
445
+ # @return [String] String presentation of the object
446
+ def to_s
447
+ to_hash.to_s
448
+ end
449
+
450
+ # to_body is an alias to to_hash (backward compatibility)
451
+ # @return [Hash] Returns the object in the form of hash
452
+ def to_body
453
+ to_hash
454
+ end
455
+
456
+ # Returns the object in the form of hash
457
+ # @return [Hash] Returns the object in the form of hash
458
+ def to_hash
459
+ hash = {}
460
+ self.class.attribute_map.each_pair do |attr, param|
461
+ value = self.send(attr)
462
+ if value.nil?
463
+ is_nullable = self.class.openapi_nullable.include?(attr)
464
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
465
+ end
466
+
467
+ hash[param] = _to_hash(value)
468
+ end
469
+ hash
470
+ end
471
+
472
+ # Outputs non-array value in the form of hash
473
+ # For object, use to_hash. Otherwise, just return the value
474
+ # @param [Object] value Any valid value
475
+ # @return [Hash] Returns the value in the form of hash
476
+ def _to_hash(value)
477
+ if value.is_a?(Array)
478
+ value.compact.map { |v| _to_hash(v) }
479
+ elsif value.is_a?(Hash)
480
+ {}.tap do |hash|
481
+ value.each { |k, v| hash[k] = _to_hash(v) }
482
+ end
483
+ elsif value.respond_to? :to_hash
484
+ value.to_hash
485
+ else
486
+ value
487
+ end
488
+ end
489
+ end
490
+ end