From 1d3ce16f65d5553e52ed980e6c39be0c087b71ac Mon Sep 17 00:00:00 2001 From: Talon-One SDK Generator Date: Fri, 16 Jan 2026 13:16:55 +0000 Subject: [PATCH] update to 14.1.1 --- README.md | 37 +- api/openapi.yaml | 2419 ++++++++++++++--- build.gradle | 2 +- build.sbt | 2 +- docs/ActivateLoyaltyPoints.md | 14 + docs/ActivateLoyaltyPointsResponse.md | 12 + docs/AddLoyaltyPoints.md | 2 +- docs/AddLoyaltyPointsEffectProps.md | 2 + docs/AddedDeductedPointsBalancesAction.md | 25 + ...AddedDeductedPointsBalancesNotification.md | 39 + docs/AddedDeductedPointsNotification.md | 32 +- docs/AsyncCouponsData.md | 10 +- docs/BestPriorPriceRequest.md | 4 +- docs/BestPriorTarget.md | 23 + docs/CampaignCollectionEditedNotification.md | 10 +- docs/CampaignCreatedNotification.md | 10 +- docs/CampaignDeletedNotification.md | 10 +- docs/CampaignEditedNotification.md | 10 +- docs/CampaignEvaluationTreeChangedMessage.md | 10 +- docs/CampaignLogSummary.md | 27 + docs/CampaignNotificationBase.md | 10 +- docs/CampaignNotificationGeneric.md | 10 +- docs/CampaignRulesetChangedNotification.md | 10 +- docs/CampaignStateChangedNotification.md | 10 +- docs/CampaignTemplate.md | 1 + docs/CampaignTemplateParams.md | 1 + ...AddedDeductedPointsBalancesNotification.md | 41 + docs/CardAddedDeductedPointsNotification.md | 36 +- docs/CardLedgerPointsEntryIntegrationAPI.md | 1 + ...LedgerTransactionLogEntryIntegrationAPI.md | 3 +- docs/CouponFailureSummary.md | 23 + docs/CouponRejections.md | 14 + docs/CouponsNotificationData.md | 11 +- docs/CreateCouponData.md | 10 +- docs/DeleteCouponsData.md | 10 +- docs/DeleteLoyaltyTransactionsRequest.md | 23 + docs/EventV3.md | 19 + docs/GenerateCampaignSummary.md | 14 + docs/IntegrationApi.md | 186 +- docs/IntegrationEventV3Request.md | 34 + docs/IntegrationEventV3Response.md | 21 + docs/IntegrationProfileEntityV3.md | 12 + docs/LedgerPointsEntryIntegrationAPI.md | 1 + ...LedgerTransactionLogEntryIntegrationAPI.md | 3 +- docs/LoyaltyLedgerEntry.md | 1 + docs/LoyaltyProgram.md | 1 - docs/LoyaltyProgramTransaction.md | 3 +- docs/ManagementApi.md | 238 +- docs/ManagementKey.md | 1 + docs/NewManagementKey.md | 1 + docs/NewMessageTest.md | 1 + docs/PrismaticConfig.md | 14 + ...ticEventPayloadCouponBasedNotifications.md | 31 + ...ntPayloadCouponBasedNotificationsLimits.md | 15 + ...PayloadLoyaltyProfileBasedNotifications.md | 26 + ...dLoyaltyProfileBasedNotificationsAction.md | 25 + docs/PrismaticFlow.md | 14 + docs/PrismaticFlowConfig.md | 12 + docs/PrismaticFlowWithConfig.md | 15 + docs/PrismaticPaginatedEventPayload.md | 27 + docs/ReturnedCartItem.md | 3 +- docs/RoleV2.md | 1 + docs/RoleV2Readonly.md | 12 + docs/SessionCoupons.md | 13 + docs/StrikethroughLabelingNotification.md | 11 +- ...oughSetDiscountPerItemMemberEffectProps.md | 14 + docs/UpdateCouponsData.md | 10 +- pom.xml | 2 +- src/main/java/one/talon/ApiClient.java | 2 +- .../java/one/talon/api/IntegrationApi.java | 364 ++- .../java/one/talon/api/ManagementApi.java | 513 +++- .../talon/model/ActivateLoyaltyPoints.java | 140 + .../model/ActivateLoyaltyPointsResponse.java | 110 + .../one/talon/model/AddLoyaltyPoints.java | 4 +- .../model/AddLoyaltyPointsEffectProps.java | 62 +- .../AddedDeductedPointsBalancesAction.java | 261 ++ ...dedDeductedPointsBalancesNotification.java | 454 ++++ .../AddedDeductedPointsNotification.java | 381 ++- .../one/talon/model/AsyncCouponsData.java | 53 +- .../talon/model/BestPriorPriceRequest.java | 18 +- .../java/one/talon/model/BestPriorTarget.java | 175 ++ .../CampaignCollectionEditedNotification.java | 53 +- .../model/CampaignCreatedNotification.java | 53 +- .../model/CampaignDeletedNotification.java | 53 +- .../model/CampaignEditedNotification.java | 53 +- .../CampaignEvaluationTreeChangedMessage.java | 53 +- .../one/talon/model/CampaignLogSummary.java | 261 ++ .../talon/model/CampaignNotificationBase.java | 53 +- .../model/CampaignNotificationGeneric.java | 53 +- .../CampaignRulesetChangedNotification.java | 53 +- .../CampaignStateChangedNotification.java | 53 +- .../one/talon/model/CampaignTemplate.java | 31 +- .../talon/model/CampaignTemplateParams.java | 2 + ...dedDeductedPointsBalancesNotification.java | 515 ++++ .../CardAddedDeductedPointsNotification.java | 443 ++- .../CardLedgerPointsEntryIntegrationAPI.java | 33 +- ...dgerTransactionLogEntryIntegrationAPI.java | 37 +- .../one/talon/model/CouponFailureSummary.java | 382 +++ .../one/talon/model/CouponRejections.java | 163 ++ .../talon/model/CouponsNotificationData.java | 55 +- .../one/talon/model/CreateCouponData.java | 53 +- .../one/talon/model/DeleteCouponsData.java | 53 +- .../DeleteLoyaltyTransactionsRequest.java | 185 ++ src/main/java/one/talon/model/EventV3.java | 309 +++ .../talon/model/GenerateCampaignSummary.java | 154 ++ .../model/IntegrationEventV3Request.java | 438 +++ .../model/IntegrationEventV3Response.java | 379 +++ .../model/IntegrationProfileEntityV3.java | 98 + .../LedgerPointsEntryIntegrationAPI.java | 33 +- ...dgerTransactionLogEntryIntegrationAPI.java | 37 +- .../one/talon/model/LoyaltyLedgerEntry.java | 33 +- .../java/one/talon/model/LoyaltyProgram.java | 31 +- .../model/LoyaltyProgramTransaction.java | 37 +- .../java/one/talon/model/ManagementKey.java | 33 +- .../one/talon/model/NewManagementKey.java | 31 +- .../java/one/talon/model/NewMessageTest.java | 33 +- .../java/one/talon/model/PrismaticConfig.java | 127 + ...cEventPayloadCouponBasedNotifications.java | 654 +++++ ...PayloadCouponBasedNotificationsLimits.java | 190 ++ ...yloadLoyaltyProfileBasedNotifications.java | 512 ++++ ...oyaltyProfileBasedNotificationsAction.java | 261 ++ .../java/one/talon/model/PrismaticFlow.java | 155 ++ .../one/talon/model/PrismaticFlowConfig.java | 98 + .../talon/model/PrismaticFlowWithConfig.java | 184 ++ .../model/PrismaticPaginatedEventPayload.java | 216 ++ .../one/talon/model/ReturnedCartItem.java | 36 +- src/main/java/one/talon/model/RoleV2.java | 33 +- .../java/one/talon/model/RoleV2Readonly.java | 99 + .../java/one/talon/model/SessionCoupons.java | 127 + .../talon/model/StrikethroughChangedItem.java | 2 +- .../StrikethroughLabelingNotification.java | 89 +- ...ghSetDiscountPerItemMemberEffectProps.java | 127 + .../one/talon/model/UpdateCouponsData.java | 53 +- .../one/talon/api/IntegrationApiTest.java | 47 +- .../java/one/talon/api/ManagementApiTest.java | 66 +- .../ActivateLoyaltyPointsResponseTest.java | 54 + .../model/ActivateLoyaltyPointsTest.java | 62 + .../AddLoyaltyPointsEffectPropsTest.java | 16 + ...AddedDeductedPointsBalancesActionTest.java | 85 + ...eductedPointsBalancesNotificationTest.java | 127 + .../AddedDeductedPointsNotificationTest.java | 66 +- .../model/BestPriorPriceRequestTest.java | 2 +- .../one/talon/model/BestPriorTargetTest.java | 59 + .../talon/model/CampaignLogSummaryTest.java | 84 + .../one/talon/model/CampaignTemplateTest.java | 8 + ...eductedPointsBalancesNotificationTest.java | 143 + ...rdAddedDeductedPointsNotificationTest.java | 82 +- ...rdLedgerPointsEntryIntegrationAPITest.java | 8 + ...TransactionLogEntryIntegrationAPITest.java | 8 + .../talon/model/CouponFailureSummaryTest.java | 132 + .../one/talon/model/CouponRejectionsTest.java | 70 + .../DeleteLoyaltyTransactionsRequestTest.java | 61 + .../java/one/talon/model/EventV3Test.java | 109 + .../model/GenerateCampaignSummaryTest.java | 67 + .../model/IntegrationEventV3RequestTest.java | 125 + .../model/IntegrationEventV3ResponseTest.java | 126 + .../model/IntegrationProfileEntityV3Test.java | 51 + .../LedgerPointsEntryIntegrationAPITest.java | 8 + ...TransactionLogEntryIntegrationAPITest.java | 8 + .../talon/model/LoyaltyLedgerEntryTest.java | 8 + .../one/talon/model/LoyaltyProgramTest.java | 8 - .../model/LoyaltyProgramTransactionTest.java | 8 + .../one/talon/model/ManagementKeyTest.java | 8 + .../one/talon/model/NewManagementKeyTest.java | 8 + .../one/talon/model/NewMessageTestTest.java | 8 + .../one/talon/model/PrismaticConfigTest.java | 59 + ...oadCouponBasedNotificationsLimitsTest.java | 77 + ...ntPayloadCouponBasedNotificationsTest.java | 207 ++ ...tyProfileBasedNotificationsActionTest.java | 84 + ...dLoyaltyProfileBasedNotificationsTest.java | 167 ++ .../talon/model/PrismaticFlowConfigTest.java | 51 + .../one/talon/model/PrismaticFlowTest.java | 67 + .../model/PrismaticFlowWithConfigTest.java | 76 + .../PrismaticPaginatedEventPayloadTest.java | 69 + .../one/talon/model/ReturnedCartItemTest.java | 8 + .../one/talon/model/RoleV2ReadonlyTest.java | 51 + src/test/java/one/talon/model/RoleV2Test.java | 8 + .../one/talon/model/SessionCouponsTest.java | 59 + ...StrikethroughLabelingNotificationTest.java | 8 + ...tDiscountPerItemMemberEffectPropsTest.java | 59 + 180 files changed, 15069 insertions(+), 1234 deletions(-) create mode 100644 docs/ActivateLoyaltyPoints.md create mode 100644 docs/ActivateLoyaltyPointsResponse.md create mode 100644 docs/AddedDeductedPointsBalancesAction.md create mode 100644 docs/AddedDeductedPointsBalancesNotification.md create mode 100644 docs/BestPriorTarget.md create mode 100644 docs/CampaignLogSummary.md create mode 100644 docs/CardAddedDeductedPointsBalancesNotification.md create mode 100644 docs/CouponFailureSummary.md create mode 100644 docs/CouponRejections.md create mode 100644 docs/DeleteLoyaltyTransactionsRequest.md create mode 100644 docs/EventV3.md create mode 100644 docs/GenerateCampaignSummary.md create mode 100644 docs/IntegrationEventV3Request.md create mode 100644 docs/IntegrationEventV3Response.md create mode 100644 docs/IntegrationProfileEntityV3.md create mode 100644 docs/PrismaticConfig.md create mode 100644 docs/PrismaticEventPayloadCouponBasedNotifications.md create mode 100644 docs/PrismaticEventPayloadCouponBasedNotificationsLimits.md create mode 100644 docs/PrismaticEventPayloadLoyaltyProfileBasedNotifications.md create mode 100644 docs/PrismaticEventPayloadLoyaltyProfileBasedNotificationsAction.md create mode 100644 docs/PrismaticFlow.md create mode 100644 docs/PrismaticFlowConfig.md create mode 100644 docs/PrismaticFlowWithConfig.md create mode 100644 docs/PrismaticPaginatedEventPayload.md create mode 100644 docs/RoleV2Readonly.md create mode 100644 docs/SessionCoupons.md create mode 100644 docs/StrikethroughSetDiscountPerItemMemberEffectProps.md create mode 100644 src/main/java/one/talon/model/ActivateLoyaltyPoints.java create mode 100644 src/main/java/one/talon/model/ActivateLoyaltyPointsResponse.java create mode 100644 src/main/java/one/talon/model/AddedDeductedPointsBalancesAction.java create mode 100644 src/main/java/one/talon/model/AddedDeductedPointsBalancesNotification.java create mode 100644 src/main/java/one/talon/model/BestPriorTarget.java create mode 100644 src/main/java/one/talon/model/CampaignLogSummary.java create mode 100644 src/main/java/one/talon/model/CardAddedDeductedPointsBalancesNotification.java create mode 100644 src/main/java/one/talon/model/CouponFailureSummary.java create mode 100644 src/main/java/one/talon/model/CouponRejections.java create mode 100644 src/main/java/one/talon/model/DeleteLoyaltyTransactionsRequest.java create mode 100644 src/main/java/one/talon/model/EventV3.java create mode 100644 src/main/java/one/talon/model/GenerateCampaignSummary.java create mode 100644 src/main/java/one/talon/model/IntegrationEventV3Request.java create mode 100644 src/main/java/one/talon/model/IntegrationEventV3Response.java create mode 100644 src/main/java/one/talon/model/IntegrationProfileEntityV3.java create mode 100644 src/main/java/one/talon/model/PrismaticConfig.java create mode 100644 src/main/java/one/talon/model/PrismaticEventPayloadCouponBasedNotifications.java create mode 100644 src/main/java/one/talon/model/PrismaticEventPayloadCouponBasedNotificationsLimits.java create mode 100644 src/main/java/one/talon/model/PrismaticEventPayloadLoyaltyProfileBasedNotifications.java create mode 100644 src/main/java/one/talon/model/PrismaticEventPayloadLoyaltyProfileBasedNotificationsAction.java create mode 100644 src/main/java/one/talon/model/PrismaticFlow.java create mode 100644 src/main/java/one/talon/model/PrismaticFlowConfig.java create mode 100644 src/main/java/one/talon/model/PrismaticFlowWithConfig.java create mode 100644 src/main/java/one/talon/model/PrismaticPaginatedEventPayload.java create mode 100644 src/main/java/one/talon/model/RoleV2Readonly.java create mode 100644 src/main/java/one/talon/model/SessionCoupons.java create mode 100644 src/main/java/one/talon/model/StrikethroughSetDiscountPerItemMemberEffectProps.java create mode 100644 src/test/java/one/talon/model/ActivateLoyaltyPointsResponseTest.java create mode 100644 src/test/java/one/talon/model/ActivateLoyaltyPointsTest.java create mode 100644 src/test/java/one/talon/model/AddedDeductedPointsBalancesActionTest.java create mode 100644 src/test/java/one/talon/model/AddedDeductedPointsBalancesNotificationTest.java create mode 100644 src/test/java/one/talon/model/BestPriorTargetTest.java create mode 100644 src/test/java/one/talon/model/CampaignLogSummaryTest.java create mode 100644 src/test/java/one/talon/model/CardAddedDeductedPointsBalancesNotificationTest.java create mode 100644 src/test/java/one/talon/model/CouponFailureSummaryTest.java create mode 100644 src/test/java/one/talon/model/CouponRejectionsTest.java create mode 100644 src/test/java/one/talon/model/DeleteLoyaltyTransactionsRequestTest.java create mode 100644 src/test/java/one/talon/model/EventV3Test.java create mode 100644 src/test/java/one/talon/model/GenerateCampaignSummaryTest.java create mode 100644 src/test/java/one/talon/model/IntegrationEventV3RequestTest.java create mode 100644 src/test/java/one/talon/model/IntegrationEventV3ResponseTest.java create mode 100644 src/test/java/one/talon/model/IntegrationProfileEntityV3Test.java create mode 100644 src/test/java/one/talon/model/PrismaticConfigTest.java create mode 100644 src/test/java/one/talon/model/PrismaticEventPayloadCouponBasedNotificationsLimitsTest.java create mode 100644 src/test/java/one/talon/model/PrismaticEventPayloadCouponBasedNotificationsTest.java create mode 100644 src/test/java/one/talon/model/PrismaticEventPayloadLoyaltyProfileBasedNotificationsActionTest.java create mode 100644 src/test/java/one/talon/model/PrismaticEventPayloadLoyaltyProfileBasedNotificationsTest.java create mode 100644 src/test/java/one/talon/model/PrismaticFlowConfigTest.java create mode 100644 src/test/java/one/talon/model/PrismaticFlowTest.java create mode 100644 src/test/java/one/talon/model/PrismaticFlowWithConfigTest.java create mode 100644 src/test/java/one/talon/model/PrismaticPaginatedEventPayloadTest.java create mode 100644 src/test/java/one/talon/model/RoleV2ReadonlyTest.java create mode 100644 src/test/java/one/talon/model/SessionCouponsTest.java create mode 100644 src/test/java/one/talon/model/StrikethroughSetDiscountPerItemMemberEffectPropsTest.java diff --git a/README.md b/README.md index c840cc1e..5e4f43aa 100644 --- a/README.md +++ b/README.md @@ -35,7 +35,7 @@ Add this dependency to your project's POM: one.talon talon-one-client - 14.1.0 + 14.1.1 compile ``` @@ -45,7 +45,7 @@ Add this dependency to your project's POM: Add this dependency to your project's build file: ```groovy -compile "one.talon:talon-one-client:14.1.0" +compile "one.talon:talon-one-client:14.1.1" ``` ### Others @@ -191,6 +191,7 @@ All URLs are relative to `https://yourbaseurl.talon.one`. Class | Method | HTTP request | Description ------------ | ------------- | ------------- | ------------- +*IntegrationApi* | [**activateLoyaltyPoints**](docs/IntegrationApi.md#activateLoyaltyPoints) | **POST** /v1/loyalty_programs/{loyaltyProgramId}/activate_points | Activate loyalty points *IntegrationApi* | [**bestPriorPrice**](docs/IntegrationApi.md#bestPriorPrice) | **POST** /v1/best_prior_price | Fetch best prior price *IntegrationApi* | [**createAudienceV2**](docs/IntegrationApi.md#createAudienceV2) | **POST** /v2/audiences | Create audience *IntegrationApi* | [**createCouponReservation**](docs/IntegrationApi.md#createCouponReservation) | **POST** /v1/coupon_reservations/{couponValue} | Create coupon reservation @@ -217,6 +218,7 @@ Class | Method | HTTP request | Description *IntegrationApi* | [**returnCartItems**](docs/IntegrationApi.md#returnCartItems) | **POST** /v2/customer_sessions/{customerSessionId}/returns | Return cart items *IntegrationApi* | [**syncCatalog**](docs/IntegrationApi.md#syncCatalog) | **PUT** /v1/catalogs/{catalogId}/sync | Sync cart item catalog *IntegrationApi* | [**trackEventV2**](docs/IntegrationApi.md#trackEventV2) | **POST** /v2/events | Track event +*IntegrationApi* | [**unlinkLoyaltyCardFromProfile**](docs/IntegrationApi.md#unlinkLoyaltyCardFromProfile) | **POST** /v2/loyalty_programs/{loyaltyProgramId}/cards/{loyaltyCardId}/unlink_profile | Unlink customer profile from a loyalty card *IntegrationApi* | [**updateAudienceCustomersAttributes**](docs/IntegrationApi.md#updateAudienceCustomersAttributes) | **PUT** /v2/audience_customers/{audienceId}/attributes | Update profile attributes for all customers in audience *IntegrationApi* | [**updateAudienceV2**](docs/IntegrationApi.md#updateAudienceV2) | **PUT** /v2/audiences/{audienceId} | Update audience name *IntegrationApi* | [**updateCustomerProfileAudiences**](docs/IntegrationApi.md#updateCustomerProfileAudiences) | **POST** /v2/customer_audiences | Update multiple customer profiles' audiences @@ -325,8 +327,10 @@ Class | Method | HTTP request | Description *ManagementApi* | [**getLoyaltyCard**](docs/ManagementApi.md#getLoyaltyCard) | **GET** /v1/loyalty_programs/{loyaltyProgramId}/cards/{loyaltyCardId} | Get loyalty card *ManagementApi* | [**getLoyaltyCardTransactionLogs**](docs/ManagementApi.md#getLoyaltyCardTransactionLogs) | **GET** /v1/loyalty_programs/{loyaltyProgramId}/cards/{loyaltyCardId}/logs | List card's transactions *ManagementApi* | [**getLoyaltyCards**](docs/ManagementApi.md#getLoyaltyCards) | **GET** /v1/loyalty_programs/{loyaltyProgramId}/cards | List loyalty cards +*ManagementApi* | [**getLoyaltyLedgerBalances**](docs/ManagementApi.md#getLoyaltyLedgerBalances) | **GET** /v1/loyalty_programs/{loyaltyProgramId}/profile/{integrationId}/ledger_balances | Get customer's loyalty balances *ManagementApi* | [**getLoyaltyPoints**](docs/ManagementApi.md#getLoyaltyPoints) | **GET** /v1/loyalty_programs/{loyaltyProgramId}/profile/{integrationId} | Get customer's full loyalty ledger *ManagementApi* | [**getLoyaltyProgram**](docs/ManagementApi.md#getLoyaltyProgram) | **GET** /v1/loyalty_programs/{loyaltyProgramId} | Get loyalty program +*ManagementApi* | [**getLoyaltyProgramProfileLedgerTransactions**](docs/ManagementApi.md#getLoyaltyProgramProfileLedgerTransactions) | **GET** /v1/loyalty_programs/{loyaltyProgramId}/profile/{integrationId}/ledger_transactions | List customer's loyalty transactions *ManagementApi* | [**getLoyaltyProgramTransactions**](docs/ManagementApi.md#getLoyaltyProgramTransactions) | **GET** /v1/loyalty_programs/{loyaltyProgramId}/transactions | List loyalty program transactions *ManagementApi* | [**getLoyaltyPrograms**](docs/ManagementApi.md#getLoyaltyPrograms) | **GET** /v1/loyalty_programs | List loyalty programs *ManagementApi* | [**getLoyaltyStatistics**](docs/ManagementApi.md#getLoyaltyStatistics) | **GET** /v1/loyalty_programs/{loyaltyProgramId}/statistics | Get loyalty program statistics @@ -420,12 +424,16 @@ Class | Method | HTTP request | Description - [AchievementProgress](docs/AchievementProgress.md) - [AchievementProgressWithDefinition](docs/AchievementProgressWithDefinition.md) - [AchievementStatusEntry](docs/AchievementStatusEntry.md) +- [ActivateLoyaltyPoints](docs/ActivateLoyaltyPoints.md) +- [ActivateLoyaltyPointsResponse](docs/ActivateLoyaltyPointsResponse.md) - [AddFreeItemEffectProps](docs/AddFreeItemEffectProps.md) - [AddItemCatalogAction](docs/AddItemCatalogAction.md) - [AddLoyaltyPoints](docs/AddLoyaltyPoints.md) - [AddLoyaltyPointsEffectProps](docs/AddLoyaltyPointsEffectProps.md) - [AddPriceAdjustmentCatalogAction](docs/AddPriceAdjustmentCatalogAction.md) - [AddToAudienceEffectProps](docs/AddToAudienceEffectProps.md) +- [AddedDeductedPointsBalancesAction](docs/AddedDeductedPointsBalancesAction.md) +- [AddedDeductedPointsBalancesNotification](docs/AddedDeductedPointsBalancesNotification.md) - [AddedDeductedPointsBalancesNotificationPolicy](docs/AddedDeductedPointsBalancesNotificationPolicy.md) - [AddedDeductedPointsNotification](docs/AddedDeductedPointsNotification.md) - [AddedDeductedPointsNotificationPolicy](docs/AddedDeductedPointsNotificationPolicy.md) @@ -478,7 +486,7 @@ Class | Method | HTTP request | Description - [BestPriorPrice](docs/BestPriorPrice.md) - [BestPriorPriceMetadata](docs/BestPriorPriceMetadata.md) - [BestPriorPriceRequest](docs/BestPriorPriceRequest.md) -- [BestPriorPriceRequestTarget](docs/BestPriorPriceRequestTarget.md) +- [BestPriorTarget](docs/BestPriorTarget.md) - [Binding](docs/Binding.md) - [BulkApplicationNotification](docs/BulkApplicationNotification.md) - [BulkOperationOnCampaigns](docs/BulkOperationOnCampaigns.md) @@ -506,6 +514,7 @@ Class | Method | HTTP request | Description - [CampaignEvaluationTreeChangedNotification](docs/CampaignEvaluationTreeChangedNotification.md) - [CampaignGroup](docs/CampaignGroup.md) - [CampaignGroupEntity](docs/CampaignGroupEntity.md) +- [CampaignLogSummary](docs/CampaignLogSummary.md) - [CampaignNotificationBase](docs/CampaignNotificationBase.md) - [CampaignNotificationGeneric](docs/CampaignNotificationGeneric.md) - [CampaignNotificationItemBase](docs/CampaignNotificationItemBase.md) @@ -526,6 +535,7 @@ Class | Method | HTTP request | Description - [CampaignTemplateCouponReservationSettings](docs/CampaignTemplateCouponReservationSettings.md) - [CampaignTemplateParams](docs/CampaignTemplateParams.md) - [CampaignVersions](docs/CampaignVersions.md) +- [CardAddedDeductedPointsBalancesNotification](docs/CardAddedDeductedPointsBalancesNotification.md) - [CardAddedDeductedPointsBalancesNotificationPolicy](docs/CardAddedDeductedPointsBalancesNotificationPolicy.md) - [CardAddedDeductedPointsNotification](docs/CardAddedDeductedPointsNotification.md) - [CardAddedDeductedPointsNotificationPolicy](docs/CardAddedDeductedPointsNotificationPolicy.md) @@ -555,8 +565,10 @@ Class | Method | HTTP request | Description - [CouponDeletionFilters](docs/CouponDeletionFilters.md) - [CouponDeletionJob](docs/CouponDeletionJob.md) - [CouponEntity](docs/CouponEntity.md) +- [CouponFailureSummary](docs/CouponFailureSummary.md) - [CouponLimitConfigs](docs/CouponLimitConfigs.md) - [CouponRejectionReason](docs/CouponRejectionReason.md) +- [CouponRejections](docs/CouponRejections.md) - [CouponReservations](docs/CouponReservations.md) - [CouponSearch](docs/CouponSearch.md) - [CouponValue](docs/CouponValue.md) @@ -586,6 +598,7 @@ Class | Method | HTTP request | Description - [DeductLoyaltyPoints](docs/DeductLoyaltyPoints.md) - [DeductLoyaltyPointsEffectProps](docs/DeductLoyaltyPointsEffectProps.md) - [DeleteCouponsData](docs/DeleteCouponsData.md) +- [DeleteLoyaltyTransactionsRequest](docs/DeleteLoyaltyTransactionsRequest.md) - [DeleteUserRequest](docs/DeleteUserRequest.md) - [Effect](docs/Effect.md) - [EffectEntity](docs/EffectEntity.md) @@ -602,6 +615,7 @@ Class | Method | HTTP request | Description - [Event](docs/Event.md) - [EventType](docs/EventType.md) - [EventV2](docs/EventV2.md) +- [EventV3](docs/EventV3.md) - [ExpiringCardPointsData](docs/ExpiringCardPointsData.md) - [ExpiringCardPointsNotification](docs/ExpiringCardPointsNotification.md) - [ExpiringCouponsData](docs/ExpiringCouponsData.md) @@ -621,6 +635,7 @@ Class | Method | HTTP request | Description - [FunctionDef](docs/FunctionDef.md) - [GenerateAuditLogSummary](docs/GenerateAuditLogSummary.md) - [GenerateCampaignDescription](docs/GenerateCampaignDescription.md) +- [GenerateCampaignSummary](docs/GenerateCampaignSummary.md) - [GenerateCampaignTags](docs/GenerateCampaignTags.md) - [GenerateCouponFailureDetailedSummary](docs/GenerateCouponFailureDetailedSummary.md) - [GenerateCouponFailureSummary](docs/GenerateCouponFailureSummary.md) @@ -694,7 +709,10 @@ Class | Method | HTTP request | Description - [IntegrationEntity](docs/IntegrationEntity.md) - [IntegrationEvent](docs/IntegrationEvent.md) - [IntegrationEventV2Request](docs/IntegrationEventV2Request.md) +- [IntegrationEventV3Request](docs/IntegrationEventV3Request.md) +- [IntegrationEventV3Response](docs/IntegrationEventV3Response.md) - [IntegrationProfileEntity](docs/IntegrationProfileEntity.md) +- [IntegrationProfileEntityV3](docs/IntegrationProfileEntityV3.md) - [IntegrationRequest](docs/IntegrationRequest.md) - [IntegrationState](docs/IntegrationState.md) - [IntegrationStateV2](docs/IntegrationStateV2.md) @@ -702,7 +720,6 @@ Class | Method | HTTP request | Description - [InventoryCoupon](docs/InventoryCoupon.md) - [InventoryReferral](docs/InventoryReferral.md) - [ItemAttribute](docs/ItemAttribute.md) -- [JWT](docs/JWT.md) - [LabelTargetAudience](docs/LabelTargetAudience.md) - [LabelTargetNone](docs/LabelTargetNone.md) - [LedgerEntry](docs/LedgerEntry.md) @@ -850,6 +867,15 @@ Class | Method | HTTP request | Description - [PriceType](docs/PriceType.md) - [PriceTypeReferenceDetail](docs/PriceTypeReferenceDetail.md) - [PriceTypeReferences](docs/PriceTypeReferences.md) +- [PrismaticConfig](docs/PrismaticConfig.md) +- [PrismaticEventPayloadCouponBasedNotifications](docs/PrismaticEventPayloadCouponBasedNotifications.md) +- [PrismaticEventPayloadCouponBasedNotificationsLimits](docs/PrismaticEventPayloadCouponBasedNotificationsLimits.md) +- [PrismaticEventPayloadLoyaltyProfileBasedNotifications](docs/PrismaticEventPayloadLoyaltyProfileBasedNotifications.md) +- [PrismaticEventPayloadLoyaltyProfileBasedNotificationsAction](docs/PrismaticEventPayloadLoyaltyProfileBasedNotificationsAction.md) +- [PrismaticFlow](docs/PrismaticFlow.md) +- [PrismaticFlowConfig](docs/PrismaticFlowConfig.md) +- [PrismaticFlowWithConfig](docs/PrismaticFlowWithConfig.md) +- [PrismaticPaginatedEventPayload](docs/PrismaticPaginatedEventPayload.md) - [Product](docs/Product.md) - [ProductSearchMatch](docs/ProductSearchMatch.md) - [ProductUnitAnalytics](docs/ProductUnitAnalytics.md) @@ -883,6 +909,7 @@ Class | Method | HTTP request | Description - [RoleV2Base](docs/RoleV2Base.md) - [RoleV2PermissionSet](docs/RoleV2PermissionSet.md) - [RoleV2Permissions](docs/RoleV2Permissions.md) +- [RoleV2Readonly](docs/RoleV2Readonly.md) - [RoleV2RolesGroup](docs/RoleV2RolesGroup.md) - [RollbackAddedLoyaltyPointsEffectProps](docs/RollbackAddedLoyaltyPointsEffectProps.md) - [RollbackCouponEffectProps](docs/RollbackCouponEffectProps.md) @@ -921,6 +948,7 @@ Class | Method | HTTP request | Description - [ScimUsersListResponse](docs/ScimUsersListResponse.md) - [SecondaryDeployment](docs/SecondaryDeployment.md) - [Session](docs/Session.md) +- [SessionCoupons](docs/SessionCoupons.md) - [SetDiscountEffectProps](docs/SetDiscountEffectProps.md) - [SetDiscountPerAdditionalCostEffectProps](docs/SetDiscountPerAdditionalCostEffectProps.md) - [SetDiscountPerAdditionalCostPerItemEffectProps](docs/SetDiscountPerAdditionalCostPerItemEffectProps.md) @@ -938,6 +966,7 @@ Class | Method | HTTP request | Description - [StrikethroughEffect](docs/StrikethroughEffect.md) - [StrikethroughLabelingNotification](docs/StrikethroughLabelingNotification.md) - [StrikethroughSetDiscountPerItemEffectProps](docs/StrikethroughSetDiscountPerItemEffectProps.md) +- [StrikethroughSetDiscountPerItemMemberEffectProps](docs/StrikethroughSetDiscountPerItemMemberEffectProps.md) - [StrikethroughTrigger](docs/StrikethroughTrigger.md) - [SummaryCampaignStoreBudget](docs/SummaryCampaignStoreBudget.md) - [TalangAttribute](docs/TalangAttribute.md) diff --git a/api/openapi.yaml b/api/openapi.yaml index c6496756..b22de642 100644 --- a/api/openapi.yaml +++ b/api/openapi.yaml @@ -68,20 +68,6 @@ tags: See the [docs](https://docs.talon.one/docs/product/account/account-settings/managing-campaign-groups). name: Campaign access groups -- description: | - Represents the [notifications](/docs/product/applications/application-notifications/overview) - about campaign-related changes. - - **Note:** The value of the `NotificationType` property indicates the campaign change: - - `CampaignNotification` signifies one of the following events: - - [Campaign created](#tag/Campaign-notifications/operation/campaignCreatedNotification) - - [Campaign state changed](#tag/Campaign-notifications/operation/campaignStateChangedNotification) - - [Campaign rules changed](#tag/Campaign-notifications/operation/campaignRulesetChangedNotification) - - [Campaign edited](#tag/Campaign-notifications/operation/campaignEditedNotification) - - [Campaign collection edited](#tag/Campaign-notifications/operation/campaignCollectionEditedNotification) - - [Campaign deleted](#tag/Campaign-notifications/operation/campaignDeletedNotification) - - `CampaignEvaluationTreeChanged` signifies [Campaign evaluation tree changed](#tag/Campaign-notifications/operation/campaignEvaluationTreeChangedNotification). - name: Campaign notifications - description: | Represents templates used to generate campaigns from. name: Campaign templates @@ -101,10 +87,6 @@ tags: See the [docs](https://docs.talon.one/docs/product/campaigns/managing-collections). name: Collections -- description: | - Represents the [notifications](/docs/product/applications/application-notifications/overview) - about coupons. - name: Coupon notifications - description: | Coupons are unique codes belonging to a particular campaign. They don't define any behavior on their own. Instead the campaign ruleset can include rules that validate coupons and carry out particular effects. @@ -148,18 +130,11 @@ tags: See [the Product docs](https://docs.talon.one/docs/product/loyalty-programs/overview) for more information. name: Loyalty -- description: Represents the [notifications](/docs/product/loyalty-programs/loyalty-notifications/overview) - about changes to loyalty points in card-based loyalty programs. - name: Loyalty card notifications - description: | Represents loyalty cards. [Loyalty cards](https://docs.talon.one/docs/product/loyalty-programs/card-based/card-based-overview) allow your customers to collect and spend loyalty points within a card-based loyalty program. name: Loyalty cards -- description: | - Represents the [notifications](/docs/product/loyalty-programs/loyalty-notifications/overview) - about changes to loyalty points in profile-based loyalty programs. - name: Loyalty notifications - description: | A referral is a code shared between a customer and a prospect. @@ -185,10 +160,6 @@ tags: - description: | Represents physical or digital stores, branches, and franchises. name: Stores -- description: | - Represents the [notifications](/docs/product/applications/application-notifications/overview) - about strikethrough pricing updates. - name: Strikethrough pricing notifications - description: | A way to send information from Talon.One to the URI of your choice. @@ -435,10 +406,10 @@ paths: \
  • Update attribute value
  • \n
  • Update cart item attribute\ \ value
  • \n \n \n\n\n\n

    To see an example of\ \ a rollback, see the Cancelling a session with campaign budgetstutorial.

    \n\n**Note:**\ + >Cancelling a session with campaign budgets tutorial.

    \n\n**Note:**\ \ If your order workflow requires you to create a new session instead of reopening\ - \ a session, use the\n[Update customer session](https://docs.talon.one/integration-api#tag/Customer-sessions/operation/updateCustomerSessionV2)\ - \ endpoint to cancel\na closed session and create a new one.\n" + \ a session, use the [Update customer session](https://docs.talon.one/integration-api#tag/Customer-sessions/operation/updateCustomerSessionV2)\ + \ endpoint to cancel a closed session and create a new one.\n" operationId: reopenCustomerSession parameters: - description: | @@ -939,6 +910,7 @@ paths: required: true schema: maxLength: 108 + minLength: 4 type: string requestBody: content: @@ -980,6 +952,73 @@ paths: x-codegen-request-body-name: body x-contentType: application/json x-accepts: application/json + /v2/loyalty_programs/{loyaltyProgramId}/cards/{loyaltyCardId}/unlink_profile: + post: + description: | + Unlink a customer profile from a [registered](https://docs.talon.one/docs/product/loyalty-programs/card-based/managing-loyalty-cards#linking-customer-profiles-to-a-loyalty-card) loyalty card. + + To get the `integrationId` of a customer profile, you can use the + [Update customer session](https://docs.talon.one/integration-api#operation/updateCustomerSessionV2) + endpoint. + operationId: unlinkLoyaltyCardFromProfile + parameters: + - description: | + The identifier of the card-based loyalty program containing the loyalty card. You can get this ID using the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. + in: path + name: loyaltyProgramId + required: true + schema: + format: int64 + type: integer + - description: | + The identifier of the loyalty card. You can get this ID using the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. + in: path + name: loyaltyCardId + required: true + schema: + maxLength: 108 + minLength: 4 + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/LoyaltyCardRegistration' + description: body + required: true + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/LoyaltyCard' + description: OK + "400": + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponseWithStatus' + description: Bad request + "401": + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponseWithStatus' + description: Unauthorized + "404": + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponseWithStatus' + description: Not found + security: + - api_key_v1: [] + summary: Unlink customer profile from a loyalty card + tags: + - integration + x-codegen-request-body-name: body + x-contentType: application/json + x-accepts: application/json /v2/events: post: description: | @@ -1217,7 +1256,10 @@ paths: coupon code. operationId: deleteCouponReservation parameters: - - description: The code of the coupon. + - description: "The code of the coupon.\n\n**Important:** The coupon code requires\ + \ [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) \nif\ + \ it contains special characters.\nFor example, you must encode `SUMMER25%OFF`\ + \ as `SUMMER25%25OFF`.\n" in: path name: couponValue required: true @@ -1262,28 +1304,48 @@ paths: x-accepts: application/json post: description: | - Create a coupon reservation for the specified customer profiles on the specified coupon. + Create a coupon reservation for the specified customer profiles on the + specified coupon. + You can also create a reservation via the Campaign Manager using the - [Create coupon code reservation](https://docs.talon.one/docs/product/rules/effects/using-effects#reserving-a-coupon-code) effect. + [Create coupon code + reservation](https://docs.talon.one/docs/product/rules/effects/using-effects#reserving-a-coupon-code) + effect. **Note:** - - If the **Reservation mandatory** option was selected when creating the specified coupon, - the endpoint creates a **hard** reservation, meaning only users who have this coupon code reserved can redeem it. - Otherwise, the endpoint creates a **soft** reservation, meaning the coupon is associated with the specified customer profiles (they show up when using the [List customer data](https://docs.talon.one/integration-api#operation/getCustomerInventory) endpoint), but any user can redeem it. - This can be useful, for example, to display a _coupon wallet_ for customers when they visit your store. - - - If the **Coupon visibility** option was selected when creating the specified coupon, - the coupon code is implicitly soft-reserved for all customers, and the code will be returned for all customer profiles in the [List customer data](https://docs.talon.one/integration-api#operation/getCustomerInventory) endpoint. - - - This endpoint overrides the coupon reservation limit set when [the coupon is created](https://docs.talon.one/docs/product/campaigns/coupons/creating-coupons). - To ensure that coupons cannot be reserved after the reservation limit is reached, use the [Create coupon code reservation](https://docs.talon.one/docs/product/rules/effects/using-effects#reserving-a-coupon-code) effect in the Rule Builder - and the [Update customer session](https://docs.talon.one/integration-api#tag/Customer-sessions/operation/updateCustomerSessionV2) endpoint. + - If the **Reservation mandatory** option was selected when creating the + specified coupon, the endpoint creates a **hard** reservation, meaning only users who have + this coupon code reserved can redeem it. + Otherwise, the endpoint creates a **soft** reservation, meaning the coupon + is associated with the specified customer profiles (they show up when using + the [List customer data](https://docs.talon.one/integration-api#operation/getCustomerInventory) + endpoint), but any user can redeem it. + This can be useful, for example, to display a _coupon wallet_ for customers + when they visit your store. + + - If the **Coupon visibility** option was selected when creating the + specified coupon, the coupon code is implicitly soft-reserved for all customers, and the code + will be returned for all customer profiles in the [List customer + data](https://docs.talon.one/integration-api#operation/getCustomerInventory) endpoint. + + - This endpoint overrides the coupon reservation limit set when + [the coupon is created](https://docs.talon.one/docs/product/campaigns/coupons/creating-coupons). + + To ensure that coupons cannot be reserved after the reservation limit is + reached, use the [Create coupon code + reservation](https://docs.talon.one/docs/product/rules/effects/using-effects#reserving-a-coupon-code) + effect in the Rule Builder and the [Update customer session](https://docs.talon.one/integration-api#tag/Customer-sessions/operation/updateCustomerSessionV2) + endpoint. - To delete a reservation, use the [Delete reservation](https://docs.talon.one/integration-api#tag/Coupons/operation/deleteCouponReservation) endpoint. + To delete a reservation, use the + [Delete reservation](https://docs.talon.one/integration-api#tag/Coupons/operation/deleteCouponReservation) endpoint. operationId: createCouponReservation parameters: - - description: The code of the coupon. + - description: "The code of the coupon.\n\n**Important:** The coupon code requires\ + \ [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) \nif\ + \ it contains special characters.\nFor example, you must encode `SUMMER25%OFF`\ + \ as `SUMMER25%25OFF`.\n" in: path name: couponValue required: true @@ -1335,7 +1397,10 @@ paths: Return all customers that have this coupon marked as reserved. This includes hard and soft reservations. operationId: getReservedCustomers parameters: - - description: The code of the coupon. + - description: "The code of the coupon.\n\n**Important:** The coupon code requires\ + \ [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) \nif\ + \ it contains special characters.\nFor example, you must encode `SUMMER25%OFF`\ + \ as `SUMMER25%25OFF`.\n" in: path name: couponValue required: true @@ -1687,6 +1752,7 @@ paths: required: true schema: maxLength: 108 + minLength: 4 type: string - description: | Used to return expired, active, and pending loyalty balances before this timestamp. You can enter any past, present, or future timestamp value. @@ -1843,15 +1909,23 @@ paths: tags: - integration x-accepts: application/json - /v1/loyalty_programs/{loyaltyProgramId}/cards/{loyaltyCardId}/transactions: + /v1/loyalty_programs/{loyaltyProgramId}/profile/{integrationId}/ledger_balances: get: description: | - Retrieve loyalty transaction logs for the given loyalty card in the specified loyalty program with filtering options applied. - If no filtering options are applied, the last 50 loyalty transactions for the given loyalty card are returned. - operationId: getLoyaltyCardTransactions + Retrieve loyalty ledger balances for the given Integration ID in the specified loyalty program. + You can filter balances by date and subledger ID, and include tier-related information in the response. + + **Note**: If no filtering options are applied, you retrieve all loyalty balances on the current date for the given integration ID. + + Loyalty balances are calculated when Talon.One receives your request using the points stored in our database, so retrieving a large number of balances at once can impact performance. + + For more information, see: + - [Managing card-based loyalty program data](https://docs.talon.one/docs/product/loyalty-programs/card-based/managing-loyalty-cards) + - [Managing profile-based loyalty program data](https://docs.talon.one/docs/product/loyalty-programs/profile-based/managing-pb-lp-data) + operationId: getLoyaltyLedgerBalances parameters: - description: | - Identifier of the card-based loyalty program containing the loyalty card. You can get the ID with + Identifier of the profile-based loyalty program. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. in: path name: loyaltyProgramId @@ -1860,50 +1934,18 @@ paths: format: int64 type: integer - description: | - Identifier of the loyalty card. You can get the identifier with - the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. + The integration identifier for this customer profile. Must be: + - Unique within the deployment. + - Stable for the customer. Do not use an ID that the customer can update themselves. For example, you can use a database ID. + + Once set, you cannot update this identifier. in: path - name: loyaltyCardId + name: integrationId required: true schema: - maxLength: 108 - type: string - - description: Filter results by one or more subledger IDs. Must be exact match. - explode: true - in: query - name: subledgerId - schema: - items: - type: string - type: array - style: form - - description: | - Filter results by loyalty transaction type: - - `manual`: Loyalty transaction that was done manually. - - `session`: Loyalty transaction that resulted from a customer session. - - `import`: Loyalty transaction that was imported from a CSV file. - in: query - name: loyaltyTransactionType - schema: - enum: - - manual - - session - - import - type: string - - description: | - Date and time from which results are returned. Results are filtered by transaction creation date. - - **Note:** - - - It must be an RFC3339 timestamp string. - - You can include a time component in your string, for example, `T23:59:59` to specify the end of the day. The time zone setting considered is `UTC`. If you do not include a time component, a default time value of `T00:00:00` (midnight) in `UTC` is considered. - in: query - name: startDate - schema: - format: date-time type: string - description: | - Date and time by which results are returned. Results are filtered by transaction creation date. + Used to return expired, active, and pending loyalty balances before this timestamp. You can enter any past, present, or future timestamp value. **Note:** @@ -1914,51 +1956,38 @@ paths: schema: format: date-time type: string - - description: "Filter the results by a list of customer session IDs. \n\nTo\ - \ include multiple IDs, repeat the parameter for each one, for example,\ - \ \n`?customerSessionIDs=id1&customerSessionIDs=id2`.\n\nThe response contains\ - \ only data associated with the specified sessions.\n" - explode: true - in: query - name: customerSessionIDs - schema: - items: - type: string - type: array - style: form - - description: "Filter the results by a list of transaction UUIDs.\n\nTo include\ - \ multiple IDs, repeat the parameter for each one, for example, \n`?transactionUUIDs=uuid1&transactionUUIDs=uuid2`.\n\ - \nThe response contains only data associated with the specified transactions.\n" - explode: true + - description: The ID of the subledger used to filter the data. Leave this value + empty ("") to query the main ledger. in: query - name: transactionUUIDs + name: subledgerId schema: - items: - type: string - type: array - style: form - - description: The number of items in the response. + type: string + - description: | + Indicates whether tier information is included in the response. + + When set to `true`, the response includes information about the current tier and the number of points required to move to next tier. in: query - name: pageSize + name: includeTiers schema: - default: 50 - format: int64 - maximum: 1000 - minimum: 1 - type: integer - - description: The number of items to skip when paging through large result - sets. + default: false + type: boolean + - description: | + Indicates whether the customer's projected tier information is included in the response. + + When set to `true`, the response includes information about the customer's active points and the name of the projected tier. + + **Note** We recommend filtering by `subledgerId` for better performance. in: query - name: skip + name: includeProjectedTier schema: - format: int64 - type: integer + default: false + type: boolean responses: "200": content: application/json: schema: - $ref: '#/components/schemas/inline_response_200_3' + $ref: '#/components/schemas/LoyaltyBalancesWithTiers' description: OK "400": content: @@ -1978,25 +2007,19 @@ paths: schema: $ref: '#/components/schemas/ErrorResponseWithStatus' description: Not found - security: - - api_key_v1: [] - summary: List card's transactions + summary: Get customer's loyalty balances tags: - - integration + - management x-accepts: application/json - /v1/loyalty_programs/{loyaltyProgramId}/profile/{integrationId}/transactions: + /v1/loyalty_programs/{loyaltyProgramId}/cards/{loyaltyCardId}/transactions: get: description: | - Retrieve paginated results of loyalty transaction logs for the given Integration ID in the specified loyalty program. - - You can filter transactions by date. If no filters are applied, the last 50 loyalty transactions for the given integration ID are returned. - - **Note:** To retrieve all loyalty program transaction logs in a given loyalty program, - use the [List loyalty program transactions](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyProgramTransactions) endpoint. - operationId: getLoyaltyProgramProfileTransactions + Retrieve loyalty transaction logs for the given loyalty card in the specified loyalty program with filtering options applied. + If no filtering options are applied, the last 50 loyalty transactions for the given loyalty card are returned. + operationId: getLoyaltyCardTransactions parameters: - description: | - Identifier of the profile-based loyalty program. You can get the ID with + Identifier of the card-based loyalty program containing the loyalty card. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. in: path name: loyaltyProgramId @@ -2005,13 +2028,167 @@ paths: format: int64 type: integer - description: | - The integration identifier for this customer profile. Must be: - - Unique within the deployment. - - Stable for the customer. Do not use an ID that the customer can update themselves. For example, you can use a database ID. - - Once set, you cannot update this identifier. + Identifier of the loyalty card. You can get the identifier with + the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. in: path - name: integrationId + name: loyaltyCardId + required: true + schema: + maxLength: 108 + minLength: 4 + type: string + - description: Filter results by one or more subledger IDs. Must be exact match. + explode: true + in: query + name: subledgerId + schema: + items: + type: string + type: array + style: form + - description: | + Filter results by loyalty transaction type: + - `manual`: Loyalty transaction that was done manually. + - `session`: Loyalty transaction that resulted from a customer session. + - `import`: Loyalty transaction that was imported from a CSV file. + in: query + name: loyaltyTransactionType + schema: + enum: + - manual + - session + - import + type: string + - description: | + Date and time from which results are returned. Results are filtered by transaction creation date. + + **Note:** + + - It must be an RFC3339 timestamp string. + - You can include a time component in your string, for example, `T23:59:59` to specify the end of the day. The time zone setting considered is `UTC`. If you do not include a time component, a default time value of `T00:00:00` (midnight) in `UTC` is considered. + in: query + name: startDate + schema: + format: date-time + type: string + - description: | + Date and time by which results are returned. Results are filtered by transaction creation date. + + **Note:** + + - It must be an RFC3339 timestamp string. + - You can include a time component in your string, for example, `T23:59:59` to specify the end of the day. The time zone setting considered is `UTC`. If you do not include a time component, a default time value of `T00:00:00` (midnight) in `UTC` is considered. + in: query + name: endDate + schema: + format: date-time + type: string + - description: "Filter the results by a list of customer session IDs. \n\nTo\ + \ include multiple IDs, repeat the parameter for each one, for example,\ + \ \n`?customerSessionIDs=id1&customerSessionIDs=id2`.\n\nThe response contains\ + \ only data associated with the specified sessions.\n" + explode: true + in: query + name: customerSessionIDs + schema: + items: + type: string + type: array + style: form + - description: "Filter the results by a list of transaction UUIDs.\n\nTo include\ + \ multiple IDs, repeat the parameter for each one, for example, \n`?transactionUUIDs=uuid1&transactionUUIDs=uuid2`.\n\ + \nThe response contains only data associated with the specified transactions.\n" + explode: true + in: query + name: transactionUUIDs + schema: + items: + type: string + type: array + style: form + - description: The number of items in the response. + in: query + name: pageSize + schema: + default: 50 + format: int64 + maximum: 1000 + minimum: 1 + type: integer + - description: The number of items to skip when paging through large result + sets. + in: query + name: skip + schema: + format: int64 + type: integer + - description: | + If `true`: Filters results to include only point transactions that have action-based activation and have not expired. + + If `false`: Returns a `400` response. + in: query + name: awaitsActivation + schema: + type: boolean + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/inline_response_200_3' + description: OK + "400": + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponseWithStatus' + description: Bad request + "401": + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponseWithStatus' + description: Unauthorized + "404": + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponseWithStatus' + description: Not found + security: + - api_key_v1: [] + summary: List card's transactions + tags: + - integration + x-accepts: application/json + /v1/loyalty_programs/{loyaltyProgramId}/profile/{integrationId}/transactions: + get: + description: | + Retrieve paginated results of loyalty transaction logs for the given Integration ID in the specified loyalty program. + + You can filter transactions by date. If no filters are applied, the last 50 loyalty transactions for the given integration ID are returned. + + **Note:** To retrieve all loyalty program transaction logs in a given loyalty program, + use the [List loyalty program transactions](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyProgramTransactions) endpoint. + operationId: getLoyaltyProgramProfileTransactions + parameters: + - description: | + Identifier of the profile-based loyalty program. You can get the ID with + the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. + in: path + name: loyaltyProgramId + required: true + schema: + format: int64 + type: integer + - description: | + The integration identifier for this customer profile. Must be: + - Unique within the deployment. + - Stable for the customer. Do not use an ID that the customer can update themselves. For example, you can use a database ID. + + Once set, you cannot update this identifier. + in: path + name: integrationId required: true schema: type: string @@ -2096,6 +2273,14 @@ paths: schema: format: int64 type: integer + - description: | + If `true`: Filters results to include only point transactions that have action-based activation and have not expired. + + If `false`: Returns a `400` response. + in: query + name: awaitsActivation + schema: + type: boolean responses: "200": content: @@ -2127,6 +2312,156 @@ paths: tags: - integration x-accepts: application/json + /v1/loyalty_programs/{loyaltyProgramId}/profile/{integrationId}/ledger_transactions: + get: + description: | + Retrieve paginated results of loyalty transaction logs for the given Integration ID in the specified loyalty program. + + You can filter transactions by date or by ledger (subledger or main ledger). If no filters are applied, the last 50 loyalty transactions for the given integration ID are returned. + + **Note:** To retrieve all loyalty program transaction logs in a given loyalty program, + use the [List loyalty program transactions](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyProgramTransactions) endpoint. + operationId: getLoyaltyProgramProfileLedgerTransactions + parameters: + - description: | + Identifier of the profile-based loyalty program. You can get the ID with + the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. + in: path + name: loyaltyProgramId + required: true + schema: + format: int64 + type: integer + - description: | + The integration identifier for this customer profile. Must be: + - Unique within the deployment. + - Stable for the customer. Do not use an ID that the customer can update themselves. For example, you can use a database ID. + + Once set, you cannot update this identifier. + in: path + name: integrationId + required: true + schema: + type: string + - description: "Filter the results by a list of customer session IDs. \n\nTo\ + \ include multiple IDs, repeat the parameter for each one, for example,\ + \ \n`?customerSessionIDs=id1&customerSessionIDs=id2`.\n\nThe response contains\ + \ only data associated with the specified sessions.\n" + explode: true + in: query + name: customerSessionIDs + schema: + items: + type: string + type: array + style: form + - description: "Filter the results by a list of transaction UUIDs.\n\nTo include\ + \ multiple IDs, repeat the parameter for each one, for example, \n`?transactionUUIDs=uuid1&transactionUUIDs=uuid2`.\n\ + \nThe response contains only data associated with the specified transactions.\n" + explode: true + in: query + name: transactionUUIDs + schema: + items: + type: string + type: array + style: form + - description: The ID of the subledger used to filter the data. Leave this value + empty ("") to query the main ledger. + in: query + name: subledgerId + schema: + type: string + - description: | + Filter results by loyalty transaction type: + - `manual`: Loyalty transaction that was done manually. + - `session`: Loyalty transaction that resulted from a customer session. + - `import`: Loyalty transaction that was imported from a CSV file. + in: query + name: loyaltyTransactionType + schema: + enum: + - manual + - session + - import + type: string + - description: | + Date and time from which results are returned. Results are filtered by transaction creation date. + + **Note:** + + - It must be an RFC3339 timestamp string. + - You can include a time component in your string, for example, `T23:59:59` to specify the end of the day. The time zone setting considered is `UTC`. If you do not include a time component, a default time value of `T00:00:00` (midnight) in `UTC` is considered. + in: query + name: startDate + schema: + format: date-time + type: string + - description: | + Date and time by which results are returned. Results are filtered by transaction creation date. + + **Note:** + + - It must be an RFC3339 timestamp string. + - You can include a time component in your string, for example, `T23:59:59` to specify the end of the day. The time zone setting considered is `UTC`. If you do not include a time component, a default time value of `T00:00:00` (midnight) in `UTC` is considered. + in: query + name: endDate + schema: + format: date-time + type: string + - description: The number of items in the response. + in: query + name: pageSize + schema: + default: 50 + format: int64 + maximum: 1000 + minimum: 1 + type: integer + - description: The number of items to skip when paging through large result + sets. + in: query + name: skip + schema: + format: int64 + type: integer + - description: | + If `true`: Filters results to include only point transactions that have action-based activation and have not expired. + + If `false`: Returns a `400` response. + in: query + name: awaitsActivation + schema: + type: boolean + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/inline_response_200_4' + description: OK + "400": + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponseWithStatus' + description: Bad request + "401": + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponseWithStatus' + description: Unauthorized + "404": + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponseWithStatus' + description: Not found + summary: List customer's loyalty transactions + tags: + - management + x-accepts: application/json /v1/loyalty_programs/{loyaltyProgramId}/cards/{loyaltyCardId}/points: get: description: | @@ -2155,6 +2490,7 @@ paths: required: true schema: maxLength: 108 + minLength: 4 type: string - description: Filter points based on their status. in: query @@ -2537,6 +2873,38 @@ paths: schema: format: date-time type: string + - description: Filter results comparing the parameter value, expected to be + an RFC3339 timestamp string, to the campaign start time timestamp. You can + use any time zone setting. Talon.One will convert to UTC internally. + in: query + name: startBefore + schema: + format: date-time + type: string + - description: Filter results comparing the parameter value, expected to be + an RFC3339 timestamp string, to the campaign start time timestamp. You can + use any time zone setting. Talon.One will convert to UTC internally. + in: query + name: startAfter + schema: + format: date-time + type: string + - description: Filter results comparing the parameter value, expected to be + an RFC3339 timestamp string, to the campaign end time timestamp. You can + use any time zone setting. Talon.One will convert to UTC internally. + in: query + name: endBefore + schema: + format: date-time + type: string + - description: Filter results comparing the parameter value, expected to be + an RFC3339 timestamp string, to the campaign end time timestamp. You can + use any time zone setting. Talon.One will convert to UTC internally. + in: query + name: endAfter + schema: + format: date-time + type: string - description: Filter results to campaigns owned by the specified campaign access group ID. in: query @@ -4226,6 +4594,64 @@ paths: tags: - management x-accepts: application/json + /v1/loyalty_programs/{loyaltyProgramId}/activate_points: + post: + description: "Activate points when a defined action occurs.\n\nYou can activate\ + \ pending points using one of the following parameters:\n- `sessionId`: Activates\ + \ all points earned in the specified session. \n- `transactionUUIDs`: Activates\ + \ points earned in the transactions specified by the \ngiven UUIDs. \n" + operationId: activateLoyaltyPoints + parameters: + - description: | + The identifier for the loyalty program. You can get the ID with the [List loyalty + programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) + endpoint. + in: path + name: loyaltyProgramId + required: true + schema: + format: int64 + type: integer + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ActivateLoyaltyPoints' + description: body + required: true + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/ActivateLoyaltyPointsResponse' + description: OK + "400": + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponseWithStatus' + description: Bad request + "401": + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponseWithStatus' + description: Unauthorized + "404": + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponseWithStatus' + description: Not found + security: + - api_key_v1: [] + summary: Activate loyalty points + tags: + - integration + x-codegen-request-body-name: body + x-contentType: application/json + x-accepts: application/json /v1/loyalty_programs/{loyaltyProgramId}/dashboard: get: description: | @@ -4287,50 +4713,49 @@ paths: x-accepts: application/json /v1/loyalty_programs/{loyaltyProgramId}/import_points: post: - description: | - Upload a CSV file containing the loyalty points you want to import into a given loyalty program. - Send the file as multipart data. - - Depending on the type of loyalty program, you can import points into a given customer profile or loyalty card. - - The CSV file contains the following columns: - - - `customerprofileid` (optional): For profile-based loyalty programs, the integration ID of the customer profile where the loyalty points are imported. - - **Note**: If the customer profile does not exist, it will be created. The profile will not be visible in any Application - until a session or profile update is received for that profile. - - `identifier` (optional): For card-based loyalty programs, the identifier of the loyalty card where the loyalty points are imported. - - `amount`: The amount of points to award to the customer profile. - - `startdate` (optional): The earliest date when the points can be redeemed. The points are `active` from this date until the expiration date. - - **Note**: It must be an RFC3339 timestamp string or string `immediate`. Empty or missing values are considered `immediate`. - - `expirydate` (optional): The latest date when the points can be redeemed. The points are `expired` after this date. - - **Note**: It must be an RFC3339 timestamp string or string `unlimited`. Empty or missing values are considered `unlimited`. - - `subledgerid` (optional): The ID of the subledger that should received the points. - - `reason` (optional): The reason why these points are awarded. - - You can use the time zone of your choice. It is converted to UTC internally by Talon.One. - - **Note:** For existing customer profiles and loyalty cards, the imported points are added to any previous active or pending points, depending on the - value provided for `startdate`. If `startdate` matches the current date, the imported points are _active_. If it is later, the points are _pending_ until - the date provided for `startdate` is reached. - - **Note:** We recommend limiting your file size to 500MB. - - **Example for profile-based programs:** - - ```text - customerprofileid,amount,startdate,expirydate,subledgerid,reason - URNGV8294NV,100,2009-11-10T23:00:00Z,2009-11-11T23:00:00Z,subledger1,appeasement - ``` - - **Example for card-based programs:** - - ```text - identifier,amount,startdate,expirydate,subledgerid,reason - summer-loyalty-card-0543,100,2009-11-10T23:00:00Z,2009-11-11T23:00:00Z,subledger1,appeasement - ``` + description: "Upload a CSV file containing the loyalty points you want to import\ + \ into a given loyalty program.\nSend the file as multipart data.\n\nDepending\ + \ on the type of loyalty program, you can import points into a given customer\ + \ profile or loyalty card.\n\nThe CSV file contains the following columns:\n\ + \n- `customerprofileid` (optional): For profile-based loyalty programs, the\ + \ integration ID of the customer profile where the loyalty points are imported.\n\ + \n **Note**: If the customer profile does not exist, it will be created.\ + \ The profile will not be visible in any Application\n until a session or\ + \ profile update is received for that profile.\n- `identifier` (optional):\ + \ For card-based loyalty programs, the identifier of the loyalty card where\ + \ the loyalty points are imported.\n- `amount`: The amount of points to award\ + \ to the customer profile.\n- `startdate` (optional): The earliest date when\ + \ the points can be redeemed. The points are `active` from this date until\ + \ the expiration date.\n\n This parameter accepts one of the following values:\n\ + \ - A timestamp string in RFC3339 format.\n - `immediate`\n - `on_action`\n\ + \ \n **Note**:\n Empty or missing values default to `immediate`.\n- `expirydate`\ + \ (optional): The latest date when the points can be redeemed. The points\ + \ are `expired` after this date.\n\n **Note**: It must be an RFC3339 timestamp\ + \ string or string `unlimited`. Empty or missing values are considered `unlimited`.\n\ + \ \n If passed, `validityDuration` should be omitted.\n- `validityDuration`\ + \ (optional): The duration for which the points remain active, relative to\ + \ the \n activation date.\n\n The time format is an **integer** followed\ + \ by one letter indicating the time unit.\n\n\n Examples: `30s`, `40m`, `1h`,\ + \ `5D`, `7W`, `10M`, `15Y`.\n\n\n Available units:\n\n\n - `s`: seconds\n\ + \ - `m`: minutes\n - `h`: hours\n - `D`: days\n - `W`: weeks\n - `M`:\ + \ months\n - `Y`: years\n\n\n You can round certain units up or down:\n\n\ + \ - `_D` for rounding down days only. Signifies the start of the day.\n \ + \ - `_U` for rounding up days, weeks, months and years. Signifies the end\ + \ of\n the day, week, month or year.\n\n If passed, `expirydate` should\ + \ be omitted.\n- `subledgerid` (optional): The ID of the subledger that should\ + \ received the points.\n- `reason` (optional): The reason why these points\ + \ are awarded.\n\nYou can use the time zone of your choice. It is converted\ + \ to UTC internally by Talon.One.\n\n**Note:** For existing customer profiles\ + \ and loyalty cards, the imported points are added to any previous active\ + \ or pending points, depending on the\nvalue provided for `startdate`. If\ + \ `startdate` matches the current date, the imported points are _active_.\ + \ If it is later, the points are _pending_ until\nthe date provided for `startdate`\ + \ is reached.\n\n**Note:** We recommend limiting your file size to 500MB.\n\ + \n**Example for profile-based programs:**\n\n```text\ncustomerprofileid,amount,startdate,expirydate,subledgerid,reason\n\ + URNGV8294NV,100,2009-11-10T23:00:00Z,2009-11-11T23:00:00Z,subledger1,appeasement\n\ + ```\n\n**Example for card-based programs:**\n\n```text\nidentifier,amount,startdate,expirydate,subledgerid,reason\n\ + summer-loyalty-card-0543,100,2009-11-10T23:00:00Z,2009-11-11T23:00:00Z,subledger1,appeasement\n\ + ```\n" operationId: importLoyaltyPoints parameters: - description: | @@ -4455,6 +4880,7 @@ paths: x-accepts: application/json /v1/loyalty_programs/{loyaltyProgramId}/profile/{integrationId}: get: + deprecated: true description: | Get the loyalty ledger for this profile integration ID. @@ -5012,6 +5438,14 @@ paths: schema: format: int64 type: integer + - description: | + If `true`: Filters results to include only point transactions that have action-based activation and have not expired. + + If `false`: Returns a `400` response. + in: query + name: awaitsActivation + schema: + type: boolean responses: "200": content: @@ -5468,6 +5902,7 @@ paths: required: true schema: maxLength: 108 + minLength: 4 type: string responses: "204": @@ -5510,6 +5945,7 @@ paths: required: true schema: maxLength: 108 + minLength: 4 type: string responses: "200": @@ -5562,6 +5998,7 @@ paths: required: true schema: maxLength: 108 + minLength: 4 type: string requestBody: content: @@ -5624,6 +6061,7 @@ paths: required: true schema: maxLength: 108 + minLength: 4 type: string requestBody: content: @@ -5683,6 +6121,7 @@ paths: required: true schema: maxLength: 108 + minLength: 4 type: string requestBody: content: @@ -5744,6 +6183,7 @@ paths: required: true schema: maxLength: 108 + minLength: 4 type: string - description: | Only return results from after this timestamp. @@ -5826,6 +6266,7 @@ paths: required: true schema: maxLength: 108 + minLength: 4 type: string - description: | Date and time from which results are returned. Results are filtered by transaction creation date. @@ -5946,6 +6387,7 @@ paths: required: true schema: maxLength: 108 + minLength: 4 type: string requestBody: content: @@ -8318,6 +8760,34 @@ paths: name: entity schema: type: string + - description: Returned attributes will be filtered by supplied application + ids + in: query + name: applicationIds + schema: + type: string + - description: Returned attributes will be filtered by supplied type + in: query + name: type + schema: + type: string + - description: Returned attributes will be filtered by supplied kind (builtin + or custom) + in: query + name: kind + schema: + enum: + - builtin + - custom + type: string + x-generate-enum-go: true + x-generate-enum-go: true + - description: Returned attributes will be filtered by searching case insensitive + through Attribute name, description and type + in: query + name: search + schema: + type: string responses: "200": content: @@ -12286,6 +12756,8 @@ components: properties: NotificationType: description: The type of the notification + enum: + - CampaignNotification example: CampaignNotification type: string TotalResultSize: @@ -12734,13 +13206,20 @@ components: $ref: '#/components/schemas/StrikethroughChangedItem' type: array NotificationType: - description: The type of the notification + description: The type of notification. + enum: + - StrikethroughPrice + type: string + sentAt: + description: Timestamp at which the notification was sent. + format: date-time type: string required: - NotificationType - applicationId - changedItems - currentBatch + - sentAt - totalBatches - trigger type: object @@ -12824,6 +13303,30 @@ components: type: object UpdateRoleV2: $ref: '#/components/schemas/RoleV2Base' + PrismaticPaginatedEventPayload: + properties: + TotalResultSize: + format: int64 + type: integer + EventType: + enum: + - LoyaltyPointsChanged + - LoyaltyTierDowngrade + - LoyaltyTierUpgrade + - CouponCreated + - CouponUpdated + - CouponDeleted + type: string + x-generate-enum-go: PrismaticEventType + Data: + items: + type: object + type: array + required: + - Data + - EventType + - TotalResultSize + type: object Entity: properties: id: @@ -14007,6 +14510,7 @@ components: The alphanumeric identifier of the loyalty card. example: summer-loyalty-card-0543 maxLength: 108 + minLength: 4 pattern: ^[A-Za-z0-9_-]*$ type: string AddLoyaltyPointsEffectProps: @@ -14059,6 +14563,7 @@ components: The alphanumeric identifier of the loyalty card. example: summer-loyalty-card-0543 maxLength: 108 + minLength: 4 pattern: ^[A-Za-z0-9_-]*$ type: string bundleIndex: @@ -14069,6 +14574,15 @@ components: bundleName: description: The name of the bundle definition. type: string + awaitsActivation: + description: | + If `true`, the loyalty points remain pending until a specific action is complete. The `startDate` parameter automatically sets to `on_action`. + type: boolean + validityDuration: + description: "The duration for which the points remain active, calculated\ + \ relative to the \nactivation date. \n\n**Note**: This value is returned\ + \ only if `awaitsActivation` is `true` \nand `expiryDate` is not set.\n" + type: string required: - name - programId @@ -14110,6 +14624,7 @@ components: The alphanumeric identifier of the loyalty card. example: summer-loyalty-card-0543 maxLength: 108 + minLength: 4 pattern: ^[A-Za-z0-9_-]*$ type: string required: @@ -14308,6 +14823,7 @@ components: The alphanumeric identifier of the loyalty card. example: summer-loyalty-card-0543 maxLength: 108 + minLength: 4 pattern: ^[A-Za-z0-9_-]*$ type: string required: @@ -14355,6 +14871,7 @@ components: The alphanumeric identifier of the loyalty card. example: summer-loyalty-card-0543 maxLength: 108 + minLength: 4 pattern: ^[A-Za-z0-9_-]*$ type: string required: @@ -16036,6 +16553,7 @@ components: The alphanumeric identifier of the loyalty card. example: summer-loyalty-card-0543 maxLength: 108 + minLength: 4 pattern: ^[A-Za-z0-9_-]*$ type: string usersPerCardLimit: @@ -16068,6 +16586,7 @@ components: The alphanumeric identifier of the loyalty card. example: summer-loyalty-card-0543 maxLength: 108 + minLength: 4 pattern: ^[A-Za-z0-9_-]*$ type: string newCardIdentifier: @@ -16075,6 +16594,7 @@ components: The alphanumeric identifier of the loyalty card. example: summer-loyalty-card-0543 maxLength: 108 + minLength: 4 pattern: ^[A-Za-z0-9_-]*$ type: string batchId: @@ -18312,6 +18832,7 @@ components: example: quantity: 1 position: 2 + sku: SKU1241028 properties: position: description: The index of the cart item in the provided customer session's @@ -18325,16 +18846,22 @@ components: example: 1 format: int64 type: integer - required: - - position + sku: + description: The SKU of the cart item in the provided customer session's + `cartItems` property. + example: SKU1241028 + minLength: 1 + type: string type: object NewReturn: example: returnedCartItems: - quantity: 1 position: 2 + sku: SKU1241028 - quantity: 1 position: 2 + sku: SKU1241028 properties: returnedCartItems: description: List of cart items to be returned. @@ -18349,8 +18876,10 @@ components: returnedCartItems: - quantity: 1 position: 2 + sku: SKU1241028 - quantity: 1 position: 2 + sku: SKU1241028 accountId: 3886 eventId: 123 profileIntegrationId: 0c0e0207-eb30-4e06-a56c-2b7c8a64953c @@ -19243,8 +19772,10 @@ components: - returnedCartItems: - quantity: 1 position: 2 + sku: SKU1241028 - quantity: 1 position: 2 + sku: SKU1241028 accountId: 3886 eventId: 123 profileIntegrationId: 0c0e0207-eb30-4e06-a56c-2b7c8a64953c @@ -19258,8 +19789,10 @@ components: - returnedCartItems: - quantity: 1 position: 2 + sku: SKU1241028 - quantity: 1 position: 2 + sku: SKU1241028 accountId: 3886 eventId: 123 profileIntegrationId: 0c0e0207-eb30-4e06-a56c-2b7c8a64953c @@ -19349,8 +19882,10 @@ components: returnedCartItems: - quantity: 1 position: 2 + sku: SKU1241028 - quantity: 1 position: 2 + sku: SKU1241028 accountId: 3886 eventId: 123 profileIntegrationId: 0c0e0207-eb30-4e06-a56c-2b7c8a64953c @@ -19422,8 +19957,10 @@ components: returnedCartItems: - quantity: 1 position: 2 + sku: SKU1241028 - quantity: 1 position: 2 + sku: SKU1241028 responseContent: - customerSession - customerProfile @@ -21436,10 +21973,10 @@ components: validityDuration: description: | The time format is either: - - `immediate` or, + - `unlimited` or, - an **integer** followed by one letter indicating the time unit. - Examples: `immediate`, `30s`, `40m`, `1h`, `5D`, `7W`, `10M`, `15Y`. + Examples: `unlimited`, `30s`, `40m`, `1h`, `5D`, `7W`, `10M`, `15Y`. Available units: @@ -21878,7 +22415,6 @@ components: timezone: Europe/Berlin description: Customers collect 10 points per 1$ spent title: Point collection - canUpdateJoinPolicy: true canUpdateSubledgers: true programJoinPolicy: not_join accountID: 1 @@ -22128,11 +22664,6 @@ components: `True` if the tier definitions can be updated. example: true type: boolean - canUpdateJoinPolicy: - description: | - `True` if the program join policy can be updated. - example: true - type: boolean canUpdateTierExpirationPolicy: description: | `True` if the tier expiration policy can be updated. @@ -22210,7 +22741,6 @@ components: timezone: Europe/Berlin description: Customers collect 10 points per 1$ spent title: Point collection - canUpdateJoinPolicy: true canUpdateSubledgers: true programJoinPolicy: not_join accountID: 1 @@ -22292,7 +22822,6 @@ components: timezone: Europe/Berlin description: Customers collect 10 points per 1$ spent title: Point collection - canUpdateJoinPolicy: true canUpdateSubledgers: true programJoinPolicy: not_join accountID: 1 @@ -24936,6 +25465,7 @@ components: transactionUUID: ce59f12a-f53b-4014-a745-636d93f2bd3f subledgerId: sub-123 name: Reward 10% points of a purchase's current total + validityDuration: 30D ruleName: Add 2 points id: 123 programId: 324 @@ -24959,6 +25489,7 @@ components: The alphanumeric identifier of the loyalty card. example: summer-loyalty-card-0543 maxLength: 108 + minLength: 4 pattern: ^[A-Za-z0-9_-]*$ type: string customerSessionId: @@ -24986,6 +25517,7 @@ components: description: | When points become active. Possible values: - `immediate`: Points are active immediately. + - `on_action`: Points become active based on the customer's action. - a timestamp value: Points become active at a given date and time. example: 2022-01-02T15:04:05Z07:00 maxLength: 64 @@ -25021,6 +25553,13 @@ components: description: The name of the rule that triggered this effect. example: Add 2 points type: string + validityDuration: + description: | + The duration for which the points remain active, relative to the activation date. + + **Note**: This only applies to points for which `awaitsActivation` is `true` and `expiryDate` is not set. + example: 30D + type: string required: - amount - cardIdentifier @@ -25057,6 +25596,7 @@ components: transactionUUID: ce59f12a-f53b-4014-a745-636d93f2bd3f subledgerId: sub-123 name: Reward 10% points of a purchase's current total + validityDuration: 30D ruleName: Add 2 points id: 123 programId: 324 @@ -25100,6 +25640,7 @@ components: description: | When points become active. Possible values: - `immediate`: Points are immediately active. + - `on_action`: Points become active based on the customer's action. - a timestamp value: Points become active at a given date and time. example: 2022-01-02T15:04:05Z07:00 maxLength: 64 @@ -25137,6 +25678,13 @@ components: type: string flags: $ref: '#/components/schemas/LoyaltyLedgerEntryFlags' + validityDuration: + description: | + The duration for which the points remain active, relative to the activation date. + + **Note**: This only applies to points for which `awaitsActivation` is `true` and `expiryDate` is not set. + example: 30D + type: string required: - amount - created @@ -25149,6 +25697,34 @@ components: - transactionUUID - type type: object + DeleteLoyaltyTransactionsRequest: + description: Request to delete transactions based on the specified scope. + properties: + scope: + description: | + `AllSubledgers` deletes all transactions for the specified customer profile from all ledgers in the loyalty program. + + `SelectedSubledgers` deletes all transactions for the specified customer profile only from the given ledgers in the loyalty program. + enum: + - AllSubledgers + - SelectedSubledgers + example: SelectedSubledgers + type: string + subledgerIds: + description: | + The IDs of the ledgers from which to delete the customer's transactions. This parameter is required if the `scope` is set to `SelectedSubledgers`. + + To specify the main ledger, provide an empty string (""). + example: + - subledger1 + - subledger2 + items: + type: string + nullable: true + type: array + required: + - scope + type: object CardLedgerPointsEntryIntegrationAPI: description: Loyalty card points with start and expiry dates. example: @@ -25159,6 +25735,7 @@ components: created: 2000-01-23T04:56:07.000+00:00 subledgerId: sub-123 name: Reward 10% points of a purchase's current total + validityDuration: 30D customerSessionId: 05c2da0d-48fa-4aa1-b629-898f58f1584d id: 123 programId: 324 @@ -25220,6 +25797,13 @@ components: description: Amount of loyalty points added in the transaction. example: 10.25 type: number + validityDuration: + description: | + The duration for which the points remain active, relative to the activation date. + + **Note**: This only applies to points for which `awaitsActivation` is `true` and `expiryDate` is not set. + example: 30D + type: string required: - amount - created @@ -25240,6 +25824,7 @@ components: created: 2000-01-23T04:56:07.000+00:00 subledgerId: sub-123 name: Reward 10% points of a purchase's current total + validityDuration: 30D customerSessionId: 05c2da0d-48fa-4aa1-b629-898f58f1584d id: 123 programId: 324 @@ -25297,6 +25882,13 @@ components: description: Amount of loyalty points added in the transaction. example: 10.25 type: number + validityDuration: + description: | + The duration for which the points remain active, relative to the activation date. + + **Note**: This only applies to points for which `awaitsActivation` is `true` and `expiryDate` is not set. + example: 30D + type: string required: - amount - created @@ -27601,6 +28193,21 @@ components: - name - payload type: object + StrikethroughSetDiscountPerItemMemberEffectProps: + description: setDiscountPerItem member effect in strikethrough pricing payload. + properties: + name: + description: effect name. + example: 10% off members only + type: string + value: + description: discount value. + example: "9" + type: object + required: + - name + - value + type: object StrikethroughEffectProps: type: object LabelTargetNone: @@ -27936,6 +28543,11 @@ components: format: int64 type: integer type: array + authenticationId: + description: The ID of the credential that this webhook is using. + example: 1 + format: int64 + type: integer required: - url - verb @@ -29488,6 +30100,7 @@ components: - boolean - percent - (list string) + - (list number) - time example: number type: string @@ -29653,6 +30266,7 @@ components: description: My collection of SKUs - name: My collection description: My collection of SKUs + campaignsCount: 3 defaultCampaignGroupId: 42 description: This is a template for a discount campaign. features: @@ -29920,6 +30534,11 @@ components: - advanced example: advanced type: string + campaignsCount: + description: The number of Campaigns created from this template. + example: 3 + format: int64 + type: integer updated: description: Timestamp of the most recent update to the campaign template or any of its elements. @@ -31107,6 +31726,180 @@ components: $ref: '#/components/schemas/NewLoyaltyTier' type: array type: object + ActivateLoyaltyPoints: + description: Activate loyalty points + example: + transactionUUIDs: + - 046b6c7f-0b8a-43b9-b35d-6489e6daee91 + - 046b6c7f-0b8a-43b9-b35d-6489e6daee91 + - 046b6c7f-0b8a-43b9-b35d-6489e6daee91 + - 046b6c7f-0b8a-43b9-b35d-6489e6daee91 + - 046b6c7f-0b8a-43b9-b35d-6489e6daee91 + sessionId: sessionId + properties: + transactionUUIDs: + description: "An array of transaction UUIDs used to activate specific pending\ + \ point transactions. \n\nIf provided, do not include the `sessionId`\ + \ parameter.\n" + items: + format: uuid + type: string + maxItems: 50 + minItems: 1 + type: array + uniqueItems: true + sessionId: + description: | + The ID of the session containing the pending point transactions to activate. + + If provided, do not include the `transactionUUIDs` parameter. + minLength: 1 + type: string + type: object + LoyaltyLedgerEntry: + description: A single row of the ledger, describing one addition or deduction. + example: + eventID: 5 + amount: 100.0 + created: 2021-07-20T22:00:00Z + flags: + createsNegativeBalance: true + subLedgerID: mysubledger + customerSessionID: t2gy5s-47274 + type: addition + userID: 499 + expiryDate: 2022-07-20T22:00:00Z + archived: false + customerProfileID: URNGV8294NV + cardID: 241 + name: Add points on purchase + validityDuration: 30D + programID: 5 + startDate: 2021-07-20T22:00:00Z + properties: + created: + example: 2021-07-20T22:00:00Z + format: date-time + type: string + programID: + example: 5 + format: int64 + type: integer + customerProfileID: + example: URNGV8294NV + type: string + cardID: + example: 241 + format: int64 + type: integer + customerSessionID: + example: t2gy5s-47274 + type: string + eventID: + example: 5 + format: int64 + type: integer + type: + description: | + The type of the ledger transaction. Possible values are: + - `addition` + - `subtraction` + - `expire` + - `expiring` (for expiring points ledgers) + example: addition + type: string + amount: + example: 100.0 + type: number + startDate: + example: 2021-07-20T22:00:00Z + format: date-time + type: string + expiryDate: + example: 2022-07-20T22:00:00Z + format: date-time + type: string + name: + description: A name referencing the condition or effect that added this + entry, or the specific name provided in an API call. + example: Add points on purchase + type: string + subLedgerID: + description: This specifies if we are adding loyalty points to the main + ledger or a subledger. + example: mysubledger + type: string + userID: + description: This is the ID of the user who created this entry, if the addition + or subtraction was done manually. + example: 499 + format: int64 + type: integer + archived: + description: Indicates if the entry belongs to the archived session. + example: false + type: boolean + flags: + $ref: '#/components/schemas/LoyaltyLedgerEntryFlags' + validityDuration: + description: | + The duration for which the points remain active, relative to the activation date. + + **Note**: This only applies to points for which `awaitsActivation` is `true` and `expiryDate` is not set. + example: 30D + type: string + required: + - amount + - created + - name + - programID + - subLedgerID + - type + type: object + ActivateLoyaltyPointsResponse: + example: + ledgerEntries: + - eventID: 5 + amount: 100.0 + created: 2021-07-20T22:00:00Z + flags: + createsNegativeBalance: true + subLedgerID: mysubledger + customerSessionID: t2gy5s-47274 + type: addition + userID: 499 + expiryDate: 2022-07-20T22:00:00Z + archived: false + customerProfileID: URNGV8294NV + cardID: 241 + name: Add points on purchase + validityDuration: 30D + programID: 5 + startDate: 2021-07-20T22:00:00Z + - eventID: 5 + amount: 100.0 + created: 2021-07-20T22:00:00Z + flags: + createsNegativeBalance: true + subLedgerID: mysubledger + customerSessionID: t2gy5s-47274 + type: addition + userID: 499 + expiryDate: 2022-07-20T22:00:00Z + archived: false + customerProfileID: URNGV8294NV + cardID: 241 + name: Add points on purchase + validityDuration: 30D + programID: 5 + startDate: 2021-07-20T22:00:00Z + properties: + ledgerEntries: + description: Updated ledger entries after activation. + items: + $ref: '#/components/schemas/LoyaltyLedgerEntry' + type: array + type: object UpdateLoyaltyProgramTier: description: Update a tier in a specified loyalty program. properties: @@ -31267,98 +32060,6 @@ components: - id - userId type: object - LoyaltyLedgerEntry: - description: A single row of the ledger, describing one addition or deduction. - example: - eventID: 5 - amount: 100.0 - created: 2021-07-20T22:00:00Z - flags: - createsNegativeBalance: true - subLedgerID: mysubledger - customerSessionID: t2gy5s-47274 - type: addition - userID: 499 - expiryDate: 2022-07-20T22:00:00Z - archived: false - customerProfileID: URNGV8294NV - cardID: 241 - name: Add points on purchase - programID: 5 - startDate: 2021-07-20T22:00:00Z - properties: - created: - example: 2021-07-20T22:00:00Z - format: date-time - type: string - programID: - example: 5 - format: int64 - type: integer - customerProfileID: - example: URNGV8294NV - type: string - cardID: - example: 241 - format: int64 - type: integer - customerSessionID: - example: t2gy5s-47274 - type: string - eventID: - example: 5 - format: int64 - type: integer - type: - description: | - The type of the ledger transaction. Possible values are: - - `addition` - - `subtraction` - - `expire` - - `expiring` (for expiring points ledgers) - example: addition - type: string - amount: - example: 100.0 - type: number - startDate: - example: 2021-07-20T22:00:00Z - format: date-time - type: string - expiryDate: - example: 2022-07-20T22:00:00Z - format: date-time - type: string - name: - description: A name referencing the condition or effect that added this - entry, or the specific name provided in an API call. - example: Add points on purchase - type: string - subLedgerID: - description: This specifies if we are adding loyalty points to the main - ledger or a subledger. - example: mysubledger - type: string - userID: - description: This is the ID of the user who created this entry, if the addition - or subtraction was done manually. - example: 499 - format: int64 - type: integer - archived: - description: Indicates if the entry belongs to the archived session. - example: false - type: boolean - flags: - $ref: '#/components/schemas/LoyaltyLedgerEntryFlags' - required: - - amount - - created - - name - - programID - - subLedgerID - - type - type: object LoyaltySubLedger: description: Ledger of Balance in Loyalty Program for a Customer. example: @@ -31379,6 +32080,7 @@ components: customerProfileID: URNGV8294NV cardID: 241 name: Add points on purchase + validityDuration: 30D programID: 5 startDate: 2021-07-20T22:00:00Z - eventID: 5 @@ -31395,6 +32097,7 @@ components: customerProfileID: URNGV8294NV cardID: 241 name: Add points on purchase + validityDuration: 30D programID: 5 startDate: 2021-07-20T22:00:00Z expiringPoints: @@ -31412,6 +32115,7 @@ components: customerProfileID: URNGV8294NV cardID: 241 name: Add points on purchase + validityDuration: 30D programID: 5 startDate: 2021-07-20T22:00:00Z - eventID: 5 @@ -31428,6 +32132,7 @@ components: customerProfileID: URNGV8294NV cardID: 241 name: Add points on purchase + validityDuration: 30D programID: 5 startDate: 2021-07-20T22:00:00Z totalActivePoints: 6.027456183070403 @@ -31449,6 +32154,7 @@ components: customerProfileID: URNGV8294NV cardID: 241 name: Add points on purchase + validityDuration: 30D programID: 5 startDate: 2021-07-20T22:00:00Z - eventID: 5 @@ -31465,6 +32171,7 @@ components: customerProfileID: URNGV8294NV cardID: 241 name: Add points on purchase + validityDuration: 30D programID: 5 startDate: 2021-07-20T22:00:00Z expiredPoints: @@ -31482,6 +32189,7 @@ components: customerProfileID: URNGV8294NV cardID: 241 name: Add points on purchase + validityDuration: 30D programID: 5 startDate: 2021-07-20T22:00:00Z - eventID: 5 @@ -31498,6 +32206,7 @@ components: customerProfileID: URNGV8294NV cardID: 241 name: Add points on purchase + validityDuration: 30D programID: 5 startDate: 2021-07-20T22:00:00Z currentTier: @@ -31521,6 +32230,7 @@ components: customerProfileID: URNGV8294NV cardID: 241 name: Add points on purchase + validityDuration: 30D programID: 5 startDate: 2021-07-20T22:00:00Z - eventID: 5 @@ -31537,6 +32247,7 @@ components: customerProfileID: URNGV8294NV cardID: 241 name: Add points on purchase + validityDuration: 30D programID: 5 startDate: 2021-07-20T22:00:00Z properties: @@ -31625,6 +32336,7 @@ components: customerProfileID: URNGV8294NV cardID: 241 name: Add points on purchase + validityDuration: 30D programID: 5 startDate: 2021-07-20T22:00:00Z - eventID: 5 @@ -31641,6 +32353,7 @@ components: customerProfileID: URNGV8294NV cardID: 241 name: Add points on purchase + validityDuration: 30D programID: 5 startDate: 2021-07-20T22:00:00Z expiringPoints: @@ -31658,6 +32371,7 @@ components: customerProfileID: URNGV8294NV cardID: 241 name: Add points on purchase + validityDuration: 30D programID: 5 startDate: 2021-07-20T22:00:00Z - eventID: 5 @@ -31674,6 +32388,7 @@ components: customerProfileID: URNGV8294NV cardID: 241 name: Add points on purchase + validityDuration: 30D programID: 5 startDate: 2021-07-20T22:00:00Z totalActivePoints: 6.027456183070403 @@ -31695,6 +32410,7 @@ components: customerProfileID: URNGV8294NV cardID: 241 name: Add points on purchase + validityDuration: 30D programID: 5 startDate: 2021-07-20T22:00:00Z - eventID: 5 @@ -31711,6 +32427,7 @@ components: customerProfileID: URNGV8294NV cardID: 241 name: Add points on purchase + validityDuration: 30D programID: 5 startDate: 2021-07-20T22:00:00Z expiredPoints: @@ -31728,6 +32445,7 @@ components: customerProfileID: URNGV8294NV cardID: 241 name: Add points on purchase + validityDuration: 30D programID: 5 startDate: 2021-07-20T22:00:00Z - eventID: 5 @@ -31744,6 +32462,7 @@ components: customerProfileID: URNGV8294NV cardID: 241 name: Add points on purchase + validityDuration: 30D programID: 5 startDate: 2021-07-20T22:00:00Z currentTier: @@ -31767,6 +32486,7 @@ components: customerProfileID: URNGV8294NV cardID: 241 name: Add points on purchase + validityDuration: 30D programID: 5 startDate: 2021-07-20T22:00:00Z - eventID: 5 @@ -31783,6 +32503,7 @@ components: customerProfileID: URNGV8294NV cardID: 241 name: Add points on purchase + validityDuration: 30D programID: 5 startDate: 2021-07-20T22:00:00Z subLedgers: @@ -31860,6 +32581,7 @@ components: customerProfileId: kda0fajs0-fad9f-fd9dfsa9-fd9dasjf9 subledgerId: sub-123 name: Reward 50 points for each $500 purchase + validityDuration: 30D ruleName: 10 points for every $100 spent userEmail: john.doe@example.com id: 123 @@ -31913,6 +32635,7 @@ components: description: | When points become active. Possible values: - `immediate`: Points are immediately active. + - `on_action`: Points become active based on the customer's action. - a timestamp value: Points become active at a given date and time. example: 2022-01-02T15:04:05Z07:00 maxLength: 64 @@ -31934,6 +32657,7 @@ components: The alphanumeric identifier of the loyalty card. example: summer-loyalty-card-0543 maxLength: 108 + minLength: 4 pattern: ^[A-Za-z0-9_-]*$ type: string subledgerId: @@ -31975,6 +32699,13 @@ components: type: string flags: $ref: '#/components/schemas/LoyaltyLedgerEntryFlags' + validityDuration: + description: | + The duration for which the points remain active, relative to the activation date. + + **Note**: This only applies to points for which `awaitsActivation` is `true` and `expiryDate` is not set. + example: 30D + type: string required: - amount - created @@ -32105,6 +32836,7 @@ components: The alphanumeric identifier of the loyalty card. example: summer-loyalty-card-0543 maxLength: 108 + minLength: 4 pattern: ^[A-Za-z0-9_-]*$ type: string type: object @@ -32144,6 +32876,7 @@ components: The alphanumeric identifier of the loyalty card. example: summer-loyalty-card-0543 maxLength: 108 + minLength: 4 pattern: ^[A-Za-z0-9_-]*$ type: string applicationId: @@ -32230,6 +32963,7 @@ components: The alphanumeric identifier of the loyalty card. example: summer-loyalty-card-0543 maxLength: 108 + minLength: 4 pattern: ^[A-Za-z0-9_-]*$ type: string blockReason: @@ -34894,6 +35628,29 @@ components: - title - type type: object + BestPriorTarget: + description: Specifies the target for which the best prior price calculation + is taken into consideration. + example: + targetType: AUDIENCE + audienceID: 4 + properties: + targetType: + description: The type of price target. + enum: + - NONE + - AUDIENCE + example: AUDIENCE + type: string + audienceID: + description: The AudienceID of an audience. Must be used with "AUDIENCE" + target type. + example: 4 + format: int64 + type: integer + required: + - targetType + type: object BestPriorPriceRequest: example: timeframeEndDate: 2020-11-10T23:00:00Z @@ -34926,7 +35683,6 @@ components: description: The number of days prior to the timeframeEndDate. Only prices within this look back period are considered for the best prior price evaluation. example: "30" - format: integer type: string strictEndDate: description: | @@ -34936,7 +35692,7 @@ components: example: true type: boolean target: - $ref: '#/components/schemas/BestPriorPriceRequest_target' + $ref: '#/components/schemas/BestPriorTarget' required: - skus - strictEndDate @@ -37790,9 +38546,22 @@ components: type: integer type: array type: object + RoleV2Readonly: + properties: + isReadonly: + default: false + description: Identifies if the role is read-only. For read-only roles, you + can only assign or unassign users. You cannot edit any other properties, + such as the name, description, or permissions. The 'isReadonly' property + cannot be set for new or existing roles. It is reserved for predefined + roles, such as the Talon.One support role. + example: false + type: boolean + type: object RoleV2: example: accountId: 3886 + isReadonly: false created: 2020-06-10T09:05:27.993483Z permissions: permissionSets: @@ -37880,6 +38649,15 @@ components: format: int64 type: integer type: array + isReadonly: + default: false + description: Identifies if the role is read-only. For read-only roles, you + can only assign or unassign users. You cannot edit any other properties, + such as the name, description, or permissions. The 'isReadonly' property + cannot be set for new or existing roles. It is reserved for predefined + roles, such as the Talon.One support role. + example: false + type: boolean required: - accountId - created @@ -38283,6 +39061,11 @@ components: when the user who created the key is disabled or deleted. example: true type: boolean + lastUsed: + description: The last time the management key was used. + example: 2022-03-02T16:46:17.758585Z + format: date-time + type: string required: - accountID - created @@ -38345,6 +39128,11 @@ components: when the user who created the key is disabled or deleted. example: true type: boolean + lastUsed: + description: The last time the management key was used. + example: 2022-03-02T16:46:17.758585Z + format: date-time + type: string key: description: The management key. example: f45f90d21dcd9bac965c45e547e9754a3196891d09948e35adbcbedc4e9e4b01 @@ -38359,22 +39147,6 @@ components: - key - name type: object - JWT: - description: JSON web token used for accessing integrations in Prismatic - properties: - accessToken: - description: Access token used to authenticate a user in Talon.One. - example: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9 - type: string - expiresIn: - description: Time until the token expires (in seconds). - example: 1000 - format: int64 - type: integer - required: - - accessToken - - expiresIn - type: object NewValueMap: type: object ValueMap: @@ -39299,6 +40071,24 @@ components: required: - itemFilter type: object + GenerateCampaignSummary: + properties: + campaignID: + description: ID of a campaign. + format: int64 + type: integer + rulesetID: + description: ID of a ruleset. + format: int64 + type: integer + currency: + description: Currency for the campaign. + type: string + required: + - campaignID + - currency + - rulesetID + type: object GenerateUserSessionSummary: properties: sessionID: @@ -39334,6 +40124,70 @@ components: required: - eventID type: object + CouponFailureSummary: + description: Summary of the reasons for coupon redemption failure. + properties: + id: + description: ID of the evaluation record. + example: 1 + format: int64 + type: integer + eventID: + description: ID of the event. + example: 1011 + format: int64 + type: integer + sessionID: + description: ID of the customer session set by your integration layer. + example: "1" + type: string + profileID: + description: ID of the customer profile set by your integration layer. + example: a48f10dddb5c9493aad194e49bb9c1dac + type: string + status: + description: Status defines if the coupon code was applied or rejected. + example: rejected + type: string + couponCode: + description: Coupon code passed for evaluation. + example: ABC123 + type: string + language: + description: Language of the summary. + example: en + type: string + shortSummary: + description: A summary of the reasons for coupon redemption failure. + example: Session total was less than the required total. + type: string + longSummary: + description: A detailed summary of the reasons for coupon redemption failure + based on events of the entire session. + example: There were 5 items in the cart with SKUs 1,2,3,4,5 and the total + is $60 which is less than the required cart total. + type: string + createdAt: + description: Timestamp when the request was made. + example: 2021-07-20T21:59:00Z + format: date-time + type: string + updatedAt: + description: Timestamp when the request was last updated. + example: 2021-07-20T21:59:00Z + format: date-time + type: string + required: + - couponCode + - createdAt + - eventID + - id + - language + - longSummary + - shortSummary + - status + - updatedAt + type: object GenerateCouponFailureDetailedSummary: properties: applicationID: @@ -39363,10 +40217,350 @@ components: - eventID - sessionID type: object + CampaignLogSummary: + description: Campaign Log Summary + properties: + name: + description: Name of the user that performed the change. + example: Admin + type: string + email: + description: E-mail of the user that performed the change. + example: admin@talon.one + type: string + created: + description: Date and time the change was performed. + format: date-time + type: string + action: + description: Action performed by the user. + enum: + - create + - delete + - update + example: create + type: string + summary: + description: AI-generated summary of the action performed. + type: string + required: + - action + - created + - email + - name + - summary + type: object + SessionCoupons: + properties: + sessionIntegrationId: + description: The integration ID of the session in which the coupons were + applied. + example: cc53e4fa-547f-4f5e-8333-76e05c381f67 + type: string + couponCode: + description: The coupon codes for which rejection reason is needed. + example: SUMMER2025 + type: string + required: + - sessionIntegrationId + type: object + CouponRejections: + properties: + sessionDetails: + description: Array containing details from session like session id and optional + coupon code used in the session. Only the first 15 entries will be processed. + items: + $ref: '#/components/schemas/SessionCoupons' + type: array + applicationId: + description: The application ID for which the coupon was used. + example: 123 + format: int64 + type: integer + language: + description: The language the summary will be generated in. + example: en + type: string + required: + - applicationId + - sessionDetails + type: object + PrismaticFlowConfig: + properties: + ApiKey: + type: string + required: + - ApiKey + type: object + PrismaticFlowWithConfig: + properties: + ApplicationID: + description: ID of application the flow is registered for. + example: 54 + format: int64 + type: integer + EventType: + description: The event type we want to register a flow for. + type: string + x-fieldType: PrismaticEventType + PrismaticFlowUrl: + description: The URL of the prismatic flow that we want to trigger for the + event. + type: string + Config: + $ref: '#/components/schemas/PrismaticFlowConfig' + required: + - Config + - EventType + - PrismaticFlowUrl + type: object + PrismaticFlow: + properties: + ApplicationID: + description: ID of application the flow is registered for. + example: 54 + format: int64 + type: integer + EventType: + description: The event type we want to register a flow for. + type: string + x-fieldType: PrismaticEventType + PrismaticFlowUrl: + description: The URL of the prismatic flow that we want to trigger for the + event. + type: string + required: + - EventType + - PrismaticFlowUrl + type: object + PrismaticConfig: + description: Config used for accessing integrations in Prismatic + properties: + prismaticUrl: + description: The url used to integrate the Prismatic Marketplace. + example: https://app.eu-west-1.prismatic.io/ + type: string + accessToken: + description: Access token used to authenticate a user in Talon.One. + example: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9 + type: string + required: + - accessToken + - prismaticUrl + type: object + IntegrationProfileEntityV3: + properties: + profileId: + description: | + ID of the customer profile set by your integration layer. + + **Note:** If the customer does not yet have a known `profileId`, we recommend you use a guest `profileId`. + example: URNGV8294NV + type: string + required: + - profileId + type: object + EventV3: + properties: + profileId: + description: | + ID of the customer profile set by your integration layer. + + **Note:** If the customer does not yet have a known `profileId`, we recommend you use a guest `profileId`. + example: URNGV8294NV + type: string + storeIntegrationId: + description: The integration ID of the store. You choose this ID when you + create a store. + example: STORE-001 + maxLength: 1000 + minLength: 1 + type: string + evaluableCampaignIds: + description: | + When using the `dry` query parameter, use this property to list the campaign to be evaluated by the Rule Engine. + + These campaigns will be evaluated, even if they are disabled, allowing you to test specific campaigns before activating them. + example: + - 10 + - 12 + items: + format: int64 + type: integer + title: Campaigns to evaluate + type: array + integrationId: + description: | + The unique ID of the current event. Only one event with this ID could be activated, duplicated events are forbidden. + example: 175KJPS947296 + minLength: 1 + type: string + type: + description: | + A string representing the event name. Must not be a reserved event name. You create this value when you [create an attribute](https://docs.talon.one/docs/dev/concepts/entities/events#creating-a-custom-event) of type `event` in the Campaign Manager. + example: pageViewed + minLength: 1 + title: Event Type + type: string + attributes: + description: Arbitrary additional JSON properties associated with the event. + They must be created in the Campaign Manager before setting them with + this property. See [creating custom attributes](https://docs.talon.one/docs/product/account/dev-tools/managing-attributes#creating-a-custom-attribute). + example: + myAttribute: myValue + properties: {} + type: object + connectedSessionID: + description: The ID of the session that happened in the past. + example: 175KJPS947296 + minLength: 1 + type: string + previousEventID: + description: The unique identifier of the event that happened in the past. + example: 175KJPS947296 + minLength: 1 + type: string + required: + - integrationId + - profileId + - type + type: object + IntegrationEventV3Request: + properties: + profileId: + description: | + ID of the customer profile set by your integration layer. + + **Note:** If the customer does not yet have a known `profileId`, we recommend you use a guest `profileId`. + example: URNGV8294NV + type: string + storeIntegrationId: + description: The integration ID of the store. You choose this ID when you + create a store. + example: STORE-001 + maxLength: 1000 + minLength: 1 + type: string + evaluableCampaignIds: + description: | + When using the `dry` query parameter, use this property to list the campaign to be evaluated by the Rule Engine. + + These campaigns will be evaluated, even if they are disabled, allowing you to test specific campaigns before activating them. + example: + - 10 + - 12 + items: + format: int64 + type: integer + title: Campaigns to evaluate + type: array + integrationId: + description: | + The unique ID of the current event. Only one event with this ID could be activated, duplicated events are forbidden. + example: 175KJPS947296 + minLength: 1 + type: string + type: + description: | + A string representing the event name. Must not be a reserved event name. You create this value when you [create an attribute](https://docs.talon.one/docs/dev/concepts/entities/events#creating-a-custom-event) of type `event` in the Campaign Manager. + example: pageViewed + minLength: 1 + title: Event Type + type: string + attributes: + description: Arbitrary additional JSON properties associated with the event. + They must be created in the Campaign Manager before setting them with + this property. See [creating custom attributes](https://docs.talon.one/docs/product/account/dev-tools/managing-attributes#creating-a-custom-attribute). + example: + myAttribute: myValue + properties: {} + type: object + connectedSessionID: + description: The ID of the session that happened in the past. + example: 175KJPS947296 + minLength: 1 + type: string + previousEventID: + description: The unique identifier of the event that happened in the past. + example: 175KJPS947296 + minLength: 1 + type: string + loyaltyCards: + description: Identifiers of the loyalty cards used during this event. + example: + - loyalty-card-1 + items: + type: string + maxItems: 1 + type: array + responseContent: + description: | + Optional list of requested information to be present on the response related to the tracking custom event. + example: + - triggeredCampaigns + - customerProfile + items: + enum: + - customerProfile + - triggeredCampaigns + - loyalty + - event + - awardedGiveaways + - ruleFailureReasons + type: string + type: array + required: + - integrationId + - profileId + - type + type: object + IntegrationEventV3Response: + description: | + This is the response type returned by the trackEventV3 endpoint. + properties: + customerProfile: + $ref: '#/components/schemas/CustomerProfile' + event: + $ref: '#/components/schemas/EventV3' + loyalty: + $ref: '#/components/schemas/Loyalty' + triggeredCampaigns: + items: + $ref: '#/components/schemas/Campaign' + type: array + ruleFailureReasons: + items: + $ref: '#/components/schemas/RuleFailureReason' + type: array + awardedGiveaways: + items: + $ref: '#/components/schemas/Giveaway' + type: array + effects: + description: The effects generated by the rules in your running campaigns. + See [API effects](https://docs.talon.one/docs/dev/integration-api/api-effects). + items: + $ref: '#/components/schemas/Effect' + type: array + createdCoupons: + items: + $ref: '#/components/schemas/Coupon' + type: array + createdReferrals: + items: + $ref: '#/components/schemas/Referral' + type: array + required: + - createdCoupons + - createdReferrals + - effects + type: object CampaignNotificationBase: properties: NotificationType: description: The type of the notification + enum: + - CampaignNotification example: CampaignNotification type: string TotalResultSize: @@ -39434,6 +40628,8 @@ components: properties: NotificationType: description: The type of the notification + enum: + - CampaignNotification example: CampaignNotification type: string TotalResultSize: @@ -39481,6 +40677,8 @@ components: properties: NotificationType: description: The type of the notification + enum: + - CampaignNotification example: CampaignNotification type: string TotalResultSize: @@ -39518,6 +40716,8 @@ components: properties: NotificationType: description: The type of the notification + enum: + - CampaignNotification example: CampaignNotification type: string TotalResultSize: @@ -39556,6 +40756,8 @@ components: properties: NotificationType: description: The type of the notification + enum: + - CampaignNotification example: CampaignNotification type: string TotalResultSize: @@ -39594,6 +40796,8 @@ components: properties: NotificationType: description: The type of the notification + enum: + - CampaignNotification example: CampaignNotification type: string TotalResultSize: @@ -39633,6 +40837,8 @@ components: properties: NotificationType: description: The type of the notification + enum: + - CampaignNotification example: CampaignNotification type: string TotalResultSize: @@ -39669,6 +40875,8 @@ components: properties: NotificationType: description: The type of the notification + enum: + - CampaignNotification example: CampaignNotification type: string TotalResultSize: @@ -39747,7 +40955,7 @@ components: type: integer price: description: The price of the changed item. - example: 99.99 + example: 100.0 type: number prices: additionalProperties: @@ -39991,6 +41199,8 @@ components: type: string NotificationType: description: The type of the not + enum: + - CouponCreated type: string required: - EmployeeName @@ -40023,6 +41233,9 @@ components: type: integer NotificationType: description: The type of the notification + enum: + - CouponUpdated + - CouponDeleted example: CouponUpdated type: string required: @@ -40054,6 +41267,8 @@ components: type: string NotificationType: description: The type of the notification + enum: + - AsyncCouponsCreated type: string required: - BatchID @@ -40080,6 +41295,8 @@ components: type: string NotificationType: description: The type of the notification + enum: + - CouponsUpdated type: string required: - ApplicationID @@ -40111,6 +41328,8 @@ components: type: integer NotificationType: description: The type of the notification + enum: + - CouponsDeleted type: string required: - ApplicationID @@ -40247,10 +41466,9 @@ components: type: object AddedDeductedPointsNotification: properties: - ProfileIntegrationID: - description: The integration ID of the customer profile to whom points were - added or deducted. - example: URNGV8294NV + EmployeeName: + description: The name of the employee who added or deducted points. + example: Franziska Schneider type: string LoyaltyProgramID: description: The ID of the loyalty program. @@ -40258,19 +41476,27 @@ components: format: int64 minimum: 1 type: integer + NotificationType: + description: The type of notification. + enum: + - LoyaltyPointsDeducted + - LoyaltyPointsAdded + type: string + ProfileIntegrationID: + description: The integration ID of the customer profile to whom points were + added or deducted. + example: URNGV8294NV + type: string + SessionIntegrationID: + description: The integration ID of the session through which the points + were earned or lost. + example: cc53e4fa-547f-4f5e-8333-76e05c381f67 + type: string SubledgerID: description: The ID of the subledger within the loyalty program where these points were added. example: sub-123 type: string - Amount: - description: The amount of added or deducted loyalty points. - example: 10.99 - type: number - Reason: - description: The reason for the points addition or deduction. - example: Compensation - type: string TypeOfChange: description: | The notification source, that is, it indicates @@ -40286,16 +41512,58 @@ components: - rule_engine - management_api type: string - EmployeeName: - description: The name of the employee who added or deducted points. - example: Franziska Schneider - type: string UserID: description: The ID of the employee who added or deducted points. example: 25 format: int64 - minimum: 1 type: integer + Amount: + description: The amount of added or deducted loyalty points. + example: 10.99 + type: number + ExpiryDate: + description: The expiration date for loyalty points. + example: 2024-01-24T14:15:22Z + format: date-time + type: string + Operation: + description: The action (addition or deduction) made with loyalty points. + enum: + - addition + - deduction + type: string + Reason: + description: The reason for the points addition or deduction. + example: Compensation + type: string + StartDate: + description: The start date for loyalty points. + example: 2023-01-24T14:15:22Z + format: date-time + type: string + required: + - Amount + - EmployeeName + - LoyaltyProgramID + - NotificationType + - Operation + - ProfileIntegrationID + - Reason + - SessionIntegrationID + - SubledgerID + - TypeOfChange + - UserID + type: object + AddedDeductedPointsBalancesAction: + properties: + Amount: + description: The amount of added or deducted loyalty points. + example: 10.99 + type: number + Reason: + description: The reason for the points addition or deduction. + example: Compensation + type: string Operation: description: The action (addition or deduction) made with loyalty points. enum: @@ -40312,25 +41580,77 @@ components: example: 2024-01-24T14:15:22Z format: date-time type: string + required: + - Amount + - Operation + - Reason + type: object + AddedDeductedPointsBalancesNotification: + properties: + EmployeeName: + description: The name of the employee who added or deducted points. + example: Franziska Schneider + type: string + LoyaltyProgramID: + description: The ID of the loyalty program. + example: 5 + format: int64 + minimum: 1 + type: integer + NotificationType: + description: The type of notification. + enum: + - LoyaltyAddedDeductedPointsBalances + type: string + ProfileIntegrationID: + description: The integration ID of the customer profile to whom points were + added or deducted. + example: URNGV8294NV + type: string SessionIntegrationID: description: The integration ID of the session through which the points were earned or lost. example: cc53e4fa-547f-4f5e-8333-76e05c381f67 type: string - NotificationType: - description: The type of notification. + SubledgerID: + description: The ID of the subledger within the loyalty program where these + points were added. + example: sub-123 + type: string + TypeOfChange: + description: | + The notification source, that is, it indicates whether the points were added or deducted via one of the following routes: + - [The Campaign Manager](/docs/product/getting-started) + - [Management API](/management-api#tag/Loyalty) + - [Rule Engine](/docs/product/applications/evaluation-order-for-rules-and-filters) enum: - - LoyaltyPointsDeducted - - LoyaltyPointsAdded + - campaign_manager + - rule_engine + - management_api type: string + UserID: + description: The ID of the employee who added or deducted points. + example: 25 + format: int64 + type: integer + Actions: + description: The list of actions that have been triggered in the loyalty + program. + items: + $ref: '#/components/schemas/AddedDeductedPointsBalancesAction' + minItems: 1 + type: array + CurrentPoints: + description: The current points balance. + example: 10.99 + type: number required: - - Amount + - Actions + - CurrentPoints - EmployeeName - LoyaltyProgramID - NotificationType - - Operation - ProfileIntegrationID - - Reason - SessionIntegrationID - SubledgerID - TypeOfChange @@ -40706,6 +42026,26 @@ components: type: object CardAddedDeductedPointsNotification: properties: + CardIdentifier: + description: Loyalty card identification number. + example: 123-456-789ATBC + type: string + EmployeeName: + description: The name of the employee who added or deducted points. + example: Franziska Schneider + type: string + LoyaltyProgramID: + description: The ID of the loyalty program. + example: 5 + format: int64 + minimum: 1 + type: integer + NotificationType: + description: The type of notification. + enum: + - LoyaltyCardPointsDeducted + - LoyaltyCardPointsAdded + type: string ProfileIntegrationIDs: description: The integration ID of the customer profile to whom points were added or deducted. @@ -40715,25 +42055,16 @@ components: items: type: string type: array - LoyaltyProgramID: - description: The ID of the loyalty program. - example: 5 - format: int64 - minimum: 1 - type: integer + SessionIntegrationID: + description: The integration ID of the session through which the points + were earned or lost. + example: cc53e4fa-547f-4f5e-8333-76e05c381f67 + type: string SubledgerID: description: The ID of the subledger within the loyalty program where these points were added or deducted. example: sub-123 type: string - Amount: - description: The amount of added or deducted loyalty points. - example: 10.99 - type: number - Reason: - description: The reason for the points addition or deduction. - example: Compensation - type: string TypeOfChange: description: | The notification source, that is, it indicates @@ -40749,68 +42080,302 @@ components: - rule_engine - management_api type: string - EmployeeName: - description: The name of the employee who added or deducted points. - example: Franziska Schneider - type: string UserID: description: The ID of the employee who added or deducted points. example: 25 format: int64 - minimum: 1 type: integer + UsersPerCardLimit: + description: The max amount of user profiles with whom a card can be shared. + This can be set to `0` for no limit. + example: 10 + format: int64 + type: integer + Amount: + description: The amount of added or deducted loyalty points. + example: 10.99 + type: number + ExpiryDate: + description: The expiration date for loyalty points. + example: 2024-01-24T14:15:22Z + format: date-time + type: string Operation: description: The action (addition or deduction) made with loyalty points. enum: - addition - deduction type: string + Reason: + description: The reason for the points addition or deduction. + example: Compensation + type: string StartDate: description: The start date for loyalty points. example: 2023-01-24T14:15:22Z format: date-time type: string - ExpiryDate: - description: The expiration date for loyalty points. - example: 2024-01-24T14:15:22Z - format: date-time + required: + - Amount + - CardIdentifier + - EmployeeName + - LoyaltyProgramID + - NotificationType + - Operation + - ProfileIntegrationIDs + - Reason + - SessionIntegrationID + - SubledgerID + - TypeOfChange + - UserID + - UsersPerCardLimit + type: object + CardAddedDeductedPointsBalancesNotification: + properties: + CardIdentifier: + description: Loyalty card identification number. + example: 123-456-789ATBC + type: string + EmployeeName: + description: The name of the employee who added or deducted points. + example: Franziska Schneider type: string + LoyaltyProgramID: + description: The ID of the loyalty program. + example: 5 + format: int64 + minimum: 1 + type: integer + NotificationType: + description: The type of notification. + enum: + - LoyaltyCardAddedDeductedPointsBalances + type: string + ProfileIntegrationIDs: + description: The integration ID of the customer profile to whom points were + added or deducted. + example: + - yJSObdNNtOetCHWHPFuz + - test-user-4zoj1c + items: + type: string + type: array SessionIntegrationID: description: The integration ID of the session through which the points were earned or lost. example: cc53e4fa-547f-4f5e-8333-76e05c381f67 type: string - NotificationType: - description: The type of notification. - enum: - - LoyaltyCardPointsDeducted - - LoyaltyCardPointsAdded + SubledgerID: + description: The ID of the subledger within the loyalty program where these + points were added or deducted. + example: sub-123 type: string - CardIdentifier: - description: Loyalty card identification number. - example: 123-456-789ATBC + TypeOfChange: + description: | + The notification source, that is, it indicates whether the points were added or deducted via one of the following routes: + - [The Campaign Manager](/docs/product/getting-started) + - [Management API](/management-api#tag/Loyalty) + - [Rule Engine](/docs/product/applications/evaluation-order-for-rules-and-filters) + enum: + - campaign_manager + - rule_engine + - management_api type: string + UserID: + description: The ID of the employee who added or deducted points. + example: 25 + format: int64 + type: integer UsersPerCardLimit: description: The max amount of user profiles with whom a card can be shared. This can be set to `0` for no limit. example: 10 format: int64 type: integer + Actions: + description: The list of actions that have been triggered in the loyalty + program. + items: + $ref: '#/components/schemas/AddedDeductedPointsBalancesAction' + minItems: 1 + type: array + CurrentPoints: + description: The current points balance. + example: 10.99 + type: number required: - - Amount + - Actions - CardIdentifier + - CurrentPoints - EmployeeName - LoyaltyProgramID - NotificationType - - Operation - ProfileIntegrationIDs - - Reason - SessionIntegrationID - SubledgerID - TypeOfChange - UserID - UsersPerCardLimit type: object + PrismaticEventPayloadLoyaltyProfileBasedNotificationsAction: + properties: + Amount: + format: float + type: number + Reason: + type: string + Operation: + enum: + - addition + - deduction + type: string + StartDate: + format: date-time + type: string + ExpiryDate: + format: date-time + type: string + required: + - Amount + - Operation + type: object + PrismaticEventPayloadLoyaltyProfileBasedNotifications: + properties: + ProfileIntegrationID: + type: string + LoyaltyProgramID: + format: int64 + type: integer + SubledgerID: + type: string + SourceOfEvent: + type: string + EmployeeName: + type: string + UserID: + format: int64 + type: integer + SessionIntegrationID: + type: string + CurrentTier: + type: string + CurrentPoints: + format: float + type: number + OldTier: + type: string + PointsRequiredToTheNextTier: + format: float + type: number + NextTier: + type: string + TierExpirationDate: + format: date-time + type: string + TimestampOfTierChange: + format: date-time + type: string + Actions: + items: + $ref: '#/components/schemas/PrismaticEventPayloadLoyaltyProfileBasedNotificationsAction' + type: array + required: + - CurrentPoints + - LoyaltyProgramID + - ProfileIntegrationID + - SourceOfEvent + - SubledgerID + type: object + x-discriminator-value: LoyaltyTierUpgrade + x-ms-discriminator-value: LoyaltyTierUpgrade + PrismaticEventPayloadCouponBasedNotificationsLimits: + properties: + Action: + type: string + Limit: + format: float + type: number + Period: + type: string + Entities: + items: + type: string + type: array + required: + - Action + - Entities + - Limit + type: object + PrismaticEventPayloadCouponBasedNotifications: + properties: + Id: + format: int64 + type: integer + Created: + format: date-time + type: string + CampaignId: + format: int64 + type: integer + Value: + type: string + UsageLimit: + format: int64 + type: integer + DiscountLimit: + format: float + type: number + ReservationLimit: + format: int64 + type: integer + StartDate: + format: date-time + type: string + ExpiryDate: + format: date-time + type: string + UsageCounter: + format: int64 + type: integer + DiscountCounter: + format: float + type: number + DiscountRemainder: + format: float + type: number + ReferralId: + format: int64 + type: integer + RecipientIntegrationId: + type: string + ImportId: + format: int64 + type: integer + BatchId: + type: string + Attributes: + properties: {} + type: object + Limits: + items: + $ref: '#/components/schemas/PrismaticEventPayloadCouponBasedNotificationsLimits' + type: array + SourceOfEvent: + type: string + EmployeeName: + type: string + required: + - CampaignId + - Created + - EmployeeName + - Id + - SourceOfEvent + - UsageCounter + - UsageLimit + - Value + type: object + x-discriminator-value: CouponDeleted + x-ms-discriminator-value: CouponDeleted SetLoyaltyPointsExpiryDateEffectProps: description: | The properties specific to the "setLoyaltyPointsExpiryDate" effect. This gets triggered when a validated rule contains the "set expiry date" effect. The current expiry date gets set to the date given in the effect. @@ -41048,6 +42613,7 @@ components: transactionUUID: ce59f12a-f53b-4014-a745-636d93f2bd3f subledgerId: sub-123 name: Reward 10% points of a purchase's current total + validityDuration: 30D ruleName: Add 2 points id: 123 programId: 324 @@ -41062,6 +42628,7 @@ components: transactionUUID: ce59f12a-f53b-4014-a745-636d93f2bd3f subledgerId: sub-123 name: Reward 10% points of a purchase's current total + validityDuration: 30D ruleName: Add 2 points id: 123 programId: 324 @@ -41092,6 +42659,7 @@ components: transactionUUID: ce59f12a-f53b-4014-a745-636d93f2bd3f subledgerId: sub-123 name: Reward 10% points of a purchase's current total + validityDuration: 30D ruleName: Add 2 points id: 123 programId: 324 @@ -41107,6 +42675,7 @@ components: transactionUUID: ce59f12a-f53b-4014-a745-636d93f2bd3f subledgerId: sub-123 name: Reward 10% points of a purchase's current total + validityDuration: 30D ruleName: Add 2 points id: 123 programId: 324 @@ -41133,6 +42702,7 @@ components: created: 2000-01-23T04:56:07.000+00:00 subledgerId: sub-123 name: Reward 10% points of a purchase's current total + validityDuration: 30D customerSessionId: 05c2da0d-48fa-4aa1-b629-898f58f1584d id: 123 programId: 324 @@ -41144,6 +42714,7 @@ components: created: 2000-01-23T04:56:07.000+00:00 subledgerId: sub-123 name: Reward 10% points of a purchase's current total + validityDuration: 30D customerSessionId: 05c2da0d-48fa-4aa1-b629-898f58f1584d id: 123 programId: 324 @@ -41169,6 +42740,7 @@ components: created: 2000-01-23T04:56:07.000+00:00 subledgerId: sub-123 name: Reward 10% points of a purchase's current total + validityDuration: 30D customerSessionId: 05c2da0d-48fa-4aa1-b629-898f58f1584d id: 123 programId: 324 @@ -41179,6 +42751,7 @@ components: created: 2000-01-23T04:56:07.000+00:00 subledgerId: sub-123 name: Reward 10% points of a purchase's current total + validityDuration: 30D customerSessionId: 05c2da0d-48fa-4aa1-b629-898f58f1584d id: 123 programId: 324 @@ -41241,7 +42814,6 @@ components: timezone: Europe/Berlin description: Customers collect 10 points per 1$ spent title: Point collection - canUpdateJoinPolicy: true canUpdateSubledgers: true programJoinPolicy: not_join accountID: 1 @@ -41323,7 +42895,6 @@ components: timezone: Europe/Berlin description: Customers collect 10 points per 1$ spent title: Point collection - canUpdateJoinPolicy: true canUpdateSubledgers: true programJoinPolicy: not_join accountID: 1 @@ -41444,7 +43015,6 @@ components: timezone: Europe/Berlin description: Customers collect 10 points per 1$ spent title: Point collection - canUpdateJoinPolicy: true canUpdateSubledgers: true programJoinPolicy: not_join accountID: 1 @@ -41526,7 +43096,6 @@ components: timezone: Europe/Berlin description: Customers collect 10 points per 1$ spent title: Point collection - canUpdateJoinPolicy: true canUpdateSubledgers: true programJoinPolicy: not_join accountID: 1 @@ -42554,6 +44123,7 @@ components: description: My collection of SKUs - name: My collection description: My collection of SKUs + campaignsCount: 3 defaultCampaignGroupId: 42 description: This is a template for a discount campaign. features: @@ -42694,6 +44264,7 @@ components: description: My collection of SKUs - name: My collection description: My collection of SKUs + campaignsCount: 3 defaultCampaignGroupId: 42 description: This is a template for a discount campaign. features: @@ -42864,7 +44435,6 @@ components: timezone: Europe/Berlin description: Customers collect 10 points per 1$ spent title: Point collection - canUpdateJoinPolicy: true canUpdateSubledgers: true programJoinPolicy: not_join accountID: 1 @@ -42946,7 +44516,6 @@ components: timezone: Europe/Berlin description: Customers collect 10 points per 1$ spent title: Point collection - canUpdateJoinPolicy: true canUpdateSubledgers: true programJoinPolicy: not_join accountID: 1 @@ -43081,6 +44650,7 @@ components: customerProfileId: kda0fajs0-fad9f-fd9dfsa9-fd9dasjf9 subledgerId: sub-123 name: Reward 50 points for each $500 purchase + validityDuration: 30D ruleName: 10 points for every $100 spent userEmail: john.doe@example.com id: 123 @@ -43102,6 +44672,7 @@ components: customerProfileId: kda0fajs0-fad9f-fd9dfsa9-fd9dasjf9 subledgerId: sub-123 name: Reward 50 points for each $500 purchase + validityDuration: 30D ruleName: 10 points for every $100 spent userEmail: john.doe@example.com id: 123 @@ -44598,6 +46169,7 @@ components: example: data: - accountId: 3886 + isReadonly: false created: 2020-06-10T09:05:27.993483Z permissions: permissionSets: @@ -44645,6 +46217,7 @@ components: delete specific campaign access groups, and view loyalty programs. id: 6 - accountId: 3886 + isReadonly: false created: 2020-06-10T09:05:27.993483Z permissions: permissionSets: @@ -44925,28 +46498,6 @@ components: type: object minItems: 1 type: array - BestPriorPriceRequest_target: - description: Specifies the target for which the best prior price calculation - is taken into consideration. - example: - targetType: AUDIENCE - audienceID: 4 - properties: - targetType: - description: The type of price target. - enum: - - NONE - - AUDIENCE - example: AUDIENCE - type: string - audienceID: - description: The AudienceID of an audience. Must be used with "AUDIENCE" - target type. - example: 4 - format: int64 - type: integer - required: - - targetType ScimBaseUser_name: description: The components of the user’s real name. example: @@ -45016,28 +46567,19 @@ components: $ref: '#/components/schemas/AnalyticsDataPointWithTrend' securitySchemes: api_key_v1: - description: | - To authenticate with the Integration API, generate an API key in the Campaign Manager - and prefix it with `ApiKey-v1`. - - To generate an API key: - - 1. Sign in to the Campaign Manager and open the Application of your choice, or create one. - 1. Click **Settings** > **Integration API Keys**. - 1. Click **Create API Key** and give it a name and an expiration date, then click **Create API Key**. - - You can now use the API key in the HTTP header, prefixing it with `ApiKey-v1`: - - ``` - Authorization: ApiKey-v1 dbc644d33aa74d582bd9479c59e16f970fe13bf3 - ``` - - Or use it inside [an SDK](https://docs.talon.one/docs/dev/sdks/overview), for example, with the JAVA SDK: - - ``` - iApi.getApiClient().setApiKeyPrefix("ApiKey-v1"); - iApi.getApiClient().setApiKey("dbc644d33aa74d582bd9479c59e16f970fe13bf3"); - ``` + description: "To authenticate with the Integration API, generate an API key\ + \ in the Campaign Manager\nand prefix it with `ApiKey-v1`.\n\nTo generate\ + \ an API key:\n\n1. Sign in to the Campaign Manager and open the Application\ + \ of your choice, or create one.\n1. Click **Settings** > **Integration API\ + \ Keys**.\n1. Click **Create API Key** and give it a name and an expiration\ + \ date, then click **Create API Key**.\n \n **Tip**: Avoid choosing expiration\ + \ dates that fall at the end of\n the year or during other high-traffic\ + \ periods.\n\n\nYou can now use the API key in the HTTP header, prefixing\ + \ it with `ApiKey-v1`:\n\n```\nAuthorization: ApiKey-v1 dbc644d33aa74d582bd9479c59e16f970fe13bf3\n\ + ```\n\nOr use it inside [an SDK](https://docs.talon.one/docs/dev/sdks/overview),\ + \ for example, with the JAVA SDK:\n\n```\niApi.getApiClient().setApiKeyPrefix(\"\ + ApiKey-v1\");\niApi.getApiClient().setApiKey(\"dbc644d33aa74d582bd9479c59e16f970fe13bf3\"\ + );\n```\n" in: header name: Authorization type: apiKey @@ -45060,28 +46602,19 @@ components: name: Authorization type: apiKey management_key: - description: | - The API key authentication gives you access to the endpoints selected by the admin who created the key. - Using an API key is the recommended authentication method. - - The key must be generated by an admin and given to the developer that requires it: - - 1. Sign in to the Campaign Manager and click **Account** > **Tools** > **Management API Keys**. - 1. Click **Create Key** and give it a name. - 1. Set an expiration date. - 1. Choose the endpoints the key should give access to. - 1. Click **Create Key**. - 1. Share it with your developer. - - The developer can now use the API key in the HTTP header, prefixing it with `ManagementKey-v1`: - - ``` - Authorization: ManagementKey-v1 bd9479c59e16f9dbc644d33aa74d58270fe13bf3 - ``` + description: "The API key authentication gives you access to the endpoints selected\ + \ by the admin who created the key.\nUsing an API key is the recommended authentication\ + \ method.\n\nThe key must be generated by an admin and given to the developer\ + \ that requires it:\n\n1. Sign in to the Campaign Manager and click **Account**\ + \ > **Tools** > **Management API Keys**.\n1. Click **Create Key** and give\ + \ it a name.\n1. Set an expiration date. \n \n **Tip**: Avoid choosing\ + \ expiration dates that fall at the end of\n the year or during other high-traffic\ + \ periods.\n\n1. Choose the endpoints the key should give access to.\n1. Click\ + \ **Create Key**.\n1. Share it with your developer.\n\nThe developer can now\ + \ use the API key in the HTTP header, prefixing it with `ManagementKey-v1`:\n\ + \n```\nAuthorization: ManagementKey-v1 bd9479c59e16f9dbc644d33aa74d58270fe13bf3\n\ + ```\n" in: header name: Authorization type: apiKey -x-notifications-desc: | - Use [Application notifications](/docs/product/applications/application-notifications/overview) and [loyalty notifications](/docs/product/loyalty-programs/loyalty-notifications/overview) to notify the system of your choice of certain changes that happened in Talon.One. - **Note:** Required fields are not omitted if they are empty (have `null` value). diff --git a/build.gradle b/build.gradle index 176cd785..979274c0 100644 --- a/build.gradle +++ b/build.gradle @@ -3,7 +3,7 @@ apply plugin: 'eclipse' apply plugin: 'java' group = 'one.talon' -version = '14.1.0' +version = '14.1.1' buildscript { repositories { diff --git a/build.sbt b/build.sbt index ef863e19..05d198a6 100644 --- a/build.sbt +++ b/build.sbt @@ -2,7 +2,7 @@ lazy val root = (project in file(".")). settings( organization := "one.talon", name := "talon-one-client", - version := "14.1.0", + version := "14.1.1", scalaVersion := "2.11.4", scalacOptions ++= Seq("-feature"), javacOptions in compile ++= Seq("-Xlint:deprecation"), diff --git a/docs/ActivateLoyaltyPoints.md b/docs/ActivateLoyaltyPoints.md new file mode 100644 index 00000000..cc5ea30c --- /dev/null +++ b/docs/ActivateLoyaltyPoints.md @@ -0,0 +1,14 @@ + + +# ActivateLoyaltyPoints + +Activate loyalty points +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**transactionUUIDs** | [**List<UUID>**](UUID.md) | An array of transaction UUIDs used to activate specific pending point transactions. If provided, do not include the `sessionId` parameter. | [optional] +**sessionId** | **String** | The ID of the session containing the pending point transactions to activate. If provided, do not include the `transactionUUIDs` parameter. | [optional] + + + diff --git a/docs/ActivateLoyaltyPointsResponse.md b/docs/ActivateLoyaltyPointsResponse.md new file mode 100644 index 00000000..69e452ee --- /dev/null +++ b/docs/ActivateLoyaltyPointsResponse.md @@ -0,0 +1,12 @@ + + +# ActivateLoyaltyPointsResponse + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**ledgerEntries** | [**List<LoyaltyLedgerEntry>**](LoyaltyLedgerEntry.md) | Updated ledger entries after activation. | [optional] + + + diff --git a/docs/AddLoyaltyPoints.md b/docs/AddLoyaltyPoints.md index 3f94b2b2..8845088d 100644 --- a/docs/AddLoyaltyPoints.md +++ b/docs/AddLoyaltyPoints.md @@ -9,7 +9,7 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **points** | [**BigDecimal**](BigDecimal.md) | Amount of loyalty points. | **name** | **String** | Name / reason for the point addition. | [optional] -**validityDuration** | **String** | The time format is either: - `immediate` or, - an **integer** followed by one letter indicating the time unit. Examples: `immediate`, `30s`, `40m`, `1h`, `5D`, `7W`, `10M`, `15Y`. Available units: - `s`: seconds - `m`: minutes - `h`: hours - `D`: days - `W`: weeks - `M`: months - `Y`: years You can round certain units up or down: - `_D` for rounding down days only. Signifies the start of the day. - `_U` for rounding up days, weeks, months and years. Signifies the end of the day, week, month or year. If passed, `validUntil` should be omitted. | [optional] +**validityDuration** | **String** | The time format is either: - `unlimited` or, - an **integer** followed by one letter indicating the time unit. Examples: `unlimited`, `30s`, `40m`, `1h`, `5D`, `7W`, `10M`, `15Y`. Available units: - `s`: seconds - `m`: minutes - `h`: hours - `D`: days - `W`: weeks - `M`: months - `Y`: years You can round certain units up or down: - `_D` for rounding down days only. Signifies the start of the day. - `_U` for rounding up days, weeks, months and years. Signifies the end of the day, week, month or year. If passed, `validUntil` should be omitted. | [optional] **validUntil** | [**OffsetDateTime**](OffsetDateTime.md) | Date and time when points should expire. The value should be provided in RFC 3339 format. If passed, `validityDuration` should be omitted. | [optional] **pendingDuration** | **String** | The amount of time before the points are considered valid. The time format is either: - `immediate` or, - `on_action` or, - an **integer** followed by one letter indicating the time unit. Examples: `immediate`, `30s`, `40m`, `1h`, `5D`, `7W`, `10M`, `15Y`, `on_action`. Available units: - `s`: seconds - `m`: minutes - `h`: hours - `D`: days - `W`: weeks - `M`: months - `Y`: years You can round certain units up or down: - `_D` for rounding down days only. Signifies the start of the day. - `_U` for rounding up days, weeks, months and years. Signifies the end of the day, week, month or year. | [optional] **pendingUntil** | [**OffsetDateTime**](OffsetDateTime.md) | Date and time after the points are considered valid. The value should be provided in RFC 3339 format. If passed, `pendingDuration` should be omitted. | [optional] diff --git a/docs/AddLoyaltyPointsEffectProps.md b/docs/AddLoyaltyPointsEffectProps.md index ada3b99d..4b13688b 100644 --- a/docs/AddLoyaltyPointsEffectProps.md +++ b/docs/AddLoyaltyPointsEffectProps.md @@ -21,6 +21,8 @@ Name | Type | Description | Notes **cardIdentifier** | **String** | The alphanumeric identifier of the loyalty card. | [optional] **bundleIndex** | **Long** | The position of the bundle in a list of item bundles created from the same bundle definition. | [optional] **bundleName** | **String** | The name of the bundle definition. | [optional] +**awaitsActivation** | **Boolean** | If `true`, the loyalty points remain pending until a specific action is complete. The `startDate` parameter automatically sets to `on_action`. | [optional] +**validityDuration** | **String** | The duration for which the points remain active, calculated relative to the activation date. **Note**: This value is returned only if `awaitsActivation` is `true` and `expiryDate` is not set. | [optional] diff --git a/docs/AddedDeductedPointsBalancesAction.md b/docs/AddedDeductedPointsBalancesAction.md new file mode 100644 index 00000000..67973ccb --- /dev/null +++ b/docs/AddedDeductedPointsBalancesAction.md @@ -0,0 +1,25 @@ + + +# AddedDeductedPointsBalancesAction + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**amount** | [**BigDecimal**](BigDecimal.md) | The amount of added or deducted loyalty points. | +**reason** | **String** | The reason for the points addition or deduction. | +**operation** | [**OperationEnum**](#OperationEnum) | The action (addition or deduction) made with loyalty points. | +**startDate** | [**OffsetDateTime**](OffsetDateTime.md) | The start date for loyalty points. | [optional] +**expiryDate** | [**OffsetDateTime**](OffsetDateTime.md) | The expiration date for loyalty points. | [optional] + + + +## Enum: OperationEnum + +Name | Value +---- | ----- +ADDITION | "addition" +DEDUCTION | "deduction" + + + diff --git a/docs/AddedDeductedPointsBalancesNotification.md b/docs/AddedDeductedPointsBalancesNotification.md new file mode 100644 index 00000000..2b9a5218 --- /dev/null +++ b/docs/AddedDeductedPointsBalancesNotification.md @@ -0,0 +1,39 @@ + + +# AddedDeductedPointsBalancesNotification + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**employeeName** | **String** | The name of the employee who added or deducted points. | +**loyaltyProgramID** | **Long** | The ID of the loyalty program. | +**notificationType** | [**NotificationTypeEnum**](#NotificationTypeEnum) | The type of notification. | +**profileIntegrationID** | **String** | The integration ID of the customer profile to whom points were added or deducted. | +**sessionIntegrationID** | **String** | The integration ID of the session through which the points were earned or lost. | +**subledgerID** | **String** | The ID of the subledger within the loyalty program where these points were added. | +**typeOfChange** | [**TypeOfChangeEnum**](#TypeOfChangeEnum) | The notification source, that is, it indicates whether the points were added or deducted via one of the following routes: - [The Campaign Manager](/docs/product/getting-started) - [Management API](/management-api#tag/Loyalty) - [Rule Engine](/docs/product/applications/evaluation-order-for-rules-and-filters) | +**userID** | **Long** | The ID of the employee who added or deducted points. | +**actions** | [**List<AddedDeductedPointsBalancesAction>**](AddedDeductedPointsBalancesAction.md) | The list of actions that have been triggered in the loyalty program. | +**currentPoints** | [**BigDecimal**](BigDecimal.md) | The current points balance. | + + + +## Enum: NotificationTypeEnum + +Name | Value +---- | ----- +LOYALTYADDEDDEDUCTEDPOINTSBALANCES | "LoyaltyAddedDeductedPointsBalances" + + + +## Enum: TypeOfChangeEnum + +Name | Value +---- | ----- +CAMPAIGN_MANAGER | "campaign_manager" +RULE_ENGINE | "rule_engine" +MANAGEMENT_API | "management_api" + + + diff --git a/docs/AddedDeductedPointsNotification.md b/docs/AddedDeductedPointsNotification.md index dbad7aeb..97d8a9f1 100644 --- a/docs/AddedDeductedPointsNotification.md +++ b/docs/AddedDeductedPointsNotification.md @@ -6,19 +6,28 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**profileIntegrationID** | **String** | The integration ID of the customer profile to whom points were added or deducted. | +**employeeName** | **String** | The name of the employee who added or deducted points. | **loyaltyProgramID** | **Long** | The ID of the loyalty program. | +**notificationType** | [**NotificationTypeEnum**](#NotificationTypeEnum) | The type of notification. | +**profileIntegrationID** | **String** | The integration ID of the customer profile to whom points were added or deducted. | +**sessionIntegrationID** | **String** | The integration ID of the session through which the points were earned or lost. | **subledgerID** | **String** | The ID of the subledger within the loyalty program where these points were added. | -**amount** | [**BigDecimal**](BigDecimal.md) | The amount of added or deducted loyalty points. | -**reason** | **String** | The reason for the points addition or deduction. | **typeOfChange** | [**TypeOfChangeEnum**](#TypeOfChangeEnum) | The notification source, that is, it indicates whether the points were added or deducted via one of the following routes: - [The Campaign Manager](/docs/product/getting-started) - [Management API](/management-api#tag/Loyalty) - [Rule Engine](/docs/product/applications/evaluation-order-for-rules-and-filters) | -**employeeName** | **String** | The name of the employee who added or deducted points. | **userID** | **Long** | The ID of the employee who added or deducted points. | +**amount** | [**BigDecimal**](BigDecimal.md) | The amount of added or deducted loyalty points. | +**expiryDate** | [**OffsetDateTime**](OffsetDateTime.md) | The expiration date for loyalty points. | [optional] **operation** | [**OperationEnum**](#OperationEnum) | The action (addition or deduction) made with loyalty points. | +**reason** | **String** | The reason for the points addition or deduction. | **startDate** | [**OffsetDateTime**](OffsetDateTime.md) | The start date for loyalty points. | [optional] -**expiryDate** | [**OffsetDateTime**](OffsetDateTime.md) | The expiration date for loyalty points. | [optional] -**sessionIntegrationID** | **String** | The integration ID of the session through which the points were earned or lost. | -**notificationType** | [**NotificationTypeEnum**](#NotificationTypeEnum) | The type of notification. | + + + +## Enum: NotificationTypeEnum + +Name | Value +---- | ----- +LOYALTYPOINTSDEDUCTED | "LoyaltyPointsDeducted" +LOYALTYPOINTSADDED | "LoyaltyPointsAdded" @@ -41,12 +50,3 @@ DEDUCTION | "deduction" -## Enum: NotificationTypeEnum - -Name | Value ----- | ----- -LOYALTYPOINTSDEDUCTED | "LoyaltyPointsDeducted" -LOYALTYPOINTSADDED | "LoyaltyPointsAdded" - - - diff --git a/docs/AsyncCouponsData.md b/docs/AsyncCouponsData.md index 017bf0f1..5b329a2d 100644 --- a/docs/AsyncCouponsData.md +++ b/docs/AsyncCouponsData.md @@ -10,7 +10,15 @@ Name | Type | Description | Notes **typeOfChange** | **String** | | **operation** | **String** | | **employeeName** | **String** | | -**notificationType** | **String** | The type of the notification | +**notificationType** | [**NotificationTypeEnum**](#NotificationTypeEnum) | The type of the notification | + + + +## Enum: NotificationTypeEnum + +Name | Value +---- | ----- +ASYNCCOUPONSCREATED | "AsyncCouponsCreated" diff --git a/docs/BestPriorPriceRequest.md b/docs/BestPriorPriceRequest.md index d96579b0..113b1d49 100644 --- a/docs/BestPriorPriceRequest.md +++ b/docs/BestPriorPriceRequest.md @@ -8,9 +8,9 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **skus** | **List<String>** | List of product SKUs to check when determining the best prior price. | **timeframeEndDate** | [**OffsetDateTime**](OffsetDateTime.md) | The end date and time that defines the latest time for retrieving historical SKU prices. | -**timeframe** | **Integer** | The number of days prior to the timeframeEndDate. Only prices within this look back period are considered for the best prior price evaluation. | +**timeframe** | **String** | The number of days prior to the timeframeEndDate. Only prices within this look back period are considered for the best prior price evaluation. | **strictEndDate** | **Boolean** | Indicates whether the timeframe includes the start of the current sale. - When `false`, the timeframe includes the start date of the current sale. - When `true`, the timeframe striclty uses the number of days specified in `timeframe`. | -**target** | [**BestPriorPriceRequestTarget**](BestPriorPriceRequestTarget.md) | | [optional] +**target** | [**BestPriorTarget**](BestPriorTarget.md) | | [optional] diff --git a/docs/BestPriorTarget.md b/docs/BestPriorTarget.md new file mode 100644 index 00000000..897adf78 --- /dev/null +++ b/docs/BestPriorTarget.md @@ -0,0 +1,23 @@ + + +# BestPriorTarget + +Specifies the target for which the best prior price calculation is taken into consideration. +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**targetType** | [**TargetTypeEnum**](#TargetTypeEnum) | The type of price target. | +**audienceID** | **Long** | The AudienceID of an audience. Must be used with \"AUDIENCE\" target type. | [optional] + + + +## Enum: TargetTypeEnum + +Name | Value +---- | ----- +NONE | "NONE" +AUDIENCE | "AUDIENCE" + + + diff --git a/docs/CampaignCollectionEditedNotification.md b/docs/CampaignCollectionEditedNotification.md index f5be4b07..e9a593bf 100644 --- a/docs/CampaignCollectionEditedNotification.md +++ b/docs/CampaignCollectionEditedNotification.md @@ -6,9 +6,17 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**notificationType** | **String** | The type of the notification | +**notificationType** | [**NotificationTypeEnum**](#NotificationTypeEnum) | The type of the notification | **totalResultSize** | **Long** | The total size of the result set. | **data** | [**List<CampaignCollectionEditedNotificationItem>**](CampaignCollectionEditedNotificationItem.md) | A list of campaign notification data. | [optional] +## Enum: NotificationTypeEnum + +Name | Value +---- | ----- +CAMPAIGNNOTIFICATION | "CampaignNotification" + + + diff --git a/docs/CampaignCreatedNotification.md b/docs/CampaignCreatedNotification.md index 67bb0ec3..43f43a13 100644 --- a/docs/CampaignCreatedNotification.md +++ b/docs/CampaignCreatedNotification.md @@ -6,9 +6,17 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**notificationType** | **String** | The type of the notification | +**notificationType** | [**NotificationTypeEnum**](#NotificationTypeEnum) | The type of the notification | **totalResultSize** | **Long** | The total size of the result set. | **data** | [**List<CampaignCreatedNotificationItem>**](CampaignCreatedNotificationItem.md) | A list of campaign notification data. | [optional] +## Enum: NotificationTypeEnum + +Name | Value +---- | ----- +CAMPAIGNNOTIFICATION | "CampaignNotification" + + + diff --git a/docs/CampaignDeletedNotification.md b/docs/CampaignDeletedNotification.md index f019b23d..b2d4e45b 100644 --- a/docs/CampaignDeletedNotification.md +++ b/docs/CampaignDeletedNotification.md @@ -6,9 +6,17 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**notificationType** | **String** | The type of the notification | +**notificationType** | [**NotificationTypeEnum**](#NotificationTypeEnum) | The type of the notification | **totalResultSize** | **Long** | The total size of the result set. | **data** | [**List<CampaignDeletedNotificationItem>**](CampaignDeletedNotificationItem.md) | A list of campaign notification data. | [optional] +## Enum: NotificationTypeEnum + +Name | Value +---- | ----- +CAMPAIGNNOTIFICATION | "CampaignNotification" + + + diff --git a/docs/CampaignEditedNotification.md b/docs/CampaignEditedNotification.md index 27984768..87c581c3 100644 --- a/docs/CampaignEditedNotification.md +++ b/docs/CampaignEditedNotification.md @@ -6,9 +6,17 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**notificationType** | **String** | The type of the notification | +**notificationType** | [**NotificationTypeEnum**](#NotificationTypeEnum) | The type of the notification | **totalResultSize** | **Long** | The total size of the result set. | **data** | [**List<CampaignEditedNotificationItem>**](CampaignEditedNotificationItem.md) | A list of campaign notification data. | [optional] +## Enum: NotificationTypeEnum + +Name | Value +---- | ----- +CAMPAIGNNOTIFICATION | "CampaignNotification" + + + diff --git a/docs/CampaignEvaluationTreeChangedMessage.md b/docs/CampaignEvaluationTreeChangedMessage.md index 360540d3..7e39edb6 100644 --- a/docs/CampaignEvaluationTreeChangedMessage.md +++ b/docs/CampaignEvaluationTreeChangedMessage.md @@ -6,9 +6,17 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**notificationType** | **String** | The type of the notification | +**notificationType** | [**NotificationTypeEnum**](#NotificationTypeEnum) | The type of the notification | **totalResultSize** | **Long** | The total size of the result set. | **data** | [**List<ApplicationNotification>**](ApplicationNotification.md) | The array of changes. | [optional] +## Enum: NotificationTypeEnum + +Name | Value +---- | ----- +CAMPAIGNNOTIFICATION | "CampaignNotification" + + + diff --git a/docs/CampaignLogSummary.md b/docs/CampaignLogSummary.md new file mode 100644 index 00000000..3da60c73 --- /dev/null +++ b/docs/CampaignLogSummary.md @@ -0,0 +1,27 @@ + + +# CampaignLogSummary + +Campaign Log Summary +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**name** | **String** | Name of the user that performed the change. | +**email** | **String** | E-mail of the user that performed the change. | +**created** | [**OffsetDateTime**](OffsetDateTime.md) | Date and time the change was performed. | +**action** | [**ActionEnum**](#ActionEnum) | Action performed by the user. | +**summary** | **String** | AI-generated summary of the action performed. | + + + +## Enum: ActionEnum + +Name | Value +---- | ----- +CREATE | "create" +DELETE | "delete" +UPDATE | "update" + + + diff --git a/docs/CampaignNotificationBase.md b/docs/CampaignNotificationBase.md index 1b0b62c3..35145151 100644 --- a/docs/CampaignNotificationBase.md +++ b/docs/CampaignNotificationBase.md @@ -6,8 +6,16 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**notificationType** | **String** | The type of the notification | +**notificationType** | [**NotificationTypeEnum**](#NotificationTypeEnum) | The type of the notification | **totalResultSize** | **Long** | The total size of the result set. | +## Enum: NotificationTypeEnum + +Name | Value +---- | ----- +CAMPAIGNNOTIFICATION | "CampaignNotification" + + + diff --git a/docs/CampaignNotificationGeneric.md b/docs/CampaignNotificationGeneric.md index c8640dbe..32ac9f67 100644 --- a/docs/CampaignNotificationGeneric.md +++ b/docs/CampaignNotificationGeneric.md @@ -6,9 +6,17 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**notificationType** | **String** | The type of the notification | +**notificationType** | [**NotificationTypeEnum**](#NotificationTypeEnum) | The type of the notification | **totalResultSize** | **Long** | The total size of the result set. | **data** | **List<Object>** | A list of campaign notification data. | +## Enum: NotificationTypeEnum + +Name | Value +---- | ----- +CAMPAIGNNOTIFICATION | "CampaignNotification" + + + diff --git a/docs/CampaignRulesetChangedNotification.md b/docs/CampaignRulesetChangedNotification.md index 50c0cb3d..41b96d89 100644 --- a/docs/CampaignRulesetChangedNotification.md +++ b/docs/CampaignRulesetChangedNotification.md @@ -6,9 +6,17 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**notificationType** | **String** | The type of the notification | +**notificationType** | [**NotificationTypeEnum**](#NotificationTypeEnum) | The type of the notification | **totalResultSize** | **Long** | The total size of the result set. | **data** | [**List<CampaignRulesetChangedNotificationItem>**](CampaignRulesetChangedNotificationItem.md) | A list of campaign notification data. | [optional] +## Enum: NotificationTypeEnum + +Name | Value +---- | ----- +CAMPAIGNNOTIFICATION | "CampaignNotification" + + + diff --git a/docs/CampaignStateChangedNotification.md b/docs/CampaignStateChangedNotification.md index 3f8e6f6c..5e972cbc 100644 --- a/docs/CampaignStateChangedNotification.md +++ b/docs/CampaignStateChangedNotification.md @@ -6,9 +6,17 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**notificationType** | **String** | The type of the notification | +**notificationType** | [**NotificationTypeEnum**](#NotificationTypeEnum) | The type of the notification | **totalResultSize** | **Long** | The total size of the result set. | **data** | [**List<CampaignStateChangedNotificationItem>**](CampaignStateChangedNotificationItem.md) | A list of campaign notification data. | [optional] +## Enum: NotificationTypeEnum + +Name | Value +---- | ----- +CAMPAIGNNOTIFICATION | "CampaignNotification" + + + diff --git a/docs/CampaignTemplate.md b/docs/CampaignTemplate.md index 35f78b19..143432e2 100644 --- a/docs/CampaignTemplate.md +++ b/docs/CampaignTemplate.md @@ -28,6 +28,7 @@ Name | Type | Description | Notes **campaignCollections** | [**List<CampaignTemplateCollection>**](CampaignTemplateCollection.md) | The campaign collections from the blueprint campaign for the template. | [optional] **defaultCampaignGroupId** | **Long** | The default campaign group ID. | [optional] **campaignType** | [**CampaignTypeEnum**](#CampaignTypeEnum) | The campaign type. Possible type values: - `cartItem`: Type of campaign that can apply effects only to cart items. - `advanced`: Type of campaign that can apply effects to customer sessions and cart items. | +**campaignsCount** | **Long** | The number of Campaigns created from this template. | [optional] **updated** | [**OffsetDateTime**](OffsetDateTime.md) | Timestamp of the most recent update to the campaign template or any of its elements. | [optional] **updatedBy** | **String** | Name of the user who last updated this campaign template, if available. | [optional] **validApplicationIds** | **List<Long>** | The IDs of the Applications that are related to this entity. | diff --git a/docs/CampaignTemplateParams.md b/docs/CampaignTemplateParams.md index 76dfb911..a43b4b91 100644 --- a/docs/CampaignTemplateParams.md +++ b/docs/CampaignTemplateParams.md @@ -22,6 +22,7 @@ NUMBER | "number" BOOLEAN | "boolean" PERCENT | "percent" _LIST_STRING_ | "(list string)" +_LIST_NUMBER_ | "(list number)" TIME | "time" diff --git a/docs/CardAddedDeductedPointsBalancesNotification.md b/docs/CardAddedDeductedPointsBalancesNotification.md new file mode 100644 index 00000000..6985b966 --- /dev/null +++ b/docs/CardAddedDeductedPointsBalancesNotification.md @@ -0,0 +1,41 @@ + + +# CardAddedDeductedPointsBalancesNotification + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**cardIdentifier** | **String** | Loyalty card identification number. | +**employeeName** | **String** | The name of the employee who added or deducted points. | +**loyaltyProgramID** | **Long** | The ID of the loyalty program. | +**notificationType** | [**NotificationTypeEnum**](#NotificationTypeEnum) | The type of notification. | +**profileIntegrationIDs** | **List<String>** | The integration ID of the customer profile to whom points were added or deducted. | +**sessionIntegrationID** | **String** | The integration ID of the session through which the points were earned or lost. | +**subledgerID** | **String** | The ID of the subledger within the loyalty program where these points were added or deducted. | +**typeOfChange** | [**TypeOfChangeEnum**](#TypeOfChangeEnum) | The notification source, that is, it indicates whether the points were added or deducted via one of the following routes: - [The Campaign Manager](/docs/product/getting-started) - [Management API](/management-api#tag/Loyalty) - [Rule Engine](/docs/product/applications/evaluation-order-for-rules-and-filters) | +**userID** | **Long** | The ID of the employee who added or deducted points. | +**usersPerCardLimit** | **Long** | The max amount of user profiles with whom a card can be shared. This can be set to `0` for no limit. | +**actions** | [**List<AddedDeductedPointsBalancesAction>**](AddedDeductedPointsBalancesAction.md) | The list of actions that have been triggered in the loyalty program. | +**currentPoints** | [**BigDecimal**](BigDecimal.md) | The current points balance. | + + + +## Enum: NotificationTypeEnum + +Name | Value +---- | ----- +LOYALTYCARDADDEDDEDUCTEDPOINTSBALANCES | "LoyaltyCardAddedDeductedPointsBalances" + + + +## Enum: TypeOfChangeEnum + +Name | Value +---- | ----- +CAMPAIGN_MANAGER | "campaign_manager" +RULE_ENGINE | "rule_engine" +MANAGEMENT_API | "management_api" + + + diff --git a/docs/CardAddedDeductedPointsNotification.md b/docs/CardAddedDeductedPointsNotification.md index 8c57b8f6..c69f2d20 100644 --- a/docs/CardAddedDeductedPointsNotification.md +++ b/docs/CardAddedDeductedPointsNotification.md @@ -6,21 +6,30 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**profileIntegrationIDs** | **List<String>** | The integration ID of the customer profile to whom points were added or deducted. | +**cardIdentifier** | **String** | Loyalty card identification number. | +**employeeName** | **String** | The name of the employee who added or deducted points. | **loyaltyProgramID** | **Long** | The ID of the loyalty program. | +**notificationType** | [**NotificationTypeEnum**](#NotificationTypeEnum) | The type of notification. | +**profileIntegrationIDs** | **List<String>** | The integration ID of the customer profile to whom points were added or deducted. | +**sessionIntegrationID** | **String** | The integration ID of the session through which the points were earned or lost. | **subledgerID** | **String** | The ID of the subledger within the loyalty program where these points were added or deducted. | -**amount** | [**BigDecimal**](BigDecimal.md) | The amount of added or deducted loyalty points. | -**reason** | **String** | The reason for the points addition or deduction. | **typeOfChange** | [**TypeOfChangeEnum**](#TypeOfChangeEnum) | The notification source, that is, it indicates whether the points were added or deducted via one of the following routes: - [The Campaign Manager](/docs/product/getting-started) - [Management API](/management-api#tag/Loyalty) - [Rule Engine](/docs/product/applications/evaluation-order-for-rules-and-filters) | -**employeeName** | **String** | The name of the employee who added or deducted points. | **userID** | **Long** | The ID of the employee who added or deducted points. | +**usersPerCardLimit** | **Long** | The max amount of user profiles with whom a card can be shared. This can be set to `0` for no limit. | +**amount** | [**BigDecimal**](BigDecimal.md) | The amount of added or deducted loyalty points. | +**expiryDate** | [**OffsetDateTime**](OffsetDateTime.md) | The expiration date for loyalty points. | [optional] **operation** | [**OperationEnum**](#OperationEnum) | The action (addition or deduction) made with loyalty points. | +**reason** | **String** | The reason for the points addition or deduction. | **startDate** | [**OffsetDateTime**](OffsetDateTime.md) | The start date for loyalty points. | [optional] -**expiryDate** | [**OffsetDateTime**](OffsetDateTime.md) | The expiration date for loyalty points. | [optional] -**sessionIntegrationID** | **String** | The integration ID of the session through which the points were earned or lost. | -**notificationType** | [**NotificationTypeEnum**](#NotificationTypeEnum) | The type of notification. | -**cardIdentifier** | **String** | Loyalty card identification number. | -**usersPerCardLimit** | **Long** | The max amount of user profiles with whom a card can be shared. This can be set to `0` for no limit. | + + + +## Enum: NotificationTypeEnum + +Name | Value +---- | ----- +LOYALTYCARDPOINTSDEDUCTED | "LoyaltyCardPointsDeducted" +LOYALTYCARDPOINTSADDED | "LoyaltyCardPointsAdded" @@ -43,12 +52,3 @@ DEDUCTION | "deduction" -## Enum: NotificationTypeEnum - -Name | Value ----- | ----- -LOYALTYCARDPOINTSDEDUCTED | "LoyaltyCardPointsDeducted" -LOYALTYCARDPOINTSADDED | "LoyaltyCardPointsAdded" - - - diff --git a/docs/CardLedgerPointsEntryIntegrationAPI.md b/docs/CardLedgerPointsEntryIntegrationAPI.md index e19b2a1e..73d31d44 100644 --- a/docs/CardLedgerPointsEntryIntegrationAPI.md +++ b/docs/CardLedgerPointsEntryIntegrationAPI.md @@ -18,6 +18,7 @@ Name | Type | Description | Notes **expiryDate** | **String** | Date when points expire. Possible values are: - `unlimited`: Points have no expiration date. - `timestamp value`: Points expire on the given date and time. | **subledgerId** | **String** | ID of the subledger. | **amount** | [**BigDecimal**](BigDecimal.md) | Amount of loyalty points added in the transaction. | +**validityDuration** | **String** | The duration for which the points remain active, relative to the activation date. **Note**: This only applies to points for which `awaitsActivation` is `true` and `expiryDate` is not set. | [optional] diff --git a/docs/CardLedgerTransactionLogEntryIntegrationAPI.md b/docs/CardLedgerTransactionLogEntryIntegrationAPI.md index 4165a4c5..1224d997 100644 --- a/docs/CardLedgerTransactionLogEntryIntegrationAPI.md +++ b/docs/CardLedgerTransactionLogEntryIntegrationAPI.md @@ -14,13 +14,14 @@ Name | Type | Description | Notes **customerSessionId** | **String** | ID of the customer session where the transaction occurred. | [optional] **type** | [**TypeEnum**](#TypeEnum) | Type of transaction. Possible values: - `addition`: Signifies added points. - `subtraction`: Signifies deducted points. | **name** | **String** | Name or reason of the loyalty ledger transaction. | -**startDate** | **String** | When points become active. Possible values: - `immediate`: Points are active immediately. - a timestamp value: Points become active at a given date and time. | +**startDate** | **String** | When points become active. Possible values: - `immediate`: Points are active immediately. - `on_action`: Points become active based on the customer's action. - a timestamp value: Points become active at a given date and time. | **expiryDate** | **String** | Date when points expire. Possible values are: - `unlimited`: Points have no expiration date. - `timestamp value`: Points expire on the given date. | **subledgerId** | **String** | ID of the subledger. | **amount** | [**BigDecimal**](BigDecimal.md) | Amount of loyalty points added or deducted in the transaction. | **id** | **Long** | ID of the loyalty ledger transaction. | **rulesetId** | **Long** | The ID of the ruleset containing the rule that triggered this effect. | [optional] **ruleName** | **String** | The name of the rule that triggered this effect. | [optional] +**validityDuration** | **String** | The duration for which the points remain active, relative to the activation date. **Note**: This only applies to points for which `awaitsActivation` is `true` and `expiryDate` is not set. | [optional] diff --git a/docs/CouponFailureSummary.md b/docs/CouponFailureSummary.md new file mode 100644 index 00000000..22355f1b --- /dev/null +++ b/docs/CouponFailureSummary.md @@ -0,0 +1,23 @@ + + +# CouponFailureSummary + +Summary of the reasons for coupon redemption failure. +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**id** | **Long** | ID of the evaluation record. | +**eventID** | **Long** | ID of the event. | +**sessionID** | **String** | ID of the customer session set by your integration layer. | [optional] +**profileID** | **String** | ID of the customer profile set by your integration layer. | [optional] +**status** | **String** | Status defines if the coupon code was applied or rejected. | +**couponCode** | **String** | Coupon code passed for evaluation. | +**language** | **String** | Language of the summary. | +**shortSummary** | **String** | A summary of the reasons for coupon redemption failure. | +**longSummary** | **String** | A detailed summary of the reasons for coupon redemption failure based on events of the entire session. | +**createdAt** | [**OffsetDateTime**](OffsetDateTime.md) | Timestamp when the request was made. | +**updatedAt** | [**OffsetDateTime**](OffsetDateTime.md) | Timestamp when the request was last updated. | + + + diff --git a/docs/CouponRejections.md b/docs/CouponRejections.md new file mode 100644 index 00000000..d4b13acc --- /dev/null +++ b/docs/CouponRejections.md @@ -0,0 +1,14 @@ + + +# CouponRejections + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**sessionDetails** | [**List<SessionCoupons>**](SessionCoupons.md) | Array containing details from session like session id and optional coupon code used in the session. Only the first 15 entries will be processed. | +**applicationId** | **Long** | The application ID for which the coupon was used. | +**language** | **String** | The language the summary will be generated in. | [optional] + + + diff --git a/docs/CouponsNotificationData.md b/docs/CouponsNotificationData.md index d15f086e..a04e3998 100644 --- a/docs/CouponsNotificationData.md +++ b/docs/CouponsNotificationData.md @@ -11,7 +11,16 @@ Name | Type | Description | Notes **employeeName** | **String** | The name of the employee associated with the operation. | **data** | [**List<ExtendedCoupon>**](ExtendedCoupon.md) | A list of extended coupon data. | [optional] **totalResultSize** | **Long** | | [optional] -**notificationType** | **String** | The type of the notification | +**notificationType** | [**NotificationTypeEnum**](#NotificationTypeEnum) | The type of the notification | + + + +## Enum: NotificationTypeEnum + +Name | Value +---- | ----- +COUPONUPDATED | "CouponUpdated" +COUPONDELETED | "CouponDeleted" diff --git a/docs/CreateCouponData.md b/docs/CreateCouponData.md index 09ed9ae3..dfade05b 100644 --- a/docs/CreateCouponData.md +++ b/docs/CreateCouponData.md @@ -12,7 +12,15 @@ Name | Type | Description | Notes **typeOfChange** | **String** | | **operation** | **String** | | **employeeName** | **String** | | -**notificationType** | **String** | The type of the not | +**notificationType** | [**NotificationTypeEnum**](#NotificationTypeEnum) | The type of the not | + + + +## Enum: NotificationTypeEnum + +Name | Value +---- | ----- +COUPONCREATED | "CouponCreated" diff --git a/docs/DeleteCouponsData.md b/docs/DeleteCouponsData.md index 16c11836..9d976756 100644 --- a/docs/DeleteCouponsData.md +++ b/docs/DeleteCouponsData.md @@ -13,7 +13,15 @@ Name | Type | Description | Notes **applicationID** | **Long** | | **campaignID** | **Long** | | **totalResultSize** | **Long** | | -**notificationType** | **String** | The type of the notification | +**notificationType** | [**NotificationTypeEnum**](#NotificationTypeEnum) | The type of the notification | + + + +## Enum: NotificationTypeEnum + +Name | Value +---- | ----- +COUPONSDELETED | "CouponsDeleted" diff --git a/docs/DeleteLoyaltyTransactionsRequest.md b/docs/DeleteLoyaltyTransactionsRequest.md new file mode 100644 index 00000000..1a201c85 --- /dev/null +++ b/docs/DeleteLoyaltyTransactionsRequest.md @@ -0,0 +1,23 @@ + + +# DeleteLoyaltyTransactionsRequest + +Request to delete transactions based on the specified scope. +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**scope** | [**ScopeEnum**](#ScopeEnum) | `AllSubledgers` deletes all transactions for the specified customer profile from all ledgers in the loyalty program. `SelectedSubledgers` deletes all transactions for the specified customer profile only from the given ledgers in the loyalty program. | +**subledgerIds** | **List<String>** | The IDs of the ledgers from which to delete the customer's transactions. This parameter is required if the `scope` is set to `SelectedSubledgers`. To specify the main ledger, provide an empty string (\"\"). | [optional] + + + +## Enum: ScopeEnum + +Name | Value +---- | ----- +ALLSUBLEDGERS | "AllSubledgers" +SELECTEDSUBLEDGERS | "SelectedSubledgers" + + + diff --git a/docs/EventV3.md b/docs/EventV3.md new file mode 100644 index 00000000..9f4fc30f --- /dev/null +++ b/docs/EventV3.md @@ -0,0 +1,19 @@ + + +# EventV3 + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**profileId** | **String** | ID of the customer profile set by your integration layer. **Note:** If the customer does not yet have a known `profileId`, we recommend you use a guest `profileId`. | +**storeIntegrationId** | **String** | The integration ID of the store. You choose this ID when you create a store. | [optional] +**evaluableCampaignIds** | **List<Long>** | When using the `dry` query parameter, use this property to list the campaign to be evaluated by the Rule Engine. These campaigns will be evaluated, even if they are disabled, allowing you to test specific campaigns before activating them. | [optional] +**integrationId** | **String** | The unique ID of the current event. Only one event with this ID could be activated, duplicated events are forbidden. | +**type** | **String** | A string representing the event name. Must not be a reserved event name. You create this value when you [create an attribute](https://docs.talon.one/docs/dev/concepts/entities/events#creating-a-custom-event) of type `event` in the Campaign Manager. | +**attributes** | [**Object**](.md) | Arbitrary additional JSON properties associated with the event. They must be created in the Campaign Manager before setting them with this property. See [creating custom attributes](https://docs.talon.one/docs/product/account/dev-tools/managing-attributes#creating-a-custom-attribute). | [optional] +**connectedSessionID** | **String** | The ID of the session that happened in the past. | [optional] +**previousEventID** | **String** | The unique identifier of the event that happened in the past. | [optional] + + + diff --git a/docs/GenerateCampaignSummary.md b/docs/GenerateCampaignSummary.md new file mode 100644 index 00000000..c4ecd138 --- /dev/null +++ b/docs/GenerateCampaignSummary.md @@ -0,0 +1,14 @@ + + +# GenerateCampaignSummary + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**campaignID** | **Long** | ID of a campaign. | +**rulesetID** | **Long** | ID of a ruleset. | +**currency** | **String** | Currency for the campaign. | + + + diff --git a/docs/IntegrationApi.md b/docs/IntegrationApi.md index 71687fe6..eb90399e 100644 --- a/docs/IntegrationApi.md +++ b/docs/IntegrationApi.md @@ -4,6 +4,7 @@ All URLs are relative to `https://yourbaseurl.talon.one`. Method | HTTP request | Description ------------- | ------------- | ------------- +[**activateLoyaltyPoints**](IntegrationApi.md#activateLoyaltyPoints) | **POST** /v1/loyalty_programs/{loyaltyProgramId}/activate_points | Activate loyalty points [**bestPriorPrice**](IntegrationApi.md#bestPriorPrice) | **POST** /v1/best_prior_price | Fetch best prior price [**createAudienceV2**](IntegrationApi.md#createAudienceV2) | **POST** /v2/audiences | Create audience [**createCouponReservation**](IntegrationApi.md#createCouponReservation) | **POST** /v1/coupon_reservations/{couponValue} | Create coupon reservation @@ -30,6 +31,7 @@ Method | HTTP request | Description [**returnCartItems**](IntegrationApi.md#returnCartItems) | **POST** /v2/customer_sessions/{customerSessionId}/returns | Return cart items [**syncCatalog**](IntegrationApi.md#syncCatalog) | **PUT** /v1/catalogs/{catalogId}/sync | Sync cart item catalog [**trackEventV2**](IntegrationApi.md#trackEventV2) | **POST** /v2/events | Track event +[**unlinkLoyaltyCardFromProfile**](IntegrationApi.md#unlinkLoyaltyCardFromProfile) | **POST** /v2/loyalty_programs/{loyaltyProgramId}/cards/{loyaltyCardId}/unlink_profile | Unlink customer profile from a loyalty card [**updateAudienceCustomersAttributes**](IntegrationApi.md#updateAudienceCustomersAttributes) | **PUT** /v2/audience_customers/{audienceId}/attributes | Update profile attributes for all customers in audience [**updateAudienceV2**](IntegrationApi.md#updateAudienceV2) | **PUT** /v2/audiences/{audienceId} | Update audience name [**updateCustomerProfileAudiences**](IntegrationApi.md#updateCustomerProfileAudiences) | **POST** /v2/customer_audiences | Update multiple customer profiles' audiences @@ -39,6 +41,83 @@ Method | HTTP request | Description +## activateLoyaltyPoints + +> ActivateLoyaltyPointsResponse activateLoyaltyPoints(loyaltyProgramId, body) + +Activate loyalty points + +Activate points when a defined action occurs. You can activate pending points using one of the following parameters: - `sessionId`: Activates all points earned in the specified session. - `transactionUUIDs`: Activates points earned in the transactions specified by the given UUIDs. + +### Example + +```java +// Import classes: +import one.talon.ApiClient; +import one.talon.ApiException; +import one.talon.Configuration; +import one.talon.auth.*; +import one.talon.models.*; +import one.talon.api.IntegrationApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("https://yourbaseurl.talon.one"); + + // Configure API key authorization: api_key_v1 + ApiKeyAuth api_key_v1 = (ApiKeyAuth) defaultClient.getAuthentication("api_key_v1"); + api_key_v1.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //api_key_v1.setApiKeyPrefix("Token"); + + IntegrationApi apiInstance = new IntegrationApi(defaultClient); + Long loyaltyProgramId = 56L; // Long | The identifier for the loyalty program. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. + ActivateLoyaltyPoints body = new ActivateLoyaltyPoints(); // ActivateLoyaltyPoints | body + try { + ActivateLoyaltyPointsResponse result = apiInstance.activateLoyaltyPoints(loyaltyProgramId, body); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling IntegrationApi#activateLoyaltyPoints"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **loyaltyProgramId** | **Long**| The identifier for the loyalty program. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. | + **body** | [**ActivateLoyaltyPoints**](ActivateLoyaltyPoints.md)| body | + +### Return type cool + +[**ActivateLoyaltyPointsResponse**](ActivateLoyaltyPointsResponse.md) + +### Authorization + +[api_key_v1](../README.md#api_key_v1) + +### HTTP request headers + +- **Content-Type**: application/json +- **Accept**: application/json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | OK | - | +| **400** | Bad request | - | +| **401** | Unauthorized | - | +| **404** | Not found | - | + + ## bestPriorPrice > List<BestPriorPrice> bestPriorPrice(body) @@ -204,7 +283,7 @@ Name | Type | Description | Notes Create coupon reservation -Create a coupon reservation for the specified customer profiles on the specified coupon. You can also create a reservation via the Campaign Manager using the [Create coupon code reservation](https://docs.talon.one/docs/product/rules/effects/using-effects#reserving-a-coupon-code) effect. **Note:** - If the **Reservation mandatory** option was selected when creating the specified coupon, the endpoint creates a **hard** reservation, meaning only users who have this coupon code reserved can redeem it. Otherwise, the endpoint creates a **soft** reservation, meaning the coupon is associated with the specified customer profiles (they show up when using the [List customer data](https://docs.talon.one/integration-api#operation/getCustomerInventory) endpoint), but any user can redeem it. This can be useful, for example, to display a _coupon wallet_ for customers when they visit your store. - If the **Coupon visibility** option was selected when creating the specified coupon, the coupon code is implicitly soft-reserved for all customers, and the code will be returned for all customer profiles in the [List customer data](https://docs.talon.one/integration-api#operation/getCustomerInventory) endpoint. - This endpoint overrides the coupon reservation limit set when [the coupon is created](https://docs.talon.one/docs/product/campaigns/coupons/creating-coupons). To ensure that coupons cannot be reserved after the reservation limit is reached, use the [Create coupon code reservation](https://docs.talon.one/docs/product/rules/effects/using-effects#reserving-a-coupon-code) effect in the Rule Builder and the [Update customer session](https://docs.talon.one/integration-api#tag/Customer-sessions/operation/updateCustomerSessionV2) endpoint. To delete a reservation, use the [Delete reservation](https://docs.talon.one/integration-api#tag/Coupons/operation/deleteCouponReservation) endpoint. +Create a coupon reservation for the specified customer profiles on the specified coupon. You can also create a reservation via the Campaign Manager using the [Create coupon code reservation](https://docs.talon.one/docs/product/rules/effects/using-effects#reserving-a-coupon-code) effect. **Note:** - If the **Reservation mandatory** option was selected when creating the specified coupon, the endpoint creates a **hard** reservation, meaning only users who have this coupon code reserved can redeem it. Otherwise, the endpoint creates a **soft** reservation, meaning the coupon is associated with the specified customer profiles (they show up when using the [List customer data](https://docs.talon.one/integration-api#operation/getCustomerInventory) endpoint), but any user can redeem it. This can be useful, for example, to display a _coupon wallet_ for customers when they visit your store. - If the **Coupon visibility** option was selected when creating the specified coupon, the coupon code is implicitly soft-reserved for all customers, and the code will be returned for all customer profiles in the [List customer data](https://docs.talon.one/integration-api#operation/getCustomerInventory) endpoint. - This endpoint overrides the coupon reservation limit set when [the coupon is created](https://docs.talon.one/docs/product/campaigns/coupons/creating-coupons). To ensure that coupons cannot be reserved after the reservation limit is reached, use the [Create coupon code reservation](https://docs.talon.one/docs/product/rules/effects/using-effects#reserving-a-coupon-code) effect in the Rule Builder and the [Update customer session](https://docs.talon.one/integration-api#tag/Customer-sessions/operation/updateCustomerSessionV2) endpoint. To delete a reservation, use the [Delete reservation](https://docs.talon.one/integration-api#tag/Coupons/operation/deleteCouponReservation) endpoint. ### Example @@ -229,7 +308,7 @@ public class Example { //api_key_v1.setApiKeyPrefix("Token"); IntegrationApi apiInstance = new IntegrationApi(defaultClient); - String couponValue = "couponValue_example"; // String | The code of the coupon. + String couponValue = "couponValue_example"; // String | The code of the coupon. **Important:** The coupon code requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `SUMMER25%OFF` as `SUMMER25%25OFF`. CouponReservations body = new CouponReservations(); // CouponReservations | body try { Coupon result = apiInstance.createCouponReservation(couponValue, body); @@ -250,7 +329,7 @@ public class Example { Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **couponValue** | **String**| The code of the coupon. | + **couponValue** | **String**| The code of the coupon. **Important:** The coupon code requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `SUMMER25%OFF` as `SUMMER25%25OFF`. | **body** | [**CouponReservations**](CouponReservations.md)| body | ### Return type cool @@ -604,7 +683,7 @@ public class Example { //api_key_v1.setApiKeyPrefix("Token"); IntegrationApi apiInstance = new IntegrationApi(defaultClient); - String couponValue = "couponValue_example"; // String | The code of the coupon. + String couponValue = "couponValue_example"; // String | The code of the coupon. **Important:** The coupon code requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `SUMMER25%OFF` as `SUMMER25%25OFF`. CouponReservations body = new CouponReservations(); // CouponReservations | body try { apiInstance.deleteCouponReservation(couponValue, body); @@ -624,7 +703,7 @@ public class Example { Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **couponValue** | **String**| The code of the coupon. | + **couponValue** | **String**| The code of the coupon. **Important:** The coupon code requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `SUMMER25%OFF` as `SUMMER25%25OFF`. | **body** | [**CouponReservations**](CouponReservations.md)| body | ### Return type cool @@ -1391,7 +1470,7 @@ Name | Type | Description | Notes ## getLoyaltyCardTransactions -> InlineResponse2003 getLoyaltyCardTransactions(loyaltyProgramId, loyaltyCardId, subledgerId, loyaltyTransactionType, startDate, endDate, customerSessionIDs, transactionUUIDs, pageSize, skip) +> InlineResponse2003 getLoyaltyCardTransactions(loyaltyProgramId, loyaltyCardId, subledgerId, loyaltyTransactionType, startDate, endDate, customerSessionIDs, transactionUUIDs, pageSize, skip, awaitsActivation) List card's transactions @@ -1430,8 +1509,9 @@ public class Example { List transactionUUIDs = Arrays.asList(); // List | Filter the results by a list of transaction UUIDs. To include multiple IDs, repeat the parameter for each one, for example, `?transactionUUIDs=uuid1&transactionUUIDs=uuid2`. The response contains only data associated with the specified transactions. Long pageSize = 50lL; // Long | The number of items in the response. Long skip = 56L; // Long | The number of items to skip when paging through large result sets. + Boolean awaitsActivation = true; // Boolean | If `true`: Filters results to include only point transactions that have action-based activation and have not expired. If `false`: Returns a `400` response. try { - InlineResponse2003 result = apiInstance.getLoyaltyCardTransactions(loyaltyProgramId, loyaltyCardId, subledgerId, loyaltyTransactionType, startDate, endDate, customerSessionIDs, transactionUUIDs, pageSize, skip); + InlineResponse2003 result = apiInstance.getLoyaltyCardTransactions(loyaltyProgramId, loyaltyCardId, subledgerId, loyaltyTransactionType, startDate, endDate, customerSessionIDs, transactionUUIDs, pageSize, skip, awaitsActivation); System.out.println(result); } catch (ApiException e) { System.err.println("Exception when calling IntegrationApi#getLoyaltyCardTransactions"); @@ -1459,6 +1539,7 @@ Name | Type | Description | Notes **transactionUUIDs** | [**List<String>**](String.md)| Filter the results by a list of transaction UUIDs. To include multiple IDs, repeat the parameter for each one, for example, `?transactionUUIDs=uuid1&transactionUUIDs=uuid2`. The response contains only data associated with the specified transactions. | [optional] **pageSize** | **Long**| The number of items in the response. | [optional] [default to 50l] **skip** | **Long**| The number of items to skip when paging through large result sets. | [optional] + **awaitsActivation** | **Boolean**| If `true`: Filters results to include only point transactions that have action-based activation and have not expired. If `false`: Returns a `400` response. | [optional] ### Return type cool @@ -1575,7 +1656,7 @@ Name | Type | Description | Notes ## getLoyaltyProgramProfileTransactions -> InlineResponse2004 getLoyaltyProgramProfileTransactions(loyaltyProgramId, integrationId, customerSessionIDs, transactionUUIDs, subledgerId, loyaltyTransactionType, startDate, endDate, pageSize, skip) +> InlineResponse2004 getLoyaltyProgramProfileTransactions(loyaltyProgramId, integrationId, customerSessionIDs, transactionUUIDs, subledgerId, loyaltyTransactionType, startDate, endDate, pageSize, skip, awaitsActivation) List customer's loyalty transactions @@ -1614,8 +1695,9 @@ public class Example { OffsetDateTime endDate = new OffsetDateTime(); // OffsetDateTime | Date and time by which results are returned. Results are filtered by transaction creation date. **Note:** - It must be an RFC3339 timestamp string. - You can include a time component in your string, for example, `T23:59:59` to specify the end of the day. The time zone setting considered is `UTC`. If you do not include a time component, a default time value of `T00:00:00` (midnight) in `UTC` is considered. Long pageSize = 50lL; // Long | The number of items in the response. Long skip = 56L; // Long | The number of items to skip when paging through large result sets. + Boolean awaitsActivation = true; // Boolean | If `true`: Filters results to include only point transactions that have action-based activation and have not expired. If `false`: Returns a `400` response. try { - InlineResponse2004 result = apiInstance.getLoyaltyProgramProfileTransactions(loyaltyProgramId, integrationId, customerSessionIDs, transactionUUIDs, subledgerId, loyaltyTransactionType, startDate, endDate, pageSize, skip); + InlineResponse2004 result = apiInstance.getLoyaltyProgramProfileTransactions(loyaltyProgramId, integrationId, customerSessionIDs, transactionUUIDs, subledgerId, loyaltyTransactionType, startDate, endDate, pageSize, skip, awaitsActivation); System.out.println(result); } catch (ApiException e) { System.err.println("Exception when calling IntegrationApi#getLoyaltyProgramProfileTransactions"); @@ -1643,6 +1725,7 @@ Name | Type | Description | Notes **endDate** | **OffsetDateTime**| Date and time by which results are returned. Results are filtered by transaction creation date. **Note:** - It must be an RFC3339 timestamp string. - You can include a time component in your string, for example, `T23:59:59` to specify the end of the day. The time zone setting considered is `UTC`. If you do not include a time component, a default time value of `T00:00:00` (midnight) in `UTC` is considered. | [optional] **pageSize** | **Long**| The number of items in the response. | [optional] [default to 50l] **skip** | **Long**| The number of items to skip when paging through large result sets. | [optional] + **awaitsActivation** | **Boolean**| If `true`: Filters results to include only point transactions that have action-based activation and have not expired. If `false`: Returns a `400` response. | [optional] ### Return type cool @@ -1697,7 +1780,7 @@ public class Example { //api_key_v1.setApiKeyPrefix("Token"); IntegrationApi apiInstance = new IntegrationApi(defaultClient); - String couponValue = "couponValue_example"; // String | The code of the coupon. + String couponValue = "couponValue_example"; // String | The code of the coupon. **Important:** The coupon code requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `SUMMER25%OFF` as `SUMMER25%25OFF`. try { InlineResponse200 result = apiInstance.getReservedCustomers(couponValue); System.out.println(result); @@ -1717,7 +1800,7 @@ public class Example { Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **couponValue** | **String**| The code of the coupon. | + **couponValue** | **String**| The code of the coupon. **Important:** The coupon code requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `SUMMER25%OFF` as `SUMMER25%25OFF`. | ### Return type cool @@ -1826,7 +1909,7 @@ Name | Type | Description | Notes Reopen customer session -Reopen a closed [customer session](https://docs.talon.one/docs/dev/concepts/entities/customer-sessions). For example, if a session has been completed but still needs to be edited, you can reopen it with this endpoint. A reopen session is treated like a standard open session. When reopening a session: - The `talon_session_reopened` event is triggered. You can see it in the **Events** view in the Campaign Manager. - The session state is updated to `open`. - Any modified budgets and triggered effects are rolled back when the session closes. - Depending on the [return policy](https://docs.talon.one/docs/product/loyalty-programs/managing-loyalty-programs#return-policy) in your loyalty programs, points are rolled back in the following ways: - Pending points are rolled back automatically. - If **Active points deduction** setting is enabled, any points that were earned and activated when the session closed are rolled back. - If **Negative balance** is enabled, the rollback can create a negative points balance. <details> <summary><strong>Effects and budgets unimpacted by a session reopening</strong></summary> <div> <p>The following effects and budgets remain in the state they were in when the session closed:</p> <ul> <li>Add free item effect</li> <li>Award giveaway</li> <li>Coupon and referral creation</li> <li>Coupon reservation</li> <li>Custom effect</li> <li>Update attribute value</li> <li>Update cart item attribute value</li> </ul> </div> </details> <p>To see an example of a rollback, see the <a href=\"https://docs.talon.one/docs/dev/tutorials/rolling-back-effects\">Cancelling a session with campaign budgets</a>tutorial.</p> **Note:** If your order workflow requires you to create a new session instead of reopening a session, use the [Update customer session](https://docs.talon.one/integration-api#tag/Customer-sessions/operation/updateCustomerSessionV2) endpoint to cancel a closed session and create a new one. +Reopen a closed [customer session](https://docs.talon.one/docs/dev/concepts/entities/customer-sessions). For example, if a session has been completed but still needs to be edited, you can reopen it with this endpoint. A reopen session is treated like a standard open session. When reopening a session: - The `talon_session_reopened` event is triggered. You can see it in the **Events** view in the Campaign Manager. - The session state is updated to `open`. - Any modified budgets and triggered effects are rolled back when the session closes. - Depending on the [return policy](https://docs.talon.one/docs/product/loyalty-programs/managing-loyalty-programs#return-policy) in your loyalty programs, points are rolled back in the following ways: - Pending points are rolled back automatically. - If **Active points deduction** setting is enabled, any points that were earned and activated when the session closed are rolled back. - If **Negative balance** is enabled, the rollback can create a negative points balance. <details> <summary><strong>Effects and budgets unimpacted by a session reopening</strong></summary> <div> <p>The following effects and budgets remain in the state they were in when the session closed:</p> <ul> <li>Add free item effect</li> <li>Award giveaway</li> <li>Coupon and referral creation</li> <li>Coupon reservation</li> <li>Custom effect</li> <li>Update attribute value</li> <li>Update cart item attribute value</li> </ul> </div> </details> <p>To see an example of a rollback, see the <a href=\"https://docs.talon.one/docs/dev/tutorials/rolling-back-effects\">Cancelling a session with campaign budgets</a> tutorial.</p> **Note:** If your order workflow requires you to create a new session instead of reopening a session, use the [Update customer session](https://docs.talon.one/integration-api#tag/Customer-sessions/operation/updateCustomerSessionV2) endpoint to cancel a closed session and create a new one. ### Example @@ -2130,6 +2213,85 @@ Name | Type | Description | Notes | **409** | Too many requests or limit reached - Avoid parallel requests. See the [docs](https://docs.talon.one/docs/dev/tutorials/integrating-talon-one#managing-parallel-requests). | - | +## unlinkLoyaltyCardFromProfile + +> LoyaltyCard unlinkLoyaltyCardFromProfile(loyaltyProgramId, loyaltyCardId, body) + +Unlink customer profile from a loyalty card + +Unlink a customer profile from a [registered](https://docs.talon.one/docs/product/loyalty-programs/card-based/managing-loyalty-cards#linking-customer-profiles-to-a-loyalty-card) loyalty card. To get the `integrationId` of a customer profile, you can use the [Update customer session](https://docs.talon.one/integration-api#operation/updateCustomerSessionV2) endpoint. + +### Example + +```java +// Import classes: +import one.talon.ApiClient; +import one.talon.ApiException; +import one.talon.Configuration; +import one.talon.auth.*; +import one.talon.models.*; +import one.talon.api.IntegrationApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("https://yourbaseurl.talon.one"); + + // Configure API key authorization: api_key_v1 + ApiKeyAuth api_key_v1 = (ApiKeyAuth) defaultClient.getAuthentication("api_key_v1"); + api_key_v1.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //api_key_v1.setApiKeyPrefix("Token"); + + IntegrationApi apiInstance = new IntegrationApi(defaultClient); + Long loyaltyProgramId = 56L; // Long | The identifier of the card-based loyalty program containing the loyalty card. You can get this ID using the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. + String loyaltyCardId = "loyaltyCardId_example"; // String | The identifier of the loyalty card. You can get this ID using the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. + LoyaltyCardRegistration body = new LoyaltyCardRegistration(); // LoyaltyCardRegistration | body + try { + LoyaltyCard result = apiInstance.unlinkLoyaltyCardFromProfile(loyaltyProgramId, loyaltyCardId, body); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling IntegrationApi#unlinkLoyaltyCardFromProfile"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **loyaltyProgramId** | **Long**| The identifier of the card-based loyalty program containing the loyalty card. You can get this ID using the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. | + **loyaltyCardId** | **String**| The identifier of the loyalty card. You can get this ID using the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. | + **body** | [**LoyaltyCardRegistration**](LoyaltyCardRegistration.md)| body | + +### Return type cool + +[**LoyaltyCard**](LoyaltyCard.md) + +### Authorization + +[api_key_v1](../README.md#api_key_v1) + +### HTTP request headers + +- **Content-Type**: application/json +- **Accept**: application/json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | OK | - | +| **400** | Bad request | - | +| **401** | Unauthorized | - | +| **404** | Not found | - | + + ## updateAudienceCustomersAttributes > updateAudienceCustomersAttributes(audienceId, body) diff --git a/docs/IntegrationEventV3Request.md b/docs/IntegrationEventV3Request.md new file mode 100644 index 00000000..fc0fd486 --- /dev/null +++ b/docs/IntegrationEventV3Request.md @@ -0,0 +1,34 @@ + + +# IntegrationEventV3Request + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**profileId** | **String** | ID of the customer profile set by your integration layer. **Note:** If the customer does not yet have a known `profileId`, we recommend you use a guest `profileId`. | +**storeIntegrationId** | **String** | The integration ID of the store. You choose this ID when you create a store. | [optional] +**evaluableCampaignIds** | **List<Long>** | When using the `dry` query parameter, use this property to list the campaign to be evaluated by the Rule Engine. These campaigns will be evaluated, even if they are disabled, allowing you to test specific campaigns before activating them. | [optional] +**integrationId** | **String** | The unique ID of the current event. Only one event with this ID could be activated, duplicated events are forbidden. | +**type** | **String** | A string representing the event name. Must not be a reserved event name. You create this value when you [create an attribute](https://docs.talon.one/docs/dev/concepts/entities/events#creating-a-custom-event) of type `event` in the Campaign Manager. | +**attributes** | [**Object**](.md) | Arbitrary additional JSON properties associated with the event. They must be created in the Campaign Manager before setting them with this property. See [creating custom attributes](https://docs.talon.one/docs/product/account/dev-tools/managing-attributes#creating-a-custom-attribute). | [optional] +**connectedSessionID** | **String** | The ID of the session that happened in the past. | [optional] +**previousEventID** | **String** | The unique identifier of the event that happened in the past. | [optional] +**loyaltyCards** | **List<String>** | Identifiers of the loyalty cards used during this event. | [optional] +**responseContent** | [**List<ResponseContentEnum>**](#List<ResponseContentEnum>) | Optional list of requested information to be present on the response related to the tracking custom event. | [optional] + + + +## Enum: List<ResponseContentEnum> + +Name | Value +---- | ----- +CUSTOMERPROFILE | "customerProfile" +TRIGGEREDCAMPAIGNS | "triggeredCampaigns" +LOYALTY | "loyalty" +EVENT | "event" +AWARDEDGIVEAWAYS | "awardedGiveaways" +RULEFAILUREREASONS | "ruleFailureReasons" + + + diff --git a/docs/IntegrationEventV3Response.md b/docs/IntegrationEventV3Response.md new file mode 100644 index 00000000..e3bfb448 --- /dev/null +++ b/docs/IntegrationEventV3Response.md @@ -0,0 +1,21 @@ + + +# IntegrationEventV3Response + +This is the response type returned by the trackEventV3 endpoint. +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**customerProfile** | [**CustomerProfile**](CustomerProfile.md) | | [optional] +**event** | [**EventV3**](EventV3.md) | | [optional] +**loyalty** | [**Loyalty**](Loyalty.md) | | [optional] +**triggeredCampaigns** | [**List<Campaign>**](Campaign.md) | | [optional] +**ruleFailureReasons** | [**List<RuleFailureReason>**](RuleFailureReason.md) | | [optional] +**awardedGiveaways** | [**List<Giveaway>**](Giveaway.md) | | [optional] +**effects** | [**List<Effect>**](Effect.md) | The effects generated by the rules in your running campaigns. See [API effects](https://docs.talon.one/docs/dev/integration-api/api-effects). | +**createdCoupons** | [**List<Coupon>**](Coupon.md) | | +**createdReferrals** | [**List<Referral>**](Referral.md) | | + + + diff --git a/docs/IntegrationProfileEntityV3.md b/docs/IntegrationProfileEntityV3.md new file mode 100644 index 00000000..de03ff24 --- /dev/null +++ b/docs/IntegrationProfileEntityV3.md @@ -0,0 +1,12 @@ + + +# IntegrationProfileEntityV3 + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**profileId** | **String** | ID of the customer profile set by your integration layer. **Note:** If the customer does not yet have a known `profileId`, we recommend you use a guest `profileId`. | + + + diff --git a/docs/LedgerPointsEntryIntegrationAPI.md b/docs/LedgerPointsEntryIntegrationAPI.md index b91bee0c..4d14f317 100644 --- a/docs/LedgerPointsEntryIntegrationAPI.md +++ b/docs/LedgerPointsEntryIntegrationAPI.md @@ -17,6 +17,7 @@ Name | Type | Description | Notes **expiryDate** | **String** | Date when points expire. Possible values are: - `unlimited`: Points have no expiration date. - `timestamp value`: Points expire on the given date and time. | **subledgerId** | **String** | ID of the subledger. | **amount** | [**BigDecimal**](BigDecimal.md) | Amount of loyalty points added in the transaction. | +**validityDuration** | **String** | The duration for which the points remain active, relative to the activation date. **Note**: This only applies to points for which `awaitsActivation` is `true` and `expiryDate` is not set. | [optional] diff --git a/docs/LedgerTransactionLogEntryIntegrationAPI.md b/docs/LedgerTransactionLogEntryIntegrationAPI.md index 870d36c8..89553818 100644 --- a/docs/LedgerTransactionLogEntryIntegrationAPI.md +++ b/docs/LedgerTransactionLogEntryIntegrationAPI.md @@ -13,7 +13,7 @@ Name | Type | Description | Notes **customerSessionId** | **String** | ID of the customer session where the transaction occurred. | [optional] **type** | [**TypeEnum**](#TypeEnum) | Type of transaction. Possible values: - `addition`: Signifies added points. - `subtraction`: Signifies deducted points. | **name** | **String** | Name or reason of the loyalty ledger transaction. | -**startDate** | **String** | When points become active. Possible values: - `immediate`: Points are immediately active. - a timestamp value: Points become active at a given date and time. | +**startDate** | **String** | When points become active. Possible values: - `immediate`: Points are immediately active. - `on_action`: Points become active based on the customer's action. - a timestamp value: Points become active at a given date and time. | **expiryDate** | **String** | Date when points expire. Possible values are: - `unlimited`: Points have no expiration date. - `timestamp value`: Points expire on the given date. | **subledgerId** | **String** | ID of the subledger. | **amount** | [**BigDecimal**](BigDecimal.md) | Amount of loyalty points added or deducted in the transaction. | @@ -21,6 +21,7 @@ Name | Type | Description | Notes **rulesetId** | **Long** | The ID of the ruleset containing the rule that triggered this effect. | [optional] **ruleName** | **String** | The name of the rule that triggered this effect. | [optional] **flags** | [**LoyaltyLedgerEntryFlags**](LoyaltyLedgerEntryFlags.md) | | [optional] +**validityDuration** | **String** | The duration for which the points remain active, relative to the activation date. **Note**: This only applies to points for which `awaitsActivation` is `true` and `expiryDate` is not set. | [optional] diff --git a/docs/LoyaltyLedgerEntry.md b/docs/LoyaltyLedgerEntry.md index 802bf7c0..231196cd 100644 --- a/docs/LoyaltyLedgerEntry.md +++ b/docs/LoyaltyLedgerEntry.md @@ -22,6 +22,7 @@ Name | Type | Description | Notes **userID** | **Long** | This is the ID of the user who created this entry, if the addition or subtraction was done manually. | [optional] **archived** | **Boolean** | Indicates if the entry belongs to the archived session. | [optional] **flags** | [**LoyaltyLedgerEntryFlags**](LoyaltyLedgerEntryFlags.md) | | [optional] +**validityDuration** | **String** | The duration for which the points remain active, relative to the activation date. **Note**: This only applies to points for which `awaitsActivation` is `true` and `expiryDate` is not set. | [optional] diff --git a/docs/LoyaltyProgram.md b/docs/LoyaltyProgram.md index dd1cee66..2afa4220 100644 --- a/docs/LoyaltyProgram.md +++ b/docs/LoyaltyProgram.md @@ -30,7 +30,6 @@ Name | Type | Description | Notes **timezone** | **String** | A string containing an IANA timezone descriptor. | **cardBased** | **Boolean** | Defines the type of loyalty program: - `true`: the program is a card-based. - `false`: the program is profile-based. | **canUpdateTiers** | **Boolean** | `True` if the tier definitions can be updated. | [optional] -**canUpdateJoinPolicy** | **Boolean** | `True` if the program join policy can be updated. | [optional] **canUpdateTierExpirationPolicy** | **Boolean** | `True` if the tier expiration policy can be updated. | [optional] **canUpgradeToAdvancedTiers** | **Boolean** | `True` if the program can be upgraded to use the `tiersExpireIn` and `tiersDowngradePolicy` properties. | [optional] **canUpdateSubledgers** | **Boolean** | `True` if the `allowSubledger` property can be updated in the loyalty program. | [optional] diff --git a/docs/LoyaltyProgramTransaction.md b/docs/LoyaltyProgramTransaction.md index 19e4b099..b84cdb1a 100644 --- a/docs/LoyaltyProgramTransaction.md +++ b/docs/LoyaltyProgramTransaction.md @@ -14,7 +14,7 @@ Name | Type | Description | Notes **type** | [**TypeEnum**](#TypeEnum) | Type of transaction. Possible values: - `addition`: Signifies added points. - `subtraction`: Signifies deducted points. | **amount** | [**BigDecimal**](BigDecimal.md) | Amount of loyalty points added or deducted in the transaction. | **name** | **String** | Name or reason for the loyalty ledger transaction. | -**startDate** | **String** | When points become active. Possible values: - `immediate`: Points are immediately active. - a timestamp value: Points become active at a given date and time. | +**startDate** | **String** | When points become active. Possible values: - `immediate`: Points are immediately active. - `on_action`: Points become active based on the customer's action. - a timestamp value: Points become active at a given date and time. | **expiryDate** | **String** | When points expire. Possible values: - `unlimited`: Points have no expiration date. - a timestamp value: Points expire at a given date and time. | **customerProfileId** | **String** | Customer profile integration ID used in the loyalty program. | [optional] **cardIdentifier** | **String** | The alphanumeric identifier of the loyalty card. | [optional] @@ -26,6 +26,7 @@ Name | Type | Description | Notes **rulesetId** | **Long** | ID of the ruleset containing the rule that triggered the effect. Applies only for transactions that resulted from a customer session. | [optional] **ruleName** | **String** | Name of the rule that triggered the effect. Applies only for transactions that resulted from a customer session. | [optional] **flags** | [**LoyaltyLedgerEntryFlags**](LoyaltyLedgerEntryFlags.md) | | [optional] +**validityDuration** | **String** | The duration for which the points remain active, relative to the activation date. **Note**: This only applies to points for which `awaitsActivation` is `true` and `expiryDate` is not set. | [optional] diff --git a/docs/ManagementApi.md b/docs/ManagementApi.md index 71777c4d..605ce03a 100644 --- a/docs/ManagementApi.md +++ b/docs/ManagementApi.md @@ -106,8 +106,10 @@ Method | HTTP request | Description [**getLoyaltyCard**](ManagementApi.md#getLoyaltyCard) | **GET** /v1/loyalty_programs/{loyaltyProgramId}/cards/{loyaltyCardId} | Get loyalty card [**getLoyaltyCardTransactionLogs**](ManagementApi.md#getLoyaltyCardTransactionLogs) | **GET** /v1/loyalty_programs/{loyaltyProgramId}/cards/{loyaltyCardId}/logs | List card's transactions [**getLoyaltyCards**](ManagementApi.md#getLoyaltyCards) | **GET** /v1/loyalty_programs/{loyaltyProgramId}/cards | List loyalty cards +[**getLoyaltyLedgerBalances**](ManagementApi.md#getLoyaltyLedgerBalances) | **GET** /v1/loyalty_programs/{loyaltyProgramId}/profile/{integrationId}/ledger_balances | Get customer's loyalty balances [**getLoyaltyPoints**](ManagementApi.md#getLoyaltyPoints) | **GET** /v1/loyalty_programs/{loyaltyProgramId}/profile/{integrationId} | Get customer's full loyalty ledger [**getLoyaltyProgram**](ManagementApi.md#getLoyaltyProgram) | **GET** /v1/loyalty_programs/{loyaltyProgramId} | Get loyalty program +[**getLoyaltyProgramProfileLedgerTransactions**](ManagementApi.md#getLoyaltyProgramProfileLedgerTransactions) | **GET** /v1/loyalty_programs/{loyaltyProgramId}/profile/{integrationId}/ledger_transactions | List customer's loyalty transactions [**getLoyaltyProgramTransactions**](ManagementApi.md#getLoyaltyProgramTransactions) | **GET** /v1/loyalty_programs/{loyaltyProgramId}/transactions | List loyalty program transactions [**getLoyaltyPrograms**](ManagementApi.md#getLoyaltyPrograms) | **GET** /v1/loyalty_programs | List loyalty programs [**getLoyaltyStatistics**](ManagementApi.md#getLoyaltyStatistics) | **GET** /v1/loyalty_programs/{loyaltyProgramId}/statistics | Get loyalty program statistics @@ -6781,7 +6783,7 @@ Name | Type | Description | Notes ## getAttributes -> InlineResponse20036 getAttributes(pageSize, skip, sort, entity) +> InlineResponse20036 getAttributes(pageSize, skip, sort, entity, applicationIds, type, kind, search) List custom attributes @@ -6826,8 +6828,12 @@ public class Example { Long skip = 56L; // Long | The number of items to skip when paging through large result sets. String sort = "sort_example"; // String | The field by which results should be sorted. By default, results are sorted in ascending order. To sort them in descending order, prefix the field name with `-`. **Note:** You may not be able to use all fields for sorting. This is due to performance limitations. String entity = "entity_example"; // String | Returned attributes will be filtered by supplied entity. + String applicationIds = "applicationIds_example"; // String | Returned attributes will be filtered by supplied application ids + String type = "type_example"; // String | Returned attributes will be filtered by supplied type + String kind = "kind_example"; // String | Returned attributes will be filtered by supplied kind (builtin or custom) + String search = "search_example"; // String | Returned attributes will be filtered by searching case insensitive through Attribute name, description and type try { - InlineResponse20036 result = apiInstance.getAttributes(pageSize, skip, sort, entity); + InlineResponse20036 result = apiInstance.getAttributes(pageSize, skip, sort, entity, applicationIds, type, kind, search); System.out.println(result); } catch (ApiException e) { System.err.println("Exception when calling ManagementApi#getAttributes"); @@ -6849,6 +6855,10 @@ Name | Type | Description | Notes **skip** | **Long**| The number of items to skip when paging through large result sets. | [optional] **sort** | **String**| The field by which results should be sorted. By default, results are sorted in ascending order. To sort them in descending order, prefix the field name with `-`. **Note:** You may not be able to use all fields for sorting. This is due to performance limitations. | [optional] **entity** | **String**| Returned attributes will be filtered by supplied entity. | [optional] + **applicationIds** | **String**| Returned attributes will be filtered by supplied application ids | [optional] + **type** | **String**| Returned attributes will be filtered by supplied type | [optional] + **kind** | **String**| Returned attributes will be filtered by supplied kind (builtin or custom) | [optional] [enum: builtin, custom] + **search** | **String**| Returned attributes will be filtered by searching case insensitive through Attribute name, description and type | [optional] ### Return type cool @@ -7680,7 +7690,7 @@ Name | Type | Description | Notes ## getCampaigns -> InlineResponse2008 getCampaigns(applicationId, pageSize, skip, sort, campaignState, name, tags, createdBefore, createdAfter, campaignGroupId, templateId, storeId) +> InlineResponse2008 getCampaigns(applicationId, pageSize, skip, sort, campaignState, name, tags, createdBefore, createdAfter, startBefore, startAfter, endBefore, endAfter, campaignGroupId, templateId, storeId) List campaigns @@ -7730,11 +7740,15 @@ public class Example { String tags = "tags_example"; // String | Filter results performing case-insensitive matching against the tags of the campaign. When used in conjunction with the \"name\" query parameter, a logical OR will be performed to search both tags and name for the provided values OffsetDateTime createdBefore = new OffsetDateTime(); // OffsetDateTime | Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the campaign creation timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. OffsetDateTime createdAfter = new OffsetDateTime(); // OffsetDateTime | Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the campaign creation timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. + OffsetDateTime startBefore = new OffsetDateTime(); // OffsetDateTime | Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the campaign start time timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. + OffsetDateTime startAfter = new OffsetDateTime(); // OffsetDateTime | Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the campaign start time timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. + OffsetDateTime endBefore = new OffsetDateTime(); // OffsetDateTime | Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the campaign end time timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. + OffsetDateTime endAfter = new OffsetDateTime(); // OffsetDateTime | Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the campaign end time timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. Long campaignGroupId = 56L; // Long | Filter results to campaigns owned by the specified campaign access group ID. Long templateId = 56L; // Long | The ID of the campaign template this campaign was created from. Long storeId = 56L; // Long | Filter results to campaigns linked to the specified store ID. try { - InlineResponse2008 result = apiInstance.getCampaigns(applicationId, pageSize, skip, sort, campaignState, name, tags, createdBefore, createdAfter, campaignGroupId, templateId, storeId); + InlineResponse2008 result = apiInstance.getCampaigns(applicationId, pageSize, skip, sort, campaignState, name, tags, createdBefore, createdAfter, startBefore, startAfter, endBefore, endAfter, campaignGroupId, templateId, storeId); System.out.println(result); } catch (ApiException e) { System.err.println("Exception when calling ManagementApi#getCampaigns"); @@ -7761,6 +7775,10 @@ Name | Type | Description | Notes **tags** | **String**| Filter results performing case-insensitive matching against the tags of the campaign. When used in conjunction with the \"name\" query parameter, a logical OR will be performed to search both tags and name for the provided values | [optional] **createdBefore** | **OffsetDateTime**| Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the campaign creation timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. | [optional] **createdAfter** | **OffsetDateTime**| Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the campaign creation timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. | [optional] + **startBefore** | **OffsetDateTime**| Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the campaign start time timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. | [optional] + **startAfter** | **OffsetDateTime**| Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the campaign start time timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. | [optional] + **endBefore** | **OffsetDateTime**| Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the campaign end time timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. | [optional] + **endAfter** | **OffsetDateTime**| Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the campaign end time timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. | [optional] **campaignGroupId** | **Long**| Filter results to campaigns owned by the specified campaign access group ID. | [optional] **templateId** | **Long**| The ID of the campaign template this campaign was created from. | [optional] **storeId** | **Long**| Filter results to campaigns linked to the specified store ID. | [optional] @@ -9398,6 +9416,103 @@ Name | Type | Description | Notes | **401** | Unauthorized | - | +## getLoyaltyLedgerBalances + +> LoyaltyBalancesWithTiers getLoyaltyLedgerBalances(loyaltyProgramId, integrationId, endDate, subledgerId, includeTiers, includeProjectedTier) + +Get customer's loyalty balances + +Retrieve loyalty ledger balances for the given Integration ID in the specified loyalty program. You can filter balances by date and subledger ID, and include tier-related information in the response. **Note**: If no filtering options are applied, you retrieve all loyalty balances on the current date for the given integration ID. Loyalty balances are calculated when Talon.One receives your request using the points stored in our database, so retrieving a large number of balances at once can impact performance. For more information, see: - [Managing card-based loyalty program data](https://docs.talon.one/docs/product/loyalty-programs/card-based/managing-loyalty-cards) - [Managing profile-based loyalty program data](https://docs.talon.one/docs/product/loyalty-programs/profile-based/managing-pb-lp-data) + +### Example + +```java +// Import classes: +import one.talon.ApiClient; +import one.talon.ApiException; +import one.talon.Configuration; +import one.talon.auth.*; +import one.talon.models.*; +import one.talon.api.ManagementApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("https://yourbaseurl.talon.one"); + + // Configure API key authorization: api_key_v1 + ApiKeyAuth api_key_v1 = (ApiKeyAuth) defaultClient.getAuthentication("api_key_v1"); + api_key_v1.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //api_key_v1.setApiKeyPrefix("Token"); + + // Configure API key authorization: management_key + ApiKeyAuth management_key = (ApiKeyAuth) defaultClient.getAuthentication("management_key"); + management_key.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //management_key.setApiKeyPrefix("Token"); + + // Configure API key authorization: manager_auth + ApiKeyAuth manager_auth = (ApiKeyAuth) defaultClient.getAuthentication("manager_auth"); + manager_auth.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //manager_auth.setApiKeyPrefix("Token"); + + ManagementApi apiInstance = new ManagementApi(defaultClient); + Long loyaltyProgramId = 56L; // Long | Identifier of the profile-based loyalty program. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. + String integrationId = "integrationId_example"; // String | The integration identifier for this customer profile. Must be: - Unique within the deployment. - Stable for the customer. Do not use an ID that the customer can update themselves. For example, you can use a database ID. Once set, you cannot update this identifier. + OffsetDateTime endDate = new OffsetDateTime(); // OffsetDateTime | Used to return expired, active, and pending loyalty balances before this timestamp. You can enter any past, present, or future timestamp value. **Note:** - It must be an RFC3339 timestamp string. - You can include a time component in your string, for example, `T23:59:59` to specify the end of the day. The time zone setting considered is `UTC`. If you do not include a time component, a default time value of `T00:00:00` (midnight) in `UTC` is considered. + String subledgerId = "subledgerId_example"; // String | The ID of the subledger used to filter the data. Leave this value empty (\"\") to query the main ledger. + Boolean includeTiers = false; // Boolean | Indicates whether tier information is included in the response. When set to `true`, the response includes information about the current tier and the number of points required to move to next tier. + Boolean includeProjectedTier = false; // Boolean | Indicates whether the customer's projected tier information is included in the response. When set to `true`, the response includes information about the customer's active points and the name of the projected tier. **Note** We recommend filtering by `subledgerId` for better performance. + try { + LoyaltyBalancesWithTiers result = apiInstance.getLoyaltyLedgerBalances(loyaltyProgramId, integrationId, endDate, subledgerId, includeTiers, includeProjectedTier); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ManagementApi#getLoyaltyLedgerBalances"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **loyaltyProgramId** | **Long**| Identifier of the profile-based loyalty program. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. | + **integrationId** | **String**| The integration identifier for this customer profile. Must be: - Unique within the deployment. - Stable for the customer. Do not use an ID that the customer can update themselves. For example, you can use a database ID. Once set, you cannot update this identifier. | + **endDate** | **OffsetDateTime**| Used to return expired, active, and pending loyalty balances before this timestamp. You can enter any past, present, or future timestamp value. **Note:** - It must be an RFC3339 timestamp string. - You can include a time component in your string, for example, `T23:59:59` to specify the end of the day. The time zone setting considered is `UTC`. If you do not include a time component, a default time value of `T00:00:00` (midnight) in `UTC` is considered. | [optional] + **subledgerId** | **String**| The ID of the subledger used to filter the data. Leave this value empty (\"\") to query the main ledger. | [optional] + **includeTiers** | **Boolean**| Indicates whether tier information is included in the response. When set to `true`, the response includes information about the current tier and the number of points required to move to next tier. | [optional] [default to false] + **includeProjectedTier** | **Boolean**| Indicates whether the customer's projected tier information is included in the response. When set to `true`, the response includes information about the customer's active points and the name of the projected tier. **Note** We recommend filtering by `subledgerId` for better performance. | [optional] [default to false] + +### Return type cool + +[**LoyaltyBalancesWithTiers**](LoyaltyBalancesWithTiers.md) + +### Authorization + +[api_key_v1](../README.md#api_key_v1), [management_key](../README.md#management_key), [manager_auth](../README.md#manager_auth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: application/json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | OK | - | +| **400** | Bad request | - | +| **401** | Unauthorized | - | +| **404** | Not found | - | + + ## getLoyaltyPoints > LoyaltyLedger getLoyaltyPoints(loyaltyProgramId, integrationId) @@ -9568,9 +9683,116 @@ Name | Type | Description | Notes | **200** | OK | - | +## getLoyaltyProgramProfileLedgerTransactions + +> InlineResponse2004 getLoyaltyProgramProfileLedgerTransactions(loyaltyProgramId, integrationId, customerSessionIDs, transactionUUIDs, subledgerId, loyaltyTransactionType, startDate, endDate, pageSize, skip, awaitsActivation) + +List customer's loyalty transactions + +Retrieve paginated results of loyalty transaction logs for the given Integration ID in the specified loyalty program. You can filter transactions by date or by ledger (subledger or main ledger). If no filters are applied, the last 50 loyalty transactions for the given integration ID are returned. **Note:** To retrieve all loyalty program transaction logs in a given loyalty program, use the [List loyalty program transactions](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyProgramTransactions) endpoint. + +### Example + +```java +// Import classes: +import one.talon.ApiClient; +import one.talon.ApiException; +import one.talon.Configuration; +import one.talon.auth.*; +import one.talon.models.*; +import one.talon.api.ManagementApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("https://yourbaseurl.talon.one"); + + // Configure API key authorization: api_key_v1 + ApiKeyAuth api_key_v1 = (ApiKeyAuth) defaultClient.getAuthentication("api_key_v1"); + api_key_v1.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //api_key_v1.setApiKeyPrefix("Token"); + + // Configure API key authorization: management_key + ApiKeyAuth management_key = (ApiKeyAuth) defaultClient.getAuthentication("management_key"); + management_key.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //management_key.setApiKeyPrefix("Token"); + + // Configure API key authorization: manager_auth + ApiKeyAuth manager_auth = (ApiKeyAuth) defaultClient.getAuthentication("manager_auth"); + manager_auth.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //manager_auth.setApiKeyPrefix("Token"); + + ManagementApi apiInstance = new ManagementApi(defaultClient); + Long loyaltyProgramId = 56L; // Long | Identifier of the profile-based loyalty program. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. + String integrationId = "integrationId_example"; // String | The integration identifier for this customer profile. Must be: - Unique within the deployment. - Stable for the customer. Do not use an ID that the customer can update themselves. For example, you can use a database ID. Once set, you cannot update this identifier. + List customerSessionIDs = Arrays.asList(); // List | Filter the results by a list of customer session IDs. To include multiple IDs, repeat the parameter for each one, for example, `?customerSessionIDs=id1&customerSessionIDs=id2`. The response contains only data associated with the specified sessions. + List transactionUUIDs = Arrays.asList(); // List | Filter the results by a list of transaction UUIDs. To include multiple IDs, repeat the parameter for each one, for example, `?transactionUUIDs=uuid1&transactionUUIDs=uuid2`. The response contains only data associated with the specified transactions. + String subledgerId = "subledgerId_example"; // String | The ID of the subledger used to filter the data. Leave this value empty (\"\") to query the main ledger. + String loyaltyTransactionType = "loyaltyTransactionType_example"; // String | Filter results by loyalty transaction type: - `manual`: Loyalty transaction that was done manually. - `session`: Loyalty transaction that resulted from a customer session. - `import`: Loyalty transaction that was imported from a CSV file. + OffsetDateTime startDate = new OffsetDateTime(); // OffsetDateTime | Date and time from which results are returned. Results are filtered by transaction creation date. **Note:** - It must be an RFC3339 timestamp string. - You can include a time component in your string, for example, `T23:59:59` to specify the end of the day. The time zone setting considered is `UTC`. If you do not include a time component, a default time value of `T00:00:00` (midnight) in `UTC` is considered. + OffsetDateTime endDate = new OffsetDateTime(); // OffsetDateTime | Date and time by which results are returned. Results are filtered by transaction creation date. **Note:** - It must be an RFC3339 timestamp string. - You can include a time component in your string, for example, `T23:59:59` to specify the end of the day. The time zone setting considered is `UTC`. If you do not include a time component, a default time value of `T00:00:00` (midnight) in `UTC` is considered. + Long pageSize = 50lL; // Long | The number of items in the response. + Long skip = 56L; // Long | The number of items to skip when paging through large result sets. + Boolean awaitsActivation = true; // Boolean | If `true`: Filters results to include only point transactions that have action-based activation and have not expired. If `false`: Returns a `400` response. + try { + InlineResponse2004 result = apiInstance.getLoyaltyProgramProfileLedgerTransactions(loyaltyProgramId, integrationId, customerSessionIDs, transactionUUIDs, subledgerId, loyaltyTransactionType, startDate, endDate, pageSize, skip, awaitsActivation); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ManagementApi#getLoyaltyProgramProfileLedgerTransactions"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters + + +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- + **loyaltyProgramId** | **Long**| Identifier of the profile-based loyalty program. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. | + **integrationId** | **String**| The integration identifier for this customer profile. Must be: - Unique within the deployment. - Stable for the customer. Do not use an ID that the customer can update themselves. For example, you can use a database ID. Once set, you cannot update this identifier. | + **customerSessionIDs** | [**List<String>**](String.md)| Filter the results by a list of customer session IDs. To include multiple IDs, repeat the parameter for each one, for example, `?customerSessionIDs=id1&customerSessionIDs=id2`. The response contains only data associated with the specified sessions. | [optional] + **transactionUUIDs** | [**List<String>**](String.md)| Filter the results by a list of transaction UUIDs. To include multiple IDs, repeat the parameter for each one, for example, `?transactionUUIDs=uuid1&transactionUUIDs=uuid2`. The response contains only data associated with the specified transactions. | [optional] + **subledgerId** | **String**| The ID of the subledger used to filter the data. Leave this value empty (\"\") to query the main ledger. | [optional] + **loyaltyTransactionType** | **String**| Filter results by loyalty transaction type: - `manual`: Loyalty transaction that was done manually. - `session`: Loyalty transaction that resulted from a customer session. - `import`: Loyalty transaction that was imported from a CSV file. | [optional] [enum: manual, session, import] + **startDate** | **OffsetDateTime**| Date and time from which results are returned. Results are filtered by transaction creation date. **Note:** - It must be an RFC3339 timestamp string. - You can include a time component in your string, for example, `T23:59:59` to specify the end of the day. The time zone setting considered is `UTC`. If you do not include a time component, a default time value of `T00:00:00` (midnight) in `UTC` is considered. | [optional] + **endDate** | **OffsetDateTime**| Date and time by which results are returned. Results are filtered by transaction creation date. **Note:** - It must be an RFC3339 timestamp string. - You can include a time component in your string, for example, `T23:59:59` to specify the end of the day. The time zone setting considered is `UTC`. If you do not include a time component, a default time value of `T00:00:00` (midnight) in `UTC` is considered. | [optional] + **pageSize** | **Long**| The number of items in the response. | [optional] [default to 50l] + **skip** | **Long**| The number of items to skip when paging through large result sets. | [optional] + **awaitsActivation** | **Boolean**| If `true`: Filters results to include only point transactions that have action-based activation and have not expired. If `false`: Returns a `400` response. | [optional] + +### Return type cool + +[**InlineResponse2004**](InlineResponse2004.md) + +### Authorization + +[api_key_v1](../README.md#api_key_v1), [management_key](../README.md#management_key), [manager_auth](../README.md#manager_auth) + +### HTTP request headers + +- **Content-Type**: Not defined +- **Accept**: application/json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **200** | OK | - | +| **400** | Bad request | - | +| **401** | Unauthorized | - | +| **404** | Not found | - | + + ## getLoyaltyProgramTransactions -> InlineResponse20017 getLoyaltyProgramTransactions(loyaltyProgramId, loyaltyTransactionType, subledgerId, customerSessionIDs, transactionUUIDs, startDate, endDate, pageSize, skip) +> InlineResponse20017 getLoyaltyProgramTransactions(loyaltyProgramId, loyaltyTransactionType, subledgerId, customerSessionIDs, transactionUUIDs, startDate, endDate, pageSize, skip, awaitsActivation) List loyalty program transactions @@ -9620,8 +9842,9 @@ public class Example { OffsetDateTime endDate = new OffsetDateTime(); // OffsetDateTime | Date and time by which results are returned. Results are filtered by transaction creation date. **Note:** - It must be an RFC3339 timestamp string. - You can include a time component in your string, for example, `T23:59:59` to specify the end of the day. The time zone setting considered is `UTC`. If you do not include a time component, a default time value of `T00:00:00` (midnight) in `UTC` is considered. Long pageSize = 50lL; // Long | The number of items in the response. Long skip = 56L; // Long | The number of items to skip when paging through large result sets. + Boolean awaitsActivation = true; // Boolean | If `true`: Filters results to include only point transactions that have action-based activation and have not expired. If `false`: Returns a `400` response. try { - InlineResponse20017 result = apiInstance.getLoyaltyProgramTransactions(loyaltyProgramId, loyaltyTransactionType, subledgerId, customerSessionIDs, transactionUUIDs, startDate, endDate, pageSize, skip); + InlineResponse20017 result = apiInstance.getLoyaltyProgramTransactions(loyaltyProgramId, loyaltyTransactionType, subledgerId, customerSessionIDs, transactionUUIDs, startDate, endDate, pageSize, skip, awaitsActivation); System.out.println(result); } catch (ApiException e) { System.err.println("Exception when calling ManagementApi#getLoyaltyProgramTransactions"); @@ -9648,6 +9871,7 @@ Name | Type | Description | Notes **endDate** | **OffsetDateTime**| Date and time by which results are returned. Results are filtered by transaction creation date. **Note:** - It must be an RFC3339 timestamp string. - You can include a time component in your string, for example, `T23:59:59` to specify the end of the day. The time zone setting considered is `UTC`. If you do not include a time component, a default time value of `T00:00:00` (midnight) in `UTC` is considered. | [optional] **pageSize** | **Long**| The number of items in the response. | [optional] [default to 50l] **skip** | **Long**| The number of items to skip when paging through large result sets. | [optional] + **awaitsActivation** | **Boolean**| If `true`: Filters results to include only point transactions that have action-based activation and have not expired. If `false`: Returns a `400` response. | [optional] ### Return type cool @@ -11568,7 +11792,7 @@ Name | Type | Description | Notes Import loyalty points -Upload a CSV file containing the loyalty points you want to import into a given loyalty program. Send the file as multipart data. Depending on the type of loyalty program, you can import points into a given customer profile or loyalty card. The CSV file contains the following columns: - `customerprofileid` (optional): For profile-based loyalty programs, the integration ID of the customer profile where the loyalty points are imported. **Note**: If the customer profile does not exist, it will be created. The profile will not be visible in any Application until a session or profile update is received for that profile. - `identifier` (optional): For card-based loyalty programs, the identifier of the loyalty card where the loyalty points are imported. - `amount`: The amount of points to award to the customer profile. - `startdate` (optional): The earliest date when the points can be redeemed. The points are `active` from this date until the expiration date. **Note**: It must be an RFC3339 timestamp string or string `immediate`. Empty or missing values are considered `immediate`. - `expirydate` (optional): The latest date when the points can be redeemed. The points are `expired` after this date. **Note**: It must be an RFC3339 timestamp string or string `unlimited`. Empty or missing values are considered `unlimited`. - `subledgerid` (optional): The ID of the subledger that should received the points. - `reason` (optional): The reason why these points are awarded. You can use the time zone of your choice. It is converted to UTC internally by Talon.One. **Note:** For existing customer profiles and loyalty cards, the imported points are added to any previous active or pending points, depending on the value provided for `startdate`. If `startdate` matches the current date, the imported points are _active_. If it is later, the points are _pending_ until the date provided for `startdate` is reached. **Note:** We recommend limiting your file size to 500MB. **Example for profile-based programs:** ```text customerprofileid,amount,startdate,expirydate,subledgerid,reason URNGV8294NV,100,2009-11-10T23:00:00Z,2009-11-11T23:00:00Z,subledger1,appeasement ``` **Example for card-based programs:** ```text identifier,amount,startdate,expirydate,subledgerid,reason summer-loyalty-card-0543,100,2009-11-10T23:00:00Z,2009-11-11T23:00:00Z,subledger1,appeasement ``` +Upload a CSV file containing the loyalty points you want to import into a given loyalty program. Send the file as multipart data. Depending on the type of loyalty program, you can import points into a given customer profile or loyalty card. The CSV file contains the following columns: - `customerprofileid` (optional): For profile-based loyalty programs, the integration ID of the customer profile where the loyalty points are imported. **Note**: If the customer profile does not exist, it will be created. The profile will not be visible in any Application until a session or profile update is received for that profile. - `identifier` (optional): For card-based loyalty programs, the identifier of the loyalty card where the loyalty points are imported. - `amount`: The amount of points to award to the customer profile. - `startdate` (optional): The earliest date when the points can be redeemed. The points are `active` from this date until the expiration date. This parameter accepts one of the following values: - A timestamp string in RFC3339 format. - `immediate` - `on_action` **Note**: Empty or missing values default to `immediate`. - `expirydate` (optional): The latest date when the points can be redeemed. The points are `expired` after this date. **Note**: It must be an RFC3339 timestamp string or string `unlimited`. Empty or missing values are considered `unlimited`. If passed, `validityDuration` should be omitted. - `validityDuration` (optional): The duration for which the points remain active, relative to the activation date. The time format is an **integer** followed by one letter indicating the time unit. Examples: `30s`, `40m`, `1h`, `5D`, `7W`, `10M`, `15Y`. Available units: - `s`: seconds - `m`: minutes - `h`: hours - `D`: days - `W`: weeks - `M`: months - `Y`: years You can round certain units up or down: - `_D` for rounding down days only. Signifies the start of the day. - `_U` for rounding up days, weeks, months and years. Signifies the end of the day, week, month or year. If passed, `expirydate` should be omitted. - `subledgerid` (optional): The ID of the subledger that should received the points. - `reason` (optional): The reason why these points are awarded. You can use the time zone of your choice. It is converted to UTC internally by Talon.One. **Note:** For existing customer profiles and loyalty cards, the imported points are added to any previous active or pending points, depending on the value provided for `startdate`. If `startdate` matches the current date, the imported points are _active_. If it is later, the points are _pending_ until the date provided for `startdate` is reached. **Note:** We recommend limiting your file size to 500MB. **Example for profile-based programs:** ```text customerprofileid,amount,startdate,expirydate,subledgerid,reason URNGV8294NV,100,2009-11-10T23:00:00Z,2009-11-11T23:00:00Z,subledger1,appeasement ``` **Example for card-based programs:** ```text identifier,amount,startdate,expirydate,subledgerid,reason summer-loyalty-card-0543,100,2009-11-10T23:00:00Z,2009-11-11T23:00:00Z,subledger1,appeasement ``` ### Example diff --git a/docs/ManagementKey.md b/docs/ManagementKey.md index ad412ce1..cbbb31d6 100644 --- a/docs/ManagementKey.md +++ b/docs/ManagementKey.md @@ -15,6 +15,7 @@ Name | Type | Description | Notes **accountID** | **Long** | ID of account the key is used for. | **created** | [**OffsetDateTime**](OffsetDateTime.md) | The date the management key was created. | **disabled** | **Boolean** | The management key is disabled (this property is set to `true`) when the user who created the key is disabled or deleted. | [optional] +**lastUsed** | [**OffsetDateTime**](OffsetDateTime.md) | The last time the management key was used. | [optional] diff --git a/docs/NewManagementKey.md b/docs/NewManagementKey.md index 32b741bf..69f4495a 100644 --- a/docs/NewManagementKey.md +++ b/docs/NewManagementKey.md @@ -15,6 +15,7 @@ Name | Type | Description | Notes **accountID** | **Long** | ID of account the key is used for. | **created** | [**OffsetDateTime**](OffsetDateTime.md) | The date the management key was created. | **disabled** | **Boolean** | The management key is disabled (this property is set to `true`) when the user who created the key is disabled or deleted. | [optional] +**lastUsed** | [**OffsetDateTime**](OffsetDateTime.md) | The last time the management key was used. | [optional] **key** | **String** | The management key. | diff --git a/docs/NewMessageTest.md b/docs/NewMessageTest.md index 823370e2..481c6588 100644 --- a/docs/NewMessageTest.md +++ b/docs/NewMessageTest.md @@ -12,6 +12,7 @@ Name | Type | Description | Notes **payload** | **String** | API payload of this message. | [optional] **params** | [**List<TemplateArgDef>**](TemplateArgDef.md) | Array of template argument definitions. | [optional] **applicationIds** | **List<Long>** | The IDs of the Applications in which this webhook is available. An empty array means the webhook is available in `All Applications`. | [optional] +**authenticationId** | **Long** | The ID of the credential that this webhook is using. | [optional] diff --git a/docs/PrismaticConfig.md b/docs/PrismaticConfig.md new file mode 100644 index 00000000..3268d4c0 --- /dev/null +++ b/docs/PrismaticConfig.md @@ -0,0 +1,14 @@ + + +# PrismaticConfig + +Config used for accessing integrations in Prismatic +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**prismaticUrl** | **String** | The url used to integrate the Prismatic Marketplace. | +**accessToken** | **String** | Access token used to authenticate a user in Talon.One. | + + + diff --git a/docs/PrismaticEventPayloadCouponBasedNotifications.md b/docs/PrismaticEventPayloadCouponBasedNotifications.md new file mode 100644 index 00000000..90570f40 --- /dev/null +++ b/docs/PrismaticEventPayloadCouponBasedNotifications.md @@ -0,0 +1,31 @@ + + +# PrismaticEventPayloadCouponBasedNotifications + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**id** | **Long** | | +**created** | [**OffsetDateTime**](OffsetDateTime.md) | | +**campaignId** | **Long** | | +**value** | **String** | | +**usageLimit** | **Long** | | +**discountLimit** | **Float** | | [optional] +**reservationLimit** | **Long** | | [optional] +**startDate** | [**OffsetDateTime**](OffsetDateTime.md) | | [optional] +**expiryDate** | [**OffsetDateTime**](OffsetDateTime.md) | | [optional] +**usageCounter** | **Long** | | +**discountCounter** | **Float** | | [optional] +**discountRemainder** | **Float** | | [optional] +**referralId** | **Long** | | [optional] +**recipientIntegrationId** | **String** | | [optional] +**importId** | **Long** | | [optional] +**batchId** | **String** | | [optional] +**attributes** | [**Object**](.md) | | [optional] +**limits** | [**List<PrismaticEventPayloadCouponBasedNotificationsLimits>**](PrismaticEventPayloadCouponBasedNotificationsLimits.md) | | [optional] +**sourceOfEvent** | **String** | | +**employeeName** | **String** | | + + + diff --git a/docs/PrismaticEventPayloadCouponBasedNotificationsLimits.md b/docs/PrismaticEventPayloadCouponBasedNotificationsLimits.md new file mode 100644 index 00000000..68227bbf --- /dev/null +++ b/docs/PrismaticEventPayloadCouponBasedNotificationsLimits.md @@ -0,0 +1,15 @@ + + +# PrismaticEventPayloadCouponBasedNotificationsLimits + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**action** | **String** | | +**limit** | **Float** | | +**period** | **String** | | [optional] +**entities** | **List<String>** | | + + + diff --git a/docs/PrismaticEventPayloadLoyaltyProfileBasedNotifications.md b/docs/PrismaticEventPayloadLoyaltyProfileBasedNotifications.md new file mode 100644 index 00000000..ceada409 --- /dev/null +++ b/docs/PrismaticEventPayloadLoyaltyProfileBasedNotifications.md @@ -0,0 +1,26 @@ + + +# PrismaticEventPayloadLoyaltyProfileBasedNotifications + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**profileIntegrationID** | **String** | | +**loyaltyProgramID** | **Long** | | +**subledgerID** | **String** | | +**sourceOfEvent** | **String** | | +**employeeName** | **String** | | [optional] +**userID** | **Long** | | [optional] +**sessionIntegrationID** | **String** | | [optional] +**currentTier** | **String** | | [optional] +**currentPoints** | **Float** | | +**oldTier** | **String** | | [optional] +**pointsRequiredToTheNextTier** | **Float** | | [optional] +**nextTier** | **String** | | [optional] +**tierExpirationDate** | [**OffsetDateTime**](OffsetDateTime.md) | | [optional] +**timestampOfTierChange** | [**OffsetDateTime**](OffsetDateTime.md) | | [optional] +**actions** | [**List<PrismaticEventPayloadLoyaltyProfileBasedNotificationsAction>**](PrismaticEventPayloadLoyaltyProfileBasedNotificationsAction.md) | | [optional] + + + diff --git a/docs/PrismaticEventPayloadLoyaltyProfileBasedNotificationsAction.md b/docs/PrismaticEventPayloadLoyaltyProfileBasedNotificationsAction.md new file mode 100644 index 00000000..89653850 --- /dev/null +++ b/docs/PrismaticEventPayloadLoyaltyProfileBasedNotificationsAction.md @@ -0,0 +1,25 @@ + + +# PrismaticEventPayloadLoyaltyProfileBasedNotificationsAction + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**amount** | **Float** | | +**reason** | **String** | | [optional] +**operation** | [**OperationEnum**](#OperationEnum) | | +**startDate** | [**OffsetDateTime**](OffsetDateTime.md) | | [optional] +**expiryDate** | [**OffsetDateTime**](OffsetDateTime.md) | | [optional] + + + +## Enum: OperationEnum + +Name | Value +---- | ----- +ADDITION | "addition" +DEDUCTION | "deduction" + + + diff --git a/docs/PrismaticFlow.md b/docs/PrismaticFlow.md new file mode 100644 index 00000000..ca8c6ae7 --- /dev/null +++ b/docs/PrismaticFlow.md @@ -0,0 +1,14 @@ + + +# PrismaticFlow + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**applicationID** | **Long** | ID of application the flow is registered for. | [optional] +**eventType** | **String** | The event type we want to register a flow for. | +**prismaticFlowUrl** | **String** | The URL of the prismatic flow that we want to trigger for the event. | + + + diff --git a/docs/PrismaticFlowConfig.md b/docs/PrismaticFlowConfig.md new file mode 100644 index 00000000..50ad9a2c --- /dev/null +++ b/docs/PrismaticFlowConfig.md @@ -0,0 +1,12 @@ + + +# PrismaticFlowConfig + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**apiKey** | **String** | | + + + diff --git a/docs/PrismaticFlowWithConfig.md b/docs/PrismaticFlowWithConfig.md new file mode 100644 index 00000000..54f108ad --- /dev/null +++ b/docs/PrismaticFlowWithConfig.md @@ -0,0 +1,15 @@ + + +# PrismaticFlowWithConfig + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**applicationID** | **Long** | ID of application the flow is registered for. | [optional] +**eventType** | **String** | The event type we want to register a flow for. | +**prismaticFlowUrl** | **String** | The URL of the prismatic flow that we want to trigger for the event. | +**config** | [**PrismaticFlowConfig**](PrismaticFlowConfig.md) | | + + + diff --git a/docs/PrismaticPaginatedEventPayload.md b/docs/PrismaticPaginatedEventPayload.md new file mode 100644 index 00000000..45595917 --- /dev/null +++ b/docs/PrismaticPaginatedEventPayload.md @@ -0,0 +1,27 @@ + + +# PrismaticPaginatedEventPayload + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**totalResultSize** | **Long** | | +**eventType** | [**EventTypeEnum**](#EventTypeEnum) | | +**data** | **List<Object>** | | + + + +## Enum: EventTypeEnum + +Name | Value +---- | ----- +LOYALTYPOINTSCHANGED | "LoyaltyPointsChanged" +LOYALTYTIERDOWNGRADE | "LoyaltyTierDowngrade" +LOYALTYTIERUPGRADE | "LoyaltyTierUpgrade" +COUPONCREATED | "CouponCreated" +COUPONUPDATED | "CouponUpdated" +COUPONDELETED | "CouponDeleted" + + + diff --git a/docs/ReturnedCartItem.md b/docs/ReturnedCartItem.md index 095d36f3..534e8271 100644 --- a/docs/ReturnedCartItem.md +++ b/docs/ReturnedCartItem.md @@ -6,8 +6,9 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**position** | **Long** | The index of the cart item in the provided customer session's `cartItems` property. | +**position** | **Long** | The index of the cart item in the provided customer session's `cartItems` property. | [optional] **quantity** | **Long** | Number of cart items to return. | [optional] +**sku** | **String** | The SKU of the cart item in the provided customer session's `cartItems` property. | [optional] diff --git a/docs/RoleV2.md b/docs/RoleV2.md index f7e5786c..3f5976c1 100644 --- a/docs/RoleV2.md +++ b/docs/RoleV2.md @@ -14,6 +14,7 @@ Name | Type | Description | Notes **description** | **String** | Description of the role. | [optional] **permissions** | [**RoleV2Permissions**](RoleV2Permissions.md) | | [optional] **members** | **List<Long>** | A list of user IDs the role is assigned to. | [optional] +**isReadonly** | **Boolean** | Identifies if the role is read-only. For read-only roles, you can only assign or unassign users. You cannot edit any other properties, such as the name, description, or permissions. The 'isReadonly' property cannot be set for new or existing roles. It is reserved for predefined roles, such as the Talon.One support role. | [optional] diff --git a/docs/RoleV2Readonly.md b/docs/RoleV2Readonly.md new file mode 100644 index 00000000..ae91bdda --- /dev/null +++ b/docs/RoleV2Readonly.md @@ -0,0 +1,12 @@ + + +# RoleV2Readonly + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**isReadonly** | **Boolean** | Identifies if the role is read-only. For read-only roles, you can only assign or unassign users. You cannot edit any other properties, such as the name, description, or permissions. The 'isReadonly' property cannot be set for new or existing roles. It is reserved for predefined roles, such as the Talon.One support role. | [optional] + + + diff --git a/docs/SessionCoupons.md b/docs/SessionCoupons.md new file mode 100644 index 00000000..d5da8072 --- /dev/null +++ b/docs/SessionCoupons.md @@ -0,0 +1,13 @@ + + +# SessionCoupons + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**sessionIntegrationId** | **String** | The integration ID of the session in which the coupons were applied. | +**couponCode** | **String** | The coupon codes for which rejection reason is needed. | [optional] + + + diff --git a/docs/StrikethroughLabelingNotification.md b/docs/StrikethroughLabelingNotification.md index 0d8cb926..fbbfd1d6 100644 --- a/docs/StrikethroughLabelingNotification.md +++ b/docs/StrikethroughLabelingNotification.md @@ -14,7 +14,8 @@ Name | Type | Description | Notes **totalBatches** | **Long** | The total number of batches for the notification. | **trigger** | [**StrikethroughTrigger**](StrikethroughTrigger.md) | | **changedItems** | [**List<StrikethroughChangedItem>**](StrikethroughChangedItem.md) | | -**notificationType** | **String** | The type of the notification | +**notificationType** | [**NotificationTypeEnum**](#NotificationTypeEnum) | The type of notification. | +**sentAt** | [**OffsetDateTime**](OffsetDateTime.md) | Timestamp at which the notification was sent. | @@ -26,3 +27,11 @@ V2 | "v2" +## Enum: NotificationTypeEnum + +Name | Value +---- | ----- +STRIKETHROUGHPRICE | "StrikethroughPrice" + + + diff --git a/docs/StrikethroughSetDiscountPerItemMemberEffectProps.md b/docs/StrikethroughSetDiscountPerItemMemberEffectProps.md new file mode 100644 index 00000000..17c8ec8e --- /dev/null +++ b/docs/StrikethroughSetDiscountPerItemMemberEffectProps.md @@ -0,0 +1,14 @@ + + +# StrikethroughSetDiscountPerItemMemberEffectProps + +setDiscountPerItem member effect in strikethrough pricing payload. +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**name** | **String** | effect name. | +**value** | [**Object**](.md) | discount value. | + + + diff --git a/docs/UpdateCouponsData.md b/docs/UpdateCouponsData.md index 9f86f0fe..dd1c8968 100644 --- a/docs/UpdateCouponsData.md +++ b/docs/UpdateCouponsData.md @@ -12,7 +12,15 @@ Name | Type | Description | Notes **typeOfChange** | **String** | | **operation** | **String** | | **employeeName** | **String** | | -**notificationType** | **String** | The type of the notification | +**notificationType** | [**NotificationTypeEnum**](#NotificationTypeEnum) | The type of the notification | + + + +## Enum: NotificationTypeEnum + +Name | Value +---- | ----- +COUPONSUPDATED | "CouponsUpdated" diff --git a/pom.xml b/pom.xml index cb38e6af..aa53fa2f 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ talon-one-client jar talon-one-client - 14.1.0 + 14.1.1 https://github.com/talon-one/maven-artefacts Talon.One unified JAVA SDK. It allows for programmatic access to the integration and management API with their respective authentication strategies diff --git a/src/main/java/one/talon/ApiClient.java b/src/main/java/one/talon/ApiClient.java index f85429f3..4b672422 100644 --- a/src/main/java/one/talon/ApiClient.java +++ b/src/main/java/one/talon/ApiClient.java @@ -132,7 +132,7 @@ private void init() { json = new JSON(); // Set default User-Agent. - setUserAgent("OpenAPI-Generator/14.1.0/java"); + setUserAgent("OpenAPI-Generator/14.1.1/java"); authentications = new HashMap(); } diff --git a/src/main/java/one/talon/api/IntegrationApi.java b/src/main/java/one/talon/api/IntegrationApi.java index 23c3df87..ee38f008 100644 --- a/src/main/java/one/talon/api/IntegrationApi.java +++ b/src/main/java/one/talon/api/IntegrationApi.java @@ -27,6 +27,8 @@ import java.io.IOException; +import one.talon.model.ActivateLoyaltyPoints; +import one.talon.model.ActivateLoyaltyPointsResponse; import one.talon.model.Audience; import one.talon.model.BestPriorPrice; import one.talon.model.BestPriorPriceRequest; @@ -94,6 +96,138 @@ public void setApiClient(ApiClient apiClient) { this.localVarApiClient = apiClient; } + /** + * Build call for activateLoyaltyPoints + * @param loyaltyProgramId The identifier for the loyalty program. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. (required) + * @param body body (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
    Status Code Description Response Headers
    200 OK -
    400 Bad request -
    401 Unauthorized -
    404 Not found -
    + */ + public okhttp3.Call activateLoyaltyPointsCall(Long loyaltyProgramId, ActivateLoyaltyPoints body, final ApiCallback _callback) throws ApiException { + Object localVarPostBody = body; + + // create path and map variables + String localVarPath = "/v1/loyalty_programs/{loyaltyProgramId}/activate_points" + .replaceAll("\\{" + "loyaltyProgramId" + "\\}", localVarApiClient.escapeString(loyaltyProgramId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + final String[] localVarAccepts = { + "application/json" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + localVarHeaderParams.put("Content-Type", localVarContentType); + + String[] localVarAuthNames = new String[] { "api_key_v1" }; + return localVarApiClient.buildCall(localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call activateLoyaltyPointsValidateBeforeCall(Long loyaltyProgramId, ActivateLoyaltyPoints body, final ApiCallback _callback) throws ApiException { + + // verify the required parameter 'loyaltyProgramId' is set + if (loyaltyProgramId == null) { + throw new ApiException("Missing the required parameter 'loyaltyProgramId' when calling activateLoyaltyPoints(Async)"); + } + + // verify the required parameter 'body' is set + if (body == null) { + throw new ApiException("Missing the required parameter 'body' when calling activateLoyaltyPoints(Async)"); + } + + + okhttp3.Call localVarCall = activateLoyaltyPointsCall(loyaltyProgramId, body, _callback); + return localVarCall; + + } + + /** + * Activate loyalty points + * Activate points when a defined action occurs. You can activate pending points using one of the following parameters: - `sessionId`: Activates all points earned in the specified session. - `transactionUUIDs`: Activates points earned in the transactions specified by the given UUIDs. + * @param loyaltyProgramId The identifier for the loyalty program. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. (required) + * @param body body (required) + * @return ActivateLoyaltyPointsResponse + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
    Status Code Description Response Headers
    200 OK -
    400 Bad request -
    401 Unauthorized -
    404 Not found -
    + */ + public ActivateLoyaltyPointsResponse activateLoyaltyPoints(Long loyaltyProgramId, ActivateLoyaltyPoints body) throws ApiException { + ApiResponse localVarResp = activateLoyaltyPointsWithHttpInfo(loyaltyProgramId, body); + return localVarResp.getData(); + } + + /** + * Activate loyalty points + * Activate points when a defined action occurs. You can activate pending points using one of the following parameters: - `sessionId`: Activates all points earned in the specified session. - `transactionUUIDs`: Activates points earned in the transactions specified by the given UUIDs. + * @param loyaltyProgramId The identifier for the loyalty program. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. (required) + * @param body body (required) + * @return ApiResponse<ActivateLoyaltyPointsResponse> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
    Status Code Description Response Headers
    200 OK -
    400 Bad request -
    401 Unauthorized -
    404 Not found -
    + */ + public ApiResponse activateLoyaltyPointsWithHttpInfo(Long loyaltyProgramId, ActivateLoyaltyPoints body) throws ApiException { + okhttp3.Call localVarCall = activateLoyaltyPointsValidateBeforeCall(loyaltyProgramId, body, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Activate loyalty points (asynchronously) + * Activate points when a defined action occurs. You can activate pending points using one of the following parameters: - `sessionId`: Activates all points earned in the specified session. - `transactionUUIDs`: Activates points earned in the transactions specified by the given UUIDs. + * @param loyaltyProgramId The identifier for the loyalty program. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. (required) + * @param body body (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
    Status Code Description Response Headers
    200 OK -
    400 Bad request -
    401 Unauthorized -
    404 Not found -
    + */ + public okhttp3.Call activateLoyaltyPointsAsync(Long loyaltyProgramId, ActivateLoyaltyPoints body, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = activateLoyaltyPointsValidateBeforeCall(loyaltyProgramId, body, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } /** * Build call for bestPriorPrice * @param body body (required) @@ -328,7 +462,7 @@ public okhttp3.Call createAudienceV2Async(NewAudience body, final ApiCallback createCouponReservationWithHttpInfo(String couponValu /** * Create coupon reservation (asynchronously) - * Create a coupon reservation for the specified customer profiles on the specified coupon. You can also create a reservation via the Campaign Manager using the [Create coupon code reservation](https://docs.talon.one/docs/product/rules/effects/using-effects#reserving-a-coupon-code) effect. **Note:** - If the **Reservation mandatory** option was selected when creating the specified coupon, the endpoint creates a **hard** reservation, meaning only users who have this coupon code reserved can redeem it. Otherwise, the endpoint creates a **soft** reservation, meaning the coupon is associated with the specified customer profiles (they show up when using the [List customer data](https://docs.talon.one/integration-api#operation/getCustomerInventory) endpoint), but any user can redeem it. This can be useful, for example, to display a _coupon wallet_ for customers when they visit your store. - If the **Coupon visibility** option was selected when creating the specified coupon, the coupon code is implicitly soft-reserved for all customers, and the code will be returned for all customer profiles in the [List customer data](https://docs.talon.one/integration-api#operation/getCustomerInventory) endpoint. - This endpoint overrides the coupon reservation limit set when [the coupon is created](https://docs.talon.one/docs/product/campaigns/coupons/creating-coupons). To ensure that coupons cannot be reserved after the reservation limit is reached, use the [Create coupon code reservation](https://docs.talon.one/docs/product/rules/effects/using-effects#reserving-a-coupon-code) effect in the Rule Builder and the [Update customer session](https://docs.talon.one/integration-api#tag/Customer-sessions/operation/updateCustomerSessionV2) endpoint. To delete a reservation, use the [Delete reservation](https://docs.talon.one/integration-api#tag/Coupons/operation/deleteCouponReservation) endpoint. - * @param couponValue The code of the coupon. (required) + * Create a coupon reservation for the specified customer profiles on the specified coupon. You can also create a reservation via the Campaign Manager using the [Create coupon code reservation](https://docs.talon.one/docs/product/rules/effects/using-effects#reserving-a-coupon-code) effect. **Note:** - If the **Reservation mandatory** option was selected when creating the specified coupon, the endpoint creates a **hard** reservation, meaning only users who have this coupon code reserved can redeem it. Otherwise, the endpoint creates a **soft** reservation, meaning the coupon is associated with the specified customer profiles (they show up when using the [List customer data](https://docs.talon.one/integration-api#operation/getCustomerInventory) endpoint), but any user can redeem it. This can be useful, for example, to display a _coupon wallet_ for customers when they visit your store. - If the **Coupon visibility** option was selected when creating the specified coupon, the coupon code is implicitly soft-reserved for all customers, and the code will be returned for all customer profiles in the [List customer data](https://docs.talon.one/integration-api#operation/getCustomerInventory) endpoint. - This endpoint overrides the coupon reservation limit set when [the coupon is created](https://docs.talon.one/docs/product/campaigns/coupons/creating-coupons). To ensure that coupons cannot be reserved after the reservation limit is reached, use the [Create coupon code reservation](https://docs.talon.one/docs/product/rules/effects/using-effects#reserving-a-coupon-code) effect in the Rule Builder and the [Update customer session](https://docs.talon.one/integration-api#tag/Customer-sessions/operation/updateCustomerSessionV2) endpoint. To delete a reservation, use the [Delete reservation](https://docs.talon.one/integration-api#tag/Coupons/operation/deleteCouponReservation) endpoint. + * @param couponValue The code of the coupon. **Important:** The coupon code requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `SUMMER25%OFF` as `SUMMER25%25OFF`. (required) * @param body body (required) * @param _callback The callback to be executed when the API call finishes * @return The request call @@ -942,7 +1076,7 @@ public okhttp3.Call deleteAudienceV2Async(Long audienceId, final ApiCallback deleteCouponReservationWithHttpInfo(String couponValue, /** * Delete coupon reservations (asynchronously) * Remove all the coupon reservations from the provided customer profile integration IDs and the provided coupon code. - * @param couponValue The code of the coupon. (required) + * @param couponValue The code of the coupon. **Important:** The coupon code requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `SUMMER25%OFF` as `SUMMER25%25OFF`. (required) * @param body body (required) * @param _callback The callback to be executed when the API call finishes * @return The request call @@ -2456,6 +2590,7 @@ public okhttp3.Call getLoyaltyCardPointsAsync(Long loyaltyProgramId, String loya * @param transactionUUIDs Filter the results by a list of transaction UUIDs. To include multiple IDs, repeat the parameter for each one, for example, `?transactionUUIDs=uuid1&transactionUUIDs=uuid2`. The response contains only data associated with the specified transactions. (optional) * @param pageSize The number of items in the response. (optional, default to 50l) * @param skip The number of items to skip when paging through large result sets. (optional) + * @param awaitsActivation If `true`: Filters results to include only point transactions that have action-based activation and have not expired. If `false`: Returns a `400` response. (optional) * @param _callback Callback for upload/download progress * @return Call to execute * @throws ApiException If fail to serialize the request body object @@ -2468,7 +2603,7 @@ public okhttp3.Call getLoyaltyCardPointsAsync(Long loyaltyProgramId, String loya 404 Not found - */ - public okhttp3.Call getLoyaltyCardTransactionsCall(Long loyaltyProgramId, String loyaltyCardId, List subledgerId, String loyaltyTransactionType, OffsetDateTime startDate, OffsetDateTime endDate, List customerSessionIDs, List transactionUUIDs, Long pageSize, Long skip, final ApiCallback _callback) throws ApiException { + public okhttp3.Call getLoyaltyCardTransactionsCall(Long loyaltyProgramId, String loyaltyCardId, List subledgerId, String loyaltyTransactionType, OffsetDateTime startDate, OffsetDateTime endDate, List customerSessionIDs, List transactionUUIDs, Long pageSize, Long skip, Boolean awaitsActivation, final ApiCallback _callback) throws ApiException { Object localVarPostBody = null; // create path and map variables @@ -2510,6 +2645,10 @@ public okhttp3.Call getLoyaltyCardTransactionsCall(Long loyaltyProgramId, String localVarQueryParams.addAll(localVarApiClient.parameterToPair("skip", skip)); } + if (awaitsActivation != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("awaitsActivation", awaitsActivation)); + } + Map localVarHeaderParams = new HashMap(); Map localVarCookieParams = new HashMap(); Map localVarFormParams = new HashMap(); @@ -2532,7 +2671,7 @@ public okhttp3.Call getLoyaltyCardTransactionsCall(Long loyaltyProgramId, String } @SuppressWarnings("rawtypes") - private okhttp3.Call getLoyaltyCardTransactionsValidateBeforeCall(Long loyaltyProgramId, String loyaltyCardId, List subledgerId, String loyaltyTransactionType, OffsetDateTime startDate, OffsetDateTime endDate, List customerSessionIDs, List transactionUUIDs, Long pageSize, Long skip, final ApiCallback _callback) throws ApiException { + private okhttp3.Call getLoyaltyCardTransactionsValidateBeforeCall(Long loyaltyProgramId, String loyaltyCardId, List subledgerId, String loyaltyTransactionType, OffsetDateTime startDate, OffsetDateTime endDate, List customerSessionIDs, List transactionUUIDs, Long pageSize, Long skip, Boolean awaitsActivation, final ApiCallback _callback) throws ApiException { // verify the required parameter 'loyaltyProgramId' is set if (loyaltyProgramId == null) { @@ -2545,7 +2684,7 @@ private okhttp3.Call getLoyaltyCardTransactionsValidateBeforeCall(Long loyaltyPr } - okhttp3.Call localVarCall = getLoyaltyCardTransactionsCall(loyaltyProgramId, loyaltyCardId, subledgerId, loyaltyTransactionType, startDate, endDate, customerSessionIDs, transactionUUIDs, pageSize, skip, _callback); + okhttp3.Call localVarCall = getLoyaltyCardTransactionsCall(loyaltyProgramId, loyaltyCardId, subledgerId, loyaltyTransactionType, startDate, endDate, customerSessionIDs, transactionUUIDs, pageSize, skip, awaitsActivation, _callback); return localVarCall; } @@ -2563,6 +2702,7 @@ private okhttp3.Call getLoyaltyCardTransactionsValidateBeforeCall(Long loyaltyPr * @param transactionUUIDs Filter the results by a list of transaction UUIDs. To include multiple IDs, repeat the parameter for each one, for example, `?transactionUUIDs=uuid1&transactionUUIDs=uuid2`. The response contains only data associated with the specified transactions. (optional) * @param pageSize The number of items in the response. (optional, default to 50l) * @param skip The number of items to skip when paging through large result sets. (optional) + * @param awaitsActivation If `true`: Filters results to include only point transactions that have action-based activation and have not expired. If `false`: Returns a `400` response. (optional) * @return InlineResponse2003 * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body * @http.response.details @@ -2574,8 +2714,8 @@ private okhttp3.Call getLoyaltyCardTransactionsValidateBeforeCall(Long loyaltyPr 404 Not found - */ - public InlineResponse2003 getLoyaltyCardTransactions(Long loyaltyProgramId, String loyaltyCardId, List subledgerId, String loyaltyTransactionType, OffsetDateTime startDate, OffsetDateTime endDate, List customerSessionIDs, List transactionUUIDs, Long pageSize, Long skip) throws ApiException { - ApiResponse localVarResp = getLoyaltyCardTransactionsWithHttpInfo(loyaltyProgramId, loyaltyCardId, subledgerId, loyaltyTransactionType, startDate, endDate, customerSessionIDs, transactionUUIDs, pageSize, skip); + public InlineResponse2003 getLoyaltyCardTransactions(Long loyaltyProgramId, String loyaltyCardId, List subledgerId, String loyaltyTransactionType, OffsetDateTime startDate, OffsetDateTime endDate, List customerSessionIDs, List transactionUUIDs, Long pageSize, Long skip, Boolean awaitsActivation) throws ApiException { + ApiResponse localVarResp = getLoyaltyCardTransactionsWithHttpInfo(loyaltyProgramId, loyaltyCardId, subledgerId, loyaltyTransactionType, startDate, endDate, customerSessionIDs, transactionUUIDs, pageSize, skip, awaitsActivation); return localVarResp.getData(); } @@ -2592,6 +2732,7 @@ public InlineResponse2003 getLoyaltyCardTransactions(Long loyaltyProgramId, Stri * @param transactionUUIDs Filter the results by a list of transaction UUIDs. To include multiple IDs, repeat the parameter for each one, for example, `?transactionUUIDs=uuid1&transactionUUIDs=uuid2`. The response contains only data associated with the specified transactions. (optional) * @param pageSize The number of items in the response. (optional, default to 50l) * @param skip The number of items to skip when paging through large result sets. (optional) + * @param awaitsActivation If `true`: Filters results to include only point transactions that have action-based activation and have not expired. If `false`: Returns a `400` response. (optional) * @return ApiResponse<InlineResponse2003> * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body * @http.response.details @@ -2603,8 +2744,8 @@ public InlineResponse2003 getLoyaltyCardTransactions(Long loyaltyProgramId, Stri 404 Not found - */ - public ApiResponse getLoyaltyCardTransactionsWithHttpInfo(Long loyaltyProgramId, String loyaltyCardId, List subledgerId, String loyaltyTransactionType, OffsetDateTime startDate, OffsetDateTime endDate, List customerSessionIDs, List transactionUUIDs, Long pageSize, Long skip) throws ApiException { - okhttp3.Call localVarCall = getLoyaltyCardTransactionsValidateBeforeCall(loyaltyProgramId, loyaltyCardId, subledgerId, loyaltyTransactionType, startDate, endDate, customerSessionIDs, transactionUUIDs, pageSize, skip, null); + public ApiResponse getLoyaltyCardTransactionsWithHttpInfo(Long loyaltyProgramId, String loyaltyCardId, List subledgerId, String loyaltyTransactionType, OffsetDateTime startDate, OffsetDateTime endDate, List customerSessionIDs, List transactionUUIDs, Long pageSize, Long skip, Boolean awaitsActivation) throws ApiException { + okhttp3.Call localVarCall = getLoyaltyCardTransactionsValidateBeforeCall(loyaltyProgramId, loyaltyCardId, subledgerId, loyaltyTransactionType, startDate, endDate, customerSessionIDs, transactionUUIDs, pageSize, skip, awaitsActivation, null); Type localVarReturnType = new TypeToken(){}.getType(); return localVarApiClient.execute(localVarCall, localVarReturnType); } @@ -2622,6 +2763,7 @@ public ApiResponse getLoyaltyCardTransactionsWithHttpInfo(Lo * @param transactionUUIDs Filter the results by a list of transaction UUIDs. To include multiple IDs, repeat the parameter for each one, for example, `?transactionUUIDs=uuid1&transactionUUIDs=uuid2`. The response contains only data associated with the specified transactions. (optional) * @param pageSize The number of items in the response. (optional, default to 50l) * @param skip The number of items to skip when paging through large result sets. (optional) + * @param awaitsActivation If `true`: Filters results to include only point transactions that have action-based activation and have not expired. If `false`: Returns a `400` response. (optional) * @param _callback The callback to be executed when the API call finishes * @return The request call * @throws ApiException If fail to process the API call, e.g. serializing the request body object @@ -2634,9 +2776,9 @@ public ApiResponse getLoyaltyCardTransactionsWithHttpInfo(Lo 404 Not found - */ - public okhttp3.Call getLoyaltyCardTransactionsAsync(Long loyaltyProgramId, String loyaltyCardId, List subledgerId, String loyaltyTransactionType, OffsetDateTime startDate, OffsetDateTime endDate, List customerSessionIDs, List transactionUUIDs, Long pageSize, Long skip, final ApiCallback _callback) throws ApiException { + public okhttp3.Call getLoyaltyCardTransactionsAsync(Long loyaltyProgramId, String loyaltyCardId, List subledgerId, String loyaltyTransactionType, OffsetDateTime startDate, OffsetDateTime endDate, List customerSessionIDs, List transactionUUIDs, Long pageSize, Long skip, Boolean awaitsActivation, final ApiCallback _callback) throws ApiException { - okhttp3.Call localVarCall = getLoyaltyCardTransactionsValidateBeforeCall(loyaltyProgramId, loyaltyCardId, subledgerId, loyaltyTransactionType, startDate, endDate, customerSessionIDs, transactionUUIDs, pageSize, skip, _callback); + okhttp3.Call localVarCall = getLoyaltyCardTransactionsValidateBeforeCall(loyaltyProgramId, loyaltyCardId, subledgerId, loyaltyTransactionType, startDate, endDate, customerSessionIDs, transactionUUIDs, pageSize, skip, awaitsActivation, _callback); Type localVarReturnType = new TypeToken(){}.getType(); localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); return localVarCall; @@ -2842,6 +2984,7 @@ public okhttp3.Call getLoyaltyProgramProfilePointsAsync(Long loyaltyProgramId, S * @param endDate Date and time by which results are returned. Results are filtered by transaction creation date. **Note:** - It must be an RFC3339 timestamp string. - You can include a time component in your string, for example, `T23:59:59` to specify the end of the day. The time zone setting considered is `UTC`. If you do not include a time component, a default time value of `T00:00:00` (midnight) in `UTC` is considered. (optional) * @param pageSize The number of items in the response. (optional, default to 50l) * @param skip The number of items to skip when paging through large result sets. (optional) + * @param awaitsActivation If `true`: Filters results to include only point transactions that have action-based activation and have not expired. If `false`: Returns a `400` response. (optional) * @param _callback Callback for upload/download progress * @return Call to execute * @throws ApiException If fail to serialize the request body object @@ -2854,7 +2997,7 @@ public okhttp3.Call getLoyaltyProgramProfilePointsAsync(Long loyaltyProgramId, S 404 Not found - */ - public okhttp3.Call getLoyaltyProgramProfileTransactionsCall(Long loyaltyProgramId, String integrationId, List customerSessionIDs, List transactionUUIDs, String subledgerId, String loyaltyTransactionType, OffsetDateTime startDate, OffsetDateTime endDate, Long pageSize, Long skip, final ApiCallback _callback) throws ApiException { + public okhttp3.Call getLoyaltyProgramProfileTransactionsCall(Long loyaltyProgramId, String integrationId, List customerSessionIDs, List transactionUUIDs, String subledgerId, String loyaltyTransactionType, OffsetDateTime startDate, OffsetDateTime endDate, Long pageSize, Long skip, Boolean awaitsActivation, final ApiCallback _callback) throws ApiException { Object localVarPostBody = null; // create path and map variables @@ -2896,6 +3039,10 @@ public okhttp3.Call getLoyaltyProgramProfileTransactionsCall(Long loyaltyProgram localVarQueryParams.addAll(localVarApiClient.parameterToPair("skip", skip)); } + if (awaitsActivation != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("awaitsActivation", awaitsActivation)); + } + Map localVarHeaderParams = new HashMap(); Map localVarCookieParams = new HashMap(); Map localVarFormParams = new HashMap(); @@ -2918,7 +3065,7 @@ public okhttp3.Call getLoyaltyProgramProfileTransactionsCall(Long loyaltyProgram } @SuppressWarnings("rawtypes") - private okhttp3.Call getLoyaltyProgramProfileTransactionsValidateBeforeCall(Long loyaltyProgramId, String integrationId, List customerSessionIDs, List transactionUUIDs, String subledgerId, String loyaltyTransactionType, OffsetDateTime startDate, OffsetDateTime endDate, Long pageSize, Long skip, final ApiCallback _callback) throws ApiException { + private okhttp3.Call getLoyaltyProgramProfileTransactionsValidateBeforeCall(Long loyaltyProgramId, String integrationId, List customerSessionIDs, List transactionUUIDs, String subledgerId, String loyaltyTransactionType, OffsetDateTime startDate, OffsetDateTime endDate, Long pageSize, Long skip, Boolean awaitsActivation, final ApiCallback _callback) throws ApiException { // verify the required parameter 'loyaltyProgramId' is set if (loyaltyProgramId == null) { @@ -2931,7 +3078,7 @@ private okhttp3.Call getLoyaltyProgramProfileTransactionsValidateBeforeCall(Long } - okhttp3.Call localVarCall = getLoyaltyProgramProfileTransactionsCall(loyaltyProgramId, integrationId, customerSessionIDs, transactionUUIDs, subledgerId, loyaltyTransactionType, startDate, endDate, pageSize, skip, _callback); + okhttp3.Call localVarCall = getLoyaltyProgramProfileTransactionsCall(loyaltyProgramId, integrationId, customerSessionIDs, transactionUUIDs, subledgerId, loyaltyTransactionType, startDate, endDate, pageSize, skip, awaitsActivation, _callback); return localVarCall; } @@ -2949,6 +3096,7 @@ private okhttp3.Call getLoyaltyProgramProfileTransactionsValidateBeforeCall(Long * @param endDate Date and time by which results are returned. Results are filtered by transaction creation date. **Note:** - It must be an RFC3339 timestamp string. - You can include a time component in your string, for example, `T23:59:59` to specify the end of the day. The time zone setting considered is `UTC`. If you do not include a time component, a default time value of `T00:00:00` (midnight) in `UTC` is considered. (optional) * @param pageSize The number of items in the response. (optional, default to 50l) * @param skip The number of items to skip when paging through large result sets. (optional) + * @param awaitsActivation If `true`: Filters results to include only point transactions that have action-based activation and have not expired. If `false`: Returns a `400` response. (optional) * @return InlineResponse2004 * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body * @http.response.details @@ -2960,8 +3108,8 @@ private okhttp3.Call getLoyaltyProgramProfileTransactionsValidateBeforeCall(Long 404 Not found - */ - public InlineResponse2004 getLoyaltyProgramProfileTransactions(Long loyaltyProgramId, String integrationId, List customerSessionIDs, List transactionUUIDs, String subledgerId, String loyaltyTransactionType, OffsetDateTime startDate, OffsetDateTime endDate, Long pageSize, Long skip) throws ApiException { - ApiResponse localVarResp = getLoyaltyProgramProfileTransactionsWithHttpInfo(loyaltyProgramId, integrationId, customerSessionIDs, transactionUUIDs, subledgerId, loyaltyTransactionType, startDate, endDate, pageSize, skip); + public InlineResponse2004 getLoyaltyProgramProfileTransactions(Long loyaltyProgramId, String integrationId, List customerSessionIDs, List transactionUUIDs, String subledgerId, String loyaltyTransactionType, OffsetDateTime startDate, OffsetDateTime endDate, Long pageSize, Long skip, Boolean awaitsActivation) throws ApiException { + ApiResponse localVarResp = getLoyaltyProgramProfileTransactionsWithHttpInfo(loyaltyProgramId, integrationId, customerSessionIDs, transactionUUIDs, subledgerId, loyaltyTransactionType, startDate, endDate, pageSize, skip, awaitsActivation); return localVarResp.getData(); } @@ -2978,6 +3126,7 @@ public InlineResponse2004 getLoyaltyProgramProfileTransactions(Long loyaltyProgr * @param endDate Date and time by which results are returned. Results are filtered by transaction creation date. **Note:** - It must be an RFC3339 timestamp string. - You can include a time component in your string, for example, `T23:59:59` to specify the end of the day. The time zone setting considered is `UTC`. If you do not include a time component, a default time value of `T00:00:00` (midnight) in `UTC` is considered. (optional) * @param pageSize The number of items in the response. (optional, default to 50l) * @param skip The number of items to skip when paging through large result sets. (optional) + * @param awaitsActivation If `true`: Filters results to include only point transactions that have action-based activation and have not expired. If `false`: Returns a `400` response. (optional) * @return ApiResponse<InlineResponse2004> * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body * @http.response.details @@ -2989,8 +3138,8 @@ public InlineResponse2004 getLoyaltyProgramProfileTransactions(Long loyaltyProgr 404 Not found - */ - public ApiResponse getLoyaltyProgramProfileTransactionsWithHttpInfo(Long loyaltyProgramId, String integrationId, List customerSessionIDs, List transactionUUIDs, String subledgerId, String loyaltyTransactionType, OffsetDateTime startDate, OffsetDateTime endDate, Long pageSize, Long skip) throws ApiException { - okhttp3.Call localVarCall = getLoyaltyProgramProfileTransactionsValidateBeforeCall(loyaltyProgramId, integrationId, customerSessionIDs, transactionUUIDs, subledgerId, loyaltyTransactionType, startDate, endDate, pageSize, skip, null); + public ApiResponse getLoyaltyProgramProfileTransactionsWithHttpInfo(Long loyaltyProgramId, String integrationId, List customerSessionIDs, List transactionUUIDs, String subledgerId, String loyaltyTransactionType, OffsetDateTime startDate, OffsetDateTime endDate, Long pageSize, Long skip, Boolean awaitsActivation) throws ApiException { + okhttp3.Call localVarCall = getLoyaltyProgramProfileTransactionsValidateBeforeCall(loyaltyProgramId, integrationId, customerSessionIDs, transactionUUIDs, subledgerId, loyaltyTransactionType, startDate, endDate, pageSize, skip, awaitsActivation, null); Type localVarReturnType = new TypeToken(){}.getType(); return localVarApiClient.execute(localVarCall, localVarReturnType); } @@ -3008,6 +3157,7 @@ public ApiResponse getLoyaltyProgramProfileTransactionsWithH * @param endDate Date and time by which results are returned. Results are filtered by transaction creation date. **Note:** - It must be an RFC3339 timestamp string. - You can include a time component in your string, for example, `T23:59:59` to specify the end of the day. The time zone setting considered is `UTC`. If you do not include a time component, a default time value of `T00:00:00` (midnight) in `UTC` is considered. (optional) * @param pageSize The number of items in the response. (optional, default to 50l) * @param skip The number of items to skip when paging through large result sets. (optional) + * @param awaitsActivation If `true`: Filters results to include only point transactions that have action-based activation and have not expired. If `false`: Returns a `400` response. (optional) * @param _callback The callback to be executed when the API call finishes * @return The request call * @throws ApiException If fail to process the API call, e.g. serializing the request body object @@ -3020,16 +3170,16 @@ public ApiResponse getLoyaltyProgramProfileTransactionsWithH 404 Not found - */ - public okhttp3.Call getLoyaltyProgramProfileTransactionsAsync(Long loyaltyProgramId, String integrationId, List customerSessionIDs, List transactionUUIDs, String subledgerId, String loyaltyTransactionType, OffsetDateTime startDate, OffsetDateTime endDate, Long pageSize, Long skip, final ApiCallback _callback) throws ApiException { + public okhttp3.Call getLoyaltyProgramProfileTransactionsAsync(Long loyaltyProgramId, String integrationId, List customerSessionIDs, List transactionUUIDs, String subledgerId, String loyaltyTransactionType, OffsetDateTime startDate, OffsetDateTime endDate, Long pageSize, Long skip, Boolean awaitsActivation, final ApiCallback _callback) throws ApiException { - okhttp3.Call localVarCall = getLoyaltyProgramProfileTransactionsValidateBeforeCall(loyaltyProgramId, integrationId, customerSessionIDs, transactionUUIDs, subledgerId, loyaltyTransactionType, startDate, endDate, pageSize, skip, _callback); + okhttp3.Call localVarCall = getLoyaltyProgramProfileTransactionsValidateBeforeCall(loyaltyProgramId, integrationId, customerSessionIDs, transactionUUIDs, subledgerId, loyaltyTransactionType, startDate, endDate, pageSize, skip, awaitsActivation, _callback); Type localVarReturnType = new TypeToken(){}.getType(); localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); return localVarCall; } /** * Build call for getReservedCustomers - * @param couponValue The code of the coupon. (required) + * @param couponValue The code of the coupon. **Important:** The coupon code requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `SUMMER25%OFF` as `SUMMER25%25OFF`. (required) * @param _callback Callback for upload/download progress * @return Call to execute * @throws ApiException If fail to serialize the request body object @@ -3089,7 +3239,7 @@ private okhttp3.Call getReservedCustomersValidateBeforeCall(String couponValue, /** * List customers that have this coupon reserved * Return all customers that have this coupon marked as reserved. This includes hard and soft reservations. - * @param couponValue The code of the coupon. (required) + * @param couponValue The code of the coupon. **Important:** The coupon code requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `SUMMER25%OFF` as `SUMMER25%25OFF`. (required) * @return InlineResponse200 * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body * @http.response.details @@ -3109,7 +3259,7 @@ public InlineResponse200 getReservedCustomers(String couponValue) throws ApiExce /** * List customers that have this coupon reserved * Return all customers that have this coupon marked as reserved. This includes hard and soft reservations. - * @param couponValue The code of the coupon. (required) + * @param couponValue The code of the coupon. **Important:** The coupon code requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `SUMMER25%OFF` as `SUMMER25%25OFF`. (required) * @return ApiResponse<InlineResponse200> * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body * @http.response.details @@ -3130,7 +3280,7 @@ public ApiResponse getReservedCustomersWithHttpInfo(String co /** * List customers that have this coupon reserved (asynchronously) * Return all customers that have this coupon marked as reserved. This includes hard and soft reservations. - * @param couponValue The code of the coupon. (required) + * @param couponValue The code of the coupon. **Important:** The coupon code requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `SUMMER25%OFF` as `SUMMER25%25OFF`. (required) * @param _callback The callback to be executed when the API call finishes * @return The request call * @throws ApiException If fail to process the API call, e.g. serializing the request body object @@ -3352,7 +3502,7 @@ private okhttp3.Call reopenCustomerSessionValidateBeforeCall(String customerSess /** * Reopen customer session - * Reopen a closed [customer session](https://docs.talon.one/docs/dev/concepts/entities/customer-sessions). For example, if a session has been completed but still needs to be edited, you can reopen it with this endpoint. A reopen session is treated like a standard open session. When reopening a session: - The `talon_session_reopened` event is triggered. You can see it in the **Events** view in the Campaign Manager. - The session state is updated to `open`. - Any modified budgets and triggered effects are rolled back when the session closes. - Depending on the [return policy](https://docs.talon.one/docs/product/loyalty-programs/managing-loyalty-programs#return-policy) in your loyalty programs, points are rolled back in the following ways: - Pending points are rolled back automatically. - If **Active points deduction** setting is enabled, any points that were earned and activated when the session closed are rolled back. - If **Negative balance** is enabled, the rollback can create a negative points balance. <details> <summary><strong>Effects and budgets unimpacted by a session reopening</strong></summary> <div> <p>The following effects and budgets remain in the state they were in when the session closed:</p> <ul> <li>Add free item effect</li> <li>Award giveaway</li> <li>Coupon and referral creation</li> <li>Coupon reservation</li> <li>Custom effect</li> <li>Update attribute value</li> <li>Update cart item attribute value</li> </ul> </div> </details> <p>To see an example of a rollback, see the <a href=\"https://docs.talon.one/docs/dev/tutorials/rolling-back-effects\">Cancelling a session with campaign budgets</a>tutorial.</p> **Note:** If your order workflow requires you to create a new session instead of reopening a session, use the [Update customer session](https://docs.talon.one/integration-api#tag/Customer-sessions/operation/updateCustomerSessionV2) endpoint to cancel a closed session and create a new one. + * Reopen a closed [customer session](https://docs.talon.one/docs/dev/concepts/entities/customer-sessions). For example, if a session has been completed but still needs to be edited, you can reopen it with this endpoint. A reopen session is treated like a standard open session. When reopening a session: - The `talon_session_reopened` event is triggered. You can see it in the **Events** view in the Campaign Manager. - The session state is updated to `open`. - Any modified budgets and triggered effects are rolled back when the session closes. - Depending on the [return policy](https://docs.talon.one/docs/product/loyalty-programs/managing-loyalty-programs#return-policy) in your loyalty programs, points are rolled back in the following ways: - Pending points are rolled back automatically. - If **Active points deduction** setting is enabled, any points that were earned and activated when the session closed are rolled back. - If **Negative balance** is enabled, the rollback can create a negative points balance. <details> <summary><strong>Effects and budgets unimpacted by a session reopening</strong></summary> <div> <p>The following effects and budgets remain in the state they were in when the session closed:</p> <ul> <li>Add free item effect</li> <li>Award giveaway</li> <li>Coupon and referral creation</li> <li>Coupon reservation</li> <li>Custom effect</li> <li>Update attribute value</li> <li>Update cart item attribute value</li> </ul> </div> </details> <p>To see an example of a rollback, see the <a href=\"https://docs.talon.one/docs/dev/tutorials/rolling-back-effects\">Cancelling a session with campaign budgets</a> tutorial.</p> **Note:** If your order workflow requires you to create a new session instead of reopening a session, use the [Update customer session](https://docs.talon.one/integration-api#tag/Customer-sessions/operation/updateCustomerSessionV2) endpoint to cancel a closed session and create a new one. * @param customerSessionId The `integration ID` of the customer session. You set this ID when you create a customer session. You can see existing customer session integration IDs in the Campaign Manager's **Sessions** menu, or via the [List Application session](https://docs.talon.one/management-api#operation/getApplicationSessions) endpoint. (required) * @return ReopenSessionResponse * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body @@ -3371,7 +3521,7 @@ public ReopenSessionResponse reopenCustomerSession(String customerSessionId) thr /** * Reopen customer session - * Reopen a closed [customer session](https://docs.talon.one/docs/dev/concepts/entities/customer-sessions). For example, if a session has been completed but still needs to be edited, you can reopen it with this endpoint. A reopen session is treated like a standard open session. When reopening a session: - The `talon_session_reopened` event is triggered. You can see it in the **Events** view in the Campaign Manager. - The session state is updated to `open`. - Any modified budgets and triggered effects are rolled back when the session closes. - Depending on the [return policy](https://docs.talon.one/docs/product/loyalty-programs/managing-loyalty-programs#return-policy) in your loyalty programs, points are rolled back in the following ways: - Pending points are rolled back automatically. - If **Active points deduction** setting is enabled, any points that were earned and activated when the session closed are rolled back. - If **Negative balance** is enabled, the rollback can create a negative points balance. <details> <summary><strong>Effects and budgets unimpacted by a session reopening</strong></summary> <div> <p>The following effects and budgets remain in the state they were in when the session closed:</p> <ul> <li>Add free item effect</li> <li>Award giveaway</li> <li>Coupon and referral creation</li> <li>Coupon reservation</li> <li>Custom effect</li> <li>Update attribute value</li> <li>Update cart item attribute value</li> </ul> </div> </details> <p>To see an example of a rollback, see the <a href=\"https://docs.talon.one/docs/dev/tutorials/rolling-back-effects\">Cancelling a session with campaign budgets</a>tutorial.</p> **Note:** If your order workflow requires you to create a new session instead of reopening a session, use the [Update customer session](https://docs.talon.one/integration-api#tag/Customer-sessions/operation/updateCustomerSessionV2) endpoint to cancel a closed session and create a new one. + * Reopen a closed [customer session](https://docs.talon.one/docs/dev/concepts/entities/customer-sessions). For example, if a session has been completed but still needs to be edited, you can reopen it with this endpoint. A reopen session is treated like a standard open session. When reopening a session: - The `talon_session_reopened` event is triggered. You can see it in the **Events** view in the Campaign Manager. - The session state is updated to `open`. - Any modified budgets and triggered effects are rolled back when the session closes. - Depending on the [return policy](https://docs.talon.one/docs/product/loyalty-programs/managing-loyalty-programs#return-policy) in your loyalty programs, points are rolled back in the following ways: - Pending points are rolled back automatically. - If **Active points deduction** setting is enabled, any points that were earned and activated when the session closed are rolled back. - If **Negative balance** is enabled, the rollback can create a negative points balance. <details> <summary><strong>Effects and budgets unimpacted by a session reopening</strong></summary> <div> <p>The following effects and budgets remain in the state they were in when the session closed:</p> <ul> <li>Add free item effect</li> <li>Award giveaway</li> <li>Coupon and referral creation</li> <li>Coupon reservation</li> <li>Custom effect</li> <li>Update attribute value</li> <li>Update cart item attribute value</li> </ul> </div> </details> <p>To see an example of a rollback, see the <a href=\"https://docs.talon.one/docs/dev/tutorials/rolling-back-effects\">Cancelling a session with campaign budgets</a> tutorial.</p> **Note:** If your order workflow requires you to create a new session instead of reopening a session, use the [Update customer session](https://docs.talon.one/integration-api#tag/Customer-sessions/operation/updateCustomerSessionV2) endpoint to cancel a closed session and create a new one. * @param customerSessionId The `integration ID` of the customer session. You set this ID when you create a customer session. You can see existing customer session integration IDs in the Campaign Manager's **Sessions** menu, or via the [List Application session](https://docs.talon.one/management-api#operation/getApplicationSessions) endpoint. (required) * @return ApiResponse<ReopenSessionResponse> * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body @@ -3391,7 +3541,7 @@ public ApiResponse reopenCustomerSessionWithHttpInfo(Stri /** * Reopen customer session (asynchronously) - * Reopen a closed [customer session](https://docs.talon.one/docs/dev/concepts/entities/customer-sessions). For example, if a session has been completed but still needs to be edited, you can reopen it with this endpoint. A reopen session is treated like a standard open session. When reopening a session: - The `talon_session_reopened` event is triggered. You can see it in the **Events** view in the Campaign Manager. - The session state is updated to `open`. - Any modified budgets and triggered effects are rolled back when the session closes. - Depending on the [return policy](https://docs.talon.one/docs/product/loyalty-programs/managing-loyalty-programs#return-policy) in your loyalty programs, points are rolled back in the following ways: - Pending points are rolled back automatically. - If **Active points deduction** setting is enabled, any points that were earned and activated when the session closed are rolled back. - If **Negative balance** is enabled, the rollback can create a negative points balance. <details> <summary><strong>Effects and budgets unimpacted by a session reopening</strong></summary> <div> <p>The following effects and budgets remain in the state they were in when the session closed:</p> <ul> <li>Add free item effect</li> <li>Award giveaway</li> <li>Coupon and referral creation</li> <li>Coupon reservation</li> <li>Custom effect</li> <li>Update attribute value</li> <li>Update cart item attribute value</li> </ul> </div> </details> <p>To see an example of a rollback, see the <a href=\"https://docs.talon.one/docs/dev/tutorials/rolling-back-effects\">Cancelling a session with campaign budgets</a>tutorial.</p> **Note:** If your order workflow requires you to create a new session instead of reopening a session, use the [Update customer session](https://docs.talon.one/integration-api#tag/Customer-sessions/operation/updateCustomerSessionV2) endpoint to cancel a closed session and create a new one. + * Reopen a closed [customer session](https://docs.talon.one/docs/dev/concepts/entities/customer-sessions). For example, if a session has been completed but still needs to be edited, you can reopen it with this endpoint. A reopen session is treated like a standard open session. When reopening a session: - The `talon_session_reopened` event is triggered. You can see it in the **Events** view in the Campaign Manager. - The session state is updated to `open`. - Any modified budgets and triggered effects are rolled back when the session closes. - Depending on the [return policy](https://docs.talon.one/docs/product/loyalty-programs/managing-loyalty-programs#return-policy) in your loyalty programs, points are rolled back in the following ways: - Pending points are rolled back automatically. - If **Active points deduction** setting is enabled, any points that were earned and activated when the session closed are rolled back. - If **Negative balance** is enabled, the rollback can create a negative points balance. <details> <summary><strong>Effects and budgets unimpacted by a session reopening</strong></summary> <div> <p>The following effects and budgets remain in the state they were in when the session closed:</p> <ul> <li>Add free item effect</li> <li>Award giveaway</li> <li>Coupon and referral creation</li> <li>Coupon reservation</li> <li>Custom effect</li> <li>Update attribute value</li> <li>Update cart item attribute value</li> </ul> </div> </details> <p>To see an example of a rollback, see the <a href=\"https://docs.talon.one/docs/dev/tutorials/rolling-back-effects\">Cancelling a session with campaign budgets</a> tutorial.</p> **Note:** If your order workflow requires you to create a new session instead of reopening a session, use the [Update customer session](https://docs.talon.one/integration-api#tag/Customer-sessions/operation/updateCustomerSessionV2) endpoint to cancel a closed session and create a new one. * @param customerSessionId The `integration ID` of the customer session. You set this ID when you create a customer session. You can see existing customer session integration IDs in the Campaign Manager's **Sessions** menu, or via the [List Application session](https://docs.talon.one/management-api#operation/getApplicationSessions) endpoint. (required) * @param _callback The callback to be executed when the API call finishes * @return The request call @@ -3825,6 +3975,148 @@ public okhttp3.Call trackEventV2Async(IntegrationEventV2Request body, String sil localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); return localVarCall; } + /** + * Build call for unlinkLoyaltyCardFromProfile + * @param loyaltyProgramId The identifier of the card-based loyalty program containing the loyalty card. You can get this ID using the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. (required) + * @param loyaltyCardId The identifier of the loyalty card. You can get this ID using the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. (required) + * @param body body (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
    Status Code Description Response Headers
    200 OK -
    400 Bad request -
    401 Unauthorized -
    404 Not found -
    + */ + public okhttp3.Call unlinkLoyaltyCardFromProfileCall(Long loyaltyProgramId, String loyaltyCardId, LoyaltyCardRegistration body, final ApiCallback _callback) throws ApiException { + Object localVarPostBody = body; + + // create path and map variables + String localVarPath = "/v2/loyalty_programs/{loyaltyProgramId}/cards/{loyaltyCardId}/unlink_profile" + .replaceAll("\\{" + "loyaltyProgramId" + "\\}", localVarApiClient.escapeString(loyaltyProgramId.toString())) + .replaceAll("\\{" + "loyaltyCardId" + "\\}", localVarApiClient.escapeString(loyaltyCardId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + final String[] localVarAccepts = { + "application/json" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + localVarHeaderParams.put("Content-Type", localVarContentType); + + String[] localVarAuthNames = new String[] { "api_key_v1" }; + return localVarApiClient.buildCall(localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call unlinkLoyaltyCardFromProfileValidateBeforeCall(Long loyaltyProgramId, String loyaltyCardId, LoyaltyCardRegistration body, final ApiCallback _callback) throws ApiException { + + // verify the required parameter 'loyaltyProgramId' is set + if (loyaltyProgramId == null) { + throw new ApiException("Missing the required parameter 'loyaltyProgramId' when calling unlinkLoyaltyCardFromProfile(Async)"); + } + + // verify the required parameter 'loyaltyCardId' is set + if (loyaltyCardId == null) { + throw new ApiException("Missing the required parameter 'loyaltyCardId' when calling unlinkLoyaltyCardFromProfile(Async)"); + } + + // verify the required parameter 'body' is set + if (body == null) { + throw new ApiException("Missing the required parameter 'body' when calling unlinkLoyaltyCardFromProfile(Async)"); + } + + + okhttp3.Call localVarCall = unlinkLoyaltyCardFromProfileCall(loyaltyProgramId, loyaltyCardId, body, _callback); + return localVarCall; + + } + + /** + * Unlink customer profile from a loyalty card + * Unlink a customer profile from a [registered](https://docs.talon.one/docs/product/loyalty-programs/card-based/managing-loyalty-cards#linking-customer-profiles-to-a-loyalty-card) loyalty card. To get the `integrationId` of a customer profile, you can use the [Update customer session](https://docs.talon.one/integration-api#operation/updateCustomerSessionV2) endpoint. + * @param loyaltyProgramId The identifier of the card-based loyalty program containing the loyalty card. You can get this ID using the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. (required) + * @param loyaltyCardId The identifier of the loyalty card. You can get this ID using the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. (required) + * @param body body (required) + * @return LoyaltyCard + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
    Status Code Description Response Headers
    200 OK -
    400 Bad request -
    401 Unauthorized -
    404 Not found -
    + */ + public LoyaltyCard unlinkLoyaltyCardFromProfile(Long loyaltyProgramId, String loyaltyCardId, LoyaltyCardRegistration body) throws ApiException { + ApiResponse localVarResp = unlinkLoyaltyCardFromProfileWithHttpInfo(loyaltyProgramId, loyaltyCardId, body); + return localVarResp.getData(); + } + + /** + * Unlink customer profile from a loyalty card + * Unlink a customer profile from a [registered](https://docs.talon.one/docs/product/loyalty-programs/card-based/managing-loyalty-cards#linking-customer-profiles-to-a-loyalty-card) loyalty card. To get the `integrationId` of a customer profile, you can use the [Update customer session](https://docs.talon.one/integration-api#operation/updateCustomerSessionV2) endpoint. + * @param loyaltyProgramId The identifier of the card-based loyalty program containing the loyalty card. You can get this ID using the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. (required) + * @param loyaltyCardId The identifier of the loyalty card. You can get this ID using the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. (required) + * @param body body (required) + * @return ApiResponse<LoyaltyCard> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
    Status Code Description Response Headers
    200 OK -
    400 Bad request -
    401 Unauthorized -
    404 Not found -
    + */ + public ApiResponse unlinkLoyaltyCardFromProfileWithHttpInfo(Long loyaltyProgramId, String loyaltyCardId, LoyaltyCardRegistration body) throws ApiException { + okhttp3.Call localVarCall = unlinkLoyaltyCardFromProfileValidateBeforeCall(loyaltyProgramId, loyaltyCardId, body, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Unlink customer profile from a loyalty card (asynchronously) + * Unlink a customer profile from a [registered](https://docs.talon.one/docs/product/loyalty-programs/card-based/managing-loyalty-cards#linking-customer-profiles-to-a-loyalty-card) loyalty card. To get the `integrationId` of a customer profile, you can use the [Update customer session](https://docs.talon.one/integration-api#operation/updateCustomerSessionV2) endpoint. + * @param loyaltyProgramId The identifier of the card-based loyalty program containing the loyalty card. You can get this ID using the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. (required) + * @param loyaltyCardId The identifier of the loyalty card. You can get this ID using the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. (required) + * @param body body (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
    Status Code Description Response Headers
    200 OK -
    400 Bad request -
    401 Unauthorized -
    404 Not found -
    + */ + public okhttp3.Call unlinkLoyaltyCardFromProfileAsync(Long loyaltyProgramId, String loyaltyCardId, LoyaltyCardRegistration body, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = unlinkLoyaltyCardFromProfileValidateBeforeCall(loyaltyProgramId, loyaltyCardId, body, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } /** * Build call for updateAudienceCustomersAttributes * @param audienceId The ID of the audience. (required) diff --git a/src/main/java/one/talon/api/ManagementApi.java b/src/main/java/one/talon/api/ManagementApi.java index 59cdad88..7b4c6992 100644 --- a/src/main/java/one/talon/api/ManagementApi.java +++ b/src/main/java/one/talon/api/ManagementApi.java @@ -87,6 +87,7 @@ import one.talon.model.InlineResponse20037; import one.talon.model.InlineResponse20038; import one.talon.model.InlineResponse20039; +import one.talon.model.InlineResponse2004; import one.talon.model.InlineResponse20040; import one.talon.model.InlineResponse20041; import one.talon.model.InlineResponse20042; @@ -101,6 +102,7 @@ import one.talon.model.InlineResponse2008; import one.talon.model.InlineResponse2009; import one.talon.model.LoginParams; +import one.talon.model.LoyaltyBalancesWithTiers; import one.talon.model.LoyaltyCard; import one.talon.model.LoyaltyCardBatch; import one.talon.model.LoyaltyCardBatchResponse; @@ -10053,6 +10055,10 @@ public okhttp3.Call getAttributeAsync(Long attributeId, final ApiCallback 200 OK - */ - public okhttp3.Call getAttributesCall(Long pageSize, Long skip, String sort, String entity, final ApiCallback _callback) throws ApiException { + public okhttp3.Call getAttributesCall(Long pageSize, Long skip, String sort, String entity, String applicationIds, String type, String kind, String search, final ApiCallback _callback) throws ApiException { Object localVarPostBody = null; // create path and map variables @@ -10086,6 +10092,22 @@ public okhttp3.Call getAttributesCall(Long pageSize, Long skip, String sort, Str localVarQueryParams.addAll(localVarApiClient.parameterToPair("entity", entity)); } + if (applicationIds != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("applicationIds", applicationIds)); + } + + if (type != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("type", type)); + } + + if (kind != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("kind", kind)); + } + + if (search != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("search", search)); + } + Map localVarHeaderParams = new HashMap(); Map localVarCookieParams = new HashMap(); Map localVarFormParams = new HashMap(); @@ -10108,10 +10130,10 @@ public okhttp3.Call getAttributesCall(Long pageSize, Long skip, String sort, Str } @SuppressWarnings("rawtypes") - private okhttp3.Call getAttributesValidateBeforeCall(Long pageSize, Long skip, String sort, String entity, final ApiCallback _callback) throws ApiException { + private okhttp3.Call getAttributesValidateBeforeCall(Long pageSize, Long skip, String sort, String entity, String applicationIds, String type, String kind, String search, final ApiCallback _callback) throws ApiException { - okhttp3.Call localVarCall = getAttributesCall(pageSize, skip, sort, entity, _callback); + okhttp3.Call localVarCall = getAttributesCall(pageSize, skip, sort, entity, applicationIds, type, kind, search, _callback); return localVarCall; } @@ -10123,6 +10145,10 @@ private okhttp3.Call getAttributesValidateBeforeCall(Long pageSize, Long skip, S * @param skip The number of items to skip when paging through large result sets. (optional) * @param sort The field by which results should be sorted. By default, results are sorted in ascending order. To sort them in descending order, prefix the field name with `-`. **Note:** You may not be able to use all fields for sorting. This is due to performance limitations. (optional) * @param entity Returned attributes will be filtered by supplied entity. (optional) + * @param applicationIds Returned attributes will be filtered by supplied application ids (optional) + * @param type Returned attributes will be filtered by supplied type (optional) + * @param kind Returned attributes will be filtered by supplied kind (builtin or custom) (optional) + * @param search Returned attributes will be filtered by searching case insensitive through Attribute name, description and type (optional) * @return InlineResponse20036 * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body * @http.response.details @@ -10131,8 +10157,8 @@ private okhttp3.Call getAttributesValidateBeforeCall(Long pageSize, Long skip, S 200 OK - */ - public InlineResponse20036 getAttributes(Long pageSize, Long skip, String sort, String entity) throws ApiException { - ApiResponse localVarResp = getAttributesWithHttpInfo(pageSize, skip, sort, entity); + public InlineResponse20036 getAttributes(Long pageSize, Long skip, String sort, String entity, String applicationIds, String type, String kind, String search) throws ApiException { + ApiResponse localVarResp = getAttributesWithHttpInfo(pageSize, skip, sort, entity, applicationIds, type, kind, search); return localVarResp.getData(); } @@ -10143,6 +10169,10 @@ public InlineResponse20036 getAttributes(Long pageSize, Long skip, String sort, * @param skip The number of items to skip when paging through large result sets. (optional) * @param sort The field by which results should be sorted. By default, results are sorted in ascending order. To sort them in descending order, prefix the field name with `-`. **Note:** You may not be able to use all fields for sorting. This is due to performance limitations. (optional) * @param entity Returned attributes will be filtered by supplied entity. (optional) + * @param applicationIds Returned attributes will be filtered by supplied application ids (optional) + * @param type Returned attributes will be filtered by supplied type (optional) + * @param kind Returned attributes will be filtered by supplied kind (builtin or custom) (optional) + * @param search Returned attributes will be filtered by searching case insensitive through Attribute name, description and type (optional) * @return ApiResponse<InlineResponse20036> * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body * @http.response.details @@ -10151,8 +10181,8 @@ public InlineResponse20036 getAttributes(Long pageSize, Long skip, String sort, 200 OK - */ - public ApiResponse getAttributesWithHttpInfo(Long pageSize, Long skip, String sort, String entity) throws ApiException { - okhttp3.Call localVarCall = getAttributesValidateBeforeCall(pageSize, skip, sort, entity, null); + public ApiResponse getAttributesWithHttpInfo(Long pageSize, Long skip, String sort, String entity, String applicationIds, String type, String kind, String search) throws ApiException { + okhttp3.Call localVarCall = getAttributesValidateBeforeCall(pageSize, skip, sort, entity, applicationIds, type, kind, search, null); Type localVarReturnType = new TypeToken(){}.getType(); return localVarApiClient.execute(localVarCall, localVarReturnType); } @@ -10164,6 +10194,10 @@ public ApiResponse getAttributesWithHttpInfo(Long pageSize, * @param skip The number of items to skip when paging through large result sets. (optional) * @param sort The field by which results should be sorted. By default, results are sorted in ascending order. To sort them in descending order, prefix the field name with `-`. **Note:** You may not be able to use all fields for sorting. This is due to performance limitations. (optional) * @param entity Returned attributes will be filtered by supplied entity. (optional) + * @param applicationIds Returned attributes will be filtered by supplied application ids (optional) + * @param type Returned attributes will be filtered by supplied type (optional) + * @param kind Returned attributes will be filtered by supplied kind (builtin or custom) (optional) + * @param search Returned attributes will be filtered by searching case insensitive through Attribute name, description and type (optional) * @param _callback The callback to be executed when the API call finishes * @return The request call * @throws ApiException If fail to process the API call, e.g. serializing the request body object @@ -10173,9 +10207,9 @@ public ApiResponse getAttributesWithHttpInfo(Long pageSize, 200 OK - */ - public okhttp3.Call getAttributesAsync(Long pageSize, Long skip, String sort, String entity, final ApiCallback _callback) throws ApiException { + public okhttp3.Call getAttributesAsync(Long pageSize, Long skip, String sort, String entity, String applicationIds, String type, String kind, String search, final ApiCallback _callback) throws ApiException { - okhttp3.Call localVarCall = getAttributesValidateBeforeCall(pageSize, skip, sort, entity, _callback); + okhttp3.Call localVarCall = getAttributesValidateBeforeCall(pageSize, skip, sort, entity, applicationIds, type, kind, search, _callback); Type localVarReturnType = new TypeToken(){}.getType(); localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); return localVarCall; @@ -11414,6 +11448,10 @@ public okhttp3.Call getCampaignTemplatesAsync(Long pageSize, Long skip, String s * @param tags Filter results performing case-insensitive matching against the tags of the campaign. When used in conjunction with the \"name\" query parameter, a logical OR will be performed to search both tags and name for the provided values (optional) * @param createdBefore Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the campaign creation timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. (optional) * @param createdAfter Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the campaign creation timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. (optional) + * @param startBefore Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the campaign start time timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. (optional) + * @param startAfter Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the campaign start time timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. (optional) + * @param endBefore Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the campaign end time timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. (optional) + * @param endAfter Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the campaign end time timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. (optional) * @param campaignGroupId Filter results to campaigns owned by the specified campaign access group ID. (optional) * @param templateId The ID of the campaign template this campaign was created from. (optional) * @param storeId Filter results to campaigns linked to the specified store ID. (optional) @@ -11427,7 +11465,7 @@ public okhttp3.Call getCampaignTemplatesAsync(Long pageSize, Long skip, String s 400 Bad request - */ - public okhttp3.Call getCampaignsCall(Long applicationId, Long pageSize, Long skip, String sort, String campaignState, String name, String tags, OffsetDateTime createdBefore, OffsetDateTime createdAfter, Long campaignGroupId, Long templateId, Long storeId, final ApiCallback _callback) throws ApiException { + public okhttp3.Call getCampaignsCall(Long applicationId, Long pageSize, Long skip, String sort, String campaignState, String name, String tags, OffsetDateTime createdBefore, OffsetDateTime createdAfter, OffsetDateTime startBefore, OffsetDateTime startAfter, OffsetDateTime endBefore, OffsetDateTime endAfter, Long campaignGroupId, Long templateId, Long storeId, final ApiCallback _callback) throws ApiException { Object localVarPostBody = null; // create path and map variables @@ -11468,6 +11506,22 @@ public okhttp3.Call getCampaignsCall(Long applicationId, Long pageSize, Long ski localVarQueryParams.addAll(localVarApiClient.parameterToPair("createdAfter", createdAfter)); } + if (startBefore != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("startBefore", startBefore)); + } + + if (startAfter != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("startAfter", startAfter)); + } + + if (endBefore != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("endBefore", endBefore)); + } + + if (endAfter != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("endAfter", endAfter)); + } + if (campaignGroupId != null) { localVarQueryParams.addAll(localVarApiClient.parameterToPair("campaignGroupId", campaignGroupId)); } @@ -11502,7 +11556,7 @@ public okhttp3.Call getCampaignsCall(Long applicationId, Long pageSize, Long ski } @SuppressWarnings("rawtypes") - private okhttp3.Call getCampaignsValidateBeforeCall(Long applicationId, Long pageSize, Long skip, String sort, String campaignState, String name, String tags, OffsetDateTime createdBefore, OffsetDateTime createdAfter, Long campaignGroupId, Long templateId, Long storeId, final ApiCallback _callback) throws ApiException { + private okhttp3.Call getCampaignsValidateBeforeCall(Long applicationId, Long pageSize, Long skip, String sort, String campaignState, String name, String tags, OffsetDateTime createdBefore, OffsetDateTime createdAfter, OffsetDateTime startBefore, OffsetDateTime startAfter, OffsetDateTime endBefore, OffsetDateTime endAfter, Long campaignGroupId, Long templateId, Long storeId, final ApiCallback _callback) throws ApiException { // verify the required parameter 'applicationId' is set if (applicationId == null) { @@ -11510,7 +11564,7 @@ private okhttp3.Call getCampaignsValidateBeforeCall(Long applicationId, Long pag } - okhttp3.Call localVarCall = getCampaignsCall(applicationId, pageSize, skip, sort, campaignState, name, tags, createdBefore, createdAfter, campaignGroupId, templateId, storeId, _callback); + okhttp3.Call localVarCall = getCampaignsCall(applicationId, pageSize, skip, sort, campaignState, name, tags, createdBefore, createdAfter, startBefore, startAfter, endBefore, endAfter, campaignGroupId, templateId, storeId, _callback); return localVarCall; } @@ -11527,6 +11581,10 @@ private okhttp3.Call getCampaignsValidateBeforeCall(Long applicationId, Long pag * @param tags Filter results performing case-insensitive matching against the tags of the campaign. When used in conjunction with the \"name\" query parameter, a logical OR will be performed to search both tags and name for the provided values (optional) * @param createdBefore Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the campaign creation timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. (optional) * @param createdAfter Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the campaign creation timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. (optional) + * @param startBefore Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the campaign start time timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. (optional) + * @param startAfter Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the campaign start time timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. (optional) + * @param endBefore Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the campaign end time timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. (optional) + * @param endAfter Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the campaign end time timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. (optional) * @param campaignGroupId Filter results to campaigns owned by the specified campaign access group ID. (optional) * @param templateId The ID of the campaign template this campaign was created from. (optional) * @param storeId Filter results to campaigns linked to the specified store ID. (optional) @@ -11539,8 +11597,8 @@ private okhttp3.Call getCampaignsValidateBeforeCall(Long applicationId, Long pag 400 Bad request - */ - public InlineResponse2008 getCampaigns(Long applicationId, Long pageSize, Long skip, String sort, String campaignState, String name, String tags, OffsetDateTime createdBefore, OffsetDateTime createdAfter, Long campaignGroupId, Long templateId, Long storeId) throws ApiException { - ApiResponse localVarResp = getCampaignsWithHttpInfo(applicationId, pageSize, skip, sort, campaignState, name, tags, createdBefore, createdAfter, campaignGroupId, templateId, storeId); + public InlineResponse2008 getCampaigns(Long applicationId, Long pageSize, Long skip, String sort, String campaignState, String name, String tags, OffsetDateTime createdBefore, OffsetDateTime createdAfter, OffsetDateTime startBefore, OffsetDateTime startAfter, OffsetDateTime endBefore, OffsetDateTime endAfter, Long campaignGroupId, Long templateId, Long storeId) throws ApiException { + ApiResponse localVarResp = getCampaignsWithHttpInfo(applicationId, pageSize, skip, sort, campaignState, name, tags, createdBefore, createdAfter, startBefore, startAfter, endBefore, endAfter, campaignGroupId, templateId, storeId); return localVarResp.getData(); } @@ -11556,6 +11614,10 @@ public InlineResponse2008 getCampaigns(Long applicationId, Long pageSize, Long s * @param tags Filter results performing case-insensitive matching against the tags of the campaign. When used in conjunction with the \"name\" query parameter, a logical OR will be performed to search both tags and name for the provided values (optional) * @param createdBefore Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the campaign creation timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. (optional) * @param createdAfter Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the campaign creation timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. (optional) + * @param startBefore Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the campaign start time timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. (optional) + * @param startAfter Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the campaign start time timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. (optional) + * @param endBefore Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the campaign end time timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. (optional) + * @param endAfter Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the campaign end time timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. (optional) * @param campaignGroupId Filter results to campaigns owned by the specified campaign access group ID. (optional) * @param templateId The ID of the campaign template this campaign was created from. (optional) * @param storeId Filter results to campaigns linked to the specified store ID. (optional) @@ -11568,8 +11630,8 @@ public InlineResponse2008 getCampaigns(Long applicationId, Long pageSize, Long s 400 Bad request - */ - public ApiResponse getCampaignsWithHttpInfo(Long applicationId, Long pageSize, Long skip, String sort, String campaignState, String name, String tags, OffsetDateTime createdBefore, OffsetDateTime createdAfter, Long campaignGroupId, Long templateId, Long storeId) throws ApiException { - okhttp3.Call localVarCall = getCampaignsValidateBeforeCall(applicationId, pageSize, skip, sort, campaignState, name, tags, createdBefore, createdAfter, campaignGroupId, templateId, storeId, null); + public ApiResponse getCampaignsWithHttpInfo(Long applicationId, Long pageSize, Long skip, String sort, String campaignState, String name, String tags, OffsetDateTime createdBefore, OffsetDateTime createdAfter, OffsetDateTime startBefore, OffsetDateTime startAfter, OffsetDateTime endBefore, OffsetDateTime endAfter, Long campaignGroupId, Long templateId, Long storeId) throws ApiException { + okhttp3.Call localVarCall = getCampaignsValidateBeforeCall(applicationId, pageSize, skip, sort, campaignState, name, tags, createdBefore, createdAfter, startBefore, startAfter, endBefore, endAfter, campaignGroupId, templateId, storeId, null); Type localVarReturnType = new TypeToken(){}.getType(); return localVarApiClient.execute(localVarCall, localVarReturnType); } @@ -11586,6 +11648,10 @@ public ApiResponse getCampaignsWithHttpInfo(Long application * @param tags Filter results performing case-insensitive matching against the tags of the campaign. When used in conjunction with the \"name\" query parameter, a logical OR will be performed to search both tags and name for the provided values (optional) * @param createdBefore Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the campaign creation timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. (optional) * @param createdAfter Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the campaign creation timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. (optional) + * @param startBefore Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the campaign start time timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. (optional) + * @param startAfter Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the campaign start time timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. (optional) + * @param endBefore Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the campaign end time timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. (optional) + * @param endAfter Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the campaign end time timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. (optional) * @param campaignGroupId Filter results to campaigns owned by the specified campaign access group ID. (optional) * @param templateId The ID of the campaign template this campaign was created from. (optional) * @param storeId Filter results to campaigns linked to the specified store ID. (optional) @@ -11599,9 +11665,9 @@ public ApiResponse getCampaignsWithHttpInfo(Long application 400 Bad request - */ - public okhttp3.Call getCampaignsAsync(Long applicationId, Long pageSize, Long skip, String sort, String campaignState, String name, String tags, OffsetDateTime createdBefore, OffsetDateTime createdAfter, Long campaignGroupId, Long templateId, Long storeId, final ApiCallback _callback) throws ApiException { + public okhttp3.Call getCampaignsAsync(Long applicationId, Long pageSize, Long skip, String sort, String campaignState, String name, String tags, OffsetDateTime createdBefore, OffsetDateTime createdAfter, OffsetDateTime startBefore, OffsetDateTime startAfter, OffsetDateTime endBefore, OffsetDateTime endAfter, Long campaignGroupId, Long templateId, Long storeId, final ApiCallback _callback) throws ApiException { - okhttp3.Call localVarCall = getCampaignsValidateBeforeCall(applicationId, pageSize, skip, sort, campaignState, name, tags, createdBefore, createdAfter, campaignGroupId, templateId, storeId, _callback); + okhttp3.Call localVarCall = getCampaignsValidateBeforeCall(applicationId, pageSize, skip, sort, campaignState, name, tags, createdBefore, createdAfter, startBefore, startAfter, endBefore, endAfter, campaignGroupId, templateId, storeId, _callback); Type localVarReturnType = new TypeToken(){}.getType(); localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); return localVarCall; @@ -14270,6 +14336,171 @@ public okhttp3.Call getLoyaltyCardsAsync(Long loyaltyProgramId, Long pageSize, L localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); return localVarCall; } + /** + * Build call for getLoyaltyLedgerBalances + * @param loyaltyProgramId Identifier of the profile-based loyalty program. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. (required) + * @param integrationId The integration identifier for this customer profile. Must be: - Unique within the deployment. - Stable for the customer. Do not use an ID that the customer can update themselves. For example, you can use a database ID. Once set, you cannot update this identifier. (required) + * @param endDate Used to return expired, active, and pending loyalty balances before this timestamp. You can enter any past, present, or future timestamp value. **Note:** - It must be an RFC3339 timestamp string. - You can include a time component in your string, for example, `T23:59:59` to specify the end of the day. The time zone setting considered is `UTC`. If you do not include a time component, a default time value of `T00:00:00` (midnight) in `UTC` is considered. (optional) + * @param subledgerId The ID of the subledger used to filter the data. Leave this value empty (\"\") to query the main ledger. (optional) + * @param includeTiers Indicates whether tier information is included in the response. When set to `true`, the response includes information about the current tier and the number of points required to move to next tier. (optional, default to false) + * @param includeProjectedTier Indicates whether the customer's projected tier information is included in the response. When set to `true`, the response includes information about the customer's active points and the name of the projected tier. **Note** We recommend filtering by `subledgerId` for better performance. (optional, default to false) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
    Status Code Description Response Headers
    200 OK -
    400 Bad request -
    401 Unauthorized -
    404 Not found -
    + */ + public okhttp3.Call getLoyaltyLedgerBalancesCall(Long loyaltyProgramId, String integrationId, OffsetDateTime endDate, String subledgerId, Boolean includeTiers, Boolean includeProjectedTier, final ApiCallback _callback) throws ApiException { + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/v1/loyalty_programs/{loyaltyProgramId}/profile/{integrationId}/ledger_balances" + .replaceAll("\\{" + "loyaltyProgramId" + "\\}", localVarApiClient.escapeString(loyaltyProgramId.toString())) + .replaceAll("\\{" + "integrationId" + "\\}", localVarApiClient.escapeString(integrationId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + if (endDate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("endDate", endDate)); + } + + if (subledgerId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("subledgerId", subledgerId)); + } + + if (includeTiers != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("includeTiers", includeTiers)); + } + + if (includeProjectedTier != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("includeProjectedTier", includeProjectedTier)); + } + + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + final String[] localVarAccepts = { + "application/json" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + localVarHeaderParams.put("Content-Type", localVarContentType); + + String[] localVarAuthNames = new String[] { "api_key_v1", "management_key", "manager_auth" }; + return localVarApiClient.buildCall(localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getLoyaltyLedgerBalancesValidateBeforeCall(Long loyaltyProgramId, String integrationId, OffsetDateTime endDate, String subledgerId, Boolean includeTiers, Boolean includeProjectedTier, final ApiCallback _callback) throws ApiException { + + // verify the required parameter 'loyaltyProgramId' is set + if (loyaltyProgramId == null) { + throw new ApiException("Missing the required parameter 'loyaltyProgramId' when calling getLoyaltyLedgerBalances(Async)"); + } + + // verify the required parameter 'integrationId' is set + if (integrationId == null) { + throw new ApiException("Missing the required parameter 'integrationId' when calling getLoyaltyLedgerBalances(Async)"); + } + + + okhttp3.Call localVarCall = getLoyaltyLedgerBalancesCall(loyaltyProgramId, integrationId, endDate, subledgerId, includeTiers, includeProjectedTier, _callback); + return localVarCall; + + } + + /** + * Get customer's loyalty balances + * Retrieve loyalty ledger balances for the given Integration ID in the specified loyalty program. You can filter balances by date and subledger ID, and include tier-related information in the response. **Note**: If no filtering options are applied, you retrieve all loyalty balances on the current date for the given integration ID. Loyalty balances are calculated when Talon.One receives your request using the points stored in our database, so retrieving a large number of balances at once can impact performance. For more information, see: - [Managing card-based loyalty program data](https://docs.talon.one/docs/product/loyalty-programs/card-based/managing-loyalty-cards) - [Managing profile-based loyalty program data](https://docs.talon.one/docs/product/loyalty-programs/profile-based/managing-pb-lp-data) + * @param loyaltyProgramId Identifier of the profile-based loyalty program. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. (required) + * @param integrationId The integration identifier for this customer profile. Must be: - Unique within the deployment. - Stable for the customer. Do not use an ID that the customer can update themselves. For example, you can use a database ID. Once set, you cannot update this identifier. (required) + * @param endDate Used to return expired, active, and pending loyalty balances before this timestamp. You can enter any past, present, or future timestamp value. **Note:** - It must be an RFC3339 timestamp string. - You can include a time component in your string, for example, `T23:59:59` to specify the end of the day. The time zone setting considered is `UTC`. If you do not include a time component, a default time value of `T00:00:00` (midnight) in `UTC` is considered. (optional) + * @param subledgerId The ID of the subledger used to filter the data. Leave this value empty (\"\") to query the main ledger. (optional) + * @param includeTiers Indicates whether tier information is included in the response. When set to `true`, the response includes information about the current tier and the number of points required to move to next tier. (optional, default to false) + * @param includeProjectedTier Indicates whether the customer's projected tier information is included in the response. When set to `true`, the response includes information about the customer's active points and the name of the projected tier. **Note** We recommend filtering by `subledgerId` for better performance. (optional, default to false) + * @return LoyaltyBalancesWithTiers + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
    Status Code Description Response Headers
    200 OK -
    400 Bad request -
    401 Unauthorized -
    404 Not found -
    + */ + public LoyaltyBalancesWithTiers getLoyaltyLedgerBalances(Long loyaltyProgramId, String integrationId, OffsetDateTime endDate, String subledgerId, Boolean includeTiers, Boolean includeProjectedTier) throws ApiException { + ApiResponse localVarResp = getLoyaltyLedgerBalancesWithHttpInfo(loyaltyProgramId, integrationId, endDate, subledgerId, includeTiers, includeProjectedTier); + return localVarResp.getData(); + } + + /** + * Get customer's loyalty balances + * Retrieve loyalty ledger balances for the given Integration ID in the specified loyalty program. You can filter balances by date and subledger ID, and include tier-related information in the response. **Note**: If no filtering options are applied, you retrieve all loyalty balances on the current date for the given integration ID. Loyalty balances are calculated when Talon.One receives your request using the points stored in our database, so retrieving a large number of balances at once can impact performance. For more information, see: - [Managing card-based loyalty program data](https://docs.talon.one/docs/product/loyalty-programs/card-based/managing-loyalty-cards) - [Managing profile-based loyalty program data](https://docs.talon.one/docs/product/loyalty-programs/profile-based/managing-pb-lp-data) + * @param loyaltyProgramId Identifier of the profile-based loyalty program. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. (required) + * @param integrationId The integration identifier for this customer profile. Must be: - Unique within the deployment. - Stable for the customer. Do not use an ID that the customer can update themselves. For example, you can use a database ID. Once set, you cannot update this identifier. (required) + * @param endDate Used to return expired, active, and pending loyalty balances before this timestamp. You can enter any past, present, or future timestamp value. **Note:** - It must be an RFC3339 timestamp string. - You can include a time component in your string, for example, `T23:59:59` to specify the end of the day. The time zone setting considered is `UTC`. If you do not include a time component, a default time value of `T00:00:00` (midnight) in `UTC` is considered. (optional) + * @param subledgerId The ID of the subledger used to filter the data. Leave this value empty (\"\") to query the main ledger. (optional) + * @param includeTiers Indicates whether tier information is included in the response. When set to `true`, the response includes information about the current tier and the number of points required to move to next tier. (optional, default to false) + * @param includeProjectedTier Indicates whether the customer's projected tier information is included in the response. When set to `true`, the response includes information about the customer's active points and the name of the projected tier. **Note** We recommend filtering by `subledgerId` for better performance. (optional, default to false) + * @return ApiResponse<LoyaltyBalancesWithTiers> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
    Status Code Description Response Headers
    200 OK -
    400 Bad request -
    401 Unauthorized -
    404 Not found -
    + */ + public ApiResponse getLoyaltyLedgerBalancesWithHttpInfo(Long loyaltyProgramId, String integrationId, OffsetDateTime endDate, String subledgerId, Boolean includeTiers, Boolean includeProjectedTier) throws ApiException { + okhttp3.Call localVarCall = getLoyaltyLedgerBalancesValidateBeforeCall(loyaltyProgramId, integrationId, endDate, subledgerId, includeTiers, includeProjectedTier, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get customer's loyalty balances (asynchronously) + * Retrieve loyalty ledger balances for the given Integration ID in the specified loyalty program. You can filter balances by date and subledger ID, and include tier-related information in the response. **Note**: If no filtering options are applied, you retrieve all loyalty balances on the current date for the given integration ID. Loyalty balances are calculated when Talon.One receives your request using the points stored in our database, so retrieving a large number of balances at once can impact performance. For more information, see: - [Managing card-based loyalty program data](https://docs.talon.one/docs/product/loyalty-programs/card-based/managing-loyalty-cards) - [Managing profile-based loyalty program data](https://docs.talon.one/docs/product/loyalty-programs/profile-based/managing-pb-lp-data) + * @param loyaltyProgramId Identifier of the profile-based loyalty program. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. (required) + * @param integrationId The integration identifier for this customer profile. Must be: - Unique within the deployment. - Stable for the customer. Do not use an ID that the customer can update themselves. For example, you can use a database ID. Once set, you cannot update this identifier. (required) + * @param endDate Used to return expired, active, and pending loyalty balances before this timestamp. You can enter any past, present, or future timestamp value. **Note:** - It must be an RFC3339 timestamp string. - You can include a time component in your string, for example, `T23:59:59` to specify the end of the day. The time zone setting considered is `UTC`. If you do not include a time component, a default time value of `T00:00:00` (midnight) in `UTC` is considered. (optional) + * @param subledgerId The ID of the subledger used to filter the data. Leave this value empty (\"\") to query the main ledger. (optional) + * @param includeTiers Indicates whether tier information is included in the response. When set to `true`, the response includes information about the current tier and the number of points required to move to next tier. (optional, default to false) + * @param includeProjectedTier Indicates whether the customer's projected tier information is included in the response. When set to `true`, the response includes information about the customer's active points and the name of the projected tier. **Note** We recommend filtering by `subledgerId` for better performance. (optional, default to false) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
    Status Code Description Response Headers
    200 OK -
    400 Bad request -
    401 Unauthorized -
    404 Not found -
    + */ + public okhttp3.Call getLoyaltyLedgerBalancesAsync(Long loyaltyProgramId, String integrationId, OffsetDateTime endDate, String subledgerId, Boolean includeTiers, Boolean includeProjectedTier, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getLoyaltyLedgerBalancesValidateBeforeCall(loyaltyProgramId, integrationId, endDate, subledgerId, includeTiers, includeProjectedTier, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } /** * Build call for getLoyaltyPoints * @param loyaltyProgramId The identifier for the loyalty program. (required) @@ -14282,7 +14513,9 @@ public okhttp3.Call getLoyaltyCardsAsync(Long loyaltyProgramId, Long pageSize, L Status Code Description Response Headers 200 OK - + * @deprecated */ + @Deprecated public okhttp3.Call getLoyaltyPointsCall(String loyaltyProgramId, String integrationId, final ApiCallback _callback) throws ApiException { Object localVarPostBody = null; @@ -14314,6 +14547,7 @@ public okhttp3.Call getLoyaltyPointsCall(String loyaltyProgramId, String integra return localVarApiClient.buildCall(localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); } + @Deprecated @SuppressWarnings("rawtypes") private okhttp3.Call getLoyaltyPointsValidateBeforeCall(String loyaltyProgramId, String integrationId, final ApiCallback _callback) throws ApiException { @@ -14345,7 +14579,9 @@ private okhttp3.Call getLoyaltyPointsValidateBeforeCall(String loyaltyProgramId, Status Code Description Response Headers 200 OK - + * @deprecated */ + @Deprecated public LoyaltyLedger getLoyaltyPoints(String loyaltyProgramId, String integrationId) throws ApiException { ApiResponse localVarResp = getLoyaltyPointsWithHttpInfo(loyaltyProgramId, integrationId); return localVarResp.getData(); @@ -14363,7 +14599,9 @@ public LoyaltyLedger getLoyaltyPoints(String loyaltyProgramId, String integratio Status Code Description Response Headers 200 OK - + * @deprecated */ + @Deprecated public ApiResponse getLoyaltyPointsWithHttpInfo(String loyaltyProgramId, String integrationId) throws ApiException { okhttp3.Call localVarCall = getLoyaltyPointsValidateBeforeCall(loyaltyProgramId, integrationId, null); Type localVarReturnType = new TypeToken(){}.getType(); @@ -14383,7 +14621,9 @@ public ApiResponse getLoyaltyPointsWithHttpInfo(String loyaltyPro Status Code Description Response Headers 200 OK - + * @deprecated */ + @Deprecated public okhttp3.Call getLoyaltyPointsAsync(String loyaltyProgramId, String integrationId, final ApiCallback _callback) throws ApiException { okhttp3.Call localVarCall = getLoyaltyPointsValidateBeforeCall(loyaltyProgramId, integrationId, _callback); @@ -14502,6 +14742,211 @@ public okhttp3.Call getLoyaltyProgramAsync(Long loyaltyProgramId, final ApiCallb localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); return localVarCall; } + /** + * Build call for getLoyaltyProgramProfileLedgerTransactions + * @param loyaltyProgramId Identifier of the profile-based loyalty program. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. (required) + * @param integrationId The integration identifier for this customer profile. Must be: - Unique within the deployment. - Stable for the customer. Do not use an ID that the customer can update themselves. For example, you can use a database ID. Once set, you cannot update this identifier. (required) + * @param customerSessionIDs Filter the results by a list of customer session IDs. To include multiple IDs, repeat the parameter for each one, for example, `?customerSessionIDs=id1&customerSessionIDs=id2`. The response contains only data associated with the specified sessions. (optional) + * @param transactionUUIDs Filter the results by a list of transaction UUIDs. To include multiple IDs, repeat the parameter for each one, for example, `?transactionUUIDs=uuid1&transactionUUIDs=uuid2`. The response contains only data associated with the specified transactions. (optional) + * @param subledgerId The ID of the subledger used to filter the data. Leave this value empty (\"\") to query the main ledger. (optional) + * @param loyaltyTransactionType Filter results by loyalty transaction type: - `manual`: Loyalty transaction that was done manually. - `session`: Loyalty transaction that resulted from a customer session. - `import`: Loyalty transaction that was imported from a CSV file. (optional) + * @param startDate Date and time from which results are returned. Results are filtered by transaction creation date. **Note:** - It must be an RFC3339 timestamp string. - You can include a time component in your string, for example, `T23:59:59` to specify the end of the day. The time zone setting considered is `UTC`. If you do not include a time component, a default time value of `T00:00:00` (midnight) in `UTC` is considered. (optional) + * @param endDate Date and time by which results are returned. Results are filtered by transaction creation date. **Note:** - It must be an RFC3339 timestamp string. - You can include a time component in your string, for example, `T23:59:59` to specify the end of the day. The time zone setting considered is `UTC`. If you do not include a time component, a default time value of `T00:00:00` (midnight) in `UTC` is considered. (optional) + * @param pageSize The number of items in the response. (optional, default to 50l) + * @param skip The number of items to skip when paging through large result sets. (optional) + * @param awaitsActivation If `true`: Filters results to include only point transactions that have action-based activation and have not expired. If `false`: Returns a `400` response. (optional) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + + +
    Status Code Description Response Headers
    200 OK -
    400 Bad request -
    401 Unauthorized -
    404 Not found -
    + */ + public okhttp3.Call getLoyaltyProgramProfileLedgerTransactionsCall(Long loyaltyProgramId, String integrationId, List customerSessionIDs, List transactionUUIDs, String subledgerId, String loyaltyTransactionType, OffsetDateTime startDate, OffsetDateTime endDate, Long pageSize, Long skip, Boolean awaitsActivation, final ApiCallback _callback) throws ApiException { + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/v1/loyalty_programs/{loyaltyProgramId}/profile/{integrationId}/ledger_transactions" + .replaceAll("\\{" + "loyaltyProgramId" + "\\}", localVarApiClient.escapeString(loyaltyProgramId.toString())) + .replaceAll("\\{" + "integrationId" + "\\}", localVarApiClient.escapeString(integrationId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + if (customerSessionIDs != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "customerSessionIDs", customerSessionIDs)); + } + + if (transactionUUIDs != null) { + localVarCollectionQueryParams.addAll(localVarApiClient.parameterToPairs("multi", "transactionUUIDs", transactionUUIDs)); + } + + if (subledgerId != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("subledgerId", subledgerId)); + } + + if (loyaltyTransactionType != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("loyaltyTransactionType", loyaltyTransactionType)); + } + + if (startDate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("startDate", startDate)); + } + + if (endDate != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("endDate", endDate)); + } + + if (pageSize != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("pageSize", pageSize)); + } + + if (skip != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("skip", skip)); + } + + if (awaitsActivation != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("awaitsActivation", awaitsActivation)); + } + + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + final String[] localVarAccepts = { + "application/json" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + localVarHeaderParams.put("Content-Type", localVarContentType); + + String[] localVarAuthNames = new String[] { "api_key_v1", "management_key", "manager_auth" }; + return localVarApiClient.buildCall(localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call getLoyaltyProgramProfileLedgerTransactionsValidateBeforeCall(Long loyaltyProgramId, String integrationId, List customerSessionIDs, List transactionUUIDs, String subledgerId, String loyaltyTransactionType, OffsetDateTime startDate, OffsetDateTime endDate, Long pageSize, Long skip, Boolean awaitsActivation, final ApiCallback _callback) throws ApiException { + + // verify the required parameter 'loyaltyProgramId' is set + if (loyaltyProgramId == null) { + throw new ApiException("Missing the required parameter 'loyaltyProgramId' when calling getLoyaltyProgramProfileLedgerTransactions(Async)"); + } + + // verify the required parameter 'integrationId' is set + if (integrationId == null) { + throw new ApiException("Missing the required parameter 'integrationId' when calling getLoyaltyProgramProfileLedgerTransactions(Async)"); + } + + + okhttp3.Call localVarCall = getLoyaltyProgramProfileLedgerTransactionsCall(loyaltyProgramId, integrationId, customerSessionIDs, transactionUUIDs, subledgerId, loyaltyTransactionType, startDate, endDate, pageSize, skip, awaitsActivation, _callback); + return localVarCall; + + } + + /** + * List customer's loyalty transactions + * Retrieve paginated results of loyalty transaction logs for the given Integration ID in the specified loyalty program. You can filter transactions by date or by ledger (subledger or main ledger). If no filters are applied, the last 50 loyalty transactions for the given integration ID are returned. **Note:** To retrieve all loyalty program transaction logs in a given loyalty program, use the [List loyalty program transactions](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyProgramTransactions) endpoint. + * @param loyaltyProgramId Identifier of the profile-based loyalty program. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. (required) + * @param integrationId The integration identifier for this customer profile. Must be: - Unique within the deployment. - Stable for the customer. Do not use an ID that the customer can update themselves. For example, you can use a database ID. Once set, you cannot update this identifier. (required) + * @param customerSessionIDs Filter the results by a list of customer session IDs. To include multiple IDs, repeat the parameter for each one, for example, `?customerSessionIDs=id1&customerSessionIDs=id2`. The response contains only data associated with the specified sessions. (optional) + * @param transactionUUIDs Filter the results by a list of transaction UUIDs. To include multiple IDs, repeat the parameter for each one, for example, `?transactionUUIDs=uuid1&transactionUUIDs=uuid2`. The response contains only data associated with the specified transactions. (optional) + * @param subledgerId The ID of the subledger used to filter the data. Leave this value empty (\"\") to query the main ledger. (optional) + * @param loyaltyTransactionType Filter results by loyalty transaction type: - `manual`: Loyalty transaction that was done manually. - `session`: Loyalty transaction that resulted from a customer session. - `import`: Loyalty transaction that was imported from a CSV file. (optional) + * @param startDate Date and time from which results are returned. Results are filtered by transaction creation date. **Note:** - It must be an RFC3339 timestamp string. - You can include a time component in your string, for example, `T23:59:59` to specify the end of the day. The time zone setting considered is `UTC`. If you do not include a time component, a default time value of `T00:00:00` (midnight) in `UTC` is considered. (optional) + * @param endDate Date and time by which results are returned. Results are filtered by transaction creation date. **Note:** - It must be an RFC3339 timestamp string. - You can include a time component in your string, for example, `T23:59:59` to specify the end of the day. The time zone setting considered is `UTC`. If you do not include a time component, a default time value of `T00:00:00` (midnight) in `UTC` is considered. (optional) + * @param pageSize The number of items in the response. (optional, default to 50l) + * @param skip The number of items to skip when paging through large result sets. (optional) + * @param awaitsActivation If `true`: Filters results to include only point transactions that have action-based activation and have not expired. If `false`: Returns a `400` response. (optional) + * @return InlineResponse2004 + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
    Status Code Description Response Headers
    200 OK -
    400 Bad request -
    401 Unauthorized -
    404 Not found -
    + */ + public InlineResponse2004 getLoyaltyProgramProfileLedgerTransactions(Long loyaltyProgramId, String integrationId, List customerSessionIDs, List transactionUUIDs, String subledgerId, String loyaltyTransactionType, OffsetDateTime startDate, OffsetDateTime endDate, Long pageSize, Long skip, Boolean awaitsActivation) throws ApiException { + ApiResponse localVarResp = getLoyaltyProgramProfileLedgerTransactionsWithHttpInfo(loyaltyProgramId, integrationId, customerSessionIDs, transactionUUIDs, subledgerId, loyaltyTransactionType, startDate, endDate, pageSize, skip, awaitsActivation); + return localVarResp.getData(); + } + + /** + * List customer's loyalty transactions + * Retrieve paginated results of loyalty transaction logs for the given Integration ID in the specified loyalty program. You can filter transactions by date or by ledger (subledger or main ledger). If no filters are applied, the last 50 loyalty transactions for the given integration ID are returned. **Note:** To retrieve all loyalty program transaction logs in a given loyalty program, use the [List loyalty program transactions](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyProgramTransactions) endpoint. + * @param loyaltyProgramId Identifier of the profile-based loyalty program. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. (required) + * @param integrationId The integration identifier for this customer profile. Must be: - Unique within the deployment. - Stable for the customer. Do not use an ID that the customer can update themselves. For example, you can use a database ID. Once set, you cannot update this identifier. (required) + * @param customerSessionIDs Filter the results by a list of customer session IDs. To include multiple IDs, repeat the parameter for each one, for example, `?customerSessionIDs=id1&customerSessionIDs=id2`. The response contains only data associated with the specified sessions. (optional) + * @param transactionUUIDs Filter the results by a list of transaction UUIDs. To include multiple IDs, repeat the parameter for each one, for example, `?transactionUUIDs=uuid1&transactionUUIDs=uuid2`. The response contains only data associated with the specified transactions. (optional) + * @param subledgerId The ID of the subledger used to filter the data. Leave this value empty (\"\") to query the main ledger. (optional) + * @param loyaltyTransactionType Filter results by loyalty transaction type: - `manual`: Loyalty transaction that was done manually. - `session`: Loyalty transaction that resulted from a customer session. - `import`: Loyalty transaction that was imported from a CSV file. (optional) + * @param startDate Date and time from which results are returned. Results are filtered by transaction creation date. **Note:** - It must be an RFC3339 timestamp string. - You can include a time component in your string, for example, `T23:59:59` to specify the end of the day. The time zone setting considered is `UTC`. If you do not include a time component, a default time value of `T00:00:00` (midnight) in `UTC` is considered. (optional) + * @param endDate Date and time by which results are returned. Results are filtered by transaction creation date. **Note:** - It must be an RFC3339 timestamp string. - You can include a time component in your string, for example, `T23:59:59` to specify the end of the day. The time zone setting considered is `UTC`. If you do not include a time component, a default time value of `T00:00:00` (midnight) in `UTC` is considered. (optional) + * @param pageSize The number of items in the response. (optional, default to 50l) + * @param skip The number of items to skip when paging through large result sets. (optional) + * @param awaitsActivation If `true`: Filters results to include only point transactions that have action-based activation and have not expired. If `false`: Returns a `400` response. (optional) + * @return ApiResponse<InlineResponse2004> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + + +
    Status Code Description Response Headers
    200 OK -
    400 Bad request -
    401 Unauthorized -
    404 Not found -
    + */ + public ApiResponse getLoyaltyProgramProfileLedgerTransactionsWithHttpInfo(Long loyaltyProgramId, String integrationId, List customerSessionIDs, List transactionUUIDs, String subledgerId, String loyaltyTransactionType, OffsetDateTime startDate, OffsetDateTime endDate, Long pageSize, Long skip, Boolean awaitsActivation) throws ApiException { + okhttp3.Call localVarCall = getLoyaltyProgramProfileLedgerTransactionsValidateBeforeCall(loyaltyProgramId, integrationId, customerSessionIDs, transactionUUIDs, subledgerId, loyaltyTransactionType, startDate, endDate, pageSize, skip, awaitsActivation, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * List customer's loyalty transactions (asynchronously) + * Retrieve paginated results of loyalty transaction logs for the given Integration ID in the specified loyalty program. You can filter transactions by date or by ledger (subledger or main ledger). If no filters are applied, the last 50 loyalty transactions for the given integration ID are returned. **Note:** To retrieve all loyalty program transaction logs in a given loyalty program, use the [List loyalty program transactions](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyProgramTransactions) endpoint. + * @param loyaltyProgramId Identifier of the profile-based loyalty program. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. (required) + * @param integrationId The integration identifier for this customer profile. Must be: - Unique within the deployment. - Stable for the customer. Do not use an ID that the customer can update themselves. For example, you can use a database ID. Once set, you cannot update this identifier. (required) + * @param customerSessionIDs Filter the results by a list of customer session IDs. To include multiple IDs, repeat the parameter for each one, for example, `?customerSessionIDs=id1&customerSessionIDs=id2`. The response contains only data associated with the specified sessions. (optional) + * @param transactionUUIDs Filter the results by a list of transaction UUIDs. To include multiple IDs, repeat the parameter for each one, for example, `?transactionUUIDs=uuid1&transactionUUIDs=uuid2`. The response contains only data associated with the specified transactions. (optional) + * @param subledgerId The ID of the subledger used to filter the data. Leave this value empty (\"\") to query the main ledger. (optional) + * @param loyaltyTransactionType Filter results by loyalty transaction type: - `manual`: Loyalty transaction that was done manually. - `session`: Loyalty transaction that resulted from a customer session. - `import`: Loyalty transaction that was imported from a CSV file. (optional) + * @param startDate Date and time from which results are returned. Results are filtered by transaction creation date. **Note:** - It must be an RFC3339 timestamp string. - You can include a time component in your string, for example, `T23:59:59` to specify the end of the day. The time zone setting considered is `UTC`. If you do not include a time component, a default time value of `T00:00:00` (midnight) in `UTC` is considered. (optional) + * @param endDate Date and time by which results are returned. Results are filtered by transaction creation date. **Note:** - It must be an RFC3339 timestamp string. - You can include a time component in your string, for example, `T23:59:59` to specify the end of the day. The time zone setting considered is `UTC`. If you do not include a time component, a default time value of `T00:00:00` (midnight) in `UTC` is considered. (optional) + * @param pageSize The number of items in the response. (optional, default to 50l) + * @param skip The number of items to skip when paging through large result sets. (optional) + * @param awaitsActivation If `true`: Filters results to include only point transactions that have action-based activation and have not expired. If `false`: Returns a `400` response. (optional) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + + +
    Status Code Description Response Headers
    200 OK -
    400 Bad request -
    401 Unauthorized -
    404 Not found -
    + */ + public okhttp3.Call getLoyaltyProgramProfileLedgerTransactionsAsync(Long loyaltyProgramId, String integrationId, List customerSessionIDs, List transactionUUIDs, String subledgerId, String loyaltyTransactionType, OffsetDateTime startDate, OffsetDateTime endDate, Long pageSize, Long skip, Boolean awaitsActivation, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = getLoyaltyProgramProfileLedgerTransactionsValidateBeforeCall(loyaltyProgramId, integrationId, customerSessionIDs, transactionUUIDs, subledgerId, loyaltyTransactionType, startDate, endDate, pageSize, skip, awaitsActivation, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } /** * Build call for getLoyaltyProgramTransactions * @param loyaltyProgramId Identifier of the loyalty program. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. (required) @@ -14513,6 +14958,7 @@ public okhttp3.Call getLoyaltyProgramAsync(Long loyaltyProgramId, final ApiCallb * @param endDate Date and time by which results are returned. Results are filtered by transaction creation date. **Note:** - It must be an RFC3339 timestamp string. - You can include a time component in your string, for example, `T23:59:59` to specify the end of the day. The time zone setting considered is `UTC`. If you do not include a time component, a default time value of `T00:00:00` (midnight) in `UTC` is considered. (optional) * @param pageSize The number of items in the response. (optional, default to 50l) * @param skip The number of items to skip when paging through large result sets. (optional) + * @param awaitsActivation If `true`: Filters results to include only point transactions that have action-based activation and have not expired. If `false`: Returns a `400` response. (optional) * @param _callback Callback for upload/download progress * @return Call to execute * @throws ApiException If fail to serialize the request body object @@ -14525,7 +14971,7 @@ public okhttp3.Call getLoyaltyProgramAsync(Long loyaltyProgramId, final ApiCallb 404 Not found - */ - public okhttp3.Call getLoyaltyProgramTransactionsCall(Long loyaltyProgramId, String loyaltyTransactionType, String subledgerId, List customerSessionIDs, List transactionUUIDs, OffsetDateTime startDate, OffsetDateTime endDate, Long pageSize, Long skip, final ApiCallback _callback) throws ApiException { + public okhttp3.Call getLoyaltyProgramTransactionsCall(Long loyaltyProgramId, String loyaltyTransactionType, String subledgerId, List customerSessionIDs, List transactionUUIDs, OffsetDateTime startDate, OffsetDateTime endDate, Long pageSize, Long skip, Boolean awaitsActivation, final ApiCallback _callback) throws ApiException { Object localVarPostBody = null; // create path and map variables @@ -14566,6 +15012,10 @@ public okhttp3.Call getLoyaltyProgramTransactionsCall(Long loyaltyProgramId, Str localVarQueryParams.addAll(localVarApiClient.parameterToPair("skip", skip)); } + if (awaitsActivation != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("awaitsActivation", awaitsActivation)); + } + Map localVarHeaderParams = new HashMap(); Map localVarCookieParams = new HashMap(); Map localVarFormParams = new HashMap(); @@ -14588,7 +15038,7 @@ public okhttp3.Call getLoyaltyProgramTransactionsCall(Long loyaltyProgramId, Str } @SuppressWarnings("rawtypes") - private okhttp3.Call getLoyaltyProgramTransactionsValidateBeforeCall(Long loyaltyProgramId, String loyaltyTransactionType, String subledgerId, List customerSessionIDs, List transactionUUIDs, OffsetDateTime startDate, OffsetDateTime endDate, Long pageSize, Long skip, final ApiCallback _callback) throws ApiException { + private okhttp3.Call getLoyaltyProgramTransactionsValidateBeforeCall(Long loyaltyProgramId, String loyaltyTransactionType, String subledgerId, List customerSessionIDs, List transactionUUIDs, OffsetDateTime startDate, OffsetDateTime endDate, Long pageSize, Long skip, Boolean awaitsActivation, final ApiCallback _callback) throws ApiException { // verify the required parameter 'loyaltyProgramId' is set if (loyaltyProgramId == null) { @@ -14596,7 +15046,7 @@ private okhttp3.Call getLoyaltyProgramTransactionsValidateBeforeCall(Long loyalt } - okhttp3.Call localVarCall = getLoyaltyProgramTransactionsCall(loyaltyProgramId, loyaltyTransactionType, subledgerId, customerSessionIDs, transactionUUIDs, startDate, endDate, pageSize, skip, _callback); + okhttp3.Call localVarCall = getLoyaltyProgramTransactionsCall(loyaltyProgramId, loyaltyTransactionType, subledgerId, customerSessionIDs, transactionUUIDs, startDate, endDate, pageSize, skip, awaitsActivation, _callback); return localVarCall; } @@ -14613,6 +15063,7 @@ private okhttp3.Call getLoyaltyProgramTransactionsValidateBeforeCall(Long loyalt * @param endDate Date and time by which results are returned. Results are filtered by transaction creation date. **Note:** - It must be an RFC3339 timestamp string. - You can include a time component in your string, for example, `T23:59:59` to specify the end of the day. The time zone setting considered is `UTC`. If you do not include a time component, a default time value of `T00:00:00` (midnight) in `UTC` is considered. (optional) * @param pageSize The number of items in the response. (optional, default to 50l) * @param skip The number of items to skip when paging through large result sets. (optional) + * @param awaitsActivation If `true`: Filters results to include only point transactions that have action-based activation and have not expired. If `false`: Returns a `400` response. (optional) * @return InlineResponse20017 * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body * @http.response.details @@ -14624,8 +15075,8 @@ private okhttp3.Call getLoyaltyProgramTransactionsValidateBeforeCall(Long loyalt 404 Not found - */ - public InlineResponse20017 getLoyaltyProgramTransactions(Long loyaltyProgramId, String loyaltyTransactionType, String subledgerId, List customerSessionIDs, List transactionUUIDs, OffsetDateTime startDate, OffsetDateTime endDate, Long pageSize, Long skip) throws ApiException { - ApiResponse localVarResp = getLoyaltyProgramTransactionsWithHttpInfo(loyaltyProgramId, loyaltyTransactionType, subledgerId, customerSessionIDs, transactionUUIDs, startDate, endDate, pageSize, skip); + public InlineResponse20017 getLoyaltyProgramTransactions(Long loyaltyProgramId, String loyaltyTransactionType, String subledgerId, List customerSessionIDs, List transactionUUIDs, OffsetDateTime startDate, OffsetDateTime endDate, Long pageSize, Long skip, Boolean awaitsActivation) throws ApiException { + ApiResponse localVarResp = getLoyaltyProgramTransactionsWithHttpInfo(loyaltyProgramId, loyaltyTransactionType, subledgerId, customerSessionIDs, transactionUUIDs, startDate, endDate, pageSize, skip, awaitsActivation); return localVarResp.getData(); } @@ -14641,6 +15092,7 @@ public InlineResponse20017 getLoyaltyProgramTransactions(Long loyaltyProgramId, * @param endDate Date and time by which results are returned. Results are filtered by transaction creation date. **Note:** - It must be an RFC3339 timestamp string. - You can include a time component in your string, for example, `T23:59:59` to specify the end of the day. The time zone setting considered is `UTC`. If you do not include a time component, a default time value of `T00:00:00` (midnight) in `UTC` is considered. (optional) * @param pageSize The number of items in the response. (optional, default to 50l) * @param skip The number of items to skip when paging through large result sets. (optional) + * @param awaitsActivation If `true`: Filters results to include only point transactions that have action-based activation and have not expired. If `false`: Returns a `400` response. (optional) * @return ApiResponse<InlineResponse20017> * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body * @http.response.details @@ -14652,8 +15104,8 @@ public InlineResponse20017 getLoyaltyProgramTransactions(Long loyaltyProgramId, 404 Not found - */ - public ApiResponse getLoyaltyProgramTransactionsWithHttpInfo(Long loyaltyProgramId, String loyaltyTransactionType, String subledgerId, List customerSessionIDs, List transactionUUIDs, OffsetDateTime startDate, OffsetDateTime endDate, Long pageSize, Long skip) throws ApiException { - okhttp3.Call localVarCall = getLoyaltyProgramTransactionsValidateBeforeCall(loyaltyProgramId, loyaltyTransactionType, subledgerId, customerSessionIDs, transactionUUIDs, startDate, endDate, pageSize, skip, null); + public ApiResponse getLoyaltyProgramTransactionsWithHttpInfo(Long loyaltyProgramId, String loyaltyTransactionType, String subledgerId, List customerSessionIDs, List transactionUUIDs, OffsetDateTime startDate, OffsetDateTime endDate, Long pageSize, Long skip, Boolean awaitsActivation) throws ApiException { + okhttp3.Call localVarCall = getLoyaltyProgramTransactionsValidateBeforeCall(loyaltyProgramId, loyaltyTransactionType, subledgerId, customerSessionIDs, transactionUUIDs, startDate, endDate, pageSize, skip, awaitsActivation, null); Type localVarReturnType = new TypeToken(){}.getType(); return localVarApiClient.execute(localVarCall, localVarReturnType); } @@ -14670,6 +15122,7 @@ public ApiResponse getLoyaltyProgramTransactionsWithHttpInf * @param endDate Date and time by which results are returned. Results are filtered by transaction creation date. **Note:** - It must be an RFC3339 timestamp string. - You can include a time component in your string, for example, `T23:59:59` to specify the end of the day. The time zone setting considered is `UTC`. If you do not include a time component, a default time value of `T00:00:00` (midnight) in `UTC` is considered. (optional) * @param pageSize The number of items in the response. (optional, default to 50l) * @param skip The number of items to skip when paging through large result sets. (optional) + * @param awaitsActivation If `true`: Filters results to include only point transactions that have action-based activation and have not expired. If `false`: Returns a `400` response. (optional) * @param _callback The callback to be executed when the API call finishes * @return The request call * @throws ApiException If fail to process the API call, e.g. serializing the request body object @@ -14682,9 +15135,9 @@ public ApiResponse getLoyaltyProgramTransactionsWithHttpInf 404 Not found - */ - public okhttp3.Call getLoyaltyProgramTransactionsAsync(Long loyaltyProgramId, String loyaltyTransactionType, String subledgerId, List customerSessionIDs, List transactionUUIDs, OffsetDateTime startDate, OffsetDateTime endDate, Long pageSize, Long skip, final ApiCallback _callback) throws ApiException { + public okhttp3.Call getLoyaltyProgramTransactionsAsync(Long loyaltyProgramId, String loyaltyTransactionType, String subledgerId, List customerSessionIDs, List transactionUUIDs, OffsetDateTime startDate, OffsetDateTime endDate, Long pageSize, Long skip, Boolean awaitsActivation, final ApiCallback _callback) throws ApiException { - okhttp3.Call localVarCall = getLoyaltyProgramTransactionsValidateBeforeCall(loyaltyProgramId, loyaltyTransactionType, subledgerId, customerSessionIDs, transactionUUIDs, startDate, endDate, pageSize, skip, _callback); + okhttp3.Call localVarCall = getLoyaltyProgramTransactionsValidateBeforeCall(loyaltyProgramId, loyaltyTransactionType, subledgerId, customerSessionIDs, transactionUUIDs, startDate, endDate, pageSize, skip, awaitsActivation, _callback); Type localVarReturnType = new TypeToken(){}.getType(); localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); return localVarCall; @@ -17630,7 +18083,7 @@ private okhttp3.Call importLoyaltyPointsValidateBeforeCall(Long loyaltyProgramId /** * Import loyalty points - * Upload a CSV file containing the loyalty points you want to import into a given loyalty program. Send the file as multipart data. Depending on the type of loyalty program, you can import points into a given customer profile or loyalty card. The CSV file contains the following columns: - `customerprofileid` (optional): For profile-based loyalty programs, the integration ID of the customer profile where the loyalty points are imported. **Note**: If the customer profile does not exist, it will be created. The profile will not be visible in any Application until a session or profile update is received for that profile. - `identifier` (optional): For card-based loyalty programs, the identifier of the loyalty card where the loyalty points are imported. - `amount`: The amount of points to award to the customer profile. - `startdate` (optional): The earliest date when the points can be redeemed. The points are `active` from this date until the expiration date. **Note**: It must be an RFC3339 timestamp string or string `immediate`. Empty or missing values are considered `immediate`. - `expirydate` (optional): The latest date when the points can be redeemed. The points are `expired` after this date. **Note**: It must be an RFC3339 timestamp string or string `unlimited`. Empty or missing values are considered `unlimited`. - `subledgerid` (optional): The ID of the subledger that should received the points. - `reason` (optional): The reason why these points are awarded. You can use the time zone of your choice. It is converted to UTC internally by Talon.One. **Note:** For existing customer profiles and loyalty cards, the imported points are added to any previous active or pending points, depending on the value provided for `startdate`. If `startdate` matches the current date, the imported points are _active_. If it is later, the points are _pending_ until the date provided for `startdate` is reached. **Note:** We recommend limiting your file size to 500MB. **Example for profile-based programs:** ```text customerprofileid,amount,startdate,expirydate,subledgerid,reason URNGV8294NV,100,2009-11-10T23:00:00Z,2009-11-11T23:00:00Z,subledger1,appeasement ``` **Example for card-based programs:** ```text identifier,amount,startdate,expirydate,subledgerid,reason summer-loyalty-card-0543,100,2009-11-10T23:00:00Z,2009-11-11T23:00:00Z,subledger1,appeasement ``` + * Upload a CSV file containing the loyalty points you want to import into a given loyalty program. Send the file as multipart data. Depending on the type of loyalty program, you can import points into a given customer profile or loyalty card. The CSV file contains the following columns: - `customerprofileid` (optional): For profile-based loyalty programs, the integration ID of the customer profile where the loyalty points are imported. **Note**: If the customer profile does not exist, it will be created. The profile will not be visible in any Application until a session or profile update is received for that profile. - `identifier` (optional): For card-based loyalty programs, the identifier of the loyalty card where the loyalty points are imported. - `amount`: The amount of points to award to the customer profile. - `startdate` (optional): The earliest date when the points can be redeemed. The points are `active` from this date until the expiration date. This parameter accepts one of the following values: - A timestamp string in RFC3339 format. - `immediate` - `on_action` **Note**: Empty or missing values default to `immediate`. - `expirydate` (optional): The latest date when the points can be redeemed. The points are `expired` after this date. **Note**: It must be an RFC3339 timestamp string or string `unlimited`. Empty or missing values are considered `unlimited`. If passed, `validityDuration` should be omitted. - `validityDuration` (optional): The duration for which the points remain active, relative to the activation date. The time format is an **integer** followed by one letter indicating the time unit. Examples: `30s`, `40m`, `1h`, `5D`, `7W`, `10M`, `15Y`. Available units: - `s`: seconds - `m`: minutes - `h`: hours - `D`: days - `W`: weeks - `M`: months - `Y`: years You can round certain units up or down: - `_D` for rounding down days only. Signifies the start of the day. - `_U` for rounding up days, weeks, months and years. Signifies the end of the day, week, month or year. If passed, `expirydate` should be omitted. - `subledgerid` (optional): The ID of the subledger that should received the points. - `reason` (optional): The reason why these points are awarded. You can use the time zone of your choice. It is converted to UTC internally by Talon.One. **Note:** For existing customer profiles and loyalty cards, the imported points are added to any previous active or pending points, depending on the value provided for `startdate`. If `startdate` matches the current date, the imported points are _active_. If it is later, the points are _pending_ until the date provided for `startdate` is reached. **Note:** We recommend limiting your file size to 500MB. **Example for profile-based programs:** ```text customerprofileid,amount,startdate,expirydate,subledgerid,reason URNGV8294NV,100,2009-11-10T23:00:00Z,2009-11-11T23:00:00Z,subledger1,appeasement ``` **Example for card-based programs:** ```text identifier,amount,startdate,expirydate,subledgerid,reason summer-loyalty-card-0543,100,2009-11-10T23:00:00Z,2009-11-11T23:00:00Z,subledger1,appeasement ``` * @param loyaltyProgramId Identifier of the loyalty program. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. (required) * @param notificationsEnabled Indicates whether the points import triggers notifications about its effects. For example, a notification is sent if the import upgrades a customer's tier or offsets their negative points balance. This parameter is optional and defaults to `true`. (optional) * @param upFile The file containing the data that is being imported. (optional) @@ -17649,7 +18102,7 @@ public ModelImport importLoyaltyPoints(Long loyaltyProgramId, Boolean notificati /** * Import loyalty points - * Upload a CSV file containing the loyalty points you want to import into a given loyalty program. Send the file as multipart data. Depending on the type of loyalty program, you can import points into a given customer profile or loyalty card. The CSV file contains the following columns: - `customerprofileid` (optional): For profile-based loyalty programs, the integration ID of the customer profile where the loyalty points are imported. **Note**: If the customer profile does not exist, it will be created. The profile will not be visible in any Application until a session or profile update is received for that profile. - `identifier` (optional): For card-based loyalty programs, the identifier of the loyalty card where the loyalty points are imported. - `amount`: The amount of points to award to the customer profile. - `startdate` (optional): The earliest date when the points can be redeemed. The points are `active` from this date until the expiration date. **Note**: It must be an RFC3339 timestamp string or string `immediate`. Empty or missing values are considered `immediate`. - `expirydate` (optional): The latest date when the points can be redeemed. The points are `expired` after this date. **Note**: It must be an RFC3339 timestamp string or string `unlimited`. Empty or missing values are considered `unlimited`. - `subledgerid` (optional): The ID of the subledger that should received the points. - `reason` (optional): The reason why these points are awarded. You can use the time zone of your choice. It is converted to UTC internally by Talon.One. **Note:** For existing customer profiles and loyalty cards, the imported points are added to any previous active or pending points, depending on the value provided for `startdate`. If `startdate` matches the current date, the imported points are _active_. If it is later, the points are _pending_ until the date provided for `startdate` is reached. **Note:** We recommend limiting your file size to 500MB. **Example for profile-based programs:** ```text customerprofileid,amount,startdate,expirydate,subledgerid,reason URNGV8294NV,100,2009-11-10T23:00:00Z,2009-11-11T23:00:00Z,subledger1,appeasement ``` **Example for card-based programs:** ```text identifier,amount,startdate,expirydate,subledgerid,reason summer-loyalty-card-0543,100,2009-11-10T23:00:00Z,2009-11-11T23:00:00Z,subledger1,appeasement ``` + * Upload a CSV file containing the loyalty points you want to import into a given loyalty program. Send the file as multipart data. Depending on the type of loyalty program, you can import points into a given customer profile or loyalty card. The CSV file contains the following columns: - `customerprofileid` (optional): For profile-based loyalty programs, the integration ID of the customer profile where the loyalty points are imported. **Note**: If the customer profile does not exist, it will be created. The profile will not be visible in any Application until a session or profile update is received for that profile. - `identifier` (optional): For card-based loyalty programs, the identifier of the loyalty card where the loyalty points are imported. - `amount`: The amount of points to award to the customer profile. - `startdate` (optional): The earliest date when the points can be redeemed. The points are `active` from this date until the expiration date. This parameter accepts one of the following values: - A timestamp string in RFC3339 format. - `immediate` - `on_action` **Note**: Empty or missing values default to `immediate`. - `expirydate` (optional): The latest date when the points can be redeemed. The points are `expired` after this date. **Note**: It must be an RFC3339 timestamp string or string `unlimited`. Empty or missing values are considered `unlimited`. If passed, `validityDuration` should be omitted. - `validityDuration` (optional): The duration for which the points remain active, relative to the activation date. The time format is an **integer** followed by one letter indicating the time unit. Examples: `30s`, `40m`, `1h`, `5D`, `7W`, `10M`, `15Y`. Available units: - `s`: seconds - `m`: minutes - `h`: hours - `D`: days - `W`: weeks - `M`: months - `Y`: years You can round certain units up or down: - `_D` for rounding down days only. Signifies the start of the day. - `_U` for rounding up days, weeks, months and years. Signifies the end of the day, week, month or year. If passed, `expirydate` should be omitted. - `subledgerid` (optional): The ID of the subledger that should received the points. - `reason` (optional): The reason why these points are awarded. You can use the time zone of your choice. It is converted to UTC internally by Talon.One. **Note:** For existing customer profiles and loyalty cards, the imported points are added to any previous active or pending points, depending on the value provided for `startdate`. If `startdate` matches the current date, the imported points are _active_. If it is later, the points are _pending_ until the date provided for `startdate` is reached. **Note:** We recommend limiting your file size to 500MB. **Example for profile-based programs:** ```text customerprofileid,amount,startdate,expirydate,subledgerid,reason URNGV8294NV,100,2009-11-10T23:00:00Z,2009-11-11T23:00:00Z,subledger1,appeasement ``` **Example for card-based programs:** ```text identifier,amount,startdate,expirydate,subledgerid,reason summer-loyalty-card-0543,100,2009-11-10T23:00:00Z,2009-11-11T23:00:00Z,subledger1,appeasement ``` * @param loyaltyProgramId Identifier of the loyalty program. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. (required) * @param notificationsEnabled Indicates whether the points import triggers notifications about its effects. For example, a notification is sent if the import upgrades a customer's tier or offsets their negative points balance. This parameter is optional and defaults to `true`. (optional) * @param upFile The file containing the data that is being imported. (optional) @@ -17669,7 +18122,7 @@ public ApiResponse importLoyaltyPointsWithHttpInfo(Long loyaltyProg /** * Import loyalty points (asynchronously) - * Upload a CSV file containing the loyalty points you want to import into a given loyalty program. Send the file as multipart data. Depending on the type of loyalty program, you can import points into a given customer profile or loyalty card. The CSV file contains the following columns: - `customerprofileid` (optional): For profile-based loyalty programs, the integration ID of the customer profile where the loyalty points are imported. **Note**: If the customer profile does not exist, it will be created. The profile will not be visible in any Application until a session or profile update is received for that profile. - `identifier` (optional): For card-based loyalty programs, the identifier of the loyalty card where the loyalty points are imported. - `amount`: The amount of points to award to the customer profile. - `startdate` (optional): The earliest date when the points can be redeemed. The points are `active` from this date until the expiration date. **Note**: It must be an RFC3339 timestamp string or string `immediate`. Empty or missing values are considered `immediate`. - `expirydate` (optional): The latest date when the points can be redeemed. The points are `expired` after this date. **Note**: It must be an RFC3339 timestamp string or string `unlimited`. Empty or missing values are considered `unlimited`. - `subledgerid` (optional): The ID of the subledger that should received the points. - `reason` (optional): The reason why these points are awarded. You can use the time zone of your choice. It is converted to UTC internally by Talon.One. **Note:** For existing customer profiles and loyalty cards, the imported points are added to any previous active or pending points, depending on the value provided for `startdate`. If `startdate` matches the current date, the imported points are _active_. If it is later, the points are _pending_ until the date provided for `startdate` is reached. **Note:** We recommend limiting your file size to 500MB. **Example for profile-based programs:** ```text customerprofileid,amount,startdate,expirydate,subledgerid,reason URNGV8294NV,100,2009-11-10T23:00:00Z,2009-11-11T23:00:00Z,subledger1,appeasement ``` **Example for card-based programs:** ```text identifier,amount,startdate,expirydate,subledgerid,reason summer-loyalty-card-0543,100,2009-11-10T23:00:00Z,2009-11-11T23:00:00Z,subledger1,appeasement ``` + * Upload a CSV file containing the loyalty points you want to import into a given loyalty program. Send the file as multipart data. Depending on the type of loyalty program, you can import points into a given customer profile or loyalty card. The CSV file contains the following columns: - `customerprofileid` (optional): For profile-based loyalty programs, the integration ID of the customer profile where the loyalty points are imported. **Note**: If the customer profile does not exist, it will be created. The profile will not be visible in any Application until a session or profile update is received for that profile. - `identifier` (optional): For card-based loyalty programs, the identifier of the loyalty card where the loyalty points are imported. - `amount`: The amount of points to award to the customer profile. - `startdate` (optional): The earliest date when the points can be redeemed. The points are `active` from this date until the expiration date. This parameter accepts one of the following values: - A timestamp string in RFC3339 format. - `immediate` - `on_action` **Note**: Empty or missing values default to `immediate`. - `expirydate` (optional): The latest date when the points can be redeemed. The points are `expired` after this date. **Note**: It must be an RFC3339 timestamp string or string `unlimited`. Empty or missing values are considered `unlimited`. If passed, `validityDuration` should be omitted. - `validityDuration` (optional): The duration for which the points remain active, relative to the activation date. The time format is an **integer** followed by one letter indicating the time unit. Examples: `30s`, `40m`, `1h`, `5D`, `7W`, `10M`, `15Y`. Available units: - `s`: seconds - `m`: minutes - `h`: hours - `D`: days - `W`: weeks - `M`: months - `Y`: years You can round certain units up or down: - `_D` for rounding down days only. Signifies the start of the day. - `_U` for rounding up days, weeks, months and years. Signifies the end of the day, week, month or year. If passed, `expirydate` should be omitted. - `subledgerid` (optional): The ID of the subledger that should received the points. - `reason` (optional): The reason why these points are awarded. You can use the time zone of your choice. It is converted to UTC internally by Talon.One. **Note:** For existing customer profiles and loyalty cards, the imported points are added to any previous active or pending points, depending on the value provided for `startdate`. If `startdate` matches the current date, the imported points are _active_. If it is later, the points are _pending_ until the date provided for `startdate` is reached. **Note:** We recommend limiting your file size to 500MB. **Example for profile-based programs:** ```text customerprofileid,amount,startdate,expirydate,subledgerid,reason URNGV8294NV,100,2009-11-10T23:00:00Z,2009-11-11T23:00:00Z,subledger1,appeasement ``` **Example for card-based programs:** ```text identifier,amount,startdate,expirydate,subledgerid,reason summer-loyalty-card-0543,100,2009-11-10T23:00:00Z,2009-11-11T23:00:00Z,subledger1,appeasement ``` * @param loyaltyProgramId Identifier of the loyalty program. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. (required) * @param notificationsEnabled Indicates whether the points import triggers notifications about its effects. For example, a notification is sent if the import upgrades a customer's tier or offsets their negative points balance. This parameter is optional and defaults to `true`. (optional) * @param upFile The file containing the data that is being imported. (optional) diff --git a/src/main/java/one/talon/model/ActivateLoyaltyPoints.java b/src/main/java/one/talon/model/ActivateLoyaltyPoints.java new file mode 100644 index 00000000..46d2ec7f --- /dev/null +++ b/src/main/java/one/talon/model/ActivateLoyaltyPoints.java @@ -0,0 +1,140 @@ +/* + * Talon.One API + * 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}` + * + * The version of the OpenAPI document: + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package one.talon.model; + +import java.util.Objects; +import java.util.Arrays; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import java.util.UUID; + +/** + * Activate loyalty points + */ +@ApiModel(description = "Activate loyalty points") + +public class ActivateLoyaltyPoints { + public static final String SERIALIZED_NAME_TRANSACTION_U_U_I_DS = "transactionUUIDs"; + @SerializedName(SERIALIZED_NAME_TRANSACTION_U_U_I_DS) + private List transactionUUIDs = null; + + public static final String SERIALIZED_NAME_SESSION_ID = "sessionId"; + @SerializedName(SERIALIZED_NAME_SESSION_ID) + private String sessionId; + + + public ActivateLoyaltyPoints transactionUUIDs(List transactionUUIDs) { + + this.transactionUUIDs = transactionUUIDs; + return this; + } + + public ActivateLoyaltyPoints addTransactionUUIDsItem(UUID transactionUUIDsItem) { + if (this.transactionUUIDs == null) { + this.transactionUUIDs = new ArrayList(); + } + this.transactionUUIDs.add(transactionUUIDsItem); + return this; + } + + /** + * An array of transaction UUIDs used to activate specific pending point transactions. If provided, do not include the `sessionId` parameter. + * @return transactionUUIDs + **/ + @javax.annotation.Nullable + @ApiModelProperty(value = "An array of transaction UUIDs used to activate specific pending point transactions. If provided, do not include the `sessionId` parameter. ") + + public List getTransactionUUIDs() { + return transactionUUIDs; + } + + + public void setTransactionUUIDs(List transactionUUIDs) { + this.transactionUUIDs = transactionUUIDs; + } + + + public ActivateLoyaltyPoints sessionId(String sessionId) { + + this.sessionId = sessionId; + return this; + } + + /** + * The ID of the session containing the pending point transactions to activate. If provided, do not include the `transactionUUIDs` parameter. + * @return sessionId + **/ + @javax.annotation.Nullable + @ApiModelProperty(value = "The ID of the session containing the pending point transactions to activate. If provided, do not include the `transactionUUIDs` parameter. ") + + public String getSessionId() { + return sessionId; + } + + + public void setSessionId(String sessionId) { + this.sessionId = sessionId; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ActivateLoyaltyPoints activateLoyaltyPoints = (ActivateLoyaltyPoints) o; + return Objects.equals(this.transactionUUIDs, activateLoyaltyPoints.transactionUUIDs) && + Objects.equals(this.sessionId, activateLoyaltyPoints.sessionId); + } + + @Override + public int hashCode() { + return Objects.hash(transactionUUIDs, sessionId); + } + + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ActivateLoyaltyPoints {\n"); + sb.append(" transactionUUIDs: ").append(toIndentedString(transactionUUIDs)).append("\n"); + sb.append(" sessionId: ").append(toIndentedString(sessionId)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + +} + diff --git a/src/main/java/one/talon/model/ActivateLoyaltyPointsResponse.java b/src/main/java/one/talon/model/ActivateLoyaltyPointsResponse.java new file mode 100644 index 00000000..bd98fadb --- /dev/null +++ b/src/main/java/one/talon/model/ActivateLoyaltyPointsResponse.java @@ -0,0 +1,110 @@ +/* + * Talon.One API + * 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}` + * + * The version of the OpenAPI document: + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package one.talon.model; + +import java.util.Objects; +import java.util.Arrays; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import one.talon.model.LoyaltyLedgerEntry; + +/** + * ActivateLoyaltyPointsResponse + */ + +public class ActivateLoyaltyPointsResponse { + public static final String SERIALIZED_NAME_LEDGER_ENTRIES = "ledgerEntries"; + @SerializedName(SERIALIZED_NAME_LEDGER_ENTRIES) + private List ledgerEntries = null; + + + public ActivateLoyaltyPointsResponse ledgerEntries(List ledgerEntries) { + + this.ledgerEntries = ledgerEntries; + return this; + } + + public ActivateLoyaltyPointsResponse addLedgerEntriesItem(LoyaltyLedgerEntry ledgerEntriesItem) { + if (this.ledgerEntries == null) { + this.ledgerEntries = new ArrayList(); + } + this.ledgerEntries.add(ledgerEntriesItem); + return this; + } + + /** + * Updated ledger entries after activation. + * @return ledgerEntries + **/ + @javax.annotation.Nullable + @ApiModelProperty(value = "Updated ledger entries after activation.") + + public List getLedgerEntries() { + return ledgerEntries; + } + + + public void setLedgerEntries(List ledgerEntries) { + this.ledgerEntries = ledgerEntries; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ActivateLoyaltyPointsResponse activateLoyaltyPointsResponse = (ActivateLoyaltyPointsResponse) o; + return Objects.equals(this.ledgerEntries, activateLoyaltyPointsResponse.ledgerEntries); + } + + @Override + public int hashCode() { + return Objects.hash(ledgerEntries); + } + + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ActivateLoyaltyPointsResponse {\n"); + sb.append(" ledgerEntries: ").append(toIndentedString(ledgerEntries)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + +} + diff --git a/src/main/java/one/talon/model/AddLoyaltyPoints.java b/src/main/java/one/talon/model/AddLoyaltyPoints.java index 24549b64..883ce446 100644 --- a/src/main/java/one/talon/model/AddLoyaltyPoints.java +++ b/src/main/java/one/talon/model/AddLoyaltyPoints.java @@ -118,11 +118,11 @@ public AddLoyaltyPoints validityDuration(String validityDuration) { } /** - * The time format is either: - `immediate` or, - an **integer** followed by one letter indicating the time unit. Examples: `immediate`, `30s`, `40m`, `1h`, `5D`, `7W`, `10M`, `15Y`. Available units: - `s`: seconds - `m`: minutes - `h`: hours - `D`: days - `W`: weeks - `M`: months - `Y`: years You can round certain units up or down: - `_D` for rounding down days only. Signifies the start of the day. - `_U` for rounding up days, weeks, months and years. Signifies the end of the day, week, month or year. If passed, `validUntil` should be omitted. + * The time format is either: - `unlimited` or, - an **integer** followed by one letter indicating the time unit. Examples: `unlimited`, `30s`, `40m`, `1h`, `5D`, `7W`, `10M`, `15Y`. Available units: - `s`: seconds - `m`: minutes - `h`: hours - `D`: days - `W`: weeks - `M`: months - `Y`: years You can round certain units up or down: - `_D` for rounding down days only. Signifies the start of the day. - `_U` for rounding up days, weeks, months and years. Signifies the end of the day, week, month or year. If passed, `validUntil` should be omitted. * @return validityDuration **/ @javax.annotation.Nullable - @ApiModelProperty(example = "5D", value = "The time format is either: - `immediate` or, - an **integer** followed by one letter indicating the time unit. Examples: `immediate`, `30s`, `40m`, `1h`, `5D`, `7W`, `10M`, `15Y`. Available units: - `s`: seconds - `m`: minutes - `h`: hours - `D`: days - `W`: weeks - `M`: months - `Y`: years You can round certain units up or down: - `_D` for rounding down days only. Signifies the start of the day. - `_U` for rounding up days, weeks, months and years. Signifies the end of the day, week, month or year. If passed, `validUntil` should be omitted. ") + @ApiModelProperty(example = "5D", value = "The time format is either: - `unlimited` or, - an **integer** followed by one letter indicating the time unit. Examples: `unlimited`, `30s`, `40m`, `1h`, `5D`, `7W`, `10M`, `15Y`. Available units: - `s`: seconds - `m`: minutes - `h`: hours - `D`: days - `W`: weeks - `M`: months - `Y`: years You can round certain units up or down: - `_D` for rounding down days only. Signifies the start of the day. - `_U` for rounding up days, weeks, months and years. Signifies the end of the day, week, month or year. If passed, `validUntil` should be omitted. ") public String getValidityDuration() { return validityDuration; diff --git a/src/main/java/one/talon/model/AddLoyaltyPointsEffectProps.java b/src/main/java/one/talon/model/AddLoyaltyPointsEffectProps.java index 3014a578..40fdafb7 100644 --- a/src/main/java/one/talon/model/AddLoyaltyPointsEffectProps.java +++ b/src/main/java/one/talon/model/AddLoyaltyPointsEffectProps.java @@ -88,6 +88,14 @@ public class AddLoyaltyPointsEffectProps { @SerializedName(SERIALIZED_NAME_BUNDLE_NAME) private String bundleName; + public static final String SERIALIZED_NAME_AWAITS_ACTIVATION = "awaitsActivation"; + @SerializedName(SERIALIZED_NAME_AWAITS_ACTIVATION) + private Boolean awaitsActivation; + + public static final String SERIALIZED_NAME_VALIDITY_DURATION = "validityDuration"; + @SerializedName(SERIALIZED_NAME_VALIDITY_DURATION) + private String validityDuration; + public AddLoyaltyPointsEffectProps name(String name) { @@ -405,6 +413,52 @@ public void setBundleName(String bundleName) { } + public AddLoyaltyPointsEffectProps awaitsActivation(Boolean awaitsActivation) { + + this.awaitsActivation = awaitsActivation; + return this; + } + + /** + * If `true`, the loyalty points remain pending until a specific action is complete. The `startDate` parameter automatically sets to `on_action`. + * @return awaitsActivation + **/ + @javax.annotation.Nullable + @ApiModelProperty(value = "If `true`, the loyalty points remain pending until a specific action is complete. The `startDate` parameter automatically sets to `on_action`. ") + + public Boolean getAwaitsActivation() { + return awaitsActivation; + } + + + public void setAwaitsActivation(Boolean awaitsActivation) { + this.awaitsActivation = awaitsActivation; + } + + + public AddLoyaltyPointsEffectProps validityDuration(String validityDuration) { + + this.validityDuration = validityDuration; + return this; + } + + /** + * The duration for which the points remain active, calculated relative to the activation date. **Note**: This value is returned only if `awaitsActivation` is `true` and `expiryDate` is not set. + * @return validityDuration + **/ + @javax.annotation.Nullable + @ApiModelProperty(value = "The duration for which the points remain active, calculated relative to the activation date. **Note**: This value is returned only if `awaitsActivation` is `true` and `expiryDate` is not set. ") + + public String getValidityDuration() { + return validityDuration; + } + + + public void setValidityDuration(String validityDuration) { + this.validityDuration = validityDuration; + } + + @Override public boolean equals(java.lang.Object o) { if (this == o) { @@ -427,12 +481,14 @@ public boolean equals(java.lang.Object o) { Objects.equals(this.cartItemSubPosition, addLoyaltyPointsEffectProps.cartItemSubPosition) && Objects.equals(this.cardIdentifier, addLoyaltyPointsEffectProps.cardIdentifier) && Objects.equals(this.bundleIndex, addLoyaltyPointsEffectProps.bundleIndex) && - Objects.equals(this.bundleName, addLoyaltyPointsEffectProps.bundleName); + Objects.equals(this.bundleName, addLoyaltyPointsEffectProps.bundleName) && + Objects.equals(this.awaitsActivation, addLoyaltyPointsEffectProps.awaitsActivation) && + Objects.equals(this.validityDuration, addLoyaltyPointsEffectProps.validityDuration); } @Override public int hashCode() { - return Objects.hash(name, programId, subLedgerId, value, desiredValue, recipientIntegrationId, startDate, expiryDate, transactionUUID, cartItemPosition, cartItemSubPosition, cardIdentifier, bundleIndex, bundleName); + return Objects.hash(name, programId, subLedgerId, value, desiredValue, recipientIntegrationId, startDate, expiryDate, transactionUUID, cartItemPosition, cartItemSubPosition, cardIdentifier, bundleIndex, bundleName, awaitsActivation, validityDuration); } @@ -454,6 +510,8 @@ public String toString() { sb.append(" cardIdentifier: ").append(toIndentedString(cardIdentifier)).append("\n"); sb.append(" bundleIndex: ").append(toIndentedString(bundleIndex)).append("\n"); sb.append(" bundleName: ").append(toIndentedString(bundleName)).append("\n"); + sb.append(" awaitsActivation: ").append(toIndentedString(awaitsActivation)).append("\n"); + sb.append(" validityDuration: ").append(toIndentedString(validityDuration)).append("\n"); sb.append("}"); return sb.toString(); } diff --git a/src/main/java/one/talon/model/AddedDeductedPointsBalancesAction.java b/src/main/java/one/talon/model/AddedDeductedPointsBalancesAction.java new file mode 100644 index 00000000..2b27b33b --- /dev/null +++ b/src/main/java/one/talon/model/AddedDeductedPointsBalancesAction.java @@ -0,0 +1,261 @@ +/* + * Talon.One API + * 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}` + * + * The version of the OpenAPI document: + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package one.talon.model; + +import java.util.Objects; +import java.util.Arrays; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.io.IOException; +import java.math.BigDecimal; +import org.threeten.bp.OffsetDateTime; + +/** + * AddedDeductedPointsBalancesAction + */ + +public class AddedDeductedPointsBalancesAction { + public static final String SERIALIZED_NAME_AMOUNT = "Amount"; + @SerializedName(SERIALIZED_NAME_AMOUNT) + private BigDecimal amount; + + public static final String SERIALIZED_NAME_REASON = "Reason"; + @SerializedName(SERIALIZED_NAME_REASON) + private String reason; + + /** + * The action (addition or deduction) made with loyalty points. + */ + @JsonAdapter(OperationEnum.Adapter.class) + public enum OperationEnum { + ADDITION("addition"), + + DEDUCTION("deduction"); + + private String value; + + OperationEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static OperationEnum fromValue(String value) { + for (OperationEnum b : OperationEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final OperationEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public OperationEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return OperationEnum.fromValue(value); + } + } + } + + public static final String SERIALIZED_NAME_OPERATION = "Operation"; + @SerializedName(SERIALIZED_NAME_OPERATION) + private OperationEnum operation; + + public static final String SERIALIZED_NAME_START_DATE = "StartDate"; + @SerializedName(SERIALIZED_NAME_START_DATE) + private OffsetDateTime startDate; + + public static final String SERIALIZED_NAME_EXPIRY_DATE = "ExpiryDate"; + @SerializedName(SERIALIZED_NAME_EXPIRY_DATE) + private OffsetDateTime expiryDate; + + + public AddedDeductedPointsBalancesAction amount(BigDecimal amount) { + + this.amount = amount; + return this; + } + + /** + * The amount of added or deducted loyalty points. + * @return amount + **/ + @ApiModelProperty(example = "10.99", required = true, value = "The amount of added or deducted loyalty points.") + + public BigDecimal getAmount() { + return amount; + } + + + public void setAmount(BigDecimal amount) { + this.amount = amount; + } + + + public AddedDeductedPointsBalancesAction reason(String reason) { + + this.reason = reason; + return this; + } + + /** + * The reason for the points addition or deduction. + * @return reason + **/ + @ApiModelProperty(example = "Compensation", required = true, value = "The reason for the points addition or deduction.") + + public String getReason() { + return reason; + } + + + public void setReason(String reason) { + this.reason = reason; + } + + + public AddedDeductedPointsBalancesAction operation(OperationEnum operation) { + + this.operation = operation; + return this; + } + + /** + * The action (addition or deduction) made with loyalty points. + * @return operation + **/ + @ApiModelProperty(required = true, value = "The action (addition or deduction) made with loyalty points.") + + public OperationEnum getOperation() { + return operation; + } + + + public void setOperation(OperationEnum operation) { + this.operation = operation; + } + + + public AddedDeductedPointsBalancesAction startDate(OffsetDateTime startDate) { + + this.startDate = startDate; + return this; + } + + /** + * The start date for loyalty points. + * @return startDate + **/ + @javax.annotation.Nullable + @ApiModelProperty(example = "2023-01-24T14:15:22Z", value = "The start date for loyalty points.") + + public OffsetDateTime getStartDate() { + return startDate; + } + + + public void setStartDate(OffsetDateTime startDate) { + this.startDate = startDate; + } + + + public AddedDeductedPointsBalancesAction expiryDate(OffsetDateTime expiryDate) { + + this.expiryDate = expiryDate; + return this; + } + + /** + * The expiration date for loyalty points. + * @return expiryDate + **/ + @javax.annotation.Nullable + @ApiModelProperty(example = "2024-01-24T14:15:22Z", value = "The expiration date for loyalty points.") + + public OffsetDateTime getExpiryDate() { + return expiryDate; + } + + + public void setExpiryDate(OffsetDateTime expiryDate) { + this.expiryDate = expiryDate; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AddedDeductedPointsBalancesAction addedDeductedPointsBalancesAction = (AddedDeductedPointsBalancesAction) o; + return Objects.equals(this.amount, addedDeductedPointsBalancesAction.amount) && + Objects.equals(this.reason, addedDeductedPointsBalancesAction.reason) && + Objects.equals(this.operation, addedDeductedPointsBalancesAction.operation) && + Objects.equals(this.startDate, addedDeductedPointsBalancesAction.startDate) && + Objects.equals(this.expiryDate, addedDeductedPointsBalancesAction.expiryDate); + } + + @Override + public int hashCode() { + return Objects.hash(amount, reason, operation, startDate, expiryDate); + } + + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AddedDeductedPointsBalancesAction {\n"); + sb.append(" amount: ").append(toIndentedString(amount)).append("\n"); + sb.append(" reason: ").append(toIndentedString(reason)).append("\n"); + sb.append(" operation: ").append(toIndentedString(operation)).append("\n"); + sb.append(" startDate: ").append(toIndentedString(startDate)).append("\n"); + sb.append(" expiryDate: ").append(toIndentedString(expiryDate)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + +} + diff --git a/src/main/java/one/talon/model/AddedDeductedPointsBalancesNotification.java b/src/main/java/one/talon/model/AddedDeductedPointsBalancesNotification.java new file mode 100644 index 00000000..5b34a782 --- /dev/null +++ b/src/main/java/one/talon/model/AddedDeductedPointsBalancesNotification.java @@ -0,0 +1,454 @@ +/* + * Talon.One API + * 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}` + * + * The version of the OpenAPI document: + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package one.talon.model; + +import java.util.Objects; +import java.util.Arrays; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.io.IOException; +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.List; +import one.talon.model.AddedDeductedPointsBalancesAction; + +/** + * AddedDeductedPointsBalancesNotification + */ + +public class AddedDeductedPointsBalancesNotification { + public static final String SERIALIZED_NAME_EMPLOYEE_NAME = "EmployeeName"; + @SerializedName(SERIALIZED_NAME_EMPLOYEE_NAME) + private String employeeName; + + public static final String SERIALIZED_NAME_LOYALTY_PROGRAM_I_D = "LoyaltyProgramID"; + @SerializedName(SERIALIZED_NAME_LOYALTY_PROGRAM_I_D) + private Long loyaltyProgramID; + + /** + * The type of notification. + */ + @JsonAdapter(NotificationTypeEnum.Adapter.class) + public enum NotificationTypeEnum { + LOYALTYADDEDDEDUCTEDPOINTSBALANCES("LoyaltyAddedDeductedPointsBalances"); + + private String value; + + NotificationTypeEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static NotificationTypeEnum fromValue(String value) { + for (NotificationTypeEnum b : NotificationTypeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final NotificationTypeEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public NotificationTypeEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return NotificationTypeEnum.fromValue(value); + } + } + } + + public static final String SERIALIZED_NAME_NOTIFICATION_TYPE = "NotificationType"; + @SerializedName(SERIALIZED_NAME_NOTIFICATION_TYPE) + private NotificationTypeEnum notificationType; + + public static final String SERIALIZED_NAME_PROFILE_INTEGRATION_I_D = "ProfileIntegrationID"; + @SerializedName(SERIALIZED_NAME_PROFILE_INTEGRATION_I_D) + private String profileIntegrationID; + + public static final String SERIALIZED_NAME_SESSION_INTEGRATION_I_D = "SessionIntegrationID"; + @SerializedName(SERIALIZED_NAME_SESSION_INTEGRATION_I_D) + private String sessionIntegrationID; + + public static final String SERIALIZED_NAME_SUBLEDGER_I_D = "SubledgerID"; + @SerializedName(SERIALIZED_NAME_SUBLEDGER_I_D) + private String subledgerID; + + /** + * The notification source, that is, it indicates whether the points were added or deducted via one of the following routes: - [The Campaign Manager](/docs/product/getting-started) - [Management API](/management-api#tag/Loyalty) - [Rule Engine](/docs/product/applications/evaluation-order-for-rules-and-filters) + */ + @JsonAdapter(TypeOfChangeEnum.Adapter.class) + public enum TypeOfChangeEnum { + CAMPAIGN_MANAGER("campaign_manager"), + + RULE_ENGINE("rule_engine"), + + MANAGEMENT_API("management_api"); + + private String value; + + TypeOfChangeEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static TypeOfChangeEnum fromValue(String value) { + for (TypeOfChangeEnum b : TypeOfChangeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final TypeOfChangeEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public TypeOfChangeEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return TypeOfChangeEnum.fromValue(value); + } + } + } + + public static final String SERIALIZED_NAME_TYPE_OF_CHANGE = "TypeOfChange"; + @SerializedName(SERIALIZED_NAME_TYPE_OF_CHANGE) + private TypeOfChangeEnum typeOfChange; + + public static final String SERIALIZED_NAME_USER_I_D = "UserID"; + @SerializedName(SERIALIZED_NAME_USER_I_D) + private Long userID; + + public static final String SERIALIZED_NAME_ACTIONS = "Actions"; + @SerializedName(SERIALIZED_NAME_ACTIONS) + private List actions = new ArrayList(); + + public static final String SERIALIZED_NAME_CURRENT_POINTS = "CurrentPoints"; + @SerializedName(SERIALIZED_NAME_CURRENT_POINTS) + private BigDecimal currentPoints; + + + public AddedDeductedPointsBalancesNotification employeeName(String employeeName) { + + this.employeeName = employeeName; + return this; + } + + /** + * The name of the employee who added or deducted points. + * @return employeeName + **/ + @ApiModelProperty(example = "Franziska Schneider", required = true, value = "The name of the employee who added or deducted points.") + + public String getEmployeeName() { + return employeeName; + } + + + public void setEmployeeName(String employeeName) { + this.employeeName = employeeName; + } + + + public AddedDeductedPointsBalancesNotification loyaltyProgramID(Long loyaltyProgramID) { + + this.loyaltyProgramID = loyaltyProgramID; + return this; + } + + /** + * The ID of the loyalty program. + * minimum: 1 + * @return loyaltyProgramID + **/ + @ApiModelProperty(example = "5", required = true, value = "The ID of the loyalty program.") + + public Long getLoyaltyProgramID() { + return loyaltyProgramID; + } + + + public void setLoyaltyProgramID(Long loyaltyProgramID) { + this.loyaltyProgramID = loyaltyProgramID; + } + + + public AddedDeductedPointsBalancesNotification notificationType(NotificationTypeEnum notificationType) { + + this.notificationType = notificationType; + return this; + } + + /** + * The type of notification. + * @return notificationType + **/ + @ApiModelProperty(required = true, value = "The type of notification.") + + public NotificationTypeEnum getNotificationType() { + return notificationType; + } + + + public void setNotificationType(NotificationTypeEnum notificationType) { + this.notificationType = notificationType; + } + + + public AddedDeductedPointsBalancesNotification profileIntegrationID(String profileIntegrationID) { + + this.profileIntegrationID = profileIntegrationID; + return this; + } + + /** + * The integration ID of the customer profile to whom points were added or deducted. + * @return profileIntegrationID + **/ + @ApiModelProperty(example = "URNGV8294NV", required = true, value = "The integration ID of the customer profile to whom points were added or deducted.") + + public String getProfileIntegrationID() { + return profileIntegrationID; + } + + + public void setProfileIntegrationID(String profileIntegrationID) { + this.profileIntegrationID = profileIntegrationID; + } + + + public AddedDeductedPointsBalancesNotification sessionIntegrationID(String sessionIntegrationID) { + + this.sessionIntegrationID = sessionIntegrationID; + return this; + } + + /** + * The integration ID of the session through which the points were earned or lost. + * @return sessionIntegrationID + **/ + @ApiModelProperty(example = "cc53e4fa-547f-4f5e-8333-76e05c381f67", required = true, value = "The integration ID of the session through which the points were earned or lost.") + + public String getSessionIntegrationID() { + return sessionIntegrationID; + } + + + public void setSessionIntegrationID(String sessionIntegrationID) { + this.sessionIntegrationID = sessionIntegrationID; + } + + + public AddedDeductedPointsBalancesNotification subledgerID(String subledgerID) { + + this.subledgerID = subledgerID; + return this; + } + + /** + * The ID of the subledger within the loyalty program where these points were added. + * @return subledgerID + **/ + @ApiModelProperty(example = "sub-123", required = true, value = "The ID of the subledger within the loyalty program where these points were added.") + + public String getSubledgerID() { + return subledgerID; + } + + + public void setSubledgerID(String subledgerID) { + this.subledgerID = subledgerID; + } + + + public AddedDeductedPointsBalancesNotification typeOfChange(TypeOfChangeEnum typeOfChange) { + + this.typeOfChange = typeOfChange; + return this; + } + + /** + * The notification source, that is, it indicates whether the points were added or deducted via one of the following routes: - [The Campaign Manager](/docs/product/getting-started) - [Management API](/management-api#tag/Loyalty) - [Rule Engine](/docs/product/applications/evaluation-order-for-rules-and-filters) + * @return typeOfChange + **/ + @ApiModelProperty(required = true, value = "The notification source, that is, it indicates whether the points were added or deducted via one of the following routes: - [The Campaign Manager](/docs/product/getting-started) - [Management API](/management-api#tag/Loyalty) - [Rule Engine](/docs/product/applications/evaluation-order-for-rules-and-filters) ") + + public TypeOfChangeEnum getTypeOfChange() { + return typeOfChange; + } + + + public void setTypeOfChange(TypeOfChangeEnum typeOfChange) { + this.typeOfChange = typeOfChange; + } + + + public AddedDeductedPointsBalancesNotification userID(Long userID) { + + this.userID = userID; + return this; + } + + /** + * The ID of the employee who added or deducted points. + * @return userID + **/ + @ApiModelProperty(example = "25", required = true, value = "The ID of the employee who added or deducted points.") + + public Long getUserID() { + return userID; + } + + + public void setUserID(Long userID) { + this.userID = userID; + } + + + public AddedDeductedPointsBalancesNotification actions(List actions) { + + this.actions = actions; + return this; + } + + public AddedDeductedPointsBalancesNotification addActionsItem(AddedDeductedPointsBalancesAction actionsItem) { + this.actions.add(actionsItem); + return this; + } + + /** + * The list of actions that have been triggered in the loyalty program. + * @return actions + **/ + @ApiModelProperty(required = true, value = "The list of actions that have been triggered in the loyalty program.") + + public List getActions() { + return actions; + } + + + public void setActions(List actions) { + this.actions = actions; + } + + + public AddedDeductedPointsBalancesNotification currentPoints(BigDecimal currentPoints) { + + this.currentPoints = currentPoints; + return this; + } + + /** + * The current points balance. + * @return currentPoints + **/ + @ApiModelProperty(example = "10.99", required = true, value = "The current points balance.") + + public BigDecimal getCurrentPoints() { + return currentPoints; + } + + + public void setCurrentPoints(BigDecimal currentPoints) { + this.currentPoints = currentPoints; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AddedDeductedPointsBalancesNotification addedDeductedPointsBalancesNotification = (AddedDeductedPointsBalancesNotification) o; + return Objects.equals(this.employeeName, addedDeductedPointsBalancesNotification.employeeName) && + Objects.equals(this.loyaltyProgramID, addedDeductedPointsBalancesNotification.loyaltyProgramID) && + Objects.equals(this.notificationType, addedDeductedPointsBalancesNotification.notificationType) && + Objects.equals(this.profileIntegrationID, addedDeductedPointsBalancesNotification.profileIntegrationID) && + Objects.equals(this.sessionIntegrationID, addedDeductedPointsBalancesNotification.sessionIntegrationID) && + Objects.equals(this.subledgerID, addedDeductedPointsBalancesNotification.subledgerID) && + Objects.equals(this.typeOfChange, addedDeductedPointsBalancesNotification.typeOfChange) && + Objects.equals(this.userID, addedDeductedPointsBalancesNotification.userID) && + Objects.equals(this.actions, addedDeductedPointsBalancesNotification.actions) && + Objects.equals(this.currentPoints, addedDeductedPointsBalancesNotification.currentPoints); + } + + @Override + public int hashCode() { + return Objects.hash(employeeName, loyaltyProgramID, notificationType, profileIntegrationID, sessionIntegrationID, subledgerID, typeOfChange, userID, actions, currentPoints); + } + + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AddedDeductedPointsBalancesNotification {\n"); + sb.append(" employeeName: ").append(toIndentedString(employeeName)).append("\n"); + sb.append(" loyaltyProgramID: ").append(toIndentedString(loyaltyProgramID)).append("\n"); + sb.append(" notificationType: ").append(toIndentedString(notificationType)).append("\n"); + sb.append(" profileIntegrationID: ").append(toIndentedString(profileIntegrationID)).append("\n"); + sb.append(" sessionIntegrationID: ").append(toIndentedString(sessionIntegrationID)).append("\n"); + sb.append(" subledgerID: ").append(toIndentedString(subledgerID)).append("\n"); + sb.append(" typeOfChange: ").append(toIndentedString(typeOfChange)).append("\n"); + sb.append(" userID: ").append(toIndentedString(userID)).append("\n"); + sb.append(" actions: ").append(toIndentedString(actions)).append("\n"); + sb.append(" currentPoints: ").append(toIndentedString(currentPoints)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + +} + diff --git a/src/main/java/one/talon/model/AddedDeductedPointsNotification.java b/src/main/java/one/talon/model/AddedDeductedPointsNotification.java index 477fbb8f..e46d30ff 100644 --- a/src/main/java/one/talon/model/AddedDeductedPointsNotification.java +++ b/src/main/java/one/talon/model/AddedDeductedPointsNotification.java @@ -31,26 +31,77 @@ */ public class AddedDeductedPointsNotification { - public static final String SERIALIZED_NAME_PROFILE_INTEGRATION_I_D = "ProfileIntegrationID"; - @SerializedName(SERIALIZED_NAME_PROFILE_INTEGRATION_I_D) - private String profileIntegrationID; + public static final String SERIALIZED_NAME_EMPLOYEE_NAME = "EmployeeName"; + @SerializedName(SERIALIZED_NAME_EMPLOYEE_NAME) + private String employeeName; public static final String SERIALIZED_NAME_LOYALTY_PROGRAM_I_D = "LoyaltyProgramID"; @SerializedName(SERIALIZED_NAME_LOYALTY_PROGRAM_I_D) private Long loyaltyProgramID; + /** + * The type of notification. + */ + @JsonAdapter(NotificationTypeEnum.Adapter.class) + public enum NotificationTypeEnum { + LOYALTYPOINTSDEDUCTED("LoyaltyPointsDeducted"), + + LOYALTYPOINTSADDED("LoyaltyPointsAdded"); + + private String value; + + NotificationTypeEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static NotificationTypeEnum fromValue(String value) { + for (NotificationTypeEnum b : NotificationTypeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final NotificationTypeEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public NotificationTypeEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return NotificationTypeEnum.fromValue(value); + } + } + } + + public static final String SERIALIZED_NAME_NOTIFICATION_TYPE = "NotificationType"; + @SerializedName(SERIALIZED_NAME_NOTIFICATION_TYPE) + private NotificationTypeEnum notificationType; + + public static final String SERIALIZED_NAME_PROFILE_INTEGRATION_I_D = "ProfileIntegrationID"; + @SerializedName(SERIALIZED_NAME_PROFILE_INTEGRATION_I_D) + private String profileIntegrationID; + + public static final String SERIALIZED_NAME_SESSION_INTEGRATION_I_D = "SessionIntegrationID"; + @SerializedName(SERIALIZED_NAME_SESSION_INTEGRATION_I_D) + private String sessionIntegrationID; + public static final String SERIALIZED_NAME_SUBLEDGER_I_D = "SubledgerID"; @SerializedName(SERIALIZED_NAME_SUBLEDGER_I_D) private String subledgerID; - public static final String SERIALIZED_NAME_AMOUNT = "Amount"; - @SerializedName(SERIALIZED_NAME_AMOUNT) - private BigDecimal amount; - - public static final String SERIALIZED_NAME_REASON = "Reason"; - @SerializedName(SERIALIZED_NAME_REASON) - private String reason; - /** * The notification source, that is, it indicates whether the points were added or deducted via one of the following routes: - [The Campaign Manager](/docs/product/getting-started) - [Management API](/management-api#tag/Loyalty) - [Rule Engine](/docs/product/applications/evaluation-order-for-rules-and-filters) */ @@ -104,14 +155,18 @@ public TypeOfChangeEnum read(final JsonReader jsonReader) throws IOException { @SerializedName(SERIALIZED_NAME_TYPE_OF_CHANGE) private TypeOfChangeEnum typeOfChange; - public static final String SERIALIZED_NAME_EMPLOYEE_NAME = "EmployeeName"; - @SerializedName(SERIALIZED_NAME_EMPLOYEE_NAME) - private String employeeName; - public static final String SERIALIZED_NAME_USER_I_D = "UserID"; @SerializedName(SERIALIZED_NAME_USER_I_D) private Long userID; + public static final String SERIALIZED_NAME_AMOUNT = "Amount"; + @SerializedName(SERIALIZED_NAME_AMOUNT) + private BigDecimal amount; + + public static final String SERIALIZED_NAME_EXPIRY_DATE = "ExpiryDate"; + @SerializedName(SERIALIZED_NAME_EXPIRY_DATE) + private OffsetDateTime expiryDate; + /** * The action (addition or deduction) made with loyalty points. */ @@ -163,89 +218,34 @@ public OperationEnum read(final JsonReader jsonReader) throws IOException { @SerializedName(SERIALIZED_NAME_OPERATION) private OperationEnum operation; + public static final String SERIALIZED_NAME_REASON = "Reason"; + @SerializedName(SERIALIZED_NAME_REASON) + private String reason; + public static final String SERIALIZED_NAME_START_DATE = "StartDate"; @SerializedName(SERIALIZED_NAME_START_DATE) private OffsetDateTime startDate; - public static final String SERIALIZED_NAME_EXPIRY_DATE = "ExpiryDate"; - @SerializedName(SERIALIZED_NAME_EXPIRY_DATE) - private OffsetDateTime expiryDate; - - public static final String SERIALIZED_NAME_SESSION_INTEGRATION_I_D = "SessionIntegrationID"; - @SerializedName(SERIALIZED_NAME_SESSION_INTEGRATION_I_D) - private String sessionIntegrationID; - - /** - * The type of notification. - */ - @JsonAdapter(NotificationTypeEnum.Adapter.class) - public enum NotificationTypeEnum { - LOYALTYPOINTSDEDUCTED("LoyaltyPointsDeducted"), - - LOYALTYPOINTSADDED("LoyaltyPointsAdded"); - private String value; - - NotificationTypeEnum(String value) { - this.value = value; - } - - public String getValue() { - return value; - } - - @Override - public String toString() { - return String.valueOf(value); - } - - public static NotificationTypeEnum fromValue(String value) { - for (NotificationTypeEnum b : NotificationTypeEnum.values()) { - if (b.value.equals(value)) { - return b; - } - } - throw new IllegalArgumentException("Unexpected value '" + value + "'"); - } - - public static class Adapter extends TypeAdapter { - @Override - public void write(final JsonWriter jsonWriter, final NotificationTypeEnum enumeration) throws IOException { - jsonWriter.value(enumeration.getValue()); - } - - @Override - public NotificationTypeEnum read(final JsonReader jsonReader) throws IOException { - String value = jsonReader.nextString(); - return NotificationTypeEnum.fromValue(value); - } - } - } - - public static final String SERIALIZED_NAME_NOTIFICATION_TYPE = "NotificationType"; - @SerializedName(SERIALIZED_NAME_NOTIFICATION_TYPE) - private NotificationTypeEnum notificationType; - - - public AddedDeductedPointsNotification profileIntegrationID(String profileIntegrationID) { + public AddedDeductedPointsNotification employeeName(String employeeName) { - this.profileIntegrationID = profileIntegrationID; + this.employeeName = employeeName; return this; } /** - * The integration ID of the customer profile to whom points were added or deducted. - * @return profileIntegrationID + * The name of the employee who added or deducted points. + * @return employeeName **/ - @ApiModelProperty(example = "URNGV8294NV", required = true, value = "The integration ID of the customer profile to whom points were added or deducted.") + @ApiModelProperty(example = "Franziska Schneider", required = true, value = "The name of the employee who added or deducted points.") - public String getProfileIntegrationID() { - return profileIntegrationID; + public String getEmployeeName() { + return employeeName; } - public void setProfileIntegrationID(String profileIntegrationID) { - this.profileIntegrationID = profileIntegrationID; + public void setEmployeeName(String employeeName) { + this.employeeName = employeeName; } @@ -272,113 +272,113 @@ public void setLoyaltyProgramID(Long loyaltyProgramID) { } - public AddedDeductedPointsNotification subledgerID(String subledgerID) { + public AddedDeductedPointsNotification notificationType(NotificationTypeEnum notificationType) { - this.subledgerID = subledgerID; + this.notificationType = notificationType; return this; } /** - * The ID of the subledger within the loyalty program where these points were added. - * @return subledgerID + * The type of notification. + * @return notificationType **/ - @ApiModelProperty(example = "sub-123", required = true, value = "The ID of the subledger within the loyalty program where these points were added.") + @ApiModelProperty(required = true, value = "The type of notification.") - public String getSubledgerID() { - return subledgerID; + public NotificationTypeEnum getNotificationType() { + return notificationType; } - public void setSubledgerID(String subledgerID) { - this.subledgerID = subledgerID; + public void setNotificationType(NotificationTypeEnum notificationType) { + this.notificationType = notificationType; } - public AddedDeductedPointsNotification amount(BigDecimal amount) { + public AddedDeductedPointsNotification profileIntegrationID(String profileIntegrationID) { - this.amount = amount; + this.profileIntegrationID = profileIntegrationID; return this; } /** - * The amount of added or deducted loyalty points. - * @return amount + * The integration ID of the customer profile to whom points were added or deducted. + * @return profileIntegrationID **/ - @ApiModelProperty(example = "10.99", required = true, value = "The amount of added or deducted loyalty points.") + @ApiModelProperty(example = "URNGV8294NV", required = true, value = "The integration ID of the customer profile to whom points were added or deducted.") - public BigDecimal getAmount() { - return amount; + public String getProfileIntegrationID() { + return profileIntegrationID; } - public void setAmount(BigDecimal amount) { - this.amount = amount; + public void setProfileIntegrationID(String profileIntegrationID) { + this.profileIntegrationID = profileIntegrationID; } - public AddedDeductedPointsNotification reason(String reason) { + public AddedDeductedPointsNotification sessionIntegrationID(String sessionIntegrationID) { - this.reason = reason; + this.sessionIntegrationID = sessionIntegrationID; return this; } /** - * The reason for the points addition or deduction. - * @return reason + * The integration ID of the session through which the points were earned or lost. + * @return sessionIntegrationID **/ - @ApiModelProperty(example = "Compensation", required = true, value = "The reason for the points addition or deduction.") + @ApiModelProperty(example = "cc53e4fa-547f-4f5e-8333-76e05c381f67", required = true, value = "The integration ID of the session through which the points were earned or lost.") - public String getReason() { - return reason; + public String getSessionIntegrationID() { + return sessionIntegrationID; } - public void setReason(String reason) { - this.reason = reason; + public void setSessionIntegrationID(String sessionIntegrationID) { + this.sessionIntegrationID = sessionIntegrationID; } - public AddedDeductedPointsNotification typeOfChange(TypeOfChangeEnum typeOfChange) { + public AddedDeductedPointsNotification subledgerID(String subledgerID) { - this.typeOfChange = typeOfChange; + this.subledgerID = subledgerID; return this; } /** - * The notification source, that is, it indicates whether the points were added or deducted via one of the following routes: - [The Campaign Manager](/docs/product/getting-started) - [Management API](/management-api#tag/Loyalty) - [Rule Engine](/docs/product/applications/evaluation-order-for-rules-and-filters) - * @return typeOfChange + * The ID of the subledger within the loyalty program where these points were added. + * @return subledgerID **/ - @ApiModelProperty(required = true, value = "The notification source, that is, it indicates whether the points were added or deducted via one of the following routes: - [The Campaign Manager](/docs/product/getting-started) - [Management API](/management-api#tag/Loyalty) - [Rule Engine](/docs/product/applications/evaluation-order-for-rules-and-filters) ") + @ApiModelProperty(example = "sub-123", required = true, value = "The ID of the subledger within the loyalty program where these points were added.") - public TypeOfChangeEnum getTypeOfChange() { - return typeOfChange; + public String getSubledgerID() { + return subledgerID; } - public void setTypeOfChange(TypeOfChangeEnum typeOfChange) { - this.typeOfChange = typeOfChange; + public void setSubledgerID(String subledgerID) { + this.subledgerID = subledgerID; } - public AddedDeductedPointsNotification employeeName(String employeeName) { + public AddedDeductedPointsNotification typeOfChange(TypeOfChangeEnum typeOfChange) { - this.employeeName = employeeName; + this.typeOfChange = typeOfChange; return this; } /** - * The name of the employee who added or deducted points. - * @return employeeName + * The notification source, that is, it indicates whether the points were added or deducted via one of the following routes: - [The Campaign Manager](/docs/product/getting-started) - [Management API](/management-api#tag/Loyalty) - [Rule Engine](/docs/product/applications/evaluation-order-for-rules-and-filters) + * @return typeOfChange **/ - @ApiModelProperty(example = "Franziska Schneider", required = true, value = "The name of the employee who added or deducted points.") + @ApiModelProperty(required = true, value = "The notification source, that is, it indicates whether the points were added or deducted via one of the following routes: - [The Campaign Manager](/docs/product/getting-started) - [Management API](/management-api#tag/Loyalty) - [Rule Engine](/docs/product/applications/evaluation-order-for-rules-and-filters) ") - public String getEmployeeName() { - return employeeName; + public TypeOfChangeEnum getTypeOfChange() { + return typeOfChange; } - public void setEmployeeName(String employeeName) { - this.employeeName = employeeName; + public void setTypeOfChange(TypeOfChangeEnum typeOfChange) { + this.typeOfChange = typeOfChange; } @@ -390,7 +390,6 @@ public AddedDeductedPointsNotification userID(Long userID) { /** * The ID of the employee who added or deducted points. - * minimum: 1 * @return userID **/ @ApiModelProperty(example = "25", required = true, value = "The ID of the employee who added or deducted points.") @@ -405,115 +404,115 @@ public void setUserID(Long userID) { } - public AddedDeductedPointsNotification operation(OperationEnum operation) { + public AddedDeductedPointsNotification amount(BigDecimal amount) { - this.operation = operation; + this.amount = amount; return this; } /** - * The action (addition or deduction) made with loyalty points. - * @return operation + * The amount of added or deducted loyalty points. + * @return amount **/ - @ApiModelProperty(required = true, value = "The action (addition or deduction) made with loyalty points.") + @ApiModelProperty(example = "10.99", required = true, value = "The amount of added or deducted loyalty points.") - public OperationEnum getOperation() { - return operation; + public BigDecimal getAmount() { + return amount; } - public void setOperation(OperationEnum operation) { - this.operation = operation; + public void setAmount(BigDecimal amount) { + this.amount = amount; } - public AddedDeductedPointsNotification startDate(OffsetDateTime startDate) { + public AddedDeductedPointsNotification expiryDate(OffsetDateTime expiryDate) { - this.startDate = startDate; + this.expiryDate = expiryDate; return this; } /** - * The start date for loyalty points. - * @return startDate + * The expiration date for loyalty points. + * @return expiryDate **/ @javax.annotation.Nullable - @ApiModelProperty(example = "2023-01-24T14:15:22Z", value = "The start date for loyalty points.") + @ApiModelProperty(example = "2024-01-24T14:15:22Z", value = "The expiration date for loyalty points.") - public OffsetDateTime getStartDate() { - return startDate; + public OffsetDateTime getExpiryDate() { + return expiryDate; } - public void setStartDate(OffsetDateTime startDate) { - this.startDate = startDate; + public void setExpiryDate(OffsetDateTime expiryDate) { + this.expiryDate = expiryDate; } - public AddedDeductedPointsNotification expiryDate(OffsetDateTime expiryDate) { + public AddedDeductedPointsNotification operation(OperationEnum operation) { - this.expiryDate = expiryDate; + this.operation = operation; return this; } /** - * The expiration date for loyalty points. - * @return expiryDate + * The action (addition or deduction) made with loyalty points. + * @return operation **/ - @javax.annotation.Nullable - @ApiModelProperty(example = "2024-01-24T14:15:22Z", value = "The expiration date for loyalty points.") + @ApiModelProperty(required = true, value = "The action (addition or deduction) made with loyalty points.") - public OffsetDateTime getExpiryDate() { - return expiryDate; + public OperationEnum getOperation() { + return operation; } - public void setExpiryDate(OffsetDateTime expiryDate) { - this.expiryDate = expiryDate; + public void setOperation(OperationEnum operation) { + this.operation = operation; } - public AddedDeductedPointsNotification sessionIntegrationID(String sessionIntegrationID) { + public AddedDeductedPointsNotification reason(String reason) { - this.sessionIntegrationID = sessionIntegrationID; + this.reason = reason; return this; } /** - * The integration ID of the session through which the points were earned or lost. - * @return sessionIntegrationID + * The reason for the points addition or deduction. + * @return reason **/ - @ApiModelProperty(example = "cc53e4fa-547f-4f5e-8333-76e05c381f67", required = true, value = "The integration ID of the session through which the points were earned or lost.") + @ApiModelProperty(example = "Compensation", required = true, value = "The reason for the points addition or deduction.") - public String getSessionIntegrationID() { - return sessionIntegrationID; + public String getReason() { + return reason; } - public void setSessionIntegrationID(String sessionIntegrationID) { - this.sessionIntegrationID = sessionIntegrationID; + public void setReason(String reason) { + this.reason = reason; } - public AddedDeductedPointsNotification notificationType(NotificationTypeEnum notificationType) { + public AddedDeductedPointsNotification startDate(OffsetDateTime startDate) { - this.notificationType = notificationType; + this.startDate = startDate; return this; } /** - * The type of notification. - * @return notificationType + * The start date for loyalty points. + * @return startDate **/ - @ApiModelProperty(required = true, value = "The type of notification.") + @javax.annotation.Nullable + @ApiModelProperty(example = "2023-01-24T14:15:22Z", value = "The start date for loyalty points.") - public NotificationTypeEnum getNotificationType() { - return notificationType; + public OffsetDateTime getStartDate() { + return startDate; } - public void setNotificationType(NotificationTypeEnum notificationType) { - this.notificationType = notificationType; + public void setStartDate(OffsetDateTime startDate) { + this.startDate = startDate; } @@ -526,24 +525,24 @@ public boolean equals(java.lang.Object o) { return false; } AddedDeductedPointsNotification addedDeductedPointsNotification = (AddedDeductedPointsNotification) o; - return Objects.equals(this.profileIntegrationID, addedDeductedPointsNotification.profileIntegrationID) && + return Objects.equals(this.employeeName, addedDeductedPointsNotification.employeeName) && Objects.equals(this.loyaltyProgramID, addedDeductedPointsNotification.loyaltyProgramID) && + Objects.equals(this.notificationType, addedDeductedPointsNotification.notificationType) && + Objects.equals(this.profileIntegrationID, addedDeductedPointsNotification.profileIntegrationID) && + Objects.equals(this.sessionIntegrationID, addedDeductedPointsNotification.sessionIntegrationID) && Objects.equals(this.subledgerID, addedDeductedPointsNotification.subledgerID) && - Objects.equals(this.amount, addedDeductedPointsNotification.amount) && - Objects.equals(this.reason, addedDeductedPointsNotification.reason) && Objects.equals(this.typeOfChange, addedDeductedPointsNotification.typeOfChange) && - Objects.equals(this.employeeName, addedDeductedPointsNotification.employeeName) && Objects.equals(this.userID, addedDeductedPointsNotification.userID) && - Objects.equals(this.operation, addedDeductedPointsNotification.operation) && - Objects.equals(this.startDate, addedDeductedPointsNotification.startDate) && + Objects.equals(this.amount, addedDeductedPointsNotification.amount) && Objects.equals(this.expiryDate, addedDeductedPointsNotification.expiryDate) && - Objects.equals(this.sessionIntegrationID, addedDeductedPointsNotification.sessionIntegrationID) && - Objects.equals(this.notificationType, addedDeductedPointsNotification.notificationType); + Objects.equals(this.operation, addedDeductedPointsNotification.operation) && + Objects.equals(this.reason, addedDeductedPointsNotification.reason) && + Objects.equals(this.startDate, addedDeductedPointsNotification.startDate); } @Override public int hashCode() { - return Objects.hash(profileIntegrationID, loyaltyProgramID, subledgerID, amount, reason, typeOfChange, employeeName, userID, operation, startDate, expiryDate, sessionIntegrationID, notificationType); + return Objects.hash(employeeName, loyaltyProgramID, notificationType, profileIntegrationID, sessionIntegrationID, subledgerID, typeOfChange, userID, amount, expiryDate, operation, reason, startDate); } @@ -551,19 +550,19 @@ public int hashCode() { public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class AddedDeductedPointsNotification {\n"); - sb.append(" profileIntegrationID: ").append(toIndentedString(profileIntegrationID)).append("\n"); + sb.append(" employeeName: ").append(toIndentedString(employeeName)).append("\n"); sb.append(" loyaltyProgramID: ").append(toIndentedString(loyaltyProgramID)).append("\n"); + sb.append(" notificationType: ").append(toIndentedString(notificationType)).append("\n"); + sb.append(" profileIntegrationID: ").append(toIndentedString(profileIntegrationID)).append("\n"); + sb.append(" sessionIntegrationID: ").append(toIndentedString(sessionIntegrationID)).append("\n"); sb.append(" subledgerID: ").append(toIndentedString(subledgerID)).append("\n"); - sb.append(" amount: ").append(toIndentedString(amount)).append("\n"); - sb.append(" reason: ").append(toIndentedString(reason)).append("\n"); sb.append(" typeOfChange: ").append(toIndentedString(typeOfChange)).append("\n"); - sb.append(" employeeName: ").append(toIndentedString(employeeName)).append("\n"); sb.append(" userID: ").append(toIndentedString(userID)).append("\n"); + sb.append(" amount: ").append(toIndentedString(amount)).append("\n"); + sb.append(" expiryDate: ").append(toIndentedString(expiryDate)).append("\n"); sb.append(" operation: ").append(toIndentedString(operation)).append("\n"); + sb.append(" reason: ").append(toIndentedString(reason)).append("\n"); sb.append(" startDate: ").append(toIndentedString(startDate)).append("\n"); - sb.append(" expiryDate: ").append(toIndentedString(expiryDate)).append("\n"); - sb.append(" sessionIntegrationID: ").append(toIndentedString(sessionIntegrationID)).append("\n"); - sb.append(" notificationType: ").append(toIndentedString(notificationType)).append("\n"); sb.append("}"); return sb.toString(); } diff --git a/src/main/java/one/talon/model/AsyncCouponsData.java b/src/main/java/one/talon/model/AsyncCouponsData.java index f9382cb2..f712d92f 100644 --- a/src/main/java/one/talon/model/AsyncCouponsData.java +++ b/src/main/java/one/talon/model/AsyncCouponsData.java @@ -45,9 +45,54 @@ public class AsyncCouponsData { @SerializedName(SERIALIZED_NAME_EMPLOYEE_NAME) private String employeeName; + /** + * The type of the notification + */ + @JsonAdapter(NotificationTypeEnum.Adapter.class) + public enum NotificationTypeEnum { + ASYNCCOUPONSCREATED("AsyncCouponsCreated"); + + private String value; + + NotificationTypeEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static NotificationTypeEnum fromValue(String value) { + for (NotificationTypeEnum b : NotificationTypeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final NotificationTypeEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public NotificationTypeEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return NotificationTypeEnum.fromValue(value); + } + } + } + public static final String SERIALIZED_NAME_NOTIFICATION_TYPE = "NotificationType"; @SerializedName(SERIALIZED_NAME_NOTIFICATION_TYPE) - private String notificationType; + private NotificationTypeEnum notificationType; public AsyncCouponsData batchID(String batchID) { @@ -138,7 +183,7 @@ public void setEmployeeName(String employeeName) { } - public AsyncCouponsData notificationType(String notificationType) { + public AsyncCouponsData notificationType(NotificationTypeEnum notificationType) { this.notificationType = notificationType; return this; @@ -150,12 +195,12 @@ public AsyncCouponsData notificationType(String notificationType) { **/ @ApiModelProperty(required = true, value = "The type of the notification") - public String getNotificationType() { + public NotificationTypeEnum getNotificationType() { return notificationType; } - public void setNotificationType(String notificationType) { + public void setNotificationType(NotificationTypeEnum notificationType) { this.notificationType = notificationType; } diff --git a/src/main/java/one/talon/model/BestPriorPriceRequest.java b/src/main/java/one/talon/model/BestPriorPriceRequest.java index 95994c04..00d2b9d0 100644 --- a/src/main/java/one/talon/model/BestPriorPriceRequest.java +++ b/src/main/java/one/talon/model/BestPriorPriceRequest.java @@ -25,7 +25,7 @@ import java.io.IOException; import java.util.ArrayList; import java.util.List; -import one.talon.model.BestPriorPriceRequestTarget; +import one.talon.model.BestPriorTarget; import org.threeten.bp.OffsetDateTime; /** @@ -43,7 +43,7 @@ public class BestPriorPriceRequest { public static final String SERIALIZED_NAME_TIMEFRAME = "timeframe"; @SerializedName(SERIALIZED_NAME_TIMEFRAME) - private Integer timeframe; + private String timeframe; public static final String SERIALIZED_NAME_STRICT_END_DATE = "strictEndDate"; @SerializedName(SERIALIZED_NAME_STRICT_END_DATE) @@ -51,7 +51,7 @@ public class BestPriorPriceRequest { public static final String SERIALIZED_NAME_TARGET = "target"; @SerializedName(SERIALIZED_NAME_TARGET) - private BestPriorPriceRequestTarget target; + private BestPriorTarget target; public BestPriorPriceRequest skus(List skus) { @@ -103,7 +103,7 @@ public void setTimeframeEndDate(OffsetDateTime timeframeEndDate) { } - public BestPriorPriceRequest timeframe(Integer timeframe) { + public BestPriorPriceRequest timeframe(String timeframe) { this.timeframe = timeframe; return this; @@ -115,12 +115,12 @@ public BestPriorPriceRequest timeframe(Integer timeframe) { **/ @ApiModelProperty(example = "30", required = true, value = "The number of days prior to the timeframeEndDate. Only prices within this look back period are considered for the best prior price evaluation.") - public Integer getTimeframe() { + public String getTimeframe() { return timeframe; } - public void setTimeframe(Integer timeframe) { + public void setTimeframe(String timeframe) { this.timeframe = timeframe; } @@ -147,7 +147,7 @@ public void setStrictEndDate(Boolean strictEndDate) { } - public BestPriorPriceRequest target(BestPriorPriceRequestTarget target) { + public BestPriorPriceRequest target(BestPriorTarget target) { this.target = target; return this; @@ -160,12 +160,12 @@ public BestPriorPriceRequest target(BestPriorPriceRequestTarget target) { @javax.annotation.Nullable @ApiModelProperty(value = "") - public BestPriorPriceRequestTarget getTarget() { + public BestPriorTarget getTarget() { return target; } - public void setTarget(BestPriorPriceRequestTarget target) { + public void setTarget(BestPriorTarget target) { this.target = target; } diff --git a/src/main/java/one/talon/model/BestPriorTarget.java b/src/main/java/one/talon/model/BestPriorTarget.java new file mode 100644 index 00000000..a23e4fd2 --- /dev/null +++ b/src/main/java/one/talon/model/BestPriorTarget.java @@ -0,0 +1,175 @@ +/* + * Talon.One API + * 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}` + * + * The version of the OpenAPI document: + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package one.talon.model; + +import java.util.Objects; +import java.util.Arrays; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.io.IOException; + +/** + * Specifies the target for which the best prior price calculation is taken into consideration. + */ +@ApiModel(description = "Specifies the target for which the best prior price calculation is taken into consideration.") + +public class BestPriorTarget { + /** + * The type of price target. + */ + @JsonAdapter(TargetTypeEnum.Adapter.class) + public enum TargetTypeEnum { + NONE("NONE"), + + AUDIENCE("AUDIENCE"); + + private String value; + + TargetTypeEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static TargetTypeEnum fromValue(String value) { + for (TargetTypeEnum b : TargetTypeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final TargetTypeEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public TargetTypeEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return TargetTypeEnum.fromValue(value); + } + } + } + + public static final String SERIALIZED_NAME_TARGET_TYPE = "targetType"; + @SerializedName(SERIALIZED_NAME_TARGET_TYPE) + private TargetTypeEnum targetType; + + public static final String SERIALIZED_NAME_AUDIENCE_I_D = "audienceID"; + @SerializedName(SERIALIZED_NAME_AUDIENCE_I_D) + private Long audienceID; + + + public BestPriorTarget targetType(TargetTypeEnum targetType) { + + this.targetType = targetType; + return this; + } + + /** + * The type of price target. + * @return targetType + **/ + @ApiModelProperty(example = "AUDIENCE", required = true, value = "The type of price target.") + + public TargetTypeEnum getTargetType() { + return targetType; + } + + + public void setTargetType(TargetTypeEnum targetType) { + this.targetType = targetType; + } + + + public BestPriorTarget audienceID(Long audienceID) { + + this.audienceID = audienceID; + return this; + } + + /** + * The AudienceID of an audience. Must be used with \"AUDIENCE\" target type. + * @return audienceID + **/ + @javax.annotation.Nullable + @ApiModelProperty(example = "4", value = "The AudienceID of an audience. Must be used with \"AUDIENCE\" target type.") + + public Long getAudienceID() { + return audienceID; + } + + + public void setAudienceID(Long audienceID) { + this.audienceID = audienceID; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + BestPriorTarget bestPriorTarget = (BestPriorTarget) o; + return Objects.equals(this.targetType, bestPriorTarget.targetType) && + Objects.equals(this.audienceID, bestPriorTarget.audienceID); + } + + @Override + public int hashCode() { + return Objects.hash(targetType, audienceID); + } + + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class BestPriorTarget {\n"); + sb.append(" targetType: ").append(toIndentedString(targetType)).append("\n"); + sb.append(" audienceID: ").append(toIndentedString(audienceID)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + +} + diff --git a/src/main/java/one/talon/model/CampaignCollectionEditedNotification.java b/src/main/java/one/talon/model/CampaignCollectionEditedNotification.java index 89648a55..15406440 100644 --- a/src/main/java/one/talon/model/CampaignCollectionEditedNotification.java +++ b/src/main/java/one/talon/model/CampaignCollectionEditedNotification.java @@ -32,9 +32,54 @@ */ public class CampaignCollectionEditedNotification { + /** + * The type of the notification + */ + @JsonAdapter(NotificationTypeEnum.Adapter.class) + public enum NotificationTypeEnum { + CAMPAIGNNOTIFICATION("CampaignNotification"); + + private String value; + + NotificationTypeEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static NotificationTypeEnum fromValue(String value) { + for (NotificationTypeEnum b : NotificationTypeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final NotificationTypeEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public NotificationTypeEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return NotificationTypeEnum.fromValue(value); + } + } + } + public static final String SERIALIZED_NAME_NOTIFICATION_TYPE = "NotificationType"; @SerializedName(SERIALIZED_NAME_NOTIFICATION_TYPE) - private String notificationType; + private NotificationTypeEnum notificationType; public static final String SERIALIZED_NAME_TOTAL_RESULT_SIZE = "TotalResultSize"; @SerializedName(SERIALIZED_NAME_TOTAL_RESULT_SIZE) @@ -45,7 +90,7 @@ public class CampaignCollectionEditedNotification { private List data = null; - public CampaignCollectionEditedNotification notificationType(String notificationType) { + public CampaignCollectionEditedNotification notificationType(NotificationTypeEnum notificationType) { this.notificationType = notificationType; return this; @@ -57,12 +102,12 @@ public CampaignCollectionEditedNotification notificationType(String notification **/ @ApiModelProperty(example = "CampaignNotification", required = true, value = "The type of the notification") - public String getNotificationType() { + public NotificationTypeEnum getNotificationType() { return notificationType; } - public void setNotificationType(String notificationType) { + public void setNotificationType(NotificationTypeEnum notificationType) { this.notificationType = notificationType; } diff --git a/src/main/java/one/talon/model/CampaignCreatedNotification.java b/src/main/java/one/talon/model/CampaignCreatedNotification.java index 4e56ece9..ac08c559 100644 --- a/src/main/java/one/talon/model/CampaignCreatedNotification.java +++ b/src/main/java/one/talon/model/CampaignCreatedNotification.java @@ -32,9 +32,54 @@ */ public class CampaignCreatedNotification { + /** + * The type of the notification + */ + @JsonAdapter(NotificationTypeEnum.Adapter.class) + public enum NotificationTypeEnum { + CAMPAIGNNOTIFICATION("CampaignNotification"); + + private String value; + + NotificationTypeEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static NotificationTypeEnum fromValue(String value) { + for (NotificationTypeEnum b : NotificationTypeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final NotificationTypeEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public NotificationTypeEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return NotificationTypeEnum.fromValue(value); + } + } + } + public static final String SERIALIZED_NAME_NOTIFICATION_TYPE = "NotificationType"; @SerializedName(SERIALIZED_NAME_NOTIFICATION_TYPE) - private String notificationType; + private NotificationTypeEnum notificationType; public static final String SERIALIZED_NAME_TOTAL_RESULT_SIZE = "TotalResultSize"; @SerializedName(SERIALIZED_NAME_TOTAL_RESULT_SIZE) @@ -45,7 +90,7 @@ public class CampaignCreatedNotification { private List data = null; - public CampaignCreatedNotification notificationType(String notificationType) { + public CampaignCreatedNotification notificationType(NotificationTypeEnum notificationType) { this.notificationType = notificationType; return this; @@ -57,12 +102,12 @@ public CampaignCreatedNotification notificationType(String notificationType) { **/ @ApiModelProperty(example = "CampaignNotification", required = true, value = "The type of the notification") - public String getNotificationType() { + public NotificationTypeEnum getNotificationType() { return notificationType; } - public void setNotificationType(String notificationType) { + public void setNotificationType(NotificationTypeEnum notificationType) { this.notificationType = notificationType; } diff --git a/src/main/java/one/talon/model/CampaignDeletedNotification.java b/src/main/java/one/talon/model/CampaignDeletedNotification.java index 49dc486f..0cceef4f 100644 --- a/src/main/java/one/talon/model/CampaignDeletedNotification.java +++ b/src/main/java/one/talon/model/CampaignDeletedNotification.java @@ -32,9 +32,54 @@ */ public class CampaignDeletedNotification { + /** + * The type of the notification + */ + @JsonAdapter(NotificationTypeEnum.Adapter.class) + public enum NotificationTypeEnum { + CAMPAIGNNOTIFICATION("CampaignNotification"); + + private String value; + + NotificationTypeEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static NotificationTypeEnum fromValue(String value) { + for (NotificationTypeEnum b : NotificationTypeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final NotificationTypeEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public NotificationTypeEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return NotificationTypeEnum.fromValue(value); + } + } + } + public static final String SERIALIZED_NAME_NOTIFICATION_TYPE = "NotificationType"; @SerializedName(SERIALIZED_NAME_NOTIFICATION_TYPE) - private String notificationType; + private NotificationTypeEnum notificationType; public static final String SERIALIZED_NAME_TOTAL_RESULT_SIZE = "TotalResultSize"; @SerializedName(SERIALIZED_NAME_TOTAL_RESULT_SIZE) @@ -45,7 +90,7 @@ public class CampaignDeletedNotification { private List data = null; - public CampaignDeletedNotification notificationType(String notificationType) { + public CampaignDeletedNotification notificationType(NotificationTypeEnum notificationType) { this.notificationType = notificationType; return this; @@ -57,12 +102,12 @@ public CampaignDeletedNotification notificationType(String notificationType) { **/ @ApiModelProperty(example = "CampaignNotification", required = true, value = "The type of the notification") - public String getNotificationType() { + public NotificationTypeEnum getNotificationType() { return notificationType; } - public void setNotificationType(String notificationType) { + public void setNotificationType(NotificationTypeEnum notificationType) { this.notificationType = notificationType; } diff --git a/src/main/java/one/talon/model/CampaignEditedNotification.java b/src/main/java/one/talon/model/CampaignEditedNotification.java index a557b4cb..b9e466fb 100644 --- a/src/main/java/one/talon/model/CampaignEditedNotification.java +++ b/src/main/java/one/talon/model/CampaignEditedNotification.java @@ -32,9 +32,54 @@ */ public class CampaignEditedNotification { + /** + * The type of the notification + */ + @JsonAdapter(NotificationTypeEnum.Adapter.class) + public enum NotificationTypeEnum { + CAMPAIGNNOTIFICATION("CampaignNotification"); + + private String value; + + NotificationTypeEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static NotificationTypeEnum fromValue(String value) { + for (NotificationTypeEnum b : NotificationTypeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final NotificationTypeEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public NotificationTypeEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return NotificationTypeEnum.fromValue(value); + } + } + } + public static final String SERIALIZED_NAME_NOTIFICATION_TYPE = "NotificationType"; @SerializedName(SERIALIZED_NAME_NOTIFICATION_TYPE) - private String notificationType; + private NotificationTypeEnum notificationType; public static final String SERIALIZED_NAME_TOTAL_RESULT_SIZE = "TotalResultSize"; @SerializedName(SERIALIZED_NAME_TOTAL_RESULT_SIZE) @@ -45,7 +90,7 @@ public class CampaignEditedNotification { private List data = null; - public CampaignEditedNotification notificationType(String notificationType) { + public CampaignEditedNotification notificationType(NotificationTypeEnum notificationType) { this.notificationType = notificationType; return this; @@ -57,12 +102,12 @@ public CampaignEditedNotification notificationType(String notificationType) { **/ @ApiModelProperty(example = "CampaignNotification", required = true, value = "The type of the notification") - public String getNotificationType() { + public NotificationTypeEnum getNotificationType() { return notificationType; } - public void setNotificationType(String notificationType) { + public void setNotificationType(NotificationTypeEnum notificationType) { this.notificationType = notificationType; } diff --git a/src/main/java/one/talon/model/CampaignEvaluationTreeChangedMessage.java b/src/main/java/one/talon/model/CampaignEvaluationTreeChangedMessage.java index 06f6fa26..e586fd43 100644 --- a/src/main/java/one/talon/model/CampaignEvaluationTreeChangedMessage.java +++ b/src/main/java/one/talon/model/CampaignEvaluationTreeChangedMessage.java @@ -32,9 +32,54 @@ */ public class CampaignEvaluationTreeChangedMessage { + /** + * The type of the notification + */ + @JsonAdapter(NotificationTypeEnum.Adapter.class) + public enum NotificationTypeEnum { + CAMPAIGNNOTIFICATION("CampaignNotification"); + + private String value; + + NotificationTypeEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static NotificationTypeEnum fromValue(String value) { + for (NotificationTypeEnum b : NotificationTypeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final NotificationTypeEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public NotificationTypeEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return NotificationTypeEnum.fromValue(value); + } + } + } + public static final String SERIALIZED_NAME_NOTIFICATION_TYPE = "NotificationType"; @SerializedName(SERIALIZED_NAME_NOTIFICATION_TYPE) - private String notificationType; + private NotificationTypeEnum notificationType; public static final String SERIALIZED_NAME_TOTAL_RESULT_SIZE = "TotalResultSize"; @SerializedName(SERIALIZED_NAME_TOTAL_RESULT_SIZE) @@ -45,7 +90,7 @@ public class CampaignEvaluationTreeChangedMessage { private List data = null; - public CampaignEvaluationTreeChangedMessage notificationType(String notificationType) { + public CampaignEvaluationTreeChangedMessage notificationType(NotificationTypeEnum notificationType) { this.notificationType = notificationType; return this; @@ -57,12 +102,12 @@ public CampaignEvaluationTreeChangedMessage notificationType(String notification **/ @ApiModelProperty(example = "CampaignNotification", required = true, value = "The type of the notification") - public String getNotificationType() { + public NotificationTypeEnum getNotificationType() { return notificationType; } - public void setNotificationType(String notificationType) { + public void setNotificationType(NotificationTypeEnum notificationType) { this.notificationType = notificationType; } diff --git a/src/main/java/one/talon/model/CampaignLogSummary.java b/src/main/java/one/talon/model/CampaignLogSummary.java new file mode 100644 index 00000000..70187073 --- /dev/null +++ b/src/main/java/one/talon/model/CampaignLogSummary.java @@ -0,0 +1,261 @@ +/* + * Talon.One API + * 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}` + * + * The version of the OpenAPI document: + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package one.talon.model; + +import java.util.Objects; +import java.util.Arrays; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.io.IOException; +import org.threeten.bp.OffsetDateTime; + +/** + * Campaign Log Summary + */ +@ApiModel(description = "Campaign Log Summary") + +public class CampaignLogSummary { + public static final String SERIALIZED_NAME_NAME = "name"; + @SerializedName(SERIALIZED_NAME_NAME) + private String name; + + public static final String SERIALIZED_NAME_EMAIL = "email"; + @SerializedName(SERIALIZED_NAME_EMAIL) + private String email; + + public static final String SERIALIZED_NAME_CREATED = "created"; + @SerializedName(SERIALIZED_NAME_CREATED) + private OffsetDateTime created; + + /** + * Action performed by the user. + */ + @JsonAdapter(ActionEnum.Adapter.class) + public enum ActionEnum { + CREATE("create"), + + DELETE("delete"), + + UPDATE("update"); + + private String value; + + ActionEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static ActionEnum fromValue(String value) { + for (ActionEnum b : ActionEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final ActionEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public ActionEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return ActionEnum.fromValue(value); + } + } + } + + public static final String SERIALIZED_NAME_ACTION = "action"; + @SerializedName(SERIALIZED_NAME_ACTION) + private ActionEnum action; + + public static final String SERIALIZED_NAME_SUMMARY = "summary"; + @SerializedName(SERIALIZED_NAME_SUMMARY) + private String summary; + + + public CampaignLogSummary name(String name) { + + this.name = name; + return this; + } + + /** + * Name of the user that performed the change. + * @return name + **/ + @ApiModelProperty(example = "Admin", required = true, value = "Name of the user that performed the change.") + + public String getName() { + return name; + } + + + public void setName(String name) { + this.name = name; + } + + + public CampaignLogSummary email(String email) { + + this.email = email; + return this; + } + + /** + * E-mail of the user that performed the change. + * @return email + **/ + @ApiModelProperty(example = "admin@talon.one", required = true, value = "E-mail of the user that performed the change.") + + public String getEmail() { + return email; + } + + + public void setEmail(String email) { + this.email = email; + } + + + public CampaignLogSummary created(OffsetDateTime created) { + + this.created = created; + return this; + } + + /** + * Date and time the change was performed. + * @return created + **/ + @ApiModelProperty(required = true, value = "Date and time the change was performed.") + + public OffsetDateTime getCreated() { + return created; + } + + + public void setCreated(OffsetDateTime created) { + this.created = created; + } + + + public CampaignLogSummary action(ActionEnum action) { + + this.action = action; + return this; + } + + /** + * Action performed by the user. + * @return action + **/ + @ApiModelProperty(example = "create", required = true, value = "Action performed by the user.") + + public ActionEnum getAction() { + return action; + } + + + public void setAction(ActionEnum action) { + this.action = action; + } + + + public CampaignLogSummary summary(String summary) { + + this.summary = summary; + return this; + } + + /** + * AI-generated summary of the action performed. + * @return summary + **/ + @ApiModelProperty(required = true, value = "AI-generated summary of the action performed.") + + public String getSummary() { + return summary; + } + + + public void setSummary(String summary) { + this.summary = summary; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CampaignLogSummary campaignLogSummary = (CampaignLogSummary) o; + return Objects.equals(this.name, campaignLogSummary.name) && + Objects.equals(this.email, campaignLogSummary.email) && + Objects.equals(this.created, campaignLogSummary.created) && + Objects.equals(this.action, campaignLogSummary.action) && + Objects.equals(this.summary, campaignLogSummary.summary); + } + + @Override + public int hashCode() { + return Objects.hash(name, email, created, action, summary); + } + + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CampaignLogSummary {\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" email: ").append(toIndentedString(email)).append("\n"); + sb.append(" created: ").append(toIndentedString(created)).append("\n"); + sb.append(" action: ").append(toIndentedString(action)).append("\n"); + sb.append(" summary: ").append(toIndentedString(summary)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + +} + diff --git a/src/main/java/one/talon/model/CampaignNotificationBase.java b/src/main/java/one/talon/model/CampaignNotificationBase.java index c10d999a..f60acdee 100644 --- a/src/main/java/one/talon/model/CampaignNotificationBase.java +++ b/src/main/java/one/talon/model/CampaignNotificationBase.java @@ -29,16 +29,61 @@ */ public class CampaignNotificationBase { + /** + * The type of the notification + */ + @JsonAdapter(NotificationTypeEnum.Adapter.class) + public enum NotificationTypeEnum { + CAMPAIGNNOTIFICATION("CampaignNotification"); + + private String value; + + NotificationTypeEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static NotificationTypeEnum fromValue(String value) { + for (NotificationTypeEnum b : NotificationTypeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final NotificationTypeEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public NotificationTypeEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return NotificationTypeEnum.fromValue(value); + } + } + } + public static final String SERIALIZED_NAME_NOTIFICATION_TYPE = "NotificationType"; @SerializedName(SERIALIZED_NAME_NOTIFICATION_TYPE) - private String notificationType; + private NotificationTypeEnum notificationType; public static final String SERIALIZED_NAME_TOTAL_RESULT_SIZE = "TotalResultSize"; @SerializedName(SERIALIZED_NAME_TOTAL_RESULT_SIZE) private Long totalResultSize; - public CampaignNotificationBase notificationType(String notificationType) { + public CampaignNotificationBase notificationType(NotificationTypeEnum notificationType) { this.notificationType = notificationType; return this; @@ -50,12 +95,12 @@ public CampaignNotificationBase notificationType(String notificationType) { **/ @ApiModelProperty(example = "CampaignNotification", required = true, value = "The type of the notification") - public String getNotificationType() { + public NotificationTypeEnum getNotificationType() { return notificationType; } - public void setNotificationType(String notificationType) { + public void setNotificationType(NotificationTypeEnum notificationType) { this.notificationType = notificationType; } diff --git a/src/main/java/one/talon/model/CampaignNotificationGeneric.java b/src/main/java/one/talon/model/CampaignNotificationGeneric.java index 94d3ab8c..54315357 100644 --- a/src/main/java/one/talon/model/CampaignNotificationGeneric.java +++ b/src/main/java/one/talon/model/CampaignNotificationGeneric.java @@ -31,9 +31,54 @@ */ public class CampaignNotificationGeneric { + /** + * The type of the notification + */ + @JsonAdapter(NotificationTypeEnum.Adapter.class) + public enum NotificationTypeEnum { + CAMPAIGNNOTIFICATION("CampaignNotification"); + + private String value; + + NotificationTypeEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static NotificationTypeEnum fromValue(String value) { + for (NotificationTypeEnum b : NotificationTypeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final NotificationTypeEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public NotificationTypeEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return NotificationTypeEnum.fromValue(value); + } + } + } + public static final String SERIALIZED_NAME_NOTIFICATION_TYPE = "NotificationType"; @SerializedName(SERIALIZED_NAME_NOTIFICATION_TYPE) - private String notificationType; + private NotificationTypeEnum notificationType; public static final String SERIALIZED_NAME_TOTAL_RESULT_SIZE = "TotalResultSize"; @SerializedName(SERIALIZED_NAME_TOTAL_RESULT_SIZE) @@ -44,7 +89,7 @@ public class CampaignNotificationGeneric { private List data = new ArrayList(); - public CampaignNotificationGeneric notificationType(String notificationType) { + public CampaignNotificationGeneric notificationType(NotificationTypeEnum notificationType) { this.notificationType = notificationType; return this; @@ -56,12 +101,12 @@ public CampaignNotificationGeneric notificationType(String notificationType) { **/ @ApiModelProperty(example = "CampaignNotification", required = true, value = "The type of the notification") - public String getNotificationType() { + public NotificationTypeEnum getNotificationType() { return notificationType; } - public void setNotificationType(String notificationType) { + public void setNotificationType(NotificationTypeEnum notificationType) { this.notificationType = notificationType; } diff --git a/src/main/java/one/talon/model/CampaignRulesetChangedNotification.java b/src/main/java/one/talon/model/CampaignRulesetChangedNotification.java index 0dcc28f6..44ed7f05 100644 --- a/src/main/java/one/talon/model/CampaignRulesetChangedNotification.java +++ b/src/main/java/one/talon/model/CampaignRulesetChangedNotification.java @@ -32,9 +32,54 @@ */ public class CampaignRulesetChangedNotification { + /** + * The type of the notification + */ + @JsonAdapter(NotificationTypeEnum.Adapter.class) + public enum NotificationTypeEnum { + CAMPAIGNNOTIFICATION("CampaignNotification"); + + private String value; + + NotificationTypeEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static NotificationTypeEnum fromValue(String value) { + for (NotificationTypeEnum b : NotificationTypeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final NotificationTypeEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public NotificationTypeEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return NotificationTypeEnum.fromValue(value); + } + } + } + public static final String SERIALIZED_NAME_NOTIFICATION_TYPE = "NotificationType"; @SerializedName(SERIALIZED_NAME_NOTIFICATION_TYPE) - private String notificationType; + private NotificationTypeEnum notificationType; public static final String SERIALIZED_NAME_TOTAL_RESULT_SIZE = "TotalResultSize"; @SerializedName(SERIALIZED_NAME_TOTAL_RESULT_SIZE) @@ -45,7 +90,7 @@ public class CampaignRulesetChangedNotification { private List data = null; - public CampaignRulesetChangedNotification notificationType(String notificationType) { + public CampaignRulesetChangedNotification notificationType(NotificationTypeEnum notificationType) { this.notificationType = notificationType; return this; @@ -57,12 +102,12 @@ public CampaignRulesetChangedNotification notificationType(String notificationTy **/ @ApiModelProperty(example = "CampaignNotification", required = true, value = "The type of the notification") - public String getNotificationType() { + public NotificationTypeEnum getNotificationType() { return notificationType; } - public void setNotificationType(String notificationType) { + public void setNotificationType(NotificationTypeEnum notificationType) { this.notificationType = notificationType; } diff --git a/src/main/java/one/talon/model/CampaignStateChangedNotification.java b/src/main/java/one/talon/model/CampaignStateChangedNotification.java index 923dd6f7..6c162f5c 100644 --- a/src/main/java/one/talon/model/CampaignStateChangedNotification.java +++ b/src/main/java/one/talon/model/CampaignStateChangedNotification.java @@ -32,9 +32,54 @@ */ public class CampaignStateChangedNotification { + /** + * The type of the notification + */ + @JsonAdapter(NotificationTypeEnum.Adapter.class) + public enum NotificationTypeEnum { + CAMPAIGNNOTIFICATION("CampaignNotification"); + + private String value; + + NotificationTypeEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static NotificationTypeEnum fromValue(String value) { + for (NotificationTypeEnum b : NotificationTypeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final NotificationTypeEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public NotificationTypeEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return NotificationTypeEnum.fromValue(value); + } + } + } + public static final String SERIALIZED_NAME_NOTIFICATION_TYPE = "NotificationType"; @SerializedName(SERIALIZED_NAME_NOTIFICATION_TYPE) - private String notificationType; + private NotificationTypeEnum notificationType; public static final String SERIALIZED_NAME_TOTAL_RESULT_SIZE = "TotalResultSize"; @SerializedName(SERIALIZED_NAME_TOTAL_RESULT_SIZE) @@ -45,7 +90,7 @@ public class CampaignStateChangedNotification { private List data = null; - public CampaignStateChangedNotification notificationType(String notificationType) { + public CampaignStateChangedNotification notificationType(NotificationTypeEnum notificationType) { this.notificationType = notificationType; return this; @@ -57,12 +102,12 @@ public CampaignStateChangedNotification notificationType(String notificationType **/ @ApiModelProperty(example = "CampaignNotification", required = true, value = "The type of the notification") - public String getNotificationType() { + public NotificationTypeEnum getNotificationType() { return notificationType; } - public void setNotificationType(String notificationType) { + public void setNotificationType(NotificationTypeEnum notificationType) { this.notificationType = notificationType; } diff --git a/src/main/java/one/talon/model/CampaignTemplate.java b/src/main/java/one/talon/model/CampaignTemplate.java index 63b296ba..94da1e58 100644 --- a/src/main/java/one/talon/model/CampaignTemplate.java +++ b/src/main/java/one/talon/model/CampaignTemplate.java @@ -276,6 +276,10 @@ public CampaignTypeEnum read(final JsonReader jsonReader) throws IOException { @SerializedName(SERIALIZED_NAME_CAMPAIGN_TYPE) private CampaignTypeEnum campaignType = CampaignTypeEnum.ADVANCED; + public static final String SERIALIZED_NAME_CAMPAIGNS_COUNT = "campaignsCount"; + @SerializedName(SERIALIZED_NAME_CAMPAIGNS_COUNT) + private Long campaignsCount; + public static final String SERIALIZED_NAME_UPDATED = "updated"; @SerializedName(SERIALIZED_NAME_UPDATED) private OffsetDateTime updated; @@ -834,6 +838,29 @@ public void setCampaignType(CampaignTypeEnum campaignType) { } + public CampaignTemplate campaignsCount(Long campaignsCount) { + + this.campaignsCount = campaignsCount; + return this; + } + + /** + * The number of Campaigns created from this template. + * @return campaignsCount + **/ + @javax.annotation.Nullable + @ApiModelProperty(example = "3", value = "The number of Campaigns created from this template.") + + public Long getCampaignsCount() { + return campaignsCount; + } + + + public void setCampaignsCount(Long campaignsCount) { + this.campaignsCount = campaignsCount; + } + + public CampaignTemplate updated(OffsetDateTime updated) { this.updated = updated; @@ -961,6 +988,7 @@ public boolean equals(java.lang.Object o) { Objects.equals(this.campaignCollections, campaignTemplate.campaignCollections) && Objects.equals(this.defaultCampaignGroupId, campaignTemplate.defaultCampaignGroupId) && Objects.equals(this.campaignType, campaignTemplate.campaignType) && + Objects.equals(this.campaignsCount, campaignTemplate.campaignsCount) && Objects.equals(this.updated, campaignTemplate.updated) && Objects.equals(this.updatedBy, campaignTemplate.updatedBy) && Objects.equals(this.validApplicationIds, campaignTemplate.validApplicationIds) && @@ -969,7 +997,7 @@ public boolean equals(java.lang.Object o) { @Override public int hashCode() { - return Objects.hash(id, created, accountId, userId, name, description, instructions, campaignAttributes, couponAttributes, state, activeRulesetId, tags, features, couponSettings, couponReservationSettings, referralSettings, limits, templateParams, applicationsIds, campaignCollections, defaultCampaignGroupId, campaignType, updated, updatedBy, validApplicationIds, isUserFavorite); + return Objects.hash(id, created, accountId, userId, name, description, instructions, campaignAttributes, couponAttributes, state, activeRulesetId, tags, features, couponSettings, couponReservationSettings, referralSettings, limits, templateParams, applicationsIds, campaignCollections, defaultCampaignGroupId, campaignType, campaignsCount, updated, updatedBy, validApplicationIds, isUserFavorite); } @@ -999,6 +1027,7 @@ public String toString() { sb.append(" campaignCollections: ").append(toIndentedString(campaignCollections)).append("\n"); sb.append(" defaultCampaignGroupId: ").append(toIndentedString(defaultCampaignGroupId)).append("\n"); sb.append(" campaignType: ").append(toIndentedString(campaignType)).append("\n"); + sb.append(" campaignsCount: ").append(toIndentedString(campaignsCount)).append("\n"); sb.append(" updated: ").append(toIndentedString(updated)).append("\n"); sb.append(" updatedBy: ").append(toIndentedString(updatedBy)).append("\n"); sb.append(" validApplicationIds: ").append(toIndentedString(validApplicationIds)).append("\n"); diff --git a/src/main/java/one/talon/model/CampaignTemplateParams.java b/src/main/java/one/talon/model/CampaignTemplateParams.java index 6d83d4de..9ad96c7e 100644 --- a/src/main/java/one/talon/model/CampaignTemplateParams.java +++ b/src/main/java/one/talon/model/CampaignTemplateParams.java @@ -48,6 +48,8 @@ public enum TypeEnum { _LIST_STRING_("(list string)"), + _LIST_NUMBER_("(list number)"), + TIME("time"); private String value; diff --git a/src/main/java/one/talon/model/CardAddedDeductedPointsBalancesNotification.java b/src/main/java/one/talon/model/CardAddedDeductedPointsBalancesNotification.java new file mode 100644 index 00000000..8a27a47a --- /dev/null +++ b/src/main/java/one/talon/model/CardAddedDeductedPointsBalancesNotification.java @@ -0,0 +1,515 @@ +/* + * Talon.One API + * 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}` + * + * The version of the OpenAPI document: + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package one.talon.model; + +import java.util.Objects; +import java.util.Arrays; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.io.IOException; +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.List; +import one.talon.model.AddedDeductedPointsBalancesAction; + +/** + * CardAddedDeductedPointsBalancesNotification + */ + +public class CardAddedDeductedPointsBalancesNotification { + public static final String SERIALIZED_NAME_CARD_IDENTIFIER = "CardIdentifier"; + @SerializedName(SERIALIZED_NAME_CARD_IDENTIFIER) + private String cardIdentifier; + + public static final String SERIALIZED_NAME_EMPLOYEE_NAME = "EmployeeName"; + @SerializedName(SERIALIZED_NAME_EMPLOYEE_NAME) + private String employeeName; + + public static final String SERIALIZED_NAME_LOYALTY_PROGRAM_I_D = "LoyaltyProgramID"; + @SerializedName(SERIALIZED_NAME_LOYALTY_PROGRAM_I_D) + private Long loyaltyProgramID; + + /** + * The type of notification. + */ + @JsonAdapter(NotificationTypeEnum.Adapter.class) + public enum NotificationTypeEnum { + LOYALTYCARDADDEDDEDUCTEDPOINTSBALANCES("LoyaltyCardAddedDeductedPointsBalances"); + + private String value; + + NotificationTypeEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static NotificationTypeEnum fromValue(String value) { + for (NotificationTypeEnum b : NotificationTypeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final NotificationTypeEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public NotificationTypeEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return NotificationTypeEnum.fromValue(value); + } + } + } + + public static final String SERIALIZED_NAME_NOTIFICATION_TYPE = "NotificationType"; + @SerializedName(SERIALIZED_NAME_NOTIFICATION_TYPE) + private NotificationTypeEnum notificationType; + + public static final String SERIALIZED_NAME_PROFILE_INTEGRATION_I_DS = "ProfileIntegrationIDs"; + @SerializedName(SERIALIZED_NAME_PROFILE_INTEGRATION_I_DS) + private List profileIntegrationIDs = new ArrayList(); + + public static final String SERIALIZED_NAME_SESSION_INTEGRATION_I_D = "SessionIntegrationID"; + @SerializedName(SERIALIZED_NAME_SESSION_INTEGRATION_I_D) + private String sessionIntegrationID; + + public static final String SERIALIZED_NAME_SUBLEDGER_I_D = "SubledgerID"; + @SerializedName(SERIALIZED_NAME_SUBLEDGER_I_D) + private String subledgerID; + + /** + * The notification source, that is, it indicates whether the points were added or deducted via one of the following routes: - [The Campaign Manager](/docs/product/getting-started) - [Management API](/management-api#tag/Loyalty) - [Rule Engine](/docs/product/applications/evaluation-order-for-rules-and-filters) + */ + @JsonAdapter(TypeOfChangeEnum.Adapter.class) + public enum TypeOfChangeEnum { + CAMPAIGN_MANAGER("campaign_manager"), + + RULE_ENGINE("rule_engine"), + + MANAGEMENT_API("management_api"); + + private String value; + + TypeOfChangeEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static TypeOfChangeEnum fromValue(String value) { + for (TypeOfChangeEnum b : TypeOfChangeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final TypeOfChangeEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public TypeOfChangeEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return TypeOfChangeEnum.fromValue(value); + } + } + } + + public static final String SERIALIZED_NAME_TYPE_OF_CHANGE = "TypeOfChange"; + @SerializedName(SERIALIZED_NAME_TYPE_OF_CHANGE) + private TypeOfChangeEnum typeOfChange; + + public static final String SERIALIZED_NAME_USER_I_D = "UserID"; + @SerializedName(SERIALIZED_NAME_USER_I_D) + private Long userID; + + public static final String SERIALIZED_NAME_USERS_PER_CARD_LIMIT = "UsersPerCardLimit"; + @SerializedName(SERIALIZED_NAME_USERS_PER_CARD_LIMIT) + private Long usersPerCardLimit; + + public static final String SERIALIZED_NAME_ACTIONS = "Actions"; + @SerializedName(SERIALIZED_NAME_ACTIONS) + private List actions = new ArrayList(); + + public static final String SERIALIZED_NAME_CURRENT_POINTS = "CurrentPoints"; + @SerializedName(SERIALIZED_NAME_CURRENT_POINTS) + private BigDecimal currentPoints; + + + public CardAddedDeductedPointsBalancesNotification cardIdentifier(String cardIdentifier) { + + this.cardIdentifier = cardIdentifier; + return this; + } + + /** + * Loyalty card identification number. + * @return cardIdentifier + **/ + @ApiModelProperty(example = "123-456-789ATBC", required = true, value = "Loyalty card identification number.") + + public String getCardIdentifier() { + return cardIdentifier; + } + + + public void setCardIdentifier(String cardIdentifier) { + this.cardIdentifier = cardIdentifier; + } + + + public CardAddedDeductedPointsBalancesNotification employeeName(String employeeName) { + + this.employeeName = employeeName; + return this; + } + + /** + * The name of the employee who added or deducted points. + * @return employeeName + **/ + @ApiModelProperty(example = "Franziska Schneider", required = true, value = "The name of the employee who added or deducted points.") + + public String getEmployeeName() { + return employeeName; + } + + + public void setEmployeeName(String employeeName) { + this.employeeName = employeeName; + } + + + public CardAddedDeductedPointsBalancesNotification loyaltyProgramID(Long loyaltyProgramID) { + + this.loyaltyProgramID = loyaltyProgramID; + return this; + } + + /** + * The ID of the loyalty program. + * minimum: 1 + * @return loyaltyProgramID + **/ + @ApiModelProperty(example = "5", required = true, value = "The ID of the loyalty program.") + + public Long getLoyaltyProgramID() { + return loyaltyProgramID; + } + + + public void setLoyaltyProgramID(Long loyaltyProgramID) { + this.loyaltyProgramID = loyaltyProgramID; + } + + + public CardAddedDeductedPointsBalancesNotification notificationType(NotificationTypeEnum notificationType) { + + this.notificationType = notificationType; + return this; + } + + /** + * The type of notification. + * @return notificationType + **/ + @ApiModelProperty(required = true, value = "The type of notification.") + + public NotificationTypeEnum getNotificationType() { + return notificationType; + } + + + public void setNotificationType(NotificationTypeEnum notificationType) { + this.notificationType = notificationType; + } + + + public CardAddedDeductedPointsBalancesNotification profileIntegrationIDs(List profileIntegrationIDs) { + + this.profileIntegrationIDs = profileIntegrationIDs; + return this; + } + + public CardAddedDeductedPointsBalancesNotification addProfileIntegrationIDsItem(String profileIntegrationIDsItem) { + this.profileIntegrationIDs.add(profileIntegrationIDsItem); + return this; + } + + /** + * The integration ID of the customer profile to whom points were added or deducted. + * @return profileIntegrationIDs + **/ + @ApiModelProperty(example = "[yJSObdNNtOetCHWHPFuz, test-user-4zoj1c]", required = true, value = "The integration ID of the customer profile to whom points were added or deducted.") + + public List getProfileIntegrationIDs() { + return profileIntegrationIDs; + } + + + public void setProfileIntegrationIDs(List profileIntegrationIDs) { + this.profileIntegrationIDs = profileIntegrationIDs; + } + + + public CardAddedDeductedPointsBalancesNotification sessionIntegrationID(String sessionIntegrationID) { + + this.sessionIntegrationID = sessionIntegrationID; + return this; + } + + /** + * The integration ID of the session through which the points were earned or lost. + * @return sessionIntegrationID + **/ + @ApiModelProperty(example = "cc53e4fa-547f-4f5e-8333-76e05c381f67", required = true, value = "The integration ID of the session through which the points were earned or lost.") + + public String getSessionIntegrationID() { + return sessionIntegrationID; + } + + + public void setSessionIntegrationID(String sessionIntegrationID) { + this.sessionIntegrationID = sessionIntegrationID; + } + + + public CardAddedDeductedPointsBalancesNotification subledgerID(String subledgerID) { + + this.subledgerID = subledgerID; + return this; + } + + /** + * The ID of the subledger within the loyalty program where these points were added or deducted. + * @return subledgerID + **/ + @ApiModelProperty(example = "sub-123", required = true, value = "The ID of the subledger within the loyalty program where these points were added or deducted.") + + public String getSubledgerID() { + return subledgerID; + } + + + public void setSubledgerID(String subledgerID) { + this.subledgerID = subledgerID; + } + + + public CardAddedDeductedPointsBalancesNotification typeOfChange(TypeOfChangeEnum typeOfChange) { + + this.typeOfChange = typeOfChange; + return this; + } + + /** + * The notification source, that is, it indicates whether the points were added or deducted via one of the following routes: - [The Campaign Manager](/docs/product/getting-started) - [Management API](/management-api#tag/Loyalty) - [Rule Engine](/docs/product/applications/evaluation-order-for-rules-and-filters) + * @return typeOfChange + **/ + @ApiModelProperty(required = true, value = "The notification source, that is, it indicates whether the points were added or deducted via one of the following routes: - [The Campaign Manager](/docs/product/getting-started) - [Management API](/management-api#tag/Loyalty) - [Rule Engine](/docs/product/applications/evaluation-order-for-rules-and-filters) ") + + public TypeOfChangeEnum getTypeOfChange() { + return typeOfChange; + } + + + public void setTypeOfChange(TypeOfChangeEnum typeOfChange) { + this.typeOfChange = typeOfChange; + } + + + public CardAddedDeductedPointsBalancesNotification userID(Long userID) { + + this.userID = userID; + return this; + } + + /** + * The ID of the employee who added or deducted points. + * @return userID + **/ + @ApiModelProperty(example = "25", required = true, value = "The ID of the employee who added or deducted points.") + + public Long getUserID() { + return userID; + } + + + public void setUserID(Long userID) { + this.userID = userID; + } + + + public CardAddedDeductedPointsBalancesNotification usersPerCardLimit(Long usersPerCardLimit) { + + this.usersPerCardLimit = usersPerCardLimit; + return this; + } + + /** + * The max amount of user profiles with whom a card can be shared. This can be set to `0` for no limit. + * @return usersPerCardLimit + **/ + @ApiModelProperty(example = "10", required = true, value = "The max amount of user profiles with whom a card can be shared. This can be set to `0` for no limit.") + + public Long getUsersPerCardLimit() { + return usersPerCardLimit; + } + + + public void setUsersPerCardLimit(Long usersPerCardLimit) { + this.usersPerCardLimit = usersPerCardLimit; + } + + + public CardAddedDeductedPointsBalancesNotification actions(List actions) { + + this.actions = actions; + return this; + } + + public CardAddedDeductedPointsBalancesNotification addActionsItem(AddedDeductedPointsBalancesAction actionsItem) { + this.actions.add(actionsItem); + return this; + } + + /** + * The list of actions that have been triggered in the loyalty program. + * @return actions + **/ + @ApiModelProperty(required = true, value = "The list of actions that have been triggered in the loyalty program.") + + public List getActions() { + return actions; + } + + + public void setActions(List actions) { + this.actions = actions; + } + + + public CardAddedDeductedPointsBalancesNotification currentPoints(BigDecimal currentPoints) { + + this.currentPoints = currentPoints; + return this; + } + + /** + * The current points balance. + * @return currentPoints + **/ + @ApiModelProperty(example = "10.99", required = true, value = "The current points balance.") + + public BigDecimal getCurrentPoints() { + return currentPoints; + } + + + public void setCurrentPoints(BigDecimal currentPoints) { + this.currentPoints = currentPoints; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CardAddedDeductedPointsBalancesNotification cardAddedDeductedPointsBalancesNotification = (CardAddedDeductedPointsBalancesNotification) o; + return Objects.equals(this.cardIdentifier, cardAddedDeductedPointsBalancesNotification.cardIdentifier) && + Objects.equals(this.employeeName, cardAddedDeductedPointsBalancesNotification.employeeName) && + Objects.equals(this.loyaltyProgramID, cardAddedDeductedPointsBalancesNotification.loyaltyProgramID) && + Objects.equals(this.notificationType, cardAddedDeductedPointsBalancesNotification.notificationType) && + Objects.equals(this.profileIntegrationIDs, cardAddedDeductedPointsBalancesNotification.profileIntegrationIDs) && + Objects.equals(this.sessionIntegrationID, cardAddedDeductedPointsBalancesNotification.sessionIntegrationID) && + Objects.equals(this.subledgerID, cardAddedDeductedPointsBalancesNotification.subledgerID) && + Objects.equals(this.typeOfChange, cardAddedDeductedPointsBalancesNotification.typeOfChange) && + Objects.equals(this.userID, cardAddedDeductedPointsBalancesNotification.userID) && + Objects.equals(this.usersPerCardLimit, cardAddedDeductedPointsBalancesNotification.usersPerCardLimit) && + Objects.equals(this.actions, cardAddedDeductedPointsBalancesNotification.actions) && + Objects.equals(this.currentPoints, cardAddedDeductedPointsBalancesNotification.currentPoints); + } + + @Override + public int hashCode() { + return Objects.hash(cardIdentifier, employeeName, loyaltyProgramID, notificationType, profileIntegrationIDs, sessionIntegrationID, subledgerID, typeOfChange, userID, usersPerCardLimit, actions, currentPoints); + } + + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CardAddedDeductedPointsBalancesNotification {\n"); + sb.append(" cardIdentifier: ").append(toIndentedString(cardIdentifier)).append("\n"); + sb.append(" employeeName: ").append(toIndentedString(employeeName)).append("\n"); + sb.append(" loyaltyProgramID: ").append(toIndentedString(loyaltyProgramID)).append("\n"); + sb.append(" notificationType: ").append(toIndentedString(notificationType)).append("\n"); + sb.append(" profileIntegrationIDs: ").append(toIndentedString(profileIntegrationIDs)).append("\n"); + sb.append(" sessionIntegrationID: ").append(toIndentedString(sessionIntegrationID)).append("\n"); + sb.append(" subledgerID: ").append(toIndentedString(subledgerID)).append("\n"); + sb.append(" typeOfChange: ").append(toIndentedString(typeOfChange)).append("\n"); + sb.append(" userID: ").append(toIndentedString(userID)).append("\n"); + sb.append(" usersPerCardLimit: ").append(toIndentedString(usersPerCardLimit)).append("\n"); + sb.append(" actions: ").append(toIndentedString(actions)).append("\n"); + sb.append(" currentPoints: ").append(toIndentedString(currentPoints)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + +} + diff --git a/src/main/java/one/talon/model/CardAddedDeductedPointsNotification.java b/src/main/java/one/talon/model/CardAddedDeductedPointsNotification.java index d02968d2..ac819ddc 100644 --- a/src/main/java/one/talon/model/CardAddedDeductedPointsNotification.java +++ b/src/main/java/one/talon/model/CardAddedDeductedPointsNotification.java @@ -33,26 +33,81 @@ */ public class CardAddedDeductedPointsNotification { - public static final String SERIALIZED_NAME_PROFILE_INTEGRATION_I_DS = "ProfileIntegrationIDs"; - @SerializedName(SERIALIZED_NAME_PROFILE_INTEGRATION_I_DS) - private List profileIntegrationIDs = new ArrayList(); + public static final String SERIALIZED_NAME_CARD_IDENTIFIER = "CardIdentifier"; + @SerializedName(SERIALIZED_NAME_CARD_IDENTIFIER) + private String cardIdentifier; + + public static final String SERIALIZED_NAME_EMPLOYEE_NAME = "EmployeeName"; + @SerializedName(SERIALIZED_NAME_EMPLOYEE_NAME) + private String employeeName; public static final String SERIALIZED_NAME_LOYALTY_PROGRAM_I_D = "LoyaltyProgramID"; @SerializedName(SERIALIZED_NAME_LOYALTY_PROGRAM_I_D) private Long loyaltyProgramID; + /** + * The type of notification. + */ + @JsonAdapter(NotificationTypeEnum.Adapter.class) + public enum NotificationTypeEnum { + LOYALTYCARDPOINTSDEDUCTED("LoyaltyCardPointsDeducted"), + + LOYALTYCARDPOINTSADDED("LoyaltyCardPointsAdded"); + + private String value; + + NotificationTypeEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static NotificationTypeEnum fromValue(String value) { + for (NotificationTypeEnum b : NotificationTypeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final NotificationTypeEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public NotificationTypeEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return NotificationTypeEnum.fromValue(value); + } + } + } + + public static final String SERIALIZED_NAME_NOTIFICATION_TYPE = "NotificationType"; + @SerializedName(SERIALIZED_NAME_NOTIFICATION_TYPE) + private NotificationTypeEnum notificationType; + + public static final String SERIALIZED_NAME_PROFILE_INTEGRATION_I_DS = "ProfileIntegrationIDs"; + @SerializedName(SERIALIZED_NAME_PROFILE_INTEGRATION_I_DS) + private List profileIntegrationIDs = new ArrayList(); + + public static final String SERIALIZED_NAME_SESSION_INTEGRATION_I_D = "SessionIntegrationID"; + @SerializedName(SERIALIZED_NAME_SESSION_INTEGRATION_I_D) + private String sessionIntegrationID; + public static final String SERIALIZED_NAME_SUBLEDGER_I_D = "SubledgerID"; @SerializedName(SERIALIZED_NAME_SUBLEDGER_I_D) private String subledgerID; - public static final String SERIALIZED_NAME_AMOUNT = "Amount"; - @SerializedName(SERIALIZED_NAME_AMOUNT) - private BigDecimal amount; - - public static final String SERIALIZED_NAME_REASON = "Reason"; - @SerializedName(SERIALIZED_NAME_REASON) - private String reason; - /** * The notification source, that is, it indicates whether the points were added or deducted via one of the following routes: - [The Campaign Manager](/docs/product/getting-started) - [Management API](/management-api#tag/Loyalty) - [Rule Engine](/docs/product/applications/evaluation-order-for-rules-and-filters) */ @@ -106,14 +161,22 @@ public TypeOfChangeEnum read(final JsonReader jsonReader) throws IOException { @SerializedName(SERIALIZED_NAME_TYPE_OF_CHANGE) private TypeOfChangeEnum typeOfChange; - public static final String SERIALIZED_NAME_EMPLOYEE_NAME = "EmployeeName"; - @SerializedName(SERIALIZED_NAME_EMPLOYEE_NAME) - private String employeeName; - public static final String SERIALIZED_NAME_USER_I_D = "UserID"; @SerializedName(SERIALIZED_NAME_USER_I_D) private Long userID; + public static final String SERIALIZED_NAME_USERS_PER_CARD_LIMIT = "UsersPerCardLimit"; + @SerializedName(SERIALIZED_NAME_USERS_PER_CARD_LIMIT) + private Long usersPerCardLimit; + + public static final String SERIALIZED_NAME_AMOUNT = "Amount"; + @SerializedName(SERIALIZED_NAME_AMOUNT) + private BigDecimal amount; + + public static final String SERIALIZED_NAME_EXPIRY_DATE = "ExpiryDate"; + @SerializedName(SERIALIZED_NAME_EXPIRY_DATE) + private OffsetDateTime expiryDate; + /** * The action (addition or deduction) made with loyalty points. */ @@ -165,102 +228,56 @@ public OperationEnum read(final JsonReader jsonReader) throws IOException { @SerializedName(SERIALIZED_NAME_OPERATION) private OperationEnum operation; + public static final String SERIALIZED_NAME_REASON = "Reason"; + @SerializedName(SERIALIZED_NAME_REASON) + private String reason; + public static final String SERIALIZED_NAME_START_DATE = "StartDate"; @SerializedName(SERIALIZED_NAME_START_DATE) private OffsetDateTime startDate; - public static final String SERIALIZED_NAME_EXPIRY_DATE = "ExpiryDate"; - @SerializedName(SERIALIZED_NAME_EXPIRY_DATE) - private OffsetDateTime expiryDate; - public static final String SERIALIZED_NAME_SESSION_INTEGRATION_I_D = "SessionIntegrationID"; - @SerializedName(SERIALIZED_NAME_SESSION_INTEGRATION_I_D) - private String sessionIntegrationID; - - /** - * The type of notification. - */ - @JsonAdapter(NotificationTypeEnum.Adapter.class) - public enum NotificationTypeEnum { - LOYALTYCARDPOINTSDEDUCTED("LoyaltyCardPointsDeducted"), + public CardAddedDeductedPointsNotification cardIdentifier(String cardIdentifier) { - LOYALTYCARDPOINTSADDED("LoyaltyCardPointsAdded"); - - private String value; - - NotificationTypeEnum(String value) { - this.value = value; - } - - public String getValue() { - return value; - } - - @Override - public String toString() { - return String.valueOf(value); - } - - public static NotificationTypeEnum fromValue(String value) { - for (NotificationTypeEnum b : NotificationTypeEnum.values()) { - if (b.value.equals(value)) { - return b; - } - } - throw new IllegalArgumentException("Unexpected value '" + value + "'"); - } + this.cardIdentifier = cardIdentifier; + return this; + } - public static class Adapter extends TypeAdapter { - @Override - public void write(final JsonWriter jsonWriter, final NotificationTypeEnum enumeration) throws IOException { - jsonWriter.value(enumeration.getValue()); - } + /** + * Loyalty card identification number. + * @return cardIdentifier + **/ + @ApiModelProperty(example = "123-456-789ATBC", required = true, value = "Loyalty card identification number.") - @Override - public NotificationTypeEnum read(final JsonReader jsonReader) throws IOException { - String value = jsonReader.nextString(); - return NotificationTypeEnum.fromValue(value); - } - } + public String getCardIdentifier() { + return cardIdentifier; } - public static final String SERIALIZED_NAME_NOTIFICATION_TYPE = "NotificationType"; - @SerializedName(SERIALIZED_NAME_NOTIFICATION_TYPE) - private NotificationTypeEnum notificationType; - - public static final String SERIALIZED_NAME_CARD_IDENTIFIER = "CardIdentifier"; - @SerializedName(SERIALIZED_NAME_CARD_IDENTIFIER) - private String cardIdentifier; - public static final String SERIALIZED_NAME_USERS_PER_CARD_LIMIT = "UsersPerCardLimit"; - @SerializedName(SERIALIZED_NAME_USERS_PER_CARD_LIMIT) - private Long usersPerCardLimit; + public void setCardIdentifier(String cardIdentifier) { + this.cardIdentifier = cardIdentifier; + } - public CardAddedDeductedPointsNotification profileIntegrationIDs(List profileIntegrationIDs) { + public CardAddedDeductedPointsNotification employeeName(String employeeName) { - this.profileIntegrationIDs = profileIntegrationIDs; - return this; - } - - public CardAddedDeductedPointsNotification addProfileIntegrationIDsItem(String profileIntegrationIDsItem) { - this.profileIntegrationIDs.add(profileIntegrationIDsItem); + this.employeeName = employeeName; return this; } /** - * The integration ID of the customer profile to whom points were added or deducted. - * @return profileIntegrationIDs + * The name of the employee who added or deducted points. + * @return employeeName **/ - @ApiModelProperty(example = "[yJSObdNNtOetCHWHPFuz, test-user-4zoj1c]", required = true, value = "The integration ID of the customer profile to whom points were added or deducted.") + @ApiModelProperty(example = "Franziska Schneider", required = true, value = "The name of the employee who added or deducted points.") - public List getProfileIntegrationIDs() { - return profileIntegrationIDs; + public String getEmployeeName() { + return employeeName; } - public void setProfileIntegrationIDs(List profileIntegrationIDs) { - this.profileIntegrationIDs = profileIntegrationIDs; + public void setEmployeeName(String employeeName) { + this.employeeName = employeeName; } @@ -287,113 +304,118 @@ public void setLoyaltyProgramID(Long loyaltyProgramID) { } - public CardAddedDeductedPointsNotification subledgerID(String subledgerID) { + public CardAddedDeductedPointsNotification notificationType(NotificationTypeEnum notificationType) { - this.subledgerID = subledgerID; + this.notificationType = notificationType; return this; } /** - * The ID of the subledger within the loyalty program where these points were added or deducted. - * @return subledgerID + * The type of notification. + * @return notificationType **/ - @ApiModelProperty(example = "sub-123", required = true, value = "The ID of the subledger within the loyalty program where these points were added or deducted.") + @ApiModelProperty(required = true, value = "The type of notification.") - public String getSubledgerID() { - return subledgerID; + public NotificationTypeEnum getNotificationType() { + return notificationType; } - public void setSubledgerID(String subledgerID) { - this.subledgerID = subledgerID; + public void setNotificationType(NotificationTypeEnum notificationType) { + this.notificationType = notificationType; } - public CardAddedDeductedPointsNotification amount(BigDecimal amount) { + public CardAddedDeductedPointsNotification profileIntegrationIDs(List profileIntegrationIDs) { - this.amount = amount; + this.profileIntegrationIDs = profileIntegrationIDs; + return this; + } + + public CardAddedDeductedPointsNotification addProfileIntegrationIDsItem(String profileIntegrationIDsItem) { + this.profileIntegrationIDs.add(profileIntegrationIDsItem); return this; } /** - * The amount of added or deducted loyalty points. - * @return amount + * The integration ID of the customer profile to whom points were added or deducted. + * @return profileIntegrationIDs **/ - @ApiModelProperty(example = "10.99", required = true, value = "The amount of added or deducted loyalty points.") + @ApiModelProperty(example = "[yJSObdNNtOetCHWHPFuz, test-user-4zoj1c]", required = true, value = "The integration ID of the customer profile to whom points were added or deducted.") - public BigDecimal getAmount() { - return amount; + public List getProfileIntegrationIDs() { + return profileIntegrationIDs; } - public void setAmount(BigDecimal amount) { - this.amount = amount; + public void setProfileIntegrationIDs(List profileIntegrationIDs) { + this.profileIntegrationIDs = profileIntegrationIDs; } - public CardAddedDeductedPointsNotification reason(String reason) { + public CardAddedDeductedPointsNotification sessionIntegrationID(String sessionIntegrationID) { - this.reason = reason; + this.sessionIntegrationID = sessionIntegrationID; return this; } /** - * The reason for the points addition or deduction. - * @return reason + * The integration ID of the session through which the points were earned or lost. + * @return sessionIntegrationID **/ - @ApiModelProperty(example = "Compensation", required = true, value = "The reason for the points addition or deduction.") + @ApiModelProperty(example = "cc53e4fa-547f-4f5e-8333-76e05c381f67", required = true, value = "The integration ID of the session through which the points were earned or lost.") - public String getReason() { - return reason; + public String getSessionIntegrationID() { + return sessionIntegrationID; } - public void setReason(String reason) { - this.reason = reason; + public void setSessionIntegrationID(String sessionIntegrationID) { + this.sessionIntegrationID = sessionIntegrationID; } - public CardAddedDeductedPointsNotification typeOfChange(TypeOfChangeEnum typeOfChange) { + public CardAddedDeductedPointsNotification subledgerID(String subledgerID) { - this.typeOfChange = typeOfChange; + this.subledgerID = subledgerID; return this; } /** - * The notification source, that is, it indicates whether the points were added or deducted via one of the following routes: - [The Campaign Manager](/docs/product/getting-started) - [Management API](/management-api#tag/Loyalty) - [Rule Engine](/docs/product/applications/evaluation-order-for-rules-and-filters) - * @return typeOfChange + * The ID of the subledger within the loyalty program where these points were added or deducted. + * @return subledgerID **/ - @ApiModelProperty(required = true, value = "The notification source, that is, it indicates whether the points were added or deducted via one of the following routes: - [The Campaign Manager](/docs/product/getting-started) - [Management API](/management-api#tag/Loyalty) - [Rule Engine](/docs/product/applications/evaluation-order-for-rules-and-filters) ") + @ApiModelProperty(example = "sub-123", required = true, value = "The ID of the subledger within the loyalty program where these points were added or deducted.") - public TypeOfChangeEnum getTypeOfChange() { - return typeOfChange; + public String getSubledgerID() { + return subledgerID; } - public void setTypeOfChange(TypeOfChangeEnum typeOfChange) { - this.typeOfChange = typeOfChange; + public void setSubledgerID(String subledgerID) { + this.subledgerID = subledgerID; } - public CardAddedDeductedPointsNotification employeeName(String employeeName) { + public CardAddedDeductedPointsNotification typeOfChange(TypeOfChangeEnum typeOfChange) { - this.employeeName = employeeName; + this.typeOfChange = typeOfChange; return this; } /** - * The name of the employee who added or deducted points. - * @return employeeName + * The notification source, that is, it indicates whether the points were added or deducted via one of the following routes: - [The Campaign Manager](/docs/product/getting-started) - [Management API](/management-api#tag/Loyalty) - [Rule Engine](/docs/product/applications/evaluation-order-for-rules-and-filters) + * @return typeOfChange **/ - @ApiModelProperty(example = "Franziska Schneider", required = true, value = "The name of the employee who added or deducted points.") + @ApiModelProperty(required = true, value = "The notification source, that is, it indicates whether the points were added or deducted via one of the following routes: - [The Campaign Manager](/docs/product/getting-started) - [Management API](/management-api#tag/Loyalty) - [Rule Engine](/docs/product/applications/evaluation-order-for-rules-and-filters) ") - public String getEmployeeName() { - return employeeName; + public TypeOfChangeEnum getTypeOfChange() { + return typeOfChange; } - public void setEmployeeName(String employeeName) { - this.employeeName = employeeName; + public void setTypeOfChange(TypeOfChangeEnum typeOfChange) { + this.typeOfChange = typeOfChange; } @@ -405,7 +427,6 @@ public CardAddedDeductedPointsNotification userID(Long userID) { /** * The ID of the employee who added or deducted points. - * minimum: 1 * @return userID **/ @ApiModelProperty(example = "25", required = true, value = "The ID of the employee who added or deducted points.") @@ -420,48 +441,47 @@ public void setUserID(Long userID) { } - public CardAddedDeductedPointsNotification operation(OperationEnum operation) { + public CardAddedDeductedPointsNotification usersPerCardLimit(Long usersPerCardLimit) { - this.operation = operation; + this.usersPerCardLimit = usersPerCardLimit; return this; } /** - * The action (addition or deduction) made with loyalty points. - * @return operation + * The max amount of user profiles with whom a card can be shared. This can be set to `0` for no limit. + * @return usersPerCardLimit **/ - @ApiModelProperty(required = true, value = "The action (addition or deduction) made with loyalty points.") + @ApiModelProperty(example = "10", required = true, value = "The max amount of user profiles with whom a card can be shared. This can be set to `0` for no limit.") - public OperationEnum getOperation() { - return operation; + public Long getUsersPerCardLimit() { + return usersPerCardLimit; } - public void setOperation(OperationEnum operation) { - this.operation = operation; + public void setUsersPerCardLimit(Long usersPerCardLimit) { + this.usersPerCardLimit = usersPerCardLimit; } - public CardAddedDeductedPointsNotification startDate(OffsetDateTime startDate) { + public CardAddedDeductedPointsNotification amount(BigDecimal amount) { - this.startDate = startDate; + this.amount = amount; return this; } /** - * The start date for loyalty points. - * @return startDate + * The amount of added or deducted loyalty points. + * @return amount **/ - @javax.annotation.Nullable - @ApiModelProperty(example = "2023-01-24T14:15:22Z", value = "The start date for loyalty points.") + @ApiModelProperty(example = "10.99", required = true, value = "The amount of added or deducted loyalty points.") - public OffsetDateTime getStartDate() { - return startDate; + public BigDecimal getAmount() { + return amount; } - public void setStartDate(OffsetDateTime startDate) { - this.startDate = startDate; + public void setAmount(BigDecimal amount) { + this.amount = amount; } @@ -488,91 +508,70 @@ public void setExpiryDate(OffsetDateTime expiryDate) { } - public CardAddedDeductedPointsNotification sessionIntegrationID(String sessionIntegrationID) { - - this.sessionIntegrationID = sessionIntegrationID; - return this; - } - - /** - * The integration ID of the session through which the points were earned or lost. - * @return sessionIntegrationID - **/ - @ApiModelProperty(example = "cc53e4fa-547f-4f5e-8333-76e05c381f67", required = true, value = "The integration ID of the session through which the points were earned or lost.") - - public String getSessionIntegrationID() { - return sessionIntegrationID; - } - - - public void setSessionIntegrationID(String sessionIntegrationID) { - this.sessionIntegrationID = sessionIntegrationID; - } - - - public CardAddedDeductedPointsNotification notificationType(NotificationTypeEnum notificationType) { + public CardAddedDeductedPointsNotification operation(OperationEnum operation) { - this.notificationType = notificationType; + this.operation = operation; return this; } /** - * The type of notification. - * @return notificationType + * The action (addition or deduction) made with loyalty points. + * @return operation **/ - @ApiModelProperty(required = true, value = "The type of notification.") + @ApiModelProperty(required = true, value = "The action (addition or deduction) made with loyalty points.") - public NotificationTypeEnum getNotificationType() { - return notificationType; + public OperationEnum getOperation() { + return operation; } - public void setNotificationType(NotificationTypeEnum notificationType) { - this.notificationType = notificationType; + public void setOperation(OperationEnum operation) { + this.operation = operation; } - public CardAddedDeductedPointsNotification cardIdentifier(String cardIdentifier) { + public CardAddedDeductedPointsNotification reason(String reason) { - this.cardIdentifier = cardIdentifier; + this.reason = reason; return this; } /** - * Loyalty card identification number. - * @return cardIdentifier + * The reason for the points addition or deduction. + * @return reason **/ - @ApiModelProperty(example = "123-456-789ATBC", required = true, value = "Loyalty card identification number.") + @ApiModelProperty(example = "Compensation", required = true, value = "The reason for the points addition or deduction.") - public String getCardIdentifier() { - return cardIdentifier; + public String getReason() { + return reason; } - public void setCardIdentifier(String cardIdentifier) { - this.cardIdentifier = cardIdentifier; + public void setReason(String reason) { + this.reason = reason; } - public CardAddedDeductedPointsNotification usersPerCardLimit(Long usersPerCardLimit) { + public CardAddedDeductedPointsNotification startDate(OffsetDateTime startDate) { - this.usersPerCardLimit = usersPerCardLimit; + this.startDate = startDate; return this; } /** - * The max amount of user profiles with whom a card can be shared. This can be set to `0` for no limit. - * @return usersPerCardLimit + * The start date for loyalty points. + * @return startDate **/ - @ApiModelProperty(example = "10", required = true, value = "The max amount of user profiles with whom a card can be shared. This can be set to `0` for no limit.") + @javax.annotation.Nullable + @ApiModelProperty(example = "2023-01-24T14:15:22Z", value = "The start date for loyalty points.") - public Long getUsersPerCardLimit() { - return usersPerCardLimit; + public OffsetDateTime getStartDate() { + return startDate; } - public void setUsersPerCardLimit(Long usersPerCardLimit) { - this.usersPerCardLimit = usersPerCardLimit; + public void setStartDate(OffsetDateTime startDate) { + this.startDate = startDate; } @@ -585,26 +584,26 @@ public boolean equals(java.lang.Object o) { return false; } CardAddedDeductedPointsNotification cardAddedDeductedPointsNotification = (CardAddedDeductedPointsNotification) o; - return Objects.equals(this.profileIntegrationIDs, cardAddedDeductedPointsNotification.profileIntegrationIDs) && + return Objects.equals(this.cardIdentifier, cardAddedDeductedPointsNotification.cardIdentifier) && + Objects.equals(this.employeeName, cardAddedDeductedPointsNotification.employeeName) && Objects.equals(this.loyaltyProgramID, cardAddedDeductedPointsNotification.loyaltyProgramID) && + Objects.equals(this.notificationType, cardAddedDeductedPointsNotification.notificationType) && + Objects.equals(this.profileIntegrationIDs, cardAddedDeductedPointsNotification.profileIntegrationIDs) && + Objects.equals(this.sessionIntegrationID, cardAddedDeductedPointsNotification.sessionIntegrationID) && Objects.equals(this.subledgerID, cardAddedDeductedPointsNotification.subledgerID) && - Objects.equals(this.amount, cardAddedDeductedPointsNotification.amount) && - Objects.equals(this.reason, cardAddedDeductedPointsNotification.reason) && Objects.equals(this.typeOfChange, cardAddedDeductedPointsNotification.typeOfChange) && - Objects.equals(this.employeeName, cardAddedDeductedPointsNotification.employeeName) && Objects.equals(this.userID, cardAddedDeductedPointsNotification.userID) && - Objects.equals(this.operation, cardAddedDeductedPointsNotification.operation) && - Objects.equals(this.startDate, cardAddedDeductedPointsNotification.startDate) && + Objects.equals(this.usersPerCardLimit, cardAddedDeductedPointsNotification.usersPerCardLimit) && + Objects.equals(this.amount, cardAddedDeductedPointsNotification.amount) && Objects.equals(this.expiryDate, cardAddedDeductedPointsNotification.expiryDate) && - Objects.equals(this.sessionIntegrationID, cardAddedDeductedPointsNotification.sessionIntegrationID) && - Objects.equals(this.notificationType, cardAddedDeductedPointsNotification.notificationType) && - Objects.equals(this.cardIdentifier, cardAddedDeductedPointsNotification.cardIdentifier) && - Objects.equals(this.usersPerCardLimit, cardAddedDeductedPointsNotification.usersPerCardLimit); + Objects.equals(this.operation, cardAddedDeductedPointsNotification.operation) && + Objects.equals(this.reason, cardAddedDeductedPointsNotification.reason) && + Objects.equals(this.startDate, cardAddedDeductedPointsNotification.startDate); } @Override public int hashCode() { - return Objects.hash(profileIntegrationIDs, loyaltyProgramID, subledgerID, amount, reason, typeOfChange, employeeName, userID, operation, startDate, expiryDate, sessionIntegrationID, notificationType, cardIdentifier, usersPerCardLimit); + return Objects.hash(cardIdentifier, employeeName, loyaltyProgramID, notificationType, profileIntegrationIDs, sessionIntegrationID, subledgerID, typeOfChange, userID, usersPerCardLimit, amount, expiryDate, operation, reason, startDate); } @@ -612,21 +611,21 @@ public int hashCode() { public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class CardAddedDeductedPointsNotification {\n"); - sb.append(" profileIntegrationIDs: ").append(toIndentedString(profileIntegrationIDs)).append("\n"); + sb.append(" cardIdentifier: ").append(toIndentedString(cardIdentifier)).append("\n"); + sb.append(" employeeName: ").append(toIndentedString(employeeName)).append("\n"); sb.append(" loyaltyProgramID: ").append(toIndentedString(loyaltyProgramID)).append("\n"); + sb.append(" notificationType: ").append(toIndentedString(notificationType)).append("\n"); + sb.append(" profileIntegrationIDs: ").append(toIndentedString(profileIntegrationIDs)).append("\n"); + sb.append(" sessionIntegrationID: ").append(toIndentedString(sessionIntegrationID)).append("\n"); sb.append(" subledgerID: ").append(toIndentedString(subledgerID)).append("\n"); - sb.append(" amount: ").append(toIndentedString(amount)).append("\n"); - sb.append(" reason: ").append(toIndentedString(reason)).append("\n"); sb.append(" typeOfChange: ").append(toIndentedString(typeOfChange)).append("\n"); - sb.append(" employeeName: ").append(toIndentedString(employeeName)).append("\n"); sb.append(" userID: ").append(toIndentedString(userID)).append("\n"); + sb.append(" usersPerCardLimit: ").append(toIndentedString(usersPerCardLimit)).append("\n"); + sb.append(" amount: ").append(toIndentedString(amount)).append("\n"); + sb.append(" expiryDate: ").append(toIndentedString(expiryDate)).append("\n"); sb.append(" operation: ").append(toIndentedString(operation)).append("\n"); + sb.append(" reason: ").append(toIndentedString(reason)).append("\n"); sb.append(" startDate: ").append(toIndentedString(startDate)).append("\n"); - sb.append(" expiryDate: ").append(toIndentedString(expiryDate)).append("\n"); - sb.append(" sessionIntegrationID: ").append(toIndentedString(sessionIntegrationID)).append("\n"); - sb.append(" notificationType: ").append(toIndentedString(notificationType)).append("\n"); - sb.append(" cardIdentifier: ").append(toIndentedString(cardIdentifier)).append("\n"); - sb.append(" usersPerCardLimit: ").append(toIndentedString(usersPerCardLimit)).append("\n"); sb.append("}"); return sb.toString(); } diff --git a/src/main/java/one/talon/model/CardLedgerPointsEntryIntegrationAPI.java b/src/main/java/one/talon/model/CardLedgerPointsEntryIntegrationAPI.java index dfbae620..fc174ee0 100644 --- a/src/main/java/one/talon/model/CardLedgerPointsEntryIntegrationAPI.java +++ b/src/main/java/one/talon/model/CardLedgerPointsEntryIntegrationAPI.java @@ -76,6 +76,10 @@ public class CardLedgerPointsEntryIntegrationAPI { @SerializedName(SERIALIZED_NAME_AMOUNT) private BigDecimal amount; + public static final String SERIALIZED_NAME_VALIDITY_DURATION = "validityDuration"; + @SerializedName(SERIALIZED_NAME_VALIDITY_DURATION) + private String validityDuration; + public CardLedgerPointsEntryIntegrationAPI id(Long id) { @@ -321,6 +325,29 @@ public void setAmount(BigDecimal amount) { } + public CardLedgerPointsEntryIntegrationAPI validityDuration(String validityDuration) { + + this.validityDuration = validityDuration; + return this; + } + + /** + * The duration for which the points remain active, relative to the activation date. **Note**: This only applies to points for which `awaitsActivation` is `true` and `expiryDate` is not set. + * @return validityDuration + **/ + @javax.annotation.Nullable + @ApiModelProperty(example = "30D", value = "The duration for which the points remain active, relative to the activation date. **Note**: This only applies to points for which `awaitsActivation` is `true` and `expiryDate` is not set. ") + + public String getValidityDuration() { + return validityDuration; + } + + + public void setValidityDuration(String validityDuration) { + this.validityDuration = validityDuration; + } + + @Override public boolean equals(java.lang.Object o) { if (this == o) { @@ -340,12 +367,13 @@ public boolean equals(java.lang.Object o) { Objects.equals(this.startDate, cardLedgerPointsEntryIntegrationAPI.startDate) && Objects.equals(this.expiryDate, cardLedgerPointsEntryIntegrationAPI.expiryDate) && Objects.equals(this.subledgerId, cardLedgerPointsEntryIntegrationAPI.subledgerId) && - Objects.equals(this.amount, cardLedgerPointsEntryIntegrationAPI.amount); + Objects.equals(this.amount, cardLedgerPointsEntryIntegrationAPI.amount) && + Objects.equals(this.validityDuration, cardLedgerPointsEntryIntegrationAPI.validityDuration); } @Override public int hashCode() { - return Objects.hash(id, transactionUUID, created, programId, customerProfileID, customerSessionId, name, startDate, expiryDate, subledgerId, amount); + return Objects.hash(id, transactionUUID, created, programId, customerProfileID, customerSessionId, name, startDate, expiryDate, subledgerId, amount, validityDuration); } @@ -364,6 +392,7 @@ public String toString() { sb.append(" expiryDate: ").append(toIndentedString(expiryDate)).append("\n"); sb.append(" subledgerId: ").append(toIndentedString(subledgerId)).append("\n"); sb.append(" amount: ").append(toIndentedString(amount)).append("\n"); + sb.append(" validityDuration: ").append(toIndentedString(validityDuration)).append("\n"); sb.append("}"); return sb.toString(); } diff --git a/src/main/java/one/talon/model/CardLedgerTransactionLogEntryIntegrationAPI.java b/src/main/java/one/talon/model/CardLedgerTransactionLogEntryIntegrationAPI.java index eda5b381..cadc2d16 100644 --- a/src/main/java/one/talon/model/CardLedgerTransactionLogEntryIntegrationAPI.java +++ b/src/main/java/one/talon/model/CardLedgerTransactionLogEntryIntegrationAPI.java @@ -135,6 +135,10 @@ public TypeEnum read(final JsonReader jsonReader) throws IOException { @SerializedName(SERIALIZED_NAME_RULE_NAME) private String ruleName; + public static final String SERIALIZED_NAME_VALIDITY_DURATION = "validityDuration"; + @SerializedName(SERIALIZED_NAME_VALIDITY_DURATION) + private String validityDuration; + public CardLedgerTransactionLogEntryIntegrationAPI transactionUUID(String transactionUUID) { @@ -298,10 +302,10 @@ public CardLedgerTransactionLogEntryIntegrationAPI startDate(String startDate) { } /** - * When points become active. Possible values: - `immediate`: Points are active immediately. - a timestamp value: Points become active at a given date and time. + * When points become active. Possible values: - `immediate`: Points are active immediately. - `on_action`: Points become active based on the customer's action. - a timestamp value: Points become active at a given date and time. * @return startDate **/ - @ApiModelProperty(example = "2022-01-02T15:04:05Z07:00", required = true, value = "When points become active. Possible values: - `immediate`: Points are active immediately. - a timestamp value: Points become active at a given date and time. ") + @ApiModelProperty(example = "2022-01-02T15:04:05Z07:00", required = true, value = "When points become active. Possible values: - `immediate`: Points are active immediately. - `on_action`: Points become active based on the customer's action. - a timestamp value: Points become active at a given date and time. ") public String getStartDate() { return startDate; @@ -447,6 +451,29 @@ public void setRuleName(String ruleName) { } + public CardLedgerTransactionLogEntryIntegrationAPI validityDuration(String validityDuration) { + + this.validityDuration = validityDuration; + return this; + } + + /** + * The duration for which the points remain active, relative to the activation date. **Note**: This only applies to points for which `awaitsActivation` is `true` and `expiryDate` is not set. + * @return validityDuration + **/ + @javax.annotation.Nullable + @ApiModelProperty(example = "30D", value = "The duration for which the points remain active, relative to the activation date. **Note**: This only applies to points for which `awaitsActivation` is `true` and `expiryDate` is not set. ") + + public String getValidityDuration() { + return validityDuration; + } + + + public void setValidityDuration(String validityDuration) { + this.validityDuration = validityDuration; + } + + @Override public boolean equals(java.lang.Object o) { if (this == o) { @@ -469,12 +496,13 @@ public boolean equals(java.lang.Object o) { Objects.equals(this.amount, cardLedgerTransactionLogEntryIntegrationAPI.amount) && Objects.equals(this.id, cardLedgerTransactionLogEntryIntegrationAPI.id) && Objects.equals(this.rulesetId, cardLedgerTransactionLogEntryIntegrationAPI.rulesetId) && - Objects.equals(this.ruleName, cardLedgerTransactionLogEntryIntegrationAPI.ruleName); + Objects.equals(this.ruleName, cardLedgerTransactionLogEntryIntegrationAPI.ruleName) && + Objects.equals(this.validityDuration, cardLedgerTransactionLogEntryIntegrationAPI.validityDuration); } @Override public int hashCode() { - return Objects.hash(transactionUUID, created, programId, cardIdentifier, customerSessionId, type, name, startDate, expiryDate, subledgerId, amount, id, rulesetId, ruleName); + return Objects.hash(transactionUUID, created, programId, cardIdentifier, customerSessionId, type, name, startDate, expiryDate, subledgerId, amount, id, rulesetId, ruleName, validityDuration); } @@ -496,6 +524,7 @@ public String toString() { sb.append(" id: ").append(toIndentedString(id)).append("\n"); sb.append(" rulesetId: ").append(toIndentedString(rulesetId)).append("\n"); sb.append(" ruleName: ").append(toIndentedString(ruleName)).append("\n"); + sb.append(" validityDuration: ").append(toIndentedString(validityDuration)).append("\n"); sb.append("}"); return sb.toString(); } diff --git a/src/main/java/one/talon/model/CouponFailureSummary.java b/src/main/java/one/talon/model/CouponFailureSummary.java new file mode 100644 index 00000000..98e5792d --- /dev/null +++ b/src/main/java/one/talon/model/CouponFailureSummary.java @@ -0,0 +1,382 @@ +/* + * Talon.One API + * 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}` + * + * The version of the OpenAPI document: + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package one.talon.model; + +import java.util.Objects; +import java.util.Arrays; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.io.IOException; +import org.threeten.bp.OffsetDateTime; + +/** + * Summary of the reasons for coupon redemption failure. + */ +@ApiModel(description = "Summary of the reasons for coupon redemption failure.") + +public class CouponFailureSummary { + public static final String SERIALIZED_NAME_ID = "id"; + @SerializedName(SERIALIZED_NAME_ID) + private Long id; + + public static final String SERIALIZED_NAME_EVENT_I_D = "eventID"; + @SerializedName(SERIALIZED_NAME_EVENT_I_D) + private Long eventID; + + public static final String SERIALIZED_NAME_SESSION_I_D = "sessionID"; + @SerializedName(SERIALIZED_NAME_SESSION_I_D) + private String sessionID; + + public static final String SERIALIZED_NAME_PROFILE_I_D = "profileID"; + @SerializedName(SERIALIZED_NAME_PROFILE_I_D) + private String profileID; + + public static final String SERIALIZED_NAME_STATUS = "status"; + @SerializedName(SERIALIZED_NAME_STATUS) + private String status; + + public static final String SERIALIZED_NAME_COUPON_CODE = "couponCode"; + @SerializedName(SERIALIZED_NAME_COUPON_CODE) + private String couponCode; + + public static final String SERIALIZED_NAME_LANGUAGE = "language"; + @SerializedName(SERIALIZED_NAME_LANGUAGE) + private String language; + + public static final String SERIALIZED_NAME_SHORT_SUMMARY = "shortSummary"; + @SerializedName(SERIALIZED_NAME_SHORT_SUMMARY) + private String shortSummary; + + public static final String SERIALIZED_NAME_LONG_SUMMARY = "longSummary"; + @SerializedName(SERIALIZED_NAME_LONG_SUMMARY) + private String longSummary; + + public static final String SERIALIZED_NAME_CREATED_AT = "createdAt"; + @SerializedName(SERIALIZED_NAME_CREATED_AT) + private OffsetDateTime createdAt; + + public static final String SERIALIZED_NAME_UPDATED_AT = "updatedAt"; + @SerializedName(SERIALIZED_NAME_UPDATED_AT) + private OffsetDateTime updatedAt; + + + public CouponFailureSummary id(Long id) { + + this.id = id; + return this; + } + + /** + * ID of the evaluation record. + * @return id + **/ + @ApiModelProperty(example = "1", required = true, value = "ID of the evaluation record.") + + public Long getId() { + return id; + } + + + public void setId(Long id) { + this.id = id; + } + + + public CouponFailureSummary eventID(Long eventID) { + + this.eventID = eventID; + return this; + } + + /** + * ID of the event. + * @return eventID + **/ + @ApiModelProperty(example = "1011", required = true, value = "ID of the event.") + + public Long getEventID() { + return eventID; + } + + + public void setEventID(Long eventID) { + this.eventID = eventID; + } + + + public CouponFailureSummary sessionID(String sessionID) { + + this.sessionID = sessionID; + return this; + } + + /** + * ID of the customer session set by your integration layer. + * @return sessionID + **/ + @javax.annotation.Nullable + @ApiModelProperty(example = "1", value = "ID of the customer session set by your integration layer.") + + public String getSessionID() { + return sessionID; + } + + + public void setSessionID(String sessionID) { + this.sessionID = sessionID; + } + + + public CouponFailureSummary profileID(String profileID) { + + this.profileID = profileID; + return this; + } + + /** + * ID of the customer profile set by your integration layer. + * @return profileID + **/ + @javax.annotation.Nullable + @ApiModelProperty(example = "a48f10dddb5c9493aad194e49bb9c1dac", value = "ID of the customer profile set by your integration layer.") + + public String getProfileID() { + return profileID; + } + + + public void setProfileID(String profileID) { + this.profileID = profileID; + } + + + public CouponFailureSummary status(String status) { + + this.status = status; + return this; + } + + /** + * Status defines if the coupon code was applied or rejected. + * @return status + **/ + @ApiModelProperty(example = "rejected", required = true, value = "Status defines if the coupon code was applied or rejected.") + + public String getStatus() { + return status; + } + + + public void setStatus(String status) { + this.status = status; + } + + + public CouponFailureSummary couponCode(String couponCode) { + + this.couponCode = couponCode; + return this; + } + + /** + * Coupon code passed for evaluation. + * @return couponCode + **/ + @ApiModelProperty(example = "ABC123", required = true, value = "Coupon code passed for evaluation.") + + public String getCouponCode() { + return couponCode; + } + + + public void setCouponCode(String couponCode) { + this.couponCode = couponCode; + } + + + public CouponFailureSummary language(String language) { + + this.language = language; + return this; + } + + /** + * Language of the summary. + * @return language + **/ + @ApiModelProperty(example = "en", required = true, value = "Language of the summary.") + + public String getLanguage() { + return language; + } + + + public void setLanguage(String language) { + this.language = language; + } + + + public CouponFailureSummary shortSummary(String shortSummary) { + + this.shortSummary = shortSummary; + return this; + } + + /** + * A summary of the reasons for coupon redemption failure. + * @return shortSummary + **/ + @ApiModelProperty(example = "Session total was less than the required total.", required = true, value = "A summary of the reasons for coupon redemption failure.") + + public String getShortSummary() { + return shortSummary; + } + + + public void setShortSummary(String shortSummary) { + this.shortSummary = shortSummary; + } + + + public CouponFailureSummary longSummary(String longSummary) { + + this.longSummary = longSummary; + return this; + } + + /** + * A detailed summary of the reasons for coupon redemption failure based on events of the entire session. + * @return longSummary + **/ + @ApiModelProperty(example = "There were 5 items in the cart with SKUs 1,2,3,4,5 and the total is $60 which is less than the required cart total.", required = true, value = "A detailed summary of the reasons for coupon redemption failure based on events of the entire session.") + + public String getLongSummary() { + return longSummary; + } + + + public void setLongSummary(String longSummary) { + this.longSummary = longSummary; + } + + + public CouponFailureSummary createdAt(OffsetDateTime createdAt) { + + this.createdAt = createdAt; + return this; + } + + /** + * Timestamp when the request was made. + * @return createdAt + **/ + @ApiModelProperty(example = "2021-07-20T21:59Z", required = true, value = "Timestamp when the request was made.") + + public OffsetDateTime getCreatedAt() { + return createdAt; + } + + + public void setCreatedAt(OffsetDateTime createdAt) { + this.createdAt = createdAt; + } + + + public CouponFailureSummary updatedAt(OffsetDateTime updatedAt) { + + this.updatedAt = updatedAt; + return this; + } + + /** + * Timestamp when the request was last updated. + * @return updatedAt + **/ + @ApiModelProperty(example = "2021-07-20T21:59Z", required = true, value = "Timestamp when the request was last updated.") + + public OffsetDateTime getUpdatedAt() { + return updatedAt; + } + + + public void setUpdatedAt(OffsetDateTime updatedAt) { + this.updatedAt = updatedAt; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CouponFailureSummary couponFailureSummary = (CouponFailureSummary) o; + return Objects.equals(this.id, couponFailureSummary.id) && + Objects.equals(this.eventID, couponFailureSummary.eventID) && + Objects.equals(this.sessionID, couponFailureSummary.sessionID) && + Objects.equals(this.profileID, couponFailureSummary.profileID) && + Objects.equals(this.status, couponFailureSummary.status) && + Objects.equals(this.couponCode, couponFailureSummary.couponCode) && + Objects.equals(this.language, couponFailureSummary.language) && + Objects.equals(this.shortSummary, couponFailureSummary.shortSummary) && + Objects.equals(this.longSummary, couponFailureSummary.longSummary) && + Objects.equals(this.createdAt, couponFailureSummary.createdAt) && + Objects.equals(this.updatedAt, couponFailureSummary.updatedAt); + } + + @Override + public int hashCode() { + return Objects.hash(id, eventID, sessionID, profileID, status, couponCode, language, shortSummary, longSummary, createdAt, updatedAt); + } + + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CouponFailureSummary {\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" eventID: ").append(toIndentedString(eventID)).append("\n"); + sb.append(" sessionID: ").append(toIndentedString(sessionID)).append("\n"); + sb.append(" profileID: ").append(toIndentedString(profileID)).append("\n"); + sb.append(" status: ").append(toIndentedString(status)).append("\n"); + sb.append(" couponCode: ").append(toIndentedString(couponCode)).append("\n"); + sb.append(" language: ").append(toIndentedString(language)).append("\n"); + sb.append(" shortSummary: ").append(toIndentedString(shortSummary)).append("\n"); + sb.append(" longSummary: ").append(toIndentedString(longSummary)).append("\n"); + sb.append(" createdAt: ").append(toIndentedString(createdAt)).append("\n"); + sb.append(" updatedAt: ").append(toIndentedString(updatedAt)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + +} + diff --git a/src/main/java/one/talon/model/CouponRejections.java b/src/main/java/one/talon/model/CouponRejections.java new file mode 100644 index 00000000..5d7359a2 --- /dev/null +++ b/src/main/java/one/talon/model/CouponRejections.java @@ -0,0 +1,163 @@ +/* + * Talon.One API + * 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}` + * + * The version of the OpenAPI document: + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package one.talon.model; + +import java.util.Objects; +import java.util.Arrays; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import one.talon.model.SessionCoupons; + +/** + * CouponRejections + */ + +public class CouponRejections { + public static final String SERIALIZED_NAME_SESSION_DETAILS = "sessionDetails"; + @SerializedName(SERIALIZED_NAME_SESSION_DETAILS) + private List sessionDetails = new ArrayList(); + + public static final String SERIALIZED_NAME_APPLICATION_ID = "applicationId"; + @SerializedName(SERIALIZED_NAME_APPLICATION_ID) + private Long applicationId; + + public static final String SERIALIZED_NAME_LANGUAGE = "language"; + @SerializedName(SERIALIZED_NAME_LANGUAGE) + private String language; + + + public CouponRejections sessionDetails(List sessionDetails) { + + this.sessionDetails = sessionDetails; + return this; + } + + public CouponRejections addSessionDetailsItem(SessionCoupons sessionDetailsItem) { + this.sessionDetails.add(sessionDetailsItem); + return this; + } + + /** + * Array containing details from session like session id and optional coupon code used in the session. Only the first 15 entries will be processed. + * @return sessionDetails + **/ + @ApiModelProperty(required = true, value = "Array containing details from session like session id and optional coupon code used in the session. Only the first 15 entries will be processed.") + + public List getSessionDetails() { + return sessionDetails; + } + + + public void setSessionDetails(List sessionDetails) { + this.sessionDetails = sessionDetails; + } + + + public CouponRejections applicationId(Long applicationId) { + + this.applicationId = applicationId; + return this; + } + + /** + * The application ID for which the coupon was used. + * @return applicationId + **/ + @ApiModelProperty(example = "123", required = true, value = "The application ID for which the coupon was used.") + + public Long getApplicationId() { + return applicationId; + } + + + public void setApplicationId(Long applicationId) { + this.applicationId = applicationId; + } + + + public CouponRejections language(String language) { + + this.language = language; + return this; + } + + /** + * The language the summary will be generated in. + * @return language + **/ + @javax.annotation.Nullable + @ApiModelProperty(example = "en", value = "The language the summary will be generated in.") + + public String getLanguage() { + return language; + } + + + public void setLanguage(String language) { + this.language = language; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CouponRejections couponRejections = (CouponRejections) o; + return Objects.equals(this.sessionDetails, couponRejections.sessionDetails) && + Objects.equals(this.applicationId, couponRejections.applicationId) && + Objects.equals(this.language, couponRejections.language); + } + + @Override + public int hashCode() { + return Objects.hash(sessionDetails, applicationId, language); + } + + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CouponRejections {\n"); + sb.append(" sessionDetails: ").append(toIndentedString(sessionDetails)).append("\n"); + sb.append(" applicationId: ").append(toIndentedString(applicationId)).append("\n"); + sb.append(" language: ").append(toIndentedString(language)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + +} + diff --git a/src/main/java/one/talon/model/CouponsNotificationData.java b/src/main/java/one/talon/model/CouponsNotificationData.java index a8489747..66c4f4f0 100644 --- a/src/main/java/one/talon/model/CouponsNotificationData.java +++ b/src/main/java/one/talon/model/CouponsNotificationData.java @@ -52,9 +52,56 @@ public class CouponsNotificationData { @SerializedName(SERIALIZED_NAME_TOTAL_RESULT_SIZE) private Long totalResultSize; + /** + * The type of the notification + */ + @JsonAdapter(NotificationTypeEnum.Adapter.class) + public enum NotificationTypeEnum { + COUPONUPDATED("CouponUpdated"), + + COUPONDELETED("CouponDeleted"); + + private String value; + + NotificationTypeEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static NotificationTypeEnum fromValue(String value) { + for (NotificationTypeEnum b : NotificationTypeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final NotificationTypeEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public NotificationTypeEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return NotificationTypeEnum.fromValue(value); + } + } + } + public static final String SERIALIZED_NAME_NOTIFICATION_TYPE = "NotificationType"; @SerializedName(SERIALIZED_NAME_NOTIFICATION_TYPE) - private String notificationType; + private NotificationTypeEnum notificationType; public CouponsNotificationData typeOfChange(String typeOfChange) { @@ -177,7 +224,7 @@ public void setTotalResultSize(Long totalResultSize) { } - public CouponsNotificationData notificationType(String notificationType) { + public CouponsNotificationData notificationType(NotificationTypeEnum notificationType) { this.notificationType = notificationType; return this; @@ -189,12 +236,12 @@ public CouponsNotificationData notificationType(String notificationType) { **/ @ApiModelProperty(example = "CouponUpdated", required = true, value = "The type of the notification") - public String getNotificationType() { + public NotificationTypeEnum getNotificationType() { return notificationType; } - public void setNotificationType(String notificationType) { + public void setNotificationType(NotificationTypeEnum notificationType) { this.notificationType = notificationType; } diff --git a/src/main/java/one/talon/model/CreateCouponData.java b/src/main/java/one/talon/model/CreateCouponData.java index 8f1f6c17..f3a60fc2 100644 --- a/src/main/java/one/talon/model/CreateCouponData.java +++ b/src/main/java/one/talon/model/CreateCouponData.java @@ -56,9 +56,54 @@ public class CreateCouponData { @SerializedName(SERIALIZED_NAME_EMPLOYEE_NAME) private String employeeName; + /** + * The type of the not + */ + @JsonAdapter(NotificationTypeEnum.Adapter.class) + public enum NotificationTypeEnum { + COUPONCREATED("CouponCreated"); + + private String value; + + NotificationTypeEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static NotificationTypeEnum fromValue(String value) { + for (NotificationTypeEnum b : NotificationTypeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final NotificationTypeEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public NotificationTypeEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return NotificationTypeEnum.fromValue(value); + } + } + } + public static final String SERIALIZED_NAME_NOTIFICATION_TYPE = "NotificationType"; @SerializedName(SERIALIZED_NAME_NOTIFICATION_TYPE) - private String notificationType; + private NotificationTypeEnum notificationType; public CreateCouponData data(List data) { @@ -204,7 +249,7 @@ public void setEmployeeName(String employeeName) { } - public CreateCouponData notificationType(String notificationType) { + public CreateCouponData notificationType(NotificationTypeEnum notificationType) { this.notificationType = notificationType; return this; @@ -216,12 +261,12 @@ public CreateCouponData notificationType(String notificationType) { **/ @ApiModelProperty(required = true, value = "The type of the not") - public String getNotificationType() { + public NotificationTypeEnum getNotificationType() { return notificationType; } - public void setNotificationType(String notificationType) { + public void setNotificationType(NotificationTypeEnum notificationType) { this.notificationType = notificationType; } diff --git a/src/main/java/one/talon/model/DeleteCouponsData.java b/src/main/java/one/talon/model/DeleteCouponsData.java index bf7ca133..2cbeb240 100644 --- a/src/main/java/one/talon/model/DeleteCouponsData.java +++ b/src/main/java/one/talon/model/DeleteCouponsData.java @@ -57,9 +57,54 @@ public class DeleteCouponsData { @SerializedName(SERIALIZED_NAME_TOTAL_RESULT_SIZE) private Long totalResultSize; + /** + * The type of the notification + */ + @JsonAdapter(NotificationTypeEnum.Adapter.class) + public enum NotificationTypeEnum { + COUPONSDELETED("CouponsDeleted"); + + private String value; + + NotificationTypeEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static NotificationTypeEnum fromValue(String value) { + for (NotificationTypeEnum b : NotificationTypeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final NotificationTypeEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public NotificationTypeEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return NotificationTypeEnum.fromValue(value); + } + } + } + public static final String SERIALIZED_NAME_NOTIFICATION_TYPE = "NotificationType"; @SerializedName(SERIALIZED_NAME_NOTIFICATION_TYPE) - private String notificationType; + private NotificationTypeEnum notificationType; public DeleteCouponsData typeOfChange(String typeOfChange) { @@ -216,7 +261,7 @@ public void setTotalResultSize(Long totalResultSize) { } - public DeleteCouponsData notificationType(String notificationType) { + public DeleteCouponsData notificationType(NotificationTypeEnum notificationType) { this.notificationType = notificationType; return this; @@ -228,12 +273,12 @@ public DeleteCouponsData notificationType(String notificationType) { **/ @ApiModelProperty(required = true, value = "The type of the notification") - public String getNotificationType() { + public NotificationTypeEnum getNotificationType() { return notificationType; } - public void setNotificationType(String notificationType) { + public void setNotificationType(NotificationTypeEnum notificationType) { this.notificationType = notificationType; } diff --git a/src/main/java/one/talon/model/DeleteLoyaltyTransactionsRequest.java b/src/main/java/one/talon/model/DeleteLoyaltyTransactionsRequest.java new file mode 100644 index 00000000..2e257552 --- /dev/null +++ b/src/main/java/one/talon/model/DeleteLoyaltyTransactionsRequest.java @@ -0,0 +1,185 @@ +/* + * Talon.One API + * 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}` + * + * The version of the OpenAPI document: + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package one.talon.model; + +import java.util.Objects; +import java.util.Arrays; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; + +/** + * Request to delete transactions based on the specified scope. + */ +@ApiModel(description = "Request to delete transactions based on the specified scope.") + +public class DeleteLoyaltyTransactionsRequest { + /** + * `AllSubledgers` deletes all transactions for the specified customer profile from all ledgers in the loyalty program. `SelectedSubledgers` deletes all transactions for the specified customer profile only from the given ledgers in the loyalty program. + */ + @JsonAdapter(ScopeEnum.Adapter.class) + public enum ScopeEnum { + ALLSUBLEDGERS("AllSubledgers"), + + SELECTEDSUBLEDGERS("SelectedSubledgers"); + + private String value; + + ScopeEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static ScopeEnum fromValue(String value) { + for (ScopeEnum b : ScopeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final ScopeEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public ScopeEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return ScopeEnum.fromValue(value); + } + } + } + + public static final String SERIALIZED_NAME_SCOPE = "scope"; + @SerializedName(SERIALIZED_NAME_SCOPE) + private ScopeEnum scope; + + public static final String SERIALIZED_NAME_SUBLEDGER_IDS = "subledgerIds"; + @SerializedName(SERIALIZED_NAME_SUBLEDGER_IDS) + private List subledgerIds = null; + + + public DeleteLoyaltyTransactionsRequest scope(ScopeEnum scope) { + + this.scope = scope; + return this; + } + + /** + * `AllSubledgers` deletes all transactions for the specified customer profile from all ledgers in the loyalty program. `SelectedSubledgers` deletes all transactions for the specified customer profile only from the given ledgers in the loyalty program. + * @return scope + **/ + @ApiModelProperty(example = "SelectedSubledgers", required = true, value = "`AllSubledgers` deletes all transactions for the specified customer profile from all ledgers in the loyalty program. `SelectedSubledgers` deletes all transactions for the specified customer profile only from the given ledgers in the loyalty program. ") + + public ScopeEnum getScope() { + return scope; + } + + + public void setScope(ScopeEnum scope) { + this.scope = scope; + } + + + public DeleteLoyaltyTransactionsRequest subledgerIds(List subledgerIds) { + + this.subledgerIds = subledgerIds; + return this; + } + + public DeleteLoyaltyTransactionsRequest addSubledgerIdsItem(String subledgerIdsItem) { + if (this.subledgerIds == null) { + this.subledgerIds = new ArrayList(); + } + this.subledgerIds.add(subledgerIdsItem); + return this; + } + + /** + * The IDs of the ledgers from which to delete the customer's transactions. This parameter is required if the `scope` is set to `SelectedSubledgers`. To specify the main ledger, provide an empty string (\"\"). + * @return subledgerIds + **/ + @javax.annotation.Nullable + @ApiModelProperty(example = "[subledger1, subledger2]", value = "The IDs of the ledgers from which to delete the customer's transactions. This parameter is required if the `scope` is set to `SelectedSubledgers`. To specify the main ledger, provide an empty string (\"\"). ") + + public List getSubledgerIds() { + return subledgerIds; + } + + + public void setSubledgerIds(List subledgerIds) { + this.subledgerIds = subledgerIds; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + DeleteLoyaltyTransactionsRequest deleteLoyaltyTransactionsRequest = (DeleteLoyaltyTransactionsRequest) o; + return Objects.equals(this.scope, deleteLoyaltyTransactionsRequest.scope) && + Objects.equals(this.subledgerIds, deleteLoyaltyTransactionsRequest.subledgerIds); + } + + @Override + public int hashCode() { + return Objects.hash(scope, subledgerIds); + } + + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class DeleteLoyaltyTransactionsRequest {\n"); + sb.append(" scope: ").append(toIndentedString(scope)).append("\n"); + sb.append(" subledgerIds: ").append(toIndentedString(subledgerIds)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + +} + diff --git a/src/main/java/one/talon/model/EventV3.java b/src/main/java/one/talon/model/EventV3.java new file mode 100644 index 00000000..062330e9 --- /dev/null +++ b/src/main/java/one/talon/model/EventV3.java @@ -0,0 +1,309 @@ +/* + * Talon.One API + * 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}` + * + * The version of the OpenAPI document: + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package one.talon.model; + +import java.util.Objects; +import java.util.Arrays; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; + +/** + * EventV3 + */ + +public class EventV3 { + public static final String SERIALIZED_NAME_PROFILE_ID = "profileId"; + @SerializedName(SERIALIZED_NAME_PROFILE_ID) + private String profileId; + + public static final String SERIALIZED_NAME_STORE_INTEGRATION_ID = "storeIntegrationId"; + @SerializedName(SERIALIZED_NAME_STORE_INTEGRATION_ID) + private String storeIntegrationId; + + public static final String SERIALIZED_NAME_EVALUABLE_CAMPAIGN_IDS = "evaluableCampaignIds"; + @SerializedName(SERIALIZED_NAME_EVALUABLE_CAMPAIGN_IDS) + private List evaluableCampaignIds = null; + + public static final String SERIALIZED_NAME_INTEGRATION_ID = "integrationId"; + @SerializedName(SERIALIZED_NAME_INTEGRATION_ID) + private String integrationId; + + public static final String SERIALIZED_NAME_TYPE = "type"; + @SerializedName(SERIALIZED_NAME_TYPE) + private String type; + + public static final String SERIALIZED_NAME_ATTRIBUTES = "attributes"; + @SerializedName(SERIALIZED_NAME_ATTRIBUTES) + private Object attributes; + + public static final String SERIALIZED_NAME_CONNECTED_SESSION_I_D = "connectedSessionID"; + @SerializedName(SERIALIZED_NAME_CONNECTED_SESSION_I_D) + private String connectedSessionID; + + public static final String SERIALIZED_NAME_PREVIOUS_EVENT_I_D = "previousEventID"; + @SerializedName(SERIALIZED_NAME_PREVIOUS_EVENT_I_D) + private String previousEventID; + + + public EventV3 profileId(String profileId) { + + this.profileId = profileId; + return this; + } + + /** + * ID of the customer profile set by your integration layer. **Note:** If the customer does not yet have a known `profileId`, we recommend you use a guest `profileId`. + * @return profileId + **/ + @ApiModelProperty(example = "URNGV8294NV", required = true, value = "ID of the customer profile set by your integration layer. **Note:** If the customer does not yet have a known `profileId`, we recommend you use a guest `profileId`. ") + + public String getProfileId() { + return profileId; + } + + + public void setProfileId(String profileId) { + this.profileId = profileId; + } + + + public EventV3 storeIntegrationId(String storeIntegrationId) { + + this.storeIntegrationId = storeIntegrationId; + return this; + } + + /** + * The integration ID of the store. You choose this ID when you create a store. + * @return storeIntegrationId + **/ + @javax.annotation.Nullable + @ApiModelProperty(example = "STORE-001", value = "The integration ID of the store. You choose this ID when you create a store.") + + public String getStoreIntegrationId() { + return storeIntegrationId; + } + + + public void setStoreIntegrationId(String storeIntegrationId) { + this.storeIntegrationId = storeIntegrationId; + } + + + public EventV3 evaluableCampaignIds(List evaluableCampaignIds) { + + this.evaluableCampaignIds = evaluableCampaignIds; + return this; + } + + public EventV3 addEvaluableCampaignIdsItem(Long evaluableCampaignIdsItem) { + if (this.evaluableCampaignIds == null) { + this.evaluableCampaignIds = new ArrayList(); + } + this.evaluableCampaignIds.add(evaluableCampaignIdsItem); + return this; + } + + /** + * When using the `dry` query parameter, use this property to list the campaign to be evaluated by the Rule Engine. These campaigns will be evaluated, even if they are disabled, allowing you to test specific campaigns before activating them. + * @return evaluableCampaignIds + **/ + @javax.annotation.Nullable + @ApiModelProperty(example = "[10, 12]", value = "When using the `dry` query parameter, use this property to list the campaign to be evaluated by the Rule Engine. These campaigns will be evaluated, even if they are disabled, allowing you to test specific campaigns before activating them. ") + + public List getEvaluableCampaignIds() { + return evaluableCampaignIds; + } + + + public void setEvaluableCampaignIds(List evaluableCampaignIds) { + this.evaluableCampaignIds = evaluableCampaignIds; + } + + + public EventV3 integrationId(String integrationId) { + + this.integrationId = integrationId; + return this; + } + + /** + * The unique ID of the current event. Only one event with this ID could be activated, duplicated events are forbidden. + * @return integrationId + **/ + @ApiModelProperty(example = "175KJPS947296", required = true, value = "The unique ID of the current event. Only one event with this ID could be activated, duplicated events are forbidden. ") + + public String getIntegrationId() { + return integrationId; + } + + + public void setIntegrationId(String integrationId) { + this.integrationId = integrationId; + } + + + public EventV3 type(String type) { + + this.type = type; + return this; + } + + /** + * A string representing the event name. Must not be a reserved event name. You create this value when you [create an attribute](https://docs.talon.one/docs/dev/concepts/entities/events#creating-a-custom-event) of type `event` in the Campaign Manager. + * @return type + **/ + @ApiModelProperty(example = "pageViewed", required = true, value = "A string representing the event name. Must not be a reserved event name. You create this value when you [create an attribute](https://docs.talon.one/docs/dev/concepts/entities/events#creating-a-custom-event) of type `event` in the Campaign Manager. ") + + public String getType() { + return type; + } + + + public void setType(String type) { + this.type = type; + } + + + public EventV3 attributes(Object attributes) { + + this.attributes = attributes; + return this; + } + + /** + * Arbitrary additional JSON properties associated with the event. They must be created in the Campaign Manager before setting them with this property. See [creating custom attributes](https://docs.talon.one/docs/product/account/dev-tools/managing-attributes#creating-a-custom-attribute). + * @return attributes + **/ + @javax.annotation.Nullable + @ApiModelProperty(example = "{\"myAttribute\":\"myValue\"}", value = "Arbitrary additional JSON properties associated with the event. They must be created in the Campaign Manager before setting them with this property. See [creating custom attributes](https://docs.talon.one/docs/product/account/dev-tools/managing-attributes#creating-a-custom-attribute).") + + public Object getAttributes() { + return attributes; + } + + + public void setAttributes(Object attributes) { + this.attributes = attributes; + } + + + public EventV3 connectedSessionID(String connectedSessionID) { + + this.connectedSessionID = connectedSessionID; + return this; + } + + /** + * The ID of the session that happened in the past. + * @return connectedSessionID + **/ + @javax.annotation.Nullable + @ApiModelProperty(example = "175KJPS947296", value = "The ID of the session that happened in the past.") + + public String getConnectedSessionID() { + return connectedSessionID; + } + + + public void setConnectedSessionID(String connectedSessionID) { + this.connectedSessionID = connectedSessionID; + } + + + public EventV3 previousEventID(String previousEventID) { + + this.previousEventID = previousEventID; + return this; + } + + /** + * The unique identifier of the event that happened in the past. + * @return previousEventID + **/ + @javax.annotation.Nullable + @ApiModelProperty(example = "175KJPS947296", value = "The unique identifier of the event that happened in the past.") + + public String getPreviousEventID() { + return previousEventID; + } + + + public void setPreviousEventID(String previousEventID) { + this.previousEventID = previousEventID; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + EventV3 eventV3 = (EventV3) o; + return Objects.equals(this.profileId, eventV3.profileId) && + Objects.equals(this.storeIntegrationId, eventV3.storeIntegrationId) && + Objects.equals(this.evaluableCampaignIds, eventV3.evaluableCampaignIds) && + Objects.equals(this.integrationId, eventV3.integrationId) && + Objects.equals(this.type, eventV3.type) && + Objects.equals(this.attributes, eventV3.attributes) && + Objects.equals(this.connectedSessionID, eventV3.connectedSessionID) && + Objects.equals(this.previousEventID, eventV3.previousEventID); + } + + @Override + public int hashCode() { + return Objects.hash(profileId, storeIntegrationId, evaluableCampaignIds, integrationId, type, attributes, connectedSessionID, previousEventID); + } + + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class EventV3 {\n"); + sb.append(" profileId: ").append(toIndentedString(profileId)).append("\n"); + sb.append(" storeIntegrationId: ").append(toIndentedString(storeIntegrationId)).append("\n"); + sb.append(" evaluableCampaignIds: ").append(toIndentedString(evaluableCampaignIds)).append("\n"); + sb.append(" integrationId: ").append(toIndentedString(integrationId)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" attributes: ").append(toIndentedString(attributes)).append("\n"); + sb.append(" connectedSessionID: ").append(toIndentedString(connectedSessionID)).append("\n"); + sb.append(" previousEventID: ").append(toIndentedString(previousEventID)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + +} + diff --git a/src/main/java/one/talon/model/GenerateCampaignSummary.java b/src/main/java/one/talon/model/GenerateCampaignSummary.java new file mode 100644 index 00000000..b5c7a8a9 --- /dev/null +++ b/src/main/java/one/talon/model/GenerateCampaignSummary.java @@ -0,0 +1,154 @@ +/* + * Talon.One API + * 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}` + * + * The version of the OpenAPI document: + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package one.talon.model; + +import java.util.Objects; +import java.util.Arrays; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.io.IOException; + +/** + * GenerateCampaignSummary + */ + +public class GenerateCampaignSummary { + public static final String SERIALIZED_NAME_CAMPAIGN_I_D = "campaignID"; + @SerializedName(SERIALIZED_NAME_CAMPAIGN_I_D) + private Long campaignID; + + public static final String SERIALIZED_NAME_RULESET_I_D = "rulesetID"; + @SerializedName(SERIALIZED_NAME_RULESET_I_D) + private Long rulesetID; + + public static final String SERIALIZED_NAME_CURRENCY = "currency"; + @SerializedName(SERIALIZED_NAME_CURRENCY) + private String currency; + + + public GenerateCampaignSummary campaignID(Long campaignID) { + + this.campaignID = campaignID; + return this; + } + + /** + * ID of a campaign. + * @return campaignID + **/ + @ApiModelProperty(required = true, value = "ID of a campaign.") + + public Long getCampaignID() { + return campaignID; + } + + + public void setCampaignID(Long campaignID) { + this.campaignID = campaignID; + } + + + public GenerateCampaignSummary rulesetID(Long rulesetID) { + + this.rulesetID = rulesetID; + return this; + } + + /** + * ID of a ruleset. + * @return rulesetID + **/ + @ApiModelProperty(required = true, value = "ID of a ruleset.") + + public Long getRulesetID() { + return rulesetID; + } + + + public void setRulesetID(Long rulesetID) { + this.rulesetID = rulesetID; + } + + + public GenerateCampaignSummary currency(String currency) { + + this.currency = currency; + return this; + } + + /** + * Currency for the campaign. + * @return currency + **/ + @ApiModelProperty(required = true, value = "Currency for the campaign.") + + public String getCurrency() { + return currency; + } + + + public void setCurrency(String currency) { + this.currency = currency; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + GenerateCampaignSummary generateCampaignSummary = (GenerateCampaignSummary) o; + return Objects.equals(this.campaignID, generateCampaignSummary.campaignID) && + Objects.equals(this.rulesetID, generateCampaignSummary.rulesetID) && + Objects.equals(this.currency, generateCampaignSummary.currency); + } + + @Override + public int hashCode() { + return Objects.hash(campaignID, rulesetID, currency); + } + + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class GenerateCampaignSummary {\n"); + sb.append(" campaignID: ").append(toIndentedString(campaignID)).append("\n"); + sb.append(" rulesetID: ").append(toIndentedString(rulesetID)).append("\n"); + sb.append(" currency: ").append(toIndentedString(currency)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + +} + diff --git a/src/main/java/one/talon/model/IntegrationEventV3Request.java b/src/main/java/one/talon/model/IntegrationEventV3Request.java new file mode 100644 index 00000000..76b27769 --- /dev/null +++ b/src/main/java/one/talon/model/IntegrationEventV3Request.java @@ -0,0 +1,438 @@ +/* + * Talon.One API + * 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}` + * + * The version of the OpenAPI document: + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package one.talon.model; + +import java.util.Objects; +import java.util.Arrays; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; + +/** + * IntegrationEventV3Request + */ + +public class IntegrationEventV3Request { + public static final String SERIALIZED_NAME_PROFILE_ID = "profileId"; + @SerializedName(SERIALIZED_NAME_PROFILE_ID) + private String profileId; + + public static final String SERIALIZED_NAME_STORE_INTEGRATION_ID = "storeIntegrationId"; + @SerializedName(SERIALIZED_NAME_STORE_INTEGRATION_ID) + private String storeIntegrationId; + + public static final String SERIALIZED_NAME_EVALUABLE_CAMPAIGN_IDS = "evaluableCampaignIds"; + @SerializedName(SERIALIZED_NAME_EVALUABLE_CAMPAIGN_IDS) + private List evaluableCampaignIds = null; + + public static final String SERIALIZED_NAME_INTEGRATION_ID = "integrationId"; + @SerializedName(SERIALIZED_NAME_INTEGRATION_ID) + private String integrationId; + + public static final String SERIALIZED_NAME_TYPE = "type"; + @SerializedName(SERIALIZED_NAME_TYPE) + private String type; + + public static final String SERIALIZED_NAME_ATTRIBUTES = "attributes"; + @SerializedName(SERIALIZED_NAME_ATTRIBUTES) + private Object attributes; + + public static final String SERIALIZED_NAME_CONNECTED_SESSION_I_D = "connectedSessionID"; + @SerializedName(SERIALIZED_NAME_CONNECTED_SESSION_I_D) + private String connectedSessionID; + + public static final String SERIALIZED_NAME_PREVIOUS_EVENT_I_D = "previousEventID"; + @SerializedName(SERIALIZED_NAME_PREVIOUS_EVENT_I_D) + private String previousEventID; + + public static final String SERIALIZED_NAME_LOYALTY_CARDS = "loyaltyCards"; + @SerializedName(SERIALIZED_NAME_LOYALTY_CARDS) + private List loyaltyCards = null; + + /** + * Gets or Sets responseContent + */ + @JsonAdapter(ResponseContentEnum.Adapter.class) + public enum ResponseContentEnum { + CUSTOMERPROFILE("customerProfile"), + + TRIGGEREDCAMPAIGNS("triggeredCampaigns"), + + LOYALTY("loyalty"), + + EVENT("event"), + + AWARDEDGIVEAWAYS("awardedGiveaways"), + + RULEFAILUREREASONS("ruleFailureReasons"); + + private String value; + + ResponseContentEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static ResponseContentEnum fromValue(String value) { + for (ResponseContentEnum b : ResponseContentEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final ResponseContentEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public ResponseContentEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return ResponseContentEnum.fromValue(value); + } + } + } + + public static final String SERIALIZED_NAME_RESPONSE_CONTENT = "responseContent"; + @SerializedName(SERIALIZED_NAME_RESPONSE_CONTENT) + private List responseContent = null; + + + public IntegrationEventV3Request profileId(String profileId) { + + this.profileId = profileId; + return this; + } + + /** + * ID of the customer profile set by your integration layer. **Note:** If the customer does not yet have a known `profileId`, we recommend you use a guest `profileId`. + * @return profileId + **/ + @ApiModelProperty(example = "URNGV8294NV", required = true, value = "ID of the customer profile set by your integration layer. **Note:** If the customer does not yet have a known `profileId`, we recommend you use a guest `profileId`. ") + + public String getProfileId() { + return profileId; + } + + + public void setProfileId(String profileId) { + this.profileId = profileId; + } + + + public IntegrationEventV3Request storeIntegrationId(String storeIntegrationId) { + + this.storeIntegrationId = storeIntegrationId; + return this; + } + + /** + * The integration ID of the store. You choose this ID when you create a store. + * @return storeIntegrationId + **/ + @javax.annotation.Nullable + @ApiModelProperty(example = "STORE-001", value = "The integration ID of the store. You choose this ID when you create a store.") + + public String getStoreIntegrationId() { + return storeIntegrationId; + } + + + public void setStoreIntegrationId(String storeIntegrationId) { + this.storeIntegrationId = storeIntegrationId; + } + + + public IntegrationEventV3Request evaluableCampaignIds(List evaluableCampaignIds) { + + this.evaluableCampaignIds = evaluableCampaignIds; + return this; + } + + public IntegrationEventV3Request addEvaluableCampaignIdsItem(Long evaluableCampaignIdsItem) { + if (this.evaluableCampaignIds == null) { + this.evaluableCampaignIds = new ArrayList(); + } + this.evaluableCampaignIds.add(evaluableCampaignIdsItem); + return this; + } + + /** + * When using the `dry` query parameter, use this property to list the campaign to be evaluated by the Rule Engine. These campaigns will be evaluated, even if they are disabled, allowing you to test specific campaigns before activating them. + * @return evaluableCampaignIds + **/ + @javax.annotation.Nullable + @ApiModelProperty(example = "[10, 12]", value = "When using the `dry` query parameter, use this property to list the campaign to be evaluated by the Rule Engine. These campaigns will be evaluated, even if they are disabled, allowing you to test specific campaigns before activating them. ") + + public List getEvaluableCampaignIds() { + return evaluableCampaignIds; + } + + + public void setEvaluableCampaignIds(List evaluableCampaignIds) { + this.evaluableCampaignIds = evaluableCampaignIds; + } + + + public IntegrationEventV3Request integrationId(String integrationId) { + + this.integrationId = integrationId; + return this; + } + + /** + * The unique ID of the current event. Only one event with this ID could be activated, duplicated events are forbidden. + * @return integrationId + **/ + @ApiModelProperty(example = "175KJPS947296", required = true, value = "The unique ID of the current event. Only one event with this ID could be activated, duplicated events are forbidden. ") + + public String getIntegrationId() { + return integrationId; + } + + + public void setIntegrationId(String integrationId) { + this.integrationId = integrationId; + } + + + public IntegrationEventV3Request type(String type) { + + this.type = type; + return this; + } + + /** + * A string representing the event name. Must not be a reserved event name. You create this value when you [create an attribute](https://docs.talon.one/docs/dev/concepts/entities/events#creating-a-custom-event) of type `event` in the Campaign Manager. + * @return type + **/ + @ApiModelProperty(example = "pageViewed", required = true, value = "A string representing the event name. Must not be a reserved event name. You create this value when you [create an attribute](https://docs.talon.one/docs/dev/concepts/entities/events#creating-a-custom-event) of type `event` in the Campaign Manager. ") + + public String getType() { + return type; + } + + + public void setType(String type) { + this.type = type; + } + + + public IntegrationEventV3Request attributes(Object attributes) { + + this.attributes = attributes; + return this; + } + + /** + * Arbitrary additional JSON properties associated with the event. They must be created in the Campaign Manager before setting them with this property. See [creating custom attributes](https://docs.talon.one/docs/product/account/dev-tools/managing-attributes#creating-a-custom-attribute). + * @return attributes + **/ + @javax.annotation.Nullable + @ApiModelProperty(example = "{\"myAttribute\":\"myValue\"}", value = "Arbitrary additional JSON properties associated with the event. They must be created in the Campaign Manager before setting them with this property. See [creating custom attributes](https://docs.talon.one/docs/product/account/dev-tools/managing-attributes#creating-a-custom-attribute).") + + public Object getAttributes() { + return attributes; + } + + + public void setAttributes(Object attributes) { + this.attributes = attributes; + } + + + public IntegrationEventV3Request connectedSessionID(String connectedSessionID) { + + this.connectedSessionID = connectedSessionID; + return this; + } + + /** + * The ID of the session that happened in the past. + * @return connectedSessionID + **/ + @javax.annotation.Nullable + @ApiModelProperty(example = "175KJPS947296", value = "The ID of the session that happened in the past.") + + public String getConnectedSessionID() { + return connectedSessionID; + } + + + public void setConnectedSessionID(String connectedSessionID) { + this.connectedSessionID = connectedSessionID; + } + + + public IntegrationEventV3Request previousEventID(String previousEventID) { + + this.previousEventID = previousEventID; + return this; + } + + /** + * The unique identifier of the event that happened in the past. + * @return previousEventID + **/ + @javax.annotation.Nullable + @ApiModelProperty(example = "175KJPS947296", value = "The unique identifier of the event that happened in the past.") + + public String getPreviousEventID() { + return previousEventID; + } + + + public void setPreviousEventID(String previousEventID) { + this.previousEventID = previousEventID; + } + + + public IntegrationEventV3Request loyaltyCards(List loyaltyCards) { + + this.loyaltyCards = loyaltyCards; + return this; + } + + public IntegrationEventV3Request addLoyaltyCardsItem(String loyaltyCardsItem) { + if (this.loyaltyCards == null) { + this.loyaltyCards = new ArrayList(); + } + this.loyaltyCards.add(loyaltyCardsItem); + return this; + } + + /** + * Identifiers of the loyalty cards used during this event. + * @return loyaltyCards + **/ + @javax.annotation.Nullable + @ApiModelProperty(example = "[loyalty-card-1]", value = "Identifiers of the loyalty cards used during this event.") + + public List getLoyaltyCards() { + return loyaltyCards; + } + + + public void setLoyaltyCards(List loyaltyCards) { + this.loyaltyCards = loyaltyCards; + } + + + public IntegrationEventV3Request responseContent(List responseContent) { + + this.responseContent = responseContent; + return this; + } + + public IntegrationEventV3Request addResponseContentItem(ResponseContentEnum responseContentItem) { + if (this.responseContent == null) { + this.responseContent = new ArrayList(); + } + this.responseContent.add(responseContentItem); + return this; + } + + /** + * Optional list of requested information to be present on the response related to the tracking custom event. + * @return responseContent + **/ + @javax.annotation.Nullable + @ApiModelProperty(example = "[triggeredCampaigns, customerProfile]", value = "Optional list of requested information to be present on the response related to the tracking custom event. ") + + public List getResponseContent() { + return responseContent; + } + + + public void setResponseContent(List responseContent) { + this.responseContent = responseContent; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + IntegrationEventV3Request integrationEventV3Request = (IntegrationEventV3Request) o; + return Objects.equals(this.profileId, integrationEventV3Request.profileId) && + Objects.equals(this.storeIntegrationId, integrationEventV3Request.storeIntegrationId) && + Objects.equals(this.evaluableCampaignIds, integrationEventV3Request.evaluableCampaignIds) && + Objects.equals(this.integrationId, integrationEventV3Request.integrationId) && + Objects.equals(this.type, integrationEventV3Request.type) && + Objects.equals(this.attributes, integrationEventV3Request.attributes) && + Objects.equals(this.connectedSessionID, integrationEventV3Request.connectedSessionID) && + Objects.equals(this.previousEventID, integrationEventV3Request.previousEventID) && + Objects.equals(this.loyaltyCards, integrationEventV3Request.loyaltyCards) && + Objects.equals(this.responseContent, integrationEventV3Request.responseContent); + } + + @Override + public int hashCode() { + return Objects.hash(profileId, storeIntegrationId, evaluableCampaignIds, integrationId, type, attributes, connectedSessionID, previousEventID, loyaltyCards, responseContent); + } + + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class IntegrationEventV3Request {\n"); + sb.append(" profileId: ").append(toIndentedString(profileId)).append("\n"); + sb.append(" storeIntegrationId: ").append(toIndentedString(storeIntegrationId)).append("\n"); + sb.append(" evaluableCampaignIds: ").append(toIndentedString(evaluableCampaignIds)).append("\n"); + sb.append(" integrationId: ").append(toIndentedString(integrationId)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" attributes: ").append(toIndentedString(attributes)).append("\n"); + sb.append(" connectedSessionID: ").append(toIndentedString(connectedSessionID)).append("\n"); + sb.append(" previousEventID: ").append(toIndentedString(previousEventID)).append("\n"); + sb.append(" loyaltyCards: ").append(toIndentedString(loyaltyCards)).append("\n"); + sb.append(" responseContent: ").append(toIndentedString(responseContent)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + +} + diff --git a/src/main/java/one/talon/model/IntegrationEventV3Response.java b/src/main/java/one/talon/model/IntegrationEventV3Response.java new file mode 100644 index 00000000..1e40ab69 --- /dev/null +++ b/src/main/java/one/talon/model/IntegrationEventV3Response.java @@ -0,0 +1,379 @@ +/* + * Talon.One API + * 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}` + * + * The version of the OpenAPI document: + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package one.talon.model; + +import java.util.Objects; +import java.util.Arrays; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import one.talon.model.Campaign; +import one.talon.model.Coupon; +import one.talon.model.CustomerProfile; +import one.talon.model.Effect; +import one.talon.model.EventV3; +import one.talon.model.Giveaway; +import one.talon.model.Loyalty; +import one.talon.model.Referral; +import one.talon.model.RuleFailureReason; + +/** + * This is the response type returned by the trackEventV3 endpoint. + */ +@ApiModel(description = "This is the response type returned by the trackEventV3 endpoint. ") + +public class IntegrationEventV3Response { + public static final String SERIALIZED_NAME_CUSTOMER_PROFILE = "customerProfile"; + @SerializedName(SERIALIZED_NAME_CUSTOMER_PROFILE) + private CustomerProfile customerProfile; + + public static final String SERIALIZED_NAME_EVENT = "event"; + @SerializedName(SERIALIZED_NAME_EVENT) + private EventV3 event; + + public static final String SERIALIZED_NAME_LOYALTY = "loyalty"; + @SerializedName(SERIALIZED_NAME_LOYALTY) + private Loyalty loyalty; + + public static final String SERIALIZED_NAME_TRIGGERED_CAMPAIGNS = "triggeredCampaigns"; + @SerializedName(SERIALIZED_NAME_TRIGGERED_CAMPAIGNS) + private List triggeredCampaigns = null; + + public static final String SERIALIZED_NAME_RULE_FAILURE_REASONS = "ruleFailureReasons"; + @SerializedName(SERIALIZED_NAME_RULE_FAILURE_REASONS) + private List ruleFailureReasons = null; + + public static final String SERIALIZED_NAME_AWARDED_GIVEAWAYS = "awardedGiveaways"; + @SerializedName(SERIALIZED_NAME_AWARDED_GIVEAWAYS) + private List awardedGiveaways = null; + + public static final String SERIALIZED_NAME_EFFECTS = "effects"; + @SerializedName(SERIALIZED_NAME_EFFECTS) + private List effects = new ArrayList(); + + public static final String SERIALIZED_NAME_CREATED_COUPONS = "createdCoupons"; + @SerializedName(SERIALIZED_NAME_CREATED_COUPONS) + private List createdCoupons = new ArrayList(); + + public static final String SERIALIZED_NAME_CREATED_REFERRALS = "createdReferrals"; + @SerializedName(SERIALIZED_NAME_CREATED_REFERRALS) + private List createdReferrals = new ArrayList(); + + + public IntegrationEventV3Response customerProfile(CustomerProfile customerProfile) { + + this.customerProfile = customerProfile; + return this; + } + + /** + * Get customerProfile + * @return customerProfile + **/ + @javax.annotation.Nullable + @ApiModelProperty(value = "") + + public CustomerProfile getCustomerProfile() { + return customerProfile; + } + + + public void setCustomerProfile(CustomerProfile customerProfile) { + this.customerProfile = customerProfile; + } + + + public IntegrationEventV3Response event(EventV3 event) { + + this.event = event; + return this; + } + + /** + * Get event + * @return event + **/ + @javax.annotation.Nullable + @ApiModelProperty(value = "") + + public EventV3 getEvent() { + return event; + } + + + public void setEvent(EventV3 event) { + this.event = event; + } + + + public IntegrationEventV3Response loyalty(Loyalty loyalty) { + + this.loyalty = loyalty; + return this; + } + + /** + * Get loyalty + * @return loyalty + **/ + @javax.annotation.Nullable + @ApiModelProperty(value = "") + + public Loyalty getLoyalty() { + return loyalty; + } + + + public void setLoyalty(Loyalty loyalty) { + this.loyalty = loyalty; + } + + + public IntegrationEventV3Response triggeredCampaigns(List triggeredCampaigns) { + + this.triggeredCampaigns = triggeredCampaigns; + return this; + } + + public IntegrationEventV3Response addTriggeredCampaignsItem(Campaign triggeredCampaignsItem) { + if (this.triggeredCampaigns == null) { + this.triggeredCampaigns = new ArrayList(); + } + this.triggeredCampaigns.add(triggeredCampaignsItem); + return this; + } + + /** + * Get triggeredCampaigns + * @return triggeredCampaigns + **/ + @javax.annotation.Nullable + @ApiModelProperty(value = "") + + public List getTriggeredCampaigns() { + return triggeredCampaigns; + } + + + public void setTriggeredCampaigns(List triggeredCampaigns) { + this.triggeredCampaigns = triggeredCampaigns; + } + + + public IntegrationEventV3Response ruleFailureReasons(List ruleFailureReasons) { + + this.ruleFailureReasons = ruleFailureReasons; + return this; + } + + public IntegrationEventV3Response addRuleFailureReasonsItem(RuleFailureReason ruleFailureReasonsItem) { + if (this.ruleFailureReasons == null) { + this.ruleFailureReasons = new ArrayList(); + } + this.ruleFailureReasons.add(ruleFailureReasonsItem); + return this; + } + + /** + * Get ruleFailureReasons + * @return ruleFailureReasons + **/ + @javax.annotation.Nullable + @ApiModelProperty(value = "") + + public List getRuleFailureReasons() { + return ruleFailureReasons; + } + + + public void setRuleFailureReasons(List ruleFailureReasons) { + this.ruleFailureReasons = ruleFailureReasons; + } + + + public IntegrationEventV3Response awardedGiveaways(List awardedGiveaways) { + + this.awardedGiveaways = awardedGiveaways; + return this; + } + + public IntegrationEventV3Response addAwardedGiveawaysItem(Giveaway awardedGiveawaysItem) { + if (this.awardedGiveaways == null) { + this.awardedGiveaways = new ArrayList(); + } + this.awardedGiveaways.add(awardedGiveawaysItem); + return this; + } + + /** + * Get awardedGiveaways + * @return awardedGiveaways + **/ + @javax.annotation.Nullable + @ApiModelProperty(value = "") + + public List getAwardedGiveaways() { + return awardedGiveaways; + } + + + public void setAwardedGiveaways(List awardedGiveaways) { + this.awardedGiveaways = awardedGiveaways; + } + + + public IntegrationEventV3Response effects(List effects) { + + this.effects = effects; + return this; + } + + public IntegrationEventV3Response addEffectsItem(Effect effectsItem) { + this.effects.add(effectsItem); + return this; + } + + /** + * The effects generated by the rules in your running campaigns. See [API effects](https://docs.talon.one/docs/dev/integration-api/api-effects). + * @return effects + **/ + @ApiModelProperty(required = true, value = "The effects generated by the rules in your running campaigns. See [API effects](https://docs.talon.one/docs/dev/integration-api/api-effects).") + + public List getEffects() { + return effects; + } + + + public void setEffects(List effects) { + this.effects = effects; + } + + + public IntegrationEventV3Response createdCoupons(List createdCoupons) { + + this.createdCoupons = createdCoupons; + return this; + } + + public IntegrationEventV3Response addCreatedCouponsItem(Coupon createdCouponsItem) { + this.createdCoupons.add(createdCouponsItem); + return this; + } + + /** + * Get createdCoupons + * @return createdCoupons + **/ + @ApiModelProperty(required = true, value = "") + + public List getCreatedCoupons() { + return createdCoupons; + } + + + public void setCreatedCoupons(List createdCoupons) { + this.createdCoupons = createdCoupons; + } + + + public IntegrationEventV3Response createdReferrals(List createdReferrals) { + + this.createdReferrals = createdReferrals; + return this; + } + + public IntegrationEventV3Response addCreatedReferralsItem(Referral createdReferralsItem) { + this.createdReferrals.add(createdReferralsItem); + return this; + } + + /** + * Get createdReferrals + * @return createdReferrals + **/ + @ApiModelProperty(required = true, value = "") + + public List getCreatedReferrals() { + return createdReferrals; + } + + + public void setCreatedReferrals(List createdReferrals) { + this.createdReferrals = createdReferrals; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + IntegrationEventV3Response integrationEventV3Response = (IntegrationEventV3Response) o; + return Objects.equals(this.customerProfile, integrationEventV3Response.customerProfile) && + Objects.equals(this.event, integrationEventV3Response.event) && + Objects.equals(this.loyalty, integrationEventV3Response.loyalty) && + Objects.equals(this.triggeredCampaigns, integrationEventV3Response.triggeredCampaigns) && + Objects.equals(this.ruleFailureReasons, integrationEventV3Response.ruleFailureReasons) && + Objects.equals(this.awardedGiveaways, integrationEventV3Response.awardedGiveaways) && + Objects.equals(this.effects, integrationEventV3Response.effects) && + Objects.equals(this.createdCoupons, integrationEventV3Response.createdCoupons) && + Objects.equals(this.createdReferrals, integrationEventV3Response.createdReferrals); + } + + @Override + public int hashCode() { + return Objects.hash(customerProfile, event, loyalty, triggeredCampaigns, ruleFailureReasons, awardedGiveaways, effects, createdCoupons, createdReferrals); + } + + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class IntegrationEventV3Response {\n"); + sb.append(" customerProfile: ").append(toIndentedString(customerProfile)).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append(" loyalty: ").append(toIndentedString(loyalty)).append("\n"); + sb.append(" triggeredCampaigns: ").append(toIndentedString(triggeredCampaigns)).append("\n"); + sb.append(" ruleFailureReasons: ").append(toIndentedString(ruleFailureReasons)).append("\n"); + sb.append(" awardedGiveaways: ").append(toIndentedString(awardedGiveaways)).append("\n"); + sb.append(" effects: ").append(toIndentedString(effects)).append("\n"); + sb.append(" createdCoupons: ").append(toIndentedString(createdCoupons)).append("\n"); + sb.append(" createdReferrals: ").append(toIndentedString(createdReferrals)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + +} + diff --git a/src/main/java/one/talon/model/IntegrationProfileEntityV3.java b/src/main/java/one/talon/model/IntegrationProfileEntityV3.java new file mode 100644 index 00000000..871e86f6 --- /dev/null +++ b/src/main/java/one/talon/model/IntegrationProfileEntityV3.java @@ -0,0 +1,98 @@ +/* + * Talon.One API + * 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}` + * + * The version of the OpenAPI document: + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package one.talon.model; + +import java.util.Objects; +import java.util.Arrays; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.io.IOException; + +/** + * IntegrationProfileEntityV3 + */ + +public class IntegrationProfileEntityV3 { + public static final String SERIALIZED_NAME_PROFILE_ID = "profileId"; + @SerializedName(SERIALIZED_NAME_PROFILE_ID) + private String profileId; + + + public IntegrationProfileEntityV3 profileId(String profileId) { + + this.profileId = profileId; + return this; + } + + /** + * ID of the customer profile set by your integration layer. **Note:** If the customer does not yet have a known `profileId`, we recommend you use a guest `profileId`. + * @return profileId + **/ + @ApiModelProperty(example = "URNGV8294NV", required = true, value = "ID of the customer profile set by your integration layer. **Note:** If the customer does not yet have a known `profileId`, we recommend you use a guest `profileId`. ") + + public String getProfileId() { + return profileId; + } + + + public void setProfileId(String profileId) { + this.profileId = profileId; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + IntegrationProfileEntityV3 integrationProfileEntityV3 = (IntegrationProfileEntityV3) o; + return Objects.equals(this.profileId, integrationProfileEntityV3.profileId); + } + + @Override + public int hashCode() { + return Objects.hash(profileId); + } + + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class IntegrationProfileEntityV3 {\n"); + sb.append(" profileId: ").append(toIndentedString(profileId)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + +} + diff --git a/src/main/java/one/talon/model/LedgerPointsEntryIntegrationAPI.java b/src/main/java/one/talon/model/LedgerPointsEntryIntegrationAPI.java index d90f5187..5d0628f8 100644 --- a/src/main/java/one/talon/model/LedgerPointsEntryIntegrationAPI.java +++ b/src/main/java/one/talon/model/LedgerPointsEntryIntegrationAPI.java @@ -72,6 +72,10 @@ public class LedgerPointsEntryIntegrationAPI { @SerializedName(SERIALIZED_NAME_AMOUNT) private BigDecimal amount; + public static final String SERIALIZED_NAME_VALIDITY_DURATION = "validityDuration"; + @SerializedName(SERIALIZED_NAME_VALIDITY_DURATION) + private String validityDuration; + public LedgerPointsEntryIntegrationAPI id(Long id) { @@ -294,6 +298,29 @@ public void setAmount(BigDecimal amount) { } + public LedgerPointsEntryIntegrationAPI validityDuration(String validityDuration) { + + this.validityDuration = validityDuration; + return this; + } + + /** + * The duration for which the points remain active, relative to the activation date. **Note**: This only applies to points for which `awaitsActivation` is `true` and `expiryDate` is not set. + * @return validityDuration + **/ + @javax.annotation.Nullable + @ApiModelProperty(example = "30D", value = "The duration for which the points remain active, relative to the activation date. **Note**: This only applies to points for which `awaitsActivation` is `true` and `expiryDate` is not set. ") + + public String getValidityDuration() { + return validityDuration; + } + + + public void setValidityDuration(String validityDuration) { + this.validityDuration = validityDuration; + } + + @Override public boolean equals(java.lang.Object o) { if (this == o) { @@ -312,12 +339,13 @@ public boolean equals(java.lang.Object o) { Objects.equals(this.startDate, ledgerPointsEntryIntegrationAPI.startDate) && Objects.equals(this.expiryDate, ledgerPointsEntryIntegrationAPI.expiryDate) && Objects.equals(this.subledgerId, ledgerPointsEntryIntegrationAPI.subledgerId) && - Objects.equals(this.amount, ledgerPointsEntryIntegrationAPI.amount); + Objects.equals(this.amount, ledgerPointsEntryIntegrationAPI.amount) && + Objects.equals(this.validityDuration, ledgerPointsEntryIntegrationAPI.validityDuration); } @Override public int hashCode() { - return Objects.hash(id, transactionUUID, created, programId, customerSessionId, name, startDate, expiryDate, subledgerId, amount); + return Objects.hash(id, transactionUUID, created, programId, customerSessionId, name, startDate, expiryDate, subledgerId, amount, validityDuration); } @@ -335,6 +363,7 @@ public String toString() { sb.append(" expiryDate: ").append(toIndentedString(expiryDate)).append("\n"); sb.append(" subledgerId: ").append(toIndentedString(subledgerId)).append("\n"); sb.append(" amount: ").append(toIndentedString(amount)).append("\n"); + sb.append(" validityDuration: ").append(toIndentedString(validityDuration)).append("\n"); sb.append("}"); return sb.toString(); } diff --git a/src/main/java/one/talon/model/LedgerTransactionLogEntryIntegrationAPI.java b/src/main/java/one/talon/model/LedgerTransactionLogEntryIntegrationAPI.java index b95acaae..de1cb69a 100644 --- a/src/main/java/one/talon/model/LedgerTransactionLogEntryIntegrationAPI.java +++ b/src/main/java/one/talon/model/LedgerTransactionLogEntryIntegrationAPI.java @@ -136,6 +136,10 @@ public TypeEnum read(final JsonReader jsonReader) throws IOException { @SerializedName(SERIALIZED_NAME_FLAGS) private LoyaltyLedgerEntryFlags flags; + public static final String SERIALIZED_NAME_VALIDITY_DURATION = "validityDuration"; + @SerializedName(SERIALIZED_NAME_VALIDITY_DURATION) + private String validityDuration; + public LedgerTransactionLogEntryIntegrationAPI transactionUUID(String transactionUUID) { @@ -277,10 +281,10 @@ public LedgerTransactionLogEntryIntegrationAPI startDate(String startDate) { } /** - * When points become active. Possible values: - `immediate`: Points are immediately active. - a timestamp value: Points become active at a given date and time. + * When points become active. Possible values: - `immediate`: Points are immediately active. - `on_action`: Points become active based on the customer's action. - a timestamp value: Points become active at a given date and time. * @return startDate **/ - @ApiModelProperty(example = "2022-01-02T15:04:05Z07:00", required = true, value = "When points become active. Possible values: - `immediate`: Points are immediately active. - a timestamp value: Points become active at a given date and time. ") + @ApiModelProperty(example = "2022-01-02T15:04:05Z07:00", required = true, value = "When points become active. Possible values: - `immediate`: Points are immediately active. - `on_action`: Points become active based on the customer's action. - a timestamp value: Points become active at a given date and time. ") public String getStartDate() { return startDate; @@ -449,6 +453,29 @@ public void setFlags(LoyaltyLedgerEntryFlags flags) { } + public LedgerTransactionLogEntryIntegrationAPI validityDuration(String validityDuration) { + + this.validityDuration = validityDuration; + return this; + } + + /** + * The duration for which the points remain active, relative to the activation date. **Note**: This only applies to points for which `awaitsActivation` is `true` and `expiryDate` is not set. + * @return validityDuration + **/ + @javax.annotation.Nullable + @ApiModelProperty(example = "30D", value = "The duration for which the points remain active, relative to the activation date. **Note**: This only applies to points for which `awaitsActivation` is `true` and `expiryDate` is not set. ") + + public String getValidityDuration() { + return validityDuration; + } + + + public void setValidityDuration(String validityDuration) { + this.validityDuration = validityDuration; + } + + @Override public boolean equals(java.lang.Object o) { if (this == o) { @@ -471,12 +498,13 @@ public boolean equals(java.lang.Object o) { Objects.equals(this.id, ledgerTransactionLogEntryIntegrationAPI.id) && Objects.equals(this.rulesetId, ledgerTransactionLogEntryIntegrationAPI.rulesetId) && Objects.equals(this.ruleName, ledgerTransactionLogEntryIntegrationAPI.ruleName) && - Objects.equals(this.flags, ledgerTransactionLogEntryIntegrationAPI.flags); + Objects.equals(this.flags, ledgerTransactionLogEntryIntegrationAPI.flags) && + Objects.equals(this.validityDuration, ledgerTransactionLogEntryIntegrationAPI.validityDuration); } @Override public int hashCode() { - return Objects.hash(transactionUUID, created, programId, customerSessionId, type, name, startDate, expiryDate, subledgerId, amount, id, rulesetId, ruleName, flags); + return Objects.hash(transactionUUID, created, programId, customerSessionId, type, name, startDate, expiryDate, subledgerId, amount, id, rulesetId, ruleName, flags, validityDuration); } @@ -498,6 +526,7 @@ public String toString() { sb.append(" rulesetId: ").append(toIndentedString(rulesetId)).append("\n"); sb.append(" ruleName: ").append(toIndentedString(ruleName)).append("\n"); sb.append(" flags: ").append(toIndentedString(flags)).append("\n"); + sb.append(" validityDuration: ").append(toIndentedString(validityDuration)).append("\n"); sb.append("}"); return sb.toString(); } diff --git a/src/main/java/one/talon/model/LoyaltyLedgerEntry.java b/src/main/java/one/talon/model/LoyaltyLedgerEntry.java index 802f9f09..4ecca2b8 100644 --- a/src/main/java/one/talon/model/LoyaltyLedgerEntry.java +++ b/src/main/java/one/talon/model/LoyaltyLedgerEntry.java @@ -93,6 +93,10 @@ public class LoyaltyLedgerEntry { @SerializedName(SERIALIZED_NAME_FLAGS) private LoyaltyLedgerEntryFlags flags; + public static final String SERIALIZED_NAME_VALIDITY_DURATION = "validityDuration"; + @SerializedName(SERIALIZED_NAME_VALIDITY_DURATION) + private String validityDuration; + public LoyaltyLedgerEntry created(OffsetDateTime created) { @@ -433,6 +437,29 @@ public void setFlags(LoyaltyLedgerEntryFlags flags) { } + public LoyaltyLedgerEntry validityDuration(String validityDuration) { + + this.validityDuration = validityDuration; + return this; + } + + /** + * The duration for which the points remain active, relative to the activation date. **Note**: This only applies to points for which `awaitsActivation` is `true` and `expiryDate` is not set. + * @return validityDuration + **/ + @javax.annotation.Nullable + @ApiModelProperty(example = "30D", value = "The duration for which the points remain active, relative to the activation date. **Note**: This only applies to points for which `awaitsActivation` is `true` and `expiryDate` is not set. ") + + public String getValidityDuration() { + return validityDuration; + } + + + public void setValidityDuration(String validityDuration) { + this.validityDuration = validityDuration; + } + + @Override public boolean equals(java.lang.Object o) { if (this == o) { @@ -456,12 +483,13 @@ public boolean equals(java.lang.Object o) { Objects.equals(this.subLedgerID, loyaltyLedgerEntry.subLedgerID) && Objects.equals(this.userID, loyaltyLedgerEntry.userID) && Objects.equals(this.archived, loyaltyLedgerEntry.archived) && - Objects.equals(this.flags, loyaltyLedgerEntry.flags); + Objects.equals(this.flags, loyaltyLedgerEntry.flags) && + Objects.equals(this.validityDuration, loyaltyLedgerEntry.validityDuration); } @Override public int hashCode() { - return Objects.hash(created, programID, customerProfileID, cardID, customerSessionID, eventID, type, amount, startDate, expiryDate, name, subLedgerID, userID, archived, flags); + return Objects.hash(created, programID, customerProfileID, cardID, customerSessionID, eventID, type, amount, startDate, expiryDate, name, subLedgerID, userID, archived, flags, validityDuration); } @@ -484,6 +512,7 @@ public String toString() { sb.append(" userID: ").append(toIndentedString(userID)).append("\n"); sb.append(" archived: ").append(toIndentedString(archived)).append("\n"); sb.append(" flags: ").append(toIndentedString(flags)).append("\n"); + sb.append(" validityDuration: ").append(toIndentedString(validityDuration)).append("\n"); sb.append("}"); return sb.toString(); } diff --git a/src/main/java/one/talon/model/LoyaltyProgram.java b/src/main/java/one/talon/model/LoyaltyProgram.java index 2ed158b9..e5557539 100644 --- a/src/main/java/one/talon/model/LoyaltyProgram.java +++ b/src/main/java/one/talon/model/LoyaltyProgram.java @@ -323,10 +323,6 @@ public ReturnPolicyEnum read(final JsonReader jsonReader) throws IOException { @SerializedName(SERIALIZED_NAME_CAN_UPDATE_TIERS) private Boolean canUpdateTiers = false; - public static final String SERIALIZED_NAME_CAN_UPDATE_JOIN_POLICY = "canUpdateJoinPolicy"; - @SerializedName(SERIALIZED_NAME_CAN_UPDATE_JOIN_POLICY) - private Boolean canUpdateJoinPolicy; - public static final String SERIALIZED_NAME_CAN_UPDATE_TIER_EXPIRATION_POLICY = "canUpdateTierExpirationPolicy"; @SerializedName(SERIALIZED_NAME_CAN_UPDATE_TIER_EXPIRATION_POLICY) private Boolean canUpdateTierExpirationPolicy; @@ -870,29 +866,6 @@ public void setCanUpdateTiers(Boolean canUpdateTiers) { } - public LoyaltyProgram canUpdateJoinPolicy(Boolean canUpdateJoinPolicy) { - - this.canUpdateJoinPolicy = canUpdateJoinPolicy; - return this; - } - - /** - * `True` if the program join policy can be updated. - * @return canUpdateJoinPolicy - **/ - @javax.annotation.Nullable - @ApiModelProperty(example = "true", value = "`True` if the program join policy can be updated. ") - - public Boolean getCanUpdateJoinPolicy() { - return canUpdateJoinPolicy; - } - - - public void setCanUpdateJoinPolicy(Boolean canUpdateJoinPolicy) { - this.canUpdateJoinPolicy = canUpdateJoinPolicy; - } - - public LoyaltyProgram canUpdateTierExpirationPolicy(Boolean canUpdateTierExpirationPolicy) { this.canUpdateTierExpirationPolicy = canUpdateTierExpirationPolicy; @@ -994,7 +967,6 @@ public boolean equals(java.lang.Object o) { Objects.equals(this.timezone, loyaltyProgram.timezone) && Objects.equals(this.cardBased, loyaltyProgram.cardBased) && Objects.equals(this.canUpdateTiers, loyaltyProgram.canUpdateTiers) && - Objects.equals(this.canUpdateJoinPolicy, loyaltyProgram.canUpdateJoinPolicy) && Objects.equals(this.canUpdateTierExpirationPolicy, loyaltyProgram.canUpdateTierExpirationPolicy) && Objects.equals(this.canUpgradeToAdvancedTiers, loyaltyProgram.canUpgradeToAdvancedTiers) && Objects.equals(this.canUpdateSubledgers, loyaltyProgram.canUpdateSubledgers); @@ -1002,7 +974,7 @@ public boolean equals(java.lang.Object o) { @Override public int hashCode() { - return Objects.hash(id, created, title, description, subscribedApplications, defaultValidity, defaultPending, allowSubledger, usersPerCardLimit, sandbox, programJoinPolicy, tiersExpirationPolicy, tierCycleStartDate, tiersExpireIn, tiersDowngradePolicy, cardCodeSettings, returnPolicy, accountID, name, tiers, timezone, cardBased, canUpdateTiers, canUpdateJoinPolicy, canUpdateTierExpirationPolicy, canUpgradeToAdvancedTiers, canUpdateSubledgers); + return Objects.hash(id, created, title, description, subscribedApplications, defaultValidity, defaultPending, allowSubledger, usersPerCardLimit, sandbox, programJoinPolicy, tiersExpirationPolicy, tierCycleStartDate, tiersExpireIn, tiersDowngradePolicy, cardCodeSettings, returnPolicy, accountID, name, tiers, timezone, cardBased, canUpdateTiers, canUpdateTierExpirationPolicy, canUpgradeToAdvancedTiers, canUpdateSubledgers); } @@ -1033,7 +1005,6 @@ public String toString() { sb.append(" timezone: ").append(toIndentedString(timezone)).append("\n"); sb.append(" cardBased: ").append(toIndentedString(cardBased)).append("\n"); sb.append(" canUpdateTiers: ").append(toIndentedString(canUpdateTiers)).append("\n"); - sb.append(" canUpdateJoinPolicy: ").append(toIndentedString(canUpdateJoinPolicy)).append("\n"); sb.append(" canUpdateTierExpirationPolicy: ").append(toIndentedString(canUpdateTierExpirationPolicy)).append("\n"); sb.append(" canUpgradeToAdvancedTiers: ").append(toIndentedString(canUpgradeToAdvancedTiers)).append("\n"); sb.append(" canUpdateSubledgers: ").append(toIndentedString(canUpdateSubledgers)).append("\n"); diff --git a/src/main/java/one/talon/model/LoyaltyProgramTransaction.java b/src/main/java/one/talon/model/LoyaltyProgramTransaction.java index a9c497b5..e7f554cb 100644 --- a/src/main/java/one/talon/model/LoyaltyProgramTransaction.java +++ b/src/main/java/one/talon/model/LoyaltyProgramTransaction.java @@ -159,6 +159,10 @@ public TypeEnum read(final JsonReader jsonReader) throws IOException { @SerializedName(SERIALIZED_NAME_FLAGS) private LoyaltyLedgerEntryFlags flags; + public static final String SERIALIZED_NAME_VALIDITY_DURATION = "validityDuration"; + @SerializedName(SERIALIZED_NAME_VALIDITY_DURATION) + private String validityDuration; + public LoyaltyProgramTransaction id(Long id) { @@ -344,10 +348,10 @@ public LoyaltyProgramTransaction startDate(String startDate) { } /** - * When points become active. Possible values: - `immediate`: Points are immediately active. - a timestamp value: Points become active at a given date and time. + * When points become active. Possible values: - `immediate`: Points are immediately active. - `on_action`: Points become active based on the customer's action. - a timestamp value: Points become active at a given date and time. * @return startDate **/ - @ApiModelProperty(example = "2022-01-02T15:04:05Z07:00", required = true, value = "When points become active. Possible values: - `immediate`: Points are immediately active. - a timestamp value: Points become active at a given date and time. ") + @ApiModelProperty(example = "2022-01-02T15:04:05Z07:00", required = true, value = "When points become active. Possible values: - `immediate`: Points are immediately active. - `on_action`: Points become active based on the customer's action. - a timestamp value: Points become active at a given date and time. ") public String getStartDate() { return startDate; @@ -610,6 +614,29 @@ public void setFlags(LoyaltyLedgerEntryFlags flags) { } + public LoyaltyProgramTransaction validityDuration(String validityDuration) { + + this.validityDuration = validityDuration; + return this; + } + + /** + * The duration for which the points remain active, relative to the activation date. **Note**: This only applies to points for which `awaitsActivation` is `true` and `expiryDate` is not set. + * @return validityDuration + **/ + @javax.annotation.Nullable + @ApiModelProperty(example = "30D", value = "The duration for which the points remain active, relative to the activation date. **Note**: This only applies to points for which `awaitsActivation` is `true` and `expiryDate` is not set. ") + + public String getValidityDuration() { + return validityDuration; + } + + + public void setValidityDuration(String validityDuration) { + this.validityDuration = validityDuration; + } + + @Override public boolean equals(java.lang.Object o) { if (this == o) { @@ -638,12 +665,13 @@ public boolean equals(java.lang.Object o) { Objects.equals(this.userEmail, loyaltyProgramTransaction.userEmail) && Objects.equals(this.rulesetId, loyaltyProgramTransaction.rulesetId) && Objects.equals(this.ruleName, loyaltyProgramTransaction.ruleName) && - Objects.equals(this.flags, loyaltyProgramTransaction.flags); + Objects.equals(this.flags, loyaltyProgramTransaction.flags) && + Objects.equals(this.validityDuration, loyaltyProgramTransaction.validityDuration); } @Override public int hashCode() { - return Objects.hash(id, transactionUUID, programId, campaignId, created, type, amount, name, startDate, expiryDate, customerProfileId, cardIdentifier, subledgerId, customerSessionId, importId, userId, userEmail, rulesetId, ruleName, flags); + return Objects.hash(id, transactionUUID, programId, campaignId, created, type, amount, name, startDate, expiryDate, customerProfileId, cardIdentifier, subledgerId, customerSessionId, importId, userId, userEmail, rulesetId, ruleName, flags, validityDuration); } @@ -671,6 +699,7 @@ public String toString() { sb.append(" rulesetId: ").append(toIndentedString(rulesetId)).append("\n"); sb.append(" ruleName: ").append(toIndentedString(ruleName)).append("\n"); sb.append(" flags: ").append(toIndentedString(flags)).append("\n"); + sb.append(" validityDuration: ").append(toIndentedString(validityDuration)).append("\n"); sb.append("}"); return sb.toString(); } diff --git a/src/main/java/one/talon/model/ManagementKey.java b/src/main/java/one/talon/model/ManagementKey.java index dd155703..f21f7113 100644 --- a/src/main/java/one/talon/model/ManagementKey.java +++ b/src/main/java/one/talon/model/ManagementKey.java @@ -69,6 +69,10 @@ public class ManagementKey { @SerializedName(SERIALIZED_NAME_DISABLED) private Boolean disabled; + public static final String SERIALIZED_NAME_LAST_USED = "lastUsed"; + @SerializedName(SERIALIZED_NAME_LAST_USED) + private OffsetDateTime lastUsed; + public ManagementKey name(String name) { @@ -283,6 +287,29 @@ public void setDisabled(Boolean disabled) { } + public ManagementKey lastUsed(OffsetDateTime lastUsed) { + + this.lastUsed = lastUsed; + return this; + } + + /** + * The last time the management key was used. + * @return lastUsed + **/ + @javax.annotation.Nullable + @ApiModelProperty(example = "2022-03-02T16:46:17.758585Z", value = "The last time the management key was used.") + + public OffsetDateTime getLastUsed() { + return lastUsed; + } + + + public void setLastUsed(OffsetDateTime lastUsed) { + this.lastUsed = lastUsed; + } + + @Override public boolean equals(java.lang.Object o) { if (this == o) { @@ -300,12 +327,13 @@ public boolean equals(java.lang.Object o) { Objects.equals(this.createdBy, managementKey.createdBy) && Objects.equals(this.accountID, managementKey.accountID) && Objects.equals(this.created, managementKey.created) && - Objects.equals(this.disabled, managementKey.disabled); + Objects.equals(this.disabled, managementKey.disabled) && + Objects.equals(this.lastUsed, managementKey.lastUsed); } @Override public int hashCode() { - return Objects.hash(name, expiryDate, endpoints, allowedApplicationIds, id, createdBy, accountID, created, disabled); + return Objects.hash(name, expiryDate, endpoints, allowedApplicationIds, id, createdBy, accountID, created, disabled, lastUsed); } @@ -322,6 +350,7 @@ public String toString() { sb.append(" accountID: ").append(toIndentedString(accountID)).append("\n"); sb.append(" created: ").append(toIndentedString(created)).append("\n"); sb.append(" disabled: ").append(toIndentedString(disabled)).append("\n"); + sb.append(" lastUsed: ").append(toIndentedString(lastUsed)).append("\n"); sb.append("}"); return sb.toString(); } diff --git a/src/main/java/one/talon/model/NewManagementKey.java b/src/main/java/one/talon/model/NewManagementKey.java index 4dec163c..53e9eee9 100644 --- a/src/main/java/one/talon/model/NewManagementKey.java +++ b/src/main/java/one/talon/model/NewManagementKey.java @@ -69,6 +69,10 @@ public class NewManagementKey { @SerializedName(SERIALIZED_NAME_DISABLED) private Boolean disabled; + public static final String SERIALIZED_NAME_LAST_USED = "lastUsed"; + @SerializedName(SERIALIZED_NAME_LAST_USED) + private OffsetDateTime lastUsed; + public static final String SERIALIZED_NAME_KEY = "key"; @SerializedName(SERIALIZED_NAME_KEY) private String key; @@ -287,6 +291,29 @@ public void setDisabled(Boolean disabled) { } + public NewManagementKey lastUsed(OffsetDateTime lastUsed) { + + this.lastUsed = lastUsed; + return this; + } + + /** + * The last time the management key was used. + * @return lastUsed + **/ + @javax.annotation.Nullable + @ApiModelProperty(example = "2022-03-02T16:46:17.758585Z", value = "The last time the management key was used.") + + public OffsetDateTime getLastUsed() { + return lastUsed; + } + + + public void setLastUsed(OffsetDateTime lastUsed) { + this.lastUsed = lastUsed; + } + + public NewManagementKey key(String key) { this.key = key; @@ -327,12 +354,13 @@ public boolean equals(java.lang.Object o) { Objects.equals(this.accountID, newManagementKey.accountID) && Objects.equals(this.created, newManagementKey.created) && Objects.equals(this.disabled, newManagementKey.disabled) && + Objects.equals(this.lastUsed, newManagementKey.lastUsed) && Objects.equals(this.key, newManagementKey.key); } @Override public int hashCode() { - return Objects.hash(name, expiryDate, endpoints, allowedApplicationIds, id, createdBy, accountID, created, disabled, key); + return Objects.hash(name, expiryDate, endpoints, allowedApplicationIds, id, createdBy, accountID, created, disabled, lastUsed, key); } @@ -349,6 +377,7 @@ public String toString() { sb.append(" accountID: ").append(toIndentedString(accountID)).append("\n"); sb.append(" created: ").append(toIndentedString(created)).append("\n"); sb.append(" disabled: ").append(toIndentedString(disabled)).append("\n"); + sb.append(" lastUsed: ").append(toIndentedString(lastUsed)).append("\n"); sb.append(" key: ").append(toIndentedString(key)).append("\n"); sb.append("}"); return sb.toString(); diff --git a/src/main/java/one/talon/model/NewMessageTest.java b/src/main/java/one/talon/model/NewMessageTest.java index 1ddacda2..6b1d3a90 100644 --- a/src/main/java/one/talon/model/NewMessageTest.java +++ b/src/main/java/one/talon/model/NewMessageTest.java @@ -111,6 +111,10 @@ public VerbEnum read(final JsonReader jsonReader) throws IOException { @SerializedName(SERIALIZED_NAME_APPLICATION_IDS) private List applicationIds = null; + public static final String SERIALIZED_NAME_AUTHENTICATION_ID = "authenticationId"; + @SerializedName(SERIALIZED_NAME_AUTHENTICATION_ID) + private Long authenticationId; + public NewMessageTest headers(Map headers) { @@ -272,6 +276,29 @@ public void setApplicationIds(List applicationIds) { } + public NewMessageTest authenticationId(Long authenticationId) { + + this.authenticationId = authenticationId; + return this; + } + + /** + * The ID of the credential that this webhook is using. + * @return authenticationId + **/ + @javax.annotation.Nullable + @ApiModelProperty(example = "1", value = "The ID of the credential that this webhook is using.") + + public Long getAuthenticationId() { + return authenticationId; + } + + + public void setAuthenticationId(Long authenticationId) { + this.authenticationId = authenticationId; + } + + @Override public boolean equals(java.lang.Object o) { if (this == o) { @@ -286,12 +313,13 @@ public boolean equals(java.lang.Object o) { Objects.equals(this.url, newMessageTest.url) && Objects.equals(this.payload, newMessageTest.payload) && Objects.equals(this.params, newMessageTest.params) && - Objects.equals(this.applicationIds, newMessageTest.applicationIds); + Objects.equals(this.applicationIds, newMessageTest.applicationIds) && + Objects.equals(this.authenticationId, newMessageTest.authenticationId); } @Override public int hashCode() { - return Objects.hash(headers, verb, url, payload, params, applicationIds); + return Objects.hash(headers, verb, url, payload, params, applicationIds, authenticationId); } @@ -305,6 +333,7 @@ public String toString() { sb.append(" payload: ").append(toIndentedString(payload)).append("\n"); sb.append(" params: ").append(toIndentedString(params)).append("\n"); sb.append(" applicationIds: ").append(toIndentedString(applicationIds)).append("\n"); + sb.append(" authenticationId: ").append(toIndentedString(authenticationId)).append("\n"); sb.append("}"); return sb.toString(); } diff --git a/src/main/java/one/talon/model/PrismaticConfig.java b/src/main/java/one/talon/model/PrismaticConfig.java new file mode 100644 index 00000000..10eca969 --- /dev/null +++ b/src/main/java/one/talon/model/PrismaticConfig.java @@ -0,0 +1,127 @@ +/* + * Talon.One API + * 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}` + * + * The version of the OpenAPI document: + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package one.talon.model; + +import java.util.Objects; +import java.util.Arrays; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.io.IOException; + +/** + * Config used for accessing integrations in Prismatic + */ +@ApiModel(description = "Config used for accessing integrations in Prismatic") + +public class PrismaticConfig { + public static final String SERIALIZED_NAME_PRISMATIC_URL = "prismaticUrl"; + @SerializedName(SERIALIZED_NAME_PRISMATIC_URL) + private String prismaticUrl; + + public static final String SERIALIZED_NAME_ACCESS_TOKEN = "accessToken"; + @SerializedName(SERIALIZED_NAME_ACCESS_TOKEN) + private String accessToken; + + + public PrismaticConfig prismaticUrl(String prismaticUrl) { + + this.prismaticUrl = prismaticUrl; + return this; + } + + /** + * The url used to integrate the Prismatic Marketplace. + * @return prismaticUrl + **/ + @ApiModelProperty(example = "https://app.eu-west-1.prismatic.io/", required = true, value = "The url used to integrate the Prismatic Marketplace.") + + public String getPrismaticUrl() { + return prismaticUrl; + } + + + public void setPrismaticUrl(String prismaticUrl) { + this.prismaticUrl = prismaticUrl; + } + + + public PrismaticConfig accessToken(String accessToken) { + + this.accessToken = accessToken; + return this; + } + + /** + * Access token used to authenticate a user in Talon.One. + * @return accessToken + **/ + @ApiModelProperty(example = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9", required = true, value = "Access token used to authenticate a user in Talon.One.") + + public String getAccessToken() { + return accessToken; + } + + + public void setAccessToken(String accessToken) { + this.accessToken = accessToken; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + PrismaticConfig prismaticConfig = (PrismaticConfig) o; + return Objects.equals(this.prismaticUrl, prismaticConfig.prismaticUrl) && + Objects.equals(this.accessToken, prismaticConfig.accessToken); + } + + @Override + public int hashCode() { + return Objects.hash(prismaticUrl, accessToken); + } + + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class PrismaticConfig {\n"); + sb.append(" prismaticUrl: ").append(toIndentedString(prismaticUrl)).append("\n"); + sb.append(" accessToken: ").append(toIndentedString(accessToken)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + +} + diff --git a/src/main/java/one/talon/model/PrismaticEventPayloadCouponBasedNotifications.java b/src/main/java/one/talon/model/PrismaticEventPayloadCouponBasedNotifications.java new file mode 100644 index 00000000..fcc09b93 --- /dev/null +++ b/src/main/java/one/talon/model/PrismaticEventPayloadCouponBasedNotifications.java @@ -0,0 +1,654 @@ +/* + * Talon.One API + * 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}` + * + * The version of the OpenAPI document: + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package one.talon.model; + +import java.util.Objects; +import java.util.Arrays; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import one.talon.model.PrismaticEventPayloadCouponBasedNotificationsLimits; +import org.threeten.bp.OffsetDateTime; + +/** + * PrismaticEventPayloadCouponBasedNotifications + */ + +public class PrismaticEventPayloadCouponBasedNotifications { + public static final String SERIALIZED_NAME_ID = "Id"; + @SerializedName(SERIALIZED_NAME_ID) + private Long id; + + public static final String SERIALIZED_NAME_CREATED = "Created"; + @SerializedName(SERIALIZED_NAME_CREATED) + private OffsetDateTime created; + + public static final String SERIALIZED_NAME_CAMPAIGN_ID = "CampaignId"; + @SerializedName(SERIALIZED_NAME_CAMPAIGN_ID) + private Long campaignId; + + public static final String SERIALIZED_NAME_VALUE = "Value"; + @SerializedName(SERIALIZED_NAME_VALUE) + private String value; + + public static final String SERIALIZED_NAME_USAGE_LIMIT = "UsageLimit"; + @SerializedName(SERIALIZED_NAME_USAGE_LIMIT) + private Long usageLimit; + + public static final String SERIALIZED_NAME_DISCOUNT_LIMIT = "DiscountLimit"; + @SerializedName(SERIALIZED_NAME_DISCOUNT_LIMIT) + private Float discountLimit; + + public static final String SERIALIZED_NAME_RESERVATION_LIMIT = "ReservationLimit"; + @SerializedName(SERIALIZED_NAME_RESERVATION_LIMIT) + private Long reservationLimit; + + public static final String SERIALIZED_NAME_START_DATE = "StartDate"; + @SerializedName(SERIALIZED_NAME_START_DATE) + private OffsetDateTime startDate; + + public static final String SERIALIZED_NAME_EXPIRY_DATE = "ExpiryDate"; + @SerializedName(SERIALIZED_NAME_EXPIRY_DATE) + private OffsetDateTime expiryDate; + + public static final String SERIALIZED_NAME_USAGE_COUNTER = "UsageCounter"; + @SerializedName(SERIALIZED_NAME_USAGE_COUNTER) + private Long usageCounter; + + public static final String SERIALIZED_NAME_DISCOUNT_COUNTER = "DiscountCounter"; + @SerializedName(SERIALIZED_NAME_DISCOUNT_COUNTER) + private Float discountCounter; + + public static final String SERIALIZED_NAME_DISCOUNT_REMAINDER = "DiscountRemainder"; + @SerializedName(SERIALIZED_NAME_DISCOUNT_REMAINDER) + private Float discountRemainder; + + public static final String SERIALIZED_NAME_REFERRAL_ID = "ReferralId"; + @SerializedName(SERIALIZED_NAME_REFERRAL_ID) + private Long referralId; + + public static final String SERIALIZED_NAME_RECIPIENT_INTEGRATION_ID = "RecipientIntegrationId"; + @SerializedName(SERIALIZED_NAME_RECIPIENT_INTEGRATION_ID) + private String recipientIntegrationId; + + public static final String SERIALIZED_NAME_IMPORT_ID = "ImportId"; + @SerializedName(SERIALIZED_NAME_IMPORT_ID) + private Long importId; + + public static final String SERIALIZED_NAME_BATCH_ID = "BatchId"; + @SerializedName(SERIALIZED_NAME_BATCH_ID) + private String batchId; + + public static final String SERIALIZED_NAME_ATTRIBUTES = "Attributes"; + @SerializedName(SERIALIZED_NAME_ATTRIBUTES) + private Object attributes; + + public static final String SERIALIZED_NAME_LIMITS = "Limits"; + @SerializedName(SERIALIZED_NAME_LIMITS) + private List limits = null; + + public static final String SERIALIZED_NAME_SOURCE_OF_EVENT = "SourceOfEvent"; + @SerializedName(SERIALIZED_NAME_SOURCE_OF_EVENT) + private String sourceOfEvent; + + public static final String SERIALIZED_NAME_EMPLOYEE_NAME = "EmployeeName"; + @SerializedName(SERIALIZED_NAME_EMPLOYEE_NAME) + private String employeeName; + + + public PrismaticEventPayloadCouponBasedNotifications id(Long id) { + + this.id = id; + return this; + } + + /** + * Get id + * @return id + **/ + @ApiModelProperty(required = true, value = "") + + public Long getId() { + return id; + } + + + public void setId(Long id) { + this.id = id; + } + + + public PrismaticEventPayloadCouponBasedNotifications created(OffsetDateTime created) { + + this.created = created; + return this; + } + + /** + * Get created + * @return created + **/ + @ApiModelProperty(required = true, value = "") + + public OffsetDateTime getCreated() { + return created; + } + + + public void setCreated(OffsetDateTime created) { + this.created = created; + } + + + public PrismaticEventPayloadCouponBasedNotifications campaignId(Long campaignId) { + + this.campaignId = campaignId; + return this; + } + + /** + * Get campaignId + * @return campaignId + **/ + @ApiModelProperty(required = true, value = "") + + public Long getCampaignId() { + return campaignId; + } + + + public void setCampaignId(Long campaignId) { + this.campaignId = campaignId; + } + + + public PrismaticEventPayloadCouponBasedNotifications value(String value) { + + this.value = value; + return this; + } + + /** + * Get value + * @return value + **/ + @ApiModelProperty(required = true, value = "") + + public String getValue() { + return value; + } + + + public void setValue(String value) { + this.value = value; + } + + + public PrismaticEventPayloadCouponBasedNotifications usageLimit(Long usageLimit) { + + this.usageLimit = usageLimit; + return this; + } + + /** + * Get usageLimit + * @return usageLimit + **/ + @ApiModelProperty(required = true, value = "") + + public Long getUsageLimit() { + return usageLimit; + } + + + public void setUsageLimit(Long usageLimit) { + this.usageLimit = usageLimit; + } + + + public PrismaticEventPayloadCouponBasedNotifications discountLimit(Float discountLimit) { + + this.discountLimit = discountLimit; + return this; + } + + /** + * Get discountLimit + * @return discountLimit + **/ + @javax.annotation.Nullable + @ApiModelProperty(value = "") + + public Float getDiscountLimit() { + return discountLimit; + } + + + public void setDiscountLimit(Float discountLimit) { + this.discountLimit = discountLimit; + } + + + public PrismaticEventPayloadCouponBasedNotifications reservationLimit(Long reservationLimit) { + + this.reservationLimit = reservationLimit; + return this; + } + + /** + * Get reservationLimit + * @return reservationLimit + **/ + @javax.annotation.Nullable + @ApiModelProperty(value = "") + + public Long getReservationLimit() { + return reservationLimit; + } + + + public void setReservationLimit(Long reservationLimit) { + this.reservationLimit = reservationLimit; + } + + + public PrismaticEventPayloadCouponBasedNotifications startDate(OffsetDateTime startDate) { + + this.startDate = startDate; + return this; + } + + /** + * Get startDate + * @return startDate + **/ + @javax.annotation.Nullable + @ApiModelProperty(value = "") + + public OffsetDateTime getStartDate() { + return startDate; + } + + + public void setStartDate(OffsetDateTime startDate) { + this.startDate = startDate; + } + + + public PrismaticEventPayloadCouponBasedNotifications expiryDate(OffsetDateTime expiryDate) { + + this.expiryDate = expiryDate; + return this; + } + + /** + * Get expiryDate + * @return expiryDate + **/ + @javax.annotation.Nullable + @ApiModelProperty(value = "") + + public OffsetDateTime getExpiryDate() { + return expiryDate; + } + + + public void setExpiryDate(OffsetDateTime expiryDate) { + this.expiryDate = expiryDate; + } + + + public PrismaticEventPayloadCouponBasedNotifications usageCounter(Long usageCounter) { + + this.usageCounter = usageCounter; + return this; + } + + /** + * Get usageCounter + * @return usageCounter + **/ + @ApiModelProperty(required = true, value = "") + + public Long getUsageCounter() { + return usageCounter; + } + + + public void setUsageCounter(Long usageCounter) { + this.usageCounter = usageCounter; + } + + + public PrismaticEventPayloadCouponBasedNotifications discountCounter(Float discountCounter) { + + this.discountCounter = discountCounter; + return this; + } + + /** + * Get discountCounter + * @return discountCounter + **/ + @javax.annotation.Nullable + @ApiModelProperty(value = "") + + public Float getDiscountCounter() { + return discountCounter; + } + + + public void setDiscountCounter(Float discountCounter) { + this.discountCounter = discountCounter; + } + + + public PrismaticEventPayloadCouponBasedNotifications discountRemainder(Float discountRemainder) { + + this.discountRemainder = discountRemainder; + return this; + } + + /** + * Get discountRemainder + * @return discountRemainder + **/ + @javax.annotation.Nullable + @ApiModelProperty(value = "") + + public Float getDiscountRemainder() { + return discountRemainder; + } + + + public void setDiscountRemainder(Float discountRemainder) { + this.discountRemainder = discountRemainder; + } + + + public PrismaticEventPayloadCouponBasedNotifications referralId(Long referralId) { + + this.referralId = referralId; + return this; + } + + /** + * Get referralId + * @return referralId + **/ + @javax.annotation.Nullable + @ApiModelProperty(value = "") + + public Long getReferralId() { + return referralId; + } + + + public void setReferralId(Long referralId) { + this.referralId = referralId; + } + + + public PrismaticEventPayloadCouponBasedNotifications recipientIntegrationId(String recipientIntegrationId) { + + this.recipientIntegrationId = recipientIntegrationId; + return this; + } + + /** + * Get recipientIntegrationId + * @return recipientIntegrationId + **/ + @javax.annotation.Nullable + @ApiModelProperty(value = "") + + public String getRecipientIntegrationId() { + return recipientIntegrationId; + } + + + public void setRecipientIntegrationId(String recipientIntegrationId) { + this.recipientIntegrationId = recipientIntegrationId; + } + + + public PrismaticEventPayloadCouponBasedNotifications importId(Long importId) { + + this.importId = importId; + return this; + } + + /** + * Get importId + * @return importId + **/ + @javax.annotation.Nullable + @ApiModelProperty(value = "") + + public Long getImportId() { + return importId; + } + + + public void setImportId(Long importId) { + this.importId = importId; + } + + + public PrismaticEventPayloadCouponBasedNotifications batchId(String batchId) { + + this.batchId = batchId; + return this; + } + + /** + * Get batchId + * @return batchId + **/ + @javax.annotation.Nullable + @ApiModelProperty(value = "") + + public String getBatchId() { + return batchId; + } + + + public void setBatchId(String batchId) { + this.batchId = batchId; + } + + + public PrismaticEventPayloadCouponBasedNotifications attributes(Object attributes) { + + this.attributes = attributes; + return this; + } + + /** + * Get attributes + * @return attributes + **/ + @javax.annotation.Nullable + @ApiModelProperty(value = "") + + public Object getAttributes() { + return attributes; + } + + + public void setAttributes(Object attributes) { + this.attributes = attributes; + } + + + public PrismaticEventPayloadCouponBasedNotifications limits(List limits) { + + this.limits = limits; + return this; + } + + public PrismaticEventPayloadCouponBasedNotifications addLimitsItem(PrismaticEventPayloadCouponBasedNotificationsLimits limitsItem) { + if (this.limits == null) { + this.limits = new ArrayList(); + } + this.limits.add(limitsItem); + return this; + } + + /** + * Get limits + * @return limits + **/ + @javax.annotation.Nullable + @ApiModelProperty(value = "") + + public List getLimits() { + return limits; + } + + + public void setLimits(List limits) { + this.limits = limits; + } + + + public PrismaticEventPayloadCouponBasedNotifications sourceOfEvent(String sourceOfEvent) { + + this.sourceOfEvent = sourceOfEvent; + return this; + } + + /** + * Get sourceOfEvent + * @return sourceOfEvent + **/ + @ApiModelProperty(required = true, value = "") + + public String getSourceOfEvent() { + return sourceOfEvent; + } + + + public void setSourceOfEvent(String sourceOfEvent) { + this.sourceOfEvent = sourceOfEvent; + } + + + public PrismaticEventPayloadCouponBasedNotifications employeeName(String employeeName) { + + this.employeeName = employeeName; + return this; + } + + /** + * Get employeeName + * @return employeeName + **/ + @ApiModelProperty(required = true, value = "") + + public String getEmployeeName() { + return employeeName; + } + + + public void setEmployeeName(String employeeName) { + this.employeeName = employeeName; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + PrismaticEventPayloadCouponBasedNotifications prismaticEventPayloadCouponBasedNotifications = (PrismaticEventPayloadCouponBasedNotifications) o; + return Objects.equals(this.id, prismaticEventPayloadCouponBasedNotifications.id) && + Objects.equals(this.created, prismaticEventPayloadCouponBasedNotifications.created) && + Objects.equals(this.campaignId, prismaticEventPayloadCouponBasedNotifications.campaignId) && + Objects.equals(this.value, prismaticEventPayloadCouponBasedNotifications.value) && + Objects.equals(this.usageLimit, prismaticEventPayloadCouponBasedNotifications.usageLimit) && + Objects.equals(this.discountLimit, prismaticEventPayloadCouponBasedNotifications.discountLimit) && + Objects.equals(this.reservationLimit, prismaticEventPayloadCouponBasedNotifications.reservationLimit) && + Objects.equals(this.startDate, prismaticEventPayloadCouponBasedNotifications.startDate) && + Objects.equals(this.expiryDate, prismaticEventPayloadCouponBasedNotifications.expiryDate) && + Objects.equals(this.usageCounter, prismaticEventPayloadCouponBasedNotifications.usageCounter) && + Objects.equals(this.discountCounter, prismaticEventPayloadCouponBasedNotifications.discountCounter) && + Objects.equals(this.discountRemainder, prismaticEventPayloadCouponBasedNotifications.discountRemainder) && + Objects.equals(this.referralId, prismaticEventPayloadCouponBasedNotifications.referralId) && + Objects.equals(this.recipientIntegrationId, prismaticEventPayloadCouponBasedNotifications.recipientIntegrationId) && + Objects.equals(this.importId, prismaticEventPayloadCouponBasedNotifications.importId) && + Objects.equals(this.batchId, prismaticEventPayloadCouponBasedNotifications.batchId) && + Objects.equals(this.attributes, prismaticEventPayloadCouponBasedNotifications.attributes) && + Objects.equals(this.limits, prismaticEventPayloadCouponBasedNotifications.limits) && + Objects.equals(this.sourceOfEvent, prismaticEventPayloadCouponBasedNotifications.sourceOfEvent) && + Objects.equals(this.employeeName, prismaticEventPayloadCouponBasedNotifications.employeeName); + } + + @Override + public int hashCode() { + return Objects.hash(id, created, campaignId, value, usageLimit, discountLimit, reservationLimit, startDate, expiryDate, usageCounter, discountCounter, discountRemainder, referralId, recipientIntegrationId, importId, batchId, attributes, limits, sourceOfEvent, employeeName); + } + + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class PrismaticEventPayloadCouponBasedNotifications {\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" created: ").append(toIndentedString(created)).append("\n"); + sb.append(" campaignId: ").append(toIndentedString(campaignId)).append("\n"); + sb.append(" value: ").append(toIndentedString(value)).append("\n"); + sb.append(" usageLimit: ").append(toIndentedString(usageLimit)).append("\n"); + sb.append(" discountLimit: ").append(toIndentedString(discountLimit)).append("\n"); + sb.append(" reservationLimit: ").append(toIndentedString(reservationLimit)).append("\n"); + sb.append(" startDate: ").append(toIndentedString(startDate)).append("\n"); + sb.append(" expiryDate: ").append(toIndentedString(expiryDate)).append("\n"); + sb.append(" usageCounter: ").append(toIndentedString(usageCounter)).append("\n"); + sb.append(" discountCounter: ").append(toIndentedString(discountCounter)).append("\n"); + sb.append(" discountRemainder: ").append(toIndentedString(discountRemainder)).append("\n"); + sb.append(" referralId: ").append(toIndentedString(referralId)).append("\n"); + sb.append(" recipientIntegrationId: ").append(toIndentedString(recipientIntegrationId)).append("\n"); + sb.append(" importId: ").append(toIndentedString(importId)).append("\n"); + sb.append(" batchId: ").append(toIndentedString(batchId)).append("\n"); + sb.append(" attributes: ").append(toIndentedString(attributes)).append("\n"); + sb.append(" limits: ").append(toIndentedString(limits)).append("\n"); + sb.append(" sourceOfEvent: ").append(toIndentedString(sourceOfEvent)).append("\n"); + sb.append(" employeeName: ").append(toIndentedString(employeeName)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + +} + diff --git a/src/main/java/one/talon/model/PrismaticEventPayloadCouponBasedNotificationsLimits.java b/src/main/java/one/talon/model/PrismaticEventPayloadCouponBasedNotificationsLimits.java new file mode 100644 index 00000000..4f869ed7 --- /dev/null +++ b/src/main/java/one/talon/model/PrismaticEventPayloadCouponBasedNotificationsLimits.java @@ -0,0 +1,190 @@ +/* + * Talon.One API + * 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}` + * + * The version of the OpenAPI document: + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package one.talon.model; + +import java.util.Objects; +import java.util.Arrays; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; + +/** + * PrismaticEventPayloadCouponBasedNotificationsLimits + */ + +public class PrismaticEventPayloadCouponBasedNotificationsLimits { + public static final String SERIALIZED_NAME_ACTION = "Action"; + @SerializedName(SERIALIZED_NAME_ACTION) + private String action; + + public static final String SERIALIZED_NAME_LIMIT = "Limit"; + @SerializedName(SERIALIZED_NAME_LIMIT) + private Float limit; + + public static final String SERIALIZED_NAME_PERIOD = "Period"; + @SerializedName(SERIALIZED_NAME_PERIOD) + private String period; + + public static final String SERIALIZED_NAME_ENTITIES = "Entities"; + @SerializedName(SERIALIZED_NAME_ENTITIES) + private List entities = new ArrayList(); + + + public PrismaticEventPayloadCouponBasedNotificationsLimits action(String action) { + + this.action = action; + return this; + } + + /** + * Get action + * @return action + **/ + @ApiModelProperty(required = true, value = "") + + public String getAction() { + return action; + } + + + public void setAction(String action) { + this.action = action; + } + + + public PrismaticEventPayloadCouponBasedNotificationsLimits limit(Float limit) { + + this.limit = limit; + return this; + } + + /** + * Get limit + * @return limit + **/ + @ApiModelProperty(required = true, value = "") + + public Float getLimit() { + return limit; + } + + + public void setLimit(Float limit) { + this.limit = limit; + } + + + public PrismaticEventPayloadCouponBasedNotificationsLimits period(String period) { + + this.period = period; + return this; + } + + /** + * Get period + * @return period + **/ + @javax.annotation.Nullable + @ApiModelProperty(value = "") + + public String getPeriod() { + return period; + } + + + public void setPeriod(String period) { + this.period = period; + } + + + public PrismaticEventPayloadCouponBasedNotificationsLimits entities(List entities) { + + this.entities = entities; + return this; + } + + public PrismaticEventPayloadCouponBasedNotificationsLimits addEntitiesItem(String entitiesItem) { + this.entities.add(entitiesItem); + return this; + } + + /** + * Get entities + * @return entities + **/ + @ApiModelProperty(required = true, value = "") + + public List getEntities() { + return entities; + } + + + public void setEntities(List entities) { + this.entities = entities; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + PrismaticEventPayloadCouponBasedNotificationsLimits prismaticEventPayloadCouponBasedNotificationsLimits = (PrismaticEventPayloadCouponBasedNotificationsLimits) o; + return Objects.equals(this.action, prismaticEventPayloadCouponBasedNotificationsLimits.action) && + Objects.equals(this.limit, prismaticEventPayloadCouponBasedNotificationsLimits.limit) && + Objects.equals(this.period, prismaticEventPayloadCouponBasedNotificationsLimits.period) && + Objects.equals(this.entities, prismaticEventPayloadCouponBasedNotificationsLimits.entities); + } + + @Override + public int hashCode() { + return Objects.hash(action, limit, period, entities); + } + + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class PrismaticEventPayloadCouponBasedNotificationsLimits {\n"); + sb.append(" action: ").append(toIndentedString(action)).append("\n"); + sb.append(" limit: ").append(toIndentedString(limit)).append("\n"); + sb.append(" period: ").append(toIndentedString(period)).append("\n"); + sb.append(" entities: ").append(toIndentedString(entities)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + +} + diff --git a/src/main/java/one/talon/model/PrismaticEventPayloadLoyaltyProfileBasedNotifications.java b/src/main/java/one/talon/model/PrismaticEventPayloadLoyaltyProfileBasedNotifications.java new file mode 100644 index 00000000..c0105784 --- /dev/null +++ b/src/main/java/one/talon/model/PrismaticEventPayloadLoyaltyProfileBasedNotifications.java @@ -0,0 +1,512 @@ +/* + * Talon.One API + * 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}` + * + * The version of the OpenAPI document: + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package one.talon.model; + +import java.util.Objects; +import java.util.Arrays; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import one.talon.model.PrismaticEventPayloadLoyaltyProfileBasedNotificationsAction; +import org.threeten.bp.OffsetDateTime; + +/** + * PrismaticEventPayloadLoyaltyProfileBasedNotifications + */ + +public class PrismaticEventPayloadLoyaltyProfileBasedNotifications { + public static final String SERIALIZED_NAME_PROFILE_INTEGRATION_I_D = "ProfileIntegrationID"; + @SerializedName(SERIALIZED_NAME_PROFILE_INTEGRATION_I_D) + private String profileIntegrationID; + + public static final String SERIALIZED_NAME_LOYALTY_PROGRAM_I_D = "LoyaltyProgramID"; + @SerializedName(SERIALIZED_NAME_LOYALTY_PROGRAM_I_D) + private Long loyaltyProgramID; + + public static final String SERIALIZED_NAME_SUBLEDGER_I_D = "SubledgerID"; + @SerializedName(SERIALIZED_NAME_SUBLEDGER_I_D) + private String subledgerID; + + public static final String SERIALIZED_NAME_SOURCE_OF_EVENT = "SourceOfEvent"; + @SerializedName(SERIALIZED_NAME_SOURCE_OF_EVENT) + private String sourceOfEvent; + + public static final String SERIALIZED_NAME_EMPLOYEE_NAME = "EmployeeName"; + @SerializedName(SERIALIZED_NAME_EMPLOYEE_NAME) + private String employeeName; + + public static final String SERIALIZED_NAME_USER_I_D = "UserID"; + @SerializedName(SERIALIZED_NAME_USER_I_D) + private Long userID; + + public static final String SERIALIZED_NAME_SESSION_INTEGRATION_I_D = "SessionIntegrationID"; + @SerializedName(SERIALIZED_NAME_SESSION_INTEGRATION_I_D) + private String sessionIntegrationID; + + public static final String SERIALIZED_NAME_CURRENT_TIER = "CurrentTier"; + @SerializedName(SERIALIZED_NAME_CURRENT_TIER) + private String currentTier; + + public static final String SERIALIZED_NAME_CURRENT_POINTS = "CurrentPoints"; + @SerializedName(SERIALIZED_NAME_CURRENT_POINTS) + private Float currentPoints; + + public static final String SERIALIZED_NAME_OLD_TIER = "OldTier"; + @SerializedName(SERIALIZED_NAME_OLD_TIER) + private String oldTier; + + public static final String SERIALIZED_NAME_POINTS_REQUIRED_TO_THE_NEXT_TIER = "PointsRequiredToTheNextTier"; + @SerializedName(SERIALIZED_NAME_POINTS_REQUIRED_TO_THE_NEXT_TIER) + private Float pointsRequiredToTheNextTier; + + public static final String SERIALIZED_NAME_NEXT_TIER = "NextTier"; + @SerializedName(SERIALIZED_NAME_NEXT_TIER) + private String nextTier; + + public static final String SERIALIZED_NAME_TIER_EXPIRATION_DATE = "TierExpirationDate"; + @SerializedName(SERIALIZED_NAME_TIER_EXPIRATION_DATE) + private OffsetDateTime tierExpirationDate; + + public static final String SERIALIZED_NAME_TIMESTAMP_OF_TIER_CHANGE = "TimestampOfTierChange"; + @SerializedName(SERIALIZED_NAME_TIMESTAMP_OF_TIER_CHANGE) + private OffsetDateTime timestampOfTierChange; + + public static final String SERIALIZED_NAME_ACTIONS = "Actions"; + @SerializedName(SERIALIZED_NAME_ACTIONS) + private List actions = null; + + + public PrismaticEventPayloadLoyaltyProfileBasedNotifications profileIntegrationID(String profileIntegrationID) { + + this.profileIntegrationID = profileIntegrationID; + return this; + } + + /** + * Get profileIntegrationID + * @return profileIntegrationID + **/ + @ApiModelProperty(required = true, value = "") + + public String getProfileIntegrationID() { + return profileIntegrationID; + } + + + public void setProfileIntegrationID(String profileIntegrationID) { + this.profileIntegrationID = profileIntegrationID; + } + + + public PrismaticEventPayloadLoyaltyProfileBasedNotifications loyaltyProgramID(Long loyaltyProgramID) { + + this.loyaltyProgramID = loyaltyProgramID; + return this; + } + + /** + * Get loyaltyProgramID + * @return loyaltyProgramID + **/ + @ApiModelProperty(required = true, value = "") + + public Long getLoyaltyProgramID() { + return loyaltyProgramID; + } + + + public void setLoyaltyProgramID(Long loyaltyProgramID) { + this.loyaltyProgramID = loyaltyProgramID; + } + + + public PrismaticEventPayloadLoyaltyProfileBasedNotifications subledgerID(String subledgerID) { + + this.subledgerID = subledgerID; + return this; + } + + /** + * Get subledgerID + * @return subledgerID + **/ + @ApiModelProperty(required = true, value = "") + + public String getSubledgerID() { + return subledgerID; + } + + + public void setSubledgerID(String subledgerID) { + this.subledgerID = subledgerID; + } + + + public PrismaticEventPayloadLoyaltyProfileBasedNotifications sourceOfEvent(String sourceOfEvent) { + + this.sourceOfEvent = sourceOfEvent; + return this; + } + + /** + * Get sourceOfEvent + * @return sourceOfEvent + **/ + @ApiModelProperty(required = true, value = "") + + public String getSourceOfEvent() { + return sourceOfEvent; + } + + + public void setSourceOfEvent(String sourceOfEvent) { + this.sourceOfEvent = sourceOfEvent; + } + + + public PrismaticEventPayloadLoyaltyProfileBasedNotifications employeeName(String employeeName) { + + this.employeeName = employeeName; + return this; + } + + /** + * Get employeeName + * @return employeeName + **/ + @javax.annotation.Nullable + @ApiModelProperty(value = "") + + public String getEmployeeName() { + return employeeName; + } + + + public void setEmployeeName(String employeeName) { + this.employeeName = employeeName; + } + + + public PrismaticEventPayloadLoyaltyProfileBasedNotifications userID(Long userID) { + + this.userID = userID; + return this; + } + + /** + * Get userID + * @return userID + **/ + @javax.annotation.Nullable + @ApiModelProperty(value = "") + + public Long getUserID() { + return userID; + } + + + public void setUserID(Long userID) { + this.userID = userID; + } + + + public PrismaticEventPayloadLoyaltyProfileBasedNotifications sessionIntegrationID(String sessionIntegrationID) { + + this.sessionIntegrationID = sessionIntegrationID; + return this; + } + + /** + * Get sessionIntegrationID + * @return sessionIntegrationID + **/ + @javax.annotation.Nullable + @ApiModelProperty(value = "") + + public String getSessionIntegrationID() { + return sessionIntegrationID; + } + + + public void setSessionIntegrationID(String sessionIntegrationID) { + this.sessionIntegrationID = sessionIntegrationID; + } + + + public PrismaticEventPayloadLoyaltyProfileBasedNotifications currentTier(String currentTier) { + + this.currentTier = currentTier; + return this; + } + + /** + * Get currentTier + * @return currentTier + **/ + @javax.annotation.Nullable + @ApiModelProperty(value = "") + + public String getCurrentTier() { + return currentTier; + } + + + public void setCurrentTier(String currentTier) { + this.currentTier = currentTier; + } + + + public PrismaticEventPayloadLoyaltyProfileBasedNotifications currentPoints(Float currentPoints) { + + this.currentPoints = currentPoints; + return this; + } + + /** + * Get currentPoints + * @return currentPoints + **/ + @ApiModelProperty(required = true, value = "") + + public Float getCurrentPoints() { + return currentPoints; + } + + + public void setCurrentPoints(Float currentPoints) { + this.currentPoints = currentPoints; + } + + + public PrismaticEventPayloadLoyaltyProfileBasedNotifications oldTier(String oldTier) { + + this.oldTier = oldTier; + return this; + } + + /** + * Get oldTier + * @return oldTier + **/ + @javax.annotation.Nullable + @ApiModelProperty(value = "") + + public String getOldTier() { + return oldTier; + } + + + public void setOldTier(String oldTier) { + this.oldTier = oldTier; + } + + + public PrismaticEventPayloadLoyaltyProfileBasedNotifications pointsRequiredToTheNextTier(Float pointsRequiredToTheNextTier) { + + this.pointsRequiredToTheNextTier = pointsRequiredToTheNextTier; + return this; + } + + /** + * Get pointsRequiredToTheNextTier + * @return pointsRequiredToTheNextTier + **/ + @javax.annotation.Nullable + @ApiModelProperty(value = "") + + public Float getPointsRequiredToTheNextTier() { + return pointsRequiredToTheNextTier; + } + + + public void setPointsRequiredToTheNextTier(Float pointsRequiredToTheNextTier) { + this.pointsRequiredToTheNextTier = pointsRequiredToTheNextTier; + } + + + public PrismaticEventPayloadLoyaltyProfileBasedNotifications nextTier(String nextTier) { + + this.nextTier = nextTier; + return this; + } + + /** + * Get nextTier + * @return nextTier + **/ + @javax.annotation.Nullable + @ApiModelProperty(value = "") + + public String getNextTier() { + return nextTier; + } + + + public void setNextTier(String nextTier) { + this.nextTier = nextTier; + } + + + public PrismaticEventPayloadLoyaltyProfileBasedNotifications tierExpirationDate(OffsetDateTime tierExpirationDate) { + + this.tierExpirationDate = tierExpirationDate; + return this; + } + + /** + * Get tierExpirationDate + * @return tierExpirationDate + **/ + @javax.annotation.Nullable + @ApiModelProperty(value = "") + + public OffsetDateTime getTierExpirationDate() { + return tierExpirationDate; + } + + + public void setTierExpirationDate(OffsetDateTime tierExpirationDate) { + this.tierExpirationDate = tierExpirationDate; + } + + + public PrismaticEventPayloadLoyaltyProfileBasedNotifications timestampOfTierChange(OffsetDateTime timestampOfTierChange) { + + this.timestampOfTierChange = timestampOfTierChange; + return this; + } + + /** + * Get timestampOfTierChange + * @return timestampOfTierChange + **/ + @javax.annotation.Nullable + @ApiModelProperty(value = "") + + public OffsetDateTime getTimestampOfTierChange() { + return timestampOfTierChange; + } + + + public void setTimestampOfTierChange(OffsetDateTime timestampOfTierChange) { + this.timestampOfTierChange = timestampOfTierChange; + } + + + public PrismaticEventPayloadLoyaltyProfileBasedNotifications actions(List actions) { + + this.actions = actions; + return this; + } + + public PrismaticEventPayloadLoyaltyProfileBasedNotifications addActionsItem(PrismaticEventPayloadLoyaltyProfileBasedNotificationsAction actionsItem) { + if (this.actions == null) { + this.actions = new ArrayList(); + } + this.actions.add(actionsItem); + return this; + } + + /** + * Get actions + * @return actions + **/ + @javax.annotation.Nullable + @ApiModelProperty(value = "") + + public List getActions() { + return actions; + } + + + public void setActions(List actions) { + this.actions = actions; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + PrismaticEventPayloadLoyaltyProfileBasedNotifications prismaticEventPayloadLoyaltyProfileBasedNotifications = (PrismaticEventPayloadLoyaltyProfileBasedNotifications) o; + return Objects.equals(this.profileIntegrationID, prismaticEventPayloadLoyaltyProfileBasedNotifications.profileIntegrationID) && + Objects.equals(this.loyaltyProgramID, prismaticEventPayloadLoyaltyProfileBasedNotifications.loyaltyProgramID) && + Objects.equals(this.subledgerID, prismaticEventPayloadLoyaltyProfileBasedNotifications.subledgerID) && + Objects.equals(this.sourceOfEvent, prismaticEventPayloadLoyaltyProfileBasedNotifications.sourceOfEvent) && + Objects.equals(this.employeeName, prismaticEventPayloadLoyaltyProfileBasedNotifications.employeeName) && + Objects.equals(this.userID, prismaticEventPayloadLoyaltyProfileBasedNotifications.userID) && + Objects.equals(this.sessionIntegrationID, prismaticEventPayloadLoyaltyProfileBasedNotifications.sessionIntegrationID) && + Objects.equals(this.currentTier, prismaticEventPayloadLoyaltyProfileBasedNotifications.currentTier) && + Objects.equals(this.currentPoints, prismaticEventPayloadLoyaltyProfileBasedNotifications.currentPoints) && + Objects.equals(this.oldTier, prismaticEventPayloadLoyaltyProfileBasedNotifications.oldTier) && + Objects.equals(this.pointsRequiredToTheNextTier, prismaticEventPayloadLoyaltyProfileBasedNotifications.pointsRequiredToTheNextTier) && + Objects.equals(this.nextTier, prismaticEventPayloadLoyaltyProfileBasedNotifications.nextTier) && + Objects.equals(this.tierExpirationDate, prismaticEventPayloadLoyaltyProfileBasedNotifications.tierExpirationDate) && + Objects.equals(this.timestampOfTierChange, prismaticEventPayloadLoyaltyProfileBasedNotifications.timestampOfTierChange) && + Objects.equals(this.actions, prismaticEventPayloadLoyaltyProfileBasedNotifications.actions); + } + + @Override + public int hashCode() { + return Objects.hash(profileIntegrationID, loyaltyProgramID, subledgerID, sourceOfEvent, employeeName, userID, sessionIntegrationID, currentTier, currentPoints, oldTier, pointsRequiredToTheNextTier, nextTier, tierExpirationDate, timestampOfTierChange, actions); + } + + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class PrismaticEventPayloadLoyaltyProfileBasedNotifications {\n"); + sb.append(" profileIntegrationID: ").append(toIndentedString(profileIntegrationID)).append("\n"); + sb.append(" loyaltyProgramID: ").append(toIndentedString(loyaltyProgramID)).append("\n"); + sb.append(" subledgerID: ").append(toIndentedString(subledgerID)).append("\n"); + sb.append(" sourceOfEvent: ").append(toIndentedString(sourceOfEvent)).append("\n"); + sb.append(" employeeName: ").append(toIndentedString(employeeName)).append("\n"); + sb.append(" userID: ").append(toIndentedString(userID)).append("\n"); + sb.append(" sessionIntegrationID: ").append(toIndentedString(sessionIntegrationID)).append("\n"); + sb.append(" currentTier: ").append(toIndentedString(currentTier)).append("\n"); + sb.append(" currentPoints: ").append(toIndentedString(currentPoints)).append("\n"); + sb.append(" oldTier: ").append(toIndentedString(oldTier)).append("\n"); + sb.append(" pointsRequiredToTheNextTier: ").append(toIndentedString(pointsRequiredToTheNextTier)).append("\n"); + sb.append(" nextTier: ").append(toIndentedString(nextTier)).append("\n"); + sb.append(" tierExpirationDate: ").append(toIndentedString(tierExpirationDate)).append("\n"); + sb.append(" timestampOfTierChange: ").append(toIndentedString(timestampOfTierChange)).append("\n"); + sb.append(" actions: ").append(toIndentedString(actions)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + +} + diff --git a/src/main/java/one/talon/model/PrismaticEventPayloadLoyaltyProfileBasedNotificationsAction.java b/src/main/java/one/talon/model/PrismaticEventPayloadLoyaltyProfileBasedNotificationsAction.java new file mode 100644 index 00000000..85c70245 --- /dev/null +++ b/src/main/java/one/talon/model/PrismaticEventPayloadLoyaltyProfileBasedNotificationsAction.java @@ -0,0 +1,261 @@ +/* + * Talon.One API + * 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}` + * + * The version of the OpenAPI document: + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package one.talon.model; + +import java.util.Objects; +import java.util.Arrays; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.io.IOException; +import org.threeten.bp.OffsetDateTime; + +/** + * PrismaticEventPayloadLoyaltyProfileBasedNotificationsAction + */ + +public class PrismaticEventPayloadLoyaltyProfileBasedNotificationsAction { + public static final String SERIALIZED_NAME_AMOUNT = "Amount"; + @SerializedName(SERIALIZED_NAME_AMOUNT) + private Float amount; + + public static final String SERIALIZED_NAME_REASON = "Reason"; + @SerializedName(SERIALIZED_NAME_REASON) + private String reason; + + /** + * Gets or Sets operation + */ + @JsonAdapter(OperationEnum.Adapter.class) + public enum OperationEnum { + ADDITION("addition"), + + DEDUCTION("deduction"); + + private String value; + + OperationEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static OperationEnum fromValue(String value) { + for (OperationEnum b : OperationEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final OperationEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public OperationEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return OperationEnum.fromValue(value); + } + } + } + + public static final String SERIALIZED_NAME_OPERATION = "Operation"; + @SerializedName(SERIALIZED_NAME_OPERATION) + private OperationEnum operation; + + public static final String SERIALIZED_NAME_START_DATE = "StartDate"; + @SerializedName(SERIALIZED_NAME_START_DATE) + private OffsetDateTime startDate; + + public static final String SERIALIZED_NAME_EXPIRY_DATE = "ExpiryDate"; + @SerializedName(SERIALIZED_NAME_EXPIRY_DATE) + private OffsetDateTime expiryDate; + + + public PrismaticEventPayloadLoyaltyProfileBasedNotificationsAction amount(Float amount) { + + this.amount = amount; + return this; + } + + /** + * Get amount + * @return amount + **/ + @ApiModelProperty(required = true, value = "") + + public Float getAmount() { + return amount; + } + + + public void setAmount(Float amount) { + this.amount = amount; + } + + + public PrismaticEventPayloadLoyaltyProfileBasedNotificationsAction reason(String reason) { + + this.reason = reason; + return this; + } + + /** + * Get reason + * @return reason + **/ + @javax.annotation.Nullable + @ApiModelProperty(value = "") + + public String getReason() { + return reason; + } + + + public void setReason(String reason) { + this.reason = reason; + } + + + public PrismaticEventPayloadLoyaltyProfileBasedNotificationsAction operation(OperationEnum operation) { + + this.operation = operation; + return this; + } + + /** + * Get operation + * @return operation + **/ + @ApiModelProperty(required = true, value = "") + + public OperationEnum getOperation() { + return operation; + } + + + public void setOperation(OperationEnum operation) { + this.operation = operation; + } + + + public PrismaticEventPayloadLoyaltyProfileBasedNotificationsAction startDate(OffsetDateTime startDate) { + + this.startDate = startDate; + return this; + } + + /** + * Get startDate + * @return startDate + **/ + @javax.annotation.Nullable + @ApiModelProperty(value = "") + + public OffsetDateTime getStartDate() { + return startDate; + } + + + public void setStartDate(OffsetDateTime startDate) { + this.startDate = startDate; + } + + + public PrismaticEventPayloadLoyaltyProfileBasedNotificationsAction expiryDate(OffsetDateTime expiryDate) { + + this.expiryDate = expiryDate; + return this; + } + + /** + * Get expiryDate + * @return expiryDate + **/ + @javax.annotation.Nullable + @ApiModelProperty(value = "") + + public OffsetDateTime getExpiryDate() { + return expiryDate; + } + + + public void setExpiryDate(OffsetDateTime expiryDate) { + this.expiryDate = expiryDate; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + PrismaticEventPayloadLoyaltyProfileBasedNotificationsAction prismaticEventPayloadLoyaltyProfileBasedNotificationsAction = (PrismaticEventPayloadLoyaltyProfileBasedNotificationsAction) o; + return Objects.equals(this.amount, prismaticEventPayloadLoyaltyProfileBasedNotificationsAction.amount) && + Objects.equals(this.reason, prismaticEventPayloadLoyaltyProfileBasedNotificationsAction.reason) && + Objects.equals(this.operation, prismaticEventPayloadLoyaltyProfileBasedNotificationsAction.operation) && + Objects.equals(this.startDate, prismaticEventPayloadLoyaltyProfileBasedNotificationsAction.startDate) && + Objects.equals(this.expiryDate, prismaticEventPayloadLoyaltyProfileBasedNotificationsAction.expiryDate); + } + + @Override + public int hashCode() { + return Objects.hash(amount, reason, operation, startDate, expiryDate); + } + + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class PrismaticEventPayloadLoyaltyProfileBasedNotificationsAction {\n"); + sb.append(" amount: ").append(toIndentedString(amount)).append("\n"); + sb.append(" reason: ").append(toIndentedString(reason)).append("\n"); + sb.append(" operation: ").append(toIndentedString(operation)).append("\n"); + sb.append(" startDate: ").append(toIndentedString(startDate)).append("\n"); + sb.append(" expiryDate: ").append(toIndentedString(expiryDate)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + +} + diff --git a/src/main/java/one/talon/model/PrismaticFlow.java b/src/main/java/one/talon/model/PrismaticFlow.java new file mode 100644 index 00000000..4b6a0844 --- /dev/null +++ b/src/main/java/one/talon/model/PrismaticFlow.java @@ -0,0 +1,155 @@ +/* + * Talon.One API + * 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}` + * + * The version of the OpenAPI document: + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package one.talon.model; + +import java.util.Objects; +import java.util.Arrays; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.io.IOException; + +/** + * PrismaticFlow + */ + +public class PrismaticFlow { + public static final String SERIALIZED_NAME_APPLICATION_I_D = "ApplicationID"; + @SerializedName(SERIALIZED_NAME_APPLICATION_I_D) + private Long applicationID; + + public static final String SERIALIZED_NAME_EVENT_TYPE = "EventType"; + @SerializedName(SERIALIZED_NAME_EVENT_TYPE) + private String eventType; + + public static final String SERIALIZED_NAME_PRISMATIC_FLOW_URL = "PrismaticFlowUrl"; + @SerializedName(SERIALIZED_NAME_PRISMATIC_FLOW_URL) + private String prismaticFlowUrl; + + + public PrismaticFlow applicationID(Long applicationID) { + + this.applicationID = applicationID; + return this; + } + + /** + * ID of application the flow is registered for. + * @return applicationID + **/ + @javax.annotation.Nullable + @ApiModelProperty(example = "54", value = "ID of application the flow is registered for.") + + public Long getApplicationID() { + return applicationID; + } + + + public void setApplicationID(Long applicationID) { + this.applicationID = applicationID; + } + + + public PrismaticFlow eventType(String eventType) { + + this.eventType = eventType; + return this; + } + + /** + * The event type we want to register a flow for. + * @return eventType + **/ + @ApiModelProperty(required = true, value = "The event type we want to register a flow for.") + + public String getEventType() { + return eventType; + } + + + public void setEventType(String eventType) { + this.eventType = eventType; + } + + + public PrismaticFlow prismaticFlowUrl(String prismaticFlowUrl) { + + this.prismaticFlowUrl = prismaticFlowUrl; + return this; + } + + /** + * The URL of the prismatic flow that we want to trigger for the event. + * @return prismaticFlowUrl + **/ + @ApiModelProperty(required = true, value = "The URL of the prismatic flow that we want to trigger for the event.") + + public String getPrismaticFlowUrl() { + return prismaticFlowUrl; + } + + + public void setPrismaticFlowUrl(String prismaticFlowUrl) { + this.prismaticFlowUrl = prismaticFlowUrl; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + PrismaticFlow prismaticFlow = (PrismaticFlow) o; + return Objects.equals(this.applicationID, prismaticFlow.applicationID) && + Objects.equals(this.eventType, prismaticFlow.eventType) && + Objects.equals(this.prismaticFlowUrl, prismaticFlow.prismaticFlowUrl); + } + + @Override + public int hashCode() { + return Objects.hash(applicationID, eventType, prismaticFlowUrl); + } + + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class PrismaticFlow {\n"); + sb.append(" applicationID: ").append(toIndentedString(applicationID)).append("\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" prismaticFlowUrl: ").append(toIndentedString(prismaticFlowUrl)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + +} + diff --git a/src/main/java/one/talon/model/PrismaticFlowConfig.java b/src/main/java/one/talon/model/PrismaticFlowConfig.java new file mode 100644 index 00000000..b6c43b74 --- /dev/null +++ b/src/main/java/one/talon/model/PrismaticFlowConfig.java @@ -0,0 +1,98 @@ +/* + * Talon.One API + * 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}` + * + * The version of the OpenAPI document: + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package one.talon.model; + +import java.util.Objects; +import java.util.Arrays; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.io.IOException; + +/** + * PrismaticFlowConfig + */ + +public class PrismaticFlowConfig { + public static final String SERIALIZED_NAME_API_KEY = "ApiKey"; + @SerializedName(SERIALIZED_NAME_API_KEY) + private String apiKey; + + + public PrismaticFlowConfig apiKey(String apiKey) { + + this.apiKey = apiKey; + return this; + } + + /** + * Get apiKey + * @return apiKey + **/ + @ApiModelProperty(required = true, value = "") + + public String getApiKey() { + return apiKey; + } + + + public void setApiKey(String apiKey) { + this.apiKey = apiKey; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + PrismaticFlowConfig prismaticFlowConfig = (PrismaticFlowConfig) o; + return Objects.equals(this.apiKey, prismaticFlowConfig.apiKey); + } + + @Override + public int hashCode() { + return Objects.hash(apiKey); + } + + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class PrismaticFlowConfig {\n"); + sb.append(" apiKey: ").append(toIndentedString(apiKey)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + +} + diff --git a/src/main/java/one/talon/model/PrismaticFlowWithConfig.java b/src/main/java/one/talon/model/PrismaticFlowWithConfig.java new file mode 100644 index 00000000..4c903149 --- /dev/null +++ b/src/main/java/one/talon/model/PrismaticFlowWithConfig.java @@ -0,0 +1,184 @@ +/* + * Talon.One API + * 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}` + * + * The version of the OpenAPI document: + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package one.talon.model; + +import java.util.Objects; +import java.util.Arrays; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.io.IOException; +import one.talon.model.PrismaticFlowConfig; + +/** + * PrismaticFlowWithConfig + */ + +public class PrismaticFlowWithConfig { + public static final String SERIALIZED_NAME_APPLICATION_I_D = "ApplicationID"; + @SerializedName(SERIALIZED_NAME_APPLICATION_I_D) + private Long applicationID; + + public static final String SERIALIZED_NAME_EVENT_TYPE = "EventType"; + @SerializedName(SERIALIZED_NAME_EVENT_TYPE) + private String eventType; + + public static final String SERIALIZED_NAME_PRISMATIC_FLOW_URL = "PrismaticFlowUrl"; + @SerializedName(SERIALIZED_NAME_PRISMATIC_FLOW_URL) + private String prismaticFlowUrl; + + public static final String SERIALIZED_NAME_CONFIG = "Config"; + @SerializedName(SERIALIZED_NAME_CONFIG) + private PrismaticFlowConfig config; + + + public PrismaticFlowWithConfig applicationID(Long applicationID) { + + this.applicationID = applicationID; + return this; + } + + /** + * ID of application the flow is registered for. + * @return applicationID + **/ + @javax.annotation.Nullable + @ApiModelProperty(example = "54", value = "ID of application the flow is registered for.") + + public Long getApplicationID() { + return applicationID; + } + + + public void setApplicationID(Long applicationID) { + this.applicationID = applicationID; + } + + + public PrismaticFlowWithConfig eventType(String eventType) { + + this.eventType = eventType; + return this; + } + + /** + * The event type we want to register a flow for. + * @return eventType + **/ + @ApiModelProperty(required = true, value = "The event type we want to register a flow for.") + + public String getEventType() { + return eventType; + } + + + public void setEventType(String eventType) { + this.eventType = eventType; + } + + + public PrismaticFlowWithConfig prismaticFlowUrl(String prismaticFlowUrl) { + + this.prismaticFlowUrl = prismaticFlowUrl; + return this; + } + + /** + * The URL of the prismatic flow that we want to trigger for the event. + * @return prismaticFlowUrl + **/ + @ApiModelProperty(required = true, value = "The URL of the prismatic flow that we want to trigger for the event.") + + public String getPrismaticFlowUrl() { + return prismaticFlowUrl; + } + + + public void setPrismaticFlowUrl(String prismaticFlowUrl) { + this.prismaticFlowUrl = prismaticFlowUrl; + } + + + public PrismaticFlowWithConfig config(PrismaticFlowConfig config) { + + this.config = config; + return this; + } + + /** + * Get config + * @return config + **/ + @ApiModelProperty(required = true, value = "") + + public PrismaticFlowConfig getConfig() { + return config; + } + + + public void setConfig(PrismaticFlowConfig config) { + this.config = config; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + PrismaticFlowWithConfig prismaticFlowWithConfig = (PrismaticFlowWithConfig) o; + return Objects.equals(this.applicationID, prismaticFlowWithConfig.applicationID) && + Objects.equals(this.eventType, prismaticFlowWithConfig.eventType) && + Objects.equals(this.prismaticFlowUrl, prismaticFlowWithConfig.prismaticFlowUrl) && + Objects.equals(this.config, prismaticFlowWithConfig.config); + } + + @Override + public int hashCode() { + return Objects.hash(applicationID, eventType, prismaticFlowUrl, config); + } + + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class PrismaticFlowWithConfig {\n"); + sb.append(" applicationID: ").append(toIndentedString(applicationID)).append("\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" prismaticFlowUrl: ").append(toIndentedString(prismaticFlowUrl)).append("\n"); + sb.append(" config: ").append(toIndentedString(config)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + +} + diff --git a/src/main/java/one/talon/model/PrismaticPaginatedEventPayload.java b/src/main/java/one/talon/model/PrismaticPaginatedEventPayload.java new file mode 100644 index 00000000..b97a3199 --- /dev/null +++ b/src/main/java/one/talon/model/PrismaticPaginatedEventPayload.java @@ -0,0 +1,216 @@ +/* + * Talon.One API + * 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}` + * + * The version of the OpenAPI document: + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package one.talon.model; + +import java.util.Objects; +import java.util.Arrays; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; + +/** + * PrismaticPaginatedEventPayload + */ + +public class PrismaticPaginatedEventPayload { + public static final String SERIALIZED_NAME_TOTAL_RESULT_SIZE = "TotalResultSize"; + @SerializedName(SERIALIZED_NAME_TOTAL_RESULT_SIZE) + private Long totalResultSize; + + /** + * Gets or Sets eventType + */ + @JsonAdapter(EventTypeEnum.Adapter.class) + public enum EventTypeEnum { + LOYALTYPOINTSCHANGED("LoyaltyPointsChanged"), + + LOYALTYTIERDOWNGRADE("LoyaltyTierDowngrade"), + + LOYALTYTIERUPGRADE("LoyaltyTierUpgrade"), + + COUPONCREATED("CouponCreated"), + + COUPONUPDATED("CouponUpdated"), + + COUPONDELETED("CouponDeleted"); + + private String value; + + EventTypeEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static EventTypeEnum fromValue(String value) { + for (EventTypeEnum b : EventTypeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final EventTypeEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public EventTypeEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return EventTypeEnum.fromValue(value); + } + } + } + + public static final String SERIALIZED_NAME_EVENT_TYPE = "EventType"; + @SerializedName(SERIALIZED_NAME_EVENT_TYPE) + private EventTypeEnum eventType; + + public static final String SERIALIZED_NAME_DATA = "Data"; + @SerializedName(SERIALIZED_NAME_DATA) + private List data = new ArrayList(); + + + public PrismaticPaginatedEventPayload totalResultSize(Long totalResultSize) { + + this.totalResultSize = totalResultSize; + return this; + } + + /** + * Get totalResultSize + * @return totalResultSize + **/ + @ApiModelProperty(required = true, value = "") + + public Long getTotalResultSize() { + return totalResultSize; + } + + + public void setTotalResultSize(Long totalResultSize) { + this.totalResultSize = totalResultSize; + } + + + public PrismaticPaginatedEventPayload eventType(EventTypeEnum eventType) { + + this.eventType = eventType; + return this; + } + + /** + * Get eventType + * @return eventType + **/ + @ApiModelProperty(required = true, value = "") + + public EventTypeEnum getEventType() { + return eventType; + } + + + public void setEventType(EventTypeEnum eventType) { + this.eventType = eventType; + } + + + public PrismaticPaginatedEventPayload data(List data) { + + this.data = data; + return this; + } + + public PrismaticPaginatedEventPayload addDataItem(Object dataItem) { + this.data.add(dataItem); + return this; + } + + /** + * Get data + * @return data + **/ + @ApiModelProperty(required = true, value = "") + + public List getData() { + return data; + } + + + public void setData(List data) { + this.data = data; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + PrismaticPaginatedEventPayload prismaticPaginatedEventPayload = (PrismaticPaginatedEventPayload) o; + return Objects.equals(this.totalResultSize, prismaticPaginatedEventPayload.totalResultSize) && + Objects.equals(this.eventType, prismaticPaginatedEventPayload.eventType) && + Objects.equals(this.data, prismaticPaginatedEventPayload.data); + } + + @Override + public int hashCode() { + return Objects.hash(totalResultSize, eventType, data); + } + + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class PrismaticPaginatedEventPayload {\n"); + sb.append(" totalResultSize: ").append(toIndentedString(totalResultSize)).append("\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + +} + diff --git a/src/main/java/one/talon/model/ReturnedCartItem.java b/src/main/java/one/talon/model/ReturnedCartItem.java index f3b1621b..df671ad2 100644 --- a/src/main/java/one/talon/model/ReturnedCartItem.java +++ b/src/main/java/one/talon/model/ReturnedCartItem.java @@ -37,6 +37,10 @@ public class ReturnedCartItem { @SerializedName(SERIALIZED_NAME_QUANTITY) private Long quantity; + public static final String SERIALIZED_NAME_SKU = "sku"; + @SerializedName(SERIALIZED_NAME_SKU) + private String sku; + public ReturnedCartItem position(Long position) { @@ -48,7 +52,8 @@ public ReturnedCartItem position(Long position) { * The index of the cart item in the provided customer session's `cartItems` property. * @return position **/ - @ApiModelProperty(example = "2", required = true, value = "The index of the cart item in the provided customer session's `cartItems` property.") + @javax.annotation.Nullable + @ApiModelProperty(example = "2", value = "The index of the cart item in the provided customer session's `cartItems` property.") public Long getPosition() { return position; @@ -83,6 +88,29 @@ public void setQuantity(Long quantity) { } + public ReturnedCartItem sku(String sku) { + + this.sku = sku; + return this; + } + + /** + * The SKU of the cart item in the provided customer session's `cartItems` property. + * @return sku + **/ + @javax.annotation.Nullable + @ApiModelProperty(example = "SKU1241028", value = "The SKU of the cart item in the provided customer session's `cartItems` property.") + + public String getSku() { + return sku; + } + + + public void setSku(String sku) { + this.sku = sku; + } + + @Override public boolean equals(java.lang.Object o) { if (this == o) { @@ -93,12 +121,13 @@ public boolean equals(java.lang.Object o) { } ReturnedCartItem returnedCartItem = (ReturnedCartItem) o; return Objects.equals(this.position, returnedCartItem.position) && - Objects.equals(this.quantity, returnedCartItem.quantity); + Objects.equals(this.quantity, returnedCartItem.quantity) && + Objects.equals(this.sku, returnedCartItem.sku); } @Override public int hashCode() { - return Objects.hash(position, quantity); + return Objects.hash(position, quantity, sku); } @@ -108,6 +137,7 @@ public String toString() { sb.append("class ReturnedCartItem {\n"); sb.append(" position: ").append(toIndentedString(position)).append("\n"); sb.append(" quantity: ").append(toIndentedString(quantity)).append("\n"); + sb.append(" sku: ").append(toIndentedString(sku)).append("\n"); sb.append("}"); return sb.toString(); } diff --git a/src/main/java/one/talon/model/RoleV2.java b/src/main/java/one/talon/model/RoleV2.java index 292bb758..230d650c 100644 --- a/src/main/java/one/talon/model/RoleV2.java +++ b/src/main/java/one/talon/model/RoleV2.java @@ -65,6 +65,10 @@ public class RoleV2 { @SerializedName(SERIALIZED_NAME_MEMBERS) private List members = null; + public static final String SERIALIZED_NAME_IS_READONLY = "isReadonly"; + @SerializedName(SERIALIZED_NAME_IS_READONLY) + private Boolean isReadonly = false; + public RoleV2 id(Long id) { @@ -254,6 +258,29 @@ public void setMembers(List members) { } + public RoleV2 isReadonly(Boolean isReadonly) { + + this.isReadonly = isReadonly; + return this; + } + + /** + * Identifies if the role is read-only. For read-only roles, you can only assign or unassign users. You cannot edit any other properties, such as the name, description, or permissions. The 'isReadonly' property cannot be set for new or existing roles. It is reserved for predefined roles, such as the Talon.One support role. + * @return isReadonly + **/ + @javax.annotation.Nullable + @ApiModelProperty(example = "false", value = "Identifies if the role is read-only. For read-only roles, you can only assign or unassign users. You cannot edit any other properties, such as the name, description, or permissions. The 'isReadonly' property cannot be set for new or existing roles. It is reserved for predefined roles, such as the Talon.One support role.") + + public Boolean getIsReadonly() { + return isReadonly; + } + + + public void setIsReadonly(Boolean isReadonly) { + this.isReadonly = isReadonly; + } + + @Override public boolean equals(java.lang.Object o) { if (this == o) { @@ -270,12 +297,13 @@ public boolean equals(java.lang.Object o) { Objects.equals(this.name, roleV2.name) && Objects.equals(this.description, roleV2.description) && Objects.equals(this.permissions, roleV2.permissions) && - Objects.equals(this.members, roleV2.members); + Objects.equals(this.members, roleV2.members) && + Objects.equals(this.isReadonly, roleV2.isReadonly); } @Override public int hashCode() { - return Objects.hash(id, created, modified, accountId, name, description, permissions, members); + return Objects.hash(id, created, modified, accountId, name, description, permissions, members, isReadonly); } @@ -291,6 +319,7 @@ public String toString() { sb.append(" description: ").append(toIndentedString(description)).append("\n"); sb.append(" permissions: ").append(toIndentedString(permissions)).append("\n"); sb.append(" members: ").append(toIndentedString(members)).append("\n"); + sb.append(" isReadonly: ").append(toIndentedString(isReadonly)).append("\n"); sb.append("}"); return sb.toString(); } diff --git a/src/main/java/one/talon/model/RoleV2Readonly.java b/src/main/java/one/talon/model/RoleV2Readonly.java new file mode 100644 index 00000000..5ec23b45 --- /dev/null +++ b/src/main/java/one/talon/model/RoleV2Readonly.java @@ -0,0 +1,99 @@ +/* + * Talon.One API + * 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}` + * + * The version of the OpenAPI document: + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package one.talon.model; + +import java.util.Objects; +import java.util.Arrays; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.io.IOException; + +/** + * RoleV2Readonly + */ + +public class RoleV2Readonly { + public static final String SERIALIZED_NAME_IS_READONLY = "isReadonly"; + @SerializedName(SERIALIZED_NAME_IS_READONLY) + private Boolean isReadonly = false; + + + public RoleV2Readonly isReadonly(Boolean isReadonly) { + + this.isReadonly = isReadonly; + return this; + } + + /** + * Identifies if the role is read-only. For read-only roles, you can only assign or unassign users. You cannot edit any other properties, such as the name, description, or permissions. The 'isReadonly' property cannot be set for new or existing roles. It is reserved for predefined roles, such as the Talon.One support role. + * @return isReadonly + **/ + @javax.annotation.Nullable + @ApiModelProperty(example = "false", value = "Identifies if the role is read-only. For read-only roles, you can only assign or unassign users. You cannot edit any other properties, such as the name, description, or permissions. The 'isReadonly' property cannot be set for new or existing roles. It is reserved for predefined roles, such as the Talon.One support role.") + + public Boolean getIsReadonly() { + return isReadonly; + } + + + public void setIsReadonly(Boolean isReadonly) { + this.isReadonly = isReadonly; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + RoleV2Readonly roleV2Readonly = (RoleV2Readonly) o; + return Objects.equals(this.isReadonly, roleV2Readonly.isReadonly); + } + + @Override + public int hashCode() { + return Objects.hash(isReadonly); + } + + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class RoleV2Readonly {\n"); + sb.append(" isReadonly: ").append(toIndentedString(isReadonly)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + +} + diff --git a/src/main/java/one/talon/model/SessionCoupons.java b/src/main/java/one/talon/model/SessionCoupons.java new file mode 100644 index 00000000..0b3a0ff8 --- /dev/null +++ b/src/main/java/one/talon/model/SessionCoupons.java @@ -0,0 +1,127 @@ +/* + * Talon.One API + * 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}` + * + * The version of the OpenAPI document: + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package one.talon.model; + +import java.util.Objects; +import java.util.Arrays; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.io.IOException; + +/** + * SessionCoupons + */ + +public class SessionCoupons { + public static final String SERIALIZED_NAME_SESSION_INTEGRATION_ID = "sessionIntegrationId"; + @SerializedName(SERIALIZED_NAME_SESSION_INTEGRATION_ID) + private String sessionIntegrationId; + + public static final String SERIALIZED_NAME_COUPON_CODE = "couponCode"; + @SerializedName(SERIALIZED_NAME_COUPON_CODE) + private String couponCode; + + + public SessionCoupons sessionIntegrationId(String sessionIntegrationId) { + + this.sessionIntegrationId = sessionIntegrationId; + return this; + } + + /** + * The integration ID of the session in which the coupons were applied. + * @return sessionIntegrationId + **/ + @ApiModelProperty(example = "cc53e4fa-547f-4f5e-8333-76e05c381f67", required = true, value = "The integration ID of the session in which the coupons were applied.") + + public String getSessionIntegrationId() { + return sessionIntegrationId; + } + + + public void setSessionIntegrationId(String sessionIntegrationId) { + this.sessionIntegrationId = sessionIntegrationId; + } + + + public SessionCoupons couponCode(String couponCode) { + + this.couponCode = couponCode; + return this; + } + + /** + * The coupon codes for which rejection reason is needed. + * @return couponCode + **/ + @javax.annotation.Nullable + @ApiModelProperty(example = "SUMMER2025", value = "The coupon codes for which rejection reason is needed.") + + public String getCouponCode() { + return couponCode; + } + + + public void setCouponCode(String couponCode) { + this.couponCode = couponCode; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + SessionCoupons sessionCoupons = (SessionCoupons) o; + return Objects.equals(this.sessionIntegrationId, sessionCoupons.sessionIntegrationId) && + Objects.equals(this.couponCode, sessionCoupons.couponCode); + } + + @Override + public int hashCode() { + return Objects.hash(sessionIntegrationId, couponCode); + } + + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class SessionCoupons {\n"); + sb.append(" sessionIntegrationId: ").append(toIndentedString(sessionIntegrationId)).append("\n"); + sb.append(" couponCode: ").append(toIndentedString(couponCode)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + +} + diff --git a/src/main/java/one/talon/model/StrikethroughChangedItem.java b/src/main/java/one/talon/model/StrikethroughChangedItem.java index 1a75a350..0bbae9bb 100644 --- a/src/main/java/one/talon/model/StrikethroughChangedItem.java +++ b/src/main/java/one/talon/model/StrikethroughChangedItem.java @@ -170,7 +170,7 @@ public StrikethroughChangedItem price(BigDecimal price) { * The price of the changed item. * @return price **/ - @ApiModelProperty(example = "99.99", required = true, value = "The price of the changed item.") + @ApiModelProperty(example = "100.0", required = true, value = "The price of the changed item.") public BigDecimal getPrice() { return price; diff --git a/src/main/java/one/talon/model/StrikethroughLabelingNotification.java b/src/main/java/one/talon/model/StrikethroughLabelingNotification.java index e15940c0..d101cd87 100644 --- a/src/main/java/one/talon/model/StrikethroughLabelingNotification.java +++ b/src/main/java/one/talon/model/StrikethroughLabelingNotification.java @@ -108,9 +108,58 @@ public VersionEnum read(final JsonReader jsonReader) throws IOException { @SerializedName(SERIALIZED_NAME_CHANGED_ITEMS) private List changedItems = new ArrayList(); + /** + * The type of notification. + */ + @JsonAdapter(NotificationTypeEnum.Adapter.class) + public enum NotificationTypeEnum { + STRIKETHROUGHPRICE("StrikethroughPrice"); + + private String value; + + NotificationTypeEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static NotificationTypeEnum fromValue(String value) { + for (NotificationTypeEnum b : NotificationTypeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final NotificationTypeEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public NotificationTypeEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return NotificationTypeEnum.fromValue(value); + } + } + } + public static final String SERIALIZED_NAME_NOTIFICATION_TYPE = "NotificationType"; @SerializedName(SERIALIZED_NAME_NOTIFICATION_TYPE) - private String notificationType; + private NotificationTypeEnum notificationType; + + public static final String SERIALIZED_NAME_SENT_AT = "sentAt"; + @SerializedName(SERIALIZED_NAME_SENT_AT) + private OffsetDateTime sentAt; public StrikethroughLabelingNotification version(VersionEnum version) { @@ -274,28 +323,50 @@ public void setChangedItems(List changedItems) { } - public StrikethroughLabelingNotification notificationType(String notificationType) { + public StrikethroughLabelingNotification notificationType(NotificationTypeEnum notificationType) { this.notificationType = notificationType; return this; } /** - * The type of the notification + * The type of notification. * @return notificationType **/ - @ApiModelProperty(required = true, value = "The type of the notification") + @ApiModelProperty(required = true, value = "The type of notification.") - public String getNotificationType() { + public NotificationTypeEnum getNotificationType() { return notificationType; } - public void setNotificationType(String notificationType) { + public void setNotificationType(NotificationTypeEnum notificationType) { this.notificationType = notificationType; } + public StrikethroughLabelingNotification sentAt(OffsetDateTime sentAt) { + + this.sentAt = sentAt; + return this; + } + + /** + * Timestamp at which the notification was sent. + * @return sentAt + **/ + @ApiModelProperty(required = true, value = "Timestamp at which the notification was sent.") + + public OffsetDateTime getSentAt() { + return sentAt; + } + + + public void setSentAt(OffsetDateTime sentAt) { + this.sentAt = sentAt; + } + + @Override public boolean equals(java.lang.Object o) { if (this == o) { @@ -312,12 +383,13 @@ public boolean equals(java.lang.Object o) { Objects.equals(this.totalBatches, strikethroughLabelingNotification.totalBatches) && Objects.equals(this.trigger, strikethroughLabelingNotification.trigger) && Objects.equals(this.changedItems, strikethroughLabelingNotification.changedItems) && - Objects.equals(this.notificationType, strikethroughLabelingNotification.notificationType); + Objects.equals(this.notificationType, strikethroughLabelingNotification.notificationType) && + Objects.equals(this.sentAt, strikethroughLabelingNotification.sentAt); } @Override public int hashCode() { - return Objects.hash(version, validFrom, applicationId, currentBatch, totalBatches, trigger, changedItems, notificationType); + return Objects.hash(version, validFrom, applicationId, currentBatch, totalBatches, trigger, changedItems, notificationType, sentAt); } @@ -333,6 +405,7 @@ public String toString() { sb.append(" trigger: ").append(toIndentedString(trigger)).append("\n"); sb.append(" changedItems: ").append(toIndentedString(changedItems)).append("\n"); sb.append(" notificationType: ").append(toIndentedString(notificationType)).append("\n"); + sb.append(" sentAt: ").append(toIndentedString(sentAt)).append("\n"); sb.append("}"); return sb.toString(); } diff --git a/src/main/java/one/talon/model/StrikethroughSetDiscountPerItemMemberEffectProps.java b/src/main/java/one/talon/model/StrikethroughSetDiscountPerItemMemberEffectProps.java new file mode 100644 index 00000000..23f44a6f --- /dev/null +++ b/src/main/java/one/talon/model/StrikethroughSetDiscountPerItemMemberEffectProps.java @@ -0,0 +1,127 @@ +/* + * Talon.One API + * 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}` + * + * The version of the OpenAPI document: + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package one.talon.model; + +import java.util.Objects; +import java.util.Arrays; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.io.IOException; + +/** + * setDiscountPerItem member effect in strikethrough pricing payload. + */ +@ApiModel(description = "setDiscountPerItem member effect in strikethrough pricing payload.") + +public class StrikethroughSetDiscountPerItemMemberEffectProps { + public static final String SERIALIZED_NAME_NAME = "name"; + @SerializedName(SERIALIZED_NAME_NAME) + private String name; + + public static final String SERIALIZED_NAME_VALUE = "value"; + @SerializedName(SERIALIZED_NAME_VALUE) + private Object value; + + + public StrikethroughSetDiscountPerItemMemberEffectProps name(String name) { + + this.name = name; + return this; + } + + /** + * effect name. + * @return name + **/ + @ApiModelProperty(example = "10% off members only", required = true, value = "effect name.") + + public String getName() { + return name; + } + + + public void setName(String name) { + this.name = name; + } + + + public StrikethroughSetDiscountPerItemMemberEffectProps value(Object value) { + + this.value = value; + return this; + } + + /** + * discount value. + * @return value + **/ + @ApiModelProperty(example = "9", required = true, value = "discount value.") + + public Object getValue() { + return value; + } + + + public void setValue(Object value) { + this.value = value; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + StrikethroughSetDiscountPerItemMemberEffectProps strikethroughSetDiscountPerItemMemberEffectProps = (StrikethroughSetDiscountPerItemMemberEffectProps) o; + return Objects.equals(this.name, strikethroughSetDiscountPerItemMemberEffectProps.name) && + Objects.equals(this.value, strikethroughSetDiscountPerItemMemberEffectProps.value); + } + + @Override + public int hashCode() { + return Objects.hash(name, value); + } + + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class StrikethroughSetDiscountPerItemMemberEffectProps {\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" value: ").append(toIndentedString(value)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + +} + diff --git a/src/main/java/one/talon/model/UpdateCouponsData.java b/src/main/java/one/talon/model/UpdateCouponsData.java index 9af59b51..f9247537 100644 --- a/src/main/java/one/talon/model/UpdateCouponsData.java +++ b/src/main/java/one/talon/model/UpdateCouponsData.java @@ -53,9 +53,54 @@ public class UpdateCouponsData { @SerializedName(SERIALIZED_NAME_EMPLOYEE_NAME) private String employeeName; + /** + * The type of the notification + */ + @JsonAdapter(NotificationTypeEnum.Adapter.class) + public enum NotificationTypeEnum { + COUPONSUPDATED("CouponsUpdated"); + + private String value; + + NotificationTypeEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static NotificationTypeEnum fromValue(String value) { + for (NotificationTypeEnum b : NotificationTypeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final NotificationTypeEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public NotificationTypeEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return NotificationTypeEnum.fromValue(value); + } + } + } + public static final String SERIALIZED_NAME_NOTIFICATION_TYPE = "NotificationType"; @SerializedName(SERIALIZED_NAME_NOTIFICATION_TYPE) - private String notificationType; + private NotificationTypeEnum notificationType; public UpdateCouponsData batchID(String batchID) { @@ -190,7 +235,7 @@ public void setEmployeeName(String employeeName) { } - public UpdateCouponsData notificationType(String notificationType) { + public UpdateCouponsData notificationType(NotificationTypeEnum notificationType) { this.notificationType = notificationType; return this; @@ -202,12 +247,12 @@ public UpdateCouponsData notificationType(String notificationType) { **/ @ApiModelProperty(required = true, value = "The type of the notification") - public String getNotificationType() { + public NotificationTypeEnum getNotificationType() { return notificationType; } - public void setNotificationType(String notificationType) { + public void setNotificationType(NotificationTypeEnum notificationType) { this.notificationType = notificationType; } diff --git a/src/test/java/one/talon/api/IntegrationApiTest.java b/src/test/java/one/talon/api/IntegrationApiTest.java index 5917ba42..3fff35f8 100644 --- a/src/test/java/one/talon/api/IntegrationApiTest.java +++ b/src/test/java/one/talon/api/IntegrationApiTest.java @@ -14,6 +14,8 @@ package one.talon.api; import one.talon.ApiException; +import one.talon.model.ActivateLoyaltyPoints; +import one.talon.model.ActivateLoyaltyPointsResponse; import one.talon.model.Audience; import one.talon.model.BestPriorPrice; import one.talon.model.BestPriorPriceRequest; @@ -72,6 +74,23 @@ public class IntegrationApiTest { private final IntegrationApi api = new IntegrationApi(); + /** + * Activate loyalty points + * + * Activate points when a defined action occurs. You can activate pending points using one of the following parameters: - `sessionId`: Activates all points earned in the specified session. - `transactionUUIDs`: Activates points earned in the transactions specified by the given UUIDs. + * + * @throws ApiException + * if the Api call fails + */ + @Test + public void activateLoyaltyPointsTest() throws ApiException { + Long loyaltyProgramId = null; + ActivateLoyaltyPoints body = null; + ActivateLoyaltyPointsResponse response = api.activateLoyaltyPoints(loyaltyProgramId, body); + + // TODO: test validations + } + /** * Fetch best prior price * @@ -107,7 +126,7 @@ public void createAudienceV2Test() throws ApiException { /** * Create coupon reservation * - * Create a coupon reservation for the specified customer profiles on the specified coupon. You can also create a reservation via the Campaign Manager using the [Create coupon code reservation](https://docs.talon.one/docs/product/rules/effects/using-effects#reserving-a-coupon-code) effect. **Note:** - If the **Reservation mandatory** option was selected when creating the specified coupon, the endpoint creates a **hard** reservation, meaning only users who have this coupon code reserved can redeem it. Otherwise, the endpoint creates a **soft** reservation, meaning the coupon is associated with the specified customer profiles (they show up when using the [List customer data](https://docs.talon.one/integration-api#operation/getCustomerInventory) endpoint), but any user can redeem it. This can be useful, for example, to display a _coupon wallet_ for customers when they visit your store. - If the **Coupon visibility** option was selected when creating the specified coupon, the coupon code is implicitly soft-reserved for all customers, and the code will be returned for all customer profiles in the [List customer data](https://docs.talon.one/integration-api#operation/getCustomerInventory) endpoint. - This endpoint overrides the coupon reservation limit set when [the coupon is created](https://docs.talon.one/docs/product/campaigns/coupons/creating-coupons). To ensure that coupons cannot be reserved after the reservation limit is reached, use the [Create coupon code reservation](https://docs.talon.one/docs/product/rules/effects/using-effects#reserving-a-coupon-code) effect in the Rule Builder and the [Update customer session](https://docs.talon.one/integration-api#tag/Customer-sessions/operation/updateCustomerSessionV2) endpoint. To delete a reservation, use the [Delete reservation](https://docs.talon.one/integration-api#tag/Coupons/operation/deleteCouponReservation) endpoint. + * Create a coupon reservation for the specified customer profiles on the specified coupon. You can also create a reservation via the Campaign Manager using the [Create coupon code reservation](https://docs.talon.one/docs/product/rules/effects/using-effects#reserving-a-coupon-code) effect. **Note:** - If the **Reservation mandatory** option was selected when creating the specified coupon, the endpoint creates a **hard** reservation, meaning only users who have this coupon code reserved can redeem it. Otherwise, the endpoint creates a **soft** reservation, meaning the coupon is associated with the specified customer profiles (they show up when using the [List customer data](https://docs.talon.one/integration-api#operation/getCustomerInventory) endpoint), but any user can redeem it. This can be useful, for example, to display a _coupon wallet_ for customers when they visit your store. - If the **Coupon visibility** option was selected when creating the specified coupon, the coupon code is implicitly soft-reserved for all customers, and the code will be returned for all customer profiles in the [List customer data](https://docs.talon.one/integration-api#operation/getCustomerInventory) endpoint. - This endpoint overrides the coupon reservation limit set when [the coupon is created](https://docs.talon.one/docs/product/campaigns/coupons/creating-coupons). To ensure that coupons cannot be reserved after the reservation limit is reached, use the [Create coupon code reservation](https://docs.talon.one/docs/product/rules/effects/using-effects#reserving-a-coupon-code) effect in the Rule Builder and the [Update customer session](https://docs.talon.one/integration-api#tag/Customer-sessions/operation/updateCustomerSessionV2) endpoint. To delete a reservation, use the [Delete reservation](https://docs.talon.one/integration-api#tag/Coupons/operation/deleteCouponReservation) endpoint. * * @throws ApiException * if the Api call fails @@ -402,7 +421,8 @@ public void getLoyaltyCardTransactionsTest() throws ApiException { List transactionUUIDs = null; Long pageSize = null; Long skip = null; - InlineResponse2003 response = api.getLoyaltyCardTransactions(loyaltyProgramId, loyaltyCardId, subledgerId, loyaltyTransactionType, startDate, endDate, customerSessionIDs, transactionUUIDs, pageSize, skip); + Boolean awaitsActivation = null; + InlineResponse2003 response = api.getLoyaltyCardTransactions(loyaltyProgramId, loyaltyCardId, subledgerId, loyaltyTransactionType, startDate, endDate, customerSessionIDs, transactionUUIDs, pageSize, skip, awaitsActivation); // TODO: test validations } @@ -451,7 +471,8 @@ public void getLoyaltyProgramProfileTransactionsTest() throws ApiException { OffsetDateTime endDate = null; Long pageSize = null; Long skip = null; - InlineResponse2004 response = api.getLoyaltyProgramProfileTransactions(loyaltyProgramId, integrationId, customerSessionIDs, transactionUUIDs, subledgerId, loyaltyTransactionType, startDate, endDate, pageSize, skip); + Boolean awaitsActivation = null; + InlineResponse2004 response = api.getLoyaltyProgramProfileTransactions(loyaltyProgramId, integrationId, customerSessionIDs, transactionUUIDs, subledgerId, loyaltyTransactionType, startDate, endDate, pageSize, skip, awaitsActivation); // TODO: test validations } @@ -493,7 +514,7 @@ public void linkLoyaltyCardToProfileTest() throws ApiException { /** * Reopen customer session * - * Reopen a closed [customer session](https://docs.talon.one/docs/dev/concepts/entities/customer-sessions). For example, if a session has been completed but still needs to be edited, you can reopen it with this endpoint. A reopen session is treated like a standard open session. When reopening a session: - The `talon_session_reopened` event is triggered. You can see it in the **Events** view in the Campaign Manager. - The session state is updated to `open`. - Any modified budgets and triggered effects are rolled back when the session closes. - Depending on the [return policy](https://docs.talon.one/docs/product/loyalty-programs/managing-loyalty-programs#return-policy) in your loyalty programs, points are rolled back in the following ways: - Pending points are rolled back automatically. - If **Active points deduction** setting is enabled, any points that were earned and activated when the session closed are rolled back. - If **Negative balance** is enabled, the rollback can create a negative points balance. <details> <summary><strong>Effects and budgets unimpacted by a session reopening</strong></summary> <div> <p>The following effects and budgets remain in the state they were in when the session closed:</p> <ul> <li>Add free item effect</li> <li>Award giveaway</li> <li>Coupon and referral creation</li> <li>Coupon reservation</li> <li>Custom effect</li> <li>Update attribute value</li> <li>Update cart item attribute value</li> </ul> </div> </details> <p>To see an example of a rollback, see the <a href=\"https://docs.talon.one/docs/dev/tutorials/rolling-back-effects\">Cancelling a session with campaign budgets</a>tutorial.</p> **Note:** If your order workflow requires you to create a new session instead of reopening a session, use the [Update customer session](https://docs.talon.one/integration-api#tag/Customer-sessions/operation/updateCustomerSessionV2) endpoint to cancel a closed session and create a new one. + * Reopen a closed [customer session](https://docs.talon.one/docs/dev/concepts/entities/customer-sessions). For example, if a session has been completed but still needs to be edited, you can reopen it with this endpoint. A reopen session is treated like a standard open session. When reopening a session: - The `talon_session_reopened` event is triggered. You can see it in the **Events** view in the Campaign Manager. - The session state is updated to `open`. - Any modified budgets and triggered effects are rolled back when the session closes. - Depending on the [return policy](https://docs.talon.one/docs/product/loyalty-programs/managing-loyalty-programs#return-policy) in your loyalty programs, points are rolled back in the following ways: - Pending points are rolled back automatically. - If **Active points deduction** setting is enabled, any points that were earned and activated when the session closed are rolled back. - If **Negative balance** is enabled, the rollback can create a negative points balance. <details> <summary><strong>Effects and budgets unimpacted by a session reopening</strong></summary> <div> <p>The following effects and budgets remain in the state they were in when the session closed:</p> <ul> <li>Add free item effect</li> <li>Award giveaway</li> <li>Coupon and referral creation</li> <li>Coupon reservation</li> <li>Custom effect</li> <li>Update attribute value</li> <li>Update cart item attribute value</li> </ul> </div> </details> <p>To see an example of a rollback, see the <a href=\"https://docs.talon.one/docs/dev/tutorials/rolling-back-effects\">Cancelling a session with campaign budgets</a> tutorial.</p> **Note:** If your order workflow requires you to create a new session instead of reopening a session, use the [Update customer session](https://docs.talon.one/integration-api#tag/Customer-sessions/operation/updateCustomerSessionV2) endpoint to cancel a closed session and create a new one. * * @throws ApiException * if the Api call fails @@ -560,6 +581,24 @@ public void trackEventV2Test() throws ApiException { // TODO: test validations } + /** + * Unlink customer profile from a loyalty card + * + * Unlink a customer profile from a [registered](https://docs.talon.one/docs/product/loyalty-programs/card-based/managing-loyalty-cards#linking-customer-profiles-to-a-loyalty-card) loyalty card. To get the `integrationId` of a customer profile, you can use the [Update customer session](https://docs.talon.one/integration-api#operation/updateCustomerSessionV2) endpoint. + * + * @throws ApiException + * if the Api call fails + */ + @Test + public void unlinkLoyaltyCardFromProfileTest() throws ApiException { + Long loyaltyProgramId = null; + String loyaltyCardId = null; + LoyaltyCardRegistration body = null; + LoyaltyCard response = api.unlinkLoyaltyCardFromProfile(loyaltyProgramId, loyaltyCardId, body); + + // TODO: test validations + } + /** * Update profile attributes for all customers in audience * diff --git a/src/test/java/one/talon/api/ManagementApiTest.java b/src/test/java/one/talon/api/ManagementApiTest.java index ddf755b8..4cfc7235 100644 --- a/src/test/java/one/talon/api/ManagementApiTest.java +++ b/src/test/java/one/talon/api/ManagementApiTest.java @@ -74,6 +74,7 @@ import one.talon.model.InlineResponse20037; import one.talon.model.InlineResponse20038; import one.talon.model.InlineResponse20039; +import one.talon.model.InlineResponse2004; import one.talon.model.InlineResponse20040; import one.talon.model.InlineResponse20041; import one.talon.model.InlineResponse20042; @@ -88,6 +89,7 @@ import one.talon.model.InlineResponse2008; import one.talon.model.InlineResponse2009; import one.talon.model.LoginParams; +import one.talon.model.LoyaltyBalancesWithTiers; import one.talon.model.LoyaltyCard; import one.talon.model.LoyaltyCardBatch; import one.talon.model.LoyaltyCardBatchResponse; @@ -1525,7 +1527,11 @@ public void getAttributesTest() throws ApiException { Long skip = null; String sort = null; String entity = null; - InlineResponse20036 response = api.getAttributes(pageSize, skip, sort, entity); + String applicationIds = null; + String type = null; + String kind = null; + String search = null; + InlineResponse20036 response = api.getAttributes(pageSize, skip, sort, entity, applicationIds, type, kind, search); // TODO: test validations } @@ -1719,10 +1725,14 @@ public void getCampaignsTest() throws ApiException { String tags = null; OffsetDateTime createdBefore = null; OffsetDateTime createdAfter = null; + OffsetDateTime startBefore = null; + OffsetDateTime startAfter = null; + OffsetDateTime endBefore = null; + OffsetDateTime endAfter = null; Long campaignGroupId = null; Long templateId = null; Long storeId = null; - InlineResponse2008 response = api.getCampaigns(applicationId, pageSize, skip, sort, campaignState, name, tags, createdBefore, createdAfter, campaignGroupId, templateId, storeId); + InlineResponse2008 response = api.getCampaigns(applicationId, pageSize, skip, sort, campaignState, name, tags, createdBefore, createdAfter, startBefore, startAfter, endBefore, endAfter, campaignGroupId, templateId, storeId); // TODO: test validations } @@ -2086,6 +2096,27 @@ public void getLoyaltyCardsTest() throws ApiException { // TODO: test validations } + /** + * Get customer's loyalty balances + * + * Retrieve loyalty ledger balances for the given Integration ID in the specified loyalty program. You can filter balances by date and subledger ID, and include tier-related information in the response. **Note**: If no filtering options are applied, you retrieve all loyalty balances on the current date for the given integration ID. Loyalty balances are calculated when Talon.One receives your request using the points stored in our database, so retrieving a large number of balances at once can impact performance. For more information, see: - [Managing card-based loyalty program data](https://docs.talon.one/docs/product/loyalty-programs/card-based/managing-loyalty-cards) - [Managing profile-based loyalty program data](https://docs.talon.one/docs/product/loyalty-programs/profile-based/managing-pb-lp-data) + * + * @throws ApiException + * if the Api call fails + */ + @Test + public void getLoyaltyLedgerBalancesTest() throws ApiException { + Long loyaltyProgramId = null; + String integrationId = null; + OffsetDateTime endDate = null; + String subledgerId = null; + Boolean includeTiers = null; + Boolean includeProjectedTier = null; + LoyaltyBalancesWithTiers response = api.getLoyaltyLedgerBalances(loyaltyProgramId, integrationId, endDate, subledgerId, includeTiers, includeProjectedTier); + + // TODO: test validations + } + /** * Get customer's full loyalty ledger * @@ -2119,6 +2150,32 @@ public void getLoyaltyProgramTest() throws ApiException { // TODO: test validations } + /** + * List customer's loyalty transactions + * + * Retrieve paginated results of loyalty transaction logs for the given Integration ID in the specified loyalty program. You can filter transactions by date or by ledger (subledger or main ledger). If no filters are applied, the last 50 loyalty transactions for the given integration ID are returned. **Note:** To retrieve all loyalty program transaction logs in a given loyalty program, use the [List loyalty program transactions](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyProgramTransactions) endpoint. + * + * @throws ApiException + * if the Api call fails + */ + @Test + public void getLoyaltyProgramProfileLedgerTransactionsTest() throws ApiException { + Long loyaltyProgramId = null; + String integrationId = null; + List customerSessionIDs = null; + List transactionUUIDs = null; + String subledgerId = null; + String loyaltyTransactionType = null; + OffsetDateTime startDate = null; + OffsetDateTime endDate = null; + Long pageSize = null; + Long skip = null; + Boolean awaitsActivation = null; + InlineResponse2004 response = api.getLoyaltyProgramProfileLedgerTransactions(loyaltyProgramId, integrationId, customerSessionIDs, transactionUUIDs, subledgerId, loyaltyTransactionType, startDate, endDate, pageSize, skip, awaitsActivation); + + // TODO: test validations + } + /** * List loyalty program transactions * @@ -2138,7 +2195,8 @@ public void getLoyaltyProgramTransactionsTest() throws ApiException { OffsetDateTime endDate = null; Long pageSize = null; Long skip = null; - InlineResponse20017 response = api.getLoyaltyProgramTransactions(loyaltyProgramId, loyaltyTransactionType, subledgerId, customerSessionIDs, transactionUUIDs, startDate, endDate, pageSize, skip); + Boolean awaitsActivation = null; + InlineResponse20017 response = api.getLoyaltyProgramTransactions(loyaltyProgramId, loyaltyTransactionType, subledgerId, customerSessionIDs, transactionUUIDs, startDate, endDate, pageSize, skip, awaitsActivation); // TODO: test validations } @@ -2537,7 +2595,7 @@ public void importLoyaltyCustomersTiersTest() throws ApiException { /** * Import loyalty points * - * Upload a CSV file containing the loyalty points you want to import into a given loyalty program. Send the file as multipart data. Depending on the type of loyalty program, you can import points into a given customer profile or loyalty card. The CSV file contains the following columns: - `customerprofileid` (optional): For profile-based loyalty programs, the integration ID of the customer profile where the loyalty points are imported. **Note**: If the customer profile does not exist, it will be created. The profile will not be visible in any Application until a session or profile update is received for that profile. - `identifier` (optional): For card-based loyalty programs, the identifier of the loyalty card where the loyalty points are imported. - `amount`: The amount of points to award to the customer profile. - `startdate` (optional): The earliest date when the points can be redeemed. The points are `active` from this date until the expiration date. **Note**: It must be an RFC3339 timestamp string or string `immediate`. Empty or missing values are considered `immediate`. - `expirydate` (optional): The latest date when the points can be redeemed. The points are `expired` after this date. **Note**: It must be an RFC3339 timestamp string or string `unlimited`. Empty or missing values are considered `unlimited`. - `subledgerid` (optional): The ID of the subledger that should received the points. - `reason` (optional): The reason why these points are awarded. You can use the time zone of your choice. It is converted to UTC internally by Talon.One. **Note:** For existing customer profiles and loyalty cards, the imported points are added to any previous active or pending points, depending on the value provided for `startdate`. If `startdate` matches the current date, the imported points are _active_. If it is later, the points are _pending_ until the date provided for `startdate` is reached. **Note:** We recommend limiting your file size to 500MB. **Example for profile-based programs:** ```text customerprofileid,amount,startdate,expirydate,subledgerid,reason URNGV8294NV,100,2009-11-10T23:00:00Z,2009-11-11T23:00:00Z,subledger1,appeasement ``` **Example for card-based programs:** ```text identifier,amount,startdate,expirydate,subledgerid,reason summer-loyalty-card-0543,100,2009-11-10T23:00:00Z,2009-11-11T23:00:00Z,subledger1,appeasement ``` + * Upload a CSV file containing the loyalty points you want to import into a given loyalty program. Send the file as multipart data. Depending on the type of loyalty program, you can import points into a given customer profile or loyalty card. The CSV file contains the following columns: - `customerprofileid` (optional): For profile-based loyalty programs, the integration ID of the customer profile where the loyalty points are imported. **Note**: If the customer profile does not exist, it will be created. The profile will not be visible in any Application until a session or profile update is received for that profile. - `identifier` (optional): For card-based loyalty programs, the identifier of the loyalty card where the loyalty points are imported. - `amount`: The amount of points to award to the customer profile. - `startdate` (optional): The earliest date when the points can be redeemed. The points are `active` from this date until the expiration date. This parameter accepts one of the following values: - A timestamp string in RFC3339 format. - `immediate` - `on_action` **Note**: Empty or missing values default to `immediate`. - `expirydate` (optional): The latest date when the points can be redeemed. The points are `expired` after this date. **Note**: It must be an RFC3339 timestamp string or string `unlimited`. Empty or missing values are considered `unlimited`. If passed, `validityDuration` should be omitted. - `validityDuration` (optional): The duration for which the points remain active, relative to the activation date. The time format is an **integer** followed by one letter indicating the time unit. Examples: `30s`, `40m`, `1h`, `5D`, `7W`, `10M`, `15Y`. Available units: - `s`: seconds - `m`: minutes - `h`: hours - `D`: days - `W`: weeks - `M`: months - `Y`: years You can round certain units up or down: - `_D` for rounding down days only. Signifies the start of the day. - `_U` for rounding up days, weeks, months and years. Signifies the end of the day, week, month or year. If passed, `expirydate` should be omitted. - `subledgerid` (optional): The ID of the subledger that should received the points. - `reason` (optional): The reason why these points are awarded. You can use the time zone of your choice. It is converted to UTC internally by Talon.One. **Note:** For existing customer profiles and loyalty cards, the imported points are added to any previous active or pending points, depending on the value provided for `startdate`. If `startdate` matches the current date, the imported points are _active_. If it is later, the points are _pending_ until the date provided for `startdate` is reached. **Note:** We recommend limiting your file size to 500MB. **Example for profile-based programs:** ```text customerprofileid,amount,startdate,expirydate,subledgerid,reason URNGV8294NV,100,2009-11-10T23:00:00Z,2009-11-11T23:00:00Z,subledger1,appeasement ``` **Example for card-based programs:** ```text identifier,amount,startdate,expirydate,subledgerid,reason summer-loyalty-card-0543,100,2009-11-10T23:00:00Z,2009-11-11T23:00:00Z,subledger1,appeasement ``` * * @throws ApiException * if the Api call fails diff --git a/src/test/java/one/talon/model/ActivateLoyaltyPointsResponseTest.java b/src/test/java/one/talon/model/ActivateLoyaltyPointsResponseTest.java new file mode 100644 index 00000000..c6132819 --- /dev/null +++ b/src/test/java/one/talon/model/ActivateLoyaltyPointsResponseTest.java @@ -0,0 +1,54 @@ +/* + * Talon.One API + * 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}` + * + * The version of the OpenAPI document: + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package one.talon.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import one.talon.model.LoyaltyLedgerEntry; +import org.junit.Assert; +import org.junit.Ignore; +import org.junit.Test; + + +/** + * Model tests for ActivateLoyaltyPointsResponse + */ +public class ActivateLoyaltyPointsResponseTest { + private final ActivateLoyaltyPointsResponse model = new ActivateLoyaltyPointsResponse(); + + /** + * Model tests for ActivateLoyaltyPointsResponse + */ + @Test + public void testActivateLoyaltyPointsResponse() { + // TODO: test ActivateLoyaltyPointsResponse + } + + /** + * Test the property 'ledgerEntries' + */ + @Test + public void ledgerEntriesTest() { + // TODO: test ledgerEntries + } + +} diff --git a/src/test/java/one/talon/model/ActivateLoyaltyPointsTest.java b/src/test/java/one/talon/model/ActivateLoyaltyPointsTest.java new file mode 100644 index 00000000..0c8cc483 --- /dev/null +++ b/src/test/java/one/talon/model/ActivateLoyaltyPointsTest.java @@ -0,0 +1,62 @@ +/* + * Talon.One API + * 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}` + * + * The version of the OpenAPI document: + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package one.talon.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import java.util.UUID; +import org.junit.Assert; +import org.junit.Ignore; +import org.junit.Test; + + +/** + * Model tests for ActivateLoyaltyPoints + */ +public class ActivateLoyaltyPointsTest { + private final ActivateLoyaltyPoints model = new ActivateLoyaltyPoints(); + + /** + * Model tests for ActivateLoyaltyPoints + */ + @Test + public void testActivateLoyaltyPoints() { + // TODO: test ActivateLoyaltyPoints + } + + /** + * Test the property 'transactionUUIDs' + */ + @Test + public void transactionUUIDsTest() { + // TODO: test transactionUUIDs + } + + /** + * Test the property 'sessionId' + */ + @Test + public void sessionIdTest() { + // TODO: test sessionId + } + +} diff --git a/src/test/java/one/talon/model/AddLoyaltyPointsEffectPropsTest.java b/src/test/java/one/talon/model/AddLoyaltyPointsEffectPropsTest.java index 18db912d..cf0e98b1 100644 --- a/src/test/java/one/talon/model/AddLoyaltyPointsEffectPropsTest.java +++ b/src/test/java/one/talon/model/AddLoyaltyPointsEffectPropsTest.java @@ -154,4 +154,20 @@ public void bundleNameTest() { // TODO: test bundleName } + /** + * Test the property 'awaitsActivation' + */ + @Test + public void awaitsActivationTest() { + // TODO: test awaitsActivation + } + + /** + * Test the property 'validityDuration' + */ + @Test + public void validityDurationTest() { + // TODO: test validityDuration + } + } diff --git a/src/test/java/one/talon/model/AddedDeductedPointsBalancesActionTest.java b/src/test/java/one/talon/model/AddedDeductedPointsBalancesActionTest.java new file mode 100644 index 00000000..211a39ad --- /dev/null +++ b/src/test/java/one/talon/model/AddedDeductedPointsBalancesActionTest.java @@ -0,0 +1,85 @@ +/* + * Talon.One API + * 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}` + * + * The version of the OpenAPI document: + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package one.talon.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.io.IOException; +import java.math.BigDecimal; +import org.threeten.bp.OffsetDateTime; +import org.junit.Assert; +import org.junit.Ignore; +import org.junit.Test; + + +/** + * Model tests for AddedDeductedPointsBalancesAction + */ +public class AddedDeductedPointsBalancesActionTest { + private final AddedDeductedPointsBalancesAction model = new AddedDeductedPointsBalancesAction(); + + /** + * Model tests for AddedDeductedPointsBalancesAction + */ + @Test + public void testAddedDeductedPointsBalancesAction() { + // TODO: test AddedDeductedPointsBalancesAction + } + + /** + * Test the property 'amount' + */ + @Test + public void amountTest() { + // TODO: test amount + } + + /** + * Test the property 'reason' + */ + @Test + public void reasonTest() { + // TODO: test reason + } + + /** + * Test the property 'operation' + */ + @Test + public void operationTest() { + // TODO: test operation + } + + /** + * Test the property 'startDate' + */ + @Test + public void startDateTest() { + // TODO: test startDate + } + + /** + * Test the property 'expiryDate' + */ + @Test + public void expiryDateTest() { + // TODO: test expiryDate + } + +} diff --git a/src/test/java/one/talon/model/AddedDeductedPointsBalancesNotificationTest.java b/src/test/java/one/talon/model/AddedDeductedPointsBalancesNotificationTest.java new file mode 100644 index 00000000..28f4447b --- /dev/null +++ b/src/test/java/one/talon/model/AddedDeductedPointsBalancesNotificationTest.java @@ -0,0 +1,127 @@ +/* + * Talon.One API + * 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}` + * + * The version of the OpenAPI document: + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package one.talon.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.io.IOException; +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.List; +import one.talon.model.AddedDeductedPointsBalancesAction; +import org.junit.Assert; +import org.junit.Ignore; +import org.junit.Test; + + +/** + * Model tests for AddedDeductedPointsBalancesNotification + */ +public class AddedDeductedPointsBalancesNotificationTest { + private final AddedDeductedPointsBalancesNotification model = new AddedDeductedPointsBalancesNotification(); + + /** + * Model tests for AddedDeductedPointsBalancesNotification + */ + @Test + public void testAddedDeductedPointsBalancesNotification() { + // TODO: test AddedDeductedPointsBalancesNotification + } + + /** + * Test the property 'employeeName' + */ + @Test + public void employeeNameTest() { + // TODO: test employeeName + } + + /** + * Test the property 'loyaltyProgramID' + */ + @Test + public void loyaltyProgramIDTest() { + // TODO: test loyaltyProgramID + } + + /** + * Test the property 'notificationType' + */ + @Test + public void notificationTypeTest() { + // TODO: test notificationType + } + + /** + * Test the property 'profileIntegrationID' + */ + @Test + public void profileIntegrationIDTest() { + // TODO: test profileIntegrationID + } + + /** + * Test the property 'sessionIntegrationID' + */ + @Test + public void sessionIntegrationIDTest() { + // TODO: test sessionIntegrationID + } + + /** + * Test the property 'subledgerID' + */ + @Test + public void subledgerIDTest() { + // TODO: test subledgerID + } + + /** + * Test the property 'typeOfChange' + */ + @Test + public void typeOfChangeTest() { + // TODO: test typeOfChange + } + + /** + * Test the property 'userID' + */ + @Test + public void userIDTest() { + // TODO: test userID + } + + /** + * Test the property 'actions' + */ + @Test + public void actionsTest() { + // TODO: test actions + } + + /** + * Test the property 'currentPoints' + */ + @Test + public void currentPointsTest() { + // TODO: test currentPoints + } + +} diff --git a/src/test/java/one/talon/model/AddedDeductedPointsNotificationTest.java b/src/test/java/one/talon/model/AddedDeductedPointsNotificationTest.java index 379f93ae..caad91d9 100644 --- a/src/test/java/one/talon/model/AddedDeductedPointsNotificationTest.java +++ b/src/test/java/one/talon/model/AddedDeductedPointsNotificationTest.java @@ -43,11 +43,11 @@ public void testAddedDeductedPointsNotification() { } /** - * Test the property 'profileIntegrationID' + * Test the property 'employeeName' */ @Test - public void profileIntegrationIDTest() { - // TODO: test profileIntegrationID + public void employeeNameTest() { + // TODO: test employeeName } /** @@ -59,43 +59,43 @@ public void loyaltyProgramIDTest() { } /** - * Test the property 'subledgerID' + * Test the property 'notificationType' */ @Test - public void subledgerIDTest() { - // TODO: test subledgerID + public void notificationTypeTest() { + // TODO: test notificationType } /** - * Test the property 'amount' + * Test the property 'profileIntegrationID' */ @Test - public void amountTest() { - // TODO: test amount + public void profileIntegrationIDTest() { + // TODO: test profileIntegrationID } /** - * Test the property 'reason' + * Test the property 'sessionIntegrationID' */ @Test - public void reasonTest() { - // TODO: test reason + public void sessionIntegrationIDTest() { + // TODO: test sessionIntegrationID } /** - * Test the property 'typeOfChange' + * Test the property 'subledgerID' */ @Test - public void typeOfChangeTest() { - // TODO: test typeOfChange + public void subledgerIDTest() { + // TODO: test subledgerID } /** - * Test the property 'employeeName' + * Test the property 'typeOfChange' */ @Test - public void employeeNameTest() { - // TODO: test employeeName + public void typeOfChangeTest() { + // TODO: test typeOfChange } /** @@ -107,43 +107,43 @@ public void userIDTest() { } /** - * Test the property 'operation' + * Test the property 'amount' */ @Test - public void operationTest() { - // TODO: test operation + public void amountTest() { + // TODO: test amount } /** - * Test the property 'startDate' + * Test the property 'expiryDate' */ @Test - public void startDateTest() { - // TODO: test startDate + public void expiryDateTest() { + // TODO: test expiryDate } /** - * Test the property 'expiryDate' + * Test the property 'operation' */ @Test - public void expiryDateTest() { - // TODO: test expiryDate + public void operationTest() { + // TODO: test operation } /** - * Test the property 'sessionIntegrationID' + * Test the property 'reason' */ @Test - public void sessionIntegrationIDTest() { - // TODO: test sessionIntegrationID + public void reasonTest() { + // TODO: test reason } /** - * Test the property 'notificationType' + * Test the property 'startDate' */ @Test - public void notificationTypeTest() { - // TODO: test notificationType + public void startDateTest() { + // TODO: test startDate } } diff --git a/src/test/java/one/talon/model/BestPriorPriceRequestTest.java b/src/test/java/one/talon/model/BestPriorPriceRequestTest.java index bd2636dc..4d49ae2e 100644 --- a/src/test/java/one/talon/model/BestPriorPriceRequestTest.java +++ b/src/test/java/one/talon/model/BestPriorPriceRequestTest.java @@ -23,7 +23,7 @@ import java.io.IOException; import java.util.ArrayList; import java.util.List; -import one.talon.model.BestPriorPriceRequestTarget; +import one.talon.model.BestPriorTarget; import org.threeten.bp.OffsetDateTime; import org.junit.Assert; import org.junit.Ignore; diff --git a/src/test/java/one/talon/model/BestPriorTargetTest.java b/src/test/java/one/talon/model/BestPriorTargetTest.java new file mode 100644 index 00000000..ef97ff60 --- /dev/null +++ b/src/test/java/one/talon/model/BestPriorTargetTest.java @@ -0,0 +1,59 @@ +/* + * Talon.One API + * 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}` + * + * The version of the OpenAPI document: + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package one.talon.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.io.IOException; +import org.junit.Assert; +import org.junit.Ignore; +import org.junit.Test; + + +/** + * Model tests for BestPriorTarget + */ +public class BestPriorTargetTest { + private final BestPriorTarget model = new BestPriorTarget(); + + /** + * Model tests for BestPriorTarget + */ + @Test + public void testBestPriorTarget() { + // TODO: test BestPriorTarget + } + + /** + * Test the property 'targetType' + */ + @Test + public void targetTypeTest() { + // TODO: test targetType + } + + /** + * Test the property 'audienceID' + */ + @Test + public void audienceIDTest() { + // TODO: test audienceID + } + +} diff --git a/src/test/java/one/talon/model/CampaignLogSummaryTest.java b/src/test/java/one/talon/model/CampaignLogSummaryTest.java new file mode 100644 index 00000000..c58bc36c --- /dev/null +++ b/src/test/java/one/talon/model/CampaignLogSummaryTest.java @@ -0,0 +1,84 @@ +/* + * Talon.One API + * 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}` + * + * The version of the OpenAPI document: + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package one.talon.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.io.IOException; +import org.threeten.bp.OffsetDateTime; +import org.junit.Assert; +import org.junit.Ignore; +import org.junit.Test; + + +/** + * Model tests for CampaignLogSummary + */ +public class CampaignLogSummaryTest { + private final CampaignLogSummary model = new CampaignLogSummary(); + + /** + * Model tests for CampaignLogSummary + */ + @Test + public void testCampaignLogSummary() { + // TODO: test CampaignLogSummary + } + + /** + * Test the property 'name' + */ + @Test + public void nameTest() { + // TODO: test name + } + + /** + * Test the property 'email' + */ + @Test + public void emailTest() { + // TODO: test email + } + + /** + * Test the property 'created' + */ + @Test + public void createdTest() { + // TODO: test created + } + + /** + * Test the property 'action' + */ + @Test + public void actionTest() { + // TODO: test action + } + + /** + * Test the property 'summary' + */ + @Test + public void summaryTest() { + // TODO: test summary + } + +} diff --git a/src/test/java/one/talon/model/CampaignTemplateTest.java b/src/test/java/one/talon/model/CampaignTemplateTest.java index 78d60c60..fdbe33b1 100644 --- a/src/test/java/one/talon/model/CampaignTemplateTest.java +++ b/src/test/java/one/talon/model/CampaignTemplateTest.java @@ -224,6 +224,14 @@ public void campaignTypeTest() { // TODO: test campaignType } + /** + * Test the property 'campaignsCount' + */ + @Test + public void campaignsCountTest() { + // TODO: test campaignsCount + } + /** * Test the property 'updated' */ diff --git a/src/test/java/one/talon/model/CardAddedDeductedPointsBalancesNotificationTest.java b/src/test/java/one/talon/model/CardAddedDeductedPointsBalancesNotificationTest.java new file mode 100644 index 00000000..3a8c0277 --- /dev/null +++ b/src/test/java/one/talon/model/CardAddedDeductedPointsBalancesNotificationTest.java @@ -0,0 +1,143 @@ +/* + * Talon.One API + * 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}` + * + * The version of the OpenAPI document: + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package one.talon.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.io.IOException; +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.List; +import one.talon.model.AddedDeductedPointsBalancesAction; +import org.junit.Assert; +import org.junit.Ignore; +import org.junit.Test; + + +/** + * Model tests for CardAddedDeductedPointsBalancesNotification + */ +public class CardAddedDeductedPointsBalancesNotificationTest { + private final CardAddedDeductedPointsBalancesNotification model = new CardAddedDeductedPointsBalancesNotification(); + + /** + * Model tests for CardAddedDeductedPointsBalancesNotification + */ + @Test + public void testCardAddedDeductedPointsBalancesNotification() { + // TODO: test CardAddedDeductedPointsBalancesNotification + } + + /** + * Test the property 'cardIdentifier' + */ + @Test + public void cardIdentifierTest() { + // TODO: test cardIdentifier + } + + /** + * Test the property 'employeeName' + */ + @Test + public void employeeNameTest() { + // TODO: test employeeName + } + + /** + * Test the property 'loyaltyProgramID' + */ + @Test + public void loyaltyProgramIDTest() { + // TODO: test loyaltyProgramID + } + + /** + * Test the property 'notificationType' + */ + @Test + public void notificationTypeTest() { + // TODO: test notificationType + } + + /** + * Test the property 'profileIntegrationIDs' + */ + @Test + public void profileIntegrationIDsTest() { + // TODO: test profileIntegrationIDs + } + + /** + * Test the property 'sessionIntegrationID' + */ + @Test + public void sessionIntegrationIDTest() { + // TODO: test sessionIntegrationID + } + + /** + * Test the property 'subledgerID' + */ + @Test + public void subledgerIDTest() { + // TODO: test subledgerID + } + + /** + * Test the property 'typeOfChange' + */ + @Test + public void typeOfChangeTest() { + // TODO: test typeOfChange + } + + /** + * Test the property 'userID' + */ + @Test + public void userIDTest() { + // TODO: test userID + } + + /** + * Test the property 'usersPerCardLimit' + */ + @Test + public void usersPerCardLimitTest() { + // TODO: test usersPerCardLimit + } + + /** + * Test the property 'actions' + */ + @Test + public void actionsTest() { + // TODO: test actions + } + + /** + * Test the property 'currentPoints' + */ + @Test + public void currentPointsTest() { + // TODO: test currentPoints + } + +} diff --git a/src/test/java/one/talon/model/CardAddedDeductedPointsNotificationTest.java b/src/test/java/one/talon/model/CardAddedDeductedPointsNotificationTest.java index 42b7275e..07e138c2 100644 --- a/src/test/java/one/talon/model/CardAddedDeductedPointsNotificationTest.java +++ b/src/test/java/one/talon/model/CardAddedDeductedPointsNotificationTest.java @@ -45,11 +45,19 @@ public void testCardAddedDeductedPointsNotification() { } /** - * Test the property 'profileIntegrationIDs' + * Test the property 'cardIdentifier' */ @Test - public void profileIntegrationIDsTest() { - // TODO: test profileIntegrationIDs + public void cardIdentifierTest() { + // TODO: test cardIdentifier + } + + /** + * Test the property 'employeeName' + */ + @Test + public void employeeNameTest() { + // TODO: test employeeName } /** @@ -61,43 +69,43 @@ public void loyaltyProgramIDTest() { } /** - * Test the property 'subledgerID' + * Test the property 'notificationType' */ @Test - public void subledgerIDTest() { - // TODO: test subledgerID + public void notificationTypeTest() { + // TODO: test notificationType } /** - * Test the property 'amount' + * Test the property 'profileIntegrationIDs' */ @Test - public void amountTest() { - // TODO: test amount + public void profileIntegrationIDsTest() { + // TODO: test profileIntegrationIDs } /** - * Test the property 'reason' + * Test the property 'sessionIntegrationID' */ @Test - public void reasonTest() { - // TODO: test reason + public void sessionIntegrationIDTest() { + // TODO: test sessionIntegrationID } /** - * Test the property 'typeOfChange' + * Test the property 'subledgerID' */ @Test - public void typeOfChangeTest() { - // TODO: test typeOfChange + public void subledgerIDTest() { + // TODO: test subledgerID } /** - * Test the property 'employeeName' + * Test the property 'typeOfChange' */ @Test - public void employeeNameTest() { - // TODO: test employeeName + public void typeOfChangeTest() { + // TODO: test typeOfChange } /** @@ -109,19 +117,19 @@ public void userIDTest() { } /** - * Test the property 'operation' + * Test the property 'usersPerCardLimit' */ @Test - public void operationTest() { - // TODO: test operation + public void usersPerCardLimitTest() { + // TODO: test usersPerCardLimit } /** - * Test the property 'startDate' + * Test the property 'amount' */ @Test - public void startDateTest() { - // TODO: test startDate + public void amountTest() { + // TODO: test amount } /** @@ -133,35 +141,27 @@ public void expiryDateTest() { } /** - * Test the property 'sessionIntegrationID' - */ - @Test - public void sessionIntegrationIDTest() { - // TODO: test sessionIntegrationID - } - - /** - * Test the property 'notificationType' + * Test the property 'operation' */ @Test - public void notificationTypeTest() { - // TODO: test notificationType + public void operationTest() { + // TODO: test operation } /** - * Test the property 'cardIdentifier' + * Test the property 'reason' */ @Test - public void cardIdentifierTest() { - // TODO: test cardIdentifier + public void reasonTest() { + // TODO: test reason } /** - * Test the property 'usersPerCardLimit' + * Test the property 'startDate' */ @Test - public void usersPerCardLimitTest() { - // TODO: test usersPerCardLimit + public void startDateTest() { + // TODO: test startDate } } diff --git a/src/test/java/one/talon/model/CardLedgerPointsEntryIntegrationAPITest.java b/src/test/java/one/talon/model/CardLedgerPointsEntryIntegrationAPITest.java index fcfd6c20..bac1aa2f 100644 --- a/src/test/java/one/talon/model/CardLedgerPointsEntryIntegrationAPITest.java +++ b/src/test/java/one/talon/model/CardLedgerPointsEntryIntegrationAPITest.java @@ -130,4 +130,12 @@ public void amountTest() { // TODO: test amount } + /** + * Test the property 'validityDuration' + */ + @Test + public void validityDurationTest() { + // TODO: test validityDuration + } + } diff --git a/src/test/java/one/talon/model/CardLedgerTransactionLogEntryIntegrationAPITest.java b/src/test/java/one/talon/model/CardLedgerTransactionLogEntryIntegrationAPITest.java index 8c221fb7..8b5910d6 100644 --- a/src/test/java/one/talon/model/CardLedgerTransactionLogEntryIntegrationAPITest.java +++ b/src/test/java/one/talon/model/CardLedgerTransactionLogEntryIntegrationAPITest.java @@ -154,4 +154,12 @@ public void ruleNameTest() { // TODO: test ruleName } + /** + * Test the property 'validityDuration' + */ + @Test + public void validityDurationTest() { + // TODO: test validityDuration + } + } diff --git a/src/test/java/one/talon/model/CouponFailureSummaryTest.java b/src/test/java/one/talon/model/CouponFailureSummaryTest.java new file mode 100644 index 00000000..c9596eed --- /dev/null +++ b/src/test/java/one/talon/model/CouponFailureSummaryTest.java @@ -0,0 +1,132 @@ +/* + * Talon.One API + * 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}` + * + * The version of the OpenAPI document: + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package one.talon.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.io.IOException; +import org.threeten.bp.OffsetDateTime; +import org.junit.Assert; +import org.junit.Ignore; +import org.junit.Test; + + +/** + * Model tests for CouponFailureSummary + */ +public class CouponFailureSummaryTest { + private final CouponFailureSummary model = new CouponFailureSummary(); + + /** + * Model tests for CouponFailureSummary + */ + @Test + public void testCouponFailureSummary() { + // TODO: test CouponFailureSummary + } + + /** + * Test the property 'id' + */ + @Test + public void idTest() { + // TODO: test id + } + + /** + * Test the property 'eventID' + */ + @Test + public void eventIDTest() { + // TODO: test eventID + } + + /** + * Test the property 'sessionID' + */ + @Test + public void sessionIDTest() { + // TODO: test sessionID + } + + /** + * Test the property 'profileID' + */ + @Test + public void profileIDTest() { + // TODO: test profileID + } + + /** + * Test the property 'status' + */ + @Test + public void statusTest() { + // TODO: test status + } + + /** + * Test the property 'couponCode' + */ + @Test + public void couponCodeTest() { + // TODO: test couponCode + } + + /** + * Test the property 'language' + */ + @Test + public void languageTest() { + // TODO: test language + } + + /** + * Test the property 'shortSummary' + */ + @Test + public void shortSummaryTest() { + // TODO: test shortSummary + } + + /** + * Test the property 'longSummary' + */ + @Test + public void longSummaryTest() { + // TODO: test longSummary + } + + /** + * Test the property 'createdAt' + */ + @Test + public void createdAtTest() { + // TODO: test createdAt + } + + /** + * Test the property 'updatedAt' + */ + @Test + public void updatedAtTest() { + // TODO: test updatedAt + } + +} diff --git a/src/test/java/one/talon/model/CouponRejectionsTest.java b/src/test/java/one/talon/model/CouponRejectionsTest.java new file mode 100644 index 00000000..652497f1 --- /dev/null +++ b/src/test/java/one/talon/model/CouponRejectionsTest.java @@ -0,0 +1,70 @@ +/* + * Talon.One API + * 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}` + * + * The version of the OpenAPI document: + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package one.talon.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import one.talon.model.SessionCoupons; +import org.junit.Assert; +import org.junit.Ignore; +import org.junit.Test; + + +/** + * Model tests for CouponRejections + */ +public class CouponRejectionsTest { + private final CouponRejections model = new CouponRejections(); + + /** + * Model tests for CouponRejections + */ + @Test + public void testCouponRejections() { + // TODO: test CouponRejections + } + + /** + * Test the property 'sessionDetails' + */ + @Test + public void sessionDetailsTest() { + // TODO: test sessionDetails + } + + /** + * Test the property 'applicationId' + */ + @Test + public void applicationIdTest() { + // TODO: test applicationId + } + + /** + * Test the property 'language' + */ + @Test + public void languageTest() { + // TODO: test language + } + +} diff --git a/src/test/java/one/talon/model/DeleteLoyaltyTransactionsRequestTest.java b/src/test/java/one/talon/model/DeleteLoyaltyTransactionsRequestTest.java new file mode 100644 index 00000000..388c0920 --- /dev/null +++ b/src/test/java/one/talon/model/DeleteLoyaltyTransactionsRequestTest.java @@ -0,0 +1,61 @@ +/* + * Talon.One API + * 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}` + * + * The version of the OpenAPI document: + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package one.talon.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import org.junit.Assert; +import org.junit.Ignore; +import org.junit.Test; + + +/** + * Model tests for DeleteLoyaltyTransactionsRequest + */ +public class DeleteLoyaltyTransactionsRequestTest { + private final DeleteLoyaltyTransactionsRequest model = new DeleteLoyaltyTransactionsRequest(); + + /** + * Model tests for DeleteLoyaltyTransactionsRequest + */ + @Test + public void testDeleteLoyaltyTransactionsRequest() { + // TODO: test DeleteLoyaltyTransactionsRequest + } + + /** + * Test the property 'scope' + */ + @Test + public void scopeTest() { + // TODO: test scope + } + + /** + * Test the property 'subledgerIds' + */ + @Test + public void subledgerIdsTest() { + // TODO: test subledgerIds + } + +} diff --git a/src/test/java/one/talon/model/EventV3Test.java b/src/test/java/one/talon/model/EventV3Test.java new file mode 100644 index 00000000..61d3e20a --- /dev/null +++ b/src/test/java/one/talon/model/EventV3Test.java @@ -0,0 +1,109 @@ +/* + * Talon.One API + * 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}` + * + * The version of the OpenAPI document: + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package one.talon.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import org.junit.Assert; +import org.junit.Ignore; +import org.junit.Test; + + +/** + * Model tests for EventV3 + */ +public class EventV3Test { + private final EventV3 model = new EventV3(); + + /** + * Model tests for EventV3 + */ + @Test + public void testEventV3() { + // TODO: test EventV3 + } + + /** + * Test the property 'profileId' + */ + @Test + public void profileIdTest() { + // TODO: test profileId + } + + /** + * Test the property 'storeIntegrationId' + */ + @Test + public void storeIntegrationIdTest() { + // TODO: test storeIntegrationId + } + + /** + * Test the property 'evaluableCampaignIds' + */ + @Test + public void evaluableCampaignIdsTest() { + // TODO: test evaluableCampaignIds + } + + /** + * Test the property 'integrationId' + */ + @Test + public void integrationIdTest() { + // TODO: test integrationId + } + + /** + * Test the property 'type' + */ + @Test + public void typeTest() { + // TODO: test type + } + + /** + * Test the property 'attributes' + */ + @Test + public void attributesTest() { + // TODO: test attributes + } + + /** + * Test the property 'connectedSessionID' + */ + @Test + public void connectedSessionIDTest() { + // TODO: test connectedSessionID + } + + /** + * Test the property 'previousEventID' + */ + @Test + public void previousEventIDTest() { + // TODO: test previousEventID + } + +} diff --git a/src/test/java/one/talon/model/GenerateCampaignSummaryTest.java b/src/test/java/one/talon/model/GenerateCampaignSummaryTest.java new file mode 100644 index 00000000..1e14b713 --- /dev/null +++ b/src/test/java/one/talon/model/GenerateCampaignSummaryTest.java @@ -0,0 +1,67 @@ +/* + * Talon.One API + * 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}` + * + * The version of the OpenAPI document: + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package one.talon.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.io.IOException; +import org.junit.Assert; +import org.junit.Ignore; +import org.junit.Test; + + +/** + * Model tests for GenerateCampaignSummary + */ +public class GenerateCampaignSummaryTest { + private final GenerateCampaignSummary model = new GenerateCampaignSummary(); + + /** + * Model tests for GenerateCampaignSummary + */ + @Test + public void testGenerateCampaignSummary() { + // TODO: test GenerateCampaignSummary + } + + /** + * Test the property 'campaignID' + */ + @Test + public void campaignIDTest() { + // TODO: test campaignID + } + + /** + * Test the property 'rulesetID' + */ + @Test + public void rulesetIDTest() { + // TODO: test rulesetID + } + + /** + * Test the property 'currency' + */ + @Test + public void currencyTest() { + // TODO: test currency + } + +} diff --git a/src/test/java/one/talon/model/IntegrationEventV3RequestTest.java b/src/test/java/one/talon/model/IntegrationEventV3RequestTest.java new file mode 100644 index 00000000..5c06667f --- /dev/null +++ b/src/test/java/one/talon/model/IntegrationEventV3RequestTest.java @@ -0,0 +1,125 @@ +/* + * Talon.One API + * 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}` + * + * The version of the OpenAPI document: + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package one.talon.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import org.junit.Assert; +import org.junit.Ignore; +import org.junit.Test; + + +/** + * Model tests for IntegrationEventV3Request + */ +public class IntegrationEventV3RequestTest { + private final IntegrationEventV3Request model = new IntegrationEventV3Request(); + + /** + * Model tests for IntegrationEventV3Request + */ + @Test + public void testIntegrationEventV3Request() { + // TODO: test IntegrationEventV3Request + } + + /** + * Test the property 'profileId' + */ + @Test + public void profileIdTest() { + // TODO: test profileId + } + + /** + * Test the property 'storeIntegrationId' + */ + @Test + public void storeIntegrationIdTest() { + // TODO: test storeIntegrationId + } + + /** + * Test the property 'evaluableCampaignIds' + */ + @Test + public void evaluableCampaignIdsTest() { + // TODO: test evaluableCampaignIds + } + + /** + * Test the property 'integrationId' + */ + @Test + public void integrationIdTest() { + // TODO: test integrationId + } + + /** + * Test the property 'type' + */ + @Test + public void typeTest() { + // TODO: test type + } + + /** + * Test the property 'attributes' + */ + @Test + public void attributesTest() { + // TODO: test attributes + } + + /** + * Test the property 'connectedSessionID' + */ + @Test + public void connectedSessionIDTest() { + // TODO: test connectedSessionID + } + + /** + * Test the property 'previousEventID' + */ + @Test + public void previousEventIDTest() { + // TODO: test previousEventID + } + + /** + * Test the property 'loyaltyCards' + */ + @Test + public void loyaltyCardsTest() { + // TODO: test loyaltyCards + } + + /** + * Test the property 'responseContent' + */ + @Test + public void responseContentTest() { + // TODO: test responseContent + } + +} diff --git a/src/test/java/one/talon/model/IntegrationEventV3ResponseTest.java b/src/test/java/one/talon/model/IntegrationEventV3ResponseTest.java new file mode 100644 index 00000000..e9c7872f --- /dev/null +++ b/src/test/java/one/talon/model/IntegrationEventV3ResponseTest.java @@ -0,0 +1,126 @@ +/* + * Talon.One API + * 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}` + * + * The version of the OpenAPI document: + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package one.talon.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import one.talon.model.Campaign; +import one.talon.model.Coupon; +import one.talon.model.CustomerProfile; +import one.talon.model.Effect; +import one.talon.model.EventV3; +import one.talon.model.Giveaway; +import one.talon.model.Loyalty; +import one.talon.model.Referral; +import one.talon.model.RuleFailureReason; +import org.junit.Assert; +import org.junit.Ignore; +import org.junit.Test; + + +/** + * Model tests for IntegrationEventV3Response + */ +public class IntegrationEventV3ResponseTest { + private final IntegrationEventV3Response model = new IntegrationEventV3Response(); + + /** + * Model tests for IntegrationEventV3Response + */ + @Test + public void testIntegrationEventV3Response() { + // TODO: test IntegrationEventV3Response + } + + /** + * Test the property 'customerProfile' + */ + @Test + public void customerProfileTest() { + // TODO: test customerProfile + } + + /** + * Test the property 'event' + */ + @Test + public void eventTest() { + // TODO: test event + } + + /** + * Test the property 'loyalty' + */ + @Test + public void loyaltyTest() { + // TODO: test loyalty + } + + /** + * Test the property 'triggeredCampaigns' + */ + @Test + public void triggeredCampaignsTest() { + // TODO: test triggeredCampaigns + } + + /** + * Test the property 'ruleFailureReasons' + */ + @Test + public void ruleFailureReasonsTest() { + // TODO: test ruleFailureReasons + } + + /** + * Test the property 'awardedGiveaways' + */ + @Test + public void awardedGiveawaysTest() { + // TODO: test awardedGiveaways + } + + /** + * Test the property 'effects' + */ + @Test + public void effectsTest() { + // TODO: test effects + } + + /** + * Test the property 'createdCoupons' + */ + @Test + public void createdCouponsTest() { + // TODO: test createdCoupons + } + + /** + * Test the property 'createdReferrals' + */ + @Test + public void createdReferralsTest() { + // TODO: test createdReferrals + } + +} diff --git a/src/test/java/one/talon/model/IntegrationProfileEntityV3Test.java b/src/test/java/one/talon/model/IntegrationProfileEntityV3Test.java new file mode 100644 index 00000000..d8e0b7b5 --- /dev/null +++ b/src/test/java/one/talon/model/IntegrationProfileEntityV3Test.java @@ -0,0 +1,51 @@ +/* + * Talon.One API + * 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}` + * + * The version of the OpenAPI document: + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package one.talon.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.io.IOException; +import org.junit.Assert; +import org.junit.Ignore; +import org.junit.Test; + + +/** + * Model tests for IntegrationProfileEntityV3 + */ +public class IntegrationProfileEntityV3Test { + private final IntegrationProfileEntityV3 model = new IntegrationProfileEntityV3(); + + /** + * Model tests for IntegrationProfileEntityV3 + */ + @Test + public void testIntegrationProfileEntityV3() { + // TODO: test IntegrationProfileEntityV3 + } + + /** + * Test the property 'profileId' + */ + @Test + public void profileIdTest() { + // TODO: test profileId + } + +} diff --git a/src/test/java/one/talon/model/LedgerPointsEntryIntegrationAPITest.java b/src/test/java/one/talon/model/LedgerPointsEntryIntegrationAPITest.java index c0f33774..2d84597d 100644 --- a/src/test/java/one/talon/model/LedgerPointsEntryIntegrationAPITest.java +++ b/src/test/java/one/talon/model/LedgerPointsEntryIntegrationAPITest.java @@ -122,4 +122,12 @@ public void amountTest() { // TODO: test amount } + /** + * Test the property 'validityDuration' + */ + @Test + public void validityDurationTest() { + // TODO: test validityDuration + } + } diff --git a/src/test/java/one/talon/model/LedgerTransactionLogEntryIntegrationAPITest.java b/src/test/java/one/talon/model/LedgerTransactionLogEntryIntegrationAPITest.java index 023686d9..6dddc6af 100644 --- a/src/test/java/one/talon/model/LedgerTransactionLogEntryIntegrationAPITest.java +++ b/src/test/java/one/talon/model/LedgerTransactionLogEntryIntegrationAPITest.java @@ -155,4 +155,12 @@ public void flagsTest() { // TODO: test flags } + /** + * Test the property 'validityDuration' + */ + @Test + public void validityDurationTest() { + // TODO: test validityDuration + } + } diff --git a/src/test/java/one/talon/model/LoyaltyLedgerEntryTest.java b/src/test/java/one/talon/model/LoyaltyLedgerEntryTest.java index 1999056c..8790c433 100644 --- a/src/test/java/one/talon/model/LoyaltyLedgerEntryTest.java +++ b/src/test/java/one/talon/model/LoyaltyLedgerEntryTest.java @@ -163,4 +163,12 @@ public void flagsTest() { // TODO: test flags } + /** + * Test the property 'validityDuration' + */ + @Test + public void validityDurationTest() { + // TODO: test validityDuration + } + } diff --git a/src/test/java/one/talon/model/LoyaltyProgramTest.java b/src/test/java/one/talon/model/LoyaltyProgramTest.java index 65994ef0..9de27876 100644 --- a/src/test/java/one/talon/model/LoyaltyProgramTest.java +++ b/src/test/java/one/talon/model/LoyaltyProgramTest.java @@ -229,14 +229,6 @@ public void canUpdateTiersTest() { // TODO: test canUpdateTiers } - /** - * Test the property 'canUpdateJoinPolicy' - */ - @Test - public void canUpdateJoinPolicyTest() { - // TODO: test canUpdateJoinPolicy - } - /** * Test the property 'canUpdateTierExpirationPolicy' */ diff --git a/src/test/java/one/talon/model/LoyaltyProgramTransactionTest.java b/src/test/java/one/talon/model/LoyaltyProgramTransactionTest.java index a2a6db87..ec887698 100644 --- a/src/test/java/one/talon/model/LoyaltyProgramTransactionTest.java +++ b/src/test/java/one/talon/model/LoyaltyProgramTransactionTest.java @@ -203,4 +203,12 @@ public void flagsTest() { // TODO: test flags } + /** + * Test the property 'validityDuration' + */ + @Test + public void validityDurationTest() { + // TODO: test validityDuration + } + } diff --git a/src/test/java/one/talon/model/ManagementKeyTest.java b/src/test/java/one/talon/model/ManagementKeyTest.java index 827064e4..ce0f4bd2 100644 --- a/src/test/java/one/talon/model/ManagementKeyTest.java +++ b/src/test/java/one/talon/model/ManagementKeyTest.java @@ -116,4 +116,12 @@ public void disabledTest() { // TODO: test disabled } + /** + * Test the property 'lastUsed' + */ + @Test + public void lastUsedTest() { + // TODO: test lastUsed + } + } diff --git a/src/test/java/one/talon/model/NewManagementKeyTest.java b/src/test/java/one/talon/model/NewManagementKeyTest.java index 24eb82e5..c99a22c3 100644 --- a/src/test/java/one/talon/model/NewManagementKeyTest.java +++ b/src/test/java/one/talon/model/NewManagementKeyTest.java @@ -116,6 +116,14 @@ public void disabledTest() { // TODO: test disabled } + /** + * Test the property 'lastUsed' + */ + @Test + public void lastUsedTest() { + // TODO: test lastUsed + } + /** * Test the property 'key' */ diff --git a/src/test/java/one/talon/model/NewMessageTestTest.java b/src/test/java/one/talon/model/NewMessageTestTest.java index 9ce73bc0..62472dd8 100644 --- a/src/test/java/one/talon/model/NewMessageTestTest.java +++ b/src/test/java/one/talon/model/NewMessageTestTest.java @@ -93,4 +93,12 @@ public void applicationIdsTest() { // TODO: test applicationIds } + /** + * Test the property 'authenticationId' + */ + @Test + public void authenticationIdTest() { + // TODO: test authenticationId + } + } diff --git a/src/test/java/one/talon/model/PrismaticConfigTest.java b/src/test/java/one/talon/model/PrismaticConfigTest.java new file mode 100644 index 00000000..8559cfda --- /dev/null +++ b/src/test/java/one/talon/model/PrismaticConfigTest.java @@ -0,0 +1,59 @@ +/* + * Talon.One API + * 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}` + * + * The version of the OpenAPI document: + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package one.talon.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.io.IOException; +import org.junit.Assert; +import org.junit.Ignore; +import org.junit.Test; + + +/** + * Model tests for PrismaticConfig + */ +public class PrismaticConfigTest { + private final PrismaticConfig model = new PrismaticConfig(); + + /** + * Model tests for PrismaticConfig + */ + @Test + public void testPrismaticConfig() { + // TODO: test PrismaticConfig + } + + /** + * Test the property 'prismaticUrl' + */ + @Test + public void prismaticUrlTest() { + // TODO: test prismaticUrl + } + + /** + * Test the property 'accessToken' + */ + @Test + public void accessTokenTest() { + // TODO: test accessToken + } + +} diff --git a/src/test/java/one/talon/model/PrismaticEventPayloadCouponBasedNotificationsLimitsTest.java b/src/test/java/one/talon/model/PrismaticEventPayloadCouponBasedNotificationsLimitsTest.java new file mode 100644 index 00000000..8181dcce --- /dev/null +++ b/src/test/java/one/talon/model/PrismaticEventPayloadCouponBasedNotificationsLimitsTest.java @@ -0,0 +1,77 @@ +/* + * Talon.One API + * 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}` + * + * The version of the OpenAPI document: + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package one.talon.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import org.junit.Assert; +import org.junit.Ignore; +import org.junit.Test; + + +/** + * Model tests for PrismaticEventPayloadCouponBasedNotificationsLimits + */ +public class PrismaticEventPayloadCouponBasedNotificationsLimitsTest { + private final PrismaticEventPayloadCouponBasedNotificationsLimits model = new PrismaticEventPayloadCouponBasedNotificationsLimits(); + + /** + * Model tests for PrismaticEventPayloadCouponBasedNotificationsLimits + */ + @Test + public void testPrismaticEventPayloadCouponBasedNotificationsLimits() { + // TODO: test PrismaticEventPayloadCouponBasedNotificationsLimits + } + + /** + * Test the property 'action' + */ + @Test + public void actionTest() { + // TODO: test action + } + + /** + * Test the property 'limit' + */ + @Test + public void limitTest() { + // TODO: test limit + } + + /** + * Test the property 'period' + */ + @Test + public void periodTest() { + // TODO: test period + } + + /** + * Test the property 'entities' + */ + @Test + public void entitiesTest() { + // TODO: test entities + } + +} diff --git a/src/test/java/one/talon/model/PrismaticEventPayloadCouponBasedNotificationsTest.java b/src/test/java/one/talon/model/PrismaticEventPayloadCouponBasedNotificationsTest.java new file mode 100644 index 00000000..f42c327c --- /dev/null +++ b/src/test/java/one/talon/model/PrismaticEventPayloadCouponBasedNotificationsTest.java @@ -0,0 +1,207 @@ +/* + * Talon.One API + * 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}` + * + * The version of the OpenAPI document: + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package one.talon.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import one.talon.model.PrismaticEventPayloadCouponBasedNotificationsLimits; +import org.threeten.bp.OffsetDateTime; +import org.junit.Assert; +import org.junit.Ignore; +import org.junit.Test; + + +/** + * Model tests for PrismaticEventPayloadCouponBasedNotifications + */ +public class PrismaticEventPayloadCouponBasedNotificationsTest { + private final PrismaticEventPayloadCouponBasedNotifications model = new PrismaticEventPayloadCouponBasedNotifications(); + + /** + * Model tests for PrismaticEventPayloadCouponBasedNotifications + */ + @Test + public void testPrismaticEventPayloadCouponBasedNotifications() { + // TODO: test PrismaticEventPayloadCouponBasedNotifications + } + + /** + * Test the property 'id' + */ + @Test + public void idTest() { + // TODO: test id + } + + /** + * Test the property 'created' + */ + @Test + public void createdTest() { + // TODO: test created + } + + /** + * Test the property 'campaignId' + */ + @Test + public void campaignIdTest() { + // TODO: test campaignId + } + + /** + * Test the property 'value' + */ + @Test + public void valueTest() { + // TODO: test value + } + + /** + * Test the property 'usageLimit' + */ + @Test + public void usageLimitTest() { + // TODO: test usageLimit + } + + /** + * Test the property 'discountLimit' + */ + @Test + public void discountLimitTest() { + // TODO: test discountLimit + } + + /** + * Test the property 'reservationLimit' + */ + @Test + public void reservationLimitTest() { + // TODO: test reservationLimit + } + + /** + * Test the property 'startDate' + */ + @Test + public void startDateTest() { + // TODO: test startDate + } + + /** + * Test the property 'expiryDate' + */ + @Test + public void expiryDateTest() { + // TODO: test expiryDate + } + + /** + * Test the property 'usageCounter' + */ + @Test + public void usageCounterTest() { + // TODO: test usageCounter + } + + /** + * Test the property 'discountCounter' + */ + @Test + public void discountCounterTest() { + // TODO: test discountCounter + } + + /** + * Test the property 'discountRemainder' + */ + @Test + public void discountRemainderTest() { + // TODO: test discountRemainder + } + + /** + * Test the property 'referralId' + */ + @Test + public void referralIdTest() { + // TODO: test referralId + } + + /** + * Test the property 'recipientIntegrationId' + */ + @Test + public void recipientIntegrationIdTest() { + // TODO: test recipientIntegrationId + } + + /** + * Test the property 'importId' + */ + @Test + public void importIdTest() { + // TODO: test importId + } + + /** + * Test the property 'batchId' + */ + @Test + public void batchIdTest() { + // TODO: test batchId + } + + /** + * Test the property 'attributes' + */ + @Test + public void attributesTest() { + // TODO: test attributes + } + + /** + * Test the property 'limits' + */ + @Test + public void limitsTest() { + // TODO: test limits + } + + /** + * Test the property 'sourceOfEvent' + */ + @Test + public void sourceOfEventTest() { + // TODO: test sourceOfEvent + } + + /** + * Test the property 'employeeName' + */ + @Test + public void employeeNameTest() { + // TODO: test employeeName + } + +} diff --git a/src/test/java/one/talon/model/PrismaticEventPayloadLoyaltyProfileBasedNotificationsActionTest.java b/src/test/java/one/talon/model/PrismaticEventPayloadLoyaltyProfileBasedNotificationsActionTest.java new file mode 100644 index 00000000..578cf541 --- /dev/null +++ b/src/test/java/one/talon/model/PrismaticEventPayloadLoyaltyProfileBasedNotificationsActionTest.java @@ -0,0 +1,84 @@ +/* + * Talon.One API + * 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}` + * + * The version of the OpenAPI document: + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package one.talon.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.io.IOException; +import org.threeten.bp.OffsetDateTime; +import org.junit.Assert; +import org.junit.Ignore; +import org.junit.Test; + + +/** + * Model tests for PrismaticEventPayloadLoyaltyProfileBasedNotificationsAction + */ +public class PrismaticEventPayloadLoyaltyProfileBasedNotificationsActionTest { + private final PrismaticEventPayloadLoyaltyProfileBasedNotificationsAction model = new PrismaticEventPayloadLoyaltyProfileBasedNotificationsAction(); + + /** + * Model tests for PrismaticEventPayloadLoyaltyProfileBasedNotificationsAction + */ + @Test + public void testPrismaticEventPayloadLoyaltyProfileBasedNotificationsAction() { + // TODO: test PrismaticEventPayloadLoyaltyProfileBasedNotificationsAction + } + + /** + * Test the property 'amount' + */ + @Test + public void amountTest() { + // TODO: test amount + } + + /** + * Test the property 'reason' + */ + @Test + public void reasonTest() { + // TODO: test reason + } + + /** + * Test the property 'operation' + */ + @Test + public void operationTest() { + // TODO: test operation + } + + /** + * Test the property 'startDate' + */ + @Test + public void startDateTest() { + // TODO: test startDate + } + + /** + * Test the property 'expiryDate' + */ + @Test + public void expiryDateTest() { + // TODO: test expiryDate + } + +} diff --git a/src/test/java/one/talon/model/PrismaticEventPayloadLoyaltyProfileBasedNotificationsTest.java b/src/test/java/one/talon/model/PrismaticEventPayloadLoyaltyProfileBasedNotificationsTest.java new file mode 100644 index 00000000..31bba2e3 --- /dev/null +++ b/src/test/java/one/talon/model/PrismaticEventPayloadLoyaltyProfileBasedNotificationsTest.java @@ -0,0 +1,167 @@ +/* + * Talon.One API + * 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}` + * + * The version of the OpenAPI document: + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package one.talon.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import one.talon.model.PrismaticEventPayloadLoyaltyProfileBasedNotificationsAction; +import org.threeten.bp.OffsetDateTime; +import org.junit.Assert; +import org.junit.Ignore; +import org.junit.Test; + + +/** + * Model tests for PrismaticEventPayloadLoyaltyProfileBasedNotifications + */ +public class PrismaticEventPayloadLoyaltyProfileBasedNotificationsTest { + private final PrismaticEventPayloadLoyaltyProfileBasedNotifications model = new PrismaticEventPayloadLoyaltyProfileBasedNotifications(); + + /** + * Model tests for PrismaticEventPayloadLoyaltyProfileBasedNotifications + */ + @Test + public void testPrismaticEventPayloadLoyaltyProfileBasedNotifications() { + // TODO: test PrismaticEventPayloadLoyaltyProfileBasedNotifications + } + + /** + * Test the property 'profileIntegrationID' + */ + @Test + public void profileIntegrationIDTest() { + // TODO: test profileIntegrationID + } + + /** + * Test the property 'loyaltyProgramID' + */ + @Test + public void loyaltyProgramIDTest() { + // TODO: test loyaltyProgramID + } + + /** + * Test the property 'subledgerID' + */ + @Test + public void subledgerIDTest() { + // TODO: test subledgerID + } + + /** + * Test the property 'sourceOfEvent' + */ + @Test + public void sourceOfEventTest() { + // TODO: test sourceOfEvent + } + + /** + * Test the property 'employeeName' + */ + @Test + public void employeeNameTest() { + // TODO: test employeeName + } + + /** + * Test the property 'userID' + */ + @Test + public void userIDTest() { + // TODO: test userID + } + + /** + * Test the property 'sessionIntegrationID' + */ + @Test + public void sessionIntegrationIDTest() { + // TODO: test sessionIntegrationID + } + + /** + * Test the property 'currentTier' + */ + @Test + public void currentTierTest() { + // TODO: test currentTier + } + + /** + * Test the property 'currentPoints' + */ + @Test + public void currentPointsTest() { + // TODO: test currentPoints + } + + /** + * Test the property 'oldTier' + */ + @Test + public void oldTierTest() { + // TODO: test oldTier + } + + /** + * Test the property 'pointsRequiredToTheNextTier' + */ + @Test + public void pointsRequiredToTheNextTierTest() { + // TODO: test pointsRequiredToTheNextTier + } + + /** + * Test the property 'nextTier' + */ + @Test + public void nextTierTest() { + // TODO: test nextTier + } + + /** + * Test the property 'tierExpirationDate' + */ + @Test + public void tierExpirationDateTest() { + // TODO: test tierExpirationDate + } + + /** + * Test the property 'timestampOfTierChange' + */ + @Test + public void timestampOfTierChangeTest() { + // TODO: test timestampOfTierChange + } + + /** + * Test the property 'actions' + */ + @Test + public void actionsTest() { + // TODO: test actions + } + +} diff --git a/src/test/java/one/talon/model/PrismaticFlowConfigTest.java b/src/test/java/one/talon/model/PrismaticFlowConfigTest.java new file mode 100644 index 00000000..542d3545 --- /dev/null +++ b/src/test/java/one/talon/model/PrismaticFlowConfigTest.java @@ -0,0 +1,51 @@ +/* + * Talon.One API + * 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}` + * + * The version of the OpenAPI document: + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package one.talon.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.io.IOException; +import org.junit.Assert; +import org.junit.Ignore; +import org.junit.Test; + + +/** + * Model tests for PrismaticFlowConfig + */ +public class PrismaticFlowConfigTest { + private final PrismaticFlowConfig model = new PrismaticFlowConfig(); + + /** + * Model tests for PrismaticFlowConfig + */ + @Test + public void testPrismaticFlowConfig() { + // TODO: test PrismaticFlowConfig + } + + /** + * Test the property 'apiKey' + */ + @Test + public void apiKeyTest() { + // TODO: test apiKey + } + +} diff --git a/src/test/java/one/talon/model/PrismaticFlowTest.java b/src/test/java/one/talon/model/PrismaticFlowTest.java new file mode 100644 index 00000000..0dc725ef --- /dev/null +++ b/src/test/java/one/talon/model/PrismaticFlowTest.java @@ -0,0 +1,67 @@ +/* + * Talon.One API + * 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}` + * + * The version of the OpenAPI document: + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package one.talon.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.io.IOException; +import org.junit.Assert; +import org.junit.Ignore; +import org.junit.Test; + + +/** + * Model tests for PrismaticFlow + */ +public class PrismaticFlowTest { + private final PrismaticFlow model = new PrismaticFlow(); + + /** + * Model tests for PrismaticFlow + */ + @Test + public void testPrismaticFlow() { + // TODO: test PrismaticFlow + } + + /** + * Test the property 'applicationID' + */ + @Test + public void applicationIDTest() { + // TODO: test applicationID + } + + /** + * Test the property 'eventType' + */ + @Test + public void eventTypeTest() { + // TODO: test eventType + } + + /** + * Test the property 'prismaticFlowUrl' + */ + @Test + public void prismaticFlowUrlTest() { + // TODO: test prismaticFlowUrl + } + +} diff --git a/src/test/java/one/talon/model/PrismaticFlowWithConfigTest.java b/src/test/java/one/talon/model/PrismaticFlowWithConfigTest.java new file mode 100644 index 00000000..779bdc8d --- /dev/null +++ b/src/test/java/one/talon/model/PrismaticFlowWithConfigTest.java @@ -0,0 +1,76 @@ +/* + * Talon.One API + * 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}` + * + * The version of the OpenAPI document: + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package one.talon.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.io.IOException; +import one.talon.model.PrismaticFlowConfig; +import org.junit.Assert; +import org.junit.Ignore; +import org.junit.Test; + + +/** + * Model tests for PrismaticFlowWithConfig + */ +public class PrismaticFlowWithConfigTest { + private final PrismaticFlowWithConfig model = new PrismaticFlowWithConfig(); + + /** + * Model tests for PrismaticFlowWithConfig + */ + @Test + public void testPrismaticFlowWithConfig() { + // TODO: test PrismaticFlowWithConfig + } + + /** + * Test the property 'applicationID' + */ + @Test + public void applicationIDTest() { + // TODO: test applicationID + } + + /** + * Test the property 'eventType' + */ + @Test + public void eventTypeTest() { + // TODO: test eventType + } + + /** + * Test the property 'prismaticFlowUrl' + */ + @Test + public void prismaticFlowUrlTest() { + // TODO: test prismaticFlowUrl + } + + /** + * Test the property 'config' + */ + @Test + public void configTest() { + // TODO: test config + } + +} diff --git a/src/test/java/one/talon/model/PrismaticPaginatedEventPayloadTest.java b/src/test/java/one/talon/model/PrismaticPaginatedEventPayloadTest.java new file mode 100644 index 00000000..95448c83 --- /dev/null +++ b/src/test/java/one/talon/model/PrismaticPaginatedEventPayloadTest.java @@ -0,0 +1,69 @@ +/* + * Talon.One API + * 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}` + * + * The version of the OpenAPI document: + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package one.talon.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import org.junit.Assert; +import org.junit.Ignore; +import org.junit.Test; + + +/** + * Model tests for PrismaticPaginatedEventPayload + */ +public class PrismaticPaginatedEventPayloadTest { + private final PrismaticPaginatedEventPayload model = new PrismaticPaginatedEventPayload(); + + /** + * Model tests for PrismaticPaginatedEventPayload + */ + @Test + public void testPrismaticPaginatedEventPayload() { + // TODO: test PrismaticPaginatedEventPayload + } + + /** + * Test the property 'totalResultSize' + */ + @Test + public void totalResultSizeTest() { + // TODO: test totalResultSize + } + + /** + * Test the property 'eventType' + */ + @Test + public void eventTypeTest() { + // TODO: test eventType + } + + /** + * Test the property 'data' + */ + @Test + public void dataTest() { + // TODO: test data + } + +} diff --git a/src/test/java/one/talon/model/ReturnedCartItemTest.java b/src/test/java/one/talon/model/ReturnedCartItemTest.java index 8d891277..001f8f5a 100644 --- a/src/test/java/one/talon/model/ReturnedCartItemTest.java +++ b/src/test/java/one/talon/model/ReturnedCartItemTest.java @@ -56,4 +56,12 @@ public void quantityTest() { // TODO: test quantity } + /** + * Test the property 'sku' + */ + @Test + public void skuTest() { + // TODO: test sku + } + } diff --git a/src/test/java/one/talon/model/RoleV2ReadonlyTest.java b/src/test/java/one/talon/model/RoleV2ReadonlyTest.java new file mode 100644 index 00000000..105f8617 --- /dev/null +++ b/src/test/java/one/talon/model/RoleV2ReadonlyTest.java @@ -0,0 +1,51 @@ +/* + * Talon.One API + * 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}` + * + * The version of the OpenAPI document: + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package one.talon.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.io.IOException; +import org.junit.Assert; +import org.junit.Ignore; +import org.junit.Test; + + +/** + * Model tests for RoleV2Readonly + */ +public class RoleV2ReadonlyTest { + private final RoleV2Readonly model = new RoleV2Readonly(); + + /** + * Model tests for RoleV2Readonly + */ + @Test + public void testRoleV2Readonly() { + // TODO: test RoleV2Readonly + } + + /** + * Test the property 'isReadonly' + */ + @Test + public void isReadonlyTest() { + // TODO: test isReadonly + } + +} diff --git a/src/test/java/one/talon/model/RoleV2Test.java b/src/test/java/one/talon/model/RoleV2Test.java index 62f02462..d8b56578 100644 --- a/src/test/java/one/talon/model/RoleV2Test.java +++ b/src/test/java/one/talon/model/RoleV2Test.java @@ -108,4 +108,12 @@ public void membersTest() { // TODO: test members } + /** + * Test the property 'isReadonly' + */ + @Test + public void isReadonlyTest() { + // TODO: test isReadonly + } + } diff --git a/src/test/java/one/talon/model/SessionCouponsTest.java b/src/test/java/one/talon/model/SessionCouponsTest.java new file mode 100644 index 00000000..fb501231 --- /dev/null +++ b/src/test/java/one/talon/model/SessionCouponsTest.java @@ -0,0 +1,59 @@ +/* + * Talon.One API + * 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}` + * + * The version of the OpenAPI document: + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package one.talon.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.io.IOException; +import org.junit.Assert; +import org.junit.Ignore; +import org.junit.Test; + + +/** + * Model tests for SessionCoupons + */ +public class SessionCouponsTest { + private final SessionCoupons model = new SessionCoupons(); + + /** + * Model tests for SessionCoupons + */ + @Test + public void testSessionCoupons() { + // TODO: test SessionCoupons + } + + /** + * Test the property 'sessionIntegrationId' + */ + @Test + public void sessionIntegrationIdTest() { + // TODO: test sessionIntegrationId + } + + /** + * Test the property 'couponCode' + */ + @Test + public void couponCodeTest() { + // TODO: test couponCode + } + +} diff --git a/src/test/java/one/talon/model/StrikethroughLabelingNotificationTest.java b/src/test/java/one/talon/model/StrikethroughLabelingNotificationTest.java index c88783b1..b7dd3735 100644 --- a/src/test/java/one/talon/model/StrikethroughLabelingNotificationTest.java +++ b/src/test/java/one/talon/model/StrikethroughLabelingNotificationTest.java @@ -109,4 +109,12 @@ public void notificationTypeTest() { // TODO: test notificationType } + /** + * Test the property 'sentAt' + */ + @Test + public void sentAtTest() { + // TODO: test sentAt + } + } diff --git a/src/test/java/one/talon/model/StrikethroughSetDiscountPerItemMemberEffectPropsTest.java b/src/test/java/one/talon/model/StrikethroughSetDiscountPerItemMemberEffectPropsTest.java new file mode 100644 index 00000000..7fd7dc33 --- /dev/null +++ b/src/test/java/one/talon/model/StrikethroughSetDiscountPerItemMemberEffectPropsTest.java @@ -0,0 +1,59 @@ +/* + * Talon.One API + * 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}` + * + * The version of the OpenAPI document: + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package one.talon.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.io.IOException; +import org.junit.Assert; +import org.junit.Ignore; +import org.junit.Test; + + +/** + * Model tests for StrikethroughSetDiscountPerItemMemberEffectProps + */ +public class StrikethroughSetDiscountPerItemMemberEffectPropsTest { + private final StrikethroughSetDiscountPerItemMemberEffectProps model = new StrikethroughSetDiscountPerItemMemberEffectProps(); + + /** + * Model tests for StrikethroughSetDiscountPerItemMemberEffectProps + */ + @Test + public void testStrikethroughSetDiscountPerItemMemberEffectProps() { + // TODO: test StrikethroughSetDiscountPerItemMemberEffectProps + } + + /** + * Test the property 'name' + */ + @Test + public void nameTest() { + // TODO: test name + } + + /** + * Test the property 'value' + */ + @Test + public void valueTest() { + // TODO: test value + } + +}