voucherify 8.1.1 → 8.2.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 (802) hide show
  1. checksums.yaml +4 -4
  2. data/Dockerfile +1 -1
  3. data/ENDPOINTS-COVERAGE.md +137 -1
  4. data/Gemfile.lock +6 -6
  5. data/README.md +417 -0
  6. data/__tests__/LOYALTY_V2_COVERAGE.md +161 -0
  7. data/__tests__/lib/config.rb +20 -0
  8. data/__tests__/lib/loyalty_v2_fixture.rb +199 -0
  9. data/__tests__/lib/loyalty_v2_http.rb +209 -0
  10. data/__tests__/spec/13_management_spec.rb +6 -1
  11. data/__tests__/spec/15_loyalty_v2_spec.rb +403 -0
  12. data/docs/ActivitySource.md +10 -0
  13. data/docs/ActivitySourceApiKey.md +10 -0
  14. data/docs/ActivitySourceUser.md +8 -0
  15. data/docs/BenefitPointsProportionalApplicableTo.md +11 -0
  16. data/docs/BenefitPointsProportionalCustomEvent.md +8 -0
  17. data/docs/BenefitPointsProportionalCustomEventMetadata.md +10 -0
  18. data/docs/BenefitPointsProportionalCustomer.md +8 -0
  19. data/docs/BenefitPointsProportionalCustomerMetadata.md +10 -0
  20. data/docs/BenefitPointsProportionalOrder.md +10 -0
  21. data/docs/BenefitPointsProportionalOrderAmount.md +9 -0
  22. data/docs/BenefitPointsProportionalOrderItems.md +10 -0
  23. data/docs/BenefitPointsProportionalOrderItemsAmount.md +10 -0
  24. data/docs/BenefitPointsProportionalOrderItemsQuantity.md +10 -0
  25. data/docs/BenefitPointsProportionalOrderItemsSubtotalAmount.md +10 -0
  26. data/docs/BenefitPointsProportionalOrderMetadata.md +10 -0
  27. data/docs/BenefitPointsProportionalOrderTotalAmount.md +9 -0
  28. data/docs/BenefitTransaction.md +18 -0
  29. data/docs/BenefitTransactionDetails.md +11 -0
  30. data/docs/BenefitTransactionDetailsMetadata.md +9 -0
  31. data/docs/BenefitTransactionDetailsResult.md +8 -0
  32. data/docs/BenefitTransactionRejection.md +9 -0
  33. data/docs/Card.md +19 -0
  34. data/docs/CardActivity.md +14 -0
  35. data/docs/CardActivityData.md +12 -0
  36. data/docs/CardBalance.md +9 -0
  37. data/docs/CardCodeGenerationFailureResult.md +8 -0
  38. data/docs/CardDailyReportEntry.md +24 -0
  39. data/docs/CardDefinitionIdFilterConditions.md +8 -0
  40. data/docs/CardDefinitionIdFilterConditionsConditions.md +11 -0
  41. data/docs/CardLifetimeBucket.md +9 -0
  42. data/docs/CardLifetimeBucketPendingPoints.md +10 -0
  43. data/docs/CardLifetimeBucketPoints.md +19 -0
  44. data/docs/CardNextActivation.md +11 -0
  45. data/docs/CardNextExpiration.md +9 -0
  46. data/docs/CardPendingPointsBucket.md +20 -0
  47. data/docs/CardPendingPointsBucketPoints.md +8 -0
  48. data/docs/CardPointsBucket.md +21 -0
  49. data/docs/CardPointsBucketPoints.md +8 -0
  50. data/docs/CardSimple.md +16 -0
  51. data/docs/CardTransaction.md +19 -0
  52. data/docs/CardTransactionDetails.md +22 -0
  53. data/docs/CardTransactionDetailsCardTransaction.md +8 -0
  54. data/docs/CardTransactionDetailsOrder.md +8 -0
  55. data/docs/CardTransactionDetailsOrderTransaction.md +8 -0
  56. data/docs/CardTransactionDetailsPoints.md +12 -0
  57. data/docs/CardTransactionDetailsPurchase.md +9 -0
  58. data/docs/CardTransactionDetailsPurchaseCardTransaction.md +8 -0
  59. data/docs/CardTransactionDetailsPurchaseRewardTransaction.md +8 -0
  60. data/docs/CardTransactionDetailsPurchaseTransaction.md +8 -0
  61. data/docs/CardTransactionDetailsRejection.md +9 -0
  62. data/docs/CardTransactionDetailsReward.md +8 -0
  63. data/docs/CardTransactionDetailsRewardTransaction.md +8 -0
  64. data/docs/CardTransactionDetailsTargetCard.md +8 -0
  65. data/docs/ClientRedemptionsRedeemRequestBody.md +1 -1
  66. data/docs/ClientValidationsValidateRequestBody.md +1 -1
  67. data/docs/ClientValidationsValidateResponseBody.md +1 -1
  68. data/docs/CustomerLoyaltyMembership.md +11 -0
  69. data/docs/CustomerLoyaltyMembershipCard.md +13 -0
  70. data/docs/CustomerLoyaltyMembershipMember.md +11 -0
  71. data/docs/CustomerLoyaltyMembershipTier.md +12 -0
  72. data/docs/CustomerWithSummaryLoyaltyReferrals.md +1 -0
  73. data/docs/CustomersApi.md +3 -1
  74. data/docs/CustomersCreateResponseBody.md +1 -0
  75. data/docs/CustomersGetResponseBody.md +1 -0
  76. data/docs/CustomersRedeemablesListResponseBody.md +1 -1
  77. data/docs/CustomersUpdateResponseBody.md +1 -0
  78. data/docs/DateFilter.md +8 -0
  79. data/docs/DateFilterConditions.md +14 -0
  80. data/docs/EarningRuleDailyReportEntry.md +10 -0
  81. data/docs/EarningRuleEarning.md +12 -0
  82. data/docs/EarningRuleEffect.md +11 -0
  83. data/docs/EarningRuleEffectPoints.md +10 -0
  84. data/docs/EarningRuleEffectPointsExpiration.md +11 -0
  85. data/docs/EarningRuleEffectPointsExpirationCalendarExpiration.md +8 -0
  86. data/docs/EarningRuleEffectPointsExpirationRollingExpiration.md +9 -0
  87. data/docs/EarningRuleEffectPointsExpirationSlidingExpiration.md +9 -0
  88. data/docs/EarningRuleEffectPointsProportional.md +14 -0
  89. data/docs/EarningRuleIdFilterConditions.md +8 -0
  90. data/docs/EarningRuleIdFilterConditionsConditions.md +11 -0
  91. data/docs/EarningRulePointsProportionalApplicableTo.md +11 -0
  92. data/docs/EarningRulePointsProportionalCustomEvent.md +8 -0
  93. data/docs/EarningRulePointsProportionalCustomer.md +8 -0
  94. data/docs/EarningRulePointsProportionalOrder.md +10 -0
  95. data/docs/EarningRulePointsProportionalOrderItems.md +10 -0
  96. data/docs/EarningRulePointsProportionalOrderItemsCalculation.md +10 -0
  97. data/docs/EarningRuleTierRules.md +9 -0
  98. data/docs/EarningRuleTrigger.md +10 -0
  99. data/docs/EarningRuleTriggerLimitsCooldown.md +9 -0
  100. data/docs/EarningRuleTriggerLimitsCooldownFixedCooldown.md +8 -0
  101. data/docs/EarningRuleTriggerLimitsFrequency.md +9 -0
  102. data/docs/EarningRuleValidityHours.md +9 -0
  103. data/docs/EarningRulesReportDailyEntry.md +13 -0
  104. data/docs/EarningRulesReportFailuresBreakdown.md +9 -0
  105. data/docs/EarningRulesReportListFilters.md +9 -0
  106. data/docs/EarningRulesReportSummaryEntry.md +13 -0
  107. data/docs/ExamineCardReference.md +12 -0
  108. data/docs/ExamineCustomerIdentification.md +11 -0
  109. data/docs/ExamineCustomerReference.md +11 -0
  110. data/docs/ExamineMemberReference.md +12 -0
  111. data/docs/ExamineProgramReference.md +11 -0
  112. data/docs/LV2BenefitsApi.md +66 -0
  113. data/docs/LV2EarningRulesApi.md +66 -0
  114. data/docs/LV2ExamineApi.md +129 -0
  115. data/docs/LV2ProgramsApi.md +2935 -0
  116. data/docs/LV2RewardsApi.md +66 -0
  117. data/docs/ListCursor.md +9 -0
  118. data/docs/LoyaltiesExamineEarningRulesExamineRequestBody.md +12 -0
  119. data/docs/LoyaltiesExamineEarningRulesExamineRequestBodyCustomEventAll.md +8 -0
  120. data/docs/LoyaltiesExamineEarningRulesExamineRequestBodyCustomEventSpecific.md +9 -0
  121. data/docs/LoyaltiesExamineEarningRulesExamineRequestBodyCustomer.md +8 -0
  122. data/docs/LoyaltiesExamineEarningRulesExamineRequestBodyCustomerCustomEvent.md +10 -0
  123. data/docs/LoyaltiesExamineEarningRulesExamineRequestBodyCustomerCustomEventAll.md +10 -0
  124. data/docs/LoyaltiesExamineEarningRulesExamineRequestBodyCustomerCustomEventSpecific.md +10 -0
  125. data/docs/LoyaltiesExamineEarningRulesExamineRequestBodyCustomerOrderPaid.md +10 -0
  126. data/docs/LoyaltiesExamineEarningRulesExamineRequestBodyCustomerSegmentEntered.md +9 -0
  127. data/docs/LoyaltiesExamineEarningRulesExamineRequestBodyMember.md +8 -0
  128. data/docs/LoyaltiesExamineEarningRulesExamineRequestBodyOrder.md +12 -0
  129. data/docs/LoyaltiesExamineEarningRulesExamineRequestBodyOrderItem.md +19 -0
  130. data/docs/LoyaltiesExamineEarningRulesExamineRequestBodyOrderItemProduct.md +10 -0
  131. data/docs/LoyaltiesExamineEarningRulesExamineRequestBodyOrderItemSku.md +10 -0
  132. data/docs/LoyaltiesExamineEarningRulesExamineRequestBodyTrigger.md +9 -0
  133. data/docs/LoyaltiesExamineEarningRulesExamineRequestBodyTriggerSpecific.md +8 -0
  134. data/docs/LoyaltiesExamineEarningRulesExamineResponseBody.md +12 -0
  135. data/docs/LoyaltiesExamineEarningRulesExamineResponseBodyBenefitEarningRuleEstimation.md +9 -0
  136. data/docs/LoyaltiesExamineEarningRulesExamineResponseBodyBenefitEstimation.md +10 -0
  137. data/docs/LoyaltiesExamineEarningRulesExamineResponseBodyBenefitReference.md +11 -0
  138. data/docs/LoyaltiesExamineEarningRulesExamineResponseBodyCardEarningRuleEstimation.md +10 -0
  139. data/docs/LoyaltiesExamineEarningRulesExamineResponseBodyCardEstimation.md +11 -0
  140. data/docs/LoyaltiesExamineEarningRulesExamineResponseBodyEarningRuleDetail.md +11 -0
  141. data/docs/LoyaltiesExamineEarningRulesExamineResponseBodyEarningRuleReference.md +9 -0
  142. data/docs/LoyaltiesExamineEarningRulesExamineResponseBodyMembership.md +12 -0
  143. data/docs/LoyaltiesExamineRewardsExamineRequestBody.md +10 -0
  144. data/docs/LoyaltiesExamineRewardsExamineRequestBodyCustomer.md +8 -0
  145. data/docs/LoyaltiesExamineRewardsExamineRequestBodyMember.md +8 -0
  146. data/docs/LoyaltiesExamineRewardsExamineResponseBody.md +11 -0
  147. data/docs/LoyaltiesExamineRewardsExamineResponseBodyCardEstimation.md +10 -0
  148. data/docs/LoyaltiesExamineRewardsExamineResponseBodyCardRewardEstimation.md +12 -0
  149. data/docs/LoyaltiesExamineRewardsExamineResponseBodyMembership.md +11 -0
  150. data/docs/LoyaltiesExamineRewardsExamineResponseBodyRewardCost.md +9 -0
  151. data/docs/LoyaltiesExamineRewardsExamineResponseBodyRewardDetail.md +13 -0
  152. data/docs/LoyaltiesExamineRewardsExamineResponseBodyRewardReference.md +9 -0
  153. data/docs/LoyaltiesExamineRewardsExamineResponseBodyRewardUnavailabilityReason.md +10 -0
  154. data/docs/LoyaltiesProgramsMembersActivitiesListRequestQueryFiltersId.md +8 -0
  155. data/docs/LoyaltiesProgramsMembersActivitiesListRequestQueryFiltersIdConditions.md +11 -0
  156. data/docs/LoyaltiesProgramsMembersActivitiesListRequestQueryFiltersType.md +8 -0
  157. data/docs/LoyaltiesProgramsMembersActivitiesListRequestQueryFiltersTypeConditions.md +11 -0
  158. data/docs/LoyaltiesProgramsMembersBenefitsTransactionsListRequestQueryBenefitId.md +8 -0
  159. data/docs/LoyaltiesProgramsMembersBenefitsTransactionsListRequestQueryBenefitIdConditions.md +11 -0
  160. data/docs/LoyaltiesProgramsMembersCardsActivitiesListRequestQueryFiltersId.md +8 -0
  161. data/docs/LoyaltiesProgramsMembersCardsActivitiesListRequestQueryFiltersIdConditions.md +11 -0
  162. data/docs/LoyaltiesProgramsMembersCardsActivitiesListRequestQueryFiltersType.md +8 -0
  163. data/docs/LoyaltiesProgramsMembersCardsActivitiesListRequestQueryFiltersTypeConditions.md +11 -0
  164. data/docs/LoyaltiesProgramsMembersCardsReportsDailyListResponseBody.md +9 -0
  165. data/docs/LoyaltiesProgramsMembersCardsTransactionsListRequestQueryId.md +8 -0
  166. data/docs/LoyaltiesProgramsMembersCardsTransactionsListRequestQueryIdConditions.md +11 -0
  167. data/docs/LoyaltiesProgramsMembersListRequestQueryCustomerId.md +8 -0
  168. data/docs/LoyaltiesProgramsMembersListRequestQueryCustomerIdConditions.md +11 -0
  169. data/docs/LoyaltiesProgramsMembersListRequestQueryId.md +8 -0
  170. data/docs/LoyaltiesProgramsMembersListRequestQueryIdConditions.md +11 -0
  171. data/docs/LoyaltiesProgramsMembersListRequestQueryStatus.md +8 -0
  172. data/docs/LoyaltiesProgramsMembersListRequestQueryStatusConditions.md +11 -0
  173. data/docs/LoyaltiesProgramsMembersOrdersPaymentsCreateCombinedResponseBody.md +10 -0
  174. data/docs/LoyaltiesProgramsMembersOrdersPaymentsCreateCombinedResponseBodyTransaction.md +20 -0
  175. data/docs/LoyaltiesProgramsMembersOrdersPaymentsCreateCombinedResponseBodyTransactionDetails.md +12 -0
  176. data/docs/LoyaltiesProgramsMembersOrdersPaymentsCreateRequestBodyLimit.md +10 -0
  177. data/docs/LoyaltiesProgramsMembersOrdersPaymentsListRequestQueryId.md +8 -0
  178. data/docs/LoyaltiesProgramsMembersOrdersPaymentsListRequestQueryIdConditions.md +11 -0
  179. data/docs/LoyaltiesProgramsMembersRewardsPurchasesCreateCombinedResponseBody.md +10 -0
  180. data/docs/LoyaltiesProgramsMembersRewardsPurchasesCreateCombinedResponseBodyTransaction.md +20 -0
  181. data/docs/LoyaltiesProgramsMembersRewardsPurchasesCreateCombinedResponseBodyTransactionDetails.md +12 -0
  182. data/docs/LoyaltiesProgramsMembersRewardsPurchasesListRequestQueryCardDefinitionId.md +8 -0
  183. data/docs/LoyaltiesProgramsMembersRewardsPurchasesListRequestQueryCardDefinitionIdConditions.md +11 -0
  184. data/docs/LoyaltiesProgramsMembersRewardsPurchasesListRequestQueryId.md +8 -0
  185. data/docs/LoyaltiesProgramsMembersRewardsPurchasesListRequestQueryIdConditions.md +11 -0
  186. data/docs/LoyaltiesProgramsMembersRewardsPurchasesListRequestQueryRewardId.md +8 -0
  187. data/docs/LoyaltiesProgramsMembersRewardsPurchasesListRequestQueryRewardIdConditions.md +11 -0
  188. data/docs/LoyaltiesProgramsMembersTiersTransactionsListRequestQueryCardDefinitionId.md +8 -0
  189. data/docs/LoyaltiesProgramsMembersTiersTransactionsListRequestQueryCardDefinitionIdConditions.md +11 -0
  190. data/docs/LoyaltiesProgramsMembersTiersTransactionsListRequestQueryCardId.md +8 -0
  191. data/docs/LoyaltiesProgramsMembersTiersTransactionsListRequestQueryCardIdConditions.md +11 -0
  192. data/docs/LoyaltiesProgramsReportsMembersDailyListResponseBody.md +9 -0
  193. data/docs/LoyaltiesProgramsReportsMembersSummaryListResponseBody.md +9 -0
  194. data/docs/LoyaltiesProgramsReportsRewardsDailyListResponseBody.md +9 -0
  195. data/docs/LoyaltiesProgramsReportsRewardsSpendingsDailyListResponseBody.md +9 -0
  196. data/docs/LoyaltiesProgramsReportsRewardsSpendingsSummaryListResponseBody.md +9 -0
  197. data/docs/LoyaltiesProgramsReportsRewardsSummaryListResponseBody.md +9 -0
  198. data/docs/LoyaltiesProgramsReportsSpendingDailyListResponseBody.md +9 -0
  199. data/docs/LoyaltiesProgramsReportsSpendingSummaryListResponseBody.md +9 -0
  200. data/docs/LoyaltyV2ActivityBenefitPointsProportionalApplicableToProduct.md +8 -0
  201. data/docs/LoyaltyV2ActivityBenefitPointsProportionalApplicableToProductsCollection.md +8 -0
  202. data/docs/LoyaltyV2ActivityBenefitPointsProportionalApplicableToSku.md +8 -0
  203. data/docs/LoyaltyV2ActivityBenefitStockLimited.md +8 -0
  204. data/docs/LoyaltyV2ActivityCardDefinitionLimitTimeBasedPeriod.md +9 -0
  205. data/docs/LoyaltyV2ActivityCardDefinitionLimitTimeBasedPeriodCurrentPeriod.md +8 -0
  206. data/docs/LoyaltyV2ActivityEarningRuleEarningLimits.md +8 -0
  207. data/docs/LoyaltyV2ActivityEarningRuleEarningLimitsGlobal.md +9 -0
  208. data/docs/LoyaltyV2ActivityEarningRuleEffectBenefit.md +8 -0
  209. data/docs/LoyaltyV2ActivityEarningRuleEffectPointsExpirationCalendarExpirationDate.md +9 -0
  210. data/docs/LoyaltyV2ActivityEarningRuleEffectPointsExpirationRollingExpirationPeriod.md +9 -0
  211. data/docs/LoyaltyV2ActivityEarningRuleEffectPointsExpirationRollingExpirationRounding.md +9 -0
  212. data/docs/LoyaltyV2ActivityEarningRuleEffectPointsExpirationSlidingExpirationPeriod.md +9 -0
  213. data/docs/LoyaltyV2ActivityEarningRuleError.md +8 -0
  214. data/docs/LoyaltyV2ActivityEarningRulePointsProportionalApplicableToProduct.md +8 -0
  215. data/docs/LoyaltyV2ActivityEarningRulePointsProportionalApplicableToProductsCollection.md +8 -0
  216. data/docs/LoyaltyV2ActivityEarningRulePointsProportionalApplicableToSku.md +8 -0
  217. data/docs/LoyaltyV2ActivityEarningRulePointsProportionalEvery.md +9 -0
  218. data/docs/LoyaltyV2ActivityEarningRulePointsProportionalMetadata.md +10 -0
  219. data/docs/LoyaltyV2ActivityEarningRuleTierRulesAnyOfEntry.md +9 -0
  220. data/docs/LoyaltyV2ActivityEarningRuleTriggerCustomEvent.md +8 -0
  221. data/docs/LoyaltyV2ActivityEarningRuleTriggerLimitsCooldownFixedCooldownPeriod.md +9 -0
  222. data/docs/LoyaltyV2ActivityEarningRuleTriggerSegment.md +8 -0
  223. data/docs/LoyaltyV2ActivityEarningRuleValidityDailyHours.md +10 -0
  224. data/docs/LoyaltyV2ActivityRewardCostSpendingResponse.md +11 -0
  225. data/docs/LoyaltyV2ActivityRewardDigitalDiscountCoupons.md +8 -0
  226. data/docs/LoyaltyV2ActivityRewardDigitalGiftVouchersResponse.md +9 -0
  227. data/docs/LoyaltyV2ActivityRewardDigitalLoyaltyCardPointsResponse.md +9 -0
  228. data/docs/LoyaltyV2ActivityRewardMaterialProduct.md +8 -0
  229. data/docs/LoyaltyV2ActivityRewardMaterialSKU.md +9 -0
  230. data/docs/LoyaltyV2ActivityRewardPurchaseLimitsCooldownFixedCooldownPeriod.md +9 -0
  231. data/docs/LoyaltyV2ActivityRewardPurchaseLimitsFrequencyLimitTriggers.md +8 -0
  232. data/docs/LoyaltyV2ActivityRewardRefunds.md +8 -0
  233. data/docs/LoyaltyV2ActivityRewardValidityDailyHoursResponse.md +10 -0
  234. data/docs/LoyaltyV2CardPointsBucketSimple.md +11 -0
  235. data/docs/LoyaltyV2CardPointsBucketSimplePoints.md +8 -0
  236. data/docs/LpmOrdPayCcrbTxDetailsMetadata.md +9 -0
  237. data/docs/LpmOrdPayCcrbTxDetailsRejection.md +9 -0
  238. data/docs/LpmOrdPayCcrbTxDetailsRejectionDetails.md +10 -0
  239. data/docs/LpmOrdPayCcrbTxDetailsSpendingCap.md +10 -0
  240. data/docs/LpmRewPurchCcrbTxDetailsPoints.md +8 -0
  241. data/docs/LpmRewPurchCcrbTxDetailsRejection.md +9 -0
  242. data/docs/LpmRewPurchCcrbTxDetailsResult.md +11 -0
  243. data/docs/LpmRewPurchCcrbTxDetailsResultDigLcPoints.md +10 -0
  244. data/docs/LpmRewPurchCcrbTxDetailsResultDigital.md +11 -0
  245. data/docs/LpmRewPurchCcrbTxDetailsResultMaterial.md +10 -0
  246. data/docs/LpmRewPurchCcrbTxDetailsResultReward.md +9 -0
  247. data/docs/ManagementProjectsMetadataSchemaDefinition.md +1 -1
  248. data/docs/Member.md +15 -0
  249. data/docs/MemberCard.md +11 -0
  250. data/docs/MemberCreate.md +10 -0
  251. data/docs/MemberTierProgress.md +13 -0
  252. data/docs/MemberTierProgressCurrent.md +11 -0
  253. data/docs/MemberTierProgressDeferred.md +10 -0
  254. data/docs/MemberTierProgressOpportunity.md +10 -0
  255. data/docs/MemberTierProgressPoints.md +10 -0
  256. data/docs/MemberTierProgressRisk.md +10 -0
  257. data/docs/MemberTierProgressTier.md +9 -0
  258. data/docs/MemberTierProgressTierStructure.md +9 -0
  259. data/docs/MembersReportDailyEntry.md +13 -0
  260. data/docs/MembersReportSummaryEntry.md +13 -0
  261. data/docs/MembershipCard.md +12 -0
  262. data/docs/OrderPaymentLimitDefinition.md +8 -0
  263. data/docs/OrderPaymentOrder.md +9 -0
  264. data/docs/OrderPaymentPaymentDetails.md +11 -0
  265. data/docs/OrderPaymentRejection.md +9 -0
  266. data/docs/OrderPaymentTransaction.md +20 -0
  267. data/docs/OrderPaymentTransactionDetails.md +12 -0
  268. data/docs/OrderPaymentTransactionDetailsSpendingCap.md +10 -0
  269. data/docs/PointsEarningsReportDailyEntry.md +15 -0
  270. data/docs/PointsEarningsReportListFilters.md +10 -0
  271. data/docs/PointsEarningsReportSummaryEntry.md +15 -0
  272. data/docs/ProductCollectionsProductsListResponseBody.md +1 -1
  273. data/docs/Program.md +17 -0
  274. data/docs/ProgramEarningRuleAssignment.md +10 -0
  275. data/docs/ProgramListCursor.md +9 -0
  276. data/docs/ProgramRewardAssignment.md +13 -0
  277. data/docs/ProgramRewardAssignmentStock.md +9 -0
  278. data/docs/ProgramRewardAssignmentStockLimited.md +8 -0
  279. data/docs/ProgramSimple.md +12 -0
  280. data/docs/ProgramTierStructureAssignment.md +10 -0
  281. data/docs/ProgramValidityDailyHours.md +10 -0
  282. data/docs/ProgramValidityHours.md +9 -0
  283. data/docs/PromotionTierCampaign.md +1 -1
  284. data/docs/PromotionsTiersCreateResponseBodyCampaign.md +1 -1
  285. data/docs/PromotionsTiersDisableResponseBodyCampaign.md +1 -1
  286. data/docs/PromotionsTiersEnableResponseBodyCampaign.md +1 -1
  287. data/docs/PromotionsTiersGetResponseBodyCampaign.md +1 -1
  288. data/docs/PromotionsTiersUpdateResponseBodyCampaign.md +1 -1
  289. data/docs/PublicationsListResponseBody.md +1 -1
  290. data/docs/RedemptionEntryPromotionTierCampaign.md +1 -1
  291. data/docs/RedemptionsGetResponseBodyPromotionTierCampaign.md +1 -1
  292. data/docs/RedemptionsListResponseBodyRedemptionsItemPromotionTierCampaign.md +1 -1
  293. data/docs/RedemptionsRedeemRequestBody.md +1 -1
  294. data/docs/ReferralsMembersHoldersListResponseBody.md +1 -1
  295. data/docs/ReportCardDefinitionIdFilterConditions.md +8 -0
  296. data/docs/ReportCardDefinitionIdFilterConditionsConditions.md +11 -0
  297. data/docs/RewardCostResponse.md +12 -0
  298. data/docs/RewardCostTierRulesAnyOfEntryResponse.md +9 -0
  299. data/docs/RewardCostTierRulesResponse.md +9 -0
  300. data/docs/RewardDigitalResponse.md +11 -0
  301. data/docs/RewardMaterialResponse.md +10 -0
  302. data/docs/RewardPurchaseDigitalCoupon.md +10 -0
  303. data/docs/RewardPurchaseDigitalGiftVoucher.md +12 -0
  304. data/docs/RewardPurchaseLimits.md +9 -0
  305. data/docs/RewardPurchaseLimitsCooldown.md +9 -0
  306. data/docs/RewardPurchaseLimitsCooldownFixedCooldown.md +8 -0
  307. data/docs/RewardPurchaseLimitsFrequency.md +9 -0
  308. data/docs/RewardPurchaseLimitsFrequencyLimit.md +10 -0
  309. data/docs/RewardPurchaseRefundPolicies.md +9 -0
  310. data/docs/RewardPurchaseTransaction.md +20 -0
  311. data/docs/RewardValidityHoursResponse.md +9 -0
  312. data/docs/RewardsReportDailyEntry.md +13 -0
  313. data/docs/RewardsReportFilterRewardIdConditions.md +8 -0
  314. data/docs/RewardsReportFilterRewardIdConditionsConditions.md +11 -0
  315. data/docs/RewardsReportListFilters.md +9 -0
  316. data/docs/RewardsReportSummaryEntry.md +13 -0
  317. data/docs/RewardsSpendingsReportDailyEntry.md +15 -0
  318. data/docs/RewardsSpendingsReportFilterCostIdConditions.md +8 -0
  319. data/docs/RewardsSpendingsReportFilterCostIdConditionsConditions.md +11 -0
  320. data/docs/RewardsSpendingsReportFilterSpendingIdConditions.md +8 -0
  321. data/docs/RewardsSpendingsReportFilterSpendingIdConditionsConditions.md +11 -0
  322. data/docs/RewardsSpendingsReportListFilters.md +12 -0
  323. data/docs/RewardsSpendingsReportSummaryEntry.md +15 -0
  324. data/docs/SpendingReportDailyEntry.md +17 -0
  325. data/docs/SpendingReportListFilters.md +9 -0
  326. data/docs/SpendingReportSummaryEntry.md +17 -0
  327. data/docs/TierTransaction.md +20 -0
  328. data/docs/TierTransactionDetails.md +14 -0
  329. data/docs/TierTransactionOrigin.md +10 -0
  330. data/docs/TierTransactionRejection.md +9 -0
  331. data/docs/TiersReportDailyEntry.md +16 -0
  332. data/docs/TiersReportFilterTierIdConditions.md +8 -0
  333. data/docs/TiersReportFilterTierIdConditionsConditions.md +11 -0
  334. data/docs/TiersReportFilterTierStructureIdConditions.md +8 -0
  335. data/docs/TiersReportFilterTierStructureIdConditionsConditions.md +11 -0
  336. data/docs/TiersReportListFilters.md +10 -0
  337. data/docs/TiersReportSummaryEntry.md +16 -0
  338. data/docs/TransactionFilterDateConditions.md +8 -0
  339. data/docs/TransactionFilterDateConditionsConditions.md +14 -0
  340. data/docs/V2LoyaltiesBenefitsGetResponseBody.md +19 -0
  341. data/docs/V2LoyaltiesBenefitsGetResponseBodyPoints.md +9 -0
  342. data/docs/V2LoyaltiesBenefitsGetResponseBodyPointsProportional.md +13 -0
  343. data/docs/V2LoyaltiesBenefitsGetResponseBodyStock.md +9 -0
  344. data/docs/V2LoyaltiesEarningRulesGetResponseBody.md +22 -0
  345. data/docs/V2LoyaltiesEarningRulesGetResponseBodyTriggerLimits.md +9 -0
  346. data/docs/V2LoyaltiesProgramsEarningRulesListResponseBody.md +10 -0
  347. data/docs/V2LoyaltiesProgramsMembersActivateResponseBody.md +15 -0
  348. data/docs/V2LoyaltiesProgramsMembersActivitiesListRequestQueryFilters.md +11 -0
  349. data/docs/V2LoyaltiesProgramsMembersActivitiesListResponseBody.md +10 -0
  350. data/docs/V2LoyaltiesProgramsMembersBenefitsTransactionsListRequestQuery.md +10 -0
  351. data/docs/V2LoyaltiesProgramsMembersBenefitsTransactionsListResponseBody.md +10 -0
  352. data/docs/V2LoyaltiesProgramsMembersBenefitsTransactionsListResponseBodyCursor.md +9 -0
  353. data/docs/V2LoyaltiesProgramsMembersCardsActivitiesListRequestQueryFilters.md +11 -0
  354. data/docs/V2LoyaltiesProgramsMembersCardsActivitiesListResponseBody.md +10 -0
  355. data/docs/V2LoyaltiesProgramsMembersCardsExpiringPointsExpireResponseBody.md +10 -0
  356. data/docs/V2LoyaltiesProgramsMembersCardsExpiringPointsListRequestQuery.md +10 -0
  357. data/docs/V2LoyaltiesProgramsMembersCardsExpiringPointsListResponseBody.md +10 -0
  358. data/docs/V2LoyaltiesProgramsMembersCardsPendingPointsActivateResponseBody.md +10 -0
  359. data/docs/V2LoyaltiesProgramsMembersCardsPendingPointsCancelResponseBody.md +10 -0
  360. data/docs/V2LoyaltiesProgramsMembersCardsPendingPointsListRequestQuery.md +9 -0
  361. data/docs/V2LoyaltiesProgramsMembersCardsPendingPointsListResponseBody.md +10 -0
  362. data/docs/V2LoyaltiesProgramsMembersCardsPointsAdjustRequestBody.md +9 -0
  363. data/docs/V2LoyaltiesProgramsMembersCardsPointsAdjustResponseBody.md +10 -0
  364. data/docs/V2LoyaltiesProgramsMembersCardsTransactionsListRequestQuery.md +11 -0
  365. data/docs/V2LoyaltiesProgramsMembersCardsTransactionsListResponseBody.md +10 -0
  366. data/docs/V2LoyaltiesProgramsMembersCreateInBulkResponseBody.md +8 -0
  367. data/docs/V2LoyaltiesProgramsMembersCreateRequestBody.md +10 -0
  368. data/docs/V2LoyaltiesProgramsMembersCreateResponseBody.md +16 -0
  369. data/docs/V2LoyaltiesProgramsMembersDeactivateResponseBody.md +15 -0
  370. data/docs/V2LoyaltiesProgramsMembersDeleteResponseBody.md +15 -0
  371. data/docs/V2LoyaltiesProgramsMembersEarningRulesReportsDailyListResponseBody.md +9 -0
  372. data/docs/V2LoyaltiesProgramsMembersGetResponseBody.md +16 -0
  373. data/docs/V2LoyaltiesProgramsMembersListRequestQuery.md +12 -0
  374. data/docs/V2LoyaltiesProgramsMembersListResponseBody.md +10 -0
  375. data/docs/V2LoyaltiesProgramsMembersOrdersPaymentsCreateRequestBody.md +11 -0
  376. data/docs/V2LoyaltiesProgramsMembersOrdersPaymentsListRequestQuery.md +11 -0
  377. data/docs/V2LoyaltiesProgramsMembersOrdersPaymentsListResponseBody.md +10 -0
  378. data/docs/V2LoyaltiesProgramsMembersOrdersPaymentsListResponseBodyCursor.md +9 -0
  379. data/docs/V2LoyaltiesProgramsMembersRewardsPurchasesCreateRequestBody.md +9 -0
  380. data/docs/V2LoyaltiesProgramsMembersRewardsPurchasesListRequestQuery.md +12 -0
  381. data/docs/V2LoyaltiesProgramsMembersRewardsPurchasesListResponseBody.md +10 -0
  382. data/docs/V2LoyaltiesProgramsMembersRewardsPurchasesListResponseBodyCursor.md +9 -0
  383. data/docs/V2LoyaltiesProgramsMembersTiersTransactionsListRequestQuery.md +11 -0
  384. data/docs/V2LoyaltiesProgramsMembersTiersTransactionsListResponseBody.md +10 -0
  385. data/docs/V2LoyaltiesProgramsMembersUpdateRequestBody.md +8 -0
  386. data/docs/V2LoyaltiesProgramsMembersUpdateResponseBody.md +15 -0
  387. data/docs/V2LoyaltiesProgramsMembershipsGetResponseBody.md +11 -0
  388. data/docs/V2LoyaltiesProgramsReportsEarningRulesDailyListResponseBody.md +9 -0
  389. data/docs/V2LoyaltiesProgramsReportsEarningRulesSummaryListResponseBody.md +9 -0
  390. data/docs/V2LoyaltiesProgramsReportsPointsEarningsDailyListResponseBody.md +9 -0
  391. data/docs/V2LoyaltiesProgramsReportsPointsEarningsSummaryListResponseBody.md +9 -0
  392. data/docs/V2LoyaltiesProgramsReportsTiersDailyListResponseBody.md +9 -0
  393. data/docs/V2LoyaltiesProgramsReportsTiersSummaryListResponseBody.md +9 -0
  394. data/docs/V2LoyaltiesProgramsRewardsListResponseBody.md +10 -0
  395. data/docs/V2LoyaltiesProgramsRewardsPurchasesRefundRequestBody.md +8 -0
  396. data/docs/V2LoyaltiesProgramsRewardsPurchasesRefundResponseBody.md +10 -0
  397. data/docs/V2LoyaltiesProgramsTierStructuresListResponseBody.md +10 -0
  398. data/docs/V2LoyaltiesRewardsGetResponseBody.md +23 -0
  399. data/docs/VLMemberActivity.md +14 -0
  400. data/docs/VLMemberActivityData.md +11 -0
  401. data/docs/ValidationsValidateRequestBody.md +1 -1
  402. data/docs/ValidationsValidateResponseBody.md +1 -1
  403. data/docs/VouchersApi.md +1 -1
  404. data/lib/VoucherifySdk/api/customers_api.rb +3 -0
  405. data/lib/VoucherifySdk/api/lv2_benefits_api.rb +81 -0
  406. data/lib/VoucherifySdk/api/lv2_earning_rules_api.rb +81 -0
  407. data/lib/VoucherifySdk/api/lv2_examine_api.rb +150 -0
  408. data/lib/VoucherifySdk/api/lv2_programs_api.rb +3008 -0
  409. data/lib/VoucherifySdk/api/lv2_rewards_api.rb +81 -0
  410. data/lib/VoucherifySdk/api/vouchers_api.rb +2 -2
  411. data/lib/VoucherifySdk/configuration.rb +8 -0
  412. data/lib/VoucherifySdk/models/activity_source.rb +252 -0
  413. data/lib/VoucherifySdk/models/activity_source_api_key.rb +232 -0
  414. data/lib/VoucherifySdk/models/activity_source_user.rb +210 -0
  415. data/lib/VoucherifySdk/models/benefit_points_proportional_applicable_to.rb +261 -0
  416. data/lib/VoucherifySdk/models/benefit_points_proportional_custom_event.rb +209 -0
  417. data/lib/VoucherifySdk/models/benefit_points_proportional_custom_event_metadata.rb +257 -0
  418. data/lib/VoucherifySdk/models/benefit_points_proportional_customer.rb +209 -0
  419. data/lib/VoucherifySdk/models/benefit_points_proportional_customer_metadata.rb +257 -0
  420. data/lib/VoucherifySdk/models/benefit_points_proportional_order.rb +229 -0
  421. data/lib/VoucherifySdk/models/benefit_points_proportional_order_amount.rb +241 -0
  422. data/lib/VoucherifySdk/models/benefit_points_proportional_order_items.rb +229 -0
  423. data/lib/VoucherifySdk/models/benefit_points_proportional_order_items_amount.rb +259 -0
  424. data/lib/VoucherifySdk/models/benefit_points_proportional_order_items_quantity.rb +259 -0
  425. data/lib/VoucherifySdk/models/benefit_points_proportional_order_items_subtotal_amount.rb +259 -0
  426. data/lib/VoucherifySdk/models/benefit_points_proportional_order_metadata.rb +257 -0
  427. data/lib/VoucherifySdk/models/benefit_points_proportional_order_total_amount.rb +241 -0
  428. data/lib/VoucherifySdk/models/benefit_transaction.rb +350 -0
  429. data/lib/VoucherifySdk/models/benefit_transaction_details.rb +238 -0
  430. data/lib/VoucherifySdk/models/benefit_transaction_details_metadata.rb +227 -0
  431. data/lib/VoucherifySdk/models/benefit_transaction_details_result.rb +210 -0
  432. data/lib/VoucherifySdk/models/benefit_transaction_rejection.rb +220 -0
  433. data/lib/VoucherifySdk/models/card.rb +387 -0
  434. data/lib/VoucherifySdk/models/card_activity.rb +308 -0
  435. data/lib/VoucherifySdk/models/card_activity_data.rb +258 -0
  436. data/lib/VoucherifySdk/models/card_balance.rb +225 -0
  437. data/lib/VoucherifySdk/models/card_code_generation_failure_result.rb +210 -0
  438. data/lib/VoucherifySdk/models/card_daily_report_entry.rb +412 -0
  439. data/lib/VoucherifySdk/models/card_definition_id_filter_conditions.rb +209 -0
  440. data/lib/VoucherifySdk/models/card_definition_id_filter_conditions_conditions.rb +238 -0
  441. data/lib/VoucherifySdk/models/card_lifetime_bucket.rb +231 -0
  442. data/lib/VoucherifySdk/models/card_lifetime_bucket_pending_points.rb +238 -0
  443. data/lib/VoucherifySdk/models/card_lifetime_bucket_points.rb +355 -0
  444. data/lib/VoucherifySdk/models/card_next_activation.rb +269 -0
  445. data/lib/VoucherifySdk/models/card_next_expiration.rb +223 -0
  446. data/lib/VoucherifySdk/models/card_pending_points_bucket.rb +405 -0
  447. data/lib/VoucherifySdk/models/card_pending_points_bucket_points.rb +210 -0
  448. data/lib/VoucherifySdk/models/card_points_bucket.rb +422 -0
  449. data/lib/VoucherifySdk/models/card_points_bucket_points.rb +210 -0
  450. data/lib/VoucherifySdk/models/card_simple.rb +332 -0
  451. data/lib/VoucherifySdk/models/card_transaction.rb +393 -0
  452. data/lib/VoucherifySdk/models/card_transaction_details.rb +354 -0
  453. data/lib/VoucherifySdk/models/card_transaction_details_card_transaction.rb +210 -0
  454. data/lib/VoucherifySdk/models/card_transaction_details_order.rb +210 -0
  455. data/lib/VoucherifySdk/models/card_transaction_details_order_transaction.rb +210 -0
  456. data/lib/VoucherifySdk/models/card_transaction_details_points.rb +280 -0
  457. data/lib/VoucherifySdk/models/card_transaction_details_purchase.rb +219 -0
  458. data/lib/VoucherifySdk/models/card_transaction_details_purchase_card_transaction.rb +209 -0
  459. data/lib/VoucherifySdk/models/card_transaction_details_purchase_reward_transaction.rb +209 -0
  460. data/lib/VoucherifySdk/models/card_transaction_details_purchase_transaction.rb +210 -0
  461. data/lib/VoucherifySdk/models/card_transaction_details_rejection.rb +221 -0
  462. data/lib/VoucherifySdk/models/card_transaction_details_reward.rb +210 -0
  463. data/lib/VoucherifySdk/models/card_transaction_details_reward_transaction.rb +210 -0
  464. data/lib/VoucherifySdk/models/card_transaction_details_target_card.rb +210 -0
  465. data/lib/VoucherifySdk/models/client_redemptions_redeem_request_body.rb +11 -0
  466. data/lib/VoucherifySdk/models/client_validations_validate_request_body.rb +11 -0
  467. data/lib/VoucherifySdk/models/client_validations_validate_response_body.rb +1 -0
  468. data/lib/VoucherifySdk/models/customer_loyalty_membership.rb +251 -0
  469. data/lib/VoucherifySdk/models/customer_loyalty_membership_card.rb +277 -0
  470. data/lib/VoucherifySdk/models/customer_loyalty_membership_member.rb +275 -0
  471. data/lib/VoucherifySdk/models/customer_loyalty_membership_tier.rb +278 -0
  472. data/lib/VoucherifySdk/models/customer_with_summary_loyalty_referrals.rb +14 -1
  473. data/lib/VoucherifySdk/models/customers_create_response_body.rb +14 -1
  474. data/lib/VoucherifySdk/models/customers_get_response_body.rb +14 -1
  475. data/lib/VoucherifySdk/models/customers_redeemables_list_response_body.rb +1 -1
  476. data/lib/VoucherifySdk/models/customers_update_response_body.rb +14 -1
  477. data/lib/VoucherifySdk/models/date_filter.rb +209 -0
  478. data/lib/VoucherifySdk/models/date_filter_conditions.rb +268 -0
  479. data/lib/VoucherifySdk/models/earning_rule_daily_report_entry.rb +258 -0
  480. data/lib/VoucherifySdk/models/earning_rule_earning.rb +281 -0
  481. data/lib/VoucherifySdk/models/earning_rule_effect.rb +261 -0
  482. data/lib/VoucherifySdk/models/earning_rule_effect_points.rb +246 -0
  483. data/lib/VoucherifySdk/models/earning_rule_effect_points_expiration.rb +261 -0
  484. data/lib/VoucherifySdk/models/earning_rule_effect_points_expiration_calendar_expiration.rb +222 -0
  485. data/lib/VoucherifySdk/models/earning_rule_effect_points_expiration_rolling_expiration.rb +224 -0
  486. data/lib/VoucherifySdk/models/earning_rule_effect_points_expiration_sliding_expiration.rb +226 -0
  487. data/lib/VoucherifySdk/models/earning_rule_effect_points_proportional.rb +296 -0
  488. data/lib/VoucherifySdk/models/earning_rule_id_filter_conditions.rb +209 -0
  489. data/lib/VoucherifySdk/models/earning_rule_id_filter_conditions_conditions.rb +238 -0
  490. data/lib/VoucherifySdk/models/earning_rule_points_proportional_applicable_to.rb +261 -0
  491. data/lib/VoucherifySdk/models/earning_rule_points_proportional_custom_event.rb +215 -0
  492. data/lib/VoucherifySdk/models/earning_rule_points_proportional_customer.rb +215 -0
  493. data/lib/VoucherifySdk/models/earning_rule_points_proportional_order.rb +226 -0
  494. data/lib/VoucherifySdk/models/earning_rule_points_proportional_order_items.rb +226 -0
  495. data/lib/VoucherifySdk/models/earning_rule_points_proportional_order_items_calculation.rb +259 -0
  496. data/lib/VoucherifySdk/models/earning_rule_tier_rules.rb +252 -0
  497. data/lib/VoucherifySdk/models/earning_rule_trigger.rb +252 -0
  498. data/lib/VoucherifySdk/models/earning_rule_trigger_limits_cooldown.rb +243 -0
  499. data/lib/VoucherifySdk/models/earning_rule_trigger_limits_cooldown_fixed_cooldown.rb +215 -0
  500. data/lib/VoucherifySdk/models/earning_rule_trigger_limits_frequency.rb +257 -0
  501. data/lib/VoucherifySdk/models/earning_rule_validity_hours.rb +252 -0
  502. data/lib/VoucherifySdk/models/earning_rules_report_daily_entry.rb +297 -0
  503. data/lib/VoucherifySdk/models/earning_rules_report_failures_breakdown.rb +221 -0
  504. data/lib/VoucherifySdk/models/earning_rules_report_list_filters.rb +243 -0
  505. data/lib/VoucherifySdk/models/earning_rules_report_summary_entry.rb +308 -0
  506. data/lib/VoucherifySdk/models/examine_card_reference.rb +284 -0
  507. data/lib/VoucherifySdk/models/examine_customer_identification.rb +279 -0
  508. data/lib/VoucherifySdk/models/examine_customer_reference.rb +271 -0
  509. data/lib/VoucherifySdk/models/examine_member_reference.rb +282 -0
  510. data/lib/VoucherifySdk/models/examine_program_reference.rb +271 -0
  511. data/lib/VoucherifySdk/models/list_cursor.rb +221 -0
  512. data/lib/VoucherifySdk/models/loyalties_examine_earning_rules_examine_request_body.rb +258 -0
  513. data/lib/VoucherifySdk/models/loyalties_examine_earning_rules_examine_request_body_custom_event_all.rb +211 -0
  514. data/lib/VoucherifySdk/models/loyalties_examine_earning_rules_examine_request_body_custom_event_specific.rb +228 -0
  515. data/lib/VoucherifySdk/models/loyalties_examine_earning_rules_examine_request_body_customer.rb +211 -0
  516. data/lib/VoucherifySdk/models/loyalties_examine_earning_rules_examine_request_body_customer_custom_event.rb +252 -0
  517. data/lib/VoucherifySdk/models/loyalties_examine_earning_rules_examine_request_body_customer_custom_event_all.rb +226 -0
  518. data/lib/VoucherifySdk/models/loyalties_examine_earning_rules_examine_request_body_customer_custom_event_specific.rb +226 -0
  519. data/lib/VoucherifySdk/models/loyalties_examine_earning_rules_examine_request_body_customer_order_paid.rb +226 -0
  520. data/lib/VoucherifySdk/models/loyalties_examine_earning_rules_examine_request_body_customer_segment_entered.rb +217 -0
  521. data/lib/VoucherifySdk/models/loyalties_examine_earning_rules_examine_request_body_member.rb +211 -0
  522. data/lib/VoucherifySdk/models/loyalties_examine_earning_rules_examine_request_body_order.rb +262 -0
  523. data/lib/VoucherifySdk/models/loyalties_examine_earning_rules_examine_request_body_order_item.rb +352 -0
  524. data/lib/VoucherifySdk/models/loyalties_examine_earning_rules_examine_request_body_order_item_product.rb +232 -0
  525. data/lib/VoucherifySdk/models/loyalties_examine_earning_rules_examine_request_body_order_item_sku.rb +232 -0
  526. data/lib/VoucherifySdk/models/loyalties_examine_earning_rules_examine_request_body_trigger.rb +243 -0
  527. data/lib/VoucherifySdk/models/loyalties_examine_earning_rules_examine_request_body_trigger_specific.rb +234 -0
  528. data/lib/VoucherifySdk/models/loyalties_examine_earning_rules_examine_response_body.rb +282 -0
  529. data/lib/VoucherifySdk/models/loyalties_examine_earning_rules_examine_response_body_benefit_earning_rule_estimation.rb +245 -0
  530. data/lib/VoucherifySdk/models/loyalties_examine_earning_rules_examine_response_body_benefit_estimation.rb +258 -0
  531. data/lib/VoucherifySdk/models/loyalties_examine_earning_rules_examine_response_body_benefit_reference.rb +271 -0
  532. data/lib/VoucherifySdk/models/loyalties_examine_earning_rules_examine_response_body_card_earning_rule_estimation.rb +256 -0
  533. data/lib/VoucherifySdk/models/loyalties_examine_earning_rules_examine_response_body_card_estimation.rb +269 -0
  534. data/lib/VoucherifySdk/models/loyalties_examine_earning_rules_examine_response_body_earning_rule_detail.rb +271 -0
  535. data/lib/VoucherifySdk/models/loyalties_examine_earning_rules_examine_response_body_earning_rule_reference.rb +247 -0
  536. data/lib/VoucherifySdk/models/loyalties_examine_earning_rules_examine_response_body_membership.rb +280 -0
  537. data/lib/VoucherifySdk/models/loyalties_examine_rewards_examine_request_body.rb +235 -0
  538. data/lib/VoucherifySdk/models/loyalties_examine_rewards_examine_request_body_customer.rb +211 -0
  539. data/lib/VoucherifySdk/models/loyalties_examine_rewards_examine_request_body_member.rb +211 -0
  540. data/lib/VoucherifySdk/models/loyalties_examine_rewards_examine_response_body.rb +278 -0
  541. data/lib/VoucherifySdk/models/loyalties_examine_rewards_examine_response_body_card_estimation.rb +265 -0
  542. data/lib/VoucherifySdk/models/loyalties_examine_rewards_examine_response_body_card_reward_estimation.rb +294 -0
  543. data/lib/VoucherifySdk/models/loyalties_examine_rewards_examine_response_body_membership.rb +281 -0
  544. data/lib/VoucherifySdk/models/loyalties_examine_rewards_examine_response_body_reward_cost.rb +247 -0
  545. data/lib/VoucherifySdk/models/loyalties_examine_rewards_examine_response_body_reward_detail.rb +293 -0
  546. data/lib/VoucherifySdk/models/loyalties_examine_rewards_examine_response_body_reward_reference.rb +247 -0
  547. data/lib/VoucherifySdk/models/loyalties_examine_rewards_examine_response_body_reward_unavailability_reason.rb +261 -0
  548. data/lib/VoucherifySdk/models/loyalties_programs_members_activities_list_request_query_filters_id.rb +209 -0
  549. data/lib/VoucherifySdk/models/loyalties_programs_members_activities_list_request_query_filters_id_conditions.rb +238 -0
  550. data/lib/VoucherifySdk/models/loyalties_programs_members_activities_list_request_query_filters_type.rb +209 -0
  551. data/lib/VoucherifySdk/models/loyalties_programs_members_activities_list_request_query_filters_type_conditions.rb +272 -0
  552. data/lib/VoucherifySdk/models/loyalties_programs_members_benefits_transactions_list_request_query_benefit_id.rb +209 -0
  553. data/lib/VoucherifySdk/models/loyalties_programs_members_benefits_transactions_list_request_query_benefit_id_conditions.rb +238 -0
  554. data/lib/VoucherifySdk/models/loyalties_programs_members_cards_activities_list_request_query_filters_id.rb +209 -0
  555. data/lib/VoucherifySdk/models/loyalties_programs_members_cards_activities_list_request_query_filters_id_conditions.rb +238 -0
  556. data/lib/VoucherifySdk/models/loyalties_programs_members_cards_activities_list_request_query_filters_type.rb +209 -0
  557. data/lib/VoucherifySdk/models/loyalties_programs_members_cards_activities_list_request_query_filters_type_conditions.rb +272 -0
  558. data/lib/VoucherifySdk/models/loyalties_programs_members_cards_reports_daily_list_response_body.rb +249 -0
  559. data/lib/VoucherifySdk/models/loyalties_programs_members_cards_transactions_list_request_query_id.rb +209 -0
  560. data/lib/VoucherifySdk/models/loyalties_programs_members_cards_transactions_list_request_query_id_conditions.rb +238 -0
  561. data/lib/VoucherifySdk/models/loyalties_programs_members_list_request_query_customer_id.rb +209 -0
  562. data/lib/VoucherifySdk/models/loyalties_programs_members_list_request_query_customer_id_conditions.rb +238 -0
  563. data/lib/VoucherifySdk/models/loyalties_programs_members_list_request_query_id.rb +209 -0
  564. data/lib/VoucherifySdk/models/loyalties_programs_members_list_request_query_id_conditions.rb +238 -0
  565. data/lib/VoucherifySdk/models/loyalties_programs_members_list_request_query_status.rb +209 -0
  566. data/lib/VoucherifySdk/models/loyalties_programs_members_list_request_query_status_conditions.rb +272 -0
  567. data/lib/VoucherifySdk/models/loyalties_programs_members_orders_payments_create_combined_response_body.rb +252 -0
  568. data/lib/VoucherifySdk/models/loyalties_programs_members_orders_payments_create_combined_response_body_transaction.rb +371 -0
  569. data/lib/VoucherifySdk/models/loyalties_programs_members_orders_payments_create_combined_response_body_transaction_details.rb +248 -0
  570. data/lib/VoucherifySdk/models/loyalties_programs_members_orders_payments_create_request_body_limit.rb +250 -0
  571. data/lib/VoucherifySdk/models/loyalties_programs_members_orders_payments_list_request_query_id.rb +209 -0
  572. data/lib/VoucherifySdk/models/loyalties_programs_members_orders_payments_list_request_query_id_conditions.rb +238 -0
  573. data/lib/VoucherifySdk/models/loyalties_programs_members_rewards_purchases_create_combined_response_body.rb +252 -0
  574. data/lib/VoucherifySdk/models/loyalties_programs_members_rewards_purchases_create_combined_response_body_transaction.rb +369 -0
  575. data/lib/VoucherifySdk/models/loyalties_programs_members_rewards_purchases_create_combined_response_body_transaction_details.rb +252 -0
  576. data/lib/VoucherifySdk/models/loyalties_programs_members_rewards_purchases_list_request_query_card_definition_id.rb +209 -0
  577. data/lib/VoucherifySdk/models/loyalties_programs_members_rewards_purchases_list_request_query_card_definition_id_conditions.rb +238 -0
  578. data/lib/VoucherifySdk/models/loyalties_programs_members_rewards_purchases_list_request_query_id.rb +209 -0
  579. data/lib/VoucherifySdk/models/loyalties_programs_members_rewards_purchases_list_request_query_id_conditions.rb +238 -0
  580. data/lib/VoucherifySdk/models/loyalties_programs_members_rewards_purchases_list_request_query_reward_id.rb +209 -0
  581. data/lib/VoucherifySdk/models/loyalties_programs_members_rewards_purchases_list_request_query_reward_id_conditions.rb +238 -0
  582. data/lib/VoucherifySdk/models/loyalties_programs_members_tiers_transactions_list_request_query_card_definition_id.rb +209 -0
  583. data/lib/VoucherifySdk/models/loyalties_programs_members_tiers_transactions_list_request_query_card_definition_id_conditions.rb +238 -0
  584. data/lib/VoucherifySdk/models/loyalties_programs_members_tiers_transactions_list_request_query_card_id.rb +209 -0
  585. data/lib/VoucherifySdk/models/loyalties_programs_members_tiers_transactions_list_request_query_card_id_conditions.rb +238 -0
  586. data/lib/VoucherifySdk/models/loyalties_programs_reports_members_daily_list_response_body.rb +249 -0
  587. data/lib/VoucherifySdk/models/loyalties_programs_reports_members_summary_list_response_body.rb +249 -0
  588. data/lib/VoucherifySdk/models/loyalties_programs_reports_rewards_daily_list_response_body.rb +249 -0
  589. data/lib/VoucherifySdk/models/loyalties_programs_reports_rewards_spendings_daily_list_response_body.rb +249 -0
  590. data/lib/VoucherifySdk/models/loyalties_programs_reports_rewards_spendings_summary_list_response_body.rb +249 -0
  591. data/lib/VoucherifySdk/models/loyalties_programs_reports_rewards_summary_list_response_body.rb +249 -0
  592. data/lib/VoucherifySdk/models/loyalties_programs_reports_spending_daily_list_response_body.rb +249 -0
  593. data/lib/VoucherifySdk/models/loyalties_programs_reports_spending_summary_list_response_body.rb +249 -0
  594. data/lib/VoucherifySdk/models/loyalty_v2_activity_benefit_points_proportional_applicable_to_product.rb +216 -0
  595. data/lib/VoucherifySdk/models/loyalty_v2_activity_benefit_points_proportional_applicable_to_products_collection.rb +216 -0
  596. data/lib/VoucherifySdk/models/loyalty_v2_activity_benefit_points_proportional_applicable_to_sku.rb +216 -0
  597. data/lib/VoucherifySdk/models/loyalty_v2_activity_benefit_stock_limited.rb +220 -0
  598. data/lib/VoucherifySdk/models/loyalty_v2_activity_card_definition_limit_time_based_period.rb +246 -0
  599. data/lib/VoucherifySdk/models/loyalty_v2_activity_card_definition_limit_time_based_period_current_period.rb +234 -0
  600. data/lib/VoucherifySdk/models/loyalty_v2_activity_earning_rule_earning_limits.rb +215 -0
  601. data/lib/VoucherifySdk/models/loyalty_v2_activity_earning_rule_earning_limits_global.rb +257 -0
  602. data/lib/VoucherifySdk/models/loyalty_v2_activity_earning_rule_effect_benefit.rb +216 -0
  603. data/lib/VoucherifySdk/models/loyalty_v2_activity_earning_rule_effect_points_expiration_calendar_expiration_date.rb +241 -0
  604. data/lib/VoucherifySdk/models/loyalty_v2_activity_earning_rule_effect_points_expiration_rolling_expiration_period.rb +250 -0
  605. data/lib/VoucherifySdk/models/loyalty_v2_activity_earning_rule_effect_points_expiration_rolling_expiration_rounding.rb +255 -0
  606. data/lib/VoucherifySdk/models/loyalty_v2_activity_earning_rule_effect_points_expiration_sliding_expiration_period.rb +250 -0
  607. data/lib/VoucherifySdk/models/loyalty_v2_activity_earning_rule_error.rb +220 -0
  608. data/lib/VoucherifySdk/models/loyalty_v2_activity_earning_rule_points_proportional_applicable_to_product.rb +216 -0
  609. data/lib/VoucherifySdk/models/loyalty_v2_activity_earning_rule_points_proportional_applicable_to_products_collection.rb +216 -0
  610. data/lib/VoucherifySdk/models/loyalty_v2_activity_earning_rule_points_proportional_applicable_to_sku.rb +216 -0
  611. data/lib/VoucherifySdk/models/loyalty_v2_activity_earning_rule_points_proportional_every.rb +241 -0
  612. data/lib/VoucherifySdk/models/loyalty_v2_activity_earning_rule_points_proportional_metadata.rb +257 -0
  613. data/lib/VoucherifySdk/models/loyalty_v2_activity_earning_rule_tier_rules_any_of_entry.rb +234 -0
  614. data/lib/VoucherifySdk/models/loyalty_v2_activity_earning_rule_trigger_custom_event.rb +216 -0
  615. data/lib/VoucherifySdk/models/loyalty_v2_activity_earning_rule_trigger_limits_cooldown_fixed_cooldown_period.rb +250 -0
  616. data/lib/VoucherifySdk/models/loyalty_v2_activity_earning_rule_trigger_segment.rb +216 -0
  617. data/lib/VoucherifySdk/models/loyalty_v2_activity_earning_rule_validity_daily_hours.rb +244 -0
  618. data/lib/VoucherifySdk/models/loyalty_v2_activity_reward_cost_spending_response.rb +260 -0
  619. data/lib/VoucherifySdk/models/loyalty_v2_activity_reward_digital_discount_coupons.rb +216 -0
  620. data/lib/VoucherifySdk/models/loyalty_v2_activity_reward_digital_gift_vouchers_response.rb +227 -0
  621. data/lib/VoucherifySdk/models/loyalty_v2_activity_reward_digital_loyalty_card_points_response.rb +227 -0
  622. data/lib/VoucherifySdk/models/loyalty_v2_activity_reward_material_product.rb +216 -0
  623. data/lib/VoucherifySdk/models/loyalty_v2_activity_reward_material_sku.rb +233 -0
  624. data/lib/VoucherifySdk/models/loyalty_v2_activity_reward_purchase_limits_cooldown_fixed_cooldown_period.rb +250 -0
  625. data/lib/VoucherifySdk/models/loyalty_v2_activity_reward_purchase_limits_frequency_limit_triggers.rb +215 -0
  626. data/lib/VoucherifySdk/models/loyalty_v2_activity_reward_refunds.rb +234 -0
  627. data/lib/VoucherifySdk/models/loyalty_v2_activity_reward_validity_daily_hours_response.rb +234 -0
  628. data/lib/VoucherifySdk/models/loyalty_v2_card_points_bucket_simple.rb +272 -0
  629. data/lib/VoucherifySdk/models/loyalty_v2_card_points_bucket_simple_points.rb +210 -0
  630. data/lib/VoucherifySdk/models/lpm_ord_pay_ccrb_tx_details_metadata.rb +220 -0
  631. data/lib/VoucherifySdk/models/lpm_ord_pay_ccrb_tx_details_rejection.rb +219 -0
  632. data/lib/VoucherifySdk/models/lpm_ord_pay_ccrb_tx_details_rejection_details.rb +231 -0
  633. data/lib/VoucherifySdk/models/lpm_ord_pay_ccrb_tx_details_spending_cap.rb +257 -0
  634. data/lib/VoucherifySdk/models/lpm_rew_purch_ccrb_tx_details_points.rb +209 -0
  635. data/lib/VoucherifySdk/models/lpm_rew_purch_ccrb_tx_details_rejection.rb +222 -0
  636. data/lib/VoucherifySdk/models/lpm_rew_purch_ccrb_tx_details_result.rb +239 -0
  637. data/lib/VoucherifySdk/models/lpm_rew_purch_ccrb_tx_details_result_dig_lc_points.rb +231 -0
  638. data/lib/VoucherifySdk/models/lpm_rew_purch_ccrb_tx_details_result_digital.rb +269 -0
  639. data/lib/VoucherifySdk/models/lpm_rew_purch_ccrb_tx_details_result_material.rb +259 -0
  640. data/lib/VoucherifySdk/models/lpm_rew_purch_ccrb_tx_details_result_reward.rb +244 -0
  641. data/lib/VoucherifySdk/models/management_projects_metadata_schema_definition.rb +1 -0
  642. data/lib/VoucherifySdk/models/member.rb +333 -0
  643. data/lib/VoucherifySdk/models/member_card.rb +269 -0
  644. data/lib/VoucherifySdk/models/member_create.rb +257 -0
  645. data/lib/VoucherifySdk/models/member_tier_progress.rb +293 -0
  646. data/lib/VoucherifySdk/models/member_tier_progress_current.rb +239 -0
  647. data/lib/VoucherifySdk/models/member_tier_progress_deferred.rb +230 -0
  648. data/lib/VoucherifySdk/models/member_tier_progress_opportunity.rb +230 -0
  649. data/lib/VoucherifySdk/models/member_tier_progress_points.rb +232 -0
  650. data/lib/VoucherifySdk/models/member_tier_progress_risk.rb +254 -0
  651. data/lib/VoucherifySdk/models/member_tier_progress_tier.rb +227 -0
  652. data/lib/VoucherifySdk/models/member_tier_progress_tier_structure.rb +253 -0
  653. data/lib/VoucherifySdk/models/members_report_daily_entry.rb +291 -0
  654. data/lib/VoucherifySdk/models/members_report_summary_entry.rb +297 -0
  655. data/lib/VoucherifySdk/models/membership_card.rb +278 -0
  656. data/lib/VoucherifySdk/models/order_payment_limit_definition.rb +215 -0
  657. data/lib/VoucherifySdk/models/order_payment_order.rb +232 -0
  658. data/lib/VoucherifySdk/models/order_payment_payment_details.rb +243 -0
  659. data/lib/VoucherifySdk/models/order_payment_rejection.rb +221 -0
  660. data/lib/VoucherifySdk/models/order_payment_transaction.rb +372 -0
  661. data/lib/VoucherifySdk/models/order_payment_transaction_details.rb +249 -0
  662. data/lib/VoucherifySdk/models/order_payment_transaction_details_spending_cap.rb +258 -0
  663. data/lib/VoucherifySdk/models/parameter_filters_list_publications_parent_object_id.rb +1 -1
  664. data/lib/VoucherifySdk/models/parameter_filters_list_publications_related_object_id.rb +1 -1
  665. data/lib/VoucherifySdk/models/parameter_filters_list_publications_source_id.rb +1 -1
  666. data/lib/VoucherifySdk/models/points_earnings_report_daily_entry.rb +331 -0
  667. data/lib/VoucherifySdk/models/points_earnings_report_list_filters.rb +252 -0
  668. data/lib/VoucherifySdk/models/points_earnings_report_summary_entry.rb +337 -0
  669. data/lib/VoucherifySdk/models/product_collections_products_list_response_body.rb +1 -0
  670. data/lib/VoucherifySdk/models/program.rb +341 -0
  671. data/lib/VoucherifySdk/models/program_earning_rule_assignment.rb +264 -0
  672. data/lib/VoucherifySdk/models/program_list_cursor.rb +221 -0
  673. data/lib/VoucherifySdk/models/program_reward_assignment.rb +302 -0
  674. data/lib/VoucherifySdk/models/program_reward_assignment_stock.rb +243 -0
  675. data/lib/VoucherifySdk/models/program_reward_assignment_stock_limited.rb +220 -0
  676. data/lib/VoucherifySdk/models/program_simple.rb +288 -0
  677. data/lib/VoucherifySdk/models/program_tier_structure_assignment.rb +264 -0
  678. data/lib/VoucherifySdk/models/program_validity_daily_hours.rb +234 -0
  679. data/lib/VoucherifySdk/models/program_validity_hours.rb +247 -0
  680. data/lib/VoucherifySdk/models/promotion_tier_campaign.rb +1 -1
  681. data/lib/VoucherifySdk/models/promotions_tiers_create_response_body_campaign.rb +1 -1
  682. data/lib/VoucherifySdk/models/promotions_tiers_disable_response_body_campaign.rb +1 -1
  683. data/lib/VoucherifySdk/models/promotions_tiers_enable_response_body_campaign.rb +1 -1
  684. data/lib/VoucherifySdk/models/promotions_tiers_get_response_body_campaign.rb +1 -1
  685. data/lib/VoucherifySdk/models/promotions_tiers_update_response_body_campaign.rb +1 -1
  686. data/lib/VoucherifySdk/models/publications_list_response_body.rb +1 -1
  687. data/lib/VoucherifySdk/models/redemption_entry_promotion_tier_campaign.rb +1 -1
  688. data/lib/VoucherifySdk/models/redemptions_get_response_body_promotion_tier_campaign.rb +1 -1
  689. data/lib/VoucherifySdk/models/redemptions_list_response_body_redemptions_item_promotion_tier_campaign.rb +1 -1
  690. data/lib/VoucherifySdk/models/redemptions_redeem_request_body.rb +11 -0
  691. data/lib/VoucherifySdk/models/referrals_members_holders_list_response_body.rb +1 -1
  692. data/lib/VoucherifySdk/models/report_card_definition_id_filter_conditions.rb +209 -0
  693. data/lib/VoucherifySdk/models/report_card_definition_id_filter_conditions_conditions.rb +238 -0
  694. data/lib/VoucherifySdk/models/reward_cost_response.rb +271 -0
  695. data/lib/VoucherifySdk/models/reward_cost_tier_rules_any_of_entry_response.rb +234 -0
  696. data/lib/VoucherifySdk/models/reward_cost_tier_rules_response.rb +252 -0
  697. data/lib/VoucherifySdk/models/reward_digital_response.rb +261 -0
  698. data/lib/VoucherifySdk/models/reward_material_response.rb +252 -0
  699. data/lib/VoucherifySdk/models/reward_purchase_digital_coupon.rb +256 -0
  700. data/lib/VoucherifySdk/models/reward_purchase_digital_gift_voucher.rb +278 -0
  701. data/lib/VoucherifySdk/models/reward_purchase_limits.rb +231 -0
  702. data/lib/VoucherifySdk/models/reward_purchase_limits_cooldown.rb +243 -0
  703. data/lib/VoucherifySdk/models/reward_purchase_limits_cooldown_fixed_cooldown.rb +215 -0
  704. data/lib/VoucherifySdk/models/reward_purchase_limits_frequency.rb +247 -0
  705. data/lib/VoucherifySdk/models/reward_purchase_limits_frequency_limit.rb +268 -0
  706. data/lib/VoucherifySdk/models/reward_purchase_refund_policies.rb +247 -0
  707. data/lib/VoucherifySdk/models/reward_purchase_transaction.rb +371 -0
  708. data/lib/VoucherifySdk/models/reward_validity_hours_response.rb +247 -0
  709. data/lib/VoucherifySdk/models/rewards_report_daily_entry.rb +297 -0
  710. data/lib/VoucherifySdk/models/rewards_report_filter_reward_id_conditions.rb +209 -0
  711. data/lib/VoucherifySdk/models/rewards_report_filter_reward_id_conditions_conditions.rb +238 -0
  712. data/lib/VoucherifySdk/models/rewards_report_list_filters.rb +243 -0
  713. data/lib/VoucherifySdk/models/rewards_report_summary_entry.rb +309 -0
  714. data/lib/VoucherifySdk/models/rewards_spendings_report_daily_entry.rb +337 -0
  715. data/lib/VoucherifySdk/models/rewards_spendings_report_filter_cost_id_conditions.rb +209 -0
  716. data/lib/VoucherifySdk/models/rewards_spendings_report_filter_cost_id_conditions_conditions.rb +238 -0
  717. data/lib/VoucherifySdk/models/rewards_spendings_report_filter_spending_id_conditions.rb +209 -0
  718. data/lib/VoucherifySdk/models/rewards_spendings_report_filter_spending_id_conditions_conditions.rb +238 -0
  719. data/lib/VoucherifySdk/models/rewards_spendings_report_list_filters.rb +270 -0
  720. data/lib/VoucherifySdk/models/rewards_spendings_report_summary_entry.rb +343 -0
  721. data/lib/VoucherifySdk/models/spending_report_daily_entry.rb +335 -0
  722. data/lib/VoucherifySdk/models/spending_report_list_filters.rb +243 -0
  723. data/lib/VoucherifySdk/models/spending_report_summary_entry.rb +335 -0
  724. data/lib/VoucherifySdk/models/tier_transaction.rb +377 -0
  725. data/lib/VoucherifySdk/models/tier_transaction_details.rb +272 -0
  726. data/lib/VoucherifySdk/models/tier_transaction_origin.rb +260 -0
  727. data/lib/VoucherifySdk/models/tier_transaction_rejection.rb +221 -0
  728. data/lib/VoucherifySdk/models/tiers_report_daily_entry.rb +336 -0
  729. data/lib/VoucherifySdk/models/tiers_report_filter_tier_id_conditions.rb +209 -0
  730. data/lib/VoucherifySdk/models/tiers_report_filter_tier_id_conditions_conditions.rb +238 -0
  731. data/lib/VoucherifySdk/models/tiers_report_filter_tier_structure_id_conditions.rb +209 -0
  732. data/lib/VoucherifySdk/models/tiers_report_filter_tier_structure_id_conditions_conditions.rb +238 -0
  733. data/lib/VoucherifySdk/models/tiers_report_list_filters.rb +252 -0
  734. data/lib/VoucherifySdk/models/tiers_report_summary_entry.rb +342 -0
  735. data/lib/VoucherifySdk/models/transaction_filter_date_conditions.rb +209 -0
  736. data/lib/VoucherifySdk/models/transaction_filter_date_conditions_conditions.rb +268 -0
  737. data/lib/VoucherifySdk/models/v2_loyalties_benefits_get_response_body.rb +362 -0
  738. data/lib/VoucherifySdk/models/v2_loyalties_benefits_get_response_body_points.rb +237 -0
  739. data/lib/VoucherifySdk/models/v2_loyalties_benefits_get_response_body_points_proportional.rb +287 -0
  740. data/lib/VoucherifySdk/models/v2_loyalties_benefits_get_response_body_stock.rb +243 -0
  741. data/lib/VoucherifySdk/models/v2_loyalties_earning_rules_get_response_body.rb +430 -0
  742. data/lib/VoucherifySdk/models/v2_loyalties_earning_rules_get_response_body_trigger_limits.rb +217 -0
  743. data/lib/VoucherifySdk/models/v2_loyalties_programs_earning_rules_list_response_body.rb +258 -0
  744. data/lib/VoucherifySdk/models/v2_loyalties_programs_members_activate_response_body.rb +333 -0
  745. data/lib/VoucherifySdk/models/v2_loyalties_programs_members_activities_list_request_query_filters.rb +261 -0
  746. data/lib/VoucherifySdk/models/v2_loyalties_programs_members_activities_list_response_body.rb +258 -0
  747. data/lib/VoucherifySdk/models/v2_loyalties_programs_members_benefits_transactions_list_request_query.rb +252 -0
  748. data/lib/VoucherifySdk/models/v2_loyalties_programs_members_benefits_transactions_list_response_body.rb +259 -0
  749. data/lib/VoucherifySdk/models/v2_loyalties_programs_members_benefits_transactions_list_response_body_cursor.rb +221 -0
  750. data/lib/VoucherifySdk/models/v2_loyalties_programs_members_cards_activities_list_request_query_filters.rb +261 -0
  751. data/lib/VoucherifySdk/models/v2_loyalties_programs_members_cards_activities_list_response_body.rb +258 -0
  752. data/lib/VoucherifySdk/models/v2_loyalties_programs_members_cards_expiring_points_expire_response_body.rb +267 -0
  753. data/lib/VoucherifySdk/models/v2_loyalties_programs_members_cards_expiring_points_list_request_query.rb +252 -0
  754. data/lib/VoucherifySdk/models/v2_loyalties_programs_members_cards_expiring_points_list_response_body.rb +258 -0
  755. data/lib/VoucherifySdk/models/v2_loyalties_programs_members_cards_pending_points_activate_response_body.rb +267 -0
  756. data/lib/VoucherifySdk/models/v2_loyalties_programs_members_cards_pending_points_cancel_response_body.rb +267 -0
  757. data/lib/VoucherifySdk/models/v2_loyalties_programs_members_cards_pending_points_list_request_query.rb +243 -0
  758. data/lib/VoucherifySdk/models/v2_loyalties_programs_members_cards_pending_points_list_response_body.rb +258 -0
  759. data/lib/VoucherifySdk/models/v2_loyalties_programs_members_cards_points_adjust_request_body.rb +236 -0
  760. data/lib/VoucherifySdk/models/v2_loyalties_programs_members_cards_points_adjust_response_body.rb +256 -0
  761. data/lib/VoucherifySdk/models/v2_loyalties_programs_members_cards_transactions_list_request_query.rb +261 -0
  762. data/lib/VoucherifySdk/models/v2_loyalties_programs_members_cards_transactions_list_response_body.rb +258 -0
  763. data/lib/VoucherifySdk/models/v2_loyalties_programs_members_create_in_bulk_response_body.rb +216 -0
  764. data/lib/VoucherifySdk/models/v2_loyalties_programs_members_create_request_body.rb +257 -0
  765. data/lib/VoucherifySdk/models/v2_loyalties_programs_members_create_response_body.rb +346 -0
  766. data/lib/VoucherifySdk/models/v2_loyalties_programs_members_deactivate_response_body.rb +333 -0
  767. data/lib/VoucherifySdk/models/v2_loyalties_programs_members_delete_response_body.rb +333 -0
  768. data/lib/VoucherifySdk/models/v2_loyalties_programs_members_earning_rules_reports_daily_list_response_body.rb +249 -0
  769. data/lib/VoucherifySdk/models/v2_loyalties_programs_members_get_response_body.rb +346 -0
  770. data/lib/VoucherifySdk/models/v2_loyalties_programs_members_list_request_query.rb +270 -0
  771. data/lib/VoucherifySdk/models/v2_loyalties_programs_members_list_response_body.rb +258 -0
  772. data/lib/VoucherifySdk/models/v2_loyalties_programs_members_orders_payments_create_request_body.rb +270 -0
  773. data/lib/VoucherifySdk/models/v2_loyalties_programs_members_orders_payments_list_request_query.rb +261 -0
  774. data/lib/VoucherifySdk/models/v2_loyalties_programs_members_orders_payments_list_response_body.rb +259 -0
  775. data/lib/VoucherifySdk/models/v2_loyalties_programs_members_orders_payments_list_response_body_cursor.rb +221 -0
  776. data/lib/VoucherifySdk/models/v2_loyalties_programs_members_rewards_purchases_create_request_body.rb +247 -0
  777. data/lib/VoucherifySdk/models/v2_loyalties_programs_members_rewards_purchases_list_request_query.rb +270 -0
  778. data/lib/VoucherifySdk/models/v2_loyalties_programs_members_rewards_purchases_list_response_body.rb +259 -0
  779. data/lib/VoucherifySdk/models/v2_loyalties_programs_members_rewards_purchases_list_response_body_cursor.rb +221 -0
  780. data/lib/VoucherifySdk/models/v2_loyalties_programs_members_tiers_transactions_list_request_query.rb +261 -0
  781. data/lib/VoucherifySdk/models/v2_loyalties_programs_members_tiers_transactions_list_response_body.rb +258 -0
  782. data/lib/VoucherifySdk/models/v2_loyalties_programs_members_update_request_body.rb +210 -0
  783. data/lib/VoucherifySdk/models/v2_loyalties_programs_members_update_response_body.rb +333 -0
  784. data/lib/VoucherifySdk/models/v2_loyalties_programs_memberships_get_response_body.rb +267 -0
  785. data/lib/VoucherifySdk/models/v2_loyalties_programs_reports_earning_rules_daily_list_response_body.rb +249 -0
  786. data/lib/VoucherifySdk/models/v2_loyalties_programs_reports_earning_rules_summary_list_response_body.rb +249 -0
  787. data/lib/VoucherifySdk/models/v2_loyalties_programs_reports_points_earnings_daily_list_response_body.rb +249 -0
  788. data/lib/VoucherifySdk/models/v2_loyalties_programs_reports_points_earnings_summary_list_response_body.rb +249 -0
  789. data/lib/VoucherifySdk/models/v2_loyalties_programs_reports_tiers_daily_list_response_body.rb +249 -0
  790. data/lib/VoucherifySdk/models/v2_loyalties_programs_reports_tiers_summary_list_response_body.rb +249 -0
  791. data/lib/VoucherifySdk/models/v2_loyalties_programs_rewards_list_response_body.rb +258 -0
  792. data/lib/VoucherifySdk/models/v2_loyalties_programs_rewards_purchases_refund_request_body.rb +208 -0
  793. data/lib/VoucherifySdk/models/v2_loyalties_programs_rewards_purchases_refund_response_body.rb +263 -0
  794. data/lib/VoucherifySdk/models/v2_loyalties_programs_tier_structures_list_response_body.rb +258 -0
  795. data/lib/VoucherifySdk/models/v2_loyalties_rewards_get_response_body.rb +424 -0
  796. data/lib/VoucherifySdk/models/validations_validate_request_body.rb +11 -0
  797. data/lib/VoucherifySdk/models/validations_validate_response_body.rb +1 -0
  798. data/lib/VoucherifySdk/models/vl_member_activity.rb +308 -0
  799. data/lib/VoucherifySdk/models/vl_member_activity_data.rb +249 -0
  800. data/lib/VoucherifySdk/version.rb +1 -1
  801. data/lib/VoucherifySdk.rb +366 -0
  802. metadata +767 -30
