diff --git a/README.md b/README.md index c840cc1..78b332d 100644 --- a/README.md +++ b/README.md @@ -35,7 +35,7 @@ Add this dependency to your project's POM: one.talon talon-one-client - 14.1.0 + 99.99.99 compile ``` @@ -45,7 +45,7 @@ Add this dependency to your project's POM: Add this dependency to your project's build file: ```groovy -compile "one.talon:talon-one-client:14.1.0" +compile "one.talon:talon-one-client:99.99.99" ``` ### Others @@ -254,6 +254,7 @@ Class | Method | HTTP request | Description *ManagementApi* | [**deleteCoupon**](docs/ManagementApi.md#deleteCoupon) | **DELETE** /v1/applications/{applicationId}/campaigns/{campaignId}/coupons/{couponId} | Delete coupon *ManagementApi* | [**deleteCoupons**](docs/ManagementApi.md#deleteCoupons) | **DELETE** /v1/applications/{applicationId}/campaigns/{campaignId}/coupons | Delete coupons *ManagementApi* | [**deleteLoyaltyCard**](docs/ManagementApi.md#deleteLoyaltyCard) | **DELETE** /v1/loyalty_programs/{loyaltyProgramId}/cards/{loyaltyCardId} | Delete loyalty card +*ManagementApi* | [**deletePrismaticFlow**](docs/ManagementApi.md#deletePrismaticFlow) | **DELETE** /v1/prismatic/flow | de-registers a prismatic flow for an event *ManagementApi* | [**deleteReferral**](docs/ManagementApi.md#deleteReferral) | **DELETE** /v1/applications/{applicationId}/campaigns/{campaignId}/referrals/{referralId} | Delete referral *ManagementApi* | [**deleteStore**](docs/ManagementApi.md#deleteStore) | **DELETE** /v1/applications/{applicationId}/stores/{storeId} | Delete store *ManagementApi* | [**deleteUser**](docs/ManagementApi.md#deleteUser) | **DELETE** /v1/users/{userId} | Delete user @@ -362,6 +363,7 @@ Class | Method | HTTP request | Description *ManagementApi* | [**listCollectionsInApplication**](docs/ManagementApi.md#listCollectionsInApplication) | **GET** /v1/applications/{applicationId}/collections | List collections in Application *ManagementApi* | [**listStores**](docs/ManagementApi.md#listStores) | **GET** /v1/applications/{applicationId}/stores | List stores *ManagementApi* | [**oktaEventHandlerChallenge**](docs/ManagementApi.md#oktaEventHandlerChallenge) | **GET** /v1/provisioning/okta | Validate Okta API ownership +*ManagementApi* | [**postPrismaticFlow**](docs/ManagementApi.md#postPrismaticFlow) | **POST** /v1/prismatic/flow | registers a prismatic flow for an event *ManagementApi* | [**removeLoyaltyPoints**](docs/ManagementApi.md#removeLoyaltyPoints) | **PUT** /v1/loyalty_programs/{loyaltyProgramId}/profile/{integrationId}/deduct_points | Deduct points from customer profile *ManagementApi* | [**resetPassword**](docs/ManagementApi.md#resetPassword) | **POST** /v1/reset_password | Reset password *ManagementApi* | [**scimCreateGroup**](docs/ManagementApi.md#scimCreateGroup) | **POST** /v1/provisioning/scim/Groups | Create SCIM group @@ -420,6 +422,8 @@ Class | Method | HTTP request | Description - [AchievementProgress](docs/AchievementProgress.md) - [AchievementProgressWithDefinition](docs/AchievementProgressWithDefinition.md) - [AchievementStatusEntry](docs/AchievementStatusEntry.md) +- [ActivateLoyaltyPoints](docs/ActivateLoyaltyPoints.md) +- [ActivateLoyaltyPointsResponse](docs/ActivateLoyaltyPointsResponse.md) - [AddFreeItemEffectProps](docs/AddFreeItemEffectProps.md) - [AddItemCatalogAction](docs/AddItemCatalogAction.md) - [AddLoyaltyPoints](docs/AddLoyaltyPoints.md) @@ -506,6 +510,7 @@ Class | Method | HTTP request | Description - [CampaignEvaluationTreeChangedNotification](docs/CampaignEvaluationTreeChangedNotification.md) - [CampaignGroup](docs/CampaignGroup.md) - [CampaignGroupEntity](docs/CampaignGroupEntity.md) +- [CampaignLogSummary](docs/CampaignLogSummary.md) - [CampaignNotificationBase](docs/CampaignNotificationBase.md) - [CampaignNotificationGeneric](docs/CampaignNotificationGeneric.md) - [CampaignNotificationItemBase](docs/CampaignNotificationItemBase.md) @@ -602,6 +607,7 @@ Class | Method | HTTP request | Description - [Event](docs/Event.md) - [EventType](docs/EventType.md) - [EventV2](docs/EventV2.md) +- [EventV3](docs/EventV3.md) - [ExpiringCardPointsData](docs/ExpiringCardPointsData.md) - [ExpiringCardPointsNotification](docs/ExpiringCardPointsNotification.md) - [ExpiringCouponsData](docs/ExpiringCouponsData.md) @@ -694,7 +700,10 @@ Class | Method | HTTP request | Description - [IntegrationEntity](docs/IntegrationEntity.md) - [IntegrationEvent](docs/IntegrationEvent.md) - [IntegrationEventV2Request](docs/IntegrationEventV2Request.md) +- [IntegrationEventV3Request](docs/IntegrationEventV3Request.md) +- [IntegrationEventV3Response](docs/IntegrationEventV3Response.md) - [IntegrationProfileEntity](docs/IntegrationProfileEntity.md) +- [IntegrationProfileEntityV3](docs/IntegrationProfileEntityV3.md) - [IntegrationRequest](docs/IntegrationRequest.md) - [IntegrationState](docs/IntegrationState.md) - [IntegrationStateV2](docs/IntegrationStateV2.md) @@ -850,6 +859,9 @@ Class | Method | HTTP request | Description - [PriceType](docs/PriceType.md) - [PriceTypeReferenceDetail](docs/PriceTypeReferenceDetail.md) - [PriceTypeReferences](docs/PriceTypeReferences.md) +- [PrismaticFlow](docs/PrismaticFlow.md) +- [PrismaticFlowConfig](docs/PrismaticFlowConfig.md) +- [PrismaticFlowWithConfig](docs/PrismaticFlowWithConfig.md) - [Product](docs/Product.md) - [ProductSearchMatch](docs/ProductSearchMatch.md) - [ProductUnitAnalytics](docs/ProductUnitAnalytics.md) diff --git a/api/openapi.yaml b/api/openapi.yaml index c649675..0ced58f 100644 --- a/api/openapi.yaml +++ b/api/openapi.yaml @@ -160,6 +160,9 @@ tags: Represents the [notifications](/docs/product/loyalty-programs/loyalty-notifications/overview) about changes to loyalty points in profile-based loyalty programs. name: Loyalty notifications +- description: | + All endpoints for the prismatic integration + name: Prismatic - description: | A referral is a code shared between a customer and a prospect. @@ -939,6 +942,7 @@ paths: required: true schema: maxLength: 108 + minLength: 4 type: string requestBody: content: @@ -1217,7 +1221,10 @@ paths: coupon code. operationId: deleteCouponReservation parameters: - - description: The code of the coupon. + - description: "The code of the coupon.\n\n**Important:** The coupon code requires\ + \ [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) \nif\ + \ it contains special characters.\nFor example, you must encode `SUMMER25%OFF`\ + \ as `SUMMER25%25OFF`.\n" in: path name: couponValue required: true @@ -1262,28 +1269,48 @@ paths: x-accepts: application/json post: description: | - Create a coupon reservation for the specified customer profiles on the specified coupon. + Create a coupon reservation for the specified customer profiles on the + specified coupon. + You can also create a reservation via the Campaign Manager using the - [Create coupon code reservation](https://docs.talon.one/docs/product/rules/effects/using-effects#reserving-a-coupon-code) effect. + [Create coupon code + reservation](https://docs.talon.one/docs/product/rules/effects/using-effects#reserving-a-coupon-code) + effect. **Note:** - - If the **Reservation mandatory** option was selected when creating the specified coupon, - the endpoint creates a **hard** reservation, meaning only users who have this coupon code reserved can redeem it. - Otherwise, the endpoint creates a **soft** reservation, meaning the coupon is associated with the specified customer profiles (they show up when using the [List customer data](https://docs.talon.one/integration-api#operation/getCustomerInventory) endpoint), but any user can redeem it. - This can be useful, for example, to display a _coupon wallet_ for customers when they visit your store. - - - If the **Coupon visibility** option was selected when creating the specified coupon, - the coupon code is implicitly soft-reserved for all customers, and the code will be returned for all customer profiles in the [List customer data](https://docs.talon.one/integration-api#operation/getCustomerInventory) endpoint. - - - This endpoint overrides the coupon reservation limit set when [the coupon is created](https://docs.talon.one/docs/product/campaigns/coupons/creating-coupons). - To ensure that coupons cannot be reserved after the reservation limit is reached, use the [Create coupon code reservation](https://docs.talon.one/docs/product/rules/effects/using-effects#reserving-a-coupon-code) effect in the Rule Builder - and the [Update customer session](https://docs.talon.one/integration-api#tag/Customer-sessions/operation/updateCustomerSessionV2) endpoint. + - If the **Reservation mandatory** option was selected when creating the + specified coupon, the endpoint creates a **hard** reservation, meaning only users who have + this coupon code reserved can redeem it. + Otherwise, the endpoint creates a **soft** reservation, meaning the coupon + is associated with the specified customer profiles (they show up when using + the [List customer data](https://docs.talon.one/integration-api#operation/getCustomerInventory) + endpoint), but any user can redeem it. + This can be useful, for example, to display a _coupon wallet_ for customers + when they visit your store. + + - If the **Coupon visibility** option was selected when creating the + specified coupon, the coupon code is implicitly soft-reserved for all customers, and the code + will be returned for all customer profiles in the [List customer + data](https://docs.talon.one/integration-api#operation/getCustomerInventory) endpoint. + + - This endpoint overrides the coupon reservation limit set when + [the coupon is created](https://docs.talon.one/docs/product/campaigns/coupons/creating-coupons). + + To ensure that coupons cannot be reserved after the reservation limit is + reached, use the [Create coupon code + reservation](https://docs.talon.one/docs/product/rules/effects/using-effects#reserving-a-coupon-code) + effect in the Rule Builder and the [Update customer session](https://docs.talon.one/integration-api#tag/Customer-sessions/operation/updateCustomerSessionV2) + endpoint. - To delete a reservation, use the [Delete reservation](https://docs.talon.one/integration-api#tag/Coupons/operation/deleteCouponReservation) endpoint. + To delete a reservation, use the + [Delete reservation](https://docs.talon.one/integration-api#tag/Coupons/operation/deleteCouponReservation) endpoint. operationId: createCouponReservation parameters: - - description: The code of the coupon. + - description: "The code of the coupon.\n\n**Important:** The coupon code requires\ + \ [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) \nif\ + \ it contains special characters.\nFor example, you must encode `SUMMER25%OFF`\ + \ as `SUMMER25%25OFF`.\n" in: path name: couponValue required: true @@ -1335,7 +1362,10 @@ paths: Return all customers that have this coupon marked as reserved. This includes hard and soft reservations. operationId: getReservedCustomers parameters: - - description: The code of the coupon. + - description: "The code of the coupon.\n\n**Important:** The coupon code requires\ + \ [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) \nif\ + \ it contains special characters.\nFor example, you must encode `SUMMER25%OFF`\ + \ as `SUMMER25%25OFF`.\n" in: path name: couponValue required: true @@ -1687,6 +1717,7 @@ paths: required: true schema: maxLength: 108 + minLength: 4 type: string - description: | Used to return expired, active, and pending loyalty balances before this timestamp. You can enter any past, present, or future timestamp value. @@ -1867,6 +1898,7 @@ paths: required: true schema: maxLength: 108 + minLength: 4 type: string - description: Filter results by one or more subledger IDs. Must be exact match. explode: true @@ -2155,6 +2187,7 @@ paths: required: true schema: maxLength: 108 + minLength: 4 type: string - description: Filter points based on their status. in: query @@ -4287,50 +4320,39 @@ paths: x-accepts: application/json /v1/loyalty_programs/{loyaltyProgramId}/import_points: post: - description: | - Upload a CSV file containing the loyalty points you want to import into a given loyalty program. - Send the file as multipart data. - - Depending on the type of loyalty program, you can import points into a given customer profile or loyalty card. - - The CSV file contains the following columns: - - - `customerprofileid` (optional): For profile-based loyalty programs, the integration ID of the customer profile where the loyalty points are imported. - - **Note**: If the customer profile does not exist, it will be created. The profile will not be visible in any Application - until a session or profile update is received for that profile. - - `identifier` (optional): For card-based loyalty programs, the identifier of the loyalty card where the loyalty points are imported. - - `amount`: The amount of points to award to the customer profile. - - `startdate` (optional): The earliest date when the points can be redeemed. The points are `active` from this date until the expiration date. - - **Note**: It must be an RFC3339 timestamp string or string `immediate`. Empty or missing values are considered `immediate`. - - `expirydate` (optional): The latest date when the points can be redeemed. The points are `expired` after this date. - - **Note**: It must be an RFC3339 timestamp string or string `unlimited`. Empty or missing values are considered `unlimited`. - - `subledgerid` (optional): The ID of the subledger that should received the points. - - `reason` (optional): The reason why these points are awarded. - - You can use the time zone of your choice. It is converted to UTC internally by Talon.One. - - **Note:** For existing customer profiles and loyalty cards, the imported points are added to any previous active or pending points, depending on the - value provided for `startdate`. If `startdate` matches the current date, the imported points are _active_. If it is later, the points are _pending_ until - the date provided for `startdate` is reached. - - **Note:** We recommend limiting your file size to 500MB. - - **Example for profile-based programs:** - - ```text - customerprofileid,amount,startdate,expirydate,subledgerid,reason - URNGV8294NV,100,2009-11-10T23:00:00Z,2009-11-11T23:00:00Z,subledger1,appeasement - ``` - - **Example for card-based programs:** - - ```text - identifier,amount,startdate,expirydate,subledgerid,reason - summer-loyalty-card-0543,100,2009-11-10T23:00:00Z,2009-11-11T23:00:00Z,subledger1,appeasement - ``` + description: "Upload a CSV file containing the loyalty points you want to import\ + \ into a given loyalty program.\nSend the file as multipart data.\n\nDepending\ + \ on the type of loyalty program, you can import points into a given customer\ + \ profile or loyalty card.\n\nThe CSV file contains the following columns:\n\ + \n- `customerprofileid` (optional): For profile-based loyalty programs, the\ + \ integration ID of the customer profile where the loyalty points are imported.\n\ + \n **Note**: If the customer profile does not exist, it will be created.\ + \ The profile will not be visible in any Application\n until a session or\ + \ profile update is received for that profile.\n- `identifier` (optional):\ + \ For card-based loyalty programs, the identifier of the loyalty card where\ + \ the loyalty points are imported.\n- `amount`: The amount of points to award\ + \ to the customer profile.\n- `startdate` (optional): The earliest date when\ + \ the points can be redeemed. The points are `active` from this date until\ + \ the expiration date.\n\n This parameter accepts one of the following values:\n\ + \ - A timestamp string in RFC3339 format.\n - `immediate`\n - `on_action`\n\ + \ \n **Note**:\n Empty or missing values default to `immediate`.\n- `expirydate`\ + \ (optional): The latest date when the points can be redeemed. The points\ + \ are `expired` after this date.\n\n **Note**: It must be an RFC3339 timestamp\ + \ string or string `unlimited`. Empty or missing values are considered `unlimited`.\n\ + - `subledgerid` (optional): The ID of the subledger that should received the\ + \ points.\n- `reason` (optional): The reason why these points are awarded.\n\ + \nYou can use the time zone of your choice. It is converted to UTC internally\ + \ by Talon.One.\n\n**Note:** For existing customer profiles and loyalty cards,\ + \ the imported points are added to any previous active or pending points,\ + \ depending on the\nvalue provided for `startdate`. If `startdate` matches\ + \ the current date, the imported points are _active_. If it is later, the\ + \ points are _pending_ until\nthe date provided for `startdate` is reached.\n\ + \n**Note:** We recommend limiting your file size to 500MB.\n\n**Example for\ + \ profile-based programs:**\n\n```text\ncustomerprofileid,amount,startdate,expirydate,subledgerid,reason\n\ + URNGV8294NV,100,2009-11-10T23:00:00Z,2009-11-11T23:00:00Z,subledger1,appeasement\n\ + ```\n\n**Example for card-based programs:**\n\n```text\nidentifier,amount,startdate,expirydate,subledgerid,reason\n\ + summer-loyalty-card-0543,100,2009-11-10T23:00:00Z,2009-11-11T23:00:00Z,subledger1,appeasement\n\ + ```\n" operationId: importLoyaltyPoints parameters: - description: | @@ -5468,6 +5490,7 @@ paths: required: true schema: maxLength: 108 + minLength: 4 type: string responses: "204": @@ -5510,6 +5533,7 @@ paths: required: true schema: maxLength: 108 + minLength: 4 type: string responses: "200": @@ -5562,6 +5586,7 @@ paths: required: true schema: maxLength: 108 + minLength: 4 type: string requestBody: content: @@ -5624,6 +5649,7 @@ paths: required: true schema: maxLength: 108 + minLength: 4 type: string requestBody: content: @@ -5683,6 +5709,7 @@ paths: required: true schema: maxLength: 108 + minLength: 4 type: string requestBody: content: @@ -5744,6 +5771,7 @@ paths: required: true schema: maxLength: 108 + minLength: 4 type: string - description: | Only return results from after this timestamp. @@ -5826,6 +5854,7 @@ paths: required: true schema: maxLength: 108 + minLength: 4 type: string - description: | Date and time from which results are returned. Results are filtered by transaction creation date. @@ -5946,6 +5975,7 @@ paths: required: true schema: maxLength: 108 + minLength: 4 type: string requestBody: content: @@ -8318,6 +8348,34 @@ paths: name: entity schema: type: string + - description: Returned attributes will be filtered by supplied application + ids + in: query + name: applicationIds + schema: + type: string + - description: Returned attributes will be filtered by supplied type + in: query + name: type + schema: + type: string + - description: Returned attributes will be filtered by supplied kind (builtin + or custom) + in: query + name: kind + schema: + enum: + - builtin + - custom + type: string + x-generate-enum-go: true + x-generate-enum-go: true + - description: Returned attributes will be filtered by searching case insensitive + through Attribute name, description and type + in: query + name: search + schema: + type: string responses: "200": content: @@ -12108,6 +12166,69 @@ paths: tags: - management x-accepts: application/json + /v1/prismatic/flow: + delete: + operationId: deletePrismaticFlow + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PrismaticFlow' + required: true + responses: + "204": + content: {} + description: No Content + "400": + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Request + "500": + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Internal Server Error + summary: de-registers a prismatic flow for an event + tags: + - management + x-internal: false + x-codegen-request-body-name: body + x-contentType: application/json + x-accepts: application/json + post: + operationId: postPrismaticFlow + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PrismaticFlowWithConfig' + required: true + responses: + "201": + content: {} + description: Created + "400": + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Bad Request + "500": + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorResponse' + description: Internal Server Error + summary: registers a prismatic flow for an event + tags: + - management + x-internal: false + x-codegen-request-body-name: body + x-contentType: application/json + x-accepts: application/json components: schemas: ApplicationNotification: @@ -12286,6 +12407,8 @@ components: properties: NotificationType: description: The type of the notification + enum: + - CampaignNotification example: CampaignNotification type: string TotalResultSize: @@ -12734,13 +12857,20 @@ components: $ref: '#/components/schemas/StrikethroughChangedItem' type: array NotificationType: - description: The type of the notification + description: The type of notification. + enum: + - StrikethroughPrice + type: string + sentAt: + description: Timestamp at which the notification was sent. + format: date-time type: string required: - NotificationType - applicationId - changedItems - currentBatch + - sentAt - totalBatches - trigger type: object @@ -14007,6 +14137,7 @@ components: The alphanumeric identifier of the loyalty card. example: summer-loyalty-card-0543 maxLength: 108 + minLength: 4 pattern: ^[A-Za-z0-9_-]*$ type: string AddLoyaltyPointsEffectProps: @@ -14059,6 +14190,7 @@ components: The alphanumeric identifier of the loyalty card. example: summer-loyalty-card-0543 maxLength: 108 + minLength: 4 pattern: ^[A-Za-z0-9_-]*$ type: string bundleIndex: @@ -14069,6 +14201,16 @@ components: bundleName: description: The name of the bundle definition. type: string + awaitsActivation: + description: | + If `true`, the loyalty points are pending until action-based activation takes place. The `startDate` parameter automatically defaults to `on_action`. + type: boolean + validityDuration: + description: "The duration for which the points remain active, relative\ + \ to the activation date.\nExample: `30D`. \n**Note**: This value is\ + \ only returned if `awaitsActivation` is `true` and `expiryDate` is not\ + \ set.\n" + type: string required: - name - programId @@ -14110,6 +14252,7 @@ components: The alphanumeric identifier of the loyalty card. example: summer-loyalty-card-0543 maxLength: 108 + minLength: 4 pattern: ^[A-Za-z0-9_-]*$ type: string required: @@ -14308,6 +14451,7 @@ components: The alphanumeric identifier of the loyalty card. example: summer-loyalty-card-0543 maxLength: 108 + minLength: 4 pattern: ^[A-Za-z0-9_-]*$ type: string required: @@ -14355,6 +14499,7 @@ components: The alphanumeric identifier of the loyalty card. example: summer-loyalty-card-0543 maxLength: 108 + minLength: 4 pattern: ^[A-Za-z0-9_-]*$ type: string required: @@ -16036,6 +16181,7 @@ components: The alphanumeric identifier of the loyalty card. example: summer-loyalty-card-0543 maxLength: 108 + minLength: 4 pattern: ^[A-Za-z0-9_-]*$ type: string usersPerCardLimit: @@ -16068,6 +16214,7 @@ components: The alphanumeric identifier of the loyalty card. example: summer-loyalty-card-0543 maxLength: 108 + minLength: 4 pattern: ^[A-Za-z0-9_-]*$ type: string newCardIdentifier: @@ -16075,6 +16222,7 @@ components: The alphanumeric identifier of the loyalty card. example: summer-loyalty-card-0543 maxLength: 108 + minLength: 4 pattern: ^[A-Za-z0-9_-]*$ type: string batchId: @@ -21436,10 +21584,10 @@ components: validityDuration: description: | The time format is either: - - `immediate` or, + - `unlimited` or, - an **integer** followed by one letter indicating the time unit. - Examples: `immediate`, `30s`, `40m`, `1h`, `5D`, `7W`, `10M`, `15Y`. + Examples: `unlimited`, `30s`, `40m`, `1h`, `5D`, `7W`, `10M`, `15Y`. Available units: @@ -24959,6 +25107,7 @@ components: The alphanumeric identifier of the loyalty card. example: summer-loyalty-card-0543 maxLength: 108 + minLength: 4 pattern: ^[A-Za-z0-9_-]*$ type: string customerSessionId: @@ -24986,6 +25135,7 @@ components: description: | When points become active. Possible values: - `immediate`: Points are active immediately. + - `on_action`: Points become active based on the customer's action. - a timestamp value: Points become active at a given date and time. example: 2022-01-02T15:04:05Z07:00 maxLength: 64 @@ -25100,6 +25250,7 @@ components: description: | When points become active. Possible values: - `immediate`: Points are immediately active. + - `on_action`: Points become active based on the customer's action. - a timestamp value: Points become active at a given date and time. example: 2022-01-02T15:04:05Z07:00 maxLength: 64 @@ -27936,6 +28087,11 @@ components: format: int64 type: integer type: array + authenticationId: + description: The ID of the credential that this webhook is using. + example: 1 + format: int64 + type: integer required: - url - verb @@ -29653,6 +29809,7 @@ components: description: My collection of SKUs - name: My collection description: My collection of SKUs + campaignsCount: 3 defaultCampaignGroupId: 42 description: This is a template for a discount campaign. features: @@ -29920,6 +30077,11 @@ components: - advanced example: advanced type: string + campaignsCount: + description: The number of Campaigns created from this template. + example: 3 + format: int64 + type: integer updated: description: Timestamp of the most recent update to the campaign template or any of its elements. @@ -31107,165 +31269,28 @@ components: $ref: '#/components/schemas/NewLoyaltyTier' type: array type: object - UpdateLoyaltyProgramTier: - description: Update a tier in a specified loyalty program. - properties: - id: - description: The internal ID of the tier. - example: 6 - format: int64 - type: integer - name: - description: The name of the tier. - example: Gold - type: string - minPoints: - description: The minimum amount of points required to enter the tier. - example: 300.0 - maximum: 999999999999.99 - minimum: 0 - type: number - required: - - id - type: object - UpdateLoyaltyProgramTiers: - description: List of tiers that are updated by the request. - items: - $ref: '#/components/schemas/UpdateLoyaltyProgramTier' - type: array - LoyaltyTiers: - description: A list of the loyalty program's tiers. - items: - $ref: '#/components/schemas/LoyaltyTier' - type: array - LoyaltyDashboardPointsBreakdown: - example: - createdManually: 125.0 - createdViaRuleEngine: 9631.0 - properties: - createdManually: - example: 125.0 - type: number - createdViaRuleEngine: - example: 9631.0 - type: number - required: - - createdManually - - createdViaRuleEngine - type: object - LoyaltyDashboardData: - description: Datapoint for the graphs and cards on a loyalty program dashboard. - example: - date: 2000-01-23T04:56:07.000+00:00 - totalMembers: 2582.0 - totalSpentPoints: 25668.0 - spentPoints: - createdManually: 125.0 - createdViaRuleEngine: 9631.0 - totalActivePoints: 9756.0 - totalPendingPoints: 548.0 - totalExpiredPoints: 1156.0 - totalNegativePoints: 32.0 - newMembers: 3.0 - earnedPoints: - createdManually: 125.0 - createdViaRuleEngine: 9631.0 + ActivateLoyaltyPoints: + description: Activate loyalty points. properties: - date: - description: Date at which data point was collected. - format: date-time - type: string - totalActivePoints: - description: Total of active points for this loyalty program. - example: 9756.0 - type: number - totalPendingPoints: - description: Total of pending points for this loyalty program. - example: 548.0 - type: number - totalSpentPoints: - description: Total of spent points for this loyalty program. - example: 25668.0 - type: number - totalExpiredPoints: - description: Total of expired points for this loyalty program. - example: 1156.0 - type: number - totalNegativePoints: - description: Total of negative points for this loyalty program. - example: 32.0 - type: number - totalMembers: - description: Number of loyalty program members. - example: 2582.0 - type: number - newMembers: - description: Number of members who joined on this day. - example: 3.0 - type: number - spentPoints: - $ref: '#/components/schemas/LoyaltyDashboardPointsBreakdown' - earnedPoints: - $ref: '#/components/schemas/LoyaltyDashboardPointsBreakdown' - required: - - date - - earnedPoints - - newMembers - - spentPoints - - totalActivePoints - - totalExpiredPoints - - totalMembers - - totalNegativePoints - - totalPendingPoints - - totalSpentPoints - type: object - Import: - example: - accountId: 3886 - amount: 10 - created: 2020-06-10T09:05:27.993483Z - id: 6 - userId: 388 - entity: AttributeAllowedList - properties: - id: - description: The internal ID of this entity. - example: 6 - format: int64 - type: integer - created: - description: The time this entity was created. - example: 2020-06-10T09:05:27.993483Z - format: date-time - type: string - accountId: - description: The ID of the account that owns this entity. - example: 3886 - format: int64 - type: integer - userId: - description: The ID of the user associated with this entity. - example: 388 - format: int64 - type: integer - entity: + transactionUUIDs: description: | - The name of the entity that was imported. - example: AttributeAllowedList + The list of transaction UUIDs used to activate point transactions. + + If passed, `sessionId` must be omitted. + items: + format: uuid + type: string + maxItems: 50 + minItems: 1 + type: array + uniqueItems: true + sessionId: + description: | + The integration ID of the session with the point transactions to be activated. + + If passed, `transactionUUIDs` must be omitted. + minLength: 1 type: string - amount: - description: The number of values that were imported. - example: 10 - format: int64 - minimum: 0 - type: integer - required: - - accountId - - amount - - created - - entity - - id - - userId type: object LoyaltyLedgerEntry: description: A single row of the ledger, describing one addition or deduction. @@ -31359,6 +31384,174 @@ components: - subLedgerID - type type: object + ActivateLoyaltyPointsResponse: + properties: + ledgerEntries: + description: Updated ledger entries after activation. + items: + $ref: '#/components/schemas/LoyaltyLedgerEntry' + type: array + type: object + UpdateLoyaltyProgramTier: + description: Update a tier in a specified loyalty program. + properties: + id: + description: The internal ID of the tier. + example: 6 + format: int64 + type: integer + name: + description: The name of the tier. + example: Gold + type: string + minPoints: + description: The minimum amount of points required to enter the tier. + example: 300.0 + maximum: 999999999999.99 + minimum: 0 + type: number + required: + - id + type: object + UpdateLoyaltyProgramTiers: + description: List of tiers that are updated by the request. + items: + $ref: '#/components/schemas/UpdateLoyaltyProgramTier' + type: array + LoyaltyTiers: + description: A list of the loyalty program's tiers. + items: + $ref: '#/components/schemas/LoyaltyTier' + type: array + LoyaltyDashboardPointsBreakdown: + example: + createdManually: 125.0 + createdViaRuleEngine: 9631.0 + properties: + createdManually: + example: 125.0 + type: number + createdViaRuleEngine: + example: 9631.0 + type: number + required: + - createdManually + - createdViaRuleEngine + type: object + LoyaltyDashboardData: + description: Datapoint for the graphs and cards on a loyalty program dashboard. + example: + date: 2000-01-23T04:56:07.000+00:00 + totalMembers: 2582.0 + totalSpentPoints: 25668.0 + spentPoints: + createdManually: 125.0 + createdViaRuleEngine: 9631.0 + totalActivePoints: 9756.0 + totalPendingPoints: 548.0 + totalExpiredPoints: 1156.0 + totalNegativePoints: 32.0 + newMembers: 3.0 + earnedPoints: + createdManually: 125.0 + createdViaRuleEngine: 9631.0 + properties: + date: + description: Date at which data point was collected. + format: date-time + type: string + totalActivePoints: + description: Total of active points for this loyalty program. + example: 9756.0 + type: number + totalPendingPoints: + description: Total of pending points for this loyalty program. + example: 548.0 + type: number + totalSpentPoints: + description: Total of spent points for this loyalty program. + example: 25668.0 + type: number + totalExpiredPoints: + description: Total of expired points for this loyalty program. + example: 1156.0 + type: number + totalNegativePoints: + description: Total of negative points for this loyalty program. + example: 32.0 + type: number + totalMembers: + description: Number of loyalty program members. + example: 2582.0 + type: number + newMembers: + description: Number of members who joined on this day. + example: 3.0 + type: number + spentPoints: + $ref: '#/components/schemas/LoyaltyDashboardPointsBreakdown' + earnedPoints: + $ref: '#/components/schemas/LoyaltyDashboardPointsBreakdown' + required: + - date + - earnedPoints + - newMembers + - spentPoints + - totalActivePoints + - totalExpiredPoints + - totalMembers + - totalNegativePoints + - totalPendingPoints + - totalSpentPoints + type: object + Import: + example: + accountId: 3886 + amount: 10 + created: 2020-06-10T09:05:27.993483Z + id: 6 + userId: 388 + entity: AttributeAllowedList + properties: + id: + description: The internal ID of this entity. + example: 6 + format: int64 + type: integer + created: + description: The time this entity was created. + example: 2020-06-10T09:05:27.993483Z + format: date-time + type: string + accountId: + description: The ID of the account that owns this entity. + example: 3886 + format: int64 + type: integer + userId: + description: The ID of the user associated with this entity. + example: 388 + format: int64 + type: integer + entity: + description: | + The name of the entity that was imported. + example: AttributeAllowedList + type: string + amount: + description: The number of values that were imported. + example: 10 + format: int64 + minimum: 0 + type: integer + required: + - accountId + - amount + - created + - entity + - id + - userId + type: object LoyaltySubLedger: description: Ledger of Balance in Loyalty Program for a Customer. example: @@ -31913,6 +32106,7 @@ components: description: | When points become active. Possible values: - `immediate`: Points are immediately active. + - `on_action`: Points become active based on the customer's action. - a timestamp value: Points become active at a given date and time. example: 2022-01-02T15:04:05Z07:00 maxLength: 64 @@ -31934,6 +32128,7 @@ components: The alphanumeric identifier of the loyalty card. example: summer-loyalty-card-0543 maxLength: 108 + minLength: 4 pattern: ^[A-Za-z0-9_-]*$ type: string subledgerId: @@ -32105,6 +32300,7 @@ components: The alphanumeric identifier of the loyalty card. example: summer-loyalty-card-0543 maxLength: 108 + minLength: 4 pattern: ^[A-Za-z0-9_-]*$ type: string type: object @@ -32144,6 +32340,7 @@ components: The alphanumeric identifier of the loyalty card. example: summer-loyalty-card-0543 maxLength: 108 + minLength: 4 pattern: ^[A-Za-z0-9_-]*$ type: string applicationId: @@ -32230,6 +32427,7 @@ components: The alphanumeric identifier of the loyalty card. example: summer-loyalty-card-0543 maxLength: 108 + minLength: 4 pattern: ^[A-Za-z0-9_-]*$ type: string blockReason: @@ -38283,6 +38481,11 @@ components: when the user who created the key is disabled or deleted. example: true type: boolean + lastUsed: + description: The last time the management key was used. + example: 2022-03-02T16:46:17.758585Z + format: date-time + type: string required: - accountID - created @@ -38345,6 +38548,11 @@ components: when the user who created the key is disabled or deleted. example: true type: boolean + lastUsed: + description: The last time the management key was used. + example: 2022-03-02T16:46:17.758585Z + format: date-time + type: string key: description: The management key. example: f45f90d21dcd9bac965c45e547e9754a3196891d09948e35adbcbedc4e9e4b01 @@ -39363,10 +39571,361 @@ components: - eventID - sessionID type: object + CampaignLogSummary: + description: Campaign Log Summary + properties: + name: + description: Name of the user that performed the change. + example: Admin + type: string + email: + description: E-mail of the user that performed the change. + example: admin@talon.one + type: string + created: + description: Date and time the change was performed. + format: date-time + type: string + action: + description: Action performed by the user. + enum: + - create + - delete + - update + example: create + type: string + summary: + description: AI-generated summary of the action performed. + type: string + required: + - action + - created + - email + - name + - summary + type: object + PrismaticFlowConfig: + example: + BatchSize: 0 + ApiKey: ApiKey + PeriodsInDays: + - 6 + - 6 + properties: + ApiKey: + type: string + BatchSize: + description: Available for LoyaltyCardPointsExpiring, LoyaltyPointsExpiring, + TierWillDowngrade, TierDowngrade, TierUpgrade, CouponCodeExpiring, CampaignNotification + format: int64 + type: integer + PeriodsInDays: + description: Available for LoyaltyCardPointsExpiring, LoyaltyPointsExpiring, + TierWillDowngrade + items: + format: int64 + type: integer + type: array + required: + - ApiKey + type: object + PrismaticFlowWithConfig: + example: + EventType: StrikethroughPrice + Config: + BatchSize: 0 + ApiKey: ApiKey + PeriodsInDays: + - 6 + - 6 + PrismaticFlowUrl: PrismaticFlowUrl + properties: + EventType: + description: The event type we want to register a flow for. + enum: + - StrikethroughPrice + - CampaignEvaluationTreeChanged + - CampaignNotification + - LoyaltyCardPointsExpiring + - AsyncCouponsCreated + - CouponCodeExpiring + - LoyaltyPointsExpiring + - LoyaltyPointsPendingToActive + - TierDowngrade + - TierUpgrade + - TierWillDowngrade + - CouponCreated + - CouponUpdated + - CouponDeleted + - CouponsUpdated + - CouponsDeleted + - LoyaltyCardPointsAdded + - LoyaltyCardPointsDeducted + - LoyaltyPointsAdded + - LoyaltyPointsDeducted + type: string + x-generate-enum-go: PrismaticEventType + PrismaticFlowUrl: + description: The URL of the prismatic flow that we want to trigger for the + event. + type: string + Config: + $ref: '#/components/schemas/PrismaticFlowConfig' + required: + - Config + - EventType + - PrismaticFlowUrl + type: object + PrismaticFlow: + example: + EventType: StrikethroughPrice + PrismaticFlowUrl: PrismaticFlowUrl + properties: + EventType: + description: The event type we want to register a flow for. + enum: + - StrikethroughPrice + - CampaignEvaluationTreeChanged + - CampaignNotification + - LoyaltyCardPointsExpiring + - AsyncCouponsCreated + - CouponCodeExpiring + - LoyaltyPointsExpiring + - LoyaltyPointsPendingToActive + - TierDowngrade + - TierUpgrade + - TierWillDowngrade + - CouponCreated + - CouponUpdated + - CouponDeleted + - CouponsUpdated + - CouponsDeleted + - LoyaltyCardPointsAdded + - LoyaltyCardPointsDeducted + - LoyaltyPointsAdded + - LoyaltyPointsDeducted + type: string + PrismaticFlowUrl: + description: The URL of the prismatic flow that we want to trigger for the + event. + type: string + required: + - EventType + - PrismaticFlowUrl + type: object + IntegrationProfileEntityV3: + properties: + profileId: + description: | + ID of the customer profile set by your integration layer. + + **Note:** If the customer does not yet have a known `profileId`, we recommend you use a guest `profileId`. + example: URNGV8294NV + type: string + required: + - profileId + type: object + EventV3: + properties: + profileId: + description: | + ID of the customer profile set by your integration layer. + + **Note:** If the customer does not yet have a known `profileId`, we recommend you use a guest `profileId`. + example: URNGV8294NV + type: string + storeIntegrationId: + description: The integration ID of the store. You choose this ID when you + create a store. + example: STORE-001 + maxLength: 1000 + minLength: 1 + type: string + evaluableCampaignIds: + description: | + When using the `dry` query parameter, use this property to list the campaign to be evaluated by the Rule Engine. + + These campaigns will be evaluated, even if they are disabled, allowing you to test specific campaigns before activating them. + example: + - 10 + - 12 + items: + format: int64 + type: integer + title: Campaigns to evaluate + type: array + integrationId: + description: | + The unique ID of the current event. Only one event with this ID could be activated, duplicated events are forbidden. + example: 175KJPS947296 + minLength: 1 + type: string + type: + description: | + A string representing the event name. Must not be a reserved event name. You create this value when you [create an attribute](https://docs.talon.one/docs/dev/concepts/entities/events#creating-a-custom-event) of type `event` in the Campaign Manager. + example: pageViewed + minLength: 1 + title: Event Type + type: string + attributes: + description: Arbitrary additional JSON properties associated with the event. + They must be created in the Campaign Manager before setting them with + this property. See [creating custom attributes](https://docs.talon.one/docs/product/account/dev-tools/managing-attributes#creating-a-custom-attribute). + example: + myAttribute: myValue + properties: {} + type: object + connectedSessionID: + description: The ID of the session that happened in the past. + example: 175KJPS947296 + minLength: 1 + type: string + previousEventID: + description: The unique identifier of the event that happened in the past. + example: 175KJPS947296 + minLength: 1 + type: string + required: + - integrationId + - profileId + - type + type: object + IntegrationEventV3Request: + properties: + profileId: + description: | + ID of the customer profile set by your integration layer. + + **Note:** If the customer does not yet have a known `profileId`, we recommend you use a guest `profileId`. + example: URNGV8294NV + type: string + storeIntegrationId: + description: The integration ID of the store. You choose this ID when you + create a store. + example: STORE-001 + maxLength: 1000 + minLength: 1 + type: string + evaluableCampaignIds: + description: | + When using the `dry` query parameter, use this property to list the campaign to be evaluated by the Rule Engine. + + These campaigns will be evaluated, even if they are disabled, allowing you to test specific campaigns before activating them. + example: + - 10 + - 12 + items: + format: int64 + type: integer + title: Campaigns to evaluate + type: array + integrationId: + description: | + The unique ID of the current event. Only one event with this ID could be activated, duplicated events are forbidden. + example: 175KJPS947296 + minLength: 1 + type: string + type: + description: | + A string representing the event name. Must not be a reserved event name. You create this value when you [create an attribute](https://docs.talon.one/docs/dev/concepts/entities/events#creating-a-custom-event) of type `event` in the Campaign Manager. + example: pageViewed + minLength: 1 + title: Event Type + type: string + attributes: + description: Arbitrary additional JSON properties associated with the event. + They must be created in the Campaign Manager before setting them with + this property. See [creating custom attributes](https://docs.talon.one/docs/product/account/dev-tools/managing-attributes#creating-a-custom-attribute). + example: + myAttribute: myValue + properties: {} + type: object + connectedSessionID: + description: The ID of the session that happened in the past. + example: 175KJPS947296 + minLength: 1 + type: string + previousEventID: + description: The unique identifier of the event that happened in the past. + example: 175KJPS947296 + minLength: 1 + type: string + loyaltyCards: + description: Identifiers of the loyalty cards used during this event. + example: + - loyalty-card-1 + items: + type: string + maxItems: 1 + type: array + responseContent: + description: | + Optional list of requested information to be present on the response related to the tracking custom event. + example: + - triggeredCampaigns + - customerProfile + items: + enum: + - customerProfile + - triggeredCampaigns + - loyalty + - event + - awardedGiveaways + - ruleFailureReasons + type: string + type: array + required: + - integrationId + - profileId + - type + type: object + IntegrationEventV3Response: + description: | + This is the response type returned by the trackEventV3 endpoint. + properties: + customerProfile: + $ref: '#/components/schemas/CustomerProfile' + event: + $ref: '#/components/schemas/EventV3' + loyalty: + $ref: '#/components/schemas/Loyalty' + triggeredCampaigns: + items: + $ref: '#/components/schemas/Campaign' + type: array + ruleFailureReasons: + items: + $ref: '#/components/schemas/RuleFailureReason' + type: array + awardedGiveaways: + items: + $ref: '#/components/schemas/Giveaway' + type: array + effects: + description: The effects generated by the rules in your running campaigns. + See [API effects](https://docs.talon.one/docs/dev/integration-api/api-effects). + items: + $ref: '#/components/schemas/Effect' + type: array + createdCoupons: + items: + $ref: '#/components/schemas/Coupon' + type: array + createdReferrals: + items: + $ref: '#/components/schemas/Referral' + type: array + required: + - createdCoupons + - createdReferrals + - effects + type: object CampaignNotificationBase: properties: NotificationType: description: The type of the notification + enum: + - CampaignNotification example: CampaignNotification type: string TotalResultSize: @@ -39434,6 +39993,8 @@ components: properties: NotificationType: description: The type of the notification + enum: + - CampaignNotification example: CampaignNotification type: string TotalResultSize: @@ -39481,6 +40042,8 @@ components: properties: NotificationType: description: The type of the notification + enum: + - CampaignNotification example: CampaignNotification type: string TotalResultSize: @@ -39518,6 +40081,8 @@ components: properties: NotificationType: description: The type of the notification + enum: + - CampaignNotification example: CampaignNotification type: string TotalResultSize: @@ -39556,6 +40121,8 @@ components: properties: NotificationType: description: The type of the notification + enum: + - CampaignNotification example: CampaignNotification type: string TotalResultSize: @@ -39594,6 +40161,8 @@ components: properties: NotificationType: description: The type of the notification + enum: + - CampaignNotification example: CampaignNotification type: string TotalResultSize: @@ -39633,6 +40202,8 @@ components: properties: NotificationType: description: The type of the notification + enum: + - CampaignNotification example: CampaignNotification type: string TotalResultSize: @@ -39669,6 +40240,8 @@ components: properties: NotificationType: description: The type of the notification + enum: + - CampaignNotification example: CampaignNotification type: string TotalResultSize: @@ -39991,6 +40564,8 @@ components: type: string NotificationType: description: The type of the not + enum: + - CouponCreated type: string required: - EmployeeName @@ -40023,6 +40598,9 @@ components: type: integer NotificationType: description: The type of the notification + enum: + - CouponUpdated + - CouponDeleted example: CouponUpdated type: string required: @@ -40054,6 +40632,8 @@ components: type: string NotificationType: description: The type of the notification + enum: + - AsyncCouponsCreated type: string required: - BatchID @@ -40080,6 +40660,8 @@ components: type: string NotificationType: description: The type of the notification + enum: + - CouponsUpdated type: string required: - ApplicationID @@ -40111,6 +40693,8 @@ components: type: integer NotificationType: description: The type of the notification + enum: + - CouponsDeleted type: string required: - ApplicationID @@ -42554,6 +43138,7 @@ components: description: My collection of SKUs - name: My collection description: My collection of SKUs + campaignsCount: 3 defaultCampaignGroupId: 42 description: This is a template for a discount campaign. features: @@ -42694,6 +43279,7 @@ components: description: My collection of SKUs - name: My collection description: My collection of SKUs + campaignsCount: 3 defaultCampaignGroupId: 42 description: This is a template for a discount campaign. features: diff --git a/build.gradle b/build.gradle index 176cd78..dab8cb9 100644 --- a/build.gradle +++ b/build.gradle @@ -3,7 +3,7 @@ apply plugin: 'eclipse' apply plugin: 'java' group = 'one.talon' -version = '14.1.0' +version = '99.99.99' buildscript { repositories { diff --git a/build.sbt b/build.sbt index ef863e1..533d5fd 100644 --- a/build.sbt +++ b/build.sbt @@ -2,7 +2,7 @@ lazy val root = (project in file(".")). settings( organization := "one.talon", name := "talon-one-client", - version := "14.1.0", + version := "99.99.99", scalaVersion := "2.11.4", scalacOptions ++= Seq("-feature"), javacOptions in compile ++= Seq("-Xlint:deprecation"), diff --git a/docs/ActivateLoyaltyPoints.md b/docs/ActivateLoyaltyPoints.md new file mode 100644 index 0000000..8f7f09b --- /dev/null +++ b/docs/ActivateLoyaltyPoints.md @@ -0,0 +1,14 @@ + + +# ActivateLoyaltyPoints + +Activate loyalty points. +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**transactionUUIDs** | [**List<UUID>**](UUID.md) | The list of transaction UUIDs used to activate point transactions. If passed, `sessionId` must be omitted. | [optional] +**sessionId** | **String** | The integration ID of the session with the point transactions to be activated. If passed, `transactionUUIDs` must be omitted. | [optional] + + + diff --git a/docs/ActivateLoyaltyPointsResponse.md b/docs/ActivateLoyaltyPointsResponse.md new file mode 100644 index 0000000..69e452e --- /dev/null +++ b/docs/ActivateLoyaltyPointsResponse.md @@ -0,0 +1,12 @@ + + +# ActivateLoyaltyPointsResponse + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**ledgerEntries** | [**List<LoyaltyLedgerEntry>**](LoyaltyLedgerEntry.md) | Updated ledger entries after activation. | [optional] + + + diff --git a/docs/AddLoyaltyPoints.md b/docs/AddLoyaltyPoints.md index 3f94b2b..8845088 100644 --- a/docs/AddLoyaltyPoints.md +++ b/docs/AddLoyaltyPoints.md @@ -9,7 +9,7 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **points** | [**BigDecimal**](BigDecimal.md) | Amount of loyalty points. | **name** | **String** | Name / reason for the point addition. | [optional] -**validityDuration** | **String** | The time format is either: - `immediate` or, - an **integer** followed by one letter indicating the time unit. Examples: `immediate`, `30s`, `40m`, `1h`, `5D`, `7W`, `10M`, `15Y`. Available units: - `s`: seconds - `m`: minutes - `h`: hours - `D`: days - `W`: weeks - `M`: months - `Y`: years You can round certain units up or down: - `_D` for rounding down days only. Signifies the start of the day. - `_U` for rounding up days, weeks, months and years. Signifies the end of the day, week, month or year. If passed, `validUntil` should be omitted. | [optional] +**validityDuration** | **String** | The time format is either: - `unlimited` or, - an **integer** followed by one letter indicating the time unit. Examples: `unlimited`, `30s`, `40m`, `1h`, `5D`, `7W`, `10M`, `15Y`. Available units: - `s`: seconds - `m`: minutes - `h`: hours - `D`: days - `W`: weeks - `M`: months - `Y`: years You can round certain units up or down: - `_D` for rounding down days only. Signifies the start of the day. - `_U` for rounding up days, weeks, months and years. Signifies the end of the day, week, month or year. If passed, `validUntil` should be omitted. | [optional] **validUntil** | [**OffsetDateTime**](OffsetDateTime.md) | Date and time when points should expire. The value should be provided in RFC 3339 format. If passed, `validityDuration` should be omitted. | [optional] **pendingDuration** | **String** | The amount of time before the points are considered valid. The time format is either: - `immediate` or, - `on_action` or, - an **integer** followed by one letter indicating the time unit. Examples: `immediate`, `30s`, `40m`, `1h`, `5D`, `7W`, `10M`, `15Y`, `on_action`. Available units: - `s`: seconds - `m`: minutes - `h`: hours - `D`: days - `W`: weeks - `M`: months - `Y`: years You can round certain units up or down: - `_D` for rounding down days only. Signifies the start of the day. - `_U` for rounding up days, weeks, months and years. Signifies the end of the day, week, month or year. | [optional] **pendingUntil** | [**OffsetDateTime**](OffsetDateTime.md) | Date and time after the points are considered valid. The value should be provided in RFC 3339 format. If passed, `pendingDuration` should be omitted. | [optional] diff --git a/docs/AddLoyaltyPointsEffectProps.md b/docs/AddLoyaltyPointsEffectProps.md index ada3b99..fdd8a19 100644 --- a/docs/AddLoyaltyPointsEffectProps.md +++ b/docs/AddLoyaltyPointsEffectProps.md @@ -21,6 +21,8 @@ Name | Type | Description | Notes **cardIdentifier** | **String** | The alphanumeric identifier of the loyalty card. | [optional] **bundleIndex** | **Long** | The position of the bundle in a list of item bundles created from the same bundle definition. | [optional] **bundleName** | **String** | The name of the bundle definition. | [optional] +**awaitsActivation** | **Boolean** | If `true`, the loyalty points are pending until action-based activation takes place. The `startDate` parameter automatically defaults to `on_action`. | [optional] +**validityDuration** | **String** | The duration for which the points remain active, relative to the activation date. Example: `30D`. **Note**: This value is only returned if `awaitsActivation` is `true` and `expiryDate` is not set. | [optional] diff --git a/docs/AsyncCouponsData.md b/docs/AsyncCouponsData.md index 017bf0f..5b329a2 100644 --- a/docs/AsyncCouponsData.md +++ b/docs/AsyncCouponsData.md @@ -10,7 +10,15 @@ Name | Type | Description | Notes **typeOfChange** | **String** | | **operation** | **String** | | **employeeName** | **String** | | -**notificationType** | **String** | The type of the notification | +**notificationType** | [**NotificationTypeEnum**](#NotificationTypeEnum) | The type of the notification | + + + +## Enum: NotificationTypeEnum + +Name | Value +---- | ----- +ASYNCCOUPONSCREATED | "AsyncCouponsCreated" diff --git a/docs/CampaignCollectionEditedNotification.md b/docs/CampaignCollectionEditedNotification.md index f5be4b0..e9a593b 100644 --- a/docs/CampaignCollectionEditedNotification.md +++ b/docs/CampaignCollectionEditedNotification.md @@ -6,9 +6,17 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**notificationType** | **String** | The type of the notification | +**notificationType** | [**NotificationTypeEnum**](#NotificationTypeEnum) | The type of the notification | **totalResultSize** | **Long** | The total size of the result set. | **data** | [**List<CampaignCollectionEditedNotificationItem>**](CampaignCollectionEditedNotificationItem.md) | A list of campaign notification data. | [optional] +## Enum: NotificationTypeEnum + +Name | Value +---- | ----- +CAMPAIGNNOTIFICATION | "CampaignNotification" + + + diff --git a/docs/CampaignCreatedNotification.md b/docs/CampaignCreatedNotification.md index 67bb0ec..43f43a1 100644 --- a/docs/CampaignCreatedNotification.md +++ b/docs/CampaignCreatedNotification.md @@ -6,9 +6,17 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**notificationType** | **String** | The type of the notification | +**notificationType** | [**NotificationTypeEnum**](#NotificationTypeEnum) | The type of the notification | **totalResultSize** | **Long** | The total size of the result set. | **data** | [**List<CampaignCreatedNotificationItem>**](CampaignCreatedNotificationItem.md) | A list of campaign notification data. | [optional] +## Enum: NotificationTypeEnum + +Name | Value +---- | ----- +CAMPAIGNNOTIFICATION | "CampaignNotification" + + + diff --git a/docs/CampaignDeletedNotification.md b/docs/CampaignDeletedNotification.md index f019b23..b2d4e45 100644 --- a/docs/CampaignDeletedNotification.md +++ b/docs/CampaignDeletedNotification.md @@ -6,9 +6,17 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**notificationType** | **String** | The type of the notification | +**notificationType** | [**NotificationTypeEnum**](#NotificationTypeEnum) | The type of the notification | **totalResultSize** | **Long** | The total size of the result set. | **data** | [**List<CampaignDeletedNotificationItem>**](CampaignDeletedNotificationItem.md) | A list of campaign notification data. | [optional] +## Enum: NotificationTypeEnum + +Name | Value +---- | ----- +CAMPAIGNNOTIFICATION | "CampaignNotification" + + + diff --git a/docs/CampaignEditedNotification.md b/docs/CampaignEditedNotification.md index 2798476..87c581c 100644 --- a/docs/CampaignEditedNotification.md +++ b/docs/CampaignEditedNotification.md @@ -6,9 +6,17 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**notificationType** | **String** | The type of the notification | +**notificationType** | [**NotificationTypeEnum**](#NotificationTypeEnum) | The type of the notification | **totalResultSize** | **Long** | The total size of the result set. | **data** | [**List<CampaignEditedNotificationItem>**](CampaignEditedNotificationItem.md) | A list of campaign notification data. | [optional] +## Enum: NotificationTypeEnum + +Name | Value +---- | ----- +CAMPAIGNNOTIFICATION | "CampaignNotification" + + + diff --git a/docs/CampaignEvaluationTreeChangedMessage.md b/docs/CampaignEvaluationTreeChangedMessage.md index 360540d..7e39edb 100644 --- a/docs/CampaignEvaluationTreeChangedMessage.md +++ b/docs/CampaignEvaluationTreeChangedMessage.md @@ -6,9 +6,17 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**notificationType** | **String** | The type of the notification | +**notificationType** | [**NotificationTypeEnum**](#NotificationTypeEnum) | The type of the notification | **totalResultSize** | **Long** | The total size of the result set. | **data** | [**List<ApplicationNotification>**](ApplicationNotification.md) | The array of changes. | [optional] +## Enum: NotificationTypeEnum + +Name | Value +---- | ----- +CAMPAIGNNOTIFICATION | "CampaignNotification" + + + diff --git a/docs/CampaignLogSummary.md b/docs/CampaignLogSummary.md new file mode 100644 index 0000000..3da60c7 --- /dev/null +++ b/docs/CampaignLogSummary.md @@ -0,0 +1,27 @@ + + +# CampaignLogSummary + +Campaign Log Summary +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**name** | **String** | Name of the user that performed the change. | +**email** | **String** | E-mail of the user that performed the change. | +**created** | [**OffsetDateTime**](OffsetDateTime.md) | Date and time the change was performed. | +**action** | [**ActionEnum**](#ActionEnum) | Action performed by the user. | +**summary** | **String** | AI-generated summary of the action performed. | + + + +## Enum: ActionEnum + +Name | Value +---- | ----- +CREATE | "create" +DELETE | "delete" +UPDATE | "update" + + + diff --git a/docs/CampaignNotificationBase.md b/docs/CampaignNotificationBase.md index 1b0b62c..3514515 100644 --- a/docs/CampaignNotificationBase.md +++ b/docs/CampaignNotificationBase.md @@ -6,8 +6,16 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**notificationType** | **String** | The type of the notification | +**notificationType** | [**NotificationTypeEnum**](#NotificationTypeEnum) | The type of the notification | **totalResultSize** | **Long** | The total size of the result set. | +## Enum: NotificationTypeEnum + +Name | Value +---- | ----- +CAMPAIGNNOTIFICATION | "CampaignNotification" + + + diff --git a/docs/CampaignNotificationGeneric.md b/docs/CampaignNotificationGeneric.md index c8640db..32ac9f6 100644 --- a/docs/CampaignNotificationGeneric.md +++ b/docs/CampaignNotificationGeneric.md @@ -6,9 +6,17 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**notificationType** | **String** | The type of the notification | +**notificationType** | [**NotificationTypeEnum**](#NotificationTypeEnum) | The type of the notification | **totalResultSize** | **Long** | The total size of the result set. | **data** | **List<Object>** | A list of campaign notification data. | +## Enum: NotificationTypeEnum + +Name | Value +---- | ----- +CAMPAIGNNOTIFICATION | "CampaignNotification" + + + diff --git a/docs/CampaignRulesetChangedNotification.md b/docs/CampaignRulesetChangedNotification.md index 50c0cb3..41b96d8 100644 --- a/docs/CampaignRulesetChangedNotification.md +++ b/docs/CampaignRulesetChangedNotification.md @@ -6,9 +6,17 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**notificationType** | **String** | The type of the notification | +**notificationType** | [**NotificationTypeEnum**](#NotificationTypeEnum) | The type of the notification | **totalResultSize** | **Long** | The total size of the result set. | **data** | [**List<CampaignRulesetChangedNotificationItem>**](CampaignRulesetChangedNotificationItem.md) | A list of campaign notification data. | [optional] +## Enum: NotificationTypeEnum + +Name | Value +---- | ----- +CAMPAIGNNOTIFICATION | "CampaignNotification" + + + diff --git a/docs/CampaignStateChangedNotification.md b/docs/CampaignStateChangedNotification.md index 3f8e6f6..5e972cb 100644 --- a/docs/CampaignStateChangedNotification.md +++ b/docs/CampaignStateChangedNotification.md @@ -6,9 +6,17 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**notificationType** | **String** | The type of the notification | +**notificationType** | [**NotificationTypeEnum**](#NotificationTypeEnum) | The type of the notification | **totalResultSize** | **Long** | The total size of the result set. | **data** | [**List<CampaignStateChangedNotificationItem>**](CampaignStateChangedNotificationItem.md) | A list of campaign notification data. | [optional] +## Enum: NotificationTypeEnum + +Name | Value +---- | ----- +CAMPAIGNNOTIFICATION | "CampaignNotification" + + + diff --git a/docs/CampaignTemplate.md b/docs/CampaignTemplate.md index 35f78b1..143432e 100644 --- a/docs/CampaignTemplate.md +++ b/docs/CampaignTemplate.md @@ -28,6 +28,7 @@ Name | Type | Description | Notes **campaignCollections** | [**List<CampaignTemplateCollection>**](CampaignTemplateCollection.md) | The campaign collections from the blueprint campaign for the template. | [optional] **defaultCampaignGroupId** | **Long** | The default campaign group ID. | [optional] **campaignType** | [**CampaignTypeEnum**](#CampaignTypeEnum) | The campaign type. Possible type values: - `cartItem`: Type of campaign that can apply effects only to cart items. - `advanced`: Type of campaign that can apply effects to customer sessions and cart items. | +**campaignsCount** | **Long** | The number of Campaigns created from this template. | [optional] **updated** | [**OffsetDateTime**](OffsetDateTime.md) | Timestamp of the most recent update to the campaign template or any of its elements. | [optional] **updatedBy** | **String** | Name of the user who last updated this campaign template, if available. | [optional] **validApplicationIds** | **List<Long>** | The IDs of the Applications that are related to this entity. | diff --git a/docs/CardLedgerTransactionLogEntryIntegrationAPI.md b/docs/CardLedgerTransactionLogEntryIntegrationAPI.md index 4165a4c..98ba985 100644 --- a/docs/CardLedgerTransactionLogEntryIntegrationAPI.md +++ b/docs/CardLedgerTransactionLogEntryIntegrationAPI.md @@ -14,7 +14,7 @@ Name | Type | Description | Notes **customerSessionId** | **String** | ID of the customer session where the transaction occurred. | [optional] **type** | [**TypeEnum**](#TypeEnum) | Type of transaction. Possible values: - `addition`: Signifies added points. - `subtraction`: Signifies deducted points. | **name** | **String** | Name or reason of the loyalty ledger transaction. | -**startDate** | **String** | When points become active. Possible values: - `immediate`: Points are active immediately. - a timestamp value: Points become active at a given date and time. | +**startDate** | **String** | When points become active. Possible values: - `immediate`: Points are active immediately. - `on_action`: Points become active based on the customer's action. - a timestamp value: Points become active at a given date and time. | **expiryDate** | **String** | Date when points expire. Possible values are: - `unlimited`: Points have no expiration date. - `timestamp value`: Points expire on the given date. | **subledgerId** | **String** | ID of the subledger. | **amount** | [**BigDecimal**](BigDecimal.md) | Amount of loyalty points added or deducted in the transaction. | diff --git a/docs/CouponsNotificationData.md b/docs/CouponsNotificationData.md index d15f086..a04e399 100644 --- a/docs/CouponsNotificationData.md +++ b/docs/CouponsNotificationData.md @@ -11,7 +11,16 @@ Name | Type | Description | Notes **employeeName** | **String** | The name of the employee associated with the operation. | **data** | [**List<ExtendedCoupon>**](ExtendedCoupon.md) | A list of extended coupon data. | [optional] **totalResultSize** | **Long** | | [optional] -**notificationType** | **String** | The type of the notification | +**notificationType** | [**NotificationTypeEnum**](#NotificationTypeEnum) | The type of the notification | + + + +## Enum: NotificationTypeEnum + +Name | Value +---- | ----- +COUPONUPDATED | "CouponUpdated" +COUPONDELETED | "CouponDeleted" diff --git a/docs/CreateCouponData.md b/docs/CreateCouponData.md index 09ed9ae..dfade05 100644 --- a/docs/CreateCouponData.md +++ b/docs/CreateCouponData.md @@ -12,7 +12,15 @@ Name | Type | Description | Notes **typeOfChange** | **String** | | **operation** | **String** | | **employeeName** | **String** | | -**notificationType** | **String** | The type of the not | +**notificationType** | [**NotificationTypeEnum**](#NotificationTypeEnum) | The type of the not | + + + +## Enum: NotificationTypeEnum + +Name | Value +---- | ----- +COUPONCREATED | "CouponCreated" diff --git a/docs/DeleteCouponsData.md b/docs/DeleteCouponsData.md index 16c1183..9d97675 100644 --- a/docs/DeleteCouponsData.md +++ b/docs/DeleteCouponsData.md @@ -13,7 +13,15 @@ Name | Type | Description | Notes **applicationID** | **Long** | | **campaignID** | **Long** | | **totalResultSize** | **Long** | | -**notificationType** | **String** | The type of the notification | +**notificationType** | [**NotificationTypeEnum**](#NotificationTypeEnum) | The type of the notification | + + + +## Enum: NotificationTypeEnum + +Name | Value +---- | ----- +COUPONSDELETED | "CouponsDeleted" diff --git a/docs/EventV3.md b/docs/EventV3.md new file mode 100644 index 0000000..9f4fc30 --- /dev/null +++ b/docs/EventV3.md @@ -0,0 +1,19 @@ + + +# EventV3 + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**profileId** | **String** | ID of the customer profile set by your integration layer. **Note:** If the customer does not yet have a known `profileId`, we recommend you use a guest `profileId`. | +**storeIntegrationId** | **String** | The integration ID of the store. You choose this ID when you create a store. | [optional] +**evaluableCampaignIds** | **List<Long>** | When using the `dry` query parameter, use this property to list the campaign to be evaluated by the Rule Engine. These campaigns will be evaluated, even if they are disabled, allowing you to test specific campaigns before activating them. | [optional] +**integrationId** | **String** | The unique ID of the current event. Only one event with this ID could be activated, duplicated events are forbidden. | +**type** | **String** | A string representing the event name. Must not be a reserved event name. You create this value when you [create an attribute](https://docs.talon.one/docs/dev/concepts/entities/events#creating-a-custom-event) of type `event` in the Campaign Manager. | +**attributes** | [**Object**](.md) | Arbitrary additional JSON properties associated with the event. They must be created in the Campaign Manager before setting them with this property. See [creating custom attributes](https://docs.talon.one/docs/product/account/dev-tools/managing-attributes#creating-a-custom-attribute). | [optional] +**connectedSessionID** | **String** | The ID of the session that happened in the past. | [optional] +**previousEventID** | **String** | The unique identifier of the event that happened in the past. | [optional] + + + diff --git a/docs/IntegrationApi.md b/docs/IntegrationApi.md index 71687fe..4422655 100644 --- a/docs/IntegrationApi.md +++ b/docs/IntegrationApi.md @@ -204,7 +204,7 @@ Name | Type | Description | Notes Create coupon reservation -Create a coupon reservation for the specified customer profiles on the specified coupon. You can also create a reservation via the Campaign Manager using the [Create coupon code reservation](https://docs.talon.one/docs/product/rules/effects/using-effects#reserving-a-coupon-code) effect. **Note:** - If the **Reservation mandatory** option was selected when creating the specified coupon, the endpoint creates a **hard** reservation, meaning only users who have this coupon code reserved can redeem it. Otherwise, the endpoint creates a **soft** reservation, meaning the coupon is associated with the specified customer profiles (they show up when using the [List customer data](https://docs.talon.one/integration-api#operation/getCustomerInventory) endpoint), but any user can redeem it. This can be useful, for example, to display a _coupon wallet_ for customers when they visit your store. - If the **Coupon visibility** option was selected when creating the specified coupon, the coupon code is implicitly soft-reserved for all customers, and the code will be returned for all customer profiles in the [List customer data](https://docs.talon.one/integration-api#operation/getCustomerInventory) endpoint. - This endpoint overrides the coupon reservation limit set when [the coupon is created](https://docs.talon.one/docs/product/campaigns/coupons/creating-coupons). To ensure that coupons cannot be reserved after the reservation limit is reached, use the [Create coupon code reservation](https://docs.talon.one/docs/product/rules/effects/using-effects#reserving-a-coupon-code) effect in the Rule Builder and the [Update customer session](https://docs.talon.one/integration-api#tag/Customer-sessions/operation/updateCustomerSessionV2) endpoint. To delete a reservation, use the [Delete reservation](https://docs.talon.one/integration-api#tag/Coupons/operation/deleteCouponReservation) endpoint. +Create a coupon reservation for the specified customer profiles on the specified coupon. You can also create a reservation via the Campaign Manager using the [Create coupon code reservation](https://docs.talon.one/docs/product/rules/effects/using-effects#reserving-a-coupon-code) effect. **Note:** - If the **Reservation mandatory** option was selected when creating the specified coupon, the endpoint creates a **hard** reservation, meaning only users who have this coupon code reserved can redeem it. Otherwise, the endpoint creates a **soft** reservation, meaning the coupon is associated with the specified customer profiles (they show up when using the [List customer data](https://docs.talon.one/integration-api#operation/getCustomerInventory) endpoint), but any user can redeem it. This can be useful, for example, to display a _coupon wallet_ for customers when they visit your store. - If the **Coupon visibility** option was selected when creating the specified coupon, the coupon code is implicitly soft-reserved for all customers, and the code will be returned for all customer profiles in the [List customer data](https://docs.talon.one/integration-api#operation/getCustomerInventory) endpoint. - This endpoint overrides the coupon reservation limit set when [the coupon is created](https://docs.talon.one/docs/product/campaigns/coupons/creating-coupons). To ensure that coupons cannot be reserved after the reservation limit is reached, use the [Create coupon code reservation](https://docs.talon.one/docs/product/rules/effects/using-effects#reserving-a-coupon-code) effect in the Rule Builder and the [Update customer session](https://docs.talon.one/integration-api#tag/Customer-sessions/operation/updateCustomerSessionV2) endpoint. To delete a reservation, use the [Delete reservation](https://docs.talon.one/integration-api#tag/Coupons/operation/deleteCouponReservation) endpoint. ### Example @@ -229,7 +229,7 @@ public class Example { //api_key_v1.setApiKeyPrefix("Token"); IntegrationApi apiInstance = new IntegrationApi(defaultClient); - String couponValue = "couponValue_example"; // String | The code of the coupon. + String couponValue = "couponValue_example"; // String | The code of the coupon. **Important:** The coupon code requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `SUMMER25%OFF` as `SUMMER25%25OFF`. CouponReservations body = new CouponReservations(); // CouponReservations | body try { Coupon result = apiInstance.createCouponReservation(couponValue, body); @@ -250,7 +250,7 @@ public class Example { Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **couponValue** | **String**| The code of the coupon. | + **couponValue** | **String**| The code of the coupon. **Important:** The coupon code requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `SUMMER25%OFF` as `SUMMER25%25OFF`. | **body** | [**CouponReservations**](CouponReservations.md)| body | ### Return type cool @@ -604,7 +604,7 @@ public class Example { //api_key_v1.setApiKeyPrefix("Token"); IntegrationApi apiInstance = new IntegrationApi(defaultClient); - String couponValue = "couponValue_example"; // String | The code of the coupon. + String couponValue = "couponValue_example"; // String | The code of the coupon. **Important:** The coupon code requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `SUMMER25%OFF` as `SUMMER25%25OFF`. CouponReservations body = new CouponReservations(); // CouponReservations | body try { apiInstance.deleteCouponReservation(couponValue, body); @@ -624,7 +624,7 @@ public class Example { Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **couponValue** | **String**| The code of the coupon. | + **couponValue** | **String**| The code of the coupon. **Important:** The coupon code requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `SUMMER25%OFF` as `SUMMER25%25OFF`. | **body** | [**CouponReservations**](CouponReservations.md)| body | ### Return type cool @@ -1697,7 +1697,7 @@ public class Example { //api_key_v1.setApiKeyPrefix("Token"); IntegrationApi apiInstance = new IntegrationApi(defaultClient); - String couponValue = "couponValue_example"; // String | The code of the coupon. + String couponValue = "couponValue_example"; // String | The code of the coupon. **Important:** The coupon code requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `SUMMER25%OFF` as `SUMMER25%25OFF`. try { InlineResponse200 result = apiInstance.getReservedCustomers(couponValue); System.out.println(result); @@ -1717,7 +1717,7 @@ public class Example { Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **couponValue** | **String**| The code of the coupon. | + **couponValue** | **String**| The code of the coupon. **Important:** The coupon code requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `SUMMER25%OFF` as `SUMMER25%25OFF`. | ### Return type cool diff --git a/docs/IntegrationEventV3Request.md b/docs/IntegrationEventV3Request.md new file mode 100644 index 0000000..fc0fd48 --- /dev/null +++ b/docs/IntegrationEventV3Request.md @@ -0,0 +1,34 @@ + + +# IntegrationEventV3Request + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**profileId** | **String** | ID of the customer profile set by your integration layer. **Note:** If the customer does not yet have a known `profileId`, we recommend you use a guest `profileId`. | +**storeIntegrationId** | **String** | The integration ID of the store. You choose this ID when you create a store. | [optional] +**evaluableCampaignIds** | **List<Long>** | When using the `dry` query parameter, use this property to list the campaign to be evaluated by the Rule Engine. These campaigns will be evaluated, even if they are disabled, allowing you to test specific campaigns before activating them. | [optional] +**integrationId** | **String** | The unique ID of the current event. Only one event with this ID could be activated, duplicated events are forbidden. | +**type** | **String** | A string representing the event name. Must not be a reserved event name. You create this value when you [create an attribute](https://docs.talon.one/docs/dev/concepts/entities/events#creating-a-custom-event) of type `event` in the Campaign Manager. | +**attributes** | [**Object**](.md) | Arbitrary additional JSON properties associated with the event. They must be created in the Campaign Manager before setting them with this property. See [creating custom attributes](https://docs.talon.one/docs/product/account/dev-tools/managing-attributes#creating-a-custom-attribute). | [optional] +**connectedSessionID** | **String** | The ID of the session that happened in the past. | [optional] +**previousEventID** | **String** | The unique identifier of the event that happened in the past. | [optional] +**loyaltyCards** | **List<String>** | Identifiers of the loyalty cards used during this event. | [optional] +**responseContent** | [**List<ResponseContentEnum>**](#List<ResponseContentEnum>) | Optional list of requested information to be present on the response related to the tracking custom event. | [optional] + + + +## Enum: List<ResponseContentEnum> + +Name | Value +---- | ----- +CUSTOMERPROFILE | "customerProfile" +TRIGGEREDCAMPAIGNS | "triggeredCampaigns" +LOYALTY | "loyalty" +EVENT | "event" +AWARDEDGIVEAWAYS | "awardedGiveaways" +RULEFAILUREREASONS | "ruleFailureReasons" + + + diff --git a/docs/IntegrationEventV3Response.md b/docs/IntegrationEventV3Response.md new file mode 100644 index 0000000..e3bfb44 --- /dev/null +++ b/docs/IntegrationEventV3Response.md @@ -0,0 +1,21 @@ + + +# IntegrationEventV3Response + +This is the response type returned by the trackEventV3 endpoint. +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**customerProfile** | [**CustomerProfile**](CustomerProfile.md) | | [optional] +**event** | [**EventV3**](EventV3.md) | | [optional] +**loyalty** | [**Loyalty**](Loyalty.md) | | [optional] +**triggeredCampaigns** | [**List<Campaign>**](Campaign.md) | | [optional] +**ruleFailureReasons** | [**List<RuleFailureReason>**](RuleFailureReason.md) | | [optional] +**awardedGiveaways** | [**List<Giveaway>**](Giveaway.md) | | [optional] +**effects** | [**List<Effect>**](Effect.md) | The effects generated by the rules in your running campaigns. See [API effects](https://docs.talon.one/docs/dev/integration-api/api-effects). | +**createdCoupons** | [**List<Coupon>**](Coupon.md) | | +**createdReferrals** | [**List<Referral>**](Referral.md) | | + + + diff --git a/docs/IntegrationProfileEntityV3.md b/docs/IntegrationProfileEntityV3.md new file mode 100644 index 0000000..de03ff2 --- /dev/null +++ b/docs/IntegrationProfileEntityV3.md @@ -0,0 +1,12 @@ + + +# IntegrationProfileEntityV3 + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**profileId** | **String** | ID of the customer profile set by your integration layer. **Note:** If the customer does not yet have a known `profileId`, we recommend you use a guest `profileId`. | + + + diff --git a/docs/LedgerTransactionLogEntryIntegrationAPI.md b/docs/LedgerTransactionLogEntryIntegrationAPI.md index 870d36c..ab4e220 100644 --- a/docs/LedgerTransactionLogEntryIntegrationAPI.md +++ b/docs/LedgerTransactionLogEntryIntegrationAPI.md @@ -13,7 +13,7 @@ Name | Type | Description | Notes **customerSessionId** | **String** | ID of the customer session where the transaction occurred. | [optional] **type** | [**TypeEnum**](#TypeEnum) | Type of transaction. Possible values: - `addition`: Signifies added points. - `subtraction`: Signifies deducted points. | **name** | **String** | Name or reason of the loyalty ledger transaction. | -**startDate** | **String** | When points become active. Possible values: - `immediate`: Points are immediately active. - a timestamp value: Points become active at a given date and time. | +**startDate** | **String** | When points become active. Possible values: - `immediate`: Points are immediately active. - `on_action`: Points become active based on the customer's action. - a timestamp value: Points become active at a given date and time. | **expiryDate** | **String** | Date when points expire. Possible values are: - `unlimited`: Points have no expiration date. - `timestamp value`: Points expire on the given date. | **subledgerId** | **String** | ID of the subledger. | **amount** | [**BigDecimal**](BigDecimal.md) | Amount of loyalty points added or deducted in the transaction. | diff --git a/docs/LoyaltyProgramTransaction.md b/docs/LoyaltyProgramTransaction.md index 19e4b09..65e5dd1 100644 --- a/docs/LoyaltyProgramTransaction.md +++ b/docs/LoyaltyProgramTransaction.md @@ -14,7 +14,7 @@ Name | Type | Description | Notes **type** | [**TypeEnum**](#TypeEnum) | Type of transaction. Possible values: - `addition`: Signifies added points. - `subtraction`: Signifies deducted points. | **amount** | [**BigDecimal**](BigDecimal.md) | Amount of loyalty points added or deducted in the transaction. | **name** | **String** | Name or reason for the loyalty ledger transaction. | -**startDate** | **String** | When points become active. Possible values: - `immediate`: Points are immediately active. - a timestamp value: Points become active at a given date and time. | +**startDate** | **String** | When points become active. Possible values: - `immediate`: Points are immediately active. - `on_action`: Points become active based on the customer's action. - a timestamp value: Points become active at a given date and time. | **expiryDate** | **String** | When points expire. Possible values: - `unlimited`: Points have no expiration date. - a timestamp value: Points expire at a given date and time. | **customerProfileId** | **String** | Customer profile integration ID used in the loyalty program. | [optional] **cardIdentifier** | **String** | The alphanumeric identifier of the loyalty card. | [optional] diff --git a/docs/ManagementApi.md b/docs/ManagementApi.md index 71777c4..c65538c 100644 --- a/docs/ManagementApi.md +++ b/docs/ManagementApi.md @@ -35,6 +35,7 @@ Method | HTTP request | Description [**deleteCoupon**](ManagementApi.md#deleteCoupon) | **DELETE** /v1/applications/{applicationId}/campaigns/{campaignId}/coupons/{couponId} | Delete coupon [**deleteCoupons**](ManagementApi.md#deleteCoupons) | **DELETE** /v1/applications/{applicationId}/campaigns/{campaignId}/coupons | Delete coupons [**deleteLoyaltyCard**](ManagementApi.md#deleteLoyaltyCard) | **DELETE** /v1/loyalty_programs/{loyaltyProgramId}/cards/{loyaltyCardId} | Delete loyalty card +[**deletePrismaticFlow**](ManagementApi.md#deletePrismaticFlow) | **DELETE** /v1/prismatic/flow | de-registers a prismatic flow for an event [**deleteReferral**](ManagementApi.md#deleteReferral) | **DELETE** /v1/applications/{applicationId}/campaigns/{campaignId}/referrals/{referralId} | Delete referral [**deleteStore**](ManagementApi.md#deleteStore) | **DELETE** /v1/applications/{applicationId}/stores/{storeId} | Delete store [**deleteUser**](ManagementApi.md#deleteUser) | **DELETE** /v1/users/{userId} | Delete user @@ -143,6 +144,7 @@ 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 [**oktaEventHandlerChallenge**](ManagementApi.md#oktaEventHandlerChallenge) | **GET** /v1/provisioning/okta | Validate Okta API ownership +[**postPrismaticFlow**](ManagementApi.md#postPrismaticFlow) | **POST** /v1/prismatic/flow | registers a prismatic flow for an event [**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 [**scimCreateGroup**](ManagementApi.md#scimCreateGroup) | **POST** /v1/provisioning/scim/Groups | Create SCIM group @@ -2905,6 +2907,89 @@ null (empty response body) | **404** | Not found | - | +## deletePrismaticFlow + +> deletePrismaticFlow(body) + +de-registers a prismatic flow for an event + +### Example + +```java +// Import classes: +import one.talon.ApiClient; +import one.talon.ApiException; +import one.talon.Configuration; +import one.talon.auth.*; +import one.talon.models.*; +import one.talon.api.ManagementApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("https://yourbaseurl.talon.one"); + + // Configure API key authorization: api_key_v1 + ApiKeyAuth api_key_v1 = (ApiKeyAuth) defaultClient.getAuthentication("api_key_v1"); + api_key_v1.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //api_key_v1.setApiKeyPrefix("Token"); + + // Configure API key authorization: management_key + ApiKeyAuth management_key = (ApiKeyAuth) defaultClient.getAuthentication("management_key"); + management_key.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //management_key.setApiKeyPrefix("Token"); + + // Configure API key authorization: manager_auth + ApiKeyAuth manager_auth = (ApiKeyAuth) defaultClient.getAuthentication("manager_auth"); + manager_auth.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //manager_auth.setApiKeyPrefix("Token"); + + ManagementApi apiInstance = new ManagementApi(defaultClient); + PrismaticFlow body = new PrismaticFlow(); // PrismaticFlow | + try { + apiInstance.deletePrismaticFlow(body); + } catch (ApiException e) { + System.err.println("Exception when calling ManagementApi#deletePrismaticFlow"); + 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** | [**PrismaticFlow**](PrismaticFlow.md)| | + +### Return type cool + +null (empty response body) + +### Authorization + +[api_key_v1](../README.md#api_key_v1), [management_key](../README.md#management_key), [manager_auth](../README.md#manager_auth) + +### HTTP request headers + +- **Content-Type**: application/json +- **Accept**: application/json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **204** | No Content | - | +| **400** | Bad Request | - | +| **500** | Internal Server Error | - | + + ## deleteReferral > deleteReferral(applicationId, campaignId, referralId) @@ -6781,7 +6866,7 @@ Name | Type | Description | Notes ## getAttributes -> InlineResponse20036 getAttributes(pageSize, skip, sort, entity) +> InlineResponse20036 getAttributes(pageSize, skip, sort, entity, applicationIds, type, kind, search) List custom attributes @@ -6826,8 +6911,12 @@ public class Example { Long skip = 56L; // Long | The number of items to skip when paging through large result sets. String sort = "sort_example"; // String | The field by which results should be sorted. By default, results are sorted in ascending order. To sort them in descending order, prefix the field name with `-`. **Note:** You may not be able to use all fields for sorting. This is due to performance limitations. String entity = "entity_example"; // String | Returned attributes will be filtered by supplied entity. + String applicationIds = "applicationIds_example"; // String | Returned attributes will be filtered by supplied application ids + String type = "type_example"; // String | Returned attributes will be filtered by supplied type + String kind = "kind_example"; // String | Returned attributes will be filtered by supplied kind (builtin or custom) + String search = "search_example"; // String | Returned attributes will be filtered by searching case insensitive through Attribute name, description and type try { - InlineResponse20036 result = apiInstance.getAttributes(pageSize, skip, sort, entity); + InlineResponse20036 result = apiInstance.getAttributes(pageSize, skip, sort, entity, applicationIds, type, kind, search); System.out.println(result); } catch (ApiException e) { System.err.println("Exception when calling ManagementApi#getAttributes"); @@ -6849,6 +6938,10 @@ Name | Type | Description | Notes **skip** | **Long**| The number of items to skip when paging through large result sets. | [optional] **sort** | **String**| The field by which results should be sorted. By default, results are sorted in ascending order. To sort them in descending order, prefix the field name with `-`. **Note:** You may not be able to use all fields for sorting. This is due to performance limitations. | [optional] **entity** | **String**| Returned attributes will be filtered by supplied entity. | [optional] + **applicationIds** | **String**| Returned attributes will be filtered by supplied application ids | [optional] + **type** | **String**| Returned attributes will be filtered by supplied type | [optional] + **kind** | **String**| Returned attributes will be filtered by supplied kind (builtin or custom) | [optional] [enum: builtin, custom] + **search** | **String**| Returned attributes will be filtered by searching case insensitive through Attribute name, description and type | [optional] ### Return type cool @@ -11568,7 +11661,7 @@ Name | Type | Description | Notes Import loyalty points -Upload a CSV file containing the loyalty points you want to import into a given loyalty program. Send the file as multipart data. Depending on the type of loyalty program, you can import points into a given customer profile or loyalty card. The CSV file contains the following columns: - `customerprofileid` (optional): For profile-based loyalty programs, the integration ID of the customer profile where the loyalty points are imported. **Note**: If the customer profile does not exist, it will be created. The profile will not be visible in any Application until a session or profile update is received for that profile. - `identifier` (optional): For card-based loyalty programs, the identifier of the loyalty card where the loyalty points are imported. - `amount`: The amount of points to award to the customer profile. - `startdate` (optional): The earliest date when the points can be redeemed. The points are `active` from this date until the expiration date. **Note**: It must be an RFC3339 timestamp string or string `immediate`. Empty or missing values are considered `immediate`. - `expirydate` (optional): The latest date when the points can be redeemed. The points are `expired` after this date. **Note**: It must be an RFC3339 timestamp string or string `unlimited`. Empty or missing values are considered `unlimited`. - `subledgerid` (optional): The ID of the subledger that should received the points. - `reason` (optional): The reason why these points are awarded. You can use the time zone of your choice. It is converted to UTC internally by Talon.One. **Note:** For existing customer profiles and loyalty cards, the imported points are added to any previous active or pending points, depending on the value provided for `startdate`. If `startdate` matches the current date, the imported points are _active_. If it is later, the points are _pending_ until the date provided for `startdate` is reached. **Note:** We recommend limiting your file size to 500MB. **Example for profile-based programs:** ```text customerprofileid,amount,startdate,expirydate,subledgerid,reason URNGV8294NV,100,2009-11-10T23:00:00Z,2009-11-11T23:00:00Z,subledger1,appeasement ``` **Example for card-based programs:** ```text identifier,amount,startdate,expirydate,subledgerid,reason summer-loyalty-card-0543,100,2009-11-10T23:00:00Z,2009-11-11T23:00:00Z,subledger1,appeasement ``` +Upload a CSV file containing the loyalty points you want to import into a given loyalty program. Send the file as multipart data. Depending on the type of loyalty program, you can import points into a given customer profile or loyalty card. The CSV file contains the following columns: - `customerprofileid` (optional): For profile-based loyalty programs, the integration ID of the customer profile where the loyalty points are imported. **Note**: If the customer profile does not exist, it will be created. The profile will not be visible in any Application until a session or profile update is received for that profile. - `identifier` (optional): For card-based loyalty programs, the identifier of the loyalty card where the loyalty points are imported. - `amount`: The amount of points to award to the customer profile. - `startdate` (optional): The earliest date when the points can be redeemed. The points are `active` from this date until the expiration date. This parameter accepts one of the following values: - A timestamp string in RFC3339 format. - `immediate` - `on_action` **Note**: Empty or missing values default to `immediate`. - `expirydate` (optional): The latest date when the points can be redeemed. The points are `expired` after this date. **Note**: It must be an RFC3339 timestamp string or string `unlimited`. Empty or missing values are considered `unlimited`. - `subledgerid` (optional): The ID of the subledger that should received the points. - `reason` (optional): The reason why these points are awarded. You can use the time zone of your choice. It is converted to UTC internally by Talon.One. **Note:** For existing customer profiles and loyalty cards, the imported points are added to any previous active or pending points, depending on the value provided for `startdate`. If `startdate` matches the current date, the imported points are _active_. If it is later, the points are _pending_ until the date provided for `startdate` is reached. **Note:** We recommend limiting your file size to 500MB. **Example for profile-based programs:** ```text customerprofileid,amount,startdate,expirydate,subledgerid,reason URNGV8294NV,100,2009-11-10T23:00:00Z,2009-11-11T23:00:00Z,subledger1,appeasement ``` **Example for card-based programs:** ```text identifier,amount,startdate,expirydate,subledgerid,reason summer-loyalty-card-0543,100,2009-11-10T23:00:00Z,2009-11-11T23:00:00Z,subledger1,appeasement ``` ### Example @@ -12732,6 +12825,89 @@ null (empty response body) | **200** | OK | - | +## postPrismaticFlow + +> postPrismaticFlow(body) + +registers a prismatic flow for an event + +### Example + +```java +// Import classes: +import one.talon.ApiClient; +import one.talon.ApiException; +import one.talon.Configuration; +import one.talon.auth.*; +import one.talon.models.*; +import one.talon.api.ManagementApi; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = Configuration.getDefaultApiClient(); + defaultClient.setBasePath("https://yourbaseurl.talon.one"); + + // Configure API key authorization: api_key_v1 + ApiKeyAuth api_key_v1 = (ApiKeyAuth) defaultClient.getAuthentication("api_key_v1"); + api_key_v1.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //api_key_v1.setApiKeyPrefix("Token"); + + // Configure API key authorization: management_key + ApiKeyAuth management_key = (ApiKeyAuth) defaultClient.getAuthentication("management_key"); + management_key.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //management_key.setApiKeyPrefix("Token"); + + // Configure API key authorization: manager_auth + ApiKeyAuth manager_auth = (ApiKeyAuth) defaultClient.getAuthentication("manager_auth"); + manager_auth.setApiKey("YOUR API KEY"); + // Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null) + //manager_auth.setApiKeyPrefix("Token"); + + ManagementApi apiInstance = new ManagementApi(defaultClient); + PrismaticFlowWithConfig body = new PrismaticFlowWithConfig(); // PrismaticFlowWithConfig | + try { + apiInstance.postPrismaticFlow(body); + } catch (ApiException e) { + System.err.println("Exception when calling ManagementApi#postPrismaticFlow"); + 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** | [**PrismaticFlowWithConfig**](PrismaticFlowWithConfig.md)| | + +### Return type cool + +null (empty response body) + +### Authorization + +[api_key_v1](../README.md#api_key_v1), [management_key](../README.md#management_key), [manager_auth](../README.md#manager_auth) + +### HTTP request headers + +- **Content-Type**: application/json +- **Accept**: application/json + +### HTTP response details +| Status code | Description | Response headers | +|-------------|-------------|------------------| +| **201** | Created | - | +| **400** | Bad Request | - | +| **500** | Internal Server Error | - | + + ## removeLoyaltyPoints > removeLoyaltyPoints(loyaltyProgramId, integrationId, body) diff --git a/docs/ManagementKey.md b/docs/ManagementKey.md index ad412ce..cbbb31d 100644 --- a/docs/ManagementKey.md +++ b/docs/ManagementKey.md @@ -15,6 +15,7 @@ Name | Type | Description | Notes **accountID** | **Long** | ID of account the key is used for. | **created** | [**OffsetDateTime**](OffsetDateTime.md) | The date the management key was created. | **disabled** | **Boolean** | The management key is disabled (this property is set to `true`) when the user who created the key is disabled or deleted. | [optional] +**lastUsed** | [**OffsetDateTime**](OffsetDateTime.md) | The last time the management key was used. | [optional] diff --git a/docs/NewManagementKey.md b/docs/NewManagementKey.md index 32b741b..69f4495 100644 --- a/docs/NewManagementKey.md +++ b/docs/NewManagementKey.md @@ -15,6 +15,7 @@ Name | Type | Description | Notes **accountID** | **Long** | ID of account the key is used for. | **created** | [**OffsetDateTime**](OffsetDateTime.md) | The date the management key was created. | **disabled** | **Boolean** | The management key is disabled (this property is set to `true`) when the user who created the key is disabled or deleted. | [optional] +**lastUsed** | [**OffsetDateTime**](OffsetDateTime.md) | The last time the management key was used. | [optional] **key** | **String** | The management key. | diff --git a/docs/NewMessageTest.md b/docs/NewMessageTest.md index 823370e..481c658 100644 --- a/docs/NewMessageTest.md +++ b/docs/NewMessageTest.md @@ -12,6 +12,7 @@ Name | Type | Description | Notes **payload** | **String** | API payload of this message. | [optional] **params** | [**List<TemplateArgDef>**](TemplateArgDef.md) | Array of template argument definitions. | [optional] **applicationIds** | **List<Long>** | The IDs of the Applications in which this webhook is available. An empty array means the webhook is available in `All Applications`. | [optional] +**authenticationId** | **Long** | The ID of the credential that this webhook is using. | [optional] diff --git a/docs/PrismaticFlow.md b/docs/PrismaticFlow.md new file mode 100644 index 0000000..de4bb1d --- /dev/null +++ b/docs/PrismaticFlow.md @@ -0,0 +1,40 @@ + + +# PrismaticFlow + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**eventType** | [**EventTypeEnum**](#EventTypeEnum) | The event type we want to register a flow for. | +**prismaticFlowUrl** | **String** | The URL of the prismatic flow that we want to trigger for the event. | + + + +## Enum: EventTypeEnum + +Name | Value +---- | ----- +STRIKETHROUGHPRICE | "StrikethroughPrice" +CAMPAIGNEVALUATIONTREECHANGED | "CampaignEvaluationTreeChanged" +CAMPAIGNNOTIFICATION | "CampaignNotification" +LOYALTYCARDPOINTSEXPIRING | "LoyaltyCardPointsExpiring" +ASYNCCOUPONSCREATED | "AsyncCouponsCreated" +COUPONCODEEXPIRING | "CouponCodeExpiring" +LOYALTYPOINTSEXPIRING | "LoyaltyPointsExpiring" +LOYALTYPOINTSPENDINGTOACTIVE | "LoyaltyPointsPendingToActive" +TIERDOWNGRADE | "TierDowngrade" +TIERUPGRADE | "TierUpgrade" +TIERWILLDOWNGRADE | "TierWillDowngrade" +COUPONCREATED | "CouponCreated" +COUPONUPDATED | "CouponUpdated" +COUPONDELETED | "CouponDeleted" +COUPONSUPDATED | "CouponsUpdated" +COUPONSDELETED | "CouponsDeleted" +LOYALTYCARDPOINTSADDED | "LoyaltyCardPointsAdded" +LOYALTYCARDPOINTSDEDUCTED | "LoyaltyCardPointsDeducted" +LOYALTYPOINTSADDED | "LoyaltyPointsAdded" +LOYALTYPOINTSDEDUCTED | "LoyaltyPointsDeducted" + + + diff --git a/docs/PrismaticFlowConfig.md b/docs/PrismaticFlowConfig.md new file mode 100644 index 0000000..6c58b49 --- /dev/null +++ b/docs/PrismaticFlowConfig.md @@ -0,0 +1,14 @@ + + +# PrismaticFlowConfig + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**apiKey** | **String** | | +**batchSize** | **Long** | Available for LoyaltyCardPointsExpiring, LoyaltyPointsExpiring, TierWillDowngrade, TierDowngrade, TierUpgrade, CouponCodeExpiring, CampaignNotification | [optional] +**periodsInDays** | **List<Long>** | Available for LoyaltyCardPointsExpiring, LoyaltyPointsExpiring, TierWillDowngrade | [optional] + + + diff --git a/docs/PrismaticFlowWithConfig.md b/docs/PrismaticFlowWithConfig.md new file mode 100644 index 0000000..2f5fcce --- /dev/null +++ b/docs/PrismaticFlowWithConfig.md @@ -0,0 +1,41 @@ + + +# PrismaticFlowWithConfig + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**eventType** | [**EventTypeEnum**](#EventTypeEnum) | The event type we want to register a flow for. | +**prismaticFlowUrl** | **String** | The URL of the prismatic flow that we want to trigger for the event. | +**config** | [**PrismaticFlowConfig**](PrismaticFlowConfig.md) | | + + + +## Enum: EventTypeEnum + +Name | Value +---- | ----- +STRIKETHROUGHPRICE | "StrikethroughPrice" +CAMPAIGNEVALUATIONTREECHANGED | "CampaignEvaluationTreeChanged" +CAMPAIGNNOTIFICATION | "CampaignNotification" +LOYALTYCARDPOINTSEXPIRING | "LoyaltyCardPointsExpiring" +ASYNCCOUPONSCREATED | "AsyncCouponsCreated" +COUPONCODEEXPIRING | "CouponCodeExpiring" +LOYALTYPOINTSEXPIRING | "LoyaltyPointsExpiring" +LOYALTYPOINTSPENDINGTOACTIVE | "LoyaltyPointsPendingToActive" +TIERDOWNGRADE | "TierDowngrade" +TIERUPGRADE | "TierUpgrade" +TIERWILLDOWNGRADE | "TierWillDowngrade" +COUPONCREATED | "CouponCreated" +COUPONUPDATED | "CouponUpdated" +COUPONDELETED | "CouponDeleted" +COUPONSUPDATED | "CouponsUpdated" +COUPONSDELETED | "CouponsDeleted" +LOYALTYCARDPOINTSADDED | "LoyaltyCardPointsAdded" +LOYALTYCARDPOINTSDEDUCTED | "LoyaltyCardPointsDeducted" +LOYALTYPOINTSADDED | "LoyaltyPointsAdded" +LOYALTYPOINTSDEDUCTED | "LoyaltyPointsDeducted" + + + diff --git a/docs/StrikethroughLabelingNotification.md b/docs/StrikethroughLabelingNotification.md index 0d8cb92..fbbfd1d 100644 --- a/docs/StrikethroughLabelingNotification.md +++ b/docs/StrikethroughLabelingNotification.md @@ -14,7 +14,8 @@ Name | Type | Description | Notes **totalBatches** | **Long** | The total number of batches for the notification. | **trigger** | [**StrikethroughTrigger**](StrikethroughTrigger.md) | | **changedItems** | [**List<StrikethroughChangedItem>**](StrikethroughChangedItem.md) | | -**notificationType** | **String** | The type of the notification | +**notificationType** | [**NotificationTypeEnum**](#NotificationTypeEnum) | The type of notification. | +**sentAt** | [**OffsetDateTime**](OffsetDateTime.md) | Timestamp at which the notification was sent. | @@ -26,3 +27,11 @@ V2 | "v2" +## Enum: NotificationTypeEnum + +Name | Value +---- | ----- +STRIKETHROUGHPRICE | "StrikethroughPrice" + + + diff --git a/docs/UpdateCouponsData.md b/docs/UpdateCouponsData.md index 9f86f0f..dd1c896 100644 --- a/docs/UpdateCouponsData.md +++ b/docs/UpdateCouponsData.md @@ -12,7 +12,15 @@ Name | Type | Description | Notes **typeOfChange** | **String** | | **operation** | **String** | | **employeeName** | **String** | | -**notificationType** | **String** | The type of the notification | +**notificationType** | [**NotificationTypeEnum**](#NotificationTypeEnum) | The type of the notification | + + + +## Enum: NotificationTypeEnum + +Name | Value +---- | ----- +COUPONSUPDATED | "CouponsUpdated" diff --git a/pom.xml b/pom.xml index cb38e6a..17167d7 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ talon-one-client jar talon-one-client - 14.1.0 + 99.99.99 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 f85429f..34a38a4 100644 --- a/src/main/java/one/talon/ApiClient.java +++ b/src/main/java/one/talon/ApiClient.java @@ -132,7 +132,7 @@ private void init() { json = new JSON(); // Set default User-Agent. - setUserAgent("OpenAPI-Generator/14.1.0/java"); + setUserAgent("OpenAPI-Generator/99.99.99/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 23c3df8..1889368 100644 --- a/src/main/java/one/talon/api/IntegrationApi.java +++ b/src/main/java/one/talon/api/IntegrationApi.java @@ -328,7 +328,7 @@ public okhttp3.Call createAudienceV2Async(NewAudience body, final ApiCallback createCouponReservationWithHttpInfo(String couponValu /** * Create coupon reservation (asynchronously) - * Create a coupon reservation for the specified customer profiles on the specified coupon. You can also create a reservation via the Campaign Manager using the [Create coupon code reservation](https://docs.talon.one/docs/product/rules/effects/using-effects#reserving-a-coupon-code) effect. **Note:** - If the **Reservation mandatory** option was selected when creating the specified coupon, the endpoint creates a **hard** reservation, meaning only users who have this coupon code reserved can redeem it. Otherwise, the endpoint creates a **soft** reservation, meaning the coupon is associated with the specified customer profiles (they show up when using the [List customer data](https://docs.talon.one/integration-api#operation/getCustomerInventory) endpoint), but any user can redeem it. This can be useful, for example, to display a _coupon wallet_ for customers when they visit your store. - If the **Coupon visibility** option was selected when creating the specified coupon, the coupon code is implicitly soft-reserved for all customers, and the code will be returned for all customer profiles in the [List customer data](https://docs.talon.one/integration-api#operation/getCustomerInventory) endpoint. - This endpoint overrides the coupon reservation limit set when [the coupon is created](https://docs.talon.one/docs/product/campaigns/coupons/creating-coupons). To ensure that coupons cannot be reserved after the reservation limit is reached, use the [Create coupon code reservation](https://docs.talon.one/docs/product/rules/effects/using-effects#reserving-a-coupon-code) effect in the Rule Builder and the [Update customer session](https://docs.talon.one/integration-api#tag/Customer-sessions/operation/updateCustomerSessionV2) endpoint. To delete a reservation, use the [Delete reservation](https://docs.talon.one/integration-api#tag/Coupons/operation/deleteCouponReservation) endpoint. - * @param couponValue The code of the coupon. (required) + * Create a coupon reservation for the specified customer profiles on the specified coupon. You can also create a reservation via the Campaign Manager using the [Create coupon code reservation](https://docs.talon.one/docs/product/rules/effects/using-effects#reserving-a-coupon-code) effect. **Note:** - If the **Reservation mandatory** option was selected when creating the specified coupon, the endpoint creates a **hard** reservation, meaning only users who have this coupon code reserved can redeem it. Otherwise, the endpoint creates a **soft** reservation, meaning the coupon is associated with the specified customer profiles (they show up when using the [List customer data](https://docs.talon.one/integration-api#operation/getCustomerInventory) endpoint), but any user can redeem it. This can be useful, for example, to display a _coupon wallet_ for customers when they visit your store. - If the **Coupon visibility** option was selected when creating the specified coupon, the coupon code is implicitly soft-reserved for all customers, and the code will be returned for all customer profiles in the [List customer data](https://docs.talon.one/integration-api#operation/getCustomerInventory) endpoint. - This endpoint overrides the coupon reservation limit set when [the coupon is created](https://docs.talon.one/docs/product/campaigns/coupons/creating-coupons). To ensure that coupons cannot be reserved after the reservation limit is reached, use the [Create coupon code reservation](https://docs.talon.one/docs/product/rules/effects/using-effects#reserving-a-coupon-code) effect in the Rule Builder and the [Update customer session](https://docs.talon.one/integration-api#tag/Customer-sessions/operation/updateCustomerSessionV2) endpoint. To delete a reservation, use the [Delete reservation](https://docs.talon.one/integration-api#tag/Coupons/operation/deleteCouponReservation) endpoint. + * @param couponValue The code of the coupon. **Important:** The coupon code requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `SUMMER25%OFF` as `SUMMER25%25OFF`. (required) * @param body body (required) * @param _callback The callback to be executed when the API call finishes * @return The request call @@ -942,7 +942,7 @@ public okhttp3.Call deleteAudienceV2Async(Long audienceId, final ApiCallback deleteCouponReservationWithHttpInfo(String couponValue, /** * Delete coupon reservations (asynchronously) * Remove all the coupon reservations from the provided customer profile integration IDs and the provided coupon code. - * @param couponValue The code of the coupon. (required) + * @param couponValue The code of the coupon. **Important:** The coupon code requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `SUMMER25%OFF` as `SUMMER25%25OFF`. (required) * @param body body (required) * @param _callback The callback to be executed when the API call finishes * @return The request call @@ -3029,7 +3029,7 @@ public okhttp3.Call getLoyaltyProgramProfileTransactionsAsync(Long loyaltyProgra } /** * Build call for getReservedCustomers - * @param couponValue The code of the coupon. (required) + * @param couponValue The code of the coupon. **Important:** The coupon code requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `SUMMER25%OFF` as `SUMMER25%25OFF`. (required) * @param _callback Callback for upload/download progress * @return Call to execute * @throws ApiException If fail to serialize the request body object @@ -3089,7 +3089,7 @@ private okhttp3.Call getReservedCustomersValidateBeforeCall(String couponValue, /** * List customers that have this coupon reserved * Return all customers that have this coupon marked as reserved. This includes hard and soft reservations. - * @param couponValue The code of the coupon. (required) + * @param couponValue The code of the coupon. **Important:** The coupon code requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `SUMMER25%OFF` as `SUMMER25%25OFF`. (required) * @return InlineResponse200 * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body * @http.response.details @@ -3109,7 +3109,7 @@ public InlineResponse200 getReservedCustomers(String couponValue) throws ApiExce /** * List customers that have this coupon reserved * Return all customers that have this coupon marked as reserved. This includes hard and soft reservations. - * @param couponValue The code of the coupon. (required) + * @param couponValue The code of the coupon. **Important:** The coupon code requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `SUMMER25%OFF` as `SUMMER25%25OFF`. (required) * @return ApiResponse<InlineResponse200> * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body * @http.response.details @@ -3130,7 +3130,7 @@ public ApiResponse getReservedCustomersWithHttpInfo(String co /** * List customers that have this coupon reserved (asynchronously) * Return all customers that have this coupon marked as reserved. This includes hard and soft reservations. - * @param couponValue The code of the coupon. (required) + * @param couponValue The code of the coupon. **Important:** The coupon code requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `SUMMER25%OFF` as `SUMMER25%25OFF`. (required) * @param _callback The callback to be executed when the API call finishes * @return The request call * @throws ApiException If fail to process the API call, e.g. serializing the request body object diff --git a/src/main/java/one/talon/api/ManagementApi.java b/src/main/java/one/talon/api/ManagementApi.java index 59cdad8..990af34 100644 --- a/src/main/java/one/talon/api/ManagementApi.java +++ b/src/main/java/one/talon/api/ManagementApi.java @@ -125,6 +125,8 @@ import one.talon.model.NewPasswordEmail; import one.talon.model.NewStore; import org.threeten.bp.OffsetDateTime; +import one.talon.model.PrismaticFlow; +import one.talon.model.PrismaticFlowWithConfig; import one.talon.model.Referral; import one.talon.model.RoleV2; import one.talon.model.RoleV2Base; @@ -4151,6 +4153,120 @@ public okhttp3.Call deleteLoyaltyCardAsync(Long loyaltyProgramId, String loyalty localVarApiClient.executeAsync(localVarCall, _callback); return localVarCall; } + /** + * Build call for deletePrismaticFlow + * @param body (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + +
Status Code Description Response Headers
204 No Content -
400 Bad Request -
500 Internal Server Error -
+ */ + public okhttp3.Call deletePrismaticFlowCall(PrismaticFlow body, final ApiCallback _callback) throws ApiException { + Object localVarPostBody = body; + + // create path and map variables + String localVarPath = "/v1/prismatic/flow"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + final String[] localVarAccepts = { + "application/json" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + localVarHeaderParams.put("Content-Type", localVarContentType); + + String[] localVarAuthNames = new String[] { "api_key_v1", "management_key", "manager_auth" }; + return localVarApiClient.buildCall(localVarPath, "DELETE", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call deletePrismaticFlowValidateBeforeCall(PrismaticFlow 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 deletePrismaticFlow(Async)"); + } + + + okhttp3.Call localVarCall = deletePrismaticFlowCall(body, _callback); + return localVarCall; + + } + + /** + * de-registers a prismatic flow for an event + * + * @param body (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Status Code Description Response Headers
204 No Content -
400 Bad Request -
500 Internal Server Error -
+ */ + public void deletePrismaticFlow(PrismaticFlow body) throws ApiException { + deletePrismaticFlowWithHttpInfo(body); + } + + /** + * de-registers a prismatic flow for an event + * + * @param body (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Status Code Description Response Headers
204 No Content -
400 Bad Request -
500 Internal Server Error -
+ */ + public ApiResponse deletePrismaticFlowWithHttpInfo(PrismaticFlow body) throws ApiException { + okhttp3.Call localVarCall = deletePrismaticFlowValidateBeforeCall(body, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * de-registers a prismatic flow for an event (asynchronously) + * + * @param body (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + +
Status Code Description Response Headers
204 No Content -
400 Bad Request -
500 Internal Server Error -
+ */ + public okhttp3.Call deletePrismaticFlowAsync(PrismaticFlow body, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = deletePrismaticFlowValidateBeforeCall(body, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } /** * Build call for deleteReferral * @param applicationId The ID of the Application. It is displayed in your Talon.One deployment URL. (required) @@ -10053,6 +10169,10 @@ public okhttp3.Call getAttributeAsync(Long attributeId, final ApiCallback 200 OK - */ - public okhttp3.Call getAttributesCall(Long pageSize, Long skip, String sort, String entity, final ApiCallback _callback) throws ApiException { + public okhttp3.Call getAttributesCall(Long pageSize, Long skip, String sort, String entity, String applicationIds, String type, String kind, String search, final ApiCallback _callback) throws ApiException { Object localVarPostBody = null; // create path and map variables @@ -10086,6 +10206,22 @@ public okhttp3.Call getAttributesCall(Long pageSize, Long skip, String sort, Str localVarQueryParams.addAll(localVarApiClient.parameterToPair("entity", entity)); } + if (applicationIds != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("applicationIds", applicationIds)); + } + + if (type != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("type", type)); + } + + if (kind != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("kind", kind)); + } + + if (search != null) { + localVarQueryParams.addAll(localVarApiClient.parameterToPair("search", search)); + } + Map localVarHeaderParams = new HashMap(); Map localVarCookieParams = new HashMap(); Map localVarFormParams = new HashMap(); @@ -10108,10 +10244,10 @@ public okhttp3.Call getAttributesCall(Long pageSize, Long skip, String sort, Str } @SuppressWarnings("rawtypes") - private okhttp3.Call getAttributesValidateBeforeCall(Long pageSize, Long skip, String sort, String entity, final ApiCallback _callback) throws ApiException { + private okhttp3.Call getAttributesValidateBeforeCall(Long pageSize, Long skip, String sort, String entity, String applicationIds, String type, String kind, String search, final ApiCallback _callback) throws ApiException { - okhttp3.Call localVarCall = getAttributesCall(pageSize, skip, sort, entity, _callback); + okhttp3.Call localVarCall = getAttributesCall(pageSize, skip, sort, entity, applicationIds, type, kind, search, _callback); return localVarCall; } @@ -10123,6 +10259,10 @@ private okhttp3.Call getAttributesValidateBeforeCall(Long pageSize, Long skip, S * @param skip The number of items to skip when paging through large result sets. (optional) * @param sort The field by which results should be sorted. By default, results are sorted in ascending order. To sort them in descending order, prefix the field name with `-`. **Note:** You may not be able to use all fields for sorting. This is due to performance limitations. (optional) * @param entity Returned attributes will be filtered by supplied entity. (optional) + * @param applicationIds Returned attributes will be filtered by supplied application ids (optional) + * @param type Returned attributes will be filtered by supplied type (optional) + * @param kind Returned attributes will be filtered by supplied kind (builtin or custom) (optional) + * @param search Returned attributes will be filtered by searching case insensitive through Attribute name, description and type (optional) * @return InlineResponse20036 * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body * @http.response.details @@ -10131,8 +10271,8 @@ private okhttp3.Call getAttributesValidateBeforeCall(Long pageSize, Long skip, S 200 OK - */ - public InlineResponse20036 getAttributes(Long pageSize, Long skip, String sort, String entity) throws ApiException { - ApiResponse localVarResp = getAttributesWithHttpInfo(pageSize, skip, sort, entity); + public InlineResponse20036 getAttributes(Long pageSize, Long skip, String sort, String entity, String applicationIds, String type, String kind, String search) throws ApiException { + ApiResponse localVarResp = getAttributesWithHttpInfo(pageSize, skip, sort, entity, applicationIds, type, kind, search); return localVarResp.getData(); } @@ -10143,6 +10283,10 @@ public InlineResponse20036 getAttributes(Long pageSize, Long skip, String sort, * @param skip The number of items to skip when paging through large result sets. (optional) * @param sort The field by which results should be sorted. By default, results are sorted in ascending order. To sort them in descending order, prefix the field name with `-`. **Note:** You may not be able to use all fields for sorting. This is due to performance limitations. (optional) * @param entity Returned attributes will be filtered by supplied entity. (optional) + * @param applicationIds Returned attributes will be filtered by supplied application ids (optional) + * @param type Returned attributes will be filtered by supplied type (optional) + * @param kind Returned attributes will be filtered by supplied kind (builtin or custom) (optional) + * @param search Returned attributes will be filtered by searching case insensitive through Attribute name, description and type (optional) * @return ApiResponse<InlineResponse20036> * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body * @http.response.details @@ -10151,8 +10295,8 @@ public InlineResponse20036 getAttributes(Long pageSize, Long skip, String sort, 200 OK - */ - public ApiResponse getAttributesWithHttpInfo(Long pageSize, Long skip, String sort, String entity) throws ApiException { - okhttp3.Call localVarCall = getAttributesValidateBeforeCall(pageSize, skip, sort, entity, null); + public ApiResponse getAttributesWithHttpInfo(Long pageSize, Long skip, String sort, String entity, String applicationIds, String type, String kind, String search) throws ApiException { + okhttp3.Call localVarCall = getAttributesValidateBeforeCall(pageSize, skip, sort, entity, applicationIds, type, kind, search, null); Type localVarReturnType = new TypeToken(){}.getType(); return localVarApiClient.execute(localVarCall, localVarReturnType); } @@ -10164,6 +10308,10 @@ public ApiResponse getAttributesWithHttpInfo(Long pageSize, * @param skip The number of items to skip when paging through large result sets. (optional) * @param sort The field by which results should be sorted. By default, results are sorted in ascending order. To sort them in descending order, prefix the field name with `-`. **Note:** You may not be able to use all fields for sorting. This is due to performance limitations. (optional) * @param entity Returned attributes will be filtered by supplied entity. (optional) + * @param applicationIds Returned attributes will be filtered by supplied application ids (optional) + * @param type Returned attributes will be filtered by supplied type (optional) + * @param kind Returned attributes will be filtered by supplied kind (builtin or custom) (optional) + * @param search Returned attributes will be filtered by searching case insensitive through Attribute name, description and type (optional) * @param _callback The callback to be executed when the API call finishes * @return The request call * @throws ApiException If fail to process the API call, e.g. serializing the request body object @@ -10173,9 +10321,9 @@ public ApiResponse getAttributesWithHttpInfo(Long pageSize, 200 OK - */ - public okhttp3.Call getAttributesAsync(Long pageSize, Long skip, String sort, String entity, final ApiCallback _callback) throws ApiException { + public okhttp3.Call getAttributesAsync(Long pageSize, Long skip, String sort, String entity, String applicationIds, String type, String kind, String search, final ApiCallback _callback) throws ApiException { - okhttp3.Call localVarCall = getAttributesValidateBeforeCall(pageSize, skip, sort, entity, _callback); + okhttp3.Call localVarCall = getAttributesValidateBeforeCall(pageSize, skip, sort, entity, applicationIds, type, kind, search, _callback); Type localVarReturnType = new TypeToken(){}.getType(); localVarApiClient.executeAsync(localVarCall, localVarReturnType, _callback); return localVarCall; @@ -17630,7 +17778,7 @@ private okhttp3.Call importLoyaltyPointsValidateBeforeCall(Long loyaltyProgramId /** * Import loyalty points - * Upload a CSV file containing the loyalty points you want to import into a given loyalty program. Send the file as multipart data. Depending on the type of loyalty program, you can import points into a given customer profile or loyalty card. The CSV file contains the following columns: - `customerprofileid` (optional): For profile-based loyalty programs, the integration ID of the customer profile where the loyalty points are imported. **Note**: If the customer profile does not exist, it will be created. The profile will not be visible in any Application until a session or profile update is received for that profile. - `identifier` (optional): For card-based loyalty programs, the identifier of the loyalty card where the loyalty points are imported. - `amount`: The amount of points to award to the customer profile. - `startdate` (optional): The earliest date when the points can be redeemed. The points are `active` from this date until the expiration date. **Note**: It must be an RFC3339 timestamp string or string `immediate`. Empty or missing values are considered `immediate`. - `expirydate` (optional): The latest date when the points can be redeemed. The points are `expired` after this date. **Note**: It must be an RFC3339 timestamp string or string `unlimited`. Empty or missing values are considered `unlimited`. - `subledgerid` (optional): The ID of the subledger that should received the points. - `reason` (optional): The reason why these points are awarded. You can use the time zone of your choice. It is converted to UTC internally by Talon.One. **Note:** For existing customer profiles and loyalty cards, the imported points are added to any previous active or pending points, depending on the value provided for `startdate`. If `startdate` matches the current date, the imported points are _active_. If it is later, the points are _pending_ until the date provided for `startdate` is reached. **Note:** We recommend limiting your file size to 500MB. **Example for profile-based programs:** ```text customerprofileid,amount,startdate,expirydate,subledgerid,reason URNGV8294NV,100,2009-11-10T23:00:00Z,2009-11-11T23:00:00Z,subledger1,appeasement ``` **Example for card-based programs:** ```text identifier,amount,startdate,expirydate,subledgerid,reason summer-loyalty-card-0543,100,2009-11-10T23:00:00Z,2009-11-11T23:00:00Z,subledger1,appeasement ``` + * Upload a CSV file containing the loyalty points you want to import into a given loyalty program. Send the file as multipart data. Depending on the type of loyalty program, you can import points into a given customer profile or loyalty card. The CSV file contains the following columns: - `customerprofileid` (optional): For profile-based loyalty programs, the integration ID of the customer profile where the loyalty points are imported. **Note**: If the customer profile does not exist, it will be created. The profile will not be visible in any Application until a session or profile update is received for that profile. - `identifier` (optional): For card-based loyalty programs, the identifier of the loyalty card where the loyalty points are imported. - `amount`: The amount of points to award to the customer profile. - `startdate` (optional): The earliest date when the points can be redeemed. The points are `active` from this date until the expiration date. This parameter accepts one of the following values: - A timestamp string in RFC3339 format. - `immediate` - `on_action` **Note**: Empty or missing values default to `immediate`. - `expirydate` (optional): The latest date when the points can be redeemed. The points are `expired` after this date. **Note**: It must be an RFC3339 timestamp string or string `unlimited`. Empty or missing values are considered `unlimited`. - `subledgerid` (optional): The ID of the subledger that should received the points. - `reason` (optional): The reason why these points are awarded. You can use the time zone of your choice. It is converted to UTC internally by Talon.One. **Note:** For existing customer profiles and loyalty cards, the imported points are added to any previous active or pending points, depending on the value provided for `startdate`. If `startdate` matches the current date, the imported points are _active_. If it is later, the points are _pending_ until the date provided for `startdate` is reached. **Note:** We recommend limiting your file size to 500MB. **Example for profile-based programs:** ```text customerprofileid,amount,startdate,expirydate,subledgerid,reason URNGV8294NV,100,2009-11-10T23:00:00Z,2009-11-11T23:00:00Z,subledger1,appeasement ``` **Example for card-based programs:** ```text identifier,amount,startdate,expirydate,subledgerid,reason summer-loyalty-card-0543,100,2009-11-10T23:00:00Z,2009-11-11T23:00:00Z,subledger1,appeasement ``` * @param loyaltyProgramId Identifier of the loyalty program. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. (required) * @param notificationsEnabled Indicates whether the points import triggers notifications about its effects. For example, a notification is sent if the import upgrades a customer's tier or offsets their negative points balance. This parameter is optional and defaults to `true`. (optional) * @param upFile The file containing the data that is being imported. (optional) @@ -17649,7 +17797,7 @@ public ModelImport importLoyaltyPoints(Long loyaltyProgramId, Boolean notificati /** * Import loyalty points - * Upload a CSV file containing the loyalty points you want to import into a given loyalty program. Send the file as multipart data. Depending on the type of loyalty program, you can import points into a given customer profile or loyalty card. The CSV file contains the following columns: - `customerprofileid` (optional): For profile-based loyalty programs, the integration ID of the customer profile where the loyalty points are imported. **Note**: If the customer profile does not exist, it will be created. The profile will not be visible in any Application until a session or profile update is received for that profile. - `identifier` (optional): For card-based loyalty programs, the identifier of the loyalty card where the loyalty points are imported. - `amount`: The amount of points to award to the customer profile. - `startdate` (optional): The earliest date when the points can be redeemed. The points are `active` from this date until the expiration date. **Note**: It must be an RFC3339 timestamp string or string `immediate`. Empty or missing values are considered `immediate`. - `expirydate` (optional): The latest date when the points can be redeemed. The points are `expired` after this date. **Note**: It must be an RFC3339 timestamp string or string `unlimited`. Empty or missing values are considered `unlimited`. - `subledgerid` (optional): The ID of the subledger that should received the points. - `reason` (optional): The reason why these points are awarded. You can use the time zone of your choice. It is converted to UTC internally by Talon.One. **Note:** For existing customer profiles and loyalty cards, the imported points are added to any previous active or pending points, depending on the value provided for `startdate`. If `startdate` matches the current date, the imported points are _active_. If it is later, the points are _pending_ until the date provided for `startdate` is reached. **Note:** We recommend limiting your file size to 500MB. **Example for profile-based programs:** ```text customerprofileid,amount,startdate,expirydate,subledgerid,reason URNGV8294NV,100,2009-11-10T23:00:00Z,2009-11-11T23:00:00Z,subledger1,appeasement ``` **Example for card-based programs:** ```text identifier,amount,startdate,expirydate,subledgerid,reason summer-loyalty-card-0543,100,2009-11-10T23:00:00Z,2009-11-11T23:00:00Z,subledger1,appeasement ``` + * Upload a CSV file containing the loyalty points you want to import into a given loyalty program. Send the file as multipart data. Depending on the type of loyalty program, you can import points into a given customer profile or loyalty card. The CSV file contains the following columns: - `customerprofileid` (optional): For profile-based loyalty programs, the integration ID of the customer profile where the loyalty points are imported. **Note**: If the customer profile does not exist, it will be created. The profile will not be visible in any Application until a session or profile update is received for that profile. - `identifier` (optional): For card-based loyalty programs, the identifier of the loyalty card where the loyalty points are imported. - `amount`: The amount of points to award to the customer profile. - `startdate` (optional): The earliest date when the points can be redeemed. The points are `active` from this date until the expiration date. This parameter accepts one of the following values: - A timestamp string in RFC3339 format. - `immediate` - `on_action` **Note**: Empty or missing values default to `immediate`. - `expirydate` (optional): The latest date when the points can be redeemed. The points are `expired` after this date. **Note**: It must be an RFC3339 timestamp string or string `unlimited`. Empty or missing values are considered `unlimited`. - `subledgerid` (optional): The ID of the subledger that should received the points. - `reason` (optional): The reason why these points are awarded. You can use the time zone of your choice. It is converted to UTC internally by Talon.One. **Note:** For existing customer profiles and loyalty cards, the imported points are added to any previous active or pending points, depending on the value provided for `startdate`. If `startdate` matches the current date, the imported points are _active_. If it is later, the points are _pending_ until the date provided for `startdate` is reached. **Note:** We recommend limiting your file size to 500MB. **Example for profile-based programs:** ```text customerprofileid,amount,startdate,expirydate,subledgerid,reason URNGV8294NV,100,2009-11-10T23:00:00Z,2009-11-11T23:00:00Z,subledger1,appeasement ``` **Example for card-based programs:** ```text identifier,amount,startdate,expirydate,subledgerid,reason summer-loyalty-card-0543,100,2009-11-10T23:00:00Z,2009-11-11T23:00:00Z,subledger1,appeasement ``` * @param loyaltyProgramId Identifier of the loyalty program. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. (required) * @param notificationsEnabled Indicates whether the points import triggers notifications about its effects. For example, a notification is sent if the import upgrades a customer's tier or offsets their negative points balance. This parameter is optional and defaults to `true`. (optional) * @param upFile The file containing the data that is being imported. (optional) @@ -17669,7 +17817,7 @@ public ApiResponse importLoyaltyPointsWithHttpInfo(Long loyaltyProg /** * Import loyalty points (asynchronously) - * Upload a CSV file containing the loyalty points you want to import into a given loyalty program. Send the file as multipart data. Depending on the type of loyalty program, you can import points into a given customer profile or loyalty card. The CSV file contains the following columns: - `customerprofileid` (optional): For profile-based loyalty programs, the integration ID of the customer profile where the loyalty points are imported. **Note**: If the customer profile does not exist, it will be created. The profile will not be visible in any Application until a session or profile update is received for that profile. - `identifier` (optional): For card-based loyalty programs, the identifier of the loyalty card where the loyalty points are imported. - `amount`: The amount of points to award to the customer profile. - `startdate` (optional): The earliest date when the points can be redeemed. The points are `active` from this date until the expiration date. **Note**: It must be an RFC3339 timestamp string or string `immediate`. Empty or missing values are considered `immediate`. - `expirydate` (optional): The latest date when the points can be redeemed. The points are `expired` after this date. **Note**: It must be an RFC3339 timestamp string or string `unlimited`. Empty or missing values are considered `unlimited`. - `subledgerid` (optional): The ID of the subledger that should received the points. - `reason` (optional): The reason why these points are awarded. You can use the time zone of your choice. It is converted to UTC internally by Talon.One. **Note:** For existing customer profiles and loyalty cards, the imported points are added to any previous active or pending points, depending on the value provided for `startdate`. If `startdate` matches the current date, the imported points are _active_. If it is later, the points are _pending_ until the date provided for `startdate` is reached. **Note:** We recommend limiting your file size to 500MB. **Example for profile-based programs:** ```text customerprofileid,amount,startdate,expirydate,subledgerid,reason URNGV8294NV,100,2009-11-10T23:00:00Z,2009-11-11T23:00:00Z,subledger1,appeasement ``` **Example for card-based programs:** ```text identifier,amount,startdate,expirydate,subledgerid,reason summer-loyalty-card-0543,100,2009-11-10T23:00:00Z,2009-11-11T23:00:00Z,subledger1,appeasement ``` + * Upload a CSV file containing the loyalty points you want to import into a given loyalty program. Send the file as multipart data. Depending on the type of loyalty program, you can import points into a given customer profile or loyalty card. The CSV file contains the following columns: - `customerprofileid` (optional): For profile-based loyalty programs, the integration ID of the customer profile where the loyalty points are imported. **Note**: If the customer profile does not exist, it will be created. The profile will not be visible in any Application until a session or profile update is received for that profile. - `identifier` (optional): For card-based loyalty programs, the identifier of the loyalty card where the loyalty points are imported. - `amount`: The amount of points to award to the customer profile. - `startdate` (optional): The earliest date when the points can be redeemed. The points are `active` from this date until the expiration date. This parameter accepts one of the following values: - A timestamp string in RFC3339 format. - `immediate` - `on_action` **Note**: Empty or missing values default to `immediate`. - `expirydate` (optional): The latest date when the points can be redeemed. The points are `expired` after this date. **Note**: It must be an RFC3339 timestamp string or string `unlimited`. Empty or missing values are considered `unlimited`. - `subledgerid` (optional): The ID of the subledger that should received the points. - `reason` (optional): The reason why these points are awarded. You can use the time zone of your choice. It is converted to UTC internally by Talon.One. **Note:** For existing customer profiles and loyalty cards, the imported points are added to any previous active or pending points, depending on the value provided for `startdate`. If `startdate` matches the current date, the imported points are _active_. If it is later, the points are _pending_ until the date provided for `startdate` is reached. **Note:** We recommend limiting your file size to 500MB. **Example for profile-based programs:** ```text customerprofileid,amount,startdate,expirydate,subledgerid,reason URNGV8294NV,100,2009-11-10T23:00:00Z,2009-11-11T23:00:00Z,subledger1,appeasement ``` **Example for card-based programs:** ```text identifier,amount,startdate,expirydate,subledgerid,reason summer-loyalty-card-0543,100,2009-11-10T23:00:00Z,2009-11-11T23:00:00Z,subledger1,appeasement ``` * @param loyaltyProgramId Identifier of the loyalty program. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. (required) * @param notificationsEnabled Indicates whether the points import triggers notifications about its effects. For example, a notification is sent if the import upgrades a customer's tier or offsets their negative points balance. This parameter is optional and defaults to `true`. (optional) * @param upFile The file containing the data that is being imported. (optional) @@ -19334,6 +19482,120 @@ public okhttp3.Call oktaEventHandlerChallengeAsync(final ApiCallback _call localVarApiClient.executeAsync(localVarCall, _callback); return localVarCall; } + /** + * Build call for postPrismaticFlow + * @param body (required) + * @param _callback Callback for upload/download progress + * @return Call to execute + * @throws ApiException If fail to serialize the request body object + * @http.response.details + + + + + +
Status Code Description Response Headers
201 Created -
400 Bad Request -
500 Internal Server Error -
+ */ + public okhttp3.Call postPrismaticFlowCall(PrismaticFlowWithConfig body, final ApiCallback _callback) throws ApiException { + Object localVarPostBody = body; + + // create path and map variables + String localVarPath = "/v1/prismatic/flow"; + + List localVarQueryParams = new ArrayList(); + List localVarCollectionQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + Map localVarCookieParams = new HashMap(); + Map localVarFormParams = new HashMap(); + final String[] localVarAccepts = { + "application/json" + }; + final String localVarAccept = localVarApiClient.selectHeaderAccept(localVarAccepts); + if (localVarAccept != null) { + localVarHeaderParams.put("Accept", localVarAccept); + } + + final String[] localVarContentTypes = { + "application/json" + }; + final String localVarContentType = localVarApiClient.selectHeaderContentType(localVarContentTypes); + localVarHeaderParams.put("Content-Type", localVarContentType); + + String[] localVarAuthNames = new String[] { "api_key_v1", "management_key", "manager_auth" }; + return localVarApiClient.buildCall(localVarPath, "POST", localVarQueryParams, localVarCollectionQueryParams, localVarPostBody, localVarHeaderParams, localVarCookieParams, localVarFormParams, localVarAuthNames, _callback); + } + + @SuppressWarnings("rawtypes") + private okhttp3.Call postPrismaticFlowValidateBeforeCall(PrismaticFlowWithConfig 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 postPrismaticFlow(Async)"); + } + + + okhttp3.Call localVarCall = postPrismaticFlowCall(body, _callback); + return localVarCall; + + } + + /** + * registers a prismatic flow for an event + * + * @param body (required) + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Status Code Description Response Headers
201 Created -
400 Bad Request -
500 Internal Server Error -
+ */ + public void postPrismaticFlow(PrismaticFlowWithConfig body) throws ApiException { + postPrismaticFlowWithHttpInfo(body); + } + + /** + * registers a prismatic flow for an event + * + * @param body (required) + * @return ApiResponse<Void> + * @throws ApiException If fail to call the API, e.g. server error or cannot deserialize the response body + * @http.response.details + + + + + +
Status Code Description Response Headers
201 Created -
400 Bad Request -
500 Internal Server Error -
+ */ + public ApiResponse postPrismaticFlowWithHttpInfo(PrismaticFlowWithConfig body) throws ApiException { + okhttp3.Call localVarCall = postPrismaticFlowValidateBeforeCall(body, null); + return localVarApiClient.execute(localVarCall); + } + + /** + * registers a prismatic flow for an event (asynchronously) + * + * @param body (required) + * @param _callback The callback to be executed when the API call finishes + * @return The request call + * @throws ApiException If fail to process the API call, e.g. serializing the request body object + * @http.response.details + + + + + +
Status Code Description Response Headers
201 Created -
400 Bad Request -
500 Internal Server Error -
+ */ + public okhttp3.Call postPrismaticFlowAsync(PrismaticFlowWithConfig body, final ApiCallback _callback) throws ApiException { + + okhttp3.Call localVarCall = postPrismaticFlowValidateBeforeCall(body, _callback); + localVarApiClient.executeAsync(localVarCall, _callback); + return localVarCall; + } /** * Build call for removeLoyaltyPoints * @param loyaltyProgramId The identifier for the loyalty program. (required) diff --git a/src/main/java/one/talon/model/ActivateLoyaltyPoints.java b/src/main/java/one/talon/model/ActivateLoyaltyPoints.java new file mode 100644 index 0000000..7e4d802 --- /dev/null +++ b/src/main/java/one/talon/model/ActivateLoyaltyPoints.java @@ -0,0 +1,140 @@ +/* + * Talon.One API + * Use the Talon.One API to integrate with your application and to manage applications and campaigns: - Use the operations in the [Integration API section](#integration-api) are used to integrate with our platform - Use the operation in the [Management API section](#management-api) to manage applications and campaigns. ## Determining the base URL of the endpoints The API is available at the same hostname as your Campaign Manager deployment. For example, if you access the Campaign Manager at `https://yourbaseurl.talon.one/`, the URL for the [updateCustomerSessionV2](https://docs.talon.one/integration-api#operation/updateCustomerSessionV2) endpoint is `https://yourbaseurl.talon.one/v2/customer_sessions/{Id}` + * + * The version of the OpenAPI document: + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package one.talon.model; + +import java.util.Objects; +import java.util.Arrays; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import java.util.UUID; + +/** + * Activate loyalty points. + */ +@ApiModel(description = "Activate loyalty points.") + +public class ActivateLoyaltyPoints { + public static final String SERIALIZED_NAME_TRANSACTION_U_U_I_DS = "transactionUUIDs"; + @SerializedName(SERIALIZED_NAME_TRANSACTION_U_U_I_DS) + private List transactionUUIDs = null; + + public static final String SERIALIZED_NAME_SESSION_ID = "sessionId"; + @SerializedName(SERIALIZED_NAME_SESSION_ID) + private String sessionId; + + + public ActivateLoyaltyPoints transactionUUIDs(List transactionUUIDs) { + + this.transactionUUIDs = transactionUUIDs; + return this; + } + + public ActivateLoyaltyPoints addTransactionUUIDsItem(UUID transactionUUIDsItem) { + if (this.transactionUUIDs == null) { + this.transactionUUIDs = new ArrayList(); + } + this.transactionUUIDs.add(transactionUUIDsItem); + return this; + } + + /** + * The list of transaction UUIDs used to activate point transactions. If passed, `sessionId` must be omitted. + * @return transactionUUIDs + **/ + @javax.annotation.Nullable + @ApiModelProperty(value = "The list of transaction UUIDs used to activate point transactions. If passed, `sessionId` must be omitted. ") + + public List getTransactionUUIDs() { + return transactionUUIDs; + } + + + public void setTransactionUUIDs(List transactionUUIDs) { + this.transactionUUIDs = transactionUUIDs; + } + + + public ActivateLoyaltyPoints sessionId(String sessionId) { + + this.sessionId = sessionId; + return this; + } + + /** + * The integration ID of the session with the point transactions to be activated. If passed, `transactionUUIDs` must be omitted. + * @return sessionId + **/ + @javax.annotation.Nullable + @ApiModelProperty(value = "The integration ID of the session with the point transactions to be activated. If passed, `transactionUUIDs` must be omitted. ") + + public String getSessionId() { + return sessionId; + } + + + public void setSessionId(String sessionId) { + this.sessionId = sessionId; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ActivateLoyaltyPoints activateLoyaltyPoints = (ActivateLoyaltyPoints) o; + return Objects.equals(this.transactionUUIDs, activateLoyaltyPoints.transactionUUIDs) && + Objects.equals(this.sessionId, activateLoyaltyPoints.sessionId); + } + + @Override + public int hashCode() { + return Objects.hash(transactionUUIDs, sessionId); + } + + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ActivateLoyaltyPoints {\n"); + sb.append(" transactionUUIDs: ").append(toIndentedString(transactionUUIDs)).append("\n"); + sb.append(" sessionId: ").append(toIndentedString(sessionId)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + +} + diff --git a/src/main/java/one/talon/model/ActivateLoyaltyPointsResponse.java b/src/main/java/one/talon/model/ActivateLoyaltyPointsResponse.java new file mode 100644 index 0000000..bd98fad --- /dev/null +++ b/src/main/java/one/talon/model/ActivateLoyaltyPointsResponse.java @@ -0,0 +1,110 @@ +/* + * Talon.One API + * Use the Talon.One API to integrate with your application and to manage applications and campaigns: - Use the operations in the [Integration API section](#integration-api) are used to integrate with our platform - Use the operation in the [Management API section](#management-api) to manage applications and campaigns. ## Determining the base URL of the endpoints The API is available at the same hostname as your Campaign Manager deployment. For example, if you access the Campaign Manager at `https://yourbaseurl.talon.one/`, the URL for the [updateCustomerSessionV2](https://docs.talon.one/integration-api#operation/updateCustomerSessionV2) endpoint is `https://yourbaseurl.talon.one/v2/customer_sessions/{Id}` + * + * The version of the OpenAPI document: + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package one.talon.model; + +import java.util.Objects; +import java.util.Arrays; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import one.talon.model.LoyaltyLedgerEntry; + +/** + * ActivateLoyaltyPointsResponse + */ + +public class ActivateLoyaltyPointsResponse { + public static final String SERIALIZED_NAME_LEDGER_ENTRIES = "ledgerEntries"; + @SerializedName(SERIALIZED_NAME_LEDGER_ENTRIES) + private List ledgerEntries = null; + + + public ActivateLoyaltyPointsResponse ledgerEntries(List ledgerEntries) { + + this.ledgerEntries = ledgerEntries; + return this; + } + + public ActivateLoyaltyPointsResponse addLedgerEntriesItem(LoyaltyLedgerEntry ledgerEntriesItem) { + if (this.ledgerEntries == null) { + this.ledgerEntries = new ArrayList(); + } + this.ledgerEntries.add(ledgerEntriesItem); + return this; + } + + /** + * Updated ledger entries after activation. + * @return ledgerEntries + **/ + @javax.annotation.Nullable + @ApiModelProperty(value = "Updated ledger entries after activation.") + + public List getLedgerEntries() { + return ledgerEntries; + } + + + public void setLedgerEntries(List ledgerEntries) { + this.ledgerEntries = ledgerEntries; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ActivateLoyaltyPointsResponse activateLoyaltyPointsResponse = (ActivateLoyaltyPointsResponse) o; + return Objects.equals(this.ledgerEntries, activateLoyaltyPointsResponse.ledgerEntries); + } + + @Override + public int hashCode() { + return Objects.hash(ledgerEntries); + } + + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class ActivateLoyaltyPointsResponse {\n"); + sb.append(" ledgerEntries: ").append(toIndentedString(ledgerEntries)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + +} + diff --git a/src/main/java/one/talon/model/AddLoyaltyPoints.java b/src/main/java/one/talon/model/AddLoyaltyPoints.java index 24549b6..883ce44 100644 --- a/src/main/java/one/talon/model/AddLoyaltyPoints.java +++ b/src/main/java/one/talon/model/AddLoyaltyPoints.java @@ -118,11 +118,11 @@ public AddLoyaltyPoints validityDuration(String validityDuration) { } /** - * The time format is either: - `immediate` or, - an **integer** followed by one letter indicating the time unit. Examples: `immediate`, `30s`, `40m`, `1h`, `5D`, `7W`, `10M`, `15Y`. Available units: - `s`: seconds - `m`: minutes - `h`: hours - `D`: days - `W`: weeks - `M`: months - `Y`: years You can round certain units up or down: - `_D` for rounding down days only. Signifies the start of the day. - `_U` for rounding up days, weeks, months and years. Signifies the end of the day, week, month or year. If passed, `validUntil` should be omitted. + * The time format is either: - `unlimited` or, - an **integer** followed by one letter indicating the time unit. Examples: `unlimited`, `30s`, `40m`, `1h`, `5D`, `7W`, `10M`, `15Y`. Available units: - `s`: seconds - `m`: minutes - `h`: hours - `D`: days - `W`: weeks - `M`: months - `Y`: years You can round certain units up or down: - `_D` for rounding down days only. Signifies the start of the day. - `_U` for rounding up days, weeks, months and years. Signifies the end of the day, week, month or year. If passed, `validUntil` should be omitted. * @return validityDuration **/ @javax.annotation.Nullable - @ApiModelProperty(example = "5D", value = "The time format is either: - `immediate` or, - an **integer** followed by one letter indicating the time unit. Examples: `immediate`, `30s`, `40m`, `1h`, `5D`, `7W`, `10M`, `15Y`. Available units: - `s`: seconds - `m`: minutes - `h`: hours - `D`: days - `W`: weeks - `M`: months - `Y`: years You can round certain units up or down: - `_D` for rounding down days only. Signifies the start of the day. - `_U` for rounding up days, weeks, months and years. Signifies the end of the day, week, month or year. If passed, `validUntil` should be omitted. ") + @ApiModelProperty(example = "5D", value = "The time format is either: - `unlimited` or, - an **integer** followed by one letter indicating the time unit. Examples: `unlimited`, `30s`, `40m`, `1h`, `5D`, `7W`, `10M`, `15Y`. Available units: - `s`: seconds - `m`: minutes - `h`: hours - `D`: days - `W`: weeks - `M`: months - `Y`: years You can round certain units up or down: - `_D` for rounding down days only. Signifies the start of the day. - `_U` for rounding up days, weeks, months and years. Signifies the end of the day, week, month or year. If passed, `validUntil` should be omitted. ") public String getValidityDuration() { return validityDuration; diff --git a/src/main/java/one/talon/model/AddLoyaltyPointsEffectProps.java b/src/main/java/one/talon/model/AddLoyaltyPointsEffectProps.java index 3014a57..fb6da0a 100644 --- a/src/main/java/one/talon/model/AddLoyaltyPointsEffectProps.java +++ b/src/main/java/one/talon/model/AddLoyaltyPointsEffectProps.java @@ -88,6 +88,14 @@ public class AddLoyaltyPointsEffectProps { @SerializedName(SERIALIZED_NAME_BUNDLE_NAME) private String bundleName; + public static final String SERIALIZED_NAME_AWAITS_ACTIVATION = "awaitsActivation"; + @SerializedName(SERIALIZED_NAME_AWAITS_ACTIVATION) + private Boolean awaitsActivation; + + public static final String SERIALIZED_NAME_VALIDITY_DURATION = "validityDuration"; + @SerializedName(SERIALIZED_NAME_VALIDITY_DURATION) + private String validityDuration; + public AddLoyaltyPointsEffectProps name(String name) { @@ -405,6 +413,52 @@ public void setBundleName(String bundleName) { } + public AddLoyaltyPointsEffectProps awaitsActivation(Boolean awaitsActivation) { + + this.awaitsActivation = awaitsActivation; + return this; + } + + /** + * If `true`, the loyalty points are pending until action-based activation takes place. The `startDate` parameter automatically defaults to `on_action`. + * @return awaitsActivation + **/ + @javax.annotation.Nullable + @ApiModelProperty(value = "If `true`, the loyalty points are pending until action-based activation takes place. The `startDate` parameter automatically defaults to `on_action`. ") + + public Boolean getAwaitsActivation() { + return awaitsActivation; + } + + + public void setAwaitsActivation(Boolean awaitsActivation) { + this.awaitsActivation = awaitsActivation; + } + + + public AddLoyaltyPointsEffectProps validityDuration(String validityDuration) { + + this.validityDuration = validityDuration; + return this; + } + + /** + * The duration for which the points remain active, relative to the activation date. Example: `30D`. **Note**: This value is only returned if `awaitsActivation` is `true` and `expiryDate` is not set. + * @return validityDuration + **/ + @javax.annotation.Nullable + @ApiModelProperty(value = "The duration for which the points remain active, relative to the activation date. Example: `30D`. **Note**: This value is only returned if `awaitsActivation` is `true` and `expiryDate` is not set. ") + + public String getValidityDuration() { + return validityDuration; + } + + + public void setValidityDuration(String validityDuration) { + this.validityDuration = validityDuration; + } + + @Override public boolean equals(java.lang.Object o) { if (this == o) { @@ -427,12 +481,14 @@ public boolean equals(java.lang.Object o) { Objects.equals(this.cartItemSubPosition, addLoyaltyPointsEffectProps.cartItemSubPosition) && Objects.equals(this.cardIdentifier, addLoyaltyPointsEffectProps.cardIdentifier) && Objects.equals(this.bundleIndex, addLoyaltyPointsEffectProps.bundleIndex) && - Objects.equals(this.bundleName, addLoyaltyPointsEffectProps.bundleName); + Objects.equals(this.bundleName, addLoyaltyPointsEffectProps.bundleName) && + Objects.equals(this.awaitsActivation, addLoyaltyPointsEffectProps.awaitsActivation) && + Objects.equals(this.validityDuration, addLoyaltyPointsEffectProps.validityDuration); } @Override public int hashCode() { - return Objects.hash(name, programId, subLedgerId, value, desiredValue, recipientIntegrationId, startDate, expiryDate, transactionUUID, cartItemPosition, cartItemSubPosition, cardIdentifier, bundleIndex, bundleName); + return Objects.hash(name, programId, subLedgerId, value, desiredValue, recipientIntegrationId, startDate, expiryDate, transactionUUID, cartItemPosition, cartItemSubPosition, cardIdentifier, bundleIndex, bundleName, awaitsActivation, validityDuration); } @@ -454,6 +510,8 @@ public String toString() { sb.append(" cardIdentifier: ").append(toIndentedString(cardIdentifier)).append("\n"); sb.append(" bundleIndex: ").append(toIndentedString(bundleIndex)).append("\n"); sb.append(" bundleName: ").append(toIndentedString(bundleName)).append("\n"); + sb.append(" awaitsActivation: ").append(toIndentedString(awaitsActivation)).append("\n"); + sb.append(" validityDuration: ").append(toIndentedString(validityDuration)).append("\n"); sb.append("}"); return sb.toString(); } diff --git a/src/main/java/one/talon/model/AsyncCouponsData.java b/src/main/java/one/talon/model/AsyncCouponsData.java index f9382cb..f712d92 100644 --- a/src/main/java/one/talon/model/AsyncCouponsData.java +++ b/src/main/java/one/talon/model/AsyncCouponsData.java @@ -45,9 +45,54 @@ public class AsyncCouponsData { @SerializedName(SERIALIZED_NAME_EMPLOYEE_NAME) private String employeeName; + /** + * The type of the notification + */ + @JsonAdapter(NotificationTypeEnum.Adapter.class) + public enum NotificationTypeEnum { + ASYNCCOUPONSCREATED("AsyncCouponsCreated"); + + private String value; + + NotificationTypeEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static NotificationTypeEnum fromValue(String value) { + for (NotificationTypeEnum b : NotificationTypeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final NotificationTypeEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public NotificationTypeEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return NotificationTypeEnum.fromValue(value); + } + } + } + public static final String SERIALIZED_NAME_NOTIFICATION_TYPE = "NotificationType"; @SerializedName(SERIALIZED_NAME_NOTIFICATION_TYPE) - private String notificationType; + private NotificationTypeEnum notificationType; public AsyncCouponsData batchID(String batchID) { @@ -138,7 +183,7 @@ public void setEmployeeName(String employeeName) { } - public AsyncCouponsData notificationType(String notificationType) { + public AsyncCouponsData notificationType(NotificationTypeEnum notificationType) { this.notificationType = notificationType; return this; @@ -150,12 +195,12 @@ public AsyncCouponsData notificationType(String notificationType) { **/ @ApiModelProperty(required = true, value = "The type of the notification") - public String getNotificationType() { + public NotificationTypeEnum getNotificationType() { return notificationType; } - public void setNotificationType(String notificationType) { + public void setNotificationType(NotificationTypeEnum notificationType) { this.notificationType = notificationType; } diff --git a/src/main/java/one/talon/model/CampaignCollectionEditedNotification.java b/src/main/java/one/talon/model/CampaignCollectionEditedNotification.java index 89648a5..1540644 100644 --- a/src/main/java/one/talon/model/CampaignCollectionEditedNotification.java +++ b/src/main/java/one/talon/model/CampaignCollectionEditedNotification.java @@ -32,9 +32,54 @@ */ public class CampaignCollectionEditedNotification { + /** + * The type of the notification + */ + @JsonAdapter(NotificationTypeEnum.Adapter.class) + public enum NotificationTypeEnum { + CAMPAIGNNOTIFICATION("CampaignNotification"); + + private String value; + + NotificationTypeEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static NotificationTypeEnum fromValue(String value) { + for (NotificationTypeEnum b : NotificationTypeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final NotificationTypeEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public NotificationTypeEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return NotificationTypeEnum.fromValue(value); + } + } + } + public static final String SERIALIZED_NAME_NOTIFICATION_TYPE = "NotificationType"; @SerializedName(SERIALIZED_NAME_NOTIFICATION_TYPE) - private String notificationType; + private NotificationTypeEnum notificationType; public static final String SERIALIZED_NAME_TOTAL_RESULT_SIZE = "TotalResultSize"; @SerializedName(SERIALIZED_NAME_TOTAL_RESULT_SIZE) @@ -45,7 +90,7 @@ public class CampaignCollectionEditedNotification { private List data = null; - public CampaignCollectionEditedNotification notificationType(String notificationType) { + public CampaignCollectionEditedNotification notificationType(NotificationTypeEnum notificationType) { this.notificationType = notificationType; return this; @@ -57,12 +102,12 @@ public CampaignCollectionEditedNotification notificationType(String notification **/ @ApiModelProperty(example = "CampaignNotification", required = true, value = "The type of the notification") - public String getNotificationType() { + public NotificationTypeEnum getNotificationType() { return notificationType; } - public void setNotificationType(String notificationType) { + public void setNotificationType(NotificationTypeEnum notificationType) { this.notificationType = notificationType; } diff --git a/src/main/java/one/talon/model/CampaignCreatedNotification.java b/src/main/java/one/talon/model/CampaignCreatedNotification.java index 4e56ece..ac08c55 100644 --- a/src/main/java/one/talon/model/CampaignCreatedNotification.java +++ b/src/main/java/one/talon/model/CampaignCreatedNotification.java @@ -32,9 +32,54 @@ */ public class CampaignCreatedNotification { + /** + * The type of the notification + */ + @JsonAdapter(NotificationTypeEnum.Adapter.class) + public enum NotificationTypeEnum { + CAMPAIGNNOTIFICATION("CampaignNotification"); + + private String value; + + NotificationTypeEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static NotificationTypeEnum fromValue(String value) { + for (NotificationTypeEnum b : NotificationTypeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final NotificationTypeEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public NotificationTypeEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return NotificationTypeEnum.fromValue(value); + } + } + } + public static final String SERIALIZED_NAME_NOTIFICATION_TYPE = "NotificationType"; @SerializedName(SERIALIZED_NAME_NOTIFICATION_TYPE) - private String notificationType; + private NotificationTypeEnum notificationType; public static final String SERIALIZED_NAME_TOTAL_RESULT_SIZE = "TotalResultSize"; @SerializedName(SERIALIZED_NAME_TOTAL_RESULT_SIZE) @@ -45,7 +90,7 @@ public class CampaignCreatedNotification { private List data = null; - public CampaignCreatedNotification notificationType(String notificationType) { + public CampaignCreatedNotification notificationType(NotificationTypeEnum notificationType) { this.notificationType = notificationType; return this; @@ -57,12 +102,12 @@ public CampaignCreatedNotification notificationType(String notificationType) { **/ @ApiModelProperty(example = "CampaignNotification", required = true, value = "The type of the notification") - public String getNotificationType() { + public NotificationTypeEnum getNotificationType() { return notificationType; } - public void setNotificationType(String notificationType) { + public void setNotificationType(NotificationTypeEnum notificationType) { this.notificationType = notificationType; } diff --git a/src/main/java/one/talon/model/CampaignDeletedNotification.java b/src/main/java/one/talon/model/CampaignDeletedNotification.java index 49dc486..0cceef4 100644 --- a/src/main/java/one/talon/model/CampaignDeletedNotification.java +++ b/src/main/java/one/talon/model/CampaignDeletedNotification.java @@ -32,9 +32,54 @@ */ public class CampaignDeletedNotification { + /** + * The type of the notification + */ + @JsonAdapter(NotificationTypeEnum.Adapter.class) + public enum NotificationTypeEnum { + CAMPAIGNNOTIFICATION("CampaignNotification"); + + private String value; + + NotificationTypeEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static NotificationTypeEnum fromValue(String value) { + for (NotificationTypeEnum b : NotificationTypeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final NotificationTypeEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public NotificationTypeEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return NotificationTypeEnum.fromValue(value); + } + } + } + public static final String SERIALIZED_NAME_NOTIFICATION_TYPE = "NotificationType"; @SerializedName(SERIALIZED_NAME_NOTIFICATION_TYPE) - private String notificationType; + private NotificationTypeEnum notificationType; public static final String SERIALIZED_NAME_TOTAL_RESULT_SIZE = "TotalResultSize"; @SerializedName(SERIALIZED_NAME_TOTAL_RESULT_SIZE) @@ -45,7 +90,7 @@ public class CampaignDeletedNotification { private List data = null; - public CampaignDeletedNotification notificationType(String notificationType) { + public CampaignDeletedNotification notificationType(NotificationTypeEnum notificationType) { this.notificationType = notificationType; return this; @@ -57,12 +102,12 @@ public CampaignDeletedNotification notificationType(String notificationType) { **/ @ApiModelProperty(example = "CampaignNotification", required = true, value = "The type of the notification") - public String getNotificationType() { + public NotificationTypeEnum getNotificationType() { return notificationType; } - public void setNotificationType(String notificationType) { + public void setNotificationType(NotificationTypeEnum notificationType) { this.notificationType = notificationType; } diff --git a/src/main/java/one/talon/model/CampaignEditedNotification.java b/src/main/java/one/talon/model/CampaignEditedNotification.java index a557b4c..b9e466f 100644 --- a/src/main/java/one/talon/model/CampaignEditedNotification.java +++ b/src/main/java/one/talon/model/CampaignEditedNotification.java @@ -32,9 +32,54 @@ */ public class CampaignEditedNotification { + /** + * The type of the notification + */ + @JsonAdapter(NotificationTypeEnum.Adapter.class) + public enum NotificationTypeEnum { + CAMPAIGNNOTIFICATION("CampaignNotification"); + + private String value; + + NotificationTypeEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static NotificationTypeEnum fromValue(String value) { + for (NotificationTypeEnum b : NotificationTypeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final NotificationTypeEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public NotificationTypeEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return NotificationTypeEnum.fromValue(value); + } + } + } + public static final String SERIALIZED_NAME_NOTIFICATION_TYPE = "NotificationType"; @SerializedName(SERIALIZED_NAME_NOTIFICATION_TYPE) - private String notificationType; + private NotificationTypeEnum notificationType; public static final String SERIALIZED_NAME_TOTAL_RESULT_SIZE = "TotalResultSize"; @SerializedName(SERIALIZED_NAME_TOTAL_RESULT_SIZE) @@ -45,7 +90,7 @@ public class CampaignEditedNotification { private List data = null; - public CampaignEditedNotification notificationType(String notificationType) { + public CampaignEditedNotification notificationType(NotificationTypeEnum notificationType) { this.notificationType = notificationType; return this; @@ -57,12 +102,12 @@ public CampaignEditedNotification notificationType(String notificationType) { **/ @ApiModelProperty(example = "CampaignNotification", required = true, value = "The type of the notification") - public String getNotificationType() { + public NotificationTypeEnum getNotificationType() { return notificationType; } - public void setNotificationType(String notificationType) { + public void setNotificationType(NotificationTypeEnum notificationType) { this.notificationType = notificationType; } diff --git a/src/main/java/one/talon/model/CampaignEvaluationTreeChangedMessage.java b/src/main/java/one/talon/model/CampaignEvaluationTreeChangedMessage.java index 06f6fa2..e586fd4 100644 --- a/src/main/java/one/talon/model/CampaignEvaluationTreeChangedMessage.java +++ b/src/main/java/one/talon/model/CampaignEvaluationTreeChangedMessage.java @@ -32,9 +32,54 @@ */ public class CampaignEvaluationTreeChangedMessage { + /** + * The type of the notification + */ + @JsonAdapter(NotificationTypeEnum.Adapter.class) + public enum NotificationTypeEnum { + CAMPAIGNNOTIFICATION("CampaignNotification"); + + private String value; + + NotificationTypeEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static NotificationTypeEnum fromValue(String value) { + for (NotificationTypeEnum b : NotificationTypeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final NotificationTypeEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public NotificationTypeEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return NotificationTypeEnum.fromValue(value); + } + } + } + public static final String SERIALIZED_NAME_NOTIFICATION_TYPE = "NotificationType"; @SerializedName(SERIALIZED_NAME_NOTIFICATION_TYPE) - private String notificationType; + private NotificationTypeEnum notificationType; public static final String SERIALIZED_NAME_TOTAL_RESULT_SIZE = "TotalResultSize"; @SerializedName(SERIALIZED_NAME_TOTAL_RESULT_SIZE) @@ -45,7 +90,7 @@ public class CampaignEvaluationTreeChangedMessage { private List data = null; - public CampaignEvaluationTreeChangedMessage notificationType(String notificationType) { + public CampaignEvaluationTreeChangedMessage notificationType(NotificationTypeEnum notificationType) { this.notificationType = notificationType; return this; @@ -57,12 +102,12 @@ public CampaignEvaluationTreeChangedMessage notificationType(String notification **/ @ApiModelProperty(example = "CampaignNotification", required = true, value = "The type of the notification") - public String getNotificationType() { + public NotificationTypeEnum getNotificationType() { return notificationType; } - public void setNotificationType(String notificationType) { + public void setNotificationType(NotificationTypeEnum notificationType) { this.notificationType = notificationType; } diff --git a/src/main/java/one/talon/model/CampaignLogSummary.java b/src/main/java/one/talon/model/CampaignLogSummary.java new file mode 100644 index 0000000..7018707 --- /dev/null +++ b/src/main/java/one/talon/model/CampaignLogSummary.java @@ -0,0 +1,261 @@ +/* + * Talon.One API + * Use the Talon.One API to integrate with your application and to manage applications and campaigns: - Use the operations in the [Integration API section](#integration-api) are used to integrate with our platform - Use the operation in the [Management API section](#management-api) to manage applications and campaigns. ## Determining the base URL of the endpoints The API is available at the same hostname as your Campaign Manager deployment. For example, if you access the Campaign Manager at `https://yourbaseurl.talon.one/`, the URL for the [updateCustomerSessionV2](https://docs.talon.one/integration-api#operation/updateCustomerSessionV2) endpoint is `https://yourbaseurl.talon.one/v2/customer_sessions/{Id}` + * + * The version of the OpenAPI document: + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package one.talon.model; + +import java.util.Objects; +import java.util.Arrays; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.io.IOException; +import org.threeten.bp.OffsetDateTime; + +/** + * Campaign Log Summary + */ +@ApiModel(description = "Campaign Log Summary") + +public class CampaignLogSummary { + public static final String SERIALIZED_NAME_NAME = "name"; + @SerializedName(SERIALIZED_NAME_NAME) + private String name; + + public static final String SERIALIZED_NAME_EMAIL = "email"; + @SerializedName(SERIALIZED_NAME_EMAIL) + private String email; + + public static final String SERIALIZED_NAME_CREATED = "created"; + @SerializedName(SERIALIZED_NAME_CREATED) + private OffsetDateTime created; + + /** + * Action performed by the user. + */ + @JsonAdapter(ActionEnum.Adapter.class) + public enum ActionEnum { + CREATE("create"), + + DELETE("delete"), + + UPDATE("update"); + + private String value; + + ActionEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static ActionEnum fromValue(String value) { + for (ActionEnum b : ActionEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final ActionEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public ActionEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return ActionEnum.fromValue(value); + } + } + } + + public static final String SERIALIZED_NAME_ACTION = "action"; + @SerializedName(SERIALIZED_NAME_ACTION) + private ActionEnum action; + + public static final String SERIALIZED_NAME_SUMMARY = "summary"; + @SerializedName(SERIALIZED_NAME_SUMMARY) + private String summary; + + + public CampaignLogSummary name(String name) { + + this.name = name; + return this; + } + + /** + * Name of the user that performed the change. + * @return name + **/ + @ApiModelProperty(example = "Admin", required = true, value = "Name of the user that performed the change.") + + public String getName() { + return name; + } + + + public void setName(String name) { + this.name = name; + } + + + public CampaignLogSummary email(String email) { + + this.email = email; + return this; + } + + /** + * E-mail of the user that performed the change. + * @return email + **/ + @ApiModelProperty(example = "admin@talon.one", required = true, value = "E-mail of the user that performed the change.") + + public String getEmail() { + return email; + } + + + public void setEmail(String email) { + this.email = email; + } + + + public CampaignLogSummary created(OffsetDateTime created) { + + this.created = created; + return this; + } + + /** + * Date and time the change was performed. + * @return created + **/ + @ApiModelProperty(required = true, value = "Date and time the change was performed.") + + public OffsetDateTime getCreated() { + return created; + } + + + public void setCreated(OffsetDateTime created) { + this.created = created; + } + + + public CampaignLogSummary action(ActionEnum action) { + + this.action = action; + return this; + } + + /** + * Action performed by the user. + * @return action + **/ + @ApiModelProperty(example = "create", required = true, value = "Action performed by the user.") + + public ActionEnum getAction() { + return action; + } + + + public void setAction(ActionEnum action) { + this.action = action; + } + + + public CampaignLogSummary summary(String summary) { + + this.summary = summary; + return this; + } + + /** + * AI-generated summary of the action performed. + * @return summary + **/ + @ApiModelProperty(required = true, value = "AI-generated summary of the action performed.") + + public String getSummary() { + return summary; + } + + + public void setSummary(String summary) { + this.summary = summary; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + CampaignLogSummary campaignLogSummary = (CampaignLogSummary) o; + return Objects.equals(this.name, campaignLogSummary.name) && + Objects.equals(this.email, campaignLogSummary.email) && + Objects.equals(this.created, campaignLogSummary.created) && + Objects.equals(this.action, campaignLogSummary.action) && + Objects.equals(this.summary, campaignLogSummary.summary); + } + + @Override + public int hashCode() { + return Objects.hash(name, email, created, action, summary); + } + + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class CampaignLogSummary {\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" email: ").append(toIndentedString(email)).append("\n"); + sb.append(" created: ").append(toIndentedString(created)).append("\n"); + sb.append(" action: ").append(toIndentedString(action)).append("\n"); + sb.append(" summary: ").append(toIndentedString(summary)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + +} + diff --git a/src/main/java/one/talon/model/CampaignNotificationBase.java b/src/main/java/one/talon/model/CampaignNotificationBase.java index c10d999..f60acde 100644 --- a/src/main/java/one/talon/model/CampaignNotificationBase.java +++ b/src/main/java/one/talon/model/CampaignNotificationBase.java @@ -29,16 +29,61 @@ */ public class CampaignNotificationBase { + /** + * The type of the notification + */ + @JsonAdapter(NotificationTypeEnum.Adapter.class) + public enum NotificationTypeEnum { + CAMPAIGNNOTIFICATION("CampaignNotification"); + + private String value; + + NotificationTypeEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static NotificationTypeEnum fromValue(String value) { + for (NotificationTypeEnum b : NotificationTypeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final NotificationTypeEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public NotificationTypeEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return NotificationTypeEnum.fromValue(value); + } + } + } + public static final String SERIALIZED_NAME_NOTIFICATION_TYPE = "NotificationType"; @SerializedName(SERIALIZED_NAME_NOTIFICATION_TYPE) - private String notificationType; + private NotificationTypeEnum notificationType; public static final String SERIALIZED_NAME_TOTAL_RESULT_SIZE = "TotalResultSize"; @SerializedName(SERIALIZED_NAME_TOTAL_RESULT_SIZE) private Long totalResultSize; - public CampaignNotificationBase notificationType(String notificationType) { + public CampaignNotificationBase notificationType(NotificationTypeEnum notificationType) { this.notificationType = notificationType; return this; @@ -50,12 +95,12 @@ public CampaignNotificationBase notificationType(String notificationType) { **/ @ApiModelProperty(example = "CampaignNotification", required = true, value = "The type of the notification") - public String getNotificationType() { + public NotificationTypeEnum getNotificationType() { return notificationType; } - public void setNotificationType(String notificationType) { + public void setNotificationType(NotificationTypeEnum notificationType) { this.notificationType = notificationType; } diff --git a/src/main/java/one/talon/model/CampaignNotificationGeneric.java b/src/main/java/one/talon/model/CampaignNotificationGeneric.java index 94d3ab8..5431535 100644 --- a/src/main/java/one/talon/model/CampaignNotificationGeneric.java +++ b/src/main/java/one/talon/model/CampaignNotificationGeneric.java @@ -31,9 +31,54 @@ */ public class CampaignNotificationGeneric { + /** + * The type of the notification + */ + @JsonAdapter(NotificationTypeEnum.Adapter.class) + public enum NotificationTypeEnum { + CAMPAIGNNOTIFICATION("CampaignNotification"); + + private String value; + + NotificationTypeEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static NotificationTypeEnum fromValue(String value) { + for (NotificationTypeEnum b : NotificationTypeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final NotificationTypeEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public NotificationTypeEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return NotificationTypeEnum.fromValue(value); + } + } + } + public static final String SERIALIZED_NAME_NOTIFICATION_TYPE = "NotificationType"; @SerializedName(SERIALIZED_NAME_NOTIFICATION_TYPE) - private String notificationType; + private NotificationTypeEnum notificationType; public static final String SERIALIZED_NAME_TOTAL_RESULT_SIZE = "TotalResultSize"; @SerializedName(SERIALIZED_NAME_TOTAL_RESULT_SIZE) @@ -44,7 +89,7 @@ public class CampaignNotificationGeneric { private List data = new ArrayList(); - public CampaignNotificationGeneric notificationType(String notificationType) { + public CampaignNotificationGeneric notificationType(NotificationTypeEnum notificationType) { this.notificationType = notificationType; return this; @@ -56,12 +101,12 @@ public CampaignNotificationGeneric notificationType(String notificationType) { **/ @ApiModelProperty(example = "CampaignNotification", required = true, value = "The type of the notification") - public String getNotificationType() { + public NotificationTypeEnum getNotificationType() { return notificationType; } - public void setNotificationType(String notificationType) { + public void setNotificationType(NotificationTypeEnum notificationType) { this.notificationType = notificationType; } diff --git a/src/main/java/one/talon/model/CampaignRulesetChangedNotification.java b/src/main/java/one/talon/model/CampaignRulesetChangedNotification.java index 0dcc28f..44ed7f0 100644 --- a/src/main/java/one/talon/model/CampaignRulesetChangedNotification.java +++ b/src/main/java/one/talon/model/CampaignRulesetChangedNotification.java @@ -32,9 +32,54 @@ */ public class CampaignRulesetChangedNotification { + /** + * The type of the notification + */ + @JsonAdapter(NotificationTypeEnum.Adapter.class) + public enum NotificationTypeEnum { + CAMPAIGNNOTIFICATION("CampaignNotification"); + + private String value; + + NotificationTypeEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static NotificationTypeEnum fromValue(String value) { + for (NotificationTypeEnum b : NotificationTypeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final NotificationTypeEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public NotificationTypeEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return NotificationTypeEnum.fromValue(value); + } + } + } + public static final String SERIALIZED_NAME_NOTIFICATION_TYPE = "NotificationType"; @SerializedName(SERIALIZED_NAME_NOTIFICATION_TYPE) - private String notificationType; + private NotificationTypeEnum notificationType; public static final String SERIALIZED_NAME_TOTAL_RESULT_SIZE = "TotalResultSize"; @SerializedName(SERIALIZED_NAME_TOTAL_RESULT_SIZE) @@ -45,7 +90,7 @@ public class CampaignRulesetChangedNotification { private List data = null; - public CampaignRulesetChangedNotification notificationType(String notificationType) { + public CampaignRulesetChangedNotification notificationType(NotificationTypeEnum notificationType) { this.notificationType = notificationType; return this; @@ -57,12 +102,12 @@ public CampaignRulesetChangedNotification notificationType(String notificationTy **/ @ApiModelProperty(example = "CampaignNotification", required = true, value = "The type of the notification") - public String getNotificationType() { + public NotificationTypeEnum getNotificationType() { return notificationType; } - public void setNotificationType(String notificationType) { + public void setNotificationType(NotificationTypeEnum notificationType) { this.notificationType = notificationType; } diff --git a/src/main/java/one/talon/model/CampaignStateChangedNotification.java b/src/main/java/one/talon/model/CampaignStateChangedNotification.java index 923dd6f..6c162f5 100644 --- a/src/main/java/one/talon/model/CampaignStateChangedNotification.java +++ b/src/main/java/one/talon/model/CampaignStateChangedNotification.java @@ -32,9 +32,54 @@ */ public class CampaignStateChangedNotification { + /** + * The type of the notification + */ + @JsonAdapter(NotificationTypeEnum.Adapter.class) + public enum NotificationTypeEnum { + CAMPAIGNNOTIFICATION("CampaignNotification"); + + private String value; + + NotificationTypeEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static NotificationTypeEnum fromValue(String value) { + for (NotificationTypeEnum b : NotificationTypeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final NotificationTypeEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public NotificationTypeEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return NotificationTypeEnum.fromValue(value); + } + } + } + public static final String SERIALIZED_NAME_NOTIFICATION_TYPE = "NotificationType"; @SerializedName(SERIALIZED_NAME_NOTIFICATION_TYPE) - private String notificationType; + private NotificationTypeEnum notificationType; public static final String SERIALIZED_NAME_TOTAL_RESULT_SIZE = "TotalResultSize"; @SerializedName(SERIALIZED_NAME_TOTAL_RESULT_SIZE) @@ -45,7 +90,7 @@ public class CampaignStateChangedNotification { private List data = null; - public CampaignStateChangedNotification notificationType(String notificationType) { + public CampaignStateChangedNotification notificationType(NotificationTypeEnum notificationType) { this.notificationType = notificationType; return this; @@ -57,12 +102,12 @@ public CampaignStateChangedNotification notificationType(String notificationType **/ @ApiModelProperty(example = "CampaignNotification", required = true, value = "The type of the notification") - public String getNotificationType() { + public NotificationTypeEnum getNotificationType() { return notificationType; } - public void setNotificationType(String notificationType) { + public void setNotificationType(NotificationTypeEnum notificationType) { this.notificationType = notificationType; } diff --git a/src/main/java/one/talon/model/CampaignTemplate.java b/src/main/java/one/talon/model/CampaignTemplate.java index 63b296b..94da1e5 100644 --- a/src/main/java/one/talon/model/CampaignTemplate.java +++ b/src/main/java/one/talon/model/CampaignTemplate.java @@ -276,6 +276,10 @@ public CampaignTypeEnum read(final JsonReader jsonReader) throws IOException { @SerializedName(SERIALIZED_NAME_CAMPAIGN_TYPE) private CampaignTypeEnum campaignType = CampaignTypeEnum.ADVANCED; + public static final String SERIALIZED_NAME_CAMPAIGNS_COUNT = "campaignsCount"; + @SerializedName(SERIALIZED_NAME_CAMPAIGNS_COUNT) + private Long campaignsCount; + public static final String SERIALIZED_NAME_UPDATED = "updated"; @SerializedName(SERIALIZED_NAME_UPDATED) private OffsetDateTime updated; @@ -834,6 +838,29 @@ public void setCampaignType(CampaignTypeEnum campaignType) { } + public CampaignTemplate campaignsCount(Long campaignsCount) { + + this.campaignsCount = campaignsCount; + return this; + } + + /** + * The number of Campaigns created from this template. + * @return campaignsCount + **/ + @javax.annotation.Nullable + @ApiModelProperty(example = "3", value = "The number of Campaigns created from this template.") + + public Long getCampaignsCount() { + return campaignsCount; + } + + + public void setCampaignsCount(Long campaignsCount) { + this.campaignsCount = campaignsCount; + } + + public CampaignTemplate updated(OffsetDateTime updated) { this.updated = updated; @@ -961,6 +988,7 @@ public boolean equals(java.lang.Object o) { Objects.equals(this.campaignCollections, campaignTemplate.campaignCollections) && Objects.equals(this.defaultCampaignGroupId, campaignTemplate.defaultCampaignGroupId) && Objects.equals(this.campaignType, campaignTemplate.campaignType) && + Objects.equals(this.campaignsCount, campaignTemplate.campaignsCount) && Objects.equals(this.updated, campaignTemplate.updated) && Objects.equals(this.updatedBy, campaignTemplate.updatedBy) && Objects.equals(this.validApplicationIds, campaignTemplate.validApplicationIds) && @@ -969,7 +997,7 @@ public boolean equals(java.lang.Object o) { @Override public int hashCode() { - return Objects.hash(id, created, accountId, userId, name, description, instructions, campaignAttributes, couponAttributes, state, activeRulesetId, tags, features, couponSettings, couponReservationSettings, referralSettings, limits, templateParams, applicationsIds, campaignCollections, defaultCampaignGroupId, campaignType, updated, updatedBy, validApplicationIds, isUserFavorite); + return Objects.hash(id, created, accountId, userId, name, description, instructions, campaignAttributes, couponAttributes, state, activeRulesetId, tags, features, couponSettings, couponReservationSettings, referralSettings, limits, templateParams, applicationsIds, campaignCollections, defaultCampaignGroupId, campaignType, campaignsCount, updated, updatedBy, validApplicationIds, isUserFavorite); } @@ -999,6 +1027,7 @@ public String toString() { sb.append(" campaignCollections: ").append(toIndentedString(campaignCollections)).append("\n"); sb.append(" defaultCampaignGroupId: ").append(toIndentedString(defaultCampaignGroupId)).append("\n"); sb.append(" campaignType: ").append(toIndentedString(campaignType)).append("\n"); + sb.append(" campaignsCount: ").append(toIndentedString(campaignsCount)).append("\n"); sb.append(" updated: ").append(toIndentedString(updated)).append("\n"); sb.append(" updatedBy: ").append(toIndentedString(updatedBy)).append("\n"); sb.append(" validApplicationIds: ").append(toIndentedString(validApplicationIds)).append("\n"); diff --git a/src/main/java/one/talon/model/CardLedgerTransactionLogEntryIntegrationAPI.java b/src/main/java/one/talon/model/CardLedgerTransactionLogEntryIntegrationAPI.java index eda5b38..1031a76 100644 --- a/src/main/java/one/talon/model/CardLedgerTransactionLogEntryIntegrationAPI.java +++ b/src/main/java/one/talon/model/CardLedgerTransactionLogEntryIntegrationAPI.java @@ -298,10 +298,10 @@ public CardLedgerTransactionLogEntryIntegrationAPI startDate(String startDate) { } /** - * When points become active. Possible values: - `immediate`: Points are active immediately. - a timestamp value: Points become active at a given date and time. + * When points become active. Possible values: - `immediate`: Points are active immediately. - `on_action`: Points become active based on the customer's action. - a timestamp value: Points become active at a given date and time. * @return startDate **/ - @ApiModelProperty(example = "2022-01-02T15:04:05Z07:00", required = true, value = "When points become active. Possible values: - `immediate`: Points are active immediately. - a timestamp value: Points become active at a given date and time. ") + @ApiModelProperty(example = "2022-01-02T15:04:05Z07:00", required = true, value = "When points become active. Possible values: - `immediate`: Points are active immediately. - `on_action`: Points become active based on the customer's action. - a timestamp value: Points become active at a given date and time. ") public String getStartDate() { return startDate; diff --git a/src/main/java/one/talon/model/CouponsNotificationData.java b/src/main/java/one/talon/model/CouponsNotificationData.java index a848974..66c4f4f 100644 --- a/src/main/java/one/talon/model/CouponsNotificationData.java +++ b/src/main/java/one/talon/model/CouponsNotificationData.java @@ -52,9 +52,56 @@ public class CouponsNotificationData { @SerializedName(SERIALIZED_NAME_TOTAL_RESULT_SIZE) private Long totalResultSize; + /** + * The type of the notification + */ + @JsonAdapter(NotificationTypeEnum.Adapter.class) + public enum NotificationTypeEnum { + COUPONUPDATED("CouponUpdated"), + + COUPONDELETED("CouponDeleted"); + + private String value; + + NotificationTypeEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static NotificationTypeEnum fromValue(String value) { + for (NotificationTypeEnum b : NotificationTypeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final NotificationTypeEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public NotificationTypeEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return NotificationTypeEnum.fromValue(value); + } + } + } + public static final String SERIALIZED_NAME_NOTIFICATION_TYPE = "NotificationType"; @SerializedName(SERIALIZED_NAME_NOTIFICATION_TYPE) - private String notificationType; + private NotificationTypeEnum notificationType; public CouponsNotificationData typeOfChange(String typeOfChange) { @@ -177,7 +224,7 @@ public void setTotalResultSize(Long totalResultSize) { } - public CouponsNotificationData notificationType(String notificationType) { + public CouponsNotificationData notificationType(NotificationTypeEnum notificationType) { this.notificationType = notificationType; return this; @@ -189,12 +236,12 @@ public CouponsNotificationData notificationType(String notificationType) { **/ @ApiModelProperty(example = "CouponUpdated", required = true, value = "The type of the notification") - public String getNotificationType() { + public NotificationTypeEnum getNotificationType() { return notificationType; } - public void setNotificationType(String notificationType) { + public void setNotificationType(NotificationTypeEnum notificationType) { this.notificationType = notificationType; } diff --git a/src/main/java/one/talon/model/CreateCouponData.java b/src/main/java/one/talon/model/CreateCouponData.java index 8f1f6c1..f3a60fc 100644 --- a/src/main/java/one/talon/model/CreateCouponData.java +++ b/src/main/java/one/talon/model/CreateCouponData.java @@ -56,9 +56,54 @@ public class CreateCouponData { @SerializedName(SERIALIZED_NAME_EMPLOYEE_NAME) private String employeeName; + /** + * The type of the not + */ + @JsonAdapter(NotificationTypeEnum.Adapter.class) + public enum NotificationTypeEnum { + COUPONCREATED("CouponCreated"); + + private String value; + + NotificationTypeEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static NotificationTypeEnum fromValue(String value) { + for (NotificationTypeEnum b : NotificationTypeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final NotificationTypeEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public NotificationTypeEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return NotificationTypeEnum.fromValue(value); + } + } + } + public static final String SERIALIZED_NAME_NOTIFICATION_TYPE = "NotificationType"; @SerializedName(SERIALIZED_NAME_NOTIFICATION_TYPE) - private String notificationType; + private NotificationTypeEnum notificationType; public CreateCouponData data(List data) { @@ -204,7 +249,7 @@ public void setEmployeeName(String employeeName) { } - public CreateCouponData notificationType(String notificationType) { + public CreateCouponData notificationType(NotificationTypeEnum notificationType) { this.notificationType = notificationType; return this; @@ -216,12 +261,12 @@ public CreateCouponData notificationType(String notificationType) { **/ @ApiModelProperty(required = true, value = "The type of the not") - public String getNotificationType() { + public NotificationTypeEnum getNotificationType() { return notificationType; } - public void setNotificationType(String notificationType) { + public void setNotificationType(NotificationTypeEnum notificationType) { this.notificationType = notificationType; } diff --git a/src/main/java/one/talon/model/DeleteCouponsData.java b/src/main/java/one/talon/model/DeleteCouponsData.java index bf7ca13..2cbeb24 100644 --- a/src/main/java/one/talon/model/DeleteCouponsData.java +++ b/src/main/java/one/talon/model/DeleteCouponsData.java @@ -57,9 +57,54 @@ public class DeleteCouponsData { @SerializedName(SERIALIZED_NAME_TOTAL_RESULT_SIZE) private Long totalResultSize; + /** + * The type of the notification + */ + @JsonAdapter(NotificationTypeEnum.Adapter.class) + public enum NotificationTypeEnum { + COUPONSDELETED("CouponsDeleted"); + + private String value; + + NotificationTypeEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static NotificationTypeEnum fromValue(String value) { + for (NotificationTypeEnum b : NotificationTypeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final NotificationTypeEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public NotificationTypeEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return NotificationTypeEnum.fromValue(value); + } + } + } + public static final String SERIALIZED_NAME_NOTIFICATION_TYPE = "NotificationType"; @SerializedName(SERIALIZED_NAME_NOTIFICATION_TYPE) - private String notificationType; + private NotificationTypeEnum notificationType; public DeleteCouponsData typeOfChange(String typeOfChange) { @@ -216,7 +261,7 @@ public void setTotalResultSize(Long totalResultSize) { } - public DeleteCouponsData notificationType(String notificationType) { + public DeleteCouponsData notificationType(NotificationTypeEnum notificationType) { this.notificationType = notificationType; return this; @@ -228,12 +273,12 @@ public DeleteCouponsData notificationType(String notificationType) { **/ @ApiModelProperty(required = true, value = "The type of the notification") - public String getNotificationType() { + public NotificationTypeEnum getNotificationType() { return notificationType; } - public void setNotificationType(String notificationType) { + public void setNotificationType(NotificationTypeEnum notificationType) { this.notificationType = notificationType; } diff --git a/src/main/java/one/talon/model/EventV3.java b/src/main/java/one/talon/model/EventV3.java new file mode 100644 index 0000000..062330e --- /dev/null +++ b/src/main/java/one/talon/model/EventV3.java @@ -0,0 +1,309 @@ +/* + * Talon.One API + * Use the Talon.One API to integrate with your application and to manage applications and campaigns: - Use the operations in the [Integration API section](#integration-api) are used to integrate with our platform - Use the operation in the [Management API section](#management-api) to manage applications and campaigns. ## Determining the base URL of the endpoints The API is available at the same hostname as your Campaign Manager deployment. For example, if you access the Campaign Manager at `https://yourbaseurl.talon.one/`, the URL for the [updateCustomerSessionV2](https://docs.talon.one/integration-api#operation/updateCustomerSessionV2) endpoint is `https://yourbaseurl.talon.one/v2/customer_sessions/{Id}` + * + * The version of the OpenAPI document: + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package one.talon.model; + +import java.util.Objects; +import java.util.Arrays; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; + +/** + * EventV3 + */ + +public class EventV3 { + public static final String SERIALIZED_NAME_PROFILE_ID = "profileId"; + @SerializedName(SERIALIZED_NAME_PROFILE_ID) + private String profileId; + + public static final String SERIALIZED_NAME_STORE_INTEGRATION_ID = "storeIntegrationId"; + @SerializedName(SERIALIZED_NAME_STORE_INTEGRATION_ID) + private String storeIntegrationId; + + public static final String SERIALIZED_NAME_EVALUABLE_CAMPAIGN_IDS = "evaluableCampaignIds"; + @SerializedName(SERIALIZED_NAME_EVALUABLE_CAMPAIGN_IDS) + private List evaluableCampaignIds = null; + + public static final String SERIALIZED_NAME_INTEGRATION_ID = "integrationId"; + @SerializedName(SERIALIZED_NAME_INTEGRATION_ID) + private String integrationId; + + public static final String SERIALIZED_NAME_TYPE = "type"; + @SerializedName(SERIALIZED_NAME_TYPE) + private String type; + + public static final String SERIALIZED_NAME_ATTRIBUTES = "attributes"; + @SerializedName(SERIALIZED_NAME_ATTRIBUTES) + private Object attributes; + + public static final String SERIALIZED_NAME_CONNECTED_SESSION_I_D = "connectedSessionID"; + @SerializedName(SERIALIZED_NAME_CONNECTED_SESSION_I_D) + private String connectedSessionID; + + public static final String SERIALIZED_NAME_PREVIOUS_EVENT_I_D = "previousEventID"; + @SerializedName(SERIALIZED_NAME_PREVIOUS_EVENT_I_D) + private String previousEventID; + + + public EventV3 profileId(String profileId) { + + this.profileId = profileId; + return this; + } + + /** + * ID of the customer profile set by your integration layer. **Note:** If the customer does not yet have a known `profileId`, we recommend you use a guest `profileId`. + * @return profileId + **/ + @ApiModelProperty(example = "URNGV8294NV", required = true, value = "ID of the customer profile set by your integration layer. **Note:** If the customer does not yet have a known `profileId`, we recommend you use a guest `profileId`. ") + + public String getProfileId() { + return profileId; + } + + + public void setProfileId(String profileId) { + this.profileId = profileId; + } + + + public EventV3 storeIntegrationId(String storeIntegrationId) { + + this.storeIntegrationId = storeIntegrationId; + return this; + } + + /** + * The integration ID of the store. You choose this ID when you create a store. + * @return storeIntegrationId + **/ + @javax.annotation.Nullable + @ApiModelProperty(example = "STORE-001", value = "The integration ID of the store. You choose this ID when you create a store.") + + public String getStoreIntegrationId() { + return storeIntegrationId; + } + + + public void setStoreIntegrationId(String storeIntegrationId) { + this.storeIntegrationId = storeIntegrationId; + } + + + public EventV3 evaluableCampaignIds(List evaluableCampaignIds) { + + this.evaluableCampaignIds = evaluableCampaignIds; + return this; + } + + public EventV3 addEvaluableCampaignIdsItem(Long evaluableCampaignIdsItem) { + if (this.evaluableCampaignIds == null) { + this.evaluableCampaignIds = new ArrayList(); + } + this.evaluableCampaignIds.add(evaluableCampaignIdsItem); + return this; + } + + /** + * When using the `dry` query parameter, use this property to list the campaign to be evaluated by the Rule Engine. These campaigns will be evaluated, even if they are disabled, allowing you to test specific campaigns before activating them. + * @return evaluableCampaignIds + **/ + @javax.annotation.Nullable + @ApiModelProperty(example = "[10, 12]", value = "When using the `dry` query parameter, use this property to list the campaign to be evaluated by the Rule Engine. These campaigns will be evaluated, even if they are disabled, allowing you to test specific campaigns before activating them. ") + + public List getEvaluableCampaignIds() { + return evaluableCampaignIds; + } + + + public void setEvaluableCampaignIds(List evaluableCampaignIds) { + this.evaluableCampaignIds = evaluableCampaignIds; + } + + + public EventV3 integrationId(String integrationId) { + + this.integrationId = integrationId; + return this; + } + + /** + * The unique ID of the current event. Only one event with this ID could be activated, duplicated events are forbidden. + * @return integrationId + **/ + @ApiModelProperty(example = "175KJPS947296", required = true, value = "The unique ID of the current event. Only one event with this ID could be activated, duplicated events are forbidden. ") + + public String getIntegrationId() { + return integrationId; + } + + + public void setIntegrationId(String integrationId) { + this.integrationId = integrationId; + } + + + public EventV3 type(String type) { + + this.type = type; + return this; + } + + /** + * A string representing the event name. Must not be a reserved event name. You create this value when you [create an attribute](https://docs.talon.one/docs/dev/concepts/entities/events#creating-a-custom-event) of type `event` in the Campaign Manager. + * @return type + **/ + @ApiModelProperty(example = "pageViewed", required = true, value = "A string representing the event name. Must not be a reserved event name. You create this value when you [create an attribute](https://docs.talon.one/docs/dev/concepts/entities/events#creating-a-custom-event) of type `event` in the Campaign Manager. ") + + public String getType() { + return type; + } + + + public void setType(String type) { + this.type = type; + } + + + public EventV3 attributes(Object attributes) { + + this.attributes = attributes; + return this; + } + + /** + * Arbitrary additional JSON properties associated with the event. They must be created in the Campaign Manager before setting them with this property. See [creating custom attributes](https://docs.talon.one/docs/product/account/dev-tools/managing-attributes#creating-a-custom-attribute). + * @return attributes + **/ + @javax.annotation.Nullable + @ApiModelProperty(example = "{\"myAttribute\":\"myValue\"}", value = "Arbitrary additional JSON properties associated with the event. They must be created in the Campaign Manager before setting them with this property. See [creating custom attributes](https://docs.talon.one/docs/product/account/dev-tools/managing-attributes#creating-a-custom-attribute).") + + public Object getAttributes() { + return attributes; + } + + + public void setAttributes(Object attributes) { + this.attributes = attributes; + } + + + public EventV3 connectedSessionID(String connectedSessionID) { + + this.connectedSessionID = connectedSessionID; + return this; + } + + /** + * The ID of the session that happened in the past. + * @return connectedSessionID + **/ + @javax.annotation.Nullable + @ApiModelProperty(example = "175KJPS947296", value = "The ID of the session that happened in the past.") + + public String getConnectedSessionID() { + return connectedSessionID; + } + + + public void setConnectedSessionID(String connectedSessionID) { + this.connectedSessionID = connectedSessionID; + } + + + public EventV3 previousEventID(String previousEventID) { + + this.previousEventID = previousEventID; + return this; + } + + /** + * The unique identifier of the event that happened in the past. + * @return previousEventID + **/ + @javax.annotation.Nullable + @ApiModelProperty(example = "175KJPS947296", value = "The unique identifier of the event that happened in the past.") + + public String getPreviousEventID() { + return previousEventID; + } + + + public void setPreviousEventID(String previousEventID) { + this.previousEventID = previousEventID; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + EventV3 eventV3 = (EventV3) o; + return Objects.equals(this.profileId, eventV3.profileId) && + Objects.equals(this.storeIntegrationId, eventV3.storeIntegrationId) && + Objects.equals(this.evaluableCampaignIds, eventV3.evaluableCampaignIds) && + Objects.equals(this.integrationId, eventV3.integrationId) && + Objects.equals(this.type, eventV3.type) && + Objects.equals(this.attributes, eventV3.attributes) && + Objects.equals(this.connectedSessionID, eventV3.connectedSessionID) && + Objects.equals(this.previousEventID, eventV3.previousEventID); + } + + @Override + public int hashCode() { + return Objects.hash(profileId, storeIntegrationId, evaluableCampaignIds, integrationId, type, attributes, connectedSessionID, previousEventID); + } + + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class EventV3 {\n"); + sb.append(" profileId: ").append(toIndentedString(profileId)).append("\n"); + sb.append(" storeIntegrationId: ").append(toIndentedString(storeIntegrationId)).append("\n"); + sb.append(" evaluableCampaignIds: ").append(toIndentedString(evaluableCampaignIds)).append("\n"); + sb.append(" integrationId: ").append(toIndentedString(integrationId)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" attributes: ").append(toIndentedString(attributes)).append("\n"); + sb.append(" connectedSessionID: ").append(toIndentedString(connectedSessionID)).append("\n"); + sb.append(" previousEventID: ").append(toIndentedString(previousEventID)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + +} + diff --git a/src/main/java/one/talon/model/IntegrationEventV3Request.java b/src/main/java/one/talon/model/IntegrationEventV3Request.java new file mode 100644 index 0000000..76b2776 --- /dev/null +++ b/src/main/java/one/talon/model/IntegrationEventV3Request.java @@ -0,0 +1,438 @@ +/* + * Talon.One API + * Use the Talon.One API to integrate with your application and to manage applications and campaigns: - Use the operations in the [Integration API section](#integration-api) are used to integrate with our platform - Use the operation in the [Management API section](#management-api) to manage applications and campaigns. ## Determining the base URL of the endpoints The API is available at the same hostname as your Campaign Manager deployment. For example, if you access the Campaign Manager at `https://yourbaseurl.talon.one/`, the URL for the [updateCustomerSessionV2](https://docs.talon.one/integration-api#operation/updateCustomerSessionV2) endpoint is `https://yourbaseurl.talon.one/v2/customer_sessions/{Id}` + * + * The version of the OpenAPI document: + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package one.talon.model; + +import java.util.Objects; +import java.util.Arrays; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; + +/** + * IntegrationEventV3Request + */ + +public class IntegrationEventV3Request { + public static final String SERIALIZED_NAME_PROFILE_ID = "profileId"; + @SerializedName(SERIALIZED_NAME_PROFILE_ID) + private String profileId; + + public static final String SERIALIZED_NAME_STORE_INTEGRATION_ID = "storeIntegrationId"; + @SerializedName(SERIALIZED_NAME_STORE_INTEGRATION_ID) + private String storeIntegrationId; + + public static final String SERIALIZED_NAME_EVALUABLE_CAMPAIGN_IDS = "evaluableCampaignIds"; + @SerializedName(SERIALIZED_NAME_EVALUABLE_CAMPAIGN_IDS) + private List evaluableCampaignIds = null; + + public static final String SERIALIZED_NAME_INTEGRATION_ID = "integrationId"; + @SerializedName(SERIALIZED_NAME_INTEGRATION_ID) + private String integrationId; + + public static final String SERIALIZED_NAME_TYPE = "type"; + @SerializedName(SERIALIZED_NAME_TYPE) + private String type; + + public static final String SERIALIZED_NAME_ATTRIBUTES = "attributes"; + @SerializedName(SERIALIZED_NAME_ATTRIBUTES) + private Object attributes; + + public static final String SERIALIZED_NAME_CONNECTED_SESSION_I_D = "connectedSessionID"; + @SerializedName(SERIALIZED_NAME_CONNECTED_SESSION_I_D) + private String connectedSessionID; + + public static final String SERIALIZED_NAME_PREVIOUS_EVENT_I_D = "previousEventID"; + @SerializedName(SERIALIZED_NAME_PREVIOUS_EVENT_I_D) + private String previousEventID; + + public static final String SERIALIZED_NAME_LOYALTY_CARDS = "loyaltyCards"; + @SerializedName(SERIALIZED_NAME_LOYALTY_CARDS) + private List loyaltyCards = null; + + /** + * Gets or Sets responseContent + */ + @JsonAdapter(ResponseContentEnum.Adapter.class) + public enum ResponseContentEnum { + CUSTOMERPROFILE("customerProfile"), + + TRIGGEREDCAMPAIGNS("triggeredCampaigns"), + + LOYALTY("loyalty"), + + EVENT("event"), + + AWARDEDGIVEAWAYS("awardedGiveaways"), + + RULEFAILUREREASONS("ruleFailureReasons"); + + private String value; + + ResponseContentEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static ResponseContentEnum fromValue(String value) { + for (ResponseContentEnum b : ResponseContentEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final ResponseContentEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public ResponseContentEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return ResponseContentEnum.fromValue(value); + } + } + } + + public static final String SERIALIZED_NAME_RESPONSE_CONTENT = "responseContent"; + @SerializedName(SERIALIZED_NAME_RESPONSE_CONTENT) + private List responseContent = null; + + + public IntegrationEventV3Request profileId(String profileId) { + + this.profileId = profileId; + return this; + } + + /** + * ID of the customer profile set by your integration layer. **Note:** If the customer does not yet have a known `profileId`, we recommend you use a guest `profileId`. + * @return profileId + **/ + @ApiModelProperty(example = "URNGV8294NV", required = true, value = "ID of the customer profile set by your integration layer. **Note:** If the customer does not yet have a known `profileId`, we recommend you use a guest `profileId`. ") + + public String getProfileId() { + return profileId; + } + + + public void setProfileId(String profileId) { + this.profileId = profileId; + } + + + public IntegrationEventV3Request storeIntegrationId(String storeIntegrationId) { + + this.storeIntegrationId = storeIntegrationId; + return this; + } + + /** + * The integration ID of the store. You choose this ID when you create a store. + * @return storeIntegrationId + **/ + @javax.annotation.Nullable + @ApiModelProperty(example = "STORE-001", value = "The integration ID of the store. You choose this ID when you create a store.") + + public String getStoreIntegrationId() { + return storeIntegrationId; + } + + + public void setStoreIntegrationId(String storeIntegrationId) { + this.storeIntegrationId = storeIntegrationId; + } + + + public IntegrationEventV3Request evaluableCampaignIds(List evaluableCampaignIds) { + + this.evaluableCampaignIds = evaluableCampaignIds; + return this; + } + + public IntegrationEventV3Request addEvaluableCampaignIdsItem(Long evaluableCampaignIdsItem) { + if (this.evaluableCampaignIds == null) { + this.evaluableCampaignIds = new ArrayList(); + } + this.evaluableCampaignIds.add(evaluableCampaignIdsItem); + return this; + } + + /** + * When using the `dry` query parameter, use this property to list the campaign to be evaluated by the Rule Engine. These campaigns will be evaluated, even if they are disabled, allowing you to test specific campaigns before activating them. + * @return evaluableCampaignIds + **/ + @javax.annotation.Nullable + @ApiModelProperty(example = "[10, 12]", value = "When using the `dry` query parameter, use this property to list the campaign to be evaluated by the Rule Engine. These campaigns will be evaluated, even if they are disabled, allowing you to test specific campaigns before activating them. ") + + public List getEvaluableCampaignIds() { + return evaluableCampaignIds; + } + + + public void setEvaluableCampaignIds(List evaluableCampaignIds) { + this.evaluableCampaignIds = evaluableCampaignIds; + } + + + public IntegrationEventV3Request integrationId(String integrationId) { + + this.integrationId = integrationId; + return this; + } + + /** + * The unique ID of the current event. Only one event with this ID could be activated, duplicated events are forbidden. + * @return integrationId + **/ + @ApiModelProperty(example = "175KJPS947296", required = true, value = "The unique ID of the current event. Only one event with this ID could be activated, duplicated events are forbidden. ") + + public String getIntegrationId() { + return integrationId; + } + + + public void setIntegrationId(String integrationId) { + this.integrationId = integrationId; + } + + + public IntegrationEventV3Request type(String type) { + + this.type = type; + return this; + } + + /** + * A string representing the event name. Must not be a reserved event name. You create this value when you [create an attribute](https://docs.talon.one/docs/dev/concepts/entities/events#creating-a-custom-event) of type `event` in the Campaign Manager. + * @return type + **/ + @ApiModelProperty(example = "pageViewed", required = true, value = "A string representing the event name. Must not be a reserved event name. You create this value when you [create an attribute](https://docs.talon.one/docs/dev/concepts/entities/events#creating-a-custom-event) of type `event` in the Campaign Manager. ") + + public String getType() { + return type; + } + + + public void setType(String type) { + this.type = type; + } + + + public IntegrationEventV3Request attributes(Object attributes) { + + this.attributes = attributes; + return this; + } + + /** + * Arbitrary additional JSON properties associated with the event. They must be created in the Campaign Manager before setting them with this property. See [creating custom attributes](https://docs.talon.one/docs/product/account/dev-tools/managing-attributes#creating-a-custom-attribute). + * @return attributes + **/ + @javax.annotation.Nullable + @ApiModelProperty(example = "{\"myAttribute\":\"myValue\"}", value = "Arbitrary additional JSON properties associated with the event. They must be created in the Campaign Manager before setting them with this property. See [creating custom attributes](https://docs.talon.one/docs/product/account/dev-tools/managing-attributes#creating-a-custom-attribute).") + + public Object getAttributes() { + return attributes; + } + + + public void setAttributes(Object attributes) { + this.attributes = attributes; + } + + + public IntegrationEventV3Request connectedSessionID(String connectedSessionID) { + + this.connectedSessionID = connectedSessionID; + return this; + } + + /** + * The ID of the session that happened in the past. + * @return connectedSessionID + **/ + @javax.annotation.Nullable + @ApiModelProperty(example = "175KJPS947296", value = "The ID of the session that happened in the past.") + + public String getConnectedSessionID() { + return connectedSessionID; + } + + + public void setConnectedSessionID(String connectedSessionID) { + this.connectedSessionID = connectedSessionID; + } + + + public IntegrationEventV3Request previousEventID(String previousEventID) { + + this.previousEventID = previousEventID; + return this; + } + + /** + * The unique identifier of the event that happened in the past. + * @return previousEventID + **/ + @javax.annotation.Nullable + @ApiModelProperty(example = "175KJPS947296", value = "The unique identifier of the event that happened in the past.") + + public String getPreviousEventID() { + return previousEventID; + } + + + public void setPreviousEventID(String previousEventID) { + this.previousEventID = previousEventID; + } + + + public IntegrationEventV3Request loyaltyCards(List loyaltyCards) { + + this.loyaltyCards = loyaltyCards; + return this; + } + + public IntegrationEventV3Request addLoyaltyCardsItem(String loyaltyCardsItem) { + if (this.loyaltyCards == null) { + this.loyaltyCards = new ArrayList(); + } + this.loyaltyCards.add(loyaltyCardsItem); + return this; + } + + /** + * Identifiers of the loyalty cards used during this event. + * @return loyaltyCards + **/ + @javax.annotation.Nullable + @ApiModelProperty(example = "[loyalty-card-1]", value = "Identifiers of the loyalty cards used during this event.") + + public List getLoyaltyCards() { + return loyaltyCards; + } + + + public void setLoyaltyCards(List loyaltyCards) { + this.loyaltyCards = loyaltyCards; + } + + + public IntegrationEventV3Request responseContent(List responseContent) { + + this.responseContent = responseContent; + return this; + } + + public IntegrationEventV3Request addResponseContentItem(ResponseContentEnum responseContentItem) { + if (this.responseContent == null) { + this.responseContent = new ArrayList(); + } + this.responseContent.add(responseContentItem); + return this; + } + + /** + * Optional list of requested information to be present on the response related to the tracking custom event. + * @return responseContent + **/ + @javax.annotation.Nullable + @ApiModelProperty(example = "[triggeredCampaigns, customerProfile]", value = "Optional list of requested information to be present on the response related to the tracking custom event. ") + + public List getResponseContent() { + return responseContent; + } + + + public void setResponseContent(List responseContent) { + this.responseContent = responseContent; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + IntegrationEventV3Request integrationEventV3Request = (IntegrationEventV3Request) o; + return Objects.equals(this.profileId, integrationEventV3Request.profileId) && + Objects.equals(this.storeIntegrationId, integrationEventV3Request.storeIntegrationId) && + Objects.equals(this.evaluableCampaignIds, integrationEventV3Request.evaluableCampaignIds) && + Objects.equals(this.integrationId, integrationEventV3Request.integrationId) && + Objects.equals(this.type, integrationEventV3Request.type) && + Objects.equals(this.attributes, integrationEventV3Request.attributes) && + Objects.equals(this.connectedSessionID, integrationEventV3Request.connectedSessionID) && + Objects.equals(this.previousEventID, integrationEventV3Request.previousEventID) && + Objects.equals(this.loyaltyCards, integrationEventV3Request.loyaltyCards) && + Objects.equals(this.responseContent, integrationEventV3Request.responseContent); + } + + @Override + public int hashCode() { + return Objects.hash(profileId, storeIntegrationId, evaluableCampaignIds, integrationId, type, attributes, connectedSessionID, previousEventID, loyaltyCards, responseContent); + } + + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class IntegrationEventV3Request {\n"); + sb.append(" profileId: ").append(toIndentedString(profileId)).append("\n"); + sb.append(" storeIntegrationId: ").append(toIndentedString(storeIntegrationId)).append("\n"); + sb.append(" evaluableCampaignIds: ").append(toIndentedString(evaluableCampaignIds)).append("\n"); + sb.append(" integrationId: ").append(toIndentedString(integrationId)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" attributes: ").append(toIndentedString(attributes)).append("\n"); + sb.append(" connectedSessionID: ").append(toIndentedString(connectedSessionID)).append("\n"); + sb.append(" previousEventID: ").append(toIndentedString(previousEventID)).append("\n"); + sb.append(" loyaltyCards: ").append(toIndentedString(loyaltyCards)).append("\n"); + sb.append(" responseContent: ").append(toIndentedString(responseContent)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + +} + diff --git a/src/main/java/one/talon/model/IntegrationEventV3Response.java b/src/main/java/one/talon/model/IntegrationEventV3Response.java new file mode 100644 index 0000000..1e40ab6 --- /dev/null +++ b/src/main/java/one/talon/model/IntegrationEventV3Response.java @@ -0,0 +1,379 @@ +/* + * Talon.One API + * Use the Talon.One API to integrate with your application and to manage applications and campaigns: - Use the operations in the [Integration API section](#integration-api) are used to integrate with our platform - Use the operation in the [Management API section](#management-api) to manage applications and campaigns. ## Determining the base URL of the endpoints The API is available at the same hostname as your Campaign Manager deployment. For example, if you access the Campaign Manager at `https://yourbaseurl.talon.one/`, the URL for the [updateCustomerSessionV2](https://docs.talon.one/integration-api#operation/updateCustomerSessionV2) endpoint is `https://yourbaseurl.talon.one/v2/customer_sessions/{Id}` + * + * The version of the OpenAPI document: + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package one.talon.model; + +import java.util.Objects; +import java.util.Arrays; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import one.talon.model.Campaign; +import one.talon.model.Coupon; +import one.talon.model.CustomerProfile; +import one.talon.model.Effect; +import one.talon.model.EventV3; +import one.talon.model.Giveaway; +import one.talon.model.Loyalty; +import one.talon.model.Referral; +import one.talon.model.RuleFailureReason; + +/** + * This is the response type returned by the trackEventV3 endpoint. + */ +@ApiModel(description = "This is the response type returned by the trackEventV3 endpoint. ") + +public class IntegrationEventV3Response { + public static final String SERIALIZED_NAME_CUSTOMER_PROFILE = "customerProfile"; + @SerializedName(SERIALIZED_NAME_CUSTOMER_PROFILE) + private CustomerProfile customerProfile; + + public static final String SERIALIZED_NAME_EVENT = "event"; + @SerializedName(SERIALIZED_NAME_EVENT) + private EventV3 event; + + public static final String SERIALIZED_NAME_LOYALTY = "loyalty"; + @SerializedName(SERIALIZED_NAME_LOYALTY) + private Loyalty loyalty; + + public static final String SERIALIZED_NAME_TRIGGERED_CAMPAIGNS = "triggeredCampaigns"; + @SerializedName(SERIALIZED_NAME_TRIGGERED_CAMPAIGNS) + private List triggeredCampaigns = null; + + public static final String SERIALIZED_NAME_RULE_FAILURE_REASONS = "ruleFailureReasons"; + @SerializedName(SERIALIZED_NAME_RULE_FAILURE_REASONS) + private List ruleFailureReasons = null; + + public static final String SERIALIZED_NAME_AWARDED_GIVEAWAYS = "awardedGiveaways"; + @SerializedName(SERIALIZED_NAME_AWARDED_GIVEAWAYS) + private List awardedGiveaways = null; + + public static final String SERIALIZED_NAME_EFFECTS = "effects"; + @SerializedName(SERIALIZED_NAME_EFFECTS) + private List effects = new ArrayList(); + + public static final String SERIALIZED_NAME_CREATED_COUPONS = "createdCoupons"; + @SerializedName(SERIALIZED_NAME_CREATED_COUPONS) + private List createdCoupons = new ArrayList(); + + public static final String SERIALIZED_NAME_CREATED_REFERRALS = "createdReferrals"; + @SerializedName(SERIALIZED_NAME_CREATED_REFERRALS) + private List createdReferrals = new ArrayList(); + + + public IntegrationEventV3Response customerProfile(CustomerProfile customerProfile) { + + this.customerProfile = customerProfile; + return this; + } + + /** + * Get customerProfile + * @return customerProfile + **/ + @javax.annotation.Nullable + @ApiModelProperty(value = "") + + public CustomerProfile getCustomerProfile() { + return customerProfile; + } + + + public void setCustomerProfile(CustomerProfile customerProfile) { + this.customerProfile = customerProfile; + } + + + public IntegrationEventV3Response event(EventV3 event) { + + this.event = event; + return this; + } + + /** + * Get event + * @return event + **/ + @javax.annotation.Nullable + @ApiModelProperty(value = "") + + public EventV3 getEvent() { + return event; + } + + + public void setEvent(EventV3 event) { + this.event = event; + } + + + public IntegrationEventV3Response loyalty(Loyalty loyalty) { + + this.loyalty = loyalty; + return this; + } + + /** + * Get loyalty + * @return loyalty + **/ + @javax.annotation.Nullable + @ApiModelProperty(value = "") + + public Loyalty getLoyalty() { + return loyalty; + } + + + public void setLoyalty(Loyalty loyalty) { + this.loyalty = loyalty; + } + + + public IntegrationEventV3Response triggeredCampaigns(List triggeredCampaigns) { + + this.triggeredCampaigns = triggeredCampaigns; + return this; + } + + public IntegrationEventV3Response addTriggeredCampaignsItem(Campaign triggeredCampaignsItem) { + if (this.triggeredCampaigns == null) { + this.triggeredCampaigns = new ArrayList(); + } + this.triggeredCampaigns.add(triggeredCampaignsItem); + return this; + } + + /** + * Get triggeredCampaigns + * @return triggeredCampaigns + **/ + @javax.annotation.Nullable + @ApiModelProperty(value = "") + + public List getTriggeredCampaigns() { + return triggeredCampaigns; + } + + + public void setTriggeredCampaigns(List triggeredCampaigns) { + this.triggeredCampaigns = triggeredCampaigns; + } + + + public IntegrationEventV3Response ruleFailureReasons(List ruleFailureReasons) { + + this.ruleFailureReasons = ruleFailureReasons; + return this; + } + + public IntegrationEventV3Response addRuleFailureReasonsItem(RuleFailureReason ruleFailureReasonsItem) { + if (this.ruleFailureReasons == null) { + this.ruleFailureReasons = new ArrayList(); + } + this.ruleFailureReasons.add(ruleFailureReasonsItem); + return this; + } + + /** + * Get ruleFailureReasons + * @return ruleFailureReasons + **/ + @javax.annotation.Nullable + @ApiModelProperty(value = "") + + public List getRuleFailureReasons() { + return ruleFailureReasons; + } + + + public void setRuleFailureReasons(List ruleFailureReasons) { + this.ruleFailureReasons = ruleFailureReasons; + } + + + public IntegrationEventV3Response awardedGiveaways(List awardedGiveaways) { + + this.awardedGiveaways = awardedGiveaways; + return this; + } + + public IntegrationEventV3Response addAwardedGiveawaysItem(Giveaway awardedGiveawaysItem) { + if (this.awardedGiveaways == null) { + this.awardedGiveaways = new ArrayList(); + } + this.awardedGiveaways.add(awardedGiveawaysItem); + return this; + } + + /** + * Get awardedGiveaways + * @return awardedGiveaways + **/ + @javax.annotation.Nullable + @ApiModelProperty(value = "") + + public List getAwardedGiveaways() { + return awardedGiveaways; + } + + + public void setAwardedGiveaways(List awardedGiveaways) { + this.awardedGiveaways = awardedGiveaways; + } + + + public IntegrationEventV3Response effects(List effects) { + + this.effects = effects; + return this; + } + + public IntegrationEventV3Response addEffectsItem(Effect effectsItem) { + this.effects.add(effectsItem); + return this; + } + + /** + * The effects generated by the rules in your running campaigns. See [API effects](https://docs.talon.one/docs/dev/integration-api/api-effects). + * @return effects + **/ + @ApiModelProperty(required = true, value = "The effects generated by the rules in your running campaigns. See [API effects](https://docs.talon.one/docs/dev/integration-api/api-effects).") + + public List getEffects() { + return effects; + } + + + public void setEffects(List effects) { + this.effects = effects; + } + + + public IntegrationEventV3Response createdCoupons(List createdCoupons) { + + this.createdCoupons = createdCoupons; + return this; + } + + public IntegrationEventV3Response addCreatedCouponsItem(Coupon createdCouponsItem) { + this.createdCoupons.add(createdCouponsItem); + return this; + } + + /** + * Get createdCoupons + * @return createdCoupons + **/ + @ApiModelProperty(required = true, value = "") + + public List getCreatedCoupons() { + return createdCoupons; + } + + + public void setCreatedCoupons(List createdCoupons) { + this.createdCoupons = createdCoupons; + } + + + public IntegrationEventV3Response createdReferrals(List createdReferrals) { + + this.createdReferrals = createdReferrals; + return this; + } + + public IntegrationEventV3Response addCreatedReferralsItem(Referral createdReferralsItem) { + this.createdReferrals.add(createdReferralsItem); + return this; + } + + /** + * Get createdReferrals + * @return createdReferrals + **/ + @ApiModelProperty(required = true, value = "") + + public List getCreatedReferrals() { + return createdReferrals; + } + + + public void setCreatedReferrals(List createdReferrals) { + this.createdReferrals = createdReferrals; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + IntegrationEventV3Response integrationEventV3Response = (IntegrationEventV3Response) o; + return Objects.equals(this.customerProfile, integrationEventV3Response.customerProfile) && + Objects.equals(this.event, integrationEventV3Response.event) && + Objects.equals(this.loyalty, integrationEventV3Response.loyalty) && + Objects.equals(this.triggeredCampaigns, integrationEventV3Response.triggeredCampaigns) && + Objects.equals(this.ruleFailureReasons, integrationEventV3Response.ruleFailureReasons) && + Objects.equals(this.awardedGiveaways, integrationEventV3Response.awardedGiveaways) && + Objects.equals(this.effects, integrationEventV3Response.effects) && + Objects.equals(this.createdCoupons, integrationEventV3Response.createdCoupons) && + Objects.equals(this.createdReferrals, integrationEventV3Response.createdReferrals); + } + + @Override + public int hashCode() { + return Objects.hash(customerProfile, event, loyalty, triggeredCampaigns, ruleFailureReasons, awardedGiveaways, effects, createdCoupons, createdReferrals); + } + + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class IntegrationEventV3Response {\n"); + sb.append(" customerProfile: ").append(toIndentedString(customerProfile)).append("\n"); + sb.append(" event: ").append(toIndentedString(event)).append("\n"); + sb.append(" loyalty: ").append(toIndentedString(loyalty)).append("\n"); + sb.append(" triggeredCampaigns: ").append(toIndentedString(triggeredCampaigns)).append("\n"); + sb.append(" ruleFailureReasons: ").append(toIndentedString(ruleFailureReasons)).append("\n"); + sb.append(" awardedGiveaways: ").append(toIndentedString(awardedGiveaways)).append("\n"); + sb.append(" effects: ").append(toIndentedString(effects)).append("\n"); + sb.append(" createdCoupons: ").append(toIndentedString(createdCoupons)).append("\n"); + sb.append(" createdReferrals: ").append(toIndentedString(createdReferrals)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + +} + diff --git a/src/main/java/one/talon/model/IntegrationProfileEntityV3.java b/src/main/java/one/talon/model/IntegrationProfileEntityV3.java new file mode 100644 index 0000000..871e86f --- /dev/null +++ b/src/main/java/one/talon/model/IntegrationProfileEntityV3.java @@ -0,0 +1,98 @@ +/* + * Talon.One API + * Use the Talon.One API to integrate with your application and to manage applications and campaigns: - Use the operations in the [Integration API section](#integration-api) are used to integrate with our platform - Use the operation in the [Management API section](#management-api) to manage applications and campaigns. ## Determining the base URL of the endpoints The API is available at the same hostname as your Campaign Manager deployment. For example, if you access the Campaign Manager at `https://yourbaseurl.talon.one/`, the URL for the [updateCustomerSessionV2](https://docs.talon.one/integration-api#operation/updateCustomerSessionV2) endpoint is `https://yourbaseurl.talon.one/v2/customer_sessions/{Id}` + * + * The version of the OpenAPI document: + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package one.talon.model; + +import java.util.Objects; +import java.util.Arrays; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.io.IOException; + +/** + * IntegrationProfileEntityV3 + */ + +public class IntegrationProfileEntityV3 { + public static final String SERIALIZED_NAME_PROFILE_ID = "profileId"; + @SerializedName(SERIALIZED_NAME_PROFILE_ID) + private String profileId; + + + public IntegrationProfileEntityV3 profileId(String profileId) { + + this.profileId = profileId; + return this; + } + + /** + * ID of the customer profile set by your integration layer. **Note:** If the customer does not yet have a known `profileId`, we recommend you use a guest `profileId`. + * @return profileId + **/ + @ApiModelProperty(example = "URNGV8294NV", required = true, value = "ID of the customer profile set by your integration layer. **Note:** If the customer does not yet have a known `profileId`, we recommend you use a guest `profileId`. ") + + public String getProfileId() { + return profileId; + } + + + public void setProfileId(String profileId) { + this.profileId = profileId; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + IntegrationProfileEntityV3 integrationProfileEntityV3 = (IntegrationProfileEntityV3) o; + return Objects.equals(this.profileId, integrationProfileEntityV3.profileId); + } + + @Override + public int hashCode() { + return Objects.hash(profileId); + } + + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class IntegrationProfileEntityV3 {\n"); + sb.append(" profileId: ").append(toIndentedString(profileId)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + +} + diff --git a/src/main/java/one/talon/model/LedgerTransactionLogEntryIntegrationAPI.java b/src/main/java/one/talon/model/LedgerTransactionLogEntryIntegrationAPI.java index b95acaa..c717f30 100644 --- a/src/main/java/one/talon/model/LedgerTransactionLogEntryIntegrationAPI.java +++ b/src/main/java/one/talon/model/LedgerTransactionLogEntryIntegrationAPI.java @@ -277,10 +277,10 @@ public LedgerTransactionLogEntryIntegrationAPI startDate(String startDate) { } /** - * When points become active. Possible values: - `immediate`: Points are immediately active. - a timestamp value: Points become active at a given date and time. + * When points become active. Possible values: - `immediate`: Points are immediately active. - `on_action`: Points become active based on the customer's action. - a timestamp value: Points become active at a given date and time. * @return startDate **/ - @ApiModelProperty(example = "2022-01-02T15:04:05Z07:00", required = true, value = "When points become active. Possible values: - `immediate`: Points are immediately active. - a timestamp value: Points become active at a given date and time. ") + @ApiModelProperty(example = "2022-01-02T15:04:05Z07:00", required = true, value = "When points become active. Possible values: - `immediate`: Points are immediately active. - `on_action`: Points become active based on the customer's action. - a timestamp value: Points become active at a given date and time. ") public String getStartDate() { return startDate; diff --git a/src/main/java/one/talon/model/LoyaltyProgramTransaction.java b/src/main/java/one/talon/model/LoyaltyProgramTransaction.java index a9c497b..1c1619e 100644 --- a/src/main/java/one/talon/model/LoyaltyProgramTransaction.java +++ b/src/main/java/one/talon/model/LoyaltyProgramTransaction.java @@ -344,10 +344,10 @@ public LoyaltyProgramTransaction startDate(String startDate) { } /** - * When points become active. Possible values: - `immediate`: Points are immediately active. - a timestamp value: Points become active at a given date and time. + * When points become active. Possible values: - `immediate`: Points are immediately active. - `on_action`: Points become active based on the customer's action. - a timestamp value: Points become active at a given date and time. * @return startDate **/ - @ApiModelProperty(example = "2022-01-02T15:04:05Z07:00", required = true, value = "When points become active. Possible values: - `immediate`: Points are immediately active. - a timestamp value: Points become active at a given date and time. ") + @ApiModelProperty(example = "2022-01-02T15:04:05Z07:00", required = true, value = "When points become active. Possible values: - `immediate`: Points are immediately active. - `on_action`: Points become active based on the customer's action. - a timestamp value: Points become active at a given date and time. ") public String getStartDate() { return startDate; diff --git a/src/main/java/one/talon/model/ManagementKey.java b/src/main/java/one/talon/model/ManagementKey.java index dd15570..f21f711 100644 --- a/src/main/java/one/talon/model/ManagementKey.java +++ b/src/main/java/one/talon/model/ManagementKey.java @@ -69,6 +69,10 @@ public class ManagementKey { @SerializedName(SERIALIZED_NAME_DISABLED) private Boolean disabled; + public static final String SERIALIZED_NAME_LAST_USED = "lastUsed"; + @SerializedName(SERIALIZED_NAME_LAST_USED) + private OffsetDateTime lastUsed; + public ManagementKey name(String name) { @@ -283,6 +287,29 @@ public void setDisabled(Boolean disabled) { } + public ManagementKey lastUsed(OffsetDateTime lastUsed) { + + this.lastUsed = lastUsed; + return this; + } + + /** + * The last time the management key was used. + * @return lastUsed + **/ + @javax.annotation.Nullable + @ApiModelProperty(example = "2022-03-02T16:46:17.758585Z", value = "The last time the management key was used.") + + public OffsetDateTime getLastUsed() { + return lastUsed; + } + + + public void setLastUsed(OffsetDateTime lastUsed) { + this.lastUsed = lastUsed; + } + + @Override public boolean equals(java.lang.Object o) { if (this == o) { @@ -300,12 +327,13 @@ public boolean equals(java.lang.Object o) { Objects.equals(this.createdBy, managementKey.createdBy) && Objects.equals(this.accountID, managementKey.accountID) && Objects.equals(this.created, managementKey.created) && - Objects.equals(this.disabled, managementKey.disabled); + Objects.equals(this.disabled, managementKey.disabled) && + Objects.equals(this.lastUsed, managementKey.lastUsed); } @Override public int hashCode() { - return Objects.hash(name, expiryDate, endpoints, allowedApplicationIds, id, createdBy, accountID, created, disabled); + return Objects.hash(name, expiryDate, endpoints, allowedApplicationIds, id, createdBy, accountID, created, disabled, lastUsed); } @@ -322,6 +350,7 @@ public String toString() { sb.append(" accountID: ").append(toIndentedString(accountID)).append("\n"); sb.append(" created: ").append(toIndentedString(created)).append("\n"); sb.append(" disabled: ").append(toIndentedString(disabled)).append("\n"); + sb.append(" lastUsed: ").append(toIndentedString(lastUsed)).append("\n"); sb.append("}"); return sb.toString(); } diff --git a/src/main/java/one/talon/model/NewManagementKey.java b/src/main/java/one/talon/model/NewManagementKey.java index 4dec163..53e9eee 100644 --- a/src/main/java/one/talon/model/NewManagementKey.java +++ b/src/main/java/one/talon/model/NewManagementKey.java @@ -69,6 +69,10 @@ public class NewManagementKey { @SerializedName(SERIALIZED_NAME_DISABLED) private Boolean disabled; + public static final String SERIALIZED_NAME_LAST_USED = "lastUsed"; + @SerializedName(SERIALIZED_NAME_LAST_USED) + private OffsetDateTime lastUsed; + public static final String SERIALIZED_NAME_KEY = "key"; @SerializedName(SERIALIZED_NAME_KEY) private String key; @@ -287,6 +291,29 @@ public void setDisabled(Boolean disabled) { } + public NewManagementKey lastUsed(OffsetDateTime lastUsed) { + + this.lastUsed = lastUsed; + return this; + } + + /** + * The last time the management key was used. + * @return lastUsed + **/ + @javax.annotation.Nullable + @ApiModelProperty(example = "2022-03-02T16:46:17.758585Z", value = "The last time the management key was used.") + + public OffsetDateTime getLastUsed() { + return lastUsed; + } + + + public void setLastUsed(OffsetDateTime lastUsed) { + this.lastUsed = lastUsed; + } + + public NewManagementKey key(String key) { this.key = key; @@ -327,12 +354,13 @@ public boolean equals(java.lang.Object o) { Objects.equals(this.accountID, newManagementKey.accountID) && Objects.equals(this.created, newManagementKey.created) && Objects.equals(this.disabled, newManagementKey.disabled) && + Objects.equals(this.lastUsed, newManagementKey.lastUsed) && Objects.equals(this.key, newManagementKey.key); } @Override public int hashCode() { - return Objects.hash(name, expiryDate, endpoints, allowedApplicationIds, id, createdBy, accountID, created, disabled, key); + return Objects.hash(name, expiryDate, endpoints, allowedApplicationIds, id, createdBy, accountID, created, disabled, lastUsed, key); } @@ -349,6 +377,7 @@ public String toString() { sb.append(" accountID: ").append(toIndentedString(accountID)).append("\n"); sb.append(" created: ").append(toIndentedString(created)).append("\n"); sb.append(" disabled: ").append(toIndentedString(disabled)).append("\n"); + sb.append(" lastUsed: ").append(toIndentedString(lastUsed)).append("\n"); sb.append(" key: ").append(toIndentedString(key)).append("\n"); sb.append("}"); return sb.toString(); diff --git a/src/main/java/one/talon/model/NewMessageTest.java b/src/main/java/one/talon/model/NewMessageTest.java index 1ddacda..6b1d3a9 100644 --- a/src/main/java/one/talon/model/NewMessageTest.java +++ b/src/main/java/one/talon/model/NewMessageTest.java @@ -111,6 +111,10 @@ public VerbEnum read(final JsonReader jsonReader) throws IOException { @SerializedName(SERIALIZED_NAME_APPLICATION_IDS) private List applicationIds = null; + public static final String SERIALIZED_NAME_AUTHENTICATION_ID = "authenticationId"; + @SerializedName(SERIALIZED_NAME_AUTHENTICATION_ID) + private Long authenticationId; + public NewMessageTest headers(Map headers) { @@ -272,6 +276,29 @@ public void setApplicationIds(List applicationIds) { } + public NewMessageTest authenticationId(Long authenticationId) { + + this.authenticationId = authenticationId; + return this; + } + + /** + * The ID of the credential that this webhook is using. + * @return authenticationId + **/ + @javax.annotation.Nullable + @ApiModelProperty(example = "1", value = "The ID of the credential that this webhook is using.") + + public Long getAuthenticationId() { + return authenticationId; + } + + + public void setAuthenticationId(Long authenticationId) { + this.authenticationId = authenticationId; + } + + @Override public boolean equals(java.lang.Object o) { if (this == o) { @@ -286,12 +313,13 @@ public boolean equals(java.lang.Object o) { Objects.equals(this.url, newMessageTest.url) && Objects.equals(this.payload, newMessageTest.payload) && Objects.equals(this.params, newMessageTest.params) && - Objects.equals(this.applicationIds, newMessageTest.applicationIds); + Objects.equals(this.applicationIds, newMessageTest.applicationIds) && + Objects.equals(this.authenticationId, newMessageTest.authenticationId); } @Override public int hashCode() { - return Objects.hash(headers, verb, url, payload, params, applicationIds); + return Objects.hash(headers, verb, url, payload, params, applicationIds, authenticationId); } @@ -305,6 +333,7 @@ public String toString() { sb.append(" payload: ").append(toIndentedString(payload)).append("\n"); sb.append(" params: ").append(toIndentedString(params)).append("\n"); sb.append(" applicationIds: ").append(toIndentedString(applicationIds)).append("\n"); + sb.append(" authenticationId: ").append(toIndentedString(authenticationId)).append("\n"); sb.append("}"); return sb.toString(); } diff --git a/src/main/java/one/talon/model/PrismaticFlow.java b/src/main/java/one/talon/model/PrismaticFlow.java new file mode 100644 index 0000000..52a978a --- /dev/null +++ b/src/main/java/one/talon/model/PrismaticFlow.java @@ -0,0 +1,209 @@ +/* + * Talon.One API + * Use the Talon.One API to integrate with your application and to manage applications and campaigns: - Use the operations in the [Integration API section](#integration-api) are used to integrate with our platform - Use the operation in the [Management API section](#management-api) to manage applications and campaigns. ## Determining the base URL of the endpoints The API is available at the same hostname as your Campaign Manager deployment. For example, if you access the Campaign Manager at `https://yourbaseurl.talon.one/`, the URL for the [updateCustomerSessionV2](https://docs.talon.one/integration-api#operation/updateCustomerSessionV2) endpoint is `https://yourbaseurl.talon.one/v2/customer_sessions/{Id}` + * + * The version of the OpenAPI document: + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package one.talon.model; + +import java.util.Objects; +import java.util.Arrays; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.io.IOException; + +/** + * PrismaticFlow + */ + +public class PrismaticFlow { + /** + * The event type we want to register a flow for. + */ + @JsonAdapter(EventTypeEnum.Adapter.class) + public enum EventTypeEnum { + STRIKETHROUGHPRICE("StrikethroughPrice"), + + CAMPAIGNEVALUATIONTREECHANGED("CampaignEvaluationTreeChanged"), + + CAMPAIGNNOTIFICATION("CampaignNotification"), + + LOYALTYCARDPOINTSEXPIRING("LoyaltyCardPointsExpiring"), + + ASYNCCOUPONSCREATED("AsyncCouponsCreated"), + + COUPONCODEEXPIRING("CouponCodeExpiring"), + + LOYALTYPOINTSEXPIRING("LoyaltyPointsExpiring"), + + LOYALTYPOINTSPENDINGTOACTIVE("LoyaltyPointsPendingToActive"), + + TIERDOWNGRADE("TierDowngrade"), + + TIERUPGRADE("TierUpgrade"), + + TIERWILLDOWNGRADE("TierWillDowngrade"), + + COUPONCREATED("CouponCreated"), + + COUPONUPDATED("CouponUpdated"), + + COUPONDELETED("CouponDeleted"), + + COUPONSUPDATED("CouponsUpdated"), + + COUPONSDELETED("CouponsDeleted"), + + LOYALTYCARDPOINTSADDED("LoyaltyCardPointsAdded"), + + LOYALTYCARDPOINTSDEDUCTED("LoyaltyCardPointsDeducted"), + + LOYALTYPOINTSADDED("LoyaltyPointsAdded"), + + LOYALTYPOINTSDEDUCTED("LoyaltyPointsDeducted"); + + private String value; + + EventTypeEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static EventTypeEnum fromValue(String value) { + for (EventTypeEnum b : EventTypeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final EventTypeEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public EventTypeEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return EventTypeEnum.fromValue(value); + } + } + } + + public static final String SERIALIZED_NAME_EVENT_TYPE = "EventType"; + @SerializedName(SERIALIZED_NAME_EVENT_TYPE) + private EventTypeEnum eventType; + + public static final String SERIALIZED_NAME_PRISMATIC_FLOW_URL = "PrismaticFlowUrl"; + @SerializedName(SERIALIZED_NAME_PRISMATIC_FLOW_URL) + private String prismaticFlowUrl; + + + public PrismaticFlow eventType(EventTypeEnum eventType) { + + this.eventType = eventType; + return this; + } + + /** + * The event type we want to register a flow for. + * @return eventType + **/ + @ApiModelProperty(required = true, value = "The event type we want to register a flow for.") + + public EventTypeEnum getEventType() { + return eventType; + } + + + public void setEventType(EventTypeEnum eventType) { + this.eventType = eventType; + } + + + public PrismaticFlow prismaticFlowUrl(String prismaticFlowUrl) { + + this.prismaticFlowUrl = prismaticFlowUrl; + return this; + } + + /** + * The URL of the prismatic flow that we want to trigger for the event. + * @return prismaticFlowUrl + **/ + @ApiModelProperty(required = true, value = "The URL of the prismatic flow that we want to trigger for the event.") + + public String getPrismaticFlowUrl() { + return prismaticFlowUrl; + } + + + public void setPrismaticFlowUrl(String prismaticFlowUrl) { + this.prismaticFlowUrl = prismaticFlowUrl; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + PrismaticFlow prismaticFlow = (PrismaticFlow) o; + return Objects.equals(this.eventType, prismaticFlow.eventType) && + Objects.equals(this.prismaticFlowUrl, prismaticFlow.prismaticFlowUrl); + } + + @Override + public int hashCode() { + return Objects.hash(eventType, prismaticFlowUrl); + } + + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class PrismaticFlow {\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" prismaticFlowUrl: ").append(toIndentedString(prismaticFlowUrl)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + +} + diff --git a/src/main/java/one/talon/model/PrismaticFlowConfig.java b/src/main/java/one/talon/model/PrismaticFlowConfig.java new file mode 100644 index 0000000..45483a3 --- /dev/null +++ b/src/main/java/one/talon/model/PrismaticFlowConfig.java @@ -0,0 +1,166 @@ +/* + * 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; + +/** + * PrismaticFlowConfig + */ + +public class PrismaticFlowConfig { + public static final String SERIALIZED_NAME_API_KEY = "ApiKey"; + @SerializedName(SERIALIZED_NAME_API_KEY) + private String apiKey; + + public static final String SERIALIZED_NAME_BATCH_SIZE = "BatchSize"; + @SerializedName(SERIALIZED_NAME_BATCH_SIZE) + private Long batchSize; + + public static final String SERIALIZED_NAME_PERIODS_IN_DAYS = "PeriodsInDays"; + @SerializedName(SERIALIZED_NAME_PERIODS_IN_DAYS) + private List periodsInDays = null; + + + public PrismaticFlowConfig apiKey(String apiKey) { + + this.apiKey = apiKey; + return this; + } + + /** + * Get apiKey + * @return apiKey + **/ + @ApiModelProperty(required = true, value = "") + + public String getApiKey() { + return apiKey; + } + + + public void setApiKey(String apiKey) { + this.apiKey = apiKey; + } + + + public PrismaticFlowConfig batchSize(Long batchSize) { + + this.batchSize = batchSize; + return this; + } + + /** + * Available for LoyaltyCardPointsExpiring, LoyaltyPointsExpiring, TierWillDowngrade, TierDowngrade, TierUpgrade, CouponCodeExpiring, CampaignNotification + * @return batchSize + **/ + @javax.annotation.Nullable + @ApiModelProperty(value = "Available for LoyaltyCardPointsExpiring, LoyaltyPointsExpiring, TierWillDowngrade, TierDowngrade, TierUpgrade, CouponCodeExpiring, CampaignNotification") + + public Long getBatchSize() { + return batchSize; + } + + + public void setBatchSize(Long batchSize) { + this.batchSize = batchSize; + } + + + public PrismaticFlowConfig periodsInDays(List periodsInDays) { + + this.periodsInDays = periodsInDays; + return this; + } + + public PrismaticFlowConfig addPeriodsInDaysItem(Long periodsInDaysItem) { + if (this.periodsInDays == null) { + this.periodsInDays = new ArrayList(); + } + this.periodsInDays.add(periodsInDaysItem); + return this; + } + + /** + * Available for LoyaltyCardPointsExpiring, LoyaltyPointsExpiring, TierWillDowngrade + * @return periodsInDays + **/ + @javax.annotation.Nullable + @ApiModelProperty(value = "Available for LoyaltyCardPointsExpiring, LoyaltyPointsExpiring, TierWillDowngrade") + + public List getPeriodsInDays() { + return periodsInDays; + } + + + public void setPeriodsInDays(List periodsInDays) { + this.periodsInDays = periodsInDays; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + PrismaticFlowConfig prismaticFlowConfig = (PrismaticFlowConfig) o; + return Objects.equals(this.apiKey, prismaticFlowConfig.apiKey) && + Objects.equals(this.batchSize, prismaticFlowConfig.batchSize) && + Objects.equals(this.periodsInDays, prismaticFlowConfig.periodsInDays); + } + + @Override + public int hashCode() { + return Objects.hash(apiKey, batchSize, periodsInDays); + } + + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class PrismaticFlowConfig {\n"); + sb.append(" apiKey: ").append(toIndentedString(apiKey)).append("\n"); + sb.append(" batchSize: ").append(toIndentedString(batchSize)).append("\n"); + sb.append(" periodsInDays: ").append(toIndentedString(periodsInDays)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + +} + diff --git a/src/main/java/one/talon/model/PrismaticFlowWithConfig.java b/src/main/java/one/talon/model/PrismaticFlowWithConfig.java new file mode 100644 index 0000000..ef98a55 --- /dev/null +++ b/src/main/java/one/talon/model/PrismaticFlowWithConfig.java @@ -0,0 +1,238 @@ +/* + * Talon.One API + * Use the Talon.One API to integrate with your application and to manage applications and campaigns: - Use the operations in the [Integration API section](#integration-api) are used to integrate with our platform - Use the operation in the [Management API section](#management-api) to manage applications and campaigns. ## Determining the base URL of the endpoints The API is available at the same hostname as your Campaign Manager deployment. For example, if you access the Campaign Manager at `https://yourbaseurl.talon.one/`, the URL for the [updateCustomerSessionV2](https://docs.talon.one/integration-api#operation/updateCustomerSessionV2) endpoint is `https://yourbaseurl.talon.one/v2/customer_sessions/{Id}` + * + * The version of the OpenAPI document: + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package one.talon.model; + +import java.util.Objects; +import java.util.Arrays; +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.io.IOException; +import one.talon.model.PrismaticFlowConfig; + +/** + * PrismaticFlowWithConfig + */ + +public class PrismaticFlowWithConfig { + /** + * The event type we want to register a flow for. + */ + @JsonAdapter(EventTypeEnum.Adapter.class) + public enum EventTypeEnum { + STRIKETHROUGHPRICE("StrikethroughPrice"), + + CAMPAIGNEVALUATIONTREECHANGED("CampaignEvaluationTreeChanged"), + + CAMPAIGNNOTIFICATION("CampaignNotification"), + + LOYALTYCARDPOINTSEXPIRING("LoyaltyCardPointsExpiring"), + + ASYNCCOUPONSCREATED("AsyncCouponsCreated"), + + COUPONCODEEXPIRING("CouponCodeExpiring"), + + LOYALTYPOINTSEXPIRING("LoyaltyPointsExpiring"), + + LOYALTYPOINTSPENDINGTOACTIVE("LoyaltyPointsPendingToActive"), + + TIERDOWNGRADE("TierDowngrade"), + + TIERUPGRADE("TierUpgrade"), + + TIERWILLDOWNGRADE("TierWillDowngrade"), + + COUPONCREATED("CouponCreated"), + + COUPONUPDATED("CouponUpdated"), + + COUPONDELETED("CouponDeleted"), + + COUPONSUPDATED("CouponsUpdated"), + + COUPONSDELETED("CouponsDeleted"), + + LOYALTYCARDPOINTSADDED("LoyaltyCardPointsAdded"), + + LOYALTYCARDPOINTSDEDUCTED("LoyaltyCardPointsDeducted"), + + LOYALTYPOINTSADDED("LoyaltyPointsAdded"), + + LOYALTYPOINTSDEDUCTED("LoyaltyPointsDeducted"); + + private String value; + + EventTypeEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static EventTypeEnum fromValue(String value) { + for (EventTypeEnum b : EventTypeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final EventTypeEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public EventTypeEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return EventTypeEnum.fromValue(value); + } + } + } + + public static final String SERIALIZED_NAME_EVENT_TYPE = "EventType"; + @SerializedName(SERIALIZED_NAME_EVENT_TYPE) + private EventTypeEnum eventType; + + public static final String SERIALIZED_NAME_PRISMATIC_FLOW_URL = "PrismaticFlowUrl"; + @SerializedName(SERIALIZED_NAME_PRISMATIC_FLOW_URL) + private String prismaticFlowUrl; + + public static final String SERIALIZED_NAME_CONFIG = "Config"; + @SerializedName(SERIALIZED_NAME_CONFIG) + private PrismaticFlowConfig config; + + + public PrismaticFlowWithConfig eventType(EventTypeEnum eventType) { + + this.eventType = eventType; + return this; + } + + /** + * The event type we want to register a flow for. + * @return eventType + **/ + @ApiModelProperty(required = true, value = "The event type we want to register a flow for.") + + public EventTypeEnum getEventType() { + return eventType; + } + + + public void setEventType(EventTypeEnum eventType) { + this.eventType = eventType; + } + + + public PrismaticFlowWithConfig prismaticFlowUrl(String prismaticFlowUrl) { + + this.prismaticFlowUrl = prismaticFlowUrl; + return this; + } + + /** + * The URL of the prismatic flow that we want to trigger for the event. + * @return prismaticFlowUrl + **/ + @ApiModelProperty(required = true, value = "The URL of the prismatic flow that we want to trigger for the event.") + + public String getPrismaticFlowUrl() { + return prismaticFlowUrl; + } + + + public void setPrismaticFlowUrl(String prismaticFlowUrl) { + this.prismaticFlowUrl = prismaticFlowUrl; + } + + + public PrismaticFlowWithConfig config(PrismaticFlowConfig config) { + + this.config = config; + return this; + } + + /** + * Get config + * @return config + **/ + @ApiModelProperty(required = true, value = "") + + public PrismaticFlowConfig getConfig() { + return config; + } + + + public void setConfig(PrismaticFlowConfig config) { + this.config = config; + } + + + @Override + public boolean equals(java.lang.Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + PrismaticFlowWithConfig prismaticFlowWithConfig = (PrismaticFlowWithConfig) o; + return Objects.equals(this.eventType, prismaticFlowWithConfig.eventType) && + Objects.equals(this.prismaticFlowUrl, prismaticFlowWithConfig.prismaticFlowUrl) && + Objects.equals(this.config, prismaticFlowWithConfig.config); + } + + @Override + public int hashCode() { + return Objects.hash(eventType, prismaticFlowUrl, config); + } + + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class PrismaticFlowWithConfig {\n"); + sb.append(" eventType: ").append(toIndentedString(eventType)).append("\n"); + sb.append(" prismaticFlowUrl: ").append(toIndentedString(prismaticFlowUrl)).append("\n"); + sb.append(" config: ").append(toIndentedString(config)).append("\n"); + sb.append("}"); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces + * (except the first line). + */ + private String toIndentedString(java.lang.Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } + +} + diff --git a/src/main/java/one/talon/model/StrikethroughLabelingNotification.java b/src/main/java/one/talon/model/StrikethroughLabelingNotification.java index e15940c..d101cd8 100644 --- a/src/main/java/one/talon/model/StrikethroughLabelingNotification.java +++ b/src/main/java/one/talon/model/StrikethroughLabelingNotification.java @@ -108,9 +108,58 @@ public VersionEnum read(final JsonReader jsonReader) throws IOException { @SerializedName(SERIALIZED_NAME_CHANGED_ITEMS) private List changedItems = new ArrayList(); + /** + * The type of notification. + */ + @JsonAdapter(NotificationTypeEnum.Adapter.class) + public enum NotificationTypeEnum { + STRIKETHROUGHPRICE("StrikethroughPrice"); + + private String value; + + NotificationTypeEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static NotificationTypeEnum fromValue(String value) { + for (NotificationTypeEnum b : NotificationTypeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final NotificationTypeEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public NotificationTypeEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return NotificationTypeEnum.fromValue(value); + } + } + } + public static final String SERIALIZED_NAME_NOTIFICATION_TYPE = "NotificationType"; @SerializedName(SERIALIZED_NAME_NOTIFICATION_TYPE) - private String notificationType; + private NotificationTypeEnum notificationType; + + public static final String SERIALIZED_NAME_SENT_AT = "sentAt"; + @SerializedName(SERIALIZED_NAME_SENT_AT) + private OffsetDateTime sentAt; public StrikethroughLabelingNotification version(VersionEnum version) { @@ -274,28 +323,50 @@ public void setChangedItems(List changedItems) { } - public StrikethroughLabelingNotification notificationType(String notificationType) { + public StrikethroughLabelingNotification notificationType(NotificationTypeEnum notificationType) { this.notificationType = notificationType; return this; } /** - * The type of the notification + * The type of notification. * @return notificationType **/ - @ApiModelProperty(required = true, value = "The type of the notification") + @ApiModelProperty(required = true, value = "The type of notification.") - public String getNotificationType() { + public NotificationTypeEnum getNotificationType() { return notificationType; } - public void setNotificationType(String notificationType) { + public void setNotificationType(NotificationTypeEnum notificationType) { this.notificationType = notificationType; } + public StrikethroughLabelingNotification sentAt(OffsetDateTime sentAt) { + + this.sentAt = sentAt; + return this; + } + + /** + * Timestamp at which the notification was sent. + * @return sentAt + **/ + @ApiModelProperty(required = true, value = "Timestamp at which the notification was sent.") + + public OffsetDateTime getSentAt() { + return sentAt; + } + + + public void setSentAt(OffsetDateTime sentAt) { + this.sentAt = sentAt; + } + + @Override public boolean equals(java.lang.Object o) { if (this == o) { @@ -312,12 +383,13 @@ public boolean equals(java.lang.Object o) { Objects.equals(this.totalBatches, strikethroughLabelingNotification.totalBatches) && Objects.equals(this.trigger, strikethroughLabelingNotification.trigger) && Objects.equals(this.changedItems, strikethroughLabelingNotification.changedItems) && - Objects.equals(this.notificationType, strikethroughLabelingNotification.notificationType); + Objects.equals(this.notificationType, strikethroughLabelingNotification.notificationType) && + Objects.equals(this.sentAt, strikethroughLabelingNotification.sentAt); } @Override public int hashCode() { - return Objects.hash(version, validFrom, applicationId, currentBatch, totalBatches, trigger, changedItems, notificationType); + return Objects.hash(version, validFrom, applicationId, currentBatch, totalBatches, trigger, changedItems, notificationType, sentAt); } @@ -333,6 +405,7 @@ public String toString() { sb.append(" trigger: ").append(toIndentedString(trigger)).append("\n"); sb.append(" changedItems: ").append(toIndentedString(changedItems)).append("\n"); sb.append(" notificationType: ").append(toIndentedString(notificationType)).append("\n"); + sb.append(" sentAt: ").append(toIndentedString(sentAt)).append("\n"); sb.append("}"); return sb.toString(); } diff --git a/src/main/java/one/talon/model/UpdateCouponsData.java b/src/main/java/one/talon/model/UpdateCouponsData.java index 9af59b5..f924753 100644 --- a/src/main/java/one/talon/model/UpdateCouponsData.java +++ b/src/main/java/one/talon/model/UpdateCouponsData.java @@ -53,9 +53,54 @@ public class UpdateCouponsData { @SerializedName(SERIALIZED_NAME_EMPLOYEE_NAME) private String employeeName; + /** + * The type of the notification + */ + @JsonAdapter(NotificationTypeEnum.Adapter.class) + public enum NotificationTypeEnum { + COUPONSUPDATED("CouponsUpdated"); + + private String value; + + NotificationTypeEnum(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + + @Override + public String toString() { + return String.valueOf(value); + } + + public static NotificationTypeEnum fromValue(String value) { + for (NotificationTypeEnum b : NotificationTypeEnum.values()) { + if (b.value.equals(value)) { + return b; + } + } + throw new IllegalArgumentException("Unexpected value '" + value + "'"); + } + + public static class Adapter extends TypeAdapter { + @Override + public void write(final JsonWriter jsonWriter, final NotificationTypeEnum enumeration) throws IOException { + jsonWriter.value(enumeration.getValue()); + } + + @Override + public NotificationTypeEnum read(final JsonReader jsonReader) throws IOException { + String value = jsonReader.nextString(); + return NotificationTypeEnum.fromValue(value); + } + } + } + public static final String SERIALIZED_NAME_NOTIFICATION_TYPE = "NotificationType"; @SerializedName(SERIALIZED_NAME_NOTIFICATION_TYPE) - private String notificationType; + private NotificationTypeEnum notificationType; public UpdateCouponsData batchID(String batchID) { @@ -190,7 +235,7 @@ public void setEmployeeName(String employeeName) { } - public UpdateCouponsData notificationType(String notificationType) { + public UpdateCouponsData notificationType(NotificationTypeEnum notificationType) { this.notificationType = notificationType; return this; @@ -202,12 +247,12 @@ public UpdateCouponsData notificationType(String notificationType) { **/ @ApiModelProperty(required = true, value = "The type of the notification") - public String getNotificationType() { + public NotificationTypeEnum getNotificationType() { return notificationType; } - public void setNotificationType(String notificationType) { + public void setNotificationType(NotificationTypeEnum notificationType) { this.notificationType = notificationType; } diff --git a/src/test/java/one/talon/api/IntegrationApiTest.java b/src/test/java/one/talon/api/IntegrationApiTest.java index 5917ba4..c727d18 100644 --- a/src/test/java/one/talon/api/IntegrationApiTest.java +++ b/src/test/java/one/talon/api/IntegrationApiTest.java @@ -107,7 +107,7 @@ public void createAudienceV2Test() throws ApiException { /** * Create coupon reservation * - * Create a coupon reservation for the specified customer profiles on the specified coupon. You can also create a reservation via the Campaign Manager using the [Create coupon code reservation](https://docs.talon.one/docs/product/rules/effects/using-effects#reserving-a-coupon-code) effect. **Note:** - If the **Reservation mandatory** option was selected when creating the specified coupon, the endpoint creates a **hard** reservation, meaning only users who have this coupon code reserved can redeem it. Otherwise, the endpoint creates a **soft** reservation, meaning the coupon is associated with the specified customer profiles (they show up when using the [List customer data](https://docs.talon.one/integration-api#operation/getCustomerInventory) endpoint), but any user can redeem it. This can be useful, for example, to display a _coupon wallet_ for customers when they visit your store. - If the **Coupon visibility** option was selected when creating the specified coupon, the coupon code is implicitly soft-reserved for all customers, and the code will be returned for all customer profiles in the [List customer data](https://docs.talon.one/integration-api#operation/getCustomerInventory) endpoint. - This endpoint overrides the coupon reservation limit set when [the coupon is created](https://docs.talon.one/docs/product/campaigns/coupons/creating-coupons). To ensure that coupons cannot be reserved after the reservation limit is reached, use the [Create coupon code reservation](https://docs.talon.one/docs/product/rules/effects/using-effects#reserving-a-coupon-code) effect in the Rule Builder and the [Update customer session](https://docs.talon.one/integration-api#tag/Customer-sessions/operation/updateCustomerSessionV2) endpoint. To delete a reservation, use the [Delete reservation](https://docs.talon.one/integration-api#tag/Coupons/operation/deleteCouponReservation) endpoint. + * Create a coupon reservation for the specified customer profiles on the specified coupon. You can also create a reservation via the Campaign Manager using the [Create coupon code reservation](https://docs.talon.one/docs/product/rules/effects/using-effects#reserving-a-coupon-code) effect. **Note:** - If the **Reservation mandatory** option was selected when creating the specified coupon, the endpoint creates a **hard** reservation, meaning only users who have this coupon code reserved can redeem it. Otherwise, the endpoint creates a **soft** reservation, meaning the coupon is associated with the specified customer profiles (they show up when using the [List customer data](https://docs.talon.one/integration-api#operation/getCustomerInventory) endpoint), but any user can redeem it. This can be useful, for example, to display a _coupon wallet_ for customers when they visit your store. - If the **Coupon visibility** option was selected when creating the specified coupon, the coupon code is implicitly soft-reserved for all customers, and the code will be returned for all customer profiles in the [List customer data](https://docs.talon.one/integration-api#operation/getCustomerInventory) endpoint. - This endpoint overrides the coupon reservation limit set when [the coupon is created](https://docs.talon.one/docs/product/campaigns/coupons/creating-coupons). To ensure that coupons cannot be reserved after the reservation limit is reached, use the [Create coupon code reservation](https://docs.talon.one/docs/product/rules/effects/using-effects#reserving-a-coupon-code) effect in the Rule Builder and the [Update customer session](https://docs.talon.one/integration-api#tag/Customer-sessions/operation/updateCustomerSessionV2) endpoint. To delete a reservation, use the [Delete reservation](https://docs.talon.one/integration-api#tag/Coupons/operation/deleteCouponReservation) endpoint. * * @throws ApiException * if the Api call fails diff --git a/src/test/java/one/talon/api/ManagementApiTest.java b/src/test/java/one/talon/api/ManagementApiTest.java index ddf755b..d771fb7 100644 --- a/src/test/java/one/talon/api/ManagementApiTest.java +++ b/src/test/java/one/talon/api/ManagementApiTest.java @@ -112,6 +112,8 @@ import one.talon.model.NewPasswordEmail; import one.talon.model.NewStore; import org.threeten.bp.OffsetDateTime; +import one.talon.model.PrismaticFlow; +import one.talon.model.PrismaticFlowWithConfig; import one.talon.model.Referral; import one.talon.model.RoleV2; import one.talon.model.RoleV2Base; @@ -705,6 +707,22 @@ public void deleteLoyaltyCardTest() throws ApiException { // TODO: test validations } + /** + * de-registers a prismatic flow for an event + * + * + * + * @throws ApiException + * if the Api call fails + */ + @Test + public void deletePrismaticFlowTest() throws ApiException { + PrismaticFlow body = null; + api.deletePrismaticFlow(body); + + // TODO: test validations + } + /** * Delete referral * @@ -1525,7 +1543,11 @@ public void getAttributesTest() throws ApiException { Long skip = null; String sort = null; String entity = null; - InlineResponse20036 response = api.getAttributes(pageSize, skip, sort, entity); + String applicationIds = null; + String type = null; + String kind = null; + String search = null; + InlineResponse20036 response = api.getAttributes(pageSize, skip, sort, entity, applicationIds, type, kind, search); // TODO: test validations } @@ -2537,7 +2559,7 @@ public void importLoyaltyCustomersTiersTest() throws ApiException { /** * Import loyalty points * - * Upload a CSV file containing the loyalty points you want to import into a given loyalty program. Send the file as multipart data. Depending on the type of loyalty program, you can import points into a given customer profile or loyalty card. The CSV file contains the following columns: - `customerprofileid` (optional): For profile-based loyalty programs, the integration ID of the customer profile where the loyalty points are imported. **Note**: If the customer profile does not exist, it will be created. The profile will not be visible in any Application until a session or profile update is received for that profile. - `identifier` (optional): For card-based loyalty programs, the identifier of the loyalty card where the loyalty points are imported. - `amount`: The amount of points to award to the customer profile. - `startdate` (optional): The earliest date when the points can be redeemed. The points are `active` from this date until the expiration date. **Note**: It must be an RFC3339 timestamp string or string `immediate`. Empty or missing values are considered `immediate`. - `expirydate` (optional): The latest date when the points can be redeemed. The points are `expired` after this date. **Note**: It must be an RFC3339 timestamp string or string `unlimited`. Empty or missing values are considered `unlimited`. - `subledgerid` (optional): The ID of the subledger that should received the points. - `reason` (optional): The reason why these points are awarded. You can use the time zone of your choice. It is converted to UTC internally by Talon.One. **Note:** For existing customer profiles and loyalty cards, the imported points are added to any previous active or pending points, depending on the value provided for `startdate`. If `startdate` matches the current date, the imported points are _active_. If it is later, the points are _pending_ until the date provided for `startdate` is reached. **Note:** We recommend limiting your file size to 500MB. **Example for profile-based programs:** ```text customerprofileid,amount,startdate,expirydate,subledgerid,reason URNGV8294NV,100,2009-11-10T23:00:00Z,2009-11-11T23:00:00Z,subledger1,appeasement ``` **Example for card-based programs:** ```text identifier,amount,startdate,expirydate,subledgerid,reason summer-loyalty-card-0543,100,2009-11-10T23:00:00Z,2009-11-11T23:00:00Z,subledger1,appeasement ``` + * Upload a CSV file containing the loyalty points you want to import into a given loyalty program. Send the file as multipart data. Depending on the type of loyalty program, you can import points into a given customer profile or loyalty card. The CSV file contains the following columns: - `customerprofileid` (optional): For profile-based loyalty programs, the integration ID of the customer profile where the loyalty points are imported. **Note**: If the customer profile does not exist, it will be created. The profile will not be visible in any Application until a session or profile update is received for that profile. - `identifier` (optional): For card-based loyalty programs, the identifier of the loyalty card where the loyalty points are imported. - `amount`: The amount of points to award to the customer profile. - `startdate` (optional): The earliest date when the points can be redeemed. The points are `active` from this date until the expiration date. This parameter accepts one of the following values: - A timestamp string in RFC3339 format. - `immediate` - `on_action` **Note**: Empty or missing values default to `immediate`. - `expirydate` (optional): The latest date when the points can be redeemed. The points are `expired` after this date. **Note**: It must be an RFC3339 timestamp string or string `unlimited`. Empty or missing values are considered `unlimited`. - `subledgerid` (optional): The ID of the subledger that should received the points. - `reason` (optional): The reason why these points are awarded. You can use the time zone of your choice. It is converted to UTC internally by Talon.One. **Note:** For existing customer profiles and loyalty cards, the imported points are added to any previous active or pending points, depending on the value provided for `startdate`. If `startdate` matches the current date, the imported points are _active_. If it is later, the points are _pending_ until the date provided for `startdate` is reached. **Note:** We recommend limiting your file size to 500MB. **Example for profile-based programs:** ```text customerprofileid,amount,startdate,expirydate,subledgerid,reason URNGV8294NV,100,2009-11-10T23:00:00Z,2009-11-11T23:00:00Z,subledger1,appeasement ``` **Example for card-based programs:** ```text identifier,amount,startdate,expirydate,subledgerid,reason summer-loyalty-card-0543,100,2009-11-10T23:00:00Z,2009-11-11T23:00:00Z,subledger1,appeasement ``` * * @throws ApiException * if the Api call fails @@ -2780,6 +2802,22 @@ public void oktaEventHandlerChallengeTest() throws ApiException { // TODO: test validations } + /** + * registers a prismatic flow for an event + * + * + * + * @throws ApiException + * if the Api call fails + */ + @Test + public void postPrismaticFlowTest() throws ApiException { + PrismaticFlowWithConfig body = null; + api.postPrismaticFlow(body); + + // TODO: test validations + } + /** * Deduct points from customer profile * diff --git a/src/test/java/one/talon/model/ActivateLoyaltyPointsResponseTest.java b/src/test/java/one/talon/model/ActivateLoyaltyPointsResponseTest.java new file mode 100644 index 0000000..c613281 --- /dev/null +++ b/src/test/java/one/talon/model/ActivateLoyaltyPointsResponseTest.java @@ -0,0 +1,54 @@ +/* + * Talon.One API + * Use the Talon.One API to integrate with your application and to manage applications and campaigns: - Use the operations in the [Integration API section](#integration-api) are used to integrate with our platform - Use the operation in the [Management API section](#management-api) to manage applications and campaigns. ## Determining the base URL of the endpoints The API is available at the same hostname as your Campaign Manager deployment. For example, if you access the Campaign Manager at `https://yourbaseurl.talon.one/`, the URL for the [updateCustomerSessionV2](https://docs.talon.one/integration-api#operation/updateCustomerSessionV2) endpoint is `https://yourbaseurl.talon.one/v2/customer_sessions/{Id}` + * + * The version of the OpenAPI document: + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package one.talon.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import one.talon.model.LoyaltyLedgerEntry; +import org.junit.Assert; +import org.junit.Ignore; +import org.junit.Test; + + +/** + * Model tests for ActivateLoyaltyPointsResponse + */ +public class ActivateLoyaltyPointsResponseTest { + private final ActivateLoyaltyPointsResponse model = new ActivateLoyaltyPointsResponse(); + + /** + * Model tests for ActivateLoyaltyPointsResponse + */ + @Test + public void testActivateLoyaltyPointsResponse() { + // TODO: test ActivateLoyaltyPointsResponse + } + + /** + * Test the property 'ledgerEntries' + */ + @Test + public void ledgerEntriesTest() { + // TODO: test ledgerEntries + } + +} diff --git a/src/test/java/one/talon/model/ActivateLoyaltyPointsTest.java b/src/test/java/one/talon/model/ActivateLoyaltyPointsTest.java new file mode 100644 index 0000000..0c8cc48 --- /dev/null +++ b/src/test/java/one/talon/model/ActivateLoyaltyPointsTest.java @@ -0,0 +1,62 @@ +/* + * Talon.One API + * Use the Talon.One API to integrate with your application and to manage applications and campaigns: - Use the operations in the [Integration API section](#integration-api) are used to integrate with our platform - Use the operation in the [Management API section](#management-api) to manage applications and campaigns. ## Determining the base URL of the endpoints The API is available at the same hostname as your Campaign Manager deployment. For example, if you access the Campaign Manager at `https://yourbaseurl.talon.one/`, the URL for the [updateCustomerSessionV2](https://docs.talon.one/integration-api#operation/updateCustomerSessionV2) endpoint is `https://yourbaseurl.talon.one/v2/customer_sessions/{Id}` + * + * The version of the OpenAPI document: + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package one.talon.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import java.util.UUID; +import org.junit.Assert; +import org.junit.Ignore; +import org.junit.Test; + + +/** + * Model tests for ActivateLoyaltyPoints + */ +public class ActivateLoyaltyPointsTest { + private final ActivateLoyaltyPoints model = new ActivateLoyaltyPoints(); + + /** + * Model tests for ActivateLoyaltyPoints + */ + @Test + public void testActivateLoyaltyPoints() { + // TODO: test ActivateLoyaltyPoints + } + + /** + * Test the property 'transactionUUIDs' + */ + @Test + public void transactionUUIDsTest() { + // TODO: test transactionUUIDs + } + + /** + * Test the property 'sessionId' + */ + @Test + public void sessionIdTest() { + // TODO: test sessionId + } + +} diff --git a/src/test/java/one/talon/model/AddLoyaltyPointsEffectPropsTest.java b/src/test/java/one/talon/model/AddLoyaltyPointsEffectPropsTest.java index 18db912..cf0e98b 100644 --- a/src/test/java/one/talon/model/AddLoyaltyPointsEffectPropsTest.java +++ b/src/test/java/one/talon/model/AddLoyaltyPointsEffectPropsTest.java @@ -154,4 +154,20 @@ public void bundleNameTest() { // TODO: test bundleName } + /** + * Test the property 'awaitsActivation' + */ + @Test + public void awaitsActivationTest() { + // TODO: test awaitsActivation + } + + /** + * Test the property 'validityDuration' + */ + @Test + public void validityDurationTest() { + // TODO: test validityDuration + } + } diff --git a/src/test/java/one/talon/model/CampaignLogSummaryTest.java b/src/test/java/one/talon/model/CampaignLogSummaryTest.java new file mode 100644 index 0000000..c58bc36 --- /dev/null +++ b/src/test/java/one/talon/model/CampaignLogSummaryTest.java @@ -0,0 +1,84 @@ +/* + * Talon.One API + * Use the Talon.One API to integrate with your application and to manage applications and campaigns: - Use the operations in the [Integration API section](#integration-api) are used to integrate with our platform - Use the operation in the [Management API section](#management-api) to manage applications and campaigns. ## Determining the base URL of the endpoints The API is available at the same hostname as your Campaign Manager deployment. For example, if you access the Campaign Manager at `https://yourbaseurl.talon.one/`, the URL for the [updateCustomerSessionV2](https://docs.talon.one/integration-api#operation/updateCustomerSessionV2) endpoint is `https://yourbaseurl.talon.one/v2/customer_sessions/{Id}` + * + * The version of the OpenAPI document: + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package one.talon.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.io.IOException; +import org.threeten.bp.OffsetDateTime; +import org.junit.Assert; +import org.junit.Ignore; +import org.junit.Test; + + +/** + * Model tests for CampaignLogSummary + */ +public class CampaignLogSummaryTest { + private final CampaignLogSummary model = new CampaignLogSummary(); + + /** + * Model tests for CampaignLogSummary + */ + @Test + public void testCampaignLogSummary() { + // TODO: test CampaignLogSummary + } + + /** + * Test the property 'name' + */ + @Test + public void nameTest() { + // TODO: test name + } + + /** + * Test the property 'email' + */ + @Test + public void emailTest() { + // TODO: test email + } + + /** + * Test the property 'created' + */ + @Test + public void createdTest() { + // TODO: test created + } + + /** + * Test the property 'action' + */ + @Test + public void actionTest() { + // TODO: test action + } + + /** + * Test the property 'summary' + */ + @Test + public void summaryTest() { + // TODO: test summary + } + +} diff --git a/src/test/java/one/talon/model/CampaignTemplateTest.java b/src/test/java/one/talon/model/CampaignTemplateTest.java index 78d60c6..fdbe33b 100644 --- a/src/test/java/one/talon/model/CampaignTemplateTest.java +++ b/src/test/java/one/talon/model/CampaignTemplateTest.java @@ -224,6 +224,14 @@ public void campaignTypeTest() { // TODO: test campaignType } + /** + * Test the property 'campaignsCount' + */ + @Test + public void campaignsCountTest() { + // TODO: test campaignsCount + } + /** * Test the property 'updated' */ diff --git a/src/test/java/one/talon/model/EventV3Test.java b/src/test/java/one/talon/model/EventV3Test.java new file mode 100644 index 0000000..61d3e20 --- /dev/null +++ b/src/test/java/one/talon/model/EventV3Test.java @@ -0,0 +1,109 @@ +/* + * Talon.One API + * Use the Talon.One API to integrate with your application and to manage applications and campaigns: - Use the operations in the [Integration API section](#integration-api) are used to integrate with our platform - Use the operation in the [Management API section](#management-api) to manage applications and campaigns. ## Determining the base URL of the endpoints The API is available at the same hostname as your Campaign Manager deployment. For example, if you access the Campaign Manager at `https://yourbaseurl.talon.one/`, the URL for the [updateCustomerSessionV2](https://docs.talon.one/integration-api#operation/updateCustomerSessionV2) endpoint is `https://yourbaseurl.talon.one/v2/customer_sessions/{Id}` + * + * The version of the OpenAPI document: + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package one.talon.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import org.junit.Assert; +import org.junit.Ignore; +import org.junit.Test; + + +/** + * Model tests for EventV3 + */ +public class EventV3Test { + private final EventV3 model = new EventV3(); + + /** + * Model tests for EventV3 + */ + @Test + public void testEventV3() { + // TODO: test EventV3 + } + + /** + * Test the property 'profileId' + */ + @Test + public void profileIdTest() { + // TODO: test profileId + } + + /** + * Test the property 'storeIntegrationId' + */ + @Test + public void storeIntegrationIdTest() { + // TODO: test storeIntegrationId + } + + /** + * Test the property 'evaluableCampaignIds' + */ + @Test + public void evaluableCampaignIdsTest() { + // TODO: test evaluableCampaignIds + } + + /** + * Test the property 'integrationId' + */ + @Test + public void integrationIdTest() { + // TODO: test integrationId + } + + /** + * Test the property 'type' + */ + @Test + public void typeTest() { + // TODO: test type + } + + /** + * Test the property 'attributes' + */ + @Test + public void attributesTest() { + // TODO: test attributes + } + + /** + * Test the property 'connectedSessionID' + */ + @Test + public void connectedSessionIDTest() { + // TODO: test connectedSessionID + } + + /** + * Test the property 'previousEventID' + */ + @Test + public void previousEventIDTest() { + // TODO: test previousEventID + } + +} diff --git a/src/test/java/one/talon/model/IntegrationEventV3RequestTest.java b/src/test/java/one/talon/model/IntegrationEventV3RequestTest.java new file mode 100644 index 0000000..5c06667 --- /dev/null +++ b/src/test/java/one/talon/model/IntegrationEventV3RequestTest.java @@ -0,0 +1,125 @@ +/* + * Talon.One API + * Use the Talon.One API to integrate with your application and to manage applications and campaigns: - Use the operations in the [Integration API section](#integration-api) are used to integrate with our platform - Use the operation in the [Management API section](#management-api) to manage applications and campaigns. ## Determining the base URL of the endpoints The API is available at the same hostname as your Campaign Manager deployment. For example, if you access the Campaign Manager at `https://yourbaseurl.talon.one/`, the URL for the [updateCustomerSessionV2](https://docs.talon.one/integration-api#operation/updateCustomerSessionV2) endpoint is `https://yourbaseurl.talon.one/v2/customer_sessions/{Id}` + * + * The version of the OpenAPI document: + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package one.talon.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import org.junit.Assert; +import org.junit.Ignore; +import org.junit.Test; + + +/** + * Model tests for IntegrationEventV3Request + */ +public class IntegrationEventV3RequestTest { + private final IntegrationEventV3Request model = new IntegrationEventV3Request(); + + /** + * Model tests for IntegrationEventV3Request + */ + @Test + public void testIntegrationEventV3Request() { + // TODO: test IntegrationEventV3Request + } + + /** + * Test the property 'profileId' + */ + @Test + public void profileIdTest() { + // TODO: test profileId + } + + /** + * Test the property 'storeIntegrationId' + */ + @Test + public void storeIntegrationIdTest() { + // TODO: test storeIntegrationId + } + + /** + * Test the property 'evaluableCampaignIds' + */ + @Test + public void evaluableCampaignIdsTest() { + // TODO: test evaluableCampaignIds + } + + /** + * Test the property 'integrationId' + */ + @Test + public void integrationIdTest() { + // TODO: test integrationId + } + + /** + * Test the property 'type' + */ + @Test + public void typeTest() { + // TODO: test type + } + + /** + * Test the property 'attributes' + */ + @Test + public void attributesTest() { + // TODO: test attributes + } + + /** + * Test the property 'connectedSessionID' + */ + @Test + public void connectedSessionIDTest() { + // TODO: test connectedSessionID + } + + /** + * Test the property 'previousEventID' + */ + @Test + public void previousEventIDTest() { + // TODO: test previousEventID + } + + /** + * Test the property 'loyaltyCards' + */ + @Test + public void loyaltyCardsTest() { + // TODO: test loyaltyCards + } + + /** + * Test the property 'responseContent' + */ + @Test + public void responseContentTest() { + // TODO: test responseContent + } + +} diff --git a/src/test/java/one/talon/model/IntegrationEventV3ResponseTest.java b/src/test/java/one/talon/model/IntegrationEventV3ResponseTest.java new file mode 100644 index 0000000..e9c7872 --- /dev/null +++ b/src/test/java/one/talon/model/IntegrationEventV3ResponseTest.java @@ -0,0 +1,126 @@ +/* + * Talon.One API + * Use the Talon.One API to integrate with your application and to manage applications and campaigns: - Use the operations in the [Integration API section](#integration-api) are used to integrate with our platform - Use the operation in the [Management API section](#management-api) to manage applications and campaigns. ## Determining the base URL of the endpoints The API is available at the same hostname as your Campaign Manager deployment. For example, if you access the Campaign Manager at `https://yourbaseurl.talon.one/`, the URL for the [updateCustomerSessionV2](https://docs.talon.one/integration-api#operation/updateCustomerSessionV2) endpoint is `https://yourbaseurl.talon.one/v2/customer_sessions/{Id}` + * + * The version of the OpenAPI document: + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package one.talon.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import one.talon.model.Campaign; +import one.talon.model.Coupon; +import one.talon.model.CustomerProfile; +import one.talon.model.Effect; +import one.talon.model.EventV3; +import one.talon.model.Giveaway; +import one.talon.model.Loyalty; +import one.talon.model.Referral; +import one.talon.model.RuleFailureReason; +import org.junit.Assert; +import org.junit.Ignore; +import org.junit.Test; + + +/** + * Model tests for IntegrationEventV3Response + */ +public class IntegrationEventV3ResponseTest { + private final IntegrationEventV3Response model = new IntegrationEventV3Response(); + + /** + * Model tests for IntegrationEventV3Response + */ + @Test + public void testIntegrationEventV3Response() { + // TODO: test IntegrationEventV3Response + } + + /** + * Test the property 'customerProfile' + */ + @Test + public void customerProfileTest() { + // TODO: test customerProfile + } + + /** + * Test the property 'event' + */ + @Test + public void eventTest() { + // TODO: test event + } + + /** + * Test the property 'loyalty' + */ + @Test + public void loyaltyTest() { + // TODO: test loyalty + } + + /** + * Test the property 'triggeredCampaigns' + */ + @Test + public void triggeredCampaignsTest() { + // TODO: test triggeredCampaigns + } + + /** + * Test the property 'ruleFailureReasons' + */ + @Test + public void ruleFailureReasonsTest() { + // TODO: test ruleFailureReasons + } + + /** + * Test the property 'awardedGiveaways' + */ + @Test + public void awardedGiveawaysTest() { + // TODO: test awardedGiveaways + } + + /** + * Test the property 'effects' + */ + @Test + public void effectsTest() { + // TODO: test effects + } + + /** + * Test the property 'createdCoupons' + */ + @Test + public void createdCouponsTest() { + // TODO: test createdCoupons + } + + /** + * Test the property 'createdReferrals' + */ + @Test + public void createdReferralsTest() { + // TODO: test createdReferrals + } + +} diff --git a/src/test/java/one/talon/model/IntegrationProfileEntityV3Test.java b/src/test/java/one/talon/model/IntegrationProfileEntityV3Test.java new file mode 100644 index 0000000..d8e0b7b --- /dev/null +++ b/src/test/java/one/talon/model/IntegrationProfileEntityV3Test.java @@ -0,0 +1,51 @@ +/* + * Talon.One API + * Use the Talon.One API to integrate with your application and to manage applications and campaigns: - Use the operations in the [Integration API section](#integration-api) are used to integrate with our platform - Use the operation in the [Management API section](#management-api) to manage applications and campaigns. ## Determining the base URL of the endpoints The API is available at the same hostname as your Campaign Manager deployment. For example, if you access the Campaign Manager at `https://yourbaseurl.talon.one/`, the URL for the [updateCustomerSessionV2](https://docs.talon.one/integration-api#operation/updateCustomerSessionV2) endpoint is `https://yourbaseurl.talon.one/v2/customer_sessions/{Id}` + * + * The version of the OpenAPI document: + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package one.talon.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.io.IOException; +import org.junit.Assert; +import org.junit.Ignore; +import org.junit.Test; + + +/** + * Model tests for IntegrationProfileEntityV3 + */ +public class IntegrationProfileEntityV3Test { + private final IntegrationProfileEntityV3 model = new IntegrationProfileEntityV3(); + + /** + * Model tests for IntegrationProfileEntityV3 + */ + @Test + public void testIntegrationProfileEntityV3() { + // TODO: test IntegrationProfileEntityV3 + } + + /** + * Test the property 'profileId' + */ + @Test + public void profileIdTest() { + // TODO: test profileId + } + +} diff --git a/src/test/java/one/talon/model/ManagementKeyTest.java b/src/test/java/one/talon/model/ManagementKeyTest.java index 827064e..ce0f4bd 100644 --- a/src/test/java/one/talon/model/ManagementKeyTest.java +++ b/src/test/java/one/talon/model/ManagementKeyTest.java @@ -116,4 +116,12 @@ public void disabledTest() { // TODO: test disabled } + /** + * Test the property 'lastUsed' + */ + @Test + public void lastUsedTest() { + // TODO: test lastUsed + } + } diff --git a/src/test/java/one/talon/model/NewManagementKeyTest.java b/src/test/java/one/talon/model/NewManagementKeyTest.java index 24eb82e..c99a22c 100644 --- a/src/test/java/one/talon/model/NewManagementKeyTest.java +++ b/src/test/java/one/talon/model/NewManagementKeyTest.java @@ -116,6 +116,14 @@ public void disabledTest() { // TODO: test disabled } + /** + * Test the property 'lastUsed' + */ + @Test + public void lastUsedTest() { + // TODO: test lastUsed + } + /** * Test the property 'key' */ diff --git a/src/test/java/one/talon/model/NewMessageTestTest.java b/src/test/java/one/talon/model/NewMessageTestTest.java index 9ce73bc..62472dd 100644 --- a/src/test/java/one/talon/model/NewMessageTestTest.java +++ b/src/test/java/one/talon/model/NewMessageTestTest.java @@ -93,4 +93,12 @@ public void applicationIdsTest() { // TODO: test applicationIds } + /** + * Test the property 'authenticationId' + */ + @Test + public void authenticationIdTest() { + // TODO: test authenticationId + } + } diff --git a/src/test/java/one/talon/model/PrismaticFlowConfigTest.java b/src/test/java/one/talon/model/PrismaticFlowConfigTest.java new file mode 100644 index 0000000..75a6a47 --- /dev/null +++ b/src/test/java/one/talon/model/PrismaticFlowConfigTest.java @@ -0,0 +1,69 @@ +/* + * Talon.One API + * Use the Talon.One API to integrate with your application and to manage applications and campaigns: - Use the operations in the [Integration API section](#integration-api) are used to integrate with our platform - Use the operation in the [Management API section](#management-api) to manage applications and campaigns. ## Determining the base URL of the endpoints The API is available at the same hostname as your Campaign Manager deployment. For example, if you access the Campaign Manager at `https://yourbaseurl.talon.one/`, the URL for the [updateCustomerSessionV2](https://docs.talon.one/integration-api#operation/updateCustomerSessionV2) endpoint is `https://yourbaseurl.talon.one/v2/customer_sessions/{Id}` + * + * The version of the OpenAPI document: + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package one.talon.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import org.junit.Assert; +import org.junit.Ignore; +import org.junit.Test; + + +/** + * Model tests for PrismaticFlowConfig + */ +public class PrismaticFlowConfigTest { + private final PrismaticFlowConfig model = new PrismaticFlowConfig(); + + /** + * Model tests for PrismaticFlowConfig + */ + @Test + public void testPrismaticFlowConfig() { + // TODO: test PrismaticFlowConfig + } + + /** + * Test the property 'apiKey' + */ + @Test + public void apiKeyTest() { + // TODO: test apiKey + } + + /** + * Test the property 'batchSize' + */ + @Test + public void batchSizeTest() { + // TODO: test batchSize + } + + /** + * Test the property 'periodsInDays' + */ + @Test + public void periodsInDaysTest() { + // TODO: test periodsInDays + } + +} diff --git a/src/test/java/one/talon/model/PrismaticFlowTest.java b/src/test/java/one/talon/model/PrismaticFlowTest.java new file mode 100644 index 0000000..df44364 --- /dev/null +++ b/src/test/java/one/talon/model/PrismaticFlowTest.java @@ -0,0 +1,59 @@ +/* + * Talon.One API + * Use the Talon.One API to integrate with your application and to manage applications and campaigns: - Use the operations in the [Integration API section](#integration-api) are used to integrate with our platform - Use the operation in the [Management API section](#management-api) to manage applications and campaigns. ## Determining the base URL of the endpoints The API is available at the same hostname as your Campaign Manager deployment. For example, if you access the Campaign Manager at `https://yourbaseurl.talon.one/`, the URL for the [updateCustomerSessionV2](https://docs.talon.one/integration-api#operation/updateCustomerSessionV2) endpoint is `https://yourbaseurl.talon.one/v2/customer_sessions/{Id}` + * + * The version of the OpenAPI document: + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package one.talon.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.io.IOException; +import org.junit.Assert; +import org.junit.Ignore; +import org.junit.Test; + + +/** + * Model tests for PrismaticFlow + */ +public class PrismaticFlowTest { + private final PrismaticFlow model = new PrismaticFlow(); + + /** + * Model tests for PrismaticFlow + */ + @Test + public void testPrismaticFlow() { + // TODO: test PrismaticFlow + } + + /** + * Test the property 'eventType' + */ + @Test + public void eventTypeTest() { + // TODO: test eventType + } + + /** + * Test the property 'prismaticFlowUrl' + */ + @Test + public void prismaticFlowUrlTest() { + // TODO: test prismaticFlowUrl + } + +} diff --git a/src/test/java/one/talon/model/PrismaticFlowWithConfigTest.java b/src/test/java/one/talon/model/PrismaticFlowWithConfigTest.java new file mode 100644 index 0000000..95c2e54 --- /dev/null +++ b/src/test/java/one/talon/model/PrismaticFlowWithConfigTest.java @@ -0,0 +1,68 @@ +/* + * Talon.One API + * Use the Talon.One API to integrate with your application and to manage applications and campaigns: - Use the operations in the [Integration API section](#integration-api) are used to integrate with our platform - Use the operation in the [Management API section](#management-api) to manage applications and campaigns. ## Determining the base URL of the endpoints The API is available at the same hostname as your Campaign Manager deployment. For example, if you access the Campaign Manager at `https://yourbaseurl.talon.one/`, the URL for the [updateCustomerSessionV2](https://docs.talon.one/integration-api#operation/updateCustomerSessionV2) endpoint is `https://yourbaseurl.talon.one/v2/customer_sessions/{Id}` + * + * The version of the OpenAPI document: + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +package one.talon.model; + +import com.google.gson.TypeAdapter; +import com.google.gson.annotations.JsonAdapter; +import com.google.gson.annotations.SerializedName; +import com.google.gson.stream.JsonReader; +import com.google.gson.stream.JsonWriter; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.io.IOException; +import one.talon.model.PrismaticFlowConfig; +import org.junit.Assert; +import org.junit.Ignore; +import org.junit.Test; + + +/** + * Model tests for PrismaticFlowWithConfig + */ +public class PrismaticFlowWithConfigTest { + private final PrismaticFlowWithConfig model = new PrismaticFlowWithConfig(); + + /** + * Model tests for PrismaticFlowWithConfig + */ + @Test + public void testPrismaticFlowWithConfig() { + // TODO: test PrismaticFlowWithConfig + } + + /** + * Test the property 'eventType' + */ + @Test + public void eventTypeTest() { + // TODO: test eventType + } + + /** + * Test the property 'prismaticFlowUrl' + */ + @Test + public void prismaticFlowUrlTest() { + // TODO: test prismaticFlowUrl + } + + /** + * Test the property 'config' + */ + @Test + public void configTest() { + // TODO: test config + } + +} diff --git a/src/test/java/one/talon/model/StrikethroughLabelingNotificationTest.java b/src/test/java/one/talon/model/StrikethroughLabelingNotificationTest.java index c88783b..b7dd373 100644 --- a/src/test/java/one/talon/model/StrikethroughLabelingNotificationTest.java +++ b/src/test/java/one/talon/model/StrikethroughLabelingNotificationTest.java @@ -109,4 +109,12 @@ public void notificationTypeTest() { // TODO: test notificationType } + /** + * Test the property 'sentAt' + */ + @Test + public void sentAtTest() { + // TODO: test sentAt + } + }