diff --git a/README.md b/README.md
index 5e4f43a..4105892 100644
--- a/README.md
+++ b/README.md
@@ -35,7 +35,7 @@ Add this dependency to your project's POM:
one.talontalon-one-client
- 14.1.1
+ 14.2.0compile
```
@@ -45,7 +45,7 @@ Add this dependency to your project's POM:
Add this dependency to your project's build file:
```groovy
-compile "one.talon:talon-one-client:14.1.1"
+compile "one.talon:talon-one-client:14.2.0"
```
### Others
@@ -201,6 +201,7 @@ Class | Method | HTTP request | Description
*IntegrationApi* | [**deleteAudienceV2**](docs/IntegrationApi.md#deleteAudienceV2) | **DELETE** /v2/audiences/{audienceId} | Delete audience
*IntegrationApi* | [**deleteCouponReservation**](docs/IntegrationApi.md#deleteCouponReservation) | **DELETE** /v1/coupon_reservations/{couponValue} | Delete coupon reservations
*IntegrationApi* | [**deleteCustomerData**](docs/IntegrationApi.md#deleteCustomerData) | **DELETE** /v1/customer_data/{integrationId} | Delete customer's personal data
+*IntegrationApi* | [**deleteLoyaltyTransactionsFromLedgers**](docs/IntegrationApi.md#deleteLoyaltyTransactionsFromLedgers) | **POST** /v1/loyalty_programs/{loyaltyProgramId}/profile/{integrationId}/delete_transactions | Delete customer's transactions from loyalty ledgers
*IntegrationApi* | [**generateLoyaltyCard**](docs/IntegrationApi.md#generateLoyaltyCard) | **POST** /v1/loyalty_programs/{loyaltyProgramId}/cards | Generate loyalty card
*IntegrationApi* | [**getCustomerAchievementHistory**](docs/IntegrationApi.md#getCustomerAchievementHistory) | **GET** /v1/customer_profiles/{integrationId}/achievements/{achievementId} | List customer's achievement history
*IntegrationApi* | [**getCustomerAchievements**](docs/IntegrationApi.md#getCustomerAchievements) | **GET** /v1/customer_profiles/{integrationId}/achievements | List customer's available achievements
@@ -280,6 +281,7 @@ Class | Method | HTTP request | Description
*ManagementApi* | [**exportLoyaltyLedger**](docs/ManagementApi.md#exportLoyaltyLedger) | **GET** /v1/loyalty_programs/{loyaltyProgramId}/profile/{integrationId}/export_log | Export customer's transaction logs
*ManagementApi* | [**exportPoolGiveaways**](docs/ManagementApi.md#exportPoolGiveaways) | **GET** /v1/giveaways/pools/{poolId}/export | Export giveaway codes of a giveaway pool
*ManagementApi* | [**exportReferrals**](docs/ManagementApi.md#exportReferrals) | **GET** /v1/applications/{applicationId}/export_referrals | Export referrals
+*ManagementApi* | [**generateCouponRejections**](docs/ManagementApi.md#generateCouponRejections) | **GET** /v1/coupon_rejections | Summarize coupon redemption failures in session
*ManagementApi* | [**getAccessLogsWithoutTotalCount**](docs/ManagementApi.md#getAccessLogsWithoutTotalCount) | **GET** /v1/applications/{applicationId}/access_logs/no_total | Get access logs for Application
*ManagementApi* | [**getAccount**](docs/ManagementApi.md#getAccount) | **GET** /v1/accounts/{accountId} | Get account details
*ManagementApi* | [**getAccountAnalytics**](docs/ManagementApi.md#getAccountAnalytics) | **GET** /v1/accounts/{accountId}/analytics | Get account analytics
@@ -439,6 +441,7 @@ Class | Method | HTTP request | Description
- [AddedDeductedPointsNotificationPolicy](docs/AddedDeductedPointsNotificationPolicy.md)
- [AdditionalCampaignProperties](docs/AdditionalCampaignProperties.md)
- [AdditionalCost](docs/AdditionalCost.md)
+- [AdjustmentDetails](docs/AdjustmentDetails.md)
- [AnalyticsDataPoint](docs/AnalyticsDataPoint.md)
- [AnalyticsDataPointWithTrend](docs/AnalyticsDataPointWithTrend.md)
- [AnalyticsDataPointWithTrendAndInfluencedRate](docs/AnalyticsDataPointWithTrendAndInfluencedRate.md)
@@ -545,10 +548,12 @@ Class | Method | HTTP request | Description
- [CardLedgerTransactionLogEntry](docs/CardLedgerTransactionLogEntry.md)
- [CardLedgerTransactionLogEntryIntegrationAPI](docs/CardLedgerTransactionLogEntryIntegrationAPI.md)
- [CartItem](docs/CartItem.md)
+- [CartItemFilterTemplate](docs/CartItemFilterTemplate.md)
- [Catalog](docs/Catalog.md)
- [CatalogAction](docs/CatalogAction.md)
- [CatalogActionFilter](docs/CatalogActionFilter.md)
- [CatalogItem](docs/CatalogItem.md)
+- [CatalogRule](docs/CatalogRule.md)
- [CatalogSyncRequest](docs/CatalogSyncRequest.md)
- [CatalogsStrikethroughNotificationPolicy](docs/CatalogsStrikethroughNotificationPolicy.md)
- [Change](docs/Change.md)
@@ -558,6 +563,7 @@ Class | Method | HTTP request | Description
- [Collection](docs/Collection.md)
- [CollectionItem](docs/CollectionItem.md)
- [CollectionWithoutPayload](docs/CollectionWithoutPayload.md)
+- [CollectionsCatalog](docs/CollectionsCatalog.md)
- [Coupon](docs/Coupon.md)
- [CouponConstraints](docs/CouponConstraints.md)
- [CouponCreatedEffectProps](docs/CouponCreatedEffectProps.md)
@@ -568,7 +574,6 @@ Class | Method | HTTP request | Description
- [CouponFailureSummary](docs/CouponFailureSummary.md)
- [CouponLimitConfigs](docs/CouponLimitConfigs.md)
- [CouponRejectionReason](docs/CouponRejectionReason.md)
-- [CouponRejections](docs/CouponRejections.md)
- [CouponReservations](docs/CouponReservations.md)
- [CouponSearch](docs/CouponSearch.md)
- [CouponValue](docs/CouponValue.md)
@@ -616,6 +621,12 @@ Class | Method | HTTP request | Description
- [EventType](docs/EventType.md)
- [EventV2](docs/EventV2.md)
- [EventV3](docs/EventV3.md)
+- [Experiment](docs/Experiment.md)
+- [ExperimentResults](docs/ExperimentResults.md)
+- [ExperimentVariant](docs/ExperimentVariant.md)
+- [ExperimentVariantAllocation](docs/ExperimentVariantAllocation.md)
+- [ExperimentVariantResult](docs/ExperimentVariantResult.md)
+- [ExperimentVariantResultConfidence](docs/ExperimentVariantResultConfidence.md)
- [ExpiringCardPointsData](docs/ExpiringCardPointsData.md)
- [ExpiringCardPointsNotification](docs/ExpiringCardPointsNotification.md)
- [ExpiringCouponsData](docs/ExpiringCouponsData.md)
@@ -651,6 +662,7 @@ Class | Method | HTTP request | Description
- [IdentifiableEntity](docs/IdentifiableEntity.md)
- [ImportEntity](docs/ImportEntity.md)
- [IncreaseAchievementProgressEffectProps](docs/IncreaseAchievementProgressEffectProps.md)
+- [InfluencingCampaignDetails](docs/InfluencingCampaignDetails.md)
- [InlineResponse200](docs/InlineResponse200.md)
- [InlineResponse2001](docs/InlineResponse2001.md)
- [InlineResponse20010](docs/InlineResponse20010.md)
@@ -697,6 +709,7 @@ Class | Method | HTTP request | Description
- [InlineResponse20048](docs/InlineResponse20048.md)
- [InlineResponse20049](docs/InlineResponse20049.md)
- [InlineResponse2005](docs/InlineResponse2005.md)
+- [InlineResponse20050](docs/InlineResponse20050.md)
- [InlineResponse2006](docs/InlineResponse2006.md)
- [InlineResponse2007](docs/InlineResponse2007.md)
- [InlineResponse2008](docs/InlineResponse2008.md)
@@ -799,6 +812,7 @@ Class | Method | HTTP request | Description
- [NewCampaignTemplate](docs/NewCampaignTemplate.md)
- [NewCatalog](docs/NewCatalog.md)
- [NewCollection](docs/NewCollection.md)
+- [NewCollectionsCatalog](docs/NewCollectionsCatalog.md)
- [NewCouponCreationJob](docs/NewCouponCreationJob.md)
- [NewCouponDeletionJob](docs/NewCouponDeletionJob.md)
- [NewCoupons](docs/NewCoupons.md)
@@ -809,6 +823,9 @@ Class | Method | HTTP request | Description
- [NewCustomerSessionV2](docs/NewCustomerSessionV2.md)
- [NewEvent](docs/NewEvent.md)
- [NewEventType](docs/NewEventType.md)
+- [NewExperiment](docs/NewExperiment.md)
+- [NewExperimentVariant](docs/NewExperimentVariant.md)
+- [NewExperimentVariantArray](docs/NewExperimentVariantArray.md)
- [NewExternalInvitation](docs/NewExternalInvitation.md)
- [NewGiveawaysPool](docs/NewGiveawaysPool.md)
- [NewInternalAudience](docs/NewInternalAudience.md)
@@ -948,7 +965,6 @@ Class | Method | HTTP request | Description
- [ScimUsersListResponse](docs/ScimUsersListResponse.md)
- [SecondaryDeployment](docs/SecondaryDeployment.md)
- [Session](docs/Session.md)
-- [SessionCoupons](docs/SessionCoupons.md)
- [SetDiscountEffectProps](docs/SetDiscountEffectProps.md)
- [SetDiscountPerAdditionalCostEffectProps](docs/SetDiscountPerAdditionalCostEffectProps.md)
- [SetDiscountPerAdditionalCostPerItemEffectProps](docs/SetDiscountPerAdditionalCostPerItemEffectProps.md)
@@ -1004,9 +1020,13 @@ Class | Method | HTTP request | Description
- [UpdateCampaignTemplate](docs/UpdateCampaignTemplate.md)
- [UpdateCatalog](docs/UpdateCatalog.md)
- [UpdateCollection](docs/UpdateCollection.md)
+- [UpdateCollectionsCatalog](docs/UpdateCollectionsCatalog.md)
- [UpdateCoupon](docs/UpdateCoupon.md)
- [UpdateCouponBatch](docs/UpdateCouponBatch.md)
- [UpdateCouponsData](docs/UpdateCouponsData.md)
+- [UpdateExperiment](docs/UpdateExperiment.md)
+- [UpdateExperimentVariant](docs/UpdateExperimentVariant.md)
+- [UpdateExperimentVariantArray](docs/UpdateExperimentVariantArray.md)
- [UpdateLoyaltyCard](docs/UpdateLoyaltyCard.md)
- [UpdateLoyaltyProgram](docs/UpdateLoyaltyProgram.md)
- [UpdateLoyaltyProgramTier](docs/UpdateLoyaltyProgramTier.md)
@@ -1022,7 +1042,6 @@ Class | Method | HTTP request | Description
- [ValueMap](docs/ValueMap.md)
- [Webhook](docs/Webhook.md)
- [WebhookAuthentication](docs/WebhookAuthentication.md)
-- [WebhookAuthenticationBase](docs/WebhookAuthenticationBase.md)
- [WebhookAuthenticationDataBasic](docs/WebhookAuthenticationDataBasic.md)
- [WebhookAuthenticationDataCustom](docs/WebhookAuthenticationDataCustom.md)
- [WebhookAuthenticationWebhookRef](docs/WebhookAuthenticationWebhookRef.md)
diff --git a/api/openapi.yaml b/api/openapi.yaml
index b22de64..b51bd39 100644
--- a/api/openapi.yaml
+++ b/api/openapi.yaml
@@ -2462,6 +2462,70 @@ paths:
tags:
- management
x-accepts: application/json
+ /v1/loyalty_programs/{loyaltyProgramId}/profile/{integrationId}/delete_transactions:
+ post:
+ description: |
+ Delete a customer's transactions in all loyalty ledgers or a specified ledger.
+
+ **Note:** To retrieve loyalty transaction logs for a specific customer in a given
+ loyalty program, use the [List customer's loyalty transactions](https://docs.talon.one/integration-api#tag/Loyalty/operation/getLoyaltyProgramProfileTransactions)
+ endpoint.
+ operationId: deleteLoyaltyTransactionsFromLedgers
+ parameters:
+ - description: |
+ Identifier of the profile-based loyalty program. You can get the ID with
+ the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint.
+ in: path
+ name: loyaltyProgramId
+ required: true
+ schema:
+ format: int64
+ type: integer
+ - description: |
+ The integration ID of the customer profile. You can get the `integrationId` of a profile using:
+ - A customer session integration ID with the [Update customer session](https://docs.talon.one/integration-api#operation/updateCustomerSessionV2) endpoint.
+ - The Management API with the [List application's customers](https://docs.talon.one/management-api#operation/getApplicationCustomers) endpoint.
+ in: path
+ name: integrationId
+ required: true
+ schema:
+ type: string
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/DeleteLoyaltyTransactionsRequest'
+ required: true
+ responses:
+ "204":
+ content: {}
+ description: No Content
+ "400":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponseWithStatus'
+ description: Bad request
+ "401":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponseWithStatus'
+ description: Unauthorized
+ "404":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponseWithStatus'
+ description: Not found
+ security:
+ - api_key_v1: []
+ summary: Delete customer's transactions from loyalty ledgers
+ tags:
+ - integration
+ x-codegen-request-body-name: body
+ x-contentType: application/json
+ x-accepts: application/json
/v1/loyalty_programs/{loyaltyProgramId}/cards/{loyaltyCardId}/points:
get:
description: |
@@ -5248,13 +5312,15 @@ paths:
required: true
schema:
type: string
- - description: |
- Used to return expired, active, and pending loyalty balances before this timestamp. You can enter any past, present, or future timestamp value.
-
- **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.
+ - description: "Used to return expired, active, and pending loyalty balances\
+ \ before this\ntimestamp. You can enter any past, present, or future timestamp\
+ \ value.\n\n**Note:**\n\n- It must be an RFC3339 timestamp string.\n- You\
+ \ can include a time component in your string, for example,\n`T23:59:59`\
+ \ to specify the end of the day. The time zone setting\nconsidered is `UTC`.\
+ \ If you do not include a time component, a default\ntime value of `T00:00:00`\
+ \ (midnight) in `UTC` is considered.\n- This parameter does not affect the\
+ \ `currentTier` field in the CSV file, \nwhich shows the customer's tier\
+ \ at the time of export.\n"
in: query
name: endDate
schema:
@@ -12578,6 +12644,46 @@ paths:
tags:
- management
x-accepts: application/json
+ /v1/coupon_rejections:
+ get:
+ description: |
+ Create a summary of the reasons for coupon redemption failures in a given customer session.
+ operationId: generateCouponRejections
+ parameters:
+ - description: The integration ID of the session to summarize.
+ in: query
+ name: sessionIntegrationId
+ required: true
+ schema:
+ type: string
+ - description: Filter results by Application ID.
+ in: query
+ name: applicationId
+ schema:
+ type: number
+ - description: |
+ The [ISO-639](https://en.wikipedia.org/wiki/List_of_ISO_639_language_codes) code of the language
+ in which the summary will be generated.
+ in: query
+ name: language
+ schema:
+ type: string
+ - description: The coupon code for which to get the rejection reason.
+ in: query
+ name: couponCode
+ schema:
+ type: string
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/inline_response_200_50'
+ description: OK
+ summary: Summarize coupon redemption failures in session
+ tags:
+ - management
+ x-accepts: application/json
components:
schemas:
ApplicationNotification:
@@ -12933,6 +13039,12 @@ components:
description: Arbitrary properties associated with coupons.
properties: {}
type: object
+ isReservationMandatory:
+ default: false
+ description: An indication of whether the code can be redeemed only if it
+ has been reserved first.
+ example: false
+ type: boolean
batchId:
description: The batch ID coupons created by this job will bear.
example: tqyrgahe
@@ -13637,6 +13749,25 @@ components:
- quantity
- sku
type: object
+ ExperimentVariantAllocation:
+ example:
+ experimentID: 1
+ variantID: 2
+ properties:
+ experimentID:
+ description: The ID of the experiment.
+ example: 1
+ format: int64
+ type: integer
+ variantID:
+ description: The ID of the variant to be allocated.
+ example: 2
+ format: int64
+ type: integer
+ required:
+ - experimentID
+ - variantID
+ type: object
NewCustomerSessionV2:
description: The representation of the customer session.
example:
@@ -13725,6 +13856,11 @@ components:
base:
price: 100
height: 0.8008281904610115
+ experimentVariantAllocations:
+ - experimentID: 1
+ variantID: 2
+ - experimentID: 1
+ variantID: 2
properties:
profileId:
description: |
@@ -13817,6 +13953,13 @@ components:
$ref: '#/components/schemas/CartItem'
title: Customer session's cart items
type: array
+ experimentVariantAllocations:
+ description: |
+ The experiment variant allocations to add to this session.
+ items:
+ $ref: '#/components/schemas/ExperimentVariantAllocation'
+ title: Experiment variant allocations
+ type: array
additionalCosts:
additionalProperties:
$ref: '#/components/schemas/AdditionalCost'
@@ -13869,6 +14012,11 @@ components:
identifiers:
- d41306257915f83fe01e54092ae470f631161ea16fcf4415842eed41470386ea
integrationId: URNGV8294NV
+ experimentVariantAllocations:
+ - experimentID: 1
+ variantID: 2
+ - experimentID: 1
+ variantID: 2
total: 119.99
loyaltyCards:
- loyalty-card-1
@@ -14070,6 +14218,13 @@ components:
$ref: '#/components/schemas/CartItem'
title: Customer session's cart items
type: array
+ experimentVariantAllocations:
+ description: |
+ The experiment variant allocations to add to this session.
+ items:
+ $ref: '#/components/schemas/ExperimentVariantAllocation'
+ title: Experiment variant allocations
+ type: array
additionalCosts:
additionalProperties:
$ref: '#/components/schemas/AdditionalCost'
@@ -14160,6 +14315,11 @@ components:
description: Definition of all properties that are present on all effects, independent
of their type.
properties:
+ experimentId:
+ description: The ID of the experiment that campaign belongs to.
+ example: 12
+ format: int64
+ type: integer
campaignId:
description: The ID of the campaign that triggered this effect.
example: 244
@@ -15290,8 +15450,14 @@ components:
selectedPriceType: member
campaignRevisionId: 1
ruleName: Give 20% discount
+ experimentId: 12
triggeredByCoupon: 4928
properties:
+ experimentId:
+ description: The ID of the experiment that campaign belongs to.
+ example: 12
+ format: int64
+ type: integer
campaignId:
description: The ID of the campaign that triggered this effect.
example: 244
@@ -15401,6 +15567,7 @@ components:
selectedPriceType: member
campaignRevisionId: 1
ruleName: Give 20% discount
+ experimentId: 12
triggeredByCoupon: 4928
- rulesetId: 73
ruleIndex: 2
@@ -15417,6 +15584,7 @@ components:
selectedPriceType: member
campaignRevisionId: 1
ruleName: Give 20% discount
+ experimentId: 12
triggeredByCoupon: 4928
customerSession:
couponCodes:
@@ -15425,6 +15593,11 @@ components:
identifiers:
- d41306257915f83fe01e54092ae470f631161ea16fcf4415842eed41470386ea
integrationId: URNGV8294NV
+ experimentVariantAllocations:
+ - experimentID: 1
+ variantID: 2
+ - experimentID: 1
+ variantID: 2
total: 119.99
loyaltyCards:
- loyalty-card-1
@@ -15675,6 +15848,11 @@ components:
base:
price: 100
height: 0.8008281904610115
+ experimentVariantAllocations:
+ - experimentID: 1
+ variantID: 2
+ - experimentID: 1
+ variantID: 2
responseContent:
- customerSession
- customerProfile
@@ -17844,6 +18022,12 @@ components:
type: string
maxItems: 50
type: array
+ reevaluateOnReturn:
+ description: Indicates whether this campaign should be reevaluated when
+ a customer returns an item.
+ example: true
+ title: Reevaluate on return
+ type: boolean
features:
description: The features enabled in this campaign.
example:
@@ -18106,6 +18290,11 @@ components:
format: int64
type: integer
type: array
+ experimentId:
+ description: The ID of the Experiment this Campaign is part of.
+ example: 1
+ format: int64
+ type: integer
required:
- frontendState
- storesImported
@@ -18206,6 +18395,7 @@ components:
- "7"
- "8"
- "9"
+ experimentId: 1
id: 4
state: enabled
reservecouponEffectCount: 9
@@ -18258,6 +18448,7 @@ components:
limit: 1000.0
action: createCoupon
activeRulesetId: 6
+ reevaluateOnReturn: true
userId: 388
awardedGiveawaysCount: 9
redeemedLoyaltyPointsEffectCount: 9
@@ -18383,6 +18574,12 @@ components:
type: string
maxItems: 50
type: array
+ reevaluateOnReturn:
+ description: Indicates whether this campaign should be reevaluated when
+ a customer returns an item.
+ example: true
+ title: Reevaluate on return
+ type: boolean
features:
description: The features enabled in this campaign.
example:
@@ -18605,6 +18802,11 @@ components:
format: int64
type: integer
type: array
+ experimentId:
+ description: The ID of the Experiment this Campaign is part of.
+ example: 1
+ format: int64
+ type: integer
revisionFrontendState:
description: The campaign revision state displayed in the Campaign Manager.
enum:
@@ -18657,6 +18859,7 @@ components:
- id
- limits
- name
+ - reevaluateOnReturn
- state
- storesImported
- tags
@@ -19266,6 +19469,7 @@ components:
selectedPriceType: member
campaignRevisionId: 1
ruleName: Give 20% discount
+ experimentId: 12
triggeredByCoupon: 4928
- rulesetId: 73
ruleIndex: 2
@@ -19282,6 +19486,7 @@ components:
selectedPriceType: member
campaignRevisionId: 1
ruleName: Give 20% discount
+ experimentId: 12
triggeredByCoupon: 4928
referral:
code: 27G47Y54VH9L
@@ -19350,6 +19555,7 @@ components:
- "7"
- "8"
- "9"
+ experimentId: 1
id: 4
state: enabled
reservecouponEffectCount: 9
@@ -19402,6 +19608,7 @@ components:
limit: 1000.0
action: createCoupon
activeRulesetId: 6
+ reevaluateOnReturn: true
userId: 388
awardedGiveawaysCount: 9
redeemedLoyaltyPointsEffectCount: 9
@@ -19502,6 +19709,7 @@ components:
- "7"
- "8"
- "9"
+ experimentId: 1
id: 4
state: enabled
reservecouponEffectCount: 9
@@ -19554,6 +19762,7 @@ components:
limit: 1000.0
action: createCoupon
activeRulesetId: 6
+ reevaluateOnReturn: true
userId: 388
awardedGiveawaysCount: 9
redeemedLoyaltyPointsEffectCount: 9
@@ -19680,6 +19889,11 @@ components:
identifiers:
- d41306257915f83fe01e54092ae470f631161ea16fcf4415842eed41470386ea
integrationId: URNGV8294NV
+ experimentVariantAllocations:
+ - experimentID: 1
+ variantID: 2
+ - experimentID: 1
+ variantID: 2
total: 119.99
loyaltyCards:
- loyalty-card-1
@@ -20009,6 +20223,7 @@ components:
selectedPriceType: member
campaignRevisionId: 1
ruleName: Give 20% discount
+ experimentId: 12
triggeredByCoupon: 4928
- rulesetId: 73
ruleIndex: 2
@@ -20025,6 +20240,7 @@ components:
selectedPriceType: member
campaignRevisionId: 1
ruleName: Give 20% discount
+ experimentId: 12
triggeredByCoupon: 4928
properties:
effects:
@@ -20148,6 +20364,7 @@ components:
selectedPriceType: member
campaignRevisionId: 1
ruleName: Give 20% discount
+ experimentId: 12
triggeredByCoupon: 4928
- rulesetId: 73
ruleIndex: 2
@@ -20164,6 +20381,7 @@ components:
selectedPriceType: member
campaignRevisionId: 1
ruleName: Give 20% discount
+ experimentId: 12
triggeredByCoupon: 4928
triggeredCampaigns:
- type: advanced
@@ -20214,6 +20432,7 @@ components:
- "7"
- "8"
- "9"
+ experimentId: 1
id: 4
state: enabled
reservecouponEffectCount: 9
@@ -20266,6 +20485,7 @@ components:
limit: 1000.0
action: createCoupon
activeRulesetId: 6
+ reevaluateOnReturn: true
userId: 388
awardedGiveawaysCount: 9
redeemedLoyaltyPointsEffectCount: 9
@@ -20366,6 +20586,7 @@ components:
- "7"
- "8"
- "9"
+ experimentId: 1
id: 4
state: enabled
reservecouponEffectCount: 9
@@ -20418,6 +20639,7 @@ components:
limit: 1000.0
action: createCoupon
activeRulesetId: 6
+ reevaluateOnReturn: true
userId: 388
awardedGiveawaysCount: 9
redeemedLoyaltyPointsEffectCount: 9
@@ -23396,6 +23618,7 @@ components:
selectedPriceType: member
campaignRevisionId: 1
ruleName: Give 20% discount
+ experimentId: 12
triggeredByCoupon: 4928
- rulesetId: 73
ruleIndex: 2
@@ -23412,6 +23635,7 @@ components:
selectedPriceType: member
campaignRevisionId: 1
ruleName: Give 20% discount
+ experimentId: 12
triggeredByCoupon: 4928
triggeredCampaigns:
- type: advanced
@@ -23462,6 +23686,7 @@ components:
- "7"
- "8"
- "9"
+ experimentId: 1
id: 4
state: enabled
reservecouponEffectCount: 9
@@ -23514,6 +23739,7 @@ components:
limit: 1000.0
action: createCoupon
activeRulesetId: 6
+ reevaluateOnReturn: true
userId: 388
awardedGiveawaysCount: 9
redeemedLoyaltyPointsEffectCount: 9
@@ -23614,6 +23840,7 @@ components:
- "7"
- "8"
- "9"
+ experimentId: 1
id: 4
state: enabled
reservecouponEffectCount: 9
@@ -23666,6 +23893,7 @@ components:
limit: 1000.0
action: createCoupon
activeRulesetId: 6
+ reevaluateOnReturn: true
userId: 388
awardedGiveawaysCount: 9
redeemedLoyaltyPointsEffectCount: 9
@@ -25699,6 +25927,11 @@ components:
type: object
DeleteLoyaltyTransactionsRequest:
description: Request to delete transactions based on the specified scope.
+ example:
+ subledgerIds:
+ - subledger1
+ - subledger2
+ scope: SelectedSubledgers
properties:
scope:
description: |
@@ -26042,6 +26275,12 @@ components:
type: string
maxItems: 50
type: array
+ reevaluateOnReturn:
+ description: Indicates whether this campaign should be reevaluated when
+ a customer returns an item.
+ example: true
+ title: Reevaluate on return
+ type: boolean
features:
description: The features enabled in this campaign.
example:
@@ -26166,12 +26405,12 @@ components:
title: Campaign Description
type: string
activeRulesetId:
- description: The ID of the ruleset this campaign template will use.
+ description: The ID of the ruleset this campaign will use.
example: 5
nullable: true
type: integer
tags:
- description: A list of tags for the campaign template.
+ description: A list of tags for the campaign.
items:
maxLength: 50
minLength: 1
@@ -26187,8 +26426,14 @@ components:
items:
$ref: '#/components/schemas/LimitConfig'
type: array
+ reevaluateOnReturn:
+ description: Indicates whether this campaign should be reevaluated when
+ a customer returns an item.
+ example: true
+ title: Reevaluate on return
+ type: boolean
features:
- description: A list of features for the campaign template.
+ description: A list of features for the campaign.
items:
enum:
- coupons
@@ -26258,12 +26503,12 @@ components:
title: Campaign Description
type: string
activeRulesetId:
- description: The ID of the ruleset this campaign template will use.
+ description: The ID of the ruleset this campaign will use.
example: 5
nullable: true
type: integer
tags:
- description: A list of tags for the campaign template.
+ description: A list of tags for the campaign.
items:
maxLength: 50
minLength: 1
@@ -26279,8 +26524,14 @@ components:
items:
$ref: '#/components/schemas/LimitConfig'
type: array
+ reevaluateOnReturn:
+ description: Indicates whether this campaign should be reevaluated when
+ a customer returns an item.
+ example: true
+ title: Reevaluate on return
+ type: boolean
features:
- description: A list of features for the campaign template.
+ description: A list of features for the campaign.
items:
enum:
- coupons
@@ -26651,6 +26902,7 @@ components:
example:
activeRulesetId: 2
description: Campaign for all summer 2021 promotions
+ reevaluateOnReturn: true
type: advanced
campaignGroups:
- 1
@@ -26817,6 +27069,12 @@ components:
type: string
maxItems: 50
type: array
+ reevaluateOnReturn:
+ description: Indicates whether this campaign should be reevaluated when
+ a customer returns an item.
+ example: true
+ title: Reevaluate on return
+ type: boolean
features:
description: A list of features for the campaign.
example:
@@ -27341,6 +27599,7 @@ components:
- number
- time
- (list string)
+ - (list number)
minLength: 1
type: string
description:
@@ -27360,6 +27619,7 @@ components:
- number
- time
- (list string)
+ - (list number)
minLength: 1
type: string
description:
@@ -29410,6 +29670,7 @@ components:
attributes: '{}'
discountLimit: 30.0
startDate: 2020-01-24T14:15:22Z
+ isReservationMandatory: false
properties:
usageLimit:
description: |
@@ -29458,6 +29719,12 @@ components:
description: Arbitrary properties associated with coupons.
properties: {}
type: object
+ isReservationMandatory:
+ default: false
+ description: An indication of whether the code can be redeemed only if it
+ has been reserved first.
+ example: false
+ type: boolean
required:
- attributes
- numberOfCoupons
@@ -30189,6 +30456,11 @@ components:
type: string
maxItems: 50
type: array
+ reevaluateOnReturn:
+ description: Indicates whether campaigns created from this template should
+ be reevaluated when a customer returns an item.
+ example: true
+ type: boolean
features:
description: A list of features for the campaign template.
items:
@@ -30350,6 +30622,7 @@ components:
updatedBy: Jane Doe
created: 2020-06-10T09:05:27.993483Z
isUserFavorite: false
+ reevaluateOnReturn: true
userId: 388
tags:
- discount
@@ -30470,6 +30743,11 @@ components:
type: string
maxItems: 50
type: array
+ reevaluateOnReturn:
+ description: Indicates whether campaigns created from this template should
+ be reevaluated when a customer returns an item.
+ example: true
+ type: boolean
features:
description: A list of features for the campaign template.
items:
@@ -30575,6 +30853,7 @@ components:
- id
- instructions
- name
+ - reevaluateOnReturn
- state
- userId
- validApplicationIds
@@ -30620,6 +30899,11 @@ components:
type: string
maxItems: 50
type: array
+ reevaluateOnReturn:
+ description: Indicates whether campaigns created from this template should
+ be reevaluated when a customer returns an item.
+ example: true
+ type: boolean
features:
description: A list of features for the campaign template.
items:
@@ -30677,6 +30961,275 @@ components:
- name
- state
type: object
+ ExperimentVariant:
+ properties:
+ id:
+ description: The internal ID of this entity.
+ example: 6
+ format: int64
+ type: integer
+ created:
+ description: The time this entity was created.
+ example: 2020-06-10T09:05:27.993483Z
+ format: date-time
+ type: string
+ name:
+ example: Variant A
+ type: string
+ experimentId:
+ example: 10
+ format: int64
+ type: integer
+ ruleset:
+ $ref: '#/components/schemas/Ruleset'
+ weight:
+ example: 12
+ format: int64
+ type: integer
+ isPrimary:
+ example: true
+ type: boolean
+ required:
+ - created
+ - id
+ - isPrimary
+ - name
+ type: object
+ Experiment:
+ properties:
+ id:
+ description: The internal ID of this entity.
+ example: 6
+ format: int64
+ type: integer
+ created:
+ description: The time this entity was created.
+ example: 2020-06-10T09:05:27.993483Z
+ format: date-time
+ type: string
+ applicationId:
+ description: The ID of the Application that owns this entity.
+ example: 322
+ format: int64
+ type: integer
+ isVariantAssignmentExternal:
+ description: |
+ The source of the assignment. - false - The assignment to the variant is handled internally by the Talon.Oneandled internally by the Talon.One. - true - The assignment to the variant handled externally.
+ type: boolean
+ campaign:
+ $ref: '#/components/schemas/Campaign'
+ activated:
+ description: |
+ The date and time the experiment was activated.
+ format: date-time
+ type: string
+ state:
+ default: disabled
+ description: |
+ A disabled experiment is not evaluated for rules or coupons.
+ enum:
+ - enabled
+ - disabled
+ example: enabled
+ type: string
+ variants:
+ items:
+ $ref: '#/components/schemas/ExperimentVariant'
+ type: array
+ deletedat:
+ description: |
+ The date and time the experiment was deleted.
+ format: date-time
+ type: string
+ required:
+ - applicationId
+ - created
+ - id
+ type: object
+ NewExperiment:
+ properties:
+ isVariantAssignmentExternal:
+ description: |
+ The source of the assignment. - false - The assignment to the variant is handled internally by the Talon.Oneandled internally by the Talon.One. - true - The assignment to the variant handled externally.
+ type: boolean
+ activated:
+ description: |
+ The date and time the experiment was activated.
+ format: date-time
+ type: string
+ state:
+ default: disabled
+ description: |
+ A disabled experiment is not evaluated for rules or coupons.
+ enum:
+ - enabled
+ - disabled
+ example: enabled
+ type: string
+ campaign:
+ $ref: '#/components/schemas/NewCampaign'
+ required:
+ - campaign
+ - isVariantAssignmentExternal
+ type: object
+ UpdateExperiment:
+ properties:
+ isVariantAssignmentExternal:
+ description: "The source of the assignment. - false - The assignment to\
+ \ the variant is handled internally by the Talon.Oneandled internally\
+ \ by the Talon.One. - true - The assignment to the variant handled externally.\
+ \ \n"
+ type: boolean
+ campaign:
+ $ref: '#/components/schemas/UpdateCampaign'
+ required:
+ - campaign
+ - isVariantAssignmentExternal
+ type: object
+ UpdateExperimentVariant:
+ properties:
+ id:
+ example: 10
+ format: int64
+ type: integer
+ name:
+ example: Variant A
+ type: string
+ ruleset:
+ $ref: '#/components/schemas/NewRuleset'
+ weight:
+ example: 12
+ format: int64
+ type: integer
+ required:
+ - id
+ - name
+ - ruleset
+ - weight
+ type: object
+ UpdateExperimentVariantArray:
+ properties:
+ variants:
+ description: Array of experiment variants to update
+ items:
+ $ref: '#/components/schemas/UpdateExperimentVariant'
+ type: array
+ required:
+ - variants
+ type: object
+ NewExperimentVariant:
+ properties:
+ name:
+ description: The name of this variant.
+ minLength: 1
+ pattern: ^[A-Za-z](\w|\s)*$
+ type: string
+ weight:
+ example: 13
+ format: int64
+ type: integer
+ ruleset:
+ $ref: '#/components/schemas/NewRuleset'
+ isPrimary:
+ example: true
+ type: boolean
+ required:
+ - isPrimary
+ - name
+ - ruleset
+ type: object
+ NewExperimentVariantArray:
+ properties:
+ variants:
+ description: Array of experiment variants to create
+ items:
+ $ref: '#/components/schemas/NewExperimentVariant'
+ type: array
+ required:
+ - variants
+ type: object
+ ExperimentVariantResult:
+ properties:
+ variantId:
+ description: The ID of the variant.
+ example: 1
+ format: int64
+ type: integer
+ variantName:
+ description: The name of the variant.
+ example: Variant A
+ type: string
+ variantWeight:
+ description: The weight of the variant.
+ example: 50
+ format: int64
+ type: integer
+ totalRevenue:
+ description: The total, pre-discount value of all items purchased in a customer
+ session.
+ example: 100.0
+ type: number
+ sessionsCount:
+ description: The number of all closed sessions.
+ example: 100.0
+ type: number
+ avgItemsPerSession:
+ description: The number of items from sessions divided by the number of
+ sessions.
+ example: 100.0
+ type: number
+ avgSessionValue:
+ description: The average customer session value, calculated by dividing
+ the revenue value by the number of sessions.
+ example: 100.0
+ type: number
+ avgDiscountedSessionValue:
+ description: The average customer session value, calculated by dividing
+ the revenue value by the number of sessions.
+ example: 100.0
+ type: number
+ totalDiscounts:
+ description: The total value of discounts given for cart items in sessions.
+ example: 10.0
+ type: number
+ couponsCount:
+ description: The number of times a coupon was successfully redeemed in sessions.
+ example: 12.0
+ type: number
+ type: object
+ ExperimentVariantResultConfidence:
+ properties:
+ avgSessionValue:
+ description: The calculated confidence value of the average customer session
+ value.
+ example: 100.0
+ type: number
+ avgDiscountedSessionValue:
+ description: The calculated confidence value of the average customer discounted
+ session value.
+ example: 100.0
+ type: number
+ avgItemsPerSession:
+ description: The calculated confidence value of the number of items from
+ sessions value.
+ example: 100.0
+ type: number
+ required:
+ - avgDiscountedSessionValue
+ - avgItemsPerSession
+ - avgSessionValue
+ type: object
+ ExperimentResults:
+ properties:
+ variants:
+ items:
+ $ref: '#/components/schemas/ExperimentVariantResult'
+ type: array
+ confidence:
+ $ref: '#/components/schemas/ExperimentVariantResultConfidence'
+ required:
+ - confidence
+ type: object
CreateTemplateCampaign:
example:
campaignAttributesOverrides: '{}'
@@ -31305,6 +31858,7 @@ components:
- "7"
- "8"
- "9"
+ experimentId: 1
id: 4
state: enabled
reservecouponEffectCount: 9
@@ -31357,6 +31911,7 @@ components:
limit: 1000.0
action: createCoupon
activeRulesetId: 6
+ reevaluateOnReturn: true
userId: 388
awardedGiveawaysCount: 9
redeemedLoyaltyPointsEffectCount: 9
@@ -34608,6 +35163,7 @@ components:
selectedPriceType: member
campaignRevisionId: 1
ruleName: Give 20% discount
+ experimentId: 12
triggeredByCoupon: 4928
- rulesetId: 73
ruleIndex: 2
@@ -34624,6 +35180,7 @@ components:
selectedPriceType: member
campaignRevisionId: 1
ruleName: Give 20% discount
+ experimentId: 12
triggeredByCoupon: 4928
storeIntegrationId: STORE-001
created: 2020-06-10T09:05:27.993483Z
@@ -35699,31 +36256,82 @@ components:
- timeframe
- timeframeEndDate
type: object
+ InfluencingCampaignDetails:
+ description: Details about a campaign that influenced the final price.
+ example:
+ campaignId: 0
+ discountValue: 6.027456183070403
+ properties:
+ campaignId:
+ description: Identifier of the campaign that influenced the final price.
+ format: int64
+ type: integer
+ discountValue:
+ description: Discount value applied by the campaign.
+ type: number
+ required:
+ - campaignId
+ - discountValue
+ type: object
+ AdjustmentDetails:
+ description: Details about an applied price adjustment.
+ example:
+ selectedPriceType: member
+ value: 1.4658129805029452
+ referenceId: 68851723-e6fa-488f-ace9-112581e6c19b
+ properties:
+ referenceId:
+ description: The reference identifier used during an `ADD_PRICE_ADJUSTMENT`
+ action.
+ example: 68851723-e6fa-488f-ace9-112581e6c19b
+ type: string
+ selectedPriceType:
+ description: The selected price type for the SKU targeted by this effect.
+ example: member
+ type: string
+ value:
+ description: The value of the applied price adjustment.
+ type: number
+ required:
+ - referenceId
+ - selectedPriceType
+ - value
+ type: object
BestPriorPriceMetadata:
description: Auxiliary data for found price observation.
example:
- influencingCampaignIDs:
- - 0
- - 0
- adjustmentReferenceID: adjustmentReferenceID
+ adjustmentDetails:
+ selectedPriceType: member
+ value: 1.4658129805029452
+ referenceId: 68851723-e6fa-488f-ace9-112581e6c19b
+ influencingCampaignDetails:
+ - campaignId: 0
+ discountValue: 6.027456183070403
+ - campaignId: 0
+ discountValue: 6.027456183070403
properties:
- influencingCampaignIDs:
+ influencingCampaignDetails:
+ description: Details about campaigns that influenced the final price.
items:
- format: int64
- type: integer
+ $ref: '#/components/schemas/InfluencingCampaignDetails'
type: array
- adjustmentReferenceID:
- description: Identifier related to the `referenceId` used during a `ADD_PRICE_ADJUSTMENT`
- action using the [Sync cart item catalog endpoint](https://docs.talon.one/integration-api#tag/Catalogs/operation/syncCatalog).
- type: string
+ adjustmentDetails:
+ $ref: '#/components/schemas/AdjustmentDetails'
+ required:
+ - influencingCampaignDetails
type: object
BestPriorPrice:
example:
metadata:
- influencingCampaignIDs:
- - 0
- - 0
- adjustmentReferenceID: adjustmentReferenceID
+ adjustmentDetails:
+ selectedPriceType: member
+ value: 1.4658129805029452
+ referenceId: 68851723-e6fa-488f-ace9-112581e6c19b
+ influencingCampaignDetails:
+ - campaignId: 0
+ discountValue: 6.027456183070403
+ - campaignId: 0
+ discountValue: 6.027456183070403
observedAt: 2020-11-10T23:00:00Z
price: 99.99
contextId: Summer Sale 2007
@@ -36439,24 +37047,6 @@ components:
required:
- headers
type: object
- WebhookAuthenticationBase:
- properties:
- name:
- description: The name of the webhook authentication.
- example: My basic auth
- type: string
- type:
- enum:
- - basic
- - custom
- type: string
- data:
- type: object
- required:
- - data
- - name
- - type
- type: object
WebhookAuthentication:
properties:
createdBy:
@@ -36506,6 +37096,8 @@ components:
- type
- webhooks
type: object
+ WebhookAuthenticationBase:
+ type: object
MessageLogRequest:
description: Details of the request.
example:
@@ -39460,6 +40052,231 @@ components:
- created
- id
type: object
+ CatalogRule:
+ description: A rule template stored in a catalog entry. Rules in catalog entries
+ only contain title (no description, as description is at the catalog entry
+ level).
+ properties:
+ title:
+ description: A short description of the rule.
+ example: Give discount via coupon
+ type: string
+ bindings:
+ description: An array that provides objects with variable names (name) and
+ talang expressions to whose result they are bound (expression) during
+ rule evaluation. The order of the evaluation is decided by the position
+ in the array.
+ items:
+ $ref: '#/components/schemas/Binding'
+ type: array
+ condition:
+ description: A Talang expression that will be evaluated in the context of
+ the given event.
+ example:
+ - and
+ - - couponValid
+ items:
+ type: object
+ minItems: 1
+ type: array
+ 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
+ required:
+ - condition
+ - effects
+ - title
+ type: object
+ CartItemFilterTemplate:
+ description: A cart item filter template stored in a library entry. Cart item
+ filters in library entries only contain name (no description, as description
+ is at the library entry level).
+ properties:
+ name:
+ description: The name of the Application cart item filter.
+ example: Filter items by product
+ type: string
+ expression:
+ description: The Talang expression for the cart item filter.
+ example:
+ - filter
+ - - "."
+ - Session
+ - CartItems
+ - - - Item
+ - - catch
+ - false
+ - - =
+ - - "."
+ - Item
+ - Category
+ - Kitchen
+ items:
+ type: object
+ type: array
+ required:
+ - expression
+ - name
+ type: object
+ CollectionsCatalog:
+ properties:
+ id:
+ description: The internal ID of this collection.
+ format: int64
+ type: integer
+ accountId:
+ description: The ID of the account that owns this collection.
+ format: int64
+ type: integer
+ applicationId:
+ description: The ID of the Application that owns this collection.
+ format: int64
+ type: integer
+ title:
+ description: A short description of the collection catalog.
+ example: High value cart discount
+ type: string
+ description:
+ description: A longer, more detailed description of the collection catalog.
+ type: string
+ category:
+ description: Category used to group collection catalogs.
+ enum:
+ - promotions
+ - pricing
+ - loyalty
+ - custom
+ type: string
+ source:
+ description: Indicates whether the collection is custom or shipped by Talon.One.
+ enum:
+ - custom
+ - default
+ type: string
+ rules:
+ description: Array of rule templates in this collection catalog. Rules only
+ contain title (no description, as description is at the collection catalog
+ level).
+ items:
+ $ref: '#/components/schemas/CatalogRule'
+ type: array
+ cartItemFilters:
+ description: Array of cart item filter templates in this collection catalog.
+ Cart item filters only contain name (no description, as description is
+ at the collection catalog level).
+ items:
+ $ref: '#/components/schemas/CartItemFilterTemplate'
+ type: array
+ created:
+ description: Timestamp when the collection was created.
+ format: date-time
+ type: string
+ createdBy:
+ description: ID of the user who created the collection.
+ format: int64
+ type: integer
+ modified:
+ description: Timestamp when the collection was last updated.
+ format: date-time
+ type: string
+ modifiedBy:
+ description: ID of the user who last updated the collection.
+ format: int64
+ type: integer
+ required:
+ - accountId
+ - applicationId
+ - cartItemFilters
+ - category
+ - created
+ - createdBy
+ - id
+ - rules
+ - source
+ - title
+ type: object
+ NewCollectionsCatalog:
+ properties:
+ title:
+ description: The display name for the collection catalog.
+ example: Customer loyalty boost
+ type: string
+ description:
+ description: A longer, more detailed description of the collection catalog.
+ type: string
+ category:
+ default: custom
+ description: Category used to group collection catalogs.
+ enum:
+ - promotions
+ - pricing
+ - loyalty
+ - custom
+ type: string
+ rules:
+ description: Array of rules to store in this collection catalog. Rules should
+ only contain title (no description, as description is at the collection
+ catalog level). At least one rule or cart item filter is required.
+ items:
+ $ref: '#/components/schemas/CatalogRule'
+ type: array
+ cartItemFilters:
+ description: Array of cart item filters to store in this collection catalog.
+ If not provided, will be extracted from the rules. Cart item filters should
+ only contain name (no description, as description is at the collection
+ catalog level).
+ items:
+ $ref: '#/components/schemas/CartItemFilterTemplate'
+ type: array
+ required:
+ - title
+ type: object
+ UpdateCollectionsCatalog:
+ properties:
+ title:
+ description: The display name for the collection catalog.
+ type: string
+ description:
+ description: A longer, more detailed description of the collection catalog.
+ type: string
+ category:
+ description: Category used to group collection catalogs.
+ enum:
+ - promotions
+ - pricing
+ - loyalty
+ - custom
+ type: string
+ rules:
+ description: Replaces the stored rules. Rules should only contain title
+ (no description, as description is at the collection catalog level).
+ items:
+ $ref: '#/components/schemas/CatalogRule'
+ type: array
+ cartItemFilters:
+ description: Replaces the stored cart item filters. Cart item filters should
+ only contain name (no description, as description is at the collection
+ catalog level).
+ items:
+ $ref: '#/components/schemas/CartItemFilterTemplate'
+ type: array
+ type: object
ListCampaignStoreBudgetsStore:
example:
name: name
@@ -40126,6 +40943,17 @@ components:
type: object
CouponFailureSummary:
description: Summary of the reasons for coupon redemption failure.
+ example:
+ summary: Session total was less than the required total.
+ eventID: 1011
+ createdAt: 2021-07-20T21:59:00Z
+ profileID: a48f10dddb5c9493aad194e49bb9c1dac
+ language: en
+ id: 1
+ sessionID: "1"
+ couponCode: ABC123
+ status: rejected
+ updatedAt: 2021-07-20T21:59:00Z
properties:
id:
description: ID of the evaluation record.
@@ -40157,16 +40985,10 @@ components:
description: Language of the summary.
example: en
type: string
- shortSummary:
+ summary:
description: A summary of the reasons for coupon redemption failure.
example: Session total was less than the required total.
type: string
- longSummary:
- description: A detailed summary of the reasons for coupon redemption failure
- based on events of the entire session.
- example: There were 5 items in the cart with SKUs 1,2,3,4,5 and the total
- is $60 which is less than the required cart total.
- type: string
createdAt:
description: Timestamp when the request was made.
example: 2021-07-20T21:59:00Z
@@ -40183,9 +41005,8 @@ components:
- eventID
- id
- language
- - longSummary
- - shortSummary
- status
+ - summary
- updatedAt
type: object
GenerateCouponFailureDetailedSummary:
@@ -40250,45 +41071,31 @@ components:
- name
- summary
type: object
- SessionCoupons:
- properties:
- sessionIntegrationId:
- description: The integration ID of the session in which the coupons were
- applied.
- example: cc53e4fa-547f-4f5e-8333-76e05c381f67
- type: string
- couponCode:
- description: The coupon codes for which rejection reason is needed.
- example: SUMMER2025
- type: string
- required:
- - sessionIntegrationId
- type: object
- CouponRejections:
- properties:
- sessionDetails:
- description: Array containing details from session like session id and optional
- coupon code used in the session. Only the first 15 entries will be processed.
- items:
- $ref: '#/components/schemas/SessionCoupons'
- type: array
- applicationId:
- description: The application ID for which the coupon was used.
- example: 123
- format: int64
- type: integer
- language:
- description: The language the summary will be generated in.
- example: en
- type: string
- required:
- - applicationId
- - sessionDetails
- type: object
PrismaticFlowConfig:
properties:
ApiKey:
type: string
+ WorkerCount:
+ default: 10
+ description: Number of Prismatic workers to run in parallel for this flow
+ (maximum 500).
+ format: int64
+ maximum: 5E+2
+ minimum: 1
+ type: integer
+ MaxEventsPerMessage:
+ default: 1000
+ description: Maximum number of events to send in a single message to Prismatic.
+ format: int64
+ minimum: 1
+ type: integer
+ MaxRetries:
+ default: 10
+ description: Maximum number of retries for a Prismatic event before it is
+ ignored.
+ format: int64
+ minimum: 0
+ type: integer
required:
- ApiKey
type: object
@@ -40981,6 +41788,7 @@ components:
items:
$ref: '#/components/schemas/StrikethroughEffect'
type: array
+ x-omit-if-zero: true
required:
- catalogId
- evaluatedAt
@@ -43237,6 +44045,7 @@ components:
- "7"
- "8"
- "9"
+ experimentId: 1
id: 4
state: enabled
reservecouponEffectCount: 9
@@ -43289,6 +44098,7 @@ components:
limit: 1000.0
action: createCoupon
activeRulesetId: 6
+ reevaluateOnReturn: true
userId: 388
awardedGiveawaysCount: 9
redeemedLoyaltyPointsEffectCount: 9
@@ -43389,6 +44199,7 @@ components:
- "7"
- "8"
- "9"
+ experimentId: 1
id: 4
state: enabled
reservecouponEffectCount: 9
@@ -43441,6 +44252,7 @@ components:
limit: 1000.0
action: createCoupon
activeRulesetId: 6
+ reevaluateOnReturn: true
userId: 388
awardedGiveawaysCount: 9
redeemedLoyaltyPointsEffectCount: 9
@@ -44207,6 +45019,7 @@ components:
updatedBy: Jane Doe
created: 2020-06-10T09:05:27.993483Z
isUserFavorite: false
+ reevaluateOnReturn: true
userId: 388
tags:
- discount
@@ -44348,6 +45161,7 @@ components:
updatedBy: Jane Doe
created: 2020-06-10T09:05:27.993483Z
isUserFavorite: false
+ reevaluateOnReturn: true
userId: 388
tags:
- discount
@@ -45494,6 +46308,7 @@ components:
selectedPriceType: member
campaignRevisionId: 1
ruleName: Give 20% discount
+ experimentId: 12
triggeredByCoupon: 4928
- rulesetId: 73
ruleIndex: 2
@@ -45510,6 +46325,7 @@ components:
selectedPriceType: member
campaignRevisionId: 1
ruleName: Give 20% discount
+ experimentId: 12
triggeredByCoupon: 4928
storeIntegrationId: STORE-001
created: 2020-06-10T09:05:27.993483Z
@@ -45565,6 +46381,7 @@ components:
selectedPriceType: member
campaignRevisionId: 1
ruleName: Give 20% discount
+ experimentId: 12
triggeredByCoupon: 4928
- rulesetId: 73
ruleIndex: 2
@@ -45581,6 +46398,7 @@ components:
selectedPriceType: member
campaignRevisionId: 1
ruleName: Give 20% discount
+ experimentId: 12
triggeredByCoupon: 4928
storeIntegrationId: STORE-001
created: 2020-06-10T09:05:27.993483Z
@@ -46467,6 +47285,36 @@ components:
required:
- data
- hasMore
+ inline_response_200_50:
+ example:
+ data:
+ - summary: Session total was less than the required total.
+ eventID: 1011
+ createdAt: 2021-07-20T21:59:00Z
+ profileID: a48f10dddb5c9493aad194e49bb9c1dac
+ language: en
+ id: 1
+ sessionID: "1"
+ couponCode: ABC123
+ status: rejected
+ updatedAt: 2021-07-20T21:59:00Z
+ - summary: Session total was less than the required total.
+ eventID: 1011
+ createdAt: 2021-07-20T21:59:00Z
+ profileID: a48f10dddb5c9493aad194e49bb9c1dac
+ language: en
+ id: 1
+ sessionID: "1"
+ couponCode: ABC123
+ status: rejected
+ updatedAt: 2021-07-20T21:59:00Z
+ properties:
+ data:
+ items:
+ $ref: '#/components/schemas/CouponFailureSummary'
+ type: array
+ required:
+ - data
GenerateRuleTitle_rule:
properties:
effects:
@@ -46567,19 +47415,32 @@ components:
$ref: '#/components/schemas/AnalyticsDataPointWithTrend'
securitySchemes:
api_key_v1:
- description: "To authenticate with the Integration API, generate an API key\
- \ in the Campaign Manager\nand prefix it with `ApiKey-v1`.\n\nTo generate\
- \ an API key:\n\n1. Sign in to the Campaign Manager and open the Application\
- \ of your choice, or create one.\n1. Click **Settings** > **Integration API\
- \ Keys**.\n1. Click **Create API Key** and give it a name and an expiration\
- \ date, then click **Create API Key**.\n \n **Tip**: Avoid choosing expiration\
- \ dates that fall at the end of\n the year or during other high-traffic\
- \ periods.\n\n\nYou can now use the API key in the HTTP header, prefixing\
- \ it with `ApiKey-v1`:\n\n```\nAuthorization: ApiKey-v1 dbc644d33aa74d582bd9479c59e16f970fe13bf3\n\
- ```\n\nOr use it inside [an SDK](https://docs.talon.one/docs/dev/sdks/overview),\
- \ for example, with the JAVA SDK:\n\n```\niApi.getApiClient().setApiKeyPrefix(\"\
- ApiKey-v1\");\niApi.getApiClient().setApiKey(\"dbc644d33aa74d582bd9479c59e16f970fe13bf3\"\
- );\n```\n"
+ description: |
+ To authenticate with the Integration API, generate an API key in the Campaign Manager
+ and prefix it with `ApiKey-v1`.
+
+ To generate an API key:
+
+ 1. Sign in to the Campaign Manager and open the Application of your choice, or create one.
+ 1. Click **Settings** > **Integration API Keys**.
+ 1. Click **Create API Key** and give it a name and an expiration date, then click **Create API Key**.
+
+ **Tip**: Avoid choosing expiration dates that fall at the end of
+ the year or during other high-traffic periods.
+
+
+ You can now use the API key in the HTTP header, prefixing it with `ApiKey-v1`:
+
+ ```
+ Authorization: ApiKey-v1 dbc644d33aa74d582bd9479c59e16f970fe13bf3
+ ```
+
+ Or use it inside [an SDK](https://docs.talon.one/docs/dev/sdks/overview), for example, with the JAVA SDK:
+
+ ```
+ iApi.getApiClient().setApiKeyPrefix("ApiKey-v1");
+ iApi.getApiClient().setApiKey("dbc644d33aa74d582bd9479c59e16f970fe13bf3");
+ ```
in: header
name: Authorization
type: apiKey
@@ -46602,18 +47463,28 @@ components:
name: Authorization
type: apiKey
management_key:
- description: "The API key authentication gives you access to the endpoints selected\
- \ by the admin who created the key.\nUsing an API key is the recommended authentication\
- \ method.\n\nThe key must be generated by an admin and given to the developer\
- \ that requires it:\n\n1. Sign in to the Campaign Manager and click **Account**\
- \ > **Tools** > **Management API Keys**.\n1. Click **Create Key** and give\
- \ it a name.\n1. Set an expiration date. \n \n **Tip**: Avoid choosing\
- \ expiration dates that fall at the end of\n the year or during other high-traffic\
- \ periods.\n\n1. Choose the endpoints the key should give access to.\n1. Click\
- \ **Create Key**.\n1. Share it with your developer.\n\nThe developer can now\
- \ use the API key in the HTTP header, prefixing it with `ManagementKey-v1`:\n\
- \n```\nAuthorization: ManagementKey-v1 bd9479c59e16f9dbc644d33aa74d58270fe13bf3\n\
- ```\n"
+ description: |
+ The API key authentication gives you access to the endpoints selected by the admin who created the key.
+ Using an API key is the recommended authentication method.
+
+ The key must be generated by an admin and given to the developer that requires it:
+
+ 1. Sign in to the Campaign Manager and click **Account** > **Tools** > **Management API Keys**.
+ 1. Click **Create Key** and give it a name.
+ 1. Set an expiration date.
+
+ **Tip**: Avoid choosing expiration dates that fall at the end of
+ the year or during other high-traffic periods.
+
+ 1. Choose the endpoints the key should give access to.
+ 1. Click **Create Key**.
+ 1. Share it with your developer.
+
+ The developer can now use the API key in the HTTP header, prefixing it with `ManagementKey-v1`:
+
+ ```
+ Authorization: ManagementKey-v1 bd9479c59e16f9dbc644d33aa74d58270fe13bf3
+ ```
in: header
name: Authorization
type: apiKey
diff --git a/build.gradle b/build.gradle
index 979274c..745e216 100644
--- a/build.gradle
+++ b/build.gradle
@@ -3,7 +3,7 @@ apply plugin: 'eclipse'
apply plugin: 'java'
group = 'one.talon'
-version = '14.1.1'
+version = '14.2.0'
buildscript {
repositories {
diff --git a/build.sbt b/build.sbt
index 05d198a..ef6c515 100644
--- a/build.sbt
+++ b/build.sbt
@@ -2,7 +2,7 @@ lazy val root = (project in file(".")).
settings(
organization := "one.talon",
name := "talon-one-client",
- version := "14.1.1",
+ version := "14.2.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 341deb1..2589a0f 100644
--- a/docs/AdditionalCampaignProperties.md
+++ b/docs/AdditionalCampaignProperties.md
@@ -30,6 +30,7 @@ Name | Type | Description | Notes
**frontendState** | [**FrontendStateEnum**](#FrontendStateEnum) | The campaign state displayed in the Campaign Manager. |
**storesImported** | **Boolean** | Indicates whether the linked stores were imported via a CSV file. |
**valueMapsIds** | **List<Long>** | A list of value map IDs for the campaign. | [optional]
+**experimentId** | **Long** | The ID of the Experiment this Campaign is part of. | [optional]
diff --git a/docs/AdjustmentDetails.md b/docs/AdjustmentDetails.md
new file mode 100644
index 0000000..1352078
--- /dev/null
+++ b/docs/AdjustmentDetails.md
@@ -0,0 +1,15 @@
+
+
+# AdjustmentDetails
+
+Details about an applied price adjustment.
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**referenceId** | **String** | The reference identifier used during an `ADD_PRICE_ADJUSTMENT` action. |
+**selectedPriceType** | **String** | The selected price type for the SKU targeted by this effect. |
+**value** | [**BigDecimal**](BigDecimal.md) | The value of the applied price adjustment. |
+
+
+
diff --git a/docs/BaseCampaign.md b/docs/BaseCampaign.md
index cb1bf76..d1cf47a 100644
--- a/docs/BaseCampaign.md
+++ b/docs/BaseCampaign.md
@@ -14,6 +14,7 @@ Name | Type | Description | Notes
**state** | [**StateEnum**](#StateEnum) | A disabled or archived campaign is not evaluated for rules or coupons. |
**activeRulesetId** | **Long** | [ID of Ruleset](https://docs.talon.one/management-api#operation/getRulesets) this campaign applies on customer session evaluation. | [optional]
**tags** | **List<String>** | A list of tags for the campaign. |
+**reevaluateOnReturn** | **Boolean** | Indicates whether this campaign should be reevaluated when a customer returns an item. | [optional]
**features** | [**List<FeaturesEnum>**](#List<FeaturesEnum>) | The features enabled in this campaign. |
**couponSettings** | [**CodeGeneratorSettings**](CodeGeneratorSettings.md) | | [optional]
**referralSettings** | [**CodeGeneratorSettings**](CodeGeneratorSettings.md) | | [optional]
diff --git a/docs/BestPriorPriceMetadata.md b/docs/BestPriorPriceMetadata.md
index 16a5f46..a928533 100644
--- a/docs/BestPriorPriceMetadata.md
+++ b/docs/BestPriorPriceMetadata.md
@@ -7,8 +7,8 @@ Auxiliary data for found price observation.
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**influencingCampaignIDs** | **List<Long>** | | [optional]
-**adjustmentReferenceID** | **String** | Identifier related to the `referenceId` used during a `ADD_PRICE_ADJUSTMENT` action using the [Sync cart item catalog endpoint](https://docs.talon.one/integration-api#tag/Catalogs/operation/syncCatalog). | [optional]
+**influencingCampaignDetails** | [**List<InfluencingCampaignDetails>**](InfluencingCampaignDetails.md) | Details about campaigns that influenced the final price. |
+**adjustmentDetails** | [**AdjustmentDetails**](AdjustmentDetails.md) | | [optional]
diff --git a/docs/Campaign.md b/docs/Campaign.md
index b4db452..4ea226d 100644
--- a/docs/Campaign.md
+++ b/docs/Campaign.md
@@ -18,6 +18,7 @@ Name | Type | Description | Notes
**state** | [**StateEnum**](#StateEnum) | A disabled or archived campaign is not evaluated for rules or coupons. |
**activeRulesetId** | **Long** | [ID of Ruleset](https://docs.talon.one/management-api#operation/getRulesets) this campaign applies on customer session evaluation. | [optional]
**tags** | **List<String>** | A list of tags for the campaign. |
+**reevaluateOnReturn** | **Boolean** | Indicates whether this campaign should be reevaluated when a customer returns an item. |
**features** | [**List<FeaturesEnum>**](#List<FeaturesEnum>) | The features enabled in this campaign. |
**couponSettings** | [**CodeGeneratorSettings**](CodeGeneratorSettings.md) | | [optional]
**referralSettings** | [**CodeGeneratorSettings**](CodeGeneratorSettings.md) | | [optional]
@@ -49,6 +50,7 @@ Name | Type | Description | Notes
**frontendState** | [**FrontendStateEnum**](#FrontendStateEnum) | The campaign state displayed in the Campaign Manager. |
**storesImported** | **Boolean** | Indicates whether the linked stores were imported via a CSV file. |
**valueMapsIds** | **List<Long>** | A list of value map IDs for the campaign. | [optional]
+**experimentId** | **Long** | The ID of the Experiment this Campaign is part of. | [optional]
**revisionFrontendState** | [**RevisionFrontendStateEnum**](#RevisionFrontendStateEnum) | The campaign revision state displayed in the Campaign Manager. | [optional]
**activeRevisionId** | **Long** | ID of the revision that was last activated on this campaign. | [optional]
**activeRevisionVersionId** | **Long** | ID of the revision version that is active on the campaign. | [optional]
diff --git a/docs/CampaignTemplate.md b/docs/CampaignTemplate.md
index 143432e..981b042 100644
--- a/docs/CampaignTemplate.md
+++ b/docs/CampaignTemplate.md
@@ -18,6 +18,7 @@ Name | Type | Description | Notes
**state** | [**StateEnum**](#StateEnum) | Only campaign templates in 'available' state may be used to create campaigns. |
**activeRulesetId** | **Long** | The ID of the ruleset this campaign template will use. | [optional]
**tags** | **List<String>** | A list of tags for the campaign template. | [optional]
+**reevaluateOnReturn** | **Boolean** | Indicates whether campaigns created from this template should be reevaluated when a customer returns an item. |
**features** | [**List<FeaturesEnum>**](#List<FeaturesEnum>) | A list of features for the campaign template. | [optional]
**couponSettings** | [**CodeGeneratorSettings**](CodeGeneratorSettings.md) | | [optional]
**couponReservationSettings** | [**CampaignTemplateCouponReservationSettings**](CampaignTemplateCouponReservationSettings.md) | | [optional]
diff --git a/docs/CartItemFilterTemplate.md b/docs/CartItemFilterTemplate.md
new file mode 100644
index 0000000..27dd3ba
--- /dev/null
+++ b/docs/CartItemFilterTemplate.md
@@ -0,0 +1,14 @@
+
+
+# CartItemFilterTemplate
+
+A cart item filter template stored in a library entry. Cart item filters in library entries only contain name (no description, as description is at the library entry level).
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**name** | **String** | The name of the Application cart item filter. |
+**expression** | **List<Object>** | The Talang expression for the cart item filter. |
+
+
+
diff --git a/docs/CatalogRule.md b/docs/CatalogRule.md
new file mode 100644
index 0000000..8023f0f
--- /dev/null
+++ b/docs/CatalogRule.md
@@ -0,0 +1,16 @@
+
+
+# CatalogRule
+
+A rule template stored in a catalog entry. Rules in catalog entries only contain title (no description, as description is at the catalog entry level).
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**title** | **String** | A short description of the rule. |
+**bindings** | [**List<Binding>**](Binding.md) | An array that provides objects with variable names (name) and talang expressions to whose result they are bound (expression) during rule evaluation. The order of the evaluation is decided by the position in the array. | [optional]
+**condition** | **List<Object>** | A Talang expression that will be evaluated in the context of the given event. |
+**effects** | **List<Object>** | An array of effectful Talang expressions in arrays that will be evaluated when a rule matches. |
+
+
+
diff --git a/docs/CollectionsCatalog.md b/docs/CollectionsCatalog.md
new file mode 100644
index 0000000..566225c
--- /dev/null
+++ b/docs/CollectionsCatalog.md
@@ -0,0 +1,44 @@
+
+
+# CollectionsCatalog
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **Long** | The internal ID of this collection. |
+**accountId** | **Long** | The ID of the account that owns this collection. |
+**applicationId** | **Long** | The ID of the Application that owns this collection. |
+**title** | **String** | A short description of the collection catalog. |
+**description** | **String** | A longer, more detailed description of the collection catalog. | [optional]
+**category** | [**CategoryEnum**](#CategoryEnum) | Category used to group collection catalogs. |
+**source** | [**SourceEnum**](#SourceEnum) | Indicates whether the collection is custom or shipped by Talon.One. |
+**rules** | [**List<CatalogRule>**](CatalogRule.md) | Array of rule templates in this collection catalog. Rules only contain title (no description, as description is at the collection catalog level). |
+**cartItemFilters** | [**List<CartItemFilterTemplate>**](CartItemFilterTemplate.md) | Array of cart item filter templates in this collection catalog. Cart item filters only contain name (no description, as description is at the collection catalog level). |
+**created** | [**OffsetDateTime**](OffsetDateTime.md) | Timestamp when the collection was created. |
+**createdBy** | **Long** | ID of the user who created the collection. |
+**modified** | [**OffsetDateTime**](OffsetDateTime.md) | Timestamp when the collection was last updated. | [optional]
+**modifiedBy** | **Long** | ID of the user who last updated the collection. | [optional]
+
+
+
+## Enum: CategoryEnum
+
+Name | Value
+---- | -----
+PROMOTIONS | "promotions"
+PRICING | "pricing"
+LOYALTY | "loyalty"
+CUSTOM | "custom"
+
+
+
+## Enum: SourceEnum
+
+Name | Value
+---- | -----
+CUSTOM | "custom"
+DEFAULT | "default"
+
+
+
diff --git a/docs/CouponCreationJob.md b/docs/CouponCreationJob.md
index 1285802..35e77dc 100644
--- a/docs/CouponCreationJob.md
+++ b/docs/CouponCreationJob.md
@@ -19,6 +19,7 @@ Name | Type | Description | Notes
**numberOfCoupons** | **Long** | The number of new coupon codes to generate for the campaign. |
**couponSettings** | [**CodeGeneratorSettings**](CodeGeneratorSettings.md) | | [optional]
**attributes** | [**Object**](.md) | Arbitrary properties associated with coupons. |
+**isReservationMandatory** | **Boolean** | An indication of whether the code can be redeemed only if it has been reserved first. | [optional]
**batchId** | **String** | The batch ID coupons created by this job will bear. |
**status** | **String** | The current status of this request. Possible values: - `pending verification` - `pending` - `completed` - `failed` - `coupon pattern full` |
**createdAmount** | **Long** | The number of coupon codes that were already created for this request. |
diff --git a/docs/CouponFailureSummary.md b/docs/CouponFailureSummary.md
index 22355f1..4bb697d 100644
--- a/docs/CouponFailureSummary.md
+++ b/docs/CouponFailureSummary.md
@@ -14,8 +14,7 @@ Name | Type | Description | Notes
**status** | **String** | Status defines if the coupon code was applied or rejected. |
**couponCode** | **String** | Coupon code passed for evaluation. |
**language** | **String** | Language of the summary. |
-**shortSummary** | **String** | A summary of the reasons for coupon redemption failure. |
-**longSummary** | **String** | A detailed summary of the reasons for coupon redemption failure based on events of the entire session. |
+**summary** | **String** | A summary of the reasons for coupon redemption failure. |
**createdAt** | [**OffsetDateTime**](OffsetDateTime.md) | Timestamp when the request was made. |
**updatedAt** | [**OffsetDateTime**](OffsetDateTime.md) | Timestamp when the request was last updated. |
diff --git a/docs/CustomerSessionV2.md b/docs/CustomerSessionV2.md
index fdfdcee..19e8f12 100644
--- a/docs/CustomerSessionV2.md
+++ b/docs/CustomerSessionV2.md
@@ -19,6 +19,7 @@ Name | Type | Description | Notes
**loyaltyCards** | **List<String>** | Identifier of a loyalty card. | [optional]
**state** | [**StateEnum**](#StateEnum) | Indicates the current state of the session. Sessions can be created as `open` or `closed`. The state transitions are: 1. `open` → `closed` 2. `open` → `cancelled` 3. Either: - `closed` → `cancelled` (**only** via [Update customer session](https://docs.talon.one/integration-api#tag/Customer-sessions/operation/updateCustomerSessionV2)) or - `closed` → `partially_returned` (**only** via [Return cart items](https://docs.talon.one/integration-api#tag/Customer-sessions/operation/returnCartItems)) - `closed` → `open` (**only** via [Reopen customer session](https://docs.talon.one/integration-api#tag/Customer-sessions/operation/reopenCustomerSession)) 4. `partially_returned` → `cancelled` For more information, see [Customer session states](https://docs.talon.one/docs/dev/concepts/entities/customer-sessions). |
**cartItems** | [**List<CartItem>**](CartItem.md) | The items to add to this session. **Do not exceed 1000 items** and ensure the sum of all cart item's `quantity` **does not exceed 10.000** per request. |
+**experimentVariantAllocations** | [**List<ExperimentVariantAllocation>**](ExperimentVariantAllocation.md) | The experiment variant allocations to add to this session. | [optional]
**additionalCosts** | [**Map<String, AdditionalCost>**](AdditionalCost.md) | Use this property to set a value for the additional costs of this session, such as a shipping cost. They must be created in the Campaign Manager before you set them with this property. See [Managing additional costs](https://docs.talon.one/docs/product/account/dev-tools/managing-additional-costs). | [optional]
**identifiers** | **List<String>** | Session custom identifiers that you can set limits on or use inside your rules. For example, you can use IP addresses as identifiers to potentially identify devices and limit discounts abuse in case of customers creating multiple accounts. See the [tutorial](https://docs.talon.one/docs/dev/tutorials/using-identifiers). **Important**: Ensure the session contains an identifier by the time you close it if: - You [create a unique identifier budget](https://docs.talon.one/docs/product/campaigns/settings/managing-campaign-budgets/#budget-types) for your campaign. - Your campaign has [coupons](https://docs.talon.one/docs/product/campaigns/coupons/coupon-page-overview). - We recommend passing an anonymized (hashed) version of the identifier value. | [optional]
**attributes** | [**Object**](.md) | Use this property to set a value for the attributes of your choice. Attributes represent any information to attach to your session, like the shipping city. You can use [built-in attributes](https://docs.talon.one/docs/dev/concepts/attributes#built-in-attributes) or [custom ones](https://docs.talon.one/docs/dev/concepts/attributes#custom-attributes). Custom attributes must be created in the Campaign Manager before you set them with this property. |
diff --git a/docs/Effect.md b/docs/Effect.md
index 7a01c90..9922c6c 100644
--- a/docs/Effect.md
+++ b/docs/Effect.md
@@ -7,6 +7,7 @@ A generic effect that is fired by a triggered campaign. The props property will
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
+**experimentId** | **Long** | The ID of the experiment that campaign belongs to. | [optional]
**campaignId** | **Long** | The ID of the campaign that triggered this effect. |
**rulesetId** | **Long** | The ID of the ruleset that was active in the campaign when this effect was triggered. |
**ruleIndex** | **Long** | The position of the rule that triggered this effect within the ruleset. |
diff --git a/docs/EffectEntity.md b/docs/EffectEntity.md
index b16fd2e..6a3f73d 100644
--- a/docs/EffectEntity.md
+++ b/docs/EffectEntity.md
@@ -7,6 +7,7 @@ Definition of all properties that are present on all effects, independent of the
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
+**experimentId** | **Long** | The ID of the experiment that campaign belongs to. | [optional]
**campaignId** | **Long** | The ID of the campaign that triggered this effect. |
**rulesetId** | **Long** | The ID of the ruleset that was active in the campaign when this effect was triggered. |
**ruleIndex** | **Long** | The position of the rule that triggered this effect within the ruleset. |
diff --git a/docs/Experiment.md b/docs/Experiment.md
new file mode 100644
index 0000000..511093e
--- /dev/null
+++ b/docs/Experiment.md
@@ -0,0 +1,29 @@
+
+
+# Experiment
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **Long** | The internal ID of this entity. |
+**created** | [**OffsetDateTime**](OffsetDateTime.md) | The time this entity was created. |
+**applicationId** | **Long** | The ID of the Application that owns this entity. |
+**isVariantAssignmentExternal** | **Boolean** | The source of the assignment. - false - The assignment to the variant is handled internally by the Talon.Oneandled internally by the Talon.One. - true - The assignment to the variant handled externally. | [optional]
+**campaign** | [**Campaign**](Campaign.md) | | [optional]
+**activated** | [**OffsetDateTime**](OffsetDateTime.md) | The date and time the experiment was activated. | [optional]
+**state** | [**StateEnum**](#StateEnum) | A disabled experiment is not evaluated for rules or coupons. | [optional]
+**variants** | [**List<ExperimentVariant>**](ExperimentVariant.md) | | [optional]
+**deletedat** | [**OffsetDateTime**](OffsetDateTime.md) | The date and time the experiment was deleted. | [optional]
+
+
+
+## Enum: StateEnum
+
+Name | Value
+---- | -----
+ENABLED | "enabled"
+DISABLED | "disabled"
+
+
+
diff --git a/docs/ExperimentResults.md b/docs/ExperimentResults.md
new file mode 100644
index 0000000..178a362
--- /dev/null
+++ b/docs/ExperimentResults.md
@@ -0,0 +1,13 @@
+
+
+# ExperimentResults
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**variants** | [**List<ExperimentVariantResult>**](ExperimentVariantResult.md) | | [optional]
+**confidence** | [**ExperimentVariantResultConfidence**](ExperimentVariantResultConfidence.md) | |
+
+
+
diff --git a/docs/ExperimentVariant.md b/docs/ExperimentVariant.md
new file mode 100644
index 0000000..42933ff
--- /dev/null
+++ b/docs/ExperimentVariant.md
@@ -0,0 +1,18 @@
+
+
+# ExperimentVariant
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **Long** | The internal ID of this entity. |
+**created** | [**OffsetDateTime**](OffsetDateTime.md) | The time this entity was created. |
+**name** | **String** | |
+**experimentId** | **Long** | | [optional]
+**ruleset** | [**Ruleset**](Ruleset.md) | | [optional]
+**weight** | **Long** | | [optional]
+**isPrimary** | **Boolean** | |
+
+
+
diff --git a/docs/ExperimentVariantAllocation.md b/docs/ExperimentVariantAllocation.md
new file mode 100644
index 0000000..6b3a0ac
--- /dev/null
+++ b/docs/ExperimentVariantAllocation.md
@@ -0,0 +1,13 @@
+
+
+# ExperimentVariantAllocation
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**experimentID** | **Long** | The ID of the experiment. |
+**variantID** | **Long** | The ID of the variant to be allocated. |
+
+
+
diff --git a/docs/ExperimentVariantResult.md b/docs/ExperimentVariantResult.md
new file mode 100644
index 0000000..093984b
--- /dev/null
+++ b/docs/ExperimentVariantResult.md
@@ -0,0 +1,21 @@
+
+
+# ExperimentVariantResult
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**variantId** | **Long** | The ID of the variant. | [optional]
+**variantName** | **String** | The name of the variant. | [optional]
+**variantWeight** | **Long** | The weight of the variant. | [optional]
+**totalRevenue** | [**BigDecimal**](BigDecimal.md) | The total, pre-discount value of all items purchased in a customer session. | [optional]
+**sessionsCount** | [**BigDecimal**](BigDecimal.md) | The number of all closed sessions. | [optional]
+**avgItemsPerSession** | [**BigDecimal**](BigDecimal.md) | The number of items from sessions divided by the number of sessions. | [optional]
+**avgSessionValue** | [**BigDecimal**](BigDecimal.md) | The average customer session value, calculated by dividing the revenue value by the number of sessions. | [optional]
+**avgDiscountedSessionValue** | [**BigDecimal**](BigDecimal.md) | The average customer session value, calculated by dividing the revenue value by the number of sessions. | [optional]
+**totalDiscounts** | [**BigDecimal**](BigDecimal.md) | The total value of discounts given for cart items in sessions. | [optional]
+**couponsCount** | [**BigDecimal**](BigDecimal.md) | The number of times a coupon was successfully redeemed in sessions. | [optional]
+
+
+
diff --git a/docs/ExperimentVariantResultConfidence.md b/docs/ExperimentVariantResultConfidence.md
new file mode 100644
index 0000000..26c9ced
--- /dev/null
+++ b/docs/ExperimentVariantResultConfidence.md
@@ -0,0 +1,14 @@
+
+
+# ExperimentVariantResultConfidence
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**avgSessionValue** | [**BigDecimal**](BigDecimal.md) | The calculated confidence value of the average customer session value. |
+**avgDiscountedSessionValue** | [**BigDecimal**](BigDecimal.md) | The calculated confidence value of the average customer discounted session value. |
+**avgItemsPerSession** | [**BigDecimal**](BigDecimal.md) | The calculated confidence value of the number of items from sessions value. |
+
+
+
diff --git a/docs/FuncArgDef.md b/docs/FuncArgDef.md
index a48d2fa..b705620 100644
--- a/docs/FuncArgDef.md
+++ b/docs/FuncArgDef.md
@@ -20,6 +20,7 @@ BOOLEAN | "boolean"
NUMBER | "number"
TIME | "time"
_LIST_STRING_ | "(list string)"
+_LIST_NUMBER_ | "(list number)"
diff --git a/docs/InfluencingCampaignDetails.md b/docs/InfluencingCampaignDetails.md
new file mode 100644
index 0000000..e9275cb
--- /dev/null
+++ b/docs/InfluencingCampaignDetails.md
@@ -0,0 +1,14 @@
+
+
+# InfluencingCampaignDetails
+
+Details about a campaign that influenced the final price.
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**campaignId** | **Long** | Identifier of the campaign that influenced the final price. |
+**discountValue** | [**BigDecimal**](BigDecimal.md) | Discount value applied by the campaign. |
+
+
+
diff --git a/docs/InlineResponse20050.md b/docs/InlineResponse20050.md
index eca147a..8922ecb 100644
--- a/docs/InlineResponse20050.md
+++ b/docs/InlineResponse20050.md
@@ -6,8 +6,7 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**hasMore** | **Boolean** | | [optional]
-**data** | [**List<Achievement>**](Achievement.md) | |
+**data** | [**List<CouponFailureSummary>**](CouponFailureSummary.md) | |
diff --git a/docs/IntegrationApi.md b/docs/IntegrationApi.md
index eb90399..b200883 100644
--- a/docs/IntegrationApi.md
+++ b/docs/IntegrationApi.md
@@ -14,6 +14,7 @@ Method | HTTP request | Description
[**deleteAudienceV2**](IntegrationApi.md#deleteAudienceV2) | **DELETE** /v2/audiences/{audienceId} | Delete audience
[**deleteCouponReservation**](IntegrationApi.md#deleteCouponReservation) | **DELETE** /v1/coupon_reservations/{couponValue} | Delete coupon reservations
[**deleteCustomerData**](IntegrationApi.md#deleteCustomerData) | **DELETE** /v1/customer_data/{integrationId} | Delete customer's personal data
+[**deleteLoyaltyTransactionsFromLedgers**](IntegrationApi.md#deleteLoyaltyTransactionsFromLedgers) | **POST** /v1/loyalty_programs/{loyaltyProgramId}/profile/{integrationId}/delete_transactions | Delete customer's transactions from loyalty ledgers
[**generateLoyaltyCard**](IntegrationApi.md#generateLoyaltyCard) | **POST** /v1/loyalty_programs/{loyaltyProgramId}/cards | Generate loyalty card
[**getCustomerAchievementHistory**](IntegrationApi.md#getCustomerAchievementHistory) | **GET** /v1/customer_profiles/{integrationId}/achievements/{achievementId} | List customer's achievement history
[**getCustomerAchievements**](IntegrationApi.md#getCustomerAchievements) | **GET** /v1/customer_profiles/{integrationId}/achievements | List customer's available achievements
@@ -801,6 +802,84 @@ null (empty response body)
| **404** | Not found | - |
+## deleteLoyaltyTransactionsFromLedgers
+
+> deleteLoyaltyTransactionsFromLedgers(loyaltyProgramId, integrationId, body)
+
+Delete customer's transactions from loyalty ledgers
+
+Delete a customer's transactions in all loyalty ledgers or a specified ledger. **Note:** To retrieve loyalty transaction logs for a specific customer in a given loyalty program, use the [List customer's loyalty transactions](https://docs.talon.one/integration-api#tag/Loyalty/operation/getLoyaltyProgramProfileTransactions) endpoint.
+
+### Example
+
+```java
+// Import classes:
+import one.talon.ApiClient;
+import one.talon.ApiException;
+import one.talon.Configuration;
+import one.talon.auth.*;
+import one.talon.models.*;
+import one.talon.api.IntegrationApi;
+
+public class Example {
+ public static void main(String[] args) {
+ ApiClient defaultClient = Configuration.getDefaultApiClient();
+ defaultClient.setBasePath("https://yourbaseurl.talon.one");
+
+ // Configure API key authorization: api_key_v1
+ ApiKeyAuth api_key_v1 = (ApiKeyAuth) defaultClient.getAuthentication("api_key_v1");
+ api_key_v1.setApiKey("YOUR API KEY");
+ // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null)
+ //api_key_v1.setApiKeyPrefix("Token");
+
+ IntegrationApi apiInstance = new IntegrationApi(defaultClient);
+ Long loyaltyProgramId = 56L; // Long | Identifier of the profile-based loyalty program. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint.
+ String integrationId = "integrationId_example"; // String | The integration ID of the customer profile. You can get the `integrationId` of a profile using: - A customer session integration ID with the [Update customer session](https://docs.talon.one/integration-api#operation/updateCustomerSessionV2) endpoint. - The Management API with the [List application's customers](https://docs.talon.one/management-api#operation/getApplicationCustomers) endpoint.
+ DeleteLoyaltyTransactionsRequest body = new DeleteLoyaltyTransactionsRequest(); // DeleteLoyaltyTransactionsRequest |
+ try {
+ apiInstance.deleteLoyaltyTransactionsFromLedgers(loyaltyProgramId, integrationId, body);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling IntegrationApi#deleteLoyaltyTransactionsFromLedgers");
+ System.err.println("Status code: " + e.getCode());
+ System.err.println("Reason: " + e.getResponseBody());
+ System.err.println("Response headers: " + e.getResponseHeaders());
+ e.printStackTrace();
+ }
+ }
+}
+```
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **loyaltyProgramId** | **Long**| Identifier of the profile-based loyalty program. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. |
+ **integrationId** | **String**| The integration ID of the customer profile. You can get the `integrationId` of a profile using: - A customer session integration ID with the [Update customer session](https://docs.talon.one/integration-api#operation/updateCustomerSessionV2) endpoint. - The Management API with the [List application's customers](https://docs.talon.one/management-api#operation/getApplicationCustomers) endpoint. |
+ **body** | [**DeleteLoyaltyTransactionsRequest**](DeleteLoyaltyTransactionsRequest.md)| |
+
+### Return type cool
+
+null (empty response body)
+
+### Authorization
+
+[api_key_v1](../README.md#api_key_v1)
+
+### HTTP request headers
+
+- **Content-Type**: application/json
+- **Accept**: application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+| **204** | No Content | - |
+| **400** | Bad request | - |
+| **401** | Unauthorized | - |
+| **404** | Not found | - |
+
+
## generateLoyaltyCard
> LoyaltyCard generateLoyaltyCard(loyaltyProgramId, body)
diff --git a/docs/ManagementApi.md b/docs/ManagementApi.md
index 605ce03..004852a 100644
--- a/docs/ManagementApi.md
+++ b/docs/ManagementApi.md
@@ -59,6 +59,7 @@ Method | HTTP request | Description
[**exportLoyaltyLedger**](ManagementApi.md#exportLoyaltyLedger) | **GET** /v1/loyalty_programs/{loyaltyProgramId}/profile/{integrationId}/export_log | Export customer's transaction logs
[**exportPoolGiveaways**](ManagementApi.md#exportPoolGiveaways) | **GET** /v1/giveaways/pools/{poolId}/export | Export giveaway codes of a giveaway pool
[**exportReferrals**](ManagementApi.md#exportReferrals) | **GET** /v1/applications/{applicationId}/export_referrals | Export referrals
+[**generateCouponRejections**](ManagementApi.md#generateCouponRejections) | **GET** /v1/coupon_rejections | Summarize coupon redemption failures in session
[**getAccessLogsWithoutTotalCount**](ManagementApi.md#getAccessLogsWithoutTotalCount) | **GET** /v1/applications/{applicationId}/access_logs/no_total | Get access logs for Application
[**getAccount**](ManagementApi.md#getAccount) | **GET** /v1/accounts/{accountId} | Get account details
[**getAccountAnalytics**](ManagementApi.md#getAccountAnalytics) | **GET** /v1/accounts/{accountId}/analytics | Get account analytics
@@ -4467,7 +4468,7 @@ public class Example {
ManagementApi apiInstance = new ManagementApi(defaultClient);
String loyaltyProgramId = "loyaltyProgramId_example"; // String | The identifier for the loyalty program.
- 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.
+ 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. - This parameter does not affect the `currentTier` field in the CSV file, which shows the customer's tier at the time of export.
try {
String result = apiInstance.exportLoyaltyBalances(loyaltyProgramId, endDate);
System.out.println(result);
@@ -4488,7 +4489,7 @@ public class Example {
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**loyaltyProgramId** | **String**| The identifier for the loyalty program. |
- **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]
+ **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. - This parameter does not affect the `currentTier` field in the CSV file, which shows the customer's tier at the time of export. | [optional]
### Return type cool
@@ -5066,6 +5067,96 @@ Name | Type | Description | Notes
| **200** | OK | - |
+## generateCouponRejections
+
+> InlineResponse20050 generateCouponRejections(sessionIntegrationId, applicationId, language, couponCode)
+
+Summarize coupon redemption failures in session
+
+Create a summary of the reasons for coupon redemption failures in a given customer session.
+
+### Example
+
+```java
+// Import classes:
+import one.talon.ApiClient;
+import one.talon.ApiException;
+import one.talon.Configuration;
+import one.talon.auth.*;
+import one.talon.models.*;
+import one.talon.api.ManagementApi;
+
+public class Example {
+ public static void main(String[] args) {
+ ApiClient defaultClient = Configuration.getDefaultApiClient();
+ defaultClient.setBasePath("https://yourbaseurl.talon.one");
+
+ // Configure API key authorization: api_key_v1
+ ApiKeyAuth api_key_v1 = (ApiKeyAuth) defaultClient.getAuthentication("api_key_v1");
+ api_key_v1.setApiKey("YOUR API KEY");
+ // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null)
+ //api_key_v1.setApiKeyPrefix("Token");
+
+ // Configure API key authorization: management_key
+ ApiKeyAuth management_key = (ApiKeyAuth) defaultClient.getAuthentication("management_key");
+ management_key.setApiKey("YOUR API KEY");
+ // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null)
+ //management_key.setApiKeyPrefix("Token");
+
+ // Configure API key authorization: manager_auth
+ ApiKeyAuth manager_auth = (ApiKeyAuth) defaultClient.getAuthentication("manager_auth");
+ manager_auth.setApiKey("YOUR API KEY");
+ // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null)
+ //manager_auth.setApiKeyPrefix("Token");
+
+ ManagementApi apiInstance = new ManagementApi(defaultClient);
+ String sessionIntegrationId = "sessionIntegrationId_example"; // String | The integration ID of the session to summarize.
+ BigDecimal applicationId = new BigDecimal(); // BigDecimal | Filter results by Application ID.
+ String language = "language_example"; // String | The [ISO-639](https://en.wikipedia.org/wiki/List_of_ISO_639_language_codes) code of the language in which the summary will be generated.
+ String couponCode = "couponCode_example"; // String | The coupon code for which to get the rejection reason.
+ try {
+ InlineResponse20050 result = apiInstance.generateCouponRejections(sessionIntegrationId, applicationId, language, couponCode);
+ System.out.println(result);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling ManagementApi#generateCouponRejections");
+ 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
+------------- | ------------- | ------------- | -------------
+ **sessionIntegrationId** | **String**| The integration ID of the session to summarize. |
+ **applicationId** | **BigDecimal**| Filter results by Application ID. | [optional]
+ **language** | **String**| The [ISO-639](https://en.wikipedia.org/wiki/List_of_ISO_639_language_codes) code of the language in which the summary will be generated. | [optional]
+ **couponCode** | **String**| The coupon code for which to get the rejection reason. | [optional]
+
+### Return type cool
+
+[**InlineResponse20050**](InlineResponse20050.md)
+
+### Authorization
+
+[api_key_v1](../README.md#api_key_v1), [management_key](../README.md#management_key), [manager_auth](../README.md#manager_auth)
+
+### HTTP request headers
+
+- **Content-Type**: Not defined
+- **Accept**: application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+| **200** | OK | - |
+
+
## getAccessLogsWithoutTotalCount
> InlineResponse20022 getAccessLogsWithoutTotalCount(applicationId, rangeStart, rangeEnd, path, method, status, pageSize, skip, sort)
diff --git a/docs/NewCampaign.md b/docs/NewCampaign.md
index b165eae..9440e04 100644
--- a/docs/NewCampaign.md
+++ b/docs/NewCampaign.md
@@ -14,6 +14,7 @@ Name | Type | Description | Notes
**state** | [**StateEnum**](#StateEnum) | A disabled or archived campaign is not evaluated for rules or coupons. |
**activeRulesetId** | **Long** | [ID of Ruleset](https://docs.talon.one/management-api#operation/getRulesets) this campaign applies on customer session evaluation. | [optional]
**tags** | **List<String>** | A list of tags for the campaign. |
+**reevaluateOnReturn** | **Boolean** | Indicates whether this campaign should be reevaluated when a customer returns an item. | [optional]
**features** | [**List<FeaturesEnum>**](#List<FeaturesEnum>) | The features enabled in this campaign. |
**couponSettings** | [**CodeGeneratorSettings**](CodeGeneratorSettings.md) | | [optional]
**referralSettings** | [**CodeGeneratorSettings**](CodeGeneratorSettings.md) | | [optional]
diff --git a/docs/NewCampaignTemplate.md b/docs/NewCampaignTemplate.md
index 138feb5..5b5d1f1 100644
--- a/docs/NewCampaignTemplate.md
+++ b/docs/NewCampaignTemplate.md
@@ -13,6 +13,7 @@ Name | Type | Description | Notes
**couponAttributes** | [**Object**](.md) | The campaign attributes that coupons created from this template will have by default. | [optional]
**state** | [**StateEnum**](#StateEnum) | Only Campaign Templates in 'available' state may be used to create Campaigns. |
**tags** | **List<String>** | A list of tags for the campaign template. | [optional]
+**reevaluateOnReturn** | **Boolean** | Indicates whether campaigns created from this template should be reevaluated when a customer returns an item. | [optional]
**features** | [**List<FeaturesEnum>**](#List<FeaturesEnum>) | A list of features for the campaign template. | [optional]
**couponSettings** | [**CodeGeneratorSettings**](CodeGeneratorSettings.md) | | [optional]
**couponReservationSettings** | [**CampaignTemplateCouponReservationSettings**](CampaignTemplateCouponReservationSettings.md) | | [optional]
diff --git a/docs/NewCollectionsCatalog.md b/docs/NewCollectionsCatalog.md
new file mode 100644
index 0000000..ccadc5e
--- /dev/null
+++ b/docs/NewCollectionsCatalog.md
@@ -0,0 +1,27 @@
+
+
+# NewCollectionsCatalog
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**title** | **String** | The display name for the collection catalog. |
+**description** | **String** | A longer, more detailed description of the collection catalog. | [optional]
+**category** | [**CategoryEnum**](#CategoryEnum) | Category used to group collection catalogs. | [optional]
+**rules** | [**List<CatalogRule>**](CatalogRule.md) | Array of rules to store in this collection catalog. Rules should only contain title (no description, as description is at the collection catalog level). At least one rule or cart item filter is required. | [optional]
+**cartItemFilters** | [**List<CartItemFilterTemplate>**](CartItemFilterTemplate.md) | Array of cart item filters to store in this collection catalog. If not provided, will be extracted from the rules. Cart item filters should only contain name (no description, as description is at the collection catalog level). | [optional]
+
+
+
+## Enum: CategoryEnum
+
+Name | Value
+---- | -----
+PROMOTIONS | "promotions"
+PRICING | "pricing"
+LOYALTY | "loyalty"
+CUSTOM | "custom"
+
+
+
diff --git a/docs/NewCouponCreationJob.md b/docs/NewCouponCreationJob.md
index aca9ab0..25a8414 100644
--- a/docs/NewCouponCreationJob.md
+++ b/docs/NewCouponCreationJob.md
@@ -14,6 +14,7 @@ Name | Type | Description | Notes
**numberOfCoupons** | **Long** | The number of new coupon codes to generate for the campaign. |
**couponSettings** | [**CodeGeneratorSettings**](CodeGeneratorSettings.md) | | [optional]
**attributes** | [**Object**](.md) | Arbitrary properties associated with coupons. |
+**isReservationMandatory** | **Boolean** | An indication of whether the code can be redeemed only if it has been reserved first. | [optional]
diff --git a/docs/NewCustomerSessionV2.md b/docs/NewCustomerSessionV2.md
index dacef5f..fea87e4 100644
--- a/docs/NewCustomerSessionV2.md
+++ b/docs/NewCustomerSessionV2.md
@@ -15,6 +15,7 @@ Name | Type | Description | Notes
**loyaltyCards** | **List<String>** | Identifier of a loyalty card. | [optional]
**state** | [**StateEnum**](#StateEnum) | Indicates the current state of the session. Sessions can be created as `open` or `closed`. The state transitions are: 1. `open` → `closed` 2. `open` → `cancelled` 3. Either: - `closed` → `cancelled` (**only** via [Update customer session](https://docs.talon.one/integration-api#tag/Customer-sessions/operation/updateCustomerSessionV2)) or - `closed` → `partially_returned` (**only** via [Return cart items](https://docs.talon.one/integration-api#tag/Customer-sessions/operation/returnCartItems)) - `closed` → `open` (**only** via [Reopen customer session](https://docs.talon.one/integration-api#tag/Customer-sessions/operation/reopenCustomerSession)) 4. `partially_returned` → `cancelled` For more information, see [Customer session states](https://docs.talon.one/docs/dev/concepts/entities/customer-sessions). | [optional]
**cartItems** | [**List<CartItem>**](CartItem.md) | The items to add to this session. **Do not exceed 1000 items** and ensure the sum of all cart item's `quantity` **does not exceed 10.000** per request. | [optional]
+**experimentVariantAllocations** | [**List<ExperimentVariantAllocation>**](ExperimentVariantAllocation.md) | The experiment variant allocations to add to this session. | [optional]
**additionalCosts** | [**Map<String, AdditionalCost>**](AdditionalCost.md) | Use this property to set a value for the additional costs of this session, such as a shipping cost. They must be created in the Campaign Manager before you set them with this property. See [Managing additional costs](https://docs.talon.one/docs/product/account/dev-tools/managing-additional-costs). | [optional]
**identifiers** | **List<String>** | Session custom identifiers that you can set limits on or use inside your rules. For example, you can use IP addresses as identifiers to potentially identify devices and limit discounts abuse in case of customers creating multiple accounts. See the [tutorial](https://docs.talon.one/docs/dev/tutorials/using-identifiers). **Important**: Ensure the session contains an identifier by the time you close it if: - You [create a unique identifier budget](https://docs.talon.one/docs/product/campaigns/settings/managing-campaign-budgets/#budget-types) for your campaign. - Your campaign has [coupons](https://docs.talon.one/docs/product/campaigns/coupons/coupon-page-overview). - We recommend passing an anonymized (hashed) version of the identifier value. | [optional]
**attributes** | [**Object**](.md) | Use this property to set a value for the attributes of your choice. Attributes represent any information to attach to your session, like the shipping city. You can use [built-in attributes](https://docs.talon.one/docs/dev/concepts/attributes#built-in-attributes) or [custom ones](https://docs.talon.one/docs/dev/concepts/attributes#custom-attributes). Custom attributes must be created in the Campaign Manager before you set them with this property. | [optional]
diff --git a/docs/NewExperiment.md b/docs/NewExperiment.md
new file mode 100644
index 0000000..3830c67
--- /dev/null
+++ b/docs/NewExperiment.md
@@ -0,0 +1,24 @@
+
+
+# NewExperiment
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**isVariantAssignmentExternal** | **Boolean** | The source of the assignment. - false - The assignment to the variant is handled internally by the Talon.Oneandled internally by the Talon.One. - true - The assignment to the variant handled externally. |
+**activated** | [**OffsetDateTime**](OffsetDateTime.md) | The date and time the experiment was activated. | [optional]
+**state** | [**StateEnum**](#StateEnum) | A disabled experiment is not evaluated for rules or coupons. | [optional]
+**campaign** | [**NewCampaign**](NewCampaign.md) | |
+
+
+
+## Enum: StateEnum
+
+Name | Value
+---- | -----
+ENABLED | "enabled"
+DISABLED | "disabled"
+
+
+
diff --git a/docs/NewExperimentVariant.md b/docs/NewExperimentVariant.md
new file mode 100644
index 0000000..f3e5237
--- /dev/null
+++ b/docs/NewExperimentVariant.md
@@ -0,0 +1,15 @@
+
+
+# NewExperimentVariant
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**name** | **String** | The name of this variant. |
+**weight** | **Long** | | [optional]
+**ruleset** | [**NewRuleset**](NewRuleset.md) | |
+**isPrimary** | **Boolean** | |
+
+
+
diff --git a/docs/NewExperimentVariantArray.md b/docs/NewExperimentVariantArray.md
new file mode 100644
index 0000000..6e463ee
--- /dev/null
+++ b/docs/NewExperimentVariantArray.md
@@ -0,0 +1,12 @@
+
+
+# NewExperimentVariantArray
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**variants** | [**List<NewExperimentVariant>**](NewExperimentVariant.md) | Array of experiment variants to create |
+
+
+
diff --git a/docs/NewRevisionVersion.md b/docs/NewRevisionVersion.md
index c1e8104..176aaa3 100644
--- a/docs/NewRevisionVersion.md
+++ b/docs/NewRevisionVersion.md
@@ -11,12 +11,13 @@ Name | Type | Description | Notes
**endTime** | [**OffsetDateTime**](OffsetDateTime.md) | Timestamp when the campaign will become inactive. | [optional]
**attributes** | [**Object**](.md) | Arbitrary properties associated with this campaign. | [optional]
**description** | **String** | A detailed description of the campaign. | [optional]
-**activeRulesetId** | **Integer** | The ID of the ruleset this campaign template will use. | [optional]
-**tags** | **List<String>** | A list of tags for the campaign template. | [optional]
+**activeRulesetId** | **Integer** | The ID of the ruleset this campaign will use. | [optional]
+**tags** | **List<String>** | A list of tags for the campaign. | [optional]
**couponSettings** | [**CodeGeneratorSettings**](CodeGeneratorSettings.md) | | [optional]
**referralSettings** | [**CodeGeneratorSettings**](CodeGeneratorSettings.md) | | [optional]
**limits** | [**List<LimitConfig>**](LimitConfig.md) | The set of limits that will operate for this campaign version. | [optional]
-**features** | [**List<FeaturesEnum>**](#List<FeaturesEnum>) | A list of features for the campaign template. | [optional]
+**reevaluateOnReturn** | **Boolean** | Indicates whether this campaign should be reevaluated when a customer returns an item. | [optional]
+**features** | [**List<FeaturesEnum>**](#List<FeaturesEnum>) | A list of features for the campaign. | [optional]
diff --git a/docs/PrismaticFlowConfig.md b/docs/PrismaticFlowConfig.md
index 50ad9a2..7dee284 100644
--- a/docs/PrismaticFlowConfig.md
+++ b/docs/PrismaticFlowConfig.md
@@ -7,6 +7,9 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**apiKey** | **String** | |
+**workerCount** | **Long** | Number of Prismatic workers to run in parallel for this flow (maximum 500). | [optional]
+**maxEventsPerMessage** | **Long** | Maximum number of events to send in a single message to Prismatic. | [optional]
+**maxRetries** | **Long** | Maximum number of retries for a Prismatic event before it is ignored. | [optional]
diff --git a/docs/RevisionVersion.md b/docs/RevisionVersion.md
index 9e9f34b..8a3e4b4 100644
--- a/docs/RevisionVersion.md
+++ b/docs/RevisionVersion.md
@@ -19,12 +19,13 @@ Name | Type | Description | Notes
**endTime** | [**OffsetDateTime**](OffsetDateTime.md) | Timestamp when the campaign will become inactive. | [optional]
**attributes** | [**Object**](.md) | Arbitrary properties associated with this campaign. | [optional]
**description** | **String** | A detailed description of the campaign. | [optional]
-**activeRulesetId** | **Integer** | The ID of the ruleset this campaign template will use. | [optional]
-**tags** | **List<String>** | A list of tags for the campaign template. | [optional]
+**activeRulesetId** | **Integer** | The ID of the ruleset this campaign will use. | [optional]
+**tags** | **List<String>** | A list of tags for the campaign. | [optional]
**couponSettings** | [**CodeGeneratorSettings**](CodeGeneratorSettings.md) | | [optional]
**referralSettings** | [**CodeGeneratorSettings**](CodeGeneratorSettings.md) | | [optional]
**limits** | [**List<LimitConfig>**](LimitConfig.md) | The set of limits that will operate for this campaign version. | [optional]
-**features** | [**List<FeaturesEnum>**](#List<FeaturesEnum>) | A list of features for the campaign template. | [optional]
+**reevaluateOnReturn** | **Boolean** | Indicates whether this campaign should be reevaluated when a customer returns an item. | [optional]
+**features** | [**List<FeaturesEnum>**](#List<FeaturesEnum>) | A list of features for the campaign. | [optional]
diff --git a/docs/TemplateArgDef.md b/docs/TemplateArgDef.md
index c6317b6..656550c 100644
--- a/docs/TemplateArgDef.md
+++ b/docs/TemplateArgDef.md
@@ -25,6 +25,7 @@ BOOLEAN | "boolean"
NUMBER | "number"
TIME | "time"
_LIST_STRING_ | "(list string)"
+_LIST_NUMBER_ | "(list number)"
diff --git a/docs/UpdateCampaign.md b/docs/UpdateCampaign.md
index 5a9a231..f1bcdc7 100644
--- a/docs/UpdateCampaign.md
+++ b/docs/UpdateCampaign.md
@@ -14,6 +14,7 @@ Name | Type | Description | Notes
**state** | [**StateEnum**](#StateEnum) | A disabled or archived campaign is not evaluated for rules or coupons. | [optional]
**activeRulesetId** | **Long** | [ID of Ruleset](https://docs.talon.one/management-api#operation/getRulesets) this campaign applies on customer session evaluation. | [optional]
**tags** | **List<String>** | A list of tags for the campaign. |
+**reevaluateOnReturn** | **Boolean** | Indicates whether this campaign should be reevaluated when a customer returns an item. | [optional]
**features** | [**List<FeaturesEnum>**](#List<FeaturesEnum>) | A list of features for the campaign. |
**couponSettings** | [**CodeGeneratorSettings**](CodeGeneratorSettings.md) | | [optional]
**referralSettings** | [**CodeGeneratorSettings**](CodeGeneratorSettings.md) | | [optional]
diff --git a/docs/UpdateCampaignTemplate.md b/docs/UpdateCampaignTemplate.md
index 2036e4a..b81bc83 100644
--- a/docs/UpdateCampaignTemplate.md
+++ b/docs/UpdateCampaignTemplate.md
@@ -14,6 +14,7 @@ Name | Type | Description | Notes
**state** | [**StateEnum**](#StateEnum) | Only campaign templates in 'available' state may be used to create campaigns. |
**activeRulesetId** | **Long** | The ID of the ruleset this campaign template will use. | [optional]
**tags** | **List<String>** | A list of tags for the campaign template. | [optional]
+**reevaluateOnReturn** | **Boolean** | Indicates whether campaigns created from this template should be reevaluated when a customer returns an item. | [optional]
**features** | [**List<FeaturesEnum>**](#List<FeaturesEnum>) | A list of features for the campaign template. | [optional]
**couponSettings** | [**CodeGeneratorSettings**](CodeGeneratorSettings.md) | | [optional]
**couponReservationSettings** | [**CampaignTemplateCouponReservationSettings**](CampaignTemplateCouponReservationSettings.md) | | [optional]
diff --git a/docs/UpdateCollectionsCatalog.md b/docs/UpdateCollectionsCatalog.md
new file mode 100644
index 0000000..711b815
--- /dev/null
+++ b/docs/UpdateCollectionsCatalog.md
@@ -0,0 +1,27 @@
+
+
+# UpdateCollectionsCatalog
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**title** | **String** | The display name for the collection catalog. | [optional]
+**description** | **String** | A longer, more detailed description of the collection catalog. | [optional]
+**category** | [**CategoryEnum**](#CategoryEnum) | Category used to group collection catalogs. | [optional]
+**rules** | [**List<CatalogRule>**](CatalogRule.md) | Replaces the stored rules. Rules should only contain title (no description, as description is at the collection catalog level). | [optional]
+**cartItemFilters** | [**List<CartItemFilterTemplate>**](CartItemFilterTemplate.md) | Replaces the stored cart item filters. Cart item filters should only contain name (no description, as description is at the collection catalog level). | [optional]
+
+
+
+## Enum: CategoryEnum
+
+Name | Value
+---- | -----
+PROMOTIONS | "promotions"
+PRICING | "pricing"
+LOYALTY | "loyalty"
+CUSTOM | "custom"
+
+
+
diff --git a/docs/UpdateExperiment.md b/docs/UpdateExperiment.md
new file mode 100644
index 0000000..97ce33b
--- /dev/null
+++ b/docs/UpdateExperiment.md
@@ -0,0 +1,13 @@
+
+
+# UpdateExperiment
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**isVariantAssignmentExternal** | **Boolean** | The source of the assignment. - false - The assignment to the variant is handled internally by the Talon.Oneandled internally by the Talon.One. - true - The assignment to the variant handled externally. |
+**campaign** | [**UpdateCampaign**](UpdateCampaign.md) | |
+
+
+
diff --git a/docs/UpdateExperimentVariant.md b/docs/UpdateExperimentVariant.md
new file mode 100644
index 0000000..a673bb1
--- /dev/null
+++ b/docs/UpdateExperimentVariant.md
@@ -0,0 +1,15 @@
+
+
+# UpdateExperimentVariant
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **Long** | |
+**name** | **String** | |
+**ruleset** | [**NewRuleset**](NewRuleset.md) | |
+**weight** | **Long** | |
+
+
+
diff --git a/docs/UpdateExperimentVariantArray.md b/docs/UpdateExperimentVariantArray.md
new file mode 100644
index 0000000..a6cc009
--- /dev/null
+++ b/docs/UpdateExperimentVariantArray.md
@@ -0,0 +1,12 @@
+
+
+# UpdateExperimentVariantArray
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**variants** | [**List<UpdateExperimentVariant>**](UpdateExperimentVariant.md) | Array of experiment variants to update |
+
+
+
diff --git a/pom.xml b/pom.xml
index aa53fa2..d80024d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -5,7 +5,7 @@
talon-one-clientjartalon-one-client
- 14.1.1
+ 14.2.0https://github.com/talon-one/maven-artefactsTalon.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 4b67242..aa1ae6f 100644
--- a/src/main/java/one/talon/ApiClient.java
+++ b/src/main/java/one/talon/ApiClient.java
@@ -132,7 +132,7 @@ private void init() {
json = new JSON();
// Set default User-Agent.
- setUserAgent("OpenAPI-Generator/14.1.1/java");
+ setUserAgent("OpenAPI-Generator/14.2.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 ee38f00..ceb9b24 100644
--- a/src/main/java/one/talon/api/IntegrationApi.java
+++ b/src/main/java/one/talon/api/IntegrationApi.java
@@ -40,6 +40,7 @@
import one.talon.model.CustomerProfileAudienceRequest;
import one.talon.model.CustomerProfileIntegrationRequestV2;
import one.talon.model.CustomerProfileIntegrationResponseV2;
+import one.talon.model.DeleteLoyaltyTransactionsRequest;
import one.talon.model.ErrorResponse;
import one.talon.model.ErrorResponseWithStatus;
import one.talon.model.GenerateLoyaltyCard;
@@ -1317,6 +1318,144 @@ public okhttp3.Call deleteCustomerDataAsync(String integrationId, final ApiCallb
localVarApiClient.executeAsync(localVarCall, _callback);
return localVarCall;
}
+ /**
+ * Build call for deleteLoyaltyTransactionsFromLedgers
+ * @param loyaltyProgramId Identifier of the profile-based loyalty program. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. (required)
+ * @param integrationId The integration ID of the customer profile. You can get the `integrationId` of a profile using: - A customer session integration ID with the [Update customer session](https://docs.talon.one/integration-api#operation/updateCustomerSessionV2) endpoint. - The Management API with the [List application's customers](https://docs.talon.one/management-api#operation/getApplicationCustomers) endpoint. (required)
+ * @param 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
+
204
No Content
-
+
400
Bad request
-
+
401
Unauthorized
-
+
404
Not found
-
+
+ */
+ public okhttp3.Call deleteLoyaltyTransactionsFromLedgersCall(Long loyaltyProgramId, String integrationId, DeleteLoyaltyTransactionsRequest body, final ApiCallback _callback) throws ApiException {
+ Object localVarPostBody = body;
+
+ // create path and map variables
+ String localVarPath = "/v1/loyalty_programs/{loyaltyProgramId}/profile/{integrationId}/delete_transactions"
+ .replaceAll("\\{" + "loyaltyProgramId" + "\\}", localVarApiClient.escapeString(loyaltyProgramId.toString()))
+ .replaceAll("\\{" + "integrationId" + "\\}", localVarApiClient.escapeString(integrationId.toString()));
+
+ List localVarQueryParams = new ArrayList();
+ List localVarCollectionQueryParams = new ArrayList();
+ Map localVarHeaderParams = new HashMap();
+ Map localVarCookieParams = new HashMap();
+ Map localVarFormParams = new HashMap();
+ final String[] localVarAccepts = {
+ "application/json"
+ };
+ final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts);
+ if (localVarAccept != null) {
+ localVarHeaderParams.put("Accept", localVarAccept);
+ }
+
+ final String[] localVarContentTypes = {
+ "application/json"
+ };
+ final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes);
+ localVarHeaderParams.put("Content-Type", localVarContentType);
+
+ String[] localVarAuthNames = new String[] { "api_key_v1" };
+ return localVarApiClient.buildCall(localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback);
+ }
+
+ @SuppressWarnings("rawtypes")
+ private okhttp3.Call deleteLoyaltyTransactionsFromLedgersValidateBeforeCall(Long loyaltyProgramId, String integrationId, DeleteLoyaltyTransactionsRequest body, final ApiCallback _callback) throws ApiException {
+
+ // verify the required parameter 'loyaltyProgramId' is set
+ if (loyaltyProgramId == null) {
+ throw new ApiException("Missing the required parameter 'loyaltyProgramId' when calling deleteLoyaltyTransactionsFromLedgers(Async)");
+ }
+
+ // verify the required parameter 'integrationId' is set
+ if (integrationId == null) {
+ throw new ApiException("Missing the required parameter 'integrationId' when calling deleteLoyaltyTransactionsFromLedgers(Async)");
+ }
+
+ // verify the required parameter 'body' is set
+ if (body == null) {
+ throw new ApiException("Missing the required parameter 'body' when calling deleteLoyaltyTransactionsFromLedgers(Async)");
+ }
+
+
+ okhttp3.Call localVarCall = deleteLoyaltyTransactionsFromLedgersCall(loyaltyProgramId, integrationId, body, _callback);
+ return localVarCall;
+
+ }
+
+ /**
+ * Delete customer's transactions from loyalty ledgers
+ * Delete a customer's transactions in all loyalty ledgers or a specified ledger. **Note:** To retrieve loyalty transaction logs for a specific customer in a given loyalty program, use the [List customer's loyalty transactions](https://docs.talon.one/integration-api#tag/Loyalty/operation/getLoyaltyProgramProfileTransactions) endpoint.
+ * @param loyaltyProgramId Identifier of the profile-based loyalty program. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. (required)
+ * @param integrationId The integration ID of the customer profile. You can get the `integrationId` of a profile using: - A customer session integration ID with the [Update customer session](https://docs.talon.one/integration-api#operation/updateCustomerSessionV2) endpoint. - The Management API with the [List application's customers](https://docs.talon.one/management-api#operation/getApplicationCustomers) endpoint. (required)
+ * @param body (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
-
+
404
Not found
-
+
+ */
+ public void deleteLoyaltyTransactionsFromLedgers(Long loyaltyProgramId, String integrationId, DeleteLoyaltyTransactionsRequest body) throws ApiException {
+ deleteLoyaltyTransactionsFromLedgersWithHttpInfo(loyaltyProgramId, integrationId, body);
+ }
+
+ /**
+ * Delete customer's transactions from loyalty ledgers
+ * Delete a customer's transactions in all loyalty ledgers or a specified ledger. **Note:** To retrieve loyalty transaction logs for a specific customer in a given loyalty program, use the [List customer's loyalty transactions](https://docs.talon.one/integration-api#tag/Loyalty/operation/getLoyaltyProgramProfileTransactions) endpoint.
+ * @param loyaltyProgramId Identifier of the profile-based loyalty program. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. (required)
+ * @param integrationId The integration ID of the customer profile. You can get the `integrationId` of a profile using: - A customer session integration ID with the [Update customer session](https://docs.talon.one/integration-api#operation/updateCustomerSessionV2) endpoint. - The Management API with the [List application's customers](https://docs.talon.one/management-api#operation/getApplicationCustomers) endpoint. (required)
+ * @param body (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
-
+
404
Not found
-
+
+ */
+ public ApiResponse deleteLoyaltyTransactionsFromLedgersWithHttpInfo(Long loyaltyProgramId, String integrationId, DeleteLoyaltyTransactionsRequest body) throws ApiException {
+ okhttp3.Call localVarCall = deleteLoyaltyTransactionsFromLedgersValidateBeforeCall(loyaltyProgramId, integrationId, body, null);
+ return localVarApiClient.execute(localVarCall);
+ }
+
+ /**
+ * Delete customer's transactions from loyalty ledgers (asynchronously)
+ * Delete a customer's transactions in all loyalty ledgers or a specified ledger. **Note:** To retrieve loyalty transaction logs for a specific customer in a given loyalty program, use the [List customer's loyalty transactions](https://docs.talon.one/integration-api#tag/Loyalty/operation/getLoyaltyProgramProfileTransactions) endpoint.
+ * @param loyaltyProgramId Identifier of the profile-based loyalty program. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. (required)
+ * @param integrationId The integration ID of the customer profile. You can get the `integrationId` of a profile using: - A customer session integration ID with the [Update customer session](https://docs.talon.one/integration-api#operation/updateCustomerSessionV2) endpoint. - The Management API with the [List application's customers](https://docs.talon.one/management-api#operation/getApplicationCustomers) endpoint. (required)
+ * @param 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
+
204
No Content
-
+
400
Bad request
-
+
401
Unauthorized
-
+
404
Not found
-
+
+ */
+ public okhttp3.Call deleteLoyaltyTransactionsFromLedgersAsync(Long loyaltyProgramId, String integrationId, DeleteLoyaltyTransactionsRequest body, final ApiCallback _callback) throws ApiException {
+
+ okhttp3.Call localVarCall = deleteLoyaltyTransactionsFromLedgersValidateBeforeCall(loyaltyProgramId, integrationId, body, _callback);
+ localVarApiClient.executeAsync(localVarCall, _callback);
+ return localVarCall;
+ }
/**
* Build call for generateLoyaltyCard
* @param loyaltyProgramId Identifier of the card-based loyalty program containing the loyalty card. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. (required)
diff --git a/src/main/java/one/talon/api/ManagementApi.java b/src/main/java/one/talon/api/ManagementApi.java
index 7b4c699..f162281 100644
--- a/src/main/java/one/talon/api/ManagementApi.java
+++ b/src/main/java/one/talon/api/ManagementApi.java
@@ -98,6 +98,7 @@
import one.talon.model.InlineResponse20047;
import one.talon.model.InlineResponse20048;
import one.talon.model.InlineResponse20049;
+import one.talon.model.InlineResponse20050;
import one.talon.model.InlineResponse2007;
import one.talon.model.InlineResponse2008;
import one.talon.model.InlineResponse2009;
@@ -6429,7 +6430,7 @@ public okhttp3.Call exportLoyaltyBalanceAsync(String loyaltyProgramId, OffsetDat
/**
* Build call for exportLoyaltyBalances
* @param loyaltyProgramId The identifier for the loyalty program. (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 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. - This parameter does not affect the `currentTier` field in the CSV file, which shows the customer's tier at the time of export. (optional)
* @param _callback Callback for upload/download progress
* @return Call to execute
* @throws ApiException If fail to serialize the request body object
@@ -6493,7 +6494,7 @@ private okhttp3.Call exportLoyaltyBalancesValidateBeforeCall(String loyaltyProgr
* Export customer loyalty balances
* Download a CSV file containing the balance of each customer in the loyalty program. **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 generated file can contain the following columns: - `loyaltyProgramID`: The ID of the loyalty program. - `loyaltySubledger`: The name of the subdleger, when applicatble. - `profileIntegrationID`: The integration ID of the customer profile. - `currentBalance`: The current point balance. - `pendingBalance`: The number of pending points. - `expiredBalance`: The number of expired points. - `spentBalance`: The number of spent points. - `currentTier`: The tier that the customer is in at the time of the export.
* @param loyaltyProgramId The identifier for the loyalty program. (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 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. - This parameter does not affect the `currentTier` field in the CSV file, which shows the customer's tier at the time of export. (optional)
* @return String
* @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body
* @http.response.details
@@ -6513,7 +6514,7 @@ public String exportLoyaltyBalances(String loyaltyProgramId, OffsetDateTime endD
* Export customer loyalty balances
* Download a CSV file containing the balance of each customer in the loyalty program. **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 generated file can contain the following columns: - `loyaltyProgramID`: The ID of the loyalty program. - `loyaltySubledger`: The name of the subdleger, when applicatble. - `profileIntegrationID`: The integration ID of the customer profile. - `currentBalance`: The current point balance. - `pendingBalance`: The number of pending points. - `expiredBalance`: The number of expired points. - `spentBalance`: The number of spent points. - `currentTier`: The tier that the customer is in at the time of the export.
* @param loyaltyProgramId The identifier for the loyalty program. (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 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. - This parameter does not affect the `currentTier` field in the CSV file, which shows the customer's tier at the time of export. (optional)
* @return ApiResponse<String>
* @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body
* @http.response.details
@@ -6534,7 +6535,7 @@ public ApiResponse exportLoyaltyBalancesWithHttpInfo(String loyaltyProgr
* Export customer loyalty balances (asynchronously)
* Download a CSV file containing the balance of each customer in the loyalty program. **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 generated file can contain the following columns: - `loyaltyProgramID`: The ID of the loyalty program. - `loyaltySubledger`: The name of the subdleger, when applicatble. - `profileIntegrationID`: The integration ID of the customer profile. - `currentBalance`: The current point balance. - `pendingBalance`: The number of pending points. - `expiredBalance`: The number of expired points. - `spentBalance`: The number of spent points. - `currentTier`: The tier that the customer is in at the time of the export.
* @param loyaltyProgramId The identifier for the loyalty program. (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 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. - This parameter does not affect the `currentTier` field in the CSV file, which shows the customer's tier at the time of export. (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
@@ -7447,6 +7448,144 @@ public okhttp3.Call exportReferralsAsync(Long applicationId, BigDecimal campaign
localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback);
return localVarCall;
}
+ /**
+ * Build call for generateCouponRejections
+ * @param sessionIntegrationId The integration ID of the session to summarize. (required)
+ * @param applicationId Filter results by Application ID. (optional)
+ * @param language The [ISO-639](https://en.wikipedia.org/wiki/List_of_ISO_639_language_codes) code of the language in which the summary will be generated. (optional)
+ * @param couponCode The coupon code for which to get the rejection reason. (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
-
+
+ */
+ public okhttp3.Call generateCouponRejectionsCall(String sessionIntegrationId, BigDecimal applicationId, String language, String couponCode, final ApiCallback _callback) throws ApiException {
+ Object localVarPostBody = null;
+
+ // create path and map variables
+ String localVarPath = "/v1/coupon_rejections";
+
+ List localVarQueryParams = new ArrayList();
+ List localVarCollectionQueryParams = new ArrayList();
+ if (sessionIntegrationId != null) {
+ localVarQueryParams.addAll(localVarApiClient.parameterToPair("sessionIntegrationId", sessionIntegrationId));
+ }
+
+ if (applicationId != null) {
+ localVarQueryParams.addAll(localVarApiClient.parameterToPair("applicationId", applicationId));
+ }
+
+ if (language != null) {
+ localVarQueryParams.addAll(localVarApiClient.parameterToPair("language", language));
+ }
+
+ if (couponCode != null) {
+ localVarQueryParams.addAll(localVarApiClient.parameterToPair("couponCode", couponCode));
+ }
+
+ Map localVarHeaderParams = new HashMap();
+ Map localVarCookieParams = new HashMap();
+ Map localVarFormParams = new HashMap();
+ final String[] localVarAccepts = {
+ "application/json"
+ };
+ final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts);
+ if (localVarAccept != null) {
+ localVarHeaderParams.put("Accept", localVarAccept);
+ }
+
+ final String[] localVarContentTypes = {
+
+ };
+ final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes);
+ localVarHeaderParams.put("Content-Type", localVarContentType);
+
+ String[] localVarAuthNames = new String[] { "api_key_v1", "management_key", "manager_auth" };
+ return localVarApiClient.buildCall(localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback);
+ }
+
+ @SuppressWarnings("rawtypes")
+ private okhttp3.Call generateCouponRejectionsValidateBeforeCall(String sessionIntegrationId, BigDecimal applicationId, String language, String couponCode, final ApiCallback _callback) throws ApiException {
+
+ // verify the required parameter 'sessionIntegrationId' is set
+ if (sessionIntegrationId == null) {
+ throw new ApiException("Missing the required parameter 'sessionIntegrationId' when calling generateCouponRejections(Async)");
+ }
+
+
+ okhttp3.Call localVarCall = generateCouponRejectionsCall(sessionIntegrationId, applicationId, language, couponCode, _callback);
+ return localVarCall;
+
+ }
+
+ /**
+ * Summarize coupon redemption failures in session
+ * Create a summary of the reasons for coupon redemption failures in a given customer session.
+ * @param sessionIntegrationId The integration ID of the session to summarize. (required)
+ * @param applicationId Filter results by Application ID. (optional)
+ * @param language The [ISO-639](https://en.wikipedia.org/wiki/List_of_ISO_639_language_codes) code of the language in which the summary will be generated. (optional)
+ * @param couponCode The coupon code for which to get the rejection reason. (optional)
+ * @return InlineResponse20050
+ * @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 InlineResponse20050 generateCouponRejections(String sessionIntegrationId, BigDecimal applicationId, String language, String couponCode) throws ApiException {
+ ApiResponse localVarResp = generateCouponRejectionsWithHttpInfo(sessionIntegrationId, applicationId, language, couponCode);
+ return localVarResp.getData();
+ }
+
+ /**
+ * Summarize coupon redemption failures in session
+ * Create a summary of the reasons for coupon redemption failures in a given customer session.
+ * @param sessionIntegrationId The integration ID of the session to summarize. (required)
+ * @param applicationId Filter results by Application ID. (optional)
+ * @param language The [ISO-639](https://en.wikipedia.org/wiki/List_of_ISO_639_language_codes) code of the language in which the summary will be generated. (optional)
+ * @param couponCode The coupon code for which to get the rejection reason. (optional)
+ * @return ApiResponse<InlineResponse20050>
+ * @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 generateCouponRejectionsWithHttpInfo(String sessionIntegrationId, BigDecimal applicationId, String language, String couponCode) throws ApiException {
+ okhttp3.Call localVarCall = generateCouponRejectionsValidateBeforeCall(sessionIntegrationId, applicationId, language, couponCode, null);
+ Type localVarReturnType = new TypeToken(){}.getType();
+ return localVarApiClient.execute(localVarCall, localVarReturnType);
+ }
+
+ /**
+ * Summarize coupon redemption failures in session (asynchronously)
+ * Create a summary of the reasons for coupon redemption failures in a given customer session.
+ * @param sessionIntegrationId The integration ID of the session to summarize. (required)
+ * @param applicationId Filter results by Application ID. (optional)
+ * @param language The [ISO-639](https://en.wikipedia.org/wiki/List_of_ISO_639_language_codes) code of the language in which the summary will be generated. (optional)
+ * @param couponCode The coupon code for which to get the rejection reason. (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
-
+
+ */
+ public okhttp3.Call generateCouponRejectionsAsync(String sessionIntegrationId, BigDecimal applicationId, String language, String couponCode, final ApiCallback _callback) throws ApiException {
+
+ okhttp3.Call localVarCall = generateCouponRejectionsValidateBeforeCall(sessionIntegrationId, applicationId, language, couponCode, _callback);
+ Type localVarReturnType = new TypeToken(){}.getType();
+ localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback);
+ return localVarCall;
+ }
/**
* Build call for getAccessLogsWithoutTotalCount
* @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/AdditionalCampaignProperties.java b/src/main/java/one/talon/model/AdditionalCampaignProperties.java
index f1f6f96..c30266f 100644
--- a/src/main/java/one/talon/model/AdditionalCampaignProperties.java
+++ b/src/main/java/one/talon/model/AdditionalCampaignProperties.java
@@ -185,6 +185,10 @@ public FrontendStateEnum read(final JsonReader jsonReader) throws IOException {
@SerializedName(SERIALIZED_NAME_VALUE_MAPS_IDS)
private List valueMapsIds = null;
+ public static final String SERIALIZED_NAME_EXPERIMENT_ID = "experimentId";
+ @SerializedName(SERIALIZED_NAME_EXPERIMENT_ID)
+ private Long experimentId;
+
public AdditionalCampaignProperties budgets(List budgets) {
@@ -752,6 +756,29 @@ public void setValueMapsIds(List valueMapsIds) {
}
+ public AdditionalCampaignProperties experimentId(Long experimentId) {
+
+ this.experimentId = experimentId;
+ return this;
+ }
+
+ /**
+ * The ID of the Experiment this Campaign is part of.
+ * @return experimentId
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(example = "1", value = "The ID of the Experiment this Campaign is part of.")
+
+ public Long getExperimentId() {
+ return experimentId;
+ }
+
+
+ public void setExperimentId(Long experimentId) {
+ this.experimentId = experimentId;
+ }
+
+
@Override
public boolean equals(java.lang.Object o) {
if (this == o) {
@@ -784,12 +811,13 @@ public boolean equals(java.lang.Object o) {
Objects.equals(this.templateId, additionalCampaignProperties.templateId) &&
Objects.equals(this.frontendState, additionalCampaignProperties.frontendState) &&
Objects.equals(this.storesImported, additionalCampaignProperties.storesImported) &&
- Objects.equals(this.valueMapsIds, additionalCampaignProperties.valueMapsIds);
+ Objects.equals(this.valueMapsIds, additionalCampaignProperties.valueMapsIds) &&
+ Objects.equals(this.experimentId, additionalCampaignProperties.experimentId);
}
@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, storesImported, valueMapsIds);
+ 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, valueMapsIds, experimentId);
}
@@ -821,6 +849,7 @@ public String toString() {
sb.append(" frontendState: ").append(toIndentedString(frontendState)).append("\n");
sb.append(" storesImported: ").append(toIndentedString(storesImported)).append("\n");
sb.append(" valueMapsIds: ").append(toIndentedString(valueMapsIds)).append("\n");
+ sb.append(" experimentId: ").append(toIndentedString(experimentId)).append("\n");
sb.append("}");
return sb.toString();
}
diff --git a/src/main/java/one/talon/model/AdjustmentDetails.java b/src/main/java/one/talon/model/AdjustmentDetails.java
new file mode 100644
index 0000000..6c319c5
--- /dev/null
+++ b/src/main/java/one/talon/model/AdjustmentDetails.java
@@ -0,0 +1,156 @@
+/*
+ * 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;
+
+/**
+ * Details about an applied price adjustment.
+ */
+@ApiModel(description = "Details about an applied price adjustment.")
+
+public class AdjustmentDetails {
+ public static final String SERIALIZED_NAME_REFERENCE_ID = "referenceId";
+ @SerializedName(SERIALIZED_NAME_REFERENCE_ID)
+ private String referenceId;
+
+ public static final String SERIALIZED_NAME_SELECTED_PRICE_TYPE = "selectedPriceType";
+ @SerializedName(SERIALIZED_NAME_SELECTED_PRICE_TYPE)
+ private String selectedPriceType;
+
+ public static final String SERIALIZED_NAME_VALUE = "value";
+ @SerializedName(SERIALIZED_NAME_VALUE)
+ private BigDecimal value;
+
+
+ public AdjustmentDetails referenceId(String referenceId) {
+
+ this.referenceId = referenceId;
+ return this;
+ }
+
+ /**
+ * The reference identifier used during an `ADD_PRICE_ADJUSTMENT` action.
+ * @return referenceId
+ **/
+ @ApiModelProperty(example = "68851723-e6fa-488f-ace9-112581e6c19b", required = true, value = "The reference identifier used during an `ADD_PRICE_ADJUSTMENT` action.")
+
+ public String getReferenceId() {
+ return referenceId;
+ }
+
+
+ public void setReferenceId(String referenceId) {
+ this.referenceId = referenceId;
+ }
+
+
+ public AdjustmentDetails selectedPriceType(String selectedPriceType) {
+
+ this.selectedPriceType = selectedPriceType;
+ return this;
+ }
+
+ /**
+ * The selected price type for the SKU targeted by this effect.
+ * @return selectedPriceType
+ **/
+ @ApiModelProperty(example = "member", required = true, value = "The selected price type for the SKU targeted by this effect.")
+
+ public String getSelectedPriceType() {
+ return selectedPriceType;
+ }
+
+
+ public void setSelectedPriceType(String selectedPriceType) {
+ this.selectedPriceType = selectedPriceType;
+ }
+
+
+ public AdjustmentDetails value(BigDecimal value) {
+
+ this.value = value;
+ return this;
+ }
+
+ /**
+ * The value of the applied price adjustment.
+ * @return value
+ **/
+ @ApiModelProperty(required = true, value = "The value of the applied price adjustment.")
+
+ public BigDecimal getValue() {
+ return value;
+ }
+
+
+ public void setValue(BigDecimal value) {
+ this.value = value;
+ }
+
+
+ @Override
+ public boolean equals(java.lang.Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ AdjustmentDetails adjustmentDetails = (AdjustmentDetails) o;
+ return Objects.equals(this.referenceId, adjustmentDetails.referenceId) &&
+ Objects.equals(this.selectedPriceType, adjustmentDetails.selectedPriceType) &&
+ Objects.equals(this.value, adjustmentDetails.value);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(referenceId, selectedPriceType, value);
+ }
+
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class AdjustmentDetails {\n");
+ sb.append(" referenceId: ").append(toIndentedString(referenceId)).append("\n");
+ sb.append(" selectedPriceType: ").append(toIndentedString(selectedPriceType)).append("\n");
+ sb.append(" value: ").append(toIndentedString(value)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+
+}
+
diff --git a/src/main/java/one/talon/model/BaseCampaign.java b/src/main/java/one/talon/model/BaseCampaign.java
index 03cc34d..88c2cad 100644
--- a/src/main/java/one/talon/model/BaseCampaign.java
+++ b/src/main/java/one/talon/model/BaseCampaign.java
@@ -115,6 +115,10 @@ public StateEnum read(final JsonReader jsonReader) throws IOException {
@SerializedName(SERIALIZED_NAME_TAGS)
private List tags = new ArrayList();
+ public static final String SERIALIZED_NAME_REEVALUATE_ON_RETURN = "reevaluateOnReturn";
+ @SerializedName(SERIALIZED_NAME_REEVALUATE_ON_RETURN)
+ private Boolean reevaluateOnReturn;
+
/**
* Gets or Sets features
*/
@@ -432,6 +436,29 @@ public void setTags(List tags) {
}
+ public BaseCampaign reevaluateOnReturn(Boolean reevaluateOnReturn) {
+
+ this.reevaluateOnReturn = reevaluateOnReturn;
+ return this;
+ }
+
+ /**
+ * Indicates whether this campaign should be reevaluated when a customer returns an item.
+ * @return reevaluateOnReturn
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(example = "true", value = "Indicates whether this campaign should be reevaluated when a customer returns an item.")
+
+ public Boolean getReevaluateOnReturn() {
+ return reevaluateOnReturn;
+ }
+
+
+ public void setReevaluateOnReturn(Boolean reevaluateOnReturn) {
+ this.reevaluateOnReturn = reevaluateOnReturn;
+ }
+
+
public BaseCampaign features(List features) {
this.features = features;
@@ -634,6 +661,7 @@ public boolean equals(java.lang.Object o) {
Objects.equals(this.state, baseCampaign.state) &&
Objects.equals(this.activeRulesetId, baseCampaign.activeRulesetId) &&
Objects.equals(this.tags, baseCampaign.tags) &&
+ Objects.equals(this.reevaluateOnReturn, baseCampaign.reevaluateOnReturn) &&
Objects.equals(this.features, baseCampaign.features) &&
Objects.equals(this.couponSettings, baseCampaign.couponSettings) &&
Objects.equals(this.referralSettings, baseCampaign.referralSettings) &&
@@ -645,7 +673,7 @@ public boolean equals(java.lang.Object o) {
@Override
public int hashCode() {
- return Objects.hash(name, description, startTime, endTime, attributes, state, activeRulesetId, tags, features, couponSettings, referralSettings, limits, campaignGroups, type, linkedStoreIds);
+ return Objects.hash(name, description, startTime, endTime, attributes, state, activeRulesetId, tags, reevaluateOnReturn, features, couponSettings, referralSettings, limits, campaignGroups, type, linkedStoreIds);
}
@@ -661,6 +689,7 @@ public String toString() {
sb.append(" state: ").append(toIndentedString(state)).append("\n");
sb.append(" activeRulesetId: ").append(toIndentedString(activeRulesetId)).append("\n");
sb.append(" tags: ").append(toIndentedString(tags)).append("\n");
+ sb.append(" reevaluateOnReturn: ").append(toIndentedString(reevaluateOnReturn)).append("\n");
sb.append(" features: ").append(toIndentedString(features)).append("\n");
sb.append(" couponSettings: ").append(toIndentedString(couponSettings)).append("\n");
sb.append(" referralSettings: ").append(toIndentedString(referralSettings)).append("\n");
diff --git a/src/main/java/one/talon/model/BestPriorPriceMetadata.java b/src/main/java/one/talon/model/BestPriorPriceMetadata.java
index 51bb0a0..8197d50 100644
--- a/src/main/java/one/talon/model/BestPriorPriceMetadata.java
+++ b/src/main/java/one/talon/model/BestPriorPriceMetadata.java
@@ -25,6 +25,8 @@
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
+import one.talon.model.AdjustmentDetails;
+import one.talon.model.InfluencingCampaignDetails;
/**
* Auxiliary data for found price observation.
@@ -32,66 +34,62 @@
@ApiModel(description = "Auxiliary data for found price observation.")
public class BestPriorPriceMetadata {
- public static final String SERIALIZED_NAME_INFLUENCING_CAMPAIGN_I_DS = "influencingCampaignIDs";
- @SerializedName(SERIALIZED_NAME_INFLUENCING_CAMPAIGN_I_DS)
- private List influencingCampaignIDs = null;
+ public static final String SERIALIZED_NAME_INFLUENCING_CAMPAIGN_DETAILS = "influencingCampaignDetails";
+ @SerializedName(SERIALIZED_NAME_INFLUENCING_CAMPAIGN_DETAILS)
+ private List influencingCampaignDetails = new ArrayList();
- public static final String SERIALIZED_NAME_ADJUSTMENT_REFERENCE_I_D = "adjustmentReferenceID";
- @SerializedName(SERIALIZED_NAME_ADJUSTMENT_REFERENCE_I_D)
- private String adjustmentReferenceID;
+ public static final String SERIALIZED_NAME_ADJUSTMENT_DETAILS = "adjustmentDetails";
+ @SerializedName(SERIALIZED_NAME_ADJUSTMENT_DETAILS)
+ private AdjustmentDetails adjustmentDetails;
- public BestPriorPriceMetadata influencingCampaignIDs(List influencingCampaignIDs) {
+ public BestPriorPriceMetadata influencingCampaignDetails(List influencingCampaignDetails) {
- this.influencingCampaignIDs = influencingCampaignIDs;
+ this.influencingCampaignDetails = influencingCampaignDetails;
return this;
}
- public BestPriorPriceMetadata addInfluencingCampaignIDsItem(Long influencingCampaignIDsItem) {
- if (this.influencingCampaignIDs == null) {
- this.influencingCampaignIDs = new ArrayList();
- }
- this.influencingCampaignIDs.add(influencingCampaignIDsItem);
+ public BestPriorPriceMetadata addInfluencingCampaignDetailsItem(InfluencingCampaignDetails influencingCampaignDetailsItem) {
+ this.influencingCampaignDetails.add(influencingCampaignDetailsItem);
return this;
}
/**
- * Get influencingCampaignIDs
- * @return influencingCampaignIDs
+ * Details about campaigns that influenced the final price.
+ * @return influencingCampaignDetails
**/
- @javax.annotation.Nullable
- @ApiModelProperty(value = "")
+ @ApiModelProperty(required = true, value = "Details about campaigns that influenced the final price.")
- public List getInfluencingCampaignIDs() {
- return influencingCampaignIDs;
+ public List getInfluencingCampaignDetails() {
+ return influencingCampaignDetails;
}
- public void setInfluencingCampaignIDs(List influencingCampaignIDs) {
- this.influencingCampaignIDs = influencingCampaignIDs;
+ public void setInfluencingCampaignDetails(List influencingCampaignDetails) {
+ this.influencingCampaignDetails = influencingCampaignDetails;
}
- public BestPriorPriceMetadata adjustmentReferenceID(String adjustmentReferenceID) {
+ public BestPriorPriceMetadata adjustmentDetails(AdjustmentDetails adjustmentDetails) {
- this.adjustmentReferenceID = adjustmentReferenceID;
+ this.adjustmentDetails = adjustmentDetails;
return this;
}
/**
- * Identifier related to the `referenceId` used during a `ADD_PRICE_ADJUSTMENT` action using the [Sync cart item catalog endpoint](https://docs.talon.one/integration-api#tag/Catalogs/operation/syncCatalog).
- * @return adjustmentReferenceID
+ * Get adjustmentDetails
+ * @return adjustmentDetails
**/
@javax.annotation.Nullable
- @ApiModelProperty(value = "Identifier related to the `referenceId` used during a `ADD_PRICE_ADJUSTMENT` action using the [Sync cart item catalog endpoint](https://docs.talon.one/integration-api#tag/Catalogs/operation/syncCatalog).")
+ @ApiModelProperty(value = "")
- public String getAdjustmentReferenceID() {
- return adjustmentReferenceID;
+ public AdjustmentDetails getAdjustmentDetails() {
+ return adjustmentDetails;
}
- public void setAdjustmentReferenceID(String adjustmentReferenceID) {
- this.adjustmentReferenceID = adjustmentReferenceID;
+ public void setAdjustmentDetails(AdjustmentDetails adjustmentDetails) {
+ this.adjustmentDetails = adjustmentDetails;
}
@@ -104,13 +102,13 @@ public boolean equals(java.lang.Object o) {
return false;
}
BestPriorPriceMetadata bestPriorPriceMetadata = (BestPriorPriceMetadata) o;
- return Objects.equals(this.influencingCampaignIDs, bestPriorPriceMetadata.influencingCampaignIDs) &&
- Objects.equals(this.adjustmentReferenceID, bestPriorPriceMetadata.adjustmentReferenceID);
+ return Objects.equals(this.influencingCampaignDetails, bestPriorPriceMetadata.influencingCampaignDetails) &&
+ Objects.equals(this.adjustmentDetails, bestPriorPriceMetadata.adjustmentDetails);
}
@Override
public int hashCode() {
- return Objects.hash(influencingCampaignIDs, adjustmentReferenceID);
+ return Objects.hash(influencingCampaignDetails, adjustmentDetails);
}
@@ -118,8 +116,8 @@ public int hashCode() {
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append("class BestPriorPriceMetadata {\n");
- sb.append(" influencingCampaignIDs: ").append(toIndentedString(influencingCampaignIDs)).append("\n");
- sb.append(" adjustmentReferenceID: ").append(toIndentedString(adjustmentReferenceID)).append("\n");
+ sb.append(" influencingCampaignDetails: ").append(toIndentedString(influencingCampaignDetails)).append("\n");
+ sb.append(" adjustmentDetails: ").append(toIndentedString(adjustmentDetails)).append("\n");
sb.append("}");
return sb.toString();
}
diff --git a/src/main/java/one/talon/model/Campaign.java b/src/main/java/one/talon/model/Campaign.java
index f8c2701..33b3a07 100644
--- a/src/main/java/one/talon/model/Campaign.java
+++ b/src/main/java/one/talon/model/Campaign.java
@@ -133,6 +133,10 @@ public StateEnum read(final JsonReader jsonReader) throws IOException {
@SerializedName(SERIALIZED_NAME_TAGS)
private List tags = new ArrayList();
+ public static final String SERIALIZED_NAME_REEVALUATE_ON_RETURN = "reevaluateOnReturn";
+ @SerializedName(SERIALIZED_NAME_REEVALUATE_ON_RETURN)
+ private Boolean reevaluateOnReturn;
+
/**
* Gets or Sets features
*/
@@ -414,6 +418,10 @@ public FrontendStateEnum read(final JsonReader jsonReader) throws IOException {
@SerializedName(SERIALIZED_NAME_VALUE_MAPS_IDS)
private List valueMapsIds = null;
+ public static final String SERIALIZED_NAME_EXPERIMENT_ID = "experimentId";
+ @SerializedName(SERIALIZED_NAME_EXPERIMENT_ID)
+ private Long experimentId;
+
/**
* The campaign revision state displayed in the Campaign Manager.
*/
@@ -763,6 +771,28 @@ public void setTags(List tags) {
}
+ public Campaign reevaluateOnReturn(Boolean reevaluateOnReturn) {
+
+ this.reevaluateOnReturn = reevaluateOnReturn;
+ return this;
+ }
+
+ /**
+ * Indicates whether this campaign should be reevaluated when a customer returns an item.
+ * @return reevaluateOnReturn
+ **/
+ @ApiModelProperty(example = "true", required = true, value = "Indicates whether this campaign should be reevaluated when a customer returns an item.")
+
+ public Boolean getReevaluateOnReturn() {
+ return reevaluateOnReturn;
+ }
+
+
+ public void setReevaluateOnReturn(Boolean reevaluateOnReturn) {
+ this.reevaluateOnReturn = reevaluateOnReturn;
+ }
+
+
public Campaign features(List features) {
this.features = features;
@@ -1513,6 +1543,29 @@ public void setValueMapsIds(List valueMapsIds) {
}
+ public Campaign experimentId(Long experimentId) {
+
+ this.experimentId = experimentId;
+ return this;
+ }
+
+ /**
+ * The ID of the Experiment this Campaign is part of.
+ * @return experimentId
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(example = "1", value = "The ID of the Experiment this Campaign is part of.")
+
+ public Long getExperimentId() {
+ return experimentId;
+ }
+
+
+ public void setExperimentId(Long experimentId) {
+ this.experimentId = experimentId;
+ }
+
+
public Campaign revisionFrontendState(RevisionFrontendStateEnum revisionFrontendState) {
this.revisionFrontendState = revisionFrontendState;
@@ -1695,6 +1748,7 @@ public boolean equals(java.lang.Object o) {
Objects.equals(this.state, campaign.state) &&
Objects.equals(this.activeRulesetId, campaign.activeRulesetId) &&
Objects.equals(this.tags, campaign.tags) &&
+ Objects.equals(this.reevaluateOnReturn, campaign.reevaluateOnReturn) &&
Objects.equals(this.features, campaign.features) &&
Objects.equals(this.couponSettings, campaign.couponSettings) &&
Objects.equals(this.referralSettings, campaign.referralSettings) &&
@@ -1726,6 +1780,7 @@ public boolean equals(java.lang.Object o) {
Objects.equals(this.frontendState, campaign.frontendState) &&
Objects.equals(this.storesImported, campaign.storesImported) &&
Objects.equals(this.valueMapsIds, campaign.valueMapsIds) &&
+ Objects.equals(this.experimentId, campaign.experimentId) &&
Objects.equals(this.revisionFrontendState, campaign.revisionFrontendState) &&
Objects.equals(this.activeRevisionId, campaign.activeRevisionId) &&
Objects.equals(this.activeRevisionVersionId, campaign.activeRevisionVersionId) &&
@@ -1737,7 +1792,7 @@ public boolean equals(java.lang.Object o) {
@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, storesImported, valueMapsIds, revisionFrontendState, activeRevisionId, activeRevisionVersionId, version, currentRevisionId, currentRevisionVersionId, stageRevision);
+ return Objects.hash(id, created, applicationId, userId, name, description, startTime, endTime, attributes, state, activeRulesetId, tags, reevaluateOnReturn, 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, valueMapsIds, experimentId, revisionFrontendState, activeRevisionId, activeRevisionVersionId, version, currentRevisionId, currentRevisionVersionId, stageRevision);
}
@@ -1757,6 +1812,7 @@ public String toString() {
sb.append(" state: ").append(toIndentedString(state)).append("\n");
sb.append(" activeRulesetId: ").append(toIndentedString(activeRulesetId)).append("\n");
sb.append(" tags: ").append(toIndentedString(tags)).append("\n");
+ sb.append(" reevaluateOnReturn: ").append(toIndentedString(reevaluateOnReturn)).append("\n");
sb.append(" features: ").append(toIndentedString(features)).append("\n");
sb.append(" couponSettings: ").append(toIndentedString(couponSettings)).append("\n");
sb.append(" referralSettings: ").append(toIndentedString(referralSettings)).append("\n");
@@ -1788,6 +1844,7 @@ public String toString() {
sb.append(" frontendState: ").append(toIndentedString(frontendState)).append("\n");
sb.append(" storesImported: ").append(toIndentedString(storesImported)).append("\n");
sb.append(" valueMapsIds: ").append(toIndentedString(valueMapsIds)).append("\n");
+ sb.append(" experimentId: ").append(toIndentedString(experimentId)).append("\n");
sb.append(" revisionFrontendState: ").append(toIndentedString(revisionFrontendState)).append("\n");
sb.append(" activeRevisionId: ").append(toIndentedString(activeRevisionId)).append("\n");
sb.append(" activeRevisionVersionId: ").append(toIndentedString(activeRevisionVersionId)).append("\n");
diff --git a/src/main/java/one/talon/model/CampaignTemplate.java b/src/main/java/one/talon/model/CampaignTemplate.java
index 94da1e5..4237db1 100644
--- a/src/main/java/one/talon/model/CampaignTemplate.java
+++ b/src/main/java/one/talon/model/CampaignTemplate.java
@@ -134,6 +134,10 @@ public StateEnum read(final JsonReader jsonReader) throws IOException {
@SerializedName(SERIALIZED_NAME_TAGS)
private List tags = null;
+ public static final String SERIALIZED_NAME_REEVALUATE_ON_RETURN = "reevaluateOnReturn";
+ @SerializedName(SERIALIZED_NAME_REEVALUATE_ON_RETURN)
+ private Boolean reevaluateOnReturn;
+
/**
* Gets or Sets features
*/
@@ -573,6 +577,28 @@ public void setTags(List tags) {
}
+ public CampaignTemplate reevaluateOnReturn(Boolean reevaluateOnReturn) {
+
+ this.reevaluateOnReturn = reevaluateOnReturn;
+ return this;
+ }
+
+ /**
+ * Indicates whether campaigns created from this template should be reevaluated when a customer returns an item.
+ * @return reevaluateOnReturn
+ **/
+ @ApiModelProperty(example = "true", required = true, value = "Indicates whether campaigns created from this template should be reevaluated when a customer returns an item.")
+
+ public Boolean getReevaluateOnReturn() {
+ return reevaluateOnReturn;
+ }
+
+
+ public void setReevaluateOnReturn(Boolean reevaluateOnReturn) {
+ this.reevaluateOnReturn = reevaluateOnReturn;
+ }
+
+
public CampaignTemplate features(List features) {
this.features = features;
@@ -978,6 +1004,7 @@ public boolean equals(java.lang.Object o) {
Objects.equals(this.state, campaignTemplate.state) &&
Objects.equals(this.activeRulesetId, campaignTemplate.activeRulesetId) &&
Objects.equals(this.tags, campaignTemplate.tags) &&
+ Objects.equals(this.reevaluateOnReturn, campaignTemplate.reevaluateOnReturn) &&
Objects.equals(this.features, campaignTemplate.features) &&
Objects.equals(this.couponSettings, campaignTemplate.couponSettings) &&
Objects.equals(this.couponReservationSettings, campaignTemplate.couponReservationSettings) &&
@@ -997,7 +1024,7 @@ public boolean equals(java.lang.Object o) {
@Override
public int hashCode() {
- return Objects.hash(id, created, accountId, userId, name, description, instructions, campaignAttributes, couponAttributes, state, activeRulesetId, tags, features, couponSettings, couponReservationSettings, referralSettings, limits, templateParams, applicationsIds, campaignCollections, defaultCampaignGroupId, campaignType, campaignsCount, updated, updatedBy, validApplicationIds, isUserFavorite);
+ return Objects.hash(id, created, accountId, userId, name, description, instructions, campaignAttributes, couponAttributes, state, activeRulesetId, tags, reevaluateOnReturn, features, couponSettings, couponReservationSettings, referralSettings, limits, templateParams, applicationsIds, campaignCollections, defaultCampaignGroupId, campaignType, campaignsCount, updated, updatedBy, validApplicationIds, isUserFavorite);
}
@@ -1017,6 +1044,7 @@ public String toString() {
sb.append(" state: ").append(toIndentedString(state)).append("\n");
sb.append(" activeRulesetId: ").append(toIndentedString(activeRulesetId)).append("\n");
sb.append(" tags: ").append(toIndentedString(tags)).append("\n");
+ sb.append(" reevaluateOnReturn: ").append(toIndentedString(reevaluateOnReturn)).append("\n");
sb.append(" features: ").append(toIndentedString(features)).append("\n");
sb.append(" couponSettings: ").append(toIndentedString(couponSettings)).append("\n");
sb.append(" couponReservationSettings: ").append(toIndentedString(couponReservationSettings)).append("\n");
diff --git a/src/main/java/one/talon/model/CartItemFilterTemplate.java b/src/main/java/one/talon/model/CartItemFilterTemplate.java
new file mode 100644
index 0000000..21093a3
--- /dev/null
+++ b/src/main/java/one/talon/model/CartItemFilterTemplate.java
@@ -0,0 +1,134 @@
+/*
+ * 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;
+
+/**
+ * A cart item filter template stored in a library entry. Cart item filters in library entries only contain name (no description, as description is at the library entry level).
+ */
+@ApiModel(description = "A cart item filter template stored in a library entry. Cart item filters in library entries only contain name (no description, as description is at the library entry level).")
+
+public class CartItemFilterTemplate {
+ public static final String SERIALIZED_NAME_NAME = "name";
+ @SerializedName(SERIALIZED_NAME_NAME)
+ private String name;
+
+ public static final String SERIALIZED_NAME_EXPRESSION = "expression";
+ @SerializedName(SERIALIZED_NAME_EXPRESSION)
+ private List