@@ -0,0 +1,161 @@
1
+ # Loyalty v2 e2e coverage (Ruby SDK)
2
+
3
+ Migration map for a future release that publishes admin Loyalty v2 operations on the Ruby SDK. Until then, unpublished admin setup uses `Net::HTTP` in `loyalty_v2_http.rb`; member and runtime flows use generated `LV2*Api` clients.
4
+
5
+ `npm run generate-sdk-ruby` deletes `lib/`, `docs/`, and root `spec/`. E2e lives only under `__tests__/`, so this file and the suite survive regeneration.
6
+
7
+ ## Files
8
+
9
+ | File | Role |
10
+ |------|------|
11
+ | `__tests__/spec/15_loyalty_v2_spec.rb` | RSpec suite |
12
+ | `__tests__/lib/loyalty_v2_fixture.rb` | Setup / teardown orchestration |
13
+ | `__tests__/lib/loyalty_v2_http.rb` | Authenticated `Net::HTTP` helper for unpublished admin paths |
14
+ | `__tests__/lib/config.rb` | Credentials + `LV2*Api` helpers |
15
+ | `__tests__/LOYALTY_V2_COVERAGE.md` | This map |
16
+
17
+ ## Depth legend
18
+
19
+ | Depth | Meaning |
20
+ |-------|---------|
21
+ | **setup only** | Called from the fixture; no dedicated example assertion beyond setup ids |
22
+ | **Smoke** | Call succeeds; body is present |
23
+ | **Basic** | Smoke + field checks (status, id, list contains created id) |
24
+ | **Flow** | Multi-step happy path |
25
+
26
+ Do not add endpoints to `scripts/shared/get-take-list.ts` from this suite. When an operation is allowlisted later, switch the matching HTTP helper to the SDK method named below and drop the HTTP wrapper if unused.
27
+
28
+ ---
29
+
30
+ ## HTTP helpers → future SDK methods
31
+
32
+ | Helper | Method + path | Why HTTP today | Future SDK (when allowlisted) | Depth |
33
+ |--------|---------------|----------------|-------------------------------|-------|
34
+ | `create_program` | `POST /v2/loyalties/programs` | Not on allowlist | Programs create API (e.g. `LV2ProgramsApi#create_program`) | setup only |
35
+ | `get_program` | `GET /v2/loyalties/programs/{programId}` | Not on allowlist | `LV2ProgramsApi#get_program` | unused in suite |
36
+ | `update_program` | `PUT /v2/loyalties/programs/{programId}` | Not on allowlist | `LV2ProgramsApi#update_program` | unused in suite |
37
+ | `activate_program` | `POST /v2/loyalties/programs/{programId}/activate` | Not on allowlist | `LV2ProgramsApi#activate_program` | setup only |
38
+ | `deactivate_program` | `POST /v2/loyalties/programs/{programId}/deactivate` | Not on allowlist | `LV2ProgramsApi#deactivate_program` | setup only (teardown) |
39
+ | `delete_program` | `DELETE /v2/loyalties/programs/{programId}` | Not on allowlist | `LV2ProgramsApi#delete_program` | setup only (teardown) |
40
+ | `create_card_definition` | `POST /v2/loyalties/card-definitions` | Not on allowlist | Card definitions create API | setup only |
41
+ | `activate_card_definition` | `POST /v2/loyalties/card-definitions/{id}/activate` | Not on allowlist | Card definitions activate API | setup only |
42
+ | `draft_card_definition` | `POST /v2/loyalties/card-definitions/{id}/draft` | Not on allowlist | Card definitions draft API | unused (no deactivate path) |
43
+ | `delete_card_definition` | `DELETE /v2/loyalties/card-definitions/{id}` | Not on allowlist | Card definitions delete API | setup only (teardown) |
44
+ | `create_earning_rule` | `POST /v2/loyalties/earning-rules` | Not on allowlist | Earning rules create API | setup only |
45
+ | `activate_earning_rule` | `POST /v2/loyalties/earning-rules/{id}/activate` | Not on allowlist | Earning rules activate API | setup only |
46
+ | `deactivate_earning_rule` | `POST /v2/loyalties/earning-rules/{id}/deactivate` | Not on allowlist | Earning rules deactivate API | setup only (teardown) |
47
+ | `delete_earning_rule` | `DELETE /v2/loyalties/earning-rules/{id}` | Not on allowlist | Earning rules delete API | setup only (teardown) |
48
+ | `create_reward` | `POST /v2/loyalties/rewards` | Not on allowlist | Rewards create API | setup only |
49
+ | `activate_reward` | `POST /v2/loyalties/rewards/{id}/activate` | Not on allowlist | Rewards activate API | setup only |
50
+ | `deactivate_reward` | `POST /v2/loyalties/rewards/{id}/deactivate` | Not on allowlist | Rewards deactivate API | setup only (teardown) |
51
+ | `delete_reward` | `DELETE /v2/loyalties/rewards/{id}` | Not on allowlist | Rewards delete API | setup only (teardown) |
52
+ | `batch_assign_card_definitions` | `POST /v2/loyalties/programs/{id}/card-definitions/batch` | Not on allowlist | Program card-definitions batch API | setup only |
53
+ | `batch_assign_earning_rules` | `POST /v2/loyalties/programs/{id}/earning-rules/batch` | Not on allowlist | Program earning-rules batch API | setup only |
54
+ | `batch_assign_rewards` | `POST /v2/loyalties/programs/{id}/rewards/batch` | Not on allowlist | Program rewards batch API | setup only |
55
+
56
+ Exact generated Ruby method names will follow OpenAPI operationIds once those paths are published; keep this table in sync when switching helpers.
57
+
58
+ ---
59
+
60
+ ## Covered via published SDK
61
+
62
+ ### Members (`LV2ProgramsApi`)
63
+
64
+ | Method | Depth | Notes |
65
+ |--------|-------|-------|
66
+ | `create_program_member` | Flow | Customer id identification |
67
+ | `get_program_member` | Basic | Id match; cards present |
68
+ | `list_program_members` | Basic | Created member in `data` |
69
+ | `get_program_membership` | Smoke | Response present |
70
+ | `activate_program_member` | Basic | Status `ACTIVE` |
71
+ | `deactivate_program_member` | Basic | Status not `ACTIVE` |
72
+ | `delete_program_member` | Smoke | Cleanup only |
73
+
74
+ Not covered: batch create, update member, member activities.
75
+
76
+ ### Cards / points (`LV2ProgramsApi`)
77
+
78
+ | Method | Depth | Notes |
79
+ |--------|-------|-------|
80
+ | `adjust_card_points` | Flow | +100; poll until balance visible |
81
+ | `list_card_transactions` | Basic | Non-empty after adjust |
82
+ | `list_card_pending_points` | Smoke | Skipped activate/cancel when empty (`IMMEDIATE` pending) |
83
+
84
+ Not covered: pending activate/cancel when buckets exist, expiring points, card activities.
85
+
86
+ ### Order payments (`LV2ProgramsApi` + `OrdersApi`)
87
+
88
+ | Method | Depth | Notes |
89
+ |--------|-------|-------|
90
+ | `OrdersApi#create_order` | Smoke | Fixture order |
91
+ | `create_member_order_payment` | Flow | `DRY_RUN` + `CARD_BALANCE` |
92
+ | `list_member_order_payments` | Smoke | Response present |
93
+
94
+ Not covered: real `TRANSACTION` payments.
95
+
96
+ ### Reward purchases (`LV2ProgramsApi`)
97
+
98
+ | Method | Depth | Notes |
99
+ |--------|-------|-------|
100
+ | `purchase_member_reward` | Flow | Dry-run then `TRANSACTION` |
101
+ | `list_member_reward_purchases` | Basic | Poll until `APPROVED` |
102
+ | `refund_reward_purchase` | Flow | `policies.refund = ALLOW` |
103
+
104
+ ### Examine (`LV2ExamineApi`)
105
+
106
+ | Method | Depth | Notes |
107
+ |--------|-------|-------|
108
+ | `examine_earning_rules` | Smoke | Specific `customer.order.paid` |
109
+ | `examine_rewards` | Smoke | Member id |
110
+
111
+ ### Reports (`LV2ProgramsApi`) — subset
112
+
113
+ | Method | Depth | Notes |
114
+ |--------|-------|-------|
115
+ | `list_program_members_summary_reports` | Smoke | Empty `data` is a pass |
116
+ | `list_program_rewards_summary_reports` | Smoke | Same |
117
+ | `list_program_members_daily_reports` | Smoke | `start_date` strictly before `end_date` |
118
+ | `list_member_card_daily_reports` | Smoke | Same date rule |
119
+
120
+ Not covered: other daily/summary report families.
121
+
122
+ ### Allowlisted GETs
123
+
124
+ | Method | Depth | Notes |
125
+ |--------|-------|-------|
126
+ | `LV2EarningRulesApi#get_earning_rule` | Basic | Fixture earning rule id |
127
+ | `LV2RewardsApi#get_reward` | Basic | Fixture reward id |
128
+
129
+ Not covered: `LV2BenefitsApi`, list program earning rules / rewards.
130
+
131
+ ### Customers
132
+
133
+ | Method | Depth | Notes |
134
+ |--------|-------|-------|
135
+ | `CustomersApi#create_customer` | Smoke | Unique `source_id` |
136
+ | permanent delete helper | Smoke | Cleanup; ignore 404 |
137
+
138
+ ---
139
+
140
+ ## Cleanup matrix
141
+
142
+ 1. SDK: deactivate member (if active) → delete member → delete customer (ignore 404).
143
+ 2. HTTP: deactivate + delete program (drops assignments).
144
+ 3. HTTP: deactivate + delete earning rule and reward.
145
+ 4. HTTP: delete card definitions last (423 if a non-draft program/reward still references them).
146
+
147
+ Failed assertions still run `after(:all)` cleanup via `cleanup_loyalty_v2!`.
148
+
149
+ ## How to run
150
+
151
+ From the OpenAPI repo root:
152
+
153
+ ```bash
154
+ npm run test-ruby-sdk
155
+ ```
156
+
157
+ Or in the Ruby image:
158
+
159
+ ```bash
160
+ rspec ./spec/15_loyalty_v2_spec.rb
161
+ ```
@@ -76,6 +76,26 @@ module Config
76
76
  return VoucherifySdk::VouchersApi.new()
