```json
@@ -8288,7 +8350,10 @@ paths:
description: List all webhooks.
operationId: getWebhooks
parameters:
- - description: Filter by one or more Application IDs, separated by a comma.
+ - description: |
+ Checks if the given catalog or its attributes are referenced in the specified Application ID.
+
+ **Note**: If no Application ID is provided, we check for all connected Applications.
in: query
name: applicationIds
schema:
@@ -9278,10 +9343,212 @@ paths:
x-codegen-request-body-name: body
x-contentType: application/json
x-accepts: application/json
+ /v1/provisioning/okta:
+ get:
+ description: |
+ Validate the ownership of the API through a challenge-response mechanism.
+
+ This challenger endpoint is used by Okta to confirm that communication between Talon.One and Okta is correctly configured and accessible
+ for provisioning and deprovisioning of Talon.One users, and that only Talon.One can receive and respond to events from Okta.
+ operationId: oktaEventHandlerChallenge
+ responses:
+ "200":
+ content: {}
+ description: OK
+ summary: Validate Okta API ownership
+ tags:
+ - management
+ x-accepts: application/json
+ /v1/provisioning/scim/Users:
+ get:
+ description: Retrieve a paginated list of users that have been provisioned using
+ the SCIM protocol with an identity provider, for example, Microsoft Entra
+ ID.
+ operationId: scimGetUsers
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ScimUsersListResponse'
+ description: List of SCIM users
+ summary: List SCIM users
+ tags:
+ - management
+ x-accepts: application/json
+ post:
+ description: Create a new Talon.One user using the SCIM provisioning protocol
+ with an identity provider, for example, Microsoft Entra ID.
+ operationId: scimCreateUser
+ requestBody:
+ content:
+ application/json:
+ schema:
+ type: object
+ description: body
+ required: true
+ responses:
+ "201":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ScimUser'
+ description: Created
+ summary: Create SCIM user
+ tags:
+ - management
+ x-codegen-request-body-name: body
+ x-contentType: application/json
+ x-accepts: application/json
+ /v1/provisioning/scim/Users/{userId}:
+ delete:
+ description: Delete a specific Talon.One user created using the SCIM provisioning
+ protocol with an identity provider, for example, Microsoft Entra ID.
+ operationId: scimDeleteUser
+ parameters:
+ - description: The ID of the user.
+ in: path
+ name: userId
+ required: true
+ schema:
+ type: integer
+ responses:
+ "204":
+ content: {}
+ description: No Content
+ summary: Delete SCIM user
+ tags:
+ - management
+ x-accepts: application/json
+ get:
+ description: Retrieve data for a specific Talon.One user created using the SCIM
+ provisioning protocol with an identity provider, for example, Microsoft Entra
+ ID.
+ operationId: scimGetUser
+ parameters:
+ - description: The ID of the user.
+ in: path
+ name: userId
+ required: true
+ schema:
+ type: integer
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ScimUser'
+ description: User details
+ summary: Get SCIM user
+ tags:
+ - management
+ x-accepts: application/json
+ patch:
+ description: |
+ Update certain attributes of a specific Talon.One user created using the SCIM provisioning protocol with an identity provider, for example, Microsoft Entra ID.
+
+ This endpoint allows for selective adding, removing, or replacing specific attributes while leaving other attributes unchanged.
+ operationId: scimPatchUser
+ parameters:
+ - description: The ID of the user.
+ in: path
+ name: userId
+ required: true
+ schema:
+ type: integer
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ScimUser'
+ description: User details
+ summary: Update SCIM user attributes
+ tags:
+ - management
+ x-accepts: application/json
+ put:
+ description: |
+ Update the details of a specific Talon.One user created using the SCIM provisioning protocol with an identity provider, for example, Microsoft Entra ID.
+
+ This endpoint replaces all attributes of the specific user with the attributes provided in the request payload.
+ operationId: scimReplaceUserAttributes
+ parameters:
+ - description: The ID of the user.
+ in: path
+ name: userId
+ required: true
+ schema:
+ type: integer
+ requestBody:
+ content:
+ application/json:
+ schema:
+ type: object
+ description: body
+ required: true
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ScimUser'
+ description: User details
+ summary: Update SCIM user
+ tags:
+ - management
+ x-codegen-request-body-name: body
+ x-contentType: application/json
+ x-accepts: application/json
+ /v1/provisioning/scim/ResourceTypes:
+ get:
+ description: |
+ Retrieve a list of resource types supported by the SCIM provisioning protocol.
+
+ Resource types define the various kinds of resources that can be managed via the SCIM API, such as users, groups, or custom-defined resources.
+ operationId: scimGetResourceTypes
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ScimResourceTypesListResponse'
+ description: List of resource types
+ summary: List supported SCIM resource types
+ tags:
+ - management
+ x-accepts: application/json
+ /v1/provisioning/scim/ServiceProviderConfig:
+ get:
+ description: Service config endpoint for SCIM provisioning protocol
+ operationId: scimGetServiceProviderConfig
+ responses:
+ "200":
+ content: {}
+ description: Service config
+ summary: Service config endpoint for SCIM provisioning protocol
+ tags:
+ - management
+ x-accepts: application/json
+ /v1/provisioning/scim/Schemas:
+ get:
+ description: |
+ Retrieve a list of schemas supported by the SCIM provisioning protocol.
+
+ Schemas define the structure and attributes of the different resources that can be managed via the SCIM API, such as users, groups, and any custom-defined resources.
+ operationId: scimGetSchemas
+ responses:
+ "200":
+ content: {}
+ description: Schemas
+ summary: List supported SCIM schemas
+ tags:
+ - management
+ x-accepts: application/json
/v1/users/delete:
post:
description: |
- Delete a specific user by their email address.
+ [Delete a specific user](https://docs.talon.one/docs/product/account/account-settings/managing-users#deleting-a-user) by their email address.
operationId: deleteUserByEmail
requestBody:
content:
@@ -9303,7 +9570,7 @@ paths:
/v1/users/activate:
post:
description: |
- Activate a deactivated user by their email address.
+ Enable a [disabled user](https://docs.talon.one/docs/product/account/account-settings/managing-users#disabling-a-user) by their email address.
operationId: activateUserByEmail
requestBody:
content:
@@ -9316,7 +9583,7 @@ paths:
"204":
content: {}
description: No Content
- summary: Activate user by email address
+ summary: Enable user by email address
tags:
- management
x-codegen-request-body-name: body
@@ -9325,7 +9592,7 @@ paths:
/v1/users/deactivate:
post:
description: |
- Deactivate a specific user by their email address.
+ [Disable a specific user](https://docs.talon.one/docs/product/account/account-settings/managing-users#disabling-a-user) by their email address.
operationId: deactivateUserByEmail
requestBody:
content:
@@ -9338,7 +9605,7 @@ paths:
"204":
content: {}
description: No Content
- summary: Deactivate user by email address
+ summary: Disable user by email address
tags:
- management
x-codegen-request-body-name: body
@@ -9347,7 +9614,7 @@ paths:
/v1/users/invite:
post:
description: |
- Invite a user from an external identity provider to Talon.One by sending an invitation to their email address.
+ [Invite a user](https://docs.talon.one/docs/product/account/account-settings/managing-users#inviting-a-user) from an external identity provider to Talon.One by sending an invitation to their email address.
operationId: inviteUserExternal
requestBody:
content:
@@ -10032,6 +10299,178 @@ paths:
x-codegen-request-body-name: body
x-contentType: application/json
x-accepts: application/json
+ /v1/applications/{applicationId}/campaigns/{campaignId}/stores/export:
+ get:
+ description: |
+ Download a CSV file containing the stores linked to a specific campaign.
+
+ **Tip:** If the exported CSV file is too large to view, you can [split it into multiple files](https://www.makeuseof.com/tag/how-to-split-a-huge-csv-excel-workbook-into-seperate-files/).
+
+ The CSV file contains the following column:
+
+ - `store_integration_id`: The identifier of the store.
+ operationId: exportCampaignStores
+ parameters:
+ - description: The ID of the Application. It is displayed in your Talon.One
+ deployment URL.
+ in: path
+ name: applicationId
+ required: true
+ schema:
+ type: integer
+ - description: The ID of the campaign. It is displayed in your Talon.One deployment
+ URL.
+ in: path
+ name: campaignId
+ required: true
+ schema:
+ type: integer
+ responses:
+ "200":
+ content:
+ application/csv:
+ example: |
+ store_integration_id
+ STORE-001
+ STORE-002
+ STORE-003
+ schema:
+ format: csv
+ type: string
+ description: OK
+ "400":
+ content:
+ application/csv:
+ schema:
+ $ref: '#/components/schemas/ErrorResponse'
+ description: Bad request
+ "401":
+ content:
+ application/csv:
+ schema:
+ $ref: '#/components/schemas/ErrorResponseWithStatus'
+ description: Unauthorized - Invalid API key
+ "404":
+ content:
+ application/csv:
+ schema:
+ $ref: '#/components/schemas/ErrorResponseWithStatus'
+ description: Not found
+ summary: Export stores
+ tags:
+ - management
+ x-accepts: application/csv
+ /v1/applications/{applicationId}/campaigns/{campaignId}/stores:
+ delete:
+ description: Disconnect the stores linked to a specific campaign.
+ operationId: disconnectCampaignStores
+ parameters:
+ - description: The ID of the Application. It is displayed in your Talon.One
+ deployment URL.
+ in: path
+ name: applicationId
+ required: true
+ schema:
+ type: integer
+ - description: The ID of the campaign. It is displayed in your Talon.One deployment
+ URL.
+ in: path
+ name: campaignId
+ required: true
+ schema:
+ type: integer
+ responses:
+ "204":
+ content: {}
+ description: No Content
+ "400":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponse'
+ description: Bad request
+ "401":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponseWithStatus'
+ description: Unauthorized - Invalid API key
+ "404":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponseWithStatus'
+ description: Not found
+ summary: Disconnect stores
+ tags:
+ - management
+ x-accepts: application/json
+ /v1/applications/{applicationId}/campaigns/{campaignId}/stores/import:
+ post:
+ description: |
+ Upload a CSV file containing the stores you want to link to a specific campaign.
+
+ Send the file as multipart data.
+
+ The CSV file **must** only contain the following column:
+ - `store_integration_id`: The identifier of the store.
+
+ The import **replaces** the previous list of stores linked to the campaign.
+ operationId: importCampaignStores
+ parameters:
+ - description: The ID of the Application. It is displayed in your Talon.One
+ deployment URL.
+ in: path
+ name: applicationId
+ required: true
+ schema:
+ type: integer
+ - description: The ID of the campaign. It is displayed in your Talon.One deployment
+ URL.
+ in: path
+ name: campaignId
+ required: true
+ schema:
+ type: integer
+ requestBody:
+ content:
+ multipart/form-data:
+ schema:
+ properties:
+ upFile:
+ description: The file containing the data that is being imported.
+ format: csv
+ type: string
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Import'
+ description: OK
+ "400":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponse'
+ description: Bad request
+ "401":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponseWithStatus'
+ description: Unauthorized - Invalid API key
+ "404":
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorResponseWithStatus'
+ description: Not found
+ summary: Import stores
+ tags:
+ - management
+ x-contentType: multipart/form-data
+ x-accepts: application/json
/v1/applications/{applicationId}/campaigns/{campaignId}/achievements:
get:
description: List all the achievements for a specific campaign.
@@ -10836,7 +11275,7 @@ components:
type: array
couponPattern:
description: |
- The pattern used to generate coupon codes. The character `#` is a placeholder and is replaced by a random character from the `validCharacters` set.
+ The pattern used to generate codes, such as coupon codes, referral codes, and loyalty cards. The character `#` is a placeholder and is replaced by a random character from the `validCharacters` set.
example: SUMMER-####-####
maxLength: 100
minLength: 3
@@ -11139,7 +11578,6 @@ components:
enableCascadingDiscounts: true
loyaltyPrograms:
- cardBased: true
- canUpgradeToAdvancedTiers: true
tiers:
- name: Gold
minPoints: 300
@@ -11158,27 +11596,68 @@ components:
programId: 139
canUpdateTiers: true
usersPerCardLimit: 111
- created: 2020-06-10T09:05:27.993483Z
timezone: Europe/Berlin
- sandbox: true
description: Customers collect 10 points per 1$ spent
title: Point collection
canUpdateJoinPolicy: true
+ programJoinPolicy: not_join
+ accountID: 1
+ defaultPending: immediate
+ tiersDowngradePolicy: one_down
+ cardCodeSettings:
+ couponPattern: SUMMER-####-####
+ validCharacters:
+ - A
+ - B
+ - C
+ - D
+ - E
+ - F
+ - G
+ - H
+ - I
+ - J
+ - K
+ - L
+ - M
+ - "N"
+ - O
+ - P
+ - Q
+ - R
+ - S
+ - T
+ - U
+ - V
+ - W
+ - X
+ - "Y"
+ - Z
+ - "0"
+ - "1"
+ - "2"
+ - "3"
+ - "4"
+ - "5"
+ - "6"
+ - "7"
+ - "8"
+ - "9"
+ id: 0
+ canUpgradeToAdvancedTiers: true
+ created: 2020-06-10T09:05:27.993483Z
+ sandbox: true
subscribedApplications:
- 132
- 97
tiersExpirationPolicy: tier_start_date
- programJoinPolicy: not_join
- accountID: 1
defaultValidity: 2W_U
- defaultPending: immediate
- tiersDowngradePolicy: one_down
+ canUpdateTierExpirationPolicy: true
allowSubledger: false
tiersExpireIn: 27W_U
+ tiersStartDate: 2021-09-12T10:12:42Z
name: my_program
- id: 0
- cardBased: true
- canUpgradeToAdvancedTiers: true
tiers:
- name: Gold
minPoints: 300
@@ -11197,25 +11676,67 @@ components:
programId: 139
canUpdateTiers: true
usersPerCardLimit: 111
- created: 2020-06-10T09:05:27.993483Z
timezone: Europe/Berlin
- sandbox: true
description: Customers collect 10 points per 1$ spent
title: Point collection
canUpdateJoinPolicy: true
+ programJoinPolicy: not_join
+ accountID: 1
+ defaultPending: immediate
+ tiersDowngradePolicy: one_down
+ cardCodeSettings:
+ couponPattern: SUMMER-####-####
+ validCharacters:
+ - A
+ - B
+ - C
+ - D
+ - E
+ - F
+ - G
+ - H
+ - I
+ - J
+ - K
+ - L
+ - M
+ - "N"
+ - O
+ - P
+ - Q
+ - R
+ - S
+ - T
+ - U
+ - V
+ - W
+ - X
+ - "Y"
+ - Z
+ - "0"
+ - "1"
+ - "2"
+ - "3"
+ - "4"
+ - "5"
+ - "6"
+ - "7"
+ - "8"
+ - "9"
+ id: 0
+ canUpgradeToAdvancedTiers: true
+ created: 2020-06-10T09:05:27.993483Z
+ sandbox: true
subscribedApplications:
- 132
- 97
tiersExpirationPolicy: tier_start_date
- programJoinPolicy: not_join
- accountID: 1
defaultValidity: 2W_U
- defaultPending: immediate
- tiersDowngradePolicy: one_down
+ canUpdateTierExpirationPolicy: true
allowSubledger: false
tiersExpireIn: 27W_U
+ tiersStartDate: 2021-09-12T10:12:42Z
name: my_program
- id: 0
name: My Application
modified: 2021-09-12T10:12:42Z
defaultDiscountScope: sessionTotal
@@ -11991,6 +12512,7 @@ components:
- coupons
- referrals
createdLoyaltyPointsCount: 9.0
+ storesImported: true
couponSettings:
couponPattern: SUMMER-####-####
validCharacters:
@@ -12383,6 +12905,11 @@ components:
- archived
example: running
type: string
+ storesImported:
+ description: Indicates whether the linked stores were imported via a CSV
+ file.
+ example: true
+ type: boolean
required:
- applicationId
- budgets
@@ -12394,6 +12921,7 @@ components:
- limits
- name
- state
+ - storesImported
- tags
- type
- userId
@@ -12564,9 +13092,15 @@ components:
- archived
example: running
type: string
+ storesImported:
+ description: Indicates whether the linked stores were imported via a CSV
+ file.
+ example: true
+ type: boolean
required:
- budgets
- frontendState
+ - storesImported
type: object
NewRuleset:
properties:
@@ -15412,10 +15946,6 @@ components:
description: HTTP status code of the response.
example: 200
type: integer
- required:
- - createdAt
- - response
- - status
type: object
WebhookActivationLogEntry:
description: Log of activated webhooks.
@@ -15476,6 +16006,7 @@ components:
email: john.doe@example.com
policy:
Role: 127
+ additionalAttributes: '{}'
properties:
id:
description: Internal ID of this entity.
@@ -15559,6 +16090,11 @@ components:
example: 2020-06-01T00:00:00Z
format: date-time
type: string
+ additionalAttributes:
+ description: Additional user attributes, created and used by external identity
+ providers.
+ properties: {}
+ type: object
required:
- accountId
- created
@@ -15609,6 +16145,171 @@ components:
required:
- email
type: object
+ OktaEventTarget:
+ description: Target of the specific Okta event.
+ properties:
+ type:
+ description: Type of the event target.
+ example: AppUser
+ type: string
+ alternateId:
+ description: Identifier of the event target, depending on its type.
+ example: john.doe@example.com
+ type: string
+ displayName:
+ description: Display name of the event target.
+ example: John Doe
+ type: string
+ required:
+ - alternateId
+ - displayName
+ - type
+ type: object
+ OktaEvent:
+ description: Single event definition in the event data emitted by Okta.
+ properties:
+ eventType:
+ description: Event type defining an action.
+ example: application.user_membership.add
+ type: string
+ target:
+ items:
+ $ref: '#/components/schemas/OktaEventTarget'
+ type: array
+ required:
+ - eventType
+ - target
+ type: object
+ OktaEventPayloadData:
+ description: Data part of the event emitted by Okta.
+ properties:
+ events:
+ items:
+ $ref: '#/components/schemas/OktaEvent'
+ type: array
+ required:
+ - events
+ type: object
+ OktaEventPayload:
+ description: Payload containing provisioning event details from Okta.
+ properties:
+ data:
+ $ref: '#/components/schemas/OktaEventPayloadData'
+ required:
+ - data
+ type: object
+ ScimNewUser:
+ description: Payload for users that are created using the SCIM provisioning
+ protocol with an identity provider, for example, Microsoft Entra ID.
+ properties:
+ active:
+ description: Status of the user.
+ example: true
+ type: boolean
+ displayName:
+ description: Display name of the user.
+ example: John Doe
+ type: string
+ userName:
+ description: Unique identifier of the user. This is usually an email address.
+ example: john.doe@example.com
+ type: string
+ required:
+ - userName
+ type: object
+ ScimUser:
+ description: Schema definition for users that have been provisioned using the
+ SCIM protocol with an identity provider, for example, Microsoft Entra ID.
+ example:
+ displayName: John Doe
+ active: true
+ id: "359"
+ userName: john.doe@example.com
+ properties:
+ active:
+ description: Status of the user.
+ example: true
+ type: boolean
+ displayName:
+ description: Display name of the user.
+ example: John Doe
+ type: string
+ userName:
+ description: Unique identifier of the user. This is usually an email address.
+ example: john.doe@example.com
+ type: string
+ id:
+ description: ID of the user.
+ example: "359"
+ type: string
+ required:
+ - id
+ - userName
+ type: object
+ ScimResource:
+ description: Resource schema definition for the SCIM provisioning protocol.
+ example:
+ id: User
+ name: User
+ properties:
+ id:
+ description: ID of the resource.
+ type: string
+ name:
+ description: Name of the resource.
+ type: string
+ type: object
+ ScimUsersListResponse:
+ description: List of users that have been provisioned using the SCIM protocol
+ with an identity provider, for example, Microsoft Entra ID.
+ example:
+ Resources:
+ - active: true
+ displayName: John Doe
+ id: 283
+ meta:
+ resourceType: User
+ created: 2024-06-25T17:43:46+02:00
+ userName: john.doe@example.com
+ schemas:
+ - urn:ietf:params:scim:schemas:core:2.0:User
+ - urn:ietf:params:scim:schemas:extension:enterprise:2.0:User
+ schemas:
+ - urn:ietf:params:scim:api:messages:2.0:ListResponse
+ totalResults: 1
+ properties:
+ Resources:
+ items:
+ $ref: '#/components/schemas/ScimUser'
+ type: array
+ schemas:
+ items:
+ description: SCIM schema for the given resource.
+ example: urn:ietf:params:scim:api:messages:2.0:ListResponse
+ type: string
+ type: array
+ totalResults:
+ description: Number of total results in the response.
+ type: integer
+ required:
+ - Resources
+ type: object
+ ScimResourceTypesListResponse:
+ description: List of resource types supported by the SCIM provisioning protocol.
+ example:
+ Resources:
+ - id: User
+ name: User
+ - id: User
+ name: User
+ properties:
+ Resources:
+ items:
+ $ref: '#/components/schemas/ScimResource'
+ type: array
+ required:
+ - Resources
+ type: object
NewInvitation:
description: Parameters for inviting a new user.
example:
@@ -15883,7 +16584,6 @@ components:
description: ""
example:
cardBased: true
- canUpgradeToAdvancedTiers: true
tiers:
- name: Gold
minPoints: 300
@@ -15902,25 +16602,67 @@ components:
programId: 139
canUpdateTiers: true
usersPerCardLimit: 111
- created: 2020-06-10T09:05:27.993483Z
timezone: Europe/Berlin
- sandbox: true
description: Customers collect 10 points per 1$ spent
title: Point collection
canUpdateJoinPolicy: true
+ programJoinPolicy: not_join
+ accountID: 1
+ defaultPending: immediate
+ tiersDowngradePolicy: one_down
+ cardCodeSettings:
+ couponPattern: SUMMER-####-####
+ validCharacters:
+ - A
+ - B
+ - C
+ - D
+ - E
+ - F
+ - G
+ - H
+ - I
+ - J
+ - K
+ - L
+ - M
+ - "N"
+ - O
+ - P
+ - Q
+ - R
+ - S
+ - T
+ - U
+ - V
+ - W
+ - X
+ - "Y"
+ - Z
+ - "0"
+ - "1"
+ - "2"
+ - "3"
+ - "4"
+ - "5"
+ - "6"
+ - "7"
+ - "8"
+ - "9"
+ id: 0
+ canUpgradeToAdvancedTiers: true
+ created: 2020-06-10T09:05:27.993483Z
+ sandbox: true
subscribedApplications:
- 132
- 97
tiersExpirationPolicy: tier_start_date
- programJoinPolicy: not_join
- accountID: 1
defaultValidity: 2W_U
- defaultPending: immediate
- tiersDowngradePolicy: one_down
+ canUpdateTierExpirationPolicy: true
allowSubledger: false
tiersExpireIn: 27W_U
+ tiersStartDate: 2021-09-12T10:12:42Z
name: my_program
- id: 0
properties:
id:
description: The ID of loyalty program. Internal ID of this entity.
@@ -15980,14 +16722,39 @@ components:
example: true
title: Sandbox
type: boolean
+ programJoinPolicy:
+ description: |
+ The policy that defines when the customer joins the loyalty program.
+ - `not_join`: The customer does not join the loyalty program but can still earn and spend loyalty points.
+
+ **Note**: The customer does not have a program join date.
+ - `points_activated`: The customer joins the loyalty program only when their earned loyalty points become active for the first time.
+ - `points_earned`: The customer joins the loyalty program when they earn loyalty points for the first time.
+ enum:
+ - not_join
+ - points_activated
+ - points_earned
+ type: string
tiersExpirationPolicy:
description: |
The policy that defines which date is used to calculate the expiration date of a customer's current tier.
- `tier_start_date`: The tier expiration date is calculated based on when the customer joined the current tier.
- `program_join_date`: The tier expiration date is calculated based on when the customer joined the loyalty program.
+ - `customer_attribute`: The tier expiration date is calculated based on a custom customer attribute.
+ - `absolute_expiration`: The tier expires on a specified date and time. **Note**: For absolute expiration, it is required to provide a `tiersStartDate.`
enum:
- tier_start_date
- program_join_date
+ - customer_attribute
+ - absolute_expiration
+ type: string
+ tiersStartDate:
+ description: |
+ Timestamp at which the tier starts for all customers.
+
+ **Note**: This is only required when the tier expiration policy is set to `absolute_expiration`.
+ example: 2021-09-12T10:12:42Z
+ format: date-time
type: string
tiersExpireIn:
description: |
@@ -16020,19 +16787,8 @@ components:
- one_down
- balance_based
type: string
- programJoinPolicy:
- description: |
- The policy that defines when the customer joins the loyalty program.
- - `not_join`: The customer does not join the loyalty program but can still earn and spend loyalty points.
-
- **Note**: The customer does not have a program join date.
- - `points_activated`: The customer joins the loyalty program only when their earned loyalty points become active for the first time.
- - `points_earned`: The customer joins the loyalty program when they earn loyalty points for the first time.
- enum:
- - not_join
- - points_activated
- - points_earned
- type: string
+ cardCodeSettings:
+ $ref: '#/components/schemas/CodeGeneratorSettings'
accountID:
description: The ID of the Talon.One account that owns this program.
example: 1
@@ -16084,7 +16840,12 @@ components:
type: boolean
canUpdateJoinPolicy:
description: |
- Indicates whether the program join policy can be updated. The join policy can be updated when this value is set to `true`.
+ `True` if the program join policy can be updated.
+ example: true
+ type: boolean
+ canUpdateTierExpirationPolicy:
+ description: |
+ `True` if the tier expiration policy can be updated.
example: true
type: boolean
canUpgradeToAdvancedTiers:
@@ -16214,14 +16975,39 @@ components:
example: true
title: Sandbox
type: boolean
+ programJoinPolicy:
+ description: |
+ The policy that defines when the customer joins the loyalty program.
+ - `not_join`: The customer does not join the loyalty program but can still earn and spend loyalty points.
+
+ **Note**: The customer does not have a program join date.
+ - `points_activated`: The customer joins the loyalty program only when their earned loyalty points become active for the first time.
+ - `points_earned`: The customer joins the loyalty program when they earn loyalty points for the first time.
+ enum:
+ - not_join
+ - points_activated
+ - points_earned
+ type: string
tiersExpirationPolicy:
description: |
The policy that defines which date is used to calculate the expiration date of a customer's current tier.
- `tier_start_date`: The tier expiration date is calculated based on when the customer joined the current tier.
- `program_join_date`: The tier expiration date is calculated based on when the customer joined the loyalty program.
+ - `customer_attribute`: The tier expiration date is calculated based on a custom customer attribute.
+ - `absolute_expiration`: The tier expires on a specified date and time. **Note**: For absolute expiration, it is required to provide a `tiersStartDate.`
enum:
- tier_start_date
- program_join_date
+ - customer_attribute
+ - absolute_expiration
+ type: string
+ tiersStartDate:
+ description: |
+ Timestamp at which the tier starts for all customers.
+
+ **Note**: This is only required when the tier expiration policy is set to `absolute_expiration`.
+ example: 2021-09-12T10:12:42Z
+ format: date-time
type: string
tiersExpireIn:
description: |
@@ -16254,19 +17040,8 @@ components:
- one_down
- balance_based
type: string
- programJoinPolicy:
- description: |
- The policy that defines when the customer joins the loyalty program.
- - `not_join`: The customer does not join the loyalty program but can still earn and spend loyalty points.
-
- **Note**: The customer does not have a program join date.
- - `points_activated`: The customer joins the loyalty program only when their earned loyalty points become active for the first time.
- - `points_earned`: The customer joins the loyalty program when they earn loyalty points for the first time.
- enum:
- - not_join
- - points_activated
- - points_earned
- type: string
+ cardCodeSettings:
+ $ref: '#/components/schemas/CodeGeneratorSettings'
type: object
NewLoyaltyProgram:
description: ""
@@ -16321,14 +17096,39 @@ components:
example: true
title: Sandbox
type: boolean
+ programJoinPolicy:
+ description: |
+ The policy that defines when the customer joins the loyalty program.
+ - `not_join`: The customer does not join the loyalty program but can still earn and spend loyalty points.
+
+ **Note**: The customer does not have a program join date.
+ - `points_activated`: The customer joins the loyalty program only when their earned loyalty points become active for the first time.
+ - `points_earned`: The customer joins the loyalty program when they earn loyalty points for the first time.
+ enum:
+ - not_join
+ - points_activated
+ - points_earned
+ type: string
tiersExpirationPolicy:
description: |
The policy that defines which date is used to calculate the expiration date of a customer's current tier.
- `tier_start_date`: The tier expiration date is calculated based on when the customer joined the current tier.
- `program_join_date`: The tier expiration date is calculated based on when the customer joined the loyalty program.
+ - `customer_attribute`: The tier expiration date is calculated based on a custom customer attribute.
+ - `absolute_expiration`: The tier expires on a specified date and time. **Note**: For absolute expiration, it is required to provide a `tiersStartDate.`
enum:
- tier_start_date
- program_join_date
+ - customer_attribute
+ - absolute_expiration
+ type: string
+ tiersStartDate:
+ description: |
+ Timestamp at which the tier starts for all customers.
+
+ **Note**: This is only required when the tier expiration policy is set to `absolute_expiration`.
+ example: 2021-09-12T10:12:42Z
+ format: date-time
type: string
tiersExpireIn:
description: |
@@ -16361,19 +17161,8 @@ components:
- one_down
- balance_based
type: string
- programJoinPolicy:
- description: |
- The policy that defines when the customer joins the loyalty program.
- - `not_join`: The customer does not join the loyalty program but can still earn and spend loyalty points.
-
- **Note**: The customer does not have a program join date.
- - `points_activated`: The customer joins the loyalty program only when their earned loyalty points become active for the first time.
- - `points_earned`: The customer joins the loyalty program when they earn loyalty points for the first time.
- enum:
- - not_join
- - points_activated
- - points_earned
- type: string
+ cardCodeSettings:
+ $ref: '#/components/schemas/CodeGeneratorSettings'
name:
description: The internal name for the Loyalty Program. This is an immutable
value.
@@ -16459,14 +17248,39 @@ components:
example: true
title: Sandbox
type: boolean
+ programJoinPolicy:
+ description: |
+ The policy that defines when the customer joins the loyalty program.
+ - `not_join`: The customer does not join the loyalty program but can still earn and spend loyalty points.
+
+ **Note**: The customer does not have a program join date.
+ - `points_activated`: The customer joins the loyalty program only when their earned loyalty points become active for the first time.
+ - `points_earned`: The customer joins the loyalty program when they earn loyalty points for the first time.
+ enum:
+ - not_join
+ - points_activated
+ - points_earned
+ type: string
tiersExpirationPolicy:
description: |
The policy that defines which date is used to calculate the expiration date of a customer's current tier.
- `tier_start_date`: The tier expiration date is calculated based on when the customer joined the current tier.
- `program_join_date`: The tier expiration date is calculated based on when the customer joined the loyalty program.
+ - `customer_attribute`: The tier expiration date is calculated based on a custom customer attribute.
+ - `absolute_expiration`: The tier expires on a specified date and time. **Note**: For absolute expiration, it is required to provide a `tiersStartDate.`
enum:
- tier_start_date
- program_join_date
+ - customer_attribute
+ - absolute_expiration
+ type: string
+ tiersStartDate:
+ description: |
+ Timestamp at which the tier starts for all customers.
+
+ **Note**: This is only required when the tier expiration policy is set to `absolute_expiration`.
+ example: 2021-09-12T10:12:42Z
+ format: date-time
type: string
tiersExpireIn:
description: |
@@ -16499,19 +17313,8 @@ components:
- one_down
- balance_based
type: string
- programJoinPolicy:
- description: |
- The policy that defines when the customer joins the loyalty program.
- - `not_join`: The customer does not join the loyalty program but can still earn and spend loyalty points.
-
- **Note**: The customer does not have a program join date.
- - `points_activated`: The customer joins the loyalty program only when their earned loyalty points become active for the first time.
- - `points_earned`: The customer joins the loyalty program when they earn loyalty points for the first time.
- enum:
- - not_join
- - points_activated
- - points_earned
- type: string
+ cardCodeSettings:
+ $ref: '#/components/schemas/CodeGeneratorSettings'
tiers:
description: The tiers in this loyalty program.
items:
@@ -16657,18 +17460,6 @@ components:
type: object
LoyaltyBalances:
description: List of loyalty balances for a ledger and its subledgers.
- example:
- balance:
- activePoints: 286.0
- spentPoints: 150.0
- expiredPoints: 286.0
- pendingPoints: 50.0
- subledgerBalances:
- mysubledger:
- activePoints: 286
- pendingPoints: 50
- spentPoints: 150
- expiredPoints: 25
properties:
balance:
$ref: '#/components/schemas/LoyaltyBalance'
@@ -16716,6 +17507,103 @@ components:
title: Total expired points
type: number
type: object
+ LoyaltyBalanceWithTier:
+ description: ""
+ example:
+ projectedTier:
+ projectedActivePoints: 198.0
+ stayInTierPoints: 2.0
+ projectedTierName: Tier 1
+ activePoints: 286.0
+ spentPoints: 150.0
+ nextTierName: silver
+ pointsToNextTier: 20.0
+ expiredPoints: 286.0
+ currentTier:
+ expiryDate: 2000-01-23T04:56:07.000+00:00
+ downgradePolicy: one_down
+ name: bronze
+ id: 11
+ startDate: 2000-01-23T04:56:07.000+00:00
+ pendingPoints: 50.0
+ properties:
+ activePoints:
+ description: Total amount of points awarded to this customer and available
+ to spend.
+ example: 286.0
+ title: Current Balance
+ type: number
+ pendingPoints:
+ description: Total amount of points awarded to this customer but not available
+ until their start date.
+ example: 50.0
+ title: Total pending points
+ type: number
+ spentPoints:
+ description: Total amount of points already spent by this customer.
+ example: 150.0
+ title: Total spent points
+ type: number
+ expiredPoints:
+ description: Total amount of points awarded but never redeemed. They cannot
+ be used anymore.
+ example: 286.0
+ title: Total expired points
+ type: number
+ currentTier:
+ $ref: '#/components/schemas/Tier'
+ projectedTier:
+ $ref: '#/components/schemas/ProjectedTier'
+ pointsToNextTier:
+ description: The number of points required to move up a tier.
+ example: 20.0
+ type: number
+ nextTierName:
+ description: The name of the tier consecutive to the current tier.
+ example: silver
+ type: string
+ type: object
+ LoyaltyBalancesWithTiers:
+ description: List of loyalty balances for a ledger and its subledgers.
+ example:
+ balance:
+ projectedTier:
+ projectedActivePoints: 198.0
+ stayInTierPoints: 2.0
+ projectedTierName: Tier 1
+ activePoints: 286.0
+ spentPoints: 150.0
+ nextTierName: silver
+ pointsToNextTier: 20.0
+ expiredPoints: 286.0
+ currentTier:
+ expiryDate: 2000-01-23T04:56:07.000+00:00
+ downgradePolicy: one_down
+ name: bronze
+ id: 11
+ startDate: 2000-01-23T04:56:07.000+00:00
+ pendingPoints: 50.0
+ subledgerBalances:
+ mysubledger:
+ activePoints: 286
+ pendingPoints: 50
+ spentPoints: 150
+ expiredPoints: 25
+ properties:
+ balance:
+ $ref: '#/components/schemas/LoyaltyBalanceWithTier'
+ subledgerBalances:
+ additionalProperties:
+ $ref: '#/components/schemas/LoyaltyBalanceWithTier'
+ description: Map of the loyalty balances of the subledgers of a ledger.
+ example:
+ mysubledger:
+ activePoints: 286
+ pendingPoints: 50
+ spentPoints: 150
+ expiredPoints: 25
+ type: object
+ type: object
LoyaltyLedger:
description: Ledger of Balance in Loyalty Program for a Customer.
example:
@@ -16846,6 +17734,7 @@ components:
downgradePolicy: one_down
name: bronze
id: 11
+ startDate: 2000-01-23T04:56:07.000+00:00
pendingPoints:
- eventID: 5
amount: 100.0
@@ -17027,6 +17916,7 @@ components:
downgradePolicy: one_down
name: bronze
id: 11
+ startDate: 2000-01-23T04:56:07.000+00:00
pendingPoints:
- eventID: 5
amount: 100.0
@@ -17132,6 +18022,7 @@ components:
downgradePolicy: one_down
name: bronze
id: 11
+ startDate: 2000-01-23T04:56:07.000+00:00
identifier: summer-loyalty-card-0543
oldCardIdentifier: summer-loyalty-card-0543
usersPerCardLimit: 111
@@ -17155,8 +18046,10 @@ components:
downgradePolicy: one_down
name: bronze
id: 11
+ startDate: 2000-01-23T04:56:07.000+00:00
modified: 2021-09-12T10:12:42Z
id: 6
+ blockReason: Current card lost. Customer needs a new card.
newCardIdentifier: summer-loyalty-card-0543
programID: 125
status: active
@@ -17173,6 +18066,7 @@ components:
downgradePolicy: one_down
name: bronze
id: 11
+ startDate: 2000-01-23T04:56:07.000+00:00
identifier: summer-loyalty-card-0543
oldCardIdentifier: summer-loyalty-card-0543
usersPerCardLimit: 111
@@ -17196,8 +18090,10 @@ components:
downgradePolicy: one_down
name: bronze
id: 11
+ startDate: 2000-01-23T04:56:07.000+00:00
modified: 2021-09-12T10:12:42Z
id: 6
+ blockReason: Current card lost. Customer needs a new card.
newCardIdentifier: summer-loyalty-card-0543
programID: 125
status: active
@@ -17216,6 +18112,7 @@ components:
downgradePolicy: one_down
name: bronze
id: 11
+ startDate: 2000-01-23T04:56:07.000+00:00
joinDate: 2000-01-23T04:56:07.000+00:00
subLedgers:
key:
@@ -17231,6 +18128,7 @@ components:
downgradePolicy: one_down
name: bronze
id: 11
+ startDate: 2000-01-23T04:56:07.000+00:00
name: program1
id: 5
title: My loyalty program
@@ -17267,6 +18165,7 @@ components:
downgradePolicy: one_down
name: bronze
id: 11
+ startDate: 2000-01-23T04:56:07.000+00:00
joinDate: 2000-01-23T04:56:07.000+00:00
subLedgers:
key:
@@ -17282,6 +18181,7 @@ components:
downgradePolicy: one_down
name: bronze
id: 11
+ startDate: 2000-01-23T04:56:07.000+00:00
name: program1
id: 5
title: My loyalty program
@@ -17333,6 +18233,7 @@ components:
downgradePolicy: one_down
name: bronze
id: 11
+ startDate: 2000-01-23T04:56:07.000+00:00
properties:
currentBalance:
description: Sum of currently active points.
@@ -17406,6 +18307,7 @@ components:
downgradePolicy: one_down
name: bronze
id: 11
+ startDate: 2000-01-23T04:56:07.000+00:00
properties:
id:
description: The internal ID of the tier.
@@ -17415,6 +18317,11 @@ components:
description: The name of the tier.
example: bronze
type: string
+ startDate:
+ description: Date and time when the customer moved to this tier. This value
+ uses the loyalty program's time zone setting.
+ format: date-time
+ type: string
expiryDate:
description: Date when tier level expires in the RFC3339 format (in the
Loyalty Program's timezone).
@@ -17433,6 +18340,31 @@ components:
- id
- name
type: object
+ ProjectedTier:
+ example:
+ projectedActivePoints: 198.0
+ stayInTierPoints: 2.0
+ projectedTierName: Tier 1
+ properties:
+ projectedActivePoints:
+ description: The active points of the customer when their current tier expires.
+ example: 198.0
+ type: number
+ stayInTierPoints:
+ description: |
+ The number of points the customer needs to stay in the current tier.
+
+ **Note**: This is included in the response when the customer is projected to be downgraded.
+ example: 2.0
+ type: number
+ projectedTierName:
+ description: The name of the tier the user will enter once their current
+ tier expires.
+ example: Tier 1
+ type: string
+ required:
+ - projectedActivePoints
+ type: object
TimePoint:
description: |
The absolute duration after which the achievement ends and resets for a particular customer profile.
@@ -17504,6 +18436,7 @@ components:
downgradePolicy: one_down
name: bronze
id: 11
+ startDate: 2000-01-23T04:56:07.000+00:00
identifier: summer-loyalty-card-0543
oldCardIdentifier: summer-loyalty-card-0543
usersPerCardLimit: 111
@@ -17527,8 +18460,10 @@ components:
downgradePolicy: one_down
name: bronze
id: 11
+ startDate: 2000-01-23T04:56:07.000+00:00
modified: 2021-09-12T10:12:42Z
id: 6
+ blockReason: Current card lost. Customer needs a new card.
newCardIdentifier: summer-loyalty-card-0543
programID: 125
status: active
@@ -17551,6 +18486,11 @@ components:
Status of the loyalty card. Can be one of: ['active', 'inactive']
example: active
type: string
+ blockReason:
+ description: |
+ Reason for transferring and blocking the loyalty card.
+ example: Current card lost. Customer needs a new card.
+ type: string
identifier:
description: |
The alphanumeric identifier of the loyalty card.
@@ -18176,6 +19116,7 @@ components:
TransferLoyaltyCard:
example:
newCardIdentifier: summer-loyalty-card-0543
+ blockReason: Current card lost. Customer needs a new card.
properties:
newCardIdentifier:
description: |
@@ -18183,11 +19124,17 @@ components:
example: summer-loyalty-card-0543
maxLength: 108
type: string
+ blockReason:
+ description: |
+ Reason for transferring and blocking the loyalty card.
+ example: Current card lost. Customer needs a new card.
+ type: string
required:
- newCardIdentifier
type: object
UpdateLoyaltyCard:
example:
+ blockReason: Current card lost. Customer needs a new card.
status: active
properties:
status:
@@ -18195,6 +19142,11 @@ components:
Status of the loyalty card. Can be one of: ['active', 'inactive']
example: active
type: string
+ blockReason:
+ description: |
+ Reason for transferring and blocking the loyalty card.
+ example: Current card lost. Customer needs a new card.
+ type: string
required:
- status
type: object
@@ -18598,6 +19550,7 @@ components:
downgradePolicy: one_down
name: bronze
id: 11
+ startDate: 2000-01-23T04:56:07.000+00:00
identifier: summer-loyalty-card-0543
oldCardIdentifier: summer-loyalty-card-0543
usersPerCardLimit: 111
@@ -18621,8 +19574,10 @@ components:
downgradePolicy: one_down
name: bronze
id: 11
+ startDate: 2000-01-23T04:56:07.000+00:00
modified: 2021-09-12T10:12:42Z
id: 6
+ blockReason: Current card lost. Customer needs a new card.
newCardIdentifier: summer-loyalty-card-0543
programID: 125
status: active
@@ -18639,6 +19594,7 @@ components:
downgradePolicy: one_down
name: bronze
id: 11
+ startDate: 2000-01-23T04:56:07.000+00:00
identifier: summer-loyalty-card-0543
oldCardIdentifier: summer-loyalty-card-0543
usersPerCardLimit: 111
@@ -18662,8 +19618,10 @@ components:
downgradePolicy: one_down
name: bronze
id: 11
+ startDate: 2000-01-23T04:56:07.000+00:00
modified: 2021-09-12T10:12:42Z
id: 6
+ blockReason: Current card lost. Customer needs a new card.
newCardIdentifier: summer-loyalty-card-0543
programID: 125
status: active
@@ -18682,6 +19640,7 @@ components:
downgradePolicy: one_down
name: bronze
id: 11
+ startDate: 2000-01-23T04:56:07.000+00:00
joinDate: 2000-01-23T04:56:07.000+00:00
subLedgers:
key:
@@ -18697,6 +19656,7 @@ components:
downgradePolicy: one_down
name: bronze
id: 11
+ startDate: 2000-01-23T04:56:07.000+00:00
name: program1
id: 5
title: My loyalty program
@@ -19890,6 +20850,7 @@ components:
downgradePolicy: one_down
name: bronze
id: 11
+ startDate: 2000-01-23T04:56:07.000+00:00
identifier: summer-loyalty-card-0543
oldCardIdentifier: summer-loyalty-card-0543
usersPerCardLimit: 111
@@ -19913,8 +20874,10 @@ components:
downgradePolicy: one_down
name: bronze
id: 11
+ startDate: 2000-01-23T04:56:07.000+00:00
modified: 2021-09-12T10:12:42Z
id: 6
+ blockReason: Current card lost. Customer needs a new card.
newCardIdentifier: summer-loyalty-card-0543
programID: 125
status: active
@@ -19931,6 +20894,7 @@ components:
downgradePolicy: one_down
name: bronze
id: 11
+ startDate: 2000-01-23T04:56:07.000+00:00
identifier: summer-loyalty-card-0543
oldCardIdentifier: summer-loyalty-card-0543
usersPerCardLimit: 111
@@ -19954,8 +20918,10 @@ components:
downgradePolicy: one_down
name: bronze
id: 11
+ startDate: 2000-01-23T04:56:07.000+00:00
modified: 2021-09-12T10:12:42Z
id: 6
+ blockReason: Current card lost. Customer needs a new card.
newCardIdentifier: summer-loyalty-card-0543
programID: 125
status: active
@@ -19974,6 +20940,7 @@ components:
downgradePolicy: one_down
name: bronze
id: 11
+ startDate: 2000-01-23T04:56:07.000+00:00
joinDate: 2000-01-23T04:56:07.000+00:00
subLedgers:
key:
@@ -19989,6 +20956,7 @@ components:
downgradePolicy: one_down
name: bronze
id: 11
+ startDate: 2000-01-23T04:56:07.000+00:00
name: program1
id: 5
title: My loyalty program
@@ -20112,19 +21080,23 @@ components:
effects:
- rulesetId: 73
ruleIndex: 2
+ evaluationGroupID: 3
triggeredForCatalogItem: 786
campaignId: 244
ruleName: Give 20% discount
conditionIndex: 786
+ evaluationGroupMode: stackable
triggeredByCoupon: 4928
effectType: rejectCoupon
props: '{}'
- rulesetId: 73
ruleIndex: 2
+ evaluationGroupID: 3
triggeredForCatalogItem: 786
campaignId: 244
ruleName: Give 20% discount
conditionIndex: 786
+ evaluationGroupMode: stackable
triggeredByCoupon: 4928
effectType: rejectCoupon
props: '{}'
@@ -20158,6 +21130,7 @@ components:
- coupons
- referrals
createdLoyaltyPointsCount: 9.0
+ storesImported: true
couponSettings:
couponPattern: SUMMER-####-####
validCharacters:
@@ -20299,6 +21272,7 @@ components:
- coupons
- referrals
createdLoyaltyPointsCount: 9.0
+ storesImported: true
couponSettings:
couponPattern: SUMMER-####-####
validCharacters:
@@ -20744,19 +21718,23 @@ components:
effects:
- rulesetId: 73
ruleIndex: 2
+ evaluationGroupID: 3
triggeredForCatalogItem: 786
campaignId: 244
ruleName: Give 20% discount
conditionIndex: 786
+ evaluationGroupMode: stackable
triggeredByCoupon: 4928
effectType: rejectCoupon
props: '{}'
- rulesetId: 73
ruleIndex: 2
+ evaluationGroupID: 3
triggeredForCatalogItem: 786
campaignId: 244
ruleName: Give 20% discount
conditionIndex: 786
+ evaluationGroupMode: stackable
triggeredByCoupon: 4928
effectType: rejectCoupon
props: '{}'
@@ -20772,6 +21750,7 @@ components:
- coupons
- referrals
createdLoyaltyPointsCount: 9.0
+ storesImported: true
couponSettings:
couponPattern: SUMMER-####-####
validCharacters:
@@ -20913,6 +21892,7 @@ components:
- coupons
- referrals
createdLoyaltyPointsCount: 9.0
+ storesImported: true
couponSettings:
couponPattern: SUMMER-####-####
validCharacters:
@@ -21080,6 +22060,7 @@ components:
downgradePolicy: one_down
name: bronze
id: 11
+ startDate: 2000-01-23T04:56:07.000+00:00
identifier: summer-loyalty-card-0543
oldCardIdentifier: summer-loyalty-card-0543
usersPerCardLimit: 111
@@ -21103,8 +22084,10 @@ components:
downgradePolicy: one_down
name: bronze
id: 11
+ startDate: 2000-01-23T04:56:07.000+00:00
modified: 2021-09-12T10:12:42Z
id: 6
+ blockReason: Current card lost. Customer needs a new card.
newCardIdentifier: summer-loyalty-card-0543
programID: 125
status: active
@@ -21121,6 +22104,7 @@ components:
downgradePolicy: one_down
name: bronze
id: 11
+ startDate: 2000-01-23T04:56:07.000+00:00
identifier: summer-loyalty-card-0543
oldCardIdentifier: summer-loyalty-card-0543
usersPerCardLimit: 111
@@ -21144,8 +22128,10 @@ components:
downgradePolicy: one_down
name: bronze
id: 11
+ startDate: 2000-01-23T04:56:07.000+00:00
modified: 2021-09-12T10:12:42Z
id: 6
+ blockReason: Current card lost. Customer needs a new card.
newCardIdentifier: summer-loyalty-card-0543
programID: 125
status: active
@@ -21164,6 +22150,7 @@ components:
downgradePolicy: one_down
name: bronze
id: 11
+ startDate: 2000-01-23T04:56:07.000+00:00
joinDate: 2000-01-23T04:56:07.000+00:00
subLedgers:
key:
@@ -21179,6 +22166,7 @@ components:
downgradePolicy: one_down
name: bronze
id: 11
+ startDate: 2000-01-23T04:56:07.000+00:00
name: program1
id: 5
title: My loyalty program
@@ -21415,19 +22403,23 @@ components:
effects:
- rulesetId: 73
ruleIndex: 2
+ evaluationGroupID: 3
triggeredForCatalogItem: 786
campaignId: 244
ruleName: Give 20% discount
conditionIndex: 786
+ evaluationGroupMode: stackable
triggeredByCoupon: 4928
effectType: rejectCoupon
props: '{}'
- rulesetId: 73
ruleIndex: 2
+ evaluationGroupID: 3
triggeredForCatalogItem: 786
campaignId: 244
ruleName: Give 20% discount
conditionIndex: 786
+ evaluationGroupMode: stackable
triggeredByCoupon: 4928
effectType: rejectCoupon
props: '{}'
@@ -21443,6 +22435,7 @@ components:
- coupons
- referrals
createdLoyaltyPointsCount: 9.0
+ storesImported: true
couponSettings:
couponPattern: SUMMER-####-####
validCharacters:
@@ -21584,6 +22577,7 @@ components:
- coupons
- referrals
createdLoyaltyPointsCount: 9.0
+ storesImported: true
couponSettings:
couponPattern: SUMMER-####-####
validCharacters:
@@ -21751,6 +22745,7 @@ components:
downgradePolicy: one_down
name: bronze
id: 11
+ startDate: 2000-01-23T04:56:07.000+00:00
identifier: summer-loyalty-card-0543
oldCardIdentifier: summer-loyalty-card-0543
usersPerCardLimit: 111
@@ -21774,8 +22769,10 @@ components:
downgradePolicy: one_down
name: bronze
id: 11
+ startDate: 2000-01-23T04:56:07.000+00:00
modified: 2021-09-12T10:12:42Z
id: 6
+ blockReason: Current card lost. Customer needs a new card.
newCardIdentifier: summer-loyalty-card-0543
programID: 125
status: active
@@ -21792,6 +22789,7 @@ components:
downgradePolicy: one_down
name: bronze
id: 11
+ startDate: 2000-01-23T04:56:07.000+00:00
identifier: summer-loyalty-card-0543
oldCardIdentifier: summer-loyalty-card-0543
usersPerCardLimit: 111
@@ -21815,8 +22813,10 @@ components:
downgradePolicy: one_down
name: bronze
id: 11
+ startDate: 2000-01-23T04:56:07.000+00:00
modified: 2021-09-12T10:12:42Z
id: 6
+ blockReason: Current card lost. Customer needs a new card.
newCardIdentifier: summer-loyalty-card-0543
programID: 125
status: active
@@ -21835,6 +22835,7 @@ components:
downgradePolicy: one_down
name: bronze
id: 11
+ startDate: 2000-01-23T04:56:07.000+00:00
joinDate: 2000-01-23T04:56:07.000+00:00
subLedgers:
key:
@@ -21850,6 +22851,7 @@ components:
downgradePolicy: one_down
name: bronze
id: 11
+ startDate: 2000-01-23T04:56:07.000+00:00
name: program1
id: 5
title: My loyalty program
@@ -22086,19 +23088,23 @@ components:
effects:
- rulesetId: 73
ruleIndex: 2
+ evaluationGroupID: 3
triggeredForCatalogItem: 786
campaignId: 244
ruleName: Give 20% discount
conditionIndex: 786
+ evaluationGroupMode: stackable
triggeredByCoupon: 4928
effectType: rejectCoupon
props: '{}'
- rulesetId: 73
ruleIndex: 2
+ evaluationGroupID: 3
triggeredForCatalogItem: 786
campaignId: 244
ruleName: Give 20% discount
conditionIndex: 786
+ evaluationGroupMode: stackable
triggeredByCoupon: 4928
effectType: rejectCoupon
props: '{}'
@@ -22149,19 +23155,23 @@ components:
effects:
- rulesetId: 73
ruleIndex: 2
+ evaluationGroupID: 3
triggeredForCatalogItem: 786
campaignId: 244
ruleName: Give 20% discount
conditionIndex: 786
+ evaluationGroupMode: stackable
triggeredByCoupon: 4928
effectType: rejectCoupon
props: '{}'
- rulesetId: 73
ruleIndex: 2
+ evaluationGroupID: 3
triggeredForCatalogItem: 786
campaignId: 244
ruleName: Give 20% discount
conditionIndex: 786
+ evaluationGroupMode: stackable
triggeredByCoupon: 4928
effectType: rejectCoupon
props: '{}'
@@ -22674,19 +23684,23 @@ components:
effects:
- rulesetId: 73
ruleIndex: 2
+ evaluationGroupID: 3
triggeredForCatalogItem: 786
campaignId: 244
ruleName: Give 20% discount
conditionIndex: 786
+ evaluationGroupMode: stackable
triggeredByCoupon: 4928
effectType: rejectCoupon
props: '{}'
- rulesetId: 73
ruleIndex: 2
+ evaluationGroupID: 3
triggeredForCatalogItem: 786
campaignId: 244
ruleName: Give 20% discount
conditionIndex: 786
+ evaluationGroupMode: stackable
triggeredByCoupon: 4928
effectType: rejectCoupon
props: '{}'
@@ -24308,6 +25322,7 @@ components:
- coupons
- referrals
createdLoyaltyPointsCount: 9.0
+ storesImported: true
couponSettings:
couponPattern: SUMMER-####-####
validCharacters:
@@ -24590,7 +25605,6 @@ components:
object with keys corresponding to the `name` of the custom attributes
for that type.
enum:
- - Account
- Application
- Campaign
- CustomerProfile
@@ -24758,7 +25772,6 @@ components:
object with keys corresponding to the `name` of the custom attributes
for that type.
enum:
- - Account
- Application
- Campaign
- CustomerProfile
@@ -25084,6 +26097,10 @@ components:
example: Send message
pattern: ^[A-Za-z][A-Za-z0-9_.!~*'() -]*$
type: string
+ description:
+ description: A description of the webhook.
+ example: A webhook to send a coupon to the user.
+ type: string
verb:
description: API method for this webhook.
enum:
@@ -25141,6 +26158,7 @@ components:
created: 2020-06-10T09:05:27.993483Z
verb: POST
modified: 2021-09-12T10:12:42Z
+ description: A webhook to send a coupon to the user.
id: 6
title: Send message
params: []
@@ -25177,104 +26195,113 @@ components:
example: Send message
pattern: ^[A-Za-z][A-Za-z0-9_.!~*'() -]*$
type: string
- verb:
- description: API method for this webhook.
- enum:
- - POST
- - PUT
- - GET
- - DELETE
- - PATCH
- example: POST
- type: string
- url:
- description: API URL (supports templating using parameters) for this webhook.
- example: www.my-company.com/my-endpoint-name
- type: string
- headers:
- description: List of API HTTP headers for this webhook.
- example:
- - '{"Authorization": "Basic bmF2ZWVua3VtYXIU="}'
- - '{"Content-Type": "application/json"}'
- items:
- pattern: ^([^:,]*):([^]*|[^,]*)$
- type: string
- type: array
- payload:
- description: API payload (supports templating using parameters) for this
- webhook.
- example: "{\n\t\"message\": \"${message}\"\n}"
- type: string
- params:
- description: Array of template argument definitions.
- example: []
- items:
- $ref: '#/components/schemas/TemplateArgDef'
- type: array
- enabled:
- description: Enables or disables webhook from showing in the Rule Builder.
- example: true
- type: boolean
- required:
- - applicationIds
- - created
- - enabled
- - headers
- - id
- - modified
- - params
- - title
- - url
- - verb
- type: object
- WebhookWithOutgoingIntegrationDetails:
- description: ""
- example:
- headers:
- - '{"Authorization": "Basic bmF2ZWVua3VtYXIU="}'
- - '{"Content-Type": "application/json"}'
- created: 2020-06-10T09:05:27.993483Z
- outgoingIntegrationTemplateId: 1
- verb: POST
- title: Send message
- params: []
- url: www.my-company.com/my-endpoint-name
- enabled: true
- applicationIds:
- - 0
- - 0
- outgoingIntegrationTypeId: 1
- outgoingIntegrationTypeName: Braze
- payload: "{\n\t\"message\": \"${message}\"\n}"
- modified: 2021-09-12T10:12:42Z
- id: 6
- properties:
- id:
- description: Internal ID of this entity.
- example: 6
- type: integer
- created:
- description: The time this entity was created.
- example: 2020-06-10T09:05:27.993483Z
- format: date-time
- type: string
- modified:
- description: The time this entity was last modified.
- example: 2021-09-12T10:12:42Z
- format: date-time
- type: string
- applicationIds:
- description: The IDs of the Applications that are related to this entity.
- The IDs of the Applications that are related to this entity.
- items:
- description: ""
- type: integer
- minItems: 1
- type: array
- title:
- description: Name or title for this webhook.
- example: Send message
- pattern: ^[A-Za-z][A-Za-z0-9_.!~*'() -]*$
+ description:
+ description: A description of the webhook.
+ example: A webhook to send a coupon to the user.
+ type: string
+ verb:
+ description: API method for this webhook.
+ enum:
+ - POST
+ - PUT
+ - GET
+ - DELETE
+ - PATCH
+ example: POST
+ type: string
+ url:
+ description: API URL (supports templating using parameters) for this webhook.
+ example: www.my-company.com/my-endpoint-name
+ type: string
+ headers:
+ description: List of API HTTP headers for this webhook.
+ example:
+ - '{"Authorization": "Basic bmF2ZWVua3VtYXIU="}'
+ - '{"Content-Type": "application/json"}'
+ items:
+ pattern: ^([^:,]*):([^]*|[^,]*)$
+ type: string
+ type: array
+ payload:
+ description: API payload (supports templating using parameters) for this
+ webhook.
+ example: "{\n\t\"message\": \"${message}\"\n}"
+ type: string
+ params:
+ description: Array of template argument definitions.
+ example: []
+ items:
+ $ref: '#/components/schemas/TemplateArgDef'
+ type: array
+ enabled:
+ description: Enables or disables webhook from showing in the Rule Builder.
+ example: true
+ type: boolean
+ required:
+ - applicationIds
+ - created
+ - enabled
+ - headers
+ - id
+ - modified
+ - params
+ - title
+ - url
+ - verb
+ type: object
+ WebhookWithOutgoingIntegrationDetails:
+ description: ""
+ example:
+ headers:
+ - '{"Authorization": "Basic bmF2ZWVua3VtYXIU="}'
+ - '{"Content-Type": "application/json"}'
+ created: 2020-06-10T09:05:27.993483Z
+ outgoingIntegrationTemplateId: 1
+ verb: POST
+ description: A webhook to send a coupon to the user.
+ title: Send message
+ params: []
+ url: www.my-company.com/my-endpoint-name
+ enabled: true
+ applicationIds:
+ - 0
+ - 0
+ outgoingIntegrationTypeId: 1
+ outgoingIntegrationTypeName: Braze
+ payload: "{\n\t\"message\": \"${message}\"\n}"
+ modified: 2021-09-12T10:12:42Z
+ id: 6
+ properties:
+ id:
+ description: Internal ID of this entity.
+ example: 6
+ type: integer
+ created:
+ description: The time this entity was created.
+ example: 2020-06-10T09:05:27.993483Z
+ format: date-time
+ type: string
+ modified:
+ description: The time this entity was last modified.
+ example: 2021-09-12T10:12:42Z
+ format: date-time
+ type: string
+ applicationIds:
+ description: The IDs of the Applications that are related to this entity.
+ The IDs of the Applications that are related to this entity.
+ items:
+ description: ""
+ type: integer
+ minItems: 1
+ type: array
+ title:
+ description: Name or title for this webhook.
+ example: Send message
+ pattern: ^[A-Za-z][A-Za-z0-9_.!~*'() -]*$
+ type: string
+ description:
+ description: A description of the webhook.
+ example: A webhook to send a coupon to the user.
type: string
verb:
description: API method for this webhook.
@@ -27220,6 +28247,11 @@ components:
It is not possible to change this to `false` after it is set to `true`.
example: true
type: boolean
+ newAcsUrl:
+ description: |
+ Assertion Consumer Service (ACS) URL for setting up a new SAML connection with an identity provider like Okta or Microsoft Entra ID.
+ example: https://yourdeployment.talon.one/v1/saml_connections/5/saml_callback
+ type: string
required:
- enforced
type: object
@@ -27228,10 +28260,12 @@ components:
example:
rulesetId: 73
ruleIndex: 2
+ evaluationGroupID: 3
triggeredForCatalogItem: 786
campaignId: 244
ruleName: Give 20% discount
conditionIndex: 786
+ evaluationGroupMode: stackable
triggeredByCoupon: 4928
effectType: rejectCoupon
props: '{}'
@@ -27272,6 +28306,16 @@ components:
description: The index of the condition that was triggered.
example: 786
type: integer
+ evaluationGroupID:
+ description: The ID of the evaluation group. For more information, see [Managing
+ campaign evaluation](https://docs.talon.one/docs/product/applications/managing-campaign-evaluation).
+ example: 3
+ type: integer
+ evaluationGroupMode:
+ description: The evaluation mode of the evaluation group. For more information,
+ see [Managing campaign evaluation](https://docs.talon.one/docs/product/applications/managing-campaign-evaluation).
+ example: stackable
+ type: string
props:
description: The properties of the effect. See [API effects](https://docs.talon.one/docs/dev/integration-api/api-effects).
type: object
@@ -27323,6 +28367,16 @@ components:
description: The index of the condition that was triggered.
example: 786
type: integer
+ evaluationGroupID:
+ description: The ID of the evaluation group. For more information, see [Managing
+ campaign evaluation](https://docs.talon.one/docs/product/applications/managing-campaign-evaluation).
+ example: 3
+ type: integer
+ evaluationGroupMode:
+ description: The evaluation mode of the evaluation group. For more information,
+ see [Managing campaign evaluation](https://docs.talon.one/docs/product/applications/managing-campaign-evaluation).
+ example: stackable
+ type: string
required:
- campaignId
- effectType
@@ -27391,6 +28445,10 @@ components:
details:
description: More details about the failure.
type: string
+ campaignExclusionReason:
+ description: The reason why the campaign was not applied.
+ example: CampaignGaveLowerDiscount
+ type: string
required:
- rejectionReason
- value
@@ -27416,6 +28474,10 @@ components:
details:
description: More details about the failure.
type: string
+ campaignExclusionReason:
+ description: The reason why the campaign was not applied.
+ example: CampaignGaveLowerDiscount
+ type: string
required:
- rejectionReason
- value
@@ -28122,8 +29184,7 @@ components:
description: The current progress of the customer in the achievement.
type: number
target:
- description: The required number of actions or the transactional milestone
- to complete the achievement.
+ description: The target value to complete the achievement.
type: number
isJustCompleted:
description: Indicates if the customer has completed the achievement in
@@ -28137,6 +29198,41 @@ components:
- target
- value
type: object
+ RollbackIncreasedAchievementProgressEffectProps:
+ description: The properties specific to the "rollbackIncreasedAchievementProgress"
+ effect. This gets triggered whenever a closed session where the `increaseAchievementProgress`
+ effect was triggered is cancelled. This is applicable only when the customer
+ has not completed the achievement.
+ properties:
+ achievementId:
+ description: The internal ID of the achievement.
+ example: 10
+ type: integer
+ achievementName:
+ description: The name of the achievement.
+ example: FreeCoffee10Orders
+ type: string
+ progressTrackerId:
+ description: The internal ID of the achievement progress tracker.
+ type: integer
+ decreaseProgressBy:
+ description: The value by which the customer's current progress in the achievement
+ is decreased.
+ type: number
+ currentProgress:
+ description: The current progress of the customer in the achievement.
+ type: number
+ target:
+ description: The target value to complete the achievement.
+ type: number
+ required:
+ - achievementId
+ - achievementName
+ - currentProgress
+ - decreaseProgressBy
+ - progressTrackerId
+ - target
+ type: object
ErrorEffectProps:
description: Whenever an error occurred during evaluation, we return an error
effect. This should never happen for rules created in the rule builder.
@@ -30158,6 +31254,7 @@ components:
policy: '{}'
properties:
policy:
+ description: Indicates which notification properties to apply.
type: object
enabled:
default: true
@@ -30172,6 +31269,7 @@ components:
BaseNotificationEntity:
properties:
policy:
+ description: Indicates which notification properties to apply.
type: object
enabled:
default: true
@@ -30181,6 +31279,7 @@ components:
- policy
type: object
BaseNotificationPolicy:
+ description: Indicates which notification properties to apply.
type: object
ExpiringCouponsNotificationPolicy:
properties:
@@ -30270,6 +31369,28 @@ components:
- name
- scopes
type: object
+ CardAddedDeductedPointsNotificationPolicy:
+ properties:
+ name:
+ description: Notification name.
+ example: Christmas Sale
+ minLength: 1
+ type: string
+ scopes:
+ items:
+ enum:
+ - all
+ - campaign_manager
+ - management_api
+ - rule_engine
+ type: string
+ maxItems: 4
+ minItems: 1
+ type: array
+ required:
+ - name
+ - scopes
+ type: object
CouponsNotificationPolicy:
properties:
name:
@@ -30359,6 +31480,11 @@ components:
example: Christmas Sale
minLength: 1
type: string
+ batchingEnabled:
+ default: true
+ description: Indicates whether batching is activated.
+ example: false
+ type: boolean
required:
- name
type: object
@@ -30477,6 +31603,7 @@ components:
policy: '{}'
properties:
policy:
+ description: Indicates which notification properties to apply.
type: object
enabled:
default: true
@@ -30494,6 +31621,7 @@ components:
enum:
- campaign
- loyalty_added_deducted_points
+ - card_added_deducted_points
- coupon
- expiring_coupons
- expiring_points
@@ -30605,6 +31733,7 @@ components:
enum:
- campaign
- loyalty_added_deducted_points
+ - card_added_deducted_points
- coupon
- expiring_coupons
- expiring_points
@@ -30961,6 +32090,10 @@ components:
description: Webhook title.
example: Send email to customer via Braze
type: string
+ description:
+ description: A description of the webhook.
+ example: A webhook to send a coupon to the user.
+ type: string
applicationIds:
description: IDs of the Applications to which a webhook must be linked.
example:
@@ -32271,13 +33404,13 @@ components:
format: date-time
type: string
totalRevenue:
- $ref: '#/components/schemas/ApplicationAnalyticsDataPoint_totalRevenue'
+ $ref: '#/components/schemas/AnalyticsDataPoint'
sessionsCount:
- $ref: '#/components/schemas/ApplicationAnalyticsDataPoint_sessionsCount'
+ $ref: '#/components/schemas/AnalyticsDataPoint'
avgItemsPerSession:
- $ref: '#/components/schemas/ApplicationAnalyticsDataPoint_avgItemsPerSession'
+ $ref: '#/components/schemas/AnalyticsDataPoint'
avgSessionValue:
- $ref: '#/components/schemas/ApplicationAnalyticsDataPoint_avgSessionValue'
+ $ref: '#/components/schemas/AnalyticsDataPoint'
totalDiscounts:
description: The total value of discounts given for cart items in influenced
sessions.
@@ -32288,6 +33421,9 @@ components:
sessions.
example: 12.0
type: number
+ required:
+ - endTime
+ - startTime
type: object
ApplicationCampaignAnalytics:
properties:
@@ -32319,45 +33455,151 @@ components:
maxItems: 50
type: array
campaignState:
- default: enabled
description: |
The state of the campaign.
**Note:** A disabled or archived campaign is not evaluated for rules or coupons.
enum:
- - enabled
+ - expired
+ - scheduled
+ - running
+ - draft
- disabled
- archived
- example: enabled
- type: string
- campaignActiveRulesetId:
- description: |
- The [ID of the ruleset](https://docs.talon.one/management-api#operation/getRulesets) this
- campaign applies on customer session evaluation.
- example: 2
- type: integer
- campaignStartTime:
- description: Date and time when the campaign becomes active.
- example: 2021-07-20T22:00:00Z
- format: date-time
- type: string
- campaignEndTime:
- description: Date and time when the campaign becomes inactive.
- example: 2021-10-01T02:00:00Z
- format: date-time
+ example: running
type: string
totalRevenue:
- $ref: '#/components/schemas/ApplicationCampaignAnalytics_totalRevenue'
+ $ref: '#/components/schemas/AnalyticsDataPointWithTrendAndInfluencedRate'
sessionsCount:
- $ref: '#/components/schemas/ApplicationCampaignAnalytics_sessionsCount'
+ $ref: '#/components/schemas/AnalyticsDataPointWithTrendAndInfluencedRate'
avgItemsPerSession:
- $ref: '#/components/schemas/ApplicationCampaignAnalytics_avgItemsPerSession'
+ $ref: '#/components/schemas/AnalyticsDataPointWithTrendAndUplift'
avgSessionValue:
- $ref: '#/components/schemas/ApplicationCampaignAnalytics_avgSessionValue'
+ $ref: '#/components/schemas/AnalyticsDataPointWithTrendAndUplift'
totalDiscounts:
- $ref: '#/components/schemas/ApplicationCampaignAnalytics_totalDiscounts'
+ $ref: '#/components/schemas/AnalyticsDataPointWithTrend'
couponsCount:
- $ref: '#/components/schemas/ApplicationCampaignAnalytics_couponsCount'
+ $ref: '#/components/schemas/AnalyticsDataPointWithTrend'
+ required:
+ - campaignId
+ - campaignName
+ - campaignState
+ - campaignTags
+ - endTime
+ - startTime
+ type: object
+ AnalyticsDataPoint:
+ properties:
+ total:
+ example: 12.0
+ type: number
+ influenced:
+ example: 12.0
+ type: number
+ required:
+ - influenced
+ - total
+ type: object
+ AnalyticsDataPointWithTrendAndInfluencedRate:
+ properties:
+ value:
+ example: 12.0
+ type: number
+ influencedRate:
+ example: 12.0
+ type: number
+ trend:
+ example: 3.25
+ type: number
+ required:
+ - influencedRate
+ - trend
+ - value
+ type: object
+ AnalyticsDataPointWithTrend:
+ properties:
+ value:
+ example: 12.0
+ type: number
+ trend:
+ example: 3.25
+ type: number
+ required:
+ - trend
+ - value
+ type: object
+ AnalyticsDataPointWithTrendAndUplift:
+ properties:
+ value:
+ example: 12.0
+ type: number
+ uplift:
+ example: 3.25
+ type: number
+ trend:
+ example: 3.25
+ type: number
+ required:
+ - trend
+ - uplift
+ - value
+ type: object
+ GenerateCampaignDescription:
+ properties:
+ campaignID:
+ description: ID of the campaign.
+ type: integer
+ currency:
+ description: Currency for the campaign.
+ type: string
+ required:
+ - campaignID
+ - currency
+ type: object
+ GenerateCampaignTags:
+ properties:
+ campaignID:
+ description: ID of the campaign.
+ type: integer
+ required:
+ - campaignID
+ type: object
+ GenerateRuleTitle:
+ properties:
+ rule:
+ $ref: '#/components/schemas/GenerateRuleTitle_rule'
+ currency:
+ description: Currency for the campaign.
+ type: string
+ required:
+ - currency
+ - rule
+ type: object
+ GenerateItemFilterDescription:
+ properties:
+ itemFilter:
+ description: An array of item filter Talang expressions.
+ example:
+ - filter
+ - - "."
+ - Session
+ - CartItems
+ - - - Item
+ - - catch
+ - false
+ - - and
+ - - '!='
+ - - "."
+ - Item
+ - Attributes
+ - c_productType
+ - egiftcard
+ items:
+ properties: {}
+ type: object
+ type: array
+ required:
+ - itemFilter
type: object
inline_response_201:
example:
@@ -32629,7 +33871,6 @@ components:
enableCascadingDiscounts: true
loyaltyPrograms:
- cardBased: true
- canUpgradeToAdvancedTiers: true
tiers:
- name: Gold
minPoints: 300
@@ -32648,27 +33889,68 @@ components:
programId: 139
canUpdateTiers: true
usersPerCardLimit: 111
- created: 2020-06-10T09:05:27.993483Z
timezone: Europe/Berlin
- sandbox: true
description: Customers collect 10 points per 1$ spent
title: Point collection
canUpdateJoinPolicy: true
+ programJoinPolicy: not_join
+ accountID: 1
+ defaultPending: immediate
+ tiersDowngradePolicy: one_down
+ cardCodeSettings:
+ couponPattern: SUMMER-####-####
+ validCharacters:
+ - A
+ - B
+ - C
+ - D
+ - E
+ - F
+ - G
+ - H
+ - I
+ - J
+ - K
+ - L
+ - M
+ - "N"
+ - O
+ - P
+ - Q
+ - R
+ - S
+ - T
+ - U
+ - V
+ - W
+ - X
+ - "Y"
+ - Z
+ - "0"
+ - "1"
+ - "2"
+ - "3"
+ - "4"
+ - "5"
+ - "6"
+ - "7"
+ - "8"
+ - "9"
+ id: 0
+ canUpgradeToAdvancedTiers: true
+ created: 2020-06-10T09:05:27.993483Z
+ sandbox: true
subscribedApplications:
- 132
- 97
tiersExpirationPolicy: tier_start_date
- programJoinPolicy: not_join
- accountID: 1
defaultValidity: 2W_U
- defaultPending: immediate
- tiersDowngradePolicy: one_down
+ canUpdateTierExpirationPolicy: true
allowSubledger: false
tiersExpireIn: 27W_U
+ tiersStartDate: 2021-09-12T10:12:42Z
name: my_program
- id: 0
- cardBased: true
- canUpgradeToAdvancedTiers: true
tiers:
- name: Gold
minPoints: 300
@@ -32687,25 +33969,67 @@ components:
programId: 139
canUpdateTiers: true
usersPerCardLimit: 111
- created: 2020-06-10T09:05:27.993483Z
timezone: Europe/Berlin
- sandbox: true
description: Customers collect 10 points per 1$ spent
title: Point collection
canUpdateJoinPolicy: true
+ programJoinPolicy: not_join
+ accountID: 1
+ defaultPending: immediate
+ tiersDowngradePolicy: one_down
+ cardCodeSettings:
+ couponPattern: SUMMER-####-####
+ validCharacters:
+ - A
+ - B
+ - C
+ - D
+ - E
+ - F
+ - G
+ - H
+ - I
+ - J
+ - K
+ - L
+ - M
+ - "N"
+ - O
+ - P
+ - Q
+ - R
+ - S
+ - T
+ - U
+ - V
+ - W
+ - X
+ - "Y"
+ - Z
+ - "0"
+ - "1"
+ - "2"
+ - "3"
+ - "4"
+ - "5"
+ - "6"
+ - "7"
+ - "8"
+ - "9"
+ id: 0
+ canUpgradeToAdvancedTiers: true
+ created: 2020-06-10T09:05:27.993483Z
+ sandbox: true
subscribedApplications:
- 132
- 97
tiersExpirationPolicy: tier_start_date
- programJoinPolicy: not_join
- accountID: 1
defaultValidity: 2W_U
- defaultPending: immediate
- tiersDowngradePolicy: one_down
+ canUpdateTierExpirationPolicy: true
allowSubledger: false
tiersExpireIn: 27W_U
+ tiersStartDate: 2021-09-12T10:12:42Z
name: my_program
- id: 0
name: My Application
modified: 2021-09-12T10:12:42Z
defaultDiscountScope: sessionTotal
@@ -32744,7 +34068,6 @@ components:
enableCascadingDiscounts: true
loyaltyPrograms:
- cardBased: true
- canUpgradeToAdvancedTiers: true
tiers:
- name: Gold
minPoints: 300
@@ -32763,27 +34086,68 @@ components:
programId: 139
canUpdateTiers: true
usersPerCardLimit: 111
- created: 2020-06-10T09:05:27.993483Z
timezone: Europe/Berlin
- sandbox: true
description: Customers collect 10 points per 1$ spent
title: Point collection
canUpdateJoinPolicy: true
+ programJoinPolicy: not_join
+ accountID: 1
+ defaultPending: immediate
+ tiersDowngradePolicy: one_down
+ cardCodeSettings:
+ couponPattern: SUMMER-####-####
+ validCharacters:
+ - A
+ - B
+ - C
+ - D
+ - E
+ - F
+ - G
+ - H
+ - I
+ - J
+ - K
+ - L
+ - M
+ - "N"
+ - O
+ - P
+ - Q
+ - R
+ - S
+ - T
+ - U
+ - V
+ - W
+ - X
+ - "Y"
+ - Z
+ - "0"
+ - "1"
+ - "2"
+ - "3"
+ - "4"
+ - "5"
+ - "6"
+ - "7"
+ - "8"
+ - "9"
+ id: 0
+ canUpgradeToAdvancedTiers: true
+ created: 2020-06-10T09:05:27.993483Z
+ sandbox: true
subscribedApplications:
- 132
- 97
tiersExpirationPolicy: tier_start_date
- programJoinPolicy: not_join
- accountID: 1
defaultValidity: 2W_U
- defaultPending: immediate
- tiersDowngradePolicy: one_down
+ canUpdateTierExpirationPolicy: true
allowSubledger: false
tiersExpireIn: 27W_U
+ tiersStartDate: 2021-09-12T10:12:42Z
name: my_program
- id: 0
- cardBased: true
- canUpgradeToAdvancedTiers: true
tiers:
- name: Gold
minPoints: 300
@@ -32802,25 +34166,67 @@ components:
programId: 139
canUpdateTiers: true
usersPerCardLimit: 111
- created: 2020-06-10T09:05:27.993483Z
timezone: Europe/Berlin
- sandbox: true
description: Customers collect 10 points per 1$ spent
title: Point collection
canUpdateJoinPolicy: true
+ programJoinPolicy: not_join
+ accountID: 1
+ defaultPending: immediate
+ tiersDowngradePolicy: one_down
+ cardCodeSettings:
+ couponPattern: SUMMER-####-####
+ validCharacters:
+ - A
+ - B
+ - C
+ - D
+ - E
+ - F
+ - G
+ - H
+ - I
+ - J
+ - K
+ - L
+ - M
+ - "N"
+ - O
+ - P
+ - Q
+ - R
+ - S
+ - T
+ - U
+ - V
+ - W
+ - X
+ - "Y"
+ - Z
+ - "0"
+ - "1"
+ - "2"
+ - "3"
+ - "4"
+ - "5"
+ - "6"
+ - "7"
+ - "8"
+ - "9"
+ id: 0
+ canUpgradeToAdvancedTiers: true
+ created: 2020-06-10T09:05:27.993483Z
+ sandbox: true
subscribedApplications:
- 132
- 97
tiersExpirationPolicy: tier_start_date
- programJoinPolicy: not_join
- accountID: 1
defaultValidity: 2W_U
- defaultPending: immediate
- tiersDowngradePolicy: one_down
+ canUpdateTierExpirationPolicy: true
allowSubledger: false
tiersExpireIn: 27W_U
+ tiersStartDate: 2021-09-12T10:12:42Z
name: my_program
- id: 0
name: My Application
modified: 2021-09-12T10:12:42Z
defaultDiscountScope: sessionTotal
@@ -32866,6 +34272,7 @@ components:
- coupons
- referrals
createdLoyaltyPointsCount: 9.0
+ storesImported: true
couponSettings:
couponPattern: SUMMER-####-####
validCharacters:
@@ -33007,6 +34414,7 @@ components:
- coupons
- referrals
createdLoyaltyPointsCount: 9.0
+ storesImported: true
couponSettings:
couponPattern: SUMMER-####-####
validCharacters:
@@ -33971,7 +35379,6 @@ components:
example:
data:
- cardBased: true
- canUpgradeToAdvancedTiers: true
tiers:
- name: Gold
minPoints: 300
@@ -33990,27 +35397,68 @@ components:
programId: 139
canUpdateTiers: true
usersPerCardLimit: 111
- created: 2020-06-10T09:05:27.993483Z
timezone: Europe/Berlin
- sandbox: true
description: Customers collect 10 points per 1$ spent
title: Point collection
canUpdateJoinPolicy: true
+ programJoinPolicy: not_join
+ accountID: 1
+ defaultPending: immediate
+ tiersDowngradePolicy: one_down
+ cardCodeSettings:
+ couponPattern: SUMMER-####-####
+ validCharacters:
+ - A
+ - B
+ - C
+ - D
+ - E
+ - F
+ - G
+ - H
+ - I
+ - J
+ - K
+ - L
+ - M
+ - "N"
+ - O
+ - P
+ - Q
+ - R
+ - S
+ - T
+ - U
+ - V
+ - W
+ - X
+ - "Y"
+ - Z
+ - "0"
+ - "1"
+ - "2"
+ - "3"
+ - "4"
+ - "5"
+ - "6"
+ - "7"
+ - "8"
+ - "9"
+ id: 0
+ canUpgradeToAdvancedTiers: true
+ created: 2020-06-10T09:05:27.993483Z
+ sandbox: true
subscribedApplications:
- 132
- 97
tiersExpirationPolicy: tier_start_date
- programJoinPolicy: not_join
- accountID: 1
defaultValidity: 2W_U
- defaultPending: immediate
- tiersDowngradePolicy: one_down
+ canUpdateTierExpirationPolicy: true
allowSubledger: false
tiersExpireIn: 27W_U
+ tiersStartDate: 2021-09-12T10:12:42Z
name: my_program
- id: 0
- cardBased: true
- canUpgradeToAdvancedTiers: true
tiers:
- name: Gold
minPoints: 300
@@ -34029,25 +35477,67 @@ components:
programId: 139
canUpdateTiers: true
usersPerCardLimit: 111
- created: 2020-06-10T09:05:27.993483Z
timezone: Europe/Berlin
- sandbox: true
description: Customers collect 10 points per 1$ spent
title: Point collection
canUpdateJoinPolicy: true
+ programJoinPolicy: not_join
+ accountID: 1
+ defaultPending: immediate
+ tiersDowngradePolicy: one_down
+ cardCodeSettings:
+ couponPattern: SUMMER-####-####
+ validCharacters:
+ - A
+ - B
+ - C
+ - D
+ - E
+ - F
+ - G
+ - H
+ - I
+ - J
+ - K
+ - L
+ - M
+ - "N"
+ - O
+ - P
+ - Q
+ - R
+ - S
+ - T
+ - U
+ - V
+ - W
+ - X
+ - "Y"
+ - Z
+ - "0"
+ - "1"
+ - "2"
+ - "3"
+ - "4"
+ - "5"
+ - "6"
+ - "7"
+ - "8"
+ - "9"
+ id: 0
+ canUpgradeToAdvancedTiers: true
+ created: 2020-06-10T09:05:27.993483Z
+ sandbox: true
subscribedApplications:
- 132
- 97
tiersExpirationPolicy: tier_start_date
- programJoinPolicy: not_join
- accountID: 1
defaultValidity: 2W_U
- defaultPending: immediate
- tiersDowngradePolicy: one_down
+ canUpdateTierExpirationPolicy: true
allowSubledger: false
tiersExpireIn: 27W_U
+ tiersStartDate: 2021-09-12T10:12:42Z
name: my_program
- id: 0
totalResultSize: 1
properties:
totalResultSize:
@@ -34127,6 +35617,7 @@ components:
downgradePolicy: one_down
name: bronze
id: 11
+ startDate: 2000-01-23T04:56:07.000+00:00
identifier: summer-loyalty-card-0543
oldCardIdentifier: summer-loyalty-card-0543
usersPerCardLimit: 111
@@ -34150,8 +35641,10 @@ components:
downgradePolicy: one_down
name: bronze
id: 11
+ startDate: 2000-01-23T04:56:07.000+00:00
modified: 2021-09-12T10:12:42Z
id: 6
+ blockReason: Current card lost. Customer needs a new card.
newCardIdentifier: summer-loyalty-card-0543
programID: 125
status: active
@@ -34168,6 +35661,7 @@ components:
downgradePolicy: one_down
name: bronze
id: 11
+ startDate: 2000-01-23T04:56:07.000+00:00
identifier: summer-loyalty-card-0543
oldCardIdentifier: summer-loyalty-card-0543
usersPerCardLimit: 111
@@ -34191,8 +35685,10 @@ components:
downgradePolicy: one_down
name: bronze
id: 11
+ startDate: 2000-01-23T04:56:07.000+00:00
modified: 2021-09-12T10:12:42Z
id: 6
+ blockReason: Current card lost. Customer needs a new card.
newCardIdentifier: summer-loyalty-card-0543
programID: 125
status: active
@@ -34868,19 +36364,23 @@ components:
- effects:
- rulesetId: 73
ruleIndex: 2
+ evaluationGroupID: 3
triggeredForCatalogItem: 786
campaignId: 244
ruleName: Give 20% discount
conditionIndex: 786
+ evaluationGroupMode: stackable
triggeredByCoupon: 4928
effectType: rejectCoupon
props: '{}'
- rulesetId: 73
ruleIndex: 2
+ evaluationGroupID: 3
triggeredForCatalogItem: 786
campaignId: 244
ruleName: Give 20% discount
conditionIndex: 786
+ evaluationGroupMode: stackable
triggeredByCoupon: 4928
effectType: rejectCoupon
props: '{}'
@@ -34921,19 +36421,23 @@ components:
- effects:
- rulesetId: 73
ruleIndex: 2
+ evaluationGroupID: 3
triggeredForCatalogItem: 786
campaignId: 244
ruleName: Give 20% discount
conditionIndex: 786
+ evaluationGroupMode: stackable
triggeredByCoupon: 4928
effectType: rejectCoupon
props: '{}'
- rulesetId: 73
ruleIndex: 2
+ evaluationGroupID: 3
triggeredForCatalogItem: 786
campaignId: 244
ruleName: Give 20% discount
conditionIndex: 786
+ evaluationGroupMode: stackable
triggeredByCoupon: 4928
effectType: rejectCoupon
props: '{}'
@@ -35301,6 +36805,7 @@ components:
created: 2020-06-10T09:05:27.993483Z
outgoingIntegrationTemplateId: 1
verb: POST
+ description: A webhook to send a coupon to the user.
title: Send message
params: []
url: www.my-company.com/my-endpoint-name
@@ -35319,6 +36824,7 @@ components:
created: 2020-06-10T09:05:27.993483Z
outgoingIntegrationTemplateId: 1
verb: POST
+ description: A webhook to send a coupon to the user.
title: Send message
params: []
url: www.my-company.com/my-endpoint-name
@@ -35455,6 +36961,7 @@ components:
email: john.doe@example.com
policy:
Role: 127
+ additionalAttributes: '{}'
- created: 2020-06-10T09:05:27.993483Z
roles:
- 71
@@ -35473,6 +36980,7 @@ components:
email: john.doe@example.com
policy:
Role: 127
+ additionalAttributes: '{}'
totalResultSize: 1
properties:
totalResultSize:
@@ -35797,120 +37305,38 @@ components:
required:
- data
- hasMore
- ApplicationAnalyticsDataPoint_totalRevenue:
- description: The total, pre-discount value of all items purchased in a customer
- session.
- properties:
- total:
- example: 1.25
- type: number
- influenced:
- example: 3.25
- type: number
- ApplicationAnalyticsDataPoint_sessionsCount:
- description: The number of all closed sessions. The `influenced` value includes
- only sessions with at least one applied effect.
- properties:
- total:
- example: 15.0
- type: number
- influenced:
- example: 5.0
- type: number
- ApplicationAnalyticsDataPoint_avgItemsPerSession:
- description: The number of items from sessions divided by the number of sessions.
- The `influenced` value includes only sessions with at least one applied effect.
- properties:
- total:
- example: 1.25
- type: number
- influenced:
- example: 3.25
- type: number
- ApplicationAnalyticsDataPoint_avgSessionValue:
- description: The average customer session value, calculated by dividing the
- revenue value by the number of sessions. The `influenced` value includes only
- sessions with at least one applied effect.
- properties:
- total:
- example: 1.25
- type: number
- influenced:
- example: 3.25
- type: number
- ApplicationCampaignAnalytics_totalRevenue:
- description: The total, pre-discount value of all items purchased in a customer
- session.
- properties:
- value:
- example: 1.25
- type: number
- influence_rate:
- example: 3.25
- type: number
- trend:
- example: 3.25
- type: number
- ApplicationCampaignAnalytics_sessionsCount:
- description: The number of all closed sessions. The `influenced` value includes
- only sessions with at least one applied effect.
- properties:
- value:
- example: 12.0
- type: number
- influence_rate:
- example: 3.25
- type: number
- trend:
- example: 3.25
- type: number
- ApplicationCampaignAnalytics_avgItemsPerSession:
- description: The number of items from sessions divided by the number of sessions.
- The `influenced` value includes only sessions with at least one applied effect.
- properties:
- value:
- example: 12.0
- type: number
- uplift:
- example: 3.25
- type: number
- trend:
- example: 3.25
- type: number
- ApplicationCampaignAnalytics_avgSessionValue:
- description: The average customer session value, calculated by dividing the
- revenue value by the number of sessions. The `influenced` value includes only
- sessions with at least one applied effect.
+ GenerateRuleTitle_rule:
properties:
- value:
- example: 12.0
- type: number
- uplift:
- example: 3.25
- type: number
- trend:
- example: 3.25
- type: number
- ApplicationCampaignAnalytics_totalDiscounts:
- description: The total value of discounts given for cart items in influenced
- sessions.
- properties:
- value:
- example: 10.0
- type: number
- trend:
- example: 3.25
- type: number
- ApplicationCampaignAnalytics_couponsCount:
- description: The number of times a coupon was successfully redeemed in influenced
- sessions.
- properties:
- value:
- example: 10.0
- type: number
- trend:
- example: 3.25
- type: number
+ effects:
+ description: An array of effectful Talang expressions in arrays that will
+ be evaluated when a rule matches.
+ example:
+ - catch
+ - - noop
+ - - setDiscount
+ - 10% off
+ - - '*'
+ - - "."
+ - Session
+ - Total
+ - - /
+ - 10
+ - 100
+ items:
+ properties: {}
+ type: object
+ type: array
+ condition:
+ description: A Talang expression that will be evaluated in the context of
+ the given event.
+ example:
+ - and
+ - - couponValid
+ items:
+ properties: {}
+ type: object
+ minItems: 1
+ type: array
securitySchemes:
api_key_v1:
description: |
diff --git a/build.gradle b/build.gradle
index 66da309..5dcd19b 100644
--- a/build.gradle
+++ b/build.gradle
@@ -3,7 +3,7 @@ apply plugin: 'eclipse'
apply plugin: 'java'
group = 'one.talon'
-version = '8.0.0'
+version = '9.0.0'
buildscript {
repositories {
diff --git a/build.sbt b/build.sbt
index 6fc3d42..63aa64a 100644
--- a/build.sbt
+++ b/build.sbt
@@ -2,7 +2,7 @@ lazy val root = (project in file(".")).
settings(
organization := "one.talon",
name := "talon-one-client",
- version := "8.0.0",
+ version := "9.0.0",
scalaVersion := "2.11.4",
scalacOptions ++= Seq("-feature"),
javacOptions in compile ++= Seq("-Xlint:deprecation"),
diff --git a/docs/AdditionalCampaignProperties.md b/docs/AdditionalCampaignProperties.md
index 82026fd..60577fa 100644
--- a/docs/AdditionalCampaignProperties.md
+++ b/docs/AdditionalCampaignProperties.md
@@ -28,6 +28,7 @@ Name | Type | Description | Notes
**updatedBy** | **String** | Name of the user who last updated this campaign if available. | [optional]
**templateId** | **Integer** | The ID of the Campaign Template this Campaign was created from. | [optional]
**frontendState** | [**FrontendStateEnum**](#FrontendStateEnum) | A campaign state described exactly as in the Campaign Manager. |
+**storesImported** | **Boolean** | Indicates whether the linked stores were imported via a CSV file. |
diff --git a/docs/AnalyticsDataPoint.md b/docs/AnalyticsDataPoint.md
new file mode 100644
index 0000000..f42cedb
--- /dev/null
+++ b/docs/AnalyticsDataPoint.md
@@ -0,0 +1,13 @@
+
+
+# AnalyticsDataPoint
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**total** | [**BigDecimal**](BigDecimal.md) | |
+**influenced** | [**BigDecimal**](BigDecimal.md) | |
+
+
+
diff --git a/docs/AnalyticsDataPointWithTrend.md b/docs/AnalyticsDataPointWithTrend.md
new file mode 100644
index 0000000..e0b6dd6
--- /dev/null
+++ b/docs/AnalyticsDataPointWithTrend.md
@@ -0,0 +1,13 @@
+
+
+# AnalyticsDataPointWithTrend
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**value** | [**BigDecimal**](BigDecimal.md) | |
+**trend** | [**BigDecimal**](BigDecimal.md) | |
+
+
+
diff --git a/docs/AnalyticsDataPointWithTrendAndInfluencedRate.md b/docs/AnalyticsDataPointWithTrendAndInfluencedRate.md
new file mode 100644
index 0000000..00e5d62
--- /dev/null
+++ b/docs/AnalyticsDataPointWithTrendAndInfluencedRate.md
@@ -0,0 +1,14 @@
+
+
+# AnalyticsDataPointWithTrendAndInfluencedRate
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**value** | [**BigDecimal**](BigDecimal.md) | |
+**influencedRate** | [**BigDecimal**](BigDecimal.md) | |
+**trend** | [**BigDecimal**](BigDecimal.md) | |
+
+
+
diff --git a/docs/AnalyticsDataPointWithTrendAndUplift.md b/docs/AnalyticsDataPointWithTrendAndUplift.md
new file mode 100644
index 0000000..6cb4350
--- /dev/null
+++ b/docs/AnalyticsDataPointWithTrendAndUplift.md
@@ -0,0 +1,14 @@
+
+
+# AnalyticsDataPointWithTrendAndUplift
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**value** | [**BigDecimal**](BigDecimal.md) | |
+**uplift** | [**BigDecimal**](BigDecimal.md) | |
+**trend** | [**BigDecimal**](BigDecimal.md) | |
+
+
+
diff --git a/docs/ApplicationAnalyticsDataPoint.md b/docs/ApplicationAnalyticsDataPoint.md
index d02dc8c..6135355 100644
--- a/docs/ApplicationAnalyticsDataPoint.md
+++ b/docs/ApplicationAnalyticsDataPoint.md
@@ -6,12 +6,12 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**startTime** | [**OffsetDateTime**](OffsetDateTime.md) | The start of the aggregation time frame in UTC. | [optional]
-**endTime** | [**OffsetDateTime**](OffsetDateTime.md) | The end of the aggregation time frame in UTC. | [optional]
-**totalRevenue** | [**ApplicationAnalyticsDataPointTotalRevenue**](ApplicationAnalyticsDataPointTotalRevenue.md) | | [optional]
-**sessionsCount** | [**ApplicationAnalyticsDataPointSessionsCount**](ApplicationAnalyticsDataPointSessionsCount.md) | | [optional]
-**avgItemsPerSession** | [**ApplicationAnalyticsDataPointAvgItemsPerSession**](ApplicationAnalyticsDataPointAvgItemsPerSession.md) | | [optional]
-**avgSessionValue** | [**ApplicationAnalyticsDataPointAvgSessionValue**](ApplicationAnalyticsDataPointAvgSessionValue.md) | | [optional]
+**startTime** | [**OffsetDateTime**](OffsetDateTime.md) | The start of the aggregation time frame in UTC. |
+**endTime** | [**OffsetDateTime**](OffsetDateTime.md) | The end of the aggregation time frame in UTC. |
+**totalRevenue** | [**AnalyticsDataPoint**](AnalyticsDataPoint.md) | | [optional]
+**sessionsCount** | [**AnalyticsDataPoint**](AnalyticsDataPoint.md) | | [optional]
+**avgItemsPerSession** | [**AnalyticsDataPoint**](AnalyticsDataPoint.md) | | [optional]
+**avgSessionValue** | [**AnalyticsDataPoint**](AnalyticsDataPoint.md) | | [optional]
**totalDiscounts** | [**BigDecimal**](BigDecimal.md) | The total value of discounts given for cart items in influenced sessions. | [optional]
**couponsCount** | [**BigDecimal**](BigDecimal.md) | The number of times a coupon was successfully redeemed in influenced sessions. | [optional]
diff --git a/docs/ApplicationCampaignAnalytics.md b/docs/ApplicationCampaignAnalytics.md
index fc7ae1b..1544959 100644
--- a/docs/ApplicationCampaignAnalytics.md
+++ b/docs/ApplicationCampaignAnalytics.md
@@ -6,21 +6,18 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**startTime** | [**OffsetDateTime**](OffsetDateTime.md) | The start of the aggregation time frame in UTC. | [optional]
-**endTime** | [**OffsetDateTime**](OffsetDateTime.md) | The end of the aggregation time frame in UTC. | [optional]
-**campaignId** | **Integer** | The ID of the campaign. | [optional]
-**campaignName** | **String** | The name of the campaign. | [optional]
-**campaignTags** | **List<String>** | A list of tags for the campaign. | [optional]
-**campaignState** | [**CampaignStateEnum**](#CampaignStateEnum) | The state of the campaign. **Note:** A disabled or archived campaign is not evaluated for rules or coupons. | [optional]
-**campaignActiveRulesetId** | **Integer** | The [ID of the ruleset](https://docs.talon.one/management-api#operation/getRulesets) this campaign applies on customer session evaluation. | [optional]
-**campaignStartTime** | [**OffsetDateTime**](OffsetDateTime.md) | Date and time when the campaign becomes active. | [optional]
-**campaignEndTime** | [**OffsetDateTime**](OffsetDateTime.md) | Date and time when the campaign becomes inactive. | [optional]
-**totalRevenue** | [**ApplicationCampaignAnalyticsTotalRevenue**](ApplicationCampaignAnalyticsTotalRevenue.md) | | [optional]
-**sessionsCount** | [**ApplicationCampaignAnalyticsSessionsCount**](ApplicationCampaignAnalyticsSessionsCount.md) | | [optional]
-**avgItemsPerSession** | [**ApplicationCampaignAnalyticsAvgItemsPerSession**](ApplicationCampaignAnalyticsAvgItemsPerSession.md) | | [optional]
-**avgSessionValue** | [**ApplicationCampaignAnalyticsAvgSessionValue**](ApplicationCampaignAnalyticsAvgSessionValue.md) | | [optional]
-**totalDiscounts** | [**ApplicationCampaignAnalyticsTotalDiscounts**](ApplicationCampaignAnalyticsTotalDiscounts.md) | | [optional]
-**couponsCount** | [**ApplicationCampaignAnalyticsCouponsCount**](ApplicationCampaignAnalyticsCouponsCount.md) | | [optional]
+**startTime** | [**OffsetDateTime**](OffsetDateTime.md) | The start of the aggregation time frame in UTC. |
+**endTime** | [**OffsetDateTime**](OffsetDateTime.md) | The end of the aggregation time frame in UTC. |
+**campaignId** | **Integer** | The ID of the campaign. |
+**campaignName** | **String** | The name of the campaign. |
+**campaignTags** | **List<String>** | A list of tags for the campaign. |
+**campaignState** | [**CampaignStateEnum**](#CampaignStateEnum) | The state of the campaign. **Note:** A disabled or archived campaign is not evaluated for rules or coupons. |
+**totalRevenue** | [**AnalyticsDataPointWithTrendAndInfluencedRate**](AnalyticsDataPointWithTrendAndInfluencedRate.md) | | [optional]
+**sessionsCount** | [**AnalyticsDataPointWithTrendAndInfluencedRate**](AnalyticsDataPointWithTrendAndInfluencedRate.md) | | [optional]
+**avgItemsPerSession** | [**AnalyticsDataPointWithTrendAndUplift**](AnalyticsDataPointWithTrendAndUplift.md) | | [optional]
+**avgSessionValue** | [**AnalyticsDataPointWithTrendAndUplift**](AnalyticsDataPointWithTrendAndUplift.md) | | [optional]
+**totalDiscounts** | [**AnalyticsDataPointWithTrend**](AnalyticsDataPointWithTrend.md) | | [optional]
+**couponsCount** | [**AnalyticsDataPointWithTrend**](AnalyticsDataPointWithTrend.md) | | [optional]
@@ -28,7 +25,10 @@ Name | Type | Description | Notes
Name | Value
---- | -----
-ENABLED | "enabled"
+EXPIRED | "expired"
+SCHEDULED | "scheduled"
+RUNNING | "running"
+DRAFT | "draft"
DISABLED | "disabled"
ARCHIVED | "archived"
diff --git a/docs/Attribute.md b/docs/Attribute.md
index 4b8fa08..3ca828f 100644
--- a/docs/Attribute.md
+++ b/docs/Attribute.md
@@ -31,7 +31,6 @@ Name | Type | Description | Notes
Name | Value
---- | -----
-ACCOUNT | "Account"
APPLICATION | "Application"
CAMPAIGN | "Campaign"
CUSTOMERPROFILE | "CustomerProfile"
diff --git a/docs/BaseLoyaltyProgram.md b/docs/BaseLoyaltyProgram.md
index 502fe4c..a7ca501 100644
--- a/docs/BaseLoyaltyProgram.md
+++ b/docs/BaseLoyaltyProgram.md
@@ -14,38 +14,42 @@ Name | Type | Description | Notes
**allowSubledger** | **Boolean** | Indicates if this program supports subledgers inside the program. | [optional]
**usersPerCardLimit** | **Integer** | The max amount of user profiles with whom a card can be shared. This can be set to 0 for no limit. This property is only used when `cardBased` is `true`. | [optional]
**sandbox** | **Boolean** | Indicates if this program is a live or sandbox program. Programs of a given type can only be connected to Applications of the same type. | [optional]
-**tiersExpirationPolicy** | [**TiersExpirationPolicyEnum**](#TiersExpirationPolicyEnum) | The policy that defines which date is used to calculate the expiration date of a customer's current tier. - `tier_start_date`: The tier expiration date is calculated based on when the customer joined the current tier. - `program_join_date`: The tier expiration date is calculated based on when the customer joined the loyalty program. | [optional]
+**programJoinPolicy** | [**ProgramJoinPolicyEnum**](#ProgramJoinPolicyEnum) | The policy that defines when the customer joins the loyalty program. - `not_join`: The customer does not join the loyalty program but can still earn and spend loyalty points. **Note**: The customer does not have a program join date. - `points_activated`: The customer joins the loyalty program only when their earned loyalty points become active for the first time. - `points_earned`: The customer joins the loyalty program when they earn loyalty points for the first time. | [optional]
+**tiersExpirationPolicy** | [**TiersExpirationPolicyEnum**](#TiersExpirationPolicyEnum) | The policy that defines which date is used to calculate the expiration date of a customer's current tier. - `tier_start_date`: The tier expiration date is calculated based on when the customer joined the current tier. - `program_join_date`: The tier expiration date is calculated based on when the customer joined the loyalty program. - `customer_attribute`: The tier expiration date is calculated based on a custom customer attribute. - `absolute_expiration`: The tier expires on a specified date and time. **Note**: For absolute expiration, it is required to provide a `tiersStartDate.` | [optional]
+**tiersStartDate** | [**OffsetDateTime**](OffsetDateTime.md) | Timestamp at which the tier starts for all customers. **Note**: This is only required when the tier expiration policy is set to `absolute_expiration`. | [optional]
**tiersExpireIn** | **String** | The amount of time after which the tier expires. The time format is an **integer** followed by one letter indicating the time unit. Examples: `30s`, `40m`, `1h`, `5D`, `7W`, `10M`, `15Y`. Available units: - `s`: seconds - `m`: minutes - `h`: hours - `D`: days - `W`: weeks - `M`: months - `Y`: years You can round certain units up or down: - `_D` for rounding down days only. Signifies the start of the day. - `_U` for rounding up days, weeks, months and years. Signifies the end of the day, week, month or year. | [optional]
**tiersDowngradePolicy** | [**TiersDowngradePolicyEnum**](#TiersDowngradePolicyEnum) | Customers's tier downgrade policy. - `one_down`: Once the tier expires and if the user doesn't have enough points to stay in the tier, the user is downgraded one tier down. - `balance_based`: Once the tier expires, the user's tier is evaluated based on the amount of active points the user has at this instant. | [optional]
-**programJoinPolicy** | [**ProgramJoinPolicyEnum**](#ProgramJoinPolicyEnum) | The policy that defines when the customer joins the loyalty program. - `not_join`: The customer does not join the loyalty program but can still earn and spend loyalty points. **Note**: The customer does not have a program join date. - `points_activated`: The customer joins the loyalty program only when their earned loyalty points become active for the first time. - `points_earned`: The customer joins the loyalty program when they earn loyalty points for the first time. | [optional]
+**cardCodeSettings** | [**CodeGeneratorSettings**](CodeGeneratorSettings.md) | | [optional]
-## Enum: TiersExpirationPolicyEnum
+## Enum: ProgramJoinPolicyEnum
Name | Value
---- | -----
-TIER_START_DATE | "tier_start_date"
-PROGRAM_JOIN_DATE | "program_join_date"
+NOT_JOIN | "not_join"
+POINTS_ACTIVATED | "points_activated"
+POINTS_EARNED | "points_earned"
-## Enum: TiersDowngradePolicyEnum
+## Enum: TiersExpirationPolicyEnum
Name | Value
---- | -----
-ONE_DOWN | "one_down"
-BALANCE_BASED | "balance_based"
+TIER_START_DATE | "tier_start_date"
+PROGRAM_JOIN_DATE | "program_join_date"
+CUSTOMER_ATTRIBUTE | "customer_attribute"
+ABSOLUTE_EXPIRATION | "absolute_expiration"
-## Enum: ProgramJoinPolicyEnum
+## Enum: TiersDowngradePolicyEnum
Name | Value
---- | -----
-NOT_JOIN | "not_join"
-POINTS_ACTIVATED | "points_activated"
-POINTS_EARNED | "points_earned"
+ONE_DOWN | "one_down"
+BALANCE_BASED | "balance_based"
diff --git a/docs/BaseNotification.md b/docs/BaseNotification.md
index 62ee4c2..175e15c 100644
--- a/docs/BaseNotification.md
+++ b/docs/BaseNotification.md
@@ -7,7 +7,7 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**policy** | [**Object**](.md) | |
+**policy** | [**Object**](.md) | Indicates which notification properties to apply. |
**enabled** | **Boolean** | Indicates whether the notification is activated. | [optional]
**webhook** | [**BaseNotificationWebhook**](BaseNotificationWebhook.md) | |
**id** | **Integer** | Unique ID for this entity. |
@@ -21,6 +21,7 @@ Name | Value
---- | -----
CAMPAIGN | "campaign"
LOYALTY_ADDED_DEDUCTED_POINTS | "loyalty_added_deducted_points"
+CARD_ADDED_DEDUCTED_POINTS | "card_added_deducted_points"
COUPON | "coupon"
EXPIRING_COUPONS | "expiring_coupons"
EXPIRING_POINTS | "expiring_points"
diff --git a/docs/BaseNotificationEntity.md b/docs/BaseNotificationEntity.md
index 0cfcde7..ff86bd5 100644
--- a/docs/BaseNotificationEntity.md
+++ b/docs/BaseNotificationEntity.md
@@ -6,7 +6,7 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**policy** | [**Object**](.md) | |
+**policy** | [**Object**](.md) | Indicates which notification properties to apply. |
**enabled** | **Boolean** | Indicates whether the notification is activated. | [optional]
diff --git a/docs/Campaign.md b/docs/Campaign.md
index 2c6f64b..b3a8b5c 100644
--- a/docs/Campaign.md
+++ b/docs/Campaign.md
@@ -48,6 +48,7 @@ Name | Type | Description | Notes
**updatedBy** | **String** | Name of the user who last updated this campaign if available. | [optional]
**templateId** | **Integer** | The ID of the Campaign Template this Campaign was created from. | [optional]
**frontendState** | [**FrontendStateEnum**](#FrontendStateEnum) | A campaign state described exactly as in the Campaign Manager. |
+**storesImported** | **Boolean** | Indicates whether the linked stores were imported via a CSV file. |
diff --git a/docs/CampaignNotificationPolicy.md b/docs/CampaignNotificationPolicy.md
index 89d59d2..6cdc57d 100644
--- a/docs/CampaignNotificationPolicy.md
+++ b/docs/CampaignNotificationPolicy.md
@@ -7,6 +7,7 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**name** | **String** | Notification name. |
+**batchingEnabled** | **Boolean** | Indicates whether batching is activated. | [optional]
diff --git a/docs/CardAddedDeductedPointsNotificationPolicy.md b/docs/CardAddedDeductedPointsNotificationPolicy.md
new file mode 100644
index 0000000..f83a1ee
--- /dev/null
+++ b/docs/CardAddedDeductedPointsNotificationPolicy.md
@@ -0,0 +1,24 @@
+
+
+# CardAddedDeductedPointsNotificationPolicy
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**name** | **String** | Notification name. |
+**scopes** | [**List<ScopesEnum>**](#List<ScopesEnum>) | |
+
+
+
+## Enum: List<ScopesEnum>
+
+Name | Value
+---- | -----
+ALL | "all"
+CAMPAIGN_MANAGER | "campaign_manager"
+MANAGEMENT_API | "management_api"
+RULE_ENGINE | "rule_engine"
+
+
+
diff --git a/docs/CodeGeneratorSettings.md b/docs/CodeGeneratorSettings.md
index 29ecf80..f47285a 100644
--- a/docs/CodeGeneratorSettings.md
+++ b/docs/CodeGeneratorSettings.md
@@ -7,7 +7,7 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**validCharacters** | **List<String>** | List of characters used to generate the random parts of a code. |
-**couponPattern** | **String** | The pattern used to generate coupon codes. The character `#` is a placeholder and is replaced by a random character from the `validCharacters` set. |
+**couponPattern** | **String** | The pattern used to generate codes, such as coupon codes, referral codes, and loyalty cards. The character `#` is a placeholder and is replaced by a random character from the `validCharacters` set. |
diff --git a/docs/Effect.md b/docs/Effect.md
index de6c7ec..dfb96ec 100644
--- a/docs/Effect.md
+++ b/docs/Effect.md
@@ -15,6 +15,8 @@ Name | Type | Description | Notes
**triggeredByCoupon** | **Integer** | The ID of the coupon that was being evaluated when this effect was triggered. | [optional]
**triggeredForCatalogItem** | **Integer** | The ID of the catalog item that was being evaluated when this effect was triggered. | [optional]
**conditionIndex** | **Integer** | The index of the condition that was triggered. | [optional]
+**evaluationGroupID** | **Integer** | The ID of the evaluation group. For more information, see [Managing campaign evaluation](https://docs.talon.one/docs/product/applications/managing-campaign-evaluation). | [optional]
+**evaluationGroupMode** | **String** | The evaluation mode of the evaluation group. For more information, see [Managing campaign evaluation](https://docs.talon.one/docs/product/applications/managing-campaign-evaluation). | [optional]
**props** | [**Object**](.md) | The properties of the effect. See [API effects](https://docs.talon.one/docs/dev/integration-api/api-effects). |
diff --git a/docs/EffectEntity.md b/docs/EffectEntity.md
index a3c98fb..e60e762 100644
--- a/docs/EffectEntity.md
+++ b/docs/EffectEntity.md
@@ -15,6 +15,8 @@ Name | Type | Description | Notes
**triggeredByCoupon** | **Integer** | The ID of the coupon that was being evaluated when this effect was triggered. | [optional]
**triggeredForCatalogItem** | **Integer** | The ID of the catalog item that was being evaluated when this effect was triggered. | [optional]
**conditionIndex** | **Integer** | The index of the condition that was triggered. | [optional]
+**evaluationGroupID** | **Integer** | The ID of the evaluation group. For more information, see [Managing campaign evaluation](https://docs.talon.one/docs/product/applications/managing-campaign-evaluation). | [optional]
+**evaluationGroupMode** | **String** | The evaluation mode of the evaluation group. For more information, see [Managing campaign evaluation](https://docs.talon.one/docs/product/applications/managing-campaign-evaluation). | [optional]
diff --git a/docs/GenerateCampaignDescription.md b/docs/GenerateCampaignDescription.md
new file mode 100644
index 0000000..e374b2f
--- /dev/null
+++ b/docs/GenerateCampaignDescription.md
@@ -0,0 +1,13 @@
+
+
+# GenerateCampaignDescription
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**campaignID** | **Integer** | ID of the campaign. |
+**currency** | **String** | Currency for the campaign. |
+
+
+
diff --git a/docs/GenerateCampaignTags.md b/docs/GenerateCampaignTags.md
new file mode 100644
index 0000000..abcf31e
--- /dev/null
+++ b/docs/GenerateCampaignTags.md
@@ -0,0 +1,12 @@
+
+
+# GenerateCampaignTags
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**campaignID** | **Integer** | ID of the campaign. |
+
+
+
diff --git a/docs/GenerateItemFilterDescription.md b/docs/GenerateItemFilterDescription.md
new file mode 100644
index 0000000..68ee3c7
--- /dev/null
+++ b/docs/GenerateItemFilterDescription.md
@@ -0,0 +1,12 @@
+
+
+# GenerateItemFilterDescription
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**itemFilter** | **List<Object>** | An array of item filter Talang expressions. |
+
+
+
diff --git a/docs/GenerateRuleTitle.md b/docs/GenerateRuleTitle.md
new file mode 100644
index 0000000..84f623d
--- /dev/null
+++ b/docs/GenerateRuleTitle.md
@@ -0,0 +1,13 @@
+
+
+# GenerateRuleTitle
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**rule** | [**GenerateRuleTitleRule**](GenerateRuleTitleRule.md) | |
+**currency** | **String** | Currency for the campaign. |
+
+
+
diff --git a/docs/GenerateRuleTitleRule.md b/docs/GenerateRuleTitleRule.md
new file mode 100644
index 0000000..8b938c9
--- /dev/null
+++ b/docs/GenerateRuleTitleRule.md
@@ -0,0 +1,13 @@
+
+
+# GenerateRuleTitleRule
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**effects** | **List<Object>** | An array of effectful Talang expressions in arrays that will be evaluated when a rule matches. | [optional]
+**condition** | **List<Object>** | A Talang expression that will be evaluated in the context of the given event. | [optional]
+
+
+
diff --git a/docs/IncreaseAchievementProgressEffectProps.md b/docs/IncreaseAchievementProgressEffectProps.md
index 842e789..b0e7992 100644
--- a/docs/IncreaseAchievementProgressEffectProps.md
+++ b/docs/IncreaseAchievementProgressEffectProps.md
@@ -12,7 +12,7 @@ Name | Type | Description | Notes
**progressTrackerId** | **Integer** | The internal ID of the achievement progress tracker. | [optional]
**delta** | [**BigDecimal**](BigDecimal.md) | The value by which the customer's current progress in the achievement is increased. |
**value** | [**BigDecimal**](BigDecimal.md) | The current progress of the customer in the achievement. |
-**target** | [**BigDecimal**](BigDecimal.md) | The required number of actions or the transactional milestone to complete the achievement. |
+**target** | [**BigDecimal**](BigDecimal.md) | The target value to complete the achievement. |
**isJustCompleted** | **Boolean** | Indicates if the customer has completed the achievement in the current session. |
diff --git a/docs/IntegrationApi.md b/docs/IntegrationApi.md
index b949bb8..d8c2d4e 100644
--- a/docs/IntegrationApi.md
+++ b/docs/IntegrationApi.md
@@ -765,7 +765,7 @@ Name | Type | Description | Notes
# **getLoyaltyBalances**
-> LoyaltyBalances getLoyaltyBalances(loyaltyProgramId, integrationId, endDate, subledgerId)
+> LoyaltyBalancesWithTiers getLoyaltyBalances(loyaltyProgramId, integrationId, endDate, subledgerId, includeTiers, includeProjectedTier)
Get customer's loyalty points
@@ -797,8 +797,10 @@ public class Example {
String integrationId = "integrationId_example"; // String | The integration identifier for this customer profile. Must be: - Unique within the deployment. - Stable for the customer. Do not use an ID that the customer can update themselves. For example, you can use a database ID. Once set, you cannot update this identifier.
OffsetDateTime endDate = new OffsetDateTime(); // OffsetDateTime | Used to return expired, active, and pending loyalty balances before this timestamp. You can enter any past, present, or future timestamp value. **Note:** - It must be an RFC3339 timestamp string. - You can include a time component in your string, for example, `T23:59:59` to specify the end of the day. The time zone setting considered is `UTC`. If you do not include a time component, a default time value of `T00:00:00` (midnight) in `UTC` is considered.
String subledgerId = "subledgerId_example"; // String | The ID of the subledger by which we filter the data.
+ Boolean includeTiers = false; // Boolean | Indicates whether tier information is included in the response. When set to `true`, the response includes information about the current tier and the number of points required to move to next tier.
+ Boolean includeProjectedTier = false; // Boolean | Indicates whether the customer's projected tier information is included in the response. When set to `true`, the response includes information about the customer’s active points and the name of the projected tier. **Note** We recommend filtering by `subledgerId` for better performance.
try {
- LoyaltyBalances result = apiInstance.getLoyaltyBalances(loyaltyProgramId, integrationId, endDate, subledgerId);
+ LoyaltyBalancesWithTiers result = apiInstance.getLoyaltyBalances(loyaltyProgramId, integrationId, endDate, subledgerId, includeTiers, includeProjectedTier);
System.out.println(result);
} catch (ApiException e) {
System.err.println("Exception when calling IntegrationApi#getLoyaltyBalances");
@@ -819,10 +821,12 @@ Name | Type | Description | Notes
**integrationId** | **String**| The integration identifier for this customer profile. Must be: - Unique within the deployment. - Stable for the customer. Do not use an ID that the customer can update themselves. For example, you can use a database ID. Once set, you cannot update this identifier. |
**endDate** | **OffsetDateTime**| Used to return expired, active, and pending loyalty balances before this timestamp. You can enter any past, present, or future timestamp value. **Note:** - It must be an RFC3339 timestamp string. - You can include a time component in your string, for example, `T23:59:59` to specify the end of the day. The time zone setting considered is `UTC`. If you do not include a time component, a default time value of `T00:00:00` (midnight) in `UTC` is considered. | [optional]
**subledgerId** | **String**| The ID of the subledger by which we filter the data. | [optional]
+ **includeTiers** | **Boolean**| Indicates whether tier information is included in the response. When set to `true`, the response includes information about the current tier and the number of points required to move to next tier. | [optional] [default to false]
+ **includeProjectedTier** | **Boolean**| Indicates whether the customer's projected tier information is included in the response. When set to `true`, the response includes information about the customer’s active points and the name of the projected tier. **Note** We recommend filtering by `subledgerId` for better performance. | [optional] [default to false]
### Return type
-[**LoyaltyBalances**](LoyaltyBalances.md)
+[**LoyaltyBalancesWithTiers**](LoyaltyBalancesWithTiers.md)
### Authorization
@@ -1555,7 +1559,7 @@ Name | Type | Description | Notes
Sync cart item catalog
-Perform one or more of the following actions for a given cart item catalog: - Adding an item to the catalog. - Adding several items to the catalog. - Editing the attributes of an item in the catalog. - Editing the attributes of several items in the catalog. - Removing an item from the catalog. - Removing several items from the catalog. You can add, update, or delete up to 1000 cart items in a single request. Each item synced to a catalog must have a unique `SKU`. **Important**: Syncing items with duplicate `SKU` values in a single request returns an error message with a `400` status code. For more information, read [managing cart item catalogs](https://docs.talon.one/docs/product/account/dev-tools/managing-cart-item-catalogs). ### Filtering cart items Use [cart item attributes](https://docs.talon.one/docs/product/account/dev-tools/managing-attributes) to filter items and select the ones you want to edit or delete when editing or deleting more than one item at a time. The `filters` array contains an object with the following properties: - `attr`: A [cart item attribute](https://docs.talon.one/docs/product/account/dev-tools/managing-attributes) connected to the catalog. It is applied to all items in the catalog. - `op`: The filtering operator indicating the relationship between the value of each cart item in the catalog and the value of the `value` property for the attribute selected in `attr`. The value of `op` can be one of the following: - `EQ`: Equal to `value` - `LT`: Less than `value` - `LE`: Less than or equal to `value` - `GT`: Greater than `value` - `GE`: Greater than or equal to `value` - `IN`: One of the comma-separated values that `value` is set to. **Note:** `GE`, `LE`, `GT`, `LT` are for numeric values only. - `value`: The value of the attribute selected in `attr`. ### Payload examples Synchronization actions are sent as `PUT` requests. See the structure for each action: <details> <summary><strong>Adding an item to the catalog</strong></summary> <div> ```json { \"actions\": [ { \"payload\": { \"attributes\": { \"color\": \"Navy blue\", \"type\": \"shoes\" }, \"replaceIfExists\": true, \"sku\": \"SKU1241028\", \"price\": 100, \"product\": { \"name\": \"sneakers\" } }, \"type\": \"ADD\" } ] } ``` </div> </details> <details> <summary><strong>Adding several items to the catalog</strong></summary> <div> ```json { \"actions\": [ { \"payload\": { \"attributes\": { \"color\": \"Navy blue\", \"type\": \"shoes\" }, \"replaceIfExists\": true, \"sku\": \"SKU1241027\", \"price\": 100, \"product\": { \"name\": \"sneakers\" } }, \"type\": \"ADD\" }, { \"payload\": { \"attributes\": { \"color\": \"Navy blue\", \"type\": \"shoes\" }, \"replaceIfExists\": true, \"sku\": \"SKU1241028\", \"price\": 100, \"product\": { \"name\": \"sneakers\" } }, \"type\": \"ADD\" } ] } ``` </div> </details> <details> <summary><strong>Editing the attributes of an item in the catalog</strong></summary> <div> ```json { \"actions\": [ { \"payload\": { \"attributes\": { \"age\": 11, \"origin\": \"germany\" }, \"createIfNotExists\": false, \"sku\": \"SKU1241028\", \"product\": { \"name\": \"sneakers\" } }, \"type\": \"PATCH\" } ] } ``` </div> </details> <details> <summary><strong>Editing the attributes of several items in the catalog</strong></summary> <div> ```json { \"actions\": [ { \"payload\": { \"attributes\": { \"color\": \"red\" }, \"filters\": [ { \"attr\": \"color\", \"op\": \"EQ\", \"value\": \"blue\" } ] }, \"type\": \"PATCH_MANY\" } ] } ``` </div> </details> <details> <summary><strong>Removing an item from the catalog</strong></summary> <div> ```json { \"actions\": [ { \"payload\": { \"sku\": \"SKU1241028\" }, \"type\": \"REMOVE\" } ] } ``` </div> </details> <details> <summary><strong>Removing several items from the catalog</strong></summary> <div> ```json { \"actions\": [ { \"payload\": { \"filters\": [ { \"attr\": \"color\", \"op\": \"EQ\", \"value\": \"blue\" } ] }, \"type\": \"REMOVE_MANY\" } ] } ``` </div> </details> <details> <summary><strong>Removing shoes of sizes above 45 from the catalog</strong></summary> <div> <p> Let's imagine that we have a shoe store and we have decided to stop selling shoes larger than size 45. We can remove from the catalog all the shoes of sizes above 45 with a single action:</p> ```json { \"actions\": [ { \"payload\": { \"filters\": [ { \"attr\": \"size\", \"op\": \"GT\", \"value\": \"45\" } ] }, \"type\": \"REMOVE_MANY\" } ] } ``` </div> </details>
+Perform the following actions for a given cart item catalog: - Add an item to the catalog. - Add multiple items to the catalog. - Update the attributes of an item in the catalog. - Update the attributes of multiple items in the catalog. - Remove an item from the catalog. - Remove multiple items from the catalog. You can either add, update, or delete up to 1000 cart items in a single request. Each item synced to a catalog must have a unique `SKU`. **Important**: You can perform only one type of action in a single sync request. Syncing items with duplicate `SKU` values in a single request returns an error message with a `400` status code. For more information, read [managing cart item catalogs](https://docs.talon.one/docs/product/account/dev-tools/managing-cart-item-catalogs). ### Filtering cart items Use [cart item attributes](https://docs.talon.one/docs/product/account/dev-tools/managing-attributes) to filter items and select the ones you want to edit or delete when editing or deleting more than one item at a time. The `filters` array contains an object with the following properties: - `attr`: A [cart item attribute](https://docs.talon.one/docs/product/account/dev-tools/managing-attributes) connected to the catalog. It is applied to all items in the catalog. - `op`: The filtering operator indicating the relationship between the value of each cart item in the catalog and the value of the `value` property for the attribute selected in `attr`. The value of `op` can be one of the following: - `EQ`: Equal to `value` - `LT`: Less than `value` - `LE`: Less than or equal to `value` - `GT`: Greater than `value` - `GE`: Greater than or equal to `value` - `IN`: One of the comma-separated values that `value` is set to. **Note:** `GE`, `LE`, `GT`, `LT` are for numeric values only. - `value`: The value of the attribute selected in `attr`. ### Payload examples Synchronization actions are sent as `PUT` requests. See the structure for each action: <details> <summary><strong>Adding an item to the catalog</strong></summary> <div> ```json { \"actions\": [ { \"payload\": { \"attributes\": { \"color\": \"Navy blue\", \"type\": \"shoes\" }, \"replaceIfExists\": true, \"sku\": \"SKU1241028\", \"price\": 100, \"product\": { \"name\": \"sneakers\" } }, \"type\": \"ADD\" } ] } ``` </div> </details> <details> <summary><strong>Adding multiple items to the catalog</strong></summary> <div> ```json { \"actions\": [ { \"payload\": { \"attributes\": { \"color\": \"Navy blue\", \"type\": \"shoes\" }, \"replaceIfExists\": true, \"sku\": \"SKU1241027\", \"price\": 100, \"product\": { \"name\": \"sneakers\" } }, \"type\": \"ADD\" }, { \"payload\": { \"attributes\": { \"color\": \"Navy blue\", \"type\": \"shoes\" }, \"replaceIfExists\": true, \"sku\": \"SKU1241028\", \"price\": 100, \"product\": { \"name\": \"sneakers\" } }, \"type\": \"ADD\" } ] } ``` </div> </details> <details> <summary><strong>Updating the attributes of an item in the catalog</strong></summary> <div> ```json { \"actions\": [ { \"payload\": { \"attributes\": { \"age\": 11, \"origin\": \"germany\" }, \"createIfNotExists\": false, \"sku\": \"SKU1241028\", \"product\": { \"name\": \"sneakers\" } }, \"type\": \"PATCH\" } ] } ``` </div> </details> <details> <summary><strong>Updating the attributes of multiple items in the catalog</strong></summary> <div> ```json { \"actions\": [ { \"payload\": { \"attributes\": { \"color\": \"red\" }, \"filters\": [ { \"attr\": \"color\", \"op\": \"EQ\", \"value\": \"blue\" } ] }, \"type\": \"PATCH_MANY\" } ] } ``` </div> </details> <details> <summary><strong>Removing an item from the catalog</strong></summary> <div> ```json { \"actions\": [ { \"payload\": { \"sku\": \"SKU1241028\" }, \"type\": \"REMOVE\" } ] } ``` </div> </details> <details> <summary><strong>Removing multiple items from the catalog</strong></summary> <div> ```json { \"actions\": [ { \"payload\": { \"filters\": [ { \"attr\": \"color\", \"op\": \"EQ\", \"value\": \"blue\" } ] }, \"type\": \"REMOVE_MANY\" } ] } ``` </div> </details> <details> <summary><strong>Removing shoes of sizes above 45 from the catalog</strong></summary> <div> <p> Let's imagine that we have a shoe store and we have decided to stop selling shoes larger than size 45. We can remove from the catalog all the shoes of sizes above 45 with a single action:</p> ```json { \"actions\": [ { \"payload\": { \"filters\": [ { \"attr\": \"size\", \"op\": \"GT\", \"value\": \"45\" } ] }, \"type\": \"REMOVE_MANY\" } ] } ``` </div> </details>
### Example
```java
diff --git a/docs/LoyaltyBalanceWithTier.md b/docs/LoyaltyBalanceWithTier.md
new file mode 100644
index 0000000..0453932
--- /dev/null
+++ b/docs/LoyaltyBalanceWithTier.md
@@ -0,0 +1,20 @@
+
+
+# LoyaltyBalanceWithTier
+
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**activePoints** | [**BigDecimal**](BigDecimal.md) | Total amount of points awarded to this customer and available to spend. | [optional]
+**pendingPoints** | [**BigDecimal**](BigDecimal.md) | Total amount of points awarded to this customer but not available until their start date. | [optional]
+**spentPoints** | [**BigDecimal**](BigDecimal.md) | Total amount of points already spent by this customer. | [optional]
+**expiredPoints** | [**BigDecimal**](BigDecimal.md) | Total amount of points awarded but never redeemed. They cannot be used anymore. | [optional]
+**currentTier** | [**Tier**](Tier.md) | | [optional]
+**projectedTier** | [**ProjectedTier**](ProjectedTier.md) | | [optional]
+**pointsToNextTier** | [**BigDecimal**](BigDecimal.md) | The number of points required to move up a tier. | [optional]
+**nextTierName** | **String** | The name of the tier consecutive to the current tier. | [optional]
+
+
+
diff --git a/docs/LoyaltyBalancesWithTiers.md b/docs/LoyaltyBalancesWithTiers.md
new file mode 100644
index 0000000..5b4057a
--- /dev/null
+++ b/docs/LoyaltyBalancesWithTiers.md
@@ -0,0 +1,14 @@
+
+
+# LoyaltyBalancesWithTiers
+
+List of loyalty balances for a ledger and its subledgers.
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**balance** | [**LoyaltyBalanceWithTier**](LoyaltyBalanceWithTier.md) | | [optional]
+**subledgerBalances** | [**Map<String, LoyaltyBalanceWithTier>**](LoyaltyBalanceWithTier.md) | Map of the loyalty balances of the subledgers of a ledger. | [optional]
+
+
+
diff --git a/docs/LoyaltyCard.md b/docs/LoyaltyCard.md
index 4a9a995..99de4bc 100644
--- a/docs/LoyaltyCard.md
+++ b/docs/LoyaltyCard.md
@@ -11,6 +11,7 @@ Name | Type | Description | Notes
**created** | [**OffsetDateTime**](OffsetDateTime.md) | The time this entity was created. |
**programID** | **Integer** | The ID of the loyalty program that owns this entity. |
**status** | **String** | Status of the loyalty card. Can be one of: ['active', 'inactive'] |
+**blockReason** | **String** | Reason for transferring and blocking the loyalty card. | [optional]
**identifier** | **String** | The alphanumeric identifier of the loyalty card. |
**usersPerCardLimit** | **Integer** | The max amount of customer profiles that can be linked to the card. 0 means unlimited. |
**profiles** | [**List<LoyaltyCardProfileRegistration>**](LoyaltyCardProfileRegistration.md) | Integration IDs of the customers profiles linked to the card. | [optional]
diff --git a/docs/LoyaltyProgram.md b/docs/LoyaltyProgram.md
index f458181..5f24227 100644
--- a/docs/LoyaltyProgram.md
+++ b/docs/LoyaltyProgram.md
@@ -17,46 +17,51 @@ Name | Type | Description | Notes
**allowSubledger** | **Boolean** | Indicates if this program supports subledgers inside the program. |
**usersPerCardLimit** | **Integer** | The max amount of user profiles with whom a card can be shared. This can be set to 0 for no limit. This property is only used when `cardBased` is `true`. | [optional]
**sandbox** | **Boolean** | Indicates if this program is a live or sandbox program. Programs of a given type can only be connected to Applications of the same type. |
-**tiersExpirationPolicy** | [**TiersExpirationPolicyEnum**](#TiersExpirationPolicyEnum) | The policy that defines which date is used to calculate the expiration date of a customer's current tier. - `tier_start_date`: The tier expiration date is calculated based on when the customer joined the current tier. - `program_join_date`: The tier expiration date is calculated based on when the customer joined the loyalty program. | [optional]
+**programJoinPolicy** | [**ProgramJoinPolicyEnum**](#ProgramJoinPolicyEnum) | The policy that defines when the customer joins the loyalty program. - `not_join`: The customer does not join the loyalty program but can still earn and spend loyalty points. **Note**: The customer does not have a program join date. - `points_activated`: The customer joins the loyalty program only when their earned loyalty points become active for the first time. - `points_earned`: The customer joins the loyalty program when they earn loyalty points for the first time. | [optional]
+**tiersExpirationPolicy** | [**TiersExpirationPolicyEnum**](#TiersExpirationPolicyEnum) | The policy that defines which date is used to calculate the expiration date of a customer's current tier. - `tier_start_date`: The tier expiration date is calculated based on when the customer joined the current tier. - `program_join_date`: The tier expiration date is calculated based on when the customer joined the loyalty program. - `customer_attribute`: The tier expiration date is calculated based on a custom customer attribute. - `absolute_expiration`: The tier expires on a specified date and time. **Note**: For absolute expiration, it is required to provide a `tiersStartDate.` | [optional]
+**tiersStartDate** | [**OffsetDateTime**](OffsetDateTime.md) | Timestamp at which the tier starts for all customers. **Note**: This is only required when the tier expiration policy is set to `absolute_expiration`. | [optional]
**tiersExpireIn** | **String** | The amount of time after which the tier expires. The time format is an **integer** followed by one letter indicating the time unit. Examples: `30s`, `40m`, `1h`, `5D`, `7W`, `10M`, `15Y`. Available units: - `s`: seconds - `m`: minutes - `h`: hours - `D`: days - `W`: weeks - `M`: months - `Y`: years You can round certain units up or down: - `_D` for rounding down days only. Signifies the start of the day. - `_U` for rounding up days, weeks, months and years. Signifies the end of the day, week, month or year. | [optional]
**tiersDowngradePolicy** | [**TiersDowngradePolicyEnum**](#TiersDowngradePolicyEnum) | Customers's tier downgrade policy. - `one_down`: Once the tier expires and if the user doesn't have enough points to stay in the tier, the user is downgraded one tier down. - `balance_based`: Once the tier expires, the user's tier is evaluated based on the amount of active points the user has at this instant. | [optional]
-**programJoinPolicy** | [**ProgramJoinPolicyEnum**](#ProgramJoinPolicyEnum) | The policy that defines when the customer joins the loyalty program. - `not_join`: The customer does not join the loyalty program but can still earn and spend loyalty points. **Note**: The customer does not have a program join date. - `points_activated`: The customer joins the loyalty program only when their earned loyalty points become active for the first time. - `points_earned`: The customer joins the loyalty program when they earn loyalty points for the first time. | [optional]
+**cardCodeSettings** | [**CodeGeneratorSettings**](CodeGeneratorSettings.md) | | [optional]
**accountID** | **Integer** | The ID of the Talon.One account that owns this program. |
**name** | **String** | The internal name for the Loyalty Program. This is an immutable value. |
**tiers** | [**List<LoyaltyTier>**](LoyaltyTier.md) | The tiers in this loyalty program. | [optional]
**timezone** | **String** | A string containing an IANA timezone descriptor. |
**cardBased** | **Boolean** | Defines the type of loyalty program: - `true`: the program is a card-based. - `false`: the program is profile-based. |
**canUpdateTiers** | **Boolean** | `True` if the tier definitions can be updated. | [optional]
-**canUpdateJoinPolicy** | **Boolean** | Indicates whether the program join policy can be updated. The join policy can be updated when this value is set to `true`. | [optional]
+**canUpdateJoinPolicy** | **Boolean** | `True` if the program join policy can be updated. | [optional]
+**canUpdateTierExpirationPolicy** | **Boolean** | `True` if the tier expiration policy can be updated. | [optional]
**canUpgradeToAdvancedTiers** | **Boolean** | `True` if the program can be upgraded to use the `tiersExpireIn` and `tiersDowngradePolicy` properties. | [optional]
-## Enum: TiersExpirationPolicyEnum
+## Enum: ProgramJoinPolicyEnum
Name | Value
---- | -----
-TIER_START_DATE | "tier_start_date"
-PROGRAM_JOIN_DATE | "program_join_date"
+NOT_JOIN | "not_join"
+POINTS_ACTIVATED | "points_activated"
+POINTS_EARNED | "points_earned"
-## Enum: TiersDowngradePolicyEnum
+## Enum: TiersExpirationPolicyEnum
Name | Value
---- | -----
-ONE_DOWN | "one_down"
-BALANCE_BASED | "balance_based"
+TIER_START_DATE | "tier_start_date"
+PROGRAM_JOIN_DATE | "program_join_date"
+CUSTOMER_ATTRIBUTE | "customer_attribute"
+ABSOLUTE_EXPIRATION | "absolute_expiration"
-## Enum: ProgramJoinPolicyEnum
+## Enum: TiersDowngradePolicyEnum
Name | Value
---- | -----
-NOT_JOIN | "not_join"
-POINTS_ACTIVATED | "points_activated"
-POINTS_EARNED | "points_earned"
+ONE_DOWN | "one_down"
+BALANCE_BASED | "balance_based"
diff --git a/docs/ManagementApi.md b/docs/ManagementApi.md
index 41e2637..23dc00c 100644
--- a/docs/ManagementApi.md
+++ b/docs/ManagementApi.md
@@ -4,7 +4,7 @@ All URIs are relative to *https://yourbaseurl.talon.one*
Method | HTTP request | Description
------------- | ------------- | -------------
-[**activateUserByEmail**](ManagementApi.md#activateUserByEmail) | **POST** /v1/users/activate | Activate user by email address
+[**activateUserByEmail**](ManagementApi.md#activateUserByEmail) | **POST** /v1/users/activate | Enable user by email address
[**addLoyaltyCardPoints**](ManagementApi.md#addLoyaltyCardPoints) | **PUT** /v1/loyalty_programs/{loyaltyProgramId}/cards/{loyaltyCardId}/add_points | Add points to card
[**addLoyaltyPoints**](ManagementApi.md#addLoyaltyPoints) | **PUT** /v1/loyalty_programs/{loyaltyProgramId}/profile/{integrationId}/add_points | Add points to customer profile
[**copyCampaignToApplications**](ManagementApi.md#copyCampaignToApplications) | **POST** /v1/applications/{applicationId}/campaigns/{campaignId}/copy | Copy the campaign into the specified Application
@@ -22,7 +22,7 @@ Method | HTTP request | Description
[**createPasswordRecoveryEmail**](ManagementApi.md#createPasswordRecoveryEmail) | **POST** /v1/password_recovery_emails | Request a password reset
[**createSession**](ManagementApi.md#createSession) | **POST** /v1/sessions | Create session
[**createStore**](ManagementApi.md#createStore) | **POST** /v1/applications/{applicationId}/stores | Create store
-[**deactivateUserByEmail**](ManagementApi.md#deactivateUserByEmail) | **POST** /v1/users/deactivate | Deactivate user by email address
+[**deactivateUserByEmail**](ManagementApi.md#deactivateUserByEmail) | **POST** /v1/users/deactivate | Disable user by email address
[**deductLoyaltyCardPoints**](ManagementApi.md#deductLoyaltyCardPoints) | **PUT** /v1/loyalty_programs/{loyaltyProgramId}/cards/{loyaltyCardId}/deduct_points | Deduct points from card
[**deleteAccountCollection**](ManagementApi.md#deleteAccountCollection) | **DELETE** /v1/collections/{collectionId} | Delete account-level collection
[**deleteAchievement**](ManagementApi.md#deleteAchievement) | **DELETE** /v1/applications/{applicationId}/campaigns/{campaignId}/achievements/{achievementId} | Delete achievement
@@ -36,9 +36,11 @@ Method | HTTP request | Description
[**deleteUser**](ManagementApi.md#deleteUser) | **DELETE** /v1/users/{userId} | Delete user
[**deleteUserByEmail**](ManagementApi.md#deleteUserByEmail) | **POST** /v1/users/delete | Delete user by email address
[**destroySession**](ManagementApi.md#destroySession) | **DELETE** /v1/sessions | Destroy session
+[**disconnectCampaignStores**](ManagementApi.md#disconnectCampaignStores) | **DELETE** /v1/applications/{applicationId}/campaigns/{campaignId}/stores | Disconnect stores
[**exportAccountCollectionItems**](ManagementApi.md#exportAccountCollectionItems) | **GET** /v1/collections/{collectionId}/export | Export account-level collection's items
[**exportAchievements**](ManagementApi.md#exportAchievements) | **GET** /v1/applications/{applicationId}/campaigns/{campaignId}/achievements/{achievementId}/export | Export achievement customer data
[**exportAudiencesMemberships**](ManagementApi.md#exportAudiencesMemberships) | **GET** /v1/audiences/{audienceId}/memberships/export | Export audience members
+[**exportCampaignStores**](ManagementApi.md#exportCampaignStores) | **GET** /v1/applications/{applicationId}/campaigns/{campaignId}/stores/export | Export stores
[**exportCollectionItems**](ManagementApi.md#exportCollectionItems) | **GET** /v1/applications/{applicationId}/campaigns/{campaignId}/collections/{collectionId}/export | Export campaign-level collection's items
[**exportCoupons**](ManagementApi.md#exportCoupons) | **GET** /v1/applications/{applicationId}/export_coupons | Export coupons
[**exportCustomerSessions**](ManagementApi.md#exportCustomerSessions) | **GET** /v1/applications/{applicationId}/export_customer_sessions | Export customer sessions
@@ -117,6 +119,7 @@ Method | HTTP request | Description
[**importAccountCollection**](ManagementApi.md#importAccountCollection) | **POST** /v1/collections/{collectionId}/import | Import data into existing account-level collection
[**importAllowedList**](ManagementApi.md#importAllowedList) | **POST** /v1/attributes/{attributeId}/allowed_list/import | Import allowed values for attribute
[**importAudiencesMemberships**](ManagementApi.md#importAudiencesMemberships) | **POST** /v1/audiences/{audienceId}/memberships/import | Import audience members
+[**importCampaignStores**](ManagementApi.md#importCampaignStores) | **POST** /v1/applications/{applicationId}/campaigns/{campaignId}/stores/import | Import stores
[**importCollection**](ManagementApi.md#importCollection) | **POST** /v1/applications/{applicationId}/campaigns/{campaignId}/collections/{collectionId}/import | Import data into existing campaign-level collection
[**importCoupons**](ManagementApi.md#importCoupons) | **POST** /v1/applications/{applicationId}/campaigns/{campaignId}/import_coupons | Import coupons
[**importLoyaltyCards**](ManagementApi.md#importLoyaltyCards) | **POST** /v1/loyalty_programs/{loyaltyProgramId}/import_cards | Import loyalty cards
@@ -133,11 +136,21 @@ Method | HTTP request | Description
[**listCollectionsInApplication**](ManagementApi.md#listCollectionsInApplication) | **GET** /v1/applications/{applicationId}/collections | List collections in Application
[**listStores**](ManagementApi.md#listStores) | **GET** /v1/applications/{applicationId}/stores | List stores
[**notificationActivation**](ManagementApi.md#notificationActivation) | **PUT** /v1/notifications/{notificationId}/activation | Activate or deactivate notification
+[**oktaEventHandlerChallenge**](ManagementApi.md#oktaEventHandlerChallenge) | **GET** /v1/provisioning/okta | Validate Okta API ownership
[**postAddedDeductedPointsNotification**](ManagementApi.md#postAddedDeductedPointsNotification) | **POST** /v1/loyalty_programs/{loyaltyProgramId}/notifications/added_deducted_points | Create notification about added or deducted loyalty points
[**postCatalogsStrikethroughNotification**](ManagementApi.md#postCatalogsStrikethroughNotification) | **POST** /v1/applications/{applicationId}/catalogs/notifications/strikethrough | Create strikethrough notification
[**postPendingPointsNotification**](ManagementApi.md#postPendingPointsNotification) | **POST** /v1/loyalty_programs/{loyaltyProgramId}/notifications/pending_points | Create notification about pending loyalty points
[**removeLoyaltyPoints**](ManagementApi.md#removeLoyaltyPoints) | **PUT** /v1/loyalty_programs/{loyaltyProgramId}/profile/{integrationId}/deduct_points | Deduct points from customer profile
[**resetPassword**](ManagementApi.md#resetPassword) | **POST** /v1/reset_password | Reset password
+[**scimCreateUser**](ManagementApi.md#scimCreateUser) | **POST** /v1/provisioning/scim/Users | Create SCIM user
+[**scimDeleteUser**](ManagementApi.md#scimDeleteUser) | **DELETE** /v1/provisioning/scim/Users/{userId} | Delete SCIM user
+[**scimGetResourceTypes**](ManagementApi.md#scimGetResourceTypes) | **GET** /v1/provisioning/scim/ResourceTypes | List supported SCIM resource types
+[**scimGetSchemas**](ManagementApi.md#scimGetSchemas) | **GET** /v1/provisioning/scim/Schemas | List supported SCIM schemas
+[**scimGetServiceProviderConfig**](ManagementApi.md#scimGetServiceProviderConfig) | **GET** /v1/provisioning/scim/ServiceProviderConfig | Service config endpoint for SCIM provisioning protocol
+[**scimGetUser**](ManagementApi.md#scimGetUser) | **GET** /v1/provisioning/scim/Users/{userId} | Get SCIM user
+[**scimGetUsers**](ManagementApi.md#scimGetUsers) | **GET** /v1/provisioning/scim/Users | List SCIM users
+[**scimPatchUser**](ManagementApi.md#scimPatchUser) | **PATCH** /v1/provisioning/scim/Users/{userId} | Update SCIM user attributes
+[**scimReplaceUserAttributes**](ManagementApi.md#scimReplaceUserAttributes) | **PUT** /v1/provisioning/scim/Users/{userId} | Update SCIM user
[**searchCouponsAdvancedApplicationWideWithoutTotalCount**](ManagementApi.md#searchCouponsAdvancedApplicationWideWithoutTotalCount) | **POST** /v1/applications/{applicationId}/coupons_search_advanced/no_total | List coupons that match the given attributes (without total count)
[**searchCouponsAdvancedWithoutTotalCount**](ManagementApi.md#searchCouponsAdvancedWithoutTotalCount) | **POST** /v1/applications/{applicationId}/campaigns/{campaignId}/coupons_search_advanced/no_total | List coupons that match the given attributes in campaign (without total count)
[**transferLoyaltyCard**](ManagementApi.md#transferLoyaltyCard) | **PUT** /v1/loyalty_programs/{loyaltyProgramId}/cards/{loyaltyCardId}/transfer | Transfer card data
@@ -160,9 +173,9 @@ Method | HTTP request | Description
# **activateUserByEmail**
> activateUserByEmail(body)
-Activate user by email address
+Enable user by email address
-Activate a deactivated user by their email address.
+Enable a [disabled user](https://docs.talon.one/docs/product/account/account-settings/managing-users#disabling-a-user) by their email address.
### Example
```java
@@ -1563,9 +1576,9 @@ Name | Type | Description | Notes
# **deactivateUserByEmail**
> deactivateUserByEmail(body)
-Deactivate user by email address
+Disable user by email address
-Deactivate a specific user by their email address.
+[Disable a specific user](https://docs.talon.one/docs/product/account/account-settings/managing-users#disabling-a-user) by their email address.
### Example
```java
@@ -2143,10 +2156,10 @@ public class Example {
String value = "value_example"; // String | Filter results performing case-insensitive matching against the coupon code. Both the code and the query are folded to remove all non-alpha-numeric characters.
OffsetDateTime createdBefore = new OffsetDateTime(); // OffsetDateTime | Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon creation timestamp. You can use any time zone setting. Talon.One will convert to UTC internally.
OffsetDateTime createdAfter = new OffsetDateTime(); // OffsetDateTime | Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon creation timestamp. You can use any time zone setting. Talon.One will convert to UTC internally.
- OffsetDateTime startsAfter = new OffsetDateTime(); // OffsetDateTime | Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon creation timestamp. You can use any time zone setting. Talon.One will convert to UTC internally.
- OffsetDateTime startsBefore = new OffsetDateTime(); // OffsetDateTime | Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon creation timestamp. You can use any time zone setting. Talon.One will convert to UTC internally.
- OffsetDateTime expiresAfter = new OffsetDateTime(); // OffsetDateTime | Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon creation timestamp. You can use any time zone setting. Talon.One will convert to UTC internally.
- OffsetDateTime expiresBefore = new OffsetDateTime(); // OffsetDateTime | Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon creation timestamp. You can use any time zone setting. Talon.One will convert to UTC internally.
+ OffsetDateTime startsAfter = new OffsetDateTime(); // OffsetDateTime | Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon start date timestamp. You can use any time zone setting. Talon.One will convert to UTC internally.
+ OffsetDateTime startsBefore = new OffsetDateTime(); // OffsetDateTime | Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon start date timestamp. You can use any time zone setting. Talon.One will convert to UTC internally.
+ OffsetDateTime expiresAfter = new OffsetDateTime(); // OffsetDateTime | Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon expiration date timestamp. You can use any time zone setting. Talon.One will convert to UTC internally.
+ OffsetDateTime expiresBefore = new OffsetDateTime(); // OffsetDateTime | Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon expiration date timestamp. You can use any time zone setting. Talon.One will convert to UTC internally.
String valid = "valid_example"; // String | - `expired`: Matches coupons in which the expiration date is set and in the past. - `validNow`: Matches coupons in which start date is null or in the past and expiration date is null or in the future. - `validFuture`: Matches coupons in which start date is set and in the future.
String batchId = "batchId_example"; // String | Filter results by batches of coupons
String usable = "usable_example"; // String | - `true`: only coupons where `usageCounter < usageLimit` will be returned. - `false`: only coupons where `usageCounter >= usageLimit` will be returned.
@@ -2175,10 +2188,10 @@ Name | Type | Description | Notes
**value** | **String**| Filter results performing case-insensitive matching against the coupon code. Both the code and the query are folded to remove all non-alpha-numeric characters. | [optional]
**createdBefore** | **OffsetDateTime**| Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon creation timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. | [optional]
**createdAfter** | **OffsetDateTime**| Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon creation timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. | [optional]
- **startsAfter** | **OffsetDateTime**| Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon creation timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. | [optional]
- **startsBefore** | **OffsetDateTime**| Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon creation timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. | [optional]
- **expiresAfter** | **OffsetDateTime**| Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon creation timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. | [optional]
- **expiresBefore** | **OffsetDateTime**| Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon creation timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. | [optional]
+ **startsAfter** | **OffsetDateTime**| Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon start date timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. | [optional]
+ **startsBefore** | **OffsetDateTime**| Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon start date timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. | [optional]
+ **expiresAfter** | **OffsetDateTime**| Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon expiration date timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. | [optional]
+ **expiresBefore** | **OffsetDateTime**| Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon expiration date timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. | [optional]
**valid** | **String**| - `expired`: Matches coupons in which the expiration date is set and in the past. - `validNow`: Matches coupons in which start date is null or in the past and expiration date is null or in the future. - `validFuture`: Matches coupons in which start date is set and in the future. | [optional] [enum: expired, validNow, validFuture]
**batchId** | **String**| Filter results by batches of coupons | [optional]
**usable** | **String**| - `true`: only coupons where `usageCounter < usageLimit` will be returned. - `false`: only coupons where `usageCounter >= usageLimit` will be returned. | [optional] [enum: true, false]
@@ -2517,7 +2530,7 @@ null (empty response body)
Delete user by email address
-Delete a specific user by their email address.
+[Delete a specific user](https://docs.talon.one/docs/product/account/account-settings/managing-users#deleting-a-user) by their email address.
### Example
```java
@@ -2655,6 +2668,85 @@ null (empty response body)
|-------------|-------------|------------------|
**204** | No Content | - |
+
+# **disconnectCampaignStores**
+> disconnectCampaignStores(applicationId, campaignId)
+
+Disconnect stores
+
+Disconnect the stores linked to a specific campaign.
+
+### Example
+```java
+// Import classes:
+import one.talon.ApiClient;
+import one.talon.ApiException;
+import one.talon.Configuration;
+import one.talon.auth.*;
+import one.talon.models.*;
+import one.talon.api.ManagementApi;
+
+public class Example {
+ public static void main(String[] args) {
+ ApiClient defaultClient = Configuration.getDefaultApiClient();
+ defaultClient.setBasePath("https://yourbaseurl.talon.one");
+
+ // Configure API key authorization: management_key
+ ApiKeyAuth management_key = (ApiKeyAuth) defaultClient.getAuthentication("management_key");
+ management_key.setApiKey("YOUR API KEY");
+ // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null)
+ //management_key.setApiKeyPrefix("Token");
+
+ // Configure API key authorization: manager_auth
+ ApiKeyAuth manager_auth = (ApiKeyAuth) defaultClient.getAuthentication("manager_auth");
+ manager_auth.setApiKey("YOUR API KEY");
+ // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null)
+ //manager_auth.setApiKeyPrefix("Token");
+
+ ManagementApi apiInstance = new ManagementApi(defaultClient);
+ Integer applicationId = 56; // Integer | The ID of the Application. It is displayed in your Talon.One deployment URL.
+ Integer campaignId = 56; // Integer | The ID of the campaign. It is displayed in your Talon.One deployment URL.
+ try {
+ apiInstance.disconnectCampaignStores(applicationId, campaignId);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling ManagementApi#disconnectCampaignStores");
+ System.err.println("Status code: " + e.getCode());
+ System.err.println("Reason: " + e.getResponseBody());
+ System.err.println("Response headers: " + e.getResponseHeaders());
+ e.printStackTrace();
+ }
+ }
+}
+```
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **applicationId** | **Integer**| The ID of the Application. It is displayed in your Talon.One deployment URL. |
+ **campaignId** | **Integer**| The ID of the campaign. It is displayed in your Talon.One deployment URL. |
+
+### Return type
+
+null (empty response body)
+
+### Authorization
+
+[management_key](../README.md#management_key), [manager_auth](../README.md#manager_auth)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**204** | No Content | - |
+**400** | Bad request | - |
+**401** | Unauthorized - Invalid API key | - |
+**404** | Not found | - |
+
# **exportAccountCollectionItems**
> String exportAccountCollectionItems(collectionId)
@@ -2892,6 +2984,86 @@ Name | Type | Description | Notes
**401** | Unauthorized - Invalid API key | - |
**404** | Not found | - |
+
+# **exportCampaignStores**
+> String exportCampaignStores(applicationId, campaignId)
+
+Export stores
+
+Download a CSV file containing the stores linked to a specific campaign. **Tip:** If the exported CSV file is too large to view, you can [split it into multiple files](https://www.makeuseof.com/tag/how-to-split-a-huge-csv-excel-workbook-into-seperate-files/). The CSV file contains the following column: - `store_integration_id`: The identifier of the store.
+
+### Example
+```java
+// Import classes:
+import one.talon.ApiClient;
+import one.talon.ApiException;
+import one.talon.Configuration;
+import one.talon.auth.*;
+import one.talon.models.*;
+import one.talon.api.ManagementApi;
+
+public class Example {
+ public static void main(String[] args) {
+ ApiClient defaultClient = Configuration.getDefaultApiClient();
+ defaultClient.setBasePath("https://yourbaseurl.talon.one");
+
+ // Configure API key authorization: management_key
+ ApiKeyAuth management_key = (ApiKeyAuth) defaultClient.getAuthentication("management_key");
+ management_key.setApiKey("YOUR API KEY");
+ // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null)
+ //management_key.setApiKeyPrefix("Token");
+
+ // Configure API key authorization: manager_auth
+ ApiKeyAuth manager_auth = (ApiKeyAuth) defaultClient.getAuthentication("manager_auth");
+ manager_auth.setApiKey("YOUR API KEY");
+ // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null)
+ //manager_auth.setApiKeyPrefix("Token");
+
+ ManagementApi apiInstance = new ManagementApi(defaultClient);
+ Integer applicationId = 56; // Integer | The ID of the Application. It is displayed in your Talon.One deployment URL.
+ Integer campaignId = 56; // Integer | The ID of the campaign. It is displayed in your Talon.One deployment URL.
+ try {
+ String result = apiInstance.exportCampaignStores(applicationId, campaignId);
+ System.out.println(result);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling ManagementApi#exportCampaignStores");
+ System.err.println("Status code: " + e.getCode());
+ System.err.println("Reason: " + e.getResponseBody());
+ System.err.println("Response headers: " + e.getResponseHeaders());
+ e.printStackTrace();
+ }
+ }
+}
+```
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **applicationId** | **Integer**| The ID of the Application. It is displayed in your Talon.One deployment URL. |
+ **campaignId** | **Integer**| The ID of the campaign. It is displayed in your Talon.One deployment URL. |
+
+### Return type
+
+**String**
+
+### Authorization
+
+[management_key](../README.md#management_key), [manager_auth](../README.md#manager_auth)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/csv
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK | - |
+**400** | Bad request | - |
+**401** | Unauthorized - Invalid API key | - |
+**404** | Not found | - |
+
# **exportCollectionItems**
> String exportCollectionItems(applicationId, campaignId, collectionId)
@@ -3167,7 +3339,7 @@ Name | Type | Description | Notes
Export customers' tier data
-Download a CSV file containing the tier information for customers of the specified loyalty program. The generated file contains the following columns: - `programid`: The identifier of the loyalty program. It is displayed in your Talon.One deployment URL. - `subledgerid`: The ID of the subledger associated with the loyalty program. This column is empty if the loyalty program has no subledger. In this case, refer to the export file name to get the ID of the loyalty program. - `customerprofileid`: The ID used to integrate customer profiles with the loyalty program. - `tiername`: The name of the tier. - `startdate`: The tier start date in RFC3339. - `expirydate`: The tier expiry date in RFC3339. You can filter the results by providing the following optional input parameters: - `subledgerId` (optional): Filter results by subledger ID. If no value is provided, all subledger data for the specified loyalty program will be exported. - `tierName` (optional): Filter results by tier name. If no value is provided, all tier data for the specified loyalty program will be exported.
+Download a CSV file containing the tier information for customers of the specified loyalty program. The generated file contains the following columns: - `programid`: The identifier of the loyalty program. It is displayed in your Talon.One deployment URL. - `subledgerid`: The ID of the subledger associated with the loyalty program. This column is empty if the loyalty program has no subledger. In this case, refer to the export file name to get the ID of the loyalty program. - `customerprofileid`: The ID used to integrate customer profiles with the loyalty program. - `tiername`: The name of the tier. - `startdate`: The tier start date in RFC3339. - `expirydate`: The tier expiry date in RFC3339. You can filter the results by providing the following optional input parameters: - `subledgerIds` (optional): Filter results by an array of subledger IDs. If no value is provided, all subledger data for the specified loyalty program will be exported. - `tierNames` (optional): Filter results by an array of tier names. If no value is provided, all tier data for the specified loyalty program will be exported.
### Example
```java
@@ -6692,7 +6864,7 @@ Name | Type | Description | Notes
# **getCouponsWithoutTotalCount**
-> InlineResponse2009 getCouponsWithoutTotalCount(applicationId, campaignId, pageSize, skip, sort, value, createdBefore, createdAfter, valid, usable, referralId, recipientIntegrationId, batchId, exactMatch)
+> InlineResponse2009 getCouponsWithoutTotalCount(applicationId, campaignId, pageSize, skip, sort, value, createdBefore, createdAfter, valid, usable, referralId, recipientIntegrationId, batchId, exactMatch, expiresBefore, expiresAfter, startsBefore, startsAfter, valuesOnly)
List coupons
@@ -6740,8 +6912,13 @@ public class Example {
String recipientIntegrationId = "recipientIntegrationId_example"; // String | Filter results by match with a profile id specified in the coupon's RecipientIntegrationId field
String batchId = "batchId_example"; // String | Filter results by batches of coupons
Boolean exactMatch = false; // Boolean | Filter results to an exact case-insensitive matching against the coupon code
+ OffsetDateTime expiresBefore = new OffsetDateTime(); // OffsetDateTime | Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon expiration date timestamp. You can use any time zone setting. Talon.One will convert to UTC internally.
+ OffsetDateTime expiresAfter = new OffsetDateTime(); // OffsetDateTime | Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon expiration date timestamp. You can use any time zone setting. Talon.One will convert to UTC internally.
+ OffsetDateTime startsBefore = new OffsetDateTime(); // OffsetDateTime | Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon start date timestamp. You can use any time zone setting. Talon.One will convert to UTC internally.
+ OffsetDateTime startsAfter = new OffsetDateTime(); // OffsetDateTime | Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon start date timestamp. You can use any time zone setting. Talon.One will convert to UTC internally.
+ Boolean valuesOnly = false; // Boolean | Filter results to only return the coupon codes (`value` column) without the associated coupon data.
try {
- InlineResponse2009 result = apiInstance.getCouponsWithoutTotalCount(applicationId, campaignId, pageSize, skip, sort, value, createdBefore, createdAfter, valid, usable, referralId, recipientIntegrationId, batchId, exactMatch);
+ InlineResponse2009 result = apiInstance.getCouponsWithoutTotalCount(applicationId, campaignId, pageSize, skip, sort, value, createdBefore, createdAfter, valid, usable, referralId, recipientIntegrationId, batchId, exactMatch, expiresBefore, expiresAfter, startsBefore, startsAfter, valuesOnly);
System.out.println(result);
} catch (ApiException e) {
System.err.println("Exception when calling ManagementApi#getCouponsWithoutTotalCount");
@@ -6772,6 +6949,11 @@ Name | Type | Description | Notes
**recipientIntegrationId** | **String**| Filter results by match with a profile id specified in the coupon's RecipientIntegrationId field | [optional]
**batchId** | **String**| Filter results by batches of coupons | [optional]
**exactMatch** | **Boolean**| Filter results to an exact case-insensitive matching against the coupon code | [optional] [default to false]
+ **expiresBefore** | **OffsetDateTime**| Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon expiration date timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. | [optional]
+ **expiresAfter** | **OffsetDateTime**| Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon expiration date timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. | [optional]
+ **startsBefore** | **OffsetDateTime**| Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon start date timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. | [optional]
+ **startsAfter** | **OffsetDateTime**| Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon start date timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. | [optional]
+ **valuesOnly** | **Boolean**| Filter results to only return the coupon codes (`value` column) without the associated coupon data. | [optional] [default to false]
### Return type
@@ -9043,7 +9225,7 @@ public class Example {
//manager_auth.setApiKeyPrefix("Token");
ManagementApi apiInstance = new ManagementApi(defaultClient);
- String applicationIds = "applicationIds_example"; // String | Filter by one or more Application IDs, separated by a comma.
+ String applicationIds = "applicationIds_example"; // String | Checks if the given catalog or its attributes are referenced in the specified Application ID. **Note**: If no Application ID is provided, we check for all connected Applications.
String sort = "sort_example"; // String | The field by which results should be sorted. By default, results are sorted in ascending order. To sort them in descending order, prefix the field name with `-`. **Note:** This parameter works only with numeric fields.
Integer pageSize = 1000; // Integer | The number of items in the response.
Integer skip = 56; // Integer | The number of items to skip when paging through large result sets.
@@ -9069,7 +9251,7 @@ public class Example {
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
- **applicationIds** | **String**| Filter by one or more Application IDs, separated by a comma. | [optional]
+ **applicationIds** | **String**| Checks if the given catalog or its attributes are referenced in the specified Application ID. **Note**: If no Application ID is provided, we check for all connected Applications. | [optional]
**sort** | **String**| The field by which results should be sorted. By default, results are sorted in ascending order. To sort them in descending order, prefix the field name with `-`. **Note:** This parameter works only with numeric fields. | [optional]
**pageSize** | **Integer**| The number of items in the response. | [optional] [default to 1000]
**skip** | **Integer**| The number of items to skip when paging through large result sets. | [optional]
@@ -9335,6 +9517,88 @@ Name | Type | Description | Notes
**401** | Unauthorized - Invalid API key | - |
**404** | Not found | - |
+
+# **importCampaignStores**
+> ModelImport importCampaignStores(applicationId, campaignId, upFile)
+
+Import stores
+
+Upload a CSV file containing the stores you want to link to a specific campaign. Send the file as multipart data. The CSV file **must** only contain the following column: - `store_integration_id`: The identifier of the store. The import **replaces** the previous list of stores linked to the campaign.
+
+### Example
+```java
+// Import classes:
+import one.talon.ApiClient;
+import one.talon.ApiException;
+import one.talon.Configuration;
+import one.talon.auth.*;
+import one.talon.models.*;
+import one.talon.api.ManagementApi;
+
+public class Example {
+ public static void main(String[] args) {
+ ApiClient defaultClient = Configuration.getDefaultApiClient();
+ defaultClient.setBasePath("https://yourbaseurl.talon.one");
+
+ // Configure API key authorization: management_key
+ ApiKeyAuth management_key = (ApiKeyAuth) defaultClient.getAuthentication("management_key");
+ management_key.setApiKey("YOUR API KEY");
+ // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null)
+ //management_key.setApiKeyPrefix("Token");
+
+ // Configure API key authorization: manager_auth
+ ApiKeyAuth manager_auth = (ApiKeyAuth) defaultClient.getAuthentication("manager_auth");
+ manager_auth.setApiKey("YOUR API KEY");
+ // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null)
+ //manager_auth.setApiKeyPrefix("Token");
+
+ ManagementApi apiInstance = new ManagementApi(defaultClient);
+ Integer applicationId = 56; // Integer | The ID of the Application. It is displayed in your Talon.One deployment URL.
+ Integer campaignId = 56; // Integer | The ID of the campaign. It is displayed in your Talon.One deployment URL.
+ String upFile = "upFile_example"; // String | The file containing the data that is being imported.
+ try {
+ ModelImport result = apiInstance.importCampaignStores(applicationId, campaignId, upFile);
+ System.out.println(result);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling ManagementApi#importCampaignStores");
+ System.err.println("Status code: " + e.getCode());
+ System.err.println("Reason: " + e.getResponseBody());
+ System.err.println("Response headers: " + e.getResponseHeaders());
+ e.printStackTrace();
+ }
+ }
+}
+```
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **applicationId** | **Integer**| The ID of the Application. It is displayed in your Talon.One deployment URL. |
+ **campaignId** | **Integer**| The ID of the campaign. It is displayed in your Talon.One deployment URL. |
+ **upFile** | **String**| The file containing the data that is being imported. | [optional]
+
+### Return type
+
+[**ModelImport**](ModelImport.md)
+
+### Authorization
+
+[management_key](../README.md#management_key), [manager_auth](../README.md#manager_auth)
+
+### HTTP request headers
+
+ - **Content-Type**: multipart/form-data
+ - **Accept**: application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK | - |
+**400** | Bad request | - |
+**401** | Unauthorized - Invalid API key | - |
+**404** | Not found | - |
+
# **importCollection**
> ModelImport importCollection(applicationId, campaignId, collectionId, upFile)
@@ -9896,7 +10160,7 @@ Name | Type | Description | Notes
Invite user from identity provider
-Invite a user from an external identity provider to Talon.One by sending an invitation to their email address.
+[Invite a user](https://docs.talon.one/docs/product/account/account-settings/managing-users#inviting-a-user) from an external identity provider to Talon.One by sending an invitation to their email address.
### Example
```java
@@ -10630,13 +10894,13 @@ null (empty response body)
|-------------|-------------|------------------|
**204** | No Content | - |
-
-# **postAddedDeductedPointsNotification**
-> BaseNotification postAddedDeductedPointsNotification(loyaltyProgramId, body)
+
+# **oktaEventHandlerChallenge**
+> oktaEventHandlerChallenge()
-Create notification about added or deducted loyalty points
+Validate Okta API ownership
-Create a notification about added or deducted loyalty points in a given profile-based loyalty program. A notification for added or deducted loyalty points is different from regular webhooks in that it is loyalty program-scoped and has a predefined payload. For more information, see [Managing loyalty notifications](https://docs.talon.one/docs/product/loyalty-programs/managing-loyalty-notifications).
+Validate the ownership of the API through a challenge-response mechanism. This challenger endpoint is used by Okta to confirm that communication between Talon.One and Okta is correctly configured and accessible for provisioning and deprovisioning of Talon.One users, and that only Talon.One can receive and respond to events from Okta.
### Example
```java
@@ -10666,13 +10930,10 @@ public class Example {
//manager_auth.setApiKeyPrefix("Token");
ManagementApi apiInstance = new ManagementApi(defaultClient);
- Integer loyaltyProgramId = 56; // Integer | Identifier of the profile-based loyalty program. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint.
- NewBaseNotification body = new NewBaseNotification(); // NewBaseNotification | body
try {
- BaseNotification result = apiInstance.postAddedDeductedPointsNotification(loyaltyProgramId, body);
- System.out.println(result);
+ apiInstance.oktaEventHandlerChallenge();
} catch (ApiException e) {
- System.err.println("Exception when calling ManagementApi#postAddedDeductedPointsNotification");
+ System.err.println("Exception when calling ManagementApi#oktaEventHandlerChallenge");
System.err.println("Status code: " + e.getCode());
System.err.println("Reason: " + e.getResponseBody());
System.err.println("Response headers: " + e.getResponseHeaders());
@@ -10683,15 +10944,11 @@ public class Example {
```
### Parameters
-
-Name | Type | Description | Notes
-------------- | ------------- | ------------- | -------------
- **loyaltyProgramId** | **Integer**| Identifier of the profile-based loyalty program. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. |
- **body** | [**NewBaseNotification**](NewBaseNotification.md)| body |
+This endpoint does not need any parameter.
### Return type
-[**BaseNotification**](BaseNotification.md)
+null (empty response body)
### Authorization
@@ -10699,24 +10956,101 @@ Name | Type | Description | Notes
### HTTP request headers
- - **Content-Type**: application/json
- - **Accept**: application/json
+ - **Content-Type**: Not defined
+ - **Accept**: Not defined
### HTTP response details
| Status code | Description | Response headers |
|-------------|-------------|------------------|
**200** | OK | - |
-**400** | Bad request | - |
-**401** | Unauthorized | - |
-**404** | Not found | - |
-
-# **postCatalogsStrikethroughNotification**
-> BaseNotification postCatalogsStrikethroughNotification(applicationId, body)
+
+# **postAddedDeductedPointsNotification**
+> BaseNotification postAddedDeductedPointsNotification(loyaltyProgramId, body)
-Create strikethrough notification
+Create notification about added or deducted loyalty points
-Create a notification for the in the given Application. For more information, see [Managing notifications](https://docs.talon.one/docs/product/applications/outbound-notifications). See the [payload](https://docs.talon.one/outbound-notifications) you will receive.
+Create a notification about added or deducted loyalty points in a given profile-based loyalty program. A notification for added or deducted loyalty points is different from regular webhooks in that it is loyalty program-scoped and has a predefined payload. For more information, see [Managing loyalty notifications](https://docs.talon.one/docs/product/loyalty-programs/managing-loyalty-notifications).
+
+### Example
+```java
+// Import classes:
+import one.talon.ApiClient;
+import one.talon.ApiException;
+import one.talon.Configuration;
+import one.talon.auth.*;
+import one.talon.models.*;
+import one.talon.api.ManagementApi;
+
+public class Example {
+ public static void main(String[] args) {
+ ApiClient defaultClient = Configuration.getDefaultApiClient();
+ defaultClient.setBasePath("https://yourbaseurl.talon.one");
+
+ // Configure API key authorization: management_key
+ ApiKeyAuth management_key = (ApiKeyAuth) defaultClient.getAuthentication("management_key");
+ management_key.setApiKey("YOUR API KEY");
+ // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null)
+ //management_key.setApiKeyPrefix("Token");
+
+ // Configure API key authorization: manager_auth
+ ApiKeyAuth manager_auth = (ApiKeyAuth) defaultClient.getAuthentication("manager_auth");
+ manager_auth.setApiKey("YOUR API KEY");
+ // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null)
+ //manager_auth.setApiKeyPrefix("Token");
+
+ ManagementApi apiInstance = new ManagementApi(defaultClient);
+ Integer loyaltyProgramId = 56; // Integer | Identifier of the profile-based loyalty program. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint.
+ NewBaseNotification body = new NewBaseNotification(); // NewBaseNotification | body
+ try {
+ BaseNotification result = apiInstance.postAddedDeductedPointsNotification(loyaltyProgramId, body);
+ System.out.println(result);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling ManagementApi#postAddedDeductedPointsNotification");
+ System.err.println("Status code: " + e.getCode());
+ System.err.println("Reason: " + e.getResponseBody());
+ System.err.println("Response headers: " + e.getResponseHeaders());
+ e.printStackTrace();
+ }
+ }
+}
+```
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **loyaltyProgramId** | **Integer**| Identifier of the profile-based loyalty program. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. |
+ **body** | [**NewBaseNotification**](NewBaseNotification.md)| body |
+
+### Return type
+
+[**BaseNotification**](BaseNotification.md)
+
+### Authorization
+
+[management_key](../README.md#management_key), [manager_auth](../README.md#manager_auth)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | OK | - |
+**400** | Bad request | - |
+**401** | Unauthorized | - |
+**404** | Not found | - |
+
+
+# **postCatalogsStrikethroughNotification**
+> BaseNotification postCatalogsStrikethroughNotification(applicationId, body)
+
+Create strikethrough notification
+
+Create a notification for the in the given Application. For more information, see [Managing notifications](https://docs.talon.one/docs/product/applications/outbound-notifications). See the [payload](https://docs.talon.one/outbound-notifications) you will receive.
### Example
```java
@@ -11026,6 +11360,664 @@ Name | Type | Description | Notes
|-------------|-------------|------------------|
**204** | Created | - |
+
+# **scimCreateUser**
+> ScimUser scimCreateUser(body)
+
+Create SCIM user
+
+Create a new Talon.One user using the SCIM provisioning protocol with an identity provider, for example, Microsoft Entra ID.
+
+### Example
+```java
+// Import classes:
+import one.talon.ApiClient;
+import one.talon.ApiException;
+import one.talon.Configuration;
+import one.talon.auth.*;
+import one.talon.models.*;
+import one.talon.api.ManagementApi;
+
+public class Example {
+ public static void main(String[] args) {
+ ApiClient defaultClient = Configuration.getDefaultApiClient();
+ defaultClient.setBasePath("https://yourbaseurl.talon.one");
+
+ // Configure API key authorization: management_key
+ ApiKeyAuth management_key = (ApiKeyAuth) defaultClient.getAuthentication("management_key");
+ management_key.setApiKey("YOUR API KEY");
+ // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null)
+ //management_key.setApiKeyPrefix("Token");
+
+ // Configure API key authorization: manager_auth
+ ApiKeyAuth manager_auth = (ApiKeyAuth) defaultClient.getAuthentication("manager_auth");
+ manager_auth.setApiKey("YOUR API KEY");
+ // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null)
+ //manager_auth.setApiKeyPrefix("Token");
+
+ ManagementApi apiInstance = new ManagementApi(defaultClient);
+ Object body = null; // Object | body
+ try {
+ ScimUser result = apiInstance.scimCreateUser(body);
+ System.out.println(result);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling ManagementApi#scimCreateUser");
+ System.err.println("Status code: " + e.getCode());
+ System.err.println("Reason: " + e.getResponseBody());
+ System.err.println("Response headers: " + e.getResponseHeaders());
+ e.printStackTrace();
+ }
+ }
+}
+```
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **body** | **Object**| body |
+
+### Return type
+
+[**ScimUser**](ScimUser.md)
+
+### Authorization
+
+[management_key](../README.md#management_key), [manager_auth](../README.md#manager_auth)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**201** | Created | - |
+
+
+# **scimDeleteUser**
+> scimDeleteUser(userId)
+
+Delete SCIM user
+
+Delete a specific Talon.One user created using the SCIM provisioning protocol with an identity provider, for example, Microsoft Entra ID.
+
+### Example
+```java
+// Import classes:
+import one.talon.ApiClient;
+import one.talon.ApiException;
+import one.talon.Configuration;
+import one.talon.auth.*;
+import one.talon.models.*;
+import one.talon.api.ManagementApi;
+
+public class Example {
+ public static void main(String[] args) {
+ ApiClient defaultClient = Configuration.getDefaultApiClient();
+ defaultClient.setBasePath("https://yourbaseurl.talon.one");
+
+ // Configure API key authorization: management_key
+ ApiKeyAuth management_key = (ApiKeyAuth) defaultClient.getAuthentication("management_key");
+ management_key.setApiKey("YOUR API KEY");
+ // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null)
+ //management_key.setApiKeyPrefix("Token");
+
+ // Configure API key authorization: manager_auth
+ ApiKeyAuth manager_auth = (ApiKeyAuth) defaultClient.getAuthentication("manager_auth");
+ manager_auth.setApiKey("YOUR API KEY");
+ // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null)
+ //manager_auth.setApiKeyPrefix("Token");
+
+ ManagementApi apiInstance = new ManagementApi(defaultClient);
+ Integer userId = 56; // Integer | The ID of the user.
+ try {
+ apiInstance.scimDeleteUser(userId);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling ManagementApi#scimDeleteUser");
+ System.err.println("Status code: " + e.getCode());
+ System.err.println("Reason: " + e.getResponseBody());
+ System.err.println("Response headers: " + e.getResponseHeaders());
+ e.printStackTrace();
+ }
+ }
+}
+```
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **userId** | **Integer**| The ID of the user. |
+
+### Return type
+
+null (empty response body)
+
+### Authorization
+
+[management_key](../README.md#management_key), [manager_auth](../README.md#manager_auth)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: Not defined
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**204** | No Content | - |
+
+
+# **scimGetResourceTypes**
+> ScimResourceTypesListResponse scimGetResourceTypes()
+
+List supported SCIM resource types
+
+Retrieve a list of resource types supported by the SCIM provisioning protocol. Resource types define the various kinds of resources that can be managed via the SCIM API, such as users, groups, or custom-defined resources.
+
+### Example
+```java
+// Import classes:
+import one.talon.ApiClient;
+import one.talon.ApiException;
+import one.talon.Configuration;
+import one.talon.auth.*;
+import one.talon.models.*;
+import one.talon.api.ManagementApi;
+
+public class Example {
+ public static void main(String[] args) {
+ ApiClient defaultClient = Configuration.getDefaultApiClient();
+ defaultClient.setBasePath("https://yourbaseurl.talon.one");
+
+ // Configure API key authorization: management_key
+ ApiKeyAuth management_key = (ApiKeyAuth) defaultClient.getAuthentication("management_key");
+ management_key.setApiKey("YOUR API KEY");
+ // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null)
+ //management_key.setApiKeyPrefix("Token");
+
+ // Configure API key authorization: manager_auth
+ ApiKeyAuth manager_auth = (ApiKeyAuth) defaultClient.getAuthentication("manager_auth");
+ manager_auth.setApiKey("YOUR API KEY");
+ // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null)
+ //manager_auth.setApiKeyPrefix("Token");
+
+ ManagementApi apiInstance = new ManagementApi(defaultClient);
+ try {
+ ScimResourceTypesListResponse result = apiInstance.scimGetResourceTypes();
+ System.out.println(result);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling ManagementApi#scimGetResourceTypes");
+ System.err.println("Status code: " + e.getCode());
+ System.err.println("Reason: " + e.getResponseBody());
+ System.err.println("Response headers: " + e.getResponseHeaders());
+ e.printStackTrace();
+ }
+ }
+}
+```
+
+### Parameters
+This endpoint does not need any parameter.
+
+### Return type
+
+[**ScimResourceTypesListResponse**](ScimResourceTypesListResponse.md)
+
+### Authorization
+
+[management_key](../README.md#management_key), [manager_auth](../README.md#manager_auth)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | List of resource types | - |
+
+
+# **scimGetSchemas**
+> scimGetSchemas()
+
+List supported SCIM schemas
+
+Retrieve a list of schemas supported by the SCIM provisioning protocol. Schemas define the structure and attributes of the different resources that can be managed via the SCIM API, such as users, groups, and any custom-defined resources.
+
+### Example
+```java
+// Import classes:
+import one.talon.ApiClient;
+import one.talon.ApiException;
+import one.talon.Configuration;
+import one.talon.auth.*;
+import one.talon.models.*;
+import one.talon.api.ManagementApi;
+
+public class Example {
+ public static void main(String[] args) {
+ ApiClient defaultClient = Configuration.getDefaultApiClient();
+ defaultClient.setBasePath("https://yourbaseurl.talon.one");
+
+ // Configure API key authorization: management_key
+ ApiKeyAuth management_key = (ApiKeyAuth) defaultClient.getAuthentication("management_key");
+ management_key.setApiKey("YOUR API KEY");
+ // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null)
+ //management_key.setApiKeyPrefix("Token");
+
+ // Configure API key authorization: manager_auth
+ ApiKeyAuth manager_auth = (ApiKeyAuth) defaultClient.getAuthentication("manager_auth");
+ manager_auth.setApiKey("YOUR API KEY");
+ // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null)
+ //manager_auth.setApiKeyPrefix("Token");
+
+ ManagementApi apiInstance = new ManagementApi(defaultClient);
+ try {
+ apiInstance.scimGetSchemas();
+ } catch (ApiException e) {
+ System.err.println("Exception when calling ManagementApi#scimGetSchemas");
+ System.err.println("Status code: " + e.getCode());
+ System.err.println("Reason: " + e.getResponseBody());
+ System.err.println("Response headers: " + e.getResponseHeaders());
+ e.printStackTrace();
+ }
+ }
+}
+```
+
+### Parameters
+This endpoint does not need any parameter.
+
+### Return type
+
+null (empty response body)
+
+### Authorization
+
+[management_key](../README.md#management_key), [manager_auth](../README.md#manager_auth)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: Not defined
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Schemas | - |
+
+
+# **scimGetServiceProviderConfig**
+> scimGetServiceProviderConfig()
+
+Service config endpoint for SCIM provisioning protocol
+
+Service config endpoint for SCIM provisioning protocol
+
+### Example
+```java
+// Import classes:
+import one.talon.ApiClient;
+import one.talon.ApiException;
+import one.talon.Configuration;
+import one.talon.auth.*;
+import one.talon.models.*;
+import one.talon.api.ManagementApi;
+
+public class Example {
+ public static void main(String[] args) {
+ ApiClient defaultClient = Configuration.getDefaultApiClient();
+ defaultClient.setBasePath("https://yourbaseurl.talon.one");
+
+ // Configure API key authorization: management_key
+ ApiKeyAuth management_key = (ApiKeyAuth) defaultClient.getAuthentication("management_key");
+ management_key.setApiKey("YOUR API KEY");
+ // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null)
+ //management_key.setApiKeyPrefix("Token");
+
+ // Configure API key authorization: manager_auth
+ ApiKeyAuth manager_auth = (ApiKeyAuth) defaultClient.getAuthentication("manager_auth");
+ manager_auth.setApiKey("YOUR API KEY");
+ // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null)
+ //manager_auth.setApiKeyPrefix("Token");
+
+ ManagementApi apiInstance = new ManagementApi(defaultClient);
+ try {
+ apiInstance.scimGetServiceProviderConfig();
+ } catch (ApiException e) {
+ System.err.println("Exception when calling ManagementApi#scimGetServiceProviderConfig");
+ System.err.println("Status code: " + e.getCode());
+ System.err.println("Reason: " + e.getResponseBody());
+ System.err.println("Response headers: " + e.getResponseHeaders());
+ e.printStackTrace();
+ }
+ }
+}
+```
+
+### Parameters
+This endpoint does not need any parameter.
+
+### Return type
+
+null (empty response body)
+
+### Authorization
+
+[management_key](../README.md#management_key), [manager_auth](../README.md#manager_auth)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: Not defined
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | Service config | - |
+
+
+# **scimGetUser**
+> ScimUser scimGetUser(userId)
+
+Get SCIM user
+
+Retrieve data for a specific Talon.One user created using the SCIM provisioning protocol with an identity provider, for example, Microsoft Entra ID.
+
+### Example
+```java
+// Import classes:
+import one.talon.ApiClient;
+import one.talon.ApiException;
+import one.talon.Configuration;
+import one.talon.auth.*;
+import one.talon.models.*;
+import one.talon.api.ManagementApi;
+
+public class Example {
+ public static void main(String[] args) {
+ ApiClient defaultClient = Configuration.getDefaultApiClient();
+ defaultClient.setBasePath("https://yourbaseurl.talon.one");
+
+ // Configure API key authorization: management_key
+ ApiKeyAuth management_key = (ApiKeyAuth) defaultClient.getAuthentication("management_key");
+ management_key.setApiKey("YOUR API KEY");
+ // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null)
+ //management_key.setApiKeyPrefix("Token");
+
+ // Configure API key authorization: manager_auth
+ ApiKeyAuth manager_auth = (ApiKeyAuth) defaultClient.getAuthentication("manager_auth");
+ manager_auth.setApiKey("YOUR API KEY");
+ // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null)
+ //manager_auth.setApiKeyPrefix("Token");
+
+ ManagementApi apiInstance = new ManagementApi(defaultClient);
+ Integer userId = 56; // Integer | The ID of the user.
+ try {
+ ScimUser result = apiInstance.scimGetUser(userId);
+ System.out.println(result);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling ManagementApi#scimGetUser");
+ System.err.println("Status code: " + e.getCode());
+ System.err.println("Reason: " + e.getResponseBody());
+ System.err.println("Response headers: " + e.getResponseHeaders());
+ e.printStackTrace();
+ }
+ }
+}
+```
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **userId** | **Integer**| The ID of the user. |
+
+### Return type
+
+[**ScimUser**](ScimUser.md)
+
+### Authorization
+
+[management_key](../README.md#management_key), [manager_auth](../README.md#manager_auth)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | User details | - |
+
+
+# **scimGetUsers**
+> ScimUsersListResponse scimGetUsers()
+
+List SCIM users
+
+Retrieve a paginated list of users that have been provisioned using the SCIM protocol with an identity provider, for example, Microsoft Entra ID.
+
+### Example
+```java
+// Import classes:
+import one.talon.ApiClient;
+import one.talon.ApiException;
+import one.talon.Configuration;
+import one.talon.auth.*;
+import one.talon.models.*;
+import one.talon.api.ManagementApi;
+
+public class Example {
+ public static void main(String[] args) {
+ ApiClient defaultClient = Configuration.getDefaultApiClient();
+ defaultClient.setBasePath("https://yourbaseurl.talon.one");
+
+ // Configure API key authorization: management_key
+ ApiKeyAuth management_key = (ApiKeyAuth) defaultClient.getAuthentication("management_key");
+ management_key.setApiKey("YOUR API KEY");
+ // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null)
+ //management_key.setApiKeyPrefix("Token");
+
+ // Configure API key authorization: manager_auth
+ ApiKeyAuth manager_auth = (ApiKeyAuth) defaultClient.getAuthentication("manager_auth");
+ manager_auth.setApiKey("YOUR API KEY");
+ // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null)
+ //manager_auth.setApiKeyPrefix("Token");
+
+ ManagementApi apiInstance = new ManagementApi(defaultClient);
+ try {
+ ScimUsersListResponse result = apiInstance.scimGetUsers();
+ System.out.println(result);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling ManagementApi#scimGetUsers");
+ System.err.println("Status code: " + e.getCode());
+ System.err.println("Reason: " + e.getResponseBody());
+ System.err.println("Response headers: " + e.getResponseHeaders());
+ e.printStackTrace();
+ }
+ }
+}
+```
+
+### Parameters
+This endpoint does not need any parameter.
+
+### Return type
+
+[**ScimUsersListResponse**](ScimUsersListResponse.md)
+
+### Authorization
+
+[management_key](../README.md#management_key), [manager_auth](../README.md#manager_auth)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | List of SCIM users | - |
+
+
+# **scimPatchUser**
+> ScimUser scimPatchUser(userId)
+
+Update SCIM user attributes
+
+Update certain attributes of a specific Talon.One user created using the SCIM provisioning protocol with an identity provider, for example, Microsoft Entra ID. This endpoint allows for selective adding, removing, or replacing specific attributes while leaving other attributes unchanged.
+
+### Example
+```java
+// Import classes:
+import one.talon.ApiClient;
+import one.talon.ApiException;
+import one.talon.Configuration;
+import one.talon.auth.*;
+import one.talon.models.*;
+import one.talon.api.ManagementApi;
+
+public class Example {
+ public static void main(String[] args) {
+ ApiClient defaultClient = Configuration.getDefaultApiClient();
+ defaultClient.setBasePath("https://yourbaseurl.talon.one");
+
+ // Configure API key authorization: management_key
+ ApiKeyAuth management_key = (ApiKeyAuth) defaultClient.getAuthentication("management_key");
+ management_key.setApiKey("YOUR API KEY");
+ // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null)
+ //management_key.setApiKeyPrefix("Token");
+
+ // Configure API key authorization: manager_auth
+ ApiKeyAuth manager_auth = (ApiKeyAuth) defaultClient.getAuthentication("manager_auth");
+ manager_auth.setApiKey("YOUR API KEY");
+ // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null)
+ //manager_auth.setApiKeyPrefix("Token");
+
+ ManagementApi apiInstance = new ManagementApi(defaultClient);
+ Integer userId = 56; // Integer | The ID of the user.
+ try {
+ ScimUser result = apiInstance.scimPatchUser(userId);
+ System.out.println(result);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling ManagementApi#scimPatchUser");
+ System.err.println("Status code: " + e.getCode());
+ System.err.println("Reason: " + e.getResponseBody());
+ System.err.println("Response headers: " + e.getResponseHeaders());
+ e.printStackTrace();
+ }
+ }
+}
+```
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **userId** | **Integer**| The ID of the user. |
+
+### Return type
+
+[**ScimUser**](ScimUser.md)
+
+### Authorization
+
+[management_key](../README.md#management_key), [manager_auth](../README.md#manager_auth)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | User details | - |
+
+
+# **scimReplaceUserAttributes**
+> ScimUser scimReplaceUserAttributes(userId, body)
+
+Update SCIM user
+
+Update the details of a specific Talon.One user created using the SCIM provisioning protocol with an identity provider, for example, Microsoft Entra ID. This endpoint replaces all attributes of the specific user with the attributes provided in the request payload.
+
+### Example
+```java
+// Import classes:
+import one.talon.ApiClient;
+import one.talon.ApiException;
+import one.talon.Configuration;
+import one.talon.auth.*;
+import one.talon.models.*;
+import one.talon.api.ManagementApi;
+
+public class Example {
+ public static void main(String[] args) {
+ ApiClient defaultClient = Configuration.getDefaultApiClient();
+ defaultClient.setBasePath("https://yourbaseurl.talon.one");
+
+ // Configure API key authorization: management_key
+ ApiKeyAuth management_key = (ApiKeyAuth) defaultClient.getAuthentication("management_key");
+ management_key.setApiKey("YOUR API KEY");
+ // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null)
+ //management_key.setApiKeyPrefix("Token");
+
+ // Configure API key authorization: manager_auth
+ ApiKeyAuth manager_auth = (ApiKeyAuth) defaultClient.getAuthentication("manager_auth");
+ manager_auth.setApiKey("YOUR API KEY");
+ // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null)
+ //manager_auth.setApiKeyPrefix("Token");
+
+ ManagementApi apiInstance = new ManagementApi(defaultClient);
+ Integer userId = 56; // Integer | The ID of the user.
+ Object body = null; // Object | body
+ try {
+ ScimUser result = apiInstance.scimReplaceUserAttributes(userId, body);
+ System.out.println(result);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling ManagementApi#scimReplaceUserAttributes");
+ System.err.println("Status code: " + e.getCode());
+ System.err.println("Reason: " + e.getResponseBody());
+ System.err.println("Response headers: " + e.getResponseHeaders());
+ e.printStackTrace();
+ }
+ }
+}
+```
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **userId** | **Integer**| The ID of the user. |
+ **body** | **Object**| body |
+
+### Return type
+
+[**ScimUser**](ScimUser.md)
+
+### Authorization
+
+[management_key](../README.md#management_key), [manager_auth](../README.md#manager_auth)
+
+### HTTP request headers
+
+ - **Content-Type**: application/json
+ - **Accept**: application/json
+
+### HTTP response details
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | User details | - |
+
# **searchCouponsAdvancedApplicationWideWithoutTotalCount**
> InlineResponse2009 searchCouponsAdvancedApplicationWideWithoutTotalCount(applicationId, body, pageSize, skip, sort, value, createdBefore, createdAfter, valid, usable, referralId, recipientIntegrationId, batchId, exactMatch, campaignState)
diff --git a/docs/MessageLogResponse.md b/docs/MessageLogResponse.md
index 850cce3..7f9e54d 100644
--- a/docs/MessageLogResponse.md
+++ b/docs/MessageLogResponse.md
@@ -7,9 +7,9 @@ Details of the response.
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**createdAt** | [**OffsetDateTime**](OffsetDateTime.md) | Timestamp when the response was received. |
-**response** | **byte[]** | Raw response data. |
-**status** | **Integer** | HTTP status code of the response. |
+**createdAt** | [**OffsetDateTime**](OffsetDateTime.md) | Timestamp when the response was received. | [optional]
+**response** | **byte[]** | Raw response data. | [optional]
+**status** | **Integer** | HTTP status code of the response. | [optional]
diff --git a/docs/NewAttribute.md b/docs/NewAttribute.md
index 057c768..12ba99b 100644
--- a/docs/NewAttribute.md
+++ b/docs/NewAttribute.md
@@ -27,7 +27,6 @@ Name | Type | Description | Notes
Name | Value
---- | -----
-ACCOUNT | "Account"
APPLICATION | "Application"
CAMPAIGN | "Campaign"
CUSTOMERPROFILE | "CustomerProfile"
diff --git a/docs/NewBaseNotification.md b/docs/NewBaseNotification.md
index 159b575..36bb5e9 100644
--- a/docs/NewBaseNotification.md
+++ b/docs/NewBaseNotification.md
@@ -7,7 +7,7 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**policy** | [**Object**](.md) | |
+**policy** | [**Object**](.md) | Indicates which notification properties to apply. |
**enabled** | **Boolean** | Indicates whether the notification is activated. | [optional]
**webhook** | [**NewNotificationWebhook**](NewNotificationWebhook.md) | |
diff --git a/docs/NewLoyaltyProgram.md b/docs/NewLoyaltyProgram.md
index d096586..9d1fdb9 100644
--- a/docs/NewLoyaltyProgram.md
+++ b/docs/NewLoyaltyProgram.md
@@ -15,10 +15,12 @@ Name | Type | Description | Notes
**allowSubledger** | **Boolean** | Indicates if this program supports subledgers inside the program. |
**usersPerCardLimit** | **Integer** | The max amount of user profiles with whom a card can be shared. This can be set to 0 for no limit. This property is only used when `cardBased` is `true`. | [optional]
**sandbox** | **Boolean** | Indicates if this program is a live or sandbox program. Programs of a given type can only be connected to Applications of the same type. |
-**tiersExpirationPolicy** | [**TiersExpirationPolicyEnum**](#TiersExpirationPolicyEnum) | The policy that defines which date is used to calculate the expiration date of a customer's current tier. - `tier_start_date`: The tier expiration date is calculated based on when the customer joined the current tier. - `program_join_date`: The tier expiration date is calculated based on when the customer joined the loyalty program. | [optional]
+**programJoinPolicy** | [**ProgramJoinPolicyEnum**](#ProgramJoinPolicyEnum) | The policy that defines when the customer joins the loyalty program. - `not_join`: The customer does not join the loyalty program but can still earn and spend loyalty points. **Note**: The customer does not have a program join date. - `points_activated`: The customer joins the loyalty program only when their earned loyalty points become active for the first time. - `points_earned`: The customer joins the loyalty program when they earn loyalty points for the first time. | [optional]
+**tiersExpirationPolicy** | [**TiersExpirationPolicyEnum**](#TiersExpirationPolicyEnum) | The policy that defines which date is used to calculate the expiration date of a customer's current tier. - `tier_start_date`: The tier expiration date is calculated based on when the customer joined the current tier. - `program_join_date`: The tier expiration date is calculated based on when the customer joined the loyalty program. - `customer_attribute`: The tier expiration date is calculated based on a custom customer attribute. - `absolute_expiration`: The tier expires on a specified date and time. **Note**: For absolute expiration, it is required to provide a `tiersStartDate.` | [optional]
+**tiersStartDate** | [**OffsetDateTime**](OffsetDateTime.md) | Timestamp at which the tier starts for all customers. **Note**: This is only required when the tier expiration policy is set to `absolute_expiration`. | [optional]
**tiersExpireIn** | **String** | The amount of time after which the tier expires. The time format is an **integer** followed by one letter indicating the time unit. Examples: `30s`, `40m`, `1h`, `5D`, `7W`, `10M`, `15Y`. Available units: - `s`: seconds - `m`: minutes - `h`: hours - `D`: days - `W`: weeks - `M`: months - `Y`: years You can round certain units up or down: - `_D` for rounding down days only. Signifies the start of the day. - `_U` for rounding up days, weeks, months and years. Signifies the end of the day, week, month or year. | [optional]
**tiersDowngradePolicy** | [**TiersDowngradePolicyEnum**](#TiersDowngradePolicyEnum) | Customers's tier downgrade policy. - `one_down`: Once the tier expires and if the user doesn't have enough points to stay in the tier, the user is downgraded one tier down. - `balance_based`: Once the tier expires, the user's tier is evaluated based on the amount of active points the user has at this instant. | [optional]
-**programJoinPolicy** | [**ProgramJoinPolicyEnum**](#ProgramJoinPolicyEnum) | The policy that defines when the customer joins the loyalty program. - `not_join`: The customer does not join the loyalty program but can still earn and spend loyalty points. **Note**: The customer does not have a program join date. - `points_activated`: The customer joins the loyalty program only when their earned loyalty points become active for the first time. - `points_earned`: The customer joins the loyalty program when they earn loyalty points for the first time. | [optional]
+**cardCodeSettings** | [**CodeGeneratorSettings**](CodeGeneratorSettings.md) | | [optional]
**name** | **String** | The internal name for the Loyalty Program. This is an immutable value. |
**tiers** | [**List<NewLoyaltyTier>**](NewLoyaltyTier.md) | The tiers in this loyalty program. | [optional]
**timezone** | **String** | A string containing an IANA timezone descriptor. |
@@ -26,31 +28,33 @@ Name | Type | Description | Notes
-## Enum: TiersExpirationPolicyEnum
+## Enum: ProgramJoinPolicyEnum
Name | Value
---- | -----
-TIER_START_DATE | "tier_start_date"
-PROGRAM_JOIN_DATE | "program_join_date"
+NOT_JOIN | "not_join"
+POINTS_ACTIVATED | "points_activated"
+POINTS_EARNED | "points_earned"
-## Enum: TiersDowngradePolicyEnum
+## Enum: TiersExpirationPolicyEnum
Name | Value
---- | -----
-ONE_DOWN | "one_down"
-BALANCE_BASED | "balance_based"
+TIER_START_DATE | "tier_start_date"
+PROGRAM_JOIN_DATE | "program_join_date"
+CUSTOMER_ATTRIBUTE | "customer_attribute"
+ABSOLUTE_EXPIRATION | "absolute_expiration"
-## Enum: ProgramJoinPolicyEnum
+## Enum: TiersDowngradePolicyEnum
Name | Value
---- | -----
-NOT_JOIN | "not_join"
-POINTS_ACTIVATED | "points_activated"
-POINTS_EARNED | "points_earned"
+ONE_DOWN | "one_down"
+BALANCE_BASED | "balance_based"
diff --git a/docs/NewNotificationTest.md b/docs/NewNotificationTest.md
index a3e12ad..409d755 100644
--- a/docs/NewNotificationTest.md
+++ b/docs/NewNotificationTest.md
@@ -21,6 +21,7 @@ Name | Value
---- | -----
CAMPAIGN | "campaign"
LOYALTY_ADDED_DEDUCTED_POINTS | "loyalty_added_deducted_points"
+CARD_ADDED_DEDUCTED_POINTS | "card_added_deducted_points"
COUPON | "coupon"
EXPIRING_COUPONS | "expiring_coupons"
EXPIRING_POINTS | "expiring_points"
diff --git a/docs/NewOutgoingIntegrationWebhook.md b/docs/NewOutgoingIntegrationWebhook.md
index 289cde4..ab5c3d8 100644
--- a/docs/NewOutgoingIntegrationWebhook.md
+++ b/docs/NewOutgoingIntegrationWebhook.md
@@ -7,6 +7,7 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**title** | **String** | Webhook title. |
+**description** | **String** | A description of the webhook. | [optional]
**applicationIds** | **List<Integer>** | IDs of the Applications to which a webhook must be linked. |
diff --git a/docs/NewWebhook.md b/docs/NewWebhook.md
index dc51ab8..72d93f7 100644
--- a/docs/NewWebhook.md
+++ b/docs/NewWebhook.md
@@ -9,6 +9,7 @@ Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**applicationIds** | **List<Integer>** | The IDs of the Applications that are related to this entity. |
**title** | **String** | Name or title for this webhook. |
+**description** | **String** | A description of the webhook. | [optional]
**verb** | [**VerbEnum**](#VerbEnum) | API method for this webhook. |
**url** | **String** | API URL (supports templating using parameters) for this webhook. |
**headers** | **List<String>** | List of API HTTP headers for this webhook. |
diff --git a/docs/OktaEvent.md b/docs/OktaEvent.md
new file mode 100644
index 0000000..0370e2d
--- /dev/null
+++ b/docs/OktaEvent.md
@@ -0,0 +1,14 @@
+
+
+# OktaEvent
+
+Single event definition in the event data emitted by Okta.
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**eventType** | **String** | Event type defining an action. |
+**target** | [**List<OktaEventTarget>**](OktaEventTarget.md) | |
+
+
+
diff --git a/docs/OktaEventPayload.md b/docs/OktaEventPayload.md
new file mode 100644
index 0000000..1262be5
--- /dev/null
+++ b/docs/OktaEventPayload.md
@@ -0,0 +1,13 @@
+
+
+# OktaEventPayload
+
+Payload containing provisioning event details from Okta.
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**OktaEventPayloadData**](OktaEventPayloadData.md) | |
+
+
+
diff --git a/docs/OktaEventPayloadData.md b/docs/OktaEventPayloadData.md
new file mode 100644
index 0000000..2fda899
--- /dev/null
+++ b/docs/OktaEventPayloadData.md
@@ -0,0 +1,13 @@
+
+
+# OktaEventPayloadData
+
+Data part of the event emitted by Okta.
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**events** | [**List<OktaEvent>**](OktaEvent.md) | |
+
+
+
diff --git a/docs/OktaEventTarget.md b/docs/OktaEventTarget.md
new file mode 100644
index 0000000..ec184af
--- /dev/null
+++ b/docs/OktaEventTarget.md
@@ -0,0 +1,15 @@
+
+
+# OktaEventTarget
+
+Target of the specific Okta event.
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**type** | **String** | Type of the event target. |
+**alternateId** | **String** | Identifier of the event target, depending on its type. |
+**displayName** | **String** | Display name of the event target. |
+
+
+
diff --git a/docs/ProjectedTier.md b/docs/ProjectedTier.md
new file mode 100644
index 0000000..6386608
--- /dev/null
+++ b/docs/ProjectedTier.md
@@ -0,0 +1,14 @@
+
+
+# ProjectedTier
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**projectedActivePoints** | [**BigDecimal**](BigDecimal.md) | The active points of the customer when their current tier expires. |
+**stayInTierPoints** | [**BigDecimal**](BigDecimal.md) | The number of points the customer needs to stay in the current tier. **Note**: This is included in the response when the customer is projected to be downgraded. | [optional]
+**projectedTierName** | **String** | The name of the tier the user will enter once their current tier expires. | [optional]
+
+
+
diff --git a/docs/RejectCouponEffectProps.md b/docs/RejectCouponEffectProps.md
index 60702ae..7dad99e 100644
--- a/docs/RejectCouponEffectProps.md
+++ b/docs/RejectCouponEffectProps.md
@@ -12,6 +12,7 @@ Name | Type | Description | Notes
**conditionIndex** | **Integer** | The index of the condition that caused the rejection of the coupon. | [optional]
**effectIndex** | **Integer** | The index of the effect that caused the rejection of the coupon. | [optional]
**details** | **String** | More details about the failure. | [optional]
+**campaignExclusionReason** | **String** | The reason why the campaign was not applied. | [optional]
diff --git a/docs/RejectReferralEffectProps.md b/docs/RejectReferralEffectProps.md
index 7b40745..c44ee07 100644
--- a/docs/RejectReferralEffectProps.md
+++ b/docs/RejectReferralEffectProps.md
@@ -12,6 +12,7 @@ Name | Type | Description | Notes
**conditionIndex** | **Integer** | The index of the condition that caused the rejection of the referral. | [optional]
**effectIndex** | **Integer** | The index of the effect that caused the rejection of the referral. | [optional]
**details** | **String** | More details about the failure. | [optional]
+**campaignExclusionReason** | **String** | The reason why the campaign was not applied. | [optional]
diff --git a/docs/RollbackIncreasedAchievementProgressEffectProps.md b/docs/RollbackIncreasedAchievementProgressEffectProps.md
new file mode 100644
index 0000000..80e6519
--- /dev/null
+++ b/docs/RollbackIncreasedAchievementProgressEffectProps.md
@@ -0,0 +1,18 @@
+
+
+# RollbackIncreasedAchievementProgressEffectProps
+
+The properties specific to the \"rollbackIncreasedAchievementProgress\" effect. This gets triggered whenever a closed session where the `increaseAchievementProgress` effect was triggered is cancelled. This is applicable only when the customer has not completed the achievement.
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**achievementId** | **Integer** | The internal ID of the achievement. |
+**achievementName** | **String** | The name of the achievement. |
+**progressTrackerId** | **Integer** | The internal ID of the achievement progress tracker. |
+**decreaseProgressBy** | [**BigDecimal**](BigDecimal.md) | The value by which the customer's current progress in the achievement is decreased. |
+**currentProgress** | [**BigDecimal**](BigDecimal.md) | The current progress of the customer in the achievement. |
+**target** | [**BigDecimal**](BigDecimal.md) | The target value to complete the achievement. |
+
+
+
diff --git a/docs/SSOConfig.md b/docs/SSOConfig.md
index 6988c59..3ee830a 100644
--- a/docs/SSOConfig.md
+++ b/docs/SSOConfig.md
@@ -7,6 +7,7 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**enforced** | **Boolean** | An indication of whether single sign-on is enforced for the account. When enforced, users cannot use their email and password to sign in to Talon.One. It is not possible to change this to `false` after it is set to `true`. |
+**newAcsUrl** | **String** | Assertion Consumer Service (ACS) URL for setting up a new SAML connection with an identity provider like Okta or Microsoft Entra ID. | [optional]
diff --git a/docs/ScimNewUser.md b/docs/ScimNewUser.md
new file mode 100644
index 0000000..7ee8fdc
--- /dev/null
+++ b/docs/ScimNewUser.md
@@ -0,0 +1,15 @@
+
+
+# ScimNewUser
+
+Payload for users that are created using the SCIM provisioning protocol with an identity provider, for example, Microsoft Entra ID.
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**active** | **Boolean** | Status of the user. | [optional]
+**displayName** | **String** | Display name of the user. | [optional]
+**userName** | **String** | Unique identifier of the user. This is usually an email address. |
+
+
+
diff --git a/docs/ScimResource.md b/docs/ScimResource.md
new file mode 100644
index 0000000..b5d6521
--- /dev/null
+++ b/docs/ScimResource.md
@@ -0,0 +1,14 @@
+
+
+# ScimResource
+
+Resource schema definition for the SCIM provisioning protocol.
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **String** | ID of the resource. | [optional]
+**name** | **String** | Name of the resource. | [optional]
+
+
+
diff --git a/docs/ScimResourceTypesListResponse.md b/docs/ScimResourceTypesListResponse.md
new file mode 100644
index 0000000..b0ee7d8
--- /dev/null
+++ b/docs/ScimResourceTypesListResponse.md
@@ -0,0 +1,13 @@
+
+
+# ScimResourceTypesListResponse
+
+List of resource types supported by the SCIM provisioning protocol.
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**resources** | [**List<ScimResource>**](ScimResource.md) | |
+
+
+
diff --git a/docs/ScimUser.md b/docs/ScimUser.md
new file mode 100644
index 0000000..dc261d7
--- /dev/null
+++ b/docs/ScimUser.md
@@ -0,0 +1,16 @@
+
+
+# ScimUser
+
+Schema definition for users that have been provisioned using the SCIM protocol with an identity provider, for example, Microsoft Entra ID.
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**active** | **Boolean** | Status of the user. | [optional]
+**displayName** | **String** | Display name of the user. | [optional]
+**userName** | **String** | Unique identifier of the user. This is usually an email address. |
+**id** | **String** | ID of the user. |
+
+
+
diff --git a/docs/ScimUsersListResponse.md b/docs/ScimUsersListResponse.md
new file mode 100644
index 0000000..38e37c6
--- /dev/null
+++ b/docs/ScimUsersListResponse.md
@@ -0,0 +1,15 @@
+
+
+# ScimUsersListResponse
+
+List of users that have been provisioned using the SCIM protocol with an identity provider, for example, Microsoft Entra ID.
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**resources** | [**List<ScimUser>**](ScimUser.md) | |
+**schemas** | **List<String>** | | [optional]
+**totalResults** | **Integer** | Number of total results in the response. | [optional]
+
+
+
diff --git a/docs/Tier.md b/docs/Tier.md
index af763a6..4bc78c6 100644
--- a/docs/Tier.md
+++ b/docs/Tier.md
@@ -8,6 +8,7 @@ Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**id** | **Integer** | The internal ID of the tier. |
**name** | **String** | The name of the tier. |
+**startDate** | [**OffsetDateTime**](OffsetDateTime.md) | Date and time when the customer moved to this tier. This value uses the loyalty program's time zone setting. | [optional]
**expiryDate** | [**OffsetDateTime**](OffsetDateTime.md) | Date when tier level expires in the RFC3339 format (in the Loyalty Program's timezone). | [optional]
**downgradePolicy** | [**DowngradePolicyEnum**](#DowngradePolicyEnum) | Customers's tier downgrade policy. - `one_down`: Once the tier expires and if the user doesn't have enough points to stay in the tier, the user is downgraded one tier down. - `balance_based`: Once the tier expires, the user's tier is evaluated based on the amount of active points the user has at this instant. | [optional]
diff --git a/docs/TransferLoyaltyCard.md b/docs/TransferLoyaltyCard.md
index 4ddcdde..284123c 100644
--- a/docs/TransferLoyaltyCard.md
+++ b/docs/TransferLoyaltyCard.md
@@ -7,6 +7,7 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**newCardIdentifier** | **String** | The alphanumeric identifier of the loyalty card. |
+**blockReason** | **String** | Reason for transferring and blocking the loyalty card. | [optional]
diff --git a/docs/UpdateLoyaltyCard.md b/docs/UpdateLoyaltyCard.md
index 88f22ea..f120363 100644
--- a/docs/UpdateLoyaltyCard.md
+++ b/docs/UpdateLoyaltyCard.md
@@ -7,6 +7,7 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**status** | **String** | Status of the loyalty card. Can be one of: ['active', 'inactive'] |
+**blockReason** | **String** | Reason for transferring and blocking the loyalty card. | [optional]
diff --git a/docs/UpdateLoyaltyProgram.md b/docs/UpdateLoyaltyProgram.md
index 8f4d62c..4c02b6e 100644
--- a/docs/UpdateLoyaltyProgram.md
+++ b/docs/UpdateLoyaltyProgram.md
@@ -15,39 +15,43 @@ Name | Type | Description | Notes
**allowSubledger** | **Boolean** | Indicates if this program supports subledgers inside the program. | [optional]
**usersPerCardLimit** | **Integer** | The max amount of user profiles with whom a card can be shared. This can be set to 0 for no limit. This property is only used when `cardBased` is `true`. | [optional]
**sandbox** | **Boolean** | Indicates if this program is a live or sandbox program. Programs of a given type can only be connected to Applications of the same type. | [optional]
-**tiersExpirationPolicy** | [**TiersExpirationPolicyEnum**](#TiersExpirationPolicyEnum) | The policy that defines which date is used to calculate the expiration date of a customer's current tier. - `tier_start_date`: The tier expiration date is calculated based on when the customer joined the current tier. - `program_join_date`: The tier expiration date is calculated based on when the customer joined the loyalty program. | [optional]
+**programJoinPolicy** | [**ProgramJoinPolicyEnum**](#ProgramJoinPolicyEnum) | The policy that defines when the customer joins the loyalty program. - `not_join`: The customer does not join the loyalty program but can still earn and spend loyalty points. **Note**: The customer does not have a program join date. - `points_activated`: The customer joins the loyalty program only when their earned loyalty points become active for the first time. - `points_earned`: The customer joins the loyalty program when they earn loyalty points for the first time. | [optional]
+**tiersExpirationPolicy** | [**TiersExpirationPolicyEnum**](#TiersExpirationPolicyEnum) | The policy that defines which date is used to calculate the expiration date of a customer's current tier. - `tier_start_date`: The tier expiration date is calculated based on when the customer joined the current tier. - `program_join_date`: The tier expiration date is calculated based on when the customer joined the loyalty program. - `customer_attribute`: The tier expiration date is calculated based on a custom customer attribute. - `absolute_expiration`: The tier expires on a specified date and time. **Note**: For absolute expiration, it is required to provide a `tiersStartDate.` | [optional]
+**tiersStartDate** | [**OffsetDateTime**](OffsetDateTime.md) | Timestamp at which the tier starts for all customers. **Note**: This is only required when the tier expiration policy is set to `absolute_expiration`. | [optional]
**tiersExpireIn** | **String** | The amount of time after which the tier expires. The time format is an **integer** followed by one letter indicating the time unit. Examples: `30s`, `40m`, `1h`, `5D`, `7W`, `10M`, `15Y`. Available units: - `s`: seconds - `m`: minutes - `h`: hours - `D`: days - `W`: weeks - `M`: months - `Y`: years You can round certain units up or down: - `_D` for rounding down days only. Signifies the start of the day. - `_U` for rounding up days, weeks, months and years. Signifies the end of the day, week, month or year. | [optional]
**tiersDowngradePolicy** | [**TiersDowngradePolicyEnum**](#TiersDowngradePolicyEnum) | Customers's tier downgrade policy. - `one_down`: Once the tier expires and if the user doesn't have enough points to stay in the tier, the user is downgraded one tier down. - `balance_based`: Once the tier expires, the user's tier is evaluated based on the amount of active points the user has at this instant. | [optional]
-**programJoinPolicy** | [**ProgramJoinPolicyEnum**](#ProgramJoinPolicyEnum) | The policy that defines when the customer joins the loyalty program. - `not_join`: The customer does not join the loyalty program but can still earn and spend loyalty points. **Note**: The customer does not have a program join date. - `points_activated`: The customer joins the loyalty program only when their earned loyalty points become active for the first time. - `points_earned`: The customer joins the loyalty program when they earn loyalty points for the first time. | [optional]
+**cardCodeSettings** | [**CodeGeneratorSettings**](CodeGeneratorSettings.md) | | [optional]
**tiers** | [**List<NewLoyaltyTier>**](NewLoyaltyTier.md) | The tiers in this loyalty program. | [optional]
-## Enum: TiersExpirationPolicyEnum
+## Enum: ProgramJoinPolicyEnum
Name | Value
---- | -----
-TIER_START_DATE | "tier_start_date"
-PROGRAM_JOIN_DATE | "program_join_date"
+NOT_JOIN | "not_join"
+POINTS_ACTIVATED | "points_activated"
+POINTS_EARNED | "points_earned"
-## Enum: TiersDowngradePolicyEnum
+## Enum: TiersExpirationPolicyEnum
Name | Value
---- | -----
-ONE_DOWN | "one_down"
-BALANCE_BASED | "balance_based"
+TIER_START_DATE | "tier_start_date"
+PROGRAM_JOIN_DATE | "program_join_date"
+CUSTOMER_ATTRIBUTE | "customer_attribute"
+ABSOLUTE_EXPIRATION | "absolute_expiration"
-## Enum: ProgramJoinPolicyEnum
+## Enum: TiersDowngradePolicyEnum
Name | Value
---- | -----
-NOT_JOIN | "not_join"
-POINTS_ACTIVATED | "points_activated"
-POINTS_EARNED | "points_earned"
+ONE_DOWN | "one_down"
+BALANCE_BASED | "balance_based"
diff --git a/docs/User.md b/docs/User.md
index 0190e23..57e943e 100644
--- a/docs/User.md
+++ b/docs/User.md
@@ -23,6 +23,7 @@ Name | Type | Description | Notes
**lastSignedIn** | [**OffsetDateTime**](OffsetDateTime.md) | Timestamp when the user last signed in to Talon.One. | [optional]
**lastAccessed** | [**OffsetDateTime**](OffsetDateTime.md) | Timestamp of the user's last activity after signing in to Talon.One. | [optional]
**latestFeedTimestamp** | [**OffsetDateTime**](OffsetDateTime.md) | Timestamp when the user was notified for feed. | [optional]
+**additionalAttributes** | [**Object**](.md) | Additional user attributes, created and used by external identity providers. | [optional]
diff --git a/docs/Webhook.md b/docs/Webhook.md
index 0a51690..ebce19b 100644
--- a/docs/Webhook.md
+++ b/docs/Webhook.md
@@ -12,6 +12,7 @@ Name | Type | Description | Notes
**modified** | [**OffsetDateTime**](OffsetDateTime.md) | The time this entity was last modified. |
**applicationIds** | **List<Integer>** | The IDs of the Applications that are related to this entity. The IDs of the Applications that are related to this entity. |
**title** | **String** | Name or title for this webhook. |
+**description** | **String** | A description of the webhook. | [optional]
**verb** | [**VerbEnum**](#VerbEnum) | API method for this webhook. |
**url** | **String** | API URL (supports templating using parameters) for this webhook. |
**headers** | **List<String>** | List of API HTTP headers for this webhook. |
diff --git a/docs/WebhookWithOutgoingIntegrationDetails.md b/docs/WebhookWithOutgoingIntegrationDetails.md
index a5cb0fe..cf27133 100644
--- a/docs/WebhookWithOutgoingIntegrationDetails.md
+++ b/docs/WebhookWithOutgoingIntegrationDetails.md
@@ -12,6 +12,7 @@ Name | Type | Description | Notes
**modified** | [**OffsetDateTime**](OffsetDateTime.md) | The time this entity was last modified. |
**applicationIds** | **List<Integer>** | The IDs of the Applications that are related to this entity. The IDs of the Applications that are related to this entity. |
**title** | **String** | Name or title for this webhook. |
+**description** | **String** | A description of the webhook. | [optional]
**verb** | [**VerbEnum**](#VerbEnum) | API method for this webhook. |
**url** | **String** | API URL (supports templating using parameters) for this webhook. |
**headers** | **List<String>** | List of API HTTP headers for this webhook. |
diff --git a/pom.xml b/pom.xml
index 4bcca9a..955d63d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -5,7 +5,7 @@
talon-one-client
jar
talon-one-client
-
8.0.0
+
9.0.0
https://github.com/talon-one/maven-artefacts
Talon.One unified JAVA SDK. It allows for programmatic access to the integration and management API with their respective authentication strategies
diff --git a/src/main/java/one/talon/ApiClient.java b/src/main/java/one/talon/ApiClient.java
index 9ba9ff0..c83d972 100644
--- a/src/main/java/one/talon/ApiClient.java
+++ b/src/main/java/one/talon/ApiClient.java
@@ -132,7 +132,7 @@ private void init() {
json = new JSON();
// Set default User-Agent.
- setUserAgent("OpenAPI-Generator/8.0.0/java");
+ setUserAgent("OpenAPI-Generator/9.0.0/java");
authentications = new HashMap();
}
diff --git a/src/main/java/one/talon/api/IntegrationApi.java b/src/main/java/one/talon/api/IntegrationApi.java
index 7883457..bddbf26 100644
--- a/src/main/java/one/talon/api/IntegrationApi.java
+++ b/src/main/java/one/talon/api/IntegrationApi.java
@@ -48,7 +48,7 @@
import one.talon.model.IntegrationEventV2Request;
import one.talon.model.IntegrationRequest;
import one.talon.model.IntegrationStateV2;
-import one.talon.model.LoyaltyBalances;
+import one.talon.model.LoyaltyBalancesWithTiers;
import one.talon.model.LoyaltyCard;
import one.talon.model.LoyaltyCardBalances;
import one.talon.model.LoyaltyCardRegistration;
@@ -1360,6 +1360,8 @@ public okhttp3.Call getCustomerSessionAsync(String customerSessionId, final ApiC
* @param integrationId The integration identifier for this customer profile. Must be: - Unique within the deployment. - Stable for the customer. Do not use an ID that the customer can update themselves. For example, you can use a database ID. Once set, you cannot update this identifier. (required)
* @param endDate Used to return expired, active, and pending loyalty balances before this timestamp. You can enter any past, present, or future timestamp value. **Note:** - It must be an RFC3339 timestamp string. - You can include a time component in your string, for example, `T23:59:59` to specify the end of the day. The time zone setting considered is `UTC`. If you do not include a time component, a default time value of `T00:00:00` (midnight) in `UTC` is considered. (optional)
* @param subledgerId The ID of the subledger by which we filter the data. (optional)
+ * @param includeTiers Indicates whether tier information is included in the response. When set to `true`, the response includes information about the current tier and the number of points required to move to next tier. (optional, default to false)
+ * @param includeProjectedTier Indicates whether the customer's projected tier information is included in the response. When set to `true`, the response includes information about the customer’s active points and the name of the projected tier. **Note** We recommend filtering by `subledgerId` for better performance. (optional, default to false)
* @param _callback Callback for upload/download progress
* @return Call to execute
* @throws ApiException If fail to serialize the request body object
@@ -1372,7 +1374,7 @@ public okhttp3.Call getCustomerSessionAsync(String customerSessionId, final ApiC
404 | Not found | - |
*/
- public okhttp3.Call getLoyaltyBalancesCall(Integer loyaltyProgramId, String integrationId, OffsetDateTime endDate, String subledgerId, final ApiCallback _callback) throws ApiException {
+ public okhttp3.Call getLoyaltyBalancesCall(Integer loyaltyProgramId, String integrationId, OffsetDateTime endDate, String subledgerId, Boolean includeTiers, Boolean includeProjectedTier, final ApiCallback _callback) throws ApiException {
Object localVarPostBody = null;
// create path and map variables
@@ -1390,6 +1392,14 @@ public okhttp3.Call getLoyaltyBalancesCall(Integer loyaltyProgramId, String inte
localVarQueryParams.addAll(localVarApiClient.parameterToPair("subledgerId", subledgerId));
}
+ if (includeTiers != null) {
+ localVarQueryParams.addAll(localVarApiClient.parameterToPair("includeTiers", includeTiers));
+ }
+
+ if (includeProjectedTier != null) {
+ localVarQueryParams.addAll(localVarApiClient.parameterToPair("includeProjectedTier", includeProjectedTier));
+ }
+
Map localVarHeaderParams = new HashMap();
Map localVarCookieParams = new HashMap();
Map localVarFormParams = new HashMap();
@@ -1412,7 +1422,7 @@ public okhttp3.Call getLoyaltyBalancesCall(Integer loyaltyProgramId, String inte
}
@SuppressWarnings("rawtypes")
- private okhttp3.Call getLoyaltyBalancesValidateBeforeCall(Integer loyaltyProgramId, String integrationId, OffsetDateTime endDate, String subledgerId, final ApiCallback _callback) throws ApiException {
+ private okhttp3.Call getLoyaltyBalancesValidateBeforeCall(Integer loyaltyProgramId, String integrationId, OffsetDateTime endDate, String subledgerId, Boolean includeTiers, Boolean includeProjectedTier, final ApiCallback _callback) throws ApiException {
// verify the required parameter 'loyaltyProgramId' is set
if (loyaltyProgramId == null) {
@@ -1425,7 +1435,7 @@ private okhttp3.Call getLoyaltyBalancesValidateBeforeCall(Integer loyaltyProgram
}
- okhttp3.Call localVarCall = getLoyaltyBalancesCall(loyaltyProgramId, integrationId, endDate, subledgerId, _callback);
+ okhttp3.Call localVarCall = getLoyaltyBalancesCall(loyaltyProgramId, integrationId, endDate, subledgerId, includeTiers, includeProjectedTier, _callback);
return localVarCall;
}
@@ -1437,7 +1447,9 @@ private okhttp3.Call getLoyaltyBalancesValidateBeforeCall(Integer loyaltyProgram
* @param integrationId The integration identifier for this customer profile. Must be: - Unique within the deployment. - Stable for the customer. Do not use an ID that the customer can update themselves. For example, you can use a database ID. Once set, you cannot update this identifier. (required)
* @param endDate Used to return expired, active, and pending loyalty balances before this timestamp. You can enter any past, present, or future timestamp value. **Note:** - It must be an RFC3339 timestamp string. - You can include a time component in your string, for example, `T23:59:59` to specify the end of the day. The time zone setting considered is `UTC`. If you do not include a time component, a default time value of `T00:00:00` (midnight) in `UTC` is considered. (optional)
* @param subledgerId The ID of the subledger by which we filter the data. (optional)
- * @return LoyaltyBalances
+ * @param includeTiers Indicates whether tier information is included in the response. When set to `true`, the response includes information about the current tier and the number of points required to move to next tier. (optional, default to false)
+ * @param includeProjectedTier Indicates whether the customer's projected tier information is included in the response. When set to `true`, the response includes information about the customer’s active points and the name of the projected tier. **Note** We recommend filtering by `subledgerId` for better performance. (optional, default to false)
+ * @return LoyaltyBalancesWithTiers
* @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body
* @http.response.details
@@ -1448,8 +1460,8 @@ private okhttp3.Call getLoyaltyBalancesValidateBeforeCall(Integer loyaltyProgram
404 | Not found | - |
*/
- public LoyaltyBalances getLoyaltyBalances(Integer loyaltyProgramId, String integrationId, OffsetDateTime endDate, String subledgerId) throws ApiException {
- ApiResponse localVarResp = getLoyaltyBalancesWithHttpInfo(loyaltyProgramId, integrationId, endDate, subledgerId);
+ public LoyaltyBalancesWithTiers getLoyaltyBalances(Integer loyaltyProgramId, String integrationId, OffsetDateTime endDate, String subledgerId, Boolean includeTiers, Boolean includeProjectedTier) throws ApiException {
+ ApiResponse localVarResp = getLoyaltyBalancesWithHttpInfo(loyaltyProgramId, integrationId, endDate, subledgerId, includeTiers, includeProjectedTier);
return localVarResp.getData();
}
@@ -1460,7 +1472,9 @@ public LoyaltyBalances getLoyaltyBalances(Integer loyaltyProgramId, String integ
* @param integrationId The integration identifier for this customer profile. Must be: - Unique within the deployment. - Stable for the customer. Do not use an ID that the customer can update themselves. For example, you can use a database ID. Once set, you cannot update this identifier. (required)
* @param endDate Used to return expired, active, and pending loyalty balances before this timestamp. You can enter any past, present, or future timestamp value. **Note:** - It must be an RFC3339 timestamp string. - You can include a time component in your string, for example, `T23:59:59` to specify the end of the day. The time zone setting considered is `UTC`. If you do not include a time component, a default time value of `T00:00:00` (midnight) in `UTC` is considered. (optional)
* @param subledgerId The ID of the subledger by which we filter the data. (optional)
- * @return ApiResponse<LoyaltyBalances>
+ * @param includeTiers Indicates whether tier information is included in the response. When set to `true`, the response includes information about the current tier and the number of points required to move to next tier. (optional, default to false)
+ * @param includeProjectedTier Indicates whether the customer's projected tier information is included in the response. When set to `true`, the response includes information about the customer’s active points and the name of the projected tier. **Note** We recommend filtering by `subledgerId` for better performance. (optional, default to false)
+ * @return ApiResponse<LoyaltyBalancesWithTiers>
* @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body
* @http.response.details
@@ -1471,9 +1485,9 @@ public LoyaltyBalances getLoyaltyBalances(Integer loyaltyProgramId, String integ
404 | Not found | - |
*/
- public ApiResponse getLoyaltyBalancesWithHttpInfo(Integer loyaltyProgramId, String integrationId, OffsetDateTime endDate, String subledgerId) throws ApiException {
- okhttp3.Call localVarCall = getLoyaltyBalancesValidateBeforeCall(loyaltyProgramId, integrationId, endDate, subledgerId, null);
- Type localVarReturnType = new TypeToken(){}.getType();
+ public ApiResponse getLoyaltyBalancesWithHttpInfo(Integer loyaltyProgramId, String integrationId, OffsetDateTime endDate, String subledgerId, Boolean includeTiers, Boolean includeProjectedTier) throws ApiException {
+ okhttp3.Call localVarCall = getLoyaltyBalancesValidateBeforeCall(loyaltyProgramId, integrationId, endDate, subledgerId, includeTiers, includeProjectedTier, null);
+ Type localVarReturnType = new TypeToken(){}.getType();
return localVarApiClient.execute(localVarCall, localVarReturnType);
}
@@ -1484,6 +1498,8 @@ public ApiResponse getLoyaltyBalancesWithHttpInfo(Integer loyal
* @param integrationId The integration identifier for this customer profile. Must be: - Unique within the deployment. - Stable for the customer. Do not use an ID that the customer can update themselves. For example, you can use a database ID. Once set, you cannot update this identifier. (required)
* @param endDate Used to return expired, active, and pending loyalty balances before this timestamp. You can enter any past, present, or future timestamp value. **Note:** - It must be an RFC3339 timestamp string. - You can include a time component in your string, for example, `T23:59:59` to specify the end of the day. The time zone setting considered is `UTC`. If you do not include a time component, a default time value of `T00:00:00` (midnight) in `UTC` is considered. (optional)
* @param subledgerId The ID of the subledger by which we filter the data. (optional)
+ * @param includeTiers Indicates whether tier information is included in the response. When set to `true`, the response includes information about the current tier and the number of points required to move to next tier. (optional, default to false)
+ * @param includeProjectedTier Indicates whether the customer's projected tier information is included in the response. When set to `true`, the response includes information about the customer’s active points and the name of the projected tier. **Note** We recommend filtering by `subledgerId` for better performance. (optional, default to false)
* @param _callback The callback to be executed when the API call finishes
* @return The request call
* @throws ApiException If fail to process the API call, e.g. serializing the request body object
@@ -1496,10 +1512,10 @@ public ApiResponse getLoyaltyBalancesWithHttpInfo(Integer loyal
404 | Not found | - |
*/
- public okhttp3.Call getLoyaltyBalancesAsync(Integer loyaltyProgramId, String integrationId, OffsetDateTime endDate, String subledgerId, final ApiCallback _callback) throws ApiException {
+ public okhttp3.Call getLoyaltyBalancesAsync(Integer loyaltyProgramId, String integrationId, OffsetDateTime endDate, String subledgerId, Boolean includeTiers, Boolean includeProjectedTier, final ApiCallback _callback) throws ApiException {
- okhttp3.Call localVarCall = getLoyaltyBalancesValidateBeforeCall(loyaltyProgramId, integrationId, endDate, subledgerId, _callback);
- Type localVarReturnType = new TypeToken(){}.getType();
+ okhttp3.Call localVarCall = getLoyaltyBalancesValidateBeforeCall(loyaltyProgramId, integrationId, endDate, subledgerId, includeTiers, includeProjectedTier, _callback);
+ Type localVarReturnType = new TypeToken(){}.getType();
localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback);
return localVarCall;
}
@@ -2931,7 +2947,7 @@ private okhttp3.Call syncCatalogValidateBeforeCall(Integer catalogId, CatalogSyn
/**
* Sync cart item catalog
- * Perform one or more of the following actions for a given cart item catalog: - Adding an item to the catalog. - Adding several items to the catalog. - Editing the attributes of an item in the catalog. - Editing the attributes of several items in the catalog. - Removing an item from the catalog. - Removing several items from the catalog. You can add, update, or delete up to 1000 cart items in a single request. Each item synced to a catalog must have a unique `SKU`. **Important**: Syncing items with duplicate `SKU` values in a single request returns an error message with a `400` status code. For more information, read [managing cart item catalogs](https://docs.talon.one/docs/product/account/dev-tools/managing-cart-item-catalogs). ### Filtering cart items Use [cart item attributes](https://docs.talon.one/docs/product/account/dev-tools/managing-attributes) to filter items and select the ones you want to edit or delete when editing or deleting more than one item at a time. The `filters` array contains an object with the following properties: - `attr`: A [cart item attribute](https://docs.talon.one/docs/product/account/dev-tools/managing-attributes) connected to the catalog. It is applied to all items in the catalog. - `op`: The filtering operator indicating the relationship between the value of each cart item in the catalog and the value of the `value` property for the attribute selected in `attr`. The value of `op` can be one of the following: - `EQ`: Equal to `value` - `LT`: Less than `value` - `LE`: Less than or equal to `value` - `GT`: Greater than `value` - `GE`: Greater than or equal to `value` - `IN`: One of the comma-separated values that `value` is set to. **Note:** `GE`, `LE`, `GT`, `LT` are for numeric values only. - `value`: The value of the attribute selected in `attr`. ### Payload examples Synchronization actions are sent as `PUT` requests. See the structure for each action: <details> <summary><strong>Adding an item to the catalog</strong></summary> <div> ```json { \"actions\": [ { \"payload\": { \"attributes\": { \"color\": \"Navy blue\", \"type\": \"shoes\" }, \"replaceIfExists\": true, \"sku\": \"SKU1241028\", \"price\": 100, \"product\": { \"name\": \"sneakers\" } }, \"type\": \"ADD\" } ] } ``` </div> </details> <details> <summary><strong>Adding several items to the catalog</strong></summary> <div> ```json { \"actions\": [ { \"payload\": { \"attributes\": { \"color\": \"Navy blue\", \"type\": \"shoes\" }, \"replaceIfExists\": true, \"sku\": \"SKU1241027\", \"price\": 100, \"product\": { \"name\": \"sneakers\" } }, \"type\": \"ADD\" }, { \"payload\": { \"attributes\": { \"color\": \"Navy blue\", \"type\": \"shoes\" }, \"replaceIfExists\": true, \"sku\": \"SKU1241028\", \"price\": 100, \"product\": { \"name\": \"sneakers\" } }, \"type\": \"ADD\" } ] } ``` </div> </details> <details> <summary><strong>Editing the attributes of an item in the catalog</strong></summary> <div> ```json { \"actions\": [ { \"payload\": { \"attributes\": { \"age\": 11, \"origin\": \"germany\" }, \"createIfNotExists\": false, \"sku\": \"SKU1241028\", \"product\": { \"name\": \"sneakers\" } }, \"type\": \"PATCH\" } ] } ``` </div> </details> <details> <summary><strong>Editing the attributes of several items in the catalog</strong></summary> <div> ```json { \"actions\": [ { \"payload\": { \"attributes\": { \"color\": \"red\" }, \"filters\": [ { \"attr\": \"color\", \"op\": \"EQ\", \"value\": \"blue\" } ] }, \"type\": \"PATCH_MANY\" } ] } ``` </div> </details> <details> <summary><strong>Removing an item from the catalog</strong></summary> <div> ```json { \"actions\": [ { \"payload\": { \"sku\": \"SKU1241028\" }, \"type\": \"REMOVE\" } ] } ``` </div> </details> <details> <summary><strong>Removing several items from the catalog</strong></summary> <div> ```json { \"actions\": [ { \"payload\": { \"filters\": [ { \"attr\": \"color\", \"op\": \"EQ\", \"value\": \"blue\" } ] }, \"type\": \"REMOVE_MANY\" } ] } ``` </div> </details> <details> <summary><strong>Removing shoes of sizes above 45 from the catalog</strong></summary> <div> <p> Let's imagine that we have a shoe store and we have decided to stop selling shoes larger than size 45. We can remove from the catalog all the shoes of sizes above 45 with a single action:</p> ```json { \"actions\": [ { \"payload\": { \"filters\": [ { \"attr\": \"size\", \"op\": \"GT\", \"value\": \"45\" } ] }, \"type\": \"REMOVE_MANY\" } ] } ``` </div> </details>
+ * Perform the following actions for a given cart item catalog: - Add an item to the catalog. - Add multiple items to the catalog. - Update the attributes of an item in the catalog. - Update the attributes of multiple items in the catalog. - Remove an item from the catalog. - Remove multiple items from the catalog. You can either add, update, or delete up to 1000 cart items in a single request. Each item synced to a catalog must have a unique `SKU`. **Important**: You can perform only one type of action in a single sync request. Syncing items with duplicate `SKU` values in a single request returns an error message with a `400` status code. For more information, read [managing cart item catalogs](https://docs.talon.one/docs/product/account/dev-tools/managing-cart-item-catalogs). ### Filtering cart items Use [cart item attributes](https://docs.talon.one/docs/product/account/dev-tools/managing-attributes) to filter items and select the ones you want to edit or delete when editing or deleting more than one item at a time. The `filters` array contains an object with the following properties: - `attr`: A [cart item attribute](https://docs.talon.one/docs/product/account/dev-tools/managing-attributes) connected to the catalog. It is applied to all items in the catalog. - `op`: The filtering operator indicating the relationship between the value of each cart item in the catalog and the value of the `value` property for the attribute selected in `attr`. The value of `op` can be one of the following: - `EQ`: Equal to `value` - `LT`: Less than `value` - `LE`: Less than or equal to `value` - `GT`: Greater than `value` - `GE`: Greater than or equal to `value` - `IN`: One of the comma-separated values that `value` is set to. **Note:** `GE`, `LE`, `GT`, `LT` are for numeric values only. - `value`: The value of the attribute selected in `attr`. ### Payload examples Synchronization actions are sent as `PUT` requests. See the structure for each action: <details> <summary><strong>Adding an item to the catalog</strong></summary> <div> ```json { \"actions\": [ { \"payload\": { \"attributes\": { \"color\": \"Navy blue\", \"type\": \"shoes\" }, \"replaceIfExists\": true, \"sku\": \"SKU1241028\", \"price\": 100, \"product\": { \"name\": \"sneakers\" } }, \"type\": \"ADD\" } ] } ``` </div> </details> <details> <summary><strong>Adding multiple items to the catalog</strong></summary> <div> ```json { \"actions\": [ { \"payload\": { \"attributes\": { \"color\": \"Navy blue\", \"type\": \"shoes\" }, \"replaceIfExists\": true, \"sku\": \"SKU1241027\", \"price\": 100, \"product\": { \"name\": \"sneakers\" } }, \"type\": \"ADD\" }, { \"payload\": { \"attributes\": { \"color\": \"Navy blue\", \"type\": \"shoes\" }, \"replaceIfExists\": true, \"sku\": \"SKU1241028\", \"price\": 100, \"product\": { \"name\": \"sneakers\" } }, \"type\": \"ADD\" } ] } ``` </div> </details> <details> <summary><strong>Updating the attributes of an item in the catalog</strong></summary> <div> ```json { \"actions\": [ { \"payload\": { \"attributes\": { \"age\": 11, \"origin\": \"germany\" }, \"createIfNotExists\": false, \"sku\": \"SKU1241028\", \"product\": { \"name\": \"sneakers\" } }, \"type\": \"PATCH\" } ] } ``` </div> </details> <details> <summary><strong>Updating the attributes of multiple items in the catalog</strong></summary> <div> ```json { \"actions\": [ { \"payload\": { \"attributes\": { \"color\": \"red\" }, \"filters\": [ { \"attr\": \"color\", \"op\": \"EQ\", \"value\": \"blue\" } ] }, \"type\": \"PATCH_MANY\" } ] } ``` </div> </details> <details> <summary><strong>Removing an item from the catalog</strong></summary> <div> ```json { \"actions\": [ { \"payload\": { \"sku\": \"SKU1241028\" }, \"type\": \"REMOVE\" } ] } ``` </div> </details> <details> <summary><strong>Removing multiple items from the catalog</strong></summary> <div> ```json { \"actions\": [ { \"payload\": { \"filters\": [ { \"attr\": \"color\", \"op\": \"EQ\", \"value\": \"blue\" } ] }, \"type\": \"REMOVE_MANY\" } ] } ``` </div> </details> <details> <summary><strong>Removing shoes of sizes above 45 from the catalog</strong></summary> <div> <p> Let's imagine that we have a shoe store and we have decided to stop selling shoes larger than size 45. We can remove from the catalog all the shoes of sizes above 45 with a single action:</p> ```json { \"actions\": [ { \"payload\": { \"filters\": [ { \"attr\": \"size\", \"op\": \"GT\", \"value\": \"45\" } ] }, \"type\": \"REMOVE_MANY\" } ] } ``` </div> </details>
* @param catalogId The ID of the catalog. You can find the ID in the Campaign Manager in **Account** > **Tools** > **Cart item catalogs**. (required)
* @param body body (required)
* @return Catalog
@@ -2952,7 +2968,7 @@ public Catalog syncCatalog(Integer catalogId, CatalogSyncRequest body) throws Ap
/**
* Sync cart item catalog
- * Perform one or more of the following actions for a given cart item catalog: - Adding an item to the catalog. - Adding several items to the catalog. - Editing the attributes of an item in the catalog. - Editing the attributes of several items in the catalog. - Removing an item from the catalog. - Removing several items from the catalog. You can add, update, or delete up to 1000 cart items in a single request. Each item synced to a catalog must have a unique `SKU`. **Important**: Syncing items with duplicate `SKU` values in a single request returns an error message with a `400` status code. For more information, read [managing cart item catalogs](https://docs.talon.one/docs/product/account/dev-tools/managing-cart-item-catalogs). ### Filtering cart items Use [cart item attributes](https://docs.talon.one/docs/product/account/dev-tools/managing-attributes) to filter items and select the ones you want to edit or delete when editing or deleting more than one item at a time. The `filters` array contains an object with the following properties: - `attr`: A [cart item attribute](https://docs.talon.one/docs/product/account/dev-tools/managing-attributes) connected to the catalog. It is applied to all items in the catalog. - `op`: The filtering operator indicating the relationship between the value of each cart item in the catalog and the value of the `value` property for the attribute selected in `attr`. The value of `op` can be one of the following: - `EQ`: Equal to `value` - `LT`: Less than `value` - `LE`: Less than or equal to `value` - `GT`: Greater than `value` - `GE`: Greater than or equal to `value` - `IN`: One of the comma-separated values that `value` is set to. **Note:** `GE`, `LE`, `GT`, `LT` are for numeric values only. - `value`: The value of the attribute selected in `attr`. ### Payload examples Synchronization actions are sent as `PUT` requests. See the structure for each action: <details> <summary><strong>Adding an item to the catalog</strong></summary> <div> ```json { \"actions\": [ { \"payload\": { \"attributes\": { \"color\": \"Navy blue\", \"type\": \"shoes\" }, \"replaceIfExists\": true, \"sku\": \"SKU1241028\", \"price\": 100, \"product\": { \"name\": \"sneakers\" } }, \"type\": \"ADD\" } ] } ``` </div> </details> <details> <summary><strong>Adding several items to the catalog</strong></summary> <div> ```json { \"actions\": [ { \"payload\": { \"attributes\": { \"color\": \"Navy blue\", \"type\": \"shoes\" }, \"replaceIfExists\": true, \"sku\": \"SKU1241027\", \"price\": 100, \"product\": { \"name\": \"sneakers\" } }, \"type\": \"ADD\" }, { \"payload\": { \"attributes\": { \"color\": \"Navy blue\", \"type\": \"shoes\" }, \"replaceIfExists\": true, \"sku\": \"SKU1241028\", \"price\": 100, \"product\": { \"name\": \"sneakers\" } }, \"type\": \"ADD\" } ] } ``` </div> </details> <details> <summary><strong>Editing the attributes of an item in the catalog</strong></summary> <div> ```json { \"actions\": [ { \"payload\": { \"attributes\": { \"age\": 11, \"origin\": \"germany\" }, \"createIfNotExists\": false, \"sku\": \"SKU1241028\", \"product\": { \"name\": \"sneakers\" } }, \"type\": \"PATCH\" } ] } ``` </div> </details> <details> <summary><strong>Editing the attributes of several items in the catalog</strong></summary> <div> ```json { \"actions\": [ { \"payload\": { \"attributes\": { \"color\": \"red\" }, \"filters\": [ { \"attr\": \"color\", \"op\": \"EQ\", \"value\": \"blue\" } ] }, \"type\": \"PATCH_MANY\" } ] } ``` </div> </details> <details> <summary><strong>Removing an item from the catalog</strong></summary> <div> ```json { \"actions\": [ { \"payload\": { \"sku\": \"SKU1241028\" }, \"type\": \"REMOVE\" } ] } ``` </div> </details> <details> <summary><strong>Removing several items from the catalog</strong></summary> <div> ```json { \"actions\": [ { \"payload\": { \"filters\": [ { \"attr\": \"color\", \"op\": \"EQ\", \"value\": \"blue\" } ] }, \"type\": \"REMOVE_MANY\" } ] } ``` </div> </details> <details> <summary><strong>Removing shoes of sizes above 45 from the catalog</strong></summary> <div> <p> Let's imagine that we have a shoe store and we have decided to stop selling shoes larger than size 45. We can remove from the catalog all the shoes of sizes above 45 with a single action:</p> ```json { \"actions\": [ { \"payload\": { \"filters\": [ { \"attr\": \"size\", \"op\": \"GT\", \"value\": \"45\" } ] }, \"type\": \"REMOVE_MANY\" } ] } ``` </div> </details>
+ * Perform the following actions for a given cart item catalog: - Add an item to the catalog. - Add multiple items to the catalog. - Update the attributes of an item in the catalog. - Update the attributes of multiple items in the catalog. - Remove an item from the catalog. - Remove multiple items from the catalog. You can either add, update, or delete up to 1000 cart items in a single request. Each item synced to a catalog must have a unique `SKU`. **Important**: You can perform only one type of action in a single sync request. Syncing items with duplicate `SKU` values in a single request returns an error message with a `400` status code. For more information, read [managing cart item catalogs](https://docs.talon.one/docs/product/account/dev-tools/managing-cart-item-catalogs). ### Filtering cart items Use [cart item attributes](https://docs.talon.one/docs/product/account/dev-tools/managing-attributes) to filter items and select the ones you want to edit or delete when editing or deleting more than one item at a time. The `filters` array contains an object with the following properties: - `attr`: A [cart item attribute](https://docs.talon.one/docs/product/account/dev-tools/managing-attributes) connected to the catalog. It is applied to all items in the catalog. - `op`: The filtering operator indicating the relationship between the value of each cart item in the catalog and the value of the `value` property for the attribute selected in `attr`. The value of `op` can be one of the following: - `EQ`: Equal to `value` - `LT`: Less than `value` - `LE`: Less than or equal to `value` - `GT`: Greater than `value` - `GE`: Greater than or equal to `value` - `IN`: One of the comma-separated values that `value` is set to. **Note:** `GE`, `LE`, `GT`, `LT` are for numeric values only. - `value`: The value of the attribute selected in `attr`. ### Payload examples Synchronization actions are sent as `PUT` requests. See the structure for each action: <details> <summary><strong>Adding an item to the catalog</strong></summary> <div> ```json { \"actions\": [ { \"payload\": { \"attributes\": { \"color\": \"Navy blue\", \"type\": \"shoes\" }, \"replaceIfExists\": true, \"sku\": \"SKU1241028\", \"price\": 100, \"product\": { \"name\": \"sneakers\" } }, \"type\": \"ADD\" } ] } ``` </div> </details> <details> <summary><strong>Adding multiple items to the catalog</strong></summary> <div> ```json { \"actions\": [ { \"payload\": { \"attributes\": { \"color\": \"Navy blue\", \"type\": \"shoes\" }, \"replaceIfExists\": true, \"sku\": \"SKU1241027\", \"price\": 100, \"product\": { \"name\": \"sneakers\" } }, \"type\": \"ADD\" }, { \"payload\": { \"attributes\": { \"color\": \"Navy blue\", \"type\": \"shoes\" }, \"replaceIfExists\": true, \"sku\": \"SKU1241028\", \"price\": 100, \"product\": { \"name\": \"sneakers\" } }, \"type\": \"ADD\" } ] } ``` </div> </details> <details> <summary><strong>Updating the attributes of an item in the catalog</strong></summary> <div> ```json { \"actions\": [ { \"payload\": { \"attributes\": { \"age\": 11, \"origin\": \"germany\" }, \"createIfNotExists\": false, \"sku\": \"SKU1241028\", \"product\": { \"name\": \"sneakers\" } }, \"type\": \"PATCH\" } ] } ``` </div> </details> <details> <summary><strong>Updating the attributes of multiple items in the catalog</strong></summary> <div> ```json { \"actions\": [ { \"payload\": { \"attributes\": { \"color\": \"red\" }, \"filters\": [ { \"attr\": \"color\", \"op\": \"EQ\", \"value\": \"blue\" } ] }, \"type\": \"PATCH_MANY\" } ] } ``` </div> </details> <details> <summary><strong>Removing an item from the catalog</strong></summary> <div> ```json { \"actions\": [ { \"payload\": { \"sku\": \"SKU1241028\" }, \"type\": \"REMOVE\" } ] } ``` </div> </details> <details> <summary><strong>Removing multiple items from the catalog</strong></summary> <div> ```json { \"actions\": [ { \"payload\": { \"filters\": [ { \"attr\": \"color\", \"op\": \"EQ\", \"value\": \"blue\" } ] }, \"type\": \"REMOVE_MANY\" } ] } ``` </div> </details> <details> <summary><strong>Removing shoes of sizes above 45 from the catalog</strong></summary> <div> <p> Let's imagine that we have a shoe store and we have decided to stop selling shoes larger than size 45. We can remove from the catalog all the shoes of sizes above 45 with a single action:</p> ```json { \"actions\": [ { \"payload\": { \"filters\": [ { \"attr\": \"size\", \"op\": \"GT\", \"value\": \"45\" } ] }, \"type\": \"REMOVE_MANY\" } ] } ``` </div> </details>
* @param catalogId The ID of the catalog. You can find the ID in the Campaign Manager in **Account** > **Tools** > **Cart item catalogs**. (required)
* @param body body (required)
* @return ApiResponse<Catalog>
@@ -2974,7 +2990,7 @@ public ApiResponse syncCatalogWithHttpInfo(Integer catalogId, CatalogSy
/**
* Sync cart item catalog (asynchronously)
- * Perform one or more of the following actions for a given cart item catalog: - Adding an item to the catalog. - Adding several items to the catalog. - Editing the attributes of an item in the catalog. - Editing the attributes of several items in the catalog. - Removing an item from the catalog. - Removing several items from the catalog. You can add, update, or delete up to 1000 cart items in a single request. Each item synced to a catalog must have a unique `SKU`. **Important**: Syncing items with duplicate `SKU` values in a single request returns an error message with a `400` status code. For more information, read [managing cart item catalogs](https://docs.talon.one/docs/product/account/dev-tools/managing-cart-item-catalogs). ### Filtering cart items Use [cart item attributes](https://docs.talon.one/docs/product/account/dev-tools/managing-attributes) to filter items and select the ones you want to edit or delete when editing or deleting more than one item at a time. The `filters` array contains an object with the following properties: - `attr`: A [cart item attribute](https://docs.talon.one/docs/product/account/dev-tools/managing-attributes) connected to the catalog. It is applied to all items in the catalog. - `op`: The filtering operator indicating the relationship between the value of each cart item in the catalog and the value of the `value` property for the attribute selected in `attr`. The value of `op` can be one of the following: - `EQ`: Equal to `value` - `LT`: Less than `value` - `LE`: Less than or equal to `value` - `GT`: Greater than `value` - `GE`: Greater than or equal to `value` - `IN`: One of the comma-separated values that `value` is set to. **Note:** `GE`, `LE`, `GT`, `LT` are for numeric values only. - `value`: The value of the attribute selected in `attr`. ### Payload examples Synchronization actions are sent as `PUT` requests. See the structure for each action: <details> <summary><strong>Adding an item to the catalog</strong></summary> <div> ```json { \"actions\": [ { \"payload\": { \"attributes\": { \"color\": \"Navy blue\", \"type\": \"shoes\" }, \"replaceIfExists\": true, \"sku\": \"SKU1241028\", \"price\": 100, \"product\": { \"name\": \"sneakers\" } }, \"type\": \"ADD\" } ] } ``` </div> </details> <details> <summary><strong>Adding several items to the catalog</strong></summary> <div> ```json { \"actions\": [ { \"payload\": { \"attributes\": { \"color\": \"Navy blue\", \"type\": \"shoes\" }, \"replaceIfExists\": true, \"sku\": \"SKU1241027\", \"price\": 100, \"product\": { \"name\": \"sneakers\" } }, \"type\": \"ADD\" }, { \"payload\": { \"attributes\": { \"color\": \"Navy blue\", \"type\": \"shoes\" }, \"replaceIfExists\": true, \"sku\": \"SKU1241028\", \"price\": 100, \"product\": { \"name\": \"sneakers\" } }, \"type\": \"ADD\" } ] } ``` </div> </details> <details> <summary><strong>Editing the attributes of an item in the catalog</strong></summary> <div> ```json { \"actions\": [ { \"payload\": { \"attributes\": { \"age\": 11, \"origin\": \"germany\" }, \"createIfNotExists\": false, \"sku\": \"SKU1241028\", \"product\": { \"name\": \"sneakers\" } }, \"type\": \"PATCH\" } ] } ``` </div> </details> <details> <summary><strong>Editing the attributes of several items in the catalog</strong></summary> <div> ```json { \"actions\": [ { \"payload\": { \"attributes\": { \"color\": \"red\" }, \"filters\": [ { \"attr\": \"color\", \"op\": \"EQ\", \"value\": \"blue\" } ] }, \"type\": \"PATCH_MANY\" } ] } ``` </div> </details> <details> <summary><strong>Removing an item from the catalog</strong></summary> <div> ```json { \"actions\": [ { \"payload\": { \"sku\": \"SKU1241028\" }, \"type\": \"REMOVE\" } ] } ``` </div> </details> <details> <summary><strong>Removing several items from the catalog</strong></summary> <div> ```json { \"actions\": [ { \"payload\": { \"filters\": [ { \"attr\": \"color\", \"op\": \"EQ\", \"value\": \"blue\" } ] }, \"type\": \"REMOVE_MANY\" } ] } ``` </div> </details> <details> <summary><strong>Removing shoes of sizes above 45 from the catalog</strong></summary> <div> <p> Let's imagine that we have a shoe store and we have decided to stop selling shoes larger than size 45. We can remove from the catalog all the shoes of sizes above 45 with a single action:</p> ```json { \"actions\": [ { \"payload\": { \"filters\": [ { \"attr\": \"size\", \"op\": \"GT\", \"value\": \"45\" } ] }, \"type\": \"REMOVE_MANY\" } ] } ``` </div> </details>
+ * Perform the following actions for a given cart item catalog: - Add an item to the catalog. - Add multiple items to the catalog. - Update the attributes of an item in the catalog. - Update the attributes of multiple items in the catalog. - Remove an item from the catalog. - Remove multiple items from the catalog. You can either add, update, or delete up to 1000 cart items in a single request. Each item synced to a catalog must have a unique `SKU`. **Important**: You can perform only one type of action in a single sync request. Syncing items with duplicate `SKU` values in a single request returns an error message with a `400` status code. For more information, read [managing cart item catalogs](https://docs.talon.one/docs/product/account/dev-tools/managing-cart-item-catalogs). ### Filtering cart items Use [cart item attributes](https://docs.talon.one/docs/product/account/dev-tools/managing-attributes) to filter items and select the ones you want to edit or delete when editing or deleting more than one item at a time. The `filters` array contains an object with the following properties: - `attr`: A [cart item attribute](https://docs.talon.one/docs/product/account/dev-tools/managing-attributes) connected to the catalog. It is applied to all items in the catalog. - `op`: The filtering operator indicating the relationship between the value of each cart item in the catalog and the value of the `value` property for the attribute selected in `attr`. The value of `op` can be one of the following: - `EQ`: Equal to `value` - `LT`: Less than `value` - `LE`: Less than or equal to `value` - `GT`: Greater than `value` - `GE`: Greater than or equal to `value` - `IN`: One of the comma-separated values that `value` is set to. **Note:** `GE`, `LE`, `GT`, `LT` are for numeric values only. - `value`: The value of the attribute selected in `attr`. ### Payload examples Synchronization actions are sent as `PUT` requests. See the structure for each action: <details> <summary><strong>Adding an item to the catalog</strong></summary> <div> ```json { \"actions\": [ { \"payload\": { \"attributes\": { \"color\": \"Navy blue\", \"type\": \"shoes\" }, \"replaceIfExists\": true, \"sku\": \"SKU1241028\", \"price\": 100, \"product\": { \"name\": \"sneakers\" } }, \"type\": \"ADD\" } ] } ``` </div> </details> <details> <summary><strong>Adding multiple items to the catalog</strong></summary> <div> ```json { \"actions\": [ { \"payload\": { \"attributes\": { \"color\": \"Navy blue\", \"type\": \"shoes\" }, \"replaceIfExists\": true, \"sku\": \"SKU1241027\", \"price\": 100, \"product\": { \"name\": \"sneakers\" } }, \"type\": \"ADD\" }, { \"payload\": { \"attributes\": { \"color\": \"Navy blue\", \"type\": \"shoes\" }, \"replaceIfExists\": true, \"sku\": \"SKU1241028\", \"price\": 100, \"product\": { \"name\": \"sneakers\" } }, \"type\": \"ADD\" } ] } ``` </div> </details> <details> <summary><strong>Updating the attributes of an item in the catalog</strong></summary> <div> ```json { \"actions\": [ { \"payload\": { \"attributes\": { \"age\": 11, \"origin\": \"germany\" }, \"createIfNotExists\": false, \"sku\": \"SKU1241028\", \"product\": { \"name\": \"sneakers\" } }, \"type\": \"PATCH\" } ] } ``` </div> </details> <details> <summary><strong>Updating the attributes of multiple items in the catalog</strong></summary> <div> ```json { \"actions\": [ { \"payload\": { \"attributes\": { \"color\": \"red\" }, \"filters\": [ { \"attr\": \"color\", \"op\": \"EQ\", \"value\": \"blue\" } ] }, \"type\": \"PATCH_MANY\" } ] } ``` </div> </details> <details> <summary><strong>Removing an item from the catalog</strong></summary> <div> ```json { \"actions\": [ { \"payload\": { \"sku\": \"SKU1241028\" }, \"type\": \"REMOVE\" } ] } ``` </div> </details> <details> <summary><strong>Removing multiple items from the catalog</strong></summary> <div> ```json { \"actions\": [ { \"payload\": { \"filters\": [ { \"attr\": \"color\", \"op\": \"EQ\", \"value\": \"blue\" } ] }, \"type\": \"REMOVE_MANY\" } ] } ``` </div> </details> <details> <summary><strong>Removing shoes of sizes above 45 from the catalog</strong></summary> <div> <p> Let's imagine that we have a shoe store and we have decided to stop selling shoes larger than size 45. We can remove from the catalog all the shoes of sizes above 45 with a single action:</p> ```json { \"actions\": [ { \"payload\": { \"filters\": [ { \"attr\": \"size\", \"op\": \"GT\", \"value\": \"45\" } ] }, \"type\": \"REMOVE_MANY\" } ] } ``` </div> </details>
* @param catalogId The ID of the catalog. You can find the ID in the Campaign Manager in **Account** > **Tools** > **Cart item catalogs**. (required)
* @param body body (required)
* @param _callback The callback to be executed when the API call finishes
diff --git a/src/main/java/one/talon/api/ManagementApi.java b/src/main/java/one/talon/api/ManagementApi.java
index efa02eb..82e75c2 100644
--- a/src/main/java/one/talon/api/ManagementApi.java
+++ b/src/main/java/one/talon/api/ManagementApi.java
@@ -128,6 +128,9 @@
import one.talon.model.RoleV2;
import one.talon.model.RoleV2Base;
import one.talon.model.Ruleset;
+import one.talon.model.ScimResourceTypesListResponse;
+import one.talon.model.ScimUser;
+import one.talon.model.ScimUsersListResponse;
import one.talon.model.Session;
import one.talon.model.Store;
import one.talon.model.TransferLoyaltyCard;
@@ -224,8 +227,8 @@ private okhttp3.Call activateUserByEmailValidateBeforeCall(ActivateUserRequest b
}
/**
- * Activate user by email address
- * Activate a deactivated user by their email address.
+ * Enable user by email address
+ * Enable a [disabled user](https://docs.talon.one/docs/product/account/account-settings/managing-users#disabling-a-user) by their email address.
* @param body body (required)
* @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body
* @http.response.details
@@ -239,8 +242,8 @@ public void activateUserByEmail(ActivateUserRequest body) throws ApiException {
}
/**
- * Activate user by email address
- * Activate a deactivated user by their email address.
+ * Enable user by email address
+ * Enable a [disabled user](https://docs.talon.one/docs/product/account/account-settings/managing-users#disabling-a-user) by their email address.
* @param body body (required)
* @return ApiResponse<Void>
* @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body
@@ -256,8 +259,8 @@ public ApiResponse activateUserByEmailWithHttpInfo(ActivateUserRequest bod
}
/**
- * Activate user by email address (asynchronously)
- * Activate a deactivated user by their email address.
+ * Enable user by email address (asynchronously)
+ * Enable a [disabled user](https://docs.talon.one/docs/product/account/account-settings/managing-users#disabling-a-user) by their email address.
* @param body body (required)
* @param _callback The callback to be executed when the API call finishes
* @return The request call
@@ -2452,8 +2455,8 @@ private okhttp3.Call deactivateUserByEmailValidateBeforeCall(DeactivateUserReque
}
/**
- * Deactivate user by email address
- * Deactivate a specific user by their email address.
+ * Disable user by email address
+ * [Disable a specific user](https://docs.talon.one/docs/product/account/account-settings/managing-users#disabling-a-user) by their email address.
* @param body body (required)
* @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body
* @http.response.details
@@ -2467,8 +2470,8 @@ public void deactivateUserByEmail(DeactivateUserRequest body) throws ApiExceptio
}
/**
- * Deactivate user by email address
- * Deactivate a specific user by their email address.
+ * Disable user by email address
+ * [Disable a specific user](https://docs.talon.one/docs/product/account/account-settings/managing-users#disabling-a-user) by their email address.
* @param body body (required)
* @return ApiResponse<Void>
* @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body
@@ -2484,8 +2487,8 @@ public ApiResponse deactivateUserByEmailWithHttpInfo(DeactivateUserRequest
}
/**
- * Deactivate user by email address (asynchronously)
- * Deactivate a specific user by their email address.
+ * Disable user by email address (asynchronously)
+ * [Disable a specific user](https://docs.talon.one/docs/product/account/account-settings/managing-users#disabling-a-user) by their email address.
* @param body body (required)
* @param _callback The callback to be executed when the API call finishes
* @return The request call
@@ -3268,10 +3271,10 @@ public okhttp3.Call deleteCouponAsync(Integer applicationId, Integer campaignId,
* @param value Filter results performing case-insensitive matching against the coupon code. Both the code and the query are folded to remove all non-alpha-numeric characters. (optional)
* @param createdBefore Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon creation timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. (optional)
* @param createdAfter Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon creation timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. (optional)
- * @param startsAfter Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon creation timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. (optional)
- * @param startsBefore Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon creation timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. (optional)
- * @param expiresAfter Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon creation timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. (optional)
- * @param expiresBefore Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon creation timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. (optional)
+ * @param startsAfter Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon start date timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. (optional)
+ * @param startsBefore Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon start date timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. (optional)
+ * @param expiresAfter Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon expiration date timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. (optional)
+ * @param expiresBefore Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon expiration date timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. (optional)
* @param valid - `expired`: Matches coupons in which the expiration date is set and in the past. - `validNow`: Matches coupons in which start date is null or in the past and expiration date is null or in the future. - `validFuture`: Matches coupons in which start date is set and in the future. (optional)
* @param batchId Filter results by batches of coupons (optional)
* @param usable - `true`: only coupons where `usageCounter < usageLimit` will be returned. - `false`: only coupons where `usageCounter >= usageLimit` will be returned. (optional)
@@ -3397,10 +3400,10 @@ private okhttp3.Call deleteCouponsValidateBeforeCall(Integer applicationId, Inte
* @param value Filter results performing case-insensitive matching against the coupon code. Both the code and the query are folded to remove all non-alpha-numeric characters. (optional)
* @param createdBefore Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon creation timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. (optional)
* @param createdAfter Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon creation timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. (optional)
- * @param startsAfter Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon creation timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. (optional)
- * @param startsBefore Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon creation timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. (optional)
- * @param expiresAfter Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon creation timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. (optional)
- * @param expiresBefore Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon creation timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. (optional)
+ * @param startsAfter Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon start date timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. (optional)
+ * @param startsBefore Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon start date timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. (optional)
+ * @param expiresAfter Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon expiration date timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. (optional)
+ * @param expiresBefore Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon expiration date timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. (optional)
* @param valid - `expired`: Matches coupons in which the expiration date is set and in the past. - `validNow`: Matches coupons in which start date is null or in the past and expiration date is null or in the future. - `validFuture`: Matches coupons in which start date is set and in the future. (optional)
* @param batchId Filter results by batches of coupons (optional)
* @param usable - `true`: only coupons where `usageCounter < usageLimit` will be returned. - `false`: only coupons where `usageCounter >= usageLimit` will be returned. (optional)
@@ -3426,10 +3429,10 @@ public void deleteCoupons(Integer applicationId, Integer campaignId, String valu
* @param value Filter results performing case-insensitive matching against the coupon code. Both the code and the query are folded to remove all non-alpha-numeric characters. (optional)
* @param createdBefore Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon creation timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. (optional)
* @param createdAfter Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon creation timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. (optional)
- * @param startsAfter Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon creation timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. (optional)
- * @param startsBefore Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon creation timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. (optional)
- * @param expiresAfter Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon creation timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. (optional)
- * @param expiresBefore Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon creation timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. (optional)
+ * @param startsAfter Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon start date timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. (optional)
+ * @param startsBefore Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon start date timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. (optional)
+ * @param expiresAfter Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon expiration date timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. (optional)
+ * @param expiresBefore Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon expiration date timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. (optional)
* @param valid - `expired`: Matches coupons in which the expiration date is set and in the past. - `validNow`: Matches coupons in which start date is null or in the past and expiration date is null or in the future. - `validFuture`: Matches coupons in which start date is set and in the future. (optional)
* @param batchId Filter results by batches of coupons (optional)
* @param usable - `true`: only coupons where `usageCounter < usageLimit` will be returned. - `false`: only coupons where `usageCounter >= usageLimit` will be returned. (optional)
@@ -3457,10 +3460,10 @@ public ApiResponse deleteCouponsWithHttpInfo(Integer applicationId, Intege
* @param value Filter results performing case-insensitive matching against the coupon code. Both the code and the query are folded to remove all non-alpha-numeric characters. (optional)
* @param createdBefore Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon creation timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. (optional)
* @param createdAfter Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon creation timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. (optional)
- * @param startsAfter Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon creation timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. (optional)
- * @param startsBefore Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon creation timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. (optional)
- * @param expiresAfter Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon creation timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. (optional)
- * @param expiresBefore Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon creation timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. (optional)
+ * @param startsAfter Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon start date timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. (optional)
+ * @param startsBefore Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon start date timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. (optional)
+ * @param expiresAfter Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon expiration date timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. (optional)
+ * @param expiresBefore Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon expiration date timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. (optional)
* @param valid - `expired`: Matches coupons in which the expiration date is set and in the past. - `validNow`: Matches coupons in which start date is null or in the past and expiration date is null or in the future. - `validFuture`: Matches coupons in which start date is set and in the future. (optional)
* @param batchId Filter results by batches of coupons (optional)
* @param usable - `true`: only coupons where `usageCounter < usageLimit` will be returned. - `false`: only coupons where `usageCounter >= usageLimit` will be returned. (optional)
@@ -4019,7 +4022,7 @@ private okhttp3.Call deleteUserByEmailValidateBeforeCall(DeleteUserRequest body,
/**
* Delete user by email address
- * Delete a specific user by their email address.
+ * [Delete a specific user](https://docs.talon.one/docs/product/account/account-settings/managing-users#deleting-a-user) by their email address.
* @param body body (required)
* @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body
* @http.response.details
@@ -4034,7 +4037,7 @@ public void deleteUserByEmail(DeleteUserRequest body) throws ApiException {
/**
* Delete user by email address
- * Delete a specific user by their email address.
+ * [Delete a specific user](https://docs.talon.one/docs/product/account/account-settings/managing-users#deleting-a-user) by their email address.
* @param body body (required)
* @return ApiResponse<Void>
* @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body
@@ -4051,7 +4054,7 @@ public ApiResponse deleteUserByEmailWithHttpInfo(DeleteUserRequest body) t
/**
* Delete user by email address (asynchronously)
- * Delete a specific user by their email address.
+ * [Delete a specific user](https://docs.talon.one/docs/product/account/account-settings/managing-users#deleting-a-user) by their email address.
* @param body body (required)
* @param _callback The callback to be executed when the API call finishes
* @return The request call
@@ -4165,6 +4168,135 @@ public okhttp3.Call destroySessionAsync(final ApiCallback _callback) throw
localVarApiClient.executeAsync(localVarCall, _callback);
return localVarCall;
}
+ /**
+ * Build call for disconnectCampaignStores
+ * @param applicationId The ID of the Application. It is displayed in your Talon.One deployment URL. (required)
+ * @param campaignId The ID of the campaign. It is displayed in your Talon.One deployment URL. (required)
+ * @param _callback Callback for upload/download progress
+ * @return Call to execute
+ * @throws ApiException If fail to serialize the request body object
+ * @http.response.details
+
+ Status Code | Description | Response Headers |
+ 204 | No Content | - |
+ 400 | Bad request | - |
+ 401 | Unauthorized - Invalid API key | - |
+ 404 | Not found | - |
+
+ */
+ public okhttp3.Call disconnectCampaignStoresCall(Integer applicationId, Integer campaignId, final ApiCallback _callback) throws ApiException {
+ Object localVarPostBody = null;
+
+ // create path and map variables
+ String localVarPath = "/v1/applications/{applicationId}/campaigns/{campaignId}/stores"
+ .replaceAll("\\{" + "applicationId" + "\\}", localVarApiClient.escapeString(applicationId.toString()))
+ .replaceAll("\\{" + "campaignId" + "\\}", localVarApiClient.escapeString(campaignId.toString()));
+
+ List localVarQueryParams = new ArrayList();
+ List localVarCollectionQueryParams = new ArrayList();
+ Map localVarHeaderParams = new HashMap();
+ Map localVarCookieParams = new HashMap();
+ Map localVarFormParams = new HashMap();
+ final String[] localVarAccepts = {
+ "application/json"
+ };
+ final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts);
+ if (localVarAccept != null) {
+ localVarHeaderParams.put("Accept", localVarAccept);
+ }
+
+ final String[] localVarContentTypes = {
+
+ };
+ final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes);
+ localVarHeaderParams.put("Content-Type", localVarContentType);
+
+ String[] localVarAuthNames = new String[] { "management_key", "manager_auth" };
+ return localVarApiClient.buildCall(localVarPath, "DELETE", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback);
+ }
+
+ @SuppressWarnings("rawtypes")
+ private okhttp3.Call disconnectCampaignStoresValidateBeforeCall(Integer applicationId, Integer campaignId, final ApiCallback _callback) throws ApiException {
+
+ // verify the required parameter 'applicationId' is set
+ if (applicationId == null) {
+ throw new ApiException("Missing the required parameter 'applicationId' when calling disconnectCampaignStores(Async)");
+ }
+
+ // verify the required parameter 'campaignId' is set
+ if (campaignId == null) {
+ throw new ApiException("Missing the required parameter 'campaignId' when calling disconnectCampaignStores(Async)");
+ }
+
+
+ okhttp3.Call localVarCall = disconnectCampaignStoresCall(applicationId, campaignId, _callback);
+ return localVarCall;
+
+ }
+
+ /**
+ * Disconnect stores
+ * Disconnect the stores linked to a specific campaign.
+ * @param applicationId The ID of the Application. It is displayed in your Talon.One deployment URL. (required)
+ * @param campaignId The ID of the campaign. It is displayed in your Talon.One deployment URL. (required)
+ * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body
+ * @http.response.details
+
+ Status Code | Description | Response Headers |
+ 204 | No Content | - |
+ 400 | Bad request | - |
+ 401 | Unauthorized - Invalid API key | - |
+ 404 | Not found | - |
+
+ */
+ public void disconnectCampaignStores(Integer applicationId, Integer campaignId) throws ApiException {
+ disconnectCampaignStoresWithHttpInfo(applicationId, campaignId);
+ }
+
+ /**
+ * Disconnect stores
+ * Disconnect the stores linked to a specific campaign.
+ * @param applicationId The ID of the Application. It is displayed in your Talon.One deployment URL. (required)
+ * @param campaignId The ID of the campaign. It is displayed in your Talon.One deployment URL. (required)
+ * @return ApiResponse<Void>
+ * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body
+ * @http.response.details
+
+ Status Code | Description | Response Headers |
+ 204 | No Content | - |
+ 400 | Bad request | - |
+ 401 | Unauthorized - Invalid API key | - |
+ 404 | Not found | - |
+
+ */
+ public ApiResponse disconnectCampaignStoresWithHttpInfo(Integer applicationId, Integer campaignId) throws ApiException {
+ okhttp3.Call localVarCall = disconnectCampaignStoresValidateBeforeCall(applicationId, campaignId, null);
+ return localVarApiClient.execute(localVarCall);
+ }
+
+ /**
+ * Disconnect stores (asynchronously)
+ * Disconnect the stores linked to a specific campaign.
+ * @param applicationId The ID of the Application. It is displayed in your Talon.One deployment URL. (required)
+ * @param campaignId The ID of the campaign. It is displayed in your Talon.One deployment URL. (required)
+ * @param _callback The callback to be executed when the API call finishes
+ * @return The request call
+ * @throws ApiException If fail to process the API call, e.g. serializing the request body object
+ * @http.response.details
+
+ Status Code | Description | Response Headers |
+ 204 | No Content | - |
+ 400 | Bad request | - |
+ 401 | Unauthorized - Invalid API key | - |
+ 404 | Not found | - |
+
+ */
+ public okhttp3.Call disconnectCampaignStoresAsync(Integer applicationId, Integer campaignId, final ApiCallback _callback) throws ApiException {
+
+ okhttp3.Call localVarCall = disconnectCampaignStoresValidateBeforeCall(applicationId, campaignId, _callback);
+ localVarApiClient.executeAsync(localVarCall, _callback);
+ return localVarCall;
+ }
/**
* Build call for exportAccountCollectionItems
* @param collectionId The ID of the collection. You can get it with the [List collections in account](#operation/listAccountCollections) endpoint. (required)
@@ -4550,6 +4682,139 @@ public okhttp3.Call exportAudiencesMembershipsAsync(Integer audienceId, final Ap
localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback);
return localVarCall;
}
+ /**
+ * Build call for exportCampaignStores
+ * @param applicationId The ID of the Application. It is displayed in your Talon.One deployment URL. (required)
+ * @param campaignId The ID of the campaign. It is displayed in your Talon.One deployment URL. (required)
+ * @param _callback Callback for upload/download progress
+ * @return Call to execute
+ * @throws ApiException If fail to serialize the request body object
+ * @http.response.details
+
+ Status Code | Description | Response Headers |
+ 200 | OK | - |
+ 400 | Bad request | - |
+ 401 | Unauthorized - Invalid API key | - |
+ 404 | Not found | - |
+
+ */
+ public okhttp3.Call exportCampaignStoresCall(Integer applicationId, Integer campaignId, final ApiCallback _callback) throws ApiException {
+ Object localVarPostBody = null;
+
+ // create path and map variables
+ String localVarPath = "/v1/applications/{applicationId}/campaigns/{campaignId}/stores/export"
+ .replaceAll("\\{" + "applicationId" + "\\}", localVarApiClient.escapeString(applicationId.toString()))
+ .replaceAll("\\{" + "campaignId" + "\\}", localVarApiClient.escapeString(campaignId.toString()));
+
+ List localVarQueryParams = new ArrayList();
+ List localVarCollectionQueryParams = new ArrayList();
+ Map localVarHeaderParams = new HashMap();
+ Map localVarCookieParams = new HashMap();
+ Map localVarFormParams = new HashMap();
+ final String[] localVarAccepts = {
+ "application/csv"
+ };
+ final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts);
+ if (localVarAccept != null) {
+ localVarHeaderParams.put("Accept", localVarAccept);
+ }
+
+ final String[] localVarContentTypes = {
+
+ };
+ final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes);
+ localVarHeaderParams.put("Content-Type", localVarContentType);
+
+ String[] localVarAuthNames = new String[] { "management_key", "manager_auth" };
+ return localVarApiClient.buildCall(localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback);
+ }
+
+ @SuppressWarnings("rawtypes")
+ private okhttp3.Call exportCampaignStoresValidateBeforeCall(Integer applicationId, Integer campaignId, final ApiCallback _callback) throws ApiException {
+
+ // verify the required parameter 'applicationId' is set
+ if (applicationId == null) {
+ throw new ApiException("Missing the required parameter 'applicationId' when calling exportCampaignStores(Async)");
+ }
+
+ // verify the required parameter 'campaignId' is set
+ if (campaignId == null) {
+ throw new ApiException("Missing the required parameter 'campaignId' when calling exportCampaignStores(Async)");
+ }
+
+
+ okhttp3.Call localVarCall = exportCampaignStoresCall(applicationId, campaignId, _callback);
+ return localVarCall;
+
+ }
+
+ /**
+ * Export stores
+ * Download a CSV file containing the stores linked to a specific campaign. **Tip:** If the exported CSV file is too large to view, you can [split it into multiple files](https://www.makeuseof.com/tag/how-to-split-a-huge-csv-excel-workbook-into-seperate-files/). The CSV file contains the following column: - `store_integration_id`: The identifier of the store.
+ * @param applicationId The ID of the Application. It is displayed in your Talon.One deployment URL. (required)
+ * @param campaignId The ID of the campaign. It is displayed in your Talon.One deployment URL. (required)
+ * @return String
+ * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body
+ * @http.response.details
+
+ Status Code | Description | Response Headers |
+ 200 | OK | - |
+ 400 | Bad request | - |
+ 401 | Unauthorized - Invalid API key | - |
+ 404 | Not found | - |
+
+ */
+ public String exportCampaignStores(Integer applicationId, Integer campaignId) throws ApiException {
+ ApiResponse localVarResp = exportCampaignStoresWithHttpInfo(applicationId, campaignId);
+ return localVarResp.getData();
+ }
+
+ /**
+ * Export stores
+ * Download a CSV file containing the stores linked to a specific campaign. **Tip:** If the exported CSV file is too large to view, you can [split it into multiple files](https://www.makeuseof.com/tag/how-to-split-a-huge-csv-excel-workbook-into-seperate-files/). The CSV file contains the following column: - `store_integration_id`: The identifier of the store.
+ * @param applicationId The ID of the Application. It is displayed in your Talon.One deployment URL. (required)
+ * @param campaignId The ID of the campaign. It is displayed in your Talon.One deployment URL. (required)
+ * @return ApiResponse<String>
+ * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body
+ * @http.response.details
+
+ Status Code | Description | Response Headers |
+ 200 | OK | - |
+ 400 | Bad request | - |
+ 401 | Unauthorized - Invalid API key | - |
+ 404 | Not found | - |
+
+ */
+ public ApiResponse exportCampaignStoresWithHttpInfo(Integer applicationId, Integer campaignId) throws ApiException {
+ okhttp3.Call localVarCall = exportCampaignStoresValidateBeforeCall(applicationId, campaignId, null);
+ Type localVarReturnType = new TypeToken(){}.getType();
+ return localVarApiClient.execute(localVarCall, localVarReturnType);
+ }
+
+ /**
+ * Export stores (asynchronously)
+ * Download a CSV file containing the stores linked to a specific campaign. **Tip:** If the exported CSV file is too large to view, you can [split it into multiple files](https://www.makeuseof.com/tag/how-to-split-a-huge-csv-excel-workbook-into-seperate-files/). The CSV file contains the following column: - `store_integration_id`: The identifier of the store.
+ * @param applicationId The ID of the Application. It is displayed in your Talon.One deployment URL. (required)
+ * @param campaignId The ID of the campaign. It is displayed in your Talon.One deployment URL. (required)
+ * @param _callback The callback to be executed when the API call finishes
+ * @return The request call
+ * @throws ApiException If fail to process the API call, e.g. serializing the request body object
+ * @http.response.details
+
+ Status Code | Description | Response Headers |
+ 200 | OK | - |
+ 400 | Bad request | - |
+ 401 | Unauthorized - Invalid API key | - |
+ 404 | Not found | - |
+
+ */
+ public okhttp3.Call exportCampaignStoresAsync(Integer applicationId, Integer campaignId, final ApiCallback _callback) throws ApiException {
+
+ okhttp3.Call localVarCall = exportCampaignStoresValidateBeforeCall(applicationId, campaignId, _callback);
+ Type localVarReturnType = new TypeToken(){}.getType();
+ localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback);
+ return localVarCall;
+ }
/**
* Build call for exportCollectionItems
* @param applicationId The ID of the Application. It is displayed in your Talon.One deployment URL. (required)
@@ -5131,7 +5396,7 @@ private okhttp3.Call exportCustomersTiersValidateBeforeCall(String loyaltyProgra
/**
* Export customers' tier data
- * Download a CSV file containing the tier information for customers of the specified loyalty program. The generated file contains the following columns: - `programid`: The identifier of the loyalty program. It is displayed in your Talon.One deployment URL. - `subledgerid`: The ID of the subledger associated with the loyalty program. This column is empty if the loyalty program has no subledger. In this case, refer to the export file name to get the ID of the loyalty program. - `customerprofileid`: The ID used to integrate customer profiles with the loyalty program. - `tiername`: The name of the tier. - `startdate`: The tier start date in RFC3339. - `expirydate`: The tier expiry date in RFC3339. You can filter the results by providing the following optional input parameters: - `subledgerId` (optional): Filter results by subledger ID. If no value is provided, all subledger data for the specified loyalty program will be exported. - `tierName` (optional): Filter results by tier name. If no value is provided, all tier data for the specified loyalty program will be exported.
+ * Download a CSV file containing the tier information for customers of the specified loyalty program. The generated file contains the following columns: - `programid`: The identifier of the loyalty program. It is displayed in your Talon.One deployment URL. - `subledgerid`: The ID of the subledger associated with the loyalty program. This column is empty if the loyalty program has no subledger. In this case, refer to the export file name to get the ID of the loyalty program. - `customerprofileid`: The ID used to integrate customer profiles with the loyalty program. - `tiername`: The name of the tier. - `startdate`: The tier start date in RFC3339. - `expirydate`: The tier expiry date in RFC3339. You can filter the results by providing the following optional input parameters: - `subledgerIds` (optional): Filter results by an array of subledger IDs. If no value is provided, all subledger data for the specified loyalty program will be exported. - `tierNames` (optional): Filter results by an array of tier names. If no value is provided, all tier data for the specified loyalty program will be exported.
* @param loyaltyProgramId The identifier for the loyalty program. (required)
* @param subledgerIds An array of subledgers IDs to filter the export by. (optional)
* @param tierNames An array of tier names to filter the export by. (optional)
@@ -5150,7 +5415,7 @@ public String exportCustomersTiers(String loyaltyProgramId, List subledg
/**
* Export customers' tier data
- * Download a CSV file containing the tier information for customers of the specified loyalty program. The generated file contains the following columns: - `programid`: The identifier of the loyalty program. It is displayed in your Talon.One deployment URL. - `subledgerid`: The ID of the subledger associated with the loyalty program. This column is empty if the loyalty program has no subledger. In this case, refer to the export file name to get the ID of the loyalty program. - `customerprofileid`: The ID used to integrate customer profiles with the loyalty program. - `tiername`: The name of the tier. - `startdate`: The tier start date in RFC3339. - `expirydate`: The tier expiry date in RFC3339. You can filter the results by providing the following optional input parameters: - `subledgerId` (optional): Filter results by subledger ID. If no value is provided, all subledger data for the specified loyalty program will be exported. - `tierName` (optional): Filter results by tier name. If no value is provided, all tier data for the specified loyalty program will be exported.
+ * Download a CSV file containing the tier information for customers of the specified loyalty program. The generated file contains the following columns: - `programid`: The identifier of the loyalty program. It is displayed in your Talon.One deployment URL. - `subledgerid`: The ID of the subledger associated with the loyalty program. This column is empty if the loyalty program has no subledger. In this case, refer to the export file name to get the ID of the loyalty program. - `customerprofileid`: The ID used to integrate customer profiles with the loyalty program. - `tiername`: The name of the tier. - `startdate`: The tier start date in RFC3339. - `expirydate`: The tier expiry date in RFC3339. You can filter the results by providing the following optional input parameters: - `subledgerIds` (optional): Filter results by an array of subledger IDs. If no value is provided, all subledger data for the specified loyalty program will be exported. - `tierNames` (optional): Filter results by an array of tier names. If no value is provided, all tier data for the specified loyalty program will be exported.
* @param loyaltyProgramId The identifier for the loyalty program. (required)
* @param subledgerIds An array of subledgers IDs to filter the export by. (optional)
* @param tierNames An array of tier names to filter the export by. (optional)
@@ -5170,7 +5435,7 @@ public ApiResponse exportCustomersTiersWithHttpInfo(String loyaltyProgra
/**
* Export customers' tier data (asynchronously)
- * Download a CSV file containing the tier information for customers of the specified loyalty program. The generated file contains the following columns: - `programid`: The identifier of the loyalty program. It is displayed in your Talon.One deployment URL. - `subledgerid`: The ID of the subledger associated with the loyalty program. This column is empty if the loyalty program has no subledger. In this case, refer to the export file name to get the ID of the loyalty program. - `customerprofileid`: The ID used to integrate customer profiles with the loyalty program. - `tiername`: The name of the tier. - `startdate`: The tier start date in RFC3339. - `expirydate`: The tier expiry date in RFC3339. You can filter the results by providing the following optional input parameters: - `subledgerId` (optional): Filter results by subledger ID. If no value is provided, all subledger data for the specified loyalty program will be exported. - `tierName` (optional): Filter results by tier name. If no value is provided, all tier data for the specified loyalty program will be exported.
+ * Download a CSV file containing the tier information for customers of the specified loyalty program. The generated file contains the following columns: - `programid`: The identifier of the loyalty program. It is displayed in your Talon.One deployment URL. - `subledgerid`: The ID of the subledger associated with the loyalty program. This column is empty if the loyalty program has no subledger. In this case, refer to the export file name to get the ID of the loyalty program. - `customerprofileid`: The ID used to integrate customer profiles with the loyalty program. - `tiername`: The name of the tier. - `startdate`: The tier start date in RFC3339. - `expirydate`: The tier expiry date in RFC3339. You can filter the results by providing the following optional input parameters: - `subledgerIds` (optional): Filter results by an array of subledger IDs. If no value is provided, all subledger data for the specified loyalty program will be exported. - `tierNames` (optional): Filter results by an array of tier names. If no value is provided, all tier data for the specified loyalty program will be exported.
* @param loyaltyProgramId The identifier for the loyalty program. (required)
* @param subledgerIds An array of subledgers IDs to filter the export by. (optional)
* @param tierNames An array of tier names to filter the export by. (optional)
@@ -11128,6 +11393,11 @@ public okhttp3.Call getCollectionItemsAsync(Integer collectionId, Integer pageSi
* @param recipientIntegrationId Filter results by match with a profile id specified in the coupon's RecipientIntegrationId field (optional)
* @param batchId Filter results by batches of coupons (optional)
* @param exactMatch Filter results to an exact case-insensitive matching against the coupon code (optional, default to false)
+ * @param expiresBefore Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon expiration date timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. (optional)
+ * @param expiresAfter Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon expiration date timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. (optional)
+ * @param startsBefore Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon start date timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. (optional)
+ * @param startsAfter Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon start date timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. (optional)
+ * @param valuesOnly Filter results to only return the coupon codes (`value` column) without the associated coupon data. (optional, default to false)
* @param _callback Callback for upload/download progress
* @return Call to execute
* @throws ApiException If fail to serialize the request body object
@@ -11137,7 +11407,7 @@ public okhttp3.Call getCollectionItemsAsync(Integer collectionId, Integer pageSi
200 | OK | - |
*/
- public okhttp3.Call getCouponsWithoutTotalCountCall(Integer applicationId, Integer campaignId, Integer pageSize, Integer skip, String sort, String value, OffsetDateTime createdBefore, OffsetDateTime createdAfter, String valid, String usable, Integer referralId, String recipientIntegrationId, String batchId, Boolean exactMatch, final ApiCallback _callback) throws ApiException {
+ public okhttp3.Call getCouponsWithoutTotalCountCall(Integer applicationId, Integer campaignId, Integer pageSize, Integer skip, String sort, String value, OffsetDateTime createdBefore, OffsetDateTime createdAfter, String valid, String usable, Integer referralId, String recipientIntegrationId, String batchId, Boolean exactMatch, OffsetDateTime expiresBefore, OffsetDateTime expiresAfter, OffsetDateTime startsBefore, OffsetDateTime startsAfter, Boolean valuesOnly, final ApiCallback _callback) throws ApiException {
Object localVarPostBody = null;
// create path and map variables
@@ -11195,6 +11465,26 @@ public okhttp3.Call getCouponsWithoutTotalCountCall(Integer applicationId, Integ
localVarQueryParams.addAll(localVarApiClient.parameterToPair("exactMatch", exactMatch));
}
+ if (expiresBefore != null) {
+ localVarQueryParams.addAll(localVarApiClient.parameterToPair("expiresBefore", expiresBefore));
+ }
+
+ if (expiresAfter != null) {
+ localVarQueryParams.addAll(localVarApiClient.parameterToPair("expiresAfter", expiresAfter));
+ }
+
+ if (startsBefore != null) {
+ localVarQueryParams.addAll(localVarApiClient.parameterToPair("startsBefore", startsBefore));
+ }
+
+ if (startsAfter != null) {
+ localVarQueryParams.addAll(localVarApiClient.parameterToPair("startsAfter", startsAfter));
+ }
+
+ if (valuesOnly != null) {
+ localVarQueryParams.addAll(localVarApiClient.parameterToPair("valuesOnly", valuesOnly));
+ }
+
Map localVarHeaderParams = new HashMap();
Map localVarCookieParams = new HashMap();
Map localVarFormParams = new HashMap();
@@ -11217,7 +11507,7 @@ public okhttp3.Call getCouponsWithoutTotalCountCall(Integer applicationId, Integ
}
@SuppressWarnings("rawtypes")
- private okhttp3.Call getCouponsWithoutTotalCountValidateBeforeCall(Integer applicationId, Integer campaignId, Integer pageSize, Integer skip, String sort, String value, OffsetDateTime createdBefore, OffsetDateTime createdAfter, String valid, String usable, Integer referralId, String recipientIntegrationId, String batchId, Boolean exactMatch, final ApiCallback _callback) throws ApiException {
+ private okhttp3.Call getCouponsWithoutTotalCountValidateBeforeCall(Integer applicationId, Integer campaignId, Integer pageSize, Integer skip, String sort, String value, OffsetDateTime createdBefore, OffsetDateTime createdAfter, String valid, String usable, Integer referralId, String recipientIntegrationId, String batchId, Boolean exactMatch, OffsetDateTime expiresBefore, OffsetDateTime expiresAfter, OffsetDateTime startsBefore, OffsetDateTime startsAfter, Boolean valuesOnly, final ApiCallback _callback) throws ApiException {
// verify the required parameter 'applicationId' is set
if (applicationId == null) {
@@ -11230,7 +11520,7 @@ private okhttp3.Call getCouponsWithoutTotalCountValidateBeforeCall(Integer appli
}
- okhttp3.Call localVarCall = getCouponsWithoutTotalCountCall(applicationId, campaignId, pageSize, skip, sort, value, createdBefore, createdAfter, valid, usable, referralId, recipientIntegrationId, batchId, exactMatch, _callback);
+ okhttp3.Call localVarCall = getCouponsWithoutTotalCountCall(applicationId, campaignId, pageSize, skip, sort, value, createdBefore, createdAfter, valid, usable, referralId, recipientIntegrationId, batchId, exactMatch, expiresBefore, expiresAfter, startsBefore, startsAfter, valuesOnly, _callback);
return localVarCall;
}
@@ -11252,6 +11542,11 @@ private okhttp3.Call getCouponsWithoutTotalCountValidateBeforeCall(Integer appli
* @param recipientIntegrationId Filter results by match with a profile id specified in the coupon's RecipientIntegrationId field (optional)
* @param batchId Filter results by batches of coupons (optional)
* @param exactMatch Filter results to an exact case-insensitive matching against the coupon code (optional, default to false)
+ * @param expiresBefore Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon expiration date timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. (optional)
+ * @param expiresAfter Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon expiration date timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. (optional)
+ * @param startsBefore Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon start date timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. (optional)
+ * @param startsAfter Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon start date timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. (optional)
+ * @param valuesOnly Filter results to only return the coupon codes (`value` column) without the associated coupon data. (optional, default to false)
* @return InlineResponse2009
* @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body
* @http.response.details
@@ -11260,8 +11555,8 @@ private okhttp3.Call getCouponsWithoutTotalCountValidateBeforeCall(Integer appli
200 | OK | - |
*/
- public InlineResponse2009 getCouponsWithoutTotalCount(Integer applicationId, Integer campaignId, Integer pageSize, Integer skip, String sort, String value, OffsetDateTime createdBefore, OffsetDateTime createdAfter, String valid, String usable, Integer referralId, String recipientIntegrationId, String batchId, Boolean exactMatch) throws ApiException {
- ApiResponse localVarResp = getCouponsWithoutTotalCountWithHttpInfo(applicationId, campaignId, pageSize, skip, sort, value, createdBefore, createdAfter, valid, usable, referralId, recipientIntegrationId, batchId, exactMatch);
+ public InlineResponse2009 getCouponsWithoutTotalCount(Integer applicationId, Integer campaignId, Integer pageSize, Integer skip, String sort, String value, OffsetDateTime createdBefore, OffsetDateTime createdAfter, String valid, String usable, Integer referralId, String recipientIntegrationId, String batchId, Boolean exactMatch, OffsetDateTime expiresBefore, OffsetDateTime expiresAfter, OffsetDateTime startsBefore, OffsetDateTime startsAfter, Boolean valuesOnly) throws ApiException {
+ ApiResponse localVarResp = getCouponsWithoutTotalCountWithHttpInfo(applicationId, campaignId, pageSize, skip, sort, value, createdBefore, createdAfter, valid, usable, referralId, recipientIntegrationId, batchId, exactMatch, expiresBefore, expiresAfter, startsBefore, startsAfter, valuesOnly);
return localVarResp.getData();
}
@@ -11282,6 +11577,11 @@ public InlineResponse2009 getCouponsWithoutTotalCount(Integer applicationId, Int
* @param recipientIntegrationId Filter results by match with a profile id specified in the coupon's RecipientIntegrationId field (optional)
* @param batchId Filter results by batches of coupons (optional)
* @param exactMatch Filter results to an exact case-insensitive matching against the coupon code (optional, default to false)
+ * @param expiresBefore Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon expiration date timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. (optional)
+ * @param expiresAfter Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon expiration date timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. (optional)
+ * @param startsBefore Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon start date timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. (optional)
+ * @param startsAfter Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon start date timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. (optional)
+ * @param valuesOnly Filter results to only return the coupon codes (`value` column) without the associated coupon data. (optional, default to false)
* @return ApiResponse<InlineResponse2009>
* @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body
* @http.response.details
@@ -11290,8 +11590,8 @@ public InlineResponse2009 getCouponsWithoutTotalCount(Integer applicationId, Int
200 | OK | - |
*/
- public ApiResponse getCouponsWithoutTotalCountWithHttpInfo(Integer applicationId, Integer campaignId, Integer pageSize, Integer skip, String sort, String value, OffsetDateTime createdBefore, OffsetDateTime createdAfter, String valid, String usable, Integer referralId, String recipientIntegrationId, String batchId, Boolean exactMatch) throws ApiException {
- okhttp3.Call localVarCall = getCouponsWithoutTotalCountValidateBeforeCall(applicationId, campaignId, pageSize, skip, sort, value, createdBefore, createdAfter, valid, usable, referralId, recipientIntegrationId, batchId, exactMatch, null);
+ public ApiResponse getCouponsWithoutTotalCountWithHttpInfo(Integer applicationId, Integer campaignId, Integer pageSize, Integer skip, String sort, String value, OffsetDateTime createdBefore, OffsetDateTime createdAfter, String valid, String usable, Integer referralId, String recipientIntegrationId, String batchId, Boolean exactMatch, OffsetDateTime expiresBefore, OffsetDateTime expiresAfter, OffsetDateTime startsBefore, OffsetDateTime startsAfter, Boolean valuesOnly) throws ApiException {
+ okhttp3.Call localVarCall = getCouponsWithoutTotalCountValidateBeforeCall(applicationId, campaignId, pageSize, skip, sort, value, createdBefore, createdAfter, valid, usable, referralId, recipientIntegrationId, batchId, exactMatch, expiresBefore, expiresAfter, startsBefore, startsAfter, valuesOnly, null);
Type localVarReturnType = new TypeToken(){}.getType();
return localVarApiClient.execute(localVarCall, localVarReturnType);
}
@@ -11313,6 +11613,11 @@ public ApiResponse getCouponsWithoutTotalCountWithHttpInfo(I
* @param recipientIntegrationId Filter results by match with a profile id specified in the coupon's RecipientIntegrationId field (optional)
* @param batchId Filter results by batches of coupons (optional)
* @param exactMatch Filter results to an exact case-insensitive matching against the coupon code (optional, default to false)
+ * @param expiresBefore Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon expiration date timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. (optional)
+ * @param expiresAfter Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon expiration date timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. (optional)
+ * @param startsBefore Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon start date timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. (optional)
+ * @param startsAfter Filter results comparing the parameter value, expected to be an RFC3339 timestamp string, to the coupon start date timestamp. You can use any time zone setting. Talon.One will convert to UTC internally. (optional)
+ * @param valuesOnly Filter results to only return the coupon codes (`value` column) without the associated coupon data. (optional, default to false)
* @param _callback The callback to be executed when the API call finishes
* @return The request call
* @throws ApiException If fail to process the API call, e.g. serializing the request body object
@@ -11322,9 +11627,9 @@ public ApiResponse getCouponsWithoutTotalCountWithHttpInfo(I
200 | OK | - |
*/
- public okhttp3.Call getCouponsWithoutTotalCountAsync(Integer applicationId, Integer campaignId, Integer pageSize, Integer skip, String sort, String value, OffsetDateTime createdBefore, OffsetDateTime createdAfter, String valid, String usable, Integer referralId, String recipientIntegrationId, String batchId, Boolean exactMatch, final ApiCallback _callback) throws ApiException {
+ public okhttp3.Call getCouponsWithoutTotalCountAsync(Integer applicationId, Integer campaignId, Integer pageSize, Integer skip, String sort, String value, OffsetDateTime createdBefore, OffsetDateTime createdAfter, String valid, String usable, Integer referralId, String recipientIntegrationId, String batchId, Boolean exactMatch, OffsetDateTime expiresBefore, OffsetDateTime expiresAfter, OffsetDateTime startsBefore, OffsetDateTime startsAfter, Boolean valuesOnly, final ApiCallback _callback) throws ApiException {
- okhttp3.Call localVarCall = getCouponsWithoutTotalCountValidateBeforeCall(applicationId, campaignId, pageSize, skip, sort, value, createdBefore, createdAfter, valid, usable, referralId, recipientIntegrationId, batchId, exactMatch, _callback);
+ okhttp3.Call localVarCall = getCouponsWithoutTotalCountValidateBeforeCall(applicationId, campaignId, pageSize, skip, sort, value, createdBefore, createdAfter, valid, usable, referralId, recipientIntegrationId, batchId, exactMatch, expiresBefore, expiresAfter, startsBefore, startsAfter, valuesOnly, _callback);
Type localVarReturnType = new TypeToken(){}.getType();
localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback);
return localVarCall;
@@ -15127,7 +15432,7 @@ public okhttp3.Call getWebhookLogsAsync(Integer pageSize, Integer skip, String s
}
/**
* Build call for getWebhooks
- * @param applicationIds Filter by one or more Application IDs, separated by a comma. (optional)
+ * @param applicationIds Checks if the given catalog or its attributes are referenced in the specified Application ID. **Note**: If no Application ID is provided, we check for all connected Applications. (optional)
* @param sort The field by which results should be sorted. By default, results are sorted in ascending order. To sort them in descending order, prefix the field name with `-`. **Note:** This parameter works only with numeric fields. (optional)
* @param pageSize The number of items in the response. (optional, default to 1000)
* @param skip The number of items to skip when paging through large result sets. (optional)
@@ -15217,7 +15522,7 @@ private okhttp3.Call getWebhooksValidateBeforeCall(String applicationIds, String
/**
* List webhooks
* List all webhooks.
- * @param applicationIds Filter by one or more Application IDs, separated by a comma. (optional)
+ * @param applicationIds Checks if the given catalog or its attributes are referenced in the specified Application ID. **Note**: If no Application ID is provided, we check for all connected Applications. (optional)
* @param sort The field by which results should be sorted. By default, results are sorted in ascending order. To sort them in descending order, prefix the field name with `-`. **Note:** This parameter works only with numeric fields. (optional)
* @param pageSize The number of items in the response. (optional, default to 1000)
* @param skip The number of items to skip when paging through large result sets. (optional)
@@ -15241,7 +15546,7 @@ public InlineResponse20037 getWebhooks(String applicationIds, String sort, Integ
/**
* List webhooks
* List all webhooks.
- * @param applicationIds Filter by one or more Application IDs, separated by a comma. (optional)
+ * @param applicationIds Checks if the given catalog or its attributes are referenced in the specified Application ID. **Note**: If no Application ID is provided, we check for all connected Applications. (optional)
* @param sort The field by which results should be sorted. By default, results are sorted in ascending order. To sort them in descending order, prefix the field name with `-`. **Note:** This parameter works only with numeric fields. (optional)
* @param pageSize The number of items in the response. (optional, default to 1000)
* @param skip The number of items to skip when paging through large result sets. (optional)
@@ -15266,7 +15571,7 @@ public ApiResponse getWebhooksWithHttpInfo(String applicati
/**
* List webhooks (asynchronously)
* List all webhooks.
- * @param applicationIds Filter by one or more Application IDs, separated by a comma. (optional)
+ * @param applicationIds Checks if the given catalog or its attributes are referenced in the specified Application ID. **Note**: If no Application ID is provided, we check for all connected Applications. (optional)
* @param sort The field by which results should be sorted. By default, results are sorted in ascending order. To sort them in descending order, prefix the field name with `-`. **Note:** This parameter works only with numeric fields. (optional)
* @param pageSize The number of items in the response. (optional, default to 1000)
* @param skip The number of items to skip when paging through large result sets. (optional)
@@ -15680,10 +15985,9 @@ public okhttp3.Call importAudiencesMembershipsAsync(Integer audienceId, String u
return localVarCall;
}
/**
- * Build call for importCollection
+ * Build call for importCampaignStores
* @param applicationId The ID of the Application. It is displayed in your Talon.One deployment URL. (required)
* @param campaignId The ID of the campaign. It is displayed in your Talon.One deployment URL. (required)
- * @param collectionId The ID of the collection. You can get it with the [List collections in Application](#operation/listCollectionsInApplication) endpoint. (required)
* @param upFile The file containing the data that is being imported. (optional)
* @param _callback Callback for upload/download progress
* @return Call to execute
@@ -15692,14 +15996,156 @@ public okhttp3.Call importAudiencesMembershipsAsync(Integer audienceId, String u
Status Code | Description | Response Headers |
200 | OK | - |
- 401 | Unauthorized | - |
+ 400 | Bad request | - |
+ 401 | Unauthorized - Invalid API key | - |
+ 404 | Not found | - |
*/
- public okhttp3.Call importCollectionCall(Integer applicationId, Integer campaignId, Integer collectionId, String upFile, final ApiCallback _callback) throws ApiException {
+ public okhttp3.Call importCampaignStoresCall(Integer applicationId, Integer campaignId, String upFile, final ApiCallback _callback) throws ApiException {
Object localVarPostBody = null;
// create path and map variables
- String localVarPath = "/v1/applications/{applicationId}/campaigns/{campaignId}/collections/{collectionId}/import"
+ String localVarPath = "/v1/applications/{applicationId}/campaigns/{campaignId}/stores/import"
+ .replaceAll("\\{" + "applicationId" + "\\}", localVarApiClient.escapeString(applicationId.toString()))
+ .replaceAll("\\{" + "campaignId" + "\\}", localVarApiClient.escapeString(campaignId.toString()));
+
+ List localVarQueryParams = new ArrayList();
+ List localVarCollectionQueryParams = new ArrayList();
+ Map localVarHeaderParams = new HashMap();
+ Map localVarCookieParams = new HashMap();
+ Map localVarFormParams = new HashMap();
+ if (upFile != null) {
+ localVarFormParams.put("upFile", upFile);
+ }
+
+ final String[] localVarAccepts = {
+ "application/json"
+ };
+ final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts);
+ if (localVarAccept != null) {
+ localVarHeaderParams.put("Accept", localVarAccept);
+ }
+
+ final String[] localVarContentTypes = {
+ "multipart/form-data"
+ };
+ final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes);
+ localVarHeaderParams.put("Content-Type", localVarContentType);
+
+ String[] localVarAuthNames = new String[] { "management_key", "manager_auth" };
+ return localVarApiClient.buildCall(localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback);
+ }
+
+ @SuppressWarnings("rawtypes")
+ private okhttp3.Call importCampaignStoresValidateBeforeCall(Integer applicationId, Integer campaignId, String upFile, final ApiCallback _callback) throws ApiException {
+
+ // verify the required parameter 'applicationId' is set
+ if (applicationId == null) {
+ throw new ApiException("Missing the required parameter 'applicationId' when calling importCampaignStores(Async)");
+ }
+
+ // verify the required parameter 'campaignId' is set
+ if (campaignId == null) {
+ throw new ApiException("Missing the required parameter 'campaignId' when calling importCampaignStores(Async)");
+ }
+
+
+ okhttp3.Call localVarCall = importCampaignStoresCall(applicationId, campaignId, upFile, _callback);
+ return localVarCall;
+
+ }
+
+ /**
+ * Import stores
+ * Upload a CSV file containing the stores you want to link to a specific campaign. Send the file as multipart data. The CSV file **must** only contain the following column: - `store_integration_id`: The identifier of the store. The import **replaces** the previous list of stores linked to the campaign.
+ * @param applicationId The ID of the Application. It is displayed in your Talon.One deployment URL. (required)
+ * @param campaignId The ID of the campaign. It is displayed in your Talon.One deployment URL. (required)
+ * @param upFile The file containing the data that is being imported. (optional)
+ * @return ModelImport
+ * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body
+ * @http.response.details
+
+ Status Code | Description | Response Headers |
+ 200 | OK | - |
+ 400 | Bad request | - |
+ 401 | Unauthorized - Invalid API key | - |
+ 404 | Not found | - |
+
+ */
+ public ModelImport importCampaignStores(Integer applicationId, Integer campaignId, String upFile) throws ApiException {
+ ApiResponse localVarResp = importCampaignStoresWithHttpInfo(applicationId, campaignId, upFile);
+ return localVarResp.getData();
+ }
+
+ /**
+ * Import stores
+ * Upload a CSV file containing the stores you want to link to a specific campaign. Send the file as multipart data. The CSV file **must** only contain the following column: - `store_integration_id`: The identifier of the store. The import **replaces** the previous list of stores linked to the campaign.
+ * @param applicationId The ID of the Application. It is displayed in your Talon.One deployment URL. (required)
+ * @param campaignId The ID of the campaign. It is displayed in your Talon.One deployment URL. (required)
+ * @param upFile The file containing the data that is being imported. (optional)
+ * @return ApiResponse<ModelImport>
+ * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body
+ * @http.response.details
+
+ Status Code | Description | Response Headers |
+ 200 | OK | - |
+ 400 | Bad request | - |
+ 401 | Unauthorized - Invalid API key | - |
+ 404 | Not found | - |
+
+ */
+ public ApiResponse importCampaignStoresWithHttpInfo(Integer applicationId, Integer campaignId, String upFile) throws ApiException {
+ okhttp3.Call localVarCall = importCampaignStoresValidateBeforeCall(applicationId, campaignId, upFile, null);
+ Type localVarReturnType = new TypeToken(){}.getType();
+ return localVarApiClient.execute(localVarCall, localVarReturnType);
+ }
+
+ /**
+ * Import stores (asynchronously)
+ * Upload a CSV file containing the stores you want to link to a specific campaign. Send the file as multipart data. The CSV file **must** only contain the following column: - `store_integration_id`: The identifier of the store. The import **replaces** the previous list of stores linked to the campaign.
+ * @param applicationId The ID of the Application. It is displayed in your Talon.One deployment URL. (required)
+ * @param campaignId The ID of the campaign. It is displayed in your Talon.One deployment URL. (required)
+ * @param upFile The file containing the data that is being imported. (optional)
+ * @param _callback The callback to be executed when the API call finishes
+ * @return The request call
+ * @throws ApiException If fail to process the API call, e.g. serializing the request body object
+ * @http.response.details
+
+ Status Code | Description | Response Headers |
+ 200 | OK | - |
+ 400 | Bad request | - |
+ 401 | Unauthorized - Invalid API key | - |
+ 404 | Not found | - |
+
+ */
+ public okhttp3.Call importCampaignStoresAsync(Integer applicationId, Integer campaignId, String upFile, final ApiCallback _callback) throws ApiException {
+
+ okhttp3.Call localVarCall = importCampaignStoresValidateBeforeCall(applicationId, campaignId, upFile, _callback);
+ Type localVarReturnType = new TypeToken(){}.getType();
+ localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback);
+ return localVarCall;
+ }
+ /**
+ * Build call for importCollection
+ * @param applicationId The ID of the Application. It is displayed in your Talon.One deployment URL. (required)
+ * @param campaignId The ID of the campaign. It is displayed in your Talon.One deployment URL. (required)
+ * @param collectionId The ID of the collection. You can get it with the [List collections in Application](#operation/listCollectionsInApplication) endpoint. (required)
+ * @param upFile The file containing the data that is being imported. (optional)
+ * @param _callback Callback for upload/download progress
+ * @return Call to execute
+ * @throws ApiException If fail to serialize the request body object
+ * @http.response.details
+
+ Status Code | Description | Response Headers |
+ 200 | OK | - |
+ 401 | Unauthorized | - |
+
+ */
+ public okhttp3.Call importCollectionCall(Integer applicationId, Integer campaignId, Integer collectionId, String upFile, final ApiCallback _callback) throws ApiException {
+ Object localVarPostBody = null;
+
+ // create path and map variables
+ String localVarPath = "/v1/applications/{applicationId}/campaigns/{campaignId}/collections/{collectionId}/import"
.replaceAll("\\{" + "applicationId" + "\\}", localVarApiClient.escapeString(applicationId.toString()))
.replaceAll("\\{" + "campaignId" + "\\}", localVarApiClient.escapeString(campaignId.toString()))
.replaceAll("\\{" + "collectionId" + "\\}", localVarApiClient.escapeString(collectionId.toString()));
@@ -16641,7 +17087,7 @@ private okhttp3.Call inviteUserExternalValidateBeforeCall(NewExternalInvitation
/**
* Invite user from identity provider
- * Invite a user from an external identity provider to Talon.One by sending an invitation to their email address.
+ * [Invite a user](https://docs.talon.one/docs/product/account/account-settings/managing-users#inviting-a-user) from an external identity provider to Talon.One by sending an invitation to their email address.
* @param body body (required)
* @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body
* @http.response.details
@@ -16656,7 +17102,7 @@ public void inviteUserExternal(NewExternalInvitation body) throws ApiException {
/**
* Invite user from identity provider
- * Invite a user from an external identity provider to Talon.One by sending an invitation to their email address.
+ * [Invite a user](https://docs.talon.one/docs/product/account/account-settings/managing-users#inviting-a-user) from an external identity provider to Talon.One by sending an invitation to their email address.
* @param body body (required)
* @return ApiResponse<Void>
* @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body
@@ -16673,7 +17119,7 @@ public ApiResponse inviteUserExternalWithHttpInfo(NewExternalInvitation bo
/**
* Invite user from identity provider (asynchronously)
- * Invite a user from an external identity provider to Talon.One by sending an invitation to their email address.
+ * [Invite a user](https://docs.talon.one/docs/product/account/account-settings/managing-users#inviting-a-user) from an external identity provider to Talon.One by sending an invitation to their email address.
* @param body body (required)
* @param _callback The callback to be executed when the API call finishes
* @return The request call
@@ -17851,6 +18297,103 @@ public okhttp3.Call notificationActivationAsync(Integer notificationId, Notifica
localVarApiClient.executeAsync(localVarCall, _callback);
return localVarCall;
}
+ /**
+ * Build call for oktaEventHandlerChallenge
+ * @param _callback Callback for upload/download progress
+ * @return Call to execute
+ * @throws ApiException If fail to serialize the request body object
+ * @http.response.details
+
+ Status Code | Description | Response Headers |
+ 200 | OK | - |
+
+ */
+ public okhttp3.Call oktaEventHandlerChallengeCall(final ApiCallback _callback) throws ApiException {
+ Object localVarPostBody = null;
+
+ // create path and map variables
+ String localVarPath = "/v1/provisioning/okta";
+
+ List localVarQueryParams = new ArrayList();
+ List localVarCollectionQueryParams = new ArrayList();
+ Map localVarHeaderParams = new HashMap();
+ Map localVarCookieParams = new HashMap();
+ Map localVarFormParams = new HashMap();
+ final String[] localVarAccepts = {
+
+ };
+ final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts);
+ if (localVarAccept != null) {
+ localVarHeaderParams.put("Accept", localVarAccept);
+ }
+
+ final String[] localVarContentTypes = {
+
+ };
+ final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes);
+ localVarHeaderParams.put("Content-Type", localVarContentType);
+
+ String[] localVarAuthNames = new String[] { "management_key", "manager_auth" };
+ return localVarApiClient.buildCall(localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback);
+ }
+
+ @SuppressWarnings("rawtypes")
+ private okhttp3.Call oktaEventHandlerChallengeValidateBeforeCall(final ApiCallback _callback) throws ApiException {
+
+
+ okhttp3.Call localVarCall = oktaEventHandlerChallengeCall(_callback);
+ return localVarCall;
+
+ }
+
+ /**
+ * Validate Okta API ownership
+ * Validate the ownership of the API through a challenge-response mechanism. This challenger endpoint is used by Okta to confirm that communication between Talon.One and Okta is correctly configured and accessible for provisioning and deprovisioning of Talon.One users, and that only Talon.One can receive and respond to events from Okta.
+ * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body
+ * @http.response.details
+
+ Status Code | Description | Response Headers |
+ 200 | OK | - |
+
+ */
+ public void oktaEventHandlerChallenge() throws ApiException {
+ oktaEventHandlerChallengeWithHttpInfo();
+ }
+
+ /**
+ * Validate Okta API ownership
+ * Validate the ownership of the API through a challenge-response mechanism. This challenger endpoint is used by Okta to confirm that communication between Talon.One and Okta is correctly configured and accessible for provisioning and deprovisioning of Talon.One users, and that only Talon.One can receive and respond to events from Okta.
+ * @return ApiResponse<Void>
+ * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body
+ * @http.response.details
+
+ Status Code | Description | Response Headers |
+ 200 | OK | - |
+
+ */
+ public ApiResponse oktaEventHandlerChallengeWithHttpInfo() throws ApiException {
+ okhttp3.Call localVarCall = oktaEventHandlerChallengeValidateBeforeCall(null);
+ return localVarApiClient.execute(localVarCall);
+ }
+
+ /**
+ * Validate Okta API ownership (asynchronously)
+ * Validate the ownership of the API through a challenge-response mechanism. This challenger endpoint is used by Okta to confirm that communication between Talon.One and Okta is correctly configured and accessible for provisioning and deprovisioning of Talon.One users, and that only Talon.One can receive and respond to events from Okta.
+ * @param _callback The callback to be executed when the API call finishes
+ * @return The request call
+ * @throws ApiException If fail to process the API call, e.g. serializing the request body object
+ * @http.response.details
+
+ Status Code | Description | Response Headers |
+ 200 | OK | - |
+
+ */
+ public okhttp3.Call oktaEventHandlerChallengeAsync(final ApiCallback _callback) throws ApiException {
+
+ okhttp3.Call localVarCall = oktaEventHandlerChallengeValidateBeforeCall(_callback);
+ localVarApiClient.executeAsync(localVarCall, _callback);
+ return localVarCall;
+ }
/**
* Build call for postAddedDeductedPointsNotification
* @param loyaltyProgramId Identifier of the profile-based loyalty program. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. (required)
@@ -18495,6 +19038,961 @@ public okhttp3.Call resetPasswordAsync(NewPassword body, final ApiCallback
+ Status Code | Description | Response Headers |
+ 201 | Created | - |
+
+ */
+ public okhttp3.Call scimCreateUserCall(Object body, final ApiCallback _callback) throws ApiException {
+ Object localVarPostBody = body;
+
+ // create path and map variables
+ String localVarPath = "/v1/provisioning/scim/Users";
+
+ List localVarQueryParams = new ArrayList();
+ List localVarCollectionQueryParams = new ArrayList();
+ Map localVarHeaderParams = new HashMap();
+ Map localVarCookieParams = new HashMap();
+ Map localVarFormParams = new HashMap();
+ final String[] localVarAccepts = {
+ "application/json"
+ };
+ final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts);
+ if (localVarAccept != null) {
+ localVarHeaderParams.put("Accept", localVarAccept);
+ }
+
+ final String[] localVarContentTypes = {
+ "application/json"
+ };
+ final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes);
+ localVarHeaderParams.put("Content-Type", localVarContentType);
+
+ String[] localVarAuthNames = new String[] { "management_key", "manager_auth" };
+ return localVarApiClient.buildCall(localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback);
+ }
+
+ @SuppressWarnings("rawtypes")
+ private okhttp3.Call scimCreateUserValidateBeforeCall(Object body, final ApiCallback _callback) throws ApiException {
+
+ // verify the required parameter 'body' is set
+ if (body == null) {
+ throw new ApiException("Missing the required parameter 'body' when calling scimCreateUser(Async)");
+ }
+
+
+ okhttp3.Call localVarCall = scimCreateUserCall(body, _callback);
+ return localVarCall;
+
+ }
+
+ /**
+ * Create SCIM user
+ * Create a new Talon.One user using the SCIM provisioning protocol with an identity provider, for example, Microsoft Entra ID.
+ * @param body body (required)
+ * @return ScimUser
+ * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body
+ * @http.response.details
+
+ Status Code | Description | Response Headers |
+ 201 | Created | - |
+
+ */
+ public ScimUser scimCreateUser(Object body) throws ApiException {
+ ApiResponse localVarResp = scimCreateUserWithHttpInfo(body);
+ return localVarResp.getData();
+ }
+
+ /**
+ * Create SCIM user
+ * Create a new Talon.One user using the SCIM provisioning protocol with an identity provider, for example, Microsoft Entra ID.
+ * @param body body (required)
+ * @return ApiResponse<ScimUser>
+ * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body
+ * @http.response.details
+
+ Status Code | Description | Response Headers |
+ 201 | Created | - |
+
+ */
+ public ApiResponse scimCreateUserWithHttpInfo(Object body) throws ApiException {
+ okhttp3.Call localVarCall = scimCreateUserValidateBeforeCall(body, null);
+ Type localVarReturnType = new TypeToken(){}.getType();
+ return localVarApiClient.execute(localVarCall, localVarReturnType);
+ }
+
+ /**
+ * Create SCIM user (asynchronously)
+ * Create a new Talon.One user using the SCIM provisioning protocol with an identity provider, for example, Microsoft Entra ID.
+ * @param body body (required)
+ * @param _callback The callback to be executed when the API call finishes
+ * @return The request call
+ * @throws ApiException If fail to process the API call, e.g. serializing the request body object
+ * @http.response.details
+
+ Status Code | Description | Response Headers |
+ 201 | Created | - |
+
+ */
+ public okhttp3.Call scimCreateUserAsync(Object body, final ApiCallback _callback) throws ApiException {
+
+ okhttp3.Call localVarCall = scimCreateUserValidateBeforeCall(body, _callback);
+ Type localVarReturnType = new TypeToken(){}.getType();
+ localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback);
+ return localVarCall;
+ }
+ /**
+ * Build call for scimDeleteUser
+ * @param userId The ID of the user. (required)
+ * @param _callback Callback for upload/download progress
+ * @return Call to execute
+ * @throws ApiException If fail to serialize the request body object
+ * @http.response.details
+
+ Status Code | Description | Response Headers |
+ 204 | No Content | - |
+
+ */
+ public okhttp3.Call scimDeleteUserCall(Integer userId, final ApiCallback _callback) throws ApiException {
+ Object localVarPostBody = null;
+
+ // create path and map variables
+ String localVarPath = "/v1/provisioning/scim/Users/{userId}"
+ .replaceAll("\\{" + "userId" + "\\}", localVarApiClient.escapeString(userId.toString()));
+
+ List localVarQueryParams = new ArrayList();
+ List localVarCollectionQueryParams = new ArrayList();
+ Map localVarHeaderParams = new HashMap();
+ Map localVarCookieParams = new HashMap();
+ Map localVarFormParams = new HashMap();
+ final String[] localVarAccepts = {
+
+ };
+ final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts);
+ if (localVarAccept != null) {
+ localVarHeaderParams.put("Accept", localVarAccept);
+ }
+
+ final String[] localVarContentTypes = {
+
+ };
+ final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes);
+ localVarHeaderParams.put("Content-Type", localVarContentType);
+
+ String[] localVarAuthNames = new String[] { "management_key", "manager_auth" };
+ return localVarApiClient.buildCall(localVarPath, "DELETE", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback);
+ }
+
+ @SuppressWarnings("rawtypes")
+ private okhttp3.Call scimDeleteUserValidateBeforeCall(Integer userId, final ApiCallback _callback) throws ApiException {
+
+ // verify the required parameter 'userId' is set
+ if (userId == null) {
+ throw new ApiException("Missing the required parameter 'userId' when calling scimDeleteUser(Async)");
+ }
+
+
+ okhttp3.Call localVarCall = scimDeleteUserCall(userId, _callback);
+ return localVarCall;
+
+ }
+
+ /**
+ * Delete SCIM user
+ * Delete a specific Talon.One user created using the SCIM provisioning protocol with an identity provider, for example, Microsoft Entra ID.
+ * @param userId The ID of the user. (required)
+ * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body
+ * @http.response.details
+
+ Status Code | Description | Response Headers |
+ 204 | No Content | - |
+
+ */
+ public void scimDeleteUser(Integer userId) throws ApiException {
+ scimDeleteUserWithHttpInfo(userId);
+ }
+
+ /**
+ * Delete SCIM user
+ * Delete a specific Talon.One user created using the SCIM provisioning protocol with an identity provider, for example, Microsoft Entra ID.
+ * @param userId The ID of the user. (required)
+ * @return ApiResponse<Void>
+ * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body
+ * @http.response.details
+
+ Status Code | Description | Response Headers |
+ 204 | No Content | - |
+
+ */
+ public ApiResponse scimDeleteUserWithHttpInfo(Integer userId) throws ApiException {
+ okhttp3.Call localVarCall = scimDeleteUserValidateBeforeCall(userId, null);
+ return localVarApiClient.execute(localVarCall);
+ }
+
+ /**
+ * Delete SCIM user (asynchronously)
+ * Delete a specific Talon.One user created using the SCIM provisioning protocol with an identity provider, for example, Microsoft Entra ID.
+ * @param userId The ID of the user. (required)
+ * @param _callback The callback to be executed when the API call finishes
+ * @return The request call
+ * @throws ApiException If fail to process the API call, e.g. serializing the request body object
+ * @http.response.details
+
+ Status Code | Description | Response Headers |
+ 204 | No Content | - |
+
+ */
+ public okhttp3.Call scimDeleteUserAsync(Integer userId, final ApiCallback _callback) throws ApiException {
+
+ okhttp3.Call localVarCall = scimDeleteUserValidateBeforeCall(userId, _callback);
+ localVarApiClient.executeAsync(localVarCall, _callback);
+ return localVarCall;
+ }
+ /**
+ * Build call for scimGetResourceTypes
+ * @param _callback Callback for upload/download progress
+ * @return Call to execute
+ * @throws ApiException If fail to serialize the request body object
+ * @http.response.details
+
+ Status Code | Description | Response Headers |
+ 200 | List of resource types | - |
+
+ */
+ public okhttp3.Call scimGetResourceTypesCall(final ApiCallback _callback) throws ApiException {
+ Object localVarPostBody = null;
+
+ // create path and map variables
+ String localVarPath = "/v1/provisioning/scim/ResourceTypes";
+
+ List localVarQueryParams = new ArrayList();
+ List localVarCollectionQueryParams = new ArrayList();
+ Map localVarHeaderParams = new HashMap();
+ Map localVarCookieParams = new HashMap();
+ Map localVarFormParams = new HashMap();
+ final String[] localVarAccepts = {
+ "application/json"
+ };
+ final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts);
+ if (localVarAccept != null) {
+ localVarHeaderParams.put("Accept", localVarAccept);
+ }
+
+ final String[] localVarContentTypes = {
+
+ };
+ final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes);
+ localVarHeaderParams.put("Content-Type", localVarContentType);
+
+ String[] localVarAuthNames = new String[] { "management_key", "manager_auth" };
+ return localVarApiClient.buildCall(localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback);
+ }
+
+ @SuppressWarnings("rawtypes")
+ private okhttp3.Call scimGetResourceTypesValidateBeforeCall(final ApiCallback _callback) throws ApiException {
+
+
+ okhttp3.Call localVarCall = scimGetResourceTypesCall(_callback);
+ return localVarCall;
+
+ }
+
+ /**
+ * List supported SCIM resource types
+ * Retrieve a list of resource types supported by the SCIM provisioning protocol. Resource types define the various kinds of resources that can be managed via the SCIM API, such as users, groups, or custom-defined resources.
+ * @return ScimResourceTypesListResponse
+ * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body
+ * @http.response.details
+
+ Status Code | Description | Response Headers |
+ 200 | List of resource types | - |
+
+ */
+ public ScimResourceTypesListResponse scimGetResourceTypes() throws ApiException {
+ ApiResponse localVarResp = scimGetResourceTypesWithHttpInfo();
+ return localVarResp.getData();
+ }
+
+ /**
+ * List supported SCIM resource types
+ * Retrieve a list of resource types supported by the SCIM provisioning protocol. Resource types define the various kinds of resources that can be managed via the SCIM API, such as users, groups, or custom-defined resources.
+ * @return ApiResponse<ScimResourceTypesListResponse>
+ * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body
+ * @http.response.details
+
+ Status Code | Description | Response Headers |
+ 200 | List of resource types | - |
+
+ */
+ public ApiResponse scimGetResourceTypesWithHttpInfo() throws ApiException {
+ okhttp3.Call localVarCall = scimGetResourceTypesValidateBeforeCall(null);
+ Type localVarReturnType = new TypeToken(){}.getType();
+ return localVarApiClient.execute(localVarCall, localVarReturnType);
+ }
+
+ /**
+ * List supported SCIM resource types (asynchronously)
+ * Retrieve a list of resource types supported by the SCIM provisioning protocol. Resource types define the various kinds of resources that can be managed via the SCIM API, such as users, groups, or custom-defined resources.
+ * @param _callback The callback to be executed when the API call finishes
+ * @return The request call
+ * @throws ApiException If fail to process the API call, e.g. serializing the request body object
+ * @http.response.details
+
+ Status Code | Description | Response Headers |
+ 200 | List of resource types | - |
+
+ */
+ public okhttp3.Call scimGetResourceTypesAsync(final ApiCallback _callback) throws ApiException {
+
+ okhttp3.Call localVarCall = scimGetResourceTypesValidateBeforeCall(_callback);
+ Type localVarReturnType = new TypeToken(){}.getType();
+ localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback);
+ return localVarCall;
+ }
+ /**
+ * Build call for scimGetSchemas
+ * @param _callback Callback for upload/download progress
+ * @return Call to execute
+ * @throws ApiException If fail to serialize the request body object
+ * @http.response.details
+
+ Status Code | Description | Response Headers |
+ 200 | Schemas | - |
+
+ */
+ public okhttp3.Call scimGetSchemasCall(final ApiCallback _callback) throws ApiException {
+ Object localVarPostBody = null;
+
+ // create path and map variables
+ String localVarPath = "/v1/provisioning/scim/Schemas";
+
+ List localVarQueryParams = new ArrayList();
+ List localVarCollectionQueryParams = new ArrayList();
+ Map localVarHeaderParams = new HashMap();
+ Map localVarCookieParams = new HashMap();
+ Map localVarFormParams = new HashMap();
+ final String[] localVarAccepts = {
+
+ };
+ final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts);
+ if (localVarAccept != null) {
+ localVarHeaderParams.put("Accept", localVarAccept);
+ }
+
+ final String[] localVarContentTypes = {
+
+ };
+ final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes);
+ localVarHeaderParams.put("Content-Type", localVarContentType);
+
+ String[] localVarAuthNames = new String[] { "management_key", "manager_auth" };
+ return localVarApiClient.buildCall(localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback);
+ }
+
+ @SuppressWarnings("rawtypes")
+ private okhttp3.Call scimGetSchemasValidateBeforeCall(final ApiCallback _callback) throws ApiException {
+
+
+ okhttp3.Call localVarCall = scimGetSchemasCall(_callback);
+ return localVarCall;
+
+ }
+
+ /**
+ * List supported SCIM schemas
+ * Retrieve a list of schemas supported by the SCIM provisioning protocol. Schemas define the structure and attributes of the different resources that can be managed via the SCIM API, such as users, groups, and any custom-defined resources.
+ * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body
+ * @http.response.details
+
+ Status Code | Description | Response Headers |
+ 200 | Schemas | - |
+
+ */
+ public void scimGetSchemas() throws ApiException {
+ scimGetSchemasWithHttpInfo();
+ }
+
+ /**
+ * List supported SCIM schemas
+ * Retrieve a list of schemas supported by the SCIM provisioning protocol. Schemas define the structure and attributes of the different resources that can be managed via the SCIM API, such as users, groups, and any custom-defined resources.
+ * @return ApiResponse<Void>
+ * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body
+ * @http.response.details
+
+ Status Code | Description | Response Headers |
+ 200 | Schemas | - |
+
+ */
+ public ApiResponse scimGetSchemasWithHttpInfo() throws ApiException {
+ okhttp3.Call localVarCall = scimGetSchemasValidateBeforeCall(null);
+ return localVarApiClient.execute(localVarCall);
+ }
+
+ /**
+ * List supported SCIM schemas (asynchronously)
+ * Retrieve a list of schemas supported by the SCIM provisioning protocol. Schemas define the structure and attributes of the different resources that can be managed via the SCIM API, such as users, groups, and any custom-defined resources.
+ * @param _callback The callback to be executed when the API call finishes
+ * @return The request call
+ * @throws ApiException If fail to process the API call, e.g. serializing the request body object
+ * @http.response.details
+
+ Status Code | Description | Response Headers |
+ 200 | Schemas | - |
+
+ */
+ public okhttp3.Call scimGetSchemasAsync(final ApiCallback _callback) throws ApiException {
+
+ okhttp3.Call localVarCall = scimGetSchemasValidateBeforeCall(_callback);
+ localVarApiClient.executeAsync(localVarCall, _callback);
+ return localVarCall;
+ }
+ /**
+ * Build call for scimGetServiceProviderConfig
+ * @param _callback Callback for upload/download progress
+ * @return Call to execute
+ * @throws ApiException If fail to serialize the request body object
+ * @http.response.details
+
+ Status Code | Description | Response Headers |
+ 200 | Service config | - |
+
+ */
+ public okhttp3.Call scimGetServiceProviderConfigCall(final ApiCallback _callback) throws ApiException {
+ Object localVarPostBody = null;
+
+ // create path and map variables
+ String localVarPath = "/v1/provisioning/scim/ServiceProviderConfig";
+
+ List localVarQueryParams = new ArrayList();
+ List localVarCollectionQueryParams = new ArrayList();
+ Map localVarHeaderParams = new HashMap();
+ Map localVarCookieParams = new HashMap();
+ Map localVarFormParams = new HashMap();
+ final String[] localVarAccepts = {
+
+ };
+ final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts);
+ if (localVarAccept != null) {
+ localVarHeaderParams.put("Accept", localVarAccept);
+ }
+
+ final String[] localVarContentTypes = {
+
+ };
+ final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes);
+ localVarHeaderParams.put("Content-Type", localVarContentType);
+
+ String[] localVarAuthNames = new String[] { "management_key", "manager_auth" };
+ return localVarApiClient.buildCall(localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback);
+ }
+
+ @SuppressWarnings("rawtypes")
+ private okhttp3.Call scimGetServiceProviderConfigValidateBeforeCall(final ApiCallback _callback) throws ApiException {
+
+
+ okhttp3.Call localVarCall = scimGetServiceProviderConfigCall(_callback);
+ return localVarCall;
+
+ }
+
+ /**
+ * Service config endpoint for SCIM provisioning protocol
+ * Service config endpoint for SCIM provisioning protocol
+ * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body
+ * @http.response.details
+
+ Status Code | Description | Response Headers |
+ 200 | Service config | - |
+
+ */
+ public void scimGetServiceProviderConfig() throws ApiException {
+ scimGetServiceProviderConfigWithHttpInfo();
+ }
+
+ /**
+ * Service config endpoint for SCIM provisioning protocol
+ * Service config endpoint for SCIM provisioning protocol
+ * @return ApiResponse<Void>
+ * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body
+ * @http.response.details
+
+ Status Code | Description | Response Headers |
+ 200 | Service config | - |
+
+ */
+ public ApiResponse scimGetServiceProviderConfigWithHttpInfo() throws ApiException {
+ okhttp3.Call localVarCall = scimGetServiceProviderConfigValidateBeforeCall(null);
+ return localVarApiClient.execute(localVarCall);
+ }
+
+ /**
+ * Service config endpoint for SCIM provisioning protocol (asynchronously)
+ * Service config endpoint for SCIM provisioning protocol
+ * @param _callback The callback to be executed when the API call finishes
+ * @return The request call
+ * @throws ApiException If fail to process the API call, e.g. serializing the request body object
+ * @http.response.details
+
+ Status Code | Description | Response Headers |
+ 200 | Service config | - |
+
+ */
+ public okhttp3.Call scimGetServiceProviderConfigAsync(final ApiCallback _callback) throws ApiException {
+
+ okhttp3.Call localVarCall = scimGetServiceProviderConfigValidateBeforeCall(_callback);
+ localVarApiClient.executeAsync(localVarCall, _callback);
+ return localVarCall;
+ }
+ /**
+ * Build call for scimGetUser
+ * @param userId The ID of the user. (required)
+ * @param _callback Callback for upload/download progress
+ * @return Call to execute
+ * @throws ApiException If fail to serialize the request body object
+ * @http.response.details
+
+ Status Code | Description | Response Headers |
+ 200 | User details | - |
+
+ */
+ public okhttp3.Call scimGetUserCall(Integer userId, final ApiCallback _callback) throws ApiException {
+ Object localVarPostBody = null;
+
+ // create path and map variables
+ String localVarPath = "/v1/provisioning/scim/Users/{userId}"
+ .replaceAll("\\{" + "userId" + "\\}", localVarApiClient.escapeString(userId.toString()));
+
+ List localVarQueryParams = new ArrayList();
+ List localVarCollectionQueryParams = new ArrayList();
+ Map localVarHeaderParams = new HashMap();
+ Map localVarCookieParams = new HashMap();
+ Map localVarFormParams = new HashMap();
+ final String[] localVarAccepts = {
+ "application/json"
+ };
+ final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts);
+ if (localVarAccept != null) {
+ localVarHeaderParams.put("Accept", localVarAccept);
+ }
+
+ final String[] localVarContentTypes = {
+
+ };
+ final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes);
+ localVarHeaderParams.put("Content-Type", localVarContentType);
+
+ String[] localVarAuthNames = new String[] { "management_key", "manager_auth" };
+ return localVarApiClient.buildCall(localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback);
+ }
+
+ @SuppressWarnings("rawtypes")
+ private okhttp3.Call scimGetUserValidateBeforeCall(Integer userId, final ApiCallback _callback) throws ApiException {
+
+ // verify the required parameter 'userId' is set
+ if (userId == null) {
+ throw new ApiException("Missing the required parameter 'userId' when calling scimGetUser(Async)");
+ }
+
+
+ okhttp3.Call localVarCall = scimGetUserCall(userId, _callback);
+ return localVarCall;
+
+ }
+
+ /**
+ * Get SCIM user
+ * Retrieve data for a specific Talon.One user created using the SCIM provisioning protocol with an identity provider, for example, Microsoft Entra ID.
+ * @param userId The ID of the user. (required)
+ * @return ScimUser
+ * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body
+ * @http.response.details
+
+ Status Code | Description | Response Headers |
+ 200 | User details | - |
+
+ */
+ public ScimUser scimGetUser(Integer userId) throws ApiException {
+ ApiResponse localVarResp = scimGetUserWithHttpInfo(userId);
+ return localVarResp.getData();
+ }
+
+ /**
+ * Get SCIM user
+ * Retrieve data for a specific Talon.One user created using the SCIM provisioning protocol with an identity provider, for example, Microsoft Entra ID.
+ * @param userId The ID of the user. (required)
+ * @return ApiResponse<ScimUser>
+ * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body
+ * @http.response.details
+
+ Status Code | Description | Response Headers |
+ 200 | User details | - |
+
+ */
+ public ApiResponse scimGetUserWithHttpInfo(Integer userId) throws ApiException {
+ okhttp3.Call localVarCall = scimGetUserValidateBeforeCall(userId, null);
+ Type localVarReturnType = new TypeToken(){}.getType();
+ return localVarApiClient.execute(localVarCall, localVarReturnType);
+ }
+
+ /**
+ * Get SCIM user (asynchronously)
+ * Retrieve data for a specific Talon.One user created using the SCIM provisioning protocol with an identity provider, for example, Microsoft Entra ID.
+ * @param userId The ID of the user. (required)
+ * @param _callback The callback to be executed when the API call finishes
+ * @return The request call
+ * @throws ApiException If fail to process the API call, e.g. serializing the request body object
+ * @http.response.details
+
+ Status Code | Description | Response Headers |
+ 200 | User details | - |
+
+ */
+ public okhttp3.Call scimGetUserAsync(Integer userId, final ApiCallback _callback) throws ApiException {
+
+ okhttp3.Call localVarCall = scimGetUserValidateBeforeCall(userId, _callback);
+ Type localVarReturnType = new TypeToken(){}.getType();
+ localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback);
+ return localVarCall;
+ }
+ /**
+ * Build call for scimGetUsers
+ * @param _callback Callback for upload/download progress
+ * @return Call to execute
+ * @throws ApiException If fail to serialize the request body object
+ * @http.response.details
+
+ Status Code | Description | Response Headers |
+ 200 | List of SCIM users | - |
+
+ */
+ public okhttp3.Call scimGetUsersCall(final ApiCallback _callback) throws ApiException {
+ Object localVarPostBody = null;
+
+ // create path and map variables
+ String localVarPath = "/v1/provisioning/scim/Users";
+
+ List localVarQueryParams = new ArrayList();
+ List localVarCollectionQueryParams = new ArrayList();
+ Map localVarHeaderParams = new HashMap();
+ Map localVarCookieParams = new HashMap();
+ Map localVarFormParams = new HashMap();
+ final String[] localVarAccepts = {
+ "application/json"
+ };
+ final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts);
+ if (localVarAccept != null) {
+ localVarHeaderParams.put("Accept", localVarAccept);
+ }
+
+ final String[] localVarContentTypes = {
+
+ };
+ final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes);
+ localVarHeaderParams.put("Content-Type", localVarContentType);
+
+ String[] localVarAuthNames = new String[] { "management_key", "manager_auth" };
+ return localVarApiClient.buildCall(localVarPath, "GET", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback);
+ }
+
+ @SuppressWarnings("rawtypes")
+ private okhttp3.Call scimGetUsersValidateBeforeCall(final ApiCallback _callback) throws ApiException {
+
+
+ okhttp3.Call localVarCall = scimGetUsersCall(_callback);
+ return localVarCall;
+
+ }
+
+ /**
+ * List SCIM users
+ * Retrieve a paginated list of users that have been provisioned using the SCIM protocol with an identity provider, for example, Microsoft Entra ID.
+ * @return ScimUsersListResponse
+ * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body
+ * @http.response.details
+
+ Status Code | Description | Response Headers |
+ 200 | List of SCIM users | - |
+
+ */
+ public ScimUsersListResponse scimGetUsers() throws ApiException {
+ ApiResponse localVarResp = scimGetUsersWithHttpInfo();
+ return localVarResp.getData();
+ }
+
+ /**
+ * List SCIM users
+ * Retrieve a paginated list of users that have been provisioned using the SCIM protocol with an identity provider, for example, Microsoft Entra ID.
+ * @return ApiResponse<ScimUsersListResponse>
+ * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body
+ * @http.response.details
+
+ Status Code | Description | Response Headers |
+ 200 | List of SCIM users | - |
+
+ */
+ public ApiResponse scimGetUsersWithHttpInfo() throws ApiException {
+ okhttp3.Call localVarCall = scimGetUsersValidateBeforeCall(null);
+ Type localVarReturnType = new TypeToken(){}.getType();
+ return localVarApiClient.execute(localVarCall, localVarReturnType);
+ }
+
+ /**
+ * List SCIM users (asynchronously)
+ * Retrieve a paginated list of users that have been provisioned using the SCIM protocol with an identity provider, for example, Microsoft Entra ID.
+ * @param _callback The callback to be executed when the API call finishes
+ * @return The request call
+ * @throws ApiException If fail to process the API call, e.g. serializing the request body object
+ * @http.response.details
+
+ Status Code | Description | Response Headers |
+ 200 | List of SCIM users | - |
+
+ */
+ public okhttp3.Call scimGetUsersAsync(final ApiCallback _callback) throws ApiException {
+
+ okhttp3.Call localVarCall = scimGetUsersValidateBeforeCall(_callback);
+ Type localVarReturnType = new TypeToken(){}.getType();
+ localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback);
+ return localVarCall;
+ }
+ /**
+ * Build call for scimPatchUser
+ * @param userId The ID of the user. (required)
+ * @param _callback Callback for upload/download progress
+ * @return Call to execute
+ * @throws ApiException If fail to serialize the request body object
+ * @http.response.details
+
+ Status Code | Description | Response Headers |
+ 200 | User details | - |
+
+ */
+ public okhttp3.Call scimPatchUserCall(Integer userId, final ApiCallback _callback) throws ApiException {
+ Object localVarPostBody = null;
+
+ // create path and map variables
+ String localVarPath = "/v1/provisioning/scim/Users/{userId}"
+ .replaceAll("\\{" + "userId" + "\\}", localVarApiClient.escapeString(userId.toString()));
+
+ List localVarQueryParams = new ArrayList();
+ List localVarCollectionQueryParams = new ArrayList();
+ Map localVarHeaderParams = new HashMap();
+ Map localVarCookieParams = new HashMap();
+ Map localVarFormParams = new HashMap();
+ final String[] localVarAccepts = {
+ "application/json"
+ };
+ final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts);
+ if (localVarAccept != null) {
+ localVarHeaderParams.put("Accept", localVarAccept);
+ }
+
+ final String[] localVarContentTypes = {
+
+ };
+ final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes);
+ localVarHeaderParams.put("Content-Type", localVarContentType);
+
+ String[] localVarAuthNames = new String[] { "management_key", "manager_auth" };
+ return localVarApiClient.buildCall(localVarPath, "PATCH", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback);
+ }
+
+ @SuppressWarnings("rawtypes")
+ private okhttp3.Call scimPatchUserValidateBeforeCall(Integer userId, final ApiCallback _callback) throws ApiException {
+
+ // verify the required parameter 'userId' is set
+ if (userId == null) {
+ throw new ApiException("Missing the required parameter 'userId' when calling scimPatchUser(Async)");
+ }
+
+
+ okhttp3.Call localVarCall = scimPatchUserCall(userId, _callback);
+ return localVarCall;
+
+ }
+
+ /**
+ * Update SCIM user attributes
+ * Update certain attributes of a specific Talon.One user created using the SCIM provisioning protocol with an identity provider, for example, Microsoft Entra ID. This endpoint allows for selective adding, removing, or replacing specific attributes while leaving other attributes unchanged.
+ * @param userId The ID of the user. (required)
+ * @return ScimUser
+ * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body
+ * @http.response.details
+
+ Status Code | Description | Response Headers |
+ 200 | User details | - |
+
+ */
+ public ScimUser scimPatchUser(Integer userId) throws ApiException {
+ ApiResponse localVarResp = scimPatchUserWithHttpInfo(userId);
+ return localVarResp.getData();
+ }
+
+ /**
+ * Update SCIM user attributes
+ * Update certain attributes of a specific Talon.One user created using the SCIM provisioning protocol with an identity provider, for example, Microsoft Entra ID. This endpoint allows for selective adding, removing, or replacing specific attributes while leaving other attributes unchanged.
+ * @param userId The ID of the user. (required)
+ * @return ApiResponse<ScimUser>
+ * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body
+ * @http.response.details
+
+ Status Code | Description | Response Headers |
+ 200 | User details | - |
+
+ */
+ public ApiResponse scimPatchUserWithHttpInfo(Integer userId) throws ApiException {
+ okhttp3.Call localVarCall = scimPatchUserValidateBeforeCall(userId, null);
+ Type localVarReturnType = new TypeToken(){}.getType();
+ return localVarApiClient.execute(localVarCall, localVarReturnType);
+ }
+
+ /**
+ * Update SCIM user attributes (asynchronously)
+ * Update certain attributes of a specific Talon.One user created using the SCIM provisioning protocol with an identity provider, for example, Microsoft Entra ID. This endpoint allows for selective adding, removing, or replacing specific attributes while leaving other attributes unchanged.
+ * @param userId The ID of the user. (required)
+ * @param _callback The callback to be executed when the API call finishes
+ * @return The request call
+ * @throws ApiException If fail to process the API call, e.g. serializing the request body object
+ * @http.response.details
+
+ Status Code | Description | Response Headers |
+ 200 | User details | - |
+
+ */
+ public okhttp3.Call scimPatchUserAsync(Integer userId, final ApiCallback _callback) throws ApiException {
+
+ okhttp3.Call localVarCall = scimPatchUserValidateBeforeCall(userId, _callback);
+ Type localVarReturnType = new TypeToken(){}.getType();
+ localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback);
+ return localVarCall;
+ }
+ /**
+ * Build call for scimReplaceUserAttributes
+ * @param userId The ID of the user. (required)
+ * @param body body (required)
+ * @param _callback Callback for upload/download progress
+ * @return Call to execute
+ * @throws ApiException If fail to serialize the request body object
+ * @http.response.details
+
+ Status Code | Description | Response Headers |
+ 200 | User details | - |
+
+ */
+ public okhttp3.Call scimReplaceUserAttributesCall(Integer userId, Object body, final ApiCallback _callback) throws ApiException {
+ Object localVarPostBody = body;
+
+ // create path and map variables
+ String localVarPath = "/v1/provisioning/scim/Users/{userId}"
+ .replaceAll("\\{" + "userId" + "\\}", localVarApiClient.escapeString(userId.toString()));
+
+ List localVarQueryParams = new ArrayList();
+ List localVarCollectionQueryParams = new ArrayList();
+ Map localVarHeaderParams = new HashMap();
+ Map localVarCookieParams = new HashMap();
+ Map localVarFormParams = new HashMap();
+ final String[] localVarAccepts = {
+ "application/json"
+ };
+ final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts);
+ if (localVarAccept != null) {
+ localVarHeaderParams.put("Accept", localVarAccept);
+ }
+
+ final String[] localVarContentTypes = {
+ "application/json"
+ };
+ final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes);
+ localVarHeaderParams.put("Content-Type", localVarContentType);
+
+ String[] localVarAuthNames = new String[] { "management_key", "manager_auth" };
+ return localVarApiClient.buildCall(localVarPath, "PUT", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback);
+ }
+
+ @SuppressWarnings("rawtypes")
+ private okhttp3.Call scimReplaceUserAttributesValidateBeforeCall(Integer userId, Object body, final ApiCallback _callback) throws ApiException {
+
+ // verify the required parameter 'userId' is set
+ if (userId == null) {
+ throw new ApiException("Missing the required parameter 'userId' when calling scimReplaceUserAttributes(Async)");
+ }
+
+ // verify the required parameter 'body' is set
+ if (body == null) {
+ throw new ApiException("Missing the required parameter 'body' when calling scimReplaceUserAttributes(Async)");
+ }
+
+
+ okhttp3.Call localVarCall = scimReplaceUserAttributesCall(userId, body, _callback);
+ return localVarCall;
+
+ }
+
+ /**
+ * Update SCIM user
+ * Update the details of a specific Talon.One user created using the SCIM provisioning protocol with an identity provider, for example, Microsoft Entra ID. This endpoint replaces all attributes of the specific user with the attributes provided in the request payload.
+ * @param userId The ID of the user. (required)
+ * @param body body (required)
+ * @return ScimUser
+ * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body
+ * @http.response.details
+
+ Status Code | Description | Response Headers |
+ 200 | User details | - |
+
+ */
+ public ScimUser scimReplaceUserAttributes(Integer userId, Object body) throws ApiException {
+ ApiResponse localVarResp = scimReplaceUserAttributesWithHttpInfo(userId, body);
+ return localVarResp.getData();
+ }
+
+ /**
+ * Update SCIM user
+ * Update the details of a specific Talon.One user created using the SCIM provisioning protocol with an identity provider, for example, Microsoft Entra ID. This endpoint replaces all attributes of the specific user with the attributes provided in the request payload.
+ * @param userId The ID of the user. (required)
+ * @param body body (required)
+ * @return ApiResponse<ScimUser>
+ * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body
+ * @http.response.details
+
+ Status Code | Description | Response Headers |
+ 200 | User details | - |
+
+ */
+ public ApiResponse scimReplaceUserAttributesWithHttpInfo(Integer userId, Object body) throws ApiException {
+ okhttp3.Call localVarCall = scimReplaceUserAttributesValidateBeforeCall(userId, body, null);
+ Type localVarReturnType = new TypeToken(){}.getType();
+ return localVarApiClient.execute(localVarCall, localVarReturnType);
+ }
+
+ /**
+ * Update SCIM user (asynchronously)
+ * Update the details of a specific Talon.One user created using the SCIM provisioning protocol with an identity provider, for example, Microsoft Entra ID. This endpoint replaces all attributes of the specific user with the attributes provided in the request payload.
+ * @param userId The ID of the user. (required)
+ * @param body body (required)
+ * @param _callback The callback to be executed when the API call finishes
+ * @return The request call
+ * @throws ApiException If fail to process the API call, e.g. serializing the request body object
+ * @http.response.details
+
+ Status Code | Description | Response Headers |
+ 200 | User details | - |
+
+ */
+ public okhttp3.Call scimReplaceUserAttributesAsync(Integer userId, Object body, final ApiCallback _callback) throws ApiException {
+
+ okhttp3.Call localVarCall = scimReplaceUserAttributesValidateBeforeCall(userId, body, _callback);
+ Type localVarReturnType = new TypeToken(){}.getType();
+ localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback);
+ return localVarCall;
+ }
/**
* Build call for searchCouponsAdvancedApplicationWideWithoutTotalCount
* @param applicationId The ID of the Application. It is displayed in your Talon.One deployment URL. (required)
diff --git a/src/main/java/one/talon/model/AddItemCatalogAction.java b/src/main/java/one/talon/model/AddItemCatalogAction.java
index 3ebea9d..2b4bbd7 100644
--- a/src/main/java/one/talon/model/AddItemCatalogAction.java
+++ b/src/main/java/one/talon/model/AddItemCatalogAction.java
@@ -25,14 +25,11 @@
import java.io.IOException;
import java.math.BigDecimal;
import one.talon.model.Product;
-import one.talon.custom.JsonNullable;
-import one.talon.custom.NullableAdapterFactory;
/**
* The specific properties of the \"ADD\" catalog sync action.
*/
@ApiModel(description = "The specific properties of the \"ADD\" catalog sync action. ")
-@JsonAdapter(NullableAdapterFactory.class)
public class AddItemCatalogAction {
public static final String SERIALIZED_NAME_SKU = "sku";
@@ -45,8 +42,6 @@ public class AddItemCatalogAction {
public static final String SERIALIZED_NAME_ATTRIBUTES = "attributes";
@SerializedName(SERIALIZED_NAME_ATTRIBUTES)
- /*allow Serializing null for this field */
- @JsonNullable
private Object attributes;
public static final String SERIALIZED_NAME_PRODUCT = "product";
diff --git a/src/main/java/one/talon/model/AdditionalCampaignProperties.java b/src/main/java/one/talon/model/AdditionalCampaignProperties.java
index 022eeec..edbe3a1 100644
--- a/src/main/java/one/talon/model/AdditionalCampaignProperties.java
+++ b/src/main/java/one/talon/model/AdditionalCampaignProperties.java
@@ -177,6 +177,10 @@ public FrontendStateEnum read(final JsonReader jsonReader) throws IOException {
@SerializedName(SERIALIZED_NAME_FRONTEND_STATE)
private FrontendStateEnum frontendState;
+ public static final String SERIALIZED_NAME_STORES_IMPORTED = "storesImported";
+ @SerializedName(SERIALIZED_NAME_STORES_IMPORTED)
+ private Boolean storesImported;
+
public AdditionalCampaignProperties budgets(List budgets) {
@@ -687,6 +691,28 @@ public void setFrontendState(FrontendStateEnum frontendState) {
}
+ public AdditionalCampaignProperties storesImported(Boolean storesImported) {
+
+ this.storesImported = storesImported;
+ return this;
+ }
+
+ /**
+ * Indicates whether the linked stores were imported via a CSV file.
+ * @return storesImported
+ **/
+ @ApiModelProperty(example = "true", required = true, value = "Indicates whether the linked stores were imported via a CSV file.")
+
+ public Boolean getStoresImported() {
+ return storesImported;
+ }
+
+
+ public void setStoresImported(Boolean storesImported) {
+ this.storesImported = storesImported;
+ }
+
+
@Override
public boolean equals(java.lang.Object o) {
if (this == o) {
@@ -717,12 +743,13 @@ public boolean equals(java.lang.Object o) {
Objects.equals(this.createdBy, additionalCampaignProperties.createdBy) &&
Objects.equals(this.updatedBy, additionalCampaignProperties.updatedBy) &&
Objects.equals(this.templateId, additionalCampaignProperties.templateId) &&
- Objects.equals(this.frontendState, additionalCampaignProperties.frontendState);
+ Objects.equals(this.frontendState, additionalCampaignProperties.frontendState) &&
+ Objects.equals(this.storesImported, additionalCampaignProperties.storesImported);
}
@Override
public int hashCode() {
- return Objects.hash(budgets, couponRedemptionCount, referralRedemptionCount, discountCount, discountEffectCount, couponCreationCount, customEffectCount, referralCreationCount, addFreeItemEffectCount, awardedGiveawaysCount, createdLoyaltyPointsCount, createdLoyaltyPointsEffectCount, redeemedLoyaltyPointsCount, redeemedLoyaltyPointsEffectCount, callApiEffectCount, reservecouponEffectCount, lastActivity, updated, createdBy, updatedBy, templateId, frontendState);
+ return Objects.hash(budgets, couponRedemptionCount, referralRedemptionCount, discountCount, discountEffectCount, couponCreationCount, customEffectCount, referralCreationCount, addFreeItemEffectCount, awardedGiveawaysCount, createdLoyaltyPointsCount, createdLoyaltyPointsEffectCount, redeemedLoyaltyPointsCount, redeemedLoyaltyPointsEffectCount, callApiEffectCount, reservecouponEffectCount, lastActivity, updated, createdBy, updatedBy, templateId, frontendState, storesImported);
}
@@ -752,6 +779,7 @@ public String toString() {
sb.append(" updatedBy: ").append(toIndentedString(updatedBy)).append("\n");
sb.append(" templateId: ").append(toIndentedString(templateId)).append("\n");
sb.append(" frontendState: ").append(toIndentedString(frontendState)).append("\n");
+ sb.append(" storesImported: ").append(toIndentedString(storesImported)).append("\n");
sb.append("}");
return sb.toString();
}
diff --git a/src/main/java/one/talon/model/AnalyticsDataPoint.java b/src/main/java/one/talon/model/AnalyticsDataPoint.java
new file mode 100644
index 0000000..cc59eef
--- /dev/null
+++ b/src/main/java/one/talon/model/AnalyticsDataPoint.java
@@ -0,0 +1,127 @@
+/*
+ * Talon.One API
+ * Use the Talon.One API to integrate with your application and to manage applications and campaigns: - Use the operations in the [Integration API section](#integration-api) are used to integrate with our platform - Use the operation in the [Management API section](#management-api) to manage applications and campaigns. ## Determining the base URL of the endpoints The API is available at the same hostname as your Campaign Manager deployment. For example, if you access the Campaign Manager at `https://yourbaseurl.talon.one/`, the URL for the [updateCustomerSessionV2](https://docs.talon.one/integration-api#operation/updateCustomerSessionV2) endpoint is `https://yourbaseurl.talon.one/v2/customer_sessions/{Id}`
+ *
+ * The version of the OpenAPI document:
+ *
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+
+package one.talon.model;
+
+import java.util.Objects;
+import java.util.Arrays;
+import com.google.gson.TypeAdapter;
+import com.google.gson.annotations.JsonAdapter;
+import com.google.gson.annotations.SerializedName;
+import com.google.gson.stream.JsonReader;
+import com.google.gson.stream.JsonWriter;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.io.IOException;
+import java.math.BigDecimal;
+
+/**
+ * AnalyticsDataPoint
+ */
+
+public class AnalyticsDataPoint {
+ public static final String SERIALIZED_NAME_TOTAL = "total";
+ @SerializedName(SERIALIZED_NAME_TOTAL)
+ private BigDecimal total;
+
+ public static final String SERIALIZED_NAME_INFLUENCED = "influenced";
+ @SerializedName(SERIALIZED_NAME_INFLUENCED)
+ private BigDecimal influenced;
+
+
+ public AnalyticsDataPoint total(BigDecimal total) {
+
+ this.total = total;
+ return this;
+ }
+
+ /**
+ * Get total
+ * @return total
+ **/
+ @ApiModelProperty(example = "12.0", required = true, value = "")
+
+ public BigDecimal getTotal() {
+ return total;
+ }
+
+
+ public void setTotal(BigDecimal total) {
+ this.total = total;
+ }
+
+
+ public AnalyticsDataPoint influenced(BigDecimal influenced) {
+
+ this.influenced = influenced;
+ return this;
+ }
+
+ /**
+ * Get influenced
+ * @return influenced
+ **/
+ @ApiModelProperty(example = "12.0", required = true, value = "")
+
+ public BigDecimal getInfluenced() {
+ return influenced;
+ }
+
+
+ public void setInfluenced(BigDecimal influenced) {
+ this.influenced = influenced;
+ }
+
+
+ @Override
+ public boolean equals(java.lang.Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ AnalyticsDataPoint analyticsDataPoint = (AnalyticsDataPoint) o;
+ return Objects.equals(this.total, analyticsDataPoint.total) &&
+ Objects.equals(this.influenced, analyticsDataPoint.influenced);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(total, influenced);
+ }
+
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class AnalyticsDataPoint {\n");
+ sb.append(" total: ").append(toIndentedString(total)).append("\n");
+ sb.append(" influenced: ").append(toIndentedString(influenced)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+
+}
+
diff --git a/src/main/java/one/talon/model/AnalyticsDataPointWithTrend.java b/src/main/java/one/talon/model/AnalyticsDataPointWithTrend.java
new file mode 100644
index 0000000..4d1ed62
--- /dev/null
+++ b/src/main/java/one/talon/model/AnalyticsDataPointWithTrend.java
@@ -0,0 +1,127 @@
+/*
+ * Talon.One API
+ * Use the Talon.One API to integrate with your application and to manage applications and campaigns: - Use the operations in the [Integration API section](#integration-api) are used to integrate with our platform - Use the operation in the [Management API section](#management-api) to manage applications and campaigns. ## Determining the base URL of the endpoints The API is available at the same hostname as your Campaign Manager deployment. For example, if you access the Campaign Manager at `https://yourbaseurl.talon.one/`, the URL for the [updateCustomerSessionV2](https://docs.talon.one/integration-api#operation/updateCustomerSessionV2) endpoint is `https://yourbaseurl.talon.one/v2/customer_sessions/{Id}`
+ *
+ * The version of the OpenAPI document:
+ *
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+
+package one.talon.model;
+
+import java.util.Objects;
+import java.util.Arrays;
+import com.google.gson.TypeAdapter;
+import com.google.gson.annotations.JsonAdapter;
+import com.google.gson.annotations.SerializedName;
+import com.google.gson.stream.JsonReader;
+import com.google.gson.stream.JsonWriter;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.io.IOException;
+import java.math.BigDecimal;
+
+/**
+ * AnalyticsDataPointWithTrend
+ */
+
+public class AnalyticsDataPointWithTrend {
+ public static final String SERIALIZED_NAME_VALUE = "value";
+ @SerializedName(SERIALIZED_NAME_VALUE)
+ private BigDecimal value;
+
+ public static final String SERIALIZED_NAME_TREND = "trend";
+ @SerializedName(SERIALIZED_NAME_TREND)
+ private BigDecimal trend;
+
+
+ public AnalyticsDataPointWithTrend value(BigDecimal value) {
+
+ this.value = value;
+ return this;
+ }
+
+ /**
+ * Get value
+ * @return value
+ **/
+ @ApiModelProperty(example = "12.0", required = true, value = "")
+
+ public BigDecimal getValue() {
+ return value;
+ }
+
+
+ public void setValue(BigDecimal value) {
+ this.value = value;
+ }
+
+
+ public AnalyticsDataPointWithTrend trend(BigDecimal trend) {
+
+ this.trend = trend;
+ return this;
+ }
+
+ /**
+ * Get trend
+ * @return trend
+ **/
+ @ApiModelProperty(example = "3.25", required = true, value = "")
+
+ public BigDecimal getTrend() {
+ return trend;
+ }
+
+
+ public void setTrend(BigDecimal trend) {
+ this.trend = trend;
+ }
+
+
+ @Override
+ public boolean equals(java.lang.Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ AnalyticsDataPointWithTrend analyticsDataPointWithTrend = (AnalyticsDataPointWithTrend) o;
+ return Objects.equals(this.value, analyticsDataPointWithTrend.value) &&
+ Objects.equals(this.trend, analyticsDataPointWithTrend.trend);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(value, trend);
+ }
+
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class AnalyticsDataPointWithTrend {\n");
+ sb.append(" value: ").append(toIndentedString(value)).append("\n");
+ sb.append(" trend: ").append(toIndentedString(trend)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+
+}
+
diff --git a/src/main/java/one/talon/model/AnalyticsDataPointWithTrendAndInfluencedRate.java b/src/main/java/one/talon/model/AnalyticsDataPointWithTrendAndInfluencedRate.java
new file mode 100644
index 0000000..e398f5d
--- /dev/null
+++ b/src/main/java/one/talon/model/AnalyticsDataPointWithTrendAndInfluencedRate.java
@@ -0,0 +1,155 @@
+/*
+ * Talon.One API
+ * Use the Talon.One API to integrate with your application and to manage applications and campaigns: - Use the operations in the [Integration API section](#integration-api) are used to integrate with our platform - Use the operation in the [Management API section](#management-api) to manage applications and campaigns. ## Determining the base URL of the endpoints The API is available at the same hostname as your Campaign Manager deployment. For example, if you access the Campaign Manager at `https://yourbaseurl.talon.one/`, the URL for the [updateCustomerSessionV2](https://docs.talon.one/integration-api#operation/updateCustomerSessionV2) endpoint is `https://yourbaseurl.talon.one/v2/customer_sessions/{Id}`
+ *
+ * The version of the OpenAPI document:
+ *
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+
+package one.talon.model;
+
+import java.util.Objects;
+import java.util.Arrays;
+import com.google.gson.TypeAdapter;
+import com.google.gson.annotations.JsonAdapter;
+import com.google.gson.annotations.SerializedName;
+import com.google.gson.stream.JsonReader;
+import com.google.gson.stream.JsonWriter;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.io.IOException;
+import java.math.BigDecimal;
+
+/**
+ * AnalyticsDataPointWithTrendAndInfluencedRate
+ */
+
+public class AnalyticsDataPointWithTrendAndInfluencedRate {
+ public static final String SERIALIZED_NAME_VALUE = "value";
+ @SerializedName(SERIALIZED_NAME_VALUE)
+ private BigDecimal value;
+
+ public static final String SERIALIZED_NAME_INFLUENCED_RATE = "influencedRate";
+ @SerializedName(SERIALIZED_NAME_INFLUENCED_RATE)
+ private BigDecimal influencedRate;
+
+ public static final String SERIALIZED_NAME_TREND = "trend";
+ @SerializedName(SERIALIZED_NAME_TREND)
+ private BigDecimal trend;
+
+
+ public AnalyticsDataPointWithTrendAndInfluencedRate value(BigDecimal value) {
+
+ this.value = value;
+ return this;
+ }
+
+ /**
+ * Get value
+ * @return value
+ **/
+ @ApiModelProperty(example = "12.0", required = true, value = "")
+
+ public BigDecimal getValue() {
+ return value;
+ }
+
+
+ public void setValue(BigDecimal value) {
+ this.value = value;
+ }
+
+
+ public AnalyticsDataPointWithTrendAndInfluencedRate influencedRate(BigDecimal influencedRate) {
+
+ this.influencedRate = influencedRate;
+ return this;
+ }
+
+ /**
+ * Get influencedRate
+ * @return influencedRate
+ **/
+ @ApiModelProperty(example = "12.0", required = true, value = "")
+
+ public BigDecimal getInfluencedRate() {
+ return influencedRate;
+ }
+
+
+ public void setInfluencedRate(BigDecimal influencedRate) {
+ this.influencedRate = influencedRate;
+ }
+
+
+ public AnalyticsDataPointWithTrendAndInfluencedRate trend(BigDecimal trend) {
+
+ this.trend = trend;
+ return this;
+ }
+
+ /**
+ * Get trend
+ * @return trend
+ **/
+ @ApiModelProperty(example = "3.25", required = true, value = "")
+
+ public BigDecimal getTrend() {
+ return trend;
+ }
+
+
+ public void setTrend(BigDecimal trend) {
+ this.trend = trend;
+ }
+
+
+ @Override
+ public boolean equals(java.lang.Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ AnalyticsDataPointWithTrendAndInfluencedRate analyticsDataPointWithTrendAndInfluencedRate = (AnalyticsDataPointWithTrendAndInfluencedRate) o;
+ return Objects.equals(this.value, analyticsDataPointWithTrendAndInfluencedRate.value) &&
+ Objects.equals(this.influencedRate, analyticsDataPointWithTrendAndInfluencedRate.influencedRate) &&
+ Objects.equals(this.trend, analyticsDataPointWithTrendAndInfluencedRate.trend);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(value, influencedRate, trend);
+ }
+
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class AnalyticsDataPointWithTrendAndInfluencedRate {\n");
+ sb.append(" value: ").append(toIndentedString(value)).append("\n");
+ sb.append(" influencedRate: ").append(toIndentedString(influencedRate)).append("\n");
+ sb.append(" trend: ").append(toIndentedString(trend)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+
+}
+
diff --git a/src/main/java/one/talon/model/AnalyticsDataPointWithTrendAndUplift.java b/src/main/java/one/talon/model/AnalyticsDataPointWithTrendAndUplift.java
new file mode 100644
index 0000000..beb7ad8
--- /dev/null
+++ b/src/main/java/one/talon/model/AnalyticsDataPointWithTrendAndUplift.java
@@ -0,0 +1,155 @@
+/*
+ * Talon.One API
+ * Use the Talon.One API to integrate with your application and to manage applications and campaigns: - Use the operations in the [Integration API section](#integration-api) are used to integrate with our platform - Use the operation in the [Management API section](#management-api) to manage applications and campaigns. ## Determining the base URL of the endpoints The API is available at the same hostname as your Campaign Manager deployment. For example, if you access the Campaign Manager at `https://yourbaseurl.talon.one/`, the URL for the [updateCustomerSessionV2](https://docs.talon.one/integration-api#operation/updateCustomerSessionV2) endpoint is `https://yourbaseurl.talon.one/v2/customer_sessions/{Id}`
+ *
+ * The version of the OpenAPI document:
+ *
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+
+package one.talon.model;
+
+import java.util.Objects;
+import java.util.Arrays;
+import com.google.gson.TypeAdapter;
+import com.google.gson.annotations.JsonAdapter;
+import com.google.gson.annotations.SerializedName;
+import com.google.gson.stream.JsonReader;
+import com.google.gson.stream.JsonWriter;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.io.IOException;
+import java.math.BigDecimal;
+
+/**
+ * AnalyticsDataPointWithTrendAndUplift
+ */
+
+public class AnalyticsDataPointWithTrendAndUplift {
+ public static final String SERIALIZED_NAME_VALUE = "value";
+ @SerializedName(SERIALIZED_NAME_VALUE)
+ private BigDecimal value;
+
+ public static final String SERIALIZED_NAME_UPLIFT = "uplift";
+ @SerializedName(SERIALIZED_NAME_UPLIFT)
+ private BigDecimal uplift;
+
+ public static final String SERIALIZED_NAME_TREND = "trend";
+ @SerializedName(SERIALIZED_NAME_TREND)
+ private BigDecimal trend;
+
+
+ public AnalyticsDataPointWithTrendAndUplift value(BigDecimal value) {
+
+ this.value = value;
+ return this;
+ }
+
+ /**
+ * Get value
+ * @return value
+ **/
+ @ApiModelProperty(example = "12.0", required = true, value = "")
+
+ public BigDecimal getValue() {
+ return value;
+ }
+
+
+ public void setValue(BigDecimal value) {
+ this.value = value;
+ }
+
+
+ public AnalyticsDataPointWithTrendAndUplift uplift(BigDecimal uplift) {
+
+ this.uplift = uplift;
+ return this;
+ }
+
+ /**
+ * Get uplift
+ * @return uplift
+ **/
+ @ApiModelProperty(example = "3.25", required = true, value = "")
+
+ public BigDecimal getUplift() {
+ return uplift;
+ }
+
+
+ public void setUplift(BigDecimal uplift) {
+ this.uplift = uplift;
+ }
+
+
+ public AnalyticsDataPointWithTrendAndUplift trend(BigDecimal trend) {
+
+ this.trend = trend;
+ return this;
+ }
+
+ /**
+ * Get trend
+ * @return trend
+ **/
+ @ApiModelProperty(example = "3.25", required = true, value = "")
+
+ public BigDecimal getTrend() {
+ return trend;
+ }
+
+
+ public void setTrend(BigDecimal trend) {
+ this.trend = trend;
+ }
+
+
+ @Override
+ public boolean equals(java.lang.Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ AnalyticsDataPointWithTrendAndUplift analyticsDataPointWithTrendAndUplift = (AnalyticsDataPointWithTrendAndUplift) o;
+ return Objects.equals(this.value, analyticsDataPointWithTrendAndUplift.value) &&
+ Objects.equals(this.uplift, analyticsDataPointWithTrendAndUplift.uplift) &&
+ Objects.equals(this.trend, analyticsDataPointWithTrendAndUplift.trend);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(value, uplift, trend);
+ }
+
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class AnalyticsDataPointWithTrendAndUplift {\n");
+ sb.append(" value: ").append(toIndentedString(value)).append("\n");
+ sb.append(" uplift: ").append(toIndentedString(uplift)).append("\n");
+ sb.append(" trend: ").append(toIndentedString(trend)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+
+}
+
diff --git a/src/main/java/one/talon/model/ApplicationAnalyticsDataPoint.java b/src/main/java/one/talon/model/ApplicationAnalyticsDataPoint.java
index 907bd81..8aed011 100644
--- a/src/main/java/one/talon/model/ApplicationAnalyticsDataPoint.java
+++ b/src/main/java/one/talon/model/ApplicationAnalyticsDataPoint.java
@@ -24,10 +24,7 @@
import io.swagger.annotations.ApiModelProperty;
import java.io.IOException;
import java.math.BigDecimal;
-import one.talon.model.ApplicationAnalyticsDataPointAvgItemsPerSession;
-import one.talon.model.ApplicationAnalyticsDataPointAvgSessionValue;
-import one.talon.model.ApplicationAnalyticsDataPointSessionsCount;
-import one.talon.model.ApplicationAnalyticsDataPointTotalRevenue;
+import one.talon.model.AnalyticsDataPoint;
import org.threeten.bp.OffsetDateTime;
/**
@@ -45,19 +42,19 @@ public class ApplicationAnalyticsDataPoint {
public static final String SERIALIZED_NAME_TOTAL_REVENUE = "totalRevenue";
@SerializedName(SERIALIZED_NAME_TOTAL_REVENUE)
- private ApplicationAnalyticsDataPointTotalRevenue totalRevenue;
+ private AnalyticsDataPoint totalRevenue;
public static final String SERIALIZED_NAME_SESSIONS_COUNT = "sessionsCount";
@SerializedName(SERIALIZED_NAME_SESSIONS_COUNT)
- private ApplicationAnalyticsDataPointSessionsCount sessionsCount;
+ private AnalyticsDataPoint sessionsCount;
public static final String SERIALIZED_NAME_AVG_ITEMS_PER_SESSION = "avgItemsPerSession";
@SerializedName(SERIALIZED_NAME_AVG_ITEMS_PER_SESSION)
- private ApplicationAnalyticsDataPointAvgItemsPerSession avgItemsPerSession;
+ private AnalyticsDataPoint avgItemsPerSession;
public static final String SERIALIZED_NAME_AVG_SESSION_VALUE = "avgSessionValue";
@SerializedName(SERIALIZED_NAME_AVG_SESSION_VALUE)
- private ApplicationAnalyticsDataPointAvgSessionValue avgSessionValue;
+ private AnalyticsDataPoint avgSessionValue;
public static final String SERIALIZED_NAME_TOTAL_DISCOUNTS = "totalDiscounts";
@SerializedName(SERIALIZED_NAME_TOTAL_DISCOUNTS)
@@ -78,8 +75,7 @@ public ApplicationAnalyticsDataPoint startTime(OffsetDateTime startTime) {
* The start of the aggregation time frame in UTC.
* @return startTime
**/
- @javax.annotation.Nullable
- @ApiModelProperty(example = "2024-02-01T00:00Z", value = "The start of the aggregation time frame in UTC.")
+ @ApiModelProperty(example = "2024-02-01T00:00Z", required = true, value = "The start of the aggregation time frame in UTC.")
public OffsetDateTime getStartTime() {
return startTime;
@@ -101,8 +97,7 @@ public ApplicationAnalyticsDataPoint endTime(OffsetDateTime endTime) {
* The end of the aggregation time frame in UTC.
* @return endTime
**/
- @javax.annotation.Nullable
- @ApiModelProperty(value = "The end of the aggregation time frame in UTC.")
+ @ApiModelProperty(required = true, value = "The end of the aggregation time frame in UTC.")
public OffsetDateTime getEndTime() {
return endTime;
@@ -114,7 +109,7 @@ public void setEndTime(OffsetDateTime endTime) {
}
- public ApplicationAnalyticsDataPoint totalRevenue(ApplicationAnalyticsDataPointTotalRevenue totalRevenue) {
+ public ApplicationAnalyticsDataPoint totalRevenue(AnalyticsDataPoint totalRevenue) {
this.totalRevenue = totalRevenue;
return this;
@@ -127,17 +122,17 @@ public ApplicationAnalyticsDataPoint totalRevenue(ApplicationAnalyticsDataPointT
@javax.annotation.Nullable
@ApiModelProperty(value = "")
- public ApplicationAnalyticsDataPointTotalRevenue getTotalRevenue() {
+ public AnalyticsDataPoint getTotalRevenue() {
return totalRevenue;
}
- public void setTotalRevenue(ApplicationAnalyticsDataPointTotalRevenue totalRevenue) {
+ public void setTotalRevenue(AnalyticsDataPoint totalRevenue) {
this.totalRevenue = totalRevenue;
}
- public ApplicationAnalyticsDataPoint sessionsCount(ApplicationAnalyticsDataPointSessionsCount sessionsCount) {
+ public ApplicationAnalyticsDataPoint sessionsCount(AnalyticsDataPoint sessionsCount) {
this.sessionsCount = sessionsCount;
return this;
@@ -150,17 +145,17 @@ public ApplicationAnalyticsDataPoint sessionsCount(ApplicationAnalyticsDataPoint
@javax.annotation.Nullable
@ApiModelProperty(value = "")
- public ApplicationAnalyticsDataPointSessionsCount getSessionsCount() {
+ public AnalyticsDataPoint getSessionsCount() {
return sessionsCount;
}
- public void setSessionsCount(ApplicationAnalyticsDataPointSessionsCount sessionsCount) {
+ public void setSessionsCount(AnalyticsDataPoint sessionsCount) {
this.sessionsCount = sessionsCount;
}
- public ApplicationAnalyticsDataPoint avgItemsPerSession(ApplicationAnalyticsDataPointAvgItemsPerSession avgItemsPerSession) {
+ public ApplicationAnalyticsDataPoint avgItemsPerSession(AnalyticsDataPoint avgItemsPerSession) {
this.avgItemsPerSession = avgItemsPerSession;
return this;
@@ -173,17 +168,17 @@ public ApplicationAnalyticsDataPoint avgItemsPerSession(ApplicationAnalyticsData
@javax.annotation.Nullable
@ApiModelProperty(value = "")
- public ApplicationAnalyticsDataPointAvgItemsPerSession getAvgItemsPerSession() {
+ public AnalyticsDataPoint getAvgItemsPerSession() {
return avgItemsPerSession;
}
- public void setAvgItemsPerSession(ApplicationAnalyticsDataPointAvgItemsPerSession avgItemsPerSession) {
+ public void setAvgItemsPerSession(AnalyticsDataPoint avgItemsPerSession) {
this.avgItemsPerSession = avgItemsPerSession;
}
- public ApplicationAnalyticsDataPoint avgSessionValue(ApplicationAnalyticsDataPointAvgSessionValue avgSessionValue) {
+ public ApplicationAnalyticsDataPoint avgSessionValue(AnalyticsDataPoint avgSessionValue) {
this.avgSessionValue = avgSessionValue;
return this;
@@ -196,12 +191,12 @@ public ApplicationAnalyticsDataPoint avgSessionValue(ApplicationAnalyticsDataPoi
@javax.annotation.Nullable
@ApiModelProperty(value = "")
- public ApplicationAnalyticsDataPointAvgSessionValue getAvgSessionValue() {
+ public AnalyticsDataPoint getAvgSessionValue() {
return avgSessionValue;
}
- public void setAvgSessionValue(ApplicationAnalyticsDataPointAvgSessionValue avgSessionValue) {
+ public void setAvgSessionValue(AnalyticsDataPoint avgSessionValue) {
this.avgSessionValue = avgSessionValue;
}
diff --git a/src/main/java/one/talon/model/ApplicationCampaignAnalytics.java b/src/main/java/one/talon/model/ApplicationCampaignAnalytics.java
index abc595d..3bcb738 100644
--- a/src/main/java/one/talon/model/ApplicationCampaignAnalytics.java
+++ b/src/main/java/one/talon/model/ApplicationCampaignAnalytics.java
@@ -25,12 +25,9 @@
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
-import one.talon.model.ApplicationCampaignAnalyticsAvgItemsPerSession;
-import one.talon.model.ApplicationCampaignAnalyticsAvgSessionValue;
-import one.talon.model.ApplicationCampaignAnalyticsCouponsCount;
-import one.talon.model.ApplicationCampaignAnalyticsSessionsCount;
-import one.talon.model.ApplicationCampaignAnalyticsTotalDiscounts;
-import one.talon.model.ApplicationCampaignAnalyticsTotalRevenue;
+import one.talon.model.AnalyticsDataPointWithTrend;
+import one.talon.model.AnalyticsDataPointWithTrendAndInfluencedRate;
+import one.talon.model.AnalyticsDataPointWithTrendAndUplift;
import org.threeten.bp.OffsetDateTime;
/**
@@ -56,14 +53,20 @@ public class ApplicationCampaignAnalytics {
public static final String SERIALIZED_NAME_CAMPAIGN_TAGS = "campaignTags";
@SerializedName(SERIALIZED_NAME_CAMPAIGN_TAGS)
- private List campaignTags = null;
+ private List campaignTags = new ArrayList();
/**
* The state of the campaign. **Note:** A disabled or archived campaign is not evaluated for rules or coupons.
*/
@JsonAdapter(CampaignStateEnum.Adapter.class)
public enum CampaignStateEnum {
- ENABLED("enabled"),
+ EXPIRED("expired"),
+
+ SCHEDULED("scheduled"),
+
+ RUNNING("running"),
+
+ DRAFT("draft"),
DISABLED("disabled"),
@@ -109,43 +112,31 @@ public CampaignStateEnum read(final JsonReader jsonReader) throws IOException {
public static final String SERIALIZED_NAME_CAMPAIGN_STATE = "campaignState";
@SerializedName(SERIALIZED_NAME_CAMPAIGN_STATE)
- private CampaignStateEnum campaignState = CampaignStateEnum.ENABLED;
-
- public static final String SERIALIZED_NAME_CAMPAIGN_ACTIVE_RULESET_ID = "campaignActiveRulesetId";
- @SerializedName(SERIALIZED_NAME_CAMPAIGN_ACTIVE_RULESET_ID)
- private Integer campaignActiveRulesetId;
-
- public static final String SERIALIZED_NAME_CAMPAIGN_START_TIME = "campaignStartTime";
- @SerializedName(SERIALIZED_NAME_CAMPAIGN_START_TIME)
- private OffsetDateTime campaignStartTime;
-
- public static final String SERIALIZED_NAME_CAMPAIGN_END_TIME = "campaignEndTime";
- @SerializedName(SERIALIZED_NAME_CAMPAIGN_END_TIME)
- private OffsetDateTime campaignEndTime;
+ private CampaignStateEnum campaignState;
public static final String SERIALIZED_NAME_TOTAL_REVENUE = "totalRevenue";
@SerializedName(SERIALIZED_NAME_TOTAL_REVENUE)
- private ApplicationCampaignAnalyticsTotalRevenue totalRevenue;
+ private AnalyticsDataPointWithTrendAndInfluencedRate totalRevenue;
public static final String SERIALIZED_NAME_SESSIONS_COUNT = "sessionsCount";
@SerializedName(SERIALIZED_NAME_SESSIONS_COUNT)
- private ApplicationCampaignAnalyticsSessionsCount sessionsCount;
+ private AnalyticsDataPointWithTrendAndInfluencedRate sessionsCount;
public static final String SERIALIZED_NAME_AVG_ITEMS_PER_SESSION = "avgItemsPerSession";
@SerializedName(SERIALIZED_NAME_AVG_ITEMS_PER_SESSION)
- private ApplicationCampaignAnalyticsAvgItemsPerSession avgItemsPerSession;
+ private AnalyticsDataPointWithTrendAndUplift avgItemsPerSession;
public static final String SERIALIZED_NAME_AVG_SESSION_VALUE = "avgSessionValue";
@SerializedName(SERIALIZED_NAME_AVG_SESSION_VALUE)
- private ApplicationCampaignAnalyticsAvgSessionValue avgSessionValue;
+ private AnalyticsDataPointWithTrendAndUplift avgSessionValue;
public static final String SERIALIZED_NAME_TOTAL_DISCOUNTS = "totalDiscounts";
@SerializedName(SERIALIZED_NAME_TOTAL_DISCOUNTS)
- private ApplicationCampaignAnalyticsTotalDiscounts totalDiscounts;
+ private AnalyticsDataPointWithTrend totalDiscounts;
public static final String SERIALIZED_NAME_COUPONS_COUNT = "couponsCount";
@SerializedName(SERIALIZED_NAME_COUPONS_COUNT)
- private ApplicationCampaignAnalyticsCouponsCount couponsCount;
+ private AnalyticsDataPointWithTrend couponsCount;
public ApplicationCampaignAnalytics startTime(OffsetDateTime startTime) {
@@ -158,8 +149,7 @@ public ApplicationCampaignAnalytics startTime(OffsetDateTime startTime) {
* The start of the aggregation time frame in UTC.
* @return startTime
**/
- @javax.annotation.Nullable
- @ApiModelProperty(example = "2024-02-01T00:00Z", value = "The start of the aggregation time frame in UTC.")
+ @ApiModelProperty(example = "2024-02-01T00:00Z", required = true, value = "The start of the aggregation time frame in UTC.")
public OffsetDateTime getStartTime() {
return startTime;
@@ -181,8 +171,7 @@ public ApplicationCampaignAnalytics endTime(OffsetDateTime endTime) {
* The end of the aggregation time frame in UTC.
* @return endTime
**/
- @javax.annotation.Nullable
- @ApiModelProperty(value = "The end of the aggregation time frame in UTC.")
+ @ApiModelProperty(required = true, value = "The end of the aggregation time frame in UTC.")
public OffsetDateTime getEndTime() {
return endTime;
@@ -204,8 +193,7 @@ public ApplicationCampaignAnalytics campaignId(Integer campaignId) {
* The ID of the campaign.
* @return campaignId
**/
- @javax.annotation.Nullable
- @ApiModelProperty(example = "1", value = "The ID of the campaign.")
+ @ApiModelProperty(example = "1", required = true, value = "The ID of the campaign.")
public Integer getCampaignId() {
return campaignId;
@@ -227,8 +215,7 @@ public ApplicationCampaignAnalytics campaignName(String campaignName) {
* The name of the campaign.
* @return campaignName
**/
- @javax.annotation.Nullable
- @ApiModelProperty(example = "Summer promotions", value = "The name of the campaign.")
+ @ApiModelProperty(example = "Summer promotions", required = true, value = "The name of the campaign.")
public String getCampaignName() {
return campaignName;
@@ -247,9 +234,6 @@ public ApplicationCampaignAnalytics campaignTags(List campaignTags) {
}
public ApplicationCampaignAnalytics addCampaignTagsItem(String campaignTagsItem) {
- if (this.campaignTags == null) {
- this.campaignTags = new ArrayList();
- }
this.campaignTags.add(campaignTagsItem);
return this;
}
@@ -258,8 +242,7 @@ public ApplicationCampaignAnalytics addCampaignTagsItem(String campaignTagsItem)
* A list of tags for the campaign.
* @return campaignTags
**/
- @javax.annotation.Nullable
- @ApiModelProperty(example = "[summer]", value = "A list of tags for the campaign.")
+ @ApiModelProperty(example = "[summer]", required = true, value = "A list of tags for the campaign.")
public List getCampaignTags() {
return campaignTags;
@@ -281,8 +264,7 @@ public ApplicationCampaignAnalytics campaignState(CampaignStateEnum campaignStat
* The state of the campaign. **Note:** A disabled or archived campaign is not evaluated for rules or coupons.
* @return campaignState
**/
- @javax.annotation.Nullable
- @ApiModelProperty(example = "enabled", value = "The state of the campaign. **Note:** A disabled or archived campaign is not evaluated for rules or coupons. ")
+ @ApiModelProperty(example = "running", required = true, value = "The state of the campaign. **Note:** A disabled or archived campaign is not evaluated for rules or coupons. ")
public CampaignStateEnum getCampaignState() {
return campaignState;
@@ -294,76 +276,7 @@ public void setCampaignState(CampaignStateEnum campaignState) {
}
- public ApplicationCampaignAnalytics campaignActiveRulesetId(Integer campaignActiveRulesetId) {
-
- this.campaignActiveRulesetId = campaignActiveRulesetId;
- return this;
- }
-
- /**
- * The [ID of the ruleset](https://docs.talon.one/management-api#operation/getRulesets) this campaign applies on customer session evaluation.
- * @return campaignActiveRulesetId
- **/
- @javax.annotation.Nullable
- @ApiModelProperty(example = "2", value = "The [ID of the ruleset](https://docs.talon.one/management-api#operation/getRulesets) this campaign applies on customer session evaluation. ")
-
- public Integer getCampaignActiveRulesetId() {
- return campaignActiveRulesetId;
- }
-
-
- public void setCampaignActiveRulesetId(Integer campaignActiveRulesetId) {
- this.campaignActiveRulesetId = campaignActiveRulesetId;
- }
-
-
- public ApplicationCampaignAnalytics campaignStartTime(OffsetDateTime campaignStartTime) {
-
- this.campaignStartTime = campaignStartTime;
- return this;
- }
-
- /**
- * Date and time when the campaign becomes active.
- * @return campaignStartTime
- **/
- @javax.annotation.Nullable
- @ApiModelProperty(example = "2021-07-20T22:00Z", value = "Date and time when the campaign becomes active.")
-
- public OffsetDateTime getCampaignStartTime() {
- return campaignStartTime;
- }
-
-
- public void setCampaignStartTime(OffsetDateTime campaignStartTime) {
- this.campaignStartTime = campaignStartTime;
- }
-
-
- public ApplicationCampaignAnalytics campaignEndTime(OffsetDateTime campaignEndTime) {
-
- this.campaignEndTime = campaignEndTime;
- return this;
- }
-
- /**
- * Date and time when the campaign becomes inactive.
- * @return campaignEndTime
- **/
- @javax.annotation.Nullable
- @ApiModelProperty(example = "2021-10-01T02:00Z", value = "Date and time when the campaign becomes inactive.")
-
- public OffsetDateTime getCampaignEndTime() {
- return campaignEndTime;
- }
-
-
- public void setCampaignEndTime(OffsetDateTime campaignEndTime) {
- this.campaignEndTime = campaignEndTime;
- }
-
-
- public ApplicationCampaignAnalytics totalRevenue(ApplicationCampaignAnalyticsTotalRevenue totalRevenue) {
+ public ApplicationCampaignAnalytics totalRevenue(AnalyticsDataPointWithTrendAndInfluencedRate totalRevenue) {
this.totalRevenue = totalRevenue;
return this;
@@ -376,17 +289,17 @@ public ApplicationCampaignAnalytics totalRevenue(ApplicationCampaignAnalyticsTot
@javax.annotation.Nullable
@ApiModelProperty(value = "")
- public ApplicationCampaignAnalyticsTotalRevenue getTotalRevenue() {
+ public AnalyticsDataPointWithTrendAndInfluencedRate getTotalRevenue() {
return totalRevenue;
}
- public void setTotalRevenue(ApplicationCampaignAnalyticsTotalRevenue totalRevenue) {
+ public void setTotalRevenue(AnalyticsDataPointWithTrendAndInfluencedRate totalRevenue) {
this.totalRevenue = totalRevenue;
}
- public ApplicationCampaignAnalytics sessionsCount(ApplicationCampaignAnalyticsSessionsCount sessionsCount) {
+ public ApplicationCampaignAnalytics sessionsCount(AnalyticsDataPointWithTrendAndInfluencedRate sessionsCount) {
this.sessionsCount = sessionsCount;
return this;
@@ -399,17 +312,17 @@ public ApplicationCampaignAnalytics sessionsCount(ApplicationCampaignAnalyticsSe
@javax.annotation.Nullable
@ApiModelProperty(value = "")
- public ApplicationCampaignAnalyticsSessionsCount getSessionsCount() {
+ public AnalyticsDataPointWithTrendAndInfluencedRate getSessionsCount() {
return sessionsCount;
}
- public void setSessionsCount(ApplicationCampaignAnalyticsSessionsCount sessionsCount) {
+ public void setSessionsCount(AnalyticsDataPointWithTrendAndInfluencedRate sessionsCount) {
this.sessionsCount = sessionsCount;
}
- public ApplicationCampaignAnalytics avgItemsPerSession(ApplicationCampaignAnalyticsAvgItemsPerSession avgItemsPerSession) {
+ public ApplicationCampaignAnalytics avgItemsPerSession(AnalyticsDataPointWithTrendAndUplift avgItemsPerSession) {
this.avgItemsPerSession = avgItemsPerSession;
return this;
@@ -422,17 +335,17 @@ public ApplicationCampaignAnalytics avgItemsPerSession(ApplicationCampaignAnalyt
@javax.annotation.Nullable
@ApiModelProperty(value = "")
- public ApplicationCampaignAnalyticsAvgItemsPerSession getAvgItemsPerSession() {
+ public AnalyticsDataPointWithTrendAndUplift getAvgItemsPerSession() {
return avgItemsPerSession;
}
- public void setAvgItemsPerSession(ApplicationCampaignAnalyticsAvgItemsPerSession avgItemsPerSession) {
+ public void setAvgItemsPerSession(AnalyticsDataPointWithTrendAndUplift avgItemsPerSession) {
this.avgItemsPerSession = avgItemsPerSession;
}
- public ApplicationCampaignAnalytics avgSessionValue(ApplicationCampaignAnalyticsAvgSessionValue avgSessionValue) {
+ public ApplicationCampaignAnalytics avgSessionValue(AnalyticsDataPointWithTrendAndUplift avgSessionValue) {
this.avgSessionValue = avgSessionValue;
return this;
@@ -445,17 +358,17 @@ public ApplicationCampaignAnalytics avgSessionValue(ApplicationCampaignAnalytics
@javax.annotation.Nullable
@ApiModelProperty(value = "")
- public ApplicationCampaignAnalyticsAvgSessionValue getAvgSessionValue() {
+ public AnalyticsDataPointWithTrendAndUplift getAvgSessionValue() {
return avgSessionValue;
}
- public void setAvgSessionValue(ApplicationCampaignAnalyticsAvgSessionValue avgSessionValue) {
+ public void setAvgSessionValue(AnalyticsDataPointWithTrendAndUplift avgSessionValue) {
this.avgSessionValue = avgSessionValue;
}
- public ApplicationCampaignAnalytics totalDiscounts(ApplicationCampaignAnalyticsTotalDiscounts totalDiscounts) {
+ public ApplicationCampaignAnalytics totalDiscounts(AnalyticsDataPointWithTrend totalDiscounts) {
this.totalDiscounts = totalDiscounts;
return this;
@@ -468,17 +381,17 @@ public ApplicationCampaignAnalytics totalDiscounts(ApplicationCampaignAnalyticsT
@javax.annotation.Nullable
@ApiModelProperty(value = "")
- public ApplicationCampaignAnalyticsTotalDiscounts getTotalDiscounts() {
+ public AnalyticsDataPointWithTrend getTotalDiscounts() {
return totalDiscounts;
}
- public void setTotalDiscounts(ApplicationCampaignAnalyticsTotalDiscounts totalDiscounts) {
+ public void setTotalDiscounts(AnalyticsDataPointWithTrend totalDiscounts) {
this.totalDiscounts = totalDiscounts;
}
- public ApplicationCampaignAnalytics couponsCount(ApplicationCampaignAnalyticsCouponsCount couponsCount) {
+ public ApplicationCampaignAnalytics couponsCount(AnalyticsDataPointWithTrend couponsCount) {
this.couponsCount = couponsCount;
return this;
@@ -491,12 +404,12 @@ public ApplicationCampaignAnalytics couponsCount(ApplicationCampaignAnalyticsCou
@javax.annotation.Nullable
@ApiModelProperty(value = "")
- public ApplicationCampaignAnalyticsCouponsCount getCouponsCount() {
+ public AnalyticsDataPointWithTrend getCouponsCount() {
return couponsCount;
}
- public void setCouponsCount(ApplicationCampaignAnalyticsCouponsCount couponsCount) {
+ public void setCouponsCount(AnalyticsDataPointWithTrend couponsCount) {
this.couponsCount = couponsCount;
}
@@ -516,9 +429,6 @@ public boolean equals(java.lang.Object o) {
Objects.equals(this.campaignName, applicationCampaignAnalytics.campaignName) &&
Objects.equals(this.campaignTags, applicationCampaignAnalytics.campaignTags) &&
Objects.equals(this.campaignState, applicationCampaignAnalytics.campaignState) &&
- Objects.equals(this.campaignActiveRulesetId, applicationCampaignAnalytics.campaignActiveRulesetId) &&
- Objects.equals(this.campaignStartTime, applicationCampaignAnalytics.campaignStartTime) &&
- Objects.equals(this.campaignEndTime, applicationCampaignAnalytics.campaignEndTime) &&
Objects.equals(this.totalRevenue, applicationCampaignAnalytics.totalRevenue) &&
Objects.equals(this.sessionsCount, applicationCampaignAnalytics.sessionsCount) &&
Objects.equals(this.avgItemsPerSession, applicationCampaignAnalytics.avgItemsPerSession) &&
@@ -529,7 +439,7 @@ public boolean equals(java.lang.Object o) {
@Override
public int hashCode() {
- return Objects.hash(startTime, endTime, campaignId, campaignName, campaignTags, campaignState, campaignActiveRulesetId, campaignStartTime, campaignEndTime, totalRevenue, sessionsCount, avgItemsPerSession, avgSessionValue, totalDiscounts, couponsCount);
+ return Objects.hash(startTime, endTime, campaignId, campaignName, campaignTags, campaignState, totalRevenue, sessionsCount, avgItemsPerSession, avgSessionValue, totalDiscounts, couponsCount);
}
@@ -543,9 +453,6 @@ public String toString() {
sb.append(" campaignName: ").append(toIndentedString(campaignName)).append("\n");
sb.append(" campaignTags: ").append(toIndentedString(campaignTags)).append("\n");
sb.append(" campaignState: ").append(toIndentedString(campaignState)).append("\n");
- sb.append(" campaignActiveRulesetId: ").append(toIndentedString(campaignActiveRulesetId)).append("\n");
- sb.append(" campaignStartTime: ").append(toIndentedString(campaignStartTime)).append("\n");
- sb.append(" campaignEndTime: ").append(toIndentedString(campaignEndTime)).append("\n");
sb.append(" totalRevenue: ").append(toIndentedString(totalRevenue)).append("\n");
sb.append(" sessionsCount: ").append(toIndentedString(sessionsCount)).append("\n");
sb.append(" avgItemsPerSession: ").append(toIndentedString(avgItemsPerSession)).append("\n");
diff --git a/src/main/java/one/talon/model/Attribute.java b/src/main/java/one/talon/model/Attribute.java
index 2ba3870..b50c7bc 100644
--- a/src/main/java/one/talon/model/Attribute.java
+++ b/src/main/java/one/talon/model/Attribute.java
@@ -50,8 +50,6 @@ public class Attribute {
*/
@JsonAdapter(EntityEnum.Adapter.class)
public enum EntityEnum {
- ACCOUNT("Account"),
-
APPLICATION("Application"),
CAMPAIGN("Campaign"),
diff --git a/src/main/java/one/talon/model/BaseLoyaltyProgram.java b/src/main/java/one/talon/model/BaseLoyaltyProgram.java
index ead5196..ed2e319 100644
--- a/src/main/java/one/talon/model/BaseLoyaltyProgram.java
+++ b/src/main/java/one/talon/model/BaseLoyaltyProgram.java
@@ -25,6 +25,8 @@
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
+import one.talon.model.CodeGeneratorSettings;
+import org.threeten.bp.OffsetDateTime;
/**
* BaseLoyaltyProgram
@@ -64,17 +66,19 @@ public class BaseLoyaltyProgram {
private Boolean sandbox;
/**
- * The policy that defines which date is used to calculate the expiration date of a customer's current tier. - `tier_start_date`: The tier expiration date is calculated based on when the customer joined the current tier. - `program_join_date`: The tier expiration date is calculated based on when the customer joined the loyalty program.
+ * The policy that defines when the customer joins the loyalty program. - `not_join`: The customer does not join the loyalty program but can still earn and spend loyalty points. **Note**: The customer does not have a program join date. - `points_activated`: The customer joins the loyalty program only when their earned loyalty points become active for the first time. - `points_earned`: The customer joins the loyalty program when they earn loyalty points for the first time.
*/
- @JsonAdapter(TiersExpirationPolicyEnum.Adapter.class)
- public enum TiersExpirationPolicyEnum {
- TIER_START_DATE("tier_start_date"),
+ @JsonAdapter(ProgramJoinPolicyEnum.Adapter.class)
+ public enum ProgramJoinPolicyEnum {
+ NOT_JOIN("not_join"),
- PROGRAM_JOIN_DATE("program_join_date");
+ POINTS_ACTIVATED("points_activated"),
+
+ POINTS_EARNED("points_earned");
private String value;
- TiersExpirationPolicyEnum(String value) {
+ ProgramJoinPolicyEnum(String value) {
this.value = value;
}
@@ -87,8 +91,8 @@ public String toString() {
return String.valueOf(value);
}
- public static TiersExpirationPolicyEnum fromValue(String value) {
- for (TiersExpirationPolicyEnum b : TiersExpirationPolicyEnum.values()) {
+ public static ProgramJoinPolicyEnum fromValue(String value) {
+ for (ProgramJoinPolicyEnum b : ProgramJoinPolicyEnum.values()) {
if (b.value.equals(value)) {
return b;
}
@@ -96,40 +100,40 @@ public static TiersExpirationPolicyEnum fromValue(String value) {
throw new IllegalArgumentException("Unexpected value '" + value + "'");
}
- public static class Adapter extends TypeAdapter {
+ public static class Adapter extends TypeAdapter {
@Override
- public void write(final JsonWriter jsonWriter, final TiersExpirationPolicyEnum enumeration) throws IOException {
+ public void write(final JsonWriter jsonWriter, final ProgramJoinPolicyEnum enumeration) throws IOException {
jsonWriter.value(enumeration.getValue());
}
@Override
- public TiersExpirationPolicyEnum read(final JsonReader jsonReader) throws IOException {
+ public ProgramJoinPolicyEnum read(final JsonReader jsonReader) throws IOException {
String value = jsonReader.nextString();
- return TiersExpirationPolicyEnum.fromValue(value);
+ return ProgramJoinPolicyEnum.fromValue(value);
}
}
}
- public static final String SERIALIZED_NAME_TIERS_EXPIRATION_POLICY = "tiersExpirationPolicy";
- @SerializedName(SERIALIZED_NAME_TIERS_EXPIRATION_POLICY)
- private TiersExpirationPolicyEnum tiersExpirationPolicy;
-
- public static final String SERIALIZED_NAME_TIERS_EXPIRE_IN = "tiersExpireIn";
- @SerializedName(SERIALIZED_NAME_TIERS_EXPIRE_IN)
- private String tiersExpireIn;
+ public static final String SERIALIZED_NAME_PROGRAM_JOIN_POLICY = "programJoinPolicy";
+ @SerializedName(SERIALIZED_NAME_PROGRAM_JOIN_POLICY)
+ private ProgramJoinPolicyEnum programJoinPolicy;
/**
- * Customers's tier downgrade policy. - `one_down`: Once the tier expires and if the user doesn't have enough points to stay in the tier, the user is downgraded one tier down. - `balance_based`: Once the tier expires, the user's tier is evaluated based on the amount of active points the user has at this instant.
+ * The policy that defines which date is used to calculate the expiration date of a customer's current tier. - `tier_start_date`: The tier expiration date is calculated based on when the customer joined the current tier. - `program_join_date`: The tier expiration date is calculated based on when the customer joined the loyalty program. - `customer_attribute`: The tier expiration date is calculated based on a custom customer attribute. - `absolute_expiration`: The tier expires on a specified date and time. **Note**: For absolute expiration, it is required to provide a `tiersStartDate.`
*/
- @JsonAdapter(TiersDowngradePolicyEnum.Adapter.class)
- public enum TiersDowngradePolicyEnum {
- ONE_DOWN("one_down"),
+ @JsonAdapter(TiersExpirationPolicyEnum.Adapter.class)
+ public enum TiersExpirationPolicyEnum {
+ TIER_START_DATE("tier_start_date"),
- BALANCE_BASED("balance_based");
+ PROGRAM_JOIN_DATE("program_join_date"),
+
+ CUSTOMER_ATTRIBUTE("customer_attribute"),
+
+ ABSOLUTE_EXPIRATION("absolute_expiration");
private String value;
- TiersDowngradePolicyEnum(String value) {
+ TiersExpirationPolicyEnum(String value) {
this.value = value;
}
@@ -142,8 +146,8 @@ public String toString() {
return String.valueOf(value);
}
- public static TiersDowngradePolicyEnum fromValue(String value) {
- for (TiersDowngradePolicyEnum b : TiersDowngradePolicyEnum.values()) {
+ public static TiersExpirationPolicyEnum fromValue(String value) {
+ for (TiersExpirationPolicyEnum b : TiersExpirationPolicyEnum.values()) {
if (b.value.equals(value)) {
return b;
}
@@ -151,38 +155,44 @@ public static TiersDowngradePolicyEnum fromValue(String value) {
throw new IllegalArgumentException("Unexpected value '" + value + "'");
}
- public static class Adapter extends TypeAdapter {
+ public static class Adapter extends TypeAdapter {
@Override
- public void write(final JsonWriter jsonWriter, final TiersDowngradePolicyEnum enumeration) throws IOException {
+ public void write(final JsonWriter jsonWriter, final TiersExpirationPolicyEnum enumeration) throws IOException {
jsonWriter.value(enumeration.getValue());
}
@Override
- public TiersDowngradePolicyEnum read(final JsonReader jsonReader) throws IOException {
+ public TiersExpirationPolicyEnum read(final JsonReader jsonReader) throws IOException {
String value = jsonReader.nextString();
- return TiersDowngradePolicyEnum.fromValue(value);
+ return TiersExpirationPolicyEnum.fromValue(value);
}
}
}
- public static final String SERIALIZED_NAME_TIERS_DOWNGRADE_POLICY = "tiersDowngradePolicy";
- @SerializedName(SERIALIZED_NAME_TIERS_DOWNGRADE_POLICY)
- private TiersDowngradePolicyEnum tiersDowngradePolicy;
+ public static final String SERIALIZED_NAME_TIERS_EXPIRATION_POLICY = "tiersExpirationPolicy";
+ @SerializedName(SERIALIZED_NAME_TIERS_EXPIRATION_POLICY)
+ private TiersExpirationPolicyEnum tiersExpirationPolicy;
+
+ public static final String SERIALIZED_NAME_TIERS_START_DATE = "tiersStartDate";
+ @SerializedName(SERIALIZED_NAME_TIERS_START_DATE)
+ private OffsetDateTime tiersStartDate;
+
+ public static final String SERIALIZED_NAME_TIERS_EXPIRE_IN = "tiersExpireIn";
+ @SerializedName(SERIALIZED_NAME_TIERS_EXPIRE_IN)
+ private String tiersExpireIn;
/**
- * The policy that defines when the customer joins the loyalty program. - `not_join`: The customer does not join the loyalty program but can still earn and spend loyalty points. **Note**: The customer does not have a program join date. - `points_activated`: The customer joins the loyalty program only when their earned loyalty points become active for the first time. - `points_earned`: The customer joins the loyalty program when they earn loyalty points for the first time.
+ * Customers's tier downgrade policy. - `one_down`: Once the tier expires and if the user doesn't have enough points to stay in the tier, the user is downgraded one tier down. - `balance_based`: Once the tier expires, the user's tier is evaluated based on the amount of active points the user has at this instant.
*/
- @JsonAdapter(ProgramJoinPolicyEnum.Adapter.class)
- public enum ProgramJoinPolicyEnum {
- NOT_JOIN("not_join"),
-
- POINTS_ACTIVATED("points_activated"),
+ @JsonAdapter(TiersDowngradePolicyEnum.Adapter.class)
+ public enum TiersDowngradePolicyEnum {
+ ONE_DOWN("one_down"),
- POINTS_EARNED("points_earned");
+ BALANCE_BASED("balance_based");
private String value;
- ProgramJoinPolicyEnum(String value) {
+ TiersDowngradePolicyEnum(String value) {
this.value = value;
}
@@ -195,8 +205,8 @@ public String toString() {
return String.valueOf(value);
}
- public static ProgramJoinPolicyEnum fromValue(String value) {
- for (ProgramJoinPolicyEnum b : ProgramJoinPolicyEnum.values()) {
+ public static TiersDowngradePolicyEnum fromValue(String value) {
+ for (TiersDowngradePolicyEnum b : TiersDowngradePolicyEnum.values()) {
if (b.value.equals(value)) {
return b;
}
@@ -204,23 +214,27 @@ public static ProgramJoinPolicyEnum fromValue(String value) {
throw new IllegalArgumentException("Unexpected value '" + value + "'");
}
- public static class Adapter extends TypeAdapter {
+ public static class Adapter extends TypeAdapter {
@Override
- public void write(final JsonWriter jsonWriter, final ProgramJoinPolicyEnum enumeration) throws IOException {
+ public void write(final JsonWriter jsonWriter, final TiersDowngradePolicyEnum enumeration) throws IOException {
jsonWriter.value(enumeration.getValue());
}
@Override
- public ProgramJoinPolicyEnum read(final JsonReader jsonReader) throws IOException {
+ public TiersDowngradePolicyEnum read(final JsonReader jsonReader) throws IOException {
String value = jsonReader.nextString();
- return ProgramJoinPolicyEnum.fromValue(value);
+ return TiersDowngradePolicyEnum.fromValue(value);
}
}
}
- public static final String SERIALIZED_NAME_PROGRAM_JOIN_POLICY = "programJoinPolicy";
- @SerializedName(SERIALIZED_NAME_PROGRAM_JOIN_POLICY)
- private ProgramJoinPolicyEnum programJoinPolicy;
+ public static final String SERIALIZED_NAME_TIERS_DOWNGRADE_POLICY = "tiersDowngradePolicy";
+ @SerializedName(SERIALIZED_NAME_TIERS_DOWNGRADE_POLICY)
+ private TiersDowngradePolicyEnum tiersDowngradePolicy;
+
+ public static final String SERIALIZED_NAME_CARD_CODE_SETTINGS = "cardCodeSettings";
+ @SerializedName(SERIALIZED_NAME_CARD_CODE_SETTINGS)
+ private CodeGeneratorSettings cardCodeSettings;
public BaseLoyaltyProgram title(String title) {
@@ -416,6 +430,29 @@ public void setSandbox(Boolean sandbox) {
}
+ public BaseLoyaltyProgram programJoinPolicy(ProgramJoinPolicyEnum programJoinPolicy) {
+
+ this.programJoinPolicy = programJoinPolicy;
+ return this;
+ }
+
+ /**
+ * The policy that defines when the customer joins the loyalty program. - `not_join`: The customer does not join the loyalty program but can still earn and spend loyalty points. **Note**: The customer does not have a program join date. - `points_activated`: The customer joins the loyalty program only when their earned loyalty points become active for the first time. - `points_earned`: The customer joins the loyalty program when they earn loyalty points for the first time.
+ * @return programJoinPolicy
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(value = "The policy that defines when the customer joins the loyalty program. - `not_join`: The customer does not join the loyalty program but can still earn and spend loyalty points. **Note**: The customer does not have a program join date. - `points_activated`: The customer joins the loyalty program only when their earned loyalty points become active for the first time. - `points_earned`: The customer joins the loyalty program when they earn loyalty points for the first time. ")
+
+ public ProgramJoinPolicyEnum getProgramJoinPolicy() {
+ return programJoinPolicy;
+ }
+
+
+ public void setProgramJoinPolicy(ProgramJoinPolicyEnum programJoinPolicy) {
+ this.programJoinPolicy = programJoinPolicy;
+ }
+
+
public BaseLoyaltyProgram tiersExpirationPolicy(TiersExpirationPolicyEnum tiersExpirationPolicy) {
this.tiersExpirationPolicy = tiersExpirationPolicy;
@@ -423,11 +460,11 @@ public BaseLoyaltyProgram tiersExpirationPolicy(TiersExpirationPolicyEnum tiersE
}
/**
- * The policy that defines which date is used to calculate the expiration date of a customer's current tier. - `tier_start_date`: The tier expiration date is calculated based on when the customer joined the current tier. - `program_join_date`: The tier expiration date is calculated based on when the customer joined the loyalty program.
+ * The policy that defines which date is used to calculate the expiration date of a customer's current tier. - `tier_start_date`: The tier expiration date is calculated based on when the customer joined the current tier. - `program_join_date`: The tier expiration date is calculated based on when the customer joined the loyalty program. - `customer_attribute`: The tier expiration date is calculated based on a custom customer attribute. - `absolute_expiration`: The tier expires on a specified date and time. **Note**: For absolute expiration, it is required to provide a `tiersStartDate.`
* @return tiersExpirationPolicy
**/
@javax.annotation.Nullable
- @ApiModelProperty(value = "The policy that defines which date is used to calculate the expiration date of a customer's current tier. - `tier_start_date`: The tier expiration date is calculated based on when the customer joined the current tier. - `program_join_date`: The tier expiration date is calculated based on when the customer joined the loyalty program. ")
+ @ApiModelProperty(value = "The policy that defines which date is used to calculate the expiration date of a customer's current tier. - `tier_start_date`: The tier expiration date is calculated based on when the customer joined the current tier. - `program_join_date`: The tier expiration date is calculated based on when the customer joined the loyalty program. - `customer_attribute`: The tier expiration date is calculated based on a custom customer attribute. - `absolute_expiration`: The tier expires on a specified date and time. **Note**: For absolute expiration, it is required to provide a `tiersStartDate.` ")
public TiersExpirationPolicyEnum getTiersExpirationPolicy() {
return tiersExpirationPolicy;
@@ -439,6 +476,29 @@ public void setTiersExpirationPolicy(TiersExpirationPolicyEnum tiersExpirationPo
}
+ public BaseLoyaltyProgram tiersStartDate(OffsetDateTime tiersStartDate) {
+
+ this.tiersStartDate = tiersStartDate;
+ return this;
+ }
+
+ /**
+ * Timestamp at which the tier starts for all customers. **Note**: This is only required when the tier expiration policy is set to `absolute_expiration`.
+ * @return tiersStartDate
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(example = "2021-09-12T10:12:42Z", value = "Timestamp at which the tier starts for all customers. **Note**: This is only required when the tier expiration policy is set to `absolute_expiration`. ")
+
+ public OffsetDateTime getTiersStartDate() {
+ return tiersStartDate;
+ }
+
+
+ public void setTiersStartDate(OffsetDateTime tiersStartDate) {
+ this.tiersStartDate = tiersStartDate;
+ }
+
+
public BaseLoyaltyProgram tiersExpireIn(String tiersExpireIn) {
this.tiersExpireIn = tiersExpireIn;
@@ -485,26 +545,26 @@ public void setTiersDowngradePolicy(TiersDowngradePolicyEnum tiersDowngradePolic
}
- public BaseLoyaltyProgram programJoinPolicy(ProgramJoinPolicyEnum programJoinPolicy) {
+ public BaseLoyaltyProgram cardCodeSettings(CodeGeneratorSettings cardCodeSettings) {
- this.programJoinPolicy = programJoinPolicy;
+ this.cardCodeSettings = cardCodeSettings;
return this;
}
/**
- * The policy that defines when the customer joins the loyalty program. - `not_join`: The customer does not join the loyalty program but can still earn and spend loyalty points. **Note**: The customer does not have a program join date. - `points_activated`: The customer joins the loyalty program only when their earned loyalty points become active for the first time. - `points_earned`: The customer joins the loyalty program when they earn loyalty points for the first time.
- * @return programJoinPolicy
+ * Get cardCodeSettings
+ * @return cardCodeSettings
**/
@javax.annotation.Nullable
- @ApiModelProperty(value = "The policy that defines when the customer joins the loyalty program. - `not_join`: The customer does not join the loyalty program but can still earn and spend loyalty points. **Note**: The customer does not have a program join date. - `points_activated`: The customer joins the loyalty program only when their earned loyalty points become active for the first time. - `points_earned`: The customer joins the loyalty program when they earn loyalty points for the first time. ")
+ @ApiModelProperty(value = "")
- public ProgramJoinPolicyEnum getProgramJoinPolicy() {
- return programJoinPolicy;
+ public CodeGeneratorSettings getCardCodeSettings() {
+ return cardCodeSettings;
}
- public void setProgramJoinPolicy(ProgramJoinPolicyEnum programJoinPolicy) {
- this.programJoinPolicy = programJoinPolicy;
+ public void setCardCodeSettings(CodeGeneratorSettings cardCodeSettings) {
+ this.cardCodeSettings = cardCodeSettings;
}
@@ -525,15 +585,17 @@ public boolean equals(java.lang.Object o) {
Objects.equals(this.allowSubledger, baseLoyaltyProgram.allowSubledger) &&
Objects.equals(this.usersPerCardLimit, baseLoyaltyProgram.usersPerCardLimit) &&
Objects.equals(this.sandbox, baseLoyaltyProgram.sandbox) &&
+ Objects.equals(this.programJoinPolicy, baseLoyaltyProgram.programJoinPolicy) &&
Objects.equals(this.tiersExpirationPolicy, baseLoyaltyProgram.tiersExpirationPolicy) &&
+ Objects.equals(this.tiersStartDate, baseLoyaltyProgram.tiersStartDate) &&
Objects.equals(this.tiersExpireIn, baseLoyaltyProgram.tiersExpireIn) &&
Objects.equals(this.tiersDowngradePolicy, baseLoyaltyProgram.tiersDowngradePolicy) &&
- Objects.equals(this.programJoinPolicy, baseLoyaltyProgram.programJoinPolicy);
+ Objects.equals(this.cardCodeSettings, baseLoyaltyProgram.cardCodeSettings);
}
@Override
public int hashCode() {
- return Objects.hash(title, description, subscribedApplications, defaultValidity, defaultPending, allowSubledger, usersPerCardLimit, sandbox, tiersExpirationPolicy, tiersExpireIn, tiersDowngradePolicy, programJoinPolicy);
+ return Objects.hash(title, description, subscribedApplications, defaultValidity, defaultPending, allowSubledger, usersPerCardLimit, sandbox, programJoinPolicy, tiersExpirationPolicy, tiersStartDate, tiersExpireIn, tiersDowngradePolicy, cardCodeSettings);
}
@@ -549,10 +611,12 @@ public String toString() {
sb.append(" allowSubledger: ").append(toIndentedString(allowSubledger)).append("\n");
sb.append(" usersPerCardLimit: ").append(toIndentedString(usersPerCardLimit)).append("\n");
sb.append(" sandbox: ").append(toIndentedString(sandbox)).append("\n");
+ sb.append(" programJoinPolicy: ").append(toIndentedString(programJoinPolicy)).append("\n");
sb.append(" tiersExpirationPolicy: ").append(toIndentedString(tiersExpirationPolicy)).append("\n");
+ sb.append(" tiersStartDate: ").append(toIndentedString(tiersStartDate)).append("\n");
sb.append(" tiersExpireIn: ").append(toIndentedString(tiersExpireIn)).append("\n");
sb.append(" tiersDowngradePolicy: ").append(toIndentedString(tiersDowngradePolicy)).append("\n");
- sb.append(" programJoinPolicy: ").append(toIndentedString(programJoinPolicy)).append("\n");
+ sb.append(" cardCodeSettings: ").append(toIndentedString(cardCodeSettings)).append("\n");
sb.append("}");
return sb.toString();
}
diff --git a/src/main/java/one/talon/model/BaseNotification.java b/src/main/java/one/talon/model/BaseNotification.java
index b778831..deea1b0 100644
--- a/src/main/java/one/talon/model/BaseNotification.java
+++ b/src/main/java/one/talon/model/BaseNotification.java
@@ -56,6 +56,8 @@ public enum TypeEnum {
LOYALTY_ADDED_DEDUCTED_POINTS("loyalty_added_deducted_points"),
+ CARD_ADDED_DEDUCTED_POINTS("card_added_deducted_points"),
+
COUPON("coupon"),
EXPIRING_COUPONS("expiring_coupons"),
@@ -124,10 +126,10 @@ public BaseNotification policy(Object policy) {
}
/**
- * Get policy
+ * Indicates which notification properties to apply.
* @return policy
**/
- @ApiModelProperty(required = true, value = "")
+ @ApiModelProperty(required = true, value = "Indicates which notification properties to apply.")
public Object getPolicy() {
return policy;
diff --git a/src/main/java/one/talon/model/BaseNotificationEntity.java b/src/main/java/one/talon/model/BaseNotificationEntity.java
index eea9b56..cc98254 100644
--- a/src/main/java/one/talon/model/BaseNotificationEntity.java
+++ b/src/main/java/one/talon/model/BaseNotificationEntity.java
@@ -45,10 +45,10 @@ public BaseNotificationEntity policy(Object policy) {
}
/**
- * Get policy
+ * Indicates which notification properties to apply.
* @return policy
**/
- @ApiModelProperty(required = true, value = "")
+ @ApiModelProperty(required = true, value = "Indicates which notification properties to apply.")
public Object getPolicy() {
return policy;
diff --git a/src/main/java/one/talon/model/Campaign.java b/src/main/java/one/talon/model/Campaign.java
index eefb8d2..2b7eab8 100644
--- a/src/main/java/one/talon/model/Campaign.java
+++ b/src/main/java/one/talon/model/Campaign.java
@@ -407,6 +407,10 @@ public FrontendStateEnum read(final JsonReader jsonReader) throws IOException {
@SerializedName(SERIALIZED_NAME_FRONTEND_STATE)
private FrontendStateEnum frontendState;
+ public static final String SERIALIZED_NAME_STORES_IMPORTED = "storesImported";
+ @SerializedName(SERIALIZED_NAME_STORES_IMPORTED)
+ private Boolean storesImported;
+
public Campaign id(Integer id) {
@@ -1374,6 +1378,28 @@ public void setFrontendState(FrontendStateEnum frontendState) {
}
+ public Campaign storesImported(Boolean storesImported) {
+
+ this.storesImported = storesImported;
+ return this;
+ }
+
+ /**
+ * Indicates whether the linked stores were imported via a CSV file.
+ * @return storesImported
+ **/
+ @ApiModelProperty(example = "true", required = true, value = "Indicates whether the linked stores were imported via a CSV file.")
+
+ public Boolean getStoresImported() {
+ return storesImported;
+ }
+
+
+ public void setStoresImported(Boolean storesImported) {
+ this.storesImported = storesImported;
+ }
+
+
@Override
public boolean equals(java.lang.Object o) {
if (this == o) {
@@ -1423,12 +1449,13 @@ public boolean equals(java.lang.Object o) {
Objects.equals(this.createdBy, campaign.createdBy) &&
Objects.equals(this.updatedBy, campaign.updatedBy) &&
Objects.equals(this.templateId, campaign.templateId) &&
- Objects.equals(this.frontendState, campaign.frontendState);
+ Objects.equals(this.frontendState, campaign.frontendState) &&
+ Objects.equals(this.storesImported, campaign.storesImported);
}
@Override
public int hashCode() {
- return Objects.hash(id, created, applicationId, userId, name, description, startTime, endTime, attributes, state, activeRulesetId, tags, features, couponSettings, referralSettings, limits, campaignGroups, type, linkedStoreIds, budgets, couponRedemptionCount, referralRedemptionCount, discountCount, discountEffectCount, couponCreationCount, customEffectCount, referralCreationCount, addFreeItemEffectCount, awardedGiveawaysCount, createdLoyaltyPointsCount, createdLoyaltyPointsEffectCount, redeemedLoyaltyPointsCount, redeemedLoyaltyPointsEffectCount, callApiEffectCount, reservecouponEffectCount, lastActivity, updated, createdBy, updatedBy, templateId, frontendState);
+ return Objects.hash(id, created, applicationId, userId, name, description, startTime, endTime, attributes, state, activeRulesetId, tags, features, couponSettings, referralSettings, limits, campaignGroups, type, linkedStoreIds, budgets, couponRedemptionCount, referralRedemptionCount, discountCount, discountEffectCount, couponCreationCount, customEffectCount, referralCreationCount, addFreeItemEffectCount, awardedGiveawaysCount, createdLoyaltyPointsCount, createdLoyaltyPointsEffectCount, redeemedLoyaltyPointsCount, redeemedLoyaltyPointsEffectCount, callApiEffectCount, reservecouponEffectCount, lastActivity, updated, createdBy, updatedBy, templateId, frontendState, storesImported);
}
@@ -1477,6 +1504,7 @@ public String toString() {
sb.append(" updatedBy: ").append(toIndentedString(updatedBy)).append("\n");
sb.append(" templateId: ").append(toIndentedString(templateId)).append("\n");
sb.append(" frontendState: ").append(toIndentedString(frontendState)).append("\n");
+ sb.append(" storesImported: ").append(toIndentedString(storesImported)).append("\n");
sb.append("}");
return sb.toString();
}
diff --git a/src/main/java/one/talon/model/CampaignNotificationPolicy.java b/src/main/java/one/talon/model/CampaignNotificationPolicy.java
index 1822a31..e52d307 100644
--- a/src/main/java/one/talon/model/CampaignNotificationPolicy.java
+++ b/src/main/java/one/talon/model/CampaignNotificationPolicy.java
@@ -33,6 +33,10 @@ public class CampaignNotificationPolicy {
@SerializedName(SERIALIZED_NAME_NAME)
private String name;
+ public static final String SERIALIZED_NAME_BATCHING_ENABLED = "batchingEnabled";
+ @SerializedName(SERIALIZED_NAME_BATCHING_ENABLED)
+ private Boolean batchingEnabled = true;
+
public CampaignNotificationPolicy name(String name) {
@@ -56,6 +60,29 @@ public void setName(String name) {
}
+ public CampaignNotificationPolicy batchingEnabled(Boolean batchingEnabled) {
+
+ this.batchingEnabled = batchingEnabled;
+ return this;
+ }
+
+ /**
+ * Indicates whether batching is activated.
+ * @return batchingEnabled
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(example = "false", value = "Indicates whether batching is activated.")
+
+ public Boolean getBatchingEnabled() {
+ return batchingEnabled;
+ }
+
+
+ public void setBatchingEnabled(Boolean batchingEnabled) {
+ this.batchingEnabled = batchingEnabled;
+ }
+
+
@Override
public boolean equals(java.lang.Object o) {
if (this == o) {
@@ -65,12 +92,13 @@ public boolean equals(java.lang.Object o) {
return false;
}
CampaignNotificationPolicy campaignNotificationPolicy = (CampaignNotificationPolicy) o;
- return Objects.equals(this.name, campaignNotificationPolicy.name);
+ return Objects.equals(this.name, campaignNotificationPolicy.name) &&
+ Objects.equals(this.batchingEnabled, campaignNotificationPolicy.batchingEnabled);
}
@Override
public int hashCode() {
- return Objects.hash(name);
+ return Objects.hash(name, batchingEnabled);
}
@@ -79,6 +107,7 @@ public String toString() {
StringBuilder sb = new StringBuilder();
sb.append("class CampaignNotificationPolicy {\n");
sb.append(" name: ").append(toIndentedString(name)).append("\n");
+ sb.append(" batchingEnabled: ").append(toIndentedString(batchingEnabled)).append("\n");
sb.append("}");
return sb.toString();
}
diff --git a/src/main/java/one/talon/model/CardAddedDeductedPointsNotificationPolicy.java b/src/main/java/one/talon/model/CardAddedDeductedPointsNotificationPolicy.java
new file mode 100644
index 0000000..d306da9
--- /dev/null
+++ b/src/main/java/one/talon/model/CardAddedDeductedPointsNotificationPolicy.java
@@ -0,0 +1,184 @@
+/*
+ * Talon.One API
+ * Use the Talon.One API to integrate with your application and to manage applications and campaigns: - Use the operations in the [Integration API section](#integration-api) are used to integrate with our platform - Use the operation in the [Management API section](#management-api) to manage applications and campaigns. ## Determining the base URL of the endpoints The API is available at the same hostname as your Campaign Manager deployment. For example, if you access the Campaign Manager at `https://yourbaseurl.talon.one/`, the URL for the [updateCustomerSessionV2](https://docs.talon.one/integration-api#operation/updateCustomerSessionV2) endpoint is `https://yourbaseurl.talon.one/v2/customer_sessions/{Id}`
+ *
+ * The version of the OpenAPI document:
+ *
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+
+package one.talon.model;
+
+import java.util.Objects;
+import java.util.Arrays;
+import com.google.gson.TypeAdapter;
+import com.google.gson.annotations.JsonAdapter;
+import com.google.gson.annotations.SerializedName;
+import com.google.gson.stream.JsonReader;
+import com.google.gson.stream.JsonWriter;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * CardAddedDeductedPointsNotificationPolicy
+ */
+
+public class CardAddedDeductedPointsNotificationPolicy {
+ public static final String SERIALIZED_NAME_NAME = "name";
+ @SerializedName(SERIALIZED_NAME_NAME)
+ private String name;
+
+ /**
+ * Gets or Sets scopes
+ */
+ @JsonAdapter(ScopesEnum.Adapter.class)
+ public enum ScopesEnum {
+ ALL("all"),
+
+ CAMPAIGN_MANAGER("campaign_manager"),
+
+ MANAGEMENT_API("management_api"),
+
+ RULE_ENGINE("rule_engine");
+
+ private String value;
+
+ ScopesEnum(String value) {
+ this.value = value;
+ }
+
+ public String getValue() {
+ return value;
+ }
+
+ @Override
+ public String toString() {
+ return String.valueOf(value);
+ }
+
+ public static ScopesEnum fromValue(String value) {
+ for (ScopesEnum b : ScopesEnum.values()) {
+ if (b.value.equals(value)) {
+ return b;
+ }
+ }
+ throw new IllegalArgumentException("Unexpected value '" + value + "'");
+ }
+
+ public static class Adapter extends TypeAdapter {
+ @Override
+ public void write(final JsonWriter jsonWriter, final ScopesEnum enumeration) throws IOException {
+ jsonWriter.value(enumeration.getValue());
+ }
+
+ @Override
+ public ScopesEnum read(final JsonReader jsonReader) throws IOException {
+ String value = jsonReader.nextString();
+ return ScopesEnum.fromValue(value);
+ }
+ }
+ }
+
+ public static final String SERIALIZED_NAME_SCOPES = "scopes";
+ @SerializedName(SERIALIZED_NAME_SCOPES)
+ private List scopes = new ArrayList();
+
+
+ public CardAddedDeductedPointsNotificationPolicy name(String name) {
+
+ this.name = name;
+ return this;
+ }
+
+ /**
+ * Notification name.
+ * @return name
+ **/
+ @ApiModelProperty(example = "Christmas Sale", required = true, value = "Notification name.")
+
+ public String getName() {
+ return name;
+ }
+
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+
+ public CardAddedDeductedPointsNotificationPolicy scopes(List scopes) {
+
+ this.scopes = scopes;
+ return this;
+ }
+
+ public CardAddedDeductedPointsNotificationPolicy addScopesItem(ScopesEnum scopesItem) {
+ this.scopes.add(scopesItem);
+ return this;
+ }
+
+ /**
+ * Get scopes
+ * @return scopes
+ **/
+ @ApiModelProperty(required = true, value = "")
+
+ public List getScopes() {
+ return scopes;
+ }
+
+
+ public void setScopes(List scopes) {
+ this.scopes = scopes;
+ }
+
+
+ @Override
+ public boolean equals(java.lang.Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ CardAddedDeductedPointsNotificationPolicy cardAddedDeductedPointsNotificationPolicy = (CardAddedDeductedPointsNotificationPolicy) o;
+ return Objects.equals(this.name, cardAddedDeductedPointsNotificationPolicy.name) &&
+ Objects.equals(this.scopes, cardAddedDeductedPointsNotificationPolicy.scopes);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(name, scopes);
+ }
+
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class CardAddedDeductedPointsNotificationPolicy {\n");
+ sb.append(" name: ").append(toIndentedString(name)).append("\n");
+ sb.append(" scopes: ").append(toIndentedString(scopes)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+
+}
+
diff --git a/src/main/java/one/talon/model/CartItem.java b/src/main/java/one/talon/model/CartItem.java
index bccf1bd..2767df0 100644
--- a/src/main/java/one/talon/model/CartItem.java
+++ b/src/main/java/one/talon/model/CartItem.java
@@ -29,14 +29,11 @@
import java.util.Map;
import one.talon.model.AdditionalCost;
import one.talon.model.Product;
-import one.talon.custom.JsonNullable;
-import one.talon.custom.NullableAdapterFactory;
/**
* CartItem
*/
-@JsonAdapter(NullableAdapterFactory.class)
public class CartItem {
public static final String SERIALIZED_NAME_NAME = "name";
@SerializedName(SERIALIZED_NAME_NAME)
@@ -92,8 +89,6 @@ public class CartItem {
public static final String SERIALIZED_NAME_ATTRIBUTES = "attributes";
@SerializedName(SERIALIZED_NAME_ATTRIBUTES)
- /*allow Serializing null for this field */
- @JsonNullable
private Object attributes;
public static final String SERIALIZED_NAME_ADDITIONAL_COSTS = "additionalCosts";
diff --git a/src/main/java/one/talon/model/CodeGeneratorSettings.java b/src/main/java/one/talon/model/CodeGeneratorSettings.java
index 5ceb170..7ddfb7e 100644
--- a/src/main/java/one/talon/model/CodeGeneratorSettings.java
+++ b/src/main/java/one/talon/model/CodeGeneratorSettings.java
@@ -74,10 +74,10 @@ public CodeGeneratorSettings couponPattern(String couponPattern) {
}
/**
- * The pattern used to generate coupon codes. The character `#` is a placeholder and is replaced by a random character from the `validCharacters` set.
+ * The pattern used to generate codes, such as coupon codes, referral codes, and loyalty cards. The character `#` is a placeholder and is replaced by a random character from the `validCharacters` set.
* @return couponPattern
**/
- @ApiModelProperty(example = "SUMMER-####-####", required = true, value = "The pattern used to generate coupon codes. The character `#` is a placeholder and is replaced by a random character from the `validCharacters` set. ")
+ @ApiModelProperty(example = "SUMMER-####-####", required = true, value = "The pattern used to generate codes, such as coupon codes, referral codes, and loyalty cards. The character `#` is a placeholder and is replaced by a random character from the `validCharacters` set. ")
public String getCouponPattern() {
return couponPattern;
diff --git a/src/main/java/one/talon/model/CustomerProfileIntegrationRequestV2.java b/src/main/java/one/talon/model/CustomerProfileIntegrationRequestV2.java
index 9856c65..9c9a16f 100644
--- a/src/main/java/one/talon/model/CustomerProfileIntegrationRequestV2.java
+++ b/src/main/java/one/talon/model/CustomerProfileIntegrationRequestV2.java
@@ -26,20 +26,15 @@
import java.util.ArrayList;
import java.util.List;
import one.talon.model.ProfileAudiencesChanges;
-import one.talon.custom.JsonNullable;
-import one.talon.custom.NullableAdapterFactory;
/**
*
*/
@ApiModel(description = "")
-@JsonAdapter(NullableAdapterFactory.class)
public class CustomerProfileIntegrationRequestV2 {
public static final String SERIALIZED_NAME_ATTRIBUTES = "attributes";
@SerializedName(SERIALIZED_NAME_ATTRIBUTES)
- /*allow Serializing null for this field */
- @JsonNullable
private Object attributes;
public static final String SERIALIZED_NAME_EVALUABLE_CAMPAIGN_IDS = "evaluableCampaignIds";
diff --git a/src/main/java/one/talon/model/Effect.java b/src/main/java/one/talon/model/Effect.java
index 2f878ad..a04f81c 100644
--- a/src/main/java/one/talon/model/Effect.java
+++ b/src/main/java/one/talon/model/Effect.java
@@ -62,6 +62,14 @@ public class Effect {
@SerializedName(SERIALIZED_NAME_CONDITION_INDEX)
private Integer conditionIndex;
+ public static final String SERIALIZED_NAME_EVALUATION_GROUP_I_D = "evaluationGroupID";
+ @SerializedName(SERIALIZED_NAME_EVALUATION_GROUP_I_D)
+ private Integer evaluationGroupID;
+
+ public static final String SERIALIZED_NAME_EVALUATION_GROUP_MODE = "evaluationGroupMode";
+ @SerializedName(SERIALIZED_NAME_EVALUATION_GROUP_MODE)
+ private String evaluationGroupMode;
+
public static final String SERIALIZED_NAME_PROPS = "props";
@SerializedName(SERIALIZED_NAME_PROPS)
private Object props;
@@ -246,6 +254,52 @@ public void setConditionIndex(Integer conditionIndex) {
}
+ public Effect evaluationGroupID(Integer evaluationGroupID) {
+
+ this.evaluationGroupID = evaluationGroupID;
+ return this;
+ }
+
+ /**
+ * The ID of the evaluation group. For more information, see [Managing campaign evaluation](https://docs.talon.one/docs/product/applications/managing-campaign-evaluation).
+ * @return evaluationGroupID
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(example = "3", value = "The ID of the evaluation group. For more information, see [Managing campaign evaluation](https://docs.talon.one/docs/product/applications/managing-campaign-evaluation).")
+
+ public Integer getEvaluationGroupID() {
+ return evaluationGroupID;
+ }
+
+
+ public void setEvaluationGroupID(Integer evaluationGroupID) {
+ this.evaluationGroupID = evaluationGroupID;
+ }
+
+
+ public Effect evaluationGroupMode(String evaluationGroupMode) {
+
+ this.evaluationGroupMode = evaluationGroupMode;
+ return this;
+ }
+
+ /**
+ * The evaluation mode of the evaluation group. For more information, see [Managing campaign evaluation](https://docs.talon.one/docs/product/applications/managing-campaign-evaluation).
+ * @return evaluationGroupMode
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(example = "stackable", value = "The evaluation mode of the evaluation group. For more information, see [Managing campaign evaluation](https://docs.talon.one/docs/product/applications/managing-campaign-evaluation).")
+
+ public String getEvaluationGroupMode() {
+ return evaluationGroupMode;
+ }
+
+
+ public void setEvaluationGroupMode(String evaluationGroupMode) {
+ this.evaluationGroupMode = evaluationGroupMode;
+ }
+
+
public Effect props(Object props) {
this.props = props;
@@ -285,12 +339,14 @@ public boolean equals(java.lang.Object o) {
Objects.equals(this.triggeredByCoupon, effect.triggeredByCoupon) &&
Objects.equals(this.triggeredForCatalogItem, effect.triggeredForCatalogItem) &&
Objects.equals(this.conditionIndex, effect.conditionIndex) &&
+ Objects.equals(this.evaluationGroupID, effect.evaluationGroupID) &&
+ Objects.equals(this.evaluationGroupMode, effect.evaluationGroupMode) &&
Objects.equals(this.props, effect.props);
}
@Override
public int hashCode() {
- return Objects.hash(campaignId, rulesetId, ruleIndex, ruleName, effectType, triggeredByCoupon, triggeredForCatalogItem, conditionIndex, props);
+ return Objects.hash(campaignId, rulesetId, ruleIndex, ruleName, effectType, triggeredByCoupon, triggeredForCatalogItem, conditionIndex, evaluationGroupID, evaluationGroupMode, props);
}
@@ -306,6 +362,8 @@ public String toString() {
sb.append(" triggeredByCoupon: ").append(toIndentedString(triggeredByCoupon)).append("\n");
sb.append(" triggeredForCatalogItem: ").append(toIndentedString(triggeredForCatalogItem)).append("\n");
sb.append(" conditionIndex: ").append(toIndentedString(conditionIndex)).append("\n");
+ sb.append(" evaluationGroupID: ").append(toIndentedString(evaluationGroupID)).append("\n");
+ sb.append(" evaluationGroupMode: ").append(toIndentedString(evaluationGroupMode)).append("\n");
sb.append(" props: ").append(toIndentedString(props)).append("\n");
sb.append("}");
return sb.toString();
diff --git a/src/main/java/one/talon/model/EffectEntity.java b/src/main/java/one/talon/model/EffectEntity.java
index f12a950..8796743 100644
--- a/src/main/java/one/talon/model/EffectEntity.java
+++ b/src/main/java/one/talon/model/EffectEntity.java
@@ -62,6 +62,14 @@ public class EffectEntity {
@SerializedName(SERIALIZED_NAME_CONDITION_INDEX)
private Integer conditionIndex;
+ public static final String SERIALIZED_NAME_EVALUATION_GROUP_I_D = "evaluationGroupID";
+ @SerializedName(SERIALIZED_NAME_EVALUATION_GROUP_I_D)
+ private Integer evaluationGroupID;
+
+ public static final String SERIALIZED_NAME_EVALUATION_GROUP_MODE = "evaluationGroupMode";
+ @SerializedName(SERIALIZED_NAME_EVALUATION_GROUP_MODE)
+ private String evaluationGroupMode;
+
public EffectEntity campaignId(Integer campaignId) {
@@ -242,6 +250,52 @@ public void setConditionIndex(Integer conditionIndex) {
}
+ public EffectEntity evaluationGroupID(Integer evaluationGroupID) {
+
+ this.evaluationGroupID = evaluationGroupID;
+ return this;
+ }
+
+ /**
+ * The ID of the evaluation group. For more information, see [Managing campaign evaluation](https://docs.talon.one/docs/product/applications/managing-campaign-evaluation).
+ * @return evaluationGroupID
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(example = "3", value = "The ID of the evaluation group. For more information, see [Managing campaign evaluation](https://docs.talon.one/docs/product/applications/managing-campaign-evaluation).")
+
+ public Integer getEvaluationGroupID() {
+ return evaluationGroupID;
+ }
+
+
+ public void setEvaluationGroupID(Integer evaluationGroupID) {
+ this.evaluationGroupID = evaluationGroupID;
+ }
+
+
+ public EffectEntity evaluationGroupMode(String evaluationGroupMode) {
+
+ this.evaluationGroupMode = evaluationGroupMode;
+ return this;
+ }
+
+ /**
+ * The evaluation mode of the evaluation group. For more information, see [Managing campaign evaluation](https://docs.talon.one/docs/product/applications/managing-campaign-evaluation).
+ * @return evaluationGroupMode
+ **/
+ @javax.annotation.Nullable
+ @ApiModelProperty(example = "stackable", value = "The evaluation mode of the evaluation group. For more information, see [Managing campaign evaluation](https://docs.talon.one/docs/product/applications/managing-campaign-evaluation).")
+
+ public String getEvaluationGroupMode() {
+ return evaluationGroupMode;
+ }
+
+
+ public void setEvaluationGroupMode(String evaluationGroupMode) {
+ this.evaluationGroupMode = evaluationGroupMode;
+ }
+
+
@Override
public boolean equals(java.lang.Object o) {
if (this == o) {
@@ -258,12 +312,14 @@ public boolean equals(java.lang.Object o) {
Objects.equals(this.effectType, effectEntity.effectType) &&
Objects.equals(this.triggeredByCoupon, effectEntity.triggeredByCoupon) &&
Objects.equals(this.triggeredForCatalogItem, effectEntity.triggeredForCatalogItem) &&
- Objects.equals(this.conditionIndex, effectEntity.conditionIndex);
+ Objects.equals(this.conditionIndex, effectEntity.conditionIndex) &&
+ Objects.equals(this.evaluationGroupID, effectEntity.evaluationGroupID) &&
+ Objects.equals(this.evaluationGroupMode, effectEntity.evaluationGroupMode);
}
@Override
public int hashCode() {
- return Objects.hash(campaignId, rulesetId, ruleIndex, ruleName, effectType, triggeredByCoupon, triggeredForCatalogItem, conditionIndex);
+ return Objects.hash(campaignId, rulesetId, ruleIndex, ruleName, effectType, triggeredByCoupon, triggeredForCatalogItem, conditionIndex, evaluationGroupID, evaluationGroupMode);
}
@@ -279,6 +335,8 @@ public String toString() {
sb.append(" triggeredByCoupon: ").append(toIndentedString(triggeredByCoupon)).append("\n");
sb.append(" triggeredForCatalogItem: ").append(toIndentedString(triggeredForCatalogItem)).append("\n");
sb.append(" conditionIndex: ").append(toIndentedString(conditionIndex)).append("\n");
+ sb.append(" evaluationGroupID: ").append(toIndentedString(evaluationGroupID)).append("\n");
+ sb.append(" evaluationGroupMode: ").append(toIndentedString(evaluationGroupMode)).append("\n");
sb.append("}");
return sb.toString();
}
diff --git a/src/main/java/one/talon/model/GenerateCampaignDescription.java b/src/main/java/one/talon/model/GenerateCampaignDescription.java
new file mode 100644
index 0000000..ae05a2f
--- /dev/null
+++ b/src/main/java/one/talon/model/GenerateCampaignDescription.java
@@ -0,0 +1,126 @@
+/*
+ * Talon.One API
+ * Use the Talon.One API to integrate with your application and to manage applications and campaigns: - Use the operations in the [Integration API section](#integration-api) are used to integrate with our platform - Use the operation in the [Management API section](#management-api) to manage applications and campaigns. ## Determining the base URL of the endpoints The API is available at the same hostname as your Campaign Manager deployment. For example, if you access the Campaign Manager at `https://yourbaseurl.talon.one/`, the URL for the [updateCustomerSessionV2](https://docs.talon.one/integration-api#operation/updateCustomerSessionV2) endpoint is `https://yourbaseurl.talon.one/v2/customer_sessions/{Id}`
+ *
+ * The version of the OpenAPI document:
+ *
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+
+package one.talon.model;
+
+import java.util.Objects;
+import java.util.Arrays;
+import com.google.gson.TypeAdapter;
+import com.google.gson.annotations.JsonAdapter;
+import com.google.gson.annotations.SerializedName;
+import com.google.gson.stream.JsonReader;
+import com.google.gson.stream.JsonWriter;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.io.IOException;
+
+/**
+ * GenerateCampaignDescription
+ */
+
+public class GenerateCampaignDescription {
+ public static final String SERIALIZED_NAME_CAMPAIGN_I_D = "campaignID";
+ @SerializedName(SERIALIZED_NAME_CAMPAIGN_I_D)
+ private Integer campaignID;
+
+ public static final String SERIALIZED_NAME_CURRENCY = "currency";
+ @SerializedName(SERIALIZED_NAME_CURRENCY)
+ private String currency;
+
+
+ public GenerateCampaignDescription campaignID(Integer campaignID) {
+
+ this.campaignID = campaignID;
+ return this;
+ }
+
+ /**
+ * ID of the campaign.
+ * @return campaignID
+ **/
+ @ApiModelProperty(required = true, value = "ID of the campaign.")
+
+ public Integer getCampaignID() {
+ return campaignID;
+ }
+
+
+ public void setCampaignID(Integer campaignID) {
+ this.campaignID = campaignID;
+ }
+
+
+ public GenerateCampaignDescription currency(String currency) {
+
+ this.currency = currency;
+ return this;
+ }
+
+ /**
+ * Currency for the campaign.
+ * @return currency
+ **/
+ @ApiModelProperty(required = true, value = "Currency for the campaign.")
+
+ public String getCurrency() {
+ return currency;
+ }
+
+
+ public void setCurrency(String currency) {
+ this.currency = currency;
+ }
+
+
+ @Override
+ public boolean equals(java.lang.Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ GenerateCampaignDescription generateCampaignDescription = (GenerateCampaignDescription) o;
+ return Objects.equals(this.campaignID, generateCampaignDescription.campaignID) &&
+ Objects.equals(this.currency, generateCampaignDescription.currency);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(campaignID, currency);
+ }
+
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class GenerateCampaignDescription {\n");
+ sb.append(" campaignID: ").append(toIndentedString(campaignID)).append("\n");
+ sb.append(" currency: ").append(toIndentedString(currency)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+
+}
+
diff --git a/src/main/java/one/talon/model/GenerateCampaignTags.java b/src/main/java/one/talon/model/GenerateCampaignTags.java
new file mode 100644
index 0000000..43cabe5
--- /dev/null
+++ b/src/main/java/one/talon/model/GenerateCampaignTags.java
@@ -0,0 +1,98 @@
+/*
+ * Talon.One API
+ * Use the Talon.One API to integrate with your application and to manage applications and campaigns: - Use the operations in the [Integration API section](#integration-api) are used to integrate with our platform - Use the operation in the [Management API section](#management-api) to manage applications and campaigns. ## Determining the base URL of the endpoints The API is available at the same hostname as your Campaign Manager deployment. For example, if you access the Campaign Manager at `https://yourbaseurl.talon.one/`, the URL for the [updateCustomerSessionV2](https://docs.talon.one/integration-api#operation/updateCustomerSessionV2) endpoint is `https://yourbaseurl.talon.one/v2/customer_sessions/{Id}`
+ *
+ * The version of the OpenAPI document:
+ *
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+
+package one.talon.model;
+
+import java.util.Objects;
+import java.util.Arrays;
+import com.google.gson.TypeAdapter;
+import com.google.gson.annotations.JsonAdapter;
+import com.google.gson.annotations.SerializedName;
+import com.google.gson.stream.JsonReader;
+import com.google.gson.stream.JsonWriter;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.io.IOException;
+
+/**
+ * GenerateCampaignTags
+ */
+
+public class GenerateCampaignTags {
+ public static final String SERIALIZED_NAME_CAMPAIGN_I_D = "campaignID";
+ @SerializedName(SERIALIZED_NAME_CAMPAIGN_I_D)
+ private Integer campaignID;
+
+
+ public GenerateCampaignTags campaignID(Integer campaignID) {
+
+ this.campaignID = campaignID;
+ return this;
+ }
+
+ /**
+ * ID of the campaign.
+ * @return campaignID
+ **/
+ @ApiModelProperty(required = true, value = "ID of the campaign.")
+
+ public Integer getCampaignID() {
+ return campaignID;
+ }
+
+
+ public void setCampaignID(Integer campaignID) {
+ this.campaignID = campaignID;
+ }
+
+
+ @Override
+ public boolean equals(java.lang.Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ GenerateCampaignTags generateCampaignTags = (GenerateCampaignTags) o;
+ return Objects.equals(this.campaignID, generateCampaignTags.campaignID);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(campaignID);
+ }
+
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("class GenerateCampaignTags {\n");
+ sb.append(" campaignID: ").append(toIndentedString(campaignID)).append("\n");
+ sb.append("}");
+ return sb.toString();
+ }
+
+ /**
+ * Convert the given object to string with each line indented by 4 spaces
+ * (except the first line).
+ */
+ private String toIndentedString(java.lang.Object o) {
+ if (o == null) {
+ return "null";
+ }
+ return o.toString().replace("\n", "\n ");
+ }
+
+}
+
diff --git a/src/main/java/one/talon/model/GenerateItemFilterDescription.java b/src/main/java/one/talon/model/GenerateItemFilterDescription.java
new file mode 100644
index 0000000..f6070c1
--- /dev/null
+++ b/src/main/java/one/talon/model/GenerateItemFilterDescription.java
@@ -0,0 +1,105 @@
+/*
+ * Talon.One API
+ * Use the Talon.One API to integrate with your application and to manage applications and campaigns: - Use the operations in the [Integration API section](#integration-api) are used to integrate with our platform - Use the operation in the [Management API section](#management-api) to manage applications and campaigns. ## Determining the base URL of the endpoints The API is available at the same hostname as your Campaign Manager deployment. For example, if you access the Campaign Manager at `https://yourbaseurl.talon.one/`, the URL for the [updateCustomerSessionV2](https://docs.talon.one/integration-api#operation/updateCustomerSessionV2) endpoint is `https://yourbaseurl.talon.one/v2/customer_sessions/{Id}`
+ *
+ * The version of the OpenAPI document:
+ *
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+
+package one.talon.model;
+
+import java.util.Objects;
+import java.util.Arrays;
+import com.google.gson.TypeAdapter;
+import com.google.gson.annotations.JsonAdapter;
+import com.google.gson.annotations.SerializedName;
+import com.google.gson.stream.JsonReader;
+import com.google.gson.stream.JsonWriter;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * GenerateItemFilterDescription
+ */
+
+public class GenerateItemFilterDescription {
+ public static final String SERIALIZED_NAME_ITEM_FILTER = "itemFilter";
+ @SerializedName(SERIALIZED_NAME_ITEM_FILTER)
+ private List