From 6756e24e39ab1433c3e7989bfc813b11251f9a0f Mon Sep 17 00:00:00 2001 From: kkupreeva Date: Thu, 25 Jul 2024 15:23:41 +0200 Subject: [PATCH] openapi 3 sdk update --- README.md | 195 +- api/openapi.yaml | 2260 ++++++++++++++--- build.gradle | 2 +- build.sbt | 2 +- docs/AdditionalCampaignProperties.md | 1 + docs/AnalyticsDataPoint.md | 13 + docs/AnalyticsDataPointWithTrend.md | 13 + ...ticsDataPointWithTrendAndInfluencedRate.md | 14 + docs/AnalyticsDataPointWithTrendAndUplift.md | 14 + docs/ApplicationAnalyticsDataPoint.md | 12 +- docs/ApplicationCampaignAnalytics.md | 32 +- docs/Attribute.md | 1 - docs/BaseLoyaltyProgram.md | 28 +- docs/BaseNotification.md | 3 +- docs/BaseNotificationEntity.md | 2 +- docs/Campaign.md | 1 + docs/CampaignNotificationPolicy.md | 1 + ...rdAddedDeductedPointsNotificationPolicy.md | 24 + docs/CodeGeneratorSettings.md | 2 +- docs/Effect.md | 2 + docs/EffectEntity.md | 2 + docs/GenerateCampaignDescription.md | 13 + docs/GenerateCampaignTags.md | 12 + docs/GenerateItemFilterDescription.md | 12 + docs/GenerateRuleTitle.md | 13 + docs/GenerateRuleTitleRule.md | 13 + .../IncreaseAchievementProgressEffectProps.md | 2 +- docs/IntegrationApi.md | 12 +- docs/LoyaltyBalanceWithTier.md | 20 + docs/LoyaltyBalancesWithTiers.md | 14 + docs/LoyaltyCard.md | 1 + docs/LoyaltyProgram.md | 31 +- docs/ManagementApi.md | 1086 +++++++- docs/MessageLogResponse.md | 6 +- docs/NewAttribute.md | 1 - docs/NewBaseNotification.md | 2 +- docs/NewLoyaltyProgram.md | 28 +- docs/NewNotificationTest.md | 1 + docs/NewOutgoingIntegrationWebhook.md | 1 + docs/NewWebhook.md | 1 + docs/OktaEvent.md | 14 + docs/OktaEventPayload.md | 13 + docs/OktaEventPayloadData.md | 13 + docs/OktaEventTarget.md | 15 + docs/ProjectedTier.md | 14 + docs/RejectCouponEffectProps.md | 1 + docs/RejectReferralEffectProps.md | 1 + ...IncreasedAchievementProgressEffectProps.md | 18 + docs/SSOConfig.md | 1 + docs/ScimNewUser.md | 15 + docs/ScimResource.md | 14 + docs/ScimResourceTypesListResponse.md | 13 + docs/ScimUser.md | 16 + docs/ScimUsersListResponse.md | 15 + docs/Tier.md | 1 + docs/TransferLoyaltyCard.md | 1 + docs/UpdateLoyaltyCard.md | 1 + docs/UpdateLoyaltyProgram.md | 28 +- docs/User.md | 1 + docs/Webhook.md | 1 + docs/WebhookWithOutgoingIntegrationDetails.md | 1 + pom.xml | 2 +- src/main/java/one/talon/ApiClient.java | 2 +- .../java/one/talon/api/IntegrationApi.java | 50 +- .../java/one/talon/api/ManagementApi.java | 1608 +++++++++++- .../one/talon/model/AddItemCatalogAction.java | 5 - .../model/AdditionalCampaignProperties.java | 32 +- .../one/talon/model/AnalyticsDataPoint.java | 127 + .../model/AnalyticsDataPointWithTrend.java | 127 + ...csDataPointWithTrendAndInfluencedRate.java | 155 ++ .../AnalyticsDataPointWithTrendAndUplift.java | 155 ++ .../model/ApplicationAnalyticsDataPoint.java | 43 +- .../model/ApplicationCampaignAnalytics.java | 179 +- src/main/java/one/talon/model/Attribute.java | 2 - .../one/talon/model/BaseLoyaltyProgram.java | 194 +- .../one/talon/model/BaseNotification.java | 6 +- .../talon/model/BaseNotificationEntity.java | 4 +- src/main/java/one/talon/model/Campaign.java | 32 +- .../model/CampaignNotificationPolicy.java | 33 +- ...AddedDeductedPointsNotificationPolicy.java | 184 ++ src/main/java/one/talon/model/CartItem.java | 5 - .../talon/model/CodeGeneratorSettings.java | 4 +- .../CustomerProfileIntegrationRequestV2.java | 5 - src/main/java/one/talon/model/Effect.java | 60 +- .../java/one/talon/model/EffectEntity.java | 62 +- .../model/GenerateCampaignDescription.java | 126 + .../one/talon/model/GenerateCampaignTags.java | 98 + .../model/GenerateItemFilterDescription.java | 105 + .../one/talon/model/GenerateRuleTitle.java | 127 + .../talon/model/GenerateRuleTitleRule.java | 146 ++ ...ncreaseAchievementProgressEffectProps.java | 4 +- .../model/IntegrationEventV2Request.java | 5 - .../talon/model/LoyaltyBalanceWithTier.java | 306 +++ .../talon/model/LoyaltyBalancesWithTiers.java | 141 + .../java/one/talon/model/LoyaltyCard.java | 31 +- .../java/one/talon/model/LoyaltyProgram.java | 226 +- .../one/talon/model/MessageLogResponse.java | 9 +- ...CustomerProfileIntegrationRequestItem.java | 5 - .../java/one/talon/model/NewAttribute.java | 2 - .../one/talon/model/NewBaseNotification.java | 4 +- .../one/talon/model/NewCustomerProfile.java | 5 - .../one/talon/model/NewCustomerSession.java | 5 - .../one/talon/model/NewCustomerSessionV2.java | 5 - src/main/java/one/talon/model/NewEvent.java | 5 - .../one/talon/model/NewLoyaltyProgram.java | 194 +- .../one/talon/model/NewNotificationTest.java | 2 + .../model/NewOutgoingIntegrationWebhook.java | 31 +- .../NewReferralsForMultipleAdvocates.java | 5 - src/main/java/one/talon/model/NewWebhook.java | 31 +- src/main/java/one/talon/model/OktaEvent.java | 135 + .../one/talon/model/OktaEventPayload.java | 100 + .../one/talon/model/OktaEventPayloadData.java | 107 + .../java/one/talon/model/OktaEventTarget.java | 155 ++ .../talon/model/PatchItemCatalogAction.java | 6 +- .../model/PatchManyItemsCatalogAction.java | 5 - .../java/one/talon/model/ProjectedTier.java | 157 ++ .../talon/model/RejectCouponEffectProps.java | 33 +- .../model/RejectReferralEffectProps.java | 33 +- ...creasedAchievementProgressEffectProps.java | 240 ++ src/main/java/one/talon/model/SSOConfig.java | 33 +- .../java/one/talon/model/ScimNewUser.java | 157 ++ .../java/one/talon/model/ScimResource.java | 129 + .../model/ScimResourceTypesListResponse.java | 107 + src/main/java/one/talon/model/ScimUser.java | 185 ++ .../talon/model/ScimUsersListResponse.java | 173 ++ src/main/java/one/talon/model/Tier.java | 31 +- .../one/talon/model/TransferLoyaltyCard.java | 33 +- .../one/talon/model/UpdateLoyaltyCard.java | 33 +- .../one/talon/model/UpdateLoyaltyProgram.java | 194 +- src/main/java/one/talon/model/User.java | 33 +- src/main/java/one/talon/model/Webhook.java | 31 +- ...WebhookWithOutgoingIntegrationDetails.java | 31 +- .../one/talon/api/IntegrationApiTest.java | 8 +- .../java/one/talon/api/ManagementApiTest.java | 232 +- .../AdditionalCampaignPropertiesTest.java | 8 + .../talon/model/AnalyticsDataPointTest.java | 60 + ...taPointWithTrendAndInfluencedRateTest.java | 68 + ...lyticsDataPointWithTrendAndUpliftTest.java | 68 + .../AnalyticsDataPointWithTrendTest.java | 60 + .../ApplicationAnalyticsDataPointTest.java | 5 +- .../ApplicationCampaignAnalyticsTest.java | 33 +- .../talon/model/BaseLoyaltyProgramTest.java | 24 +- .../model/CampaignNotificationPolicyTest.java | 8 + .../java/one/talon/model/CampaignTest.java | 8 + ...dDeductedPointsNotificationPolicyTest.java | 61 + .../one/talon/model/EffectEntityTest.java | 16 + src/test/java/one/talon/model/EffectTest.java | 16 + .../GenerateCampaignDescriptionTest.java | 59 + .../talon/model/GenerateCampaignTagsTest.java | 51 + .../GenerateItemFilterDescriptionTest.java | 53 + .../model/GenerateRuleTitleRuleTest.java | 61 + .../talon/model/GenerateRuleTitleTest.java | 60 + .../model/LoyaltyBalanceWithTierTest.java | 110 + .../model/LoyaltyBalancesWithTiersTest.java | 63 + .../java/one/talon/model/LoyaltyCardTest.java | 8 + .../one/talon/model/LoyaltyProgramTest.java | 31 +- .../talon/model/NewLoyaltyProgramTest.java | 24 +- .../NewOutgoingIntegrationWebhookTest.java | 8 + .../java/one/talon/model/NewWebhookTest.java | 8 + .../talon/model/OktaEventPayloadDataTest.java | 54 + .../one/talon/model/OktaEventPayloadTest.java | 52 + .../one/talon/model/OktaEventTargetTest.java | 67 + .../java/one/talon/model/OktaEventTest.java | 62 + .../one/talon/model/ProjectedTierTest.java | 68 + .../model/RejectCouponEffectPropsTest.java | 8 + .../model/RejectReferralEffectPropsTest.java | 8 + ...sedAchievementProgressEffectPropsTest.java | 92 + .../java/one/talon/model/SSOConfigTest.java | 8 + .../java/one/talon/model/ScimNewUserTest.java | 67 + .../one/talon/model/ScimResourceTest.java | 59 + .../ScimResourceTypesListResponseTest.java | 54 + .../java/one/talon/model/ScimUserTest.java | 75 + .../model/ScimUsersListResponseTest.java | 70 + src/test/java/one/talon/model/TierTest.java | 8 + .../talon/model/TransferLoyaltyCardTest.java | 8 + .../talon/model/UpdateLoyaltyCardTest.java | 8 + .../talon/model/UpdateLoyaltyProgramTest.java | 24 +- src/test/java/one/talon/model/UserTest.java | 8 + .../java/one/talon/model/WebhookTest.java | 8 + ...ookWithOutgoingIntegrationDetailsTest.java | 8 + 180 files changed, 11619 insertions(+), 1333 deletions(-) create mode 100644 docs/AnalyticsDataPoint.md create mode 100644 docs/AnalyticsDataPointWithTrend.md create mode 100644 docs/AnalyticsDataPointWithTrendAndInfluencedRate.md create mode 100644 docs/AnalyticsDataPointWithTrendAndUplift.md create mode 100644 docs/CardAddedDeductedPointsNotificationPolicy.md create mode 100644 docs/GenerateCampaignDescription.md create mode 100644 docs/GenerateCampaignTags.md create mode 100644 docs/GenerateItemFilterDescription.md create mode 100644 docs/GenerateRuleTitle.md create mode 100644 docs/GenerateRuleTitleRule.md create mode 100644 docs/LoyaltyBalanceWithTier.md create mode 100644 docs/LoyaltyBalancesWithTiers.md create mode 100644 docs/OktaEvent.md create mode 100644 docs/OktaEventPayload.md create mode 100644 docs/OktaEventPayloadData.md create mode 100644 docs/OktaEventTarget.md create mode 100644 docs/ProjectedTier.md create mode 100644 docs/RollbackIncreasedAchievementProgressEffectProps.md create mode 100644 docs/ScimNewUser.md create mode 100644 docs/ScimResource.md create mode 100644 docs/ScimResourceTypesListResponse.md create mode 100644 docs/ScimUser.md create mode 100644 docs/ScimUsersListResponse.md create mode 100644 src/main/java/one/talon/model/AnalyticsDataPoint.java create mode 100644 src/main/java/one/talon/model/AnalyticsDataPointWithTrend.java create mode 100644 src/main/java/one/talon/model/AnalyticsDataPointWithTrendAndInfluencedRate.java create mode 100644 src/main/java/one/talon/model/AnalyticsDataPointWithTrendAndUplift.java create mode 100644 src/main/java/one/talon/model/CardAddedDeductedPointsNotificationPolicy.java create mode 100644 src/main/java/one/talon/model/GenerateCampaignDescription.java create mode 100644 src/main/java/one/talon/model/GenerateCampaignTags.java create mode 100644 src/main/java/one/talon/model/GenerateItemFilterDescription.java create mode 100644 src/main/java/one/talon/model/GenerateRuleTitle.java create mode 100644 src/main/java/one/talon/model/GenerateRuleTitleRule.java create mode 100644 src/main/java/one/talon/model/LoyaltyBalanceWithTier.java create mode 100644 src/main/java/one/talon/model/LoyaltyBalancesWithTiers.java create mode 100644 src/main/java/one/talon/model/OktaEvent.java create mode 100644 src/main/java/one/talon/model/OktaEventPayload.java create mode 100644 src/main/java/one/talon/model/OktaEventPayloadData.java create mode 100644 src/main/java/one/talon/model/OktaEventTarget.java create mode 100644 src/main/java/one/talon/model/ProjectedTier.java create mode 100644 src/main/java/one/talon/model/RollbackIncreasedAchievementProgressEffectProps.java create mode 100644 src/main/java/one/talon/model/ScimNewUser.java create mode 100644 src/main/java/one/talon/model/ScimResource.java create mode 100644 src/main/java/one/talon/model/ScimResourceTypesListResponse.java create mode 100644 src/main/java/one/talon/model/ScimUser.java create mode 100644 src/main/java/one/talon/model/ScimUsersListResponse.java create mode 100644 src/test/java/one/talon/model/AnalyticsDataPointTest.java create mode 100644 src/test/java/one/talon/model/AnalyticsDataPointWithTrendAndInfluencedRateTest.java create mode 100644 src/test/java/one/talon/model/AnalyticsDataPointWithTrendAndUpliftTest.java create mode 100644 src/test/java/one/talon/model/AnalyticsDataPointWithTrendTest.java create mode 100644 src/test/java/one/talon/model/CardAddedDeductedPointsNotificationPolicyTest.java create mode 100644 src/test/java/one/talon/model/GenerateCampaignDescriptionTest.java create mode 100644 src/test/java/one/talon/model/GenerateCampaignTagsTest.java create mode 100644 src/test/java/one/talon/model/GenerateItemFilterDescriptionTest.java create mode 100644 src/test/java/one/talon/model/GenerateRuleTitleRuleTest.java create mode 100644 src/test/java/one/talon/model/GenerateRuleTitleTest.java create mode 100644 src/test/java/one/talon/model/LoyaltyBalanceWithTierTest.java create mode 100644 src/test/java/one/talon/model/LoyaltyBalancesWithTiersTest.java create mode 100644 src/test/java/one/talon/model/OktaEventPayloadDataTest.java create mode 100644 src/test/java/one/talon/model/OktaEventPayloadTest.java create mode 100644 src/test/java/one/talon/model/OktaEventTargetTest.java create mode 100644 src/test/java/one/talon/model/OktaEventTest.java create mode 100644 src/test/java/one/talon/model/ProjectedTierTest.java create mode 100644 src/test/java/one/talon/model/RollbackIncreasedAchievementProgressEffectPropsTest.java create mode 100644 src/test/java/one/talon/model/ScimNewUserTest.java create mode 100644 src/test/java/one/talon/model/ScimResourceTest.java create mode 100644 src/test/java/one/talon/model/ScimResourceTypesListResponseTest.java create mode 100644 src/test/java/one/talon/model/ScimUserTest.java create mode 100644 src/test/java/one/talon/model/ScimUsersListResponseTest.java diff --git a/README.md b/README.md index 81d04687..518cdb81 100644 --- a/README.md +++ b/README.md @@ -53,7 +53,7 @@ Add this dependency to your project's POM: one.talon talon-one-client - 8.0.0 + 9.0.0 compile ``` @@ -63,7 +63,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:8.0.0" +compile "one.talon:talon-one-client:9.0.0" ``` ### Others @@ -76,130 +76,49 @@ mvn clean package Then manually install the following JARs: -* `target/talon-one-client-8.0.0.jar` +* `target/talon-one-client-9.0.0.jar` * `target/lib/*.jar` ## Getting Started Please follow the [installation](#installation) instruction and execute the following Java code: -### Integration API - -**Note:** The Integration API's V1 `Update customer session` and `Update customer profile` endpoints are now deprecated. Use their V2 instead. See [Migrating to V2](https://docs.talon.one/docs/dev/tutorials/migrating-to-v2) for more information. - ```java -package com.example.consumer; - -import com.google.gson.Gson; +// 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; -import one.talon.api.ManagementApi; -import one.talon.model.*; - -import java.util.*; - -public class TalonApiTest { - public static void main(String[] args) { - Gson gson = new Gson(); - IntegrationApi iApi = new IntegrationApi(new ApiClient("api_key_v1")); - - // Setup: basePath - iApi.getApiClient().setBasePath("https://yourbaseurl.talon.one"); - // Setup: when using 'api_key_v1', set apiKey & apiKeyPrefix must be provided - iApi.getApiClient().setApiKeyPrefix("ApiKey-v1"); - iApi.getApiClient().setApiKey("dbc644d33aa74d582bd9479c59e16f970fe13bf34a208c39d6c7fa7586968468"); - - try { - // Creating a cart item object - CartItem cartItem = new CartItem(); - cartItem.setName("Hawaiian Pizza"); - cartItem.setSku("pizza-x"); - cartItem.setQuantity(1); - cartItem.setPrice(new java.math.BigDecimal("5.5")); - - // Creating a customer session of V2 - NewCustomerSessionV2 customerSession = new NewCustomerSessionV2(); - customerSession.setProfileId("Cool_Dude"); - customerSession.addCouponCodesItem("Cool-Summer!"); - customerSession.addCartItemsItem(cartItem); - - // Initiating integration request wrapping the customer session update - IntegrationRequest request = new IntegrationRequest() - .customerSession(customerSession) - // Optional parameter of requested information to be present on the response related to the customer session update - .responseContent(Arrays.asList( - IntegrationRequest.ResponseContentEnum.CUSTOMERSESSION, - IntegrationRequest.ResponseContentEnum.CUSTOMERPROFILE - )); - - // Flag to communicate whether the request is a "dry run" - Boolean dryRun = false; - - // Create/update a customer session using `updateCustomerSessionV2` function - IntegrationStateV2 is = iApi.updateCustomerSessionV2("deetdoot", request, dryRun, null); - System.out.println(is.toString()); - - // Parsing the returned effects list, please consult https://developers.talon.one/Integration-API/handling-effects-v2 for the full list of effects and their corresponding properties - for (Effect eff : is.getEffects()) { - if (eff.getEffectType().equals("addLoyaltyPoints")) { - // Typecasting according to the specific effect type - AddLoyaltyPointsEffectProps props = gson.fromJson( - gson.toJson(eff.getProps()), - AddLoyaltyPointsEffectProps.class - ); - // Access the specific effect's properties - System.out.println(props.getName()); - System.out.println(props.getProgramId()); - System.out.println(props.getValue()); - } - if (eff.getEffectType().equals("acceptCoupon")) { - // Typecasting according to the specific effect type - AcceptCouponEffectProps props = gson.fromJson( - gson.toJson(eff.getProps()), - AcceptCouponEffectProps.class - ); - // work with AcceptCouponEffectProps' properties - // ... - } - } - } catch (Exception e) { - System.out.println(e); - } - } -} -``` -### Management API - -```java -package com.example.consumer; - -import one.talon.ApiClient; -import one.talon.api.IntegrationApi; -import one.talon.api.ManagementApi; -import one.talon.model.*; - -public class TalonApiTest { - public static void main(String[] args) { - // Management API example to load application with id 7 - ManagementApi mApi = new ManagementApi(new ApiClient("management_key")); - - // Setup: basePath - mApi.getApiClient().setBasePath("https://yourbaseurl.talon.one"); - // Setup: when using 'management_key', set apiKey & apiKeyPrefix must be provided - mApi.getApiClient().setApiKeyPrefix("ManagementKey-v1"); - mApi.getApiClient().setApiKey("2f0dce055da01ae595005d7d79154bae7448d319d5fc7c5b2951fadd6ba1ea07"); - - try { - // Calling `getApplication` function with the desired id (7) - Application application = mApi.getApplication(7); - System.out.println(application.toString()); - } catch (Exception e) { - System.out.println(e); - } +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); + NewAudience body = new NewAudience(); // NewAudience | body + try { + Audience result = apiInstance.createAudienceV2(body); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling IntegrationApi#createAudienceV2"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); } + } } + ``` ## Documentation for API Endpoints @@ -236,7 +155,7 @@ Class | Method | HTTP request | Description *IntegrationApi* | [**updateCustomerProfileV2**](docs/IntegrationApi.md#updateCustomerProfileV2) | **PUT** /v2/customer_profiles/{integrationId} | Update customer profile *IntegrationApi* | [**updateCustomerProfilesV2**](docs/IntegrationApi.md#updateCustomerProfilesV2) | **PUT** /v2/customer_profiles | Update multiple customer profiles *IntegrationApi* | [**updateCustomerSessionV2**](docs/IntegrationApi.md#updateCustomerSessionV2) | **PUT** /v2/customer_sessions/{customerSessionId} | Update customer session -*ManagementApi* | [**activateUserByEmail**](docs/ManagementApi.md#activateUserByEmail) | **POST** /v1/users/activate | Activate user by email address +*ManagementApi* | [**activateUserByEmail**](docs/ManagementApi.md#activateUserByEmail) | **POST** /v1/users/activate | Enable user by email address *ManagementApi* | [**addLoyaltyCardPoints**](docs/ManagementApi.md#addLoyaltyCardPoints) | **PUT** /v1/loyalty_programs/{loyaltyProgramId}/cards/{loyaltyCardId}/add_points | Add points to card *ManagementApi* | [**addLoyaltyPoints**](docs/ManagementApi.md#addLoyaltyPoints) | **PUT** /v1/loyalty_programs/{loyaltyProgramId}/profile/{integrationId}/add_points | Add points to customer profile *ManagementApi* | [**copyCampaignToApplications**](docs/ManagementApi.md#copyCampaignToApplications) | **POST** /v1/applications/{applicationId}/campaigns/{campaignId}/copy | Copy the campaign into the specified Application @@ -254,7 +173,7 @@ Class | Method | HTTP request | Description *ManagementApi* | [**createPasswordRecoveryEmail**](docs/ManagementApi.md#createPasswordRecoveryEmail) | **POST** /v1/password_recovery_emails | Request a password reset *ManagementApi* | [**createSession**](docs/ManagementApi.md#createSession) | **POST** /v1/sessions | Create session *ManagementApi* | [**createStore**](docs/ManagementApi.md#createStore) | **POST** /v1/applications/{applicationId}/stores | Create store -*ManagementApi* | [**deactivateUserByEmail**](docs/ManagementApi.md#deactivateUserByEmail) | **POST** /v1/users/deactivate | Deactivate user by email address +*ManagementApi* | [**deactivateUserByEmail**](docs/ManagementApi.md#deactivateUserByEmail) | **POST** /v1/users/deactivate | Disable user by email address *ManagementApi* | [**deductLoyaltyCardPoints**](docs/ManagementApi.md#deductLoyaltyCardPoints) | **PUT** /v1/loyalty_programs/{loyaltyProgramId}/cards/{loyaltyCardId}/deduct_points | Deduct points from card *ManagementApi* | [**deleteAccountCollection**](docs/ManagementApi.md#deleteAccountCollection) | **DELETE** /v1/collections/{collectionId} | Delete account-level collection *ManagementApi* | [**deleteAchievement**](docs/ManagementApi.md#deleteAchievement) | **DELETE** /v1/applications/{applicationId}/campaigns/{campaignId}/achievements/{achievementId} | Delete achievement @@ -268,9 +187,11 @@ Class | Method | HTTP request | Description *ManagementApi* | [**deleteUser**](docs/ManagementApi.md#deleteUser) | **DELETE** /v1/users/{userId} | Delete user *ManagementApi* | [**deleteUserByEmail**](docs/ManagementApi.md#deleteUserByEmail) | **POST** /v1/users/delete | Delete user by email address *ManagementApi* | [**destroySession**](docs/ManagementApi.md#destroySession) | **DELETE** /v1/sessions | Destroy session +*ManagementApi* | [**disconnectCampaignStores**](docs/ManagementApi.md#disconnectCampaignStores) | **DELETE** /v1/applications/{applicationId}/campaigns/{campaignId}/stores | Disconnect stores *ManagementApi* | [**exportAccountCollectionItems**](docs/ManagementApi.md#exportAccountCollectionItems) | **GET** /v1/collections/{collectionId}/export | Export account-level collection's items *ManagementApi* | [**exportAchievements**](docs/ManagementApi.md#exportAchievements) | **GET** /v1/applications/{applicationId}/campaigns/{campaignId}/achievements/{achievementId}/export | Export achievement customer data *ManagementApi* | [**exportAudiencesMemberships**](docs/ManagementApi.md#exportAudiencesMemberships) | **GET** /v1/audiences/{audienceId}/memberships/export | Export audience members +*ManagementApi* | [**exportCampaignStores**](docs/ManagementApi.md#exportCampaignStores) | **GET** /v1/applications/{applicationId}/campaigns/{campaignId}/stores/export | Export stores *ManagementApi* | [**exportCollectionItems**](docs/ManagementApi.md#exportCollectionItems) | **GET** /v1/applications/{applicationId}/campaigns/{campaignId}/collections/{collectionId}/export | Export campaign-level collection's items *ManagementApi* | [**exportCoupons**](docs/ManagementApi.md#exportCoupons) | **GET** /v1/applications/{applicationId}/export_coupons | Export coupons *ManagementApi* | [**exportCustomerSessions**](docs/ManagementApi.md#exportCustomerSessions) | **GET** /v1/applications/{applicationId}/export_customer_sessions | Export customer sessions @@ -349,6 +270,7 @@ Class | Method | HTTP request | Description *ManagementApi* | [**importAccountCollection**](docs/ManagementApi.md#importAccountCollection) | **POST** /v1/collections/{collectionId}/import | Import data into existing account-level collection *ManagementApi* | [**importAllowedList**](docs/ManagementApi.md#importAllowedList) | **POST** /v1/attributes/{attributeId}/allowed_list/import | Import allowed values for attribute *ManagementApi* | [**importAudiencesMemberships**](docs/ManagementApi.md#importAudiencesMemberships) | **POST** /v1/audiences/{audienceId}/memberships/import | Import audience members +*ManagementApi* | [**importCampaignStores**](docs/ManagementApi.md#importCampaignStores) | **POST** /v1/applications/{applicationId}/campaigns/{campaignId}/stores/import | Import stores *ManagementApi* | [**importCollection**](docs/ManagementApi.md#importCollection) | **POST** /v1/applications/{applicationId}/campaigns/{campaignId}/collections/{collectionId}/import | Import data into existing campaign-level collection *ManagementApi* | [**importCoupons**](docs/ManagementApi.md#importCoupons) | **POST** /v1/applications/{applicationId}/campaigns/{campaignId}/import_coupons | Import coupons *ManagementApi* | [**importLoyaltyCards**](docs/ManagementApi.md#importLoyaltyCards) | **POST** /v1/loyalty_programs/{loyaltyProgramId}/import_cards | Import loyalty cards @@ -365,11 +287,21 @@ Class | Method | HTTP request | Description *ManagementApi* | [**listCollectionsInApplication**](docs/ManagementApi.md#listCollectionsInApplication) | **GET** /v1/applications/{applicationId}/collections | List collections in Application *ManagementApi* | [**listStores**](docs/ManagementApi.md#listStores) | **GET** /v1/applications/{applicationId}/stores | List stores *ManagementApi* | [**notificationActivation**](docs/ManagementApi.md#notificationActivation) | **PUT** /v1/notifications/{notificationId}/activation | Activate or deactivate notification +*ManagementApi* | [**oktaEventHandlerChallenge**](docs/ManagementApi.md#oktaEventHandlerChallenge) | **GET** /v1/provisioning/okta | Validate Okta API ownership *ManagementApi* | [**postAddedDeductedPointsNotification**](docs/ManagementApi.md#postAddedDeductedPointsNotification) | **POST** /v1/loyalty_programs/{loyaltyProgramId}/notifications/added_deducted_points | Create notification about added or deducted loyalty points *ManagementApi* | [**postCatalogsStrikethroughNotification**](docs/ManagementApi.md#postCatalogsStrikethroughNotification) | **POST** /v1/applications/{applicationId}/catalogs/notifications/strikethrough | Create strikethrough notification *ManagementApi* | [**postPendingPointsNotification**](docs/ManagementApi.md#postPendingPointsNotification) | **POST** /v1/loyalty_programs/{loyaltyProgramId}/notifications/pending_points | Create notification about pending loyalty points *ManagementApi* | [**removeLoyaltyPoints**](docs/ManagementApi.md#removeLoyaltyPoints) | **PUT** /v1/loyalty_programs/{loyaltyProgramId}/profile/{integrationId}/deduct_points | Deduct points from customer profile *ManagementApi* | [**resetPassword**](docs/ManagementApi.md#resetPassword) | **POST** /v1/reset_password | Reset password +*ManagementApi* | [**scimCreateUser**](docs/ManagementApi.md#scimCreateUser) | **POST** /v1/provisioning/scim/Users | Create SCIM user +*ManagementApi* | [**scimDeleteUser**](docs/ManagementApi.md#scimDeleteUser) | **DELETE** /v1/provisioning/scim/Users/{userId} | Delete SCIM user +*ManagementApi* | [**scimGetResourceTypes**](docs/ManagementApi.md#scimGetResourceTypes) | **GET** /v1/provisioning/scim/ResourceTypes | List supported SCIM resource types +*ManagementApi* | [**scimGetSchemas**](docs/ManagementApi.md#scimGetSchemas) | **GET** /v1/provisioning/scim/Schemas | List supported SCIM schemas +*ManagementApi* | [**scimGetServiceProviderConfig**](docs/ManagementApi.md#scimGetServiceProviderConfig) | **GET** /v1/provisioning/scim/ServiceProviderConfig | Service config endpoint for SCIM provisioning protocol +*ManagementApi* | [**scimGetUser**](docs/ManagementApi.md#scimGetUser) | **GET** /v1/provisioning/scim/Users/{userId} | Get SCIM user +*ManagementApi* | [**scimGetUsers**](docs/ManagementApi.md#scimGetUsers) | **GET** /v1/provisioning/scim/Users | List SCIM users +*ManagementApi* | [**scimPatchUser**](docs/ManagementApi.md#scimPatchUser) | **PATCH** /v1/provisioning/scim/Users/{userId} | Update SCIM user attributes +*ManagementApi* | [**scimReplaceUserAttributes**](docs/ManagementApi.md#scimReplaceUserAttributes) | **PUT** /v1/provisioning/scim/Users/{userId} | Update SCIM user *ManagementApi* | [**searchCouponsAdvancedApplicationWideWithoutTotalCount**](docs/ManagementApi.md#searchCouponsAdvancedApplicationWideWithoutTotalCount) | **POST** /v1/applications/{applicationId}/coupons_search_advanced/no_total | List coupons that match the given attributes (without total count) *ManagementApi* | [**searchCouponsAdvancedWithoutTotalCount**](docs/ManagementApi.md#searchCouponsAdvancedWithoutTotalCount) | **POST** /v1/applications/{applicationId}/campaigns/{campaignId}/coupons_search_advanced/no_total | List coupons that match the given attributes in campaign (without total count) *ManagementApi* | [**transferLoyaltyCard**](docs/ManagementApi.md#transferLoyaltyCard) | **PUT** /v1/loyalty_programs/{loyaltyProgramId}/cards/{loyaltyCardId}/transfer | Transfer card data @@ -417,21 +349,15 @@ Class | Method | HTTP request | Description - [AddedDeductedPointsNotificationPolicy](docs/AddedDeductedPointsNotificationPolicy.md) - [AdditionalCampaignProperties](docs/AdditionalCampaignProperties.md) - [AdditionalCost](docs/AdditionalCost.md) + - [AnalyticsDataPoint](docs/AnalyticsDataPoint.md) + - [AnalyticsDataPointWithTrend](docs/AnalyticsDataPointWithTrend.md) + - [AnalyticsDataPointWithTrendAndInfluencedRate](docs/AnalyticsDataPointWithTrendAndInfluencedRate.md) + - [AnalyticsDataPointWithTrendAndUplift](docs/AnalyticsDataPointWithTrendAndUplift.md) - [Application](docs/Application.md) - [ApplicationAPIKey](docs/ApplicationAPIKey.md) - [ApplicationAnalyticsDataPoint](docs/ApplicationAnalyticsDataPoint.md) - - [ApplicationAnalyticsDataPointAvgItemsPerSession](docs/ApplicationAnalyticsDataPointAvgItemsPerSession.md) - - [ApplicationAnalyticsDataPointAvgSessionValue](docs/ApplicationAnalyticsDataPointAvgSessionValue.md) - - [ApplicationAnalyticsDataPointSessionsCount](docs/ApplicationAnalyticsDataPointSessionsCount.md) - - [ApplicationAnalyticsDataPointTotalRevenue](docs/ApplicationAnalyticsDataPointTotalRevenue.md) - [ApplicationApiHealth](docs/ApplicationApiHealth.md) - [ApplicationCampaignAnalytics](docs/ApplicationCampaignAnalytics.md) - - [ApplicationCampaignAnalyticsAvgItemsPerSession](docs/ApplicationCampaignAnalyticsAvgItemsPerSession.md) - - [ApplicationCampaignAnalyticsAvgSessionValue](docs/ApplicationCampaignAnalyticsAvgSessionValue.md) - - [ApplicationCampaignAnalyticsCouponsCount](docs/ApplicationCampaignAnalyticsCouponsCount.md) - - [ApplicationCampaignAnalyticsSessionsCount](docs/ApplicationCampaignAnalyticsSessionsCount.md) - - [ApplicationCampaignAnalyticsTotalDiscounts](docs/ApplicationCampaignAnalyticsTotalDiscounts.md) - - [ApplicationCampaignAnalyticsTotalRevenue](docs/ApplicationCampaignAnalyticsTotalRevenue.md) - [ApplicationCampaignStats](docs/ApplicationCampaignStats.md) - [ApplicationCustomer](docs/ApplicationCustomer.md) - [ApplicationCustomerEntity](docs/ApplicationCustomerEntity.md) @@ -491,6 +417,7 @@ Class | Method | HTTP request | Description - [CampaignTemplate](docs/CampaignTemplate.md) - [CampaignTemplateCollection](docs/CampaignTemplateCollection.md) - [CampaignTemplateParams](docs/CampaignTemplateParams.md) + - [CardAddedDeductedPointsNotificationPolicy](docs/CardAddedDeductedPointsNotificationPolicy.md) - [CardExpiringPointsNotificationPolicy](docs/CardExpiringPointsNotificationPolicy.md) - [CardExpiringPointsNotificationTrigger](docs/CardExpiringPointsNotificationTrigger.md) - [CardLedgerPointsEntryIntegrationAPI](docs/CardLedgerPointsEntryIntegrationAPI.md) @@ -567,6 +494,11 @@ Class | Method | HTTP request | Description - [FeaturesFeed](docs/FeaturesFeed.md) - [FuncArgDef](docs/FuncArgDef.md) - [FunctionDef](docs/FunctionDef.md) + - [GenerateCampaignDescription](docs/GenerateCampaignDescription.md) + - [GenerateCampaignTags](docs/GenerateCampaignTags.md) + - [GenerateItemFilterDescription](docs/GenerateItemFilterDescription.md) + - [GenerateRuleTitle](docs/GenerateRuleTitle.md) + - [GenerateRuleTitleRule](docs/GenerateRuleTitleRule.md) - [GetIntegrationCouponRequest](docs/GetIntegrationCouponRequest.md) - [Giveaway](docs/Giveaway.md) - [GiveawaysPool](docs/GiveawaysPool.md) @@ -645,7 +577,9 @@ Class | Method | HTTP request | Description - [LoginParams](docs/LoginParams.md) - [Loyalty](docs/Loyalty.md) - [LoyaltyBalance](docs/LoyaltyBalance.md) + - [LoyaltyBalanceWithTier](docs/LoyaltyBalanceWithTier.md) - [LoyaltyBalances](docs/LoyaltyBalances.md) + - [LoyaltyBalancesWithTiers](docs/LoyaltyBalancesWithTiers.md) - [LoyaltyCard](docs/LoyaltyCard.md) - [LoyaltyCardBalances](docs/LoyaltyCardBalances.md) - [LoyaltyCardProfileRegistration](docs/LoyaltyCardProfileRegistration.md) @@ -738,6 +672,10 @@ Class | Method | HTTP request | Description - [NotificationActivation](docs/NotificationActivation.md) - [NotificationListItem](docs/NotificationListItem.md) - [NotificationTest](docs/NotificationTest.md) + - [OktaEvent](docs/OktaEvent.md) + - [OktaEventPayload](docs/OktaEventPayload.md) + - [OktaEventPayloadData](docs/OktaEventPayloadData.md) + - [OktaEventTarget](docs/OktaEventTarget.md) - [OneTimeCode](docs/OneTimeCode.md) - [OutgoingIntegrationBrazePolicy](docs/OutgoingIntegrationBrazePolicy.md) - [OutgoingIntegrationCleverTapPolicy](docs/OutgoingIntegrationCleverTapPolicy.md) @@ -755,6 +693,7 @@ Class | Method | HTTP request | Description - [Picklist](docs/Picklist.md) - [Product](docs/Product.md) - [ProfileAudiencesChanges](docs/ProfileAudiencesChanges.md) + - [ProjectedTier](docs/ProjectedTier.md) - [RedeemReferralEffectProps](docs/RedeemReferralEffectProps.md) - [Referral](docs/Referral.md) - [ReferralConstraints](docs/ReferralConstraints.md) @@ -782,6 +721,7 @@ Class | Method | HTTP request | Description - [RollbackCouponEffectProps](docs/RollbackCouponEffectProps.md) - [RollbackDeductedLoyaltyPointsEffectProps](docs/RollbackDeductedLoyaltyPointsEffectProps.md) - [RollbackDiscountEffectProps](docs/RollbackDiscountEffectProps.md) + - [RollbackIncreasedAchievementProgressEffectProps](docs/RollbackIncreasedAchievementProgressEffectProps.md) - [RollbackReferralEffectProps](docs/RollbackReferralEffectProps.md) - [Rule](docs/Rule.md) - [RuleFailureReason](docs/RuleFailureReason.md) @@ -791,6 +731,11 @@ Class | Method | HTTP request | Description - [SamlConnectionInternal](docs/SamlConnectionInternal.md) - [SamlConnectionMetadata](docs/SamlConnectionMetadata.md) - [SamlLoginEndpoint](docs/SamlLoginEndpoint.md) + - [ScimNewUser](docs/ScimNewUser.md) + - [ScimResource](docs/ScimResource.md) + - [ScimResourceTypesListResponse](docs/ScimResourceTypesListResponse.md) + - [ScimUser](docs/ScimUser.md) + - [ScimUsersListResponse](docs/ScimUsersListResponse.md) - [Session](docs/Session.md) - [SetDiscountEffectProps](docs/SetDiscountEffectProps.md) - [SetDiscountPerAdditionalCostEffectProps](docs/SetDiscountPerAdditionalCostEffectProps.md) diff --git a/api/openapi.yaml b/api/openapi.yaml index d190d319..61c8a001 100644 --- a/api/openapi.yaml +++ b/api/openapi.yaml @@ -23,6 +23,9 @@ security: - manager_auth: [] - management_key: [] tags: +- description: | + Endpoints used for communication between Talon.One and the AI assistant. + name: AI assistant - description: | Represents the API used to send [Integration API](https://docs.talon.one/docs/dev/integration-api/overview) requests to a given Application. name: API keys @@ -1582,12 +1585,32 @@ paths: name: subledgerId schema: 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: includeTiers + schema: + 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: includeProjectedTier + schema: + default: false + type: boolean responses: "200": content: application/json: schema: - $ref: '#/components/schemas/LoyaltyBalances' + $ref: '#/components/schemas/LoyaltyBalancesWithTiers' description: OK "400": content: @@ -2741,32 +2764,32 @@ paths: format: date-time type: string - description: Filter results comparing the parameter value, expected to be - an RFC3339 timestamp string, to the coupon creation timestamp. You can use - any time zone setting. Talon.One will convert to UTC internally. + an RFC3339 timestamp string, to the coupon start date timestamp. You can + use any time zone setting. Talon.One will convert to UTC internally. in: query name: startsAfter schema: format: date-time type: string - description: Filter results comparing the parameter value, expected to be - an RFC3339 timestamp string, to the coupon creation timestamp. You can use - any time zone setting. Talon.One will convert to UTC internally. + an RFC3339 timestamp string, to the coupon start date timestamp. You can + use any time zone setting. Talon.One will convert to UTC internally. in: query name: startsBefore schema: format: date-time type: string - description: Filter results comparing the parameter value, expected to be - an RFC3339 timestamp string, to the coupon creation timestamp. You can use - any time zone setting. Talon.One will convert to UTC internally. + an RFC3339 timestamp string, to the coupon expiration date timestamp. You + can use any time zone setting. Talon.One will convert to UTC internally. in: query name: expiresAfter schema: format: date-time type: string - description: Filter results comparing the parameter value, expected to be - an RFC3339 timestamp string, to the coupon creation timestamp. You can use - any time zone setting. Talon.One will convert to UTC internally. + an RFC3339 timestamp string, to the coupon expiration date timestamp. You + can use any time zone setting. Talon.One will convert to UTC internally. in: query name: expiresBefore schema: @@ -3129,6 +3152,45 @@ paths: schema: default: false type: boolean + - description: Filter results comparing the parameter value, expected to be + an RFC3339 timestamp string, to the coupon expiration date timestamp. You + can use any time zone setting. Talon.One will convert to UTC internally. + in: query + name: expiresBefore + schema: + format: date-time + type: string + - description: Filter results comparing the parameter value, expected to be + an RFC3339 timestamp string, to the coupon expiration date timestamp. You + can use any time zone setting. Talon.One will convert to UTC internally. + in: query + name: expiresAfter + schema: + format: date-time + type: string + - description: Filter results comparing the parameter value, expected to be + an RFC3339 timestamp string, to the coupon start date timestamp. You can + use any time zone setting. Talon.One will convert to UTC internally. + in: query + name: startsBefore + schema: + format: date-time + type: string + - description: Filter results comparing the parameter value, expected to be + an RFC3339 timestamp string, to the coupon start date timestamp. You can + use any time zone setting. Talon.One will convert to UTC internally. + in: query + name: startsAfter + schema: + format: date-time + type: string + - description: Filter results to only return the coupon codes (`value` column) + without the associated coupon data. + in: query + name: valuesOnly + schema: + default: false + type: boolean responses: "200": content: @@ -4302,8 +4364,8 @@ paths: You can filter the results by providing the following optional input parameters: - - `subledgerId` (optional): Filter results by subledger ID. If no value is provided, all subledger data for the specified loyalty program will be exported. - - `tierName` (optional): Filter results by tier name. If no value is provided, all tier data for the specified loyalty program will be exported. + - `subledgerIds` (optional): Filter results by an array of subledger IDs. If no value is provided, all subledger data for the specified loyalty program will be exported. + - `tierNames` (optional): Filter results by an array of tier names. If no value is provided, all tier data for the specified loyalty program will be exported. operationId: exportCustomersTiers parameters: - description: The identifier for the loyalty program. @@ -7867,18 +7929,18 @@ paths: /v1/catalogs/{catalogId}/sync: put: description: | - Perform one or more of the following actions for a given cart item catalog: + Perform the following actions for a given cart item catalog: - - Adding an item to the catalog. - - Adding several items to the catalog. - - Editing the attributes of an item in the catalog. - - Editing the attributes of several items in the catalog. - - Removing an item from the catalog. - - Removing several items from the catalog. + - Add an item to the catalog. + - Add multiple items to the catalog. + - Update the attributes of an item in the catalog. + - Update the attributes of multiple items in the catalog. + - Remove an item from the catalog. + - Remove multiple items from the catalog. - You can add, update, or delete up to 1000 cart items in a single request. Each item synced to a catalog must have a unique `SKU`. + You can either add, update, or delete up to 1000 cart items in a single request. Each item synced to a catalog must have a unique `SKU`. - **Important**: Syncing items with duplicate `SKU` values in a single request returns an error message with a `400` status code. + **Important**: You can perform only one type of action in a single sync request. Syncing items with duplicate `SKU` values in a single request returns an error message with a `400` status code. For more information, read [managing cart item catalogs](https://docs.talon.one/docs/product/account/dev-tools/managing-cart-item-catalogs). @@ -7942,7 +8004,7 @@ paths:
- Adding several items to the catalog + Adding multiple items to the catalog
```json @@ -7985,7 +8047,7 @@ paths:
- Editing the attributes of an item in the catalog + Updating the attributes of an item in the catalog
```json @@ -8012,7 +8074,7 @@ paths:
- Editing the attributes of several items in the catalog + Updating the attributes of multiple items in the catalog
```json @@ -8061,7 +8123,7 @@ paths:
- Removing several items from the catalog + Removing multiple items from the catalog
```json @@ -8288,7 +8350,10 @@ paths: description: List all webhooks. operationId: getWebhooks parameters: - - description: Filter by one or more Application IDs, separated by a comma. + - description: | + Checks if the given catalog or its attributes are referenced in the specified Application ID. + + **Note**: If no Application ID is provided, we check for all connected Applications. in: query name: applicationIds schema: @@ -9278,10 +9343,212 @@ paths: x-codegen-request-body-name: body x-contentType: application/json x-accepts: application/json + /v1/provisioning/okta: + get: + description: | + Validate the ownership of the API through a challenge-response mechanism. + + This challenger endpoint is used by Okta to confirm that communication between Talon.One and Okta is correctly configured and accessible + for provisioning and deprovisioning of Talon.One users, and that only Talon.One can receive and respond to events from Okta. + operationId: oktaEventHandlerChallenge + responses: + "200": + content: {} + description: OK + summary: Validate Okta API ownership + tags: + - management + x-accepts: application/json + /v1/provisioning/scim/Users: + get: + description: Retrieve a paginated list of users that have been provisioned using + the SCIM protocol with an identity provider, for example, Microsoft Entra + ID. + operationId: scimGetUsers + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/ScimUsersListResponse' + description: List of SCIM users + summary: List SCIM users + tags: + - management + x-accepts: application/json + post: + description: Create a new Talon.One user using the SCIM provisioning protocol + with an identity provider, for example, Microsoft Entra ID. + operationId: scimCreateUser + requestBody: + content: + application/json: + schema: + type: object + description: body + required: true + responses: + "201": + content: + application/json: + schema: + $ref: '#/components/schemas/ScimUser' + description: Created + summary: Create SCIM user + tags: + - management + x-codegen-request-body-name: body + x-contentType: application/json + x-accepts: application/json + /v1/provisioning/scim/Users/{userId}: + delete: + description: Delete a specific Talon.One user created using the SCIM provisioning + protocol with an identity provider, for example, Microsoft Entra ID. + operationId: scimDeleteUser + parameters: + - description: The ID of the user. + in: path + name: userId + required: true + schema: + type: integer + responses: + "204": + content: {} + description: No Content + summary: Delete SCIM user + tags: + - management + x-accepts: application/json + get: + description: Retrieve data for a specific Talon.One user created using the SCIM + provisioning protocol with an identity provider, for example, Microsoft Entra + ID. + operationId: scimGetUser + parameters: + - description: The ID of the user. + in: path + name: userId + required: true + schema: + type: integer + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/ScimUser' + description: User details + summary: Get SCIM user + tags: + - management + x-accepts: application/json + patch: + description: | + Update certain attributes of a specific Talon.One user created using the SCIM provisioning protocol with an identity provider, for example, Microsoft Entra ID. + + This endpoint allows for selective adding, removing, or replacing specific attributes while leaving other attributes unchanged. + operationId: scimPatchUser + parameters: + - description: The ID of the user. + in: path + name: userId + required: true + schema: + type: integer + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/ScimUser' + description: User details + summary: Update SCIM user attributes + tags: + - management + x-accepts: application/json + put: + description: | + Update the details of a specific Talon.One user created using the SCIM provisioning protocol with an identity provider, for example, Microsoft Entra ID. + + This endpoint replaces all attributes of the specific user with the attributes provided in the request payload. + operationId: scimReplaceUserAttributes + parameters: + - description: The ID of the user. + in: path + name: userId + required: true + schema: + type: integer + requestBody: + content: + application/json: + schema: + type: object + description: body + required: true + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/ScimUser' + description: User details + summary: Update SCIM user + tags: + - management + x-codegen-request-body-name: body + x-contentType: application/json + x-accepts: application/json + /v1/provisioning/scim/ResourceTypes: + get: + description: | + Retrieve a list of resource types supported by the SCIM provisioning protocol. + + Resource types define the various kinds of resources that can be managed via the SCIM API, such as users, groups, or custom-defined resources. + operationId: scimGetResourceTypes + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/ScimResourceTypesListResponse' + description: List of resource types + summary: List supported SCIM resource types + tags: + - management + x-accepts: application/json + /v1/provisioning/scim/ServiceProviderConfig: + get: + description: Service config endpoint for SCIM provisioning protocol + operationId: scimGetServiceProviderConfig + responses: + "200": + content: {} + description: Service config + summary: Service config endpoint for SCIM provisioning protocol + tags: + - management + x-accepts: application/json + /v1/provisioning/scim/Schemas: + get: + description: | + Retrieve a list of schemas supported by the SCIM provisioning protocol. + + Schemas define the structure and attributes of the different resources that can be managed via the SCIM API, such as users, groups, and any custom-defined resources. + operationId: scimGetSchemas + responses: + "200": + content: {} + description: Schemas + summary: List supported SCIM schemas + tags: + - management + x-accepts: application/json /v1/users/delete: post: description: | - Delete a specific user by their email address. + [Delete a specific user](https://docs.talon.one/docs/product/account/account-settings/managing-users#deleting-a-user) by their email address. operationId: deleteUserByEmail requestBody: content: @@ -9303,7 +9570,7 @@ paths: /v1/users/activate: post: description: | - Activate a deactivated user by their email address. + Enable a [disabled user](https://docs.talon.one/docs/product/account/account-settings/managing-users#disabling-a-user) by their email address. operationId: activateUserByEmail requestBody: content: @@ -9316,7 +9583,7 @@ paths: "204": content: {} description: No Content - summary: Activate user by email address + summary: Enable user by email address tags: - management x-codegen-request-body-name: body @@ -9325,7 +9592,7 @@ paths: /v1/users/deactivate: post: description: | - Deactivate a specific user by their email address. + [Disable a specific user](https://docs.talon.one/docs/product/account/account-settings/managing-users#disabling-a-user) by their email address. operationId: deactivateUserByEmail requestBody: content: @@ -9338,7 +9605,7 @@ paths: "204": content: {} description: No Content - summary: Deactivate user by email address + summary: Disable user by email address tags: - management x-codegen-request-body-name: body @@ -9347,7 +9614,7 @@ paths: /v1/users/invite: post: description: | - Invite a user from an external identity provider to Talon.One by sending an invitation to their email address. + [Invite a user](https://docs.talon.one/docs/product/account/account-settings/managing-users#inviting-a-user) from an external identity provider to Talon.One by sending an invitation to their email address. operationId: inviteUserExternal requestBody: content: @@ -10032,6 +10299,178 @@ paths: x-codegen-request-body-name: body x-contentType: application/json x-accepts: application/json + /v1/applications/{applicationId}/campaigns/{campaignId}/stores/export: + get: + description: | + Download a CSV file containing the stores linked to a specific campaign. + + **Tip:** If the exported CSV file is too large to view, you can [split it into multiple files](https://www.makeuseof.com/tag/how-to-split-a-huge-csv-excel-workbook-into-seperate-files/). + + The CSV file contains the following column: + + - `store_integration_id`: The identifier of the store. + operationId: exportCampaignStores + parameters: + - description: The ID of the Application. It is displayed in your Talon.One + deployment URL. + in: path + name: applicationId + required: true + schema: + type: integer + - description: The ID of the campaign. It is displayed in your Talon.One deployment + URL. + in: path + name: campaignId + required: true + schema: + type: integer + responses: + "200": + content: + application/csv: + example: | + store_integration_id + STORE-001 + STORE-002 + STORE-003 + schema: + format: csv + type: string + description: OK + "400": + content: + application/csv: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad request + "401": + content: + application/csv: + schema: + $ref: '#/components/schemas/ErrorResponseWithStatus' + description: Unauthorized - Invalid API key + "404": + content: + application/csv: + schema: + $ref: '#/components/schemas/ErrorResponseWithStatus' + description: Not found + summary: Export stores + tags: + - management + x-accepts: application/csv + /v1/applications/{applicationId}/campaigns/{campaignId}/stores: + delete: + description: Disconnect the stores linked to a specific campaign. + operationId: disconnectCampaignStores + parameters: + - description: The ID of the Application. It is displayed in your Talon.One + deployment URL. + in: path + name: applicationId + required: true + schema: + type: integer + - description: The ID of the campaign. It is displayed in your Talon.One deployment + URL. + in: path + name: campaignId + required: true + schema: + type: integer + responses: + "204": + content: {} + description: No Content + "400": + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad request + "401": + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponseWithStatus' + description: Unauthorized - Invalid API key + "404": + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponseWithStatus' + description: Not found + summary: Disconnect stores + tags: + - management + x-accepts: application/json + /v1/applications/{applicationId}/campaigns/{campaignId}/stores/import: + post: + description: | + Upload a CSV file containing the stores you want to link to a specific campaign. + + Send the file as multipart data. + + The CSV file **must** only contain the following column: + - `store_integration_id`: The identifier of the store. + + The import **replaces** the previous list of stores linked to the campaign. + operationId: importCampaignStores + parameters: + - description: The ID of the Application. It is displayed in your Talon.One + deployment URL. + in: path + name: applicationId + required: true + schema: + type: integer + - description: The ID of the campaign. It is displayed in your Talon.One deployment + URL. + in: path + name: campaignId + required: true + schema: + type: integer + requestBody: + content: + multipart/form-data: + schema: + properties: + upFile: + description: The file containing the data that is being imported. + format: csv + type: string + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/Import' + description: OK + "400": + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad request + "401": + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponseWithStatus' + description: Unauthorized - Invalid API key + "404": + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponseWithStatus' + description: Not found + summary: Import stores + tags: + - management + x-contentType: multipart/form-data + x-accepts: application/json /v1/applications/{applicationId}/campaigns/{campaignId}/achievements: get: description: List all the achievements for a specific campaign. @@ -10836,7 +11275,7 @@ components: type: array couponPattern: description: | - The pattern used to generate coupon codes. The character `#` is a placeholder and is replaced by a random character from the `validCharacters` set. + The pattern used to generate codes, such as coupon codes, referral codes, and loyalty cards. The character `#` is a placeholder and is replaced by a random character from the `validCharacters` set. example: SUMMER-####-#### maxLength: 100 minLength: 3 @@ -11139,7 +11578,6 @@ components: enableCascadingDiscounts: true loyaltyPrograms: - cardBased: true - canUpgradeToAdvancedTiers: true tiers: - name: Gold minPoints: 300 @@ -11158,27 +11596,68 @@ components: programId: 139 canUpdateTiers: true usersPerCardLimit: 111 - created: 2020-06-10T09:05:27.993483Z timezone: Europe/Berlin - sandbox: true description: Customers collect 10 points per 1$ spent title: Point collection canUpdateJoinPolicy: true + programJoinPolicy: not_join + accountID: 1 + defaultPending: immediate + tiersDowngradePolicy: one_down + cardCodeSettings: + couponPattern: SUMMER-####-#### + validCharacters: + - A + - B + - C + - D + - E + - F + - G + - H + - I + - J + - K + - L + - M + - "N" + - O + - P + - Q + - R + - S + - T + - U + - V + - W + - X + - "Y" + - Z + - "0" + - "1" + - "2" + - "3" + - "4" + - "5" + - "6" + - "7" + - "8" + - "9" + id: 0 + canUpgradeToAdvancedTiers: true + created: 2020-06-10T09:05:27.993483Z + sandbox: true subscribedApplications: - 132 - 97 tiersExpirationPolicy: tier_start_date - programJoinPolicy: not_join - accountID: 1 defaultValidity: 2W_U - defaultPending: immediate - tiersDowngradePolicy: one_down + canUpdateTierExpirationPolicy: true allowSubledger: false tiersExpireIn: 27W_U + tiersStartDate: 2021-09-12T10:12:42Z name: my_program - id: 0 - cardBased: true - canUpgradeToAdvancedTiers: true tiers: - name: Gold minPoints: 300 @@ -11197,25 +11676,67 @@ components: programId: 139 canUpdateTiers: true usersPerCardLimit: 111 - created: 2020-06-10T09:05:27.993483Z timezone: Europe/Berlin - sandbox: true description: Customers collect 10 points per 1$ spent title: Point collection canUpdateJoinPolicy: true + programJoinPolicy: not_join + accountID: 1 + defaultPending: immediate + tiersDowngradePolicy: one_down + cardCodeSettings: + couponPattern: SUMMER-####-#### + validCharacters: + - A + - B + - C + - D + - E + - F + - G + - H + - I + - J + - K + - L + - M + - "N" + - O + - P + - Q + - R + - S + - T + - U + - V + - W + - X + - "Y" + - Z + - "0" + - "1" + - "2" + - "3" + - "4" + - "5" + - "6" + - "7" + - "8" + - "9" + id: 0 + canUpgradeToAdvancedTiers: true + created: 2020-06-10T09:05:27.993483Z + sandbox: true subscribedApplications: - 132 - 97 tiersExpirationPolicy: tier_start_date - programJoinPolicy: not_join - accountID: 1 defaultValidity: 2W_U - defaultPending: immediate - tiersDowngradePolicy: one_down + canUpdateTierExpirationPolicy: true allowSubledger: false tiersExpireIn: 27W_U + tiersStartDate: 2021-09-12T10:12:42Z name: my_program - id: 0 name: My Application modified: 2021-09-12T10:12:42Z defaultDiscountScope: sessionTotal @@ -11991,6 +12512,7 @@ components: - coupons - referrals createdLoyaltyPointsCount: 9.0 + storesImported: true couponSettings: couponPattern: SUMMER-####-#### validCharacters: @@ -12383,6 +12905,11 @@ components: - archived example: running type: string + storesImported: + description: Indicates whether the linked stores were imported via a CSV + file. + example: true + type: boolean required: - applicationId - budgets @@ -12394,6 +12921,7 @@ components: - limits - name - state + - storesImported - tags - type - userId @@ -12564,9 +13092,15 @@ components: - archived example: running type: string + storesImported: + description: Indicates whether the linked stores were imported via a CSV + file. + example: true + type: boolean required: - budgets - frontendState + - storesImported type: object NewRuleset: properties: @@ -15412,10 +15946,6 @@ components: description: HTTP status code of the response. example: 200 type: integer - required: - - createdAt - - response - - status type: object WebhookActivationLogEntry: description: Log of activated webhooks. @@ -15476,6 +16006,7 @@ components: email: john.doe@example.com policy: Role: 127 + additionalAttributes: '{}' properties: id: description: Internal ID of this entity. @@ -15559,6 +16090,11 @@ components: example: 2020-06-01T00:00:00Z format: date-time type: string + additionalAttributes: + description: Additional user attributes, created and used by external identity + providers. + properties: {} + type: object required: - accountId - created @@ -15609,6 +16145,171 @@ components: required: - email type: object + OktaEventTarget: + description: Target of the specific Okta event. + properties: + type: + description: Type of the event target. + example: AppUser + type: string + alternateId: + description: Identifier of the event target, depending on its type. + example: john.doe@example.com + type: string + displayName: + description: Display name of the event target. + example: John Doe + type: string + required: + - alternateId + - displayName + - type + type: object + OktaEvent: + description: Single event definition in the event data emitted by Okta. + properties: + eventType: + description: Event type defining an action. + example: application.user_membership.add + type: string + target: + items: + $ref: '#/components/schemas/OktaEventTarget' + type: array + required: + - eventType + - target + type: object + OktaEventPayloadData: + description: Data part of the event emitted by Okta. + properties: + events: + items: + $ref: '#/components/schemas/OktaEvent' + type: array + required: + - events + type: object + OktaEventPayload: + description: Payload containing provisioning event details from Okta. + properties: + data: + $ref: '#/components/schemas/OktaEventPayloadData' + required: + - data + type: object + ScimNewUser: + description: Payload for users that are created using the SCIM provisioning + protocol with an identity provider, for example, Microsoft Entra ID. + properties: + active: + description: Status of the user. + example: true + type: boolean + displayName: + description: Display name of the user. + example: John Doe + type: string + userName: + description: Unique identifier of the user. This is usually an email address. + example: john.doe@example.com + type: string + required: + - userName + type: object + ScimUser: + description: Schema definition for users that have been provisioned using the + SCIM protocol with an identity provider, for example, Microsoft Entra ID. + example: + displayName: John Doe + active: true + id: "359" + userName: john.doe@example.com + properties: + active: + description: Status of the user. + example: true + type: boolean + displayName: + description: Display name of the user. + example: John Doe + type: string + userName: + description: Unique identifier of the user. This is usually an email address. + example: john.doe@example.com + type: string + id: + description: ID of the user. + example: "359" + type: string + required: + - id + - userName + type: object + ScimResource: + description: Resource schema definition for the SCIM provisioning protocol. + example: + id: User + name: User + properties: + id: + description: ID of the resource. + type: string + name: + description: Name of the resource. + type: string + type: object + ScimUsersListResponse: + description: List of users that have been provisioned using the SCIM protocol + with an identity provider, for example, Microsoft Entra ID. + example: + Resources: + - active: true + displayName: John Doe + id: 283 + meta: + resourceType: User + created: 2024-06-25T17:43:46+02:00 + userName: john.doe@example.com + schemas: + - urn:ietf:params:scim:schemas:core:2.0:User + - urn:ietf:params:scim:schemas:extension:enterprise:2.0:User + schemas: + - urn:ietf:params:scim:api:messages:2.0:ListResponse + totalResults: 1 + properties: + Resources: + items: + $ref: '#/components/schemas/ScimUser' + type: array + schemas: + items: + description: SCIM schema for the given resource. + example: urn:ietf:params:scim:api:messages:2.0:ListResponse + type: string + type: array + totalResults: + description: Number of total results in the response. + type: integer + required: + - Resources + type: object + ScimResourceTypesListResponse: + description: List of resource types supported by the SCIM provisioning protocol. + example: + Resources: + - id: User + name: User + - id: User + name: User + properties: + Resources: + items: + $ref: '#/components/schemas/ScimResource' + type: array + required: + - Resources + type: object NewInvitation: description: Parameters for inviting a new user. example: @@ -15883,7 +16584,6 @@ components: description: "" example: cardBased: true - canUpgradeToAdvancedTiers: true tiers: - name: Gold minPoints: 300 @@ -15902,25 +16602,67 @@ components: programId: 139 canUpdateTiers: true usersPerCardLimit: 111 - created: 2020-06-10T09:05:27.993483Z timezone: Europe/Berlin - sandbox: true description: Customers collect 10 points per 1$ spent title: Point collection canUpdateJoinPolicy: true + programJoinPolicy: not_join + accountID: 1 + defaultPending: immediate + tiersDowngradePolicy: one_down + cardCodeSettings: + couponPattern: SUMMER-####-#### + validCharacters: + - A + - B + - C + - D + - E + - F + - G + - H + - I + - J + - K + - L + - M + - "N" + - O + - P + - Q + - R + - S + - T + - U + - V + - W + - X + - "Y" + - Z + - "0" + - "1" + - "2" + - "3" + - "4" + - "5" + - "6" + - "7" + - "8" + - "9" + id: 0 + canUpgradeToAdvancedTiers: true + created: 2020-06-10T09:05:27.993483Z + sandbox: true subscribedApplications: - 132 - 97 tiersExpirationPolicy: tier_start_date - programJoinPolicy: not_join - accountID: 1 defaultValidity: 2W_U - defaultPending: immediate - tiersDowngradePolicy: one_down + canUpdateTierExpirationPolicy: true allowSubledger: false tiersExpireIn: 27W_U + tiersStartDate: 2021-09-12T10:12:42Z name: my_program - id: 0 properties: id: description: The ID of loyalty program. Internal ID of this entity. @@ -15980,14 +16722,39 @@ components: example: true title: Sandbox type: boolean + programJoinPolicy: + description: | + The policy that defines when the customer joins the loyalty program. + - `not_join`: The customer does not join the loyalty program but can still earn and spend loyalty points. + + **Note**: The customer does not have a program join date. + - `points_activated`: The customer joins the loyalty program only when their earned loyalty points become active for the first time. + - `points_earned`: The customer joins the loyalty program when they earn loyalty points for the first time. + enum: + - not_join + - points_activated + - points_earned + type: string tiersExpirationPolicy: description: | The policy that defines which date is used to calculate the expiration date of a customer's current tier. - `tier_start_date`: The tier expiration date is calculated based on when the customer joined the current tier. - `program_join_date`: The tier expiration date is calculated based on when the customer joined the loyalty program. + - `customer_attribute`: The tier expiration date is calculated based on a custom customer attribute. + - `absolute_expiration`: The tier expires on a specified date and time. **Note**: For absolute expiration, it is required to provide a `tiersStartDate.` enum: - tier_start_date - program_join_date + - customer_attribute + - absolute_expiration + type: string + tiersStartDate: + description: | + Timestamp at which the tier starts for all customers. + + **Note**: This is only required when the tier expiration policy is set to `absolute_expiration`. + example: 2021-09-12T10:12:42Z + format: date-time type: string tiersExpireIn: description: | @@ -16020,19 +16787,8 @@ components: - one_down - balance_based type: string - programJoinPolicy: - description: | - The policy that defines when the customer joins the loyalty program. - - `not_join`: The customer does not join the loyalty program but can still earn and spend loyalty points. - - **Note**: The customer does not have a program join date. - - `points_activated`: The customer joins the loyalty program only when their earned loyalty points become active for the first time. - - `points_earned`: The customer joins the loyalty program when they earn loyalty points for the first time. - enum: - - not_join - - points_activated - - points_earned - type: string + cardCodeSettings: + $ref: '#/components/schemas/CodeGeneratorSettings' accountID: description: The ID of the Talon.One account that owns this program. example: 1 @@ -16084,7 +16840,12 @@ components: type: boolean canUpdateJoinPolicy: description: | - Indicates whether the program join policy can be updated. The join policy can be updated when this value is set to `true`. + `True` if the program join policy can be updated. + example: true + type: boolean + canUpdateTierExpirationPolicy: + description: | + `True` if the tier expiration policy can be updated. example: true type: boolean canUpgradeToAdvancedTiers: @@ -16214,14 +16975,39 @@ components: example: true title: Sandbox type: boolean + programJoinPolicy: + description: | + The policy that defines when the customer joins the loyalty program. + - `not_join`: The customer does not join the loyalty program but can still earn and spend loyalty points. + + **Note**: The customer does not have a program join date. + - `points_activated`: The customer joins the loyalty program only when their earned loyalty points become active for the first time. + - `points_earned`: The customer joins the loyalty program when they earn loyalty points for the first time. + enum: + - not_join + - points_activated + - points_earned + type: string tiersExpirationPolicy: description: | The policy that defines which date is used to calculate the expiration date of a customer's current tier. - `tier_start_date`: The tier expiration date is calculated based on when the customer joined the current tier. - `program_join_date`: The tier expiration date is calculated based on when the customer joined the loyalty program. + - `customer_attribute`: The tier expiration date is calculated based on a custom customer attribute. + - `absolute_expiration`: The tier expires on a specified date and time. **Note**: For absolute expiration, it is required to provide a `tiersStartDate.` enum: - tier_start_date - program_join_date + - customer_attribute + - absolute_expiration + type: string + tiersStartDate: + description: | + Timestamp at which the tier starts for all customers. + + **Note**: This is only required when the tier expiration policy is set to `absolute_expiration`. + example: 2021-09-12T10:12:42Z + format: date-time type: string tiersExpireIn: description: | @@ -16254,19 +17040,8 @@ components: - one_down - balance_based type: string - programJoinPolicy: - description: | - The policy that defines when the customer joins the loyalty program. - - `not_join`: The customer does not join the loyalty program but can still earn and spend loyalty points. - - **Note**: The customer does not have a program join date. - - `points_activated`: The customer joins the loyalty program only when their earned loyalty points become active for the first time. - - `points_earned`: The customer joins the loyalty program when they earn loyalty points for the first time. - enum: - - not_join - - points_activated - - points_earned - type: string + cardCodeSettings: + $ref: '#/components/schemas/CodeGeneratorSettings' type: object NewLoyaltyProgram: description: "" @@ -16321,14 +17096,39 @@ components: example: true title: Sandbox type: boolean + programJoinPolicy: + description: | + The policy that defines when the customer joins the loyalty program. + - `not_join`: The customer does not join the loyalty program but can still earn and spend loyalty points. + + **Note**: The customer does not have a program join date. + - `points_activated`: The customer joins the loyalty program only when their earned loyalty points become active for the first time. + - `points_earned`: The customer joins the loyalty program when they earn loyalty points for the first time. + enum: + - not_join + - points_activated + - points_earned + type: string tiersExpirationPolicy: description: | The policy that defines which date is used to calculate the expiration date of a customer's current tier. - `tier_start_date`: The tier expiration date is calculated based on when the customer joined the current tier. - `program_join_date`: The tier expiration date is calculated based on when the customer joined the loyalty program. + - `customer_attribute`: The tier expiration date is calculated based on a custom customer attribute. + - `absolute_expiration`: The tier expires on a specified date and time. **Note**: For absolute expiration, it is required to provide a `tiersStartDate.` enum: - tier_start_date - program_join_date + - customer_attribute + - absolute_expiration + type: string + tiersStartDate: + description: | + Timestamp at which the tier starts for all customers. + + **Note**: This is only required when the tier expiration policy is set to `absolute_expiration`. + example: 2021-09-12T10:12:42Z + format: date-time type: string tiersExpireIn: description: | @@ -16361,19 +17161,8 @@ components: - one_down - balance_based type: string - programJoinPolicy: - description: | - The policy that defines when the customer joins the loyalty program. - - `not_join`: The customer does not join the loyalty program but can still earn and spend loyalty points. - - **Note**: The customer does not have a program join date. - - `points_activated`: The customer joins the loyalty program only when their earned loyalty points become active for the first time. - - `points_earned`: The customer joins the loyalty program when they earn loyalty points for the first time. - enum: - - not_join - - points_activated - - points_earned - type: string + cardCodeSettings: + $ref: '#/components/schemas/CodeGeneratorSettings' name: description: The internal name for the Loyalty Program. This is an immutable value. @@ -16459,14 +17248,39 @@ components: example: true title: Sandbox type: boolean + programJoinPolicy: + description: | + The policy that defines when the customer joins the loyalty program. + - `not_join`: The customer does not join the loyalty program but can still earn and spend loyalty points. + + **Note**: The customer does not have a program join date. + - `points_activated`: The customer joins the loyalty program only when their earned loyalty points become active for the first time. + - `points_earned`: The customer joins the loyalty program when they earn loyalty points for the first time. + enum: + - not_join + - points_activated + - points_earned + type: string tiersExpirationPolicy: description: | The policy that defines which date is used to calculate the expiration date of a customer's current tier. - `tier_start_date`: The tier expiration date is calculated based on when the customer joined the current tier. - `program_join_date`: The tier expiration date is calculated based on when the customer joined the loyalty program. + - `customer_attribute`: The tier expiration date is calculated based on a custom customer attribute. + - `absolute_expiration`: The tier expires on a specified date and time. **Note**: For absolute expiration, it is required to provide a `tiersStartDate.` enum: - tier_start_date - program_join_date + - customer_attribute + - absolute_expiration + type: string + tiersStartDate: + description: | + Timestamp at which the tier starts for all customers. + + **Note**: This is only required when the tier expiration policy is set to `absolute_expiration`. + example: 2021-09-12T10:12:42Z + format: date-time type: string tiersExpireIn: description: | @@ -16499,19 +17313,8 @@ components: - one_down - balance_based type: string - programJoinPolicy: - description: | - The policy that defines when the customer joins the loyalty program. - - `not_join`: The customer does not join the loyalty program but can still earn and spend loyalty points. - - **Note**: The customer does not have a program join date. - - `points_activated`: The customer joins the loyalty program only when their earned loyalty points become active for the first time. - - `points_earned`: The customer joins the loyalty program when they earn loyalty points for the first time. - enum: - - not_join - - points_activated - - points_earned - type: string + cardCodeSettings: + $ref: '#/components/schemas/CodeGeneratorSettings' tiers: description: The tiers in this loyalty program. items: @@ -16657,18 +17460,6 @@ components: type: object LoyaltyBalances: description: List of loyalty balances for a ledger and its subledgers. - example: - balance: - activePoints: 286.0 - spentPoints: 150.0 - expiredPoints: 286.0 - pendingPoints: 50.0 - subledgerBalances: - mysubledger: - activePoints: 286 - pendingPoints: 50 - spentPoints: 150 - expiredPoints: 25 properties: balance: $ref: '#/components/schemas/LoyaltyBalance' @@ -16716,6 +17507,103 @@ components: title: Total expired points type: number type: object + LoyaltyBalanceWithTier: + description: "" + example: + projectedTier: + projectedActivePoints: 198.0 + stayInTierPoints: 2.0 + projectedTierName: Tier 1 + activePoints: 286.0 + spentPoints: 150.0 + nextTierName: silver + pointsToNextTier: 20.0 + expiredPoints: 286.0 + currentTier: + expiryDate: 2000-01-23T04:56:07.000+00:00 + downgradePolicy: one_down + name: bronze + id: 11 + startDate: 2000-01-23T04:56:07.000+00:00 + pendingPoints: 50.0 + properties: + activePoints: + description: Total amount of points awarded to this customer and available + to spend. + example: 286.0 + title: Current Balance + type: number + pendingPoints: + description: Total amount of points awarded to this customer but not available + until their start date. + example: 50.0 + title: Total pending points + type: number + spentPoints: + description: Total amount of points already spent by this customer. + example: 150.0 + title: Total spent points + type: number + expiredPoints: + description: Total amount of points awarded but never redeemed. They cannot + be used anymore. + example: 286.0 + title: Total expired points + type: number + currentTier: + $ref: '#/components/schemas/Tier' + projectedTier: + $ref: '#/components/schemas/ProjectedTier' + pointsToNextTier: + description: The number of points required to move up a tier. + example: 20.0 + type: number + nextTierName: + description: The name of the tier consecutive to the current tier. + example: silver + type: string + type: object + LoyaltyBalancesWithTiers: + description: List of loyalty balances for a ledger and its subledgers. + example: + balance: + projectedTier: + projectedActivePoints: 198.0 + stayInTierPoints: 2.0 + projectedTierName: Tier 1 + activePoints: 286.0 + spentPoints: 150.0 + nextTierName: silver + pointsToNextTier: 20.0 + expiredPoints: 286.0 + currentTier: + expiryDate: 2000-01-23T04:56:07.000+00:00 + downgradePolicy: one_down + name: bronze + id: 11 + startDate: 2000-01-23T04:56:07.000+00:00 + pendingPoints: 50.0 + subledgerBalances: + mysubledger: + activePoints: 286 + pendingPoints: 50 + spentPoints: 150 + expiredPoints: 25 + properties: + balance: + $ref: '#/components/schemas/LoyaltyBalanceWithTier' + subledgerBalances: + additionalProperties: + $ref: '#/components/schemas/LoyaltyBalanceWithTier' + description: Map of the loyalty balances of the subledgers of a ledger. + example: + mysubledger: + activePoints: 286 + pendingPoints: 50 + spentPoints: 150 + expiredPoints: 25 + type: object + type: object LoyaltyLedger: description: Ledger of Balance in Loyalty Program for a Customer. example: @@ -16846,6 +17734,7 @@ components: downgradePolicy: one_down name: bronze id: 11 + startDate: 2000-01-23T04:56:07.000+00:00 pendingPoints: - eventID: 5 amount: 100.0 @@ -17027,6 +17916,7 @@ components: downgradePolicy: one_down name: bronze id: 11 + startDate: 2000-01-23T04:56:07.000+00:00 pendingPoints: - eventID: 5 amount: 100.0 @@ -17132,6 +18022,7 @@ components: downgradePolicy: one_down name: bronze id: 11 + startDate: 2000-01-23T04:56:07.000+00:00 identifier: summer-loyalty-card-0543 oldCardIdentifier: summer-loyalty-card-0543 usersPerCardLimit: 111 @@ -17155,8 +18046,10 @@ components: downgradePolicy: one_down name: bronze id: 11 + startDate: 2000-01-23T04:56:07.000+00:00 modified: 2021-09-12T10:12:42Z id: 6 + blockReason: Current card lost. Customer needs a new card. newCardIdentifier: summer-loyalty-card-0543 programID: 125 status: active @@ -17173,6 +18066,7 @@ components: downgradePolicy: one_down name: bronze id: 11 + startDate: 2000-01-23T04:56:07.000+00:00 identifier: summer-loyalty-card-0543 oldCardIdentifier: summer-loyalty-card-0543 usersPerCardLimit: 111 @@ -17196,8 +18090,10 @@ components: downgradePolicy: one_down name: bronze id: 11 + startDate: 2000-01-23T04:56:07.000+00:00 modified: 2021-09-12T10:12:42Z id: 6 + blockReason: Current card lost. Customer needs a new card. newCardIdentifier: summer-loyalty-card-0543 programID: 125 status: active @@ -17216,6 +18112,7 @@ components: downgradePolicy: one_down name: bronze id: 11 + startDate: 2000-01-23T04:56:07.000+00:00 joinDate: 2000-01-23T04:56:07.000+00:00 subLedgers: key: @@ -17231,6 +18128,7 @@ components: downgradePolicy: one_down name: bronze id: 11 + startDate: 2000-01-23T04:56:07.000+00:00 name: program1 id: 5 title: My loyalty program @@ -17267,6 +18165,7 @@ components: downgradePolicy: one_down name: bronze id: 11 + startDate: 2000-01-23T04:56:07.000+00:00 joinDate: 2000-01-23T04:56:07.000+00:00 subLedgers: key: @@ -17282,6 +18181,7 @@ components: downgradePolicy: one_down name: bronze id: 11 + startDate: 2000-01-23T04:56:07.000+00:00 name: program1 id: 5 title: My loyalty program @@ -17333,6 +18233,7 @@ components: downgradePolicy: one_down name: bronze id: 11 + startDate: 2000-01-23T04:56:07.000+00:00 properties: currentBalance: description: Sum of currently active points. @@ -17406,6 +18307,7 @@ components: downgradePolicy: one_down name: bronze id: 11 + startDate: 2000-01-23T04:56:07.000+00:00 properties: id: description: The internal ID of the tier. @@ -17415,6 +18317,11 @@ components: description: The name of the tier. example: bronze type: string + startDate: + description: Date and time when the customer moved to this tier. This value + uses the loyalty program's time zone setting. + format: date-time + type: string expiryDate: description: Date when tier level expires in the RFC3339 format (in the Loyalty Program's timezone). @@ -17433,6 +18340,31 @@ components: - id - name type: object + ProjectedTier: + example: + projectedActivePoints: 198.0 + stayInTierPoints: 2.0 + projectedTierName: Tier 1 + properties: + projectedActivePoints: + description: The active points of the customer when their current tier expires. + example: 198.0 + type: number + stayInTierPoints: + description: | + The number of points the customer needs to stay in the current tier. + + **Note**: This is included in the response when the customer is projected to be downgraded. + example: 2.0 + type: number + projectedTierName: + description: The name of the tier the user will enter once their current + tier expires. + example: Tier 1 + type: string + required: + - projectedActivePoints + type: object TimePoint: description: | The absolute duration after which the achievement ends and resets for a particular customer profile. @@ -17504,6 +18436,7 @@ components: downgradePolicy: one_down name: bronze id: 11 + startDate: 2000-01-23T04:56:07.000+00:00 identifier: summer-loyalty-card-0543 oldCardIdentifier: summer-loyalty-card-0543 usersPerCardLimit: 111 @@ -17527,8 +18460,10 @@ components: downgradePolicy: one_down name: bronze id: 11 + startDate: 2000-01-23T04:56:07.000+00:00 modified: 2021-09-12T10:12:42Z id: 6 + blockReason: Current card lost. Customer needs a new card. newCardIdentifier: summer-loyalty-card-0543 programID: 125 status: active @@ -17551,6 +18486,11 @@ components: Status of the loyalty card. Can be one of: ['active', 'inactive'] example: active type: string + blockReason: + description: | + Reason for transferring and blocking the loyalty card. + example: Current card lost. Customer needs a new card. + type: string identifier: description: | The alphanumeric identifier of the loyalty card. @@ -18176,6 +19116,7 @@ components: TransferLoyaltyCard: example: newCardIdentifier: summer-loyalty-card-0543 + blockReason: Current card lost. Customer needs a new card. properties: newCardIdentifier: description: | @@ -18183,11 +19124,17 @@ components: example: summer-loyalty-card-0543 maxLength: 108 type: string + blockReason: + description: | + Reason for transferring and blocking the loyalty card. + example: Current card lost. Customer needs a new card. + type: string required: - newCardIdentifier type: object UpdateLoyaltyCard: example: + blockReason: Current card lost. Customer needs a new card. status: active properties: status: @@ -18195,6 +19142,11 @@ components: Status of the loyalty card. Can be one of: ['active', 'inactive'] example: active type: string + blockReason: + description: | + Reason for transferring and blocking the loyalty card. + example: Current card lost. Customer needs a new card. + type: string required: - status type: object @@ -18598,6 +19550,7 @@ components: downgradePolicy: one_down name: bronze id: 11 + startDate: 2000-01-23T04:56:07.000+00:00 identifier: summer-loyalty-card-0543 oldCardIdentifier: summer-loyalty-card-0543 usersPerCardLimit: 111 @@ -18621,8 +19574,10 @@ components: downgradePolicy: one_down name: bronze id: 11 + startDate: 2000-01-23T04:56:07.000+00:00 modified: 2021-09-12T10:12:42Z id: 6 + blockReason: Current card lost. Customer needs a new card. newCardIdentifier: summer-loyalty-card-0543 programID: 125 status: active @@ -18639,6 +19594,7 @@ components: downgradePolicy: one_down name: bronze id: 11 + startDate: 2000-01-23T04:56:07.000+00:00 identifier: summer-loyalty-card-0543 oldCardIdentifier: summer-loyalty-card-0543 usersPerCardLimit: 111 @@ -18662,8 +19618,10 @@ components: downgradePolicy: one_down name: bronze id: 11 + startDate: 2000-01-23T04:56:07.000+00:00 modified: 2021-09-12T10:12:42Z id: 6 + blockReason: Current card lost. Customer needs a new card. newCardIdentifier: summer-loyalty-card-0543 programID: 125 status: active @@ -18682,6 +19640,7 @@ components: downgradePolicy: one_down name: bronze id: 11 + startDate: 2000-01-23T04:56:07.000+00:00 joinDate: 2000-01-23T04:56:07.000+00:00 subLedgers: key: @@ -18697,6 +19656,7 @@ components: downgradePolicy: one_down name: bronze id: 11 + startDate: 2000-01-23T04:56:07.000+00:00 name: program1 id: 5 title: My loyalty program @@ -19890,6 +20850,7 @@ components: downgradePolicy: one_down name: bronze id: 11 + startDate: 2000-01-23T04:56:07.000+00:00 identifier: summer-loyalty-card-0543 oldCardIdentifier: summer-loyalty-card-0543 usersPerCardLimit: 111 @@ -19913,8 +20874,10 @@ components: downgradePolicy: one_down name: bronze id: 11 + startDate: 2000-01-23T04:56:07.000+00:00 modified: 2021-09-12T10:12:42Z id: 6 + blockReason: Current card lost. Customer needs a new card. newCardIdentifier: summer-loyalty-card-0543 programID: 125 status: active @@ -19931,6 +20894,7 @@ components: downgradePolicy: one_down name: bronze id: 11 + startDate: 2000-01-23T04:56:07.000+00:00 identifier: summer-loyalty-card-0543 oldCardIdentifier: summer-loyalty-card-0543 usersPerCardLimit: 111 @@ -19954,8 +20918,10 @@ components: downgradePolicy: one_down name: bronze id: 11 + startDate: 2000-01-23T04:56:07.000+00:00 modified: 2021-09-12T10:12:42Z id: 6 + blockReason: Current card lost. Customer needs a new card. newCardIdentifier: summer-loyalty-card-0543 programID: 125 status: active @@ -19974,6 +20940,7 @@ components: downgradePolicy: one_down name: bronze id: 11 + startDate: 2000-01-23T04:56:07.000+00:00 joinDate: 2000-01-23T04:56:07.000+00:00 subLedgers: key: @@ -19989,6 +20956,7 @@ components: downgradePolicy: one_down name: bronze id: 11 + startDate: 2000-01-23T04:56:07.000+00:00 name: program1 id: 5 title: My loyalty program @@ -20112,19 +21080,23 @@ components: effects: - rulesetId: 73 ruleIndex: 2 + evaluationGroupID: 3 triggeredForCatalogItem: 786 campaignId: 244 ruleName: Give 20% discount conditionIndex: 786 + evaluationGroupMode: stackable triggeredByCoupon: 4928 effectType: rejectCoupon props: '{}' - rulesetId: 73 ruleIndex: 2 + evaluationGroupID: 3 triggeredForCatalogItem: 786 campaignId: 244 ruleName: Give 20% discount conditionIndex: 786 + evaluationGroupMode: stackable triggeredByCoupon: 4928 effectType: rejectCoupon props: '{}' @@ -20158,6 +21130,7 @@ components: - coupons - referrals createdLoyaltyPointsCount: 9.0 + storesImported: true couponSettings: couponPattern: SUMMER-####-#### validCharacters: @@ -20299,6 +21272,7 @@ components: - coupons - referrals createdLoyaltyPointsCount: 9.0 + storesImported: true couponSettings: couponPattern: SUMMER-####-#### validCharacters: @@ -20744,19 +21718,23 @@ components: effects: - rulesetId: 73 ruleIndex: 2 + evaluationGroupID: 3 triggeredForCatalogItem: 786 campaignId: 244 ruleName: Give 20% discount conditionIndex: 786 + evaluationGroupMode: stackable triggeredByCoupon: 4928 effectType: rejectCoupon props: '{}' - rulesetId: 73 ruleIndex: 2 + evaluationGroupID: 3 triggeredForCatalogItem: 786 campaignId: 244 ruleName: Give 20% discount conditionIndex: 786 + evaluationGroupMode: stackable triggeredByCoupon: 4928 effectType: rejectCoupon props: '{}' @@ -20772,6 +21750,7 @@ components: - coupons - referrals createdLoyaltyPointsCount: 9.0 + storesImported: true couponSettings: couponPattern: SUMMER-####-#### validCharacters: @@ -20913,6 +21892,7 @@ components: - coupons - referrals createdLoyaltyPointsCount: 9.0 + storesImported: true couponSettings: couponPattern: SUMMER-####-#### validCharacters: @@ -21080,6 +22060,7 @@ components: downgradePolicy: one_down name: bronze id: 11 + startDate: 2000-01-23T04:56:07.000+00:00 identifier: summer-loyalty-card-0543 oldCardIdentifier: summer-loyalty-card-0543 usersPerCardLimit: 111 @@ -21103,8 +22084,10 @@ components: downgradePolicy: one_down name: bronze id: 11 + startDate: 2000-01-23T04:56:07.000+00:00 modified: 2021-09-12T10:12:42Z id: 6 + blockReason: Current card lost. Customer needs a new card. newCardIdentifier: summer-loyalty-card-0543 programID: 125 status: active @@ -21121,6 +22104,7 @@ components: downgradePolicy: one_down name: bronze id: 11 + startDate: 2000-01-23T04:56:07.000+00:00 identifier: summer-loyalty-card-0543 oldCardIdentifier: summer-loyalty-card-0543 usersPerCardLimit: 111 @@ -21144,8 +22128,10 @@ components: downgradePolicy: one_down name: bronze id: 11 + startDate: 2000-01-23T04:56:07.000+00:00 modified: 2021-09-12T10:12:42Z id: 6 + blockReason: Current card lost. Customer needs a new card. newCardIdentifier: summer-loyalty-card-0543 programID: 125 status: active @@ -21164,6 +22150,7 @@ components: downgradePolicy: one_down name: bronze id: 11 + startDate: 2000-01-23T04:56:07.000+00:00 joinDate: 2000-01-23T04:56:07.000+00:00 subLedgers: key: @@ -21179,6 +22166,7 @@ components: downgradePolicy: one_down name: bronze id: 11 + startDate: 2000-01-23T04:56:07.000+00:00 name: program1 id: 5 title: My loyalty program @@ -21415,19 +22403,23 @@ components: effects: - rulesetId: 73 ruleIndex: 2 + evaluationGroupID: 3 triggeredForCatalogItem: 786 campaignId: 244 ruleName: Give 20% discount conditionIndex: 786 + evaluationGroupMode: stackable triggeredByCoupon: 4928 effectType: rejectCoupon props: '{}' - rulesetId: 73 ruleIndex: 2 + evaluationGroupID: 3 triggeredForCatalogItem: 786 campaignId: 244 ruleName: Give 20% discount conditionIndex: 786 + evaluationGroupMode: stackable triggeredByCoupon: 4928 effectType: rejectCoupon props: '{}' @@ -21443,6 +22435,7 @@ components: - coupons - referrals createdLoyaltyPointsCount: 9.0 + storesImported: true couponSettings: couponPattern: SUMMER-####-#### validCharacters: @@ -21584,6 +22577,7 @@ components: - coupons - referrals createdLoyaltyPointsCount: 9.0 + storesImported: true couponSettings: couponPattern: SUMMER-####-#### validCharacters: @@ -21751,6 +22745,7 @@ components: downgradePolicy: one_down name: bronze id: 11 + startDate: 2000-01-23T04:56:07.000+00:00 identifier: summer-loyalty-card-0543 oldCardIdentifier: summer-loyalty-card-0543 usersPerCardLimit: 111 @@ -21774,8 +22769,10 @@ components: downgradePolicy: one_down name: bronze id: 11 + startDate: 2000-01-23T04:56:07.000+00:00 modified: 2021-09-12T10:12:42Z id: 6 + blockReason: Current card lost. Customer needs a new card. newCardIdentifier: summer-loyalty-card-0543 programID: 125 status: active @@ -21792,6 +22789,7 @@ components: downgradePolicy: one_down name: bronze id: 11 + startDate: 2000-01-23T04:56:07.000+00:00 identifier: summer-loyalty-card-0543 oldCardIdentifier: summer-loyalty-card-0543 usersPerCardLimit: 111 @@ -21815,8 +22813,10 @@ components: downgradePolicy: one_down name: bronze id: 11 + startDate: 2000-01-23T04:56:07.000+00:00 modified: 2021-09-12T10:12:42Z id: 6 + blockReason: Current card lost. Customer needs a new card. newCardIdentifier: summer-loyalty-card-0543 programID: 125 status: active @@ -21835,6 +22835,7 @@ components: downgradePolicy: one_down name: bronze id: 11 + startDate: 2000-01-23T04:56:07.000+00:00 joinDate: 2000-01-23T04:56:07.000+00:00 subLedgers: key: @@ -21850,6 +22851,7 @@ components: downgradePolicy: one_down name: bronze id: 11 + startDate: 2000-01-23T04:56:07.000+00:00 name: program1 id: 5 title: My loyalty program @@ -22086,19 +23088,23 @@ components: effects: - rulesetId: 73 ruleIndex: 2 + evaluationGroupID: 3 triggeredForCatalogItem: 786 campaignId: 244 ruleName: Give 20% discount conditionIndex: 786 + evaluationGroupMode: stackable triggeredByCoupon: 4928 effectType: rejectCoupon props: '{}' - rulesetId: 73 ruleIndex: 2 + evaluationGroupID: 3 triggeredForCatalogItem: 786 campaignId: 244 ruleName: Give 20% discount conditionIndex: 786 + evaluationGroupMode: stackable triggeredByCoupon: 4928 effectType: rejectCoupon props: '{}' @@ -22149,19 +23155,23 @@ components: effects: - rulesetId: 73 ruleIndex: 2 + evaluationGroupID: 3 triggeredForCatalogItem: 786 campaignId: 244 ruleName: Give 20% discount conditionIndex: 786 + evaluationGroupMode: stackable triggeredByCoupon: 4928 effectType: rejectCoupon props: '{}' - rulesetId: 73 ruleIndex: 2 + evaluationGroupID: 3 triggeredForCatalogItem: 786 campaignId: 244 ruleName: Give 20% discount conditionIndex: 786 + evaluationGroupMode: stackable triggeredByCoupon: 4928 effectType: rejectCoupon props: '{}' @@ -22674,19 +23684,23 @@ components: effects: - rulesetId: 73 ruleIndex: 2 + evaluationGroupID: 3 triggeredForCatalogItem: 786 campaignId: 244 ruleName: Give 20% discount conditionIndex: 786 + evaluationGroupMode: stackable triggeredByCoupon: 4928 effectType: rejectCoupon props: '{}' - rulesetId: 73 ruleIndex: 2 + evaluationGroupID: 3 triggeredForCatalogItem: 786 campaignId: 244 ruleName: Give 20% discount conditionIndex: 786 + evaluationGroupMode: stackable triggeredByCoupon: 4928 effectType: rejectCoupon props: '{}' @@ -24308,6 +25322,7 @@ components: - coupons - referrals createdLoyaltyPointsCount: 9.0 + storesImported: true couponSettings: couponPattern: SUMMER-####-#### validCharacters: @@ -24590,7 +25605,6 @@ components: object with keys corresponding to the `name` of the custom attributes for that type. enum: - - Account - Application - Campaign - CustomerProfile @@ -24758,7 +25772,6 @@ components: object with keys corresponding to the `name` of the custom attributes for that type. enum: - - Account - Application - Campaign - CustomerProfile @@ -25084,6 +26097,10 @@ components: example: Send message pattern: ^[A-Za-z][A-Za-z0-9_.!~*'() -]*$ type: string + description: + description: A description of the webhook. + example: A webhook to send a coupon to the user. + type: string verb: description: API method for this webhook. enum: @@ -25141,6 +26158,7 @@ components: created: 2020-06-10T09:05:27.993483Z verb: POST modified: 2021-09-12T10:12:42Z + description: A webhook to send a coupon to the user. id: 6 title: Send message params: [] @@ -25177,104 +26195,113 @@ components: example: Send message pattern: ^[A-Za-z][A-Za-z0-9_.!~*'() -]*$ type: string - verb: - description: API method for this webhook. - enum: - - POST - - PUT - - GET - - DELETE - - PATCH - example: POST - type: string - url: - description: API URL (supports templating using parameters) for this webhook. - example: www.my-company.com/my-endpoint-name - type: string - headers: - description: List of API HTTP headers for this webhook. - example: - - '{"Authorization": "Basic bmF2ZWVua3VtYXIU="}' - - '{"Content-Type": "application/json"}' - items: - pattern: ^([^:,]*):([^]*|[^,]*)$ - type: string - type: array - payload: - description: API payload (supports templating using parameters) for this - webhook. - example: "{\n\t\"message\": \"${message}\"\n}" - type: string - params: - description: Array of template argument definitions. - example: [] - items: - $ref: '#/components/schemas/TemplateArgDef' - type: array - enabled: - description: Enables or disables webhook from showing in the Rule Builder. - example: true - type: boolean - required: - - applicationIds - - created - - enabled - - headers - - id - - modified - - params - - title - - url - - verb - type: object - WebhookWithOutgoingIntegrationDetails: - description: "" - example: - headers: - - '{"Authorization": "Basic bmF2ZWVua3VtYXIU="}' - - '{"Content-Type": "application/json"}' - created: 2020-06-10T09:05:27.993483Z - outgoingIntegrationTemplateId: 1 - verb: POST - title: Send message - params: [] - url: www.my-company.com/my-endpoint-name - enabled: true - applicationIds: - - 0 - - 0 - outgoingIntegrationTypeId: 1 - outgoingIntegrationTypeName: Braze - payload: "{\n\t\"message\": \"${message}\"\n}" - modified: 2021-09-12T10:12:42Z - id: 6 - properties: - id: - description: Internal ID of this entity. - example: 6 - type: integer - created: - description: The time this entity was created. - example: 2020-06-10T09:05:27.993483Z - format: date-time - type: string - modified: - description: The time this entity was last modified. - example: 2021-09-12T10:12:42Z - format: date-time - type: string - applicationIds: - description: The IDs of the Applications that are related to this entity. - The IDs of the Applications that are related to this entity. - items: - description: "" - type: integer - minItems: 1 - type: array - title: - description: Name or title for this webhook. - example: Send message - pattern: ^[A-Za-z][A-Za-z0-9_.!~*'() -]*$ + description: + description: A description of the webhook. + example: A webhook to send a coupon to the user. + type: string + verb: + description: API method for this webhook. + enum: + - POST + - PUT + - GET + - DELETE + - PATCH + example: POST + type: string + url: + description: API URL (supports templating using parameters) for this webhook. + example: www.my-company.com/my-endpoint-name + type: string + headers: + description: List of API HTTP headers for this webhook. + example: + - '{"Authorization": "Basic bmF2ZWVua3VtYXIU="}' + - '{"Content-Type": "application/json"}' + items: + pattern: ^([^:,]*):([^]*|[^,]*)$ + type: string + type: array + payload: + description: API payload (supports templating using parameters) for this + webhook. + example: "{\n\t\"message\": \"${message}\"\n}" + type: string + params: + description: Array of template argument definitions. + example: [] + items: + $ref: '#/components/schemas/TemplateArgDef' + type: array + enabled: + description: Enables or disables webhook from showing in the Rule Builder. + example: true + type: boolean + required: + - applicationIds + - created + - enabled + - headers + - id + - modified + - params + - title + - url + - verb + type: object + WebhookWithOutgoingIntegrationDetails: + description: "" + example: + headers: + - '{"Authorization": "Basic bmF2ZWVua3VtYXIU="}' + - '{"Content-Type": "application/json"}' + created: 2020-06-10T09:05:27.993483Z + outgoingIntegrationTemplateId: 1 + verb: POST + description: A webhook to send a coupon to the user. + title: Send message + params: [] + url: www.my-company.com/my-endpoint-name + enabled: true + applicationIds: + - 0 + - 0 + outgoingIntegrationTypeId: 1 + outgoingIntegrationTypeName: Braze + payload: "{\n\t\"message\": \"${message}\"\n}" + modified: 2021-09-12T10:12:42Z + id: 6 + properties: + id: + description: Internal ID of this entity. + example: 6 + type: integer + created: + description: The time this entity was created. + example: 2020-06-10T09:05:27.993483Z + format: date-time + type: string + modified: + description: The time this entity was last modified. + example: 2021-09-12T10:12:42Z + format: date-time + type: string + applicationIds: + description: The IDs of the Applications that are related to this entity. + The IDs of the Applications that are related to this entity. + items: + description: "" + type: integer + minItems: 1 + type: array + title: + description: Name or title for this webhook. + example: Send message + pattern: ^[A-Za-z][A-Za-z0-9_.!~*'() -]*$ + type: string + description: + description: A description of the webhook. + example: A webhook to send a coupon to the user. type: string verb: description: API method for this webhook. @@ -27220,6 +28247,11 @@ components: It is not possible to change this to `false` after it is set to `true`. example: true type: boolean + newAcsUrl: + description: | + Assertion Consumer Service (ACS) URL for setting up a new SAML connection with an identity provider like Okta or Microsoft Entra ID. + example: https://yourdeployment.talon.one/v1/saml_connections/5/saml_callback + type: string required: - enforced type: object @@ -27228,10 +28260,12 @@ components: example: rulesetId: 73 ruleIndex: 2 + evaluationGroupID: 3 triggeredForCatalogItem: 786 campaignId: 244 ruleName: Give 20% discount conditionIndex: 786 + evaluationGroupMode: stackable triggeredByCoupon: 4928 effectType: rejectCoupon props: '{}' @@ -27272,6 +28306,16 @@ components: description: The index of the condition that was triggered. example: 786 type: integer + evaluationGroupID: + description: The ID of the evaluation group. For more information, see [Managing + campaign evaluation](https://docs.talon.one/docs/product/applications/managing-campaign-evaluation). + example: 3 + type: integer + evaluationGroupMode: + description: The evaluation mode of the evaluation group. For more information, + see [Managing campaign evaluation](https://docs.talon.one/docs/product/applications/managing-campaign-evaluation). + example: stackable + type: string props: description: The properties of the effect. See [API effects](https://docs.talon.one/docs/dev/integration-api/api-effects). type: object @@ -27323,6 +28367,16 @@ components: description: The index of the condition that was triggered. example: 786 type: integer + evaluationGroupID: + description: The ID of the evaluation group. For more information, see [Managing + campaign evaluation](https://docs.talon.one/docs/product/applications/managing-campaign-evaluation). + example: 3 + type: integer + evaluationGroupMode: + description: The evaluation mode of the evaluation group. For more information, + see [Managing campaign evaluation](https://docs.talon.one/docs/product/applications/managing-campaign-evaluation). + example: stackable + type: string required: - campaignId - effectType @@ -27391,6 +28445,10 @@ components: details: description: More details about the failure. type: string + campaignExclusionReason: + description: The reason why the campaign was not applied. + example: CampaignGaveLowerDiscount + type: string required: - rejectionReason - value @@ -27416,6 +28474,10 @@ components: details: description: More details about the failure. type: string + campaignExclusionReason: + description: The reason why the campaign was not applied. + example: CampaignGaveLowerDiscount + type: string required: - rejectionReason - value @@ -28122,8 +29184,7 @@ components: description: The current progress of the customer in the achievement. type: number target: - description: The required number of actions or the transactional milestone - to complete the achievement. + description: The target value to complete the achievement. type: number isJustCompleted: description: Indicates if the customer has completed the achievement in @@ -28137,6 +29198,41 @@ components: - target - value type: object + RollbackIncreasedAchievementProgressEffectProps: + description: The properties specific to the "rollbackIncreasedAchievementProgress" + effect. This gets triggered whenever a closed session where the `increaseAchievementProgress` + effect was triggered is cancelled. This is applicable only when the customer + has not completed the achievement. + properties: + achievementId: + description: The internal ID of the achievement. + example: 10 + type: integer + achievementName: + description: The name of the achievement. + example: FreeCoffee10Orders + type: string + progressTrackerId: + description: The internal ID of the achievement progress tracker. + type: integer + decreaseProgressBy: + description: The value by which the customer's current progress in the achievement + is decreased. + type: number + currentProgress: + description: The current progress of the customer in the achievement. + type: number + target: + description: The target value to complete the achievement. + type: number + required: + - achievementId + - achievementName + - currentProgress + - decreaseProgressBy + - progressTrackerId + - target + type: object ErrorEffectProps: description: Whenever an error occurred during evaluation, we return an error effect. This should never happen for rules created in the rule builder. @@ -30158,6 +31254,7 @@ components: policy: '{}' properties: policy: + description: Indicates which notification properties to apply. type: object enabled: default: true @@ -30172,6 +31269,7 @@ components: BaseNotificationEntity: properties: policy: + description: Indicates which notification properties to apply. type: object enabled: default: true @@ -30181,6 +31279,7 @@ components: - policy type: object BaseNotificationPolicy: + description: Indicates which notification properties to apply. type: object ExpiringCouponsNotificationPolicy: properties: @@ -30270,6 +31369,28 @@ components: - name - scopes type: object + CardAddedDeductedPointsNotificationPolicy: + properties: + name: + description: Notification name. + example: Christmas Sale + minLength: 1 + type: string + scopes: + items: + enum: + - all + - campaign_manager + - management_api + - rule_engine + type: string + maxItems: 4 + minItems: 1 + type: array + required: + - name + - scopes + type: object CouponsNotificationPolicy: properties: name: @@ -30359,6 +31480,11 @@ components: example: Christmas Sale minLength: 1 type: string + batchingEnabled: + default: true + description: Indicates whether batching is activated. + example: false + type: boolean required: - name type: object @@ -30477,6 +31603,7 @@ components: policy: '{}' properties: policy: + description: Indicates which notification properties to apply. type: object enabled: default: true @@ -30494,6 +31621,7 @@ components: enum: - campaign - loyalty_added_deducted_points + - card_added_deducted_points - coupon - expiring_coupons - expiring_points @@ -30605,6 +31733,7 @@ components: enum: - campaign - loyalty_added_deducted_points + - card_added_deducted_points - coupon - expiring_coupons - expiring_points @@ -30961,6 +32090,10 @@ components: description: Webhook title. example: Send email to customer via Braze type: string + description: + description: A description of the webhook. + example: A webhook to send a coupon to the user. + type: string applicationIds: description: IDs of the Applications to which a webhook must be linked. example: @@ -32271,13 +33404,13 @@ components: format: date-time type: string totalRevenue: - $ref: '#/components/schemas/ApplicationAnalyticsDataPoint_totalRevenue' + $ref: '#/components/schemas/AnalyticsDataPoint' sessionsCount: - $ref: '#/components/schemas/ApplicationAnalyticsDataPoint_sessionsCount' + $ref: '#/components/schemas/AnalyticsDataPoint' avgItemsPerSession: - $ref: '#/components/schemas/ApplicationAnalyticsDataPoint_avgItemsPerSession' + $ref: '#/components/schemas/AnalyticsDataPoint' avgSessionValue: - $ref: '#/components/schemas/ApplicationAnalyticsDataPoint_avgSessionValue' + $ref: '#/components/schemas/AnalyticsDataPoint' totalDiscounts: description: The total value of discounts given for cart items in influenced sessions. @@ -32288,6 +33421,9 @@ components: sessions. example: 12.0 type: number + required: + - endTime + - startTime type: object ApplicationCampaignAnalytics: properties: @@ -32319,45 +33455,151 @@ components: maxItems: 50 type: array campaignState: - default: enabled description: | The state of the campaign. **Note:** A disabled or archived campaign is not evaluated for rules or coupons. enum: - - enabled + - expired + - scheduled + - running + - draft - disabled - archived - example: enabled - type: string - campaignActiveRulesetId: - description: | - The [ID of the ruleset](https://docs.talon.one/management-api#operation/getRulesets) this - campaign applies on customer session evaluation. - example: 2 - type: integer - campaignStartTime: - description: Date and time when the campaign becomes active. - example: 2021-07-20T22:00:00Z - format: date-time - type: string - campaignEndTime: - description: Date and time when the campaign becomes inactive. - example: 2021-10-01T02:00:00Z - format: date-time + example: running type: string totalRevenue: - $ref: '#/components/schemas/ApplicationCampaignAnalytics_totalRevenue' + $ref: '#/components/schemas/AnalyticsDataPointWithTrendAndInfluencedRate' sessionsCount: - $ref: '#/components/schemas/ApplicationCampaignAnalytics_sessionsCount' + $ref: '#/components/schemas/AnalyticsDataPointWithTrendAndInfluencedRate' avgItemsPerSession: - $ref: '#/components/schemas/ApplicationCampaignAnalytics_avgItemsPerSession' + $ref: '#/components/schemas/AnalyticsDataPointWithTrendAndUplift' avgSessionValue: - $ref: '#/components/schemas/ApplicationCampaignAnalytics_avgSessionValue' + $ref: '#/components/schemas/AnalyticsDataPointWithTrendAndUplift' totalDiscounts: - $ref: '#/components/schemas/ApplicationCampaignAnalytics_totalDiscounts' + $ref: '#/components/schemas/AnalyticsDataPointWithTrend' couponsCount: - $ref: '#/components/schemas/ApplicationCampaignAnalytics_couponsCount' + $ref: '#/components/schemas/AnalyticsDataPointWithTrend' + required: + - campaignId + - campaignName + - campaignState + - campaignTags + - endTime + - startTime + type: object + AnalyticsDataPoint: + properties: + total: + example: 12.0 + type: number + influenced: + example: 12.0 + type: number + required: + - influenced + - total + type: object + AnalyticsDataPointWithTrendAndInfluencedRate: + properties: + value: + example: 12.0 + type: number + influencedRate: + example: 12.0 + type: number + trend: + example: 3.25 + type: number + required: + - influencedRate + - trend + - value + type: object + AnalyticsDataPointWithTrend: + properties: + value: + example: 12.0 + type: number + trend: + example: 3.25 + type: number + required: + - trend + - value + type: object + AnalyticsDataPointWithTrendAndUplift: + properties: + value: + example: 12.0 + type: number + uplift: + example: 3.25 + type: number + trend: + example: 3.25 + type: number + required: + - trend + - uplift + - value + type: object + GenerateCampaignDescription: + properties: + campaignID: + description: ID of the campaign. + type: integer + currency: + description: Currency for the campaign. + type: string + required: + - campaignID + - currency + type: object + GenerateCampaignTags: + properties: + campaignID: + description: ID of the campaign. + type: integer + required: + - campaignID + type: object + GenerateRuleTitle: + properties: + rule: + $ref: '#/components/schemas/GenerateRuleTitle_rule' + currency: + description: Currency for the campaign. + type: string + required: + - currency + - rule + type: object + GenerateItemFilterDescription: + properties: + itemFilter: + description: An array of item filter Talang expressions. + example: + - filter + - - "." + - Session + - CartItems + - - - Item + - - catch + - false + - - and + - - '!=' + - - "." + - Item + - Attributes + - c_productType + - egiftcard + items: + properties: {} + type: object + type: array + required: + - itemFilter type: object inline_response_201: example: @@ -32629,7 +33871,6 @@ components: enableCascadingDiscounts: true loyaltyPrograms: - cardBased: true - canUpgradeToAdvancedTiers: true tiers: - name: Gold minPoints: 300 @@ -32648,27 +33889,68 @@ components: programId: 139 canUpdateTiers: true usersPerCardLimit: 111 - created: 2020-06-10T09:05:27.993483Z timezone: Europe/Berlin - sandbox: true description: Customers collect 10 points per 1$ spent title: Point collection canUpdateJoinPolicy: true + programJoinPolicy: not_join + accountID: 1 + defaultPending: immediate + tiersDowngradePolicy: one_down + cardCodeSettings: + couponPattern: SUMMER-####-#### + validCharacters: + - A + - B + - C + - D + - E + - F + - G + - H + - I + - J + - K + - L + - M + - "N" + - O + - P + - Q + - R + - S + - T + - U + - V + - W + - X + - "Y" + - Z + - "0" + - "1" + - "2" + - "3" + - "4" + - "5" + - "6" + - "7" + - "8" + - "9" + id: 0 + canUpgradeToAdvancedTiers: true + created: 2020-06-10T09:05:27.993483Z + sandbox: true subscribedApplications: - 132 - 97 tiersExpirationPolicy: tier_start_date - programJoinPolicy: not_join - accountID: 1 defaultValidity: 2W_U - defaultPending: immediate - tiersDowngradePolicy: one_down + canUpdateTierExpirationPolicy: true allowSubledger: false tiersExpireIn: 27W_U + tiersStartDate: 2021-09-12T10:12:42Z name: my_program - id: 0 - cardBased: true - canUpgradeToAdvancedTiers: true tiers: - name: Gold minPoints: 300 @@ -32687,25 +33969,67 @@ components: programId: 139 canUpdateTiers: true usersPerCardLimit: 111 - created: 2020-06-10T09:05:27.993483Z timezone: Europe/Berlin - sandbox: true description: Customers collect 10 points per 1$ spent title: Point collection canUpdateJoinPolicy: true + programJoinPolicy: not_join + accountID: 1 + defaultPending: immediate + tiersDowngradePolicy: one_down + cardCodeSettings: + couponPattern: SUMMER-####-#### + validCharacters: + - A + - B + - C + - D + - E + - F + - G + - H + - I + - J + - K + - L + - M + - "N" + - O + - P + - Q + - R + - S + - T + - U + - V + - W + - X + - "Y" + - Z + - "0" + - "1" + - "2" + - "3" + - "4" + - "5" + - "6" + - "7" + - "8" + - "9" + id: 0 + canUpgradeToAdvancedTiers: true + created: 2020-06-10T09:05:27.993483Z + sandbox: true subscribedApplications: - 132 - 97 tiersExpirationPolicy: tier_start_date - programJoinPolicy: not_join - accountID: 1 defaultValidity: 2W_U - defaultPending: immediate - tiersDowngradePolicy: one_down + canUpdateTierExpirationPolicy: true allowSubledger: false tiersExpireIn: 27W_U + tiersStartDate: 2021-09-12T10:12:42Z name: my_program - id: 0 name: My Application modified: 2021-09-12T10:12:42Z defaultDiscountScope: sessionTotal @@ -32744,7 +34068,6 @@ components: enableCascadingDiscounts: true loyaltyPrograms: - cardBased: true - canUpgradeToAdvancedTiers: true tiers: - name: Gold minPoints: 300 @@ -32763,27 +34086,68 @@ components: programId: 139 canUpdateTiers: true usersPerCardLimit: 111 - created: 2020-06-10T09:05:27.993483Z timezone: Europe/Berlin - sandbox: true description: Customers collect 10 points per 1$ spent title: Point collection canUpdateJoinPolicy: true + programJoinPolicy: not_join + accountID: 1 + defaultPending: immediate + tiersDowngradePolicy: one_down + cardCodeSettings: + couponPattern: SUMMER-####-#### + validCharacters: + - A + - B + - C + - D + - E + - F + - G + - H + - I + - J + - K + - L + - M + - "N" + - O + - P + - Q + - R + - S + - T + - U + - V + - W + - X + - "Y" + - Z + - "0" + - "1" + - "2" + - "3" + - "4" + - "5" + - "6" + - "7" + - "8" + - "9" + id: 0 + canUpgradeToAdvancedTiers: true + created: 2020-06-10T09:05:27.993483Z + sandbox: true subscribedApplications: - 132 - 97 tiersExpirationPolicy: tier_start_date - programJoinPolicy: not_join - accountID: 1 defaultValidity: 2W_U - defaultPending: immediate - tiersDowngradePolicy: one_down + canUpdateTierExpirationPolicy: true allowSubledger: false tiersExpireIn: 27W_U + tiersStartDate: 2021-09-12T10:12:42Z name: my_program - id: 0 - cardBased: true - canUpgradeToAdvancedTiers: true tiers: - name: Gold minPoints: 300 @@ -32802,25 +34166,67 @@ components: programId: 139 canUpdateTiers: true usersPerCardLimit: 111 - created: 2020-06-10T09:05:27.993483Z timezone: Europe/Berlin - sandbox: true description: Customers collect 10 points per 1$ spent title: Point collection canUpdateJoinPolicy: true + programJoinPolicy: not_join + accountID: 1 + defaultPending: immediate + tiersDowngradePolicy: one_down + cardCodeSettings: + couponPattern: SUMMER-####-#### + validCharacters: + - A + - B + - C + - D + - E + - F + - G + - H + - I + - J + - K + - L + - M + - "N" + - O + - P + - Q + - R + - S + - T + - U + - V + - W + - X + - "Y" + - Z + - "0" + - "1" + - "2" + - "3" + - "4" + - "5" + - "6" + - "7" + - "8" + - "9" + id: 0 + canUpgradeToAdvancedTiers: true + created: 2020-06-10T09:05:27.993483Z + sandbox: true subscribedApplications: - 132 - 97 tiersExpirationPolicy: tier_start_date - programJoinPolicy: not_join - accountID: 1 defaultValidity: 2W_U - defaultPending: immediate - tiersDowngradePolicy: one_down + canUpdateTierExpirationPolicy: true allowSubledger: false tiersExpireIn: 27W_U + tiersStartDate: 2021-09-12T10:12:42Z name: my_program - id: 0 name: My Application modified: 2021-09-12T10:12:42Z defaultDiscountScope: sessionTotal @@ -32866,6 +34272,7 @@ components: - coupons - referrals createdLoyaltyPointsCount: 9.0 + storesImported: true couponSettings: couponPattern: SUMMER-####-#### validCharacters: @@ -33007,6 +34414,7 @@ components: - coupons - referrals createdLoyaltyPointsCount: 9.0 + storesImported: true couponSettings: couponPattern: SUMMER-####-#### validCharacters: @@ -33971,7 +35379,6 @@ components: example: data: - cardBased: true - canUpgradeToAdvancedTiers: true tiers: - name: Gold minPoints: 300 @@ -33990,27 +35397,68 @@ components: programId: 139 canUpdateTiers: true usersPerCardLimit: 111 - created: 2020-06-10T09:05:27.993483Z timezone: Europe/Berlin - sandbox: true description: Customers collect 10 points per 1$ spent title: Point collection canUpdateJoinPolicy: true + programJoinPolicy: not_join + accountID: 1 + defaultPending: immediate + tiersDowngradePolicy: one_down + cardCodeSettings: + couponPattern: SUMMER-####-#### + validCharacters: + - A + - B + - C + - D + - E + - F + - G + - H + - I + - J + - K + - L + - M + - "N" + - O + - P + - Q + - R + - S + - T + - U + - V + - W + - X + - "Y" + - Z + - "0" + - "1" + - "2" + - "3" + - "4" + - "5" + - "6" + - "7" + - "8" + - "9" + id: 0 + canUpgradeToAdvancedTiers: true + created: 2020-06-10T09:05:27.993483Z + sandbox: true subscribedApplications: - 132 - 97 tiersExpirationPolicy: tier_start_date - programJoinPolicy: not_join - accountID: 1 defaultValidity: 2W_U - defaultPending: immediate - tiersDowngradePolicy: one_down + canUpdateTierExpirationPolicy: true allowSubledger: false tiersExpireIn: 27W_U + tiersStartDate: 2021-09-12T10:12:42Z name: my_program - id: 0 - cardBased: true - canUpgradeToAdvancedTiers: true tiers: - name: Gold minPoints: 300 @@ -34029,25 +35477,67 @@ components: programId: 139 canUpdateTiers: true usersPerCardLimit: 111 - created: 2020-06-10T09:05:27.993483Z timezone: Europe/Berlin - sandbox: true description: Customers collect 10 points per 1$ spent title: Point collection canUpdateJoinPolicy: true + programJoinPolicy: not_join + accountID: 1 + defaultPending: immediate + tiersDowngradePolicy: one_down + cardCodeSettings: + couponPattern: SUMMER-####-#### + validCharacters: + - A + - B + - C + - D + - E + - F + - G + - H + - I + - J + - K + - L + - M + - "N" + - O + - P + - Q + - R + - S + - T + - U + - V + - W + - X + - "Y" + - Z + - "0" + - "1" + - "2" + - "3" + - "4" + - "5" + - "6" + - "7" + - "8" + - "9" + id: 0 + canUpgradeToAdvancedTiers: true + created: 2020-06-10T09:05:27.993483Z + sandbox: true subscribedApplications: - 132 - 97 tiersExpirationPolicy: tier_start_date - programJoinPolicy: not_join - accountID: 1 defaultValidity: 2W_U - defaultPending: immediate - tiersDowngradePolicy: one_down + canUpdateTierExpirationPolicy: true allowSubledger: false tiersExpireIn: 27W_U + tiersStartDate: 2021-09-12T10:12:42Z name: my_program - id: 0 totalResultSize: 1 properties: totalResultSize: @@ -34127,6 +35617,7 @@ components: downgradePolicy: one_down name: bronze id: 11 + startDate: 2000-01-23T04:56:07.000+00:00 identifier: summer-loyalty-card-0543 oldCardIdentifier: summer-loyalty-card-0543 usersPerCardLimit: 111 @@ -34150,8 +35641,10 @@ components: downgradePolicy: one_down name: bronze id: 11 + startDate: 2000-01-23T04:56:07.000+00:00 modified: 2021-09-12T10:12:42Z id: 6 + blockReason: Current card lost. Customer needs a new card. newCardIdentifier: summer-loyalty-card-0543 programID: 125 status: active @@ -34168,6 +35661,7 @@ components: downgradePolicy: one_down name: bronze id: 11 + startDate: 2000-01-23T04:56:07.000+00:00 identifier: summer-loyalty-card-0543 oldCardIdentifier: summer-loyalty-card-0543 usersPerCardLimit: 111 @@ -34191,8 +35685,10 @@ components: downgradePolicy: one_down name: bronze id: 11 + startDate: 2000-01-23T04:56:07.000+00:00 modified: 2021-09-12T10:12:42Z id: 6 + blockReason: Current card lost. Customer needs a new card. newCardIdentifier: summer-loyalty-card-0543 programID: 125 status: active @@ -34868,19 +36364,23 @@ components: - effects: - rulesetId: 73 ruleIndex: 2 + evaluationGroupID: 3 triggeredForCatalogItem: 786 campaignId: 244 ruleName: Give 20% discount conditionIndex: 786 + evaluationGroupMode: stackable triggeredByCoupon: 4928 effectType: rejectCoupon props: '{}' - rulesetId: 73 ruleIndex: 2 + evaluationGroupID: 3 triggeredForCatalogItem: 786 campaignId: 244 ruleName: Give 20% discount conditionIndex: 786 + evaluationGroupMode: stackable triggeredByCoupon: 4928 effectType: rejectCoupon props: '{}' @@ -34921,19 +36421,23 @@ components: - effects: - rulesetId: 73 ruleIndex: 2 + evaluationGroupID: 3 triggeredForCatalogItem: 786 campaignId: 244 ruleName: Give 20% discount conditionIndex: 786 + evaluationGroupMode: stackable triggeredByCoupon: 4928 effectType: rejectCoupon props: '{}' - rulesetId: 73 ruleIndex: 2 + evaluationGroupID: 3 triggeredForCatalogItem: 786 campaignId: 244 ruleName: Give 20% discount conditionIndex: 786 + evaluationGroupMode: stackable triggeredByCoupon: 4928 effectType: rejectCoupon props: '{}' @@ -35301,6 +36805,7 @@ components: created: 2020-06-10T09:05:27.993483Z outgoingIntegrationTemplateId: 1 verb: POST + description: A webhook to send a coupon to the user. title: Send message params: [] url: www.my-company.com/my-endpoint-name @@ -35319,6 +36824,7 @@ components: created: 2020-06-10T09:05:27.993483Z outgoingIntegrationTemplateId: 1 verb: POST + description: A webhook to send a coupon to the user. title: Send message params: [] url: www.my-company.com/my-endpoint-name @@ -35455,6 +36961,7 @@ components: email: john.doe@example.com policy: Role: 127 + additionalAttributes: '{}' - created: 2020-06-10T09:05:27.993483Z roles: - 71 @@ -35473,6 +36980,7 @@ components: email: john.doe@example.com policy: Role: 127 + additionalAttributes: '{}' totalResultSize: 1 properties: totalResultSize: @@ -35797,120 +37305,38 @@ components: required: - data - hasMore - ApplicationAnalyticsDataPoint_totalRevenue: - description: The total, pre-discount value of all items purchased in a customer - session. - properties: - total: - example: 1.25 - type: number - influenced: - example: 3.25 - type: number - ApplicationAnalyticsDataPoint_sessionsCount: - description: The number of all closed sessions. The `influenced` value includes - only sessions with at least one applied effect. - properties: - total: - example: 15.0 - type: number - influenced: - example: 5.0 - type: number - ApplicationAnalyticsDataPoint_avgItemsPerSession: - description: The number of items from sessions divided by the number of sessions. - The `influenced` value includes only sessions with at least one applied effect. - properties: - total: - example: 1.25 - type: number - influenced: - example: 3.25 - type: number - ApplicationAnalyticsDataPoint_avgSessionValue: - description: The average customer session value, calculated by dividing the - revenue value by the number of sessions. The `influenced` value includes only - sessions with at least one applied effect. - properties: - total: - example: 1.25 - type: number - influenced: - example: 3.25 - type: number - ApplicationCampaignAnalytics_totalRevenue: - description: The total, pre-discount value of all items purchased in a customer - session. - properties: - value: - example: 1.25 - type: number - influence_rate: - example: 3.25 - type: number - trend: - example: 3.25 - type: number - ApplicationCampaignAnalytics_sessionsCount: - description: The number of all closed sessions. The `influenced` value includes - only sessions with at least one applied effect. - properties: - value: - example: 12.0 - type: number - influence_rate: - example: 3.25 - type: number - trend: - example: 3.25 - type: number - ApplicationCampaignAnalytics_avgItemsPerSession: - description: The number of items from sessions divided by the number of sessions. - The `influenced` value includes only sessions with at least one applied effect. - properties: - value: - example: 12.0 - type: number - uplift: - example: 3.25 - type: number - trend: - example: 3.25 - type: number - ApplicationCampaignAnalytics_avgSessionValue: - description: The average customer session value, calculated by dividing the - revenue value by the number of sessions. The `influenced` value includes only - sessions with at least one applied effect. + GenerateRuleTitle_rule: properties: - value: - example: 12.0 - type: number - uplift: - example: 3.25 - type: number - trend: - example: 3.25 - type: number - ApplicationCampaignAnalytics_totalDiscounts: - description: The total value of discounts given for cart items in influenced - sessions. - properties: - value: - example: 10.0 - type: number - trend: - example: 3.25 - type: number - ApplicationCampaignAnalytics_couponsCount: - description: The number of times a coupon was successfully redeemed in influenced - sessions. - properties: - value: - example: 10.0 - type: number - trend: - example: 3.25 - type: number + effects: + description: An array of effectful Talang expressions in arrays that will + be evaluated when a rule matches. + example: + - catch + - - noop + - - setDiscount + - 10% off + - - '*' + - - "." + - Session + - Total + - - / + - 10 + - 100 + items: + properties: {} + type: object + type: array + condition: + description: A Talang expression that will be evaluated in the context of + the given event. + example: + - and + - - couponValid + items: + properties: {} + type: object + minItems: 1 + type: array securitySchemes: api_key_v1: description: | diff --git a/build.gradle b/build.gradle index 66da3093..5dcd19b4 100644 --- a/build.gradle +++ b/build.gradle @@ -3,7 +3,7 @@ apply plugin: 'eclipse' apply plugin: 'java' group = 'one.talon' -version = '8.0.0' +version = '9.0.0' buildscript { repositories { diff --git a/build.sbt b/build.sbt index 6fc3d425..63aa64a9 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 := "8.0.0", + version := "9.0.0", scalaVersion := "2.11.4", scalacOptions ++= Seq("-feature"), javacOptions in compile ++= Seq("-Xlint:deprecation"), diff --git a/docs/AdditionalCampaignProperties.md b/docs/AdditionalCampaignProperties.md index 82026fd9..60577faf 100644 --- a/docs/AdditionalCampaignProperties.md +++ b/docs/AdditionalCampaignProperties.md @@ -28,6 +28,7 @@ Name | Type | Description | Notes **updatedBy** | **String** | Name of the user who last updated this campaign if available. | [optional] **templateId** | **Integer** | The ID of the Campaign Template this Campaign was created from. | [optional] **frontendState** | [**FrontendStateEnum**](#FrontendStateEnum) | A campaign state described exactly as in the Campaign Manager. | +**storesImported** | **Boolean** | Indicates whether the linked stores were imported via a CSV file. | diff --git a/docs/AnalyticsDataPoint.md b/docs/AnalyticsDataPoint.md new file mode 100644 index 00000000..f42cedbb --- /dev/null +++ b/docs/AnalyticsDataPoint.md @@ -0,0 +1,13 @@ + + +# AnalyticsDataPoint + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**total** | [**BigDecimal**](BigDecimal.md) | | +**influenced** | [**BigDecimal**](BigDecimal.md) | | + + + diff --git a/docs/AnalyticsDataPointWithTrend.md b/docs/AnalyticsDataPointWithTrend.md new file mode 100644 index 00000000..e0b6dd6a --- /dev/null +++ b/docs/AnalyticsDataPointWithTrend.md @@ -0,0 +1,13 @@ + + +# AnalyticsDataPointWithTrend + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**value** | [**BigDecimal**](BigDecimal.md) | | +**trend** | [**BigDecimal**](BigDecimal.md) | | + + + diff --git a/docs/AnalyticsDataPointWithTrendAndInfluencedRate.md b/docs/AnalyticsDataPointWithTrendAndInfluencedRate.md new file mode 100644 index 00000000..00e5d622 --- /dev/null +++ b/docs/AnalyticsDataPointWithTrendAndInfluencedRate.md @@ -0,0 +1,14 @@ + + +# AnalyticsDataPointWithTrendAndInfluencedRate + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**value** | [**BigDecimal**](BigDecimal.md) | | +**influencedRate** | [**BigDecimal**](BigDecimal.md) | | +**trend** | [**BigDecimal**](BigDecimal.md) | | + + + diff --git a/docs/AnalyticsDataPointWithTrendAndUplift.md b/docs/AnalyticsDataPointWithTrendAndUplift.md new file mode 100644 index 00000000..6cb4350f --- /dev/null +++ b/docs/AnalyticsDataPointWithTrendAndUplift.md @@ -0,0 +1,14 @@ + + +# AnalyticsDataPointWithTrendAndUplift + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**value** | [**BigDecimal**](BigDecimal.md) | | +**uplift** | [**BigDecimal**](BigDecimal.md) | | +**trend** | [**BigDecimal**](BigDecimal.md) | | + + + diff --git a/docs/ApplicationAnalyticsDataPoint.md b/docs/ApplicationAnalyticsDataPoint.md index d02dc8c2..6135355d 100644 --- a/docs/ApplicationAnalyticsDataPoint.md +++ b/docs/ApplicationAnalyticsDataPoint.md @@ -6,12 +6,12 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**startTime** | [**OffsetDateTime**](OffsetDateTime.md) | The start of the aggregation time frame in UTC. | [optional] -**endTime** | [**OffsetDateTime**](OffsetDateTime.md) | The end of the aggregation time frame in UTC. | [optional] -**totalRevenue** | [**ApplicationAnalyticsDataPointTotalRevenue**](ApplicationAnalyticsDataPointTotalRevenue.md) | | [optional] -**sessionsCount** | [**ApplicationAnalyticsDataPointSessionsCount**](ApplicationAnalyticsDataPointSessionsCount.md) | | [optional] -**avgItemsPerSession** | [**ApplicationAnalyticsDataPointAvgItemsPerSession**](ApplicationAnalyticsDataPointAvgItemsPerSession.md) | | [optional] -**avgSessionValue** | [**ApplicationAnalyticsDataPointAvgSessionValue**](ApplicationAnalyticsDataPointAvgSessionValue.md) | | [optional] +**startTime** | [**OffsetDateTime**](OffsetDateTime.md) | The start of the aggregation time frame in UTC. | +**endTime** | [**OffsetDateTime**](OffsetDateTime.md) | The end of the aggregation time frame in UTC. | +**totalRevenue** | [**AnalyticsDataPoint**](AnalyticsDataPoint.md) | | [optional] +**sessionsCount** | [**AnalyticsDataPoint**](AnalyticsDataPoint.md) | | [optional] +**avgItemsPerSession** | [**AnalyticsDataPoint**](AnalyticsDataPoint.md) | | [optional] +**avgSessionValue** | [**AnalyticsDataPoint**](AnalyticsDataPoint.md) | | [optional] **totalDiscounts** | [**BigDecimal**](BigDecimal.md) | The total value of discounts given for cart items in influenced sessions. | [optional] **couponsCount** | [**BigDecimal**](BigDecimal.md) | The number of times a coupon was successfully redeemed in influenced sessions. | [optional] diff --git a/docs/ApplicationCampaignAnalytics.md b/docs/ApplicationCampaignAnalytics.md index fc7ae1b1..15449590 100644 --- a/docs/ApplicationCampaignAnalytics.md +++ b/docs/ApplicationCampaignAnalytics.md @@ -6,21 +6,18 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**startTime** | [**OffsetDateTime**](OffsetDateTime.md) | The start of the aggregation time frame in UTC. | [optional] -**endTime** | [**OffsetDateTime**](OffsetDateTime.md) | The end of the aggregation time frame in UTC. | [optional] -**campaignId** | **Integer** | The ID of the campaign. | [optional] -**campaignName** | **String** | The name of the campaign. | [optional] -**campaignTags** | **List<String>** | A list of tags for the campaign. | [optional] -**campaignState** | [**CampaignStateEnum**](#CampaignStateEnum) | The state of the campaign. **Note:** A disabled or archived campaign is not evaluated for rules or coupons. | [optional] -**campaignActiveRulesetId** | **Integer** | The [ID of the ruleset](https://docs.talon.one/management-api#operation/getRulesets) this campaign applies on customer session evaluation. | [optional] -**campaignStartTime** | [**OffsetDateTime**](OffsetDateTime.md) | Date and time when the campaign becomes active. | [optional] -**campaignEndTime** | [**OffsetDateTime**](OffsetDateTime.md) | Date and time when the campaign becomes inactive. | [optional] -**totalRevenue** | [**ApplicationCampaignAnalyticsTotalRevenue**](ApplicationCampaignAnalyticsTotalRevenue.md) | | [optional] -**sessionsCount** | [**ApplicationCampaignAnalyticsSessionsCount**](ApplicationCampaignAnalyticsSessionsCount.md) | | [optional] -**avgItemsPerSession** | [**ApplicationCampaignAnalyticsAvgItemsPerSession**](ApplicationCampaignAnalyticsAvgItemsPerSession.md) | | [optional] -**avgSessionValue** | [**ApplicationCampaignAnalyticsAvgSessionValue**](ApplicationCampaignAnalyticsAvgSessionValue.md) | | [optional] -**totalDiscounts** | [**ApplicationCampaignAnalyticsTotalDiscounts**](ApplicationCampaignAnalyticsTotalDiscounts.md) | | [optional] -**couponsCount** | [**ApplicationCampaignAnalyticsCouponsCount**](ApplicationCampaignAnalyticsCouponsCount.md) | | [optional] +**startTime** | [**OffsetDateTime**](OffsetDateTime.md) | The start of the aggregation time frame in UTC. | +**endTime** | [**OffsetDateTime**](OffsetDateTime.md) | The end of the aggregation time frame in UTC. | +**campaignId** | **Integer** | The ID of the campaign. | +**campaignName** | **String** | The name of the campaign. | +**campaignTags** | **List<String>** | A list of tags for the campaign. | +**campaignState** | [**CampaignStateEnum**](#CampaignStateEnum) | The state of the campaign. **Note:** A disabled or archived campaign is not evaluated for rules or coupons. | +**totalRevenue** | [**AnalyticsDataPointWithTrendAndInfluencedRate**](AnalyticsDataPointWithTrendAndInfluencedRate.md) | | [optional] +**sessionsCount** | [**AnalyticsDataPointWithTrendAndInfluencedRate**](AnalyticsDataPointWithTrendAndInfluencedRate.md) | | [optional] +**avgItemsPerSession** | [**AnalyticsDataPointWithTrendAndUplift**](AnalyticsDataPointWithTrendAndUplift.md) | | [optional] +**avgSessionValue** | [**AnalyticsDataPointWithTrendAndUplift**](AnalyticsDataPointWithTrendAndUplift.md) | | [optional] +**totalDiscounts** | [**AnalyticsDataPointWithTrend**](AnalyticsDataPointWithTrend.md) | | [optional] +**couponsCount** | [**AnalyticsDataPointWithTrend**](AnalyticsDataPointWithTrend.md) | | [optional] @@ -28,7 +25,10 @@ Name | Type | Description | Notes Name | Value ---- | ----- -ENABLED | "enabled" +EXPIRED | "expired" +SCHEDULED | "scheduled" +RUNNING | "running" +DRAFT | "draft" DISABLED | "disabled" ARCHIVED | "archived" diff --git a/docs/Attribute.md b/docs/Attribute.md index 4b8fa08c..3ca828f3 100644 --- a/docs/Attribute.md +++ b/docs/Attribute.md @@ -31,7 +31,6 @@ Name | Type | Description | Notes Name | Value ---- | ----- -ACCOUNT | "Account" APPLICATION | "Application" CAMPAIGN | "Campaign" CUSTOMERPROFILE | "CustomerProfile" diff --git a/docs/BaseLoyaltyProgram.md b/docs/BaseLoyaltyProgram.md index 502fe4c6..a7ca501d 100644 --- a/docs/BaseLoyaltyProgram.md +++ b/docs/BaseLoyaltyProgram.md @@ -14,38 +14,42 @@ Name | Type | Description | Notes **allowSubledger** | **Boolean** | Indicates if this program supports subledgers inside the program. | [optional] **usersPerCardLimit** | **Integer** | The max amount of user profiles with whom a card can be shared. This can be set to 0 for no limit. This property is only used when `cardBased` is `true`. | [optional] **sandbox** | **Boolean** | Indicates if this program is a live or sandbox program. Programs of a given type can only be connected to Applications of the same type. | [optional] -**tiersExpirationPolicy** | [**TiersExpirationPolicyEnum**](#TiersExpirationPolicyEnum) | The policy that defines which date is used to calculate the expiration date of a customer's current tier. - `tier_start_date`: The tier expiration date is calculated based on when the customer joined the current tier. - `program_join_date`: The tier expiration date is calculated based on when the customer joined the loyalty program. | [optional] +**programJoinPolicy** | [**ProgramJoinPolicyEnum**](#ProgramJoinPolicyEnum) | The policy that defines when the customer joins the loyalty program. - `not_join`: The customer does not join the loyalty program but can still earn and spend loyalty points. **Note**: The customer does not have a program join date. - `points_activated`: The customer joins the loyalty program only when their earned loyalty points become active for the first time. - `points_earned`: The customer joins the loyalty program when they earn loyalty points for the first time. | [optional] +**tiersExpirationPolicy** | [**TiersExpirationPolicyEnum**](#TiersExpirationPolicyEnum) | The policy that defines which date is used to calculate the expiration date of a customer's current tier. - `tier_start_date`: The tier expiration date is calculated based on when the customer joined the current tier. - `program_join_date`: The tier expiration date is calculated based on when the customer joined the loyalty program. - `customer_attribute`: The tier expiration date is calculated based on a custom customer attribute. - `absolute_expiration`: The tier expires on a specified date and time. **Note**: For absolute expiration, it is required to provide a `tiersStartDate.` | [optional] +**tiersStartDate** | [**OffsetDateTime**](OffsetDateTime.md) | Timestamp at which the tier starts for all customers. **Note**: This is only required when the tier expiration policy is set to `absolute_expiration`. | [optional] **tiersExpireIn** | **String** | The amount of time after which the tier expires. 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. | [optional] **tiersDowngradePolicy** | [**TiersDowngradePolicyEnum**](#TiersDowngradePolicyEnum) | Customers's tier downgrade policy. - `one_down`: Once the tier expires and if the user doesn't have enough points to stay in the tier, the user is downgraded one tier down. - `balance_based`: Once the tier expires, the user's tier is evaluated based on the amount of active points the user has at this instant. | [optional] -**programJoinPolicy** | [**ProgramJoinPolicyEnum**](#ProgramJoinPolicyEnum) | The policy that defines when the customer joins the loyalty program. - `not_join`: The customer does not join the loyalty program but can still earn and spend loyalty points. **Note**: The customer does not have a program join date. - `points_activated`: The customer joins the loyalty program only when their earned loyalty points become active for the first time. - `points_earned`: The customer joins the loyalty program when they earn loyalty points for the first time. | [optional] +**cardCodeSettings** | [**CodeGeneratorSettings**](CodeGeneratorSettings.md) | | [optional] -## Enum: TiersExpirationPolicyEnum +## Enum: ProgramJoinPolicyEnum Name | Value ---- | ----- -TIER_START_DATE | "tier_start_date" -PROGRAM_JOIN_DATE | "program_join_date" +NOT_JOIN | "not_join" +POINTS_ACTIVATED | "points_activated" +POINTS_EARNED | "points_earned" -## Enum: TiersDowngradePolicyEnum +## Enum: TiersExpirationPolicyEnum Name | Value ---- | ----- -ONE_DOWN | "one_down" -BALANCE_BASED | "balance_based" +TIER_START_DATE | "tier_start_date" +PROGRAM_JOIN_DATE | "program_join_date" +CUSTOMER_ATTRIBUTE | "customer_attribute" +ABSOLUTE_EXPIRATION | "absolute_expiration" -## Enum: ProgramJoinPolicyEnum +## Enum: TiersDowngradePolicyEnum Name | Value ---- | ----- -NOT_JOIN | "not_join" -POINTS_ACTIVATED | "points_activated" -POINTS_EARNED | "points_earned" +ONE_DOWN | "one_down" +BALANCE_BASED | "balance_based" diff --git a/docs/BaseNotification.md b/docs/BaseNotification.md index 62ee4c22..175e15c9 100644 --- a/docs/BaseNotification.md +++ b/docs/BaseNotification.md @@ -7,7 +7,7 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**policy** | [**Object**](.md) | | +**policy** | [**Object**](.md) | Indicates which notification properties to apply. | **enabled** | **Boolean** | Indicates whether the notification is activated. | [optional] **webhook** | [**BaseNotificationWebhook**](BaseNotificationWebhook.md) | | **id** | **Integer** | Unique ID for this entity. | @@ -21,6 +21,7 @@ Name | Value ---- | ----- CAMPAIGN | "campaign" LOYALTY_ADDED_DEDUCTED_POINTS | "loyalty_added_deducted_points" +CARD_ADDED_DEDUCTED_POINTS | "card_added_deducted_points" COUPON | "coupon" EXPIRING_COUPONS | "expiring_coupons" EXPIRING_POINTS | "expiring_points" diff --git a/docs/BaseNotificationEntity.md b/docs/BaseNotificationEntity.md index 0cfcde7f..ff86bd5c 100644 --- a/docs/BaseNotificationEntity.md +++ b/docs/BaseNotificationEntity.md @@ -6,7 +6,7 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**policy** | [**Object**](.md) | | +**policy** | [**Object**](.md) | Indicates which notification properties to apply. | **enabled** | **Boolean** | Indicates whether the notification is activated. | [optional] diff --git a/docs/Campaign.md b/docs/Campaign.md index 2c6f64b9..b3a8b5c7 100644 --- a/docs/Campaign.md +++ b/docs/Campaign.md @@ -48,6 +48,7 @@ Name | Type | Description | Notes **updatedBy** | **String** | Name of the user who last updated this campaign if available. | [optional] **templateId** | **Integer** | The ID of the Campaign Template this Campaign was created from. | [optional] **frontendState** | [**FrontendStateEnum**](#FrontendStateEnum) | A campaign state described exactly as in the Campaign Manager. | +**storesImported** | **Boolean** | Indicates whether the linked stores were imported via a CSV file. | diff --git a/docs/CampaignNotificationPolicy.md b/docs/CampaignNotificationPolicy.md index 89d59d2f..6cdc57de 100644 --- a/docs/CampaignNotificationPolicy.md +++ b/docs/CampaignNotificationPolicy.md @@ -7,6 +7,7 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **name** | **String** | Notification name. | +**batchingEnabled** | **Boolean** | Indicates whether batching is activated. | [optional] diff --git a/docs/CardAddedDeductedPointsNotificationPolicy.md b/docs/CardAddedDeductedPointsNotificationPolicy.md new file mode 100644 index 00000000..f83a1ee6 --- /dev/null +++ b/docs/CardAddedDeductedPointsNotificationPolicy.md @@ -0,0 +1,24 @@ + + +# CardAddedDeductedPointsNotificationPolicy + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**name** | **String** | Notification name. | +**scopes** | [**List<ScopesEnum>**](#List<ScopesEnum>) | | + + + +## Enum: List<ScopesEnum> + +Name | Value +---- | ----- +ALL | "all" +CAMPAIGN_MANAGER | "campaign_manager" +MANAGEMENT_API | "management_api" +RULE_ENGINE | "rule_engine" + + + diff --git a/docs/CodeGeneratorSettings.md b/docs/CodeGeneratorSettings.md index 29ecf809..f47285a7 100644 --- a/docs/CodeGeneratorSettings.md +++ b/docs/CodeGeneratorSettings.md @@ -7,7 +7,7 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **validCharacters** | **List<String>** | List of characters used to generate the random parts of a code. | -**couponPattern** | **String** | The pattern used to generate coupon codes. The character `#` is a placeholder and is replaced by a random character from the `validCharacters` set. | +**couponPattern** | **String** | The pattern used to generate codes, such as coupon codes, referral codes, and loyalty cards. The character `#` is a placeholder and is replaced by a random character from the `validCharacters` set. | diff --git a/docs/Effect.md b/docs/Effect.md index de6c7ec8..dfb96eca 100644 --- a/docs/Effect.md +++ b/docs/Effect.md @@ -15,6 +15,8 @@ Name | Type | Description | Notes **triggeredByCoupon** | **Integer** | The ID of the coupon that was being evaluated when this effect was triggered. | [optional] **triggeredForCatalogItem** | **Integer** | The ID of the catalog item that was being evaluated when this effect was triggered. | [optional] **conditionIndex** | **Integer** | The index of the condition that was triggered. | [optional] +**evaluationGroupID** | **Integer** | The ID of the evaluation group. For more information, see [Managing campaign evaluation](https://docs.talon.one/docs/product/applications/managing-campaign-evaluation). | [optional] +**evaluationGroupMode** | **String** | The evaluation mode of the evaluation group. For more information, see [Managing campaign evaluation](https://docs.talon.one/docs/product/applications/managing-campaign-evaluation). | [optional] **props** | [**Object**](.md) | The properties of the effect. See [API effects](https://docs.talon.one/docs/dev/integration-api/api-effects). | diff --git a/docs/EffectEntity.md b/docs/EffectEntity.md index a3c98fba..e60e7626 100644 --- a/docs/EffectEntity.md +++ b/docs/EffectEntity.md @@ -15,6 +15,8 @@ Name | Type | Description | Notes **triggeredByCoupon** | **Integer** | The ID of the coupon that was being evaluated when this effect was triggered. | [optional] **triggeredForCatalogItem** | **Integer** | The ID of the catalog item that was being evaluated when this effect was triggered. | [optional] **conditionIndex** | **Integer** | The index of the condition that was triggered. | [optional] +**evaluationGroupID** | **Integer** | The ID of the evaluation group. For more information, see [Managing campaign evaluation](https://docs.talon.one/docs/product/applications/managing-campaign-evaluation). | [optional] +**evaluationGroupMode** | **String** | The evaluation mode of the evaluation group. For more information, see [Managing campaign evaluation](https://docs.talon.one/docs/product/applications/managing-campaign-evaluation). | [optional] diff --git a/docs/GenerateCampaignDescription.md b/docs/GenerateCampaignDescription.md new file mode 100644 index 00000000..e374b2f4 --- /dev/null +++ b/docs/GenerateCampaignDescription.md @@ -0,0 +1,13 @@ + + +# GenerateCampaignDescription + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**campaignID** | **Integer** | ID of the campaign. | +**currency** | **String** | Currency for the campaign. | + + + diff --git a/docs/GenerateCampaignTags.md b/docs/GenerateCampaignTags.md new file mode 100644 index 00000000..abcf31e3 --- /dev/null +++ b/docs/GenerateCampaignTags.md @@ -0,0 +1,12 @@ + + +# GenerateCampaignTags + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**campaignID** | **Integer** | ID of the campaign. | + + + diff --git a/docs/GenerateItemFilterDescription.md b/docs/GenerateItemFilterDescription.md new file mode 100644 index 00000000..68ee3c71 --- /dev/null +++ b/docs/GenerateItemFilterDescription.md @@ -0,0 +1,12 @@ + + +# GenerateItemFilterDescription + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**itemFilter** | **List<Object>** | An array of item filter Talang expressions. | + + + diff --git a/docs/GenerateRuleTitle.md b/docs/GenerateRuleTitle.md new file mode 100644 index 00000000..84f623d6 --- /dev/null +++ b/docs/GenerateRuleTitle.md @@ -0,0 +1,13 @@ + + +# GenerateRuleTitle + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**rule** | [**GenerateRuleTitleRule**](GenerateRuleTitleRule.md) | | +**currency** | **String** | Currency for the campaign. | + + + diff --git a/docs/GenerateRuleTitleRule.md b/docs/GenerateRuleTitleRule.md new file mode 100644 index 00000000..8b938c9f --- /dev/null +++ b/docs/GenerateRuleTitleRule.md @@ -0,0 +1,13 @@ + + +# GenerateRuleTitleRule + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**effects** | **List<Object>** | An array of effectful Talang expressions in arrays that will be evaluated when a rule matches. | [optional] +**condition** | **List<Object>** | A Talang expression that will be evaluated in the context of the given event. | [optional] + + + diff --git a/docs/IncreaseAchievementProgressEffectProps.md b/docs/IncreaseAchievementProgressEffectProps.md index 842e7898..b0e7992e 100644 --- a/docs/IncreaseAchievementProgressEffectProps.md +++ b/docs/IncreaseAchievementProgressEffectProps.md @@ -12,7 +12,7 @@ Name | Type | Description | Notes **progressTrackerId** | **Integer** | The internal ID of the achievement progress tracker. | [optional] **delta** | [**BigDecimal**](BigDecimal.md) | The value by which the customer's current progress in the achievement is increased. | **value** | [**BigDecimal**](BigDecimal.md) | The current progress of the customer in the achievement. | -**target** | [**BigDecimal**](BigDecimal.md) | The required number of actions or the transactional milestone to complete the achievement. | +**target** | [**BigDecimal**](BigDecimal.md) | The target value to complete the achievement. | **isJustCompleted** | **Boolean** | Indicates if the customer has completed the achievement in the current session. | diff --git a/docs/IntegrationApi.md b/docs/IntegrationApi.md index b949bb82..d8c2d4ea 100644 --- a/docs/IntegrationApi.md +++ b/docs/IntegrationApi.md @@ -765,7 +765,7 @@ Name | Type | Description | Notes # **getLoyaltyBalances** -> LoyaltyBalances getLoyaltyBalances(loyaltyProgramId, integrationId, endDate, subledgerId) +> LoyaltyBalancesWithTiers getLoyaltyBalances(loyaltyProgramId, integrationId, endDate, subledgerId, includeTiers, includeProjectedTier) Get customer's loyalty points @@ -797,8 +797,10 @@ public class Example { 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 by which we filter the data. + 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 { - LoyaltyBalances result = apiInstance.getLoyaltyBalances(loyaltyProgramId, integrationId, endDate, subledgerId); + LoyaltyBalancesWithTiers result = apiInstance.getLoyaltyBalances(loyaltyProgramId, integrationId, endDate, subledgerId, includeTiers, includeProjectedTier); System.out.println(result); } catch (ApiException e) { System.err.println("Exception when calling IntegrationApi#getLoyaltyBalances"); @@ -819,10 +821,12 @@ Name | Type | Description | Notes **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 by which we filter the data. | [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 -[**LoyaltyBalances**](LoyaltyBalances.md) +[**LoyaltyBalancesWithTiers**](LoyaltyBalancesWithTiers.md) ### Authorization @@ -1555,7 +1559,7 @@ Name | Type | Description | Notes Sync cart item catalog -Perform one or more of the following actions for a given cart item catalog: - Adding an item to the catalog. - Adding several items to the catalog. - Editing the attributes of an item in the catalog. - Editing the attributes of several items in the catalog. - Removing an item from the catalog. - Removing several items from the catalog. You can add, update, or delete up to 1000 cart items in a single request. Each item synced to a catalog must have a unique `SKU`. **Important**: Syncing items with duplicate `SKU` values in a single request returns an error message with a `400` status code. For more information, read [managing cart item catalogs](https://docs.talon.one/docs/product/account/dev-tools/managing-cart-item-catalogs). ### Filtering cart items Use [cart item attributes](https://docs.talon.one/docs/product/account/dev-tools/managing-attributes) to filter items and select the ones you want to edit or delete when editing or deleting more than one item at a time. The `filters` array contains an object with the following properties: - `attr`: A [cart item attribute](https://docs.talon.one/docs/product/account/dev-tools/managing-attributes) connected to the catalog. It is applied to all items in the catalog. - `op`: The filtering operator indicating the relationship between the value of each cart item in the catalog and the value of the `value` property for the attribute selected in `attr`. The value of `op` can be one of the following: - `EQ`: Equal to `value` - `LT`: Less than `value` - `LE`: Less than or equal to `value` - `GT`: Greater than `value` - `GE`: Greater than or equal to `value` - `IN`: One of the comma-separated values that `value` is set to. **Note:** `GE`, `LE`, `GT`, `LT` are for numeric values only. - `value`: The value of the attribute selected in `attr`. ### Payload examples Synchronization actions are sent as `PUT` requests. See the structure for each action: <details> <summary><strong>Adding an item to the catalog</strong></summary> <div> ```json { \"actions\": [ { \"payload\": { \"attributes\": { \"color\": \"Navy blue\", \"type\": \"shoes\" }, \"replaceIfExists\": true, \"sku\": \"SKU1241028\", \"price\": 100, \"product\": { \"name\": \"sneakers\" } }, \"type\": \"ADD\" } ] } ``` </div> </details> <details> <summary><strong>Adding several items to the catalog</strong></summary> <div> ```json { \"actions\": [ { \"payload\": { \"attributes\": { \"color\": \"Navy blue\", \"type\": \"shoes\" }, \"replaceIfExists\": true, \"sku\": \"SKU1241027\", \"price\": 100, \"product\": { \"name\": \"sneakers\" } }, \"type\": \"ADD\" }, { \"payload\": { \"attributes\": { \"color\": \"Navy blue\", \"type\": \"shoes\" }, \"replaceIfExists\": true, \"sku\": \"SKU1241028\", \"price\": 100, \"product\": { \"name\": \"sneakers\" } }, \"type\": \"ADD\" } ] } ``` </div> </details> <details> <summary><strong>Editing the attributes of an item in the catalog</strong></summary> <div> ```json { \"actions\": [ { \"payload\": { \"attributes\": { \"age\": 11, \"origin\": \"germany\" }, \"createIfNotExists\": false, \"sku\": \"SKU1241028\", \"product\": { \"name\": \"sneakers\" } }, \"type\": \"PATCH\" } ] } ``` </div> </details> <details> <summary><strong>Editing the attributes of several items in the catalog</strong></summary> <div> ```json { \"actions\": [ { \"payload\": { \"attributes\": { \"color\": \"red\" }, \"filters\": [ { \"attr\": \"color\", \"op\": \"EQ\", \"value\": \"blue\" } ] }, \"type\": \"PATCH_MANY\" } ] } ``` </div> </details> <details> <summary><strong>Removing an item from the catalog</strong></summary> <div> ```json { \"actions\": [ { \"payload\": { \"sku\": \"SKU1241028\" }, \"type\": \"REMOVE\" } ] } ``` </div> </details> <details> <summary><strong>Removing several items from the catalog</strong></summary> <div> ```json { \"actions\": [ { \"payload\": { \"filters\": [ { \"attr\": \"color\", \"op\": \"EQ\", \"value\": \"blue\" } ] }, \"type\": \"REMOVE_MANY\" } ] } ``` </div> </details> <details> <summary><strong>Removing shoes of sizes above 45 from the catalog</strong></summary> <div> <p> Let's imagine that we have a shoe store and we have decided to stop selling shoes larger than size 45. We can remove from the catalog all the shoes of sizes above 45 with a single action:</p> ```json { \"actions\": [ { \"payload\": { \"filters\": [ { \"attr\": \"size\", \"op\": \"GT\", \"value\": \"45\" } ] }, \"type\": \"REMOVE_MANY\" } ] } ``` </div> </details> +Perform the following actions for a given cart item catalog: - Add an item to the catalog. - Add multiple items to the catalog. - Update the attributes of an item in the catalog. - Update the attributes of multiple items in the catalog. - Remove an item from the catalog. - Remove multiple items from the catalog. You can either add, update, or delete up to 1000 cart items in a single request. Each item synced to a catalog must have a unique `SKU`. **Important**: You can perform only one type of action in a single sync request. Syncing items with duplicate `SKU` values in a single request returns an error message with a `400` status code. For more information, read [managing cart item catalogs](https://docs.talon.one/docs/product/account/dev-tools/managing-cart-item-catalogs). ### Filtering cart items Use [cart item attributes](https://docs.talon.one/docs/product/account/dev-tools/managing-attributes) to filter items and select the ones you want to edit or delete when editing or deleting more than one item at a time. The `filters` array contains an object with the following properties: - `attr`: A [cart item attribute](https://docs.talon.one/docs/product/account/dev-tools/managing-attributes) connected to the catalog. It is applied to all items in the catalog. - `op`: The filtering operator indicating the relationship between the value of each cart item in the catalog and the value of the `value` property for the attribute selected in `attr`. The value of `op` can be one of the following: - `EQ`: Equal to `value` - `LT`: Less than `value` - `LE`: Less than or equal to `value` - `GT`: Greater than `value` - `GE`: Greater than or equal to `value` - `IN`: One of the comma-separated values that `value` is set to. **Note:** `GE`, `LE`, `GT`, `LT` are for numeric values only. - `value`: The value of the attribute selected in `attr`. ### Payload examples Synchronization actions are sent as `PUT` requests. See the structure for each action: <details> <summary><strong>Adding an item to the catalog</strong></summary> <div> ```json { \"actions\": [ { \"payload\": { \"attributes\": { \"color\": \"Navy blue\", \"type\": \"shoes\" }, \"replaceIfExists\": true, \"sku\": \"SKU1241028\", \"price\": 100, \"product\": { \"name\": \"sneakers\" } }, \"type\": \"ADD\" } ] } ``` </div> </details> <details> <summary><strong>Adding multiple items to the catalog</strong></summary> <div> ```json { \"actions\": [ { \"payload\": { \"attributes\": { \"color\": \"Navy blue\", \"type\": \"shoes\" }, \"replaceIfExists\": true, \"sku\": \"SKU1241027\", \"price\": 100, \"product\": { \"name\": \"sneakers\" } }, \"type\": \"ADD\" }, { \"payload\": { \"attributes\": { \"color\": \"Navy blue\", \"type\": \"shoes\" }, \"replaceIfExists\": true, \"sku\": \"SKU1241028\", \"price\": 100, \"product\": { \"name\": \"sneakers\" } }, \"type\": \"ADD\" } ] } ``` </div> </details> <details> <summary><strong>Updating the attributes of an item in the catalog</strong></summary> <div> ```json { \"actions\": [ { \"payload\": { \"attributes\": { \"age\": 11, \"origin\": \"germany\" }, \"createIfNotExists\": false, \"sku\": \"SKU1241028\", \"product\": { \"name\": \"sneakers\" } }, \"type\": \"PATCH\" } ] } ``` </div> </details> <details> <summary><strong>Updating the attributes of multiple items in the catalog</strong></summary> <div> ```json { \"actions\": [ { \"payload\": { \"attributes\": { \"color\": \"red\" }, \"filters\": [ { \"attr\": \"color\", \"op\": \"EQ\", \"value\": \"blue\" } ] }, \"type\": \"PATCH_MANY\" } ] } ``` </div> </details> <details> <summary><strong>Removing an item from the catalog</strong></summary> <div> ```json { \"actions\": [ { \"payload\": { \"sku\": \"SKU1241028\" }, \"type\": \"REMOVE\" } ] } ``` </div> </details> <details> <summary><strong>Removing multiple items from the catalog</strong></summary> <div> ```json { \"actions\": [ { \"payload\": { \"filters\": [ { \"attr\": \"color\", \"op\": \"EQ\", \"value\": \"blue\" } ] }, \"type\": \"REMOVE_MANY\" } ] } ``` </div> </details> <details> <summary><strong>Removing shoes of sizes above 45 from the catalog</strong></summary> <div> <p> Let's imagine that we have a shoe store and we have decided to stop selling shoes larger than size 45. We can remove from the catalog all the shoes of sizes above 45 with a single action:</p> ```json { \"actions\": [ { \"payload\": { \"filters\": [ { \"attr\": \"size\", \"op\": \"GT\", \"value\": \"45\" } ] }, \"type\": \"REMOVE_MANY\" } ] } ``` </div> </details> ### Example ```java diff --git a/docs/LoyaltyBalanceWithTier.md b/docs/LoyaltyBalanceWithTier.md new file mode 100644 index 00000000..04539325 --- /dev/null +++ b/docs/LoyaltyBalanceWithTier.md @@ -0,0 +1,20 @@ + + +# LoyaltyBalanceWithTier + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**activePoints** | [**BigDecimal**](BigDecimal.md) | Total amount of points awarded to this customer and available to spend. | [optional] +**pendingPoints** | [**BigDecimal**](BigDecimal.md) | Total amount of points awarded to this customer but not available until their start date. | [optional] +**spentPoints** | [**BigDecimal**](BigDecimal.md) | Total amount of points already spent by this customer. | [optional] +**expiredPoints** | [**BigDecimal**](BigDecimal.md) | Total amount of points awarded but never redeemed. They cannot be used anymore. | [optional] +**currentTier** | [**Tier**](Tier.md) | | [optional] +**projectedTier** | [**ProjectedTier**](ProjectedTier.md) | | [optional] +**pointsToNextTier** | [**BigDecimal**](BigDecimal.md) | The number of points required to move up a tier. | [optional] +**nextTierName** | **String** | The name of the tier consecutive to the current tier. | [optional] + + + diff --git a/docs/LoyaltyBalancesWithTiers.md b/docs/LoyaltyBalancesWithTiers.md new file mode 100644 index 00000000..5b4057a4 --- /dev/null +++ b/docs/LoyaltyBalancesWithTiers.md @@ -0,0 +1,14 @@ + + +# LoyaltyBalancesWithTiers + +List of loyalty balances for a ledger and its subledgers. +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**balance** | [**LoyaltyBalanceWithTier**](LoyaltyBalanceWithTier.md) | | [optional] +**subledgerBalances** | [**Map<String, LoyaltyBalanceWithTier>**](LoyaltyBalanceWithTier.md) | Map of the loyalty balances of the subledgers of a ledger. | [optional] + + + diff --git a/docs/LoyaltyCard.md b/docs/LoyaltyCard.md index 4a9a9951..99de4bc8 100644 --- a/docs/LoyaltyCard.md +++ b/docs/LoyaltyCard.md @@ -11,6 +11,7 @@ Name | Type | Description | Notes **created** | [**OffsetDateTime**](OffsetDateTime.md) | The time this entity was created. | **programID** | **Integer** | The ID of the loyalty program that owns this entity. | **status** | **String** | Status of the loyalty card. Can be one of: ['active', 'inactive'] | +**blockReason** | **String** | Reason for transferring and blocking the loyalty card. | [optional] **identifier** | **String** | The alphanumeric identifier of the loyalty card. | **usersPerCardLimit** | **Integer** | The max amount of customer profiles that can be linked to the card. 0 means unlimited. | **profiles** | [**List<LoyaltyCardProfileRegistration>**](LoyaltyCardProfileRegistration.md) | Integration IDs of the customers profiles linked to the card. | [optional] diff --git a/docs/LoyaltyProgram.md b/docs/LoyaltyProgram.md index f4581814..5f242279 100644 --- a/docs/LoyaltyProgram.md +++ b/docs/LoyaltyProgram.md @@ -17,46 +17,51 @@ Name | Type | Description | Notes **allowSubledger** | **Boolean** | Indicates if this program supports subledgers inside the program. | **usersPerCardLimit** | **Integer** | The max amount of user profiles with whom a card can be shared. This can be set to 0 for no limit. This property is only used when `cardBased` is `true`. | [optional] **sandbox** | **Boolean** | Indicates if this program is a live or sandbox program. Programs of a given type can only be connected to Applications of the same type. | -**tiersExpirationPolicy** | [**TiersExpirationPolicyEnum**](#TiersExpirationPolicyEnum) | The policy that defines which date is used to calculate the expiration date of a customer's current tier. - `tier_start_date`: The tier expiration date is calculated based on when the customer joined the current tier. - `program_join_date`: The tier expiration date is calculated based on when the customer joined the loyalty program. | [optional] +**programJoinPolicy** | [**ProgramJoinPolicyEnum**](#ProgramJoinPolicyEnum) | The policy that defines when the customer joins the loyalty program. - `not_join`: The customer does not join the loyalty program but can still earn and spend loyalty points. **Note**: The customer does not have a program join date. - `points_activated`: The customer joins the loyalty program only when their earned loyalty points become active for the first time. - `points_earned`: The customer joins the loyalty program when they earn loyalty points for the first time. | [optional] +**tiersExpirationPolicy** | [**TiersExpirationPolicyEnum**](#TiersExpirationPolicyEnum) | The policy that defines which date is used to calculate the expiration date of a customer's current tier. - `tier_start_date`: The tier expiration date is calculated based on when the customer joined the current tier. - `program_join_date`: The tier expiration date is calculated based on when the customer joined the loyalty program. - `customer_attribute`: The tier expiration date is calculated based on a custom customer attribute. - `absolute_expiration`: The tier expires on a specified date and time. **Note**: For absolute expiration, it is required to provide a `tiersStartDate.` | [optional] +**tiersStartDate** | [**OffsetDateTime**](OffsetDateTime.md) | Timestamp at which the tier starts for all customers. **Note**: This is only required when the tier expiration policy is set to `absolute_expiration`. | [optional] **tiersExpireIn** | **String** | The amount of time after which the tier expires. 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. | [optional] **tiersDowngradePolicy** | [**TiersDowngradePolicyEnum**](#TiersDowngradePolicyEnum) | Customers's tier downgrade policy. - `one_down`: Once the tier expires and if the user doesn't have enough points to stay in the tier, the user is downgraded one tier down. - `balance_based`: Once the tier expires, the user's tier is evaluated based on the amount of active points the user has at this instant. | [optional] -**programJoinPolicy** | [**ProgramJoinPolicyEnum**](#ProgramJoinPolicyEnum) | The policy that defines when the customer joins the loyalty program. - `not_join`: The customer does not join the loyalty program but can still earn and spend loyalty points. **Note**: The customer does not have a program join date. - `points_activated`: The customer joins the loyalty program only when their earned loyalty points become active for the first time. - `points_earned`: The customer joins the loyalty program when they earn loyalty points for the first time. | [optional] +**cardCodeSettings** | [**CodeGeneratorSettings**](CodeGeneratorSettings.md) | | [optional] **accountID** | **Integer** | The ID of the Talon.One account that owns this program. | **name** | **String** | The internal name for the Loyalty Program. This is an immutable value. | **tiers** | [**List<LoyaltyTier>**](LoyaltyTier.md) | The tiers in this loyalty program. | [optional] **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** | Indicates whether the program join policy can be updated. The join policy can be updated when this value is set to `true`. | [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] -## Enum: TiersExpirationPolicyEnum +## Enum: ProgramJoinPolicyEnum Name | Value ---- | ----- -TIER_START_DATE | "tier_start_date" -PROGRAM_JOIN_DATE | "program_join_date" +NOT_JOIN | "not_join" +POINTS_ACTIVATED | "points_activated" +POINTS_EARNED | "points_earned" -## Enum: TiersDowngradePolicyEnum +## Enum: TiersExpirationPolicyEnum Name | Value ---- | ----- -ONE_DOWN | "one_down" -BALANCE_BASED | "balance_based" +TIER_START_DATE | "tier_start_date" +PROGRAM_JOIN_DATE | "program_join_date" +CUSTOMER_ATTRIBUTE | "customer_attribute" +ABSOLUTE_EXPIRATION | "absolute_expiration" -## Enum: ProgramJoinPolicyEnum +## Enum: TiersDowngradePolicyEnum Name | Value ---- | ----- -NOT_JOIN | "not_join" -POINTS_ACTIVATED | "points_activated" -POINTS_EARNED | "points_earned" +ONE_DOWN | "one_down" +BALANCE_BASED | "balance_based" diff --git a/docs/ManagementApi.md b/docs/ManagementApi.md index 41e26378..23dc00cf 100644 --- a/docs/ManagementApi.md +++ b/docs/ManagementApi.md @@ -4,7 +4,7 @@ All URIs are relative to *https://yourbaseurl.talon.one* Method | HTTP request | Description ------------- | ------------- | ------------- -[**activateUserByEmail**](ManagementApi.md#activateUserByEmail) | **POST** /v1/users/activate | Activate user by email address +[**activateUserByEmail**](ManagementApi.md#activateUserByEmail) | **POST** /v1/users/activate | Enable user by email address [**addLoyaltyCardPoints**](ManagementApi.md#addLoyaltyCardPoints) | **PUT** /v1/loyalty_programs/{loyaltyProgramId}/cards/{loyaltyCardId}/add_points | Add points to card [**addLoyaltyPoints**](ManagementApi.md#addLoyaltyPoints) | **PUT** /v1/loyalty_programs/{loyaltyProgramId}/profile/{integrationId}/add_points | Add points to customer profile [**copyCampaignToApplications**](ManagementApi.md#copyCampaignToApplications) | **POST** /v1/applications/{applicationId}/campaigns/{campaignId}/copy | Copy the campaign into the specified Application @@ -22,7 +22,7 @@ Method | HTTP request | Description [**createPasswordRecoveryEmail**](ManagementApi.md#createPasswordRecoveryEmail) | **POST** /v1/password_recovery_emails | Request a password reset [**createSession**](ManagementApi.md#createSession) | **POST** /v1/sessions | Create session [**createStore**](ManagementApi.md#createStore) | **POST** /v1/applications/{applicationId}/stores | Create store -[**deactivateUserByEmail**](ManagementApi.md#deactivateUserByEmail) | **POST** /v1/users/deactivate | Deactivate user by email address +[**deactivateUserByEmail**](ManagementApi.md#deactivateUserByEmail) | **POST** /v1/users/deactivate | Disable user by email address [**deductLoyaltyCardPoints**](ManagementApi.md#deductLoyaltyCardPoints) | **PUT** /v1/loyalty_programs/{loyaltyProgramId}/cards/{loyaltyCardId}/deduct_points | Deduct points from card [**deleteAccountCollection**](ManagementApi.md#deleteAccountCollection) | **DELETE** /v1/collections/{collectionId} | Delete account-level collection [**deleteAchievement**](ManagementApi.md#deleteAchievement) | **DELETE** /v1/applications/{applicationId}/campaigns/{campaignId}/achievements/{achievementId} | Delete achievement @@ -36,9 +36,11 @@ Method | HTTP request | Description [**deleteUser**](ManagementApi.md#deleteUser) | **DELETE** /v1/users/{userId} | Delete user [**deleteUserByEmail**](ManagementApi.md#deleteUserByEmail) | **POST** /v1/users/delete | Delete user by email address [**destroySession**](ManagementApi.md#destroySession) | **DELETE** /v1/sessions | Destroy session +[**disconnectCampaignStores**](ManagementApi.md#disconnectCampaignStores) | **DELETE** /v1/applications/{applicationId}/campaigns/{campaignId}/stores | Disconnect stores [**exportAccountCollectionItems**](ManagementApi.md#exportAccountCollectionItems) | **GET** /v1/collections/{collectionId}/export | Export account-level collection's items [**exportAchievements**](ManagementApi.md#exportAchievements) | **GET** /v1/applications/{applicationId}/campaigns/{campaignId}/achievements/{achievementId}/export | Export achievement customer data [**exportAudiencesMemberships**](ManagementApi.md#exportAudiencesMemberships) | **GET** /v1/audiences/{audienceId}/memberships/export | Export audience members +[**exportCampaignStores**](ManagementApi.md#exportCampaignStores) | **GET** /v1/applications/{applicationId}/campaigns/{campaignId}/stores/export | Export stores [**exportCollectionItems**](ManagementApi.md#exportCollectionItems) | **GET** /v1/applications/{applicationId}/campaigns/{campaignId}/collections/{collectionId}/export | Export campaign-level collection's items [**exportCoupons**](ManagementApi.md#exportCoupons) | **GET** /v1/applications/{applicationId}/export_coupons | Export coupons [**exportCustomerSessions**](ManagementApi.md#exportCustomerSessions) | **GET** /v1/applications/{applicationId}/export_customer_sessions | Export customer sessions @@ -117,6 +119,7 @@ Method | HTTP request | Description [**importAccountCollection**](ManagementApi.md#importAccountCollection) | **POST** /v1/collections/{collectionId}/import | Import data into existing account-level collection [**importAllowedList**](ManagementApi.md#importAllowedList) | **POST** /v1/attributes/{attributeId}/allowed_list/import | Import allowed values for attribute [**importAudiencesMemberships**](ManagementApi.md#importAudiencesMemberships) | **POST** /v1/audiences/{audienceId}/memberships/import | Import audience members +[**importCampaignStores**](ManagementApi.md#importCampaignStores) | **POST** /v1/applications/{applicationId}/campaigns/{campaignId}/stores/import | Import stores [**importCollection**](ManagementApi.md#importCollection) | **POST** /v1/applications/{applicationId}/campaigns/{campaignId}/collections/{collectionId}/import | Import data into existing campaign-level collection [**importCoupons**](ManagementApi.md#importCoupons) | **POST** /v1/applications/{applicationId}/campaigns/{campaignId}/import_coupons | Import coupons [**importLoyaltyCards**](ManagementApi.md#importLoyaltyCards) | **POST** /v1/loyalty_programs/{loyaltyProgramId}/import_cards | Import loyalty cards @@ -133,11 +136,21 @@ Method | HTTP request | Description [**listCollectionsInApplication**](ManagementApi.md#listCollectionsInApplication) | **GET** /v1/applications/{applicationId}/collections | List collections in Application [**listStores**](ManagementApi.md#listStores) | **GET** /v1/applications/{applicationId}/stores | List stores [**notificationActivation**](ManagementApi.md#notificationActivation) | **PUT** /v1/notifications/{notificationId}/activation | Activate or deactivate notification +[**oktaEventHandlerChallenge**](ManagementApi.md#oktaEventHandlerChallenge) | **GET** /v1/provisioning/okta | Validate Okta API ownership [**postAddedDeductedPointsNotification**](ManagementApi.md#postAddedDeductedPointsNotification) | **POST** /v1/loyalty_programs/{loyaltyProgramId}/notifications/added_deducted_points | Create notification about added or deducted loyalty points [**postCatalogsStrikethroughNotification**](ManagementApi.md#postCatalogsStrikethroughNotification) | **POST** /v1/applications/{applicationId}/catalogs/notifications/strikethrough | Create strikethrough notification [**postPendingPointsNotification**](ManagementApi.md#postPendingPointsNotification) | **POST** /v1/loyalty_programs/{loyaltyProgramId}/notifications/pending_points | Create notification about pending loyalty points [**removeLoyaltyPoints**](ManagementApi.md#removeLoyaltyPoints) | **PUT** /v1/loyalty_programs/{loyaltyProgramId}/profile/{integrationId}/deduct_points | Deduct points from customer profile [**resetPassword**](ManagementApi.md#resetPassword) | **POST** /v1/reset_password | Reset password +[**scimCreateUser**](ManagementApi.md#scimCreateUser) | **POST** /v1/provisioning/scim/Users | Create SCIM user +[**scimDeleteUser**](ManagementApi.md#scimDeleteUser) | **DELETE** /v1/provisioning/scim/Users/{userId} | Delete SCIM user +[**scimGetResourceTypes**](ManagementApi.md#scimGetResourceTypes) | **GET** /v1/provisioning/scim/ResourceTypes | List supported SCIM resource types +[**scimGetSchemas**](ManagementApi.md#scimGetSchemas) | **GET** /v1/provisioning/scim/Schemas | List supported SCIM schemas +[**scimGetServiceProviderConfig**](ManagementApi.md#scimGetServiceProviderConfig) | **GET** /v1/provisioning/scim/ServiceProviderConfig | Service config endpoint for SCIM provisioning protocol +[**scimGetUser**](ManagementApi.md#scimGetUser) | **GET** /v1/provisioning/scim/Users/{userId} | Get SCIM user +[**scimGetUsers**](ManagementApi.md#scimGetUsers) | **GET** /v1/provisioning/scim/Users | List SCIM users +[**scimPatchUser**](ManagementApi.md#scimPatchUser) | **PATCH** /v1/provisioning/scim/Users/{userId} | Update SCIM user attributes +[**scimReplaceUserAttributes**](ManagementApi.md#scimReplaceUserAttributes) | **PUT** /v1/provisioning/scim/Users/{userId} | Update SCIM user [**searchCouponsAdvancedApplicationWideWithoutTotalCount**](ManagementApi.md#searchCouponsAdvancedApplicationWideWithoutTotalCount) | **POST** /v1/applications/{applicationId}/coupons_search_advanced/no_total | List coupons that match the given attributes (without total count) [**searchCouponsAdvancedWithoutTotalCount**](ManagementApi.md#searchCouponsAdvancedWithoutTotalCount) | **POST** /v1/applications/{applicationId}/campaigns/{campaignId}/coupons_search_advanced/no_total | List coupons that match the given attributes in campaign (without total count) [**transferLoyaltyCard**](ManagementApi.md#transferLoyaltyCard) | **PUT** /v1/loyalty_programs/{loyaltyProgramId}/cards/{loyaltyCardId}/transfer | Transfer card data @@ -160,9 +173,9 @@ Method | HTTP request | Description # **activateUserByEmail** > activateUserByEmail(body) -Activate user by email address +Enable user by email address -Activate a deactivated user by their email address. +Enable a [disabled user](https://docs.talon.one/docs/product/account/account-settings/managing-users#disabling-a-user) by their email address. ### Example ```java @@ -1563,9 +1576,9 @@ Name | Type | Description | Notes # **deactivateUserByEmail** > deactivateUserByEmail(body) -Deactivate user by email address +Disable user by email address -Deactivate a specific user by their email address. +[Disable a specific user](https://docs.talon.one/docs/product/account/account-settings/managing-users#disabling-a-user) by their email address. ### Example ```java @@ -2143,10 +2156,10 @@ public class Example { String value = "value_example"; // String | Filter results performing case-insensitive matching against the coupon code. Both the code and the query are folded to remove all non-alpha-numeric characters. OffsetDateTime createdBefore = new OffsetDateTime(); // OffsetDateTime | Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon 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 coupon creation timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. - OffsetDateTime startsAfter = new OffsetDateTime(); // OffsetDateTime | Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon creation timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. - OffsetDateTime startsBefore = new OffsetDateTime(); // OffsetDateTime | Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon creation timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. - OffsetDateTime expiresAfter = new OffsetDateTime(); // OffsetDateTime | Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon creation timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. - OffsetDateTime expiresBefore = new OffsetDateTime(); // OffsetDateTime | Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon creation timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. + OffsetDateTime startsAfter = new OffsetDateTime(); // OffsetDateTime | Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon start date timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. + OffsetDateTime startsBefore = new OffsetDateTime(); // OffsetDateTime | Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon start date timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. + OffsetDateTime expiresAfter = new OffsetDateTime(); // OffsetDateTime | Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon expiration date timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. + OffsetDateTime expiresBefore = new OffsetDateTime(); // OffsetDateTime | Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon expiration date timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. String valid = "valid_example"; // String | - `expired`: Matches coupons in which the expiration date is set and in the past. - `validNow`: Matches coupons in which start date is null or in the past and expiration date is null or in the future. - `validFuture`: Matches coupons in which start date is set and in the future. String batchId = "batchId_example"; // String | Filter results by batches of coupons String usable = "usable_example"; // String | - `true`: only coupons where `usageCounter < usageLimit` will be returned. - `false`: only coupons where `usageCounter >= usageLimit` will be returned. @@ -2175,10 +2188,10 @@ Name | Type | Description | Notes **value** | **String**| Filter results performing case-insensitive matching against the coupon code. Both the code and the query are folded to remove all non-alpha-numeric characters. | [optional] **createdBefore** | **OffsetDateTime**| Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon 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 coupon creation timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. | [optional] - **startsAfter** | **OffsetDateTime**| Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon creation timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. | [optional] - **startsBefore** | **OffsetDateTime**| Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon creation timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. | [optional] - **expiresAfter** | **OffsetDateTime**| Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon creation timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. | [optional] - **expiresBefore** | **OffsetDateTime**| Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon creation timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. | [optional] + **startsAfter** | **OffsetDateTime**| Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon start date timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. | [optional] + **startsBefore** | **OffsetDateTime**| Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon start date timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. | [optional] + **expiresAfter** | **OffsetDateTime**| Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon expiration date timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. | [optional] + **expiresBefore** | **OffsetDateTime**| Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon expiration date timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. | [optional] **valid** | **String**| - `expired`: Matches coupons in which the expiration date is set and in the past. - `validNow`: Matches coupons in which start date is null or in the past and expiration date is null or in the future. - `validFuture`: Matches coupons in which start date is set and in the future. | [optional] [enum: expired, validNow, validFuture] **batchId** | **String**| Filter results by batches of coupons | [optional] **usable** | **String**| - `true`: only coupons where `usageCounter < usageLimit` will be returned. - `false`: only coupons where `usageCounter >= usageLimit` will be returned. | [optional] [enum: true, false] @@ -2517,7 +2530,7 @@ null (empty response body) Delete user by email address -Delete a specific user by their email address. +[Delete a specific user](https://docs.talon.one/docs/product/account/account-settings/managing-users#deleting-a-user) by their email address. ### Example ```java @@ -2655,6 +2668,85 @@ null (empty response body) |-------------|-------------|------------------| **204** | No Content | - | + +# **disconnectCampaignStores** +> disconnectCampaignStores(applicationId, campaignId) + +Disconnect stores + +Disconnect the stores linked to a specific campaign. + +### 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: 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); + Integer applicationId = 56; // Integer | The ID of the Application. It is displayed in your Talon.One deployment URL. + Integer campaignId = 56; // Integer | The ID of the campaign. It is displayed in your Talon.One deployment URL. + try { + apiInstance.disconnectCampaignStores(applicationId, campaignId); + } catch (ApiException e) { + System.err.println("Exception when calling ManagementApi#disconnectCampaignStores"); + 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 +------------- | ------------- | ------------- | ------------- + **applicationId** | **Integer**| The ID of the Application. It is displayed in your Talon.One deployment URL. | + **campaignId** | **Integer**| The ID of the campaign. It is displayed in your Talon.One deployment URL. | + +### Return type + +null (empty response body) + +### Authorization + +[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 | +|-------------|-------------|------------------| +**204** | No Content | - | +**400** | Bad request | - | +**401** | Unauthorized - Invalid API key | - | +**404** | Not found | - | + # **exportAccountCollectionItems** > String exportAccountCollectionItems(collectionId) @@ -2892,6 +2984,86 @@ Name | Type | Description | Notes **401** | Unauthorized - Invalid API key | - | **404** | Not found | - | + +# **exportCampaignStores** +> String exportCampaignStores(applicationId, campaignId) + +Export stores + +Download a CSV file containing the stores linked to a specific campaign. **Tip:** If the exported CSV file is too large to view, you can [split it into multiple files](https://www.makeuseof.com/tag/how-to-split-a-huge-csv-excel-workbook-into-seperate-files/). The CSV file contains the following column: - `store_integration_id`: The identifier of the store. + +### 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: 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); + Integer applicationId = 56; // Integer | The ID of the Application. It is displayed in your Talon.One deployment URL. + Integer campaignId = 56; // Integer | The ID of the campaign. It is displayed in your Talon.One deployment URL. + try { + String result = apiInstance.exportCampaignStores(applicationId, campaignId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ManagementApi#exportCampaignStores"); + 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 +------------- | ------------- | ------------- | ------------- + **applicationId** | **Integer**| The ID of the Application. It is displayed in your Talon.One deployment URL. | + **campaignId** | **Integer**| The ID of the campaign. It is displayed in your Talon.One deployment URL. | + +### Return type + +**String** + +### Authorization + +[management_key](../README.md#management_key), [manager_auth](../README.md#manager_auth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/csv + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**200** | OK | - | +**400** | Bad request | - | +**401** | Unauthorized - Invalid API key | - | +**404** | Not found | - | + # **exportCollectionItems** > String exportCollectionItems(applicationId, campaignId, collectionId) @@ -3167,7 +3339,7 @@ Name | Type | Description | Notes Export customers' tier data -Download a CSV file containing the tier information for customers of the specified loyalty program. The generated file contains the following columns: - `programid`: The identifier of the loyalty program. It is displayed in your Talon.One deployment URL. - `subledgerid`: The ID of the subledger associated with the loyalty program. This column is empty if the loyalty program has no subledger. In this case, refer to the export file name to get the ID of the loyalty program. - `customerprofileid`: The ID used to integrate customer profiles with the loyalty program. - `tiername`: The name of the tier. - `startdate`: The tier start date in RFC3339. - `expirydate`: The tier expiry date in RFC3339. You can filter the results by providing the following optional input parameters: - `subledgerId` (optional): Filter results by subledger ID. If no value is provided, all subledger data for the specified loyalty program will be exported. - `tierName` (optional): Filter results by tier name. If no value is provided, all tier data for the specified loyalty program will be exported. +Download a CSV file containing the tier information for customers of the specified loyalty program. The generated file contains the following columns: - `programid`: The identifier of the loyalty program. It is displayed in your Talon.One deployment URL. - `subledgerid`: The ID of the subledger associated with the loyalty program. This column is empty if the loyalty program has no subledger. In this case, refer to the export file name to get the ID of the loyalty program. - `customerprofileid`: The ID used to integrate customer profiles with the loyalty program. - `tiername`: The name of the tier. - `startdate`: The tier start date in RFC3339. - `expirydate`: The tier expiry date in RFC3339. You can filter the results by providing the following optional input parameters: - `subledgerIds` (optional): Filter results by an array of subledger IDs. If no value is provided, all subledger data for the specified loyalty program will be exported. - `tierNames` (optional): Filter results by an array of tier names. If no value is provided, all tier data for the specified loyalty program will be exported. ### Example ```java @@ -6692,7 +6864,7 @@ Name | Type | Description | Notes # **getCouponsWithoutTotalCount** -> InlineResponse2009 getCouponsWithoutTotalCount(applicationId, campaignId, pageSize, skip, sort, value, createdBefore, createdAfter, valid, usable, referralId, recipientIntegrationId, batchId, exactMatch) +> InlineResponse2009 getCouponsWithoutTotalCount(applicationId, campaignId, pageSize, skip, sort, value, createdBefore, createdAfter, valid, usable, referralId, recipientIntegrationId, batchId, exactMatch, expiresBefore, expiresAfter, startsBefore, startsAfter, valuesOnly) List coupons @@ -6740,8 +6912,13 @@ public class Example { String recipientIntegrationId = "recipientIntegrationId_example"; // String | Filter results by match with a profile id specified in the coupon's RecipientIntegrationId field String batchId = "batchId_example"; // String | Filter results by batches of coupons Boolean exactMatch = false; // Boolean | Filter results to an exact case-insensitive matching against the coupon code + OffsetDateTime expiresBefore = new OffsetDateTime(); // OffsetDateTime | Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon expiration date timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. + OffsetDateTime expiresAfter = new OffsetDateTime(); // OffsetDateTime | Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon expiration date timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. + OffsetDateTime startsBefore = new OffsetDateTime(); // OffsetDateTime | Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon start date timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. + OffsetDateTime startsAfter = new OffsetDateTime(); // OffsetDateTime | Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon start date timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. + Boolean valuesOnly = false; // Boolean | Filter results to only return the coupon codes (`value` column) without the associated coupon data. try { - InlineResponse2009 result = apiInstance.getCouponsWithoutTotalCount(applicationId, campaignId, pageSize, skip, sort, value, createdBefore, createdAfter, valid, usable, referralId, recipientIntegrationId, batchId, exactMatch); + InlineResponse2009 result = apiInstance.getCouponsWithoutTotalCount(applicationId, campaignId, pageSize, skip, sort, value, createdBefore, createdAfter, valid, usable, referralId, recipientIntegrationId, batchId, exactMatch, expiresBefore, expiresAfter, startsBefore, startsAfter, valuesOnly); System.out.println(result); } catch (ApiException e) { System.err.println("Exception when calling ManagementApi#getCouponsWithoutTotalCount"); @@ -6772,6 +6949,11 @@ Name | Type | Description | Notes **recipientIntegrationId** | **String**| Filter results by match with a profile id specified in the coupon's RecipientIntegrationId field | [optional] **batchId** | **String**| Filter results by batches of coupons | [optional] **exactMatch** | **Boolean**| Filter results to an exact case-insensitive matching against the coupon code | [optional] [default to false] + **expiresBefore** | **OffsetDateTime**| Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon expiration date timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. | [optional] + **expiresAfter** | **OffsetDateTime**| Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon expiration date timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. | [optional] + **startsBefore** | **OffsetDateTime**| Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon start date timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. | [optional] + **startsAfter** | **OffsetDateTime**| Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon start date timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. | [optional] + **valuesOnly** | **Boolean**| Filter results to only return the coupon codes (`value` column) without the associated coupon data. | [optional] [default to false] ### Return type @@ -9043,7 +9225,7 @@ public class Example { //manager_auth.setApiKeyPrefix("Token"); ManagementApi apiInstance = new ManagementApi(defaultClient); - String applicationIds = "applicationIds_example"; // String | Filter by one or more Application IDs, separated by a comma. + String applicationIds = "applicationIds_example"; // String | Checks if the given catalog or its attributes are referenced in the specified Application ID. **Note**: If no Application ID is provided, we check for all connected Applications. 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:** This parameter works only with numeric fields. Integer pageSize = 1000; // Integer | The number of items in the response. Integer skip = 56; // Integer | The number of items to skip when paging through large result sets. @@ -9069,7 +9251,7 @@ public class Example { Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **applicationIds** | **String**| Filter by one or more Application IDs, separated by a comma. | [optional] + **applicationIds** | **String**| Checks if the given catalog or its attributes are referenced in the specified Application ID. **Note**: If no Application ID is provided, we check for all connected Applications. | [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:** This parameter works only with numeric fields. | [optional] **pageSize** | **Integer**| The number of items in the response. | [optional] [default to 1000] **skip** | **Integer**| The number of items to skip when paging through large result sets. | [optional] @@ -9335,6 +9517,88 @@ Name | Type | Description | Notes **401** | Unauthorized - Invalid API key | - | **404** | Not found | - | + +# **importCampaignStores** +> ModelImport importCampaignStores(applicationId, campaignId, upFile) + +Import stores + +Upload a CSV file containing the stores you want to link to a specific campaign. Send the file as multipart data. The CSV file **must** only contain the following column: - `store_integration_id`: The identifier of the store. The import **replaces** the previous list of stores linked to the campaign. + +### 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: 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); + Integer applicationId = 56; // Integer | The ID of the Application. It is displayed in your Talon.One deployment URL. + Integer campaignId = 56; // Integer | The ID of the campaign. It is displayed in your Talon.One deployment URL. + String upFile = "upFile_example"; // String | The file containing the data that is being imported. + try { + ModelImport result = apiInstance.importCampaignStores(applicationId, campaignId, upFile); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ManagementApi#importCampaignStores"); + 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 +------------- | ------------- | ------------- | ------------- + **applicationId** | **Integer**| The ID of the Application. It is displayed in your Talon.One deployment URL. | + **campaignId** | **Integer**| The ID of the campaign. It is displayed in your Talon.One deployment URL. | + **upFile** | **String**| The file containing the data that is being imported. | [optional] + +### Return type + +[**ModelImport**](ModelImport.md) + +### Authorization + +[management_key](../README.md#management_key), [manager_auth](../README.md#manager_auth) + +### HTTP request headers + + - **Content-Type**: multipart/form-data + - **Accept**: application/json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**200** | OK | - | +**400** | Bad request | - | +**401** | Unauthorized - Invalid API key | - | +**404** | Not found | - | + # **importCollection** > ModelImport importCollection(applicationId, campaignId, collectionId, upFile) @@ -9896,7 +10160,7 @@ Name | Type | Description | Notes Invite user from identity provider -Invite a user from an external identity provider to Talon.One by sending an invitation to their email address. +[Invite a user](https://docs.talon.one/docs/product/account/account-settings/managing-users#inviting-a-user) from an external identity provider to Talon.One by sending an invitation to their email address. ### Example ```java @@ -10630,13 +10894,13 @@ null (empty response body) |-------------|-------------|------------------| **204** | No Content | - | - -# **postAddedDeductedPointsNotification** -> BaseNotification postAddedDeductedPointsNotification(loyaltyProgramId, body) + +# **oktaEventHandlerChallenge** +> oktaEventHandlerChallenge() -Create notification about added or deducted loyalty points +Validate Okta API ownership -Create a notification about added or deducted loyalty points in a given profile-based loyalty program. A notification for added or deducted loyalty points is different from regular webhooks in that it is loyalty program-scoped and has a predefined payload. For more information, see [Managing loyalty notifications](https://docs.talon.one/docs/product/loyalty-programs/managing-loyalty-notifications). +Validate the ownership of the API through a challenge-response mechanism. This challenger endpoint is used by Okta to confirm that communication between Talon.One and Okta is correctly configured and accessible for provisioning and deprovisioning of Talon.One users, and that only Talon.One can receive and respond to events from Okta. ### Example ```java @@ -10666,13 +10930,10 @@ public class Example { //manager_auth.setApiKeyPrefix("Token"); ManagementApi apiInstance = new ManagementApi(defaultClient); - Integer loyaltyProgramId = 56; // Integer | 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. - NewBaseNotification body = new NewBaseNotification(); // NewBaseNotification | body try { - BaseNotification result = apiInstance.postAddedDeductedPointsNotification(loyaltyProgramId, body); - System.out.println(result); + apiInstance.oktaEventHandlerChallenge(); } catch (ApiException e) { - System.err.println("Exception when calling ManagementApi#postAddedDeductedPointsNotification"); + System.err.println("Exception when calling ManagementApi#oktaEventHandlerChallenge"); System.err.println("Status code: " + e.getCode()); System.err.println("Reason: " + e.getResponseBody()); System.err.println("Response headers: " + e.getResponseHeaders()); @@ -10683,15 +10944,11 @@ public class Example { ``` ### Parameters - -Name | Type | Description | Notes -------------- | ------------- | ------------- | ------------- - **loyaltyProgramId** | **Integer**| 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. | - **body** | [**NewBaseNotification**](NewBaseNotification.md)| body | +This endpoint does not need any parameter. ### Return type -[**BaseNotification**](BaseNotification.md) +null (empty response body) ### Authorization @@ -10699,24 +10956,101 @@ Name | Type | Description | Notes ### HTTP request headers - - **Content-Type**: application/json - - **Accept**: application/json + - **Content-Type**: Not defined + - **Accept**: Not defined ### HTTP response details | Status code | Description | Response headers | |-------------|-------------|------------------| **200** | OK | - | -**400** | Bad request | - | -**401** | Unauthorized | - | -**404** | Not found | - | - -# **postCatalogsStrikethroughNotification** -> BaseNotification postCatalogsStrikethroughNotification(applicationId, body) + +# **postAddedDeductedPointsNotification** +> BaseNotification postAddedDeductedPointsNotification(loyaltyProgramId, body) -Create strikethrough notification +Create notification about added or deducted loyalty points -Create a notification for the in the given Application. For more information, see [Managing notifications](https://docs.talon.one/docs/product/applications/outbound-notifications). See the [payload](https://docs.talon.one/outbound-notifications) you will receive. +Create a notification about added or deducted loyalty points in a given profile-based loyalty program. A notification for added or deducted loyalty points is different from regular webhooks in that it is loyalty program-scoped and has a predefined payload. For more information, see [Managing loyalty notifications](https://docs.talon.one/docs/product/loyalty-programs/managing-loyalty-notifications). + +### 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: 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); + Integer loyaltyProgramId = 56; // Integer | 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. + NewBaseNotification body = new NewBaseNotification(); // NewBaseNotification | body + try { + BaseNotification result = apiInstance.postAddedDeductedPointsNotification(loyaltyProgramId, body); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ManagementApi#postAddedDeductedPointsNotification"); + 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** | **Integer**| 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. | + **body** | [**NewBaseNotification**](NewBaseNotification.md)| body | + +### Return type + +[**BaseNotification**](BaseNotification.md) + +### Authorization + +[management_key](../README.md#management_key), [manager_auth](../README.md#manager_auth) + +### 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 | - | + + +# **postCatalogsStrikethroughNotification** +> BaseNotification postCatalogsStrikethroughNotification(applicationId, body) + +Create strikethrough notification + +Create a notification for the in the given Application. For more information, see [Managing notifications](https://docs.talon.one/docs/product/applications/outbound-notifications). See the [payload](https://docs.talon.one/outbound-notifications) you will receive. ### Example ```java @@ -11026,6 +11360,664 @@ Name | Type | Description | Notes |-------------|-------------|------------------| **204** | Created | - | + +# **scimCreateUser** +> ScimUser scimCreateUser(body) + +Create SCIM user + +Create a new Talon.One user using the SCIM provisioning protocol with an identity provider, for example, Microsoft Entra ID. + +### 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: 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); + Object body = null; // Object | body + try { + ScimUser result = apiInstance.scimCreateUser(body); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ManagementApi#scimCreateUser"); + 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 +------------- | ------------- | ------------- | ------------- + **body** | **Object**| body | + +### Return type + +[**ScimUser**](ScimUser.md) + +### Authorization + +[management_key](../README.md#management_key), [manager_auth](../README.md#manager_auth) + +### HTTP request headers + + - **Content-Type**: application/json + - **Accept**: application/json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**201** | Created | - | + + +# **scimDeleteUser** +> scimDeleteUser(userId) + +Delete SCIM user + +Delete a specific Talon.One user created using the SCIM provisioning protocol with an identity provider, for example, Microsoft Entra ID. + +### 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: 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); + Integer userId = 56; // Integer | The ID of the user. + try { + apiInstance.scimDeleteUser(userId); + } catch (ApiException e) { + System.err.println("Exception when calling ManagementApi#scimDeleteUser"); + 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 +------------- | ------------- | ------------- | ------------- + **userId** | **Integer**| The ID of the user. | + +### Return type + +null (empty response body) + +### Authorization + +[management_key](../README.md#management_key), [manager_auth](../README.md#manager_auth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**204** | No Content | - | + + +# **scimGetResourceTypes** +> ScimResourceTypesListResponse scimGetResourceTypes() + +List supported SCIM resource types + +Retrieve a list of resource types supported by the SCIM provisioning protocol. Resource types define the various kinds of resources that can be managed via the SCIM API, such as users, groups, or custom-defined resources. + +### 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: 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); + try { + ScimResourceTypesListResponse result = apiInstance.scimGetResourceTypes(); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ManagementApi#scimGetResourceTypes"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters +This endpoint does not need any parameter. + +### Return type + +[**ScimResourceTypesListResponse**](ScimResourceTypesListResponse.md) + +### Authorization + +[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** | List of resource types | - | + + +# **scimGetSchemas** +> scimGetSchemas() + +List supported SCIM schemas + +Retrieve a list of schemas supported by the SCIM provisioning protocol. Schemas define the structure and attributes of the different resources that can be managed via the SCIM API, such as users, groups, and any custom-defined resources. + +### 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: 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); + try { + apiInstance.scimGetSchemas(); + } catch (ApiException e) { + System.err.println("Exception when calling ManagementApi#scimGetSchemas"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters +This endpoint does not need any parameter. + +### Return type + +null (empty response body) + +### Authorization + +[management_key](../README.md#management_key), [manager_auth](../README.md#manager_auth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**200** | Schemas | - | + + +# **scimGetServiceProviderConfig** +> scimGetServiceProviderConfig() + +Service config endpoint for SCIM provisioning protocol + +Service config endpoint for SCIM provisioning protocol + +### 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: 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); + try { + apiInstance.scimGetServiceProviderConfig(); + } catch (ApiException e) { + System.err.println("Exception when calling ManagementApi#scimGetServiceProviderConfig"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters +This endpoint does not need any parameter. + +### Return type + +null (empty response body) + +### Authorization + +[management_key](../README.md#management_key), [manager_auth](../README.md#manager_auth) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: Not defined + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**200** | Service config | - | + + +# **scimGetUser** +> ScimUser scimGetUser(userId) + +Get SCIM user + +Retrieve data for a specific Talon.One user created using the SCIM provisioning protocol with an identity provider, for example, Microsoft Entra ID. + +### 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: 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); + Integer userId = 56; // Integer | The ID of the user. + try { + ScimUser result = apiInstance.scimGetUser(userId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ManagementApi#scimGetUser"); + 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 +------------- | ------------- | ------------- | ------------- + **userId** | **Integer**| The ID of the user. | + +### Return type + +[**ScimUser**](ScimUser.md) + +### Authorization + +[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** | User details | - | + + +# **scimGetUsers** +> ScimUsersListResponse scimGetUsers() + +List SCIM users + +Retrieve a paginated list of users that have been provisioned using the SCIM protocol with an identity provider, for example, Microsoft Entra ID. + +### 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: 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); + try { + ScimUsersListResponse result = apiInstance.scimGetUsers(); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ManagementApi#scimGetUsers"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} +``` + +### Parameters +This endpoint does not need any parameter. + +### Return type + +[**ScimUsersListResponse**](ScimUsersListResponse.md) + +### Authorization + +[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** | List of SCIM users | - | + + +# **scimPatchUser** +> ScimUser scimPatchUser(userId) + +Update SCIM user attributes + +Update certain attributes of a specific Talon.One user created using the SCIM provisioning protocol with an identity provider, for example, Microsoft Entra ID. This endpoint allows for selective adding, removing, or replacing specific attributes while leaving other attributes unchanged. + +### 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: 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); + Integer userId = 56; // Integer | The ID of the user. + try { + ScimUser result = apiInstance.scimPatchUser(userId); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ManagementApi#scimPatchUser"); + 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 +------------- | ------------- | ------------- | ------------- + **userId** | **Integer**| The ID of the user. | + +### Return type + +[**ScimUser**](ScimUser.md) + +### Authorization + +[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** | User details | - | + + +# **scimReplaceUserAttributes** +> ScimUser scimReplaceUserAttributes(userId, body) + +Update SCIM user + +Update the details of a specific Talon.One user created using the SCIM provisioning protocol with an identity provider, for example, Microsoft Entra ID. This endpoint replaces all attributes of the specific user with the attributes provided in the request payload. + +### 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: 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); + Integer userId = 56; // Integer | The ID of the user. + Object body = null; // Object | body + try { + ScimUser result = apiInstance.scimReplaceUserAttributes(userId, body); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling ManagementApi#scimReplaceUserAttributes"); + 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 +------------- | ------------- | ------------- | ------------- + **userId** | **Integer**| The ID of the user. | + **body** | **Object**| body | + +### Return type + +[**ScimUser**](ScimUser.md) + +### Authorization + +[management_key](../README.md#management_key), [manager_auth](../README.md#manager_auth) + +### HTTP request headers + + - **Content-Type**: application/json + - **Accept**: application/json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +**200** | User details | - | + # **searchCouponsAdvancedApplicationWideWithoutTotalCount** > InlineResponse2009 searchCouponsAdvancedApplicationWideWithoutTotalCount(applicationId, body, pageSize, skip, sort, value, createdBefore, createdAfter, valid, usable, referralId, recipientIntegrationId, batchId, exactMatch, campaignState) diff --git a/docs/MessageLogResponse.md b/docs/MessageLogResponse.md index 850cce36..7f9e54db 100644 --- a/docs/MessageLogResponse.md +++ b/docs/MessageLogResponse.md @@ -7,9 +7,9 @@ Details of the response. Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**createdAt** | [**OffsetDateTime**](OffsetDateTime.md) | Timestamp when the response was received. | -**response** | **byte[]** | Raw response data. | -**status** | **Integer** | HTTP status code of the response. | +**createdAt** | [**OffsetDateTime**](OffsetDateTime.md) | Timestamp when the response was received. | [optional] +**response** | **byte[]** | Raw response data. | [optional] +**status** | **Integer** | HTTP status code of the response. | [optional] diff --git a/docs/NewAttribute.md b/docs/NewAttribute.md index 057c768d..12ba99b2 100644 --- a/docs/NewAttribute.md +++ b/docs/NewAttribute.md @@ -27,7 +27,6 @@ Name | Type | Description | Notes Name | Value ---- | ----- -ACCOUNT | "Account" APPLICATION | "Application" CAMPAIGN | "Campaign" CUSTOMERPROFILE | "CustomerProfile" diff --git a/docs/NewBaseNotification.md b/docs/NewBaseNotification.md index 159b5751..36bb5e9f 100644 --- a/docs/NewBaseNotification.md +++ b/docs/NewBaseNotification.md @@ -7,7 +7,7 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**policy** | [**Object**](.md) | | +**policy** | [**Object**](.md) | Indicates which notification properties to apply. | **enabled** | **Boolean** | Indicates whether the notification is activated. | [optional] **webhook** | [**NewNotificationWebhook**](NewNotificationWebhook.md) | | diff --git a/docs/NewLoyaltyProgram.md b/docs/NewLoyaltyProgram.md index d0965865..9d1fdb9c 100644 --- a/docs/NewLoyaltyProgram.md +++ b/docs/NewLoyaltyProgram.md @@ -15,10 +15,12 @@ Name | Type | Description | Notes **allowSubledger** | **Boolean** | Indicates if this program supports subledgers inside the program. | **usersPerCardLimit** | **Integer** | The max amount of user profiles with whom a card can be shared. This can be set to 0 for no limit. This property is only used when `cardBased` is `true`. | [optional] **sandbox** | **Boolean** | Indicates if this program is a live or sandbox program. Programs of a given type can only be connected to Applications of the same type. | -**tiersExpirationPolicy** | [**TiersExpirationPolicyEnum**](#TiersExpirationPolicyEnum) | The policy that defines which date is used to calculate the expiration date of a customer's current tier. - `tier_start_date`: The tier expiration date is calculated based on when the customer joined the current tier. - `program_join_date`: The tier expiration date is calculated based on when the customer joined the loyalty program. | [optional] +**programJoinPolicy** | [**ProgramJoinPolicyEnum**](#ProgramJoinPolicyEnum) | The policy that defines when the customer joins the loyalty program. - `not_join`: The customer does not join the loyalty program but can still earn and spend loyalty points. **Note**: The customer does not have a program join date. - `points_activated`: The customer joins the loyalty program only when their earned loyalty points become active for the first time. - `points_earned`: The customer joins the loyalty program when they earn loyalty points for the first time. | [optional] +**tiersExpirationPolicy** | [**TiersExpirationPolicyEnum**](#TiersExpirationPolicyEnum) | The policy that defines which date is used to calculate the expiration date of a customer's current tier. - `tier_start_date`: The tier expiration date is calculated based on when the customer joined the current tier. - `program_join_date`: The tier expiration date is calculated based on when the customer joined the loyalty program. - `customer_attribute`: The tier expiration date is calculated based on a custom customer attribute. - `absolute_expiration`: The tier expires on a specified date and time. **Note**: For absolute expiration, it is required to provide a `tiersStartDate.` | [optional] +**tiersStartDate** | [**OffsetDateTime**](OffsetDateTime.md) | Timestamp at which the tier starts for all customers. **Note**: This is only required when the tier expiration policy is set to `absolute_expiration`. | [optional] **tiersExpireIn** | **String** | The amount of time after which the tier expires. 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. | [optional] **tiersDowngradePolicy** | [**TiersDowngradePolicyEnum**](#TiersDowngradePolicyEnum) | Customers's tier downgrade policy. - `one_down`: Once the tier expires and if the user doesn't have enough points to stay in the tier, the user is downgraded one tier down. - `balance_based`: Once the tier expires, the user's tier is evaluated based on the amount of active points the user has at this instant. | [optional] -**programJoinPolicy** | [**ProgramJoinPolicyEnum**](#ProgramJoinPolicyEnum) | The policy that defines when the customer joins the loyalty program. - `not_join`: The customer does not join the loyalty program but can still earn and spend loyalty points. **Note**: The customer does not have a program join date. - `points_activated`: The customer joins the loyalty program only when their earned loyalty points become active for the first time. - `points_earned`: The customer joins the loyalty program when they earn loyalty points for the first time. | [optional] +**cardCodeSettings** | [**CodeGeneratorSettings**](CodeGeneratorSettings.md) | | [optional] **name** | **String** | The internal name for the Loyalty Program. This is an immutable value. | **tiers** | [**List<NewLoyaltyTier>**](NewLoyaltyTier.md) | The tiers in this loyalty program. | [optional] **timezone** | **String** | A string containing an IANA timezone descriptor. | @@ -26,31 +28,33 @@ Name | Type | Description | Notes -## Enum: TiersExpirationPolicyEnum +## Enum: ProgramJoinPolicyEnum Name | Value ---- | ----- -TIER_START_DATE | "tier_start_date" -PROGRAM_JOIN_DATE | "program_join_date" +NOT_JOIN | "not_join" +POINTS_ACTIVATED | "points_activated" +POINTS_EARNED | "points_earned" -## Enum: TiersDowngradePolicyEnum +## Enum: TiersExpirationPolicyEnum Name | Value ---- | ----- -ONE_DOWN | "one_down" -BALANCE_BASED | "balance_based" +TIER_START_DATE | "tier_start_date" +PROGRAM_JOIN_DATE | "program_join_date" +CUSTOMER_ATTRIBUTE | "customer_attribute" +ABSOLUTE_EXPIRATION | "absolute_expiration" -## Enum: ProgramJoinPolicyEnum +## Enum: TiersDowngradePolicyEnum Name | Value ---- | ----- -NOT_JOIN | "not_join" -POINTS_ACTIVATED | "points_activated" -POINTS_EARNED | "points_earned" +ONE_DOWN | "one_down" +BALANCE_BASED | "balance_based" diff --git a/docs/NewNotificationTest.md b/docs/NewNotificationTest.md index a3e12ad9..409d7557 100644 --- a/docs/NewNotificationTest.md +++ b/docs/NewNotificationTest.md @@ -21,6 +21,7 @@ Name | Value ---- | ----- CAMPAIGN | "campaign" LOYALTY_ADDED_DEDUCTED_POINTS | "loyalty_added_deducted_points" +CARD_ADDED_DEDUCTED_POINTS | "card_added_deducted_points" COUPON | "coupon" EXPIRING_COUPONS | "expiring_coupons" EXPIRING_POINTS | "expiring_points" diff --git a/docs/NewOutgoingIntegrationWebhook.md b/docs/NewOutgoingIntegrationWebhook.md index 289cde49..ab5c3d85 100644 --- a/docs/NewOutgoingIntegrationWebhook.md +++ b/docs/NewOutgoingIntegrationWebhook.md @@ -7,6 +7,7 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **title** | **String** | Webhook title. | +**description** | **String** | A description of the webhook. | [optional] **applicationIds** | **List<Integer>** | IDs of the Applications to which a webhook must be linked. | diff --git a/docs/NewWebhook.md b/docs/NewWebhook.md index dc51ab89..72d93f71 100644 --- a/docs/NewWebhook.md +++ b/docs/NewWebhook.md @@ -9,6 +9,7 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **applicationIds** | **List<Integer>** | The IDs of the Applications that are related to this entity. | **title** | **String** | Name or title for this webhook. | +**description** | **String** | A description of the webhook. | [optional] **verb** | [**VerbEnum**](#VerbEnum) | API method for this webhook. | **url** | **String** | API URL (supports templating using parameters) for this webhook. | **headers** | **List<String>** | List of API HTTP headers for this webhook. | diff --git a/docs/OktaEvent.md b/docs/OktaEvent.md new file mode 100644 index 00000000..0370e2de --- /dev/null +++ b/docs/OktaEvent.md @@ -0,0 +1,14 @@ + + +# OktaEvent + +Single event definition in the event data emitted by Okta. +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**eventType** | **String** | Event type defining an action. | +**target** | [**List<OktaEventTarget>**](OktaEventTarget.md) | | + + + diff --git a/docs/OktaEventPayload.md b/docs/OktaEventPayload.md new file mode 100644 index 00000000..1262be52 --- /dev/null +++ b/docs/OktaEventPayload.md @@ -0,0 +1,13 @@ + + +# OktaEventPayload + +Payload containing provisioning event details from Okta. +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**data** | [**OktaEventPayloadData**](OktaEventPayloadData.md) | | + + + diff --git a/docs/OktaEventPayloadData.md b/docs/OktaEventPayloadData.md new file mode 100644 index 00000000..2fda8997 --- /dev/null +++ b/docs/OktaEventPayloadData.md @@ -0,0 +1,13 @@ + + +# OktaEventPayloadData + +Data part of the event emitted by Okta. +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**events** | [**List<OktaEvent>**](OktaEvent.md) | | + + + diff --git a/docs/OktaEventTarget.md b/docs/OktaEventTarget.md new file mode 100644 index 00000000..ec184af9 --- /dev/null +++ b/docs/OktaEventTarget.md @@ -0,0 +1,15 @@ + + +# OktaEventTarget + +Target of the specific Okta event. +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**type** | **String** | Type of the event target. | +**alternateId** | **String** | Identifier of the event target, depending on its type. | +**displayName** | **String** | Display name of the event target. | + + + diff --git a/docs/ProjectedTier.md b/docs/ProjectedTier.md new file mode 100644 index 00000000..6386608b --- /dev/null +++ b/docs/ProjectedTier.md @@ -0,0 +1,14 @@ + + +# ProjectedTier + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**projectedActivePoints** | [**BigDecimal**](BigDecimal.md) | The active points of the customer when their current tier expires. | +**stayInTierPoints** | [**BigDecimal**](BigDecimal.md) | The number of points the customer needs to stay in the current tier. **Note**: This is included in the response when the customer is projected to be downgraded. | [optional] +**projectedTierName** | **String** | The name of the tier the user will enter once their current tier expires. | [optional] + + + diff --git a/docs/RejectCouponEffectProps.md b/docs/RejectCouponEffectProps.md index 60702ae1..7dad99ea 100644 --- a/docs/RejectCouponEffectProps.md +++ b/docs/RejectCouponEffectProps.md @@ -12,6 +12,7 @@ Name | Type | Description | Notes **conditionIndex** | **Integer** | The index of the condition that caused the rejection of the coupon. | [optional] **effectIndex** | **Integer** | The index of the effect that caused the rejection of the coupon. | [optional] **details** | **String** | More details about the failure. | [optional] +**campaignExclusionReason** | **String** | The reason why the campaign was not applied. | [optional] diff --git a/docs/RejectReferralEffectProps.md b/docs/RejectReferralEffectProps.md index 7b407453..c44ee07a 100644 --- a/docs/RejectReferralEffectProps.md +++ b/docs/RejectReferralEffectProps.md @@ -12,6 +12,7 @@ Name | Type | Description | Notes **conditionIndex** | **Integer** | The index of the condition that caused the rejection of the referral. | [optional] **effectIndex** | **Integer** | The index of the effect that caused the rejection of the referral. | [optional] **details** | **String** | More details about the failure. | [optional] +**campaignExclusionReason** | **String** | The reason why the campaign was not applied. | [optional] diff --git a/docs/RollbackIncreasedAchievementProgressEffectProps.md b/docs/RollbackIncreasedAchievementProgressEffectProps.md new file mode 100644 index 00000000..80e6519b --- /dev/null +++ b/docs/RollbackIncreasedAchievementProgressEffectProps.md @@ -0,0 +1,18 @@ + + +# RollbackIncreasedAchievementProgressEffectProps + +The properties specific to the \"rollbackIncreasedAchievementProgress\" effect. This gets triggered whenever a closed session where the `increaseAchievementProgress` effect was triggered is cancelled. This is applicable only when the customer has not completed the achievement. +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**achievementId** | **Integer** | The internal ID of the achievement. | +**achievementName** | **String** | The name of the achievement. | +**progressTrackerId** | **Integer** | The internal ID of the achievement progress tracker. | +**decreaseProgressBy** | [**BigDecimal**](BigDecimal.md) | The value by which the customer's current progress in the achievement is decreased. | +**currentProgress** | [**BigDecimal**](BigDecimal.md) | The current progress of the customer in the achievement. | +**target** | [**BigDecimal**](BigDecimal.md) | The target value to complete the achievement. | + + + diff --git a/docs/SSOConfig.md b/docs/SSOConfig.md index 6988c591..3ee830ae 100644 --- a/docs/SSOConfig.md +++ b/docs/SSOConfig.md @@ -7,6 +7,7 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **enforced** | **Boolean** | An indication of whether single sign-on is enforced for the account. When enforced, users cannot use their email and password to sign in to Talon.One. It is not possible to change this to `false` after it is set to `true`. | +**newAcsUrl** | **String** | Assertion Consumer Service (ACS) URL for setting up a new SAML connection with an identity provider like Okta or Microsoft Entra ID. | [optional] diff --git a/docs/ScimNewUser.md b/docs/ScimNewUser.md new file mode 100644 index 00000000..7ee8fdc1 --- /dev/null +++ b/docs/ScimNewUser.md @@ -0,0 +1,15 @@ + + +# ScimNewUser + +Payload for users that are created using the SCIM provisioning protocol with an identity provider, for example, Microsoft Entra ID. +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**active** | **Boolean** | Status of the user. | [optional] +**displayName** | **String** | Display name of the user. | [optional] +**userName** | **String** | Unique identifier of the user. This is usually an email address. | + + + diff --git a/docs/ScimResource.md b/docs/ScimResource.md new file mode 100644 index 00000000..b5d65217 --- /dev/null +++ b/docs/ScimResource.md @@ -0,0 +1,14 @@ + + +# ScimResource + +Resource schema definition for the SCIM provisioning protocol. +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**id** | **String** | ID of the resource. | [optional] +**name** | **String** | Name of the resource. | [optional] + + + diff --git a/docs/ScimResourceTypesListResponse.md b/docs/ScimResourceTypesListResponse.md new file mode 100644 index 00000000..b0ee7d8a --- /dev/null +++ b/docs/ScimResourceTypesListResponse.md @@ -0,0 +1,13 @@ + + +# ScimResourceTypesListResponse + +List of resource types supported by the SCIM provisioning protocol. +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**resources** | [**List<ScimResource>**](ScimResource.md) | | + + + diff --git a/docs/ScimUser.md b/docs/ScimUser.md new file mode 100644 index 00000000..dc261d74 --- /dev/null +++ b/docs/ScimUser.md @@ -0,0 +1,16 @@ + + +# ScimUser + +Schema definition for users that have been provisioned using the SCIM protocol with an identity provider, for example, Microsoft Entra ID. +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**active** | **Boolean** | Status of the user. | [optional] +**displayName** | **String** | Display name of the user. | [optional] +**userName** | **String** | Unique identifier of the user. This is usually an email address. | +**id** | **String** | ID of the user. | + + + diff --git a/docs/ScimUsersListResponse.md b/docs/ScimUsersListResponse.md new file mode 100644 index 00000000..38e37c63 --- /dev/null +++ b/docs/ScimUsersListResponse.md @@ -0,0 +1,15 @@ + + +# ScimUsersListResponse + +List of users that have been provisioned using the SCIM protocol with an identity provider, for example, Microsoft Entra ID. +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**resources** | [**List<ScimUser>**](ScimUser.md) | | +**schemas** | **List<String>** | | [optional] +**totalResults** | **Integer** | Number of total results in the response. | [optional] + + + diff --git a/docs/Tier.md b/docs/Tier.md index af763a6d..4bc78c6e 100644 --- a/docs/Tier.md +++ b/docs/Tier.md @@ -8,6 +8,7 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **id** | **Integer** | The internal ID of the tier. | **name** | **String** | The name of the tier. | +**startDate** | [**OffsetDateTime**](OffsetDateTime.md) | Date and time when the customer moved to this tier. This value uses the loyalty program's time zone setting. | [optional] **expiryDate** | [**OffsetDateTime**](OffsetDateTime.md) | Date when tier level expires in the RFC3339 format (in the Loyalty Program's timezone). | [optional] **downgradePolicy** | [**DowngradePolicyEnum**](#DowngradePolicyEnum) | Customers's tier downgrade policy. - `one_down`: Once the tier expires and if the user doesn't have enough points to stay in the tier, the user is downgraded one tier down. - `balance_based`: Once the tier expires, the user's tier is evaluated based on the amount of active points the user has at this instant. | [optional] diff --git a/docs/TransferLoyaltyCard.md b/docs/TransferLoyaltyCard.md index 4ddcdde2..284123ce 100644 --- a/docs/TransferLoyaltyCard.md +++ b/docs/TransferLoyaltyCard.md @@ -7,6 +7,7 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **newCardIdentifier** | **String** | The alphanumeric identifier of the loyalty card. | +**blockReason** | **String** | Reason for transferring and blocking the loyalty card. | [optional] diff --git a/docs/UpdateLoyaltyCard.md b/docs/UpdateLoyaltyCard.md index 88f22ea4..f120363c 100644 --- a/docs/UpdateLoyaltyCard.md +++ b/docs/UpdateLoyaltyCard.md @@ -7,6 +7,7 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **status** | **String** | Status of the loyalty card. Can be one of: ['active', 'inactive'] | +**blockReason** | **String** | Reason for transferring and blocking the loyalty card. | [optional] diff --git a/docs/UpdateLoyaltyProgram.md b/docs/UpdateLoyaltyProgram.md index 8f4d62cc..4c02b6ed 100644 --- a/docs/UpdateLoyaltyProgram.md +++ b/docs/UpdateLoyaltyProgram.md @@ -15,39 +15,43 @@ Name | Type | Description | Notes **allowSubledger** | **Boolean** | Indicates if this program supports subledgers inside the program. | [optional] **usersPerCardLimit** | **Integer** | The max amount of user profiles with whom a card can be shared. This can be set to 0 for no limit. This property is only used when `cardBased` is `true`. | [optional] **sandbox** | **Boolean** | Indicates if this program is a live or sandbox program. Programs of a given type can only be connected to Applications of the same type. | [optional] -**tiersExpirationPolicy** | [**TiersExpirationPolicyEnum**](#TiersExpirationPolicyEnum) | The policy that defines which date is used to calculate the expiration date of a customer's current tier. - `tier_start_date`: The tier expiration date is calculated based on when the customer joined the current tier. - `program_join_date`: The tier expiration date is calculated based on when the customer joined the loyalty program. | [optional] +**programJoinPolicy** | [**ProgramJoinPolicyEnum**](#ProgramJoinPolicyEnum) | The policy that defines when the customer joins the loyalty program. - `not_join`: The customer does not join the loyalty program but can still earn and spend loyalty points. **Note**: The customer does not have a program join date. - `points_activated`: The customer joins the loyalty program only when their earned loyalty points become active for the first time. - `points_earned`: The customer joins the loyalty program when they earn loyalty points for the first time. | [optional] +**tiersExpirationPolicy** | [**TiersExpirationPolicyEnum**](#TiersExpirationPolicyEnum) | The policy that defines which date is used to calculate the expiration date of a customer's current tier. - `tier_start_date`: The tier expiration date is calculated based on when the customer joined the current tier. - `program_join_date`: The tier expiration date is calculated based on when the customer joined the loyalty program. - `customer_attribute`: The tier expiration date is calculated based on a custom customer attribute. - `absolute_expiration`: The tier expires on a specified date and time. **Note**: For absolute expiration, it is required to provide a `tiersStartDate.` | [optional] +**tiersStartDate** | [**OffsetDateTime**](OffsetDateTime.md) | Timestamp at which the tier starts for all customers. **Note**: This is only required when the tier expiration policy is set to `absolute_expiration`. | [optional] **tiersExpireIn** | **String** | The amount of time after which the tier expires. 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. | [optional] **tiersDowngradePolicy** | [**TiersDowngradePolicyEnum**](#TiersDowngradePolicyEnum) | Customers's tier downgrade policy. - `one_down`: Once the tier expires and if the user doesn't have enough points to stay in the tier, the user is downgraded one tier down. - `balance_based`: Once the tier expires, the user's tier is evaluated based on the amount of active points the user has at this instant. | [optional] -**programJoinPolicy** | [**ProgramJoinPolicyEnum**](#ProgramJoinPolicyEnum) | The policy that defines when the customer joins the loyalty program. - `not_join`: The customer does not join the loyalty program but can still earn and spend loyalty points. **Note**: The customer does not have a program join date. - `points_activated`: The customer joins the loyalty program only when their earned loyalty points become active for the first time. - `points_earned`: The customer joins the loyalty program when they earn loyalty points for the first time. | [optional] +**cardCodeSettings** | [**CodeGeneratorSettings**](CodeGeneratorSettings.md) | | [optional] **tiers** | [**List<NewLoyaltyTier>**](NewLoyaltyTier.md) | The tiers in this loyalty program. | [optional] -## Enum: TiersExpirationPolicyEnum +## Enum: ProgramJoinPolicyEnum Name | Value ---- | ----- -TIER_START_DATE | "tier_start_date" -PROGRAM_JOIN_DATE | "program_join_date" +NOT_JOIN | "not_join" +POINTS_ACTIVATED | "points_activated" +POINTS_EARNED | "points_earned" -## Enum: TiersDowngradePolicyEnum +## Enum: TiersExpirationPolicyEnum Name | Value ---- | ----- -ONE_DOWN | "one_down" -BALANCE_BASED | "balance_based" +TIER_START_DATE | "tier_start_date" +PROGRAM_JOIN_DATE | "program_join_date" +CUSTOMER_ATTRIBUTE | "customer_attribute" +ABSOLUTE_EXPIRATION | "absolute_expiration" -## Enum: ProgramJoinPolicyEnum +## Enum: TiersDowngradePolicyEnum Name | Value ---- | ----- -NOT_JOIN | "not_join" -POINTS_ACTIVATED | "points_activated" -POINTS_EARNED | "points_earned" +ONE_DOWN | "one_down" +BALANCE_BASED | "balance_based" diff --git a/docs/User.md b/docs/User.md index 0190e234..57e943e2 100644 --- a/docs/User.md +++ b/docs/User.md @@ -23,6 +23,7 @@ Name | Type | Description | Notes **lastSignedIn** | [**OffsetDateTime**](OffsetDateTime.md) | Timestamp when the user last signed in to Talon.One. | [optional] **lastAccessed** | [**OffsetDateTime**](OffsetDateTime.md) | Timestamp of the user's last activity after signing in to Talon.One. | [optional] **latestFeedTimestamp** | [**OffsetDateTime**](OffsetDateTime.md) | Timestamp when the user was notified for feed. | [optional] +**additionalAttributes** | [**Object**](.md) | Additional user attributes, created and used by external identity providers. | [optional] diff --git a/docs/Webhook.md b/docs/Webhook.md index 0a516906..ebce19b2 100644 --- a/docs/Webhook.md +++ b/docs/Webhook.md @@ -12,6 +12,7 @@ Name | Type | Description | Notes **modified** | [**OffsetDateTime**](OffsetDateTime.md) | The time this entity was last modified. | **applicationIds** | **List<Integer>** | The IDs of the Applications that are related to this entity. The IDs of the Applications that are related to this entity. | **title** | **String** | Name or title for this webhook. | +**description** | **String** | A description of the webhook. | [optional] **verb** | [**VerbEnum**](#VerbEnum) | API method for this webhook. | **url** | **String** | API URL (supports templating using parameters) for this webhook. | **headers** | **List<String>** | List of API HTTP headers for this webhook. | diff --git a/docs/WebhookWithOutgoingIntegrationDetails.md b/docs/WebhookWithOutgoingIntegrationDetails.md index a5cb0fe6..cf27133e 100644 --- a/docs/WebhookWithOutgoingIntegrationDetails.md +++ b/docs/WebhookWithOutgoingIntegrationDetails.md @@ -12,6 +12,7 @@ Name | Type | Description | Notes **modified** | [**OffsetDateTime**](OffsetDateTime.md) | The time this entity was last modified. | **applicationIds** | **List<Integer>** | The IDs of the Applications that are related to this entity. The IDs of the Applications that are related to this entity. | **title** | **String** | Name or title for this webhook. | +**description** | **String** | A description of the webhook. | [optional] **verb** | [**VerbEnum**](#VerbEnum) | API method for this webhook. | **url** | **String** | API URL (supports templating using parameters) for this webhook. | **headers** | **List<String>** | List of API HTTP headers for this webhook. | diff --git a/pom.xml b/pom.xml index 4bcca9a8..955d63d5 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ talon-one-client jar talon-one-client - 8.0.0 + 9.0.0 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 9ba9ff03..c83d9729 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/8.0.0/java"); + setUserAgent("OpenAPI-Generator/9.0.0/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 7883457f..bddbf267 100644 --- a/src/main/java/one/talon/api/IntegrationApi.java +++ b/src/main/java/one/talon/api/IntegrationApi.java @@ -48,7 +48,7 @@ import one.talon.model.IntegrationEventV2Request; import one.talon.model.IntegrationRequest; import one.talon.model.IntegrationStateV2; -import one.talon.model.LoyaltyBalances; +import one.talon.model.LoyaltyBalancesWithTiers; import one.talon.model.LoyaltyCard; import one.talon.model.LoyaltyCardBalances; import one.talon.model.LoyaltyCardRegistration; @@ -1360,6 +1360,8 @@ public okhttp3.Call getCustomerSessionAsync(String customerSessionId, final ApiC * @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 by which we filter the data. (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 @@ -1372,7 +1374,7 @@ public okhttp3.Call getCustomerSessionAsync(String customerSessionId, final ApiC 404 Not found - */ - public okhttp3.Call getLoyaltyBalancesCall(Integer loyaltyProgramId, String integrationId, OffsetDateTime endDate, String subledgerId, final ApiCallback _callback) throws ApiException { + public okhttp3.Call getLoyaltyBalancesCall(Integer loyaltyProgramId, String integrationId, OffsetDateTime endDate, String subledgerId, Boolean includeTiers, Boolean includeProjectedTier, final ApiCallback _callback) throws ApiException { Object localVarPostBody = null; // create path and map variables @@ -1390,6 +1392,14 @@ public okhttp3.Call getLoyaltyBalancesCall(Integer loyaltyProgramId, String inte 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(); @@ -1412,7 +1422,7 @@ public okhttp3.Call getLoyaltyBalancesCall(Integer loyaltyProgramId, String inte } @SuppressWarnings("rawtypes") - private okhttp3.Call getLoyaltyBalancesValidateBeforeCall(Integer loyaltyProgramId, String integrationId, OffsetDateTime endDate, String subledgerId, final ApiCallback _callback) throws ApiException { + private okhttp3.Call getLoyaltyBalancesValidateBeforeCall(Integer 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) { @@ -1425,7 +1435,7 @@ private okhttp3.Call getLoyaltyBalancesValidateBeforeCall(Integer loyaltyProgram } - okhttp3.Call localVarCall = getLoyaltyBalancesCall(loyaltyProgramId, integrationId, endDate, subledgerId, _callback); + okhttp3.Call localVarCall = getLoyaltyBalancesCall(loyaltyProgramId, integrationId, endDate, subledgerId, includeTiers, includeProjectedTier, _callback); return localVarCall; } @@ -1437,7 +1447,9 @@ private okhttp3.Call getLoyaltyBalancesValidateBeforeCall(Integer loyaltyProgram * @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 by which we filter the data. (optional) - * @return LoyaltyBalances + * @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 @@ -1448,8 +1460,8 @@ private okhttp3.Call getLoyaltyBalancesValidateBeforeCall(Integer loyaltyProgram
404 Not found -
*/ - public LoyaltyBalances getLoyaltyBalances(Integer loyaltyProgramId, String integrationId, OffsetDateTime endDate, String subledgerId) throws ApiException { - ApiResponse localVarResp = getLoyaltyBalancesWithHttpInfo(loyaltyProgramId, integrationId, endDate, subledgerId); + public LoyaltyBalancesWithTiers getLoyaltyBalances(Integer loyaltyProgramId, String integrationId, OffsetDateTime endDate, String subledgerId, Boolean includeTiers, Boolean includeProjectedTier) throws ApiException { + ApiResponse localVarResp = getLoyaltyBalancesWithHttpInfo(loyaltyProgramId, integrationId, endDate, subledgerId, includeTiers, includeProjectedTier); return localVarResp.getData(); } @@ -1460,7 +1472,9 @@ public LoyaltyBalances getLoyaltyBalances(Integer loyaltyProgramId, String integ * @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 by which we filter the data. (optional) - * @return ApiResponse<LoyaltyBalances> + * @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 @@ -1471,9 +1485,9 @@ public LoyaltyBalances getLoyaltyBalances(Integer loyaltyProgramId, String integ
404 Not found -
*/ - public ApiResponse getLoyaltyBalancesWithHttpInfo(Integer loyaltyProgramId, String integrationId, OffsetDateTime endDate, String subledgerId) throws ApiException { - okhttp3.Call localVarCall = getLoyaltyBalancesValidateBeforeCall(loyaltyProgramId, integrationId, endDate, subledgerId, null); - Type localVarReturnType = new TypeToken(){}.getType(); + public ApiResponse getLoyaltyBalancesWithHttpInfo(Integer loyaltyProgramId, String integrationId, OffsetDateTime endDate, String subledgerId, Boolean includeTiers, Boolean includeProjectedTier) throws ApiException { + okhttp3.Call localVarCall = getLoyaltyBalancesValidateBeforeCall(loyaltyProgramId, integrationId, endDate, subledgerId, includeTiers, includeProjectedTier, null); + Type localVarReturnType = new TypeToken(){}.getType(); return localVarApiClient.execute(localVarCall, localVarReturnType); } @@ -1484,6 +1498,8 @@ public ApiResponse getLoyaltyBalancesWithHttpInfo(Integer loyal * @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 by which we filter the data. (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 @@ -1496,10 +1512,10 @@ public ApiResponse getLoyaltyBalancesWithHttpInfo(Integer loyal 404 Not found - */ - public okhttp3.Call getLoyaltyBalancesAsync(Integer loyaltyProgramId, String integrationId, OffsetDateTime endDate, String subledgerId, final ApiCallback _callback) throws ApiException { + public okhttp3.Call getLoyaltyBalancesAsync(Integer loyaltyProgramId, String integrationId, OffsetDateTime endDate, String subledgerId, Boolean includeTiers, Boolean includeProjectedTier, final ApiCallback _callback) throws ApiException { - okhttp3.Call localVarCall = getLoyaltyBalancesValidateBeforeCall(loyaltyProgramId, integrationId, endDate, subledgerId, _callback); - Type localVarReturnType = new TypeToken(){}.getType(); + okhttp3.Call localVarCall = getLoyaltyBalancesValidateBeforeCall(loyaltyProgramId, integrationId, endDate, subledgerId, includeTiers, includeProjectedTier, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); return localVarCall; } @@ -2931,7 +2947,7 @@ private okhttp3.Call syncCatalogValidateBeforeCall(Integer catalogId, CatalogSyn /** * Sync cart item catalog - * Perform one or more of the following actions for a given cart item catalog: - Adding an item to the catalog. - Adding several items to the catalog. - Editing the attributes of an item in the catalog. - Editing the attributes of several items in the catalog. - Removing an item from the catalog. - Removing several items from the catalog. You can add, update, or delete up to 1000 cart items in a single request. Each item synced to a catalog must have a unique `SKU`. **Important**: Syncing items with duplicate `SKU` values in a single request returns an error message with a `400` status code. For more information, read [managing cart item catalogs](https://docs.talon.one/docs/product/account/dev-tools/managing-cart-item-catalogs). ### Filtering cart items Use [cart item attributes](https://docs.talon.one/docs/product/account/dev-tools/managing-attributes) to filter items and select the ones you want to edit or delete when editing or deleting more than one item at a time. The `filters` array contains an object with the following properties: - `attr`: A [cart item attribute](https://docs.talon.one/docs/product/account/dev-tools/managing-attributes) connected to the catalog. It is applied to all items in the catalog. - `op`: The filtering operator indicating the relationship between the value of each cart item in the catalog and the value of the `value` property for the attribute selected in `attr`. The value of `op` can be one of the following: - `EQ`: Equal to `value` - `LT`: Less than `value` - `LE`: Less than or equal to `value` - `GT`: Greater than `value` - `GE`: Greater than or equal to `value` - `IN`: One of the comma-separated values that `value` is set to. **Note:** `GE`, `LE`, `GT`, `LT` are for numeric values only. - `value`: The value of the attribute selected in `attr`. ### Payload examples Synchronization actions are sent as `PUT` requests. See the structure for each action: <details> <summary><strong>Adding an item to the catalog</strong></summary> <div> ```json { \"actions\": [ { \"payload\": { \"attributes\": { \"color\": \"Navy blue\", \"type\": \"shoes\" }, \"replaceIfExists\": true, \"sku\": \"SKU1241028\", \"price\": 100, \"product\": { \"name\": \"sneakers\" } }, \"type\": \"ADD\" } ] } ``` </div> </details> <details> <summary><strong>Adding several items to the catalog</strong></summary> <div> ```json { \"actions\": [ { \"payload\": { \"attributes\": { \"color\": \"Navy blue\", \"type\": \"shoes\" }, \"replaceIfExists\": true, \"sku\": \"SKU1241027\", \"price\": 100, \"product\": { \"name\": \"sneakers\" } }, \"type\": \"ADD\" }, { \"payload\": { \"attributes\": { \"color\": \"Navy blue\", \"type\": \"shoes\" }, \"replaceIfExists\": true, \"sku\": \"SKU1241028\", \"price\": 100, \"product\": { \"name\": \"sneakers\" } }, \"type\": \"ADD\" } ] } ``` </div> </details> <details> <summary><strong>Editing the attributes of an item in the catalog</strong></summary> <div> ```json { \"actions\": [ { \"payload\": { \"attributes\": { \"age\": 11, \"origin\": \"germany\" }, \"createIfNotExists\": false, \"sku\": \"SKU1241028\", \"product\": { \"name\": \"sneakers\" } }, \"type\": \"PATCH\" } ] } ``` </div> </details> <details> <summary><strong>Editing the attributes of several items in the catalog</strong></summary> <div> ```json { \"actions\": [ { \"payload\": { \"attributes\": { \"color\": \"red\" }, \"filters\": [ { \"attr\": \"color\", \"op\": \"EQ\", \"value\": \"blue\" } ] }, \"type\": \"PATCH_MANY\" } ] } ``` </div> </details> <details> <summary><strong>Removing an item from the catalog</strong></summary> <div> ```json { \"actions\": [ { \"payload\": { \"sku\": \"SKU1241028\" }, \"type\": \"REMOVE\" } ] } ``` </div> </details> <details> <summary><strong>Removing several items from the catalog</strong></summary> <div> ```json { \"actions\": [ { \"payload\": { \"filters\": [ { \"attr\": \"color\", \"op\": \"EQ\", \"value\": \"blue\" } ] }, \"type\": \"REMOVE_MANY\" } ] } ``` </div> </details> <details> <summary><strong>Removing shoes of sizes above 45 from the catalog</strong></summary> <div> <p> Let's imagine that we have a shoe store and we have decided to stop selling shoes larger than size 45. We can remove from the catalog all the shoes of sizes above 45 with a single action:</p> ```json { \"actions\": [ { \"payload\": { \"filters\": [ { \"attr\": \"size\", \"op\": \"GT\", \"value\": \"45\" } ] }, \"type\": \"REMOVE_MANY\" } ] } ``` </div> </details> + * Perform the following actions for a given cart item catalog: - Add an item to the catalog. - Add multiple items to the catalog. - Update the attributes of an item in the catalog. - Update the attributes of multiple items in the catalog. - Remove an item from the catalog. - Remove multiple items from the catalog. You can either add, update, or delete up to 1000 cart items in a single request. Each item synced to a catalog must have a unique `SKU`. **Important**: You can perform only one type of action in a single sync request. Syncing items with duplicate `SKU` values in a single request returns an error message with a `400` status code. For more information, read [managing cart item catalogs](https://docs.talon.one/docs/product/account/dev-tools/managing-cart-item-catalogs). ### Filtering cart items Use [cart item attributes](https://docs.talon.one/docs/product/account/dev-tools/managing-attributes) to filter items and select the ones you want to edit or delete when editing or deleting more than one item at a time. The `filters` array contains an object with the following properties: - `attr`: A [cart item attribute](https://docs.talon.one/docs/product/account/dev-tools/managing-attributes) connected to the catalog. It is applied to all items in the catalog. - `op`: The filtering operator indicating the relationship between the value of each cart item in the catalog and the value of the `value` property for the attribute selected in `attr`. The value of `op` can be one of the following: - `EQ`: Equal to `value` - `LT`: Less than `value` - `LE`: Less than or equal to `value` - `GT`: Greater than `value` - `GE`: Greater than or equal to `value` - `IN`: One of the comma-separated values that `value` is set to. **Note:** `GE`, `LE`, `GT`, `LT` are for numeric values only. - `value`: The value of the attribute selected in `attr`. ### Payload examples Synchronization actions are sent as `PUT` requests. See the structure for each action: <details> <summary><strong>Adding an item to the catalog</strong></summary> <div> ```json { \"actions\": [ { \"payload\": { \"attributes\": { \"color\": \"Navy blue\", \"type\": \"shoes\" }, \"replaceIfExists\": true, \"sku\": \"SKU1241028\", \"price\": 100, \"product\": { \"name\": \"sneakers\" } }, \"type\": \"ADD\" } ] } ``` </div> </details> <details> <summary><strong>Adding multiple items to the catalog</strong></summary> <div> ```json { \"actions\": [ { \"payload\": { \"attributes\": { \"color\": \"Navy blue\", \"type\": \"shoes\" }, \"replaceIfExists\": true, \"sku\": \"SKU1241027\", \"price\": 100, \"product\": { \"name\": \"sneakers\" } }, \"type\": \"ADD\" }, { \"payload\": { \"attributes\": { \"color\": \"Navy blue\", \"type\": \"shoes\" }, \"replaceIfExists\": true, \"sku\": \"SKU1241028\", \"price\": 100, \"product\": { \"name\": \"sneakers\" } }, \"type\": \"ADD\" } ] } ``` </div> </details> <details> <summary><strong>Updating the attributes of an item in the catalog</strong></summary> <div> ```json { \"actions\": [ { \"payload\": { \"attributes\": { \"age\": 11, \"origin\": \"germany\" }, \"createIfNotExists\": false, \"sku\": \"SKU1241028\", \"product\": { \"name\": \"sneakers\" } }, \"type\": \"PATCH\" } ] } ``` </div> </details> <details> <summary><strong>Updating the attributes of multiple items in the catalog</strong></summary> <div> ```json { \"actions\": [ { \"payload\": { \"attributes\": { \"color\": \"red\" }, \"filters\": [ { \"attr\": \"color\", \"op\": \"EQ\", \"value\": \"blue\" } ] }, \"type\": \"PATCH_MANY\" } ] } ``` </div> </details> <details> <summary><strong>Removing an item from the catalog</strong></summary> <div> ```json { \"actions\": [ { \"payload\": { \"sku\": \"SKU1241028\" }, \"type\": \"REMOVE\" } ] } ``` </div> </details> <details> <summary><strong>Removing multiple items from the catalog</strong></summary> <div> ```json { \"actions\": [ { \"payload\": { \"filters\": [ { \"attr\": \"color\", \"op\": \"EQ\", \"value\": \"blue\" } ] }, \"type\": \"REMOVE_MANY\" } ] } ``` </div> </details> <details> <summary><strong>Removing shoes of sizes above 45 from the catalog</strong></summary> <div> <p> Let's imagine that we have a shoe store and we have decided to stop selling shoes larger than size 45. We can remove from the catalog all the shoes of sizes above 45 with a single action:</p> ```json { \"actions\": [ { \"payload\": { \"filters\": [ { \"attr\": \"size\", \"op\": \"GT\", \"value\": \"45\" } ] }, \"type\": \"REMOVE_MANY\" } ] } ``` </div> </details> * @param catalogId The ID of the catalog. You can find the ID in the Campaign Manager in **Account** > **Tools** > **Cart item catalogs**. (required) * @param body body (required) * @return Catalog @@ -2952,7 +2968,7 @@ public Catalog syncCatalog(Integer catalogId, CatalogSyncRequest body) throws Ap /** * Sync cart item catalog - * Perform one or more of the following actions for a given cart item catalog: - Adding an item to the catalog. - Adding several items to the catalog. - Editing the attributes of an item in the catalog. - Editing the attributes of several items in the catalog. - Removing an item from the catalog. - Removing several items from the catalog. You can add, update, or delete up to 1000 cart items in a single request. Each item synced to a catalog must have a unique `SKU`. **Important**: Syncing items with duplicate `SKU` values in a single request returns an error message with a `400` status code. For more information, read [managing cart item catalogs](https://docs.talon.one/docs/product/account/dev-tools/managing-cart-item-catalogs). ### Filtering cart items Use [cart item attributes](https://docs.talon.one/docs/product/account/dev-tools/managing-attributes) to filter items and select the ones you want to edit or delete when editing or deleting more than one item at a time. The `filters` array contains an object with the following properties: - `attr`: A [cart item attribute](https://docs.talon.one/docs/product/account/dev-tools/managing-attributes) connected to the catalog. It is applied to all items in the catalog. - `op`: The filtering operator indicating the relationship between the value of each cart item in the catalog and the value of the `value` property for the attribute selected in `attr`. The value of `op` can be one of the following: - `EQ`: Equal to `value` - `LT`: Less than `value` - `LE`: Less than or equal to `value` - `GT`: Greater than `value` - `GE`: Greater than or equal to `value` - `IN`: One of the comma-separated values that `value` is set to. **Note:** `GE`, `LE`, `GT`, `LT` are for numeric values only. - `value`: The value of the attribute selected in `attr`. ### Payload examples Synchronization actions are sent as `PUT` requests. See the structure for each action: <details> <summary><strong>Adding an item to the catalog</strong></summary> <div> ```json { \"actions\": [ { \"payload\": { \"attributes\": { \"color\": \"Navy blue\", \"type\": \"shoes\" }, \"replaceIfExists\": true, \"sku\": \"SKU1241028\", \"price\": 100, \"product\": { \"name\": \"sneakers\" } }, \"type\": \"ADD\" } ] } ``` </div> </details> <details> <summary><strong>Adding several items to the catalog</strong></summary> <div> ```json { \"actions\": [ { \"payload\": { \"attributes\": { \"color\": \"Navy blue\", \"type\": \"shoes\" }, \"replaceIfExists\": true, \"sku\": \"SKU1241027\", \"price\": 100, \"product\": { \"name\": \"sneakers\" } }, \"type\": \"ADD\" }, { \"payload\": { \"attributes\": { \"color\": \"Navy blue\", \"type\": \"shoes\" }, \"replaceIfExists\": true, \"sku\": \"SKU1241028\", \"price\": 100, \"product\": { \"name\": \"sneakers\" } }, \"type\": \"ADD\" } ] } ``` </div> </details> <details> <summary><strong>Editing the attributes of an item in the catalog</strong></summary> <div> ```json { \"actions\": [ { \"payload\": { \"attributes\": { \"age\": 11, \"origin\": \"germany\" }, \"createIfNotExists\": false, \"sku\": \"SKU1241028\", \"product\": { \"name\": \"sneakers\" } }, \"type\": \"PATCH\" } ] } ``` </div> </details> <details> <summary><strong>Editing the attributes of several items in the catalog</strong></summary> <div> ```json { \"actions\": [ { \"payload\": { \"attributes\": { \"color\": \"red\" }, \"filters\": [ { \"attr\": \"color\", \"op\": \"EQ\", \"value\": \"blue\" } ] }, \"type\": \"PATCH_MANY\" } ] } ``` </div> </details> <details> <summary><strong>Removing an item from the catalog</strong></summary> <div> ```json { \"actions\": [ { \"payload\": { \"sku\": \"SKU1241028\" }, \"type\": \"REMOVE\" } ] } ``` </div> </details> <details> <summary><strong>Removing several items from the catalog</strong></summary> <div> ```json { \"actions\": [ { \"payload\": { \"filters\": [ { \"attr\": \"color\", \"op\": \"EQ\", \"value\": \"blue\" } ] }, \"type\": \"REMOVE_MANY\" } ] } ``` </div> </details> <details> <summary><strong>Removing shoes of sizes above 45 from the catalog</strong></summary> <div> <p> Let's imagine that we have a shoe store and we have decided to stop selling shoes larger than size 45. We can remove from the catalog all the shoes of sizes above 45 with a single action:</p> ```json { \"actions\": [ { \"payload\": { \"filters\": [ { \"attr\": \"size\", \"op\": \"GT\", \"value\": \"45\" } ] }, \"type\": \"REMOVE_MANY\" } ] } ``` </div> </details> + * Perform the following actions for a given cart item catalog: - Add an item to the catalog. - Add multiple items to the catalog. - Update the attributes of an item in the catalog. - Update the attributes of multiple items in the catalog. - Remove an item from the catalog. - Remove multiple items from the catalog. You can either add, update, or delete up to 1000 cart items in a single request. Each item synced to a catalog must have a unique `SKU`. **Important**: You can perform only one type of action in a single sync request. Syncing items with duplicate `SKU` values in a single request returns an error message with a `400` status code. For more information, read [managing cart item catalogs](https://docs.talon.one/docs/product/account/dev-tools/managing-cart-item-catalogs). ### Filtering cart items Use [cart item attributes](https://docs.talon.one/docs/product/account/dev-tools/managing-attributes) to filter items and select the ones you want to edit or delete when editing or deleting more than one item at a time. The `filters` array contains an object with the following properties: - `attr`: A [cart item attribute](https://docs.talon.one/docs/product/account/dev-tools/managing-attributes) connected to the catalog. It is applied to all items in the catalog. - `op`: The filtering operator indicating the relationship between the value of each cart item in the catalog and the value of the `value` property for the attribute selected in `attr`. The value of `op` can be one of the following: - `EQ`: Equal to `value` - `LT`: Less than `value` - `LE`: Less than or equal to `value` - `GT`: Greater than `value` - `GE`: Greater than or equal to `value` - `IN`: One of the comma-separated values that `value` is set to. **Note:** `GE`, `LE`, `GT`, `LT` are for numeric values only. - `value`: The value of the attribute selected in `attr`. ### Payload examples Synchronization actions are sent as `PUT` requests. See the structure for each action: <details> <summary><strong>Adding an item to the catalog</strong></summary> <div> ```json { \"actions\": [ { \"payload\": { \"attributes\": { \"color\": \"Navy blue\", \"type\": \"shoes\" }, \"replaceIfExists\": true, \"sku\": \"SKU1241028\", \"price\": 100, \"product\": { \"name\": \"sneakers\" } }, \"type\": \"ADD\" } ] } ``` </div> </details> <details> <summary><strong>Adding multiple items to the catalog</strong></summary> <div> ```json { \"actions\": [ { \"payload\": { \"attributes\": { \"color\": \"Navy blue\", \"type\": \"shoes\" }, \"replaceIfExists\": true, \"sku\": \"SKU1241027\", \"price\": 100, \"product\": { \"name\": \"sneakers\" } }, \"type\": \"ADD\" }, { \"payload\": { \"attributes\": { \"color\": \"Navy blue\", \"type\": \"shoes\" }, \"replaceIfExists\": true, \"sku\": \"SKU1241028\", \"price\": 100, \"product\": { \"name\": \"sneakers\" } }, \"type\": \"ADD\" } ] } ``` </div> </details> <details> <summary><strong>Updating the attributes of an item in the catalog</strong></summary> <div> ```json { \"actions\": [ { \"payload\": { \"attributes\": { \"age\": 11, \"origin\": \"germany\" }, \"createIfNotExists\": false, \"sku\": \"SKU1241028\", \"product\": { \"name\": \"sneakers\" } }, \"type\": \"PATCH\" } ] } ``` </div> </details> <details> <summary><strong>Updating the attributes of multiple items in the catalog</strong></summary> <div> ```json { \"actions\": [ { \"payload\": { \"attributes\": { \"color\": \"red\" }, \"filters\": [ { \"attr\": \"color\", \"op\": \"EQ\", \"value\": \"blue\" } ] }, \"type\": \"PATCH_MANY\" } ] } ``` </div> </details> <details> <summary><strong>Removing an item from the catalog</strong></summary> <div> ```json { \"actions\": [ { \"payload\": { \"sku\": \"SKU1241028\" }, \"type\": \"REMOVE\" } ] } ``` </div> </details> <details> <summary><strong>Removing multiple items from the catalog</strong></summary> <div> ```json { \"actions\": [ { \"payload\": { \"filters\": [ { \"attr\": \"color\", \"op\": \"EQ\", \"value\": \"blue\" } ] }, \"type\": \"REMOVE_MANY\" } ] } ``` </div> </details> <details> <summary><strong>Removing shoes of sizes above 45 from the catalog</strong></summary> <div> <p> Let's imagine that we have a shoe store and we have decided to stop selling shoes larger than size 45. We can remove from the catalog all the shoes of sizes above 45 with a single action:</p> ```json { \"actions\": [ { \"payload\": { \"filters\": [ { \"attr\": \"size\", \"op\": \"GT\", \"value\": \"45\" } ] }, \"type\": \"REMOVE_MANY\" } ] } ``` </div> </details> * @param catalogId The ID of the catalog. You can find the ID in the Campaign Manager in **Account** > **Tools** > **Cart item catalogs**. (required) * @param body body (required) * @return ApiResponse<Catalog> @@ -2974,7 +2990,7 @@ public ApiResponse syncCatalogWithHttpInfo(Integer catalogId, CatalogSy /** * Sync cart item catalog (asynchronously) - * Perform one or more of the following actions for a given cart item catalog: - Adding an item to the catalog. - Adding several items to the catalog. - Editing the attributes of an item in the catalog. - Editing the attributes of several items in the catalog. - Removing an item from the catalog. - Removing several items from the catalog. You can add, update, or delete up to 1000 cart items in a single request. Each item synced to a catalog must have a unique `SKU`. **Important**: Syncing items with duplicate `SKU` values in a single request returns an error message with a `400` status code. For more information, read [managing cart item catalogs](https://docs.talon.one/docs/product/account/dev-tools/managing-cart-item-catalogs). ### Filtering cart items Use [cart item attributes](https://docs.talon.one/docs/product/account/dev-tools/managing-attributes) to filter items and select the ones you want to edit or delete when editing or deleting more than one item at a time. The `filters` array contains an object with the following properties: - `attr`: A [cart item attribute](https://docs.talon.one/docs/product/account/dev-tools/managing-attributes) connected to the catalog. It is applied to all items in the catalog. - `op`: The filtering operator indicating the relationship between the value of each cart item in the catalog and the value of the `value` property for the attribute selected in `attr`. The value of `op` can be one of the following: - `EQ`: Equal to `value` - `LT`: Less than `value` - `LE`: Less than or equal to `value` - `GT`: Greater than `value` - `GE`: Greater than or equal to `value` - `IN`: One of the comma-separated values that `value` is set to. **Note:** `GE`, `LE`, `GT`, `LT` are for numeric values only. - `value`: The value of the attribute selected in `attr`. ### Payload examples Synchronization actions are sent as `PUT` requests. See the structure for each action: <details> <summary><strong>Adding an item to the catalog</strong></summary> <div> ```json { \"actions\": [ { \"payload\": { \"attributes\": { \"color\": \"Navy blue\", \"type\": \"shoes\" }, \"replaceIfExists\": true, \"sku\": \"SKU1241028\", \"price\": 100, \"product\": { \"name\": \"sneakers\" } }, \"type\": \"ADD\" } ] } ``` </div> </details> <details> <summary><strong>Adding several items to the catalog</strong></summary> <div> ```json { \"actions\": [ { \"payload\": { \"attributes\": { \"color\": \"Navy blue\", \"type\": \"shoes\" }, \"replaceIfExists\": true, \"sku\": \"SKU1241027\", \"price\": 100, \"product\": { \"name\": \"sneakers\" } }, \"type\": \"ADD\" }, { \"payload\": { \"attributes\": { \"color\": \"Navy blue\", \"type\": \"shoes\" }, \"replaceIfExists\": true, \"sku\": \"SKU1241028\", \"price\": 100, \"product\": { \"name\": \"sneakers\" } }, \"type\": \"ADD\" } ] } ``` </div> </details> <details> <summary><strong>Editing the attributes of an item in the catalog</strong></summary> <div> ```json { \"actions\": [ { \"payload\": { \"attributes\": { \"age\": 11, \"origin\": \"germany\" }, \"createIfNotExists\": false, \"sku\": \"SKU1241028\", \"product\": { \"name\": \"sneakers\" } }, \"type\": \"PATCH\" } ] } ``` </div> </details> <details> <summary><strong>Editing the attributes of several items in the catalog</strong></summary> <div> ```json { \"actions\": [ { \"payload\": { \"attributes\": { \"color\": \"red\" }, \"filters\": [ { \"attr\": \"color\", \"op\": \"EQ\", \"value\": \"blue\" } ] }, \"type\": \"PATCH_MANY\" } ] } ``` </div> </details> <details> <summary><strong>Removing an item from the catalog</strong></summary> <div> ```json { \"actions\": [ { \"payload\": { \"sku\": \"SKU1241028\" }, \"type\": \"REMOVE\" } ] } ``` </div> </details> <details> <summary><strong>Removing several items from the catalog</strong></summary> <div> ```json { \"actions\": [ { \"payload\": { \"filters\": [ { \"attr\": \"color\", \"op\": \"EQ\", \"value\": \"blue\" } ] }, \"type\": \"REMOVE_MANY\" } ] } ``` </div> </details> <details> <summary><strong>Removing shoes of sizes above 45 from the catalog</strong></summary> <div> <p> Let's imagine that we have a shoe store and we have decided to stop selling shoes larger than size 45. We can remove from the catalog all the shoes of sizes above 45 with a single action:</p> ```json { \"actions\": [ { \"payload\": { \"filters\": [ { \"attr\": \"size\", \"op\": \"GT\", \"value\": \"45\" } ] }, \"type\": \"REMOVE_MANY\" } ] } ``` </div> </details> + * Perform the following actions for a given cart item catalog: - Add an item to the catalog. - Add multiple items to the catalog. - Update the attributes of an item in the catalog. - Update the attributes of multiple items in the catalog. - Remove an item from the catalog. - Remove multiple items from the catalog. You can either add, update, or delete up to 1000 cart items in a single request. Each item synced to a catalog must have a unique `SKU`. **Important**: You can perform only one type of action in a single sync request. Syncing items with duplicate `SKU` values in a single request returns an error message with a `400` status code. For more information, read [managing cart item catalogs](https://docs.talon.one/docs/product/account/dev-tools/managing-cart-item-catalogs). ### Filtering cart items Use [cart item attributes](https://docs.talon.one/docs/product/account/dev-tools/managing-attributes) to filter items and select the ones you want to edit or delete when editing or deleting more than one item at a time. The `filters` array contains an object with the following properties: - `attr`: A [cart item attribute](https://docs.talon.one/docs/product/account/dev-tools/managing-attributes) connected to the catalog. It is applied to all items in the catalog. - `op`: The filtering operator indicating the relationship between the value of each cart item in the catalog and the value of the `value` property for the attribute selected in `attr`. The value of `op` can be one of the following: - `EQ`: Equal to `value` - `LT`: Less than `value` - `LE`: Less than or equal to `value` - `GT`: Greater than `value` - `GE`: Greater than or equal to `value` - `IN`: One of the comma-separated values that `value` is set to. **Note:** `GE`, `LE`, `GT`, `LT` are for numeric values only. - `value`: The value of the attribute selected in `attr`. ### Payload examples Synchronization actions are sent as `PUT` requests. See the structure for each action: <details> <summary><strong>Adding an item to the catalog</strong></summary> <div> ```json { \"actions\": [ { \"payload\": { \"attributes\": { \"color\": \"Navy blue\", \"type\": \"shoes\" }, \"replaceIfExists\": true, \"sku\": \"SKU1241028\", \"price\": 100, \"product\": { \"name\": \"sneakers\" } }, \"type\": \"ADD\" } ] } ``` </div> </details> <details> <summary><strong>Adding multiple items to the catalog</strong></summary> <div> ```json { \"actions\": [ { \"payload\": { \"attributes\": { \"color\": \"Navy blue\", \"type\": \"shoes\" }, \"replaceIfExists\": true, \"sku\": \"SKU1241027\", \"price\": 100, \"product\": { \"name\": \"sneakers\" } }, \"type\": \"ADD\" }, { \"payload\": { \"attributes\": { \"color\": \"Navy blue\", \"type\": \"shoes\" }, \"replaceIfExists\": true, \"sku\": \"SKU1241028\", \"price\": 100, \"product\": { \"name\": \"sneakers\" } }, \"type\": \"ADD\" } ] } ``` </div> </details> <details> <summary><strong>Updating the attributes of an item in the catalog</strong></summary> <div> ```json { \"actions\": [ { \"payload\": { \"attributes\": { \"age\": 11, \"origin\": \"germany\" }, \"createIfNotExists\": false, \"sku\": \"SKU1241028\", \"product\": { \"name\": \"sneakers\" } }, \"type\": \"PATCH\" } ] } ``` </div> </details> <details> <summary><strong>Updating the attributes of multiple items in the catalog</strong></summary> <div> ```json { \"actions\": [ { \"payload\": { \"attributes\": { \"color\": \"red\" }, \"filters\": [ { \"attr\": \"color\", \"op\": \"EQ\", \"value\": \"blue\" } ] }, \"type\": \"PATCH_MANY\" } ] } ``` </div> </details> <details> <summary><strong>Removing an item from the catalog</strong></summary> <div> ```json { \"actions\": [ { \"payload\": { \"sku\": \"SKU1241028\" }, \"type\": \"REMOVE\" } ] } ``` </div> </details> <details> <summary><strong>Removing multiple items from the catalog</strong></summary> <div> ```json { \"actions\": [ { \"payload\": { \"filters\": [ { \"attr\": \"color\", \"op\": \"EQ\", \"value\": \"blue\" } ] }, \"type\": \"REMOVE_MANY\" } ] } ``` </div> </details> <details> <summary><strong>Removing shoes of sizes above 45 from the catalog</strong></summary> <div> <p> Let's imagine that we have a shoe store and we have decided to stop selling shoes larger than size 45. We can remove from the catalog all the shoes of sizes above 45 with a single action:</p> ```json { \"actions\": [ { \"payload\": { \"filters\": [ { \"attr\": \"size\", \"op\": \"GT\", \"value\": \"45\" } ] }, \"type\": \"REMOVE_MANY\" } ] } ``` </div> </details> * @param catalogId The ID of the catalog. You can find the ID in the Campaign Manager in **Account** > **Tools** > **Cart item catalogs**. (required) * @param body body (required) * @param _callback The callback to be executed when the API call finishes diff --git a/src/main/java/one/talon/api/ManagementApi.java b/src/main/java/one/talon/api/ManagementApi.java index efa02eb3..82e75c29 100644 --- a/src/main/java/one/talon/api/ManagementApi.java +++ b/src/main/java/one/talon/api/ManagementApi.java @@ -128,6 +128,9 @@ import one.talon.model.RoleV2; import one.talon.model.RoleV2Base; import one.talon.model.Ruleset; +import one.talon.model.ScimResourceTypesListResponse; +import one.talon.model.ScimUser; +import one.talon.model.ScimUsersListResponse; import one.talon.model.Session; import one.talon.model.Store; import one.talon.model.TransferLoyaltyCard; @@ -224,8 +227,8 @@ private okhttp3.Call activateUserByEmailValidateBeforeCall(ActivateUserRequest b } /** - * Activate user by email address - * Activate a deactivated user by their email address. + * Enable user by email address + * Enable a [disabled user](https://docs.talon.one/docs/product/account/account-settings/managing-users#disabling-a-user) by their email address. * @param body body (required) * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body * @http.response.details @@ -239,8 +242,8 @@ public void activateUserByEmail(ActivateUserRequest body) throws ApiException { } /** - * Activate user by email address - * Activate a deactivated user by their email address. + * Enable user by email address + * Enable a [disabled user](https://docs.talon.one/docs/product/account/account-settings/managing-users#disabling-a-user) by their email address. * @param body body (required) * @return ApiResponse<Void> * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body @@ -256,8 +259,8 @@ public ApiResponse activateUserByEmailWithHttpInfo(ActivateUserRequest bod } /** - * Activate user by email address (asynchronously) - * Activate a deactivated user by their email address. + * Enable user by email address (asynchronously) + * Enable a [disabled user](https://docs.talon.one/docs/product/account/account-settings/managing-users#disabling-a-user) by their email address. * @param body body (required) * @param _callback The callback to be executed when the API call finishes * @return The request call @@ -2452,8 +2455,8 @@ private okhttp3.Call deactivateUserByEmailValidateBeforeCall(DeactivateUserReque } /** - * Deactivate user by email address - * Deactivate a specific user by their email address. + * Disable user by email address + * [Disable a specific user](https://docs.talon.one/docs/product/account/account-settings/managing-users#disabling-a-user) by their email address. * @param body body (required) * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body * @http.response.details @@ -2467,8 +2470,8 @@ public void deactivateUserByEmail(DeactivateUserRequest body) throws ApiExceptio } /** - * Deactivate user by email address - * Deactivate a specific user by their email address. + * Disable user by email address + * [Disable a specific user](https://docs.talon.one/docs/product/account/account-settings/managing-users#disabling-a-user) by their email address. * @param body body (required) * @return ApiResponse<Void> * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body @@ -2484,8 +2487,8 @@ public ApiResponse deactivateUserByEmailWithHttpInfo(DeactivateUserRequest } /** - * Deactivate user by email address (asynchronously) - * Deactivate a specific user by their email address. + * Disable user by email address (asynchronously) + * [Disable a specific user](https://docs.talon.one/docs/product/account/account-settings/managing-users#disabling-a-user) by their email address. * @param body body (required) * @param _callback The callback to be executed when the API call finishes * @return The request call @@ -3268,10 +3271,10 @@ public okhttp3.Call deleteCouponAsync(Integer applicationId, Integer campaignId, * @param value Filter results performing case-insensitive matching against the coupon code. Both the code and the query are folded to remove all non-alpha-numeric characters. (optional) * @param createdBefore Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon 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 coupon creation timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. (optional) - * @param startsAfter Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon creation timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. (optional) - * @param startsBefore Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon creation timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. (optional) - * @param expiresAfter Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon creation timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. (optional) - * @param expiresBefore Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon creation timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. (optional) + * @param startsAfter Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon start date timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. (optional) + * @param startsBefore Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon start date timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. (optional) + * @param expiresAfter Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon expiration date timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. (optional) + * @param expiresBefore Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon expiration date timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. (optional) * @param valid - `expired`: Matches coupons in which the expiration date is set and in the past. - `validNow`: Matches coupons in which start date is null or in the past and expiration date is null or in the future. - `validFuture`: Matches coupons in which start date is set and in the future. (optional) * @param batchId Filter results by batches of coupons (optional) * @param usable - `true`: only coupons where `usageCounter < usageLimit` will be returned. - `false`: only coupons where `usageCounter >= usageLimit` will be returned. (optional) @@ -3397,10 +3400,10 @@ private okhttp3.Call deleteCouponsValidateBeforeCall(Integer applicationId, Inte * @param value Filter results performing case-insensitive matching against the coupon code. Both the code and the query are folded to remove all non-alpha-numeric characters. (optional) * @param createdBefore Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon 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 coupon creation timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. (optional) - * @param startsAfter Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon creation timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. (optional) - * @param startsBefore Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon creation timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. (optional) - * @param expiresAfter Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon creation timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. (optional) - * @param expiresBefore Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon creation timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. (optional) + * @param startsAfter Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon start date timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. (optional) + * @param startsBefore Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon start date timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. (optional) + * @param expiresAfter Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon expiration date timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. (optional) + * @param expiresBefore Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon expiration date timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. (optional) * @param valid - `expired`: Matches coupons in which the expiration date is set and in the past. - `validNow`: Matches coupons in which start date is null or in the past and expiration date is null or in the future. - `validFuture`: Matches coupons in which start date is set and in the future. (optional) * @param batchId Filter results by batches of coupons (optional) * @param usable - `true`: only coupons where `usageCounter < usageLimit` will be returned. - `false`: only coupons where `usageCounter >= usageLimit` will be returned. (optional) @@ -3426,10 +3429,10 @@ public void deleteCoupons(Integer applicationId, Integer campaignId, String valu * @param value Filter results performing case-insensitive matching against the coupon code. Both the code and the query are folded to remove all non-alpha-numeric characters. (optional) * @param createdBefore Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon 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 coupon creation timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. (optional) - * @param startsAfter Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon creation timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. (optional) - * @param startsBefore Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon creation timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. (optional) - * @param expiresAfter Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon creation timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. (optional) - * @param expiresBefore Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon creation timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. (optional) + * @param startsAfter Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon start date timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. (optional) + * @param startsBefore Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon start date timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. (optional) + * @param expiresAfter Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon expiration date timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. (optional) + * @param expiresBefore Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon expiration date timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. (optional) * @param valid - `expired`: Matches coupons in which the expiration date is set and in the past. - `validNow`: Matches coupons in which start date is null or in the past and expiration date is null or in the future. - `validFuture`: Matches coupons in which start date is set and in the future. (optional) * @param batchId Filter results by batches of coupons (optional) * @param usable - `true`: only coupons where `usageCounter < usageLimit` will be returned. - `false`: only coupons where `usageCounter >= usageLimit` will be returned. (optional) @@ -3457,10 +3460,10 @@ public ApiResponse deleteCouponsWithHttpInfo(Integer applicationId, Intege * @param value Filter results performing case-insensitive matching against the coupon code. Both the code and the query are folded to remove all non-alpha-numeric characters. (optional) * @param createdBefore Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon 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 coupon creation timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. (optional) - * @param startsAfter Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon creation timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. (optional) - * @param startsBefore Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon creation timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. (optional) - * @param expiresAfter Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon creation timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. (optional) - * @param expiresBefore Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon creation timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. (optional) + * @param startsAfter Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon start date timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. (optional) + * @param startsBefore Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon start date timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. (optional) + * @param expiresAfter Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon expiration date timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. (optional) + * @param expiresBefore Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon expiration date timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. (optional) * @param valid - `expired`: Matches coupons in which the expiration date is set and in the past. - `validNow`: Matches coupons in which start date is null or in the past and expiration date is null or in the future. - `validFuture`: Matches coupons in which start date is set and in the future. (optional) * @param batchId Filter results by batches of coupons (optional) * @param usable - `true`: only coupons where `usageCounter < usageLimit` will be returned. - `false`: only coupons where `usageCounter >= usageLimit` will be returned. (optional) @@ -4019,7 +4022,7 @@ private okhttp3.Call deleteUserByEmailValidateBeforeCall(DeleteUserRequest body, /** * Delete user by email address - * Delete a specific user by their email address. + * [Delete a specific user](https://docs.talon.one/docs/product/account/account-settings/managing-users#deleting-a-user) by their email address. * @param body body (required) * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body * @http.response.details @@ -4034,7 +4037,7 @@ public void deleteUserByEmail(DeleteUserRequest body) throws ApiException { /** * Delete user by email address - * Delete a specific user by their email address. + * [Delete a specific user](https://docs.talon.one/docs/product/account/account-settings/managing-users#deleting-a-user) by their email address. * @param body body (required) * @return ApiResponse<Void> * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body @@ -4051,7 +4054,7 @@ public ApiResponse deleteUserByEmailWithHttpInfo(DeleteUserRequest body) t /** * Delete user by email address (asynchronously) - * Delete a specific user by their email address. + * [Delete a specific user](https://docs.talon.one/docs/product/account/account-settings/managing-users#deleting-a-user) by their email address. * @param body body (required) * @param _callback The callback to be executed when the API call finishes * @return The request call @@ -4165,6 +4168,135 @@ public okhttp3.Call destroySessionAsync(final ApiCallback _callback) throw localVarApiClient.executeAsync(localVarCall, _callback); return localVarCall; } + /** + * Build call for disconnectCampaignStores + * @param applicationId The ID of the Application. It is displayed in your Talon.One deployment URL. (required) + * @param campaignId The ID of the campaign. It is displayed in your Talon.One deployment URL. (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
204 No Content -
400 Bad request -
401 Unauthorized - Invalid API key -
404 Not found -
+ */ + public okhttp3.Call disconnectCampaignStoresCall(Integer applicationId, Integer campaignId, final ApiCallback _callback) throws ApiException { + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/v1/applications/{applicationId}/campaigns/{campaignId}/stores" + .replaceAll("\\{" + "applicationId" + "\\}", localVarApiClient.escapeString(applicationId.toString())) + .replaceAll("\\{" + "campaignId" + "\\}", localVarApiClient.escapeString(campaignId.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 = { + + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + localVarHeaderParams.put("Content-Type", localVarContentType); + + String[] localVarAuthNames = new String[] { "management_key", "manager_auth" }; + return localVarApiClient.buildCall(localVarPath, "DELETE", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call disconnectCampaignStoresValidateBeforeCall(Integer applicationId, Integer campaignId, final ApiCallback _callback) throws ApiException { + + // verify the required parameter 'applicationId' is set + if (applicationId == null) { + throw new ApiException("Missing the required parameter 'applicationId' when calling disconnectCampaignStores(Async)"); + } + + // verify the required parameter 'campaignId' is set + if (campaignId == null) { + throw new ApiException("Missing the required parameter 'campaignId' when calling disconnectCampaignStores(Async)"); + } + + + okhttp3.Call localVarCall = disconnectCampaignStoresCall(applicationId, campaignId, _callback); + return localVarCall; + + } + + /** + * Disconnect stores + * Disconnect the stores linked to a specific campaign. + * @param applicationId The ID of the Application. It is displayed in your Talon.One deployment URL. (required) + * @param campaignId The ID of the campaign. It is displayed in your Talon.One deployment URL. (required) + * @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
204 No Content -
400 Bad request -
401 Unauthorized - Invalid API key -
404 Not found -
+ */ + public void disconnectCampaignStores(Integer applicationId, Integer campaignId) throws ApiException { + disconnectCampaignStoresWithHttpInfo(applicationId, campaignId); + } + + /** + * Disconnect stores + * Disconnect the stores linked to a specific campaign. + * @param applicationId The ID of the Application. It is displayed in your Talon.One deployment URL. (required) + * @param campaignId The ID of the campaign. It is displayed in your Talon.One deployment URL. (required) + * @return ApiResponse<Void> + * @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
204 No Content -
400 Bad request -
401 Unauthorized - Invalid API key -
404 Not found -
+ */ + public ApiResponse disconnectCampaignStoresWithHttpInfo(Integer applicationId, Integer campaignId) throws ApiException { + okhttp3.Call localVarCall = disconnectCampaignStoresValidateBeforeCall(applicationId, campaignId, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Disconnect stores (asynchronously) + * Disconnect the stores linked to a specific campaign. + * @param applicationId The ID of the Application. It is displayed in your Talon.One deployment URL. (required) + * @param campaignId The ID of the campaign. It is displayed in your Talon.One deployment URL. (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
204 No Content -
400 Bad request -
401 Unauthorized - Invalid API key -
404 Not found -
+ */ + public okhttp3.Call disconnectCampaignStoresAsync(Integer applicationId, Integer campaignId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = disconnectCampaignStoresValidateBeforeCall(applicationId, campaignId, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } /** * Build call for exportAccountCollectionItems * @param collectionId The ID of the collection. You can get it with the [List collections in account](#operation/listAccountCollections) endpoint. (required) @@ -4550,6 +4682,139 @@ public okhttp3.Call exportAudiencesMembershipsAsync(Integer audienceId, final Ap localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); return localVarCall; } + /** + * Build call for exportCampaignStores + * @param applicationId The ID of the Application. It is displayed in your Talon.One deployment URL. (required) + * @param campaignId The ID of the campaign. It is displayed in your Talon.One deployment URL. (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 - Invalid API key -
404 Not found -
+ */ + public okhttp3.Call exportCampaignStoresCall(Integer applicationId, Integer campaignId, final ApiCallback _callback) throws ApiException { + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/v1/applications/{applicationId}/campaigns/{campaignId}/stores/export" + .replaceAll("\\{" + "applicationId" + "\\}", localVarApiClient.escapeString(applicationId.toString())) + .replaceAll("\\{" + "campaignId" + "\\}", localVarApiClient.escapeString(campaignId.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/csv" + }; + 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[] { "management_key", "manager_auth" }; + return localVarApiClient.buildCall(localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call exportCampaignStoresValidateBeforeCall(Integer applicationId, Integer campaignId, final ApiCallback _callback) throws ApiException { + + // verify the required parameter 'applicationId' is set + if (applicationId == null) { + throw new ApiException("Missing the required parameter 'applicationId' when calling exportCampaignStores(Async)"); + } + + // verify the required parameter 'campaignId' is set + if (campaignId == null) { + throw new ApiException("Missing the required parameter 'campaignId' when calling exportCampaignStores(Async)"); + } + + + okhttp3.Call localVarCall = exportCampaignStoresCall(applicationId, campaignId, _callback); + return localVarCall; + + } + + /** + * Export stores + * Download a CSV file containing the stores linked to a specific campaign. **Tip:** If the exported CSV file is too large to view, you can [split it into multiple files](https://www.makeuseof.com/tag/how-to-split-a-huge-csv-excel-workbook-into-seperate-files/). The CSV file contains the following column: - `store_integration_id`: The identifier of the store. + * @param applicationId The ID of the Application. It is displayed in your Talon.One deployment URL. (required) + * @param campaignId The ID of the campaign. It is displayed in your Talon.One deployment URL. (required) + * @return String + * @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 - Invalid API key -
404 Not found -
+ */ + public String exportCampaignStores(Integer applicationId, Integer campaignId) throws ApiException { + ApiResponse localVarResp = exportCampaignStoresWithHttpInfo(applicationId, campaignId); + return localVarResp.getData(); + } + + /** + * Export stores + * Download a CSV file containing the stores linked to a specific campaign. **Tip:** If the exported CSV file is too large to view, you can [split it into multiple files](https://www.makeuseof.com/tag/how-to-split-a-huge-csv-excel-workbook-into-seperate-files/). The CSV file contains the following column: - `store_integration_id`: The identifier of the store. + * @param applicationId The ID of the Application. It is displayed in your Talon.One deployment URL. (required) + * @param campaignId The ID of the campaign. It is displayed in your Talon.One deployment URL. (required) + * @return ApiResponse<String> + * @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 - Invalid API key -
404 Not found -
+ */ + public ApiResponse exportCampaignStoresWithHttpInfo(Integer applicationId, Integer campaignId) throws ApiException { + okhttp3.Call localVarCall = exportCampaignStoresValidateBeforeCall(applicationId, campaignId, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Export stores (asynchronously) + * Download a CSV file containing the stores linked to a specific campaign. **Tip:** If the exported CSV file is too large to view, you can [split it into multiple files](https://www.makeuseof.com/tag/how-to-split-a-huge-csv-excel-workbook-into-seperate-files/). The CSV file contains the following column: - `store_integration_id`: The identifier of the store. + * @param applicationId The ID of the Application. It is displayed in your Talon.One deployment URL. (required) + * @param campaignId The ID of the campaign. It is displayed in your Talon.One deployment URL. (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 - Invalid API key -
404 Not found -
+ */ + public okhttp3.Call exportCampaignStoresAsync(Integer applicationId, Integer campaignId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = exportCampaignStoresValidateBeforeCall(applicationId, campaignId, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } /** * Build call for exportCollectionItems * @param applicationId The ID of the Application. It is displayed in your Talon.One deployment URL. (required) @@ -5131,7 +5396,7 @@ private okhttp3.Call exportCustomersTiersValidateBeforeCall(String loyaltyProgra /** * Export customers' tier data - * Download a CSV file containing the tier information for customers of the specified loyalty program. The generated file contains the following columns: - `programid`: The identifier of the loyalty program. It is displayed in your Talon.One deployment URL. - `subledgerid`: The ID of the subledger associated with the loyalty program. This column is empty if the loyalty program has no subledger. In this case, refer to the export file name to get the ID of the loyalty program. - `customerprofileid`: The ID used to integrate customer profiles with the loyalty program. - `tiername`: The name of the tier. - `startdate`: The tier start date in RFC3339. - `expirydate`: The tier expiry date in RFC3339. You can filter the results by providing the following optional input parameters: - `subledgerId` (optional): Filter results by subledger ID. If no value is provided, all subledger data for the specified loyalty program will be exported. - `tierName` (optional): Filter results by tier name. If no value is provided, all tier data for the specified loyalty program will be exported. + * Download a CSV file containing the tier information for customers of the specified loyalty program. The generated file contains the following columns: - `programid`: The identifier of the loyalty program. It is displayed in your Talon.One deployment URL. - `subledgerid`: The ID of the subledger associated with the loyalty program. This column is empty if the loyalty program has no subledger. In this case, refer to the export file name to get the ID of the loyalty program. - `customerprofileid`: The ID used to integrate customer profiles with the loyalty program. - `tiername`: The name of the tier. - `startdate`: The tier start date in RFC3339. - `expirydate`: The tier expiry date in RFC3339. You can filter the results by providing the following optional input parameters: - `subledgerIds` (optional): Filter results by an array of subledger IDs. If no value is provided, all subledger data for the specified loyalty program will be exported. - `tierNames` (optional): Filter results by an array of tier names. If no value is provided, all tier data for the specified loyalty program will be exported. * @param loyaltyProgramId The identifier for the loyalty program. (required) * @param subledgerIds An array of subledgers IDs to filter the export by. (optional) * @param tierNames An array of tier names to filter the export by. (optional) @@ -5150,7 +5415,7 @@ public String exportCustomersTiers(String loyaltyProgramId, List subledg /** * Export customers' tier data - * Download a CSV file containing the tier information for customers of the specified loyalty program. The generated file contains the following columns: - `programid`: The identifier of the loyalty program. It is displayed in your Talon.One deployment URL. - `subledgerid`: The ID of the subledger associated with the loyalty program. This column is empty if the loyalty program has no subledger. In this case, refer to the export file name to get the ID of the loyalty program. - `customerprofileid`: The ID used to integrate customer profiles with the loyalty program. - `tiername`: The name of the tier. - `startdate`: The tier start date in RFC3339. - `expirydate`: The tier expiry date in RFC3339. You can filter the results by providing the following optional input parameters: - `subledgerId` (optional): Filter results by subledger ID. If no value is provided, all subledger data for the specified loyalty program will be exported. - `tierName` (optional): Filter results by tier name. If no value is provided, all tier data for the specified loyalty program will be exported. + * Download a CSV file containing the tier information for customers of the specified loyalty program. The generated file contains the following columns: - `programid`: The identifier of the loyalty program. It is displayed in your Talon.One deployment URL. - `subledgerid`: The ID of the subledger associated with the loyalty program. This column is empty if the loyalty program has no subledger. In this case, refer to the export file name to get the ID of the loyalty program. - `customerprofileid`: The ID used to integrate customer profiles with the loyalty program. - `tiername`: The name of the tier. - `startdate`: The tier start date in RFC3339. - `expirydate`: The tier expiry date in RFC3339. You can filter the results by providing the following optional input parameters: - `subledgerIds` (optional): Filter results by an array of subledger IDs. If no value is provided, all subledger data for the specified loyalty program will be exported. - `tierNames` (optional): Filter results by an array of tier names. If no value is provided, all tier data for the specified loyalty program will be exported. * @param loyaltyProgramId The identifier for the loyalty program. (required) * @param subledgerIds An array of subledgers IDs to filter the export by. (optional) * @param tierNames An array of tier names to filter the export by. (optional) @@ -5170,7 +5435,7 @@ public ApiResponse exportCustomersTiersWithHttpInfo(String loyaltyProgra /** * Export customers' tier data (asynchronously) - * Download a CSV file containing the tier information for customers of the specified loyalty program. The generated file contains the following columns: - `programid`: The identifier of the loyalty program. It is displayed in your Talon.One deployment URL. - `subledgerid`: The ID of the subledger associated with the loyalty program. This column is empty if the loyalty program has no subledger. In this case, refer to the export file name to get the ID of the loyalty program. - `customerprofileid`: The ID used to integrate customer profiles with the loyalty program. - `tiername`: The name of the tier. - `startdate`: The tier start date in RFC3339. - `expirydate`: The tier expiry date in RFC3339. You can filter the results by providing the following optional input parameters: - `subledgerId` (optional): Filter results by subledger ID. If no value is provided, all subledger data for the specified loyalty program will be exported. - `tierName` (optional): Filter results by tier name. If no value is provided, all tier data for the specified loyalty program will be exported. + * Download a CSV file containing the tier information for customers of the specified loyalty program. The generated file contains the following columns: - `programid`: The identifier of the loyalty program. It is displayed in your Talon.One deployment URL. - `subledgerid`: The ID of the subledger associated with the loyalty program. This column is empty if the loyalty program has no subledger. In this case, refer to the export file name to get the ID of the loyalty program. - `customerprofileid`: The ID used to integrate customer profiles with the loyalty program. - `tiername`: The name of the tier. - `startdate`: The tier start date in RFC3339. - `expirydate`: The tier expiry date in RFC3339. You can filter the results by providing the following optional input parameters: - `subledgerIds` (optional): Filter results by an array of subledger IDs. If no value is provided, all subledger data for the specified loyalty program will be exported. - `tierNames` (optional): Filter results by an array of tier names. If no value is provided, all tier data for the specified loyalty program will be exported. * @param loyaltyProgramId The identifier for the loyalty program. (required) * @param subledgerIds An array of subledgers IDs to filter the export by. (optional) * @param tierNames An array of tier names to filter the export by. (optional) @@ -11128,6 +11393,11 @@ public okhttp3.Call getCollectionItemsAsync(Integer collectionId, Integer pageSi * @param recipientIntegrationId Filter results by match with a profile id specified in the coupon's RecipientIntegrationId field (optional) * @param batchId Filter results by batches of coupons (optional) * @param exactMatch Filter results to an exact case-insensitive matching against the coupon code (optional, default to false) + * @param expiresBefore Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon expiration date timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. (optional) + * @param expiresAfter Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon expiration date timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. (optional) + * @param startsBefore Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon start date timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. (optional) + * @param startsAfter Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon start date timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. (optional) + * @param valuesOnly Filter results to only return the coupon codes (`value` column) without the associated coupon data. (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 @@ -11137,7 +11407,7 @@ public okhttp3.Call getCollectionItemsAsync(Integer collectionId, Integer pageSi 200 OK - */ - public okhttp3.Call getCouponsWithoutTotalCountCall(Integer applicationId, Integer campaignId, Integer pageSize, Integer skip, String sort, String value, OffsetDateTime createdBefore, OffsetDateTime createdAfter, String valid, String usable, Integer referralId, String recipientIntegrationId, String batchId, Boolean exactMatch, final ApiCallback _callback) throws ApiException { + public okhttp3.Call getCouponsWithoutTotalCountCall(Integer applicationId, Integer campaignId, Integer pageSize, Integer skip, String sort, String value, OffsetDateTime createdBefore, OffsetDateTime createdAfter, String valid, String usable, Integer referralId, String recipientIntegrationId, String batchId, Boolean exactMatch, OffsetDateTime expiresBefore, OffsetDateTime expiresAfter, OffsetDateTime startsBefore, OffsetDateTime startsAfter, Boolean valuesOnly, final ApiCallback _callback) throws ApiException { Object localVarPostBody = null; // create path and map variables @@ -11195,6 +11465,26 @@ public okhttp3.Call getCouponsWithoutTotalCountCall(Integer applicationId, Integ localVarQueryParams.addAll(localVarApiClient.parameterToPair("exactMatch", exactMatch)); } + if (expiresBefore != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("expiresBefore", expiresBefore)); + } + + if (expiresAfter != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("expiresAfter", expiresAfter)); + } + + if (startsBefore != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("startsBefore", startsBefore)); + } + + if (startsAfter != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("startsAfter", startsAfter)); + } + + if (valuesOnly != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("valuesOnly", valuesOnly)); + } + Map localVarHeaderParams = new HashMap(); Map localVarCookieParams = new HashMap(); Map localVarFormParams = new HashMap(); @@ -11217,7 +11507,7 @@ public okhttp3.Call getCouponsWithoutTotalCountCall(Integer applicationId, Integ } @SuppressWarnings("rawtypes") - private okhttp3.Call getCouponsWithoutTotalCountValidateBeforeCall(Integer applicationId, Integer campaignId, Integer pageSize, Integer skip, String sort, String value, OffsetDateTime createdBefore, OffsetDateTime createdAfter, String valid, String usable, Integer referralId, String recipientIntegrationId, String batchId, Boolean exactMatch, final ApiCallback _callback) throws ApiException { + private okhttp3.Call getCouponsWithoutTotalCountValidateBeforeCall(Integer applicationId, Integer campaignId, Integer pageSize, Integer skip, String sort, String value, OffsetDateTime createdBefore, OffsetDateTime createdAfter, String valid, String usable, Integer referralId, String recipientIntegrationId, String batchId, Boolean exactMatch, OffsetDateTime expiresBefore, OffsetDateTime expiresAfter, OffsetDateTime startsBefore, OffsetDateTime startsAfter, Boolean valuesOnly, final ApiCallback _callback) throws ApiException { // verify the required parameter 'applicationId' is set if (applicationId == null) { @@ -11230,7 +11520,7 @@ private okhttp3.Call getCouponsWithoutTotalCountValidateBeforeCall(Integer appli } - okhttp3.Call localVarCall = getCouponsWithoutTotalCountCall(applicationId, campaignId, pageSize, skip, sort, value, createdBefore, createdAfter, valid, usable, referralId, recipientIntegrationId, batchId, exactMatch, _callback); + okhttp3.Call localVarCall = getCouponsWithoutTotalCountCall(applicationId, campaignId, pageSize, skip, sort, value, createdBefore, createdAfter, valid, usable, referralId, recipientIntegrationId, batchId, exactMatch, expiresBefore, expiresAfter, startsBefore, startsAfter, valuesOnly, _callback); return localVarCall; } @@ -11252,6 +11542,11 @@ private okhttp3.Call getCouponsWithoutTotalCountValidateBeforeCall(Integer appli * @param recipientIntegrationId Filter results by match with a profile id specified in the coupon's RecipientIntegrationId field (optional) * @param batchId Filter results by batches of coupons (optional) * @param exactMatch Filter results to an exact case-insensitive matching against the coupon code (optional, default to false) + * @param expiresBefore Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon expiration date timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. (optional) + * @param expiresAfter Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon expiration date timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. (optional) + * @param startsBefore Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon start date timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. (optional) + * @param startsAfter Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon start date timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. (optional) + * @param valuesOnly Filter results to only return the coupon codes (`value` column) without the associated coupon data. (optional, default to false) * @return InlineResponse2009 * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body * @http.response.details @@ -11260,8 +11555,8 @@ private okhttp3.Call getCouponsWithoutTotalCountValidateBeforeCall(Integer appli 200 OK - */ - public InlineResponse2009 getCouponsWithoutTotalCount(Integer applicationId, Integer campaignId, Integer pageSize, Integer skip, String sort, String value, OffsetDateTime createdBefore, OffsetDateTime createdAfter, String valid, String usable, Integer referralId, String recipientIntegrationId, String batchId, Boolean exactMatch) throws ApiException { - ApiResponse localVarResp = getCouponsWithoutTotalCountWithHttpInfo(applicationId, campaignId, pageSize, skip, sort, value, createdBefore, createdAfter, valid, usable, referralId, recipientIntegrationId, batchId, exactMatch); + public InlineResponse2009 getCouponsWithoutTotalCount(Integer applicationId, Integer campaignId, Integer pageSize, Integer skip, String sort, String value, OffsetDateTime createdBefore, OffsetDateTime createdAfter, String valid, String usable, Integer referralId, String recipientIntegrationId, String batchId, Boolean exactMatch, OffsetDateTime expiresBefore, OffsetDateTime expiresAfter, OffsetDateTime startsBefore, OffsetDateTime startsAfter, Boolean valuesOnly) throws ApiException { + ApiResponse localVarResp = getCouponsWithoutTotalCountWithHttpInfo(applicationId, campaignId, pageSize, skip, sort, value, createdBefore, createdAfter, valid, usable, referralId, recipientIntegrationId, batchId, exactMatch, expiresBefore, expiresAfter, startsBefore, startsAfter, valuesOnly); return localVarResp.getData(); } @@ -11282,6 +11577,11 @@ public InlineResponse2009 getCouponsWithoutTotalCount(Integer applicationId, Int * @param recipientIntegrationId Filter results by match with a profile id specified in the coupon's RecipientIntegrationId field (optional) * @param batchId Filter results by batches of coupons (optional) * @param exactMatch Filter results to an exact case-insensitive matching against the coupon code (optional, default to false) + * @param expiresBefore Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon expiration date timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. (optional) + * @param expiresAfter Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon expiration date timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. (optional) + * @param startsBefore Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon start date timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. (optional) + * @param startsAfter Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon start date timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. (optional) + * @param valuesOnly Filter results to only return the coupon codes (`value` column) without the associated coupon data. (optional, default to false) * @return ApiResponse<InlineResponse2009> * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body * @http.response.details @@ -11290,8 +11590,8 @@ public InlineResponse2009 getCouponsWithoutTotalCount(Integer applicationId, Int 200 OK - */ - public ApiResponse getCouponsWithoutTotalCountWithHttpInfo(Integer applicationId, Integer campaignId, Integer pageSize, Integer skip, String sort, String value, OffsetDateTime createdBefore, OffsetDateTime createdAfter, String valid, String usable, Integer referralId, String recipientIntegrationId, String batchId, Boolean exactMatch) throws ApiException { - okhttp3.Call localVarCall = getCouponsWithoutTotalCountValidateBeforeCall(applicationId, campaignId, pageSize, skip, sort, value, createdBefore, createdAfter, valid, usable, referralId, recipientIntegrationId, batchId, exactMatch, null); + public ApiResponse getCouponsWithoutTotalCountWithHttpInfo(Integer applicationId, Integer campaignId, Integer pageSize, Integer skip, String sort, String value, OffsetDateTime createdBefore, OffsetDateTime createdAfter, String valid, String usable, Integer referralId, String recipientIntegrationId, String batchId, Boolean exactMatch, OffsetDateTime expiresBefore, OffsetDateTime expiresAfter, OffsetDateTime startsBefore, OffsetDateTime startsAfter, Boolean valuesOnly) throws ApiException { + okhttp3.Call localVarCall = getCouponsWithoutTotalCountValidateBeforeCall(applicationId, campaignId, pageSize, skip, sort, value, createdBefore, createdAfter, valid, usable, referralId, recipientIntegrationId, batchId, exactMatch, expiresBefore, expiresAfter, startsBefore, startsAfter, valuesOnly, null); Type localVarReturnType = new TypeToken(){}.getType(); return localVarApiClient.execute(localVarCall, localVarReturnType); } @@ -11313,6 +11613,11 @@ public ApiResponse getCouponsWithoutTotalCountWithHttpInfo(I * @param recipientIntegrationId Filter results by match with a profile id specified in the coupon's RecipientIntegrationId field (optional) * @param batchId Filter results by batches of coupons (optional) * @param exactMatch Filter results to an exact case-insensitive matching against the coupon code (optional, default to false) + * @param expiresBefore Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon expiration date timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. (optional) + * @param expiresAfter Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon expiration date timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. (optional) + * @param startsBefore Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon start date timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. (optional) + * @param startsAfter Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon start date timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. (optional) + * @param valuesOnly Filter results to only return the coupon codes (`value` column) without the associated coupon data. (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 @@ -11322,9 +11627,9 @@ public ApiResponse getCouponsWithoutTotalCountWithHttpInfo(I 200 OK - */ - public okhttp3.Call getCouponsWithoutTotalCountAsync(Integer applicationId, Integer campaignId, Integer pageSize, Integer skip, String sort, String value, OffsetDateTime createdBefore, OffsetDateTime createdAfter, String valid, String usable, Integer referralId, String recipientIntegrationId, String batchId, Boolean exactMatch, final ApiCallback _callback) throws ApiException { + public okhttp3.Call getCouponsWithoutTotalCountAsync(Integer applicationId, Integer campaignId, Integer pageSize, Integer skip, String sort, String value, OffsetDateTime createdBefore, OffsetDateTime createdAfter, String valid, String usable, Integer referralId, String recipientIntegrationId, String batchId, Boolean exactMatch, OffsetDateTime expiresBefore, OffsetDateTime expiresAfter, OffsetDateTime startsBefore, OffsetDateTime startsAfter, Boolean valuesOnly, final ApiCallback _callback) throws ApiException { - okhttp3.Call localVarCall = getCouponsWithoutTotalCountValidateBeforeCall(applicationId, campaignId, pageSize, skip, sort, value, createdBefore, createdAfter, valid, usable, referralId, recipientIntegrationId, batchId, exactMatch, _callback); + okhttp3.Call localVarCall = getCouponsWithoutTotalCountValidateBeforeCall(applicationId, campaignId, pageSize, skip, sort, value, createdBefore, createdAfter, valid, usable, referralId, recipientIntegrationId, batchId, exactMatch, expiresBefore, expiresAfter, startsBefore, startsAfter, valuesOnly, _callback); Type localVarReturnType = new TypeToken(){}.getType(); localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); return localVarCall; @@ -15127,7 +15432,7 @@ public okhttp3.Call getWebhookLogsAsync(Integer pageSize, Integer skip, String s } /** * Build call for getWebhooks - * @param applicationIds Filter by one or more Application IDs, separated by a comma. (optional) + * @param applicationIds Checks if the given catalog or its attributes are referenced in the specified Application ID. **Note**: If no Application ID is provided, we check for all connected Applications. (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:** This parameter works only with numeric fields. (optional) * @param pageSize The number of items in the response. (optional, default to 1000) * @param skip The number of items to skip when paging through large result sets. (optional) @@ -15217,7 +15522,7 @@ private okhttp3.Call getWebhooksValidateBeforeCall(String applicationIds, String /** * List webhooks * List all webhooks. - * @param applicationIds Filter by one or more Application IDs, separated by a comma. (optional) + * @param applicationIds Checks if the given catalog or its attributes are referenced in the specified Application ID. **Note**: If no Application ID is provided, we check for all connected Applications. (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:** This parameter works only with numeric fields. (optional) * @param pageSize The number of items in the response. (optional, default to 1000) * @param skip The number of items to skip when paging through large result sets. (optional) @@ -15241,7 +15546,7 @@ public InlineResponse20037 getWebhooks(String applicationIds, String sort, Integ /** * List webhooks * List all webhooks. - * @param applicationIds Filter by one or more Application IDs, separated by a comma. (optional) + * @param applicationIds Checks if the given catalog or its attributes are referenced in the specified Application ID. **Note**: If no Application ID is provided, we check for all connected Applications. (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:** This parameter works only with numeric fields. (optional) * @param pageSize The number of items in the response. (optional, default to 1000) * @param skip The number of items to skip when paging through large result sets. (optional) @@ -15266,7 +15571,7 @@ public ApiResponse getWebhooksWithHttpInfo(String applicati /** * List webhooks (asynchronously) * List all webhooks. - * @param applicationIds Filter by one or more Application IDs, separated by a comma. (optional) + * @param applicationIds Checks if the given catalog or its attributes are referenced in the specified Application ID. **Note**: If no Application ID is provided, we check for all connected Applications. (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:** This parameter works only with numeric fields. (optional) * @param pageSize The number of items in the response. (optional, default to 1000) * @param skip The number of items to skip when paging through large result sets. (optional) @@ -15680,10 +15985,9 @@ public okhttp3.Call importAudiencesMembershipsAsync(Integer audienceId, String u return localVarCall; } /** - * Build call for importCollection + * Build call for importCampaignStores * @param applicationId The ID of the Application. It is displayed in your Talon.One deployment URL. (required) * @param campaignId The ID of the campaign. It is displayed in your Talon.One deployment URL. (required) - * @param collectionId The ID of the collection. You can get it with the [List collections in Application](#operation/listCollectionsInApplication) endpoint. (required) * @param upFile The file containing the data that is being imported. (optional) * @param _callback Callback for upload/download progress * @return Call to execute @@ -15692,14 +15996,156 @@ public okhttp3.Call importAudiencesMembershipsAsync(Integer audienceId, String u - + + +
Status Code Description Response Headers
200 OK -
401 Unauthorized -
400 Bad request -
401 Unauthorized - Invalid API key -
404 Not found -
*/ - public okhttp3.Call importCollectionCall(Integer applicationId, Integer campaignId, Integer collectionId, String upFile, final ApiCallback _callback) throws ApiException { + public okhttp3.Call importCampaignStoresCall(Integer applicationId, Integer campaignId, String upFile, final ApiCallback _callback) throws ApiException { Object localVarPostBody = null; // create path and map variables - String localVarPath = "/v1/applications/{applicationId}/campaigns/{campaignId}/collections/{collectionId}/import" + String localVarPath = "/v1/applications/{applicationId}/campaigns/{campaignId}/stores/import" + .replaceAll("\\{" + "applicationId" + "\\}", localVarApiClient.escapeString(applicationId.toString())) + .replaceAll("\\{" + "campaignId" + "\\}", localVarApiClient.escapeString(campaignId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + if (upFile != null) { + localVarFormParams.put("upFile", upFile); + } + + final String[] localVarAccepts = { + "application/json" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "multipart/form-data" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + localVarHeaderParams.put("Content-Type", localVarContentType); + + String[] localVarAuthNames = new String[] { "management_key", "manager_auth" }; + return localVarApiClient.buildCall(localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call importCampaignStoresValidateBeforeCall(Integer applicationId, Integer campaignId, String upFile, final ApiCallback _callback) throws ApiException { + + // verify the required parameter 'applicationId' is set + if (applicationId == null) { + throw new ApiException("Missing the required parameter 'applicationId' when calling importCampaignStores(Async)"); + } + + // verify the required parameter 'campaignId' is set + if (campaignId == null) { + throw new ApiException("Missing the required parameter 'campaignId' when calling importCampaignStores(Async)"); + } + + + okhttp3.Call localVarCall = importCampaignStoresCall(applicationId, campaignId, upFile, _callback); + return localVarCall; + + } + + /** + * Import stores + * Upload a CSV file containing the stores you want to link to a specific campaign. Send the file as multipart data. The CSV file **must** only contain the following column: - `store_integration_id`: The identifier of the store. The import **replaces** the previous list of stores linked to the campaign. + * @param applicationId The ID of the Application. It is displayed in your Talon.One deployment URL. (required) + * @param campaignId The ID of the campaign. It is displayed in your Talon.One deployment URL. (required) + * @param upFile The file containing the data that is being imported. (optional) + * @return ModelImport + * @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 - Invalid API key -
404 Not found -
+ */ + public ModelImport importCampaignStores(Integer applicationId, Integer campaignId, String upFile) throws ApiException { + ApiResponse localVarResp = importCampaignStoresWithHttpInfo(applicationId, campaignId, upFile); + return localVarResp.getData(); + } + + /** + * Import stores + * Upload a CSV file containing the stores you want to link to a specific campaign. Send the file as multipart data. The CSV file **must** only contain the following column: - `store_integration_id`: The identifier of the store. The import **replaces** the previous list of stores linked to the campaign. + * @param applicationId The ID of the Application. It is displayed in your Talon.One deployment URL. (required) + * @param campaignId The ID of the campaign. It is displayed in your Talon.One deployment URL. (required) + * @param upFile The file containing the data that is being imported. (optional) + * @return ApiResponse<ModelImport> + * @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 - Invalid API key -
404 Not found -
+ */ + public ApiResponse importCampaignStoresWithHttpInfo(Integer applicationId, Integer campaignId, String upFile) throws ApiException { + okhttp3.Call localVarCall = importCampaignStoresValidateBeforeCall(applicationId, campaignId, upFile, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Import stores (asynchronously) + * Upload a CSV file containing the stores you want to link to a specific campaign. Send the file as multipart data. The CSV file **must** only contain the following column: - `store_integration_id`: The identifier of the store. The import **replaces** the previous list of stores linked to the campaign. + * @param applicationId The ID of the Application. It is displayed in your Talon.One deployment URL. (required) + * @param campaignId The ID of the campaign. It is displayed in your Talon.One deployment URL. (required) + * @param upFile The file containing the data that is being imported. (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 - Invalid API key -
404 Not found -
+ */ + public okhttp3.Call importCampaignStoresAsync(Integer applicationId, Integer campaignId, String upFile, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = importCampaignStoresValidateBeforeCall(applicationId, campaignId, upFile, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for importCollection + * @param applicationId The ID of the Application. It is displayed in your Talon.One deployment URL. (required) + * @param campaignId The ID of the campaign. It is displayed in your Talon.One deployment URL. (required) + * @param collectionId The ID of the collection. You can get it with the [List collections in Application](#operation/listCollectionsInApplication) endpoint. (required) + * @param upFile The file containing the data that is being imported. (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 -
401 Unauthorized -
+ */ + public okhttp3.Call importCollectionCall(Integer applicationId, Integer campaignId, Integer collectionId, String upFile, final ApiCallback _callback) throws ApiException { + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/v1/applications/{applicationId}/campaigns/{campaignId}/collections/{collectionId}/import" .replaceAll("\\{" + "applicationId" + "\\}", localVarApiClient.escapeString(applicationId.toString())) .replaceAll("\\{" + "campaignId" + "\\}", localVarApiClient.escapeString(campaignId.toString())) .replaceAll("\\{" + "collectionId" + "\\}", localVarApiClient.escapeString(collectionId.toString())); @@ -16641,7 +17087,7 @@ private okhttp3.Call inviteUserExternalValidateBeforeCall(NewExternalInvitation /** * Invite user from identity provider - * Invite a user from an external identity provider to Talon.One by sending an invitation to their email address. + * [Invite a user](https://docs.talon.one/docs/product/account/account-settings/managing-users#inviting-a-user) from an external identity provider to Talon.One by sending an invitation to their email address. * @param body body (required) * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body * @http.response.details @@ -16656,7 +17102,7 @@ public void inviteUserExternal(NewExternalInvitation body) throws ApiException { /** * Invite user from identity provider - * Invite a user from an external identity provider to Talon.One by sending an invitation to their email address. + * [Invite a user](https://docs.talon.one/docs/product/account/account-settings/managing-users#inviting-a-user) from an external identity provider to Talon.One by sending an invitation to their email address. * @param body body (required) * @return ApiResponse<Void> * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body @@ -16673,7 +17119,7 @@ public ApiResponse inviteUserExternalWithHttpInfo(NewExternalInvitation bo /** * Invite user from identity provider (asynchronously) - * Invite a user from an external identity provider to Talon.One by sending an invitation to their email address. + * [Invite a user](https://docs.talon.one/docs/product/account/account-settings/managing-users#inviting-a-user) from an external identity provider to Talon.One by sending an invitation to their email address. * @param body body (required) * @param _callback The callback to be executed when the API call finishes * @return The request call @@ -17851,6 +18297,103 @@ public okhttp3.Call notificationActivationAsync(Integer notificationId, Notifica localVarApiClient.executeAsync(localVarCall, _callback); return localVarCall; } + /** + * Build call for oktaEventHandlerChallenge + * @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 -
+ */ + public okhttp3.Call oktaEventHandlerChallengeCall(final ApiCallback _callback) throws ApiException { + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/v1/provisioning/okta"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + final String[] localVarAccepts = { + + }; + 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[] { "management_key", "manager_auth" }; + return localVarApiClient.buildCall(localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call oktaEventHandlerChallengeValidateBeforeCall(final ApiCallback _callback) throws ApiException { + + + okhttp3.Call localVarCall = oktaEventHandlerChallengeCall(_callback); + return localVarCall; + + } + + /** + * Validate Okta API ownership + * Validate the ownership of the API through a challenge-response mechanism. This challenger endpoint is used by Okta to confirm that communication between Talon.One and Okta is correctly configured and accessible for provisioning and deprovisioning of Talon.One users, and that only Talon.One can receive and respond to events from Okta. + * @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 -
+ */ + public void oktaEventHandlerChallenge() throws ApiException { + oktaEventHandlerChallengeWithHttpInfo(); + } + + /** + * Validate Okta API ownership + * Validate the ownership of the API through a challenge-response mechanism. This challenger endpoint is used by Okta to confirm that communication between Talon.One and Okta is correctly configured and accessible for provisioning and deprovisioning of Talon.One users, and that only Talon.One can receive and respond to events from Okta. + * @return ApiResponse<Void> + * @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 -
+ */ + public ApiResponse oktaEventHandlerChallengeWithHttpInfo() throws ApiException { + okhttp3.Call localVarCall = oktaEventHandlerChallengeValidateBeforeCall(null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Validate Okta API ownership (asynchronously) + * Validate the ownership of the API through a challenge-response mechanism. This challenger endpoint is used by Okta to confirm that communication between Talon.One and Okta is correctly configured and accessible for provisioning and deprovisioning of Talon.One users, and that only Talon.One can receive and respond to events from Okta. + * @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 -
+ */ + public okhttp3.Call oktaEventHandlerChallengeAsync(final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = oktaEventHandlerChallengeValidateBeforeCall(_callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } /** * Build call for postAddedDeductedPointsNotification * @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) @@ -18495,6 +19038,961 @@ public okhttp3.Call resetPasswordAsync(NewPassword body, final ApiCallback + Status Code Description Response Headers + 201 Created - + + */ + public okhttp3.Call scimCreateUserCall(Object body, final ApiCallback _callback) throws ApiException { + Object localVarPostBody = body; + + // create path and map variables + String localVarPath = "/v1/provisioning/scim/Users"; + + 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[] { "management_key", "manager_auth" }; + return localVarApiClient.buildCall(localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call scimCreateUserValidateBeforeCall(Object body, final ApiCallback _callback) throws ApiException { + + // verify the required parameter 'body' is set + if (body == null) { + throw new ApiException("Missing the required parameter 'body' when calling scimCreateUser(Async)"); + } + + + okhttp3.Call localVarCall = scimCreateUserCall(body, _callback); + return localVarCall; + + } + + /** + * Create SCIM user + * Create a new Talon.One user using the SCIM provisioning protocol with an identity provider, for example, Microsoft Entra ID. + * @param body body (required) + * @return ScimUser + * @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
201 Created -
+ */ + public ScimUser scimCreateUser(Object body) throws ApiException { + ApiResponse localVarResp = scimCreateUserWithHttpInfo(body); + return localVarResp.getData(); + } + + /** + * Create SCIM user + * Create a new Talon.One user using the SCIM provisioning protocol with an identity provider, for example, Microsoft Entra ID. + * @param body body (required) + * @return ApiResponse<ScimUser> + * @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
201 Created -
+ */ + public ApiResponse scimCreateUserWithHttpInfo(Object body) throws ApiException { + okhttp3.Call localVarCall = scimCreateUserValidateBeforeCall(body, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Create SCIM user (asynchronously) + * Create a new Talon.One user using the SCIM provisioning protocol with an identity provider, for example, Microsoft Entra ID. + * @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
201 Created -
+ */ + public okhttp3.Call scimCreateUserAsync(Object body, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = scimCreateUserValidateBeforeCall(body, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for scimDeleteUser + * @param userId The ID of the user. (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
204 No Content -
+ */ + public okhttp3.Call scimDeleteUserCall(Integer userId, final ApiCallback _callback) throws ApiException { + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/v1/provisioning/scim/Users/{userId}" + .replaceAll("\\{" + "userId" + "\\}", localVarApiClient.escapeString(userId.toString())); + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + final String[] localVarAccepts = { + + }; + 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[] { "management_key", "manager_auth" }; + return localVarApiClient.buildCall(localVarPath, "DELETE", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call scimDeleteUserValidateBeforeCall(Integer userId, final ApiCallback _callback) throws ApiException { + + // verify the required parameter 'userId' is set + if (userId == null) { + throw new ApiException("Missing the required parameter 'userId' when calling scimDeleteUser(Async)"); + } + + + okhttp3.Call localVarCall = scimDeleteUserCall(userId, _callback); + return localVarCall; + + } + + /** + * Delete SCIM user + * Delete a specific Talon.One user created using the SCIM provisioning protocol with an identity provider, for example, Microsoft Entra ID. + * @param userId The ID of the user. (required) + * @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
204 No Content -
+ */ + public void scimDeleteUser(Integer userId) throws ApiException { + scimDeleteUserWithHttpInfo(userId); + } + + /** + * Delete SCIM user + * Delete a specific Talon.One user created using the SCIM provisioning protocol with an identity provider, for example, Microsoft Entra ID. + * @param userId The ID of the user. (required) + * @return ApiResponse<Void> + * @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
204 No Content -
+ */ + public ApiResponse scimDeleteUserWithHttpInfo(Integer userId) throws ApiException { + okhttp3.Call localVarCall = scimDeleteUserValidateBeforeCall(userId, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Delete SCIM user (asynchronously) + * Delete a specific Talon.One user created using the SCIM provisioning protocol with an identity provider, for example, Microsoft Entra ID. + * @param userId The ID of the user. (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
204 No Content -
+ */ + public okhttp3.Call scimDeleteUserAsync(Integer userId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = scimDeleteUserValidateBeforeCall(userId, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for scimGetResourceTypes + * @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 List of resource types -
+ */ + public okhttp3.Call scimGetResourceTypesCall(final ApiCallback _callback) throws ApiException { + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/v1/provisioning/scim/ResourceTypes"; + + 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 = { + + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + localVarHeaderParams.put("Content-Type", localVarContentType); + + String[] localVarAuthNames = new String[] { "management_key", "manager_auth" }; + return localVarApiClient.buildCall(localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call scimGetResourceTypesValidateBeforeCall(final ApiCallback _callback) throws ApiException { + + + okhttp3.Call localVarCall = scimGetResourceTypesCall(_callback); + return localVarCall; + + } + + /** + * List supported SCIM resource types + * Retrieve a list of resource types supported by the SCIM provisioning protocol. Resource types define the various kinds of resources that can be managed via the SCIM API, such as users, groups, or custom-defined resources. + * @return ScimResourceTypesListResponse + * @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 List of resource types -
+ */ + public ScimResourceTypesListResponse scimGetResourceTypes() throws ApiException { + ApiResponse localVarResp = scimGetResourceTypesWithHttpInfo(); + return localVarResp.getData(); + } + + /** + * List supported SCIM resource types + * Retrieve a list of resource types supported by the SCIM provisioning protocol. Resource types define the various kinds of resources that can be managed via the SCIM API, such as users, groups, or custom-defined resources. + * @return ApiResponse<ScimResourceTypesListResponse> + * @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 List of resource types -
+ */ + public ApiResponse scimGetResourceTypesWithHttpInfo() throws ApiException { + okhttp3.Call localVarCall = scimGetResourceTypesValidateBeforeCall(null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * List supported SCIM resource types (asynchronously) + * Retrieve a list of resource types supported by the SCIM provisioning protocol. Resource types define the various kinds of resources that can be managed via the SCIM API, such as users, groups, or custom-defined resources. + * @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 List of resource types -
+ */ + public okhttp3.Call scimGetResourceTypesAsync(final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = scimGetResourceTypesValidateBeforeCall(_callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for scimGetSchemas + * @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 Schemas -
+ */ + public okhttp3.Call scimGetSchemasCall(final ApiCallback _callback) throws ApiException { + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/v1/provisioning/scim/Schemas"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + final String[] localVarAccepts = { + + }; + 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[] { "management_key", "manager_auth" }; + return localVarApiClient.buildCall(localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call scimGetSchemasValidateBeforeCall(final ApiCallback _callback) throws ApiException { + + + okhttp3.Call localVarCall = scimGetSchemasCall(_callback); + return localVarCall; + + } + + /** + * List supported SCIM schemas + * Retrieve a list of schemas supported by the SCIM provisioning protocol. Schemas define the structure and attributes of the different resources that can be managed via the SCIM API, such as users, groups, and any custom-defined resources. + * @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 Schemas -
+ */ + public void scimGetSchemas() throws ApiException { + scimGetSchemasWithHttpInfo(); + } + + /** + * List supported SCIM schemas + * Retrieve a list of schemas supported by the SCIM provisioning protocol. Schemas define the structure and attributes of the different resources that can be managed via the SCIM API, such as users, groups, and any custom-defined resources. + * @return ApiResponse<Void> + * @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 Schemas -
+ */ + public ApiResponse scimGetSchemasWithHttpInfo() throws ApiException { + okhttp3.Call localVarCall = scimGetSchemasValidateBeforeCall(null); + return localVarApiClient.execute(localVarCall); + } + + /** + * List supported SCIM schemas (asynchronously) + * Retrieve a list of schemas supported by the SCIM provisioning protocol. Schemas define the structure and attributes of the different resources that can be managed via the SCIM API, such as users, groups, and any custom-defined resources. + * @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 Schemas -
+ */ + public okhttp3.Call scimGetSchemasAsync(final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = scimGetSchemasValidateBeforeCall(_callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for scimGetServiceProviderConfig + * @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 Service config -
+ */ + public okhttp3.Call scimGetServiceProviderConfigCall(final ApiCallback _callback) throws ApiException { + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/v1/provisioning/scim/ServiceProviderConfig"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + final String[] localVarAccepts = { + + }; + 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[] { "management_key", "manager_auth" }; + return localVarApiClient.buildCall(localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call scimGetServiceProviderConfigValidateBeforeCall(final ApiCallback _callback) throws ApiException { + + + okhttp3.Call localVarCall = scimGetServiceProviderConfigCall(_callback); + return localVarCall; + + } + + /** + * Service config endpoint for SCIM provisioning protocol + * Service config endpoint for SCIM provisioning protocol + * @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 Service config -
+ */ + public void scimGetServiceProviderConfig() throws ApiException { + scimGetServiceProviderConfigWithHttpInfo(); + } + + /** + * Service config endpoint for SCIM provisioning protocol + * Service config endpoint for SCIM provisioning protocol + * @return ApiResponse<Void> + * @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 Service config -
+ */ + public ApiResponse scimGetServiceProviderConfigWithHttpInfo() throws ApiException { + okhttp3.Call localVarCall = scimGetServiceProviderConfigValidateBeforeCall(null); + return localVarApiClient.execute(localVarCall); + } + + /** + * Service config endpoint for SCIM provisioning protocol (asynchronously) + * Service config endpoint for SCIM provisioning protocol + * @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 Service config -
+ */ + public okhttp3.Call scimGetServiceProviderConfigAsync(final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = scimGetServiceProviderConfigValidateBeforeCall(_callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } + /** + * Build call for scimGetUser + * @param userId The ID of the user. (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 User details -
+ */ + public okhttp3.Call scimGetUserCall(Integer userId, final ApiCallback _callback) throws ApiException { + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/v1/provisioning/scim/Users/{userId}" + .replaceAll("\\{" + "userId" + "\\}", localVarApiClient.escapeString(userId.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 = { + + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + localVarHeaderParams.put("Content-Type", localVarContentType); + + String[] localVarAuthNames = new String[] { "management_key", "manager_auth" }; + return localVarApiClient.buildCall(localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call scimGetUserValidateBeforeCall(Integer userId, final ApiCallback _callback) throws ApiException { + + // verify the required parameter 'userId' is set + if (userId == null) { + throw new ApiException("Missing the required parameter 'userId' when calling scimGetUser(Async)"); + } + + + okhttp3.Call localVarCall = scimGetUserCall(userId, _callback); + return localVarCall; + + } + + /** + * Get SCIM user + * Retrieve data for a specific Talon.One user created using the SCIM provisioning protocol with an identity provider, for example, Microsoft Entra ID. + * @param userId The ID of the user. (required) + * @return ScimUser + * @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 User details -
+ */ + public ScimUser scimGetUser(Integer userId) throws ApiException { + ApiResponse localVarResp = scimGetUserWithHttpInfo(userId); + return localVarResp.getData(); + } + + /** + * Get SCIM user + * Retrieve data for a specific Talon.One user created using the SCIM provisioning protocol with an identity provider, for example, Microsoft Entra ID. + * @param userId The ID of the user. (required) + * @return ApiResponse<ScimUser> + * @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 User details -
+ */ + public ApiResponse scimGetUserWithHttpInfo(Integer userId) throws ApiException { + okhttp3.Call localVarCall = scimGetUserValidateBeforeCall(userId, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Get SCIM user (asynchronously) + * Retrieve data for a specific Talon.One user created using the SCIM provisioning protocol with an identity provider, for example, Microsoft Entra ID. + * @param userId The ID of the user. (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 User details -
+ */ + public okhttp3.Call scimGetUserAsync(Integer userId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = scimGetUserValidateBeforeCall(userId, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for scimGetUsers + * @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 List of SCIM users -
+ */ + public okhttp3.Call scimGetUsersCall(final ApiCallback _callback) throws ApiException { + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/v1/provisioning/scim/Users"; + + 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 = { + + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + localVarHeaderParams.put("Content-Type", localVarContentType); + + String[] localVarAuthNames = new String[] { "management_key", "manager_auth" }; + return localVarApiClient.buildCall(localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call scimGetUsersValidateBeforeCall(final ApiCallback _callback) throws ApiException { + + + okhttp3.Call localVarCall = scimGetUsersCall(_callback); + return localVarCall; + + } + + /** + * List SCIM users + * Retrieve a paginated list of users that have been provisioned using the SCIM protocol with an identity provider, for example, Microsoft Entra ID. + * @return ScimUsersListResponse + * @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 List of SCIM users -
+ */ + public ScimUsersListResponse scimGetUsers() throws ApiException { + ApiResponse localVarResp = scimGetUsersWithHttpInfo(); + return localVarResp.getData(); + } + + /** + * List SCIM users + * Retrieve a paginated list of users that have been provisioned using the SCIM protocol with an identity provider, for example, Microsoft Entra ID. + * @return ApiResponse<ScimUsersListResponse> + * @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 List of SCIM users -
+ */ + public ApiResponse scimGetUsersWithHttpInfo() throws ApiException { + okhttp3.Call localVarCall = scimGetUsersValidateBeforeCall(null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * List SCIM users (asynchronously) + * Retrieve a paginated list of users that have been provisioned using the SCIM protocol with an identity provider, for example, Microsoft Entra ID. + * @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 List of SCIM users -
+ */ + public okhttp3.Call scimGetUsersAsync(final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = scimGetUsersValidateBeforeCall(_callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for scimPatchUser + * @param userId The ID of the user. (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 User details -
+ */ + public okhttp3.Call scimPatchUserCall(Integer userId, final ApiCallback _callback) throws ApiException { + Object localVarPostBody = null; + + // create path and map variables + String localVarPath = "/v1/provisioning/scim/Users/{userId}" + .replaceAll("\\{" + "userId" + "\\}", localVarApiClient.escapeString(userId.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 = { + + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + localVarHeaderParams.put("Content-Type", localVarContentType); + + String[] localVarAuthNames = new String[] { "management_key", "manager_auth" }; + return localVarApiClient.buildCall(localVarPath, "PATCH", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call scimPatchUserValidateBeforeCall(Integer userId, final ApiCallback _callback) throws ApiException { + + // verify the required parameter 'userId' is set + if (userId == null) { + throw new ApiException("Missing the required parameter 'userId' when calling scimPatchUser(Async)"); + } + + + okhttp3.Call localVarCall = scimPatchUserCall(userId, _callback); + return localVarCall; + + } + + /** + * Update SCIM user attributes + * Update certain attributes of a specific Talon.One user created using the SCIM provisioning protocol with an identity provider, for example, Microsoft Entra ID. This endpoint allows for selective adding, removing, or replacing specific attributes while leaving other attributes unchanged. + * @param userId The ID of the user. (required) + * @return ScimUser + * @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 User details -
+ */ + public ScimUser scimPatchUser(Integer userId) throws ApiException { + ApiResponse localVarResp = scimPatchUserWithHttpInfo(userId); + return localVarResp.getData(); + } + + /** + * Update SCIM user attributes + * Update certain attributes of a specific Talon.One user created using the SCIM provisioning protocol with an identity provider, for example, Microsoft Entra ID. This endpoint allows for selective adding, removing, or replacing specific attributes while leaving other attributes unchanged. + * @param userId The ID of the user. (required) + * @return ApiResponse<ScimUser> + * @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 User details -
+ */ + public ApiResponse scimPatchUserWithHttpInfo(Integer userId) throws ApiException { + okhttp3.Call localVarCall = scimPatchUserValidateBeforeCall(userId, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Update SCIM user attributes (asynchronously) + * Update certain attributes of a specific Talon.One user created using the SCIM provisioning protocol with an identity provider, for example, Microsoft Entra ID. This endpoint allows for selective adding, removing, or replacing specific attributes while leaving other attributes unchanged. + * @param userId The ID of the user. (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 User details -
+ */ + public okhttp3.Call scimPatchUserAsync(Integer userId, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = scimPatchUserValidateBeforeCall(userId, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } + /** + * Build call for scimReplaceUserAttributes + * @param userId The ID of the user. (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 User details -
+ */ + public okhttp3.Call scimReplaceUserAttributesCall(Integer userId, Object body, final ApiCallback _callback) throws ApiException { + Object localVarPostBody = body; + + // create path and map variables + String localVarPath = "/v1/provisioning/scim/Users/{userId}" + .replaceAll("\\{" + "userId" + "\\}", localVarApiClient.escapeString(userId.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[] { "management_key", "manager_auth" }; + return localVarApiClient.buildCall(localVarPath, "PUT", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call scimReplaceUserAttributesValidateBeforeCall(Integer userId, Object body, final ApiCallback _callback) throws ApiException { + + // verify the required parameter 'userId' is set + if (userId == null) { + throw new ApiException("Missing the required parameter 'userId' when calling scimReplaceUserAttributes(Async)"); + } + + // verify the required parameter 'body' is set + if (body == null) { + throw new ApiException("Missing the required parameter 'body' when calling scimReplaceUserAttributes(Async)"); + } + + + okhttp3.Call localVarCall = scimReplaceUserAttributesCall(userId, body, _callback); + return localVarCall; + + } + + /** + * Update SCIM user + * Update the details of a specific Talon.One user created using the SCIM provisioning protocol with an identity provider, for example, Microsoft Entra ID. This endpoint replaces all attributes of the specific user with the attributes provided in the request payload. + * @param userId The ID of the user. (required) + * @param body body (required) + * @return ScimUser + * @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 User details -
+ */ + public ScimUser scimReplaceUserAttributes(Integer userId, Object body) throws ApiException { + ApiResponse localVarResp = scimReplaceUserAttributesWithHttpInfo(userId, body); + return localVarResp.getData(); + } + + /** + * Update SCIM user + * Update the details of a specific Talon.One user created using the SCIM provisioning protocol with an identity provider, for example, Microsoft Entra ID. This endpoint replaces all attributes of the specific user with the attributes provided in the request payload. + * @param userId The ID of the user. (required) + * @param body body (required) + * @return ApiResponse<ScimUser> + * @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 User details -
+ */ + public ApiResponse scimReplaceUserAttributesWithHttpInfo(Integer userId, Object body) throws ApiException { + okhttp3.Call localVarCall = scimReplaceUserAttributesValidateBeforeCall(userId, body, null); + Type localVarReturnType = new TypeToken(){}.getType(); + return localVarApiClient.execute(localVarCall, localVarReturnType); + } + + /** + * Update SCIM user (asynchronously) + * Update the details of a specific Talon.One user created using the SCIM provisioning protocol with an identity provider, for example, Microsoft Entra ID. This endpoint replaces all attributes of the specific user with the attributes provided in the request payload. + * @param userId The ID of the user. (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 User details -
+ */ + public okhttp3.Call scimReplaceUserAttributesAsync(Integer userId, Object body, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = scimReplaceUserAttributesValidateBeforeCall(userId, body, _callback); + Type localVarReturnType = new TypeToken(){}.getType(); + localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); + return localVarCall; + } /** * Build call for searchCouponsAdvancedApplicationWideWithoutTotalCount * @param applicationId The ID of the Application. It is displayed in your Talon.One deployment URL. (required) diff --git a/src/main/java/one/talon/model/AddItemCatalogAction.java b/src/main/java/one/talon/model/AddItemCatalogAction.java index 3ebea9d5..2b4bbd70 100644 --- a/src/main/java/one/talon/model/AddItemCatalogAction.java +++ b/src/main/java/one/talon/model/AddItemCatalogAction.java @@ -25,14 +25,11 @@ import java.io.IOException; import java.math.BigDecimal; import one.talon.model.Product; -import one.talon.custom.JsonNullable; -import one.talon.custom.NullableAdapterFactory; /** * The specific properties of the \"ADD\" catalog sync action. */ @ApiModel(description = "The specific properties of the \"ADD\" catalog sync action. ") -@JsonAdapter(NullableAdapterFactory.class) public class AddItemCatalogAction { public static final String SERIALIZED_NAME_SKU = "sku"; @@ -45,8 +42,6 @@ public class AddItemCatalogAction { public static final String SERIALIZED_NAME_ATTRIBUTES = "attributes"; @SerializedName(SERIALIZED_NAME_ATTRIBUTES) - /*allow Serializing null for this field */ - @JsonNullable private Object attributes; public static final String SERIALIZED_NAME_PRODUCT = "product"; diff --git a/src/main/java/one/talon/model/AdditionalCampaignProperties.java b/src/main/java/one/talon/model/AdditionalCampaignProperties.java index 022eeec9..edbe3a1e 100644 --- a/src/main/java/one/talon/model/AdditionalCampaignProperties.java +++ b/src/main/java/one/talon/model/AdditionalCampaignProperties.java @@ -177,6 +177,10 @@ public FrontendStateEnum read(final JsonReader jsonReader) throws IOException { @SerializedName(SERIALIZED_NAME_FRONTEND_STATE) private FrontendStateEnum frontendState; + public static final String SERIALIZED_NAME_STORES_IMPORTED = "storesImported"; + @SerializedName(SERIALIZED_NAME_STORES_IMPORTED) + private Boolean storesImported; + public AdditionalCampaignProperties budgets(List budgets) { @@ -687,6 +691,28 @@ public void setFrontendState(FrontendStateEnum frontendState) { } + public AdditionalCampaignProperties storesImported(Boolean storesImported) { + + this.storesImported = storesImported; + return this; + } + + /** + * Indicates whether the linked stores were imported via a CSV file. + * @return storesImported + **/ + @ApiModelProperty(example = "true", required = true, value = "Indicates whether the linked stores were imported via a CSV file.") + + public Boolean getStoresImported() { + return storesImported; + } + + + public void setStoresImported(Boolean storesImported) { + this.storesImported = storesImported; + } + + @Override public boolean equals(java.lang.Object o) { if (this == o) { @@ -717,12 +743,13 @@ public boolean equals(java.lang.Object o) { Objects.equals(this.createdBy, additionalCampaignProperties.createdBy) && Objects.equals(this.updatedBy, additionalCampaignProperties.updatedBy) && Objects.equals(this.templateId, additionalCampaignProperties.templateId) && - Objects.equals(this.frontendState, additionalCampaignProperties.frontendState); + Objects.equals(this.frontendState, additionalCampaignProperties.frontendState) && + Objects.equals(this.storesImported, additionalCampaignProperties.storesImported); } @Override public int hashCode() { - return Objects.hash(budgets, couponRedemptionCount, referralRedemptionCount, discountCount, discountEffectCount, couponCreationCount, customEffectCount, referralCreationCount, addFreeItemEffectCount, awardedGiveawaysCount, createdLoyaltyPointsCount, createdLoyaltyPointsEffectCount, redeemedLoyaltyPointsCount, redeemedLoyaltyPointsEffectCount, callApiEffectCount, reservecouponEffectCount, lastActivity, updated, createdBy, updatedBy, templateId, frontendState); + return Objects.hash(budgets, couponRedemptionCount, referralRedemptionCount, discountCount, discountEffectCount, couponCreationCount, customEffectCount, referralCreationCount, addFreeItemEffectCount, awardedGiveawaysCount, createdLoyaltyPointsCount, createdLoyaltyPointsEffectCount, redeemedLoyaltyPointsCount, redeemedLoyaltyPointsEffectCount, callApiEffectCount, reservecouponEffectCount, lastActivity, updated, createdBy, updatedBy, templateId, frontendState, storesImported); } @@ -752,6 +779,7 @@ public String toString() { sb.append(" updatedBy: ").append(toIndentedString(updatedBy)).append("\n"); sb.append(" templateId: ").append(toIndentedString(templateId)).append("\n"); sb.append(" frontendState: ").append(toIndentedString(frontendState)).append("\n"); + sb.append(" storesImported: ").append(toIndentedString(storesImported)).append("\n"); sb.append("}"); return sb.toString(); } diff --git a/src/main/java/one/talon/model/AnalyticsDataPoint.java b/src/main/java/one/talon/model/AnalyticsDataPoint.java new file mode 100644 index 00000000..cc59eefe --- /dev/null +++ b/src/main/java/one/talon/model/AnalyticsDataPoint.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; +import java.math.BigDecimal; + +/** + * AnalyticsDataPoint + */ + +public class AnalyticsDataPoint { + public static final String SERIALIZED_NAME_TOTAL = "total"; + @SerializedName(SERIALIZED_NAME_TOTAL) + private BigDecimal total; + + public static final String SERIALIZED_NAME_INFLUENCED = "influenced"; + @SerializedName(SERIALIZED_NAME_INFLUENCED) + private BigDecimal influenced; + + + public AnalyticsDataPoint total(BigDecimal total) { + + this.total = total; + return this; + } + + /** + * Get total + * @return total + **/ + @ApiModelProperty(example = "12.0", required = true, value = "") + + public BigDecimal getTotal() { + return total; + } + + + public void setTotal(BigDecimal total) { + this.total = total; + } + + + public AnalyticsDataPoint influenced(BigDecimal influenced) { + + this.influenced = influenced; + return this; + } + + /** + * Get influenced + * @return influenced + **/ + @ApiModelProperty(example = "12.0", required = true, value = "") + + public BigDecimal getInfluenced() { + return influenced; + } + + + public void setInfluenced(BigDecimal influenced) { + this.influenced = influenced; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AnalyticsDataPoint analyticsDataPoint = (AnalyticsDataPoint) o; + return Objects.equals(this.total, analyticsDataPoint.total) && + Objects.equals(this.influenced, analyticsDataPoint.influenced); + } + + @Override + public int hashCode() { + return Objects.hash(total, influenced); + } + + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AnalyticsDataPoint {\n"); + sb.append(" total: ").append(toIndentedString(total)).append("\n"); + sb.append(" influenced: ").append(toIndentedString(influenced)).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/AnalyticsDataPointWithTrend.java b/src/main/java/one/talon/model/AnalyticsDataPointWithTrend.java new file mode 100644 index 00000000..4d1ed620 --- /dev/null +++ b/src/main/java/one/talon/model/AnalyticsDataPointWithTrend.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; +import java.math.BigDecimal; + +/** + * AnalyticsDataPointWithTrend + */ + +public class AnalyticsDataPointWithTrend { + public static final String SERIALIZED_NAME_VALUE = "value"; + @SerializedName(SERIALIZED_NAME_VALUE) + private BigDecimal value; + + public static final String SERIALIZED_NAME_TREND = "trend"; + @SerializedName(SERIALIZED_NAME_TREND) + private BigDecimal trend; + + + public AnalyticsDataPointWithTrend value(BigDecimal value) { + + this.value = value; + return this; + } + + /** + * Get value + * @return value + **/ + @ApiModelProperty(example = "12.0", required = true, value = "") + + public BigDecimal getValue() { + return value; + } + + + public void setValue(BigDecimal value) { + this.value = value; + } + + + public AnalyticsDataPointWithTrend trend(BigDecimal trend) { + + this.trend = trend; + return this; + } + + /** + * Get trend + * @return trend + **/ + @ApiModelProperty(example = "3.25", required = true, value = "") + + public BigDecimal getTrend() { + return trend; + } + + + public void setTrend(BigDecimal trend) { + this.trend = trend; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AnalyticsDataPointWithTrend analyticsDataPointWithTrend = (AnalyticsDataPointWithTrend) o; + return Objects.equals(this.value, analyticsDataPointWithTrend.value) && + Objects.equals(this.trend, analyticsDataPointWithTrend.trend); + } + + @Override + public int hashCode() { + return Objects.hash(value, trend); + } + + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AnalyticsDataPointWithTrend {\n"); + sb.append(" value: ").append(toIndentedString(value)).append("\n"); + sb.append(" trend: ").append(toIndentedString(trend)).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/AnalyticsDataPointWithTrendAndInfluencedRate.java b/src/main/java/one/talon/model/AnalyticsDataPointWithTrendAndInfluencedRate.java new file mode 100644 index 00000000..e398f5d7 --- /dev/null +++ b/src/main/java/one/talon/model/AnalyticsDataPointWithTrendAndInfluencedRate.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; +import java.math.BigDecimal; + +/** + * AnalyticsDataPointWithTrendAndInfluencedRate + */ + +public class AnalyticsDataPointWithTrendAndInfluencedRate { + public static final String SERIALIZED_NAME_VALUE = "value"; + @SerializedName(SERIALIZED_NAME_VALUE) + private BigDecimal value; + + public static final String SERIALIZED_NAME_INFLUENCED_RATE = "influencedRate"; + @SerializedName(SERIALIZED_NAME_INFLUENCED_RATE) + private BigDecimal influencedRate; + + public static final String SERIALIZED_NAME_TREND = "trend"; + @SerializedName(SERIALIZED_NAME_TREND) + private BigDecimal trend; + + + public AnalyticsDataPointWithTrendAndInfluencedRate value(BigDecimal value) { + + this.value = value; + return this; + } + + /** + * Get value + * @return value + **/ + @ApiModelProperty(example = "12.0", required = true, value = "") + + public BigDecimal getValue() { + return value; + } + + + public void setValue(BigDecimal value) { + this.value = value; + } + + + public AnalyticsDataPointWithTrendAndInfluencedRate influencedRate(BigDecimal influencedRate) { + + this.influencedRate = influencedRate; + return this; + } + + /** + * Get influencedRate + * @return influencedRate + **/ + @ApiModelProperty(example = "12.0", required = true, value = "") + + public BigDecimal getInfluencedRate() { + return influencedRate; + } + + + public void setInfluencedRate(BigDecimal influencedRate) { + this.influencedRate = influencedRate; + } + + + public AnalyticsDataPointWithTrendAndInfluencedRate trend(BigDecimal trend) { + + this.trend = trend; + return this; + } + + /** + * Get trend + * @return trend + **/ + @ApiModelProperty(example = "3.25", required = true, value = "") + + public BigDecimal getTrend() { + return trend; + } + + + public void setTrend(BigDecimal trend) { + this.trend = trend; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AnalyticsDataPointWithTrendAndInfluencedRate analyticsDataPointWithTrendAndInfluencedRate = (AnalyticsDataPointWithTrendAndInfluencedRate) o; + return Objects.equals(this.value, analyticsDataPointWithTrendAndInfluencedRate.value) && + Objects.equals(this.influencedRate, analyticsDataPointWithTrendAndInfluencedRate.influencedRate) && + Objects.equals(this.trend, analyticsDataPointWithTrendAndInfluencedRate.trend); + } + + @Override + public int hashCode() { + return Objects.hash(value, influencedRate, trend); + } + + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AnalyticsDataPointWithTrendAndInfluencedRate {\n"); + sb.append(" value: ").append(toIndentedString(value)).append("\n"); + sb.append(" influencedRate: ").append(toIndentedString(influencedRate)).append("\n"); + sb.append(" trend: ").append(toIndentedString(trend)).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/AnalyticsDataPointWithTrendAndUplift.java b/src/main/java/one/talon/model/AnalyticsDataPointWithTrendAndUplift.java new file mode 100644 index 00000000..beb7ad88 --- /dev/null +++ b/src/main/java/one/talon/model/AnalyticsDataPointWithTrendAndUplift.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; +import java.math.BigDecimal; + +/** + * AnalyticsDataPointWithTrendAndUplift + */ + +public class AnalyticsDataPointWithTrendAndUplift { + public static final String SERIALIZED_NAME_VALUE = "value"; + @SerializedName(SERIALIZED_NAME_VALUE) + private BigDecimal value; + + public static final String SERIALIZED_NAME_UPLIFT = "uplift"; + @SerializedName(SERIALIZED_NAME_UPLIFT) + private BigDecimal uplift; + + public static final String SERIALIZED_NAME_TREND = "trend"; + @SerializedName(SERIALIZED_NAME_TREND) + private BigDecimal trend; + + + public AnalyticsDataPointWithTrendAndUplift value(BigDecimal value) { + + this.value = value; + return this; + } + + /** + * Get value + * @return value + **/ + @ApiModelProperty(example = "12.0", required = true, value = "") + + public BigDecimal getValue() { + return value; + } + + + public void setValue(BigDecimal value) { + this.value = value; + } + + + public AnalyticsDataPointWithTrendAndUplift uplift(BigDecimal uplift) { + + this.uplift = uplift; + return this; + } + + /** + * Get uplift + * @return uplift + **/ + @ApiModelProperty(example = "3.25", required = true, value = "") + + public BigDecimal getUplift() { + return uplift; + } + + + public void setUplift(BigDecimal uplift) { + this.uplift = uplift; + } + + + public AnalyticsDataPointWithTrendAndUplift trend(BigDecimal trend) { + + this.trend = trend; + return this; + } + + /** + * Get trend + * @return trend + **/ + @ApiModelProperty(example = "3.25", required = true, value = "") + + public BigDecimal getTrend() { + return trend; + } + + + public void setTrend(BigDecimal trend) { + this.trend = trend; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + AnalyticsDataPointWithTrendAndUplift analyticsDataPointWithTrendAndUplift = (AnalyticsDataPointWithTrendAndUplift) o; + return Objects.equals(this.value, analyticsDataPointWithTrendAndUplift.value) && + Objects.equals(this.uplift, analyticsDataPointWithTrendAndUplift.uplift) && + Objects.equals(this.trend, analyticsDataPointWithTrendAndUplift.trend); + } + + @Override + public int hashCode() { + return Objects.hash(value, uplift, trend); + } + + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class AnalyticsDataPointWithTrendAndUplift {\n"); + sb.append(" value: ").append(toIndentedString(value)).append("\n"); + sb.append(" uplift: ").append(toIndentedString(uplift)).append("\n"); + sb.append(" trend: ").append(toIndentedString(trend)).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/ApplicationAnalyticsDataPoint.java b/src/main/java/one/talon/model/ApplicationAnalyticsDataPoint.java index 907bd81a..8aed011b 100644 --- a/src/main/java/one/talon/model/ApplicationAnalyticsDataPoint.java +++ b/src/main/java/one/talon/model/ApplicationAnalyticsDataPoint.java @@ -24,10 +24,7 @@ import io.swagger.annotations.ApiModelProperty; import java.io.IOException; import java.math.BigDecimal; -import one.talon.model.ApplicationAnalyticsDataPointAvgItemsPerSession; -import one.talon.model.ApplicationAnalyticsDataPointAvgSessionValue; -import one.talon.model.ApplicationAnalyticsDataPointSessionsCount; -import one.talon.model.ApplicationAnalyticsDataPointTotalRevenue; +import one.talon.model.AnalyticsDataPoint; import org.threeten.bp.OffsetDateTime; /** @@ -45,19 +42,19 @@ public class ApplicationAnalyticsDataPoint { public static final String SERIALIZED_NAME_TOTAL_REVENUE = "totalRevenue"; @SerializedName(SERIALIZED_NAME_TOTAL_REVENUE) - private ApplicationAnalyticsDataPointTotalRevenue totalRevenue; + private AnalyticsDataPoint totalRevenue; public static final String SERIALIZED_NAME_SESSIONS_COUNT = "sessionsCount"; @SerializedName(SERIALIZED_NAME_SESSIONS_COUNT) - private ApplicationAnalyticsDataPointSessionsCount sessionsCount; + private AnalyticsDataPoint sessionsCount; public static final String SERIALIZED_NAME_AVG_ITEMS_PER_SESSION = "avgItemsPerSession"; @SerializedName(SERIALIZED_NAME_AVG_ITEMS_PER_SESSION) - private ApplicationAnalyticsDataPointAvgItemsPerSession avgItemsPerSession; + private AnalyticsDataPoint avgItemsPerSession; public static final String SERIALIZED_NAME_AVG_SESSION_VALUE = "avgSessionValue"; @SerializedName(SERIALIZED_NAME_AVG_SESSION_VALUE) - private ApplicationAnalyticsDataPointAvgSessionValue avgSessionValue; + private AnalyticsDataPoint avgSessionValue; public static final String SERIALIZED_NAME_TOTAL_DISCOUNTS = "totalDiscounts"; @SerializedName(SERIALIZED_NAME_TOTAL_DISCOUNTS) @@ -78,8 +75,7 @@ public ApplicationAnalyticsDataPoint startTime(OffsetDateTime startTime) { * The start of the aggregation time frame in UTC. * @return startTime **/ - @javax.annotation.Nullable - @ApiModelProperty(example = "2024-02-01T00:00Z", value = "The start of the aggregation time frame in UTC.") + @ApiModelProperty(example = "2024-02-01T00:00Z", required = true, value = "The start of the aggregation time frame in UTC.") public OffsetDateTime getStartTime() { return startTime; @@ -101,8 +97,7 @@ public ApplicationAnalyticsDataPoint endTime(OffsetDateTime endTime) { * The end of the aggregation time frame in UTC. * @return endTime **/ - @javax.annotation.Nullable - @ApiModelProperty(value = "The end of the aggregation time frame in UTC.") + @ApiModelProperty(required = true, value = "The end of the aggregation time frame in UTC.") public OffsetDateTime getEndTime() { return endTime; @@ -114,7 +109,7 @@ public void setEndTime(OffsetDateTime endTime) { } - public ApplicationAnalyticsDataPoint totalRevenue(ApplicationAnalyticsDataPointTotalRevenue totalRevenue) { + public ApplicationAnalyticsDataPoint totalRevenue(AnalyticsDataPoint totalRevenue) { this.totalRevenue = totalRevenue; return this; @@ -127,17 +122,17 @@ public ApplicationAnalyticsDataPoint totalRevenue(ApplicationAnalyticsDataPointT @javax.annotation.Nullable @ApiModelProperty(value = "") - public ApplicationAnalyticsDataPointTotalRevenue getTotalRevenue() { + public AnalyticsDataPoint getTotalRevenue() { return totalRevenue; } - public void setTotalRevenue(ApplicationAnalyticsDataPointTotalRevenue totalRevenue) { + public void setTotalRevenue(AnalyticsDataPoint totalRevenue) { this.totalRevenue = totalRevenue; } - public ApplicationAnalyticsDataPoint sessionsCount(ApplicationAnalyticsDataPointSessionsCount sessionsCount) { + public ApplicationAnalyticsDataPoint sessionsCount(AnalyticsDataPoint sessionsCount) { this.sessionsCount = sessionsCount; return this; @@ -150,17 +145,17 @@ public ApplicationAnalyticsDataPoint sessionsCount(ApplicationAnalyticsDataPoint @javax.annotation.Nullable @ApiModelProperty(value = "") - public ApplicationAnalyticsDataPointSessionsCount getSessionsCount() { + public AnalyticsDataPoint getSessionsCount() { return sessionsCount; } - public void setSessionsCount(ApplicationAnalyticsDataPointSessionsCount sessionsCount) { + public void setSessionsCount(AnalyticsDataPoint sessionsCount) { this.sessionsCount = sessionsCount; } - public ApplicationAnalyticsDataPoint avgItemsPerSession(ApplicationAnalyticsDataPointAvgItemsPerSession avgItemsPerSession) { + public ApplicationAnalyticsDataPoint avgItemsPerSession(AnalyticsDataPoint avgItemsPerSession) { this.avgItemsPerSession = avgItemsPerSession; return this; @@ -173,17 +168,17 @@ public ApplicationAnalyticsDataPoint avgItemsPerSession(ApplicationAnalyticsData @javax.annotation.Nullable @ApiModelProperty(value = "") - public ApplicationAnalyticsDataPointAvgItemsPerSession getAvgItemsPerSession() { + public AnalyticsDataPoint getAvgItemsPerSession() { return avgItemsPerSession; } - public void setAvgItemsPerSession(ApplicationAnalyticsDataPointAvgItemsPerSession avgItemsPerSession) { + public void setAvgItemsPerSession(AnalyticsDataPoint avgItemsPerSession) { this.avgItemsPerSession = avgItemsPerSession; } - public ApplicationAnalyticsDataPoint avgSessionValue(ApplicationAnalyticsDataPointAvgSessionValue avgSessionValue) { + public ApplicationAnalyticsDataPoint avgSessionValue(AnalyticsDataPoint avgSessionValue) { this.avgSessionValue = avgSessionValue; return this; @@ -196,12 +191,12 @@ public ApplicationAnalyticsDataPoint avgSessionValue(ApplicationAnalyticsDataPoi @javax.annotation.Nullable @ApiModelProperty(value = "") - public ApplicationAnalyticsDataPointAvgSessionValue getAvgSessionValue() { + public AnalyticsDataPoint getAvgSessionValue() { return avgSessionValue; } - public void setAvgSessionValue(ApplicationAnalyticsDataPointAvgSessionValue avgSessionValue) { + public void setAvgSessionValue(AnalyticsDataPoint avgSessionValue) { this.avgSessionValue = avgSessionValue; } diff --git a/src/main/java/one/talon/model/ApplicationCampaignAnalytics.java b/src/main/java/one/talon/model/ApplicationCampaignAnalytics.java index abc595d6..3bcb738c 100644 --- a/src/main/java/one/talon/model/ApplicationCampaignAnalytics.java +++ b/src/main/java/one/talon/model/ApplicationCampaignAnalytics.java @@ -25,12 +25,9 @@ import java.io.IOException; import java.util.ArrayList; import java.util.List; -import one.talon.model.ApplicationCampaignAnalyticsAvgItemsPerSession; -import one.talon.model.ApplicationCampaignAnalyticsAvgSessionValue; -import one.talon.model.ApplicationCampaignAnalyticsCouponsCount; -import one.talon.model.ApplicationCampaignAnalyticsSessionsCount; -import one.talon.model.ApplicationCampaignAnalyticsTotalDiscounts; -import one.talon.model.ApplicationCampaignAnalyticsTotalRevenue; +import one.talon.model.AnalyticsDataPointWithTrend; +import one.talon.model.AnalyticsDataPointWithTrendAndInfluencedRate; +import one.talon.model.AnalyticsDataPointWithTrendAndUplift; import org.threeten.bp.OffsetDateTime; /** @@ -56,14 +53,20 @@ public class ApplicationCampaignAnalytics { public static final String SERIALIZED_NAME_CAMPAIGN_TAGS = "campaignTags"; @SerializedName(SERIALIZED_NAME_CAMPAIGN_TAGS) - private List campaignTags = null; + private List campaignTags = new ArrayList(); /** * The state of the campaign. **Note:** A disabled or archived campaign is not evaluated for rules or coupons. */ @JsonAdapter(CampaignStateEnum.Adapter.class) public enum CampaignStateEnum { - ENABLED("enabled"), + EXPIRED("expired"), + + SCHEDULED("scheduled"), + + RUNNING("running"), + + DRAFT("draft"), DISABLED("disabled"), @@ -109,43 +112,31 @@ public CampaignStateEnum read(final JsonReader jsonReader) throws IOException { public static final String SERIALIZED_NAME_CAMPAIGN_STATE = "campaignState"; @SerializedName(SERIALIZED_NAME_CAMPAIGN_STATE) - private CampaignStateEnum campaignState = CampaignStateEnum.ENABLED; - - public static final String SERIALIZED_NAME_CAMPAIGN_ACTIVE_RULESET_ID = "campaignActiveRulesetId"; - @SerializedName(SERIALIZED_NAME_CAMPAIGN_ACTIVE_RULESET_ID) - private Integer campaignActiveRulesetId; - - public static final String SERIALIZED_NAME_CAMPAIGN_START_TIME = "campaignStartTime"; - @SerializedName(SERIALIZED_NAME_CAMPAIGN_START_TIME) - private OffsetDateTime campaignStartTime; - - public static final String SERIALIZED_NAME_CAMPAIGN_END_TIME = "campaignEndTime"; - @SerializedName(SERIALIZED_NAME_CAMPAIGN_END_TIME) - private OffsetDateTime campaignEndTime; + private CampaignStateEnum campaignState; public static final String SERIALIZED_NAME_TOTAL_REVENUE = "totalRevenue"; @SerializedName(SERIALIZED_NAME_TOTAL_REVENUE) - private ApplicationCampaignAnalyticsTotalRevenue totalRevenue; + private AnalyticsDataPointWithTrendAndInfluencedRate totalRevenue; public static final String SERIALIZED_NAME_SESSIONS_COUNT = "sessionsCount"; @SerializedName(SERIALIZED_NAME_SESSIONS_COUNT) - private ApplicationCampaignAnalyticsSessionsCount sessionsCount; + private AnalyticsDataPointWithTrendAndInfluencedRate sessionsCount; public static final String SERIALIZED_NAME_AVG_ITEMS_PER_SESSION = "avgItemsPerSession"; @SerializedName(SERIALIZED_NAME_AVG_ITEMS_PER_SESSION) - private ApplicationCampaignAnalyticsAvgItemsPerSession avgItemsPerSession; + private AnalyticsDataPointWithTrendAndUplift avgItemsPerSession; public static final String SERIALIZED_NAME_AVG_SESSION_VALUE = "avgSessionValue"; @SerializedName(SERIALIZED_NAME_AVG_SESSION_VALUE) - private ApplicationCampaignAnalyticsAvgSessionValue avgSessionValue; + private AnalyticsDataPointWithTrendAndUplift avgSessionValue; public static final String SERIALIZED_NAME_TOTAL_DISCOUNTS = "totalDiscounts"; @SerializedName(SERIALIZED_NAME_TOTAL_DISCOUNTS) - private ApplicationCampaignAnalyticsTotalDiscounts totalDiscounts; + private AnalyticsDataPointWithTrend totalDiscounts; public static final String SERIALIZED_NAME_COUPONS_COUNT = "couponsCount"; @SerializedName(SERIALIZED_NAME_COUPONS_COUNT) - private ApplicationCampaignAnalyticsCouponsCount couponsCount; + private AnalyticsDataPointWithTrend couponsCount; public ApplicationCampaignAnalytics startTime(OffsetDateTime startTime) { @@ -158,8 +149,7 @@ public ApplicationCampaignAnalytics startTime(OffsetDateTime startTime) { * The start of the aggregation time frame in UTC. * @return startTime **/ - @javax.annotation.Nullable - @ApiModelProperty(example = "2024-02-01T00:00Z", value = "The start of the aggregation time frame in UTC.") + @ApiModelProperty(example = "2024-02-01T00:00Z", required = true, value = "The start of the aggregation time frame in UTC.") public OffsetDateTime getStartTime() { return startTime; @@ -181,8 +171,7 @@ public ApplicationCampaignAnalytics endTime(OffsetDateTime endTime) { * The end of the aggregation time frame in UTC. * @return endTime **/ - @javax.annotation.Nullable - @ApiModelProperty(value = "The end of the aggregation time frame in UTC.") + @ApiModelProperty(required = true, value = "The end of the aggregation time frame in UTC.") public OffsetDateTime getEndTime() { return endTime; @@ -204,8 +193,7 @@ public ApplicationCampaignAnalytics campaignId(Integer campaignId) { * The ID of the campaign. * @return campaignId **/ - @javax.annotation.Nullable - @ApiModelProperty(example = "1", value = "The ID of the campaign.") + @ApiModelProperty(example = "1", required = true, value = "The ID of the campaign.") public Integer getCampaignId() { return campaignId; @@ -227,8 +215,7 @@ public ApplicationCampaignAnalytics campaignName(String campaignName) { * The name of the campaign. * @return campaignName **/ - @javax.annotation.Nullable - @ApiModelProperty(example = "Summer promotions", value = "The name of the campaign.") + @ApiModelProperty(example = "Summer promotions", required = true, value = "The name of the campaign.") public String getCampaignName() { return campaignName; @@ -247,9 +234,6 @@ public ApplicationCampaignAnalytics campaignTags(List campaignTags) { } public ApplicationCampaignAnalytics addCampaignTagsItem(String campaignTagsItem) { - if (this.campaignTags == null) { - this.campaignTags = new ArrayList(); - } this.campaignTags.add(campaignTagsItem); return this; } @@ -258,8 +242,7 @@ public ApplicationCampaignAnalytics addCampaignTagsItem(String campaignTagsItem) * A list of tags for the campaign. * @return campaignTags **/ - @javax.annotation.Nullable - @ApiModelProperty(example = "[summer]", value = "A list of tags for the campaign.") + @ApiModelProperty(example = "[summer]", required = true, value = "A list of tags for the campaign.") public List getCampaignTags() { return campaignTags; @@ -281,8 +264,7 @@ public ApplicationCampaignAnalytics campaignState(CampaignStateEnum campaignStat * The state of the campaign. **Note:** A disabled or archived campaign is not evaluated for rules or coupons. * @return campaignState **/ - @javax.annotation.Nullable - @ApiModelProperty(example = "enabled", value = "The state of the campaign. **Note:** A disabled or archived campaign is not evaluated for rules or coupons. ") + @ApiModelProperty(example = "running", required = true, value = "The state of the campaign. **Note:** A disabled or archived campaign is not evaluated for rules or coupons. ") public CampaignStateEnum getCampaignState() { return campaignState; @@ -294,76 +276,7 @@ public void setCampaignState(CampaignStateEnum campaignState) { } - public ApplicationCampaignAnalytics campaignActiveRulesetId(Integer campaignActiveRulesetId) { - - this.campaignActiveRulesetId = campaignActiveRulesetId; - return this; - } - - /** - * The [ID of the ruleset](https://docs.talon.one/management-api#operation/getRulesets) this campaign applies on customer session evaluation. - * @return campaignActiveRulesetId - **/ - @javax.annotation.Nullable - @ApiModelProperty(example = "2", value = "The [ID of the ruleset](https://docs.talon.one/management-api#operation/getRulesets) this campaign applies on customer session evaluation. ") - - public Integer getCampaignActiveRulesetId() { - return campaignActiveRulesetId; - } - - - public void setCampaignActiveRulesetId(Integer campaignActiveRulesetId) { - this.campaignActiveRulesetId = campaignActiveRulesetId; - } - - - public ApplicationCampaignAnalytics campaignStartTime(OffsetDateTime campaignStartTime) { - - this.campaignStartTime = campaignStartTime; - return this; - } - - /** - * Date and time when the campaign becomes active. - * @return campaignStartTime - **/ - @javax.annotation.Nullable - @ApiModelProperty(example = "2021-07-20T22:00Z", value = "Date and time when the campaign becomes active.") - - public OffsetDateTime getCampaignStartTime() { - return campaignStartTime; - } - - - public void setCampaignStartTime(OffsetDateTime campaignStartTime) { - this.campaignStartTime = campaignStartTime; - } - - - public ApplicationCampaignAnalytics campaignEndTime(OffsetDateTime campaignEndTime) { - - this.campaignEndTime = campaignEndTime; - return this; - } - - /** - * Date and time when the campaign becomes inactive. - * @return campaignEndTime - **/ - @javax.annotation.Nullable - @ApiModelProperty(example = "2021-10-01T02:00Z", value = "Date and time when the campaign becomes inactive.") - - public OffsetDateTime getCampaignEndTime() { - return campaignEndTime; - } - - - public void setCampaignEndTime(OffsetDateTime campaignEndTime) { - this.campaignEndTime = campaignEndTime; - } - - - public ApplicationCampaignAnalytics totalRevenue(ApplicationCampaignAnalyticsTotalRevenue totalRevenue) { + public ApplicationCampaignAnalytics totalRevenue(AnalyticsDataPointWithTrendAndInfluencedRate totalRevenue) { this.totalRevenue = totalRevenue; return this; @@ -376,17 +289,17 @@ public ApplicationCampaignAnalytics totalRevenue(ApplicationCampaignAnalyticsTot @javax.annotation.Nullable @ApiModelProperty(value = "") - public ApplicationCampaignAnalyticsTotalRevenue getTotalRevenue() { + public AnalyticsDataPointWithTrendAndInfluencedRate getTotalRevenue() { return totalRevenue; } - public void setTotalRevenue(ApplicationCampaignAnalyticsTotalRevenue totalRevenue) { + public void setTotalRevenue(AnalyticsDataPointWithTrendAndInfluencedRate totalRevenue) { this.totalRevenue = totalRevenue; } - public ApplicationCampaignAnalytics sessionsCount(ApplicationCampaignAnalyticsSessionsCount sessionsCount) { + public ApplicationCampaignAnalytics sessionsCount(AnalyticsDataPointWithTrendAndInfluencedRate sessionsCount) { this.sessionsCount = sessionsCount; return this; @@ -399,17 +312,17 @@ public ApplicationCampaignAnalytics sessionsCount(ApplicationCampaignAnalyticsSe @javax.annotation.Nullable @ApiModelProperty(value = "") - public ApplicationCampaignAnalyticsSessionsCount getSessionsCount() { + public AnalyticsDataPointWithTrendAndInfluencedRate getSessionsCount() { return sessionsCount; } - public void setSessionsCount(ApplicationCampaignAnalyticsSessionsCount sessionsCount) { + public void setSessionsCount(AnalyticsDataPointWithTrendAndInfluencedRate sessionsCount) { this.sessionsCount = sessionsCount; } - public ApplicationCampaignAnalytics avgItemsPerSession(ApplicationCampaignAnalyticsAvgItemsPerSession avgItemsPerSession) { + public ApplicationCampaignAnalytics avgItemsPerSession(AnalyticsDataPointWithTrendAndUplift avgItemsPerSession) { this.avgItemsPerSession = avgItemsPerSession; return this; @@ -422,17 +335,17 @@ public ApplicationCampaignAnalytics avgItemsPerSession(ApplicationCampaignAnalyt @javax.annotation.Nullable @ApiModelProperty(value = "") - public ApplicationCampaignAnalyticsAvgItemsPerSession getAvgItemsPerSession() { + public AnalyticsDataPointWithTrendAndUplift getAvgItemsPerSession() { return avgItemsPerSession; } - public void setAvgItemsPerSession(ApplicationCampaignAnalyticsAvgItemsPerSession avgItemsPerSession) { + public void setAvgItemsPerSession(AnalyticsDataPointWithTrendAndUplift avgItemsPerSession) { this.avgItemsPerSession = avgItemsPerSession; } - public ApplicationCampaignAnalytics avgSessionValue(ApplicationCampaignAnalyticsAvgSessionValue avgSessionValue) { + public ApplicationCampaignAnalytics avgSessionValue(AnalyticsDataPointWithTrendAndUplift avgSessionValue) { this.avgSessionValue = avgSessionValue; return this; @@ -445,17 +358,17 @@ public ApplicationCampaignAnalytics avgSessionValue(ApplicationCampaignAnalytics @javax.annotation.Nullable @ApiModelProperty(value = "") - public ApplicationCampaignAnalyticsAvgSessionValue getAvgSessionValue() { + public AnalyticsDataPointWithTrendAndUplift getAvgSessionValue() { return avgSessionValue; } - public void setAvgSessionValue(ApplicationCampaignAnalyticsAvgSessionValue avgSessionValue) { + public void setAvgSessionValue(AnalyticsDataPointWithTrendAndUplift avgSessionValue) { this.avgSessionValue = avgSessionValue; } - public ApplicationCampaignAnalytics totalDiscounts(ApplicationCampaignAnalyticsTotalDiscounts totalDiscounts) { + public ApplicationCampaignAnalytics totalDiscounts(AnalyticsDataPointWithTrend totalDiscounts) { this.totalDiscounts = totalDiscounts; return this; @@ -468,17 +381,17 @@ public ApplicationCampaignAnalytics totalDiscounts(ApplicationCampaignAnalyticsT @javax.annotation.Nullable @ApiModelProperty(value = "") - public ApplicationCampaignAnalyticsTotalDiscounts getTotalDiscounts() { + public AnalyticsDataPointWithTrend getTotalDiscounts() { return totalDiscounts; } - public void setTotalDiscounts(ApplicationCampaignAnalyticsTotalDiscounts totalDiscounts) { + public void setTotalDiscounts(AnalyticsDataPointWithTrend totalDiscounts) { this.totalDiscounts = totalDiscounts; } - public ApplicationCampaignAnalytics couponsCount(ApplicationCampaignAnalyticsCouponsCount couponsCount) { + public ApplicationCampaignAnalytics couponsCount(AnalyticsDataPointWithTrend couponsCount) { this.couponsCount = couponsCount; return this; @@ -491,12 +404,12 @@ public ApplicationCampaignAnalytics couponsCount(ApplicationCampaignAnalyticsCou @javax.annotation.Nullable @ApiModelProperty(value = "") - public ApplicationCampaignAnalyticsCouponsCount getCouponsCount() { + public AnalyticsDataPointWithTrend getCouponsCount() { return couponsCount; } - public void setCouponsCount(ApplicationCampaignAnalyticsCouponsCount couponsCount) { + public void setCouponsCount(AnalyticsDataPointWithTrend couponsCount) { this.couponsCount = couponsCount; } @@ -516,9 +429,6 @@ public boolean equals(java.lang.Object o) { Objects.equals(this.campaignName, applicationCampaignAnalytics.campaignName) && Objects.equals(this.campaignTags, applicationCampaignAnalytics.campaignTags) && Objects.equals(this.campaignState, applicationCampaignAnalytics.campaignState) && - Objects.equals(this.campaignActiveRulesetId, applicationCampaignAnalytics.campaignActiveRulesetId) && - Objects.equals(this.campaignStartTime, applicationCampaignAnalytics.campaignStartTime) && - Objects.equals(this.campaignEndTime, applicationCampaignAnalytics.campaignEndTime) && Objects.equals(this.totalRevenue, applicationCampaignAnalytics.totalRevenue) && Objects.equals(this.sessionsCount, applicationCampaignAnalytics.sessionsCount) && Objects.equals(this.avgItemsPerSession, applicationCampaignAnalytics.avgItemsPerSession) && @@ -529,7 +439,7 @@ public boolean equals(java.lang.Object o) { @Override public int hashCode() { - return Objects.hash(startTime, endTime, campaignId, campaignName, campaignTags, campaignState, campaignActiveRulesetId, campaignStartTime, campaignEndTime, totalRevenue, sessionsCount, avgItemsPerSession, avgSessionValue, totalDiscounts, couponsCount); + return Objects.hash(startTime, endTime, campaignId, campaignName, campaignTags, campaignState, totalRevenue, sessionsCount, avgItemsPerSession, avgSessionValue, totalDiscounts, couponsCount); } @@ -543,9 +453,6 @@ public String toString() { sb.append(" campaignName: ").append(toIndentedString(campaignName)).append("\n"); sb.append(" campaignTags: ").append(toIndentedString(campaignTags)).append("\n"); sb.append(" campaignState: ").append(toIndentedString(campaignState)).append("\n"); - sb.append(" campaignActiveRulesetId: ").append(toIndentedString(campaignActiveRulesetId)).append("\n"); - sb.append(" campaignStartTime: ").append(toIndentedString(campaignStartTime)).append("\n"); - sb.append(" campaignEndTime: ").append(toIndentedString(campaignEndTime)).append("\n"); sb.append(" totalRevenue: ").append(toIndentedString(totalRevenue)).append("\n"); sb.append(" sessionsCount: ").append(toIndentedString(sessionsCount)).append("\n"); sb.append(" avgItemsPerSession: ").append(toIndentedString(avgItemsPerSession)).append("\n"); diff --git a/src/main/java/one/talon/model/Attribute.java b/src/main/java/one/talon/model/Attribute.java index 2ba38700..b50c7bcd 100644 --- a/src/main/java/one/talon/model/Attribute.java +++ b/src/main/java/one/talon/model/Attribute.java @@ -50,8 +50,6 @@ public class Attribute { */ @JsonAdapter(EntityEnum.Adapter.class) public enum EntityEnum { - ACCOUNT("Account"), - APPLICATION("Application"), CAMPAIGN("Campaign"), diff --git a/src/main/java/one/talon/model/BaseLoyaltyProgram.java b/src/main/java/one/talon/model/BaseLoyaltyProgram.java index ead51962..ed2e3195 100644 --- a/src/main/java/one/talon/model/BaseLoyaltyProgram.java +++ b/src/main/java/one/talon/model/BaseLoyaltyProgram.java @@ -25,6 +25,8 @@ import java.io.IOException; import java.util.ArrayList; import java.util.List; +import one.talon.model.CodeGeneratorSettings; +import org.threeten.bp.OffsetDateTime; /** * BaseLoyaltyProgram @@ -64,17 +66,19 @@ public class BaseLoyaltyProgram { private Boolean sandbox; /** - * The policy that defines which date is used to calculate the expiration date of a customer's current tier. - `tier_start_date`: The tier expiration date is calculated based on when the customer joined the current tier. - `program_join_date`: The tier expiration date is calculated based on when the customer joined the loyalty program. + * The policy that defines when the customer joins the loyalty program. - `not_join`: The customer does not join the loyalty program but can still earn and spend loyalty points. **Note**: The customer does not have a program join date. - `points_activated`: The customer joins the loyalty program only when their earned loyalty points become active for the first time. - `points_earned`: The customer joins the loyalty program when they earn loyalty points for the first time. */ - @JsonAdapter(TiersExpirationPolicyEnum.Adapter.class) - public enum TiersExpirationPolicyEnum { - TIER_START_DATE("tier_start_date"), + @JsonAdapter(ProgramJoinPolicyEnum.Adapter.class) + public enum ProgramJoinPolicyEnum { + NOT_JOIN("not_join"), - PROGRAM_JOIN_DATE("program_join_date"); + POINTS_ACTIVATED("points_activated"), + + POINTS_EARNED("points_earned"); private String value; - TiersExpirationPolicyEnum(String value) { + ProgramJoinPolicyEnum(String value) { this.value = value; } @@ -87,8 +91,8 @@ public String toString() { return String.valueOf(value); } - public static TiersExpirationPolicyEnum fromValue(String value) { - for (TiersExpirationPolicyEnum b : TiersExpirationPolicyEnum.values()) { + public static ProgramJoinPolicyEnum fromValue(String value) { + for (ProgramJoinPolicyEnum b : ProgramJoinPolicyEnum.values()) { if (b.value.equals(value)) { return b; } @@ -96,40 +100,40 @@ public static TiersExpirationPolicyEnum fromValue(String value) { throw new IllegalArgumentException("Unexpected value '" + value + "'"); } - public static class Adapter extends TypeAdapter { + public static class Adapter extends TypeAdapter { @Override - public void write(final JsonWriter jsonWriter, final TiersExpirationPolicyEnum enumeration) throws IOException { + public void write(final JsonWriter jsonWriter, final ProgramJoinPolicyEnum enumeration) throws IOException { jsonWriter.value(enumeration.getValue()); } @Override - public TiersExpirationPolicyEnum read(final JsonReader jsonReader) throws IOException { + public ProgramJoinPolicyEnum read(final JsonReader jsonReader) throws IOException { String value = jsonReader.nextString(); - return TiersExpirationPolicyEnum.fromValue(value); + return ProgramJoinPolicyEnum.fromValue(value); } } } - public static final String SERIALIZED_NAME_TIERS_EXPIRATION_POLICY = "tiersExpirationPolicy"; - @SerializedName(SERIALIZED_NAME_TIERS_EXPIRATION_POLICY) - private TiersExpirationPolicyEnum tiersExpirationPolicy; - - public static final String SERIALIZED_NAME_TIERS_EXPIRE_IN = "tiersExpireIn"; - @SerializedName(SERIALIZED_NAME_TIERS_EXPIRE_IN) - private String tiersExpireIn; + public static final String SERIALIZED_NAME_PROGRAM_JOIN_POLICY = "programJoinPolicy"; + @SerializedName(SERIALIZED_NAME_PROGRAM_JOIN_POLICY) + private ProgramJoinPolicyEnum programJoinPolicy; /** - * Customers's tier downgrade policy. - `one_down`: Once the tier expires and if the user doesn't have enough points to stay in the tier, the user is downgraded one tier down. - `balance_based`: Once the tier expires, the user's tier is evaluated based on the amount of active points the user has at this instant. + * The policy that defines which date is used to calculate the expiration date of a customer's current tier. - `tier_start_date`: The tier expiration date is calculated based on when the customer joined the current tier. - `program_join_date`: The tier expiration date is calculated based on when the customer joined the loyalty program. - `customer_attribute`: The tier expiration date is calculated based on a custom customer attribute. - `absolute_expiration`: The tier expires on a specified date and time. **Note**: For absolute expiration, it is required to provide a `tiersStartDate.` */ - @JsonAdapter(TiersDowngradePolicyEnum.Adapter.class) - public enum TiersDowngradePolicyEnum { - ONE_DOWN("one_down"), + @JsonAdapter(TiersExpirationPolicyEnum.Adapter.class) + public enum TiersExpirationPolicyEnum { + TIER_START_DATE("tier_start_date"), - BALANCE_BASED("balance_based"); + PROGRAM_JOIN_DATE("program_join_date"), + + CUSTOMER_ATTRIBUTE("customer_attribute"), + + ABSOLUTE_EXPIRATION("absolute_expiration"); private String value; - TiersDowngradePolicyEnum(String value) { + TiersExpirationPolicyEnum(String value) { this.value = value; } @@ -142,8 +146,8 @@ public String toString() { return String.valueOf(value); } - public static TiersDowngradePolicyEnum fromValue(String value) { - for (TiersDowngradePolicyEnum b : TiersDowngradePolicyEnum.values()) { + public static TiersExpirationPolicyEnum fromValue(String value) { + for (TiersExpirationPolicyEnum b : TiersExpirationPolicyEnum.values()) { if (b.value.equals(value)) { return b; } @@ -151,38 +155,44 @@ public static TiersDowngradePolicyEnum fromValue(String value) { throw new IllegalArgumentException("Unexpected value '" + value + "'"); } - public static class Adapter extends TypeAdapter { + public static class Adapter extends TypeAdapter { @Override - public void write(final JsonWriter jsonWriter, final TiersDowngradePolicyEnum enumeration) throws IOException { + public void write(final JsonWriter jsonWriter, final TiersExpirationPolicyEnum enumeration) throws IOException { jsonWriter.value(enumeration.getValue()); } @Override - public TiersDowngradePolicyEnum read(final JsonReader jsonReader) throws IOException { + public TiersExpirationPolicyEnum read(final JsonReader jsonReader) throws IOException { String value = jsonReader.nextString(); - return TiersDowngradePolicyEnum.fromValue(value); + return TiersExpirationPolicyEnum.fromValue(value); } } } - public static final String SERIALIZED_NAME_TIERS_DOWNGRADE_POLICY = "tiersDowngradePolicy"; - @SerializedName(SERIALIZED_NAME_TIERS_DOWNGRADE_POLICY) - private TiersDowngradePolicyEnum tiersDowngradePolicy; + public static final String SERIALIZED_NAME_TIERS_EXPIRATION_POLICY = "tiersExpirationPolicy"; + @SerializedName(SERIALIZED_NAME_TIERS_EXPIRATION_POLICY) + private TiersExpirationPolicyEnum tiersExpirationPolicy; + + public static final String SERIALIZED_NAME_TIERS_START_DATE = "tiersStartDate"; + @SerializedName(SERIALIZED_NAME_TIERS_START_DATE) + private OffsetDateTime tiersStartDate; + + public static final String SERIALIZED_NAME_TIERS_EXPIRE_IN = "tiersExpireIn"; + @SerializedName(SERIALIZED_NAME_TIERS_EXPIRE_IN) + private String tiersExpireIn; /** - * The policy that defines when the customer joins the loyalty program. - `not_join`: The customer does not join the loyalty program but can still earn and spend loyalty points. **Note**: The customer does not have a program join date. - `points_activated`: The customer joins the loyalty program only when their earned loyalty points become active for the first time. - `points_earned`: The customer joins the loyalty program when they earn loyalty points for the first time. + * Customers's tier downgrade policy. - `one_down`: Once the tier expires and if the user doesn't have enough points to stay in the tier, the user is downgraded one tier down. - `balance_based`: Once the tier expires, the user's tier is evaluated based on the amount of active points the user has at this instant. */ - @JsonAdapter(ProgramJoinPolicyEnum.Adapter.class) - public enum ProgramJoinPolicyEnum { - NOT_JOIN("not_join"), - - POINTS_ACTIVATED("points_activated"), + @JsonAdapter(TiersDowngradePolicyEnum.Adapter.class) + public enum TiersDowngradePolicyEnum { + ONE_DOWN("one_down"), - POINTS_EARNED("points_earned"); + BALANCE_BASED("balance_based"); private String value; - ProgramJoinPolicyEnum(String value) { + TiersDowngradePolicyEnum(String value) { this.value = value; } @@ -195,8 +205,8 @@ public String toString() { return String.valueOf(value); } - public static ProgramJoinPolicyEnum fromValue(String value) { - for (ProgramJoinPolicyEnum b : ProgramJoinPolicyEnum.values()) { + public static TiersDowngradePolicyEnum fromValue(String value) { + for (TiersDowngradePolicyEnum b : TiersDowngradePolicyEnum.values()) { if (b.value.equals(value)) { return b; } @@ -204,23 +214,27 @@ public static ProgramJoinPolicyEnum fromValue(String value) { throw new IllegalArgumentException("Unexpected value '" + value + "'"); } - public static class Adapter extends TypeAdapter { + public static class Adapter extends TypeAdapter { @Override - public void write(final JsonWriter jsonWriter, final ProgramJoinPolicyEnum enumeration) throws IOException { + public void write(final JsonWriter jsonWriter, final TiersDowngradePolicyEnum enumeration) throws IOException { jsonWriter.value(enumeration.getValue()); } @Override - public ProgramJoinPolicyEnum read(final JsonReader jsonReader) throws IOException { + public TiersDowngradePolicyEnum read(final JsonReader jsonReader) throws IOException { String value = jsonReader.nextString(); - return ProgramJoinPolicyEnum.fromValue(value); + return TiersDowngradePolicyEnum.fromValue(value); } } } - public static final String SERIALIZED_NAME_PROGRAM_JOIN_POLICY = "programJoinPolicy"; - @SerializedName(SERIALIZED_NAME_PROGRAM_JOIN_POLICY) - private ProgramJoinPolicyEnum programJoinPolicy; + public static final String SERIALIZED_NAME_TIERS_DOWNGRADE_POLICY = "tiersDowngradePolicy"; + @SerializedName(SERIALIZED_NAME_TIERS_DOWNGRADE_POLICY) + private TiersDowngradePolicyEnum tiersDowngradePolicy; + + public static final String SERIALIZED_NAME_CARD_CODE_SETTINGS = "cardCodeSettings"; + @SerializedName(SERIALIZED_NAME_CARD_CODE_SETTINGS) + private CodeGeneratorSettings cardCodeSettings; public BaseLoyaltyProgram title(String title) { @@ -416,6 +430,29 @@ public void setSandbox(Boolean sandbox) { } + public BaseLoyaltyProgram programJoinPolicy(ProgramJoinPolicyEnum programJoinPolicy) { + + this.programJoinPolicy = programJoinPolicy; + return this; + } + + /** + * The policy that defines when the customer joins the loyalty program. - `not_join`: The customer does not join the loyalty program but can still earn and spend loyalty points. **Note**: The customer does not have a program join date. - `points_activated`: The customer joins the loyalty program only when their earned loyalty points become active for the first time. - `points_earned`: The customer joins the loyalty program when they earn loyalty points for the first time. + * @return programJoinPolicy + **/ + @javax.annotation.Nullable + @ApiModelProperty(value = "The policy that defines when the customer joins the loyalty program. - `not_join`: The customer does not join the loyalty program but can still earn and spend loyalty points. **Note**: The customer does not have a program join date. - `points_activated`: The customer joins the loyalty program only when their earned loyalty points become active for the first time. - `points_earned`: The customer joins the loyalty program when they earn loyalty points for the first time. ") + + public ProgramJoinPolicyEnum getProgramJoinPolicy() { + return programJoinPolicy; + } + + + public void setProgramJoinPolicy(ProgramJoinPolicyEnum programJoinPolicy) { + this.programJoinPolicy = programJoinPolicy; + } + + public BaseLoyaltyProgram tiersExpirationPolicy(TiersExpirationPolicyEnum tiersExpirationPolicy) { this.tiersExpirationPolicy = tiersExpirationPolicy; @@ -423,11 +460,11 @@ public BaseLoyaltyProgram tiersExpirationPolicy(TiersExpirationPolicyEnum tiersE } /** - * The policy that defines which date is used to calculate the expiration date of a customer's current tier. - `tier_start_date`: The tier expiration date is calculated based on when the customer joined the current tier. - `program_join_date`: The tier expiration date is calculated based on when the customer joined the loyalty program. + * The policy that defines which date is used to calculate the expiration date of a customer's current tier. - `tier_start_date`: The tier expiration date is calculated based on when the customer joined the current tier. - `program_join_date`: The tier expiration date is calculated based on when the customer joined the loyalty program. - `customer_attribute`: The tier expiration date is calculated based on a custom customer attribute. - `absolute_expiration`: The tier expires on a specified date and time. **Note**: For absolute expiration, it is required to provide a `tiersStartDate.` * @return tiersExpirationPolicy **/ @javax.annotation.Nullable - @ApiModelProperty(value = "The policy that defines which date is used to calculate the expiration date of a customer's current tier. - `tier_start_date`: The tier expiration date is calculated based on when the customer joined the current tier. - `program_join_date`: The tier expiration date is calculated based on when the customer joined the loyalty program. ") + @ApiModelProperty(value = "The policy that defines which date is used to calculate the expiration date of a customer's current tier. - `tier_start_date`: The tier expiration date is calculated based on when the customer joined the current tier. - `program_join_date`: The tier expiration date is calculated based on when the customer joined the loyalty program. - `customer_attribute`: The tier expiration date is calculated based on a custom customer attribute. - `absolute_expiration`: The tier expires on a specified date and time. **Note**: For absolute expiration, it is required to provide a `tiersStartDate.` ") public TiersExpirationPolicyEnum getTiersExpirationPolicy() { return tiersExpirationPolicy; @@ -439,6 +476,29 @@ public void setTiersExpirationPolicy(TiersExpirationPolicyEnum tiersExpirationPo } + public BaseLoyaltyProgram tiersStartDate(OffsetDateTime tiersStartDate) { + + this.tiersStartDate = tiersStartDate; + return this; + } + + /** + * Timestamp at which the tier starts for all customers. **Note**: This is only required when the tier expiration policy is set to `absolute_expiration`. + * @return tiersStartDate + **/ + @javax.annotation.Nullable + @ApiModelProperty(example = "2021-09-12T10:12:42Z", value = "Timestamp at which the tier starts for all customers. **Note**: This is only required when the tier expiration policy is set to `absolute_expiration`. ") + + public OffsetDateTime getTiersStartDate() { + return tiersStartDate; + } + + + public void setTiersStartDate(OffsetDateTime tiersStartDate) { + this.tiersStartDate = tiersStartDate; + } + + public BaseLoyaltyProgram tiersExpireIn(String tiersExpireIn) { this.tiersExpireIn = tiersExpireIn; @@ -485,26 +545,26 @@ public void setTiersDowngradePolicy(TiersDowngradePolicyEnum tiersDowngradePolic } - public BaseLoyaltyProgram programJoinPolicy(ProgramJoinPolicyEnum programJoinPolicy) { + public BaseLoyaltyProgram cardCodeSettings(CodeGeneratorSettings cardCodeSettings) { - this.programJoinPolicy = programJoinPolicy; + this.cardCodeSettings = cardCodeSettings; return this; } /** - * The policy that defines when the customer joins the loyalty program. - `not_join`: The customer does not join the loyalty program but can still earn and spend loyalty points. **Note**: The customer does not have a program join date. - `points_activated`: The customer joins the loyalty program only when their earned loyalty points become active for the first time. - `points_earned`: The customer joins the loyalty program when they earn loyalty points for the first time. - * @return programJoinPolicy + * Get cardCodeSettings + * @return cardCodeSettings **/ @javax.annotation.Nullable - @ApiModelProperty(value = "The policy that defines when the customer joins the loyalty program. - `not_join`: The customer does not join the loyalty program but can still earn and spend loyalty points. **Note**: The customer does not have a program join date. - `points_activated`: The customer joins the loyalty program only when their earned loyalty points become active for the first time. - `points_earned`: The customer joins the loyalty program when they earn loyalty points for the first time. ") + @ApiModelProperty(value = "") - public ProgramJoinPolicyEnum getProgramJoinPolicy() { - return programJoinPolicy; + public CodeGeneratorSettings getCardCodeSettings() { + return cardCodeSettings; } - public void setProgramJoinPolicy(ProgramJoinPolicyEnum programJoinPolicy) { - this.programJoinPolicy = programJoinPolicy; + public void setCardCodeSettings(CodeGeneratorSettings cardCodeSettings) { + this.cardCodeSettings = cardCodeSettings; } @@ -525,15 +585,17 @@ public boolean equals(java.lang.Object o) { Objects.equals(this.allowSubledger, baseLoyaltyProgram.allowSubledger) && Objects.equals(this.usersPerCardLimit, baseLoyaltyProgram.usersPerCardLimit) && Objects.equals(this.sandbox, baseLoyaltyProgram.sandbox) && + Objects.equals(this.programJoinPolicy, baseLoyaltyProgram.programJoinPolicy) && Objects.equals(this.tiersExpirationPolicy, baseLoyaltyProgram.tiersExpirationPolicy) && + Objects.equals(this.tiersStartDate, baseLoyaltyProgram.tiersStartDate) && Objects.equals(this.tiersExpireIn, baseLoyaltyProgram.tiersExpireIn) && Objects.equals(this.tiersDowngradePolicy, baseLoyaltyProgram.tiersDowngradePolicy) && - Objects.equals(this.programJoinPolicy, baseLoyaltyProgram.programJoinPolicy); + Objects.equals(this.cardCodeSettings, baseLoyaltyProgram.cardCodeSettings); } @Override public int hashCode() { - return Objects.hash(title, description, subscribedApplications, defaultValidity, defaultPending, allowSubledger, usersPerCardLimit, sandbox, tiersExpirationPolicy, tiersExpireIn, tiersDowngradePolicy, programJoinPolicy); + return Objects.hash(title, description, subscribedApplications, defaultValidity, defaultPending, allowSubledger, usersPerCardLimit, sandbox, programJoinPolicy, tiersExpirationPolicy, tiersStartDate, tiersExpireIn, tiersDowngradePolicy, cardCodeSettings); } @@ -549,10 +611,12 @@ public String toString() { sb.append(" allowSubledger: ").append(toIndentedString(allowSubledger)).append("\n"); sb.append(" usersPerCardLimit: ").append(toIndentedString(usersPerCardLimit)).append("\n"); sb.append(" sandbox: ").append(toIndentedString(sandbox)).append("\n"); + sb.append(" programJoinPolicy: ").append(toIndentedString(programJoinPolicy)).append("\n"); sb.append(" tiersExpirationPolicy: ").append(toIndentedString(tiersExpirationPolicy)).append("\n"); + sb.append(" tiersStartDate: ").append(toIndentedString(tiersStartDate)).append("\n"); sb.append(" tiersExpireIn: ").append(toIndentedString(tiersExpireIn)).append("\n"); sb.append(" tiersDowngradePolicy: ").append(toIndentedString(tiersDowngradePolicy)).append("\n"); - sb.append(" programJoinPolicy: ").append(toIndentedString(programJoinPolicy)).append("\n"); + sb.append(" cardCodeSettings: ").append(toIndentedString(cardCodeSettings)).append("\n"); sb.append("}"); return sb.toString(); } diff --git a/src/main/java/one/talon/model/BaseNotification.java b/src/main/java/one/talon/model/BaseNotification.java index b7788315..deea1b0f 100644 --- a/src/main/java/one/talon/model/BaseNotification.java +++ b/src/main/java/one/talon/model/BaseNotification.java @@ -56,6 +56,8 @@ public enum TypeEnum { LOYALTY_ADDED_DEDUCTED_POINTS("loyalty_added_deducted_points"), + CARD_ADDED_DEDUCTED_POINTS("card_added_deducted_points"), + COUPON("coupon"), EXPIRING_COUPONS("expiring_coupons"), @@ -124,10 +126,10 @@ public BaseNotification policy(Object policy) { } /** - * Get policy + * Indicates which notification properties to apply. * @return policy **/ - @ApiModelProperty(required = true, value = "") + @ApiModelProperty(required = true, value = "Indicates which notification properties to apply.") public Object getPolicy() { return policy; diff --git a/src/main/java/one/talon/model/BaseNotificationEntity.java b/src/main/java/one/talon/model/BaseNotificationEntity.java index eea9b566..cc982549 100644 --- a/src/main/java/one/talon/model/BaseNotificationEntity.java +++ b/src/main/java/one/talon/model/BaseNotificationEntity.java @@ -45,10 +45,10 @@ public BaseNotificationEntity policy(Object policy) { } /** - * Get policy + * Indicates which notification properties to apply. * @return policy **/ - @ApiModelProperty(required = true, value = "") + @ApiModelProperty(required = true, value = "Indicates which notification properties to apply.") public Object getPolicy() { return policy; diff --git a/src/main/java/one/talon/model/Campaign.java b/src/main/java/one/talon/model/Campaign.java index eefb8d2d..2b7eab81 100644 --- a/src/main/java/one/talon/model/Campaign.java +++ b/src/main/java/one/talon/model/Campaign.java @@ -407,6 +407,10 @@ public FrontendStateEnum read(final JsonReader jsonReader) throws IOException { @SerializedName(SERIALIZED_NAME_FRONTEND_STATE) private FrontendStateEnum frontendState; + public static final String SERIALIZED_NAME_STORES_IMPORTED = "storesImported"; + @SerializedName(SERIALIZED_NAME_STORES_IMPORTED) + private Boolean storesImported; + public Campaign id(Integer id) { @@ -1374,6 +1378,28 @@ public void setFrontendState(FrontendStateEnum frontendState) { } + public Campaign storesImported(Boolean storesImported) { + + this.storesImported = storesImported; + return this; + } + + /** + * Indicates whether the linked stores were imported via a CSV file. + * @return storesImported + **/ + @ApiModelProperty(example = "true", required = true, value = "Indicates whether the linked stores were imported via a CSV file.") + + public Boolean getStoresImported() { + return storesImported; + } + + + public void setStoresImported(Boolean storesImported) { + this.storesImported = storesImported; + } + + @Override public boolean equals(java.lang.Object o) { if (this == o) { @@ -1423,12 +1449,13 @@ public boolean equals(java.lang.Object o) { Objects.equals(this.createdBy, campaign.createdBy) && Objects.equals(this.updatedBy, campaign.updatedBy) && Objects.equals(this.templateId, campaign.templateId) && - Objects.equals(this.frontendState, campaign.frontendState); + Objects.equals(this.frontendState, campaign.frontendState) && + Objects.equals(this.storesImported, campaign.storesImported); } @Override public int hashCode() { - return Objects.hash(id, created, applicationId, userId, name, description, startTime, endTime, attributes, state, activeRulesetId, tags, features, couponSettings, referralSettings, limits, campaignGroups, type, linkedStoreIds, budgets, couponRedemptionCount, referralRedemptionCount, discountCount, discountEffectCount, couponCreationCount, customEffectCount, referralCreationCount, addFreeItemEffectCount, awardedGiveawaysCount, createdLoyaltyPointsCount, createdLoyaltyPointsEffectCount, redeemedLoyaltyPointsCount, redeemedLoyaltyPointsEffectCount, callApiEffectCount, reservecouponEffectCount, lastActivity, updated, createdBy, updatedBy, templateId, frontendState); + return Objects.hash(id, created, applicationId, userId, name, description, startTime, endTime, attributes, state, activeRulesetId, tags, features, couponSettings, referralSettings, limits, campaignGroups, type, linkedStoreIds, budgets, couponRedemptionCount, referralRedemptionCount, discountCount, discountEffectCount, couponCreationCount, customEffectCount, referralCreationCount, addFreeItemEffectCount, awardedGiveawaysCount, createdLoyaltyPointsCount, createdLoyaltyPointsEffectCount, redeemedLoyaltyPointsCount, redeemedLoyaltyPointsEffectCount, callApiEffectCount, reservecouponEffectCount, lastActivity, updated, createdBy, updatedBy, templateId, frontendState, storesImported); } @@ -1477,6 +1504,7 @@ public String toString() { sb.append(" updatedBy: ").append(toIndentedString(updatedBy)).append("\n"); sb.append(" templateId: ").append(toIndentedString(templateId)).append("\n"); sb.append(" frontendState: ").append(toIndentedString(frontendState)).append("\n"); + sb.append(" storesImported: ").append(toIndentedString(storesImported)).append("\n"); sb.append("}"); return sb.toString(); } diff --git a/src/main/java/one/talon/model/CampaignNotificationPolicy.java b/src/main/java/one/talon/model/CampaignNotificationPolicy.java index 1822a31c..e52d3078 100644 --- a/src/main/java/one/talon/model/CampaignNotificationPolicy.java +++ b/src/main/java/one/talon/model/CampaignNotificationPolicy.java @@ -33,6 +33,10 @@ public class CampaignNotificationPolicy { @SerializedName(SERIALIZED_NAME_NAME) private String name; + public static final String SERIALIZED_NAME_BATCHING_ENABLED = "batchingEnabled"; + @SerializedName(SERIALIZED_NAME_BATCHING_ENABLED) + private Boolean batchingEnabled = true; + public CampaignNotificationPolicy name(String name) { @@ -56,6 +60,29 @@ public void setName(String name) { } + public CampaignNotificationPolicy batchingEnabled(Boolean batchingEnabled) { + + this.batchingEnabled = batchingEnabled; + return this; + } + + /** + * Indicates whether batching is activated. + * @return batchingEnabled + **/ + @javax.annotation.Nullable + @ApiModelProperty(example = "false", value = "Indicates whether batching is activated.") + + public Boolean getBatchingEnabled() { + return batchingEnabled; + } + + + public void setBatchingEnabled(Boolean batchingEnabled) { + this.batchingEnabled = batchingEnabled; + } + + @Override public boolean equals(java.lang.Object o) { if (this == o) { @@ -65,12 +92,13 @@ public boolean equals(java.lang.Object o) { return false; } CampaignNotificationPolicy campaignNotificationPolicy = (CampaignNotificationPolicy) o; - return Objects.equals(this.name, campaignNotificationPolicy.name); + return Objects.equals(this.name, campaignNotificationPolicy.name) && + Objects.equals(this.batchingEnabled, campaignNotificationPolicy.batchingEnabled); } @Override public int hashCode() { - return Objects.hash(name); + return Objects.hash(name, batchingEnabled); } @@ -79,6 +107,7 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class CampaignNotificationPolicy {\n"); sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" batchingEnabled: ").append(toIndentedString(batchingEnabled)).append("\n"); sb.append("}"); return sb.toString(); } diff --git a/src/main/java/one/talon/model/CardAddedDeductedPointsNotificationPolicy.java b/src/main/java/one/talon/model/CardAddedDeductedPointsNotificationPolicy.java new file mode 100644 index 00000000..d306da95 --- /dev/null +++ b/src/main/java/one/talon/model/CardAddedDeductedPointsNotificationPolicy.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 java.util.ArrayList; +import java.util.List; + +/** + * CardAddedDeductedPointsNotificationPolicy + */ + +public class CardAddedDeductedPointsNotificationPolicy { + public static final String SERIALIZED_NAME_NAME = "name"; + @SerializedName(SERIALIZED_NAME_NAME) + private String name; + + /** + * Gets or Sets scopes + */ + @JsonAdapter(ScopesEnum.Adapter.class) + public enum ScopesEnum { + ALL("all"), + + CAMPAIGN_MANAGER("campaign_manager"), + + MANAGEMENT_API("management_api"), + + RULE_ENGINE("rule_engine"); + + private String value; + + ScopesEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static ScopesEnum fromValue(String value) { + for (ScopesEnum b : ScopesEnum.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 ScopesEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public ScopesEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return ScopesEnum.fromValue(value); + } + } + } + + public static final String SERIALIZED_NAME_SCOPES = "scopes"; + @SerializedName(SERIALIZED_NAME_SCOPES) + private List scopes = new ArrayList(); + + + public CardAddedDeductedPointsNotificationPolicy name(String name) { + + this.name = name; + return this; + } + + /** + * Notification name. + * @return name + **/ + @ApiModelProperty(example = "Christmas Sale", required = true, value = "Notification name.") + + public String getName() { + return name; + } + + + public void setName(String name) { + this.name = name; + } + + + public CardAddedDeductedPointsNotificationPolicy scopes(List scopes) { + + this.scopes = scopes; + return this; + } + + public CardAddedDeductedPointsNotificationPolicy addScopesItem(ScopesEnum scopesItem) { + this.scopes.add(scopesItem); + return this; + } + + /** + * Get scopes + * @return scopes + **/ + @ApiModelProperty(required = true, value = "") + + public List getScopes() { + return scopes; + } + + + public void setScopes(List scopes) { + this.scopes = scopes; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CardAddedDeductedPointsNotificationPolicy cardAddedDeductedPointsNotificationPolicy = (CardAddedDeductedPointsNotificationPolicy) o; + return Objects.equals(this.name, cardAddedDeductedPointsNotificationPolicy.name) && + Objects.equals(this.scopes, cardAddedDeductedPointsNotificationPolicy.scopes); + } + + @Override + public int hashCode() { + return Objects.hash(name, scopes); + } + + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CardAddedDeductedPointsNotificationPolicy {\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" scopes: ").append(toIndentedString(scopes)).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/CartItem.java b/src/main/java/one/talon/model/CartItem.java index bccf1bd1..2767df07 100644 --- a/src/main/java/one/talon/model/CartItem.java +++ b/src/main/java/one/talon/model/CartItem.java @@ -29,14 +29,11 @@ import java.util.Map; import one.talon.model.AdditionalCost; import one.talon.model.Product; -import one.talon.custom.JsonNullable; -import one.talon.custom.NullableAdapterFactory; /** * CartItem */ -@JsonAdapter(NullableAdapterFactory.class) public class CartItem { public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) @@ -92,8 +89,6 @@ public class CartItem { public static final String SERIALIZED_NAME_ATTRIBUTES = "attributes"; @SerializedName(SERIALIZED_NAME_ATTRIBUTES) - /*allow Serializing null for this field */ - @JsonNullable private Object attributes; public static final String SERIALIZED_NAME_ADDITIONAL_COSTS = "additionalCosts"; diff --git a/src/main/java/one/talon/model/CodeGeneratorSettings.java b/src/main/java/one/talon/model/CodeGeneratorSettings.java index 5ceb170a..7ddfb7ed 100644 --- a/src/main/java/one/talon/model/CodeGeneratorSettings.java +++ b/src/main/java/one/talon/model/CodeGeneratorSettings.java @@ -74,10 +74,10 @@ public CodeGeneratorSettings couponPattern(String couponPattern) { } /** - * The pattern used to generate coupon codes. The character `#` is a placeholder and is replaced by a random character from the `validCharacters` set. + * The pattern used to generate codes, such as coupon codes, referral codes, and loyalty cards. The character `#` is a placeholder and is replaced by a random character from the `validCharacters` set. * @return couponPattern **/ - @ApiModelProperty(example = "SUMMER-####-####", required = true, value = "The pattern used to generate coupon codes. The character `#` is a placeholder and is replaced by a random character from the `validCharacters` set. ") + @ApiModelProperty(example = "SUMMER-####-####", required = true, value = "The pattern used to generate codes, such as coupon codes, referral codes, and loyalty cards. The character `#` is a placeholder and is replaced by a random character from the `validCharacters` set. ") public String getCouponPattern() { return couponPattern; diff --git a/src/main/java/one/talon/model/CustomerProfileIntegrationRequestV2.java b/src/main/java/one/talon/model/CustomerProfileIntegrationRequestV2.java index 9856c651..9c9a16f1 100644 --- a/src/main/java/one/talon/model/CustomerProfileIntegrationRequestV2.java +++ b/src/main/java/one/talon/model/CustomerProfileIntegrationRequestV2.java @@ -26,20 +26,15 @@ import java.util.ArrayList; import java.util.List; import one.talon.model.ProfileAudiencesChanges; -import one.talon.custom.JsonNullable; -import one.talon.custom.NullableAdapterFactory; /** * */ @ApiModel(description = "") -@JsonAdapter(NullableAdapterFactory.class) public class CustomerProfileIntegrationRequestV2 { public static final String SERIALIZED_NAME_ATTRIBUTES = "attributes"; @SerializedName(SERIALIZED_NAME_ATTRIBUTES) - /*allow Serializing null for this field */ - @JsonNullable private Object attributes; public static final String SERIALIZED_NAME_EVALUABLE_CAMPAIGN_IDS = "evaluableCampaignIds"; diff --git a/src/main/java/one/talon/model/Effect.java b/src/main/java/one/talon/model/Effect.java index 2f878ad8..a04f81c5 100644 --- a/src/main/java/one/talon/model/Effect.java +++ b/src/main/java/one/talon/model/Effect.java @@ -62,6 +62,14 @@ public class Effect { @SerializedName(SERIALIZED_NAME_CONDITION_INDEX) private Integer conditionIndex; + public static final String SERIALIZED_NAME_EVALUATION_GROUP_I_D = "evaluationGroupID"; + @SerializedName(SERIALIZED_NAME_EVALUATION_GROUP_I_D) + private Integer evaluationGroupID; + + public static final String SERIALIZED_NAME_EVALUATION_GROUP_MODE = "evaluationGroupMode"; + @SerializedName(SERIALIZED_NAME_EVALUATION_GROUP_MODE) + private String evaluationGroupMode; + public static final String SERIALIZED_NAME_PROPS = "props"; @SerializedName(SERIALIZED_NAME_PROPS) private Object props; @@ -246,6 +254,52 @@ public void setConditionIndex(Integer conditionIndex) { } + public Effect evaluationGroupID(Integer evaluationGroupID) { + + this.evaluationGroupID = evaluationGroupID; + return this; + } + + /** + * The ID of the evaluation group. For more information, see [Managing campaign evaluation](https://docs.talon.one/docs/product/applications/managing-campaign-evaluation). + * @return evaluationGroupID + **/ + @javax.annotation.Nullable + @ApiModelProperty(example = "3", value = "The ID of the evaluation group. For more information, see [Managing campaign evaluation](https://docs.talon.one/docs/product/applications/managing-campaign-evaluation).") + + public Integer getEvaluationGroupID() { + return evaluationGroupID; + } + + + public void setEvaluationGroupID(Integer evaluationGroupID) { + this.evaluationGroupID = evaluationGroupID; + } + + + public Effect evaluationGroupMode(String evaluationGroupMode) { + + this.evaluationGroupMode = evaluationGroupMode; + return this; + } + + /** + * The evaluation mode of the evaluation group. For more information, see [Managing campaign evaluation](https://docs.talon.one/docs/product/applications/managing-campaign-evaluation). + * @return evaluationGroupMode + **/ + @javax.annotation.Nullable + @ApiModelProperty(example = "stackable", value = "The evaluation mode of the evaluation group. For more information, see [Managing campaign evaluation](https://docs.talon.one/docs/product/applications/managing-campaign-evaluation).") + + public String getEvaluationGroupMode() { + return evaluationGroupMode; + } + + + public void setEvaluationGroupMode(String evaluationGroupMode) { + this.evaluationGroupMode = evaluationGroupMode; + } + + public Effect props(Object props) { this.props = props; @@ -285,12 +339,14 @@ public boolean equals(java.lang.Object o) { Objects.equals(this.triggeredByCoupon, effect.triggeredByCoupon) && Objects.equals(this.triggeredForCatalogItem, effect.triggeredForCatalogItem) && Objects.equals(this.conditionIndex, effect.conditionIndex) && + Objects.equals(this.evaluationGroupID, effect.evaluationGroupID) && + Objects.equals(this.evaluationGroupMode, effect.evaluationGroupMode) && Objects.equals(this.props, effect.props); } @Override public int hashCode() { - return Objects.hash(campaignId, rulesetId, ruleIndex, ruleName, effectType, triggeredByCoupon, triggeredForCatalogItem, conditionIndex, props); + return Objects.hash(campaignId, rulesetId, ruleIndex, ruleName, effectType, triggeredByCoupon, triggeredForCatalogItem, conditionIndex, evaluationGroupID, evaluationGroupMode, props); } @@ -306,6 +362,8 @@ public String toString() { sb.append(" triggeredByCoupon: ").append(toIndentedString(triggeredByCoupon)).append("\n"); sb.append(" triggeredForCatalogItem: ").append(toIndentedString(triggeredForCatalogItem)).append("\n"); sb.append(" conditionIndex: ").append(toIndentedString(conditionIndex)).append("\n"); + sb.append(" evaluationGroupID: ").append(toIndentedString(evaluationGroupID)).append("\n"); + sb.append(" evaluationGroupMode: ").append(toIndentedString(evaluationGroupMode)).append("\n"); sb.append(" props: ").append(toIndentedString(props)).append("\n"); sb.append("}"); return sb.toString(); diff --git a/src/main/java/one/talon/model/EffectEntity.java b/src/main/java/one/talon/model/EffectEntity.java index f12a9500..87967430 100644 --- a/src/main/java/one/talon/model/EffectEntity.java +++ b/src/main/java/one/talon/model/EffectEntity.java @@ -62,6 +62,14 @@ public class EffectEntity { @SerializedName(SERIALIZED_NAME_CONDITION_INDEX) private Integer conditionIndex; + public static final String SERIALIZED_NAME_EVALUATION_GROUP_I_D = "evaluationGroupID"; + @SerializedName(SERIALIZED_NAME_EVALUATION_GROUP_I_D) + private Integer evaluationGroupID; + + public static final String SERIALIZED_NAME_EVALUATION_GROUP_MODE = "evaluationGroupMode"; + @SerializedName(SERIALIZED_NAME_EVALUATION_GROUP_MODE) + private String evaluationGroupMode; + public EffectEntity campaignId(Integer campaignId) { @@ -242,6 +250,52 @@ public void setConditionIndex(Integer conditionIndex) { } + public EffectEntity evaluationGroupID(Integer evaluationGroupID) { + + this.evaluationGroupID = evaluationGroupID; + return this; + } + + /** + * The ID of the evaluation group. For more information, see [Managing campaign evaluation](https://docs.talon.one/docs/product/applications/managing-campaign-evaluation). + * @return evaluationGroupID + **/ + @javax.annotation.Nullable + @ApiModelProperty(example = "3", value = "The ID of the evaluation group. For more information, see [Managing campaign evaluation](https://docs.talon.one/docs/product/applications/managing-campaign-evaluation).") + + public Integer getEvaluationGroupID() { + return evaluationGroupID; + } + + + public void setEvaluationGroupID(Integer evaluationGroupID) { + this.evaluationGroupID = evaluationGroupID; + } + + + public EffectEntity evaluationGroupMode(String evaluationGroupMode) { + + this.evaluationGroupMode = evaluationGroupMode; + return this; + } + + /** + * The evaluation mode of the evaluation group. For more information, see [Managing campaign evaluation](https://docs.talon.one/docs/product/applications/managing-campaign-evaluation). + * @return evaluationGroupMode + **/ + @javax.annotation.Nullable + @ApiModelProperty(example = "stackable", value = "The evaluation mode of the evaluation group. For more information, see [Managing campaign evaluation](https://docs.talon.one/docs/product/applications/managing-campaign-evaluation).") + + public String getEvaluationGroupMode() { + return evaluationGroupMode; + } + + + public void setEvaluationGroupMode(String evaluationGroupMode) { + this.evaluationGroupMode = evaluationGroupMode; + } + + @Override public boolean equals(java.lang.Object o) { if (this == o) { @@ -258,12 +312,14 @@ public boolean equals(java.lang.Object o) { Objects.equals(this.effectType, effectEntity.effectType) && Objects.equals(this.triggeredByCoupon, effectEntity.triggeredByCoupon) && Objects.equals(this.triggeredForCatalogItem, effectEntity.triggeredForCatalogItem) && - Objects.equals(this.conditionIndex, effectEntity.conditionIndex); + Objects.equals(this.conditionIndex, effectEntity.conditionIndex) && + Objects.equals(this.evaluationGroupID, effectEntity.evaluationGroupID) && + Objects.equals(this.evaluationGroupMode, effectEntity.evaluationGroupMode); } @Override public int hashCode() { - return Objects.hash(campaignId, rulesetId, ruleIndex, ruleName, effectType, triggeredByCoupon, triggeredForCatalogItem, conditionIndex); + return Objects.hash(campaignId, rulesetId, ruleIndex, ruleName, effectType, triggeredByCoupon, triggeredForCatalogItem, conditionIndex, evaluationGroupID, evaluationGroupMode); } @@ -279,6 +335,8 @@ public String toString() { sb.append(" triggeredByCoupon: ").append(toIndentedString(triggeredByCoupon)).append("\n"); sb.append(" triggeredForCatalogItem: ").append(toIndentedString(triggeredForCatalogItem)).append("\n"); sb.append(" conditionIndex: ").append(toIndentedString(conditionIndex)).append("\n"); + sb.append(" evaluationGroupID: ").append(toIndentedString(evaluationGroupID)).append("\n"); + sb.append(" evaluationGroupMode: ").append(toIndentedString(evaluationGroupMode)).append("\n"); sb.append("}"); return sb.toString(); } diff --git a/src/main/java/one/talon/model/GenerateCampaignDescription.java b/src/main/java/one/talon/model/GenerateCampaignDescription.java new file mode 100644 index 00000000..ae05a2f8 --- /dev/null +++ b/src/main/java/one/talon/model/GenerateCampaignDescription.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 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; + +/** + * GenerateCampaignDescription + */ + +public class GenerateCampaignDescription { + public static final String SERIALIZED_NAME_CAMPAIGN_I_D = "campaignID"; + @SerializedName(SERIALIZED_NAME_CAMPAIGN_I_D) + private Integer campaignID; + + public static final String SERIALIZED_NAME_CURRENCY = "currency"; + @SerializedName(SERIALIZED_NAME_CURRENCY) + private String currency; + + + public GenerateCampaignDescription campaignID(Integer campaignID) { + + this.campaignID = campaignID; + return this; + } + + /** + * ID of the campaign. + * @return campaignID + **/ + @ApiModelProperty(required = true, value = "ID of the campaign.") + + public Integer getCampaignID() { + return campaignID; + } + + + public void setCampaignID(Integer campaignID) { + this.campaignID = campaignID; + } + + + public GenerateCampaignDescription 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; + } + GenerateCampaignDescription generateCampaignDescription = (GenerateCampaignDescription) o; + return Objects.equals(this.campaignID, generateCampaignDescription.campaignID) && + Objects.equals(this.currency, generateCampaignDescription.currency); + } + + @Override + public int hashCode() { + return Objects.hash(campaignID, currency); + } + + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class GenerateCampaignDescription {\n"); + sb.append(" campaignID: ").append(toIndentedString(campaignID)).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/GenerateCampaignTags.java b/src/main/java/one/talon/model/GenerateCampaignTags.java new file mode 100644 index 00000000..43cabe54 --- /dev/null +++ b/src/main/java/one/talon/model/GenerateCampaignTags.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; + +/** + * GenerateCampaignTags + */ + +public class GenerateCampaignTags { + public static final String SERIALIZED_NAME_CAMPAIGN_I_D = "campaignID"; + @SerializedName(SERIALIZED_NAME_CAMPAIGN_I_D) + private Integer campaignID; + + + public GenerateCampaignTags campaignID(Integer campaignID) { + + this.campaignID = campaignID; + return this; + } + + /** + * ID of the campaign. + * @return campaignID + **/ + @ApiModelProperty(required = true, value = "ID of the campaign.") + + public Integer getCampaignID() { + return campaignID; + } + + + public void setCampaignID(Integer campaignID) { + this.campaignID = campaignID; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + GenerateCampaignTags generateCampaignTags = (GenerateCampaignTags) o; + return Objects.equals(this.campaignID, generateCampaignTags.campaignID); + } + + @Override + public int hashCode() { + return Objects.hash(campaignID); + } + + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class GenerateCampaignTags {\n"); + sb.append(" campaignID: ").append(toIndentedString(campaignID)).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/GenerateItemFilterDescription.java b/src/main/java/one/talon/model/GenerateItemFilterDescription.java new file mode 100644 index 00000000..f6070c14 --- /dev/null +++ b/src/main/java/one/talon/model/GenerateItemFilterDescription.java @@ -0,0 +1,105 @@ +/* + * 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; + +/** + * GenerateItemFilterDescription + */ + +public class GenerateItemFilterDescription { + public static final String SERIALIZED_NAME_ITEM_FILTER = "itemFilter"; + @SerializedName(SERIALIZED_NAME_ITEM_FILTER) + private List itemFilter = new ArrayList(); + + + public GenerateItemFilterDescription itemFilter(List itemFilter) { + + this.itemFilter = itemFilter; + return this; + } + + public GenerateItemFilterDescription addItemFilterItem(Object itemFilterItem) { + this.itemFilter.add(itemFilterItem); + return this; + } + + /** + * An array of item filter Talang expressions. + * @return itemFilter + **/ + @ApiModelProperty(example = "[filter, [., Session, CartItems], [[Item], [catch, false, [and, [!=, [., Item, Attributes, c_productType], egiftcard]]]]]", required = true, value = "An array of item filter Talang expressions.") + + public List getItemFilter() { + return itemFilter; + } + + + public void setItemFilter(List itemFilter) { + this.itemFilter = itemFilter; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + GenerateItemFilterDescription generateItemFilterDescription = (GenerateItemFilterDescription) o; + return Objects.equals(this.itemFilter, generateItemFilterDescription.itemFilter); + } + + @Override + public int hashCode() { + return Objects.hash(itemFilter); + } + + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class GenerateItemFilterDescription {\n"); + sb.append(" itemFilter: ").append(toIndentedString(itemFilter)).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/GenerateRuleTitle.java b/src/main/java/one/talon/model/GenerateRuleTitle.java new file mode 100644 index 00000000..78eecb30 --- /dev/null +++ b/src/main/java/one/talon/model/GenerateRuleTitle.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; +import one.talon.model.GenerateRuleTitleRule; + +/** + * GenerateRuleTitle + */ + +public class GenerateRuleTitle { + public static final String SERIALIZED_NAME_RULE = "rule"; + @SerializedName(SERIALIZED_NAME_RULE) + private GenerateRuleTitleRule rule; + + public static final String SERIALIZED_NAME_CURRENCY = "currency"; + @SerializedName(SERIALIZED_NAME_CURRENCY) + private String currency; + + + public GenerateRuleTitle rule(GenerateRuleTitleRule rule) { + + this.rule = rule; + return this; + } + + /** + * Get rule + * @return rule + **/ + @ApiModelProperty(required = true, value = "") + + public GenerateRuleTitleRule getRule() { + return rule; + } + + + public void setRule(GenerateRuleTitleRule rule) { + this.rule = rule; + } + + + public GenerateRuleTitle 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; + } + GenerateRuleTitle generateRuleTitle = (GenerateRuleTitle) o; + return Objects.equals(this.rule, generateRuleTitle.rule) && + Objects.equals(this.currency, generateRuleTitle.currency); + } + + @Override + public int hashCode() { + return Objects.hash(rule, currency); + } + + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class GenerateRuleTitle {\n"); + sb.append(" rule: ").append(toIndentedString(rule)).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/GenerateRuleTitleRule.java b/src/main/java/one/talon/model/GenerateRuleTitleRule.java new file mode 100644 index 00000000..15bbe330 --- /dev/null +++ b/src/main/java/one/talon/model/GenerateRuleTitleRule.java @@ -0,0 +1,146 @@ +/* + * 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; + +/** + * GenerateRuleTitleRule + */ + +public class GenerateRuleTitleRule { + public static final String SERIALIZED_NAME_EFFECTS = "effects"; + @SerializedName(SERIALIZED_NAME_EFFECTS) + private List effects = null; + + public static final String SERIALIZED_NAME_CONDITION = "condition"; + @SerializedName(SERIALIZED_NAME_CONDITION) + private List condition = null; + + + public GenerateRuleTitleRule effects(List effects) { + + this.effects = effects; + return this; + } + + public GenerateRuleTitleRule addEffectsItem(Object effectsItem) { + if (this.effects == null) { + this.effects = new ArrayList(); + } + this.effects.add(effectsItem); + return this; + } + + /** + * An array of effectful Talang expressions in arrays that will be evaluated when a rule matches. + * @return effects + **/ + @javax.annotation.Nullable + @ApiModelProperty(example = "[catch, [noop], [setDiscount, 10% off, [*, [., Session, Total], [/, 10, 100]]]]", value = "An array of effectful Talang expressions in arrays that will be evaluated when a rule matches.") + + public List getEffects() { + return effects; + } + + + public void setEffects(List effects) { + this.effects = effects; + } + + + public GenerateRuleTitleRule condition(List condition) { + + this.condition = condition; + return this; + } + + public GenerateRuleTitleRule addConditionItem(Object conditionItem) { + if (this.condition == null) { + this.condition = new ArrayList(); + } + this.condition.add(conditionItem); + return this; + } + + /** + * A Talang expression that will be evaluated in the context of the given event. + * @return condition + **/ + @javax.annotation.Nullable + @ApiModelProperty(example = "[and, [couponValid]]", value = "A Talang expression that will be evaluated in the context of the given event.") + + public List getCondition() { + return condition; + } + + + public void setCondition(List condition) { + this.condition = condition; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + GenerateRuleTitleRule generateRuleTitleRule = (GenerateRuleTitleRule) o; + return Objects.equals(this.effects, generateRuleTitleRule.effects) && + Objects.equals(this.condition, generateRuleTitleRule.condition); + } + + @Override + public int hashCode() { + return Objects.hash(effects, condition); + } + + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class GenerateRuleTitleRule {\n"); + sb.append(" effects: ").append(toIndentedString(effects)).append("\n"); + sb.append(" condition: ").append(toIndentedString(condition)).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/IncreaseAchievementProgressEffectProps.java b/src/main/java/one/talon/model/IncreaseAchievementProgressEffectProps.java index 31a9d1fa..6fc0dc15 100644 --- a/src/main/java/one/talon/model/IncreaseAchievementProgressEffectProps.java +++ b/src/main/java/one/talon/model/IncreaseAchievementProgressEffectProps.java @@ -178,10 +178,10 @@ public IncreaseAchievementProgressEffectProps target(BigDecimal target) { } /** - * The required number of actions or the transactional milestone to complete the achievement. + * The target value to complete the achievement. * @return target **/ - @ApiModelProperty(required = true, value = "The required number of actions or the transactional milestone to complete the achievement.") + @ApiModelProperty(required = true, value = "The target value to complete the achievement.") public BigDecimal getTarget() { return target; diff --git a/src/main/java/one/talon/model/IntegrationEventV2Request.java b/src/main/java/one/talon/model/IntegrationEventV2Request.java index 441f8496..0ba80802 100644 --- a/src/main/java/one/talon/model/IntegrationEventV2Request.java +++ b/src/main/java/one/talon/model/IntegrationEventV2Request.java @@ -25,14 +25,11 @@ import java.io.IOException; import java.util.ArrayList; import java.util.List; -import one.talon.custom.JsonNullable; -import one.talon.custom.NullableAdapterFactory; /** * */ @ApiModel(description = "") -@JsonAdapter(NullableAdapterFactory.class) public class IntegrationEventV2Request { public static final String SERIALIZED_NAME_PROFILE_ID = "profileId"; @@ -53,8 +50,6 @@ public class IntegrationEventV2Request { public static final String SERIALIZED_NAME_ATTRIBUTES = "attributes"; @SerializedName(SERIALIZED_NAME_ATTRIBUTES) - /*allow Serializing null for this field */ - @JsonNullable private Object attributes; /** diff --git a/src/main/java/one/talon/model/LoyaltyBalanceWithTier.java b/src/main/java/one/talon/model/LoyaltyBalanceWithTier.java new file mode 100644 index 00000000..8cb9f589 --- /dev/null +++ b/src/main/java/one/talon/model/LoyaltyBalanceWithTier.java @@ -0,0 +1,306 @@ +/* + * 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 one.talon.model.ProjectedTier; +import one.talon.model.Tier; + +/** + * + */ +@ApiModel(description = "") + +public class LoyaltyBalanceWithTier { + public static final String SERIALIZED_NAME_ACTIVE_POINTS = "activePoints"; + @SerializedName(SERIALIZED_NAME_ACTIVE_POINTS) + private BigDecimal activePoints; + + public static final String SERIALIZED_NAME_PENDING_POINTS = "pendingPoints"; + @SerializedName(SERIALIZED_NAME_PENDING_POINTS) + private BigDecimal pendingPoints; + + public static final String SERIALIZED_NAME_SPENT_POINTS = "spentPoints"; + @SerializedName(SERIALIZED_NAME_SPENT_POINTS) + private BigDecimal spentPoints; + + public static final String SERIALIZED_NAME_EXPIRED_POINTS = "expiredPoints"; + @SerializedName(SERIALIZED_NAME_EXPIRED_POINTS) + private BigDecimal expiredPoints; + + public static final String SERIALIZED_NAME_CURRENT_TIER = "currentTier"; + @SerializedName(SERIALIZED_NAME_CURRENT_TIER) + private Tier currentTier; + + public static final String SERIALIZED_NAME_PROJECTED_TIER = "projectedTier"; + @SerializedName(SERIALIZED_NAME_PROJECTED_TIER) + private ProjectedTier projectedTier; + + public static final String SERIALIZED_NAME_POINTS_TO_NEXT_TIER = "pointsToNextTier"; + @SerializedName(SERIALIZED_NAME_POINTS_TO_NEXT_TIER) + private BigDecimal pointsToNextTier; + + public static final String SERIALIZED_NAME_NEXT_TIER_NAME = "nextTierName"; + @SerializedName(SERIALIZED_NAME_NEXT_TIER_NAME) + private String nextTierName; + + + public LoyaltyBalanceWithTier activePoints(BigDecimal activePoints) { + + this.activePoints = activePoints; + return this; + } + + /** + * Total amount of points awarded to this customer and available to spend. + * @return activePoints + **/ + @javax.annotation.Nullable + @ApiModelProperty(example = "286.0", value = "Total amount of points awarded to this customer and available to spend.") + + public BigDecimal getActivePoints() { + return activePoints; + } + + + public void setActivePoints(BigDecimal activePoints) { + this.activePoints = activePoints; + } + + + public LoyaltyBalanceWithTier pendingPoints(BigDecimal pendingPoints) { + + this.pendingPoints = pendingPoints; + return this; + } + + /** + * Total amount of points awarded to this customer but not available until their start date. + * @return pendingPoints + **/ + @javax.annotation.Nullable + @ApiModelProperty(example = "50.0", value = "Total amount of points awarded to this customer but not available until their start date.") + + public BigDecimal getPendingPoints() { + return pendingPoints; + } + + + public void setPendingPoints(BigDecimal pendingPoints) { + this.pendingPoints = pendingPoints; + } + + + public LoyaltyBalanceWithTier spentPoints(BigDecimal spentPoints) { + + this.spentPoints = spentPoints; + return this; + } + + /** + * Total amount of points already spent by this customer. + * @return spentPoints + **/ + @javax.annotation.Nullable + @ApiModelProperty(example = "150.0", value = "Total amount of points already spent by this customer.") + + public BigDecimal getSpentPoints() { + return spentPoints; + } + + + public void setSpentPoints(BigDecimal spentPoints) { + this.spentPoints = spentPoints; + } + + + public LoyaltyBalanceWithTier expiredPoints(BigDecimal expiredPoints) { + + this.expiredPoints = expiredPoints; + return this; + } + + /** + * Total amount of points awarded but never redeemed. They cannot be used anymore. + * @return expiredPoints + **/ + @javax.annotation.Nullable + @ApiModelProperty(example = "286.0", value = "Total amount of points awarded but never redeemed. They cannot be used anymore.") + + public BigDecimal getExpiredPoints() { + return expiredPoints; + } + + + public void setExpiredPoints(BigDecimal expiredPoints) { + this.expiredPoints = expiredPoints; + } + + + public LoyaltyBalanceWithTier currentTier(Tier currentTier) { + + this.currentTier = currentTier; + return this; + } + + /** + * Get currentTier + * @return currentTier + **/ + @javax.annotation.Nullable + @ApiModelProperty(value = "") + + public Tier getCurrentTier() { + return currentTier; + } + + + public void setCurrentTier(Tier currentTier) { + this.currentTier = currentTier; + } + + + public LoyaltyBalanceWithTier projectedTier(ProjectedTier projectedTier) { + + this.projectedTier = projectedTier; + return this; + } + + /** + * Get projectedTier + * @return projectedTier + **/ + @javax.annotation.Nullable + @ApiModelProperty(value = "") + + public ProjectedTier getProjectedTier() { + return projectedTier; + } + + + public void setProjectedTier(ProjectedTier projectedTier) { + this.projectedTier = projectedTier; + } + + + public LoyaltyBalanceWithTier pointsToNextTier(BigDecimal pointsToNextTier) { + + this.pointsToNextTier = pointsToNextTier; + return this; + } + + /** + * The number of points required to move up a tier. + * @return pointsToNextTier + **/ + @javax.annotation.Nullable + @ApiModelProperty(example = "20.0", value = "The number of points required to move up a tier.") + + public BigDecimal getPointsToNextTier() { + return pointsToNextTier; + } + + + public void setPointsToNextTier(BigDecimal pointsToNextTier) { + this.pointsToNextTier = pointsToNextTier; + } + + + public LoyaltyBalanceWithTier nextTierName(String nextTierName) { + + this.nextTierName = nextTierName; + return this; + } + + /** + * The name of the tier consecutive to the current tier. + * @return nextTierName + **/ + @javax.annotation.Nullable + @ApiModelProperty(example = "silver", value = "The name of the tier consecutive to the current tier.") + + public String getNextTierName() { + return nextTierName; + } + + + public void setNextTierName(String nextTierName) { + this.nextTierName = nextTierName; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + LoyaltyBalanceWithTier loyaltyBalanceWithTier = (LoyaltyBalanceWithTier) o; + return Objects.equals(this.activePoints, loyaltyBalanceWithTier.activePoints) && + Objects.equals(this.pendingPoints, loyaltyBalanceWithTier.pendingPoints) && + Objects.equals(this.spentPoints, loyaltyBalanceWithTier.spentPoints) && + Objects.equals(this.expiredPoints, loyaltyBalanceWithTier.expiredPoints) && + Objects.equals(this.currentTier, loyaltyBalanceWithTier.currentTier) && + Objects.equals(this.projectedTier, loyaltyBalanceWithTier.projectedTier) && + Objects.equals(this.pointsToNextTier, loyaltyBalanceWithTier.pointsToNextTier) && + Objects.equals(this.nextTierName, loyaltyBalanceWithTier.nextTierName); + } + + @Override + public int hashCode() { + return Objects.hash(activePoints, pendingPoints, spentPoints, expiredPoints, currentTier, projectedTier, pointsToNextTier, nextTierName); + } + + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class LoyaltyBalanceWithTier {\n"); + sb.append(" activePoints: ").append(toIndentedString(activePoints)).append("\n"); + sb.append(" pendingPoints: ").append(toIndentedString(pendingPoints)).append("\n"); + sb.append(" spentPoints: ").append(toIndentedString(spentPoints)).append("\n"); + sb.append(" expiredPoints: ").append(toIndentedString(expiredPoints)).append("\n"); + sb.append(" currentTier: ").append(toIndentedString(currentTier)).append("\n"); + sb.append(" projectedTier: ").append(toIndentedString(projectedTier)).append("\n"); + sb.append(" pointsToNextTier: ").append(toIndentedString(pointsToNextTier)).append("\n"); + sb.append(" nextTierName: ").append(toIndentedString(nextTierName)).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/LoyaltyBalancesWithTiers.java b/src/main/java/one/talon/model/LoyaltyBalancesWithTiers.java new file mode 100644 index 00000000..4f31b0e6 --- /dev/null +++ b/src/main/java/one/talon/model/LoyaltyBalancesWithTiers.java @@ -0,0 +1,141 @@ +/* + * 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.HashMap; +import java.util.List; +import java.util.Map; +import one.talon.model.LoyaltyBalanceWithTier; + +/** + * List of loyalty balances for a ledger and its subledgers. + */ +@ApiModel(description = "List of loyalty balances for a ledger and its subledgers.") + +public class LoyaltyBalancesWithTiers { + public static final String SERIALIZED_NAME_BALANCE = "balance"; + @SerializedName(SERIALIZED_NAME_BALANCE) + private LoyaltyBalanceWithTier balance; + + public static final String SERIALIZED_NAME_SUBLEDGER_BALANCES = "subledgerBalances"; + @SerializedName(SERIALIZED_NAME_SUBLEDGER_BALANCES) + private Map subledgerBalances = null; + + + public LoyaltyBalancesWithTiers balance(LoyaltyBalanceWithTier balance) { + + this.balance = balance; + return this; + } + + /** + * Get balance + * @return balance + **/ + @javax.annotation.Nullable + @ApiModelProperty(value = "") + + public LoyaltyBalanceWithTier getBalance() { + return balance; + } + + + public void setBalance(LoyaltyBalanceWithTier balance) { + this.balance = balance; + } + + + public LoyaltyBalancesWithTiers subledgerBalances(Map subledgerBalances) { + + this.subledgerBalances = subledgerBalances; + return this; + } + + public LoyaltyBalancesWithTiers putSubledgerBalancesItem(String key, LoyaltyBalanceWithTier subledgerBalancesItem) { + if (this.subledgerBalances == null) { + this.subledgerBalances = new HashMap(); + } + this.subledgerBalances.put(key, subledgerBalancesItem); + return this; + } + + /** + * Map of the loyalty balances of the subledgers of a ledger. + * @return subledgerBalances + **/ + @javax.annotation.Nullable + @ApiModelProperty(example = "{\"mysubledger\":{\"activePoints\":286,\"pendingPoints\":50,\"spentPoints\":150,\"expiredPoints\":25}}", value = "Map of the loyalty balances of the subledgers of a ledger.") + + public Map getSubledgerBalances() { + return subledgerBalances; + } + + + public void setSubledgerBalances(Map subledgerBalances) { + this.subledgerBalances = subledgerBalances; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + LoyaltyBalancesWithTiers loyaltyBalancesWithTiers = (LoyaltyBalancesWithTiers) o; + return Objects.equals(this.balance, loyaltyBalancesWithTiers.balance) && + Objects.equals(this.subledgerBalances, loyaltyBalancesWithTiers.subledgerBalances); + } + + @Override + public int hashCode() { + return Objects.hash(balance, subledgerBalances); + } + + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class LoyaltyBalancesWithTiers {\n"); + sb.append(" balance: ").append(toIndentedString(balance)).append("\n"); + sb.append(" subledgerBalances: ").append(toIndentedString(subledgerBalances)).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/LoyaltyCard.java b/src/main/java/one/talon/model/LoyaltyCard.java index 6ae0d0d3..37a5a8d7 100644 --- a/src/main/java/one/talon/model/LoyaltyCard.java +++ b/src/main/java/one/talon/model/LoyaltyCard.java @@ -53,6 +53,10 @@ public class LoyaltyCard { @SerializedName(SERIALIZED_NAME_STATUS) private String status; + public static final String SERIALIZED_NAME_BLOCK_REASON = "blockReason"; + @SerializedName(SERIALIZED_NAME_BLOCK_REASON) + private String blockReason; + public static final String SERIALIZED_NAME_IDENTIFIER = "identifier"; @SerializedName(SERIALIZED_NAME_IDENTIFIER) private String identifier; @@ -174,6 +178,29 @@ public void setStatus(String status) { } + public LoyaltyCard blockReason(String blockReason) { + + this.blockReason = blockReason; + return this; + } + + /** + * Reason for transferring and blocking the loyalty card. + * @return blockReason + **/ + @javax.annotation.Nullable + @ApiModelProperty(example = "Current card lost. Customer needs a new card.", value = "Reason for transferring and blocking the loyalty card. ") + + public String getBlockReason() { + return blockReason; + } + + + public void setBlockReason(String blockReason) { + this.blockReason = blockReason; + } + + public LoyaltyCard identifier(String identifier) { this.identifier = identifier; @@ -386,6 +413,7 @@ public boolean equals(java.lang.Object o) { Objects.equals(this.created, loyaltyCard.created) && Objects.equals(this.programID, loyaltyCard.programID) && Objects.equals(this.status, loyaltyCard.status) && + Objects.equals(this.blockReason, loyaltyCard.blockReason) && Objects.equals(this.identifier, loyaltyCard.identifier) && Objects.equals(this.usersPerCardLimit, loyaltyCard.usersPerCardLimit) && Objects.equals(this.profiles, loyaltyCard.profiles) && @@ -398,7 +426,7 @@ public boolean equals(java.lang.Object o) { @Override public int hashCode() { - return Objects.hash(id, created, programID, status, identifier, usersPerCardLimit, profiles, ledger, subledgers, modified, oldCardIdentifier, newCardIdentifier); + return Objects.hash(id, created, programID, status, blockReason, identifier, usersPerCardLimit, profiles, ledger, subledgers, modified, oldCardIdentifier, newCardIdentifier); } @@ -410,6 +438,7 @@ public String toString() { sb.append(" created: ").append(toIndentedString(created)).append("\n"); sb.append(" programID: ").append(toIndentedString(programID)).append("\n"); sb.append(" status: ").append(toIndentedString(status)).append("\n"); + sb.append(" blockReason: ").append(toIndentedString(blockReason)).append("\n"); sb.append(" identifier: ").append(toIndentedString(identifier)).append("\n"); sb.append(" usersPerCardLimit: ").append(toIndentedString(usersPerCardLimit)).append("\n"); sb.append(" profiles: ").append(toIndentedString(profiles)).append("\n"); diff --git a/src/main/java/one/talon/model/LoyaltyProgram.java b/src/main/java/one/talon/model/LoyaltyProgram.java index 270c0aef..fe835c50 100644 --- a/src/main/java/one/talon/model/LoyaltyProgram.java +++ b/src/main/java/one/talon/model/LoyaltyProgram.java @@ -25,6 +25,7 @@ import java.io.IOException; import java.util.ArrayList; import java.util.List; +import one.talon.model.CodeGeneratorSettings; import one.talon.model.LoyaltyTier; import org.threeten.bp.OffsetDateTime; @@ -75,17 +76,19 @@ public class LoyaltyProgram { private Boolean sandbox; /** - * The policy that defines which date is used to calculate the expiration date of a customer's current tier. - `tier_start_date`: The tier expiration date is calculated based on when the customer joined the current tier. - `program_join_date`: The tier expiration date is calculated based on when the customer joined the loyalty program. + * The policy that defines when the customer joins the loyalty program. - `not_join`: The customer does not join the loyalty program but can still earn and spend loyalty points. **Note**: The customer does not have a program join date. - `points_activated`: The customer joins the loyalty program only when their earned loyalty points become active for the first time. - `points_earned`: The customer joins the loyalty program when they earn loyalty points for the first time. */ - @JsonAdapter(TiersExpirationPolicyEnum.Adapter.class) - public enum TiersExpirationPolicyEnum { - TIER_START_DATE("tier_start_date"), + @JsonAdapter(ProgramJoinPolicyEnum.Adapter.class) + public enum ProgramJoinPolicyEnum { + NOT_JOIN("not_join"), + + POINTS_ACTIVATED("points_activated"), - PROGRAM_JOIN_DATE("program_join_date"); + POINTS_EARNED("points_earned"); private String value; - TiersExpirationPolicyEnum(String value) { + ProgramJoinPolicyEnum(String value) { this.value = value; } @@ -98,8 +101,8 @@ public String toString() { return String.valueOf(value); } - public static TiersExpirationPolicyEnum fromValue(String value) { - for (TiersExpirationPolicyEnum b : TiersExpirationPolicyEnum.values()) { + public static ProgramJoinPolicyEnum fromValue(String value) { + for (ProgramJoinPolicyEnum b : ProgramJoinPolicyEnum.values()) { if (b.value.equals(value)) { return b; } @@ -107,40 +110,40 @@ public static TiersExpirationPolicyEnum fromValue(String value) { throw new IllegalArgumentException("Unexpected value '" + value + "'"); } - public static class Adapter extends TypeAdapter { + public static class Adapter extends TypeAdapter { @Override - public void write(final JsonWriter jsonWriter, final TiersExpirationPolicyEnum enumeration) throws IOException { + public void write(final JsonWriter jsonWriter, final ProgramJoinPolicyEnum enumeration) throws IOException { jsonWriter.value(enumeration.getValue()); } @Override - public TiersExpirationPolicyEnum read(final JsonReader jsonReader) throws IOException { + public ProgramJoinPolicyEnum read(final JsonReader jsonReader) throws IOException { String value = jsonReader.nextString(); - return TiersExpirationPolicyEnum.fromValue(value); + return ProgramJoinPolicyEnum.fromValue(value); } } } - public static final String SERIALIZED_NAME_TIERS_EXPIRATION_POLICY = "tiersExpirationPolicy"; - @SerializedName(SERIALIZED_NAME_TIERS_EXPIRATION_POLICY) - private TiersExpirationPolicyEnum tiersExpirationPolicy; - - public static final String SERIALIZED_NAME_TIERS_EXPIRE_IN = "tiersExpireIn"; - @SerializedName(SERIALIZED_NAME_TIERS_EXPIRE_IN) - private String tiersExpireIn; + public static final String SERIALIZED_NAME_PROGRAM_JOIN_POLICY = "programJoinPolicy"; + @SerializedName(SERIALIZED_NAME_PROGRAM_JOIN_POLICY) + private ProgramJoinPolicyEnum programJoinPolicy; /** - * Customers's tier downgrade policy. - `one_down`: Once the tier expires and if the user doesn't have enough points to stay in the tier, the user is downgraded one tier down. - `balance_based`: Once the tier expires, the user's tier is evaluated based on the amount of active points the user has at this instant. + * The policy that defines which date is used to calculate the expiration date of a customer's current tier. - `tier_start_date`: The tier expiration date is calculated based on when the customer joined the current tier. - `program_join_date`: The tier expiration date is calculated based on when the customer joined the loyalty program. - `customer_attribute`: The tier expiration date is calculated based on a custom customer attribute. - `absolute_expiration`: The tier expires on a specified date and time. **Note**: For absolute expiration, it is required to provide a `tiersStartDate.` */ - @JsonAdapter(TiersDowngradePolicyEnum.Adapter.class) - public enum TiersDowngradePolicyEnum { - ONE_DOWN("one_down"), + @JsonAdapter(TiersExpirationPolicyEnum.Adapter.class) + public enum TiersExpirationPolicyEnum { + TIER_START_DATE("tier_start_date"), - BALANCE_BASED("balance_based"); + PROGRAM_JOIN_DATE("program_join_date"), + + CUSTOMER_ATTRIBUTE("customer_attribute"), + + ABSOLUTE_EXPIRATION("absolute_expiration"); private String value; - TiersDowngradePolicyEnum(String value) { + TiersExpirationPolicyEnum(String value) { this.value = value; } @@ -153,8 +156,8 @@ public String toString() { return String.valueOf(value); } - public static TiersDowngradePolicyEnum fromValue(String value) { - for (TiersDowngradePolicyEnum b : TiersDowngradePolicyEnum.values()) { + public static TiersExpirationPolicyEnum fromValue(String value) { + for (TiersExpirationPolicyEnum b : TiersExpirationPolicyEnum.values()) { if (b.value.equals(value)) { return b; } @@ -162,38 +165,44 @@ public static TiersDowngradePolicyEnum fromValue(String value) { throw new IllegalArgumentException("Unexpected value '" + value + "'"); } - public static class Adapter extends TypeAdapter { + public static class Adapter extends TypeAdapter { @Override - public void write(final JsonWriter jsonWriter, final TiersDowngradePolicyEnum enumeration) throws IOException { + public void write(final JsonWriter jsonWriter, final TiersExpirationPolicyEnum enumeration) throws IOException { jsonWriter.value(enumeration.getValue()); } @Override - public TiersDowngradePolicyEnum read(final JsonReader jsonReader) throws IOException { + public TiersExpirationPolicyEnum read(final JsonReader jsonReader) throws IOException { String value = jsonReader.nextString(); - return TiersDowngradePolicyEnum.fromValue(value); + return TiersExpirationPolicyEnum.fromValue(value); } } } - public static final String SERIALIZED_NAME_TIERS_DOWNGRADE_POLICY = "tiersDowngradePolicy"; - @SerializedName(SERIALIZED_NAME_TIERS_DOWNGRADE_POLICY) - private TiersDowngradePolicyEnum tiersDowngradePolicy; + public static final String SERIALIZED_NAME_TIERS_EXPIRATION_POLICY = "tiersExpirationPolicy"; + @SerializedName(SERIALIZED_NAME_TIERS_EXPIRATION_POLICY) + private TiersExpirationPolicyEnum tiersExpirationPolicy; + + public static final String SERIALIZED_NAME_TIERS_START_DATE = "tiersStartDate"; + @SerializedName(SERIALIZED_NAME_TIERS_START_DATE) + private OffsetDateTime tiersStartDate; + + public static final String SERIALIZED_NAME_TIERS_EXPIRE_IN = "tiersExpireIn"; + @SerializedName(SERIALIZED_NAME_TIERS_EXPIRE_IN) + private String tiersExpireIn; /** - * The policy that defines when the customer joins the loyalty program. - `not_join`: The customer does not join the loyalty program but can still earn and spend loyalty points. **Note**: The customer does not have a program join date. - `points_activated`: The customer joins the loyalty program only when their earned loyalty points become active for the first time. - `points_earned`: The customer joins the loyalty program when they earn loyalty points for the first time. + * Customers's tier downgrade policy. - `one_down`: Once the tier expires and if the user doesn't have enough points to stay in the tier, the user is downgraded one tier down. - `balance_based`: Once the tier expires, the user's tier is evaluated based on the amount of active points the user has at this instant. */ - @JsonAdapter(ProgramJoinPolicyEnum.Adapter.class) - public enum ProgramJoinPolicyEnum { - NOT_JOIN("not_join"), - - POINTS_ACTIVATED("points_activated"), + @JsonAdapter(TiersDowngradePolicyEnum.Adapter.class) + public enum TiersDowngradePolicyEnum { + ONE_DOWN("one_down"), - POINTS_EARNED("points_earned"); + BALANCE_BASED("balance_based"); private String value; - ProgramJoinPolicyEnum(String value) { + TiersDowngradePolicyEnum(String value) { this.value = value; } @@ -206,8 +215,8 @@ public String toString() { return String.valueOf(value); } - public static ProgramJoinPolicyEnum fromValue(String value) { - for (ProgramJoinPolicyEnum b : ProgramJoinPolicyEnum.values()) { + public static TiersDowngradePolicyEnum fromValue(String value) { + for (TiersDowngradePolicyEnum b : TiersDowngradePolicyEnum.values()) { if (b.value.equals(value)) { return b; } @@ -215,23 +224,27 @@ public static ProgramJoinPolicyEnum fromValue(String value) { throw new IllegalArgumentException("Unexpected value '" + value + "'"); } - public static class Adapter extends TypeAdapter { + public static class Adapter extends TypeAdapter { @Override - public void write(final JsonWriter jsonWriter, final ProgramJoinPolicyEnum enumeration) throws IOException { + public void write(final JsonWriter jsonWriter, final TiersDowngradePolicyEnum enumeration) throws IOException { jsonWriter.value(enumeration.getValue()); } @Override - public ProgramJoinPolicyEnum read(final JsonReader jsonReader) throws IOException { + public TiersDowngradePolicyEnum read(final JsonReader jsonReader) throws IOException { String value = jsonReader.nextString(); - return ProgramJoinPolicyEnum.fromValue(value); + return TiersDowngradePolicyEnum.fromValue(value); } } } - public static final String SERIALIZED_NAME_PROGRAM_JOIN_POLICY = "programJoinPolicy"; - @SerializedName(SERIALIZED_NAME_PROGRAM_JOIN_POLICY) - private ProgramJoinPolicyEnum programJoinPolicy; + public static final String SERIALIZED_NAME_TIERS_DOWNGRADE_POLICY = "tiersDowngradePolicy"; + @SerializedName(SERIALIZED_NAME_TIERS_DOWNGRADE_POLICY) + private TiersDowngradePolicyEnum tiersDowngradePolicy; + + public static final String SERIALIZED_NAME_CARD_CODE_SETTINGS = "cardCodeSettings"; + @SerializedName(SERIALIZED_NAME_CARD_CODE_SETTINGS) + private CodeGeneratorSettings cardCodeSettings; public static final String SERIALIZED_NAME_ACCOUNT_I_D = "accountID"; @SerializedName(SERIALIZED_NAME_ACCOUNT_I_D) @@ -261,6 +274,10 @@ public ProgramJoinPolicyEnum read(final JsonReader jsonReader) throws IOExceptio @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; + public static final String SERIALIZED_NAME_CAN_UPGRADE_TO_ADVANCED_TIERS = "canUpgradeToAdvancedTiers"; @SerializedName(SERIALIZED_NAME_CAN_UPGRADE_TO_ADVANCED_TIERS) private Boolean canUpgradeToAdvancedTiers = false; @@ -493,6 +510,29 @@ public void setSandbox(Boolean sandbox) { } + public LoyaltyProgram programJoinPolicy(ProgramJoinPolicyEnum programJoinPolicy) { + + this.programJoinPolicy = programJoinPolicy; + return this; + } + + /** + * The policy that defines when the customer joins the loyalty program. - `not_join`: The customer does not join the loyalty program but can still earn and spend loyalty points. **Note**: The customer does not have a program join date. - `points_activated`: The customer joins the loyalty program only when their earned loyalty points become active for the first time. - `points_earned`: The customer joins the loyalty program when they earn loyalty points for the first time. + * @return programJoinPolicy + **/ + @javax.annotation.Nullable + @ApiModelProperty(value = "The policy that defines when the customer joins the loyalty program. - `not_join`: The customer does not join the loyalty program but can still earn and spend loyalty points. **Note**: The customer does not have a program join date. - `points_activated`: The customer joins the loyalty program only when their earned loyalty points become active for the first time. - `points_earned`: The customer joins the loyalty program when they earn loyalty points for the first time. ") + + public ProgramJoinPolicyEnum getProgramJoinPolicy() { + return programJoinPolicy; + } + + + public void setProgramJoinPolicy(ProgramJoinPolicyEnum programJoinPolicy) { + this.programJoinPolicy = programJoinPolicy; + } + + public LoyaltyProgram tiersExpirationPolicy(TiersExpirationPolicyEnum tiersExpirationPolicy) { this.tiersExpirationPolicy = tiersExpirationPolicy; @@ -500,11 +540,11 @@ public LoyaltyProgram tiersExpirationPolicy(TiersExpirationPolicyEnum tiersExpir } /** - * The policy that defines which date is used to calculate the expiration date of a customer's current tier. - `tier_start_date`: The tier expiration date is calculated based on when the customer joined the current tier. - `program_join_date`: The tier expiration date is calculated based on when the customer joined the loyalty program. + * The policy that defines which date is used to calculate the expiration date of a customer's current tier. - `tier_start_date`: The tier expiration date is calculated based on when the customer joined the current tier. - `program_join_date`: The tier expiration date is calculated based on when the customer joined the loyalty program. - `customer_attribute`: The tier expiration date is calculated based on a custom customer attribute. - `absolute_expiration`: The tier expires on a specified date and time. **Note**: For absolute expiration, it is required to provide a `tiersStartDate.` * @return tiersExpirationPolicy **/ @javax.annotation.Nullable - @ApiModelProperty(value = "The policy that defines which date is used to calculate the expiration date of a customer's current tier. - `tier_start_date`: The tier expiration date is calculated based on when the customer joined the current tier. - `program_join_date`: The tier expiration date is calculated based on when the customer joined the loyalty program. ") + @ApiModelProperty(value = "The policy that defines which date is used to calculate the expiration date of a customer's current tier. - `tier_start_date`: The tier expiration date is calculated based on when the customer joined the current tier. - `program_join_date`: The tier expiration date is calculated based on when the customer joined the loyalty program. - `customer_attribute`: The tier expiration date is calculated based on a custom customer attribute. - `absolute_expiration`: The tier expires on a specified date and time. **Note**: For absolute expiration, it is required to provide a `tiersStartDate.` ") public TiersExpirationPolicyEnum getTiersExpirationPolicy() { return tiersExpirationPolicy; @@ -516,6 +556,29 @@ public void setTiersExpirationPolicy(TiersExpirationPolicyEnum tiersExpirationPo } + public LoyaltyProgram tiersStartDate(OffsetDateTime tiersStartDate) { + + this.tiersStartDate = tiersStartDate; + return this; + } + + /** + * Timestamp at which the tier starts for all customers. **Note**: This is only required when the tier expiration policy is set to `absolute_expiration`. + * @return tiersStartDate + **/ + @javax.annotation.Nullable + @ApiModelProperty(example = "2021-09-12T10:12:42Z", value = "Timestamp at which the tier starts for all customers. **Note**: This is only required when the tier expiration policy is set to `absolute_expiration`. ") + + public OffsetDateTime getTiersStartDate() { + return tiersStartDate; + } + + + public void setTiersStartDate(OffsetDateTime tiersStartDate) { + this.tiersStartDate = tiersStartDate; + } + + public LoyaltyProgram tiersExpireIn(String tiersExpireIn) { this.tiersExpireIn = tiersExpireIn; @@ -562,26 +625,26 @@ public void setTiersDowngradePolicy(TiersDowngradePolicyEnum tiersDowngradePolic } - public LoyaltyProgram programJoinPolicy(ProgramJoinPolicyEnum programJoinPolicy) { + public LoyaltyProgram cardCodeSettings(CodeGeneratorSettings cardCodeSettings) { - this.programJoinPolicy = programJoinPolicy; + this.cardCodeSettings = cardCodeSettings; return this; } /** - * The policy that defines when the customer joins the loyalty program. - `not_join`: The customer does not join the loyalty program but can still earn and spend loyalty points. **Note**: The customer does not have a program join date. - `points_activated`: The customer joins the loyalty program only when their earned loyalty points become active for the first time. - `points_earned`: The customer joins the loyalty program when they earn loyalty points for the first time. - * @return programJoinPolicy + * Get cardCodeSettings + * @return cardCodeSettings **/ @javax.annotation.Nullable - @ApiModelProperty(value = "The policy that defines when the customer joins the loyalty program. - `not_join`: The customer does not join the loyalty program but can still earn and spend loyalty points. **Note**: The customer does not have a program join date. - `points_activated`: The customer joins the loyalty program only when their earned loyalty points become active for the first time. - `points_earned`: The customer joins the loyalty program when they earn loyalty points for the first time. ") + @ApiModelProperty(value = "") - public ProgramJoinPolicyEnum getProgramJoinPolicy() { - return programJoinPolicy; + public CodeGeneratorSettings getCardCodeSettings() { + return cardCodeSettings; } - public void setProgramJoinPolicy(ProgramJoinPolicyEnum programJoinPolicy) { - this.programJoinPolicy = programJoinPolicy; + public void setCardCodeSettings(CodeGeneratorSettings cardCodeSettings) { + this.cardCodeSettings = cardCodeSettings; } @@ -734,11 +797,11 @@ public LoyaltyProgram canUpdateJoinPolicy(Boolean canUpdateJoinPolicy) { } /** - * Indicates whether the program join policy can be updated. The join policy can be updated when this value is set to `true`. + * `True` if the program join policy can be updated. * @return canUpdateJoinPolicy **/ @javax.annotation.Nullable - @ApiModelProperty(example = "true", value = "Indicates whether the program join policy can be updated. The join policy can be updated when this value is set to `true`. ") + @ApiModelProperty(example = "true", value = "`True` if the program join policy can be updated. ") public Boolean getCanUpdateJoinPolicy() { return canUpdateJoinPolicy; @@ -750,6 +813,29 @@ public void setCanUpdateJoinPolicy(Boolean canUpdateJoinPolicy) { } + public LoyaltyProgram canUpdateTierExpirationPolicy(Boolean canUpdateTierExpirationPolicy) { + + this.canUpdateTierExpirationPolicy = canUpdateTierExpirationPolicy; + return this; + } + + /** + * `True` if the tier expiration policy can be updated. + * @return canUpdateTierExpirationPolicy + **/ + @javax.annotation.Nullable + @ApiModelProperty(example = "true", value = "`True` if the tier expiration policy can be updated. ") + + public Boolean getCanUpdateTierExpirationPolicy() { + return canUpdateTierExpirationPolicy; + } + + + public void setCanUpdateTierExpirationPolicy(Boolean canUpdateTierExpirationPolicy) { + this.canUpdateTierExpirationPolicy = canUpdateTierExpirationPolicy; + } + + public LoyaltyProgram canUpgradeToAdvancedTiers(Boolean canUpgradeToAdvancedTiers) { this.canUpgradeToAdvancedTiers = canUpgradeToAdvancedTiers; @@ -792,10 +878,12 @@ public boolean equals(java.lang.Object o) { Objects.equals(this.allowSubledger, loyaltyProgram.allowSubledger) && Objects.equals(this.usersPerCardLimit, loyaltyProgram.usersPerCardLimit) && Objects.equals(this.sandbox, loyaltyProgram.sandbox) && + Objects.equals(this.programJoinPolicy, loyaltyProgram.programJoinPolicy) && Objects.equals(this.tiersExpirationPolicy, loyaltyProgram.tiersExpirationPolicy) && + Objects.equals(this.tiersStartDate, loyaltyProgram.tiersStartDate) && Objects.equals(this.tiersExpireIn, loyaltyProgram.tiersExpireIn) && Objects.equals(this.tiersDowngradePolicy, loyaltyProgram.tiersDowngradePolicy) && - Objects.equals(this.programJoinPolicy, loyaltyProgram.programJoinPolicy) && + Objects.equals(this.cardCodeSettings, loyaltyProgram.cardCodeSettings) && Objects.equals(this.accountID, loyaltyProgram.accountID) && Objects.equals(this.name, loyaltyProgram.name) && Objects.equals(this.tiers, loyaltyProgram.tiers) && @@ -803,12 +891,13 @@ public boolean equals(java.lang.Object o) { 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); } @Override public int hashCode() { - return Objects.hash(id, created, title, description, subscribedApplications, defaultValidity, defaultPending, allowSubledger, usersPerCardLimit, sandbox, tiersExpirationPolicy, tiersExpireIn, tiersDowngradePolicy, programJoinPolicy, accountID, name, tiers, timezone, cardBased, canUpdateTiers, canUpdateJoinPolicy, canUpgradeToAdvancedTiers); + return Objects.hash(id, created, title, description, subscribedApplications, defaultValidity, defaultPending, allowSubledger, usersPerCardLimit, sandbox, programJoinPolicy, tiersExpirationPolicy, tiersStartDate, tiersExpireIn, tiersDowngradePolicy, cardCodeSettings, accountID, name, tiers, timezone, cardBased, canUpdateTiers, canUpdateJoinPolicy, canUpdateTierExpirationPolicy, canUpgradeToAdvancedTiers); } @@ -826,10 +915,12 @@ public String toString() { sb.append(" allowSubledger: ").append(toIndentedString(allowSubledger)).append("\n"); sb.append(" usersPerCardLimit: ").append(toIndentedString(usersPerCardLimit)).append("\n"); sb.append(" sandbox: ").append(toIndentedString(sandbox)).append("\n"); + sb.append(" programJoinPolicy: ").append(toIndentedString(programJoinPolicy)).append("\n"); sb.append(" tiersExpirationPolicy: ").append(toIndentedString(tiersExpirationPolicy)).append("\n"); + sb.append(" tiersStartDate: ").append(toIndentedString(tiersStartDate)).append("\n"); sb.append(" tiersExpireIn: ").append(toIndentedString(tiersExpireIn)).append("\n"); sb.append(" tiersDowngradePolicy: ").append(toIndentedString(tiersDowngradePolicy)).append("\n"); - sb.append(" programJoinPolicy: ").append(toIndentedString(programJoinPolicy)).append("\n"); + sb.append(" cardCodeSettings: ").append(toIndentedString(cardCodeSettings)).append("\n"); sb.append(" accountID: ").append(toIndentedString(accountID)).append("\n"); sb.append(" name: ").append(toIndentedString(name)).append("\n"); sb.append(" tiers: ").append(toIndentedString(tiers)).append("\n"); @@ -837,6 +928,7 @@ public String toString() { 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("}"); return sb.toString(); diff --git a/src/main/java/one/talon/model/MessageLogResponse.java b/src/main/java/one/talon/model/MessageLogResponse.java index e3fa0e1d..8bd50aaf 100644 --- a/src/main/java/one/talon/model/MessageLogResponse.java +++ b/src/main/java/one/talon/model/MessageLogResponse.java @@ -54,7 +54,8 @@ public MessageLogResponse createdAt(OffsetDateTime createdAt) { * Timestamp when the response was received. * @return createdAt **/ - @ApiModelProperty(example = "2021-07-20T22:00:50Z", required = true, value = "Timestamp when the response was received.") + @javax.annotation.Nullable + @ApiModelProperty(example = "2021-07-20T22:00:50Z", value = "Timestamp when the response was received.") public OffsetDateTime getCreatedAt() { return createdAt; @@ -76,7 +77,8 @@ public MessageLogResponse response(byte[] response) { * Raw response data. * @return response **/ - @ApiModelProperty(example = "UmVzcG9uc2UgY29udGVudA==", required = true, value = "Raw response data.") + @javax.annotation.Nullable + @ApiModelProperty(example = "UmVzcG9uc2UgY29udGVudA==", value = "Raw response data.") public byte[] getResponse() { return response; @@ -98,7 +100,8 @@ public MessageLogResponse status(Integer status) { * HTTP status code of the response. * @return status **/ - @ApiModelProperty(example = "200", required = true, value = "HTTP status code of the response.") + @javax.annotation.Nullable + @ApiModelProperty(example = "200", value = "HTTP status code of the response.") public Integer getStatus() { return status; diff --git a/src/main/java/one/talon/model/MultipleCustomerProfileIntegrationRequestItem.java b/src/main/java/one/talon/model/MultipleCustomerProfileIntegrationRequestItem.java index 59c25761..a6a2c63d 100644 --- a/src/main/java/one/talon/model/MultipleCustomerProfileIntegrationRequestItem.java +++ b/src/main/java/one/talon/model/MultipleCustomerProfileIntegrationRequestItem.java @@ -23,20 +23,15 @@ import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import java.io.IOException; -import one.talon.custom.JsonNullable; -import one.talon.custom.NullableAdapterFactory; /** * */ @ApiModel(description = "") -@JsonAdapter(NullableAdapterFactory.class) public class MultipleCustomerProfileIntegrationRequestItem { public static final String SERIALIZED_NAME_ATTRIBUTES = "attributes"; @SerializedName(SERIALIZED_NAME_ATTRIBUTES) - /*allow Serializing null for this field */ - @JsonNullable private Object attributes; public static final String SERIALIZED_NAME_INTEGRATION_ID = "integrationId"; diff --git a/src/main/java/one/talon/model/NewAttribute.java b/src/main/java/one/talon/model/NewAttribute.java index 021264fb..82797822 100644 --- a/src/main/java/one/talon/model/NewAttribute.java +++ b/src/main/java/one/talon/model/NewAttribute.java @@ -37,8 +37,6 @@ public class NewAttribute { */ @JsonAdapter(EntityEnum.Adapter.class) public enum EntityEnum { - ACCOUNT("Account"), - APPLICATION("Application"), CAMPAIGN("Campaign"), diff --git a/src/main/java/one/talon/model/NewBaseNotification.java b/src/main/java/one/talon/model/NewBaseNotification.java index f4700803..4f8054a1 100644 --- a/src/main/java/one/talon/model/NewBaseNotification.java +++ b/src/main/java/one/talon/model/NewBaseNotification.java @@ -51,10 +51,10 @@ public NewBaseNotification policy(Object policy) { } /** - * Get policy + * Indicates which notification properties to apply. * @return policy **/ - @ApiModelProperty(required = true, value = "") + @ApiModelProperty(required = true, value = "Indicates which notification properties to apply.") public Object getPolicy() { return policy; diff --git a/src/main/java/one/talon/model/NewCustomerProfile.java b/src/main/java/one/talon/model/NewCustomerProfile.java index dfaf6855..15728dd3 100644 --- a/src/main/java/one/talon/model/NewCustomerProfile.java +++ b/src/main/java/one/talon/model/NewCustomerProfile.java @@ -23,19 +23,14 @@ import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import java.io.IOException; -import one.talon.custom.JsonNullable; -import one.talon.custom.NullableAdapterFactory; /** * NewCustomerProfile */ -@JsonAdapter(NullableAdapterFactory.class) public class NewCustomerProfile { public static final String SERIALIZED_NAME_ATTRIBUTES = "attributes"; @SerializedName(SERIALIZED_NAME_ATTRIBUTES) - /*allow Serializing null for this field */ - @JsonNullable private Object attributes; diff --git a/src/main/java/one/talon/model/NewCustomerSession.java b/src/main/java/one/talon/model/NewCustomerSession.java index a49c6a0d..a142a0e7 100644 --- a/src/main/java/one/talon/model/NewCustomerSession.java +++ b/src/main/java/one/talon/model/NewCustomerSession.java @@ -27,14 +27,11 @@ import java.util.ArrayList; import java.util.List; import one.talon.model.CartItem; -import one.talon.custom.JsonNullable; -import one.talon.custom.NullableAdapterFactory; /** * */ @ApiModel(description = "") -@JsonAdapter(NullableAdapterFactory.class) public class NewCustomerSession { public static final String SERIALIZED_NAME_PROFILE_ID = "profileId"; @@ -118,8 +115,6 @@ public StateEnum read(final JsonReader jsonReader) throws IOException { public static final String SERIALIZED_NAME_ATTRIBUTES = "attributes"; @SerializedName(SERIALIZED_NAME_ATTRIBUTES) - /*allow Serializing null for this field */ - @JsonNullable private Object attributes; diff --git a/src/main/java/one/talon/model/NewCustomerSessionV2.java b/src/main/java/one/talon/model/NewCustomerSessionV2.java index 2d17df10..945c4718 100644 --- a/src/main/java/one/talon/model/NewCustomerSessionV2.java +++ b/src/main/java/one/talon/model/NewCustomerSessionV2.java @@ -29,14 +29,11 @@ import java.util.Map; import one.talon.model.AdditionalCost; import one.talon.model.CartItem; -import one.talon.custom.JsonNullable; -import one.talon.custom.NullableAdapterFactory; /** * The representation of the customer session. */ @ApiModel(description = "The representation of the customer session.") -@JsonAdapter(NullableAdapterFactory.class) public class NewCustomerSessionV2 { public static final String SERIALIZED_NAME_PROFILE_ID = "profileId"; @@ -132,8 +129,6 @@ public StateEnum read(final JsonReader jsonReader) throws IOException { public static final String SERIALIZED_NAME_ATTRIBUTES = "attributes"; @SerializedName(SERIALIZED_NAME_ATTRIBUTES) - /*allow Serializing null for this field */ - @JsonNullable private Object attributes; diff --git a/src/main/java/one/talon/model/NewEvent.java b/src/main/java/one/talon/model/NewEvent.java index 66d2acf3..65eab953 100644 --- a/src/main/java/one/talon/model/NewEvent.java +++ b/src/main/java/one/talon/model/NewEvent.java @@ -23,14 +23,11 @@ import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import java.io.IOException; -import one.talon.custom.JsonNullable; -import one.talon.custom.NullableAdapterFactory; /** * */ @ApiModel(description = "") -@JsonAdapter(NullableAdapterFactory.class) public class NewEvent { public static final String SERIALIZED_NAME_PROFILE_ID = "profileId"; @@ -47,8 +44,6 @@ public class NewEvent { public static final String SERIALIZED_NAME_ATTRIBUTES = "attributes"; @SerializedName(SERIALIZED_NAME_ATTRIBUTES) - /*allow Serializing null for this field */ - @JsonNullable private Object attributes; public static final String SERIALIZED_NAME_SESSION_ID = "sessionId"; diff --git a/src/main/java/one/talon/model/NewLoyaltyProgram.java b/src/main/java/one/talon/model/NewLoyaltyProgram.java index 2fbf4fe2..9e7b96ae 100644 --- a/src/main/java/one/talon/model/NewLoyaltyProgram.java +++ b/src/main/java/one/talon/model/NewLoyaltyProgram.java @@ -25,7 +25,9 @@ import java.io.IOException; import java.util.ArrayList; import java.util.List; +import one.talon.model.CodeGeneratorSettings; import one.talon.model.NewLoyaltyTier; +import org.threeten.bp.OffsetDateTime; /** * @@ -66,17 +68,19 @@ public class NewLoyaltyProgram { private Boolean sandbox; /** - * The policy that defines which date is used to calculate the expiration date of a customer's current tier. - `tier_start_date`: The tier expiration date is calculated based on when the customer joined the current tier. - `program_join_date`: The tier expiration date is calculated based on when the customer joined the loyalty program. + * The policy that defines when the customer joins the loyalty program. - `not_join`: The customer does not join the loyalty program but can still earn and spend loyalty points. **Note**: The customer does not have a program join date. - `points_activated`: The customer joins the loyalty program only when their earned loyalty points become active for the first time. - `points_earned`: The customer joins the loyalty program when they earn loyalty points for the first time. */ - @JsonAdapter(TiersExpirationPolicyEnum.Adapter.class) - public enum TiersExpirationPolicyEnum { - TIER_START_DATE("tier_start_date"), + @JsonAdapter(ProgramJoinPolicyEnum.Adapter.class) + public enum ProgramJoinPolicyEnum { + NOT_JOIN("not_join"), - PROGRAM_JOIN_DATE("program_join_date"); + POINTS_ACTIVATED("points_activated"), + + POINTS_EARNED("points_earned"); private String value; - TiersExpirationPolicyEnum(String value) { + ProgramJoinPolicyEnum(String value) { this.value = value; } @@ -89,8 +93,8 @@ public String toString() { return String.valueOf(value); } - public static TiersExpirationPolicyEnum fromValue(String value) { - for (TiersExpirationPolicyEnum b : TiersExpirationPolicyEnum.values()) { + public static ProgramJoinPolicyEnum fromValue(String value) { + for (ProgramJoinPolicyEnum b : ProgramJoinPolicyEnum.values()) { if (b.value.equals(value)) { return b; } @@ -98,40 +102,40 @@ public static TiersExpirationPolicyEnum fromValue(String value) { throw new IllegalArgumentException("Unexpected value '" + value + "'"); } - public static class Adapter extends TypeAdapter { + public static class Adapter extends TypeAdapter { @Override - public void write(final JsonWriter jsonWriter, final TiersExpirationPolicyEnum enumeration) throws IOException { + public void write(final JsonWriter jsonWriter, final ProgramJoinPolicyEnum enumeration) throws IOException { jsonWriter.value(enumeration.getValue()); } @Override - public TiersExpirationPolicyEnum read(final JsonReader jsonReader) throws IOException { + public ProgramJoinPolicyEnum read(final JsonReader jsonReader) throws IOException { String value = jsonReader.nextString(); - return TiersExpirationPolicyEnum.fromValue(value); + return ProgramJoinPolicyEnum.fromValue(value); } } } - public static final String SERIALIZED_NAME_TIERS_EXPIRATION_POLICY = "tiersExpirationPolicy"; - @SerializedName(SERIALIZED_NAME_TIERS_EXPIRATION_POLICY) - private TiersExpirationPolicyEnum tiersExpirationPolicy; - - public static final String SERIALIZED_NAME_TIERS_EXPIRE_IN = "tiersExpireIn"; - @SerializedName(SERIALIZED_NAME_TIERS_EXPIRE_IN) - private String tiersExpireIn; + public static final String SERIALIZED_NAME_PROGRAM_JOIN_POLICY = "programJoinPolicy"; + @SerializedName(SERIALIZED_NAME_PROGRAM_JOIN_POLICY) + private ProgramJoinPolicyEnum programJoinPolicy; /** - * Customers's tier downgrade policy. - `one_down`: Once the tier expires and if the user doesn't have enough points to stay in the tier, the user is downgraded one tier down. - `balance_based`: Once the tier expires, the user's tier is evaluated based on the amount of active points the user has at this instant. + * The policy that defines which date is used to calculate the expiration date of a customer's current tier. - `tier_start_date`: The tier expiration date is calculated based on when the customer joined the current tier. - `program_join_date`: The tier expiration date is calculated based on when the customer joined the loyalty program. - `customer_attribute`: The tier expiration date is calculated based on a custom customer attribute. - `absolute_expiration`: The tier expires on a specified date and time. **Note**: For absolute expiration, it is required to provide a `tiersStartDate.` */ - @JsonAdapter(TiersDowngradePolicyEnum.Adapter.class) - public enum TiersDowngradePolicyEnum { - ONE_DOWN("one_down"), + @JsonAdapter(TiersExpirationPolicyEnum.Adapter.class) + public enum TiersExpirationPolicyEnum { + TIER_START_DATE("tier_start_date"), - BALANCE_BASED("balance_based"); + PROGRAM_JOIN_DATE("program_join_date"), + + CUSTOMER_ATTRIBUTE("customer_attribute"), + + ABSOLUTE_EXPIRATION("absolute_expiration"); private String value; - TiersDowngradePolicyEnum(String value) { + TiersExpirationPolicyEnum(String value) { this.value = value; } @@ -144,8 +148,8 @@ public String toString() { return String.valueOf(value); } - public static TiersDowngradePolicyEnum fromValue(String value) { - for (TiersDowngradePolicyEnum b : TiersDowngradePolicyEnum.values()) { + public static TiersExpirationPolicyEnum fromValue(String value) { + for (TiersExpirationPolicyEnum b : TiersExpirationPolicyEnum.values()) { if (b.value.equals(value)) { return b; } @@ -153,38 +157,44 @@ public static TiersDowngradePolicyEnum fromValue(String value) { throw new IllegalArgumentException("Unexpected value '" + value + "'"); } - public static class Adapter extends TypeAdapter { + public static class Adapter extends TypeAdapter { @Override - public void write(final JsonWriter jsonWriter, final TiersDowngradePolicyEnum enumeration) throws IOException { + public void write(final JsonWriter jsonWriter, final TiersExpirationPolicyEnum enumeration) throws IOException { jsonWriter.value(enumeration.getValue()); } @Override - public TiersDowngradePolicyEnum read(final JsonReader jsonReader) throws IOException { + public TiersExpirationPolicyEnum read(final JsonReader jsonReader) throws IOException { String value = jsonReader.nextString(); - return TiersDowngradePolicyEnum.fromValue(value); + return TiersExpirationPolicyEnum.fromValue(value); } } } - public static final String SERIALIZED_NAME_TIERS_DOWNGRADE_POLICY = "tiersDowngradePolicy"; - @SerializedName(SERIALIZED_NAME_TIERS_DOWNGRADE_POLICY) - private TiersDowngradePolicyEnum tiersDowngradePolicy; + public static final String SERIALIZED_NAME_TIERS_EXPIRATION_POLICY = "tiersExpirationPolicy"; + @SerializedName(SERIALIZED_NAME_TIERS_EXPIRATION_POLICY) + private TiersExpirationPolicyEnum tiersExpirationPolicy; + + public static final String SERIALIZED_NAME_TIERS_START_DATE = "tiersStartDate"; + @SerializedName(SERIALIZED_NAME_TIERS_START_DATE) + private OffsetDateTime tiersStartDate; + + public static final String SERIALIZED_NAME_TIERS_EXPIRE_IN = "tiersExpireIn"; + @SerializedName(SERIALIZED_NAME_TIERS_EXPIRE_IN) + private String tiersExpireIn; /** - * The policy that defines when the customer joins the loyalty program. - `not_join`: The customer does not join the loyalty program but can still earn and spend loyalty points. **Note**: The customer does not have a program join date. - `points_activated`: The customer joins the loyalty program only when their earned loyalty points become active for the first time. - `points_earned`: The customer joins the loyalty program when they earn loyalty points for the first time. + * Customers's tier downgrade policy. - `one_down`: Once the tier expires and if the user doesn't have enough points to stay in the tier, the user is downgraded one tier down. - `balance_based`: Once the tier expires, the user's tier is evaluated based on the amount of active points the user has at this instant. */ - @JsonAdapter(ProgramJoinPolicyEnum.Adapter.class) - public enum ProgramJoinPolicyEnum { - NOT_JOIN("not_join"), - - POINTS_ACTIVATED("points_activated"), + @JsonAdapter(TiersDowngradePolicyEnum.Adapter.class) + public enum TiersDowngradePolicyEnum { + ONE_DOWN("one_down"), - POINTS_EARNED("points_earned"); + BALANCE_BASED("balance_based"); private String value; - ProgramJoinPolicyEnum(String value) { + TiersDowngradePolicyEnum(String value) { this.value = value; } @@ -197,8 +207,8 @@ public String toString() { return String.valueOf(value); } - public static ProgramJoinPolicyEnum fromValue(String value) { - for (ProgramJoinPolicyEnum b : ProgramJoinPolicyEnum.values()) { + public static TiersDowngradePolicyEnum fromValue(String value) { + for (TiersDowngradePolicyEnum b : TiersDowngradePolicyEnum.values()) { if (b.value.equals(value)) { return b; } @@ -206,23 +216,27 @@ public static ProgramJoinPolicyEnum fromValue(String value) { throw new IllegalArgumentException("Unexpected value '" + value + "'"); } - public static class Adapter extends TypeAdapter { + public static class Adapter extends TypeAdapter { @Override - public void write(final JsonWriter jsonWriter, final ProgramJoinPolicyEnum enumeration) throws IOException { + public void write(final JsonWriter jsonWriter, final TiersDowngradePolicyEnum enumeration) throws IOException { jsonWriter.value(enumeration.getValue()); } @Override - public ProgramJoinPolicyEnum read(final JsonReader jsonReader) throws IOException { + public TiersDowngradePolicyEnum read(final JsonReader jsonReader) throws IOException { String value = jsonReader.nextString(); - return ProgramJoinPolicyEnum.fromValue(value); + return TiersDowngradePolicyEnum.fromValue(value); } } } - public static final String SERIALIZED_NAME_PROGRAM_JOIN_POLICY = "programJoinPolicy"; - @SerializedName(SERIALIZED_NAME_PROGRAM_JOIN_POLICY) - private ProgramJoinPolicyEnum programJoinPolicy; + public static final String SERIALIZED_NAME_TIERS_DOWNGRADE_POLICY = "tiersDowngradePolicy"; + @SerializedName(SERIALIZED_NAME_TIERS_DOWNGRADE_POLICY) + private TiersDowngradePolicyEnum tiersDowngradePolicy; + + public static final String SERIALIZED_NAME_CARD_CODE_SETTINGS = "cardCodeSettings"; + @SerializedName(SERIALIZED_NAME_CARD_CODE_SETTINGS) + private CodeGeneratorSettings cardCodeSettings; public static final String SERIALIZED_NAME_NAME = "name"; @SerializedName(SERIALIZED_NAME_NAME) @@ -429,6 +443,29 @@ public void setSandbox(Boolean sandbox) { } + public NewLoyaltyProgram programJoinPolicy(ProgramJoinPolicyEnum programJoinPolicy) { + + this.programJoinPolicy = programJoinPolicy; + return this; + } + + /** + * The policy that defines when the customer joins the loyalty program. - `not_join`: The customer does not join the loyalty program but can still earn and spend loyalty points. **Note**: The customer does not have a program join date. - `points_activated`: The customer joins the loyalty program only when their earned loyalty points become active for the first time. - `points_earned`: The customer joins the loyalty program when they earn loyalty points for the first time. + * @return programJoinPolicy + **/ + @javax.annotation.Nullable + @ApiModelProperty(value = "The policy that defines when the customer joins the loyalty program. - `not_join`: The customer does not join the loyalty program but can still earn and spend loyalty points. **Note**: The customer does not have a program join date. - `points_activated`: The customer joins the loyalty program only when their earned loyalty points become active for the first time. - `points_earned`: The customer joins the loyalty program when they earn loyalty points for the first time. ") + + public ProgramJoinPolicyEnum getProgramJoinPolicy() { + return programJoinPolicy; + } + + + public void setProgramJoinPolicy(ProgramJoinPolicyEnum programJoinPolicy) { + this.programJoinPolicy = programJoinPolicy; + } + + public NewLoyaltyProgram tiersExpirationPolicy(TiersExpirationPolicyEnum tiersExpirationPolicy) { this.tiersExpirationPolicy = tiersExpirationPolicy; @@ -436,11 +473,11 @@ public NewLoyaltyProgram tiersExpirationPolicy(TiersExpirationPolicyEnum tiersEx } /** - * The policy that defines which date is used to calculate the expiration date of a customer's current tier. - `tier_start_date`: The tier expiration date is calculated based on when the customer joined the current tier. - `program_join_date`: The tier expiration date is calculated based on when the customer joined the loyalty program. + * The policy that defines which date is used to calculate the expiration date of a customer's current tier. - `tier_start_date`: The tier expiration date is calculated based on when the customer joined the current tier. - `program_join_date`: The tier expiration date is calculated based on when the customer joined the loyalty program. - `customer_attribute`: The tier expiration date is calculated based on a custom customer attribute. - `absolute_expiration`: The tier expires on a specified date and time. **Note**: For absolute expiration, it is required to provide a `tiersStartDate.` * @return tiersExpirationPolicy **/ @javax.annotation.Nullable - @ApiModelProperty(value = "The policy that defines which date is used to calculate the expiration date of a customer's current tier. - `tier_start_date`: The tier expiration date is calculated based on when the customer joined the current tier. - `program_join_date`: The tier expiration date is calculated based on when the customer joined the loyalty program. ") + @ApiModelProperty(value = "The policy that defines which date is used to calculate the expiration date of a customer's current tier. - `tier_start_date`: The tier expiration date is calculated based on when the customer joined the current tier. - `program_join_date`: The tier expiration date is calculated based on when the customer joined the loyalty program. - `customer_attribute`: The tier expiration date is calculated based on a custom customer attribute. - `absolute_expiration`: The tier expires on a specified date and time. **Note**: For absolute expiration, it is required to provide a `tiersStartDate.` ") public TiersExpirationPolicyEnum getTiersExpirationPolicy() { return tiersExpirationPolicy; @@ -452,6 +489,29 @@ public void setTiersExpirationPolicy(TiersExpirationPolicyEnum tiersExpirationPo } + public NewLoyaltyProgram tiersStartDate(OffsetDateTime tiersStartDate) { + + this.tiersStartDate = tiersStartDate; + return this; + } + + /** + * Timestamp at which the tier starts for all customers. **Note**: This is only required when the tier expiration policy is set to `absolute_expiration`. + * @return tiersStartDate + **/ + @javax.annotation.Nullable + @ApiModelProperty(example = "2021-09-12T10:12:42Z", value = "Timestamp at which the tier starts for all customers. **Note**: This is only required when the tier expiration policy is set to `absolute_expiration`. ") + + public OffsetDateTime getTiersStartDate() { + return tiersStartDate; + } + + + public void setTiersStartDate(OffsetDateTime tiersStartDate) { + this.tiersStartDate = tiersStartDate; + } + + public NewLoyaltyProgram tiersExpireIn(String tiersExpireIn) { this.tiersExpireIn = tiersExpireIn; @@ -498,26 +558,26 @@ public void setTiersDowngradePolicy(TiersDowngradePolicyEnum tiersDowngradePolic } - public NewLoyaltyProgram programJoinPolicy(ProgramJoinPolicyEnum programJoinPolicy) { + public NewLoyaltyProgram cardCodeSettings(CodeGeneratorSettings cardCodeSettings) { - this.programJoinPolicy = programJoinPolicy; + this.cardCodeSettings = cardCodeSettings; return this; } /** - * The policy that defines when the customer joins the loyalty program. - `not_join`: The customer does not join the loyalty program but can still earn and spend loyalty points. **Note**: The customer does not have a program join date. - `points_activated`: The customer joins the loyalty program only when their earned loyalty points become active for the first time. - `points_earned`: The customer joins the loyalty program when they earn loyalty points for the first time. - * @return programJoinPolicy + * Get cardCodeSettings + * @return cardCodeSettings **/ @javax.annotation.Nullable - @ApiModelProperty(value = "The policy that defines when the customer joins the loyalty program. - `not_join`: The customer does not join the loyalty program but can still earn and spend loyalty points. **Note**: The customer does not have a program join date. - `points_activated`: The customer joins the loyalty program only when their earned loyalty points become active for the first time. - `points_earned`: The customer joins the loyalty program when they earn loyalty points for the first time. ") + @ApiModelProperty(value = "") - public ProgramJoinPolicyEnum getProgramJoinPolicy() { - return programJoinPolicy; + public CodeGeneratorSettings getCardCodeSettings() { + return cardCodeSettings; } - public void setProgramJoinPolicy(ProgramJoinPolicyEnum programJoinPolicy) { - this.programJoinPolicy = programJoinPolicy; + public void setCardCodeSettings(CodeGeneratorSettings cardCodeSettings) { + this.cardCodeSettings = cardCodeSettings; } @@ -635,10 +695,12 @@ public boolean equals(java.lang.Object o) { Objects.equals(this.allowSubledger, newLoyaltyProgram.allowSubledger) && Objects.equals(this.usersPerCardLimit, newLoyaltyProgram.usersPerCardLimit) && Objects.equals(this.sandbox, newLoyaltyProgram.sandbox) && + Objects.equals(this.programJoinPolicy, newLoyaltyProgram.programJoinPolicy) && Objects.equals(this.tiersExpirationPolicy, newLoyaltyProgram.tiersExpirationPolicy) && + Objects.equals(this.tiersStartDate, newLoyaltyProgram.tiersStartDate) && Objects.equals(this.tiersExpireIn, newLoyaltyProgram.tiersExpireIn) && Objects.equals(this.tiersDowngradePolicy, newLoyaltyProgram.tiersDowngradePolicy) && - Objects.equals(this.programJoinPolicy, newLoyaltyProgram.programJoinPolicy) && + Objects.equals(this.cardCodeSettings, newLoyaltyProgram.cardCodeSettings) && Objects.equals(this.name, newLoyaltyProgram.name) && Objects.equals(this.tiers, newLoyaltyProgram.tiers) && Objects.equals(this.timezone, newLoyaltyProgram.timezone) && @@ -647,7 +709,7 @@ public boolean equals(java.lang.Object o) { @Override public int hashCode() { - return Objects.hash(title, description, subscribedApplications, defaultValidity, defaultPending, allowSubledger, usersPerCardLimit, sandbox, tiersExpirationPolicy, tiersExpireIn, tiersDowngradePolicy, programJoinPolicy, name, tiers, timezone, cardBased); + return Objects.hash(title, description, subscribedApplications, defaultValidity, defaultPending, allowSubledger, usersPerCardLimit, sandbox, programJoinPolicy, tiersExpirationPolicy, tiersStartDate, tiersExpireIn, tiersDowngradePolicy, cardCodeSettings, name, tiers, timezone, cardBased); } @@ -663,10 +725,12 @@ public String toString() { sb.append(" allowSubledger: ").append(toIndentedString(allowSubledger)).append("\n"); sb.append(" usersPerCardLimit: ").append(toIndentedString(usersPerCardLimit)).append("\n"); sb.append(" sandbox: ").append(toIndentedString(sandbox)).append("\n"); + sb.append(" programJoinPolicy: ").append(toIndentedString(programJoinPolicy)).append("\n"); sb.append(" tiersExpirationPolicy: ").append(toIndentedString(tiersExpirationPolicy)).append("\n"); + sb.append(" tiersStartDate: ").append(toIndentedString(tiersStartDate)).append("\n"); sb.append(" tiersExpireIn: ").append(toIndentedString(tiersExpireIn)).append("\n"); sb.append(" tiersDowngradePolicy: ").append(toIndentedString(tiersDowngradePolicy)).append("\n"); - sb.append(" programJoinPolicy: ").append(toIndentedString(programJoinPolicy)).append("\n"); + sb.append(" cardCodeSettings: ").append(toIndentedString(cardCodeSettings)).append("\n"); sb.append(" name: ").append(toIndentedString(name)).append("\n"); sb.append(" tiers: ").append(toIndentedString(tiers)).append("\n"); sb.append(" timezone: ").append(toIndentedString(timezone)).append("\n"); diff --git a/src/main/java/one/talon/model/NewNotificationTest.java b/src/main/java/one/talon/model/NewNotificationTest.java index 7407d820..3250624a 100644 --- a/src/main/java/one/talon/model/NewNotificationTest.java +++ b/src/main/java/one/talon/model/NewNotificationTest.java @@ -41,6 +41,8 @@ public enum TypeEnum { LOYALTY_ADDED_DEDUCTED_POINTS("loyalty_added_deducted_points"), + CARD_ADDED_DEDUCTED_POINTS("card_added_deducted_points"), + COUPON("coupon"), EXPIRING_COUPONS("expiring_coupons"), diff --git a/src/main/java/one/talon/model/NewOutgoingIntegrationWebhook.java b/src/main/java/one/talon/model/NewOutgoingIntegrationWebhook.java index 922ab507..ff36a853 100644 --- a/src/main/java/one/talon/model/NewOutgoingIntegrationWebhook.java +++ b/src/main/java/one/talon/model/NewOutgoingIntegrationWebhook.java @@ -35,6 +35,10 @@ public class NewOutgoingIntegrationWebhook { @SerializedName(SERIALIZED_NAME_TITLE) private String title; + public static final String SERIALIZED_NAME_DESCRIPTION = "description"; + @SerializedName(SERIALIZED_NAME_DESCRIPTION) + private String description; + public static final String SERIALIZED_NAME_APPLICATION_IDS = "applicationIds"; @SerializedName(SERIALIZED_NAME_APPLICATION_IDS) private List applicationIds = new ArrayList(); @@ -62,6 +66,29 @@ public void setTitle(String title) { } + public NewOutgoingIntegrationWebhook description(String description) { + + this.description = description; + return this; + } + + /** + * A description of the webhook. + * @return description + **/ + @javax.annotation.Nullable + @ApiModelProperty(example = "A webhook to send a coupon to the user.", value = "A description of the webhook.") + + public String getDescription() { + return description; + } + + + public void setDescription(String description) { + this.description = description; + } + + public NewOutgoingIntegrationWebhook applicationIds(List applicationIds) { this.applicationIds = applicationIds; @@ -99,12 +126,13 @@ public boolean equals(java.lang.Object o) { } NewOutgoingIntegrationWebhook newOutgoingIntegrationWebhook = (NewOutgoingIntegrationWebhook) o; return Objects.equals(this.title, newOutgoingIntegrationWebhook.title) && + Objects.equals(this.description, newOutgoingIntegrationWebhook.description) && Objects.equals(this.applicationIds, newOutgoingIntegrationWebhook.applicationIds); } @Override public int hashCode() { - return Objects.hash(title, applicationIds); + return Objects.hash(title, description, applicationIds); } @@ -113,6 +141,7 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class NewOutgoingIntegrationWebhook {\n"); sb.append(" title: ").append(toIndentedString(title)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); sb.append(" applicationIds: ").append(toIndentedString(applicationIds)).append("\n"); sb.append("}"); return sb.toString(); diff --git a/src/main/java/one/talon/model/NewReferralsForMultipleAdvocates.java b/src/main/java/one/talon/model/NewReferralsForMultipleAdvocates.java index 3254e840..8bc72549 100644 --- a/src/main/java/one/talon/model/NewReferralsForMultipleAdvocates.java +++ b/src/main/java/one/talon/model/NewReferralsForMultipleAdvocates.java @@ -26,14 +26,11 @@ import java.util.ArrayList; import java.util.List; import org.threeten.bp.OffsetDateTime; -import one.talon.custom.JsonNullable; -import one.talon.custom.NullableAdapterFactory; /** * */ @ApiModel(description = "") -@JsonAdapter(NullableAdapterFactory.class) public class NewReferralsForMultipleAdvocates { public static final String SERIALIZED_NAME_START_DATE = "startDate"; @@ -58,8 +55,6 @@ public class NewReferralsForMultipleAdvocates { public static final String SERIALIZED_NAME_ATTRIBUTES = "attributes"; @SerializedName(SERIALIZED_NAME_ATTRIBUTES) - /*allow Serializing null for this field */ - @JsonNullable private Object attributes; public static final String SERIALIZED_NAME_VALID_CHARACTERS = "validCharacters"; diff --git a/src/main/java/one/talon/model/NewWebhook.java b/src/main/java/one/talon/model/NewWebhook.java index c06173fc..68a66bd7 100644 --- a/src/main/java/one/talon/model/NewWebhook.java +++ b/src/main/java/one/talon/model/NewWebhook.java @@ -41,6 +41,10 @@ public class NewWebhook { @SerializedName(SERIALIZED_NAME_TITLE) private String title; + public static final String SERIALIZED_NAME_DESCRIPTION = "description"; + @SerializedName(SERIALIZED_NAME_DESCRIPTION) + private String description; + /** * API method for this webhook. */ @@ -168,6 +172,29 @@ public void setTitle(String title) { } + public NewWebhook description(String description) { + + this.description = description; + return this; + } + + /** + * A description of the webhook. + * @return description + **/ + @javax.annotation.Nullable + @ApiModelProperty(example = "A webhook to send a coupon to the user.", value = "A description of the webhook.") + + public String getDescription() { + return description; + } + + + public void setDescription(String description) { + this.description = description; + } + + public NewWebhook verb(VerbEnum verb) { this.verb = verb; @@ -322,6 +349,7 @@ public boolean equals(java.lang.Object o) { NewWebhook newWebhook = (NewWebhook) o; return Objects.equals(this.applicationIds, newWebhook.applicationIds) && Objects.equals(this.title, newWebhook.title) && + Objects.equals(this.description, newWebhook.description) && Objects.equals(this.verb, newWebhook.verb) && Objects.equals(this.url, newWebhook.url) && Objects.equals(this.headers, newWebhook.headers) && @@ -332,7 +360,7 @@ public boolean equals(java.lang.Object o) { @Override public int hashCode() { - return Objects.hash(applicationIds, title, verb, url, headers, payload, params, enabled); + return Objects.hash(applicationIds, title, description, verb, url, headers, payload, params, enabled); } @@ -342,6 +370,7 @@ public String toString() { sb.append("class NewWebhook {\n"); sb.append(" applicationIds: ").append(toIndentedString(applicationIds)).append("\n"); sb.append(" title: ").append(toIndentedString(title)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); sb.append(" verb: ").append(toIndentedString(verb)).append("\n"); sb.append(" url: ").append(toIndentedString(url)).append("\n"); sb.append(" headers: ").append(toIndentedString(headers)).append("\n"); diff --git a/src/main/java/one/talon/model/OktaEvent.java b/src/main/java/one/talon/model/OktaEvent.java new file mode 100644 index 00000000..3b0e0ba9 --- /dev/null +++ b/src/main/java/one/talon/model/OktaEvent.java @@ -0,0 +1,135 @@ +/* + * 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.OktaEventTarget; + +/** + * Single event definition in the event data emitted by Okta. + */ +@ApiModel(description = "Single event definition in the event data emitted by Okta.") + +public class OktaEvent { + public static final String SERIALIZED_NAME_EVENT_TYPE = "eventType"; + @SerializedName(SERIALIZED_NAME_EVENT_TYPE) + private String eventType; + + public static final String SERIALIZED_NAME_TARGET = "target"; + @SerializedName(SERIALIZED_NAME_TARGET) + private List target = new ArrayList(); + + + public OktaEvent eventType(String eventType) { + + this.eventType = eventType; + return this; + } + + /** + * Event type defining an action. + * @return eventType + **/ + @ApiModelProperty(example = "application.user_membership.add", required = true, value = "Event type defining an action.") + + public String getEventType() { + return eventType; + } + + + public void setEventType(String eventType) { + this.eventType = eventType; + } + + + public OktaEvent target(List target) { + + this.target = target; + return this; + } + + public OktaEvent addTargetItem(OktaEventTarget targetItem) { + this.target.add(targetItem); + return this; + } + + /** + * Get target + * @return target + **/ + @ApiModelProperty(required = true, value = "") + + public List getTarget() { + return target; + } + + + public void setTarget(List target) { + this.target = target; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + OktaEvent oktaEvent = (OktaEvent) o; + return Objects.equals(this.eventType, oktaEvent.eventType) && + Objects.equals(this.target, oktaEvent.target); + } + + @Override + public int hashCode() { + return Objects.hash(eventType, target); + } + + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class OktaEvent {\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" target: ").append(toIndentedString(target)).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/OktaEventPayload.java b/src/main/java/one/talon/model/OktaEventPayload.java new file mode 100644 index 00000000..349f982a --- /dev/null +++ b/src/main/java/one/talon/model/OktaEventPayload.java @@ -0,0 +1,100 @@ +/* + * 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.OktaEventPayloadData; + +/** + * Payload containing provisioning event details from Okta. + */ +@ApiModel(description = "Payload containing provisioning event details from Okta.") + +public class OktaEventPayload { + public static final String SERIALIZED_NAME_DATA = "data"; + @SerializedName(SERIALIZED_NAME_DATA) + private OktaEventPayloadData data; + + + public OktaEventPayload data(OktaEventPayloadData data) { + + this.data = data; + return this; + } + + /** + * Get data + * @return data + **/ + @ApiModelProperty(required = true, value = "") + + public OktaEventPayloadData getData() { + return data; + } + + + public void setData(OktaEventPayloadData 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; + } + OktaEventPayload oktaEventPayload = (OktaEventPayload) o; + return Objects.equals(this.data, oktaEventPayload.data); + } + + @Override + public int hashCode() { + return Objects.hash(data); + } + + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class OktaEventPayload {\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/OktaEventPayloadData.java b/src/main/java/one/talon/model/OktaEventPayloadData.java new file mode 100644 index 00000000..dd5096b7 --- /dev/null +++ b/src/main/java/one/talon/model/OktaEventPayloadData.java @@ -0,0 +1,107 @@ +/* + * 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.OktaEvent; + +/** + * Data part of the event emitted by Okta. + */ +@ApiModel(description = "Data part of the event emitted by Okta.") + +public class OktaEventPayloadData { + public static final String SERIALIZED_NAME_EVENTS = "events"; + @SerializedName(SERIALIZED_NAME_EVENTS) + private List events = new ArrayList(); + + + public OktaEventPayloadData events(List events) { + + this.events = events; + return this; + } + + public OktaEventPayloadData addEventsItem(OktaEvent eventsItem) { + this.events.add(eventsItem); + return this; + } + + /** + * Get events + * @return events + **/ + @ApiModelProperty(required = true, value = "") + + public List getEvents() { + return events; + } + + + public void setEvents(List events) { + this.events = events; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + OktaEventPayloadData oktaEventPayloadData = (OktaEventPayloadData) o; + return Objects.equals(this.events, oktaEventPayloadData.events); + } + + @Override + public int hashCode() { + return Objects.hash(events); + } + + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class OktaEventPayloadData {\n"); + sb.append(" events: ").append(toIndentedString(events)).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/OktaEventTarget.java b/src/main/java/one/talon/model/OktaEventTarget.java new file mode 100644 index 00000000..128ae48f --- /dev/null +++ b/src/main/java/one/talon/model/OktaEventTarget.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; + +/** + * Target of the specific Okta event. + */ +@ApiModel(description = "Target of the specific Okta event.") + +public class OktaEventTarget { + public static final String SERIALIZED_NAME_TYPE = "type"; + @SerializedName(SERIALIZED_NAME_TYPE) + private String type; + + public static final String SERIALIZED_NAME_ALTERNATE_ID = "alternateId"; + @SerializedName(SERIALIZED_NAME_ALTERNATE_ID) + private String alternateId; + + public static final String SERIALIZED_NAME_DISPLAY_NAME = "displayName"; + @SerializedName(SERIALIZED_NAME_DISPLAY_NAME) + private String displayName; + + + public OktaEventTarget type(String type) { + + this.type = type; + return this; + } + + /** + * Type of the event target. + * @return type + **/ + @ApiModelProperty(example = "AppUser", required = true, value = "Type of the event target.") + + public String getType() { + return type; + } + + + public void setType(String type) { + this.type = type; + } + + + public OktaEventTarget alternateId(String alternateId) { + + this.alternateId = alternateId; + return this; + } + + /** + * Identifier of the event target, depending on its type. + * @return alternateId + **/ + @ApiModelProperty(example = "john.doe@example.com", required = true, value = "Identifier of the event target, depending on its type.") + + public String getAlternateId() { + return alternateId; + } + + + public void setAlternateId(String alternateId) { + this.alternateId = alternateId; + } + + + public OktaEventTarget displayName(String displayName) { + + this.displayName = displayName; + return this; + } + + /** + * Display name of the event target. + * @return displayName + **/ + @ApiModelProperty(example = "John Doe", required = true, value = "Display name of the event target.") + + public String getDisplayName() { + return displayName; + } + + + public void setDisplayName(String displayName) { + this.displayName = displayName; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + OktaEventTarget oktaEventTarget = (OktaEventTarget) o; + return Objects.equals(this.type, oktaEventTarget.type) && + Objects.equals(this.alternateId, oktaEventTarget.alternateId) && + Objects.equals(this.displayName, oktaEventTarget.displayName); + } + + @Override + public int hashCode() { + return Objects.hash(type, alternateId, displayName); + } + + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class OktaEventTarget {\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" alternateId: ").append(toIndentedString(alternateId)).append("\n"); + sb.append(" displayName: ").append(toIndentedString(displayName)).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/PatchItemCatalogAction.java b/src/main/java/one/talon/model/PatchItemCatalogAction.java index e0b63b7f..18419072 100644 --- a/src/main/java/one/talon/model/PatchItemCatalogAction.java +++ b/src/main/java/one/talon/model/PatchItemCatalogAction.java @@ -24,14 +24,12 @@ import io.swagger.annotations.ApiModelProperty; import java.io.IOException; import java.math.BigDecimal; -import one.talon.custom.JsonNullable; -import one.talon.custom.NullableAdapterFactory; +import one.talon.model.Product; /** * The specific properties of the \"PATCH\" catalog sync action. **Note:** - If you do not provide a new `price` value, the existing `price` value is retained. - If you do not provide a new `product` value, the `product` value is set to `null`. */ @ApiModel(description = "The specific properties of the \"PATCH\" catalog sync action. **Note:** - If you do not provide a new `price` value, the existing `price` value is retained. - If you do not provide a new `product` value, the `product` value is set to `null`. ") -@JsonAdapter(NullableAdapterFactory.class) public class PatchItemCatalogAction { public static final String SERIALIZED_NAME_SKU = "sku"; @@ -44,8 +42,6 @@ public class PatchItemCatalogAction { public static final String SERIALIZED_NAME_ATTRIBUTES = "attributes"; @SerializedName(SERIALIZED_NAME_ATTRIBUTES) - /*allow Serializing null for this field */ - @JsonNullable private Object attributes; public static final String SERIALIZED_NAME_PRODUCT = "product"; diff --git a/src/main/java/one/talon/model/PatchManyItemsCatalogAction.java b/src/main/java/one/talon/model/PatchManyItemsCatalogAction.java index 63343879..817d2f02 100644 --- a/src/main/java/one/talon/model/PatchManyItemsCatalogAction.java +++ b/src/main/java/one/talon/model/PatchManyItemsCatalogAction.java @@ -27,14 +27,11 @@ import java.util.ArrayList; import java.util.List; import one.talon.model.CatalogActionFilter; -import one.talon.custom.JsonNullable; -import one.talon.custom.NullableAdapterFactory; /** * The specific properties of the \"PATCH_MANY\" catalog sync action. */ @ApiModel(description = "The specific properties of the \"PATCH_MANY\" catalog sync action.") -@JsonAdapter(NullableAdapterFactory.class) public class PatchManyItemsCatalogAction { public static final String SERIALIZED_NAME_PRICE = "price"; @@ -47,8 +44,6 @@ public class PatchManyItemsCatalogAction { public static final String SERIALIZED_NAME_ATTRIBUTES = "attributes"; @SerializedName(SERIALIZED_NAME_ATTRIBUTES) - /*allow Serializing null for this field */ - @JsonNullable private Object attributes; diff --git a/src/main/java/one/talon/model/ProjectedTier.java b/src/main/java/one/talon/model/ProjectedTier.java new file mode 100644 index 00000000..b5b38ddd --- /dev/null +++ b/src/main/java/one/talon/model/ProjectedTier.java @@ -0,0 +1,157 @@ +/* + * 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; + +/** + * ProjectedTier + */ + +public class ProjectedTier { + public static final String SERIALIZED_NAME_PROJECTED_ACTIVE_POINTS = "projectedActivePoints"; + @SerializedName(SERIALIZED_NAME_PROJECTED_ACTIVE_POINTS) + private BigDecimal projectedActivePoints; + + public static final String SERIALIZED_NAME_STAY_IN_TIER_POINTS = "stayInTierPoints"; + @SerializedName(SERIALIZED_NAME_STAY_IN_TIER_POINTS) + private BigDecimal stayInTierPoints; + + public static final String SERIALIZED_NAME_PROJECTED_TIER_NAME = "projectedTierName"; + @SerializedName(SERIALIZED_NAME_PROJECTED_TIER_NAME) + private String projectedTierName; + + + public ProjectedTier projectedActivePoints(BigDecimal projectedActivePoints) { + + this.projectedActivePoints = projectedActivePoints; + return this; + } + + /** + * The active points of the customer when their current tier expires. + * @return projectedActivePoints + **/ + @ApiModelProperty(example = "198.0", required = true, value = "The active points of the customer when their current tier expires.") + + public BigDecimal getProjectedActivePoints() { + return projectedActivePoints; + } + + + public void setProjectedActivePoints(BigDecimal projectedActivePoints) { + this.projectedActivePoints = projectedActivePoints; + } + + + public ProjectedTier stayInTierPoints(BigDecimal stayInTierPoints) { + + this.stayInTierPoints = stayInTierPoints; + return this; + } + + /** + * The number of points the customer needs to stay in the current tier. **Note**: This is included in the response when the customer is projected to be downgraded. + * @return stayInTierPoints + **/ + @javax.annotation.Nullable + @ApiModelProperty(example = "2.0", value = "The number of points the customer needs to stay in the current tier. **Note**: This is included in the response when the customer is projected to be downgraded. ") + + public BigDecimal getStayInTierPoints() { + return stayInTierPoints; + } + + + public void setStayInTierPoints(BigDecimal stayInTierPoints) { + this.stayInTierPoints = stayInTierPoints; + } + + + public ProjectedTier projectedTierName(String projectedTierName) { + + this.projectedTierName = projectedTierName; + return this; + } + + /** + * The name of the tier the user will enter once their current tier expires. + * @return projectedTierName + **/ + @javax.annotation.Nullable + @ApiModelProperty(example = "Tier 1", value = "The name of the tier the user will enter once their current tier expires.") + + public String getProjectedTierName() { + return projectedTierName; + } + + + public void setProjectedTierName(String projectedTierName) { + this.projectedTierName = projectedTierName; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ProjectedTier projectedTier = (ProjectedTier) o; + return Objects.equals(this.projectedActivePoints, projectedTier.projectedActivePoints) && + Objects.equals(this.stayInTierPoints, projectedTier.stayInTierPoints) && + Objects.equals(this.projectedTierName, projectedTier.projectedTierName); + } + + @Override + public int hashCode() { + return Objects.hash(projectedActivePoints, stayInTierPoints, projectedTierName); + } + + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ProjectedTier {\n"); + sb.append(" projectedActivePoints: ").append(toIndentedString(projectedActivePoints)).append("\n"); + sb.append(" stayInTierPoints: ").append(toIndentedString(stayInTierPoints)).append("\n"); + sb.append(" projectedTierName: ").append(toIndentedString(projectedTierName)).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/RejectCouponEffectProps.java b/src/main/java/one/talon/model/RejectCouponEffectProps.java index 56fcce7b..119cc084 100644 --- a/src/main/java/one/talon/model/RejectCouponEffectProps.java +++ b/src/main/java/one/talon/model/RejectCouponEffectProps.java @@ -50,6 +50,10 @@ public class RejectCouponEffectProps { @SerializedName(SERIALIZED_NAME_DETAILS) private String details; + public static final String SERIALIZED_NAME_CAMPAIGN_EXCLUSION_REASON = "campaignExclusionReason"; + @SerializedName(SERIALIZED_NAME_CAMPAIGN_EXCLUSION_REASON) + private String campaignExclusionReason; + public RejectCouponEffectProps value(String value) { @@ -164,6 +168,29 @@ public void setDetails(String details) { } + public RejectCouponEffectProps campaignExclusionReason(String campaignExclusionReason) { + + this.campaignExclusionReason = campaignExclusionReason; + return this; + } + + /** + * The reason why the campaign was not applied. + * @return campaignExclusionReason + **/ + @javax.annotation.Nullable + @ApiModelProperty(example = "CampaignGaveLowerDiscount", value = "The reason why the campaign was not applied.") + + public String getCampaignExclusionReason() { + return campaignExclusionReason; + } + + + public void setCampaignExclusionReason(String campaignExclusionReason) { + this.campaignExclusionReason = campaignExclusionReason; + } + + @Override public boolean equals(java.lang.Object o) { if (this == o) { @@ -177,12 +204,13 @@ public boolean equals(java.lang.Object o) { Objects.equals(this.rejectionReason, rejectCouponEffectProps.rejectionReason) && Objects.equals(this.conditionIndex, rejectCouponEffectProps.conditionIndex) && Objects.equals(this.effectIndex, rejectCouponEffectProps.effectIndex) && - Objects.equals(this.details, rejectCouponEffectProps.details); + Objects.equals(this.details, rejectCouponEffectProps.details) && + Objects.equals(this.campaignExclusionReason, rejectCouponEffectProps.campaignExclusionReason); } @Override public int hashCode() { - return Objects.hash(value, rejectionReason, conditionIndex, effectIndex, details); + return Objects.hash(value, rejectionReason, conditionIndex, effectIndex, details, campaignExclusionReason); } @@ -195,6 +223,7 @@ public String toString() { sb.append(" conditionIndex: ").append(toIndentedString(conditionIndex)).append("\n"); sb.append(" effectIndex: ").append(toIndentedString(effectIndex)).append("\n"); sb.append(" details: ").append(toIndentedString(details)).append("\n"); + sb.append(" campaignExclusionReason: ").append(toIndentedString(campaignExclusionReason)).append("\n"); sb.append("}"); return sb.toString(); } diff --git a/src/main/java/one/talon/model/RejectReferralEffectProps.java b/src/main/java/one/talon/model/RejectReferralEffectProps.java index 019dd75b..0f9fd821 100644 --- a/src/main/java/one/talon/model/RejectReferralEffectProps.java +++ b/src/main/java/one/talon/model/RejectReferralEffectProps.java @@ -50,6 +50,10 @@ public class RejectReferralEffectProps { @SerializedName(SERIALIZED_NAME_DETAILS) private String details; + public static final String SERIALIZED_NAME_CAMPAIGN_EXCLUSION_REASON = "campaignExclusionReason"; + @SerializedName(SERIALIZED_NAME_CAMPAIGN_EXCLUSION_REASON) + private String campaignExclusionReason; + public RejectReferralEffectProps value(String value) { @@ -164,6 +168,29 @@ public void setDetails(String details) { } + public RejectReferralEffectProps campaignExclusionReason(String campaignExclusionReason) { + + this.campaignExclusionReason = campaignExclusionReason; + return this; + } + + /** + * The reason why the campaign was not applied. + * @return campaignExclusionReason + **/ + @javax.annotation.Nullable + @ApiModelProperty(example = "CampaignGaveLowerDiscount", value = "The reason why the campaign was not applied.") + + public String getCampaignExclusionReason() { + return campaignExclusionReason; + } + + + public void setCampaignExclusionReason(String campaignExclusionReason) { + this.campaignExclusionReason = campaignExclusionReason; + } + + @Override public boolean equals(java.lang.Object o) { if (this == o) { @@ -177,12 +204,13 @@ public boolean equals(java.lang.Object o) { Objects.equals(this.rejectionReason, rejectReferralEffectProps.rejectionReason) && Objects.equals(this.conditionIndex, rejectReferralEffectProps.conditionIndex) && Objects.equals(this.effectIndex, rejectReferralEffectProps.effectIndex) && - Objects.equals(this.details, rejectReferralEffectProps.details); + Objects.equals(this.details, rejectReferralEffectProps.details) && + Objects.equals(this.campaignExclusionReason, rejectReferralEffectProps.campaignExclusionReason); } @Override public int hashCode() { - return Objects.hash(value, rejectionReason, conditionIndex, effectIndex, details); + return Objects.hash(value, rejectionReason, conditionIndex, effectIndex, details, campaignExclusionReason); } @@ -195,6 +223,7 @@ public String toString() { sb.append(" conditionIndex: ").append(toIndentedString(conditionIndex)).append("\n"); sb.append(" effectIndex: ").append(toIndentedString(effectIndex)).append("\n"); sb.append(" details: ").append(toIndentedString(details)).append("\n"); + sb.append(" campaignExclusionReason: ").append(toIndentedString(campaignExclusionReason)).append("\n"); sb.append("}"); return sb.toString(); } diff --git a/src/main/java/one/talon/model/RollbackIncreasedAchievementProgressEffectProps.java b/src/main/java/one/talon/model/RollbackIncreasedAchievementProgressEffectProps.java new file mode 100644 index 00000000..638f2919 --- /dev/null +++ b/src/main/java/one/talon/model/RollbackIncreasedAchievementProgressEffectProps.java @@ -0,0 +1,240 @@ +/* + * 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; + +/** + * The properties specific to the \"rollbackIncreasedAchievementProgress\" effect. This gets triggered whenever a closed session where the `increaseAchievementProgress` effect was triggered is cancelled. This is applicable only when the customer has not completed the achievement. + */ +@ApiModel(description = "The properties specific to the \"rollbackIncreasedAchievementProgress\" effect. This gets triggered whenever a closed session where the `increaseAchievementProgress` effect was triggered is cancelled. This is applicable only when the customer has not completed the achievement.") + +public class RollbackIncreasedAchievementProgressEffectProps { + public static final String SERIALIZED_NAME_ACHIEVEMENT_ID = "achievementId"; + @SerializedName(SERIALIZED_NAME_ACHIEVEMENT_ID) + private Integer achievementId; + + public static final String SERIALIZED_NAME_ACHIEVEMENT_NAME = "achievementName"; + @SerializedName(SERIALIZED_NAME_ACHIEVEMENT_NAME) + private String achievementName; + + public static final String SERIALIZED_NAME_PROGRESS_TRACKER_ID = "progressTrackerId"; + @SerializedName(SERIALIZED_NAME_PROGRESS_TRACKER_ID) + private Integer progressTrackerId; + + public static final String SERIALIZED_NAME_DECREASE_PROGRESS_BY = "decreaseProgressBy"; + @SerializedName(SERIALIZED_NAME_DECREASE_PROGRESS_BY) + private BigDecimal decreaseProgressBy; + + public static final String SERIALIZED_NAME_CURRENT_PROGRESS = "currentProgress"; + @SerializedName(SERIALIZED_NAME_CURRENT_PROGRESS) + private BigDecimal currentProgress; + + public static final String SERIALIZED_NAME_TARGET = "target"; + @SerializedName(SERIALIZED_NAME_TARGET) + private BigDecimal target; + + + public RollbackIncreasedAchievementProgressEffectProps achievementId(Integer achievementId) { + + this.achievementId = achievementId; + return this; + } + + /** + * The internal ID of the achievement. + * @return achievementId + **/ + @ApiModelProperty(example = "10", required = true, value = "The internal ID of the achievement.") + + public Integer getAchievementId() { + return achievementId; + } + + + public void setAchievementId(Integer achievementId) { + this.achievementId = achievementId; + } + + + public RollbackIncreasedAchievementProgressEffectProps achievementName(String achievementName) { + + this.achievementName = achievementName; + return this; + } + + /** + * The name of the achievement. + * @return achievementName + **/ + @ApiModelProperty(example = "FreeCoffee10Orders", required = true, value = "The name of the achievement.") + + public String getAchievementName() { + return achievementName; + } + + + public void setAchievementName(String achievementName) { + this.achievementName = achievementName; + } + + + public RollbackIncreasedAchievementProgressEffectProps progressTrackerId(Integer progressTrackerId) { + + this.progressTrackerId = progressTrackerId; + return this; + } + + /** + * The internal ID of the achievement progress tracker. + * @return progressTrackerId + **/ + @ApiModelProperty(required = true, value = "The internal ID of the achievement progress tracker.") + + public Integer getProgressTrackerId() { + return progressTrackerId; + } + + + public void setProgressTrackerId(Integer progressTrackerId) { + this.progressTrackerId = progressTrackerId; + } + + + public RollbackIncreasedAchievementProgressEffectProps decreaseProgressBy(BigDecimal decreaseProgressBy) { + + this.decreaseProgressBy = decreaseProgressBy; + return this; + } + + /** + * The value by which the customer's current progress in the achievement is decreased. + * @return decreaseProgressBy + **/ + @ApiModelProperty(required = true, value = "The value by which the customer's current progress in the achievement is decreased.") + + public BigDecimal getDecreaseProgressBy() { + return decreaseProgressBy; + } + + + public void setDecreaseProgressBy(BigDecimal decreaseProgressBy) { + this.decreaseProgressBy = decreaseProgressBy; + } + + + public RollbackIncreasedAchievementProgressEffectProps currentProgress(BigDecimal currentProgress) { + + this.currentProgress = currentProgress; + return this; + } + + /** + * The current progress of the customer in the achievement. + * @return currentProgress + **/ + @ApiModelProperty(required = true, value = "The current progress of the customer in the achievement.") + + public BigDecimal getCurrentProgress() { + return currentProgress; + } + + + public void setCurrentProgress(BigDecimal currentProgress) { + this.currentProgress = currentProgress; + } + + + public RollbackIncreasedAchievementProgressEffectProps target(BigDecimal target) { + + this.target = target; + return this; + } + + /** + * The target value to complete the achievement. + * @return target + **/ + @ApiModelProperty(required = true, value = "The target value to complete the achievement.") + + public BigDecimal getTarget() { + return target; + } + + + public void setTarget(BigDecimal target) { + this.target = target; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + RollbackIncreasedAchievementProgressEffectProps rollbackIncreasedAchievementProgressEffectProps = (RollbackIncreasedAchievementProgressEffectProps) o; + return Objects.equals(this.achievementId, rollbackIncreasedAchievementProgressEffectProps.achievementId) && + Objects.equals(this.achievementName, rollbackIncreasedAchievementProgressEffectProps.achievementName) && + Objects.equals(this.progressTrackerId, rollbackIncreasedAchievementProgressEffectProps.progressTrackerId) && + Objects.equals(this.decreaseProgressBy, rollbackIncreasedAchievementProgressEffectProps.decreaseProgressBy) && + Objects.equals(this.currentProgress, rollbackIncreasedAchievementProgressEffectProps.currentProgress) && + Objects.equals(this.target, rollbackIncreasedAchievementProgressEffectProps.target); + } + + @Override + public int hashCode() { + return Objects.hash(achievementId, achievementName, progressTrackerId, decreaseProgressBy, currentProgress, target); + } + + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class RollbackIncreasedAchievementProgressEffectProps {\n"); + sb.append(" achievementId: ").append(toIndentedString(achievementId)).append("\n"); + sb.append(" achievementName: ").append(toIndentedString(achievementName)).append("\n"); + sb.append(" progressTrackerId: ").append(toIndentedString(progressTrackerId)).append("\n"); + sb.append(" decreaseProgressBy: ").append(toIndentedString(decreaseProgressBy)).append("\n"); + sb.append(" currentProgress: ").append(toIndentedString(currentProgress)).append("\n"); + sb.append(" target: ").append(toIndentedString(target)).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/SSOConfig.java b/src/main/java/one/talon/model/SSOConfig.java index 1901832d..00e669db 100644 --- a/src/main/java/one/talon/model/SSOConfig.java +++ b/src/main/java/one/talon/model/SSOConfig.java @@ -33,6 +33,10 @@ public class SSOConfig { @SerializedName(SERIALIZED_NAME_ENFORCED) private Boolean enforced; + public static final String SERIALIZED_NAME_NEW_ACS_URL = "newAcsUrl"; + @SerializedName(SERIALIZED_NAME_NEW_ACS_URL) + private String newAcsUrl; + public SSOConfig enforced(Boolean enforced) { @@ -56,6 +60,29 @@ public void setEnforced(Boolean enforced) { } + public SSOConfig newAcsUrl(String newAcsUrl) { + + this.newAcsUrl = newAcsUrl; + return this; + } + + /** + * Assertion Consumer Service (ACS) URL for setting up a new SAML connection with an identity provider like Okta or Microsoft Entra ID. + * @return newAcsUrl + **/ + @javax.annotation.Nullable + @ApiModelProperty(example = "https://yourdeployment.talon.one/v1/saml_connections/5/saml_callback", value = "Assertion Consumer Service (ACS) URL for setting up a new SAML connection with an identity provider like Okta or Microsoft Entra ID. ") + + public String getNewAcsUrl() { + return newAcsUrl; + } + + + public void setNewAcsUrl(String newAcsUrl) { + this.newAcsUrl = newAcsUrl; + } + + @Override public boolean equals(java.lang.Object o) { if (this == o) { @@ -65,12 +92,13 @@ public boolean equals(java.lang.Object o) { return false; } SSOConfig ssOConfig = (SSOConfig) o; - return Objects.equals(this.enforced, ssOConfig.enforced); + return Objects.equals(this.enforced, ssOConfig.enforced) && + Objects.equals(this.newAcsUrl, ssOConfig.newAcsUrl); } @Override public int hashCode() { - return Objects.hash(enforced); + return Objects.hash(enforced, newAcsUrl); } @@ -79,6 +107,7 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class SSOConfig {\n"); sb.append(" enforced: ").append(toIndentedString(enforced)).append("\n"); + sb.append(" newAcsUrl: ").append(toIndentedString(newAcsUrl)).append("\n"); sb.append("}"); return sb.toString(); } diff --git a/src/main/java/one/talon/model/ScimNewUser.java b/src/main/java/one/talon/model/ScimNewUser.java new file mode 100644 index 00000000..2e0e7725 --- /dev/null +++ b/src/main/java/one/talon/model/ScimNewUser.java @@ -0,0 +1,157 @@ +/* + * 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; + +/** + * Payload for users that are created using the SCIM provisioning protocol with an identity provider, for example, Microsoft Entra ID. + */ +@ApiModel(description = "Payload for users that are created using the SCIM provisioning protocol with an identity provider, for example, Microsoft Entra ID.") + +public class ScimNewUser { + public static final String SERIALIZED_NAME_ACTIVE = "active"; + @SerializedName(SERIALIZED_NAME_ACTIVE) + private Boolean active; + + public static final String SERIALIZED_NAME_DISPLAY_NAME = "displayName"; + @SerializedName(SERIALIZED_NAME_DISPLAY_NAME) + private String displayName; + + public static final String SERIALIZED_NAME_USER_NAME = "userName"; + @SerializedName(SERIALIZED_NAME_USER_NAME) + private String userName; + + + public ScimNewUser active(Boolean active) { + + this.active = active; + return this; + } + + /** + * Status of the user. + * @return active + **/ + @javax.annotation.Nullable + @ApiModelProperty(example = "true", value = "Status of the user.") + + public Boolean getActive() { + return active; + } + + + public void setActive(Boolean active) { + this.active = active; + } + + + public ScimNewUser displayName(String displayName) { + + this.displayName = displayName; + return this; + } + + /** + * Display name of the user. + * @return displayName + **/ + @javax.annotation.Nullable + @ApiModelProperty(example = "John Doe", value = "Display name of the user.") + + public String getDisplayName() { + return displayName; + } + + + public void setDisplayName(String displayName) { + this.displayName = displayName; + } + + + public ScimNewUser userName(String userName) { + + this.userName = userName; + return this; + } + + /** + * Unique identifier of the user. This is usually an email address. + * @return userName + **/ + @ApiModelProperty(example = "john.doe@example.com", required = true, value = "Unique identifier of the user. This is usually an email address.") + + public String getUserName() { + return userName; + } + + + public void setUserName(String userName) { + this.userName = userName; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ScimNewUser scimNewUser = (ScimNewUser) o; + return Objects.equals(this.active, scimNewUser.active) && + Objects.equals(this.displayName, scimNewUser.displayName) && + Objects.equals(this.userName, scimNewUser.userName); + } + + @Override + public int hashCode() { + return Objects.hash(active, displayName, userName); + } + + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ScimNewUser {\n"); + sb.append(" active: ").append(toIndentedString(active)).append("\n"); + sb.append(" displayName: ").append(toIndentedString(displayName)).append("\n"); + sb.append(" userName: ").append(toIndentedString(userName)).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/ScimResource.java b/src/main/java/one/talon/model/ScimResource.java new file mode 100644 index 00000000..ffef6d95 --- /dev/null +++ b/src/main/java/one/talon/model/ScimResource.java @@ -0,0 +1,129 @@ +/* + * 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; + +/** + * Resource schema definition for the SCIM provisioning protocol. + */ +@ApiModel(description = "Resource schema definition for the SCIM provisioning protocol.") + +public class ScimResource { + public static final String SERIALIZED_NAME_ID = "id"; + @SerializedName(SERIALIZED_NAME_ID) + private String id; + + public static final String SERIALIZED_NAME_NAME = "name"; + @SerializedName(SERIALIZED_NAME_NAME) + private String name; + + + public ScimResource id(String id) { + + this.id = id; + return this; + } + + /** + * ID of the resource. + * @return id + **/ + @javax.annotation.Nullable + @ApiModelProperty(value = "ID of the resource.") + + public String getId() { + return id; + } + + + public void setId(String id) { + this.id = id; + } + + + public ScimResource name(String name) { + + this.name = name; + return this; + } + + /** + * Name of the resource. + * @return name + **/ + @javax.annotation.Nullable + @ApiModelProperty(value = "Name of the resource.") + + public String getName() { + return name; + } + + + public void setName(String name) { + this.name = name; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ScimResource scimResource = (ScimResource) o; + return Objects.equals(this.id, scimResource.id) && + Objects.equals(this.name, scimResource.name); + } + + @Override + public int hashCode() { + return Objects.hash(id, name); + } + + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ScimResource {\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).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/ScimResourceTypesListResponse.java b/src/main/java/one/talon/model/ScimResourceTypesListResponse.java new file mode 100644 index 00000000..18f7b0dd --- /dev/null +++ b/src/main/java/one/talon/model/ScimResourceTypesListResponse.java @@ -0,0 +1,107 @@ +/* + * 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.ScimResource; + +/** + * List of resource types supported by the SCIM provisioning protocol. + */ +@ApiModel(description = "List of resource types supported by the SCIM provisioning protocol.") + +public class ScimResourceTypesListResponse { + public static final String SERIALIZED_NAME_RESOURCES = "Resources"; + @SerializedName(SERIALIZED_NAME_RESOURCES) + private List resources = new ArrayList(); + + + public ScimResourceTypesListResponse resources(List resources) { + + this.resources = resources; + return this; + } + + public ScimResourceTypesListResponse addResourcesItem(ScimResource resourcesItem) { + this.resources.add(resourcesItem); + return this; + } + + /** + * Get resources + * @return resources + **/ + @ApiModelProperty(required = true, value = "") + + public List getResources() { + return resources; + } + + + public void setResources(List resources) { + this.resources = resources; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ScimResourceTypesListResponse scimResourceTypesListResponse = (ScimResourceTypesListResponse) o; + return Objects.equals(this.resources, scimResourceTypesListResponse.resources); + } + + @Override + public int hashCode() { + return Objects.hash(resources); + } + + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ScimResourceTypesListResponse {\n"); + sb.append(" resources: ").append(toIndentedString(resources)).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/ScimUser.java b/src/main/java/one/talon/model/ScimUser.java new file mode 100644 index 00000000..2ef9814b --- /dev/null +++ b/src/main/java/one/talon/model/ScimUser.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; + +/** + * Schema definition for users that have been provisioned using the SCIM protocol with an identity provider, for example, Microsoft Entra ID. + */ +@ApiModel(description = "Schema definition for users that have been provisioned using the SCIM protocol with an identity provider, for example, Microsoft Entra ID.") + +public class ScimUser { + public static final String SERIALIZED_NAME_ACTIVE = "active"; + @SerializedName(SERIALIZED_NAME_ACTIVE) + private Boolean active; + + public static final String SERIALIZED_NAME_DISPLAY_NAME = "displayName"; + @SerializedName(SERIALIZED_NAME_DISPLAY_NAME) + private String displayName; + + public static final String SERIALIZED_NAME_USER_NAME = "userName"; + @SerializedName(SERIALIZED_NAME_USER_NAME) + private String userName; + + public static final String SERIALIZED_NAME_ID = "id"; + @SerializedName(SERIALIZED_NAME_ID) + private String id; + + + public ScimUser active(Boolean active) { + + this.active = active; + return this; + } + + /** + * Status of the user. + * @return active + **/ + @javax.annotation.Nullable + @ApiModelProperty(example = "true", value = "Status of the user.") + + public Boolean getActive() { + return active; + } + + + public void setActive(Boolean active) { + this.active = active; + } + + + public ScimUser displayName(String displayName) { + + this.displayName = displayName; + return this; + } + + /** + * Display name of the user. + * @return displayName + **/ + @javax.annotation.Nullable + @ApiModelProperty(example = "John Doe", value = "Display name of the user.") + + public String getDisplayName() { + return displayName; + } + + + public void setDisplayName(String displayName) { + this.displayName = displayName; + } + + + public ScimUser userName(String userName) { + + this.userName = userName; + return this; + } + + /** + * Unique identifier of the user. This is usually an email address. + * @return userName + **/ + @ApiModelProperty(example = "john.doe@example.com", required = true, value = "Unique identifier of the user. This is usually an email address.") + + public String getUserName() { + return userName; + } + + + public void setUserName(String userName) { + this.userName = userName; + } + + + public ScimUser id(String id) { + + this.id = id; + return this; + } + + /** + * ID of the user. + * @return id + **/ + @ApiModelProperty(example = "359", required = true, value = "ID of the user.") + + public String getId() { + return id; + } + + + public void setId(String id) { + this.id = id; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ScimUser scimUser = (ScimUser) o; + return Objects.equals(this.active, scimUser.active) && + Objects.equals(this.displayName, scimUser.displayName) && + Objects.equals(this.userName, scimUser.userName) && + Objects.equals(this.id, scimUser.id); + } + + @Override + public int hashCode() { + return Objects.hash(active, displayName, userName, id); + } + + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ScimUser {\n"); + sb.append(" active: ").append(toIndentedString(active)).append("\n"); + sb.append(" displayName: ").append(toIndentedString(displayName)).append("\n"); + sb.append(" userName: ").append(toIndentedString(userName)).append("\n"); + sb.append(" id: ").append(toIndentedString(id)).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/ScimUsersListResponse.java b/src/main/java/one/talon/model/ScimUsersListResponse.java new file mode 100644 index 00000000..8eb85562 --- /dev/null +++ b/src/main/java/one/talon/model/ScimUsersListResponse.java @@ -0,0 +1,173 @@ +/* + * 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.ScimUser; + +/** + * List of users that have been provisioned using the SCIM protocol with an identity provider, for example, Microsoft Entra ID. + */ +@ApiModel(description = "List of users that have been provisioned using the SCIM protocol with an identity provider, for example, Microsoft Entra ID.") + +public class ScimUsersListResponse { + public static final String SERIALIZED_NAME_RESOURCES = "Resources"; + @SerializedName(SERIALIZED_NAME_RESOURCES) + private List resources = new ArrayList(); + + public static final String SERIALIZED_NAME_SCHEMAS = "schemas"; + @SerializedName(SERIALIZED_NAME_SCHEMAS) + private List schemas = null; + + public static final String SERIALIZED_NAME_TOTAL_RESULTS = "totalResults"; + @SerializedName(SERIALIZED_NAME_TOTAL_RESULTS) + private Integer totalResults; + + + public ScimUsersListResponse resources(List resources) { + + this.resources = resources; + return this; + } + + public ScimUsersListResponse addResourcesItem(ScimUser resourcesItem) { + this.resources.add(resourcesItem); + return this; + } + + /** + * Get resources + * @return resources + **/ + @ApiModelProperty(required = true, value = "") + + public List getResources() { + return resources; + } + + + public void setResources(List resources) { + this.resources = resources; + } + + + public ScimUsersListResponse schemas(List schemas) { + + this.schemas = schemas; + return this; + } + + public ScimUsersListResponse addSchemasItem(String schemasItem) { + if (this.schemas == null) { + this.schemas = new ArrayList(); + } + this.schemas.add(schemasItem); + return this; + } + + /** + * Get schemas + * @return schemas + **/ + @javax.annotation.Nullable + @ApiModelProperty(value = "") + + public List getSchemas() { + return schemas; + } + + + public void setSchemas(List schemas) { + this.schemas = schemas; + } + + + public ScimUsersListResponse totalResults(Integer totalResults) { + + this.totalResults = totalResults; + return this; + } + + /** + * Number of total results in the response. + * @return totalResults + **/ + @javax.annotation.Nullable + @ApiModelProperty(value = "Number of total results in the response.") + + public Integer getTotalResults() { + return totalResults; + } + + + public void setTotalResults(Integer totalResults) { + this.totalResults = totalResults; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ScimUsersListResponse scimUsersListResponse = (ScimUsersListResponse) o; + return Objects.equals(this.resources, scimUsersListResponse.resources) && + Objects.equals(this.schemas, scimUsersListResponse.schemas) && + Objects.equals(this.totalResults, scimUsersListResponse.totalResults); + } + + @Override + public int hashCode() { + return Objects.hash(resources, schemas, totalResults); + } + + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ScimUsersListResponse {\n"); + sb.append(" resources: ").append(toIndentedString(resources)).append("\n"); + sb.append(" schemas: ").append(toIndentedString(schemas)).append("\n"); + sb.append(" totalResults: ").append(toIndentedString(totalResults)).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/Tier.java b/src/main/java/one/talon/model/Tier.java index 1e23ebad..28f4b93e 100644 --- a/src/main/java/one/talon/model/Tier.java +++ b/src/main/java/one/talon/model/Tier.java @@ -38,6 +38,10 @@ public class Tier { @SerializedName(SERIALIZED_NAME_NAME) private String name; + 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; @@ -138,6 +142,29 @@ public void setName(String name) { } + public Tier startDate(OffsetDateTime startDate) { + + this.startDate = startDate; + return this; + } + + /** + * Date and time when the customer moved to this tier. This value uses the loyalty program's time zone setting. + * @return startDate + **/ + @javax.annotation.Nullable + @ApiModelProperty(value = "Date and time when the customer moved to this tier. This value uses the loyalty program's time zone setting.") + + public OffsetDateTime getStartDate() { + return startDate; + } + + + public void setStartDate(OffsetDateTime startDate) { + this.startDate = startDate; + } + + public Tier expiryDate(OffsetDateTime expiryDate) { this.expiryDate = expiryDate; @@ -195,13 +222,14 @@ public boolean equals(java.lang.Object o) { Tier tier = (Tier) o; return Objects.equals(this.id, tier.id) && Objects.equals(this.name, tier.name) && + Objects.equals(this.startDate, tier.startDate) && Objects.equals(this.expiryDate, tier.expiryDate) && Objects.equals(this.downgradePolicy, tier.downgradePolicy); } @Override public int hashCode() { - return Objects.hash(id, name, expiryDate, downgradePolicy); + return Objects.hash(id, name, startDate, expiryDate, downgradePolicy); } @@ -211,6 +239,7 @@ public String toString() { sb.append("class Tier {\n"); sb.append(" id: ").append(toIndentedString(id)).append("\n"); sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" startDate: ").append(toIndentedString(startDate)).append("\n"); sb.append(" expiryDate: ").append(toIndentedString(expiryDate)).append("\n"); sb.append(" downgradePolicy: ").append(toIndentedString(downgradePolicy)).append("\n"); sb.append("}"); diff --git a/src/main/java/one/talon/model/TransferLoyaltyCard.java b/src/main/java/one/talon/model/TransferLoyaltyCard.java index c07826d9..24f0dc3e 100644 --- a/src/main/java/one/talon/model/TransferLoyaltyCard.java +++ b/src/main/java/one/talon/model/TransferLoyaltyCard.java @@ -33,6 +33,10 @@ public class TransferLoyaltyCard { @SerializedName(SERIALIZED_NAME_NEW_CARD_IDENTIFIER) private String newCardIdentifier; + public static final String SERIALIZED_NAME_BLOCK_REASON = "blockReason"; + @SerializedName(SERIALIZED_NAME_BLOCK_REASON) + private String blockReason; + public TransferLoyaltyCard newCardIdentifier(String newCardIdentifier) { @@ -56,6 +60,29 @@ public void setNewCardIdentifier(String newCardIdentifier) { } + public TransferLoyaltyCard blockReason(String blockReason) { + + this.blockReason = blockReason; + return this; + } + + /** + * Reason for transferring and blocking the loyalty card. + * @return blockReason + **/ + @javax.annotation.Nullable + @ApiModelProperty(example = "Current card lost. Customer needs a new card.", value = "Reason for transferring and blocking the loyalty card. ") + + public String getBlockReason() { + return blockReason; + } + + + public void setBlockReason(String blockReason) { + this.blockReason = blockReason; + } + + @Override public boolean equals(java.lang.Object o) { if (this == o) { @@ -65,12 +92,13 @@ public boolean equals(java.lang.Object o) { return false; } TransferLoyaltyCard transferLoyaltyCard = (TransferLoyaltyCard) o; - return Objects.equals(this.newCardIdentifier, transferLoyaltyCard.newCardIdentifier); + return Objects.equals(this.newCardIdentifier, transferLoyaltyCard.newCardIdentifier) && + Objects.equals(this.blockReason, transferLoyaltyCard.blockReason); } @Override public int hashCode() { - return Objects.hash(newCardIdentifier); + return Objects.hash(newCardIdentifier, blockReason); } @@ -79,6 +107,7 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class TransferLoyaltyCard {\n"); sb.append(" newCardIdentifier: ").append(toIndentedString(newCardIdentifier)).append("\n"); + sb.append(" blockReason: ").append(toIndentedString(blockReason)).append("\n"); sb.append("}"); return sb.toString(); } diff --git a/src/main/java/one/talon/model/UpdateLoyaltyCard.java b/src/main/java/one/talon/model/UpdateLoyaltyCard.java index 4fd02050..3f15aeb3 100644 --- a/src/main/java/one/talon/model/UpdateLoyaltyCard.java +++ b/src/main/java/one/talon/model/UpdateLoyaltyCard.java @@ -33,6 +33,10 @@ public class UpdateLoyaltyCard { @SerializedName(SERIALIZED_NAME_STATUS) private String status; + public static final String SERIALIZED_NAME_BLOCK_REASON = "blockReason"; + @SerializedName(SERIALIZED_NAME_BLOCK_REASON) + private String blockReason; + public UpdateLoyaltyCard status(String status) { @@ -56,6 +60,29 @@ public void setStatus(String status) { } + public UpdateLoyaltyCard blockReason(String blockReason) { + + this.blockReason = blockReason; + return this; + } + + /** + * Reason for transferring and blocking the loyalty card. + * @return blockReason + **/ + @javax.annotation.Nullable + @ApiModelProperty(example = "Current card lost. Customer needs a new card.", value = "Reason for transferring and blocking the loyalty card. ") + + public String getBlockReason() { + return blockReason; + } + + + public void setBlockReason(String blockReason) { + this.blockReason = blockReason; + } + + @Override public boolean equals(java.lang.Object o) { if (this == o) { @@ -65,12 +92,13 @@ public boolean equals(java.lang.Object o) { return false; } UpdateLoyaltyCard updateLoyaltyCard = (UpdateLoyaltyCard) o; - return Objects.equals(this.status, updateLoyaltyCard.status); + return Objects.equals(this.status, updateLoyaltyCard.status) && + Objects.equals(this.blockReason, updateLoyaltyCard.blockReason); } @Override public int hashCode() { - return Objects.hash(status); + return Objects.hash(status, blockReason); } @@ -79,6 +107,7 @@ public String toString() { StringBuilder sb = new StringBuilder(); sb.append("class UpdateLoyaltyCard {\n"); sb.append(" status: ").append(toIndentedString(status)).append("\n"); + sb.append(" blockReason: ").append(toIndentedString(blockReason)).append("\n"); sb.append("}"); return sb.toString(); } diff --git a/src/main/java/one/talon/model/UpdateLoyaltyProgram.java b/src/main/java/one/talon/model/UpdateLoyaltyProgram.java index b14fecd6..4882f697 100644 --- a/src/main/java/one/talon/model/UpdateLoyaltyProgram.java +++ b/src/main/java/one/talon/model/UpdateLoyaltyProgram.java @@ -25,7 +25,9 @@ import java.io.IOException; import java.util.ArrayList; import java.util.List; +import one.talon.model.CodeGeneratorSettings; import one.talon.model.NewLoyaltyTier; +import org.threeten.bp.OffsetDateTime; /** * @@ -66,17 +68,19 @@ public class UpdateLoyaltyProgram { private Boolean sandbox; /** - * The policy that defines which date is used to calculate the expiration date of a customer's current tier. - `tier_start_date`: The tier expiration date is calculated based on when the customer joined the current tier. - `program_join_date`: The tier expiration date is calculated based on when the customer joined the loyalty program. + * The policy that defines when the customer joins the loyalty program. - `not_join`: The customer does not join the loyalty program but can still earn and spend loyalty points. **Note**: The customer does not have a program join date. - `points_activated`: The customer joins the loyalty program only when their earned loyalty points become active for the first time. - `points_earned`: The customer joins the loyalty program when they earn loyalty points for the first time. */ - @JsonAdapter(TiersExpirationPolicyEnum.Adapter.class) - public enum TiersExpirationPolicyEnum { - TIER_START_DATE("tier_start_date"), + @JsonAdapter(ProgramJoinPolicyEnum.Adapter.class) + public enum ProgramJoinPolicyEnum { + NOT_JOIN("not_join"), - PROGRAM_JOIN_DATE("program_join_date"); + POINTS_ACTIVATED("points_activated"), + + POINTS_EARNED("points_earned"); private String value; - TiersExpirationPolicyEnum(String value) { + ProgramJoinPolicyEnum(String value) { this.value = value; } @@ -89,8 +93,8 @@ public String toString() { return String.valueOf(value); } - public static TiersExpirationPolicyEnum fromValue(String value) { - for (TiersExpirationPolicyEnum b : TiersExpirationPolicyEnum.values()) { + public static ProgramJoinPolicyEnum fromValue(String value) { + for (ProgramJoinPolicyEnum b : ProgramJoinPolicyEnum.values()) { if (b.value.equals(value)) { return b; } @@ -98,40 +102,40 @@ public static TiersExpirationPolicyEnum fromValue(String value) { throw new IllegalArgumentException("Unexpected value '" + value + "'"); } - public static class Adapter extends TypeAdapter { + public static class Adapter extends TypeAdapter { @Override - public void write(final JsonWriter jsonWriter, final TiersExpirationPolicyEnum enumeration) throws IOException { + public void write(final JsonWriter jsonWriter, final ProgramJoinPolicyEnum enumeration) throws IOException { jsonWriter.value(enumeration.getValue()); } @Override - public TiersExpirationPolicyEnum read(final JsonReader jsonReader) throws IOException { + public ProgramJoinPolicyEnum read(final JsonReader jsonReader) throws IOException { String value = jsonReader.nextString(); - return TiersExpirationPolicyEnum.fromValue(value); + return ProgramJoinPolicyEnum.fromValue(value); } } } - public static final String SERIALIZED_NAME_TIERS_EXPIRATION_POLICY = "tiersExpirationPolicy"; - @SerializedName(SERIALIZED_NAME_TIERS_EXPIRATION_POLICY) - private TiersExpirationPolicyEnum tiersExpirationPolicy; - - public static final String SERIALIZED_NAME_TIERS_EXPIRE_IN = "tiersExpireIn"; - @SerializedName(SERIALIZED_NAME_TIERS_EXPIRE_IN) - private String tiersExpireIn; + public static final String SERIALIZED_NAME_PROGRAM_JOIN_POLICY = "programJoinPolicy"; + @SerializedName(SERIALIZED_NAME_PROGRAM_JOIN_POLICY) + private ProgramJoinPolicyEnum programJoinPolicy; /** - * Customers's tier downgrade policy. - `one_down`: Once the tier expires and if the user doesn't have enough points to stay in the tier, the user is downgraded one tier down. - `balance_based`: Once the tier expires, the user's tier is evaluated based on the amount of active points the user has at this instant. + * The policy that defines which date is used to calculate the expiration date of a customer's current tier. - `tier_start_date`: The tier expiration date is calculated based on when the customer joined the current tier. - `program_join_date`: The tier expiration date is calculated based on when the customer joined the loyalty program. - `customer_attribute`: The tier expiration date is calculated based on a custom customer attribute. - `absolute_expiration`: The tier expires on a specified date and time. **Note**: For absolute expiration, it is required to provide a `tiersStartDate.` */ - @JsonAdapter(TiersDowngradePolicyEnum.Adapter.class) - public enum TiersDowngradePolicyEnum { - ONE_DOWN("one_down"), + @JsonAdapter(TiersExpirationPolicyEnum.Adapter.class) + public enum TiersExpirationPolicyEnum { + TIER_START_DATE("tier_start_date"), - BALANCE_BASED("balance_based"); + PROGRAM_JOIN_DATE("program_join_date"), + + CUSTOMER_ATTRIBUTE("customer_attribute"), + + ABSOLUTE_EXPIRATION("absolute_expiration"); private String value; - TiersDowngradePolicyEnum(String value) { + TiersExpirationPolicyEnum(String value) { this.value = value; } @@ -144,8 +148,8 @@ public String toString() { return String.valueOf(value); } - public static TiersDowngradePolicyEnum fromValue(String value) { - for (TiersDowngradePolicyEnum b : TiersDowngradePolicyEnum.values()) { + public static TiersExpirationPolicyEnum fromValue(String value) { + for (TiersExpirationPolicyEnum b : TiersExpirationPolicyEnum.values()) { if (b.value.equals(value)) { return b; } @@ -153,38 +157,44 @@ public static TiersDowngradePolicyEnum fromValue(String value) { throw new IllegalArgumentException("Unexpected value '" + value + "'"); } - public static class Adapter extends TypeAdapter { + public static class Adapter extends TypeAdapter { @Override - public void write(final JsonWriter jsonWriter, final TiersDowngradePolicyEnum enumeration) throws IOException { + public void write(final JsonWriter jsonWriter, final TiersExpirationPolicyEnum enumeration) throws IOException { jsonWriter.value(enumeration.getValue()); } @Override - public TiersDowngradePolicyEnum read(final JsonReader jsonReader) throws IOException { + public TiersExpirationPolicyEnum read(final JsonReader jsonReader) throws IOException { String value = jsonReader.nextString(); - return TiersDowngradePolicyEnum.fromValue(value); + return TiersExpirationPolicyEnum.fromValue(value); } } } - public static final String SERIALIZED_NAME_TIERS_DOWNGRADE_POLICY = "tiersDowngradePolicy"; - @SerializedName(SERIALIZED_NAME_TIERS_DOWNGRADE_POLICY) - private TiersDowngradePolicyEnum tiersDowngradePolicy; + public static final String SERIALIZED_NAME_TIERS_EXPIRATION_POLICY = "tiersExpirationPolicy"; + @SerializedName(SERIALIZED_NAME_TIERS_EXPIRATION_POLICY) + private TiersExpirationPolicyEnum tiersExpirationPolicy; + + public static final String SERIALIZED_NAME_TIERS_START_DATE = "tiersStartDate"; + @SerializedName(SERIALIZED_NAME_TIERS_START_DATE) + private OffsetDateTime tiersStartDate; + + public static final String SERIALIZED_NAME_TIERS_EXPIRE_IN = "tiersExpireIn"; + @SerializedName(SERIALIZED_NAME_TIERS_EXPIRE_IN) + private String tiersExpireIn; /** - * The policy that defines when the customer joins the loyalty program. - `not_join`: The customer does not join the loyalty program but can still earn and spend loyalty points. **Note**: The customer does not have a program join date. - `points_activated`: The customer joins the loyalty program only when their earned loyalty points become active for the first time. - `points_earned`: The customer joins the loyalty program when they earn loyalty points for the first time. + * Customers's tier downgrade policy. - `one_down`: Once the tier expires and if the user doesn't have enough points to stay in the tier, the user is downgraded one tier down. - `balance_based`: Once the tier expires, the user's tier is evaluated based on the amount of active points the user has at this instant. */ - @JsonAdapter(ProgramJoinPolicyEnum.Adapter.class) - public enum ProgramJoinPolicyEnum { - NOT_JOIN("not_join"), - - POINTS_ACTIVATED("points_activated"), + @JsonAdapter(TiersDowngradePolicyEnum.Adapter.class) + public enum TiersDowngradePolicyEnum { + ONE_DOWN("one_down"), - POINTS_EARNED("points_earned"); + BALANCE_BASED("balance_based"); private String value; - ProgramJoinPolicyEnum(String value) { + TiersDowngradePolicyEnum(String value) { this.value = value; } @@ -197,8 +207,8 @@ public String toString() { return String.valueOf(value); } - public static ProgramJoinPolicyEnum fromValue(String value) { - for (ProgramJoinPolicyEnum b : ProgramJoinPolicyEnum.values()) { + public static TiersDowngradePolicyEnum fromValue(String value) { + for (TiersDowngradePolicyEnum b : TiersDowngradePolicyEnum.values()) { if (b.value.equals(value)) { return b; } @@ -206,23 +216,27 @@ public static ProgramJoinPolicyEnum fromValue(String value) { throw new IllegalArgumentException("Unexpected value '" + value + "'"); } - public static class Adapter extends TypeAdapter { + public static class Adapter extends TypeAdapter { @Override - public void write(final JsonWriter jsonWriter, final ProgramJoinPolicyEnum enumeration) throws IOException { + public void write(final JsonWriter jsonWriter, final TiersDowngradePolicyEnum enumeration) throws IOException { jsonWriter.value(enumeration.getValue()); } @Override - public ProgramJoinPolicyEnum read(final JsonReader jsonReader) throws IOException { + public TiersDowngradePolicyEnum read(final JsonReader jsonReader) throws IOException { String value = jsonReader.nextString(); - return ProgramJoinPolicyEnum.fromValue(value); + return TiersDowngradePolicyEnum.fromValue(value); } } } - public static final String SERIALIZED_NAME_PROGRAM_JOIN_POLICY = "programJoinPolicy"; - @SerializedName(SERIALIZED_NAME_PROGRAM_JOIN_POLICY) - private ProgramJoinPolicyEnum programJoinPolicy; + public static final String SERIALIZED_NAME_TIERS_DOWNGRADE_POLICY = "tiersDowngradePolicy"; + @SerializedName(SERIALIZED_NAME_TIERS_DOWNGRADE_POLICY) + private TiersDowngradePolicyEnum tiersDowngradePolicy; + + public static final String SERIALIZED_NAME_CARD_CODE_SETTINGS = "cardCodeSettings"; + @SerializedName(SERIALIZED_NAME_CARD_CODE_SETTINGS) + private CodeGeneratorSettings cardCodeSettings; public static final String SERIALIZED_NAME_TIERS = "tiers"; @SerializedName(SERIALIZED_NAME_TIERS) @@ -422,6 +436,29 @@ public void setSandbox(Boolean sandbox) { } + public UpdateLoyaltyProgram programJoinPolicy(ProgramJoinPolicyEnum programJoinPolicy) { + + this.programJoinPolicy = programJoinPolicy; + return this; + } + + /** + * The policy that defines when the customer joins the loyalty program. - `not_join`: The customer does not join the loyalty program but can still earn and spend loyalty points. **Note**: The customer does not have a program join date. - `points_activated`: The customer joins the loyalty program only when their earned loyalty points become active for the first time. - `points_earned`: The customer joins the loyalty program when they earn loyalty points for the first time. + * @return programJoinPolicy + **/ + @javax.annotation.Nullable + @ApiModelProperty(value = "The policy that defines when the customer joins the loyalty program. - `not_join`: The customer does not join the loyalty program but can still earn and spend loyalty points. **Note**: The customer does not have a program join date. - `points_activated`: The customer joins the loyalty program only when their earned loyalty points become active for the first time. - `points_earned`: The customer joins the loyalty program when they earn loyalty points for the first time. ") + + public ProgramJoinPolicyEnum getProgramJoinPolicy() { + return programJoinPolicy; + } + + + public void setProgramJoinPolicy(ProgramJoinPolicyEnum programJoinPolicy) { + this.programJoinPolicy = programJoinPolicy; + } + + public UpdateLoyaltyProgram tiersExpirationPolicy(TiersExpirationPolicyEnum tiersExpirationPolicy) { this.tiersExpirationPolicy = tiersExpirationPolicy; @@ -429,11 +466,11 @@ public UpdateLoyaltyProgram tiersExpirationPolicy(TiersExpirationPolicyEnum tier } /** - * The policy that defines which date is used to calculate the expiration date of a customer's current tier. - `tier_start_date`: The tier expiration date is calculated based on when the customer joined the current tier. - `program_join_date`: The tier expiration date is calculated based on when the customer joined the loyalty program. + * The policy that defines which date is used to calculate the expiration date of a customer's current tier. - `tier_start_date`: The tier expiration date is calculated based on when the customer joined the current tier. - `program_join_date`: The tier expiration date is calculated based on when the customer joined the loyalty program. - `customer_attribute`: The tier expiration date is calculated based on a custom customer attribute. - `absolute_expiration`: The tier expires on a specified date and time. **Note**: For absolute expiration, it is required to provide a `tiersStartDate.` * @return tiersExpirationPolicy **/ @javax.annotation.Nullable - @ApiModelProperty(value = "The policy that defines which date is used to calculate the expiration date of a customer's current tier. - `tier_start_date`: The tier expiration date is calculated based on when the customer joined the current tier. - `program_join_date`: The tier expiration date is calculated based on when the customer joined the loyalty program. ") + @ApiModelProperty(value = "The policy that defines which date is used to calculate the expiration date of a customer's current tier. - `tier_start_date`: The tier expiration date is calculated based on when the customer joined the current tier. - `program_join_date`: The tier expiration date is calculated based on when the customer joined the loyalty program. - `customer_attribute`: The tier expiration date is calculated based on a custom customer attribute. - `absolute_expiration`: The tier expires on a specified date and time. **Note**: For absolute expiration, it is required to provide a `tiersStartDate.` ") public TiersExpirationPolicyEnum getTiersExpirationPolicy() { return tiersExpirationPolicy; @@ -445,6 +482,29 @@ public void setTiersExpirationPolicy(TiersExpirationPolicyEnum tiersExpirationPo } + public UpdateLoyaltyProgram tiersStartDate(OffsetDateTime tiersStartDate) { + + this.tiersStartDate = tiersStartDate; + return this; + } + + /** + * Timestamp at which the tier starts for all customers. **Note**: This is only required when the tier expiration policy is set to `absolute_expiration`. + * @return tiersStartDate + **/ + @javax.annotation.Nullable + @ApiModelProperty(example = "2021-09-12T10:12:42Z", value = "Timestamp at which the tier starts for all customers. **Note**: This is only required when the tier expiration policy is set to `absolute_expiration`. ") + + public OffsetDateTime getTiersStartDate() { + return tiersStartDate; + } + + + public void setTiersStartDate(OffsetDateTime tiersStartDate) { + this.tiersStartDate = tiersStartDate; + } + + public UpdateLoyaltyProgram tiersExpireIn(String tiersExpireIn) { this.tiersExpireIn = tiersExpireIn; @@ -491,26 +551,26 @@ public void setTiersDowngradePolicy(TiersDowngradePolicyEnum tiersDowngradePolic } - public UpdateLoyaltyProgram programJoinPolicy(ProgramJoinPolicyEnum programJoinPolicy) { + public UpdateLoyaltyProgram cardCodeSettings(CodeGeneratorSettings cardCodeSettings) { - this.programJoinPolicy = programJoinPolicy; + this.cardCodeSettings = cardCodeSettings; return this; } /** - * The policy that defines when the customer joins the loyalty program. - `not_join`: The customer does not join the loyalty program but can still earn and spend loyalty points. **Note**: The customer does not have a program join date. - `points_activated`: The customer joins the loyalty program only when their earned loyalty points become active for the first time. - `points_earned`: The customer joins the loyalty program when they earn loyalty points for the first time. - * @return programJoinPolicy + * Get cardCodeSettings + * @return cardCodeSettings **/ @javax.annotation.Nullable - @ApiModelProperty(value = "The policy that defines when the customer joins the loyalty program. - `not_join`: The customer does not join the loyalty program but can still earn and spend loyalty points. **Note**: The customer does not have a program join date. - `points_activated`: The customer joins the loyalty program only when their earned loyalty points become active for the first time. - `points_earned`: The customer joins the loyalty program when they earn loyalty points for the first time. ") + @ApiModelProperty(value = "") - public ProgramJoinPolicyEnum getProgramJoinPolicy() { - return programJoinPolicy; + public CodeGeneratorSettings getCardCodeSettings() { + return cardCodeSettings; } - public void setProgramJoinPolicy(ProgramJoinPolicyEnum programJoinPolicy) { - this.programJoinPolicy = programJoinPolicy; + public void setCardCodeSettings(CodeGeneratorSettings cardCodeSettings) { + this.cardCodeSettings = cardCodeSettings; } @@ -562,16 +622,18 @@ public boolean equals(java.lang.Object o) { Objects.equals(this.allowSubledger, updateLoyaltyProgram.allowSubledger) && Objects.equals(this.usersPerCardLimit, updateLoyaltyProgram.usersPerCardLimit) && Objects.equals(this.sandbox, updateLoyaltyProgram.sandbox) && + Objects.equals(this.programJoinPolicy, updateLoyaltyProgram.programJoinPolicy) && Objects.equals(this.tiersExpirationPolicy, updateLoyaltyProgram.tiersExpirationPolicy) && + Objects.equals(this.tiersStartDate, updateLoyaltyProgram.tiersStartDate) && Objects.equals(this.tiersExpireIn, updateLoyaltyProgram.tiersExpireIn) && Objects.equals(this.tiersDowngradePolicy, updateLoyaltyProgram.tiersDowngradePolicy) && - Objects.equals(this.programJoinPolicy, updateLoyaltyProgram.programJoinPolicy) && + Objects.equals(this.cardCodeSettings, updateLoyaltyProgram.cardCodeSettings) && Objects.equals(this.tiers, updateLoyaltyProgram.tiers); } @Override public int hashCode() { - return Objects.hash(title, description, subscribedApplications, defaultValidity, defaultPending, allowSubledger, usersPerCardLimit, sandbox, tiersExpirationPolicy, tiersExpireIn, tiersDowngradePolicy, programJoinPolicy, tiers); + return Objects.hash(title, description, subscribedApplications, defaultValidity, defaultPending, allowSubledger, usersPerCardLimit, sandbox, programJoinPolicy, tiersExpirationPolicy, tiersStartDate, tiersExpireIn, tiersDowngradePolicy, cardCodeSettings, tiers); } @@ -587,10 +649,12 @@ public String toString() { sb.append(" allowSubledger: ").append(toIndentedString(allowSubledger)).append("\n"); sb.append(" usersPerCardLimit: ").append(toIndentedString(usersPerCardLimit)).append("\n"); sb.append(" sandbox: ").append(toIndentedString(sandbox)).append("\n"); + sb.append(" programJoinPolicy: ").append(toIndentedString(programJoinPolicy)).append("\n"); sb.append(" tiersExpirationPolicy: ").append(toIndentedString(tiersExpirationPolicy)).append("\n"); + sb.append(" tiersStartDate: ").append(toIndentedString(tiersStartDate)).append("\n"); sb.append(" tiersExpireIn: ").append(toIndentedString(tiersExpireIn)).append("\n"); sb.append(" tiersDowngradePolicy: ").append(toIndentedString(tiersDowngradePolicy)).append("\n"); - sb.append(" programJoinPolicy: ").append(toIndentedString(programJoinPolicy)).append("\n"); + sb.append(" cardCodeSettings: ").append(toIndentedString(cardCodeSettings)).append("\n"); sb.append(" tiers: ").append(toIndentedString(tiers)).append("\n"); sb.append("}"); return sb.toString(); diff --git a/src/main/java/one/talon/model/User.java b/src/main/java/one/talon/model/User.java index d5933a43..d78cbf30 100644 --- a/src/main/java/one/talon/model/User.java +++ b/src/main/java/one/talon/model/User.java @@ -146,6 +146,10 @@ public StateEnum read(final JsonReader jsonReader) throws IOException { @SerializedName(SERIALIZED_NAME_LATEST_FEED_TIMESTAMP) private OffsetDateTime latestFeedTimestamp; + public static final String SERIALIZED_NAME_ADDITIONAL_ATTRIBUTES = "additionalAttributes"; + @SerializedName(SERIALIZED_NAME_ADDITIONAL_ATTRIBUTES) + private Object additionalAttributes; + public User id(Integer id) { @@ -514,6 +518,29 @@ public void setLatestFeedTimestamp(OffsetDateTime latestFeedTimestamp) { } + public User additionalAttributes(Object additionalAttributes) { + + this.additionalAttributes = additionalAttributes; + return this; + } + + /** + * Additional user attributes, created and used by external identity providers. + * @return additionalAttributes + **/ + @javax.annotation.Nullable + @ApiModelProperty(value = "Additional user attributes, created and used by external identity providers.") + + public Object getAdditionalAttributes() { + return additionalAttributes; + } + + + public void setAdditionalAttributes(Object additionalAttributes) { + this.additionalAttributes = additionalAttributes; + } + + @Override public boolean equals(java.lang.Object o) { if (this == o) { @@ -538,12 +565,13 @@ public boolean equals(java.lang.Object o) { Objects.equals(this.applicationNotificationSubscriptions, user.applicationNotificationSubscriptions) && Objects.equals(this.lastSignedIn, user.lastSignedIn) && Objects.equals(this.lastAccessed, user.lastAccessed) && - Objects.equals(this.latestFeedTimestamp, user.latestFeedTimestamp); + Objects.equals(this.latestFeedTimestamp, user.latestFeedTimestamp) && + Objects.equals(this.additionalAttributes, user.additionalAttributes); } @Override public int hashCode() { - return Objects.hash(id, created, modified, email, accountId, name, state, inviteToken, isAdmin, policy, roles, authMethod, applicationNotificationSubscriptions, lastSignedIn, lastAccessed, latestFeedTimestamp); + return Objects.hash(id, created, modified, email, accountId, name, state, inviteToken, isAdmin, policy, roles, authMethod, applicationNotificationSubscriptions, lastSignedIn, lastAccessed, latestFeedTimestamp, additionalAttributes); } @@ -567,6 +595,7 @@ public String toString() { sb.append(" lastSignedIn: ").append(toIndentedString(lastSignedIn)).append("\n"); sb.append(" lastAccessed: ").append(toIndentedString(lastAccessed)).append("\n"); sb.append(" latestFeedTimestamp: ").append(toIndentedString(latestFeedTimestamp)).append("\n"); + sb.append(" additionalAttributes: ").append(toIndentedString(additionalAttributes)).append("\n"); sb.append("}"); return sb.toString(); } diff --git a/src/main/java/one/talon/model/Webhook.java b/src/main/java/one/talon/model/Webhook.java index aaa53c39..5369184c 100644 --- a/src/main/java/one/talon/model/Webhook.java +++ b/src/main/java/one/talon/model/Webhook.java @@ -54,6 +54,10 @@ public class Webhook { @SerializedName(SERIALIZED_NAME_TITLE) private String title; + public static final String SERIALIZED_NAME_DESCRIPTION = "description"; + @SerializedName(SERIALIZED_NAME_DESCRIPTION) + private String description; + /** * API method for this webhook. */ @@ -247,6 +251,29 @@ public void setTitle(String title) { } + public Webhook description(String description) { + + this.description = description; + return this; + } + + /** + * A description of the webhook. + * @return description + **/ + @javax.annotation.Nullable + @ApiModelProperty(example = "A webhook to send a coupon to the user.", value = "A description of the webhook.") + + public String getDescription() { + return description; + } + + + public void setDescription(String description) { + this.description = description; + } + + public Webhook verb(VerbEnum verb) { this.verb = verb; @@ -404,6 +431,7 @@ public boolean equals(java.lang.Object o) { Objects.equals(this.modified, webhook.modified) && Objects.equals(this.applicationIds, webhook.applicationIds) && Objects.equals(this.title, webhook.title) && + Objects.equals(this.description, webhook.description) && Objects.equals(this.verb, webhook.verb) && Objects.equals(this.url, webhook.url) && Objects.equals(this.headers, webhook.headers) && @@ -414,7 +442,7 @@ public boolean equals(java.lang.Object o) { @Override public int hashCode() { - return Objects.hash(id, created, modified, applicationIds, title, verb, url, headers, payload, params, enabled); + return Objects.hash(id, created, modified, applicationIds, title, description, verb, url, headers, payload, params, enabled); } @@ -427,6 +455,7 @@ public String toString() { sb.append(" modified: ").append(toIndentedString(modified)).append("\n"); sb.append(" applicationIds: ").append(toIndentedString(applicationIds)).append("\n"); sb.append(" title: ").append(toIndentedString(title)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); sb.append(" verb: ").append(toIndentedString(verb)).append("\n"); sb.append(" url: ").append(toIndentedString(url)).append("\n"); sb.append(" headers: ").append(toIndentedString(headers)).append("\n"); diff --git a/src/main/java/one/talon/model/WebhookWithOutgoingIntegrationDetails.java b/src/main/java/one/talon/model/WebhookWithOutgoingIntegrationDetails.java index 7fe6a4a2..f6aee7d2 100644 --- a/src/main/java/one/talon/model/WebhookWithOutgoingIntegrationDetails.java +++ b/src/main/java/one/talon/model/WebhookWithOutgoingIntegrationDetails.java @@ -54,6 +54,10 @@ public class WebhookWithOutgoingIntegrationDetails { @SerializedName(SERIALIZED_NAME_TITLE) private String title; + public static final String SERIALIZED_NAME_DESCRIPTION = "description"; + @SerializedName(SERIALIZED_NAME_DESCRIPTION) + private String description; + /** * API method for this webhook. */ @@ -259,6 +263,29 @@ public void setTitle(String title) { } + public WebhookWithOutgoingIntegrationDetails description(String description) { + + this.description = description; + return this; + } + + /** + * A description of the webhook. + * @return description + **/ + @javax.annotation.Nullable + @ApiModelProperty(example = "A webhook to send a coupon to the user.", value = "A description of the webhook.") + + public String getDescription() { + return description; + } + + + public void setDescription(String description) { + this.description = description; + } + + public WebhookWithOutgoingIntegrationDetails verb(VerbEnum verb) { this.verb = verb; @@ -485,6 +512,7 @@ public boolean equals(java.lang.Object o) { Objects.equals(this.modified, webhookWithOutgoingIntegrationDetails.modified) && Objects.equals(this.applicationIds, webhookWithOutgoingIntegrationDetails.applicationIds) && Objects.equals(this.title, webhookWithOutgoingIntegrationDetails.title) && + Objects.equals(this.description, webhookWithOutgoingIntegrationDetails.description) && Objects.equals(this.verb, webhookWithOutgoingIntegrationDetails.verb) && Objects.equals(this.url, webhookWithOutgoingIntegrationDetails.url) && Objects.equals(this.headers, webhookWithOutgoingIntegrationDetails.headers) && @@ -498,7 +526,7 @@ public boolean equals(java.lang.Object o) { @Override public int hashCode() { - return Objects.hash(id, created, modified, applicationIds, title, verb, url, headers, payload, params, enabled, outgoingIntegrationTemplateId, outgoingIntegrationTypeId, outgoingIntegrationTypeName); + return Objects.hash(id, created, modified, applicationIds, title, description, verb, url, headers, payload, params, enabled, outgoingIntegrationTemplateId, outgoingIntegrationTypeId, outgoingIntegrationTypeName); } @@ -511,6 +539,7 @@ public String toString() { sb.append(" modified: ").append(toIndentedString(modified)).append("\n"); sb.append(" applicationIds: ").append(toIndentedString(applicationIds)).append("\n"); sb.append(" title: ").append(toIndentedString(title)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); sb.append(" verb: ").append(toIndentedString(verb)).append("\n"); sb.append(" url: ").append(toIndentedString(url)).append("\n"); sb.append(" headers: ").append(toIndentedString(headers)).append("\n"); diff --git a/src/test/java/one/talon/api/IntegrationApiTest.java b/src/test/java/one/talon/api/IntegrationApiTest.java index cf8f835c..775e0ce0 100644 --- a/src/test/java/one/talon/api/IntegrationApiTest.java +++ b/src/test/java/one/talon/api/IntegrationApiTest.java @@ -35,7 +35,7 @@ import one.talon.model.IntegrationEventV2Request; import one.talon.model.IntegrationRequest; import one.talon.model.IntegrationStateV2; -import one.talon.model.LoyaltyBalances; +import one.talon.model.LoyaltyBalancesWithTiers; import one.talon.model.LoyaltyCard; import one.talon.model.LoyaltyCardBalances; import one.talon.model.LoyaltyCardRegistration; @@ -250,7 +250,9 @@ public void getLoyaltyBalancesTest() throws ApiException { String integrationId = null; OffsetDateTime endDate = null; String subledgerId = null; - LoyaltyBalances response = api.getLoyaltyBalances(loyaltyProgramId, integrationId, endDate, subledgerId); + Boolean includeTiers = null; + Boolean includeProjectedTier = null; + LoyaltyBalancesWithTiers response = api.getLoyaltyBalances(loyaltyProgramId, integrationId, endDate, subledgerId, includeTiers, includeProjectedTier); // TODO: test validations } @@ -433,7 +435,7 @@ public void returnCartItemsTest() throws ApiException { /** * Sync cart item catalog * - * Perform one or more of the following actions for a given cart item catalog: - Adding an item to the catalog. - Adding several items to the catalog. - Editing the attributes of an item in the catalog. - Editing the attributes of several items in the catalog. - Removing an item from the catalog. - Removing several items from the catalog. You can add, update, or delete up to 1000 cart items in a single request. Each item synced to a catalog must have a unique `SKU`. **Important**: Syncing items with duplicate `SKU` values in a single request returns an error message with a `400` status code. For more information, read [managing cart item catalogs](https://docs.talon.one/docs/product/account/dev-tools/managing-cart-item-catalogs). ### Filtering cart items Use [cart item attributes](https://docs.talon.one/docs/product/account/dev-tools/managing-attributes) to filter items and select the ones you want to edit or delete when editing or deleting more than one item at a time. The `filters` array contains an object with the following properties: - `attr`: A [cart item attribute](https://docs.talon.one/docs/product/account/dev-tools/managing-attributes) connected to the catalog. It is applied to all items in the catalog. - `op`: The filtering operator indicating the relationship between the value of each cart item in the catalog and the value of the `value` property for the attribute selected in `attr`. The value of `op` can be one of the following: - `EQ`: Equal to `value` - `LT`: Less than `value` - `LE`: Less than or equal to `value` - `GT`: Greater than `value` - `GE`: Greater than or equal to `value` - `IN`: One of the comma-separated values that `value` is set to. **Note:** `GE`, `LE`, `GT`, `LT` are for numeric values only. - `value`: The value of the attribute selected in `attr`. ### Payload examples Synchronization actions are sent as `PUT` requests. See the structure for each action: <details> <summary><strong>Adding an item to the catalog</strong></summary> <div> ```json { \"actions\": [ { \"payload\": { \"attributes\": { \"color\": \"Navy blue\", \"type\": \"shoes\" }, \"replaceIfExists\": true, \"sku\": \"SKU1241028\", \"price\": 100, \"product\": { \"name\": \"sneakers\" } }, \"type\": \"ADD\" } ] } ``` </div> </details> <details> <summary><strong>Adding several items to the catalog</strong></summary> <div> ```json { \"actions\": [ { \"payload\": { \"attributes\": { \"color\": \"Navy blue\", \"type\": \"shoes\" }, \"replaceIfExists\": true, \"sku\": \"SKU1241027\", \"price\": 100, \"product\": { \"name\": \"sneakers\" } }, \"type\": \"ADD\" }, { \"payload\": { \"attributes\": { \"color\": \"Navy blue\", \"type\": \"shoes\" }, \"replaceIfExists\": true, \"sku\": \"SKU1241028\", \"price\": 100, \"product\": { \"name\": \"sneakers\" } }, \"type\": \"ADD\" } ] } ``` </div> </details> <details> <summary><strong>Editing the attributes of an item in the catalog</strong></summary> <div> ```json { \"actions\": [ { \"payload\": { \"attributes\": { \"age\": 11, \"origin\": \"germany\" }, \"createIfNotExists\": false, \"sku\": \"SKU1241028\", \"product\": { \"name\": \"sneakers\" } }, \"type\": \"PATCH\" } ] } ``` </div> </details> <details> <summary><strong>Editing the attributes of several items in the catalog</strong></summary> <div> ```json { \"actions\": [ { \"payload\": { \"attributes\": { \"color\": \"red\" }, \"filters\": [ { \"attr\": \"color\", \"op\": \"EQ\", \"value\": \"blue\" } ] }, \"type\": \"PATCH_MANY\" } ] } ``` </div> </details> <details> <summary><strong>Removing an item from the catalog</strong></summary> <div> ```json { \"actions\": [ { \"payload\": { \"sku\": \"SKU1241028\" }, \"type\": \"REMOVE\" } ] } ``` </div> </details> <details> <summary><strong>Removing several items from the catalog</strong></summary> <div> ```json { \"actions\": [ { \"payload\": { \"filters\": [ { \"attr\": \"color\", \"op\": \"EQ\", \"value\": \"blue\" } ] }, \"type\": \"REMOVE_MANY\" } ] } ``` </div> </details> <details> <summary><strong>Removing shoes of sizes above 45 from the catalog</strong></summary> <div> <p> Let's imagine that we have a shoe store and we have decided to stop selling shoes larger than size 45. We can remove from the catalog all the shoes of sizes above 45 with a single action:</p> ```json { \"actions\": [ { \"payload\": { \"filters\": [ { \"attr\": \"size\", \"op\": \"GT\", \"value\": \"45\" } ] }, \"type\": \"REMOVE_MANY\" } ] } ``` </div> </details> + * Perform the following actions for a given cart item catalog: - Add an item to the catalog. - Add multiple items to the catalog. - Update the attributes of an item in the catalog. - Update the attributes of multiple items in the catalog. - Remove an item from the catalog. - Remove multiple items from the catalog. You can either add, update, or delete up to 1000 cart items in a single request. Each item synced to a catalog must have a unique `SKU`. **Important**: You can perform only one type of action in a single sync request. Syncing items with duplicate `SKU` values in a single request returns an error message with a `400` status code. For more information, read [managing cart item catalogs](https://docs.talon.one/docs/product/account/dev-tools/managing-cart-item-catalogs). ### Filtering cart items Use [cart item attributes](https://docs.talon.one/docs/product/account/dev-tools/managing-attributes) to filter items and select the ones you want to edit or delete when editing or deleting more than one item at a time. The `filters` array contains an object with the following properties: - `attr`: A [cart item attribute](https://docs.talon.one/docs/product/account/dev-tools/managing-attributes) connected to the catalog. It is applied to all items in the catalog. - `op`: The filtering operator indicating the relationship between the value of each cart item in the catalog and the value of the `value` property for the attribute selected in `attr`. The value of `op` can be one of the following: - `EQ`: Equal to `value` - `LT`: Less than `value` - `LE`: Less than or equal to `value` - `GT`: Greater than `value` - `GE`: Greater than or equal to `value` - `IN`: One of the comma-separated values that `value` is set to. **Note:** `GE`, `LE`, `GT`, `LT` are for numeric values only. - `value`: The value of the attribute selected in `attr`. ### Payload examples Synchronization actions are sent as `PUT` requests. See the structure for each action: <details> <summary><strong>Adding an item to the catalog</strong></summary> <div> ```json { \"actions\": [ { \"payload\": { \"attributes\": { \"color\": \"Navy blue\", \"type\": \"shoes\" }, \"replaceIfExists\": true, \"sku\": \"SKU1241028\", \"price\": 100, \"product\": { \"name\": \"sneakers\" } }, \"type\": \"ADD\" } ] } ``` </div> </details> <details> <summary><strong>Adding multiple items to the catalog</strong></summary> <div> ```json { \"actions\": [ { \"payload\": { \"attributes\": { \"color\": \"Navy blue\", \"type\": \"shoes\" }, \"replaceIfExists\": true, \"sku\": \"SKU1241027\", \"price\": 100, \"product\": { \"name\": \"sneakers\" } }, \"type\": \"ADD\" }, { \"payload\": { \"attributes\": { \"color\": \"Navy blue\", \"type\": \"shoes\" }, \"replaceIfExists\": true, \"sku\": \"SKU1241028\", \"price\": 100, \"product\": { \"name\": \"sneakers\" } }, \"type\": \"ADD\" } ] } ``` </div> </details> <details> <summary><strong>Updating the attributes of an item in the catalog</strong></summary> <div> ```json { \"actions\": [ { \"payload\": { \"attributes\": { \"age\": 11, \"origin\": \"germany\" }, \"createIfNotExists\": false, \"sku\": \"SKU1241028\", \"product\": { \"name\": \"sneakers\" } }, \"type\": \"PATCH\" } ] } ``` </div> </details> <details> <summary><strong>Updating the attributes of multiple items in the catalog</strong></summary> <div> ```json { \"actions\": [ { \"payload\": { \"attributes\": { \"color\": \"red\" }, \"filters\": [ { \"attr\": \"color\", \"op\": \"EQ\", \"value\": \"blue\" } ] }, \"type\": \"PATCH_MANY\" } ] } ``` </div> </details> <details> <summary><strong>Removing an item from the catalog</strong></summary> <div> ```json { \"actions\": [ { \"payload\": { \"sku\": \"SKU1241028\" }, \"type\": \"REMOVE\" } ] } ``` </div> </details> <details> <summary><strong>Removing multiple items from the catalog</strong></summary> <div> ```json { \"actions\": [ { \"payload\": { \"filters\": [ { \"attr\": \"color\", \"op\": \"EQ\", \"value\": \"blue\" } ] }, \"type\": \"REMOVE_MANY\" } ] } ``` </div> </details> <details> <summary><strong>Removing shoes of sizes above 45 from the catalog</strong></summary> <div> <p> Let's imagine that we have a shoe store and we have decided to stop selling shoes larger than size 45. We can remove from the catalog all the shoes of sizes above 45 with a single action:</p> ```json { \"actions\": [ { \"payload\": { \"filters\": [ { \"attr\": \"size\", \"op\": \"GT\", \"value\": \"45\" } ] }, \"type\": \"REMOVE_MANY\" } ] } ``` </div> </details> * * @throws ApiException * if the Api call fails diff --git a/src/test/java/one/talon/api/ManagementApiTest.java b/src/test/java/one/talon/api/ManagementApiTest.java index ee593392..975b3af6 100644 --- a/src/test/java/one/talon/api/ManagementApiTest.java +++ b/src/test/java/one/talon/api/ManagementApiTest.java @@ -115,6 +115,9 @@ import one.talon.model.RoleV2; import one.talon.model.RoleV2Base; import one.talon.model.Ruleset; +import one.talon.model.ScimResourceTypesListResponse; +import one.talon.model.ScimUser; +import one.talon.model.ScimUsersListResponse; import one.talon.model.Session; import one.talon.model.Store; import one.talon.model.TransferLoyaltyCard; @@ -147,9 +150,9 @@ public class ManagementApiTest { /** - * Activate user by email address + * Enable user by email address * - * Activate a deactivated user by their email address. + * Enable a [disabled user](https://docs.talon.one/docs/product/account/account-settings/managing-users#disabling-a-user) by their email address. * * @throws ApiException * if the Api call fails @@ -455,9 +458,9 @@ public void createStoreTest() throws ApiException { } /** - * Deactivate user by email address + * Disable user by email address * - * Deactivate a specific user by their email address. + * [Disable a specific user](https://docs.talon.one/docs/product/account/account-settings/managing-users#disabling-a-user) by their email address. * * @throws ApiException * if the Api call fails @@ -676,7 +679,7 @@ public void deleteUserTest() throws ApiException { /** * Delete user by email address * - * Delete a specific user by their email address. + * [Delete a specific user](https://docs.talon.one/docs/product/account/account-settings/managing-users#deleting-a-user) by their email address. * * @throws ApiException * if the Api call fails @@ -704,6 +707,23 @@ public void destroySessionTest() throws ApiException { // TODO: test validations } + /** + * Disconnect stores + * + * Disconnect the stores linked to a specific campaign. + * + * @throws ApiException + * if the Api call fails + */ + @Test + public void disconnectCampaignStoresTest() throws ApiException { + Integer applicationId = null; + Integer campaignId = null; + api.disconnectCampaignStores(applicationId, campaignId); + + // TODO: test validations + } + /** * Export account-level collection's items * @@ -754,6 +774,23 @@ public void exportAudiencesMembershipsTest() throws ApiException { // TODO: test validations } + /** + * Export stores + * + * Download a CSV file containing the stores linked to a specific campaign. **Tip:** If the exported CSV file is too large to view, you can [split it into multiple files](https://www.makeuseof.com/tag/how-to-split-a-huge-csv-excel-workbook-into-seperate-files/). The CSV file contains the following column: - `store_integration_id`: The identifier of the store. + * + * @throws ApiException + * if the Api call fails + */ + @Test + public void exportCampaignStoresTest() throws ApiException { + Integer applicationId = null; + Integer campaignId = null; + String response = api.exportCampaignStores(applicationId, campaignId); + + // TODO: test validations + } + /** * Export campaign-level collection's items * @@ -826,7 +863,7 @@ public void exportCustomerSessionsTest() throws ApiException { /** * Export customers' tier data * - * Download a CSV file containing the tier information for customers of the specified loyalty program. The generated file contains the following columns: - `programid`: The identifier of the loyalty program. It is displayed in your Talon.One deployment URL. - `subledgerid`: The ID of the subledger associated with the loyalty program. This column is empty if the loyalty program has no subledger. In this case, refer to the export file name to get the ID of the loyalty program. - `customerprofileid`: The ID used to integrate customer profiles with the loyalty program. - `tiername`: The name of the tier. - `startdate`: The tier start date in RFC3339. - `expirydate`: The tier expiry date in RFC3339. You can filter the results by providing the following optional input parameters: - `subledgerId` (optional): Filter results by subledger ID. If no value is provided, all subledger data for the specified loyalty program will be exported. - `tierName` (optional): Filter results by tier name. If no value is provided, all tier data for the specified loyalty program will be exported. + * Download a CSV file containing the tier information for customers of the specified loyalty program. The generated file contains the following columns: - `programid`: The identifier of the loyalty program. It is displayed in your Talon.One deployment URL. - `subledgerid`: The ID of the subledger associated with the loyalty program. This column is empty if the loyalty program has no subledger. In this case, refer to the export file name to get the ID of the loyalty program. - `customerprofileid`: The ID used to integrate customer profiles with the loyalty program. - `tiername`: The name of the tier. - `startdate`: The tier start date in RFC3339. - `expirydate`: The tier expiry date in RFC3339. You can filter the results by providing the following optional input parameters: - `subledgerIds` (optional): Filter results by an array of subledger IDs. If no value is provided, all subledger data for the specified loyalty program will be exported. - `tierNames` (optional): Filter results by an array of tier names. If no value is provided, all tier data for the specified loyalty program will be exported. * * @throws ApiException * if the Api call fails @@ -1679,7 +1716,12 @@ public void getCouponsWithoutTotalCountTest() throws ApiException { String recipientIntegrationId = null; String batchId = null; Boolean exactMatch = null; - InlineResponse2009 response = api.getCouponsWithoutTotalCount(applicationId, campaignId, pageSize, skip, sort, value, createdBefore, createdAfter, valid, usable, referralId, recipientIntegrationId, batchId, exactMatch); + OffsetDateTime expiresBefore = null; + OffsetDateTime expiresAfter = null; + OffsetDateTime startsBefore = null; + OffsetDateTime startsAfter = null; + Boolean valuesOnly = null; + InlineResponse2009 response = api.getCouponsWithoutTotalCount(applicationId, campaignId, pageSize, skip, sort, value, createdBefore, createdAfter, valid, usable, referralId, recipientIntegrationId, batchId, exactMatch, expiresBefore, expiresAfter, startsBefore, startsAfter, valuesOnly); // TODO: test validations } @@ -2280,6 +2322,24 @@ public void importAudiencesMembershipsTest() throws ApiException { // TODO: test validations } + /** + * Import stores + * + * Upload a CSV file containing the stores you want to link to a specific campaign. Send the file as multipart data. The CSV file **must** only contain the following column: - `store_integration_id`: The identifier of the store. The import **replaces** the previous list of stores linked to the campaign. + * + * @throws ApiException + * if the Api call fails + */ + @Test + public void importCampaignStoresTest() throws ApiException { + Integer applicationId = null; + Integer campaignId = null; + String upFile = null; + ModelImport response = api.importCampaignStores(applicationId, campaignId, upFile); + + // TODO: test validations + } + /** * Import data into existing campaign-level collection * @@ -2407,7 +2467,7 @@ public void importReferralsTest() throws ApiException { /** * Invite user from identity provider * - * Invite a user from an external identity provider to Talon.One by sending an invitation to their email address. + * [Invite a user](https://docs.talon.one/docs/product/account/account-settings/managing-users#inviting-a-user) from an external identity provider to Talon.One by sending an invitation to their email address. * * @throws ApiException * if the Api call fails @@ -2580,6 +2640,21 @@ public void notificationActivationTest() throws ApiException { // TODO: test validations } + /** + * Validate Okta API ownership + * + * Validate the ownership of the API through a challenge-response mechanism. This challenger endpoint is used by Okta to confirm that communication between Talon.One and Okta is correctly configured and accessible for provisioning and deprovisioning of Talon.One users, and that only Talon.One can receive and respond to events from Okta. + * + * @throws ApiException + * if the Api call fails + */ + @Test + public void oktaEventHandlerChallengeTest() throws ApiException { + api.oktaEventHandlerChallenge(); + + // TODO: test validations + } + /** * Create notification about added or deducted loyalty points * @@ -2665,6 +2740,147 @@ public void resetPasswordTest() throws ApiException { // TODO: test validations } + /** + * Create SCIM user + * + * Create a new Talon.One user using the SCIM provisioning protocol with an identity provider, for example, Microsoft Entra ID. + * + * @throws ApiException + * if the Api call fails + */ + @Test + public void scimCreateUserTest() throws ApiException { + Object body = null; + ScimUser response = api.scimCreateUser(body); + + // TODO: test validations + } + + /** + * Delete SCIM user + * + * Delete a specific Talon.One user created using the SCIM provisioning protocol with an identity provider, for example, Microsoft Entra ID. + * + * @throws ApiException + * if the Api call fails + */ + @Test + public void scimDeleteUserTest() throws ApiException { + Integer userId = null; + api.scimDeleteUser(userId); + + // TODO: test validations + } + + /** + * List supported SCIM resource types + * + * Retrieve a list of resource types supported by the SCIM provisioning protocol. Resource types define the various kinds of resources that can be managed via the SCIM API, such as users, groups, or custom-defined resources. + * + * @throws ApiException + * if the Api call fails + */ + @Test + public void scimGetResourceTypesTest() throws ApiException { + ScimResourceTypesListResponse response = api.scimGetResourceTypes(); + + // TODO: test validations + } + + /** + * List supported SCIM schemas + * + * Retrieve a list of schemas supported by the SCIM provisioning protocol. Schemas define the structure and attributes of the different resources that can be managed via the SCIM API, such as users, groups, and any custom-defined resources. + * + * @throws ApiException + * if the Api call fails + */ + @Test + public void scimGetSchemasTest() throws ApiException { + api.scimGetSchemas(); + + // TODO: test validations + } + + /** + * Service config endpoint for SCIM provisioning protocol + * + * Service config endpoint for SCIM provisioning protocol + * + * @throws ApiException + * if the Api call fails + */ + @Test + public void scimGetServiceProviderConfigTest() throws ApiException { + api.scimGetServiceProviderConfig(); + + // TODO: test validations + } + + /** + * Get SCIM user + * + * Retrieve data for a specific Talon.One user created using the SCIM provisioning protocol with an identity provider, for example, Microsoft Entra ID. + * + * @throws ApiException + * if the Api call fails + */ + @Test + public void scimGetUserTest() throws ApiException { + Integer userId = null; + ScimUser response = api.scimGetUser(userId); + + // TODO: test validations + } + + /** + * List SCIM users + * + * Retrieve a paginated list of users that have been provisioned using the SCIM protocol with an identity provider, for example, Microsoft Entra ID. + * + * @throws ApiException + * if the Api call fails + */ + @Test + public void scimGetUsersTest() throws ApiException { + ScimUsersListResponse response = api.scimGetUsers(); + + // TODO: test validations + } + + /** + * Update SCIM user attributes + * + * Update certain attributes of a specific Talon.One user created using the SCIM provisioning protocol with an identity provider, for example, Microsoft Entra ID. This endpoint allows for selective adding, removing, or replacing specific attributes while leaving other attributes unchanged. + * + * @throws ApiException + * if the Api call fails + */ + @Test + public void scimPatchUserTest() throws ApiException { + Integer userId = null; + ScimUser response = api.scimPatchUser(userId); + + // TODO: test validations + } + + /** + * Update SCIM user + * + * Update the details of a specific Talon.One user created using the SCIM provisioning protocol with an identity provider, for example, Microsoft Entra ID. This endpoint replaces all attributes of the specific user with the attributes provided in the request payload. + * + * @throws ApiException + * if the Api call fails + */ + @Test + public void scimReplaceUserAttributesTest() throws ApiException { + Integer userId = null; + Object body = null; + ScimUser response = api.scimReplaceUserAttributes(userId, body); + + // TODO: test validations + } + /** * List coupons that match the given attributes (without total count) * diff --git a/src/test/java/one/talon/model/AdditionalCampaignPropertiesTest.java b/src/test/java/one/talon/model/AdditionalCampaignPropertiesTest.java index 982ef00c..a7c962b2 100644 --- a/src/test/java/one/talon/model/AdditionalCampaignPropertiesTest.java +++ b/src/test/java/one/talon/model/AdditionalCampaignPropertiesTest.java @@ -221,4 +221,12 @@ public void frontendStateTest() { // TODO: test frontendState } + /** + * Test the property 'storesImported' + */ + @Test + public void storesImportedTest() { + // TODO: test storesImported + } + } diff --git a/src/test/java/one/talon/model/AnalyticsDataPointTest.java b/src/test/java/one/talon/model/AnalyticsDataPointTest.java new file mode 100644 index 00000000..49592643 --- /dev/null +++ b/src/test/java/one/talon/model/AnalyticsDataPointTest.java @@ -0,0 +1,60 @@ +/* + * 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.junit.Assert; +import org.junit.Ignore; +import org.junit.Test; + + +/** + * Model tests for AnalyticsDataPoint + */ +public class AnalyticsDataPointTest { + private final AnalyticsDataPoint model = new AnalyticsDataPoint(); + + /** + * Model tests for AnalyticsDataPoint + */ + @Test + public void testAnalyticsDataPoint() { + // TODO: test AnalyticsDataPoint + } + + /** + * Test the property 'total' + */ + @Test + public void totalTest() { + // TODO: test total + } + + /** + * Test the property 'influenced' + */ + @Test + public void influencedTest() { + // TODO: test influenced + } + +} diff --git a/src/test/java/one/talon/model/AnalyticsDataPointWithTrendAndInfluencedRateTest.java b/src/test/java/one/talon/model/AnalyticsDataPointWithTrendAndInfluencedRateTest.java new file mode 100644 index 00000000..438306fe --- /dev/null +++ b/src/test/java/one/talon/model/AnalyticsDataPointWithTrendAndInfluencedRateTest.java @@ -0,0 +1,68 @@ +/* + * 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.junit.Assert; +import org.junit.Ignore; +import org.junit.Test; + + +/** + * Model tests for AnalyticsDataPointWithTrendAndInfluencedRate + */ +public class AnalyticsDataPointWithTrendAndInfluencedRateTest { + private final AnalyticsDataPointWithTrendAndInfluencedRate model = new AnalyticsDataPointWithTrendAndInfluencedRate(); + + /** + * Model tests for AnalyticsDataPointWithTrendAndInfluencedRate + */ + @Test + public void testAnalyticsDataPointWithTrendAndInfluencedRate() { + // TODO: test AnalyticsDataPointWithTrendAndInfluencedRate + } + + /** + * Test the property 'value' + */ + @Test + public void valueTest() { + // TODO: test value + } + + /** + * Test the property 'influencedRate' + */ + @Test + public void influencedRateTest() { + // TODO: test influencedRate + } + + /** + * Test the property 'trend' + */ + @Test + public void trendTest() { + // TODO: test trend + } + +} diff --git a/src/test/java/one/talon/model/AnalyticsDataPointWithTrendAndUpliftTest.java b/src/test/java/one/talon/model/AnalyticsDataPointWithTrendAndUpliftTest.java new file mode 100644 index 00000000..67f89cf4 --- /dev/null +++ b/src/test/java/one/talon/model/AnalyticsDataPointWithTrendAndUpliftTest.java @@ -0,0 +1,68 @@ +/* + * 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.junit.Assert; +import org.junit.Ignore; +import org.junit.Test; + + +/** + * Model tests for AnalyticsDataPointWithTrendAndUplift + */ +public class AnalyticsDataPointWithTrendAndUpliftTest { + private final AnalyticsDataPointWithTrendAndUplift model = new AnalyticsDataPointWithTrendAndUplift(); + + /** + * Model tests for AnalyticsDataPointWithTrendAndUplift + */ + @Test + public void testAnalyticsDataPointWithTrendAndUplift() { + // TODO: test AnalyticsDataPointWithTrendAndUplift + } + + /** + * Test the property 'value' + */ + @Test + public void valueTest() { + // TODO: test value + } + + /** + * Test the property 'uplift' + */ + @Test + public void upliftTest() { + // TODO: test uplift + } + + /** + * Test the property 'trend' + */ + @Test + public void trendTest() { + // TODO: test trend + } + +} diff --git a/src/test/java/one/talon/model/AnalyticsDataPointWithTrendTest.java b/src/test/java/one/talon/model/AnalyticsDataPointWithTrendTest.java new file mode 100644 index 00000000..c655422e --- /dev/null +++ b/src/test/java/one/talon/model/AnalyticsDataPointWithTrendTest.java @@ -0,0 +1,60 @@ +/* + * 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.junit.Assert; +import org.junit.Ignore; +import org.junit.Test; + + +/** + * Model tests for AnalyticsDataPointWithTrend + */ +public class AnalyticsDataPointWithTrendTest { + private final AnalyticsDataPointWithTrend model = new AnalyticsDataPointWithTrend(); + + /** + * Model tests for AnalyticsDataPointWithTrend + */ + @Test + public void testAnalyticsDataPointWithTrend() { + // TODO: test AnalyticsDataPointWithTrend + } + + /** + * Test the property 'value' + */ + @Test + public void valueTest() { + // TODO: test value + } + + /** + * Test the property 'trend' + */ + @Test + public void trendTest() { + // TODO: test trend + } + +} diff --git a/src/test/java/one/talon/model/ApplicationAnalyticsDataPointTest.java b/src/test/java/one/talon/model/ApplicationAnalyticsDataPointTest.java index 5c85e7c9..9687b621 100644 --- a/src/test/java/one/talon/model/ApplicationAnalyticsDataPointTest.java +++ b/src/test/java/one/talon/model/ApplicationAnalyticsDataPointTest.java @@ -22,10 +22,7 @@ import io.swagger.annotations.ApiModelProperty; import java.io.IOException; import java.math.BigDecimal; -import one.talon.model.ApplicationAnalyticsDataPointAvgItemsPerSession; -import one.talon.model.ApplicationAnalyticsDataPointAvgSessionValue; -import one.talon.model.ApplicationAnalyticsDataPointSessionsCount; -import one.talon.model.ApplicationAnalyticsDataPointTotalRevenue; +import one.talon.model.AnalyticsDataPoint; import org.threeten.bp.OffsetDateTime; import org.junit.Assert; import org.junit.Ignore; diff --git a/src/test/java/one/talon/model/ApplicationCampaignAnalyticsTest.java b/src/test/java/one/talon/model/ApplicationCampaignAnalyticsTest.java index d2b896c7..60716d9e 100644 --- a/src/test/java/one/talon/model/ApplicationCampaignAnalyticsTest.java +++ b/src/test/java/one/talon/model/ApplicationCampaignAnalyticsTest.java @@ -23,12 +23,9 @@ import java.io.IOException; import java.util.ArrayList; import java.util.List; -import one.talon.model.ApplicationCampaignAnalyticsAvgItemsPerSession; -import one.talon.model.ApplicationCampaignAnalyticsAvgSessionValue; -import one.talon.model.ApplicationCampaignAnalyticsCouponsCount; -import one.talon.model.ApplicationCampaignAnalyticsSessionsCount; -import one.talon.model.ApplicationCampaignAnalyticsTotalDiscounts; -import one.talon.model.ApplicationCampaignAnalyticsTotalRevenue; +import one.talon.model.AnalyticsDataPointWithTrend; +import one.talon.model.AnalyticsDataPointWithTrendAndInfluencedRate; +import one.talon.model.AnalyticsDataPointWithTrendAndUplift; import org.threeten.bp.OffsetDateTime; import org.junit.Assert; import org.junit.Ignore; @@ -97,30 +94,6 @@ public void campaignStateTest() { // TODO: test campaignState } - /** - * Test the property 'campaignActiveRulesetId' - */ - @Test - public void campaignActiveRulesetIdTest() { - // TODO: test campaignActiveRulesetId - } - - /** - * Test the property 'campaignStartTime' - */ - @Test - public void campaignStartTimeTest() { - // TODO: test campaignStartTime - } - - /** - * Test the property 'campaignEndTime' - */ - @Test - public void campaignEndTimeTest() { - // TODO: test campaignEndTime - } - /** * Test the property 'totalRevenue' */ diff --git a/src/test/java/one/talon/model/BaseLoyaltyProgramTest.java b/src/test/java/one/talon/model/BaseLoyaltyProgramTest.java index ec267629..70b5aced 100644 --- a/src/test/java/one/talon/model/BaseLoyaltyProgramTest.java +++ b/src/test/java/one/talon/model/BaseLoyaltyProgramTest.java @@ -23,6 +23,8 @@ import java.io.IOException; import java.util.ArrayList; import java.util.List; +import one.talon.model.CodeGeneratorSettings; +import org.threeten.bp.OffsetDateTime; import org.junit.Assert; import org.junit.Ignore; import org.junit.Test; @@ -106,6 +108,14 @@ public void sandboxTest() { // TODO: test sandbox } + /** + * Test the property 'programJoinPolicy' + */ + @Test + public void programJoinPolicyTest() { + // TODO: test programJoinPolicy + } + /** * Test the property 'tiersExpirationPolicy' */ @@ -114,6 +124,14 @@ public void tiersExpirationPolicyTest() { // TODO: test tiersExpirationPolicy } + /** + * Test the property 'tiersStartDate' + */ + @Test + public void tiersStartDateTest() { + // TODO: test tiersStartDate + } + /** * Test the property 'tiersExpireIn' */ @@ -131,11 +149,11 @@ public void tiersDowngradePolicyTest() { } /** - * Test the property 'programJoinPolicy' + * Test the property 'cardCodeSettings' */ @Test - public void programJoinPolicyTest() { - // TODO: test programJoinPolicy + public void cardCodeSettingsTest() { + // TODO: test cardCodeSettings } } diff --git a/src/test/java/one/talon/model/CampaignNotificationPolicyTest.java b/src/test/java/one/talon/model/CampaignNotificationPolicyTest.java index b7cc24b7..48cc0b20 100644 --- a/src/test/java/one/talon/model/CampaignNotificationPolicyTest.java +++ b/src/test/java/one/talon/model/CampaignNotificationPolicyTest.java @@ -48,4 +48,12 @@ public void nameTest() { // TODO: test name } + /** + * Test the property 'batchingEnabled' + */ + @Test + public void batchingEnabledTest() { + // TODO: test batchingEnabled + } + } diff --git a/src/test/java/one/talon/model/CampaignTest.java b/src/test/java/one/talon/model/CampaignTest.java index 8188805f..8c522752 100644 --- a/src/test/java/one/talon/model/CampaignTest.java +++ b/src/test/java/one/talon/model/CampaignTest.java @@ -375,4 +375,12 @@ public void frontendStateTest() { // TODO: test frontendState } + /** + * Test the property 'storesImported' + */ + @Test + public void storesImportedTest() { + // TODO: test storesImported + } + } diff --git a/src/test/java/one/talon/model/CardAddedDeductedPointsNotificationPolicyTest.java b/src/test/java/one/talon/model/CardAddedDeductedPointsNotificationPolicyTest.java new file mode 100644 index 00000000..3c1d9d14 --- /dev/null +++ b/src/test/java/one/talon/model/CardAddedDeductedPointsNotificationPolicyTest.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 CardAddedDeductedPointsNotificationPolicy + */ +public class CardAddedDeductedPointsNotificationPolicyTest { + private final CardAddedDeductedPointsNotificationPolicy model = new CardAddedDeductedPointsNotificationPolicy(); + + /** + * Model tests for CardAddedDeductedPointsNotificationPolicy + */ + @Test + public void testCardAddedDeductedPointsNotificationPolicy() { + // TODO: test CardAddedDeductedPointsNotificationPolicy + } + + /** + * Test the property 'name' + */ + @Test + public void nameTest() { + // TODO: test name + } + + /** + * Test the property 'scopes' + */ + @Test + public void scopesTest() { + // TODO: test scopes + } + +} diff --git a/src/test/java/one/talon/model/EffectEntityTest.java b/src/test/java/one/talon/model/EffectEntityTest.java index 481939d8..b074599f 100644 --- a/src/test/java/one/talon/model/EffectEntityTest.java +++ b/src/test/java/one/talon/model/EffectEntityTest.java @@ -104,4 +104,20 @@ public void conditionIndexTest() { // TODO: test conditionIndex } + /** + * Test the property 'evaluationGroupID' + */ + @Test + public void evaluationGroupIDTest() { + // TODO: test evaluationGroupID + } + + /** + * Test the property 'evaluationGroupMode' + */ + @Test + public void evaluationGroupModeTest() { + // TODO: test evaluationGroupMode + } + } diff --git a/src/test/java/one/talon/model/EffectTest.java b/src/test/java/one/talon/model/EffectTest.java index 80b022b2..4b14fd37 100644 --- a/src/test/java/one/talon/model/EffectTest.java +++ b/src/test/java/one/talon/model/EffectTest.java @@ -104,6 +104,22 @@ public void conditionIndexTest() { // TODO: test conditionIndex } + /** + * Test the property 'evaluationGroupID' + */ + @Test + public void evaluationGroupIDTest() { + // TODO: test evaluationGroupID + } + + /** + * Test the property 'evaluationGroupMode' + */ + @Test + public void evaluationGroupModeTest() { + // TODO: test evaluationGroupMode + } + /** * Test the property 'props' */ diff --git a/src/test/java/one/talon/model/GenerateCampaignDescriptionTest.java b/src/test/java/one/talon/model/GenerateCampaignDescriptionTest.java new file mode 100644 index 00000000..3f2a753a --- /dev/null +++ b/src/test/java/one/talon/model/GenerateCampaignDescriptionTest.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 GenerateCampaignDescription + */ +public class GenerateCampaignDescriptionTest { + private final GenerateCampaignDescription model = new GenerateCampaignDescription(); + + /** + * Model tests for GenerateCampaignDescription + */ + @Test + public void testGenerateCampaignDescription() { + // TODO: test GenerateCampaignDescription + } + + /** + * Test the property 'campaignID' + */ + @Test + public void campaignIDTest() { + // TODO: test campaignID + } + + /** + * Test the property 'currency' + */ + @Test + public void currencyTest() { + // TODO: test currency + } + +} diff --git a/src/test/java/one/talon/model/GenerateCampaignTagsTest.java b/src/test/java/one/talon/model/GenerateCampaignTagsTest.java new file mode 100644 index 00000000..744ae4a0 --- /dev/null +++ b/src/test/java/one/talon/model/GenerateCampaignTagsTest.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 GenerateCampaignTags + */ +public class GenerateCampaignTagsTest { + private final GenerateCampaignTags model = new GenerateCampaignTags(); + + /** + * Model tests for GenerateCampaignTags + */ + @Test + public void testGenerateCampaignTags() { + // TODO: test GenerateCampaignTags + } + + /** + * Test the property 'campaignID' + */ + @Test + public void campaignIDTest() { + // TODO: test campaignID + } + +} diff --git a/src/test/java/one/talon/model/GenerateItemFilterDescriptionTest.java b/src/test/java/one/talon/model/GenerateItemFilterDescriptionTest.java new file mode 100644 index 00000000..73c59b17 --- /dev/null +++ b/src/test/java/one/talon/model/GenerateItemFilterDescriptionTest.java @@ -0,0 +1,53 @@ +/* + * 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 GenerateItemFilterDescription + */ +public class GenerateItemFilterDescriptionTest { + private final GenerateItemFilterDescription model = new GenerateItemFilterDescription(); + + /** + * Model tests for GenerateItemFilterDescription + */ + @Test + public void testGenerateItemFilterDescription() { + // TODO: test GenerateItemFilterDescription + } + + /** + * Test the property 'itemFilter' + */ + @Test + public void itemFilterTest() { + // TODO: test itemFilter + } + +} diff --git a/src/test/java/one/talon/model/GenerateRuleTitleRuleTest.java b/src/test/java/one/talon/model/GenerateRuleTitleRuleTest.java new file mode 100644 index 00000000..bfeacfc3 --- /dev/null +++ b/src/test/java/one/talon/model/GenerateRuleTitleRuleTest.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 GenerateRuleTitleRule + */ +public class GenerateRuleTitleRuleTest { + private final GenerateRuleTitleRule model = new GenerateRuleTitleRule(); + + /** + * Model tests for GenerateRuleTitleRule + */ + @Test + public void testGenerateRuleTitleRule() { + // TODO: test GenerateRuleTitleRule + } + + /** + * Test the property 'effects' + */ + @Test + public void effectsTest() { + // TODO: test effects + } + + /** + * Test the property 'condition' + */ + @Test + public void conditionTest() { + // TODO: test condition + } + +} diff --git a/src/test/java/one/talon/model/GenerateRuleTitleTest.java b/src/test/java/one/talon/model/GenerateRuleTitleTest.java new file mode 100644 index 00000000..1e46e832 --- /dev/null +++ b/src/test/java/one/talon/model/GenerateRuleTitleTest.java @@ -0,0 +1,60 @@ +/* + * 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.GenerateRuleTitleRule; +import org.junit.Assert; +import org.junit.Ignore; +import org.junit.Test; + + +/** + * Model tests for GenerateRuleTitle + */ +public class GenerateRuleTitleTest { + private final GenerateRuleTitle model = new GenerateRuleTitle(); + + /** + * Model tests for GenerateRuleTitle + */ + @Test + public void testGenerateRuleTitle() { + // TODO: test GenerateRuleTitle + } + + /** + * Test the property 'rule' + */ + @Test + public void ruleTest() { + // TODO: test rule + } + + /** + * Test the property 'currency' + */ + @Test + public void currencyTest() { + // TODO: test currency + } + +} diff --git a/src/test/java/one/talon/model/LoyaltyBalanceWithTierTest.java b/src/test/java/one/talon/model/LoyaltyBalanceWithTierTest.java new file mode 100644 index 00000000..d694944c --- /dev/null +++ b/src/test/java/one/talon/model/LoyaltyBalanceWithTierTest.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 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 one.talon.model.ProjectedTier; +import one.talon.model.Tier; +import org.junit.Assert; +import org.junit.Ignore; +import org.junit.Test; + + +/** + * Model tests for LoyaltyBalanceWithTier + */ +public class LoyaltyBalanceWithTierTest { + private final LoyaltyBalanceWithTier model = new LoyaltyBalanceWithTier(); + + /** + * Model tests for LoyaltyBalanceWithTier + */ + @Test + public void testLoyaltyBalanceWithTier() { + // TODO: test LoyaltyBalanceWithTier + } + + /** + * Test the property 'activePoints' + */ + @Test + public void activePointsTest() { + // TODO: test activePoints + } + + /** + * Test the property 'pendingPoints' + */ + @Test + public void pendingPointsTest() { + // TODO: test pendingPoints + } + + /** + * Test the property 'spentPoints' + */ + @Test + public void spentPointsTest() { + // TODO: test spentPoints + } + + /** + * Test the property 'expiredPoints' + */ + @Test + public void expiredPointsTest() { + // TODO: test expiredPoints + } + + /** + * Test the property 'currentTier' + */ + @Test + public void currentTierTest() { + // TODO: test currentTier + } + + /** + * Test the property 'projectedTier' + */ + @Test + public void projectedTierTest() { + // TODO: test projectedTier + } + + /** + * Test the property 'pointsToNextTier' + */ + @Test + public void pointsToNextTierTest() { + // TODO: test pointsToNextTier + } + + /** + * Test the property 'nextTierName' + */ + @Test + public void nextTierNameTest() { + // TODO: test nextTierName + } + +} diff --git a/src/test/java/one/talon/model/LoyaltyBalancesWithTiersTest.java b/src/test/java/one/talon/model/LoyaltyBalancesWithTiersTest.java new file mode 100644 index 00000000..9c4244c8 --- /dev/null +++ b/src/test/java/one/talon/model/LoyaltyBalancesWithTiersTest.java @@ -0,0 +1,63 @@ +/* + * 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.HashMap; +import java.util.List; +import java.util.Map; +import one.talon.model.LoyaltyBalanceWithTier; +import org.junit.Assert; +import org.junit.Ignore; +import org.junit.Test; + + +/** + * Model tests for LoyaltyBalancesWithTiers + */ +public class LoyaltyBalancesWithTiersTest { + private final LoyaltyBalancesWithTiers model = new LoyaltyBalancesWithTiers(); + + /** + * Model tests for LoyaltyBalancesWithTiers + */ + @Test + public void testLoyaltyBalancesWithTiers() { + // TODO: test LoyaltyBalancesWithTiers + } + + /** + * Test the property 'balance' + */ + @Test + public void balanceTest() { + // TODO: test balance + } + + /** + * Test the property 'subledgerBalances' + */ + @Test + public void subledgerBalancesTest() { + // TODO: test subledgerBalances + } + +} diff --git a/src/test/java/one/talon/model/LoyaltyCardTest.java b/src/test/java/one/talon/model/LoyaltyCardTest.java index 0aa6641a..791382ad 100644 --- a/src/test/java/one/talon/model/LoyaltyCardTest.java +++ b/src/test/java/one/talon/model/LoyaltyCardTest.java @@ -79,6 +79,14 @@ public void statusTest() { // TODO: test status } + /** + * Test the property 'blockReason' + */ + @Test + public void blockReasonTest() { + // TODO: test blockReason + } + /** * Test the property 'identifier' */ diff --git a/src/test/java/one/talon/model/LoyaltyProgramTest.java b/src/test/java/one/talon/model/LoyaltyProgramTest.java index cf2fc6a0..c5c2fd73 100644 --- a/src/test/java/one/talon/model/LoyaltyProgramTest.java +++ b/src/test/java/one/talon/model/LoyaltyProgramTest.java @@ -23,6 +23,7 @@ import java.io.IOException; import java.util.ArrayList; import java.util.List; +import one.talon.model.CodeGeneratorSettings; import one.talon.model.LoyaltyTier; import org.threeten.bp.OffsetDateTime; import org.junit.Assert; @@ -124,6 +125,14 @@ public void sandboxTest() { // TODO: test sandbox } + /** + * Test the property 'programJoinPolicy' + */ + @Test + public void programJoinPolicyTest() { + // TODO: test programJoinPolicy + } + /** * Test the property 'tiersExpirationPolicy' */ @@ -132,6 +141,14 @@ public void tiersExpirationPolicyTest() { // TODO: test tiersExpirationPolicy } + /** + * Test the property 'tiersStartDate' + */ + @Test + public void tiersStartDateTest() { + // TODO: test tiersStartDate + } + /** * Test the property 'tiersExpireIn' */ @@ -149,11 +166,11 @@ public void tiersDowngradePolicyTest() { } /** - * Test the property 'programJoinPolicy' + * Test the property 'cardCodeSettings' */ @Test - public void programJoinPolicyTest() { - // TODO: test programJoinPolicy + public void cardCodeSettingsTest() { + // TODO: test cardCodeSettings } /** @@ -212,6 +229,14 @@ public void canUpdateJoinPolicyTest() { // TODO: test canUpdateJoinPolicy } + /** + * Test the property 'canUpdateTierExpirationPolicy' + */ + @Test + public void canUpdateTierExpirationPolicyTest() { + // TODO: test canUpdateTierExpirationPolicy + } + /** * Test the property 'canUpgradeToAdvancedTiers' */ diff --git a/src/test/java/one/talon/model/NewLoyaltyProgramTest.java b/src/test/java/one/talon/model/NewLoyaltyProgramTest.java index 179b50f5..6049ef12 100644 --- a/src/test/java/one/talon/model/NewLoyaltyProgramTest.java +++ b/src/test/java/one/talon/model/NewLoyaltyProgramTest.java @@ -23,7 +23,9 @@ import java.io.IOException; import java.util.ArrayList; import java.util.List; +import one.talon.model.CodeGeneratorSettings; import one.talon.model.NewLoyaltyTier; +import org.threeten.bp.OffsetDateTime; import org.junit.Assert; import org.junit.Ignore; import org.junit.Test; @@ -107,6 +109,14 @@ public void sandboxTest() { // TODO: test sandbox } + /** + * Test the property 'programJoinPolicy' + */ + @Test + public void programJoinPolicyTest() { + // TODO: test programJoinPolicy + } + /** * Test the property 'tiersExpirationPolicy' */ @@ -115,6 +125,14 @@ public void tiersExpirationPolicyTest() { // TODO: test tiersExpirationPolicy } + /** + * Test the property 'tiersStartDate' + */ + @Test + public void tiersStartDateTest() { + // TODO: test tiersStartDate + } + /** * Test the property 'tiersExpireIn' */ @@ -132,11 +150,11 @@ public void tiersDowngradePolicyTest() { } /** - * Test the property 'programJoinPolicy' + * Test the property 'cardCodeSettings' */ @Test - public void programJoinPolicyTest() { - // TODO: test programJoinPolicy + public void cardCodeSettingsTest() { + // TODO: test cardCodeSettings } /** diff --git a/src/test/java/one/talon/model/NewOutgoingIntegrationWebhookTest.java b/src/test/java/one/talon/model/NewOutgoingIntegrationWebhookTest.java index 55fc404a..a9ee964f 100644 --- a/src/test/java/one/talon/model/NewOutgoingIntegrationWebhookTest.java +++ b/src/test/java/one/talon/model/NewOutgoingIntegrationWebhookTest.java @@ -50,6 +50,14 @@ public void titleTest() { // TODO: test title } + /** + * Test the property 'description' + */ + @Test + public void descriptionTest() { + // TODO: test description + } + /** * Test the property 'applicationIds' */ diff --git a/src/test/java/one/talon/model/NewWebhookTest.java b/src/test/java/one/talon/model/NewWebhookTest.java index e6cb151c..d878228b 100644 --- a/src/test/java/one/talon/model/NewWebhookTest.java +++ b/src/test/java/one/talon/model/NewWebhookTest.java @@ -59,6 +59,14 @@ public void titleTest() { // TODO: test title } + /** + * Test the property 'description' + */ + @Test + public void descriptionTest() { + // TODO: test description + } + /** * Test the property 'verb' */ diff --git a/src/test/java/one/talon/model/OktaEventPayloadDataTest.java b/src/test/java/one/talon/model/OktaEventPayloadDataTest.java new file mode 100644 index 00000000..2f017bf0 --- /dev/null +++ b/src/test/java/one/talon/model/OktaEventPayloadDataTest.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.OktaEvent; +import org.junit.Assert; +import org.junit.Ignore; +import org.junit.Test; + + +/** + * Model tests for OktaEventPayloadData + */ +public class OktaEventPayloadDataTest { + private final OktaEventPayloadData model = new OktaEventPayloadData(); + + /** + * Model tests for OktaEventPayloadData + */ + @Test + public void testOktaEventPayloadData() { + // TODO: test OktaEventPayloadData + } + + /** + * Test the property 'events' + */ + @Test + public void eventsTest() { + // TODO: test events + } + +} diff --git a/src/test/java/one/talon/model/OktaEventPayloadTest.java b/src/test/java/one/talon/model/OktaEventPayloadTest.java new file mode 100644 index 00000000..5b039614 --- /dev/null +++ b/src/test/java/one/talon/model/OktaEventPayloadTest.java @@ -0,0 +1,52 @@ +/* + * 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.OktaEventPayloadData; +import org.junit.Assert; +import org.junit.Ignore; +import org.junit.Test; + + +/** + * Model tests for OktaEventPayload + */ +public class OktaEventPayloadTest { + private final OktaEventPayload model = new OktaEventPayload(); + + /** + * Model tests for OktaEventPayload + */ + @Test + public void testOktaEventPayload() { + // TODO: test OktaEventPayload + } + + /** + * Test the property 'data' + */ + @Test + public void dataTest() { + // TODO: test data + } + +} diff --git a/src/test/java/one/talon/model/OktaEventTargetTest.java b/src/test/java/one/talon/model/OktaEventTargetTest.java new file mode 100644 index 00000000..70be5f40 --- /dev/null +++ b/src/test/java/one/talon/model/OktaEventTargetTest.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 OktaEventTarget + */ +public class OktaEventTargetTest { + private final OktaEventTarget model = new OktaEventTarget(); + + /** + * Model tests for OktaEventTarget + */ + @Test + public void testOktaEventTarget() { + // TODO: test OktaEventTarget + } + + /** + * Test the property 'type' + */ + @Test + public void typeTest() { + // TODO: test type + } + + /** + * Test the property 'alternateId' + */ + @Test + public void alternateIdTest() { + // TODO: test alternateId + } + + /** + * Test the property 'displayName' + */ + @Test + public void displayNameTest() { + // TODO: test displayName + } + +} diff --git a/src/test/java/one/talon/model/OktaEventTest.java b/src/test/java/one/talon/model/OktaEventTest.java new file mode 100644 index 00000000..dea82eef --- /dev/null +++ b/src/test/java/one/talon/model/OktaEventTest.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 one.talon.model.OktaEventTarget; +import org.junit.Assert; +import org.junit.Ignore; +import org.junit.Test; + + +/** + * Model tests for OktaEvent + */ +public class OktaEventTest { + private final OktaEvent model = new OktaEvent(); + + /** + * Model tests for OktaEvent + */ + @Test + public void testOktaEvent() { + // TODO: test OktaEvent + } + + /** + * Test the property 'eventType' + */ + @Test + public void eventTypeTest() { + // TODO: test eventType + } + + /** + * Test the property 'target' + */ + @Test + public void targetTest() { + // TODO: test target + } + +} diff --git a/src/test/java/one/talon/model/ProjectedTierTest.java b/src/test/java/one/talon/model/ProjectedTierTest.java new file mode 100644 index 00000000..00be15c7 --- /dev/null +++ b/src/test/java/one/talon/model/ProjectedTierTest.java @@ -0,0 +1,68 @@ +/* + * 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.junit.Assert; +import org.junit.Ignore; +import org.junit.Test; + + +/** + * Model tests for ProjectedTier + */ +public class ProjectedTierTest { + private final ProjectedTier model = new ProjectedTier(); + + /** + * Model tests for ProjectedTier + */ + @Test + public void testProjectedTier() { + // TODO: test ProjectedTier + } + + /** + * Test the property 'projectedActivePoints' + */ + @Test + public void projectedActivePointsTest() { + // TODO: test projectedActivePoints + } + + /** + * Test the property 'stayInTierPoints' + */ + @Test + public void stayInTierPointsTest() { + // TODO: test stayInTierPoints + } + + /** + * Test the property 'projectedTierName' + */ + @Test + public void projectedTierNameTest() { + // TODO: test projectedTierName + } + +} diff --git a/src/test/java/one/talon/model/RejectCouponEffectPropsTest.java b/src/test/java/one/talon/model/RejectCouponEffectPropsTest.java index b8919f7a..5ea900b9 100644 --- a/src/test/java/one/talon/model/RejectCouponEffectPropsTest.java +++ b/src/test/java/one/talon/model/RejectCouponEffectPropsTest.java @@ -80,4 +80,12 @@ public void detailsTest() { // TODO: test details } + /** + * Test the property 'campaignExclusionReason' + */ + @Test + public void campaignExclusionReasonTest() { + // TODO: test campaignExclusionReason + } + } diff --git a/src/test/java/one/talon/model/RejectReferralEffectPropsTest.java b/src/test/java/one/talon/model/RejectReferralEffectPropsTest.java index ebe48028..abee2850 100644 --- a/src/test/java/one/talon/model/RejectReferralEffectPropsTest.java +++ b/src/test/java/one/talon/model/RejectReferralEffectPropsTest.java @@ -80,4 +80,12 @@ public void detailsTest() { // TODO: test details } + /** + * Test the property 'campaignExclusionReason' + */ + @Test + public void campaignExclusionReasonTest() { + // TODO: test campaignExclusionReason + } + } diff --git a/src/test/java/one/talon/model/RollbackIncreasedAchievementProgressEffectPropsTest.java b/src/test/java/one/talon/model/RollbackIncreasedAchievementProgressEffectPropsTest.java new file mode 100644 index 00000000..68c0acd9 --- /dev/null +++ b/src/test/java/one/talon/model/RollbackIncreasedAchievementProgressEffectPropsTest.java @@ -0,0 +1,92 @@ +/* + * 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.junit.Assert; +import org.junit.Ignore; +import org.junit.Test; + + +/** + * Model tests for RollbackIncreasedAchievementProgressEffectProps + */ +public class RollbackIncreasedAchievementProgressEffectPropsTest { + private final RollbackIncreasedAchievementProgressEffectProps model = new RollbackIncreasedAchievementProgressEffectProps(); + + /** + * Model tests for RollbackIncreasedAchievementProgressEffectProps + */ + @Test + public void testRollbackIncreasedAchievementProgressEffectProps() { + // TODO: test RollbackIncreasedAchievementProgressEffectProps + } + + /** + * Test the property 'achievementId' + */ + @Test + public void achievementIdTest() { + // TODO: test achievementId + } + + /** + * Test the property 'achievementName' + */ + @Test + public void achievementNameTest() { + // TODO: test achievementName + } + + /** + * Test the property 'progressTrackerId' + */ + @Test + public void progressTrackerIdTest() { + // TODO: test progressTrackerId + } + + /** + * Test the property 'decreaseProgressBy' + */ + @Test + public void decreaseProgressByTest() { + // TODO: test decreaseProgressBy + } + + /** + * Test the property 'currentProgress' + */ + @Test + public void currentProgressTest() { + // TODO: test currentProgress + } + + /** + * Test the property 'target' + */ + @Test + public void targetTest() { + // TODO: test target + } + +} diff --git a/src/test/java/one/talon/model/SSOConfigTest.java b/src/test/java/one/talon/model/SSOConfigTest.java index 96b49107..7cb0786f 100644 --- a/src/test/java/one/talon/model/SSOConfigTest.java +++ b/src/test/java/one/talon/model/SSOConfigTest.java @@ -48,4 +48,12 @@ public void enforcedTest() { // TODO: test enforced } + /** + * Test the property 'newAcsUrl' + */ + @Test + public void newAcsUrlTest() { + // TODO: test newAcsUrl + } + } diff --git a/src/test/java/one/talon/model/ScimNewUserTest.java b/src/test/java/one/talon/model/ScimNewUserTest.java new file mode 100644 index 00000000..0980d5a8 --- /dev/null +++ b/src/test/java/one/talon/model/ScimNewUserTest.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 ScimNewUser + */ +public class ScimNewUserTest { + private final ScimNewUser model = new ScimNewUser(); + + /** + * Model tests for ScimNewUser + */ + @Test + public void testScimNewUser() { + // TODO: test ScimNewUser + } + + /** + * Test the property 'active' + */ + @Test + public void activeTest() { + // TODO: test active + } + + /** + * Test the property 'displayName' + */ + @Test + public void displayNameTest() { + // TODO: test displayName + } + + /** + * Test the property 'userName' + */ + @Test + public void userNameTest() { + // TODO: test userName + } + +} diff --git a/src/test/java/one/talon/model/ScimResourceTest.java b/src/test/java/one/talon/model/ScimResourceTest.java new file mode 100644 index 00000000..5f68f6b9 --- /dev/null +++ b/src/test/java/one/talon/model/ScimResourceTest.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 ScimResource + */ +public class ScimResourceTest { + private final ScimResource model = new ScimResource(); + + /** + * Model tests for ScimResource + */ + @Test + public void testScimResource() { + // TODO: test ScimResource + } + + /** + * Test the property 'id' + */ + @Test + public void idTest() { + // TODO: test id + } + + /** + * Test the property 'name' + */ + @Test + public void nameTest() { + // TODO: test name + } + +} diff --git a/src/test/java/one/talon/model/ScimResourceTypesListResponseTest.java b/src/test/java/one/talon/model/ScimResourceTypesListResponseTest.java new file mode 100644 index 00000000..21d8ac0b --- /dev/null +++ b/src/test/java/one/talon/model/ScimResourceTypesListResponseTest.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.ScimResource; +import org.junit.Assert; +import org.junit.Ignore; +import org.junit.Test; + + +/** + * Model tests for ScimResourceTypesListResponse + */ +public class ScimResourceTypesListResponseTest { + private final ScimResourceTypesListResponse model = new ScimResourceTypesListResponse(); + + /** + * Model tests for ScimResourceTypesListResponse + */ + @Test + public void testScimResourceTypesListResponse() { + // TODO: test ScimResourceTypesListResponse + } + + /** + * Test the property 'resources' + */ + @Test + public void resourcesTest() { + // TODO: test resources + } + +} diff --git a/src/test/java/one/talon/model/ScimUserTest.java b/src/test/java/one/talon/model/ScimUserTest.java new file mode 100644 index 00000000..a9cace6f --- /dev/null +++ b/src/test/java/one/talon/model/ScimUserTest.java @@ -0,0 +1,75 @@ +/* + * 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 ScimUser + */ +public class ScimUserTest { + private final ScimUser model = new ScimUser(); + + /** + * Model tests for ScimUser + */ + @Test + public void testScimUser() { + // TODO: test ScimUser + } + + /** + * Test the property 'active' + */ + @Test + public void activeTest() { + // TODO: test active + } + + /** + * Test the property 'displayName' + */ + @Test + public void displayNameTest() { + // TODO: test displayName + } + + /** + * Test the property 'userName' + */ + @Test + public void userNameTest() { + // TODO: test userName + } + + /** + * Test the property 'id' + */ + @Test + public void idTest() { + // TODO: test id + } + +} diff --git a/src/test/java/one/talon/model/ScimUsersListResponseTest.java b/src/test/java/one/talon/model/ScimUsersListResponseTest.java new file mode 100644 index 00000000..22a5576a --- /dev/null +++ b/src/test/java/one/talon/model/ScimUsersListResponseTest.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.ScimUser; +import org.junit.Assert; +import org.junit.Ignore; +import org.junit.Test; + + +/** + * Model tests for ScimUsersListResponse + */ +public class ScimUsersListResponseTest { + private final ScimUsersListResponse model = new ScimUsersListResponse(); + + /** + * Model tests for ScimUsersListResponse + */ + @Test + public void testScimUsersListResponse() { + // TODO: test ScimUsersListResponse + } + + /** + * Test the property 'resources' + */ + @Test + public void resourcesTest() { + // TODO: test resources + } + + /** + * Test the property 'schemas' + */ + @Test + public void schemasTest() { + // TODO: test schemas + } + + /** + * Test the property 'totalResults' + */ + @Test + public void totalResultsTest() { + // TODO: test totalResults + } + +} diff --git a/src/test/java/one/talon/model/TierTest.java b/src/test/java/one/talon/model/TierTest.java index 9e5b749c..1feb4cdb 100644 --- a/src/test/java/one/talon/model/TierTest.java +++ b/src/test/java/one/talon/model/TierTest.java @@ -57,6 +57,14 @@ public void nameTest() { // TODO: test name } + /** + * Test the property 'startDate' + */ + @Test + public void startDateTest() { + // TODO: test startDate + } + /** * Test the property 'expiryDate' */ diff --git a/src/test/java/one/talon/model/TransferLoyaltyCardTest.java b/src/test/java/one/talon/model/TransferLoyaltyCardTest.java index ca7d4ae7..a34e21e6 100644 --- a/src/test/java/one/talon/model/TransferLoyaltyCardTest.java +++ b/src/test/java/one/talon/model/TransferLoyaltyCardTest.java @@ -48,4 +48,12 @@ public void newCardIdentifierTest() { // TODO: test newCardIdentifier } + /** + * Test the property 'blockReason' + */ + @Test + public void blockReasonTest() { + // TODO: test blockReason + } + } diff --git a/src/test/java/one/talon/model/UpdateLoyaltyCardTest.java b/src/test/java/one/talon/model/UpdateLoyaltyCardTest.java index 94006837..b8f89d54 100644 --- a/src/test/java/one/talon/model/UpdateLoyaltyCardTest.java +++ b/src/test/java/one/talon/model/UpdateLoyaltyCardTest.java @@ -48,4 +48,12 @@ public void statusTest() { // TODO: test status } + /** + * Test the property 'blockReason' + */ + @Test + public void blockReasonTest() { + // TODO: test blockReason + } + } diff --git a/src/test/java/one/talon/model/UpdateLoyaltyProgramTest.java b/src/test/java/one/talon/model/UpdateLoyaltyProgramTest.java index 89bb0e0b..a04f968f 100644 --- a/src/test/java/one/talon/model/UpdateLoyaltyProgramTest.java +++ b/src/test/java/one/talon/model/UpdateLoyaltyProgramTest.java @@ -23,7 +23,9 @@ import java.io.IOException; import java.util.ArrayList; import java.util.List; +import one.talon.model.CodeGeneratorSettings; import one.talon.model.NewLoyaltyTier; +import org.threeten.bp.OffsetDateTime; import org.junit.Assert; import org.junit.Ignore; import org.junit.Test; @@ -107,6 +109,14 @@ public void sandboxTest() { // TODO: test sandbox } + /** + * Test the property 'programJoinPolicy' + */ + @Test + public void programJoinPolicyTest() { + // TODO: test programJoinPolicy + } + /** * Test the property 'tiersExpirationPolicy' */ @@ -115,6 +125,14 @@ public void tiersExpirationPolicyTest() { // TODO: test tiersExpirationPolicy } + /** + * Test the property 'tiersStartDate' + */ + @Test + public void tiersStartDateTest() { + // TODO: test tiersStartDate + } + /** * Test the property 'tiersExpireIn' */ @@ -132,11 +150,11 @@ public void tiersDowngradePolicyTest() { } /** - * Test the property 'programJoinPolicy' + * Test the property 'cardCodeSettings' */ @Test - public void programJoinPolicyTest() { - // TODO: test programJoinPolicy + public void cardCodeSettingsTest() { + // TODO: test cardCodeSettings } /** diff --git a/src/test/java/one/talon/model/UserTest.java b/src/test/java/one/talon/model/UserTest.java index e1cb3fc3..5d9b5983 100644 --- a/src/test/java/one/talon/model/UserTest.java +++ b/src/test/java/one/talon/model/UserTest.java @@ -171,4 +171,12 @@ public void latestFeedTimestampTest() { // TODO: test latestFeedTimestamp } + /** + * Test the property 'additionalAttributes' + */ + @Test + public void additionalAttributesTest() { + // TODO: test additionalAttributes + } + } diff --git a/src/test/java/one/talon/model/WebhookTest.java b/src/test/java/one/talon/model/WebhookTest.java index f78ef155..c4f738b0 100644 --- a/src/test/java/one/talon/model/WebhookTest.java +++ b/src/test/java/one/talon/model/WebhookTest.java @@ -84,6 +84,14 @@ public void titleTest() { // TODO: test title } + /** + * Test the property 'description' + */ + @Test + public void descriptionTest() { + // TODO: test description + } + /** * Test the property 'verb' */ diff --git a/src/test/java/one/talon/model/WebhookWithOutgoingIntegrationDetailsTest.java b/src/test/java/one/talon/model/WebhookWithOutgoingIntegrationDetailsTest.java index 0bdd9188..2a66f88f 100644 --- a/src/test/java/one/talon/model/WebhookWithOutgoingIntegrationDetailsTest.java +++ b/src/test/java/one/talon/model/WebhookWithOutgoingIntegrationDetailsTest.java @@ -84,6 +84,14 @@ public void titleTest() { // TODO: test title } + /** + * Test the property 'description' + */ + @Test + public void descriptionTest() { + // TODO: test description + } + /** * Test the property 'verb' */