77
77
  end
78
78
 
79
+ def self.lv2_programs_api_instance
80
+ return VoucherifySdk::LV2ProgramsApi.new()
81
+ end
82
+
83
+ def self.lv2_examine_api_instance
84
+ return VoucherifySdk::LV2ExamineApi.new()
85
+ end
86
+
87
+ def self.lv2_earning_rules_api_instance
88
+ return VoucherifySdk::LV2EarningRulesApi.new()
89
+ end
90
+
91
+ def self.lv2_rewards_api_instance
92
+ return VoucherifySdk::LV2RewardsApi.new()
93
+ end
94
+
95
+ def self.lv2_benefits_api_instance
96
+ return VoucherifySdk::LV2BenefitsApi.new()
97
+ end
98
+
79
99
  def self.management_api_instance
80
100
  management_config = VoucherifySdk::Configuration.new
81
101
  management_config.api_key['X-Management-Id'] = ENV['X_MANAGEMENT_ID']
@@ -0,0 +1,199 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'loyalty_v2_http'
4
+
5
+ # HTTP-only setup and teardown for Loyalty v2 e2e tests.
6
+ module LoyaltyV2Fixture
7
+ Context = Struct.new(
8
+ :suffix,
9
+ :program_id,
10
+ :card_definition_id,
11
+ :reward_card_definition_id,
12
+ :earning_rule_id,
13
+ :reward_id,
14
+ :program_name,
15
+ keyword_init: true
16
+ )
17
+
18
+ module_function
19
+
20
+ def unique_suffix
21
+ "#{Time.now.to_i.to_s(36)}_#{rand(1_000_000)}"
22
+ end
23
+
24
+ def build_card_definition_body(name, enable_pay_with_points: false)
25
+ {
26
+ name: name,
27
+ type: 'INDIVIDUAL',
28
+ status: 'DRAFT',
29
+ points_expiration: { type: 'NO_EXPIRATION' },
30
+ pending_points: { type: 'IMMEDIATE' },
31
+ spending_limits: {
32
+ global: { type: 'NO_LIMIT', limits: nil },
33
+ transactions: { type: 'NO_LIMIT', limits: nil }
34
+ },
35
+ # Order payments require EXCHANGE_RATIO; default is NO_PAYMENTS (423).
36
+ pay_with_points: if enable_pay_with_points
37
+ {
38
+ type: 'EXCHANGE_RATIO',
39
+ exchange_ratio: { formula: 1 }
40
+ }
41
+ else
42
+ { type: 'NO_PAYMENTS' }
43
+ end
44
+ }
45
+ end
46
+
47
+ def setup
48
+ suffix = unique_suffix
49
+ program_name = "ruby_sdk_lv2_program_#{suffix}"
50
+ card_name = "ruby_sdk_lv2_card_#{suffix}"
51
+ earning_rule_name = "ruby_sdk_lv2_earn_#{suffix}"
52
+ reward_name = "ruby_sdk_lv2_reward_#{suffix}"
53
+
54
+ program = LoyaltyV2Http.create_program(name: program_name)
55
+ program_id = program && program['id']
56
+ raise "create_program returned no id: #{program.inspect}" if program_id.nil?
57
+
58
+ card_definition = LoyaltyV2Http.create_card_definition(
59
+ build_card_definition_body(card_name, enable_pay_with_points: true)
60
+ )
61
+ card_definition_id = card_definition && card_definition['id']
62
+ raise "create_card_definition returned no id: #{card_definition.inspect}" if card_definition_id.nil?
63
+
64
+ LoyaltyV2Http.activate_card_definition(card_definition_id)
65
+
66
+ # Reward spend source and credit target must be different card definitions.
67
+ reward_card_definition = LoyaltyV2Http.create_card_definition(
68
+ build_card_definition_body("ruby_sdk_lv2_reward_card_#{suffix}")
69
+ )
70
+ reward_card_definition_id = reward_card_definition && reward_card_definition['id']
71
+ if reward_card_definition_id.nil?
72
+ raise "create_card_definition (reward target) returned no id: #{reward_card_definition.inspect}"
73
+ end
74
+
75
+ LoyaltyV2Http.activate_card_definition(reward_card_definition_id)
76
+
77
+ earning_rule = LoyaltyV2Http.create_earning_rule(
78
+ name: earning_rule_name,
79
+ status: 'DRAFT',
80
+ trigger: {
81
+ event: 'customer.order.paid'
82
+ },
83
+ earnings: [
84
+ {
85
+ effects: [
86
+ {
87
+ type: 'POINTS',
88
+ points: {
89
+ value: 100,
90
+ card_definition_id: card_definition_id
91
+ }
92
+ }
93
+ ]
94
+ }
95
+ ]
96
+ )
97
+ earning_rule_id = earning_rule && earning_rule['id']
98
+ raise "create_earning_rule returned no id: #{earning_rule.inspect}" if earning_rule_id.nil?
99
+
100
+ LoyaltyV2Http.activate_earning_rule(earning_rule_id)
101
+
102
+ reward = LoyaltyV2Http.create_reward(
103
+ name: reward_name,
104
+ type: 'DIGITAL',
105
+ status: 'DRAFT',
106
+ material: nil,
107
+ digital: {
108
+ type: 'LOYALTY_CARD_POINTS',
109
+ discount_coupons: nil,
110
+ gift_vouchers: nil,
111
+ loyalty_card_points: {
112
+ points: 5,
113
+ card_definition_id: reward_card_definition_id
114
+ }
115
+ },
116
+ costs: [
117
+ {
118
+ spending: [
119
+ {
120
+ points: 10,
121
+ card_definition_id: card_definition_id
122
+ }
123
+ ]
124
+ }
125
+ ]
126
+ )
127
+ reward_id = reward && reward['id']
128
+ raise "create_reward returned no id: #{reward.inspect}" if reward_id.nil?
129
+
130
+ LoyaltyV2Http.activate_reward(reward_id)
131
+
132
+ LoyaltyV2Http.batch_assign_card_definitions(
133
+ program_id,
134
+ assign: [{ id: card_definition_id }, { id: reward_card_definition_id }]
135
+ )
136
+ LoyaltyV2Http.batch_assign_earning_rules(
137
+ program_id,
138
+ assign: [{ id: earning_rule_id }]
139
+ )
140
+ LoyaltyV2Http.batch_assign_rewards(
141
+ program_id,
142
+ assign: [{ id: reward_id, stock: { type: 'UNLIMITED' } }]
143
+ )
144
+
145
+ LoyaltyV2Http.activate_program(program_id)
146
+
147
+ Context.new(
148
+ suffix: suffix,
149
+ program_id: program_id,
150
+ card_definition_id: card_definition_id,
151
+ reward_card_definition_id: reward_card_definition_id,
152
+ earning_rule_id: earning_rule_id,
153
+ reward_id: reward_id,
154
+ program_name: program_name
155
+ )
156
+ end
157
+
158
+ # Cleanup matrix (what the API allows):
159
+ # - Program: deactivate → delete (delete soft-removes assignments).
160
+ # - Earning rule / reward: deactivate → delete.
161
+ # - Card definitions: delete after program + reward are gone.
162
+ # Drafting while still assigned to a non-draft program/reward returns 423.
163
+ def teardown(ctx)
164
+ return if ctx.nil?
165
+
166
+ ignore('deactivate_program') { LoyaltyV2Http.deactivate_program(ctx.program_id) } if ctx.program_id
167
+ ignore('delete_program') { LoyaltyV2Http.delete_program(ctx.program_id) } if ctx.program_id
168
+
169
+ if ctx.earning_rule_id
170
+ ignore('deactivate_earning_rule') { LoyaltyV2Http.deactivate_earning_rule(ctx.earning_rule_id) }
171
+ end
172
+ if ctx.reward_id
173
+ ignore('deactivate_reward') { LoyaltyV2Http.deactivate_reward(ctx.reward_id) }
174
+ end
175
+
176
+ sleep 0.5
177
+
178
+ if ctx.earning_rule_id
179
+ ignore('delete_earning_rule') { LoyaltyV2Http.delete_earning_rule(ctx.earning_rule_id) }
180
+ end
181
+ if ctx.reward_id
182
+ ignore('delete_reward') { LoyaltyV2Http.delete_reward(ctx.reward_id) }
183
+ end
184
+ [ctx.card_definition_id, ctx.reward_card_definition_id].each do |card_id|
185
+ next if card_id.nil?
186
+
187
+ ignore("delete_card_definition #{card_id}") { LoyaltyV2Http.delete_card_definition(card_id) }
188
+ end
189
+ end
190
+
191
+ def ignore(label)
192
+ yield
193
+ rescue LoyaltyV2Http::Error => e
194
+ return if e.status == 404
195
+
196
+ warn "Loyalty v2 teardown #{label}: #{e.message}"
197
+ end
198
+ private_class_method :ignore
199
+ end
@@ -0,0 +1,209 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'json'
4
+ require 'net/http'
5
+ require 'uri'
6
+
7
+ # Authenticated HTTP helper for Loyalty v2 paths that are not published in the
8
+ # Ruby SDK. Runtime member flows should use LV2*Api.
9
+ # Credentials come from ENV (Config loads dotenv in the RSpec suite).
10
+ module LoyaltyV2Http
11
+ class Error < StandardError
12
+ attr_reader :status, :body
13
+
14
+ def initialize(message, status:, body: nil)
15
+ super(message)
16
+ @status = status
17
+ @body = body
18
+ end
19
+ end
20
+
21
+ module_function
22
+
23
+ def base_url
24
+ (ENV['VOUCHERIFY_HOST'] || 'https://api.voucherify.io')
25
+ .to_s
26
+ .strip
27
+ .sub(%r{/+\z}, '')
28
+ .sub(%r{/v1\z}i, '')
29
+ end
30
+
31
+ def auth_headers
32
+ app_id = ENV['X_APP_ID']
33
+ app_token = ENV['X_APP_TOKEN']
34
+ if app_id.to_s.empty? || app_token.to_s.empty?
35
+ raise 'X-App-Id and X-App-Token are required for Loyalty v2 HTTP calls.'
36
+ end
37
+
38
+ {
39
+ 'X-App-Id' => app_id,
40
+ 'X-App-Token' => app_token,
41
+ 'Content-Type' => 'application/json',
42
+ 'Accept' => 'application/json'
43
+ }
44
+ end
45
+
46
+ def build_uri(path, query = nil)
47
+ absolute = path.start_with?('http') ? path : "#{base_url}#{path.start_with?('/') ? path : "/#{path}"}"
48
+ uri = URI(absolute)
49
+ if query.is_a?(Hash) && !query.empty?
50
+ params = []
51
+ query.each do |key, value|
52
+ next if value.nil?
53
+
54
+ if value.is_a?(Array)
55
+ value.each { |item| params << [key.to_s, item.to_s] }
56
+ else
57
+ params << [key.to_s, value.to_s]
58
+ end
59
+ end
60
+ uri.query = URI.encode_www_form(params) unless params.empty?
61
+ end
62
+ uri
63
+ end
64
+
65
+ # CI app keys allow 100 calls per hour. Setup needs headroom after the rest of the suite.
66
+ def rate_limit_remaining
67
+ uri = URI("#{base_url}/v1/products?limit=1")
68
+ http = Net::HTTP.new(uri.host, uri.port)
69
+ http.use_ssl = uri.scheme == 'https'
70
+ req = Net::HTTP::Get.new(uri)
71
+ auth_headers.each { |key, value| req[key] = value }
72
+ response = http.request(req)
73
+ response['x-rate-limit-remaining'].to_i
74
+ end
75
+
76
+ def request(method, path, body = nil, query = nil)
77
+ uri = build_uri(path, query)
78
+ http = Net::HTTP.new(uri.host, uri.port)
79
+ http.use_ssl = uri.scheme == 'https'
80
+
81
+ verb = method.to_s.upcase
82
+ req_class = {
83
+ 'GET' => Net::HTTP::Get,
84
+ 'POST' => Net::HTTP::Post,
85
+ 'PUT' => Net::HTTP::Put,
86
+ 'DELETE' => Net::HTTP::Delete,
87
+ 'PATCH' => Net::HTTP::Patch
88
+ }.fetch(verb) { raise ArgumentError, "Unsupported HTTP method: #{verb}" }
89
+
90
+ req = req_class.new(uri)
91
+ auth_headers.each { |key, value| req[key] = value }
92
+ req.body = JSON.generate(body) unless body.nil?
93
+
94
+ response = http.request(req)
95
+ text = response.body.to_s
96
+ data =
97
+ if text.empty?
98
+ nil
99
+ else
100
+ begin
101
+ JSON.parse(text)
102
+ rescue JSON::ParserError
103
+ text
104
+ end
105
+ end
106
+
107
+ code = response.code.to_i
108
+ unless (200..299).cover?(code)
109
+ excerpt =
110
+ if data.is_a?(String)
111
+ data[0, 500]
112
+ else
113
+ JSON.generate(data)[0, 500]
114
+ end
115
+ raise Error.new(
116
+ "Loyalty v2 HTTP #{verb} #{path} failed: #{code} #{excerpt}",
117
+ status: code,
118
+ body: data
119
+ )
120
+ end
121
+
122
+ data
123
+ end
124
+
125
+ def create_program(body)
126
+ request('POST', '/v2/loyalties/programs', body)
127
+ end
128
+
129
+ def get_program(program_id)
130
+ request('GET', "/v2/loyalties/programs/#{program_id}")
131
+ end
132
+
133
+ def update_program(program_id, body)
134
+ request('PUT', "/v2/loyalties/programs/#{program_id}", body)
135
+ end
136
+
137
+ def activate_program(program_id)
138
+ request('POST', "/v2/loyalties/programs/#{program_id}/activate")
139
+ end
140
+
141
+ def deactivate_program(program_id)
142
+ request('POST', "/v2/loyalties/programs/#{program_id}/deactivate")
143
+ end
144
+
145
+ def delete_program(program_id)
146
+ request('DELETE', "/v2/loyalties/programs/#{program_id}")
147
+ end
148
+
149
+ def create_card_definition(body)
150
+ request('POST', '/v2/loyalties/card-definitions', body)
151
+ end
152
+
153
+ def activate_card_definition(card_definition_id)
154
+ request('POST', "/v2/loyalties/card-definitions/#{card_definition_id}/activate")
155
+ end
156
+
157
+ # Card definitions have no deactivate path; draft returns them to editable state.
158
+ def draft_card_definition(card_definition_id)
159
+ request('POST', "/v2/loyalties/card-definitions/#{card_definition_id}/draft")
160
+ end
161
+
162
+ def delete_card_definition(card_definition_id)
163
+ request('DELETE', "/v2/loyalties/card-definitions/#{card_definition_id}")
164
+ end
165
+
166
+ def create_earning_rule(body)
167
+ request('POST', '/v2/loyalties/earning-rules', body)
168
+ end
169
+
170
+ def activate_earning_rule(earning_rule_id)
171
+ request('POST', "/v2/loyalties/earning-rules/#{earning_rule_id}/activate")
172
+ end
173
+
174
+ def deactivate_earning_rule(earning_rule_id)
175
+ request('POST', "/v2/loyalties/earning-rules/#{earning_rule_id}/deactivate")
176
+ end
177
+
178
+ def delete_earning_rule(earning_rule_id)
179
+ request('DELETE', "/v2/loyalties/earning-rules/#{earning_rule_id}")
180
+ end
181
+
182
+ def create_reward(body)
183
+ request('POST', '/v2/loyalties/rewards', body)
184
+ end
185
+
186
+ def activate_reward(reward_id)
187
+ request('POST', "/v2/loyalties/rewards/#{reward_id}/activate")
188
+ end
189
+
190
+ def deactivate_reward(reward_id)
191
+ request('POST', "/v2/loyalties/rewards/#{reward_id}/deactivate")
192
+ end
193
+
194
+ def delete_reward(reward_id)
195
+ request('DELETE', "/v2/loyalties/rewards/#{reward_id}")
196
+ end
197
+
198
+ def batch_assign_card_definitions(program_id, body)
199
+ request('POST', "/v2/loyalties/programs/#{program_id}/card-definitions/batch", body)
200
+ end
201
+
202
+ def batch_assign_earning_rules(program_id, body)
203
+ request('POST', "/v2/loyalties/programs/#{program_id}/earning-rules/batch", body)
204
+ end
205
+
206
+ def batch_assign_rewards(program_id, body)
207
+ request('POST', "/v2/loyalties/programs/#{program_id}/rewards/batch", body)
208
+ end
209
+ end
@@ -14,7 +14,12 @@ RSpec.describe 'Management API', :order => :defined do
14
14
 
15
15
  it 'list projects', :order => :first do
16
16
  projects_response = @management_api_instance.list_projects()
17
- project_from_response = projects_response.data&.first
17
+ project_from_response =
18
+ if ENV['PROJECT_ID'].to_s != ''
19
+ projects_response.data&.find { |project| project.id == ENV['PROJECT_ID'] }
20
+ end
21
+ project_from_response ||= projects_response.data&.find { |project| project.cluster_id == 'dev2' }
22
+ project_from_response ||= projects_response.data&.first
18
23
 
19
24
  $management_project_id = project_from_response&.id
20
25