diff --git a/.openapi-generator/FILES b/.openapi-generator/FILES index 2095058..459fe77 100644 --- a/.openapi-generator/FILES +++ b/.openapi-generator/FILES @@ -25,10 +25,14 @@ docs/AccountEntity.md docs/AccountLimits.md docs/Achievement.md docs/AchievementAdditionalProperties.md +docs/AchievementAdditionalPropertiesV2.md docs/AchievementBase.md +docs/AchievementBaseV2.md docs/AchievementProgress.md docs/AchievementProgressWithDefinition.md +docs/AchievementReference.md docs/AchievementStatusEntry.md +docs/AchievementV2.md docs/ActivateLoyaltyPoints.md docs/ActivateLoyaltyPointsResponse.md docs/ActivateUserRequest.md @@ -184,6 +188,7 @@ docs/CouponWithApplication.md docs/CouponsNotificationData.md docs/CouponsNotificationPolicy.md docs/CreateAchievement.md +docs/CreateAchievementV2.md docs/CreateApplicationAPIKey.md docs/CreateCouponData.md docs/CreateCoupons200Response.md @@ -319,6 +324,7 @@ docs/ImportEntity.md docs/IncreaseAchievementProgressEffectProps.md docs/InfluencingCampaignDetails.md docs/IntegrationApi.md +docs/IntegrationCampaign.md docs/IntegrationCoupon.md docs/IntegrationCustomerProfileAudienceRequest.md docs/IntegrationCustomerProfileAudienceRequestItem.md @@ -633,6 +639,7 @@ docs/TriggerWebhookEffectProps.md docs/TwoFAConfig.md docs/UpdateAccount.md docs/UpdateAchievement.md +docs/UpdateAchievementV2.md docs/UpdateApplication.md docs/UpdateApplicationAPIKey.md docs/UpdateApplicationCIF.md @@ -708,10 +715,14 @@ talon_one/models/account_entity.py talon_one/models/account_limits.py talon_one/models/achievement.py talon_one/models/achievement_additional_properties.py +talon_one/models/achievement_additional_properties_v2.py talon_one/models/achievement_base.py +talon_one/models/achievement_base_v2.py talon_one/models/achievement_progress.py talon_one/models/achievement_progress_with_definition.py +talon_one/models/achievement_reference.py talon_one/models/achievement_status_entry.py +talon_one/models/achievement_v2.py talon_one/models/activate_loyalty_points.py talon_one/models/activate_loyalty_points_response.py talon_one/models/activate_user_request.py @@ -868,6 +879,7 @@ talon_one/models/coupon_with_application.py talon_one/models/coupons_notification_data.py talon_one/models/coupons_notification_policy.py talon_one/models/create_achievement.py +talon_one/models/create_achievement_v2.py talon_one/models/create_application_api_key.py talon_one/models/create_coupon_data.py talon_one/models/create_coupons200_response.py @@ -1002,6 +1014,7 @@ talon_one/models/identifiable_entity.py talon_one/models/import_entity.py talon_one/models/increase_achievement_progress_effect_props.py talon_one/models/influencing_campaign_details.py +talon_one/models/integration_campaign.py talon_one/models/integration_coupon.py talon_one/models/integration_customer_profile_audience_request.py talon_one/models/integration_customer_profile_audience_request_item.py @@ -1315,6 +1328,7 @@ talon_one/models/trigger_webhook_effect_props.py talon_one/models/two_fa_config.py talon_one/models/update_account.py talon_one/models/update_achievement.py +talon_one/models/update_achievement_v2.py talon_one/models/update_application.py talon_one/models/update_application_api_key.py talon_one/models/update_application_cif.py @@ -1379,10 +1393,14 @@ test/test_account_entity.py test/test_account_limits.py test/test_achievement.py test/test_achievement_additional_properties.py +test/test_achievement_additional_properties_v2.py test/test_achievement_base.py +test/test_achievement_base_v2.py test/test_achievement_progress.py test/test_achievement_progress_with_definition.py +test/test_achievement_reference.py test/test_achievement_status_entry.py +test/test_achievement_v2.py test/test_activate_loyalty_points.py test/test_activate_loyalty_points_response.py test/test_activate_user_request.py @@ -1539,6 +1557,7 @@ test/test_coupon_with_application.py test/test_coupons_notification_data.py test/test_coupons_notification_policy.py test/test_create_achievement.py +test/test_create_achievement_v2.py test/test_create_application_api_key.py test/test_create_coupon_data.py test/test_create_coupons200_response.py @@ -1674,6 +1693,7 @@ test/test_import_entity.py test/test_increase_achievement_progress_effect_props.py test/test_influencing_campaign_details.py test/test_integration_api.py +test/test_integration_campaign.py test/test_integration_coupon.py test/test_integration_customer_profile_audience_request.py test/test_integration_customer_profile_audience_request_item.py @@ -1988,6 +2008,7 @@ test/test_trigger_webhook_effect_props.py test/test_two_fa_config.py test/test_update_account.py test/test_update_achievement.py +test/test_update_achievement_v2.py test/test_update_application.py test/test_update_application_api_key.py test/test_update_application_cif.py diff --git a/README.md b/README.md index 7869044..648db00 100644 --- a/README.md +++ b/README.md @@ -392,10 +392,14 @@ Class | Method | HTTP request | Description - [AccountLimits](docs/AccountLimits.md) - [Achievement](docs/Achievement.md) - [AchievementAdditionalProperties](docs/AchievementAdditionalProperties.md) +- [AchievementAdditionalPropertiesV2](docs/AchievementAdditionalPropertiesV2.md) - [AchievementBase](docs/AchievementBase.md) +- [AchievementBaseV2](docs/AchievementBaseV2.md) - [AchievementProgress](docs/AchievementProgress.md) - [AchievementProgressWithDefinition](docs/AchievementProgressWithDefinition.md) +- [AchievementReference](docs/AchievementReference.md) - [AchievementStatusEntry](docs/AchievementStatusEntry.md) +- [AchievementV2](docs/AchievementV2.md) - [ActivateLoyaltyPoints](docs/ActivateLoyaltyPoints.md) - [ActivateLoyaltyPointsResponse](docs/ActivateLoyaltyPointsResponse.md) - [ActivateUserRequest](docs/ActivateUserRequest.md) @@ -551,6 +555,7 @@ Class | Method | HTTP request | Description - [CouponsNotificationData](docs/CouponsNotificationData.md) - [CouponsNotificationPolicy](docs/CouponsNotificationPolicy.md) - [CreateAchievement](docs/CreateAchievement.md) +- [CreateAchievementV2](docs/CreateAchievementV2.md) - [CreateApplicationAPIKey](docs/CreateApplicationAPIKey.md) - [CreateCouponData](docs/CreateCouponData.md) - [CreateCoupons200Response](docs/CreateCoupons200Response.md) @@ -685,6 +690,7 @@ Class | Method | HTTP request | Description - [ImportEntity](docs/ImportEntity.md) - [IncreaseAchievementProgressEffectProps](docs/IncreaseAchievementProgressEffectProps.md) - [InfluencingCampaignDetails](docs/InfluencingCampaignDetails.md) +- [IntegrationCampaign](docs/IntegrationCampaign.md) - [IntegrationCoupon](docs/IntegrationCoupon.md) - [IntegrationCustomerProfileAudienceRequest](docs/IntegrationCustomerProfileAudienceRequest.md) - [IntegrationCustomerProfileAudienceRequestItem](docs/IntegrationCustomerProfileAudienceRequestItem.md) @@ -998,6 +1004,7 @@ Class | Method | HTTP request | Description - [TwoFAConfig](docs/TwoFAConfig.md) - [UpdateAccount](docs/UpdateAccount.md) - [UpdateAchievement](docs/UpdateAchievement.md) +- [UpdateAchievementV2](docs/UpdateAchievementV2.md) - [UpdateApplication](docs/UpdateApplication.md) - [UpdateApplicationAPIKey](docs/UpdateApplicationAPIKey.md) - [UpdateApplicationCIF](docs/UpdateApplicationCIF.md) diff --git a/docs/AchievementAdditionalPropertiesV2.md b/docs/AchievementAdditionalPropertiesV2.md new file mode 100644 index 0000000..836e16d --- /dev/null +++ b/docs/AchievementAdditionalPropertiesV2.md @@ -0,0 +1,32 @@ +# AchievementAdditionalPropertiesV2 + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**user_id** | **int** | The ID of the user that created this achievement. | +**created_by** | **str** | Name of the user that created the achievement. **Note**: This is not available if the user has been deleted. | [optional] +**has_progress** | **bool** | Indicates if a customer has made progress in the achievement. | [optional] +**status** | **str** | The status of the achievement. | [optional] + +## Example + +```python +from talon_one.models.achievement_additional_properties_v2 import AchievementAdditionalPropertiesV2 + +# TODO update the JSON string below +json = "{}" +# create an instance of AchievementAdditionalPropertiesV2 from a JSON string +achievement_additional_properties_v2_instance = AchievementAdditionalPropertiesV2.from_json(json) +# print the JSON string representation of the object +print(AchievementAdditionalPropertiesV2.to_json()) + +# convert the object into a dict +achievement_additional_properties_v2_dict = achievement_additional_properties_v2_instance.to_dict() +# create an instance of AchievementAdditionalPropertiesV2 from a dict +achievement_additional_properties_v2_from_dict = AchievementAdditionalPropertiesV2.from_dict(achievement_additional_properties_v2_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/AchievementBaseV2.md b/docs/AchievementBaseV2.md new file mode 100644 index 0000000..870cc05 --- /dev/null +++ b/docs/AchievementBaseV2.md @@ -0,0 +1,41 @@ +# AchievementBaseV2 + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**name** | **str** | The internal name of the achievement used in API requests. **Note**: The name should start with a letter. This cannot be changed after the achievement has been created. | [optional] +**title** | **str** | The display name for the achievement in the Campaign Manager. | [optional] +**description** | **str** | A description of the achievement. | [optional] +**target** | **float** | The required number of actions or the transactional milestone to complete the achievement. | [optional] +**period** | **str** | The relative duration after which the achievement ends and resets for a particular customer profile. **Note**: The `period` does not start when the achievement is created. The period is a **positive real number** followed by one letter indicating the time unit. Examples: `30s`, `40m`, `1h`, `5D`, `7W`, `10M`, `15Y`. Available units: - `s`: seconds - `m`: minutes - `h`: hours - `D`: days - `W`: weeks - `M`: months - `Y`: years You can also round certain units down to the beginning of period and up to the end of period.: - `_D` for rounding down days only. Signifies the start of the day. Example: `30D_D` - `_U` for rounding up days, weeks, months and years. Signifies the end of the day, week, month or year. Example: `23W_U` **Note**: You can either use the round down and round up option or set an absolute period. | [optional] +**recurrence_policy** | **str** | The policy that determines if and how the achievement recurs. - `no_recurrence`: The achievement can be completed only once. - `on_expiration`: The achievement resets after it expires and becomes available again. - `on_completion`: When the customer progress status reaches `completed`, the achievement resets and becomes available again. | [optional] +**activation_policy** | **str** | The policy that determines how the achievement starts, ends, or resets. - `user_action`: The achievement ends or resets relative to when the customer started the achievement. - `fixed_schedule`: The achievement starts, ends, or resets for all customers following a fixed schedule. | [optional] +**fixed_start_date** | **datetime** | The achievement's start date when `activationPolicy` is set to `fixed_schedule`. **Note:** It must be an RFC3339 timestamp string. | [optional] +**end_date** | **datetime** | The achievement's end date. If defined, customers cannot participate in the achievement after this date. **Note:** It must be an RFC3339 timestamp string. | [optional] +**allow_rollback_after_completion** | **bool** | When `true`, customer progress can be rolled back in completed achievements. | [optional] +**sandbox** | **bool** | Indicates if this achievement is a live or sandbox achievement. Achievements of a given type can only be connected to Applications of the same type. | [optional] +**subscribed_applications** | **List[int]** | A list containing the IDs of all applications that are subscribed to A list containing the IDs of all Applications that are connected to this achievement. | [optional] +**timezone** | **str** | A string containing an IANA timezone descriptor. | [optional] + +## Example + +```python +from talon_one.models.achievement_base_v2 import AchievementBaseV2 + +# TODO update the JSON string below +json = "{}" +# create an instance of AchievementBaseV2 from a JSON string +achievement_base_v2_instance = AchievementBaseV2.from_json(json) +# print the JSON string representation of the object +print(AchievementBaseV2.to_json()) + +# convert the object into a dict +achievement_base_v2_dict = achievement_base_v2_instance.to_dict() +# create an instance of AchievementBaseV2 from a dict +achievement_base_v2_from_dict = AchievementBaseV2.from_dict(achievement_base_v2_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/AchievementReference.md b/docs/AchievementReference.md new file mode 100644 index 0000000..b746378 --- /dev/null +++ b/docs/AchievementReference.md @@ -0,0 +1,32 @@ +# AchievementReference + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**achievement_id** | **int** | The ID of the achievement. You can get this ID with the [List achievement](https://docs.talon.one/management-api#tag/Achievements/operation/listAchievementsV2) endpoint. | +**application_id** | **int** | The ID of the Application associated with the campaign that references this achievement. | +**application_name** | **str** | The name of the Application associated with the campaign that references this achievement. | +**campaign_id** | **int** | The ID of the campaign that references this achievement. | + +## Example + +```python +from talon_one.models.achievement_reference import AchievementReference + +# TODO update the JSON string below +json = "{}" +# create an instance of AchievementReference from a JSON string +achievement_reference_instance = AchievementReference.from_json(json) +# print the JSON string representation of the object +print(AchievementReference.to_json()) + +# convert the object into a dict +achievement_reference_dict = achievement_reference_instance.to_dict() +# create an instance of AchievementReference from a dict +achievement_reference_from_dict = AchievementReference.from_dict(achievement_reference_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/AchievementV2.md b/docs/AchievementV2.md new file mode 100644 index 0000000..154898c --- /dev/null +++ b/docs/AchievementV2.md @@ -0,0 +1,47 @@ +# AchievementV2 + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**id** | **int** | The internal ID of this entity. | +**created** | **datetime** | The time this entity was created. | +**name** | **str** | The internal name of the achievement used in API requests. **Note**: The name should start with a letter. This cannot be changed after the achievement has been created. | [optional] +**title** | **str** | The display name for the achievement in the Campaign Manager. | [optional] +**description** | **str** | A description of the achievement. | [optional] +**target** | **float** | The required number of actions or the transactional milestone to complete the achievement. | [optional] +**period** | **str** | The relative duration after which the achievement ends and resets for a particular customer profile. **Note**: The `period` does not start when the achievement is created. The period is a **positive real number** followed by one letter indicating the time unit. Examples: `30s`, `40m`, `1h`, `5D`, `7W`, `10M`, `15Y`. Available units: - `s`: seconds - `m`: minutes - `h`: hours - `D`: days - `W`: weeks - `M`: months - `Y`: years You can also round certain units down to the beginning of period and up to the end of period.: - `_D` for rounding down days only. Signifies the start of the day. Example: `30D_D` - `_U` for rounding up days, weeks, months and years. Signifies the end of the day, week, month or year. Example: `23W_U` **Note**: You can either use the round down and round up option or set an absolute period. | [optional] +**recurrence_policy** | **str** | The policy that determines if and how the achievement recurs. - `no_recurrence`: The achievement can be completed only once. - `on_expiration`: The achievement resets after it expires and becomes available again. - `on_completion`: When the customer progress status reaches `completed`, the achievement resets and becomes available again. | [optional] +**activation_policy** | **str** | The policy that determines how the achievement starts, ends, or resets. - `user_action`: The achievement ends or resets relative to when the customer started the achievement. - `fixed_schedule`: The achievement starts, ends, or resets for all customers following a fixed schedule. | [optional] +**fixed_start_date** | **datetime** | The achievement's start date when `activationPolicy` is set to `fixed_schedule`. **Note:** It must be an RFC3339 timestamp string. | [optional] +**end_date** | **datetime** | The achievement's end date. If defined, customers cannot participate in the achievement after this date. **Note:** It must be an RFC3339 timestamp string. | [optional] +**allow_rollback_after_completion** | **bool** | When `true`, customer progress can be rolled back in completed achievements. | [optional] +**sandbox** | **bool** | Indicates if this achievement is a live or sandbox achievement. Achievements of a given type can only be connected to Applications of the same type. | [optional] +**subscribed_applications** | **List[int]** | A list containing the IDs of all applications that are subscribed to A list containing the IDs of all Applications that are connected to this achievement. | [optional] +**timezone** | **str** | A string containing an IANA timezone descriptor. | [optional] +**user_id** | **int** | The ID of the user that created this achievement. | +**created_by** | **str** | Name of the user that created the achievement. **Note**: This is not available if the user has been deleted. | [optional] +**has_progress** | **bool** | Indicates if a customer has made progress in the achievement. | [optional] +**status** | **str** | The status of the achievement. | [optional] + +## Example + +```python +from talon_one.models.achievement_v2 import AchievementV2 + +# TODO update the JSON string below +json = "{}" +# create an instance of AchievementV2 from a JSON string +achievement_v2_instance = AchievementV2.from_json(json) +# print the JSON string representation of the object +print(AchievementV2.to_json()) + +# convert the object into a dict +achievement_v2_dict = achievement_v2_instance.to_dict() +# create an instance of AchievementV2 from a dict +achievement_v2_from_dict = AchievementV2.from_dict(achievement_v2_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/AddedDeductedPointsBalancesAction.md b/docs/AddedDeductedPointsBalancesAction.md index ce56ac0..8fa8f47 100644 --- a/docs/AddedDeductedPointsBalancesAction.md +++ b/docs/AddedDeductedPointsBalancesAction.md @@ -7,9 +7,10 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **amount** | **float** | The amount of added or deducted loyalty points. | **reason** | **str** | The reason for the points addition or deduction. | -**operation** | **str** | The action (addition or deduction) made with loyalty points. | +**operation** | **str** | The action (addition or subtraction) made with loyalty points. | **start_date** | **datetime** | The start date for loyalty points. | [optional] **expiry_date** | **datetime** | The expiration date for loyalty points. | [optional] +**transaction_uuid** | **UUID** | The identifier of the transaction in the loyalty ledger. | ## Example diff --git a/docs/AddedDeductedPointsNotification.md b/docs/AddedDeductedPointsNotification.md index 8b10f6f..cd2d44a 100644 --- a/docs/AddedDeductedPointsNotification.md +++ b/docs/AddedDeductedPointsNotification.md @@ -15,9 +15,10 @@ Name | Type | Description | Notes **user_id** | **int** | The ID of the employee who added or deducted points. | **amount** | **float** | The amount of added or deducted loyalty points. | **expiry_date** | **datetime** | The expiration date for loyalty points. | [optional] -**operation** | **str** | The action (addition or deduction) made with loyalty points. | +**operation** | **str** | The action (addition or subtraction) made with loyalty points. | **reason** | **str** | The reason for the points addition or deduction. | **start_date** | **datetime** | The start date for loyalty points. | [optional] +**transaction_uuid** | **UUID** | The identifier of the transaction in the loyalty ledger. | ## Example diff --git a/docs/ApplicationApiHealth.md b/docs/ApplicationApiHealth.md index b3b0d32..aecf091 100644 --- a/docs/ApplicationApiHealth.md +++ b/docs/ApplicationApiHealth.md @@ -6,7 +6,7 @@ Report of health of the API connection of an application. Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**summary** | **str** | One-word summary of the health of the API connection of an application. Possible values are: - `OK`: The Application has received only successful API requests in the last 5 minutes. - `WARNING`: The Application received at least one failed request in the last 50 minutes. - `ERROR`: More than 50% of received requests failed. - `CRITICAL`: All received requests failed. - `NONE`: During the last 5 minutes, the Application hasn't recorded any integration API requests. | +**summary** | **str** | One-word summary of the health of the API connection of an application. Possible values are: - `OK`: The Application has received only successful API requests in the last 5 minutes. - `WARNING`: The Application received at least one failed request in the last 5 minutes. - `ERROR`: More than 50% of received requests failed. - `CRITICAL`: All received requests failed. - `NONE`: During the last 5 minutes, the Application hasn't recorded any integration API requests. | **last_used** | **datetime** | time of last request relevant to the API health test. | ## Example diff --git a/docs/CardAddedDeductedPointsNotification.md b/docs/CardAddedDeductedPointsNotification.md index 3f7df44..87b318a 100644 --- a/docs/CardAddedDeductedPointsNotification.md +++ b/docs/CardAddedDeductedPointsNotification.md @@ -17,9 +17,10 @@ Name | Type | Description | Notes **users_per_card_limit** | **int** | The max amount of user profiles with whom a card can be shared. This can be set to `0` for no limit. | **amount** | **float** | The amount of added or deducted loyalty points. | **expiry_date** | **datetime** | The expiration date for loyalty points. | [optional] -**operation** | **str** | The action (addition or deduction) made with loyalty points. | +**operation** | **str** | The action (addition or subtraction) made with loyalty points. | **reason** | **str** | The reason for the points addition or deduction. | **start_date** | **datetime** | The start date for loyalty points. | [optional] +**transaction_uuid** | **UUID** | The identifier of the transaction in the loyalty ledger. | ## Example diff --git a/docs/CardLedgerTransactionLogEntry.md b/docs/CardLedgerTransactionLogEntry.md index bebd147..d0028f5 100644 --- a/docs/CardLedgerTransactionLogEntry.md +++ b/docs/CardLedgerTransactionLogEntry.md @@ -9,7 +9,7 @@ Name | Type | Description | Notes **transaction_uuid** | **str** | Unique identifier of the transaction in the UUID format. | **created** | **datetime** | Date and time the loyalty card transaction occurred. | **program_id** | **int** | ID of the loyalty program. | -**card_identifier** | **str** | The alphanumeric identifier of the loyalty card. | +**card_identifier** | **str** | The identifier of the loyalty card, which must match the regular expression `^[A-Za-z0-9._%+@-]+$`. | **application_id** | **int** | The ID of the Application that owns this entity. | [optional] **session_id** | **int** | The **internal** ID of the session. | [optional] **customer_session_id** | **str** | ID of the customer session where the transaction occurred. | [optional] diff --git a/docs/CardLedgerTransactionLogEntryIntegrationAPI.md b/docs/CardLedgerTransactionLogEntryIntegrationAPI.md index a18e611..35bbe2a 100644 --- a/docs/CardLedgerTransactionLogEntryIntegrationAPI.md +++ b/docs/CardLedgerTransactionLogEntryIntegrationAPI.md @@ -9,7 +9,7 @@ Name | Type | Description | Notes **transaction_uuid** | **str** | Unique identifier of the transaction in the UUID format. | **created** | **datetime** | Date and time the loyalty card transaction occurred. | **program_id** | **int** | ID of the loyalty program. | -**card_identifier** | **str** | The alphanumeric identifier of the loyalty card. | +**card_identifier** | **str** | The identifier of the loyalty card, which must match the regular expression `^[A-Za-z0-9._%+@-]+$`. | **customer_session_id** | **str** | ID of the customer session where the transaction occurred. | [optional] **type** | **str** | Type of transaction. Possible values: - `addition`: Signifies added points. - `subtraction`: Signifies deducted points. | **name** | **str** | Name or reason of the loyalty ledger transaction. | diff --git a/docs/CreateAchievementV2.md b/docs/CreateAchievementV2.md new file mode 100644 index 0000000..08f99d6 --- /dev/null +++ b/docs/CreateAchievementV2.md @@ -0,0 +1,41 @@ +# CreateAchievementV2 + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**name** | **str** | The internal name of the achievement used in API requests. **Note**: The name should start with a letter. This cannot be changed after the achievement has been created. | +**title** | **str** | The display name for the achievement in the Campaign Manager. | +**description** | **str** | A description of the achievement. | +**target** | **float** | The required number of actions or the transactional milestone to complete the achievement. | +**period** | **str** | The relative duration after which the achievement ends and resets for a particular customer profile. **Note**: The `period` does not start when the achievement is created. The period is a **positive real number** followed by one letter indicating the time unit. Examples: `30s`, `40m`, `1h`, `5D`, `7W`, `10M`, `15Y`. Available units: - `s`: seconds - `m`: minutes - `h`: hours - `D`: days - `W`: weeks - `M`: months - `Y`: years You can also round certain units down to the beginning of period and up to the end of period.: - `_D` for rounding down days only. Signifies the start of the day. Example: `30D_D` - `_U` for rounding up days, weeks, months and years. Signifies the end of the day, week, month or year. Example: `23W_U` **Note**: You can either use the round down and round up option or set an absolute period. | [optional] +**recurrence_policy** | **str** | The policy that determines if and how the achievement recurs. - `no_recurrence`: The achievement can be completed only once. - `on_expiration`: The achievement resets after it expires and becomes available again. - `on_completion`: When the customer progress status reaches `completed`, the achievement resets and becomes available again. | [optional] +**activation_policy** | **str** | The policy that determines how the achievement starts, ends, or resets. - `user_action`: The achievement ends or resets relative to when the customer started the achievement. - `fixed_schedule`: The achievement starts, ends, or resets for all customers following a fixed schedule. | [optional] +**fixed_start_date** | **datetime** | The achievement's start date when `activationPolicy` is set to `fixed_schedule`. **Note:** It must be an RFC3339 timestamp string. | [optional] +**end_date** | **datetime** | The achievement's end date. If defined, customers cannot participate in the achievement after this date. **Note:** It must be an RFC3339 timestamp string. | [optional] +**allow_rollback_after_completion** | **bool** | When `true`, customer progress can be rolled back in completed achievements. | [optional] +**sandbox** | **bool** | Indicates if this achievement is a live or sandbox achievement. Achievements of a given type can only be connected to Applications of the same type. | +**subscribed_applications** | **List[int]** | A list containing the IDs of all applications that are subscribed to A list containing the IDs of all Applications that are connected to this achievement. | +**timezone** | **str** | A string containing an IANA timezone descriptor. | + +## Example + +```python +from talon_one.models.create_achievement_v2 import CreateAchievementV2 + +# TODO update the JSON string below +json = "{}" +# create an instance of CreateAchievementV2 from a JSON string +create_achievement_v2_instance = CreateAchievementV2.from_json(json) +# print the JSON string representation of the object +print(CreateAchievementV2.to_json()) + +# convert the object into a dict +create_achievement_v2_dict = create_achievement_v2_instance.to_dict() +# create an instance of CreateAchievementV2 from a dict +create_achievement_v2_from_dict = CreateAchievementV2.from_dict(create_achievement_v2_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/ExpiringCardPointsData.md b/docs/ExpiringCardPointsData.md index 5cc293d..04627c4 100644 --- a/docs/ExpiringCardPointsData.md +++ b/docs/ExpiringCardPointsData.md @@ -9,7 +9,7 @@ Name | Type | Description | Notes **loyalty_program_id** | **int** | The ID of the loyalty program. | **amount_of_expiring_points** | **float** | The amount of loyalty points that will be expired soon. | **subledger_id** | **str** | The ID of the subledger within the loyalty program where these points were added. | -**card_identifier** | **str** | The alphanumeric identifier of the loyalty card. | +**card_identifier** | **str** | The identifier of the loyalty card, `which must match the regular expression `^[A-Za-z0-9._%+@-]+$`. | **users_per_card_limit** | **int** | The maximum number of customer profiles with which a card can be shared. This can be set to `0` for no limit. | **profiles** | **List[str]** | The integration IDs of the customer profiles linked to the card. | diff --git a/docs/GenerateLoyaltyCard.md b/docs/GenerateLoyaltyCard.md index d960a6b..5f92910 100644 --- a/docs/GenerateLoyaltyCard.md +++ b/docs/GenerateLoyaltyCard.md @@ -8,7 +8,7 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **status** | **str** | Status of the loyalty card. | [optional] [default to 'active'] **customer_profile_ids** | **List[str]** | Integration IDs of the customer profiles linked to the card. | [optional] -**card_identifier** | **str** | The alphanumeric identifier of the loyalty card. | [optional] +**card_identifier** | **str** | The identifier of the loyalty card, which must match the regular expression `^[A-Za-z0-9._%+@-]+$`. | [optional] ## Example diff --git a/docs/IntegrationApi.md b/docs/IntegrationApi.md index 2925553..539468e 100644 --- a/docs/IntegrationApi.md +++ b/docs/IntegrationApi.md @@ -1660,7 +1660,7 @@ with talon_one.ApiClient(configuration) as api_client: # Create an instance of the API class api_instance = talon_one.IntegrationApi(api_client) loyalty_program_id = 56 # int | Identifier of the card-based loyalty program containing the loyalty card. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. - loyalty_card_id = 'loyalty_card_id_example' # str | Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. + loyalty_card_id = 'loyalty_card_id_example' # str | Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. **Important**: The loyalty card ID requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `NewCard2026%` as `NewCard2026%25`. end_date = '2013-10-20T19:20:30+01:00' # datetime | Used to return expired, active, and pending loyalty balances before this timestamp. You can enter any past, present, or future timestamp value. **Note:** - It must be an RFC3339 timestamp string. - You can include a time component in your string, for example, `T23:59:59` to specify the end of the day. The time zone setting considered is `UTC`. If you do not include a time component, a default time value of `T00:00:00` (midnight) in `UTC` is considered. (optional) subledger_id = ['subledger_id_example'] # List[str] | Filter results by one or more subledger IDs. Must be exact match. (optional) @@ -1681,7 +1681,7 @@ with talon_one.ApiClient(configuration) as api_client: Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- **loyalty_program_id** | **int**| Identifier of the card-based loyalty program containing the loyalty card. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. | - **loyalty_card_id** | **str**| Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. | + **loyalty_card_id** | **str**| Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. **Important**: The loyalty card ID requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `NewCard2026%` as `NewCard2026%25`. | **end_date** | **datetime**| Used to return expired, active, and pending loyalty balances before this timestamp. You can enter any past, present, or future timestamp value. **Note:** - It must be an RFC3339 timestamp string. - You can include a time component in your string, for example, `T23:59:59` to specify the end of the day. The time zone setting considered is `UTC`. If you do not include a time component, a default time value of `T00:00:00` (midnight) in `UTC` is considered. | [optional] **subledger_id** | [**List[str]**](str.md)| Filter results by one or more subledger IDs. Must be exact match. | [optional] @@ -1754,14 +1754,14 @@ with talon_one.ApiClient(configuration) as api_client: # Create an instance of the API class api_instance = talon_one.IntegrationApi(api_client) loyalty_program_id = 56 # int | Identifier of the card-based loyalty program containing the loyalty card. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. - loyalty_card_id = 'loyalty_card_id_example' # str | Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. + loyalty_card_id = 'loyalty_card_id_example' # str | Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. **Important**: The loyalty card ID requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `NewCard2026%` as `NewCard2026%25`. status = active # str | Filter points based on their status. (optional) (default to active) subledger_id = ['subledger_id_example'] # List[str] | Filter results by one or more subledger IDs. Must be exact match. (optional) - customer_session_ids = ['customer_session_ids_example'] # List[str] | Filter the results by a list of customer session IDs. To include multiple IDs, repeat the parameter for each one, for example, `?customerSessionIDs=id1&customerSessionIDs=id2`. The response contains only data associated with the specified sessions. (optional) - transaction_uuids = ['transaction_uuids_example'] # List[str] | Filter the results by a list of transaction UUIDs. To include multiple IDs, repeat the parameter for each one, for example, `?transactionUUIDs=uuid1&transactionUUIDs=uuid2`. The response contains only data associated with the specified transactions. (optional) + customer_session_ids = ['customer_session_ids_example'] # List[str] | Filter the results by a list of customer session IDs. To include multiple IDs, repeat the parameter for each one, for example, `?customerSessionIDs=id1&customerSessionIDs=id2`. The response contains only data associated with the specified sessions. (optional) + transaction_uuids = ['transaction_uuids_example'] # List[str] | Filter the results by a list of transaction UUIDs. To include multiple IDs, repeat the parameter for each one, for example, `?transactionUUIDs=uuid1&transactionUUIDs=uuid2`. The response contains only data associated with the specified transactions. (optional) page_size = 50 # int | The number of items in the response. (optional) (default to 50) skip = 56 # int | The number of items to skip when paging through large result sets. (optional) - sort = 'sort_example' # str | The field by which results should be sorted. You can enter one of the following values: - `startDate`: Sorts the results by the start date of the points. - `expiryDate`: Sorts the results by the expiry date of the points. By default, results are sorted in ascending order. To sort them in descending order, prefix the field name with `-`. **Note:** You can only sort by one field at a time. (optional) + sort = 'sort_example' # str | The field by which results should be sorted. You can enter one of the following values: - `startDate`: Sorts the results by the start date of the points. - `expiryDate`: Sorts the results by the expiry date of the points. By default, results are sorted in ascending order. To sort them in descending order, prefix the field name with `-`. **Note:** You can only sort by one field at a time. (optional) try: # List card's unused loyalty points @@ -1780,14 +1780,14 @@ with talon_one.ApiClient(configuration) as api_client: Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- **loyalty_program_id** | **int**| Identifier of the card-based loyalty program containing the loyalty card. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. | - **loyalty_card_id** | **str**| Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. | + **loyalty_card_id** | **str**| Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. **Important**: The loyalty card ID requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `NewCard2026%` as `NewCard2026%25`. | **status** | **str**| Filter points based on their status. | [optional] [default to active] **subledger_id** | [**List[str]**](str.md)| Filter results by one or more subledger IDs. Must be exact match. | [optional] - **customer_session_ids** | [**List[str]**](str.md)| Filter the results by a list of customer session IDs. To include multiple IDs, repeat the parameter for each one, for example, `?customerSessionIDs=id1&customerSessionIDs=id2`. The response contains only data associated with the specified sessions. | [optional] - **transaction_uuids** | [**List[str]**](str.md)| Filter the results by a list of transaction UUIDs. To include multiple IDs, repeat the parameter for each one, for example, `?transactionUUIDs=uuid1&transactionUUIDs=uuid2`. The response contains only data associated with the specified transactions. | [optional] + **customer_session_ids** | [**List[str]**](str.md)| Filter the results by a list of customer session IDs. To include multiple IDs, repeat the parameter for each one, for example, `?customerSessionIDs=id1&customerSessionIDs=id2`. The response contains only data associated with the specified sessions. | [optional] + **transaction_uuids** | [**List[str]**](str.md)| Filter the results by a list of transaction UUIDs. To include multiple IDs, repeat the parameter for each one, for example, `?transactionUUIDs=uuid1&transactionUUIDs=uuid2`. The response contains only data associated with the specified transactions. | [optional] **page_size** | **int**| The number of items in the response. | [optional] [default to 50] **skip** | **int**| The number of items to skip when paging through large result sets. | [optional] - **sort** | **str**| The field by which results should be sorted. You can enter one of the following values: - `startDate`: Sorts the results by the start date of the points. - `expiryDate`: Sorts the results by the expiry date of the points. By default, results are sorted in ascending order. To sort them in descending order, prefix the field name with `-`. **Note:** You can only sort by one field at a time. | [optional] + **sort** | **str**| The field by which results should be sorted. You can enter one of the following values: - `startDate`: Sorts the results by the start date of the points. - `expiryDate`: Sorts the results by the expiry date of the points. By default, results are sorted in ascending order. To sort them in descending order, prefix the field name with `-`. **Note:** You can only sort by one field at a time. | [optional] ### Return type @@ -1854,13 +1854,13 @@ with talon_one.ApiClient(configuration) as api_client: # Create an instance of the API class api_instance = talon_one.IntegrationApi(api_client) loyalty_program_id = 56 # int | Identifier of the card-based loyalty program containing the loyalty card. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. - loyalty_card_id = 'loyalty_card_id_example' # str | Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. + loyalty_card_id = 'loyalty_card_id_example' # str | Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. **Important**: The loyalty card ID requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `NewCard2026%` as `NewCard2026%25`. subledger_id = ['subledger_id_example'] # List[str] | Filter results by one or more subledger IDs. Must be exact match. (optional) loyalty_transaction_type = 'loyalty_transaction_type_example' # str | Filter results by loyalty transaction type: - `manual`: Loyalty transaction that was done manually. - `session`: Loyalty transaction that resulted from a customer session. - `import`: Loyalty transaction that was imported from a CSV file. (optional) start_date = '2013-10-20T19:20:30+01:00' # datetime | Date and time from which results are returned. Results are filtered by transaction creation date. **Note:** - It must be an RFC3339 timestamp string. - You can include a time component in your string, for example, `T23:59:59` to specify the end of the day. The time zone setting considered is `UTC`. If you do not include a time component, a default time value of `T00:00:00` (midnight) in `UTC` is considered. (optional) end_date = '2013-10-20T19:20:30+01:00' # datetime | Date and time by which results are returned. Results are filtered by transaction creation date. **Note:** - It must be an RFC3339 timestamp string. - You can include a time component in your string, for example, `T23:59:59` to specify the end of the day. The time zone setting considered is `UTC`. If you do not include a time component, a default time value of `T00:00:00` (midnight) in `UTC` is considered. (optional) - customer_session_ids = ['customer_session_ids_example'] # List[str] | Filter the results by a list of customer session IDs. To include multiple IDs, repeat the parameter for each one, for example, `?customerSessionIDs=id1&customerSessionIDs=id2`. The response contains only data associated with the specified sessions. (optional) - transaction_uuids = ['transaction_uuids_example'] # List[str] | Filter the results by a list of transaction UUIDs. To include multiple IDs, repeat the parameter for each one, for example, `?transactionUUIDs=uuid1&transactionUUIDs=uuid2`. The response contains only data associated with the specified transactions. (optional) + customer_session_ids = ['customer_session_ids_example'] # List[str] | Filter the results by a list of customer session IDs. To include multiple IDs, repeat the parameter for each one, for example, `?customerSessionIDs=id1&customerSessionIDs=id2`. The response contains only data associated with the specified sessions. (optional) + transaction_uuids = ['transaction_uuids_example'] # List[str] | Filter the results by a list of transaction UUIDs. To include multiple IDs, repeat the parameter for each one, for example, `?transactionUUIDs=uuid1&transactionUUIDs=uuid2`. The response contains only data associated with the specified transactions. (optional) page_size = 50 # int | The number of items in the response. (optional) (default to 50) skip = 56 # int | The number of items to skip when paging through large result sets. (optional) awaits_activation = True # bool | If `true`: Filters results to include only point transactions that have action-based activation and have not expired. If `false`: Returns a `400` response. (optional) @@ -1882,13 +1882,13 @@ with talon_one.ApiClient(configuration) as api_client: Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- **loyalty_program_id** | **int**| Identifier of the card-based loyalty program containing the loyalty card. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. | - **loyalty_card_id** | **str**| Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. | + **loyalty_card_id** | **str**| Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. **Important**: The loyalty card ID requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `NewCard2026%` as `NewCard2026%25`. | **subledger_id** | [**List[str]**](str.md)| Filter results by one or more subledger IDs. Must be exact match. | [optional] **loyalty_transaction_type** | **str**| Filter results by loyalty transaction type: - `manual`: Loyalty transaction that was done manually. - `session`: Loyalty transaction that resulted from a customer session. - `import`: Loyalty transaction that was imported from a CSV file. | [optional] **start_date** | **datetime**| Date and time from which results are returned. Results are filtered by transaction creation date. **Note:** - It must be an RFC3339 timestamp string. - You can include a time component in your string, for example, `T23:59:59` to specify the end of the day. The time zone setting considered is `UTC`. If you do not include a time component, a default time value of `T00:00:00` (midnight) in `UTC` is considered. | [optional] **end_date** | **datetime**| Date and time by which results are returned. Results are filtered by transaction creation date. **Note:** - It must be an RFC3339 timestamp string. - You can include a time component in your string, for example, `T23:59:59` to specify the end of the day. The time zone setting considered is `UTC`. If you do not include a time component, a default time value of `T00:00:00` (midnight) in `UTC` is considered. | [optional] - **customer_session_ids** | [**List[str]**](str.md)| Filter the results by a list of customer session IDs. To include multiple IDs, repeat the parameter for each one, for example, `?customerSessionIDs=id1&customerSessionIDs=id2`. The response contains only data associated with the specified sessions. | [optional] - **transaction_uuids** | [**List[str]**](str.md)| Filter the results by a list of transaction UUIDs. To include multiple IDs, repeat the parameter for each one, for example, `?transactionUUIDs=uuid1&transactionUUIDs=uuid2`. The response contains only data associated with the specified transactions. | [optional] + **customer_session_ids** | [**List[str]**](str.md)| Filter the results by a list of customer session IDs. To include multiple IDs, repeat the parameter for each one, for example, `?customerSessionIDs=id1&customerSessionIDs=id2`. The response contains only data associated with the specified sessions. | [optional] + **transaction_uuids** | [**List[str]**](str.md)| Filter the results by a list of transaction UUIDs. To include multiple IDs, repeat the parameter for each one, for example, `?transactionUUIDs=uuid1&transactionUUIDs=uuid2`. The response contains only data associated with the specified transactions. | [optional] **page_size** | **int**| The number of items in the response. | [optional] [default to 50] **skip** | **int**| The number of items to skip when paging through large result sets. | [optional] **awaits_activation** | **bool**| If `true`: Filters results to include only point transactions that have action-based activation and have not expired. If `false`: Returns a `400` response. | [optional] @@ -2260,7 +2260,7 @@ with talon_one.ApiClient(configuration) as api_client: # Create an instance of the API class api_instance = talon_one.IntegrationApi(api_client) loyalty_program_id = 56 # int | Identifier of the card-based loyalty program containing the loyalty card. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. - loyalty_card_id = 'loyalty_card_id_example' # str | Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. + loyalty_card_id = 'loyalty_card_id_example' # str | Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. **Important**: The loyalty card ID requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `NewCard2026%` as `NewCard2026%25`. loyalty_card_registration = talon_one.LoyaltyCardRegistration() # LoyaltyCardRegistration | body try: @@ -2280,7 +2280,7 @@ with talon_one.ApiClient(configuration) as api_client: Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- **loyalty_program_id** | **int**| Identifier of the card-based loyalty program containing the loyalty card. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. | - **loyalty_card_id** | **str**| Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. | + **loyalty_card_id** | **str**| Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. **Important**: The loyalty card ID requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `NewCard2026%` as `NewCard2026%25`. | **loyalty_card_registration** | [**LoyaltyCardRegistration**](LoyaltyCardRegistration.md)| body | ### Return type @@ -3100,7 +3100,7 @@ with talon_one.ApiClient(configuration) as api_client: # Create an instance of the API class api_instance = talon_one.IntegrationApi(api_client) loyalty_program_id = 56 # int | The identifier of the card-based loyalty program containing the loyalty card. You can get this ID using the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. - loyalty_card_id = 'loyalty_card_id_example' # str | The identifier of the loyalty card. You can get this ID using the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. + loyalty_card_id = 'loyalty_card_id_example' # str | The identifier of the loyalty card. You can get this ID using the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. **Important**: The loyalty card ID requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `NewCard2026%` as `NewCard2026%25`. loyalty_card_registration = talon_one.LoyaltyCardRegistration() # LoyaltyCardRegistration | body try: @@ -3120,7 +3120,7 @@ with talon_one.ApiClient(configuration) as api_client: Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- **loyalty_program_id** | **int**| The identifier of the card-based loyalty program containing the loyalty card. You can get this ID using the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. | - **loyalty_card_id** | **str**| The identifier of the loyalty card. You can get this ID using the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. | + **loyalty_card_id** | **str**| The identifier of the loyalty card. You can get this ID using the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. **Important**: The loyalty card ID requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `NewCard2026%` as `NewCard2026%25`. | **loyalty_card_registration** | [**LoyaltyCardRegistration**](LoyaltyCardRegistration.md)| body | ### Return type diff --git a/docs/IntegrationCampaign.md b/docs/IntegrationCampaign.md new file mode 100644 index 0000000..74cbf51 --- /dev/null +++ b/docs/IntegrationCampaign.md @@ -0,0 +1,38 @@ +# IntegrationCampaign + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**application_id** | **int** | The ID of the Application that owns this entity. | +**id** | **int** | Unique ID of Campaign. | +**name** | **str** | A user-facing name for this campaign. | +**description** | **str** | A detailed description of the campaign. | [optional] +**start_time** | **datetime** | Timestamp when the campaign will become active. | [optional] +**end_time** | **datetime** | Timestamp when the campaign will become inactive. | [optional] +**attributes** | **object** | Arbitrary properties associated with this campaign. | [optional] +**state** | **str** | The state of the campaign. | [default to 'enabled'] +**tags** | **List[str]** | A list of tags for the campaign. | +**features** | **List[str]** | The features enabled in this campaign. | + +## Example + +```python +from talon_one.models.integration_campaign import IntegrationCampaign + +# TODO update the JSON string below +json = "{}" +# create an instance of IntegrationCampaign from a JSON string +integration_campaign_instance = IntegrationCampaign.from_json(json) +# print the JSON string representation of the object +print(IntegrationCampaign.to_json()) + +# convert the object into a dict +integration_campaign_dict = integration_campaign_instance.to_dict() +# create an instance of IntegrationCampaign from a dict +integration_campaign_from_dict = IntegrationCampaign.from_dict(integration_campaign_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/docs/IntegrationHubEventPayloadLoyaltyProfileBasedPointsChangedNotificationAction.md b/docs/IntegrationHubEventPayloadLoyaltyProfileBasedPointsChangedNotificationAction.md index 8226413..755a963 100644 --- a/docs/IntegrationHubEventPayloadLoyaltyProfileBasedPointsChangedNotificationAction.md +++ b/docs/IntegrationHubEventPayloadLoyaltyProfileBasedPointsChangedNotificationAction.md @@ -10,6 +10,7 @@ Name | Type | Description | Notes **operation** | **str** | | **start_date** | **datetime** | | [optional] **expiry_date** | **datetime** | | [optional] +**transaction_uuid** | **UUID** | The identifier of the transaction in the loyalty ledger. | ## Example diff --git a/docs/LoyaltyCard.md b/docs/LoyaltyCard.md index c951f8a..2f6142e 100644 --- a/docs/LoyaltyCard.md +++ b/docs/LoyaltyCard.md @@ -12,7 +12,7 @@ Name | Type | Description | Notes **program_title** | **str** | The Campaign Manager-displayed name of the loyalty program that owns this entity. | [optional] **status** | **str** | Status of the loyalty card. Can be `active` or `inactive`. | **block_reason** | **str** | Reason for transferring and blocking the loyalty card. | [optional] -**identifier** | **str** | The alphanumeric identifier of the loyalty card. | +**identifier** | **str** | The identifier of the loyalty card, which must match the regular expression `^[A-Za-z0-9._%+@-]+$`. | **users_per_card_limit** | **int** | The max amount of customer profiles that can be linked to the card. 0 means unlimited. | **profiles** | [**List[LoyaltyCardProfileRegistration]**](LoyaltyCardProfileRegistration.md) | Integration IDs of the customers profiles linked to the card. | [optional] **ledger** | [**LedgerInfo**](LedgerInfo.md) | Displays point balances of the card in the main ledger of the loyalty program. | [optional] diff --git a/docs/LoyaltyProgramTransaction.md b/docs/LoyaltyProgramTransaction.md index da1b8ef..69828dd 100644 --- a/docs/LoyaltyProgramTransaction.md +++ b/docs/LoyaltyProgramTransaction.md @@ -16,7 +16,7 @@ Name | Type | Description | Notes **start_date** | **str** | 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. | **expiry_date** | **str** | When points expire. Possible values: - `unlimited`: Points have no expiration date. - a timestamp value: Points expire at a given date and time. | **customer_profile_id** | **str** | Customer profile integration ID used in the loyalty program. | [optional] -**card_identifier** | **str** | The alphanumeric identifier of the loyalty card. | [optional] +**card_identifier** | **str** | The identifier of the loyalty card, which must match the regular expression `^[A-Za-z0-9._%+@-]+$`. | [optional] **subledger_id** | **str** | ID of the subledger. | **customer_session_id** | **str** | ID of the customer session where the transaction occurred. | [optional] **import_id** | **int** | ID of the import where the transaction occurred. | [optional] diff --git a/docs/ManagementApi.md b/docs/ManagementApi.md index 733248a..94c9e42 100644 --- a/docs/ManagementApi.md +++ b/docs/ManagementApi.md @@ -331,7 +331,7 @@ configuration.api_key['api_key_v1'] = os.environ["API_KEY"] with talon_one.ApiClient(configuration) as api_client: # Create an instance of the API class api_instance = talon_one.ManagementApi(api_client) - loyalty_program_id = 56 # int | Identifier of the card-based loyalty program containing the loyalty card. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. + loyalty_program_id = 56 # int | Identifier of the card-based loyalty program containing the loyalty card. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. **Important**: The loyalty card ID requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `NewCard2026%` as `NewCard2026%25`. loyalty_card_id = 'loyalty_card_id_example' # str | Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. add_loyalty_points = talon_one.AddLoyaltyPoints() # AddLoyaltyPoints | body @@ -349,7 +349,7 @@ with talon_one.ApiClient(configuration) as api_client: Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - **loyalty_program_id** | **int**| Identifier of the card-based loyalty program containing the loyalty card. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. | + **loyalty_program_id** | **int**| Identifier of the card-based loyalty program containing the loyalty card. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. **Important**: The loyalty card ID requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `NewCard2026%` as `NewCard2026%25`. | **loyalty_card_id** | **str**| Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. | **add_loyalty_points** | [**AddLoyaltyPoints**](AddLoyaltyPoints.md)| body | @@ -2423,7 +2423,7 @@ with talon_one.ApiClient(configuration) as api_client: # Create an instance of the API class api_instance = talon_one.ManagementApi(api_client) loyalty_program_id = 56 # int | Identifier of the card-based loyalty program containing the loyalty card. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. - loyalty_card_id = 'loyalty_card_id_example' # str | Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. + loyalty_card_id = 'loyalty_card_id_example' # str | Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. **Important**: The loyalty card ID requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `NewCard2026%` as `NewCard2026%25`. deduct_loyalty_points = talon_one.DeductLoyaltyPoints() # DeductLoyaltyPoints | body try: @@ -2441,7 +2441,7 @@ with talon_one.ApiClient(configuration) as api_client: Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- **loyalty_program_id** | **int**| Identifier of the card-based loyalty program containing the loyalty card. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. | - **loyalty_card_id** | **str**| Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. | + **loyalty_card_id** | **str**| Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. **Important**: The loyalty card ID requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `NewCard2026%` as `NewCard2026%25`. | **deduct_loyalty_points** | [**DeductLoyaltyPoints**](DeductLoyaltyPoints.md)| body | ### Return type @@ -3203,7 +3203,7 @@ with talon_one.ApiClient(configuration) as api_client: # Create an instance of the API class api_instance = talon_one.ManagementApi(api_client) loyalty_program_id = 56 # int | Identifier of the card-based loyalty program containing the loyalty card. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. - loyalty_card_id = 'loyalty_card_id_example' # str | Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. + loyalty_card_id = 'loyalty_card_id_example' # str | Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. **Important**: The loyalty card ID requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `NewCard2026%` as `NewCard2026%25`. try: # Delete loyalty card @@ -3220,7 +3220,7 @@ with talon_one.ApiClient(configuration) as api_client: Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- **loyalty_program_id** | **int**| Identifier of the card-based loyalty program containing the loyalty card. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. | - **loyalty_card_id** | **str**| Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. | + **loyalty_card_id** | **str**| Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. **Important**: The loyalty card ID requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `NewCard2026%` as `NewCard2026%25`. | ### Return type @@ -4012,7 +4012,7 @@ Download a CSV file containing analytics data aggregated by campaign for the cam **Tip:** If the exported CSV file is too large to view, you can [split it into multiple files](https://www.makeuseof.com/tag/how-to-split-a-huge-csv-excel-workbook-into-seperate-files/). The CSV file contains the following columns: -- `campaign_id`: The ID of the campaign. This column also contains labels for the [total and influenced values](https://docs.talon.one/docs/product/campaigns/analytics/application-dashboard#understanding-the-analytics-data). +- `campaign_id`: The ID of the campaign. This column also contains labels for the [total and influenced values](https://docs.talon.one/docs/product/campaigns/analytics/application-dashboard#display-the-analytics-data). - `start_date`: The start of the aggregation time frame in UTC. - `end_date`: The end of the aggregation time frame in UTC. - `revenue`: The total, pre-discount value of all items purchased in a customer session. @@ -5265,7 +5265,7 @@ Download a CSV file containing the balances of all cards in the loyalty program. The CSV file contains the following columns: - `loyaltyProgramID`: The ID of the loyalty program. - `loyaltySubledger`: The name of the subdleger, when applicatble. -- `cardIdentifier`: The alphanumeric identifier of the loyalty card. +- `cardIdentifier`: The identifier of the loyalty card, which must match the regular expression `^[A-Za-z0-9._%+@-]+$`. - `cardState`:The state of the loyalty card. It can be `active` or `inactive`. - `currentBalance`: The current point balance. - `pendingBalance`: The number of pending points. @@ -5417,7 +5417,7 @@ with talon_one.ApiClient(configuration) as api_client: # Create an instance of the API class api_instance = talon_one.ManagementApi(api_client) loyalty_program_id = 56 # int | Identifier of the card-based loyalty program containing the loyalty card. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. - loyalty_card_id = 'loyalty_card_id_example' # str | Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. + loyalty_card_id = 'loyalty_card_id_example' # str | Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. **Important**: The loyalty card ID requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `NewCard2026%` as `NewCard2026%25`. range_start = '2013-10-20T19:20:30+01:00' # datetime | Only return results from after this timestamp. **Note:** - This must be an RFC3339 timestamp string. - You can include a time component in your string, for example, `T23:59:59` to specify the end of the day. The time zone setting considered is `UTC`. If you do not include a time component, a default time value of `T00:00:00` (midnight) in `UTC` is considered. range_end = '2013-10-20T19:20:30+01:00' # datetime | Only return results from before this timestamp. **Note:** - This must be an RFC3339 timestamp string. - You can include a time component in your string, for example, `T23:59:59` to specify the end of the day. The time zone setting considered is `UTC`. If you do not include a time component, a default time value of `T00:00:00` (midnight) in `UTC` is considered. date_format = 'date_format_example' # str | Determines the format of dates in the export document. (optional) @@ -5439,7 +5439,7 @@ with talon_one.ApiClient(configuration) as api_client: Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- **loyalty_program_id** | **int**| Identifier of the card-based loyalty program containing the loyalty card. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. | - **loyalty_card_id** | **str**| Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. | + **loyalty_card_id** | **str**| Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. **Important**: The loyalty card ID requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `NewCard2026%` as `NewCard2026%25`. | **range_start** | **datetime**| Only return results from after this timestamp. **Note:** - This must be an RFC3339 timestamp string. - You can include a time component in your string, for example, `T23:59:59` to specify the end of the day. The time zone setting considered is `UTC`. If you do not include a time component, a default time value of `T00:00:00` (midnight) in `UTC` is considered. | **range_end** | **datetime**| Only return results from before this timestamp. **Note:** - This must be an RFC3339 timestamp string. - You can include a time component in your string, for example, `T23:59:59` to specify the end of the day. The time zone setting considered is `UTC`. If you do not include a time component, a default time value of `T00:00:00` (midnight) in `UTC` is considered. | **date_format** | **str**| Determines the format of dates in the export document. | [optional] @@ -7744,7 +7744,7 @@ Name | Type | Description | Notes [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) # **get_application_sessions** -> GetApplicationSessions200Response get_application_sessions(application_id, page_size=page_size, skip=skip, sort=sort, profile=profile, state=state, created_before=created_before, created_after=created_after, coupon=coupon, referral=referral, integration_id=integration_id, store_integration_id=store_integration_id) +> GetApplicationSessions200Response get_application_sessions(application_id, page_size=page_size, skip=skip, sort=sort, partial_match=partial_match, profile=profile, state=state, created_before=created_before, created_after=created_after, coupon=coupon, referral=referral, integration_id=integration_id, store_integration_id=store_integration_id) List Application sessions @@ -7800,18 +7800,19 @@ with talon_one.ApiClient(configuration) as api_client: page_size = 1000 # int | The number of items in the response. (optional) (default to 1000) skip = 56 # int | The number of items to skip when paging through large result sets. (optional) sort = 'sort_example' # str | 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) - profile = 'profile_example' # str | Profile integration ID filter for sessions. Must be exact match. (optional) + partial_match = False # bool | Enables partial matching for a single text search field. When enabled, the search term matches anywhere within the field value (case-insensitive). Minimum 3 characters required for partial matches; shorter inputs automatically fall back to exact match. **Note:** Use with one of: `integrationId`, `profile`, `coupon`, `referral`, or `storeIntegrationId`. (optional) (default to False) + profile = 'profile_example' # str | Filter by sessions with this profile integration ID. By default, requires exact match. Use `partialMatch=true` to search for partial matches (minimum 3 characters). (optional) state = 'state_example' # str | Filter by sessions with this state. Must be exact match. (optional) created_before = '2013-10-20T19:20:30+01:00' # datetime | Only return events created before this date. You can use any time zone setting. Talon.One will convert to UTC internally. (optional) created_after = '2013-10-20T19:20:30+01:00' # datetime | Only return events created after this date. You can use any time zone setting. Talon.One will convert to UTC internally. (optional) - coupon = 'coupon_example' # str | Filter by sessions with this coupon. Must be exact match. (optional) - referral = 'referral_example' # str | Filter by sessions with this referral. Must be exact match. (optional) - integration_id = 'integration_id_example' # str | Filter by sessions with this integration ID. Must be exact match. (optional) - store_integration_id = 'store_integration_id_example' # str | The integration ID of the store. You choose this ID when you create a store. (optional) + coupon = 'coupon_example' # str | Filter by sessions with this coupon. By default, requires exact match. Use `partialMatch=true` to search for partial matches (minimum 3 characters). (optional) + referral = 'referral_example' # str | Filter by sessions with this referral. By default, requires exact match. Use `partialMatch=true` to search for partial matches (minimum 3 characters). (optional) + integration_id = 'integration_id_example' # str | Filter by sessions with this integration ID. By default, requires exact match. Use `partialMatch=true` to search for partial matches (minimum 3 characters). (optional) + store_integration_id = 'store_integration_id_example' # str | The integration ID of the store. You choose this ID when you create a store. By default, requires exact match. Use `partialMatch=true` to search for partial matches (minimum 3 characters). (optional) try: # List Application sessions - api_response = api_instance.get_application_sessions(application_id, page_size=page_size, skip=skip, sort=sort, profile=profile, state=state, created_before=created_before, created_after=created_after, coupon=coupon, referral=referral, integration_id=integration_id, store_integration_id=store_integration_id) + api_response = api_instance.get_application_sessions(application_id, page_size=page_size, skip=skip, sort=sort, partial_match=partial_match, profile=profile, state=state, created_before=created_before, created_after=created_after, coupon=coupon, referral=referral, integration_id=integration_id, store_integration_id=store_integration_id) print("The response of ManagementApi->get_application_sessions:\n") pprint(api_response) except Exception as e: @@ -7829,14 +7830,15 @@ Name | Type | Description | Notes **page_size** | **int**| The number of items in the response. | [optional] [default to 1000] **skip** | **int**| The number of items to skip when paging through large result sets. | [optional] **sort** | **str**| 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] - **profile** | **str**| Profile integration ID filter for sessions. Must be exact match. | [optional] + **partial_match** | **bool**| Enables partial matching for a single text search field. When enabled, the search term matches anywhere within the field value (case-insensitive). Minimum 3 characters required for partial matches; shorter inputs automatically fall back to exact match. **Note:** Use with one of: `integrationId`, `profile`, `coupon`, `referral`, or `storeIntegrationId`. | [optional] [default to False] + **profile** | **str**| Filter by sessions with this profile integration ID. By default, requires exact match. Use `partialMatch=true` to search for partial matches (minimum 3 characters). | [optional] **state** | **str**| Filter by sessions with this state. Must be exact match. | [optional] **created_before** | **datetime**| Only return events created before this date. You can use any time zone setting. Talon.One will convert to UTC internally. | [optional] **created_after** | **datetime**| Only return events created after this date. You can use any time zone setting. Talon.One will convert to UTC internally. | [optional] - **coupon** | **str**| Filter by sessions with this coupon. Must be exact match. | [optional] - **referral** | **str**| Filter by sessions with this referral. Must be exact match. | [optional] - **integration_id** | **str**| Filter by sessions with this integration ID. Must be exact match. | [optional] - **store_integration_id** | **str**| The integration ID of the store. You choose this ID when you create a store. | [optional] + **coupon** | **str**| Filter by sessions with this coupon. By default, requires exact match. Use `partialMatch=true` to search for partial matches (minimum 3 characters). | [optional] + **referral** | **str**| Filter by sessions with this referral. By default, requires exact match. Use `partialMatch=true` to search for partial matches (minimum 3 characters). | [optional] + **integration_id** | **str**| Filter by sessions with this integration ID. By default, requires exact match. Use `partialMatch=true` to search for partial matches (minimum 3 characters). | [optional] + **store_integration_id** | **str**| The integration ID of the store. You choose this ID when you create a store. By default, requires exact match. Use `partialMatch=true` to search for partial matches (minimum 3 characters). | [optional] ### Return type @@ -10808,7 +10810,7 @@ with talon_one.ApiClient(configuration) as api_client: # Create an instance of the API class api_instance = talon_one.ManagementApi(api_client) loyalty_program_id = 56 # int | Identifier of the card-based loyalty program containing the loyalty card. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. - loyalty_card_id = 'loyalty_card_id_example' # str | Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. + loyalty_card_id = 'loyalty_card_id_example' # str | Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. **Important**: The loyalty card ID requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `NewCard2026%` as `NewCard2026%25`. try: # Get loyalty card @@ -10827,7 +10829,7 @@ with talon_one.ApiClient(configuration) as api_client: Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- **loyalty_program_id** | **int**| Identifier of the card-based loyalty program containing the loyalty card. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. | - **loyalty_card_id** | **str**| Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. | + **loyalty_card_id** | **str**| Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. **Important**: The loyalty card ID requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `NewCard2026%` as `NewCard2026%25`. | ### Return type @@ -10909,14 +10911,14 @@ with talon_one.ApiClient(configuration) as api_client: # Create an instance of the API class api_instance = talon_one.ManagementApi(api_client) loyalty_program_id = 56 # int | Identifier of the card-based loyalty program containing the loyalty card. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. - loyalty_card_id = 'loyalty_card_id_example' # str | Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. + loyalty_card_id = 'loyalty_card_id_example' # str | Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. **Important**: The loyalty card ID requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `NewCard2026%` as `NewCard2026%25`. start_date = '2013-10-20T19:20:30+01:00' # datetime | Date and time from which results are returned. Results are filtered by transaction creation date. **Note:** - It must be an RFC3339 timestamp string. - You can include a time component in your string, for example, `T23:59:59` to specify the end of the day. The time zone setting considered is `UTC`. If you do not include a time component, a default time value of `T00:00:00` (midnight) in `UTC` is considered. (optional) end_date = '2013-10-20T19:20:30+01:00' # datetime | Date and time by which results are returned. Results are filtered by transaction creation date. **Note:** - It must be an RFC3339 timestamp string. - You can include a time component in your string, for example, `T23:59:59` to specify the end of the day. The time zone setting considered is `UTC`. If you do not include a time component, a default time value of `T00:00:00` (midnight) in `UTC` is considered. (optional) page_size = 1000 # int | The number of items in the response. (optional) (default to 1000) skip = 56 # int | The number of items to skip when paging through large result sets. (optional) subledger_id = 'subledger_id_example' # str | The ID of the subledger by which we filter the data. (optional) - customer_session_ids = ['customer_session_ids_example'] # List[str] | Filter the results by a list of customer session IDs. To include multiple IDs, repeat the parameter for each one, for example, `?customerSessionIDs=id1&customerSessionIDs=id2`. The response contains only data associated with the specified sessions. (optional) - transaction_uuids = ['transaction_uuids_example'] # List[str] | Filter the results by a list of transaction UUIDs. To include multiple IDs, repeat the parameter for each one, for example, `?transactionUUIDs=uuid1&transactionUUIDs=uuid2`. The response contains only data associated with the specified transactions. (optional) + customer_session_ids = ['customer_session_ids_example'] # List[str] | Filter the results by a list of customer session IDs. To include multiple IDs, repeat the parameter for each one, for example, `?customerSessionIDs=id1&customerSessionIDs=id2`. The response contains only data associated with the specified sessions. (optional) + transaction_uuids = ['transaction_uuids_example'] # List[str] | Filter the results by a list of transaction UUIDs. To include multiple IDs, repeat the parameter for each one, for example, `?transactionUUIDs=uuid1&transactionUUIDs=uuid2`. The response contains only data associated with the specified transactions. (optional) try: # List card's transactions @@ -10935,14 +10937,14 @@ with talon_one.ApiClient(configuration) as api_client: Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- **loyalty_program_id** | **int**| Identifier of the card-based loyalty program containing the loyalty card. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. | - **loyalty_card_id** | **str**| Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. | + **loyalty_card_id** | **str**| Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. **Important**: The loyalty card ID requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `NewCard2026%` as `NewCard2026%25`. | **start_date** | **datetime**| Date and time from which results are returned. Results are filtered by transaction creation date. **Note:** - It must be an RFC3339 timestamp string. - You can include a time component in your string, for example, `T23:59:59` to specify the end of the day. The time zone setting considered is `UTC`. If you do not include a time component, a default time value of `T00:00:00` (midnight) in `UTC` is considered. | [optional] **end_date** | **datetime**| Date and time by which results are returned. Results are filtered by transaction creation date. **Note:** - It must be an RFC3339 timestamp string. - You can include a time component in your string, for example, `T23:59:59` to specify the end of the day. The time zone setting considered is `UTC`. If you do not include a time component, a default time value of `T00:00:00` (midnight) in `UTC` is considered. | [optional] **page_size** | **int**| The number of items in the response. | [optional] [default to 1000] **skip** | **int**| The number of items to skip when paging through large result sets. | [optional] **subledger_id** | **str**| The ID of the subledger by which we filter the data. | [optional] - **customer_session_ids** | [**List[str]**](str.md)| Filter the results by a list of customer session IDs. To include multiple IDs, repeat the parameter for each one, for example, `?customerSessionIDs=id1&customerSessionIDs=id2`. The response contains only data associated with the specified sessions. | [optional] - **transaction_uuids** | [**List[str]**](str.md)| Filter the results by a list of transaction UUIDs. To include multiple IDs, repeat the parameter for each one, for example, `?transactionUUIDs=uuid1&transactionUUIDs=uuid2`. The response contains only data associated with the specified transactions. | [optional] + **customer_session_ids** | [**List[str]**](str.md)| Filter the results by a list of customer session IDs. To include multiple IDs, repeat the parameter for each one, for example, `?customerSessionIDs=id1&customerSessionIDs=id2`. The response contains only data associated with the specified sessions. | [optional] + **transaction_uuids** | [**List[str]**](str.md)| Filter the results by a list of transaction UUIDs. To include multiple IDs, repeat the parameter for each one, for example, `?transactionUUIDs=uuid1&transactionUUIDs=uuid2`. The response contains only data associated with the specified transactions. | [optional] ### Return type @@ -11024,7 +11026,7 @@ with talon_one.ApiClient(configuration) as api_client: page_size = 1000 # int | The number of items in the response. (optional) (default to 1000) skip = 56 # int | The number of items to skip when paging through large result sets. (optional) sort = 'sort_example' # str | 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) - identifier = 'identifier_example' # str | The card code by which to filter loyalty cards in the response. (optional) + identifier = 'identifier_example' # str | The card code by which to filter loyalty cards in the response. **Important**: The loyalty card ID requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `NewCard2026%` as `NewCard2026%25`. (optional) profile_id = 56 # int | Filter results by customer profile ID. (optional) batch_id = 'batch_id_example' # str | Filter results by loyalty card batch ID. (optional) @@ -11048,7 +11050,7 @@ Name | Type | Description | Notes **page_size** | **int**| The number of items in the response. | [optional] [default to 1000] **skip** | **int**| The number of items to skip when paging through large result sets. | [optional] **sort** | **str**| 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] - **identifier** | **str**| The card code by which to filter loyalty cards in the response. | [optional] + **identifier** | **str**| The card code by which to filter loyalty cards in the response. **Important**: The loyalty card ID requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `NewCard2026%` as `NewCard2026%25`. | [optional] **profile_id** | **int**| Filter results by customer profile ID. | [optional] **batch_id** | **str**| Filter results by loyalty card batch ID. | [optional] @@ -13667,18 +13669,17 @@ Send the file as multipart data. It contains the following columns for each card: -- `identifier` (required): The alphanumeric identifier of the loyalty card. +- `identifier` (required): The identifier of the loyalty card, which must match the regular expression `^[A-Za-z0-9._%+@-]+$`. - `state` (required): The state of the loyalty card. It can be `active` or `inactive`. - `customerprofileids` (optional): An array of strings representing the identifiers of the customer profiles linked to the loyalty card. The identifiers should be separated with a semicolon (;). -- `attributes` (optional): A JSON object that contains the loyalty card's custom attributes and their values. These attributes must be created and connected to this loyalty program before they can be assigned to the cards through this endpoint. **Note:** We recommend limiting your file size to 500MB. **Example:** ```csv -identifier,state,customerprofileids,attributes -123-456-789AT,active,Alexa001;UserA,"{""my_attribute"": ""10_off""}" +identifier,state,customerprofileids +123-456-789AT,active,Alexa001;UserA ``` @@ -17442,7 +17443,7 @@ with talon_one.ApiClient(configuration) as api_client: # Create an instance of the API class api_instance = talon_one.ManagementApi(api_client) loyalty_program_id = 56 # int | Identifier of the card-based loyalty program containing the loyalty card. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. - loyalty_card_id = 'loyalty_card_id_example' # str | Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. + loyalty_card_id = 'loyalty_card_id_example' # str | Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. **Important**: The loyalty card ID requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `NewCard2026%` as `NewCard2026%25`. transfer_loyalty_card = talon_one.TransferLoyaltyCard() # TransferLoyaltyCard | body try: @@ -17460,7 +17461,7 @@ with talon_one.ApiClient(configuration) as api_client: Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- **loyalty_program_id** | **int**| Identifier of the card-based loyalty program containing the loyalty card. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. | - **loyalty_card_id** | **str**| Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. | + **loyalty_card_id** | **str**| Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. **Important**: The loyalty card ID requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `NewCard2026%` as `NewCard2026%25`. | **transfer_loyalty_card** | [**TransferLoyaltyCard**](TransferLoyaltyCard.md)| body | ### Return type @@ -18313,7 +18314,7 @@ void (empty response body) Update loyalty card -Update the details of a specific loyalty card. You can set the card's status to `active` or `inactive` through this endpoint. At least one of `status` or `attributes` must be provided. +Update the details of a specific loyalty card. You can set the card's status to `active` or `inactive` through this endpoint. At least one of `status` or `attributes` must be provided. ### Example @@ -18362,7 +18363,7 @@ with talon_one.ApiClient(configuration) as api_client: # Create an instance of the API class api_instance = talon_one.ManagementApi(api_client) loyalty_program_id = 56 # int | Identifier of the card-based loyalty program containing the loyalty card. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. - loyalty_card_id = 'loyalty_card_id_example' # str | Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. + loyalty_card_id = 'loyalty_card_id_example' # str | Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. **Important**: The loyalty card ID requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `NewCard2026%` as `NewCard2026%25`. update_loyalty_card_request = talon_one.UpdateLoyaltyCardRequest() # UpdateLoyaltyCardRequest | body try: @@ -18382,7 +18383,7 @@ with talon_one.ApiClient(configuration) as api_client: Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- **loyalty_program_id** | **int**| Identifier of the card-based loyalty program containing the loyalty card. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. | - **loyalty_card_id** | **str**| Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. | + **loyalty_card_id** | **str**| Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. **Important**: The loyalty card ID requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `NewCard2026%` as `NewCard2026%25`. | **update_loyalty_card_request** | [**UpdateLoyaltyCardRequest**](UpdateLoyaltyCardRequest.md)| body | ### Return type diff --git a/docs/StrikethroughSetDiscountPerItemEffectProps.md b/docs/StrikethroughSetDiscountPerItemEffectProps.md index c599996..85befa4 100644 --- a/docs/StrikethroughSetDiscountPerItemEffectProps.md +++ b/docs/StrikethroughSetDiscountPerItemEffectProps.md @@ -8,6 +8,7 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **name** | **str** | effect name. | **value** | **object** | | +**exclude_from_best_prior_price_history** | **bool** | | [optional] ## Example diff --git a/docs/TransferLoyaltyCard.md b/docs/TransferLoyaltyCard.md index 87bd9b4..7eeab87 100644 --- a/docs/TransferLoyaltyCard.md +++ b/docs/TransferLoyaltyCard.md @@ -5,7 +5,7 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**new_card_identifier** | **str** | The alphanumeric identifier of the loyalty card. | +**new_card_identifier** | **str** | The identifier of the loyalty card, which must match the regular expression `^[A-Za-z0-9._%+@-]+$`. | **block_reason** | **str** | Reason for transferring and blocking the loyalty card. | [optional] ## Example diff --git a/docs/UpdateAchievementV2.md b/docs/UpdateAchievementV2.md new file mode 100644 index 0000000..c65cf3c --- /dev/null +++ b/docs/UpdateAchievementV2.md @@ -0,0 +1,41 @@ +# UpdateAchievementV2 + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**name** | **str** | The internal name of the achievement used in API requests. **Note**: The name should start with a letter. This cannot be changed after the achievement has been created. | [optional] +**title** | **str** | The display name for the achievement in the Campaign Manager. | [optional] +**description** | **str** | A description of the achievement. | [optional] +**target** | **float** | The required number of actions or the transactional milestone to complete the achievement. | [optional] +**period** | **str** | The relative duration after which the achievement ends and resets for a particular customer profile. **Note**: The `period` does not start when the achievement is created. The period is a **positive real number** followed by one letter indicating the time unit. Examples: `30s`, `40m`, `1h`, `5D`, `7W`, `10M`, `15Y`. Available units: - `s`: seconds - `m`: minutes - `h`: hours - `D`: days - `W`: weeks - `M`: months - `Y`: years You can also round certain units down to the beginning of period and up to the end of period.: - `_D` for rounding down days only. Signifies the start of the day. Example: `30D_D` - `_U` for rounding up days, weeks, months and years. Signifies the end of the day, week, month or year. Example: `23W_U` **Note**: You can either use the round down and round up option or set an absolute period. | [optional] +**recurrence_policy** | **str** | The policy that determines if and how the achievement recurs. - `no_recurrence`: The achievement can be completed only once. - `on_expiration`: The achievement resets after it expires and becomes available again. - `on_completion`: When the customer progress status reaches `completed`, the achievement resets and becomes available again. | [optional] +**activation_policy** | **str** | The policy that determines how the achievement starts, ends, or resets. - `user_action`: The achievement ends or resets relative to when the customer started the achievement. - `fixed_schedule`: The achievement starts, ends, or resets for all customers following a fixed schedule. | [optional] +**fixed_start_date** | **datetime** | The achievement's start date when `activationPolicy` is set to `fixed_schedule`. **Note:** It must be an RFC3339 timestamp string. | [optional] +**end_date** | **datetime** | The achievement's end date. If defined, customers cannot participate in the achievement after this date. **Note:** It must be an RFC3339 timestamp string. | [optional] +**allow_rollback_after_completion** | **bool** | When `true`, customer progress can be rolled back in completed achievements. | [optional] +**sandbox** | **bool** | Indicates if this achievement is a live or sandbox achievement. Achievements of a given type can only be connected to Applications of the same type. | [optional] +**subscribed_applications** | **List[int]** | A list containing the IDs of all applications that are subscribed to A list containing the IDs of all Applications that are connected to this achievement. | [optional] +**timezone** | **str** | A string containing an IANA timezone descriptor. | [optional] + +## Example + +```python +from talon_one.models.update_achievement_v2 import UpdateAchievementV2 + +# TODO update the JSON string below +json = "{}" +# create an instance of UpdateAchievementV2 from a JSON string +update_achievement_v2_instance = UpdateAchievementV2.from_json(json) +# print the JSON string representation of the object +print(UpdateAchievementV2.to_json()) + +# convert the object into a dict +update_achievement_v2_dict = update_achievement_v2_instance.to_dict() +# create an instance of UpdateAchievementV2 from a dict +update_achievement_v2_from_dict = UpdateAchievementV2.from_dict(update_achievement_v2_dict) +``` +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) + + diff --git a/pyproject.toml b/pyproject.toml index 65c5753..02e5836 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "talon-one-sdk" -version = "26.05" +version = "26.06.0" description = "Talon.One API" authors = [ {name = "OpenAPI Generator Community",email = "team@openapitools.org"}, diff --git a/setup.py b/setup.py index 3a6aaf7..9f8db8f 100644 --- a/setup.py +++ b/setup.py @@ -11,7 +11,7 @@ # http://pypi.python.org/pypi/setuptools NAME = "talon-one-sdk" -VERSION = "26.05" +VERSION = "26.06.0" # Get the long description from the README.md file here = pathlib.Path(__file__).parent.resolve() diff --git a/talon_one/__init__.py b/talon_one/__init__.py index 92b4fe0..addbba8 100644 --- a/talon_one/__init__.py +++ b/talon_one/__init__.py @@ -14,7 +14,7 @@ """ # noqa: E501 -__version__ = "26.05" +__version__ = "26.06.0" # Define package exports __all__ = [ @@ -46,10 +46,14 @@ "AccountLimits", "Achievement", "AchievementAdditionalProperties", + "AchievementAdditionalPropertiesV2", "AchievementBase", + "AchievementBaseV2", "AchievementProgress", "AchievementProgressWithDefinition", + "AchievementReference", "AchievementStatusEntry", + "AchievementV2", "ActivateLoyaltyPoints", "ActivateLoyaltyPointsResponse", "ActivateUserRequest", @@ -205,6 +209,7 @@ "CouponsNotificationData", "CouponsNotificationPolicy", "CreateAchievement", + "CreateAchievementV2", "CreateApplicationAPIKey", "CreateCouponData", "CreateCoupons200Response", @@ -339,6 +344,7 @@ "ImportEntity", "IncreaseAchievementProgressEffectProps", "InfluencingCampaignDetails", + "IntegrationCampaign", "IntegrationCoupon", "IntegrationCustomerProfileAudienceRequest", "IntegrationCustomerProfileAudienceRequestItem", @@ -652,6 +658,7 @@ "TwoFAConfig", "UpdateAccount", "UpdateAchievement", + "UpdateAchievementV2", "UpdateApplication", "UpdateApplicationAPIKey", "UpdateApplicationCIF", @@ -731,10 +738,14 @@ from talon_one.models.account_limits import AccountLimits as AccountLimits from talon_one.models.achievement import Achievement as Achievement from talon_one.models.achievement_additional_properties import AchievementAdditionalProperties as AchievementAdditionalProperties +from talon_one.models.achievement_additional_properties_v2 import AchievementAdditionalPropertiesV2 as AchievementAdditionalPropertiesV2 from talon_one.models.achievement_base import AchievementBase as AchievementBase +from talon_one.models.achievement_base_v2 import AchievementBaseV2 as AchievementBaseV2 from talon_one.models.achievement_progress import AchievementProgress as AchievementProgress from talon_one.models.achievement_progress_with_definition import AchievementProgressWithDefinition as AchievementProgressWithDefinition +from talon_one.models.achievement_reference import AchievementReference as AchievementReference from talon_one.models.achievement_status_entry import AchievementStatusEntry as AchievementStatusEntry +from talon_one.models.achievement_v2 import AchievementV2 as AchievementV2 from talon_one.models.activate_loyalty_points import ActivateLoyaltyPoints as ActivateLoyaltyPoints from talon_one.models.activate_loyalty_points_response import ActivateLoyaltyPointsResponse as ActivateLoyaltyPointsResponse from talon_one.models.activate_user_request import ActivateUserRequest as ActivateUserRequest @@ -890,6 +901,7 @@ from talon_one.models.coupons_notification_data import CouponsNotificationData as CouponsNotificationData from talon_one.models.coupons_notification_policy import CouponsNotificationPolicy as CouponsNotificationPolicy from talon_one.models.create_achievement import CreateAchievement as CreateAchievement +from talon_one.models.create_achievement_v2 import CreateAchievementV2 as CreateAchievementV2 from talon_one.models.create_application_api_key import CreateApplicationAPIKey as CreateApplicationAPIKey from talon_one.models.create_coupon_data import CreateCouponData as CreateCouponData from talon_one.models.create_coupons200_response import CreateCoupons200Response as CreateCoupons200Response @@ -1024,6 +1036,7 @@ from talon_one.models.import_entity import ImportEntity as ImportEntity from talon_one.models.increase_achievement_progress_effect_props import IncreaseAchievementProgressEffectProps as IncreaseAchievementProgressEffectProps from talon_one.models.influencing_campaign_details import InfluencingCampaignDetails as InfluencingCampaignDetails +from talon_one.models.integration_campaign import IntegrationCampaign as IntegrationCampaign from talon_one.models.integration_coupon import IntegrationCoupon as IntegrationCoupon from talon_one.models.integration_customer_profile_audience_request import IntegrationCustomerProfileAudienceRequest as IntegrationCustomerProfileAudienceRequest from talon_one.models.integration_customer_profile_audience_request_item import IntegrationCustomerProfileAudienceRequestItem as IntegrationCustomerProfileAudienceRequestItem @@ -1337,6 +1350,7 @@ from talon_one.models.two_fa_config import TwoFAConfig as TwoFAConfig from talon_one.models.update_account import UpdateAccount as UpdateAccount from talon_one.models.update_achievement import UpdateAchievement as UpdateAchievement +from talon_one.models.update_achievement_v2 import UpdateAchievementV2 as UpdateAchievementV2 from talon_one.models.update_application import UpdateApplication as UpdateApplication from talon_one.models.update_application_api_key import UpdateApplicationAPIKey as UpdateApplicationAPIKey from talon_one.models.update_application_cif import UpdateApplicationCIF as UpdateApplicationCIF diff --git a/talon_one/api/integration_api.py b/talon_one/api/integration_api.py index 8dae5fe..ec2f12e 100644 --- a/talon_one/api/integration_api.py +++ b/talon_one/api/integration_api.py @@ -5293,7 +5293,7 @@ def _get_loyalty_balances_serialize( def get_loyalty_card_balances( self, loyalty_program_id: Annotated[StrictInt, Field(description="Identifier of the card-based loyalty program containing the loyalty card. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. ")], - loyalty_card_id: Annotated[str, Field(min_length=4, strict=True, max_length=108, description="Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. ")], + loyalty_card_id: Annotated[str, Field(min_length=4, strict=True, max_length=108, description="Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. **Important**: The loyalty card ID requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `NewCard2026%` as `NewCard2026%25`. ")], end_date: Annotated[Optional[datetime], Field(description="Used to return expired, active, and pending loyalty balances before this timestamp. You can enter any past, present, or future timestamp value. **Note:** - It must be an RFC3339 timestamp string. - You can include a time component in your string, for example, `T23:59:59` to specify the end of the day. The time zone setting considered is `UTC`. If you do not include a time component, a default time value of `T00:00:00` (midnight) in `UTC` is considered. ")] = None, subledger_id: Annotated[Optional[List[StrictStr]], Field(description="Filter results by one or more subledger IDs. Must be exact match.")] = None, _request_timeout: Union[ @@ -5315,7 +5315,7 @@ def get_loyalty_card_balances( :param loyalty_program_id: Identifier of the card-based loyalty program containing the loyalty card. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. (required) :type loyalty_program_id: int - :param loyalty_card_id: Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. (required) + :param loyalty_card_id: Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. **Important**: The loyalty card ID requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `NewCard2026%` as `NewCard2026%25`. (required) :type loyalty_card_id: str :param end_date: Used to return expired, active, and pending loyalty balances before this timestamp. You can enter any past, present, or future timestamp value. **Note:** - It must be an RFC3339 timestamp string. - You can include a time component in your string, for example, `T23:59:59` to specify the end of the day. The time zone setting considered is `UTC`. If you do not include a time component, a default time value of `T00:00:00` (midnight) in `UTC` is considered. :type end_date: datetime @@ -5375,7 +5375,7 @@ def get_loyalty_card_balances( def get_loyalty_card_balances_with_http_info( self, loyalty_program_id: Annotated[StrictInt, Field(description="Identifier of the card-based loyalty program containing the loyalty card. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. ")], - loyalty_card_id: Annotated[str, Field(min_length=4, strict=True, max_length=108, description="Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. ")], + loyalty_card_id: Annotated[str, Field(min_length=4, strict=True, max_length=108, description="Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. **Important**: The loyalty card ID requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `NewCard2026%` as `NewCard2026%25`. ")], end_date: Annotated[Optional[datetime], Field(description="Used to return expired, active, and pending loyalty balances before this timestamp. You can enter any past, present, or future timestamp value. **Note:** - It must be an RFC3339 timestamp string. - You can include a time component in your string, for example, `T23:59:59` to specify the end of the day. The time zone setting considered is `UTC`. If you do not include a time component, a default time value of `T00:00:00` (midnight) in `UTC` is considered. ")] = None, subledger_id: Annotated[Optional[List[StrictStr]], Field(description="Filter results by one or more subledger IDs. Must be exact match.")] = None, _request_timeout: Union[ @@ -5397,7 +5397,7 @@ def get_loyalty_card_balances_with_http_info( :param loyalty_program_id: Identifier of the card-based loyalty program containing the loyalty card. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. (required) :type loyalty_program_id: int - :param loyalty_card_id: Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. (required) + :param loyalty_card_id: Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. **Important**: The loyalty card ID requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `NewCard2026%` as `NewCard2026%25`. (required) :type loyalty_card_id: str :param end_date: Used to return expired, active, and pending loyalty balances before this timestamp. You can enter any past, present, or future timestamp value. **Note:** - It must be an RFC3339 timestamp string. - You can include a time component in your string, for example, `T23:59:59` to specify the end of the day. The time zone setting considered is `UTC`. If you do not include a time component, a default time value of `T00:00:00` (midnight) in `UTC` is considered. :type end_date: datetime @@ -5457,7 +5457,7 @@ def get_loyalty_card_balances_with_http_info( def get_loyalty_card_balances_without_preload_content( self, loyalty_program_id: Annotated[StrictInt, Field(description="Identifier of the card-based loyalty program containing the loyalty card. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. ")], - loyalty_card_id: Annotated[str, Field(min_length=4, strict=True, max_length=108, description="Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. ")], + loyalty_card_id: Annotated[str, Field(min_length=4, strict=True, max_length=108, description="Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. **Important**: The loyalty card ID requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `NewCard2026%` as `NewCard2026%25`. ")], end_date: Annotated[Optional[datetime], Field(description="Used to return expired, active, and pending loyalty balances before this timestamp. You can enter any past, present, or future timestamp value. **Note:** - It must be an RFC3339 timestamp string. - You can include a time component in your string, for example, `T23:59:59` to specify the end of the day. The time zone setting considered is `UTC`. If you do not include a time component, a default time value of `T00:00:00` (midnight) in `UTC` is considered. ")] = None, subledger_id: Annotated[Optional[List[StrictStr]], Field(description="Filter results by one or more subledger IDs. Must be exact match.")] = None, _request_timeout: Union[ @@ -5479,7 +5479,7 @@ def get_loyalty_card_balances_without_preload_content( :param loyalty_program_id: Identifier of the card-based loyalty program containing the loyalty card. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. (required) :type loyalty_program_id: int - :param loyalty_card_id: Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. (required) + :param loyalty_card_id: Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. **Important**: The loyalty card ID requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `NewCard2026%` as `NewCard2026%25`. (required) :type loyalty_card_id: str :param end_date: Used to return expired, active, and pending loyalty balances before this timestamp. You can enter any past, present, or future timestamp value. **Note:** - It must be an RFC3339 timestamp string. - You can include a time component in your string, for example, `T23:59:59` to specify the end of the day. The time zone setting considered is `UTC`. If you do not include a time component, a default time value of `T00:00:00` (midnight) in `UTC` is considered. :type end_date: datetime @@ -5622,14 +5622,14 @@ def _get_loyalty_card_balances_serialize( def get_loyalty_card_points( self, loyalty_program_id: Annotated[StrictInt, Field(description="Identifier of the card-based loyalty program containing the loyalty card. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. ")], - loyalty_card_id: Annotated[str, Field(min_length=4, strict=True, max_length=108, description="Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. ")], + loyalty_card_id: Annotated[str, Field(min_length=4, strict=True, max_length=108, description="Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. **Important**: The loyalty card ID requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `NewCard2026%` as `NewCard2026%25`. ")], status: Annotated[Optional[StrictStr], Field(description="Filter points based on their status.")] = None, subledger_id: Annotated[Optional[List[StrictStr]], Field(description="Filter results by one or more subledger IDs. Must be exact match.")] = None, - customer_session_ids: Annotated[Optional[List[StrictStr]], Field(description="Filter the results by a list of customer session IDs. To include multiple IDs, repeat the parameter for each one, for example, `?customerSessionIDs=id1&customerSessionIDs=id2`. The response contains only data associated with the specified sessions. ")] = None, - transaction_uuids: Annotated[Optional[List[StrictStr]], Field(description="Filter the results by a list of transaction UUIDs. To include multiple IDs, repeat the parameter for each one, for example, `?transactionUUIDs=uuid1&transactionUUIDs=uuid2`. The response contains only data associated with the specified transactions. ")] = None, + customer_session_ids: Annotated[Optional[List[StrictStr]], Field(description="Filter the results by a list of customer session IDs. To include multiple IDs, repeat the parameter for each one, for example, `?customerSessionIDs=id1&customerSessionIDs=id2`. The response contains only data associated with the specified sessions. ")] = None, + transaction_uuids: Annotated[Optional[List[StrictStr]], Field(description="Filter the results by a list of transaction UUIDs. To include multiple IDs, repeat the parameter for each one, for example, `?transactionUUIDs=uuid1&transactionUUIDs=uuid2`. The response contains only data associated with the specified transactions. ")] = None, page_size: Annotated[Optional[Annotated[int, Field(le=1000, strict=True, ge=1)]], Field(description="The number of items in the response.")] = None, skip: Annotated[Optional[StrictInt], Field(description="The number of items to skip when paging through large result sets.")] = None, - sort: Annotated[Optional[StrictStr], Field(description="The field by which results should be sorted. You can enter one of the following values: - `startDate`: Sorts the results by the start date of the points. - `expiryDate`: Sorts the results by the expiry date of the points. By default, results are sorted in ascending order. To sort them in descending order, prefix the field name with `-`. **Note:** You can only sort by one field at a time. ")] = None, + sort: Annotated[Optional[StrictStr], Field(description="The field by which results should be sorted. You can enter one of the following values: - `startDate`: Sorts the results by the start date of the points. - `expiryDate`: Sorts the results by the expiry date of the points. By default, results are sorted in ascending order. To sort them in descending order, prefix the field name with `-`. **Note:** You can only sort by one field at a time. ")] = None, _request_timeout: Union[ None, Annotated[StrictFloat, Field(gt=0)], @@ -5649,21 +5649,21 @@ def get_loyalty_card_points( :param loyalty_program_id: Identifier of the card-based loyalty program containing the loyalty card. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. (required) :type loyalty_program_id: int - :param loyalty_card_id: Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. (required) + :param loyalty_card_id: Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. **Important**: The loyalty card ID requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `NewCard2026%` as `NewCard2026%25`. (required) :type loyalty_card_id: str :param status: Filter points based on their status. :type status: str :param subledger_id: Filter results by one or more subledger IDs. Must be exact match. :type subledger_id: List[str] - :param customer_session_ids: Filter the results by a list of customer session IDs. To include multiple IDs, repeat the parameter for each one, for example, `?customerSessionIDs=id1&customerSessionIDs=id2`. The response contains only data associated with the specified sessions. + :param customer_session_ids: Filter the results by a list of customer session IDs. To include multiple IDs, repeat the parameter for each one, for example, `?customerSessionIDs=id1&customerSessionIDs=id2`. The response contains only data associated with the specified sessions. :type customer_session_ids: List[str] - :param transaction_uuids: Filter the results by a list of transaction UUIDs. To include multiple IDs, repeat the parameter for each one, for example, `?transactionUUIDs=uuid1&transactionUUIDs=uuid2`. The response contains only data associated with the specified transactions. + :param transaction_uuids: Filter the results by a list of transaction UUIDs. To include multiple IDs, repeat the parameter for each one, for example, `?transactionUUIDs=uuid1&transactionUUIDs=uuid2`. The response contains only data associated with the specified transactions. :type transaction_uuids: List[str] :param page_size: The number of items in the response. :type page_size: int :param skip: The number of items to skip when paging through large result sets. :type skip: int - :param sort: The field by which results should be sorted. You can enter one of the following values: - `startDate`: Sorts the results by the start date of the points. - `expiryDate`: Sorts the results by the expiry date of the points. By default, results are sorted in ascending order. To sort them in descending order, prefix the field name with `-`. **Note:** You can only sort by one field at a time. + :param sort: The field by which results should be sorted. You can enter one of the following values: - `startDate`: Sorts the results by the start date of the points. - `expiryDate`: Sorts the results by the expiry date of the points. By default, results are sorted in ascending order. To sort them in descending order, prefix the field name with `-`. **Note:** You can only sort by one field at a time. :type sort: str :param _request_timeout: timeout setting for this request. If one number provided, it will be total request @@ -5724,14 +5724,14 @@ def get_loyalty_card_points( def get_loyalty_card_points_with_http_info( self, loyalty_program_id: Annotated[StrictInt, Field(description="Identifier of the card-based loyalty program containing the loyalty card. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. ")], - loyalty_card_id: Annotated[str, Field(min_length=4, strict=True, max_length=108, description="Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. ")], + loyalty_card_id: Annotated[str, Field(min_length=4, strict=True, max_length=108, description="Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. **Important**: The loyalty card ID requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `NewCard2026%` as `NewCard2026%25`. ")], status: Annotated[Optional[StrictStr], Field(description="Filter points based on their status.")] = None, subledger_id: Annotated[Optional[List[StrictStr]], Field(description="Filter results by one or more subledger IDs. Must be exact match.")] = None, - customer_session_ids: Annotated[Optional[List[StrictStr]], Field(description="Filter the results by a list of customer session IDs. To include multiple IDs, repeat the parameter for each one, for example, `?customerSessionIDs=id1&customerSessionIDs=id2`. The response contains only data associated with the specified sessions. ")] = None, - transaction_uuids: Annotated[Optional[List[StrictStr]], Field(description="Filter the results by a list of transaction UUIDs. To include multiple IDs, repeat the parameter for each one, for example, `?transactionUUIDs=uuid1&transactionUUIDs=uuid2`. The response contains only data associated with the specified transactions. ")] = None, + customer_session_ids: Annotated[Optional[List[StrictStr]], Field(description="Filter the results by a list of customer session IDs. To include multiple IDs, repeat the parameter for each one, for example, `?customerSessionIDs=id1&customerSessionIDs=id2`. The response contains only data associated with the specified sessions. ")] = None, + transaction_uuids: Annotated[Optional[List[StrictStr]], Field(description="Filter the results by a list of transaction UUIDs. To include multiple IDs, repeat the parameter for each one, for example, `?transactionUUIDs=uuid1&transactionUUIDs=uuid2`. The response contains only data associated with the specified transactions. ")] = None, page_size: Annotated[Optional[Annotated[int, Field(le=1000, strict=True, ge=1)]], Field(description="The number of items in the response.")] = None, skip: Annotated[Optional[StrictInt], Field(description="The number of items to skip when paging through large result sets.")] = None, - sort: Annotated[Optional[StrictStr], Field(description="The field by which results should be sorted. You can enter one of the following values: - `startDate`: Sorts the results by the start date of the points. - `expiryDate`: Sorts the results by the expiry date of the points. By default, results are sorted in ascending order. To sort them in descending order, prefix the field name with `-`. **Note:** You can only sort by one field at a time. ")] = None, + sort: Annotated[Optional[StrictStr], Field(description="The field by which results should be sorted. You can enter one of the following values: - `startDate`: Sorts the results by the start date of the points. - `expiryDate`: Sorts the results by the expiry date of the points. By default, results are sorted in ascending order. To sort them in descending order, prefix the field name with `-`. **Note:** You can only sort by one field at a time. ")] = None, _request_timeout: Union[ None, Annotated[StrictFloat, Field(gt=0)], @@ -5751,21 +5751,21 @@ def get_loyalty_card_points_with_http_info( :param loyalty_program_id: Identifier of the card-based loyalty program containing the loyalty card. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. (required) :type loyalty_program_id: int - :param loyalty_card_id: Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. (required) + :param loyalty_card_id: Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. **Important**: The loyalty card ID requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `NewCard2026%` as `NewCard2026%25`. (required) :type loyalty_card_id: str :param status: Filter points based on their status. :type status: str :param subledger_id: Filter results by one or more subledger IDs. Must be exact match. :type subledger_id: List[str] - :param customer_session_ids: Filter the results by a list of customer session IDs. To include multiple IDs, repeat the parameter for each one, for example, `?customerSessionIDs=id1&customerSessionIDs=id2`. The response contains only data associated with the specified sessions. + :param customer_session_ids: Filter the results by a list of customer session IDs. To include multiple IDs, repeat the parameter for each one, for example, `?customerSessionIDs=id1&customerSessionIDs=id2`. The response contains only data associated with the specified sessions. :type customer_session_ids: List[str] - :param transaction_uuids: Filter the results by a list of transaction UUIDs. To include multiple IDs, repeat the parameter for each one, for example, `?transactionUUIDs=uuid1&transactionUUIDs=uuid2`. The response contains only data associated with the specified transactions. + :param transaction_uuids: Filter the results by a list of transaction UUIDs. To include multiple IDs, repeat the parameter for each one, for example, `?transactionUUIDs=uuid1&transactionUUIDs=uuid2`. The response contains only data associated with the specified transactions. :type transaction_uuids: List[str] :param page_size: The number of items in the response. :type page_size: int :param skip: The number of items to skip when paging through large result sets. :type skip: int - :param sort: The field by which results should be sorted. You can enter one of the following values: - `startDate`: Sorts the results by the start date of the points. - `expiryDate`: Sorts the results by the expiry date of the points. By default, results are sorted in ascending order. To sort them in descending order, prefix the field name with `-`. **Note:** You can only sort by one field at a time. + :param sort: The field by which results should be sorted. You can enter one of the following values: - `startDate`: Sorts the results by the start date of the points. - `expiryDate`: Sorts the results by the expiry date of the points. By default, results are sorted in ascending order. To sort them in descending order, prefix the field name with `-`. **Note:** You can only sort by one field at a time. :type sort: str :param _request_timeout: timeout setting for this request. If one number provided, it will be total request @@ -5826,14 +5826,14 @@ def get_loyalty_card_points_with_http_info( def get_loyalty_card_points_without_preload_content( self, loyalty_program_id: Annotated[StrictInt, Field(description="Identifier of the card-based loyalty program containing the loyalty card. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. ")], - loyalty_card_id: Annotated[str, Field(min_length=4, strict=True, max_length=108, description="Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. ")], + loyalty_card_id: Annotated[str, Field(min_length=4, strict=True, max_length=108, description="Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. **Important**: The loyalty card ID requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `NewCard2026%` as `NewCard2026%25`. ")], status: Annotated[Optional[StrictStr], Field(description="Filter points based on their status.")] = None, subledger_id: Annotated[Optional[List[StrictStr]], Field(description="Filter results by one or more subledger IDs. Must be exact match.")] = None, - customer_session_ids: Annotated[Optional[List[StrictStr]], Field(description="Filter the results by a list of customer session IDs. To include multiple IDs, repeat the parameter for each one, for example, `?customerSessionIDs=id1&customerSessionIDs=id2`. The response contains only data associated with the specified sessions. ")] = None, - transaction_uuids: Annotated[Optional[List[StrictStr]], Field(description="Filter the results by a list of transaction UUIDs. To include multiple IDs, repeat the parameter for each one, for example, `?transactionUUIDs=uuid1&transactionUUIDs=uuid2`. The response contains only data associated with the specified transactions. ")] = None, + customer_session_ids: Annotated[Optional[List[StrictStr]], Field(description="Filter the results by a list of customer session IDs. To include multiple IDs, repeat the parameter for each one, for example, `?customerSessionIDs=id1&customerSessionIDs=id2`. The response contains only data associated with the specified sessions. ")] = None, + transaction_uuids: Annotated[Optional[List[StrictStr]], Field(description="Filter the results by a list of transaction UUIDs. To include multiple IDs, repeat the parameter for each one, for example, `?transactionUUIDs=uuid1&transactionUUIDs=uuid2`. The response contains only data associated with the specified transactions. ")] = None, page_size: Annotated[Optional[Annotated[int, Field(le=1000, strict=True, ge=1)]], Field(description="The number of items in the response.")] = None, skip: Annotated[Optional[StrictInt], Field(description="The number of items to skip when paging through large result sets.")] = None, - sort: Annotated[Optional[StrictStr], Field(description="The field by which results should be sorted. You can enter one of the following values: - `startDate`: Sorts the results by the start date of the points. - `expiryDate`: Sorts the results by the expiry date of the points. By default, results are sorted in ascending order. To sort them in descending order, prefix the field name with `-`. **Note:** You can only sort by one field at a time. ")] = None, + sort: Annotated[Optional[StrictStr], Field(description="The field by which results should be sorted. You can enter one of the following values: - `startDate`: Sorts the results by the start date of the points. - `expiryDate`: Sorts the results by the expiry date of the points. By default, results are sorted in ascending order. To sort them in descending order, prefix the field name with `-`. **Note:** You can only sort by one field at a time. ")] = None, _request_timeout: Union[ None, Annotated[StrictFloat, Field(gt=0)], @@ -5853,21 +5853,21 @@ def get_loyalty_card_points_without_preload_content( :param loyalty_program_id: Identifier of the card-based loyalty program containing the loyalty card. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. (required) :type loyalty_program_id: int - :param loyalty_card_id: Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. (required) + :param loyalty_card_id: Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. **Important**: The loyalty card ID requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `NewCard2026%` as `NewCard2026%25`. (required) :type loyalty_card_id: str :param status: Filter points based on their status. :type status: str :param subledger_id: Filter results by one or more subledger IDs. Must be exact match. :type subledger_id: List[str] - :param customer_session_ids: Filter the results by a list of customer session IDs. To include multiple IDs, repeat the parameter for each one, for example, `?customerSessionIDs=id1&customerSessionIDs=id2`. The response contains only data associated with the specified sessions. + :param customer_session_ids: Filter the results by a list of customer session IDs. To include multiple IDs, repeat the parameter for each one, for example, `?customerSessionIDs=id1&customerSessionIDs=id2`. The response contains only data associated with the specified sessions. :type customer_session_ids: List[str] - :param transaction_uuids: Filter the results by a list of transaction UUIDs. To include multiple IDs, repeat the parameter for each one, for example, `?transactionUUIDs=uuid1&transactionUUIDs=uuid2`. The response contains only data associated with the specified transactions. + :param transaction_uuids: Filter the results by a list of transaction UUIDs. To include multiple IDs, repeat the parameter for each one, for example, `?transactionUUIDs=uuid1&transactionUUIDs=uuid2`. The response contains only data associated with the specified transactions. :type transaction_uuids: List[str] :param page_size: The number of items in the response. :type page_size: int :param skip: The number of items to skip when paging through large result sets. :type skip: int - :param sort: The field by which results should be sorted. You can enter one of the following values: - `startDate`: Sorts the results by the start date of the points. - `expiryDate`: Sorts the results by the expiry date of the points. By default, results are sorted in ascending order. To sort them in descending order, prefix the field name with `-`. **Note:** You can only sort by one field at a time. + :param sort: The field by which results should be sorted. You can enter one of the following values: - `startDate`: Sorts the results by the start date of the points. - `expiryDate`: Sorts the results by the expiry date of the points. By default, results are sorted in ascending order. To sort them in descending order, prefix the field name with `-`. **Note:** You can only sort by one field at a time. :type sort: str :param _request_timeout: timeout setting for this request. If one number provided, it will be total request @@ -6029,13 +6029,13 @@ def _get_loyalty_card_points_serialize( def get_loyalty_card_transactions( self, loyalty_program_id: Annotated[StrictInt, Field(description="Identifier of the card-based loyalty program containing the loyalty card. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. ")], - loyalty_card_id: Annotated[str, Field(min_length=4, strict=True, max_length=108, description="Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. ")], + loyalty_card_id: Annotated[str, Field(min_length=4, strict=True, max_length=108, description="Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. **Important**: The loyalty card ID requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `NewCard2026%` as `NewCard2026%25`. ")], subledger_id: Annotated[Optional[List[StrictStr]], Field(description="Filter results by one or more subledger IDs. Must be exact match.")] = None, loyalty_transaction_type: Annotated[Optional[StrictStr], Field(description="Filter results by loyalty transaction type: - `manual`: Loyalty transaction that was done manually. - `session`: Loyalty transaction that resulted from a customer session. - `import`: Loyalty transaction that was imported from a CSV file. ")] = None, start_date: Annotated[Optional[datetime], Field(description="Date and time from which results are returned. Results are filtered by transaction creation date. **Note:** - It must be an RFC3339 timestamp string. - You can include a time component in your string, for example, `T23:59:59` to specify the end of the day. The time zone setting considered is `UTC`. If you do not include a time component, a default time value of `T00:00:00` (midnight) in `UTC` is considered. ")] = None, end_date: Annotated[Optional[datetime], Field(description="Date and time by which results are returned. Results are filtered by transaction creation date. **Note:** - It must be an RFC3339 timestamp string. - You can include a time component in your string, for example, `T23:59:59` to specify the end of the day. The time zone setting considered is `UTC`. If you do not include a time component, a default time value of `T00:00:00` (midnight) in `UTC` is considered. ")] = None, - customer_session_ids: Annotated[Optional[List[StrictStr]], Field(description="Filter the results by a list of customer session IDs. To include multiple IDs, repeat the parameter for each one, for example, `?customerSessionIDs=id1&customerSessionIDs=id2`. The response contains only data associated with the specified sessions. ")] = None, - transaction_uuids: Annotated[Optional[List[StrictStr]], Field(description="Filter the results by a list of transaction UUIDs. To include multiple IDs, repeat the parameter for each one, for example, `?transactionUUIDs=uuid1&transactionUUIDs=uuid2`. The response contains only data associated with the specified transactions. ")] = None, + customer_session_ids: Annotated[Optional[List[StrictStr]], Field(description="Filter the results by a list of customer session IDs. To include multiple IDs, repeat the parameter for each one, for example, `?customerSessionIDs=id1&customerSessionIDs=id2`. The response contains only data associated with the specified sessions. ")] = None, + transaction_uuids: Annotated[Optional[List[StrictStr]], Field(description="Filter the results by a list of transaction UUIDs. To include multiple IDs, repeat the parameter for each one, for example, `?transactionUUIDs=uuid1&transactionUUIDs=uuid2`. The response contains only data associated with the specified transactions. ")] = None, page_size: Annotated[Optional[Annotated[int, Field(le=1000, strict=True, ge=1)]], Field(description="The number of items in the response.")] = None, skip: Annotated[Optional[StrictInt], Field(description="The number of items to skip when paging through large result sets.")] = None, awaits_activation: Annotated[Optional[StrictBool], Field(description="If `true`: Filters results to include only point transactions that have action-based activation and have not expired. If `false`: Returns a `400` response. ")] = None, @@ -6058,7 +6058,7 @@ def get_loyalty_card_transactions( :param loyalty_program_id: Identifier of the card-based loyalty program containing the loyalty card. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. (required) :type loyalty_program_id: int - :param loyalty_card_id: Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. (required) + :param loyalty_card_id: Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. **Important**: The loyalty card ID requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `NewCard2026%` as `NewCard2026%25`. (required) :type loyalty_card_id: str :param subledger_id: Filter results by one or more subledger IDs. Must be exact match. :type subledger_id: List[str] @@ -6068,9 +6068,9 @@ def get_loyalty_card_transactions( :type start_date: datetime :param end_date: Date and time by which results are returned. Results are filtered by transaction creation date. **Note:** - It must be an RFC3339 timestamp string. - You can include a time component in your string, for example, `T23:59:59` to specify the end of the day. The time zone setting considered is `UTC`. If you do not include a time component, a default time value of `T00:00:00` (midnight) in `UTC` is considered. :type end_date: datetime - :param customer_session_ids: Filter the results by a list of customer session IDs. To include multiple IDs, repeat the parameter for each one, for example, `?customerSessionIDs=id1&customerSessionIDs=id2`. The response contains only data associated with the specified sessions. + :param customer_session_ids: Filter the results by a list of customer session IDs. To include multiple IDs, repeat the parameter for each one, for example, `?customerSessionIDs=id1&customerSessionIDs=id2`. The response contains only data associated with the specified sessions. :type customer_session_ids: List[str] - :param transaction_uuids: Filter the results by a list of transaction UUIDs. To include multiple IDs, repeat the parameter for each one, for example, `?transactionUUIDs=uuid1&transactionUUIDs=uuid2`. The response contains only data associated with the specified transactions. + :param transaction_uuids: Filter the results by a list of transaction UUIDs. To include multiple IDs, repeat the parameter for each one, for example, `?transactionUUIDs=uuid1&transactionUUIDs=uuid2`. The response contains only data associated with the specified transactions. :type transaction_uuids: List[str] :param page_size: The number of items in the response. :type page_size: int @@ -6139,13 +6139,13 @@ def get_loyalty_card_transactions( def get_loyalty_card_transactions_with_http_info( self, loyalty_program_id: Annotated[StrictInt, Field(description="Identifier of the card-based loyalty program containing the loyalty card. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. ")], - loyalty_card_id: Annotated[str, Field(min_length=4, strict=True, max_length=108, description="Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. ")], + loyalty_card_id: Annotated[str, Field(min_length=4, strict=True, max_length=108, description="Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. **Important**: The loyalty card ID requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `NewCard2026%` as `NewCard2026%25`. ")], subledger_id: Annotated[Optional[List[StrictStr]], Field(description="Filter results by one or more subledger IDs. Must be exact match.")] = None, loyalty_transaction_type: Annotated[Optional[StrictStr], Field(description="Filter results by loyalty transaction type: - `manual`: Loyalty transaction that was done manually. - `session`: Loyalty transaction that resulted from a customer session. - `import`: Loyalty transaction that was imported from a CSV file. ")] = None, start_date: Annotated[Optional[datetime], Field(description="Date and time from which results are returned. Results are filtered by transaction creation date. **Note:** - It must be an RFC3339 timestamp string. - You can include a time component in your string, for example, `T23:59:59` to specify the end of the day. The time zone setting considered is `UTC`. If you do not include a time component, a default time value of `T00:00:00` (midnight) in `UTC` is considered. ")] = None, end_date: Annotated[Optional[datetime], Field(description="Date and time by which results are returned. Results are filtered by transaction creation date. **Note:** - It must be an RFC3339 timestamp string. - You can include a time component in your string, for example, `T23:59:59` to specify the end of the day. The time zone setting considered is `UTC`. If you do not include a time component, a default time value of `T00:00:00` (midnight) in `UTC` is considered. ")] = None, - customer_session_ids: Annotated[Optional[List[StrictStr]], Field(description="Filter the results by a list of customer session IDs. To include multiple IDs, repeat the parameter for each one, for example, `?customerSessionIDs=id1&customerSessionIDs=id2`. The response contains only data associated with the specified sessions. ")] = None, - transaction_uuids: Annotated[Optional[List[StrictStr]], Field(description="Filter the results by a list of transaction UUIDs. To include multiple IDs, repeat the parameter for each one, for example, `?transactionUUIDs=uuid1&transactionUUIDs=uuid2`. The response contains only data associated with the specified transactions. ")] = None, + customer_session_ids: Annotated[Optional[List[StrictStr]], Field(description="Filter the results by a list of customer session IDs. To include multiple IDs, repeat the parameter for each one, for example, `?customerSessionIDs=id1&customerSessionIDs=id2`. The response contains only data associated with the specified sessions. ")] = None, + transaction_uuids: Annotated[Optional[List[StrictStr]], Field(description="Filter the results by a list of transaction UUIDs. To include multiple IDs, repeat the parameter for each one, for example, `?transactionUUIDs=uuid1&transactionUUIDs=uuid2`. The response contains only data associated with the specified transactions. ")] = None, page_size: Annotated[Optional[Annotated[int, Field(le=1000, strict=True, ge=1)]], Field(description="The number of items in the response.")] = None, skip: Annotated[Optional[StrictInt], Field(description="The number of items to skip when paging through large result sets.")] = None, awaits_activation: Annotated[Optional[StrictBool], Field(description="If `true`: Filters results to include only point transactions that have action-based activation and have not expired. If `false`: Returns a `400` response. ")] = None, @@ -6168,7 +6168,7 @@ def get_loyalty_card_transactions_with_http_info( :param loyalty_program_id: Identifier of the card-based loyalty program containing the loyalty card. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. (required) :type loyalty_program_id: int - :param loyalty_card_id: Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. (required) + :param loyalty_card_id: Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. **Important**: The loyalty card ID requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `NewCard2026%` as `NewCard2026%25`. (required) :type loyalty_card_id: str :param subledger_id: Filter results by one or more subledger IDs. Must be exact match. :type subledger_id: List[str] @@ -6178,9 +6178,9 @@ def get_loyalty_card_transactions_with_http_info( :type start_date: datetime :param end_date: Date and time by which results are returned. Results are filtered by transaction creation date. **Note:** - It must be an RFC3339 timestamp string. - You can include a time component in your string, for example, `T23:59:59` to specify the end of the day. The time zone setting considered is `UTC`. If you do not include a time component, a default time value of `T00:00:00` (midnight) in `UTC` is considered. :type end_date: datetime - :param customer_session_ids: Filter the results by a list of customer session IDs. To include multiple IDs, repeat the parameter for each one, for example, `?customerSessionIDs=id1&customerSessionIDs=id2`. The response contains only data associated with the specified sessions. + :param customer_session_ids: Filter the results by a list of customer session IDs. To include multiple IDs, repeat the parameter for each one, for example, `?customerSessionIDs=id1&customerSessionIDs=id2`. The response contains only data associated with the specified sessions. :type customer_session_ids: List[str] - :param transaction_uuids: Filter the results by a list of transaction UUIDs. To include multiple IDs, repeat the parameter for each one, for example, `?transactionUUIDs=uuid1&transactionUUIDs=uuid2`. The response contains only data associated with the specified transactions. + :param transaction_uuids: Filter the results by a list of transaction UUIDs. To include multiple IDs, repeat the parameter for each one, for example, `?transactionUUIDs=uuid1&transactionUUIDs=uuid2`. The response contains only data associated with the specified transactions. :type transaction_uuids: List[str] :param page_size: The number of items in the response. :type page_size: int @@ -6249,13 +6249,13 @@ def get_loyalty_card_transactions_with_http_info( def get_loyalty_card_transactions_without_preload_content( self, loyalty_program_id: Annotated[StrictInt, Field(description="Identifier of the card-based loyalty program containing the loyalty card. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. ")], - loyalty_card_id: Annotated[str, Field(min_length=4, strict=True, max_length=108, description="Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. ")], + loyalty_card_id: Annotated[str, Field(min_length=4, strict=True, max_length=108, description="Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. **Important**: The loyalty card ID requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `NewCard2026%` as `NewCard2026%25`. ")], subledger_id: Annotated[Optional[List[StrictStr]], Field(description="Filter results by one or more subledger IDs. Must be exact match.")] = None, loyalty_transaction_type: Annotated[Optional[StrictStr], Field(description="Filter results by loyalty transaction type: - `manual`: Loyalty transaction that was done manually. - `session`: Loyalty transaction that resulted from a customer session. - `import`: Loyalty transaction that was imported from a CSV file. ")] = None, start_date: Annotated[Optional[datetime], Field(description="Date and time from which results are returned. Results are filtered by transaction creation date. **Note:** - It must be an RFC3339 timestamp string. - You can include a time component in your string, for example, `T23:59:59` to specify the end of the day. The time zone setting considered is `UTC`. If you do not include a time component, a default time value of `T00:00:00` (midnight) in `UTC` is considered. ")] = None, end_date: Annotated[Optional[datetime], Field(description="Date and time by which results are returned. Results are filtered by transaction creation date. **Note:** - It must be an RFC3339 timestamp string. - You can include a time component in your string, for example, `T23:59:59` to specify the end of the day. The time zone setting considered is `UTC`. If you do not include a time component, a default time value of `T00:00:00` (midnight) in `UTC` is considered. ")] = None, - customer_session_ids: Annotated[Optional[List[StrictStr]], Field(description="Filter the results by a list of customer session IDs. To include multiple IDs, repeat the parameter for each one, for example, `?customerSessionIDs=id1&customerSessionIDs=id2`. The response contains only data associated with the specified sessions. ")] = None, - transaction_uuids: Annotated[Optional[List[StrictStr]], Field(description="Filter the results by a list of transaction UUIDs. To include multiple IDs, repeat the parameter for each one, for example, `?transactionUUIDs=uuid1&transactionUUIDs=uuid2`. The response contains only data associated with the specified transactions. ")] = None, + customer_session_ids: Annotated[Optional[List[StrictStr]], Field(description="Filter the results by a list of customer session IDs. To include multiple IDs, repeat the parameter for each one, for example, `?customerSessionIDs=id1&customerSessionIDs=id2`. The response contains only data associated with the specified sessions. ")] = None, + transaction_uuids: Annotated[Optional[List[StrictStr]], Field(description="Filter the results by a list of transaction UUIDs. To include multiple IDs, repeat the parameter for each one, for example, `?transactionUUIDs=uuid1&transactionUUIDs=uuid2`. The response contains only data associated with the specified transactions. ")] = None, page_size: Annotated[Optional[Annotated[int, Field(le=1000, strict=True, ge=1)]], Field(description="The number of items in the response.")] = None, skip: Annotated[Optional[StrictInt], Field(description="The number of items to skip when paging through large result sets.")] = None, awaits_activation: Annotated[Optional[StrictBool], Field(description="If `true`: Filters results to include only point transactions that have action-based activation and have not expired. If `false`: Returns a `400` response. ")] = None, @@ -6278,7 +6278,7 @@ def get_loyalty_card_transactions_without_preload_content( :param loyalty_program_id: Identifier of the card-based loyalty program containing the loyalty card. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. (required) :type loyalty_program_id: int - :param loyalty_card_id: Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. (required) + :param loyalty_card_id: Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. **Important**: The loyalty card ID requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `NewCard2026%` as `NewCard2026%25`. (required) :type loyalty_card_id: str :param subledger_id: Filter results by one or more subledger IDs. Must be exact match. :type subledger_id: List[str] @@ -6288,9 +6288,9 @@ def get_loyalty_card_transactions_without_preload_content( :type start_date: datetime :param end_date: Date and time by which results are returned. Results are filtered by transaction creation date. **Note:** - It must be an RFC3339 timestamp string. - You can include a time component in your string, for example, `T23:59:59` to specify the end of the day. The time zone setting considered is `UTC`. If you do not include a time component, a default time value of `T00:00:00` (midnight) in `UTC` is considered. :type end_date: datetime - :param customer_session_ids: Filter the results by a list of customer session IDs. To include multiple IDs, repeat the parameter for each one, for example, `?customerSessionIDs=id1&customerSessionIDs=id2`. The response contains only data associated with the specified sessions. + :param customer_session_ids: Filter the results by a list of customer session IDs. To include multiple IDs, repeat the parameter for each one, for example, `?customerSessionIDs=id1&customerSessionIDs=id2`. The response contains only data associated with the specified sessions. :type customer_session_ids: List[str] - :param transaction_uuids: Filter the results by a list of transaction UUIDs. To include multiple IDs, repeat the parameter for each one, for example, `?transactionUUIDs=uuid1&transactionUUIDs=uuid2`. The response contains only data associated with the specified transactions. + :param transaction_uuids: Filter the results by a list of transaction UUIDs. To include multiple IDs, repeat the parameter for each one, for example, `?transactionUUIDs=uuid1&transactionUUIDs=uuid2`. The response contains only data associated with the specified transactions. :type transaction_uuids: List[str] :param page_size: The number of items in the response. :type page_size: int @@ -7622,7 +7622,7 @@ def _get_reserved_customers_serialize( def link_loyalty_card_to_profile( self, loyalty_program_id: Annotated[StrictInt, Field(description="Identifier of the card-based loyalty program containing the loyalty card. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. ")], - loyalty_card_id: Annotated[str, Field(min_length=4, strict=True, max_length=108, description="Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. ")], + loyalty_card_id: Annotated[str, Field(min_length=4, strict=True, max_length=108, description="Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. **Important**: The loyalty card ID requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `NewCard2026%` as `NewCard2026%25`. ")], loyalty_card_registration: Annotated[LoyaltyCardRegistration, Field(description="body")], _request_timeout: Union[ None, @@ -7643,7 +7643,7 @@ def link_loyalty_card_to_profile( :param loyalty_program_id: Identifier of the card-based loyalty program containing the loyalty card. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. (required) :type loyalty_program_id: int - :param loyalty_card_id: Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. (required) + :param loyalty_card_id: Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. **Important**: The loyalty card ID requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `NewCard2026%` as `NewCard2026%25`. (required) :type loyalty_card_id: str :param loyalty_card_registration: body (required) :type loyalty_card_registration: LoyaltyCardRegistration @@ -7700,7 +7700,7 @@ def link_loyalty_card_to_profile( def link_loyalty_card_to_profile_with_http_info( self, loyalty_program_id: Annotated[StrictInt, Field(description="Identifier of the card-based loyalty program containing the loyalty card. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. ")], - loyalty_card_id: Annotated[str, Field(min_length=4, strict=True, max_length=108, description="Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. ")], + loyalty_card_id: Annotated[str, Field(min_length=4, strict=True, max_length=108, description="Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. **Important**: The loyalty card ID requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `NewCard2026%` as `NewCard2026%25`. ")], loyalty_card_registration: Annotated[LoyaltyCardRegistration, Field(description="body")], _request_timeout: Union[ None, @@ -7721,7 +7721,7 @@ def link_loyalty_card_to_profile_with_http_info( :param loyalty_program_id: Identifier of the card-based loyalty program containing the loyalty card. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. (required) :type loyalty_program_id: int - :param loyalty_card_id: Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. (required) + :param loyalty_card_id: Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. **Important**: The loyalty card ID requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `NewCard2026%` as `NewCard2026%25`. (required) :type loyalty_card_id: str :param loyalty_card_registration: body (required) :type loyalty_card_registration: LoyaltyCardRegistration @@ -7778,7 +7778,7 @@ def link_loyalty_card_to_profile_with_http_info( def link_loyalty_card_to_profile_without_preload_content( self, loyalty_program_id: Annotated[StrictInt, Field(description="Identifier of the card-based loyalty program containing the loyalty card. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. ")], - loyalty_card_id: Annotated[str, Field(min_length=4, strict=True, max_length=108, description="Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. ")], + loyalty_card_id: Annotated[str, Field(min_length=4, strict=True, max_length=108, description="Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. **Important**: The loyalty card ID requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `NewCard2026%` as `NewCard2026%25`. ")], loyalty_card_registration: Annotated[LoyaltyCardRegistration, Field(description="body")], _request_timeout: Union[ None, @@ -7799,7 +7799,7 @@ def link_loyalty_card_to_profile_without_preload_content( :param loyalty_program_id: Identifier of the card-based loyalty program containing the loyalty card. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. (required) :type loyalty_program_id: int - :param loyalty_card_id: Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. (required) + :param loyalty_card_id: Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. **Important**: The loyalty card ID requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `NewCard2026%` as `NewCard2026%25`. (required) :type loyalty_card_id: str :param loyalty_card_registration: body (required) :type loyalty_card_registration: LoyaltyCardRegistration @@ -9422,7 +9422,7 @@ def _track_event_v2_serialize( def unlink_loyalty_card_from_profile( self, loyalty_program_id: Annotated[StrictInt, Field(description="The identifier of the card-based loyalty program containing the loyalty card. You can get this ID using the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. ")], - loyalty_card_id: Annotated[str, Field(min_length=4, strict=True, max_length=108, description="The identifier of the loyalty card. You can get this ID using the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. ")], + loyalty_card_id: Annotated[str, Field(min_length=4, strict=True, max_length=108, description="The identifier of the loyalty card. You can get this ID using the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. **Important**: The loyalty card ID requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `NewCard2026%` as `NewCard2026%25`. ")], loyalty_card_registration: Annotated[LoyaltyCardRegistration, Field(description="body")], _request_timeout: Union[ None, @@ -9443,7 +9443,7 @@ def unlink_loyalty_card_from_profile( :param loyalty_program_id: The identifier of the card-based loyalty program containing the loyalty card. You can get this ID using the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. (required) :type loyalty_program_id: int - :param loyalty_card_id: The identifier of the loyalty card. You can get this ID using the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. (required) + :param loyalty_card_id: The identifier of the loyalty card. You can get this ID using the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. **Important**: The loyalty card ID requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `NewCard2026%` as `NewCard2026%25`. (required) :type loyalty_card_id: str :param loyalty_card_registration: body (required) :type loyalty_card_registration: LoyaltyCardRegistration @@ -9500,7 +9500,7 @@ def unlink_loyalty_card_from_profile( def unlink_loyalty_card_from_profile_with_http_info( self, loyalty_program_id: Annotated[StrictInt, Field(description="The identifier of the card-based loyalty program containing the loyalty card. You can get this ID using the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. ")], - loyalty_card_id: Annotated[str, Field(min_length=4, strict=True, max_length=108, description="The identifier of the loyalty card. You can get this ID using the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. ")], + loyalty_card_id: Annotated[str, Field(min_length=4, strict=True, max_length=108, description="The identifier of the loyalty card. You can get this ID using the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. **Important**: The loyalty card ID requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `NewCard2026%` as `NewCard2026%25`. ")], loyalty_card_registration: Annotated[LoyaltyCardRegistration, Field(description="body")], _request_timeout: Union[ None, @@ -9521,7 +9521,7 @@ def unlink_loyalty_card_from_profile_with_http_info( :param loyalty_program_id: The identifier of the card-based loyalty program containing the loyalty card. You can get this ID using the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. (required) :type loyalty_program_id: int - :param loyalty_card_id: The identifier of the loyalty card. You can get this ID using the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. (required) + :param loyalty_card_id: The identifier of the loyalty card. You can get this ID using the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. **Important**: The loyalty card ID requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `NewCard2026%` as `NewCard2026%25`. (required) :type loyalty_card_id: str :param loyalty_card_registration: body (required) :type loyalty_card_registration: LoyaltyCardRegistration @@ -9578,7 +9578,7 @@ def unlink_loyalty_card_from_profile_with_http_info( def unlink_loyalty_card_from_profile_without_preload_content( self, loyalty_program_id: Annotated[StrictInt, Field(description="The identifier of the card-based loyalty program containing the loyalty card. You can get this ID using the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. ")], - loyalty_card_id: Annotated[str, Field(min_length=4, strict=True, max_length=108, description="The identifier of the loyalty card. You can get this ID using the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. ")], + loyalty_card_id: Annotated[str, Field(min_length=4, strict=True, max_length=108, description="The identifier of the loyalty card. You can get this ID using the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. **Important**: The loyalty card ID requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `NewCard2026%` as `NewCard2026%25`. ")], loyalty_card_registration: Annotated[LoyaltyCardRegistration, Field(description="body")], _request_timeout: Union[ None, @@ -9599,7 +9599,7 @@ def unlink_loyalty_card_from_profile_without_preload_content( :param loyalty_program_id: The identifier of the card-based loyalty program containing the loyalty card. You can get this ID using the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. (required) :type loyalty_program_id: int - :param loyalty_card_id: The identifier of the loyalty card. You can get this ID using the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. (required) + :param loyalty_card_id: The identifier of the loyalty card. You can get this ID using the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. **Important**: The loyalty card ID requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `NewCard2026%` as `NewCard2026%25`. (required) :type loyalty_card_id: str :param loyalty_card_registration: body (required) :type loyalty_card_registration: LoyaltyCardRegistration diff --git a/talon_one/api/management_api.py b/talon_one/api/management_api.py index a49e2ce..00acafa 100644 --- a/talon_one/api/management_api.py +++ b/talon_one/api/management_api.py @@ -439,7 +439,7 @@ def _activate_user_by_email_serialize( @validate_call def add_loyalty_card_points( self, - loyalty_program_id: Annotated[StrictInt, Field(description="Identifier of the card-based loyalty program containing the loyalty card. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. ")], + loyalty_program_id: Annotated[StrictInt, Field(description="Identifier of the card-based loyalty program containing the loyalty card. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. **Important**: The loyalty card ID requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `NewCard2026%` as `NewCard2026%25`. ")], loyalty_card_id: Annotated[str, Field(min_length=4, strict=True, max_length=108, description="Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. ")], add_loyalty_points: Annotated[AddLoyaltyPoints, Field(description="body")], _request_timeout: Union[ @@ -459,7 +459,7 @@ def add_loyalty_card_points( Add points to the given loyalty card in the specified card-based loyalty program. - :param loyalty_program_id: Identifier of the card-based loyalty program containing the loyalty card. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. (required) + :param loyalty_program_id: Identifier of the card-based loyalty program containing the loyalty card. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. **Important**: The loyalty card ID requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `NewCard2026%` as `NewCard2026%25`. (required) :type loyalty_program_id: int :param loyalty_card_id: Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. (required) :type loyalty_card_id: str @@ -517,7 +517,7 @@ def add_loyalty_card_points( @validate_call def add_loyalty_card_points_with_http_info( self, - loyalty_program_id: Annotated[StrictInt, Field(description="Identifier of the card-based loyalty program containing the loyalty card. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. ")], + loyalty_program_id: Annotated[StrictInt, Field(description="Identifier of the card-based loyalty program containing the loyalty card. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. **Important**: The loyalty card ID requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `NewCard2026%` as `NewCard2026%25`. ")], loyalty_card_id: Annotated[str, Field(min_length=4, strict=True, max_length=108, description="Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. ")], add_loyalty_points: Annotated[AddLoyaltyPoints, Field(description="body")], _request_timeout: Union[ @@ -537,7 +537,7 @@ def add_loyalty_card_points_with_http_info( Add points to the given loyalty card in the specified card-based loyalty program. - :param loyalty_program_id: Identifier of the card-based loyalty program containing the loyalty card. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. (required) + :param loyalty_program_id: Identifier of the card-based loyalty program containing the loyalty card. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. **Important**: The loyalty card ID requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `NewCard2026%` as `NewCard2026%25`. (required) :type loyalty_program_id: int :param loyalty_card_id: Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. (required) :type loyalty_card_id: str @@ -595,7 +595,7 @@ def add_loyalty_card_points_with_http_info( @validate_call def add_loyalty_card_points_without_preload_content( self, - loyalty_program_id: Annotated[StrictInt, Field(description="Identifier of the card-based loyalty program containing the loyalty card. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. ")], + loyalty_program_id: Annotated[StrictInt, Field(description="Identifier of the card-based loyalty program containing the loyalty card. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. **Important**: The loyalty card ID requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `NewCard2026%` as `NewCard2026%25`. ")], loyalty_card_id: Annotated[str, Field(min_length=4, strict=True, max_length=108, description="Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. ")], add_loyalty_points: Annotated[AddLoyaltyPoints, Field(description="body")], _request_timeout: Union[ @@ -615,7 +615,7 @@ def add_loyalty_card_points_without_preload_content( Add points to the given loyalty card in the specified card-based loyalty program. - :param loyalty_program_id: Identifier of the card-based loyalty program containing the loyalty card. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. (required) + :param loyalty_program_id: Identifier of the card-based loyalty program containing the loyalty card. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. **Important**: The loyalty card ID requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `NewCard2026%` as `NewCard2026%25`. (required) :type loyalty_program_id: int :param loyalty_card_id: Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. (required) :type loyalty_card_id: str @@ -6671,7 +6671,7 @@ def _deactivate_user_by_email_serialize( def deduct_loyalty_card_points( self, loyalty_program_id: Annotated[StrictInt, Field(description="Identifier of the card-based loyalty program containing the loyalty card. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. ")], - loyalty_card_id: Annotated[str, Field(min_length=4, strict=True, max_length=108, description="Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. ")], + loyalty_card_id: Annotated[str, Field(min_length=4, strict=True, max_length=108, description="Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. **Important**: The loyalty card ID requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `NewCard2026%` as `NewCard2026%25`. ")], deduct_loyalty_points: Annotated[DeductLoyaltyPoints, Field(description="body")], _request_timeout: Union[ None, @@ -6692,7 +6692,7 @@ def deduct_loyalty_card_points( :param loyalty_program_id: Identifier of the card-based loyalty program containing the loyalty card. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. (required) :type loyalty_program_id: int - :param loyalty_card_id: Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. (required) + :param loyalty_card_id: Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. **Important**: The loyalty card ID requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `NewCard2026%` as `NewCard2026%25`. (required) :type loyalty_card_id: str :param deduct_loyalty_points: body (required) :type deduct_loyalty_points: DeductLoyaltyPoints @@ -6749,7 +6749,7 @@ def deduct_loyalty_card_points( def deduct_loyalty_card_points_with_http_info( self, loyalty_program_id: Annotated[StrictInt, Field(description="Identifier of the card-based loyalty program containing the loyalty card. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. ")], - loyalty_card_id: Annotated[str, Field(min_length=4, strict=True, max_length=108, description="Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. ")], + loyalty_card_id: Annotated[str, Field(min_length=4, strict=True, max_length=108, description="Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. **Important**: The loyalty card ID requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `NewCard2026%` as `NewCard2026%25`. ")], deduct_loyalty_points: Annotated[DeductLoyaltyPoints, Field(description="body")], _request_timeout: Union[ None, @@ -6770,7 +6770,7 @@ def deduct_loyalty_card_points_with_http_info( :param loyalty_program_id: Identifier of the card-based loyalty program containing the loyalty card. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. (required) :type loyalty_program_id: int - :param loyalty_card_id: Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. (required) + :param loyalty_card_id: Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. **Important**: The loyalty card ID requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `NewCard2026%` as `NewCard2026%25`. (required) :type loyalty_card_id: str :param deduct_loyalty_points: body (required) :type deduct_loyalty_points: DeductLoyaltyPoints @@ -6827,7 +6827,7 @@ def deduct_loyalty_card_points_with_http_info( def deduct_loyalty_card_points_without_preload_content( self, loyalty_program_id: Annotated[StrictInt, Field(description="Identifier of the card-based loyalty program containing the loyalty card. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. ")], - loyalty_card_id: Annotated[str, Field(min_length=4, strict=True, max_length=108, description="Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. ")], + loyalty_card_id: Annotated[str, Field(min_length=4, strict=True, max_length=108, description="Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. **Important**: The loyalty card ID requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `NewCard2026%` as `NewCard2026%25`. ")], deduct_loyalty_points: Annotated[DeductLoyaltyPoints, Field(description="body")], _request_timeout: Union[ None, @@ -6848,7 +6848,7 @@ def deduct_loyalty_card_points_without_preload_content( :param loyalty_program_id: Identifier of the card-based loyalty program containing the loyalty card. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. (required) :type loyalty_program_id: int - :param loyalty_card_id: Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. (required) + :param loyalty_card_id: Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. **Important**: The loyalty card ID requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `NewCard2026%` as `NewCard2026%25`. (required) :type loyalty_card_id: str :param deduct_loyalty_points: body (required) :type deduct_loyalty_points: DeductLoyaltyPoints @@ -9265,7 +9265,7 @@ def _delete_coupons_serialize( def delete_loyalty_card( self, loyalty_program_id: Annotated[StrictInt, Field(description="Identifier of the card-based loyalty program containing the loyalty card. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. ")], - loyalty_card_id: Annotated[str, Field(min_length=4, strict=True, max_length=108, description="Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. ")], + loyalty_card_id: Annotated[str, Field(min_length=4, strict=True, max_length=108, description="Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. **Important**: The loyalty card ID requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `NewCard2026%` as `NewCard2026%25`. ")], _request_timeout: Union[ None, Annotated[StrictFloat, Field(gt=0)], @@ -9285,7 +9285,7 @@ def delete_loyalty_card( :param loyalty_program_id: Identifier of the card-based loyalty program containing the loyalty card. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. (required) :type loyalty_program_id: int - :param loyalty_card_id: Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. (required) + :param loyalty_card_id: Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. **Important**: The loyalty card ID requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `NewCard2026%` as `NewCard2026%25`. (required) :type loyalty_card_id: str :param _request_timeout: timeout setting for this request. If one number provided, it will be total request @@ -9338,7 +9338,7 @@ def delete_loyalty_card( def delete_loyalty_card_with_http_info( self, loyalty_program_id: Annotated[StrictInt, Field(description="Identifier of the card-based loyalty program containing the loyalty card. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. ")], - loyalty_card_id: Annotated[str, Field(min_length=4, strict=True, max_length=108, description="Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. ")], + loyalty_card_id: Annotated[str, Field(min_length=4, strict=True, max_length=108, description="Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. **Important**: The loyalty card ID requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `NewCard2026%` as `NewCard2026%25`. ")], _request_timeout: Union[ None, Annotated[StrictFloat, Field(gt=0)], @@ -9358,7 +9358,7 @@ def delete_loyalty_card_with_http_info( :param loyalty_program_id: Identifier of the card-based loyalty program containing the loyalty card. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. (required) :type loyalty_program_id: int - :param loyalty_card_id: Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. (required) + :param loyalty_card_id: Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. **Important**: The loyalty card ID requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `NewCard2026%` as `NewCard2026%25`. (required) :type loyalty_card_id: str :param _request_timeout: timeout setting for this request. If one number provided, it will be total request @@ -9411,7 +9411,7 @@ def delete_loyalty_card_with_http_info( def delete_loyalty_card_without_preload_content( self, loyalty_program_id: Annotated[StrictInt, Field(description="Identifier of the card-based loyalty program containing the loyalty card. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. ")], - loyalty_card_id: Annotated[str, Field(min_length=4, strict=True, max_length=108, description="Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. ")], + loyalty_card_id: Annotated[str, Field(min_length=4, strict=True, max_length=108, description="Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. **Important**: The loyalty card ID requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `NewCard2026%` as `NewCard2026%25`. ")], _request_timeout: Union[ None, Annotated[StrictFloat, Field(gt=0)], @@ -9431,7 +9431,7 @@ def delete_loyalty_card_without_preload_content( :param loyalty_program_id: Identifier of the card-based loyalty program containing the loyalty card. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. (required) :type loyalty_program_id: int - :param loyalty_card_id: Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. (required) + :param loyalty_card_id: Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. **Important**: The loyalty card ID requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `NewCard2026%` as `NewCard2026%25`. (required) :type loyalty_card_id: str :param _request_timeout: timeout setting for this request. If one number provided, it will be total request @@ -11758,7 +11758,7 @@ def export_application_campaign_analytics( ) -> str: """Export Application analytics aggregated by campaign - Download a CSV file containing analytics data aggregated by campaign for the campaigns of an Application. **Tip:** If the exported CSV file is too large to view, you can [split it into multiple files](https://www.makeuseof.com/tag/how-to-split-a-huge-csv-excel-workbook-into-seperate-files/). The CSV file contains the following columns: - `campaign_id`: The ID of the campaign. This column also contains labels for the [total and influenced values](https://docs.talon.one/docs/product/campaigns/analytics/application-dashboard#understanding-the-analytics-data). - `start_date`: The start of the aggregation time frame in UTC. - `end_date`: The end of the aggregation time frame in UTC. - `revenue`: The total, pre-discount value of all items purchased in a customer session. - `sessions`: The number of all closed sessions. - `average_session_value`: The average customer session value, calculated by dividing the revenue value by the number of sessions. - `average_items_per_session`: The number of items from sessions divided by the number of sessions. - `coupons`: The number of times a coupon was successfully redeemed in sessions. - `discounts`: The total value of discounts given for cart items in sessions. + Download a CSV file containing analytics data aggregated by campaign for the campaigns of an Application. **Tip:** If the exported CSV file is too large to view, you can [split it into multiple files](https://www.makeuseof.com/tag/how-to-split-a-huge-csv-excel-workbook-into-seperate-files/). The CSV file contains the following columns: - `campaign_id`: The ID of the campaign. This column also contains labels for the [total and influenced values](https://docs.talon.one/docs/product/campaigns/analytics/application-dashboard#display-the-analytics-data). - `start_date`: The start of the aggregation time frame in UTC. - `end_date`: The end of the aggregation time frame in UTC. - `revenue`: The total, pre-discount value of all items purchased in a customer session. - `sessions`: The number of all closed sessions. - `average_session_value`: The average customer session value, calculated by dividing the revenue value by the number of sessions. - `average_items_per_session`: The number of items from sessions divided by the number of sessions. - `coupons`: The number of times a coupon was successfully redeemed in sessions. - `discounts`: The total value of discounts given for cart items in sessions. :param application_id: The ID of the Application. It is displayed in your Talon.One deployment URL. (required) :type application_id: int @@ -11837,7 +11837,7 @@ def export_application_campaign_analytics_with_http_info( ) -> ApiResponse[str]: """Export Application analytics aggregated by campaign - Download a CSV file containing analytics data aggregated by campaign for the campaigns of an Application. **Tip:** If the exported CSV file is too large to view, you can [split it into multiple files](https://www.makeuseof.com/tag/how-to-split-a-huge-csv-excel-workbook-into-seperate-files/). The CSV file contains the following columns: - `campaign_id`: The ID of the campaign. This column also contains labels for the [total and influenced values](https://docs.talon.one/docs/product/campaigns/analytics/application-dashboard#understanding-the-analytics-data). - `start_date`: The start of the aggregation time frame in UTC. - `end_date`: The end of the aggregation time frame in UTC. - `revenue`: The total, pre-discount value of all items purchased in a customer session. - `sessions`: The number of all closed sessions. - `average_session_value`: The average customer session value, calculated by dividing the revenue value by the number of sessions. - `average_items_per_session`: The number of items from sessions divided by the number of sessions. - `coupons`: The number of times a coupon was successfully redeemed in sessions. - `discounts`: The total value of discounts given for cart items in sessions. + Download a CSV file containing analytics data aggregated by campaign for the campaigns of an Application. **Tip:** If the exported CSV file is too large to view, you can [split it into multiple files](https://www.makeuseof.com/tag/how-to-split-a-huge-csv-excel-workbook-into-seperate-files/). The CSV file contains the following columns: - `campaign_id`: The ID of the campaign. This column also contains labels for the [total and influenced values](https://docs.talon.one/docs/product/campaigns/analytics/application-dashboard#display-the-analytics-data). - `start_date`: The start of the aggregation time frame in UTC. - `end_date`: The end of the aggregation time frame in UTC. - `revenue`: The total, pre-discount value of all items purchased in a customer session. - `sessions`: The number of all closed sessions. - `average_session_value`: The average customer session value, calculated by dividing the revenue value by the number of sessions. - `average_items_per_session`: The number of items from sessions divided by the number of sessions. - `coupons`: The number of times a coupon was successfully redeemed in sessions. - `discounts`: The total value of discounts given for cart items in sessions. :param application_id: The ID of the Application. It is displayed in your Talon.One deployment URL. (required) :type application_id: int @@ -11916,7 +11916,7 @@ def export_application_campaign_analytics_without_preload_content( ) -> RESTResponseType: """Export Application analytics aggregated by campaign - Download a CSV file containing analytics data aggregated by campaign for the campaigns of an Application. **Tip:** If the exported CSV file is too large to view, you can [split it into multiple files](https://www.makeuseof.com/tag/how-to-split-a-huge-csv-excel-workbook-into-seperate-files/). The CSV file contains the following columns: - `campaign_id`: The ID of the campaign. This column also contains labels for the [total and influenced values](https://docs.talon.one/docs/product/campaigns/analytics/application-dashboard#understanding-the-analytics-data). - `start_date`: The start of the aggregation time frame in UTC. - `end_date`: The end of the aggregation time frame in UTC. - `revenue`: The total, pre-discount value of all items purchased in a customer session. - `sessions`: The number of all closed sessions. - `average_session_value`: The average customer session value, calculated by dividing the revenue value by the number of sessions. - `average_items_per_session`: The number of items from sessions divided by the number of sessions. - `coupons`: The number of times a coupon was successfully redeemed in sessions. - `discounts`: The total value of discounts given for cart items in sessions. + Download a CSV file containing analytics data aggregated by campaign for the campaigns of an Application. **Tip:** If the exported CSV file is too large to view, you can [split it into multiple files](https://www.makeuseof.com/tag/how-to-split-a-huge-csv-excel-workbook-into-seperate-files/). The CSV file contains the following columns: - `campaign_id`: The ID of the campaign. This column also contains labels for the [total and influenced values](https://docs.talon.one/docs/product/campaigns/analytics/application-dashboard#display-the-analytics-data). - `start_date`: The start of the aggregation time frame in UTC. - `end_date`: The end of the aggregation time frame in UTC. - `revenue`: The total, pre-discount value of all items purchased in a customer session. - `sessions`: The number of all closed sessions. - `average_session_value`: The average customer session value, calculated by dividing the revenue value by the number of sessions. - `average_items_per_session`: The number of items from sessions divided by the number of sessions. - `coupons`: The number of times a coupon was successfully redeemed in sessions. - `discounts`: The total value of discounts given for cart items in sessions. :param application_id: The ID of the Application. It is displayed in your Talon.One deployment URL. (required) :type application_id: int @@ -15394,7 +15394,7 @@ def export_loyalty_card_balances( ) -> str: """Export all card transaction logs - Download a CSV file containing the balances of all cards in the loyalty program. **Tip:** If the exported CSV file is too large to view, you can [split it into multiple files](https://www.makeuseof.com/tag/how-to-split-a-huge-csv-excel-workbook-into-seperate-files/). The CSV file contains the following columns: - `loyaltyProgramID`: The ID of the loyalty program. - `loyaltySubledger`: The name of the subdleger, when applicatble. - `cardIdentifier`: The alphanumeric identifier of the loyalty card. - `cardState`:The state of the loyalty card. It can be `active` or `inactive`. - `currentBalance`: The current point balance. - `pendingBalance`: The number of pending points. - `expiredBalance`: The number of expired points. - `spentBalance`: The number of spent points. + Download a CSV file containing the balances of all cards in the loyalty program. **Tip:** If the exported CSV file is too large to view, you can [split it into multiple files](https://www.makeuseof.com/tag/how-to-split-a-huge-csv-excel-workbook-into-seperate-files/). The CSV file contains the following columns: - `loyaltyProgramID`: The ID of the loyalty program. - `loyaltySubledger`: The name of the subdleger, when applicatble. - `cardIdentifier`: The identifier of the loyalty card, which must match the regular expression `^[A-Za-z0-9._%+@-]+$`. - `cardState`:The state of the loyalty card. It can be `active` or `inactive`. - `currentBalance`: The current point balance. - `pendingBalance`: The number of pending points. - `expiredBalance`: The number of expired points. - `spentBalance`: The number of spent points. :param loyalty_program_id: Identifier of the card-based loyalty program containing the loyalty card. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. (required) :type loyalty_program_id: int @@ -15467,7 +15467,7 @@ def export_loyalty_card_balances_with_http_info( ) -> ApiResponse[str]: """Export all card transaction logs - Download a CSV file containing the balances of all cards in the loyalty program. **Tip:** If the exported CSV file is too large to view, you can [split it into multiple files](https://www.makeuseof.com/tag/how-to-split-a-huge-csv-excel-workbook-into-seperate-files/). The CSV file contains the following columns: - `loyaltyProgramID`: The ID of the loyalty program. - `loyaltySubledger`: The name of the subdleger, when applicatble. - `cardIdentifier`: The alphanumeric identifier of the loyalty card. - `cardState`:The state of the loyalty card. It can be `active` or `inactive`. - `currentBalance`: The current point balance. - `pendingBalance`: The number of pending points. - `expiredBalance`: The number of expired points. - `spentBalance`: The number of spent points. + Download a CSV file containing the balances of all cards in the loyalty program. **Tip:** If the exported CSV file is too large to view, you can [split it into multiple files](https://www.makeuseof.com/tag/how-to-split-a-huge-csv-excel-workbook-into-seperate-files/). The CSV file contains the following columns: - `loyaltyProgramID`: The ID of the loyalty program. - `loyaltySubledger`: The name of the subdleger, when applicatble. - `cardIdentifier`: The identifier of the loyalty card, which must match the regular expression `^[A-Za-z0-9._%+@-]+$`. - `cardState`:The state of the loyalty card. It can be `active` or `inactive`. - `currentBalance`: The current point balance. - `pendingBalance`: The number of pending points. - `expiredBalance`: The number of expired points. - `spentBalance`: The number of spent points. :param loyalty_program_id: Identifier of the card-based loyalty program containing the loyalty card. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. (required) :type loyalty_program_id: int @@ -15540,7 +15540,7 @@ def export_loyalty_card_balances_without_preload_content( ) -> RESTResponseType: """Export all card transaction logs - Download a CSV file containing the balances of all cards in the loyalty program. **Tip:** If the exported CSV file is too large to view, you can [split it into multiple files](https://www.makeuseof.com/tag/how-to-split-a-huge-csv-excel-workbook-into-seperate-files/). The CSV file contains the following columns: - `loyaltyProgramID`: The ID of the loyalty program. - `loyaltySubledger`: The name of the subdleger, when applicatble. - `cardIdentifier`: The alphanumeric identifier of the loyalty card. - `cardState`:The state of the loyalty card. It can be `active` or `inactive`. - `currentBalance`: The current point balance. - `pendingBalance`: The number of pending points. - `expiredBalance`: The number of expired points. - `spentBalance`: The number of spent points. + Download a CSV file containing the balances of all cards in the loyalty program. **Tip:** If the exported CSV file is too large to view, you can [split it into multiple files](https://www.makeuseof.com/tag/how-to-split-a-huge-csv-excel-workbook-into-seperate-files/). The CSV file contains the following columns: - `loyaltyProgramID`: The ID of the loyalty program. - `loyaltySubledger`: The name of the subdleger, when applicatble. - `cardIdentifier`: The identifier of the loyalty card, which must match the regular expression `^[A-Za-z0-9._%+@-]+$`. - `cardState`:The state of the loyalty card. It can be `active` or `inactive`. - `currentBalance`: The current point balance. - `pendingBalance`: The number of pending points. - `expiredBalance`: The number of expired points. - `spentBalance`: The number of spent points. :param loyalty_program_id: Identifier of the card-based loyalty program containing the loyalty card. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. (required) :type loyalty_program_id: int @@ -15673,7 +15673,7 @@ def _export_loyalty_card_balances_serialize( def export_loyalty_card_ledger( self, loyalty_program_id: Annotated[StrictInt, Field(description="Identifier of the card-based loyalty program containing the loyalty card. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. ")], - loyalty_card_id: Annotated[str, Field(min_length=4, strict=True, max_length=108, description="Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. ")], + loyalty_card_id: Annotated[str, Field(min_length=4, strict=True, max_length=108, description="Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. **Important**: The loyalty card ID requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `NewCard2026%` as `NewCard2026%25`. ")], range_start: Annotated[datetime, Field(description="Only return results from after this timestamp. **Note:** - This must be an RFC3339 timestamp string. - You can include a time component in your string, for example, `T23:59:59` to specify the end of the day. The time zone setting considered is `UTC`. If you do not include a time component, a default time value of `T00:00:00` (midnight) in `UTC` is considered. ")], range_end: Annotated[datetime, Field(description="Only return results from before this timestamp. **Note:** - This must be an RFC3339 timestamp string. - You can include a time component in your string, for example, `T23:59:59` to specify the end of the day. The time zone setting considered is `UTC`. If you do not include a time component, a default time value of `T00:00:00` (midnight) in `UTC` is considered. ")], date_format: Annotated[Optional[StrictStr], Field(description="Determines the format of dates in the export document.")] = None, @@ -15696,7 +15696,7 @@ def export_loyalty_card_ledger( :param loyalty_program_id: Identifier of the card-based loyalty program containing the loyalty card. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. (required) :type loyalty_program_id: int - :param loyalty_card_id: Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. (required) + :param loyalty_card_id: Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. **Important**: The loyalty card ID requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `NewCard2026%` as `NewCard2026%25`. (required) :type loyalty_card_id: str :param range_start: Only return results from after this timestamp. **Note:** - This must be an RFC3339 timestamp string. - You can include a time component in your string, for example, `T23:59:59` to specify the end of the day. The time zone setting considered is `UTC`. If you do not include a time component, a default time value of `T00:00:00` (midnight) in `UTC` is considered. (required) :type range_start: datetime @@ -15758,7 +15758,7 @@ def export_loyalty_card_ledger( def export_loyalty_card_ledger_with_http_info( self, loyalty_program_id: Annotated[StrictInt, Field(description="Identifier of the card-based loyalty program containing the loyalty card. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. ")], - loyalty_card_id: Annotated[str, Field(min_length=4, strict=True, max_length=108, description="Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. ")], + loyalty_card_id: Annotated[str, Field(min_length=4, strict=True, max_length=108, description="Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. **Important**: The loyalty card ID requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `NewCard2026%` as `NewCard2026%25`. ")], range_start: Annotated[datetime, Field(description="Only return results from after this timestamp. **Note:** - This must be an RFC3339 timestamp string. - You can include a time component in your string, for example, `T23:59:59` to specify the end of the day. The time zone setting considered is `UTC`. If you do not include a time component, a default time value of `T00:00:00` (midnight) in `UTC` is considered. ")], range_end: Annotated[datetime, Field(description="Only return results from before this timestamp. **Note:** - This must be an RFC3339 timestamp string. - You can include a time component in your string, for example, `T23:59:59` to specify the end of the day. The time zone setting considered is `UTC`. If you do not include a time component, a default time value of `T00:00:00` (midnight) in `UTC` is considered. ")], date_format: Annotated[Optional[StrictStr], Field(description="Determines the format of dates in the export document.")] = None, @@ -15781,7 +15781,7 @@ def export_loyalty_card_ledger_with_http_info( :param loyalty_program_id: Identifier of the card-based loyalty program containing the loyalty card. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. (required) :type loyalty_program_id: int - :param loyalty_card_id: Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. (required) + :param loyalty_card_id: Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. **Important**: The loyalty card ID requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `NewCard2026%` as `NewCard2026%25`. (required) :type loyalty_card_id: str :param range_start: Only return results from after this timestamp. **Note:** - This must be an RFC3339 timestamp string. - You can include a time component in your string, for example, `T23:59:59` to specify the end of the day. The time zone setting considered is `UTC`. If you do not include a time component, a default time value of `T00:00:00` (midnight) in `UTC` is considered. (required) :type range_start: datetime @@ -15843,7 +15843,7 @@ def export_loyalty_card_ledger_with_http_info( def export_loyalty_card_ledger_without_preload_content( self, loyalty_program_id: Annotated[StrictInt, Field(description="Identifier of the card-based loyalty program containing the loyalty card. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. ")], - loyalty_card_id: Annotated[str, Field(min_length=4, strict=True, max_length=108, description="Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. ")], + loyalty_card_id: Annotated[str, Field(min_length=4, strict=True, max_length=108, description="Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. **Important**: The loyalty card ID requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `NewCard2026%` as `NewCard2026%25`. ")], range_start: Annotated[datetime, Field(description="Only return results from after this timestamp. **Note:** - This must be an RFC3339 timestamp string. - You can include a time component in your string, for example, `T23:59:59` to specify the end of the day. The time zone setting considered is `UTC`. If you do not include a time component, a default time value of `T00:00:00` (midnight) in `UTC` is considered. ")], range_end: Annotated[datetime, Field(description="Only return results from before this timestamp. **Note:** - This must be an RFC3339 timestamp string. - You can include a time component in your string, for example, `T23:59:59` to specify the end of the day. The time zone setting considered is `UTC`. If you do not include a time component, a default time value of `T00:00:00` (midnight) in `UTC` is considered. ")], date_format: Annotated[Optional[StrictStr], Field(description="Determines the format of dates in the export document.")] = None, @@ -15866,7 +15866,7 @@ def export_loyalty_card_ledger_without_preload_content( :param loyalty_program_id: Identifier of the card-based loyalty program containing the loyalty card. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. (required) :type loyalty_program_id: int - :param loyalty_card_id: Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. (required) + :param loyalty_card_id: Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. **Important**: The loyalty card ID requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `NewCard2026%` as `NewCard2026%25`. (required) :type loyalty_card_id: str :param range_start: Only return results from after this timestamp. **Note:** - This must be an RFC3339 timestamp string. - You can include a time component in your string, for example, `T23:59:59` to specify the end of the day. The time zone setting considered is `UTC`. If you do not include a time component, a default time value of `T00:00:00` (midnight) in `UTC` is considered. (required) :type range_start: datetime @@ -23055,14 +23055,15 @@ def get_application_sessions( page_size: Annotated[Optional[Annotated[int, Field(le=1000, strict=True, ge=1)]], Field(description="The number of items in the response.")] = None, skip: Annotated[Optional[StrictInt], Field(description="The number of items to skip when paging through large result sets.")] = None, sort: Annotated[Optional[StrictStr], Field(description="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. ")] = None, - profile: Annotated[Optional[StrictStr], Field(description="Profile integration ID filter for sessions. Must be exact match.")] = None, + partial_match: Annotated[Optional[StrictBool], Field(description="Enables partial matching for a single text search field. When enabled, the search term matches anywhere within the field value (case-insensitive). Minimum 3 characters required for partial matches; shorter inputs automatically fall back to exact match. **Note:** Use with one of: `integrationId`, `profile`, `coupon`, `referral`, or `storeIntegrationId`.")] = None, + profile: Annotated[Optional[StrictStr], Field(description="Filter by sessions with this profile integration ID. By default, requires exact match. Use `partialMatch=true` to search for partial matches (minimum 3 characters).")] = None, state: Annotated[Optional[StrictStr], Field(description="Filter by sessions with this state. Must be exact match.")] = None, created_before: Annotated[Optional[datetime], Field(description="Only return events created before this date. You can use any time zone setting. Talon.One will convert to UTC internally.")] = None, created_after: Annotated[Optional[datetime], Field(description="Only return events created after this date. You can use any time zone setting. Talon.One will convert to UTC internally.")] = None, - coupon: Annotated[Optional[StrictStr], Field(description="Filter by sessions with this coupon. Must be exact match.")] = None, - referral: Annotated[Optional[StrictStr], Field(description="Filter by sessions with this referral. Must be exact match.")] = None, - integration_id: Annotated[Optional[StrictStr], Field(description="Filter by sessions with this integration ID. Must be exact match.")] = None, - store_integration_id: Annotated[Optional[StrictStr], Field(description="The integration ID of the store. You choose this ID when you create a store.")] = None, + coupon: Annotated[Optional[StrictStr], Field(description="Filter by sessions with this coupon. By default, requires exact match. Use `partialMatch=true` to search for partial matches (minimum 3 characters).")] = None, + referral: Annotated[Optional[StrictStr], Field(description="Filter by sessions with this referral. By default, requires exact match. Use `partialMatch=true` to search for partial matches (minimum 3 characters).")] = None, + integration_id: Annotated[Optional[StrictStr], Field(description="Filter by sessions with this integration ID. By default, requires exact match. Use `partialMatch=true` to search for partial matches (minimum 3 characters).")] = None, + store_integration_id: Annotated[Optional[StrictStr], Field(description="The integration ID of the store. You choose this ID when you create a store. By default, requires exact match. Use `partialMatch=true` to search for partial matches (minimum 3 characters).")] = None, _request_timeout: Union[ None, Annotated[StrictFloat, Field(gt=0)], @@ -23088,7 +23089,9 @@ def get_application_sessions( :type skip: int :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. :type sort: str - :param profile: Profile integration ID filter for sessions. Must be exact match. + :param partial_match: Enables partial matching for a single text search field. When enabled, the search term matches anywhere within the field value (case-insensitive). Minimum 3 characters required for partial matches; shorter inputs automatically fall back to exact match. **Note:** Use with one of: `integrationId`, `profile`, `coupon`, `referral`, or `storeIntegrationId`. + :type partial_match: bool + :param profile: Filter by sessions with this profile integration ID. By default, requires exact match. Use `partialMatch=true` to search for partial matches (minimum 3 characters). :type profile: str :param state: Filter by sessions with this state. Must be exact match. :type state: str @@ -23096,13 +23099,13 @@ def get_application_sessions( :type created_before: datetime :param created_after: Only return events created after this date. You can use any time zone setting. Talon.One will convert to UTC internally. :type created_after: datetime - :param coupon: Filter by sessions with this coupon. Must be exact match. + :param coupon: Filter by sessions with this coupon. By default, requires exact match. Use `partialMatch=true` to search for partial matches (minimum 3 characters). :type coupon: str - :param referral: Filter by sessions with this referral. Must be exact match. + :param referral: Filter by sessions with this referral. By default, requires exact match. Use `partialMatch=true` to search for partial matches (minimum 3 characters). :type referral: str - :param integration_id: Filter by sessions with this integration ID. Must be exact match. + :param integration_id: Filter by sessions with this integration ID. By default, requires exact match. Use `partialMatch=true` to search for partial matches (minimum 3 characters). :type integration_id: str - :param store_integration_id: The integration ID of the store. You choose this ID when you create a store. + :param store_integration_id: The integration ID of the store. You choose this ID when you create a store. By default, requires exact match. Use `partialMatch=true` to search for partial matches (minimum 3 characters). :type store_integration_id: str :param _request_timeout: timeout setting for this request. If one number provided, it will be total request @@ -23131,6 +23134,7 @@ def get_application_sessions( page_size=page_size, skip=skip, sort=sort, + partial_match=partial_match, profile=profile, state=state, created_before=created_before, @@ -23166,14 +23170,15 @@ def get_application_sessions_with_http_info( page_size: Annotated[Optional[Annotated[int, Field(le=1000, strict=True, ge=1)]], Field(description="The number of items in the response.")] = None, skip: Annotated[Optional[StrictInt], Field(description="The number of items to skip when paging through large result sets.")] = None, sort: Annotated[Optional[StrictStr], Field(description="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. ")] = None, - profile: Annotated[Optional[StrictStr], Field(description="Profile integration ID filter for sessions. Must be exact match.")] = None, + partial_match: Annotated[Optional[StrictBool], Field(description="Enables partial matching for a single text search field. When enabled, the search term matches anywhere within the field value (case-insensitive). Minimum 3 characters required for partial matches; shorter inputs automatically fall back to exact match. **Note:** Use with one of: `integrationId`, `profile`, `coupon`, `referral`, or `storeIntegrationId`.")] = None, + profile: Annotated[Optional[StrictStr], Field(description="Filter by sessions with this profile integration ID. By default, requires exact match. Use `partialMatch=true` to search for partial matches (minimum 3 characters).")] = None, state: Annotated[Optional[StrictStr], Field(description="Filter by sessions with this state. Must be exact match.")] = None, created_before: Annotated[Optional[datetime], Field(description="Only return events created before this date. You can use any time zone setting. Talon.One will convert to UTC internally.")] = None, created_after: Annotated[Optional[datetime], Field(description="Only return events created after this date. You can use any time zone setting. Talon.One will convert to UTC internally.")] = None, - coupon: Annotated[Optional[StrictStr], Field(description="Filter by sessions with this coupon. Must be exact match.")] = None, - referral: Annotated[Optional[StrictStr], Field(description="Filter by sessions with this referral. Must be exact match.")] = None, - integration_id: Annotated[Optional[StrictStr], Field(description="Filter by sessions with this integration ID. Must be exact match.")] = None, - store_integration_id: Annotated[Optional[StrictStr], Field(description="The integration ID of the store. You choose this ID when you create a store.")] = None, + coupon: Annotated[Optional[StrictStr], Field(description="Filter by sessions with this coupon. By default, requires exact match. Use `partialMatch=true` to search for partial matches (minimum 3 characters).")] = None, + referral: Annotated[Optional[StrictStr], Field(description="Filter by sessions with this referral. By default, requires exact match. Use `partialMatch=true` to search for partial matches (minimum 3 characters).")] = None, + integration_id: Annotated[Optional[StrictStr], Field(description="Filter by sessions with this integration ID. By default, requires exact match. Use `partialMatch=true` to search for partial matches (minimum 3 characters).")] = None, + store_integration_id: Annotated[Optional[StrictStr], Field(description="The integration ID of the store. You choose this ID when you create a store. By default, requires exact match. Use `partialMatch=true` to search for partial matches (minimum 3 characters).")] = None, _request_timeout: Union[ None, Annotated[StrictFloat, Field(gt=0)], @@ -23199,7 +23204,9 @@ def get_application_sessions_with_http_info( :type skip: int :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. :type sort: str - :param profile: Profile integration ID filter for sessions. Must be exact match. + :param partial_match: Enables partial matching for a single text search field. When enabled, the search term matches anywhere within the field value (case-insensitive). Minimum 3 characters required for partial matches; shorter inputs automatically fall back to exact match. **Note:** Use with one of: `integrationId`, `profile`, `coupon`, `referral`, or `storeIntegrationId`. + :type partial_match: bool + :param profile: Filter by sessions with this profile integration ID. By default, requires exact match. Use `partialMatch=true` to search for partial matches (minimum 3 characters). :type profile: str :param state: Filter by sessions with this state. Must be exact match. :type state: str @@ -23207,13 +23214,13 @@ def get_application_sessions_with_http_info( :type created_before: datetime :param created_after: Only return events created after this date. You can use any time zone setting. Talon.One will convert to UTC internally. :type created_after: datetime - :param coupon: Filter by sessions with this coupon. Must be exact match. + :param coupon: Filter by sessions with this coupon. By default, requires exact match. Use `partialMatch=true` to search for partial matches (minimum 3 characters). :type coupon: str - :param referral: Filter by sessions with this referral. Must be exact match. + :param referral: Filter by sessions with this referral. By default, requires exact match. Use `partialMatch=true` to search for partial matches (minimum 3 characters). :type referral: str - :param integration_id: Filter by sessions with this integration ID. Must be exact match. + :param integration_id: Filter by sessions with this integration ID. By default, requires exact match. Use `partialMatch=true` to search for partial matches (minimum 3 characters). :type integration_id: str - :param store_integration_id: The integration ID of the store. You choose this ID when you create a store. + :param store_integration_id: The integration ID of the store. You choose this ID when you create a store. By default, requires exact match. Use `partialMatch=true` to search for partial matches (minimum 3 characters). :type store_integration_id: str :param _request_timeout: timeout setting for this request. If one number provided, it will be total request @@ -23242,6 +23249,7 @@ def get_application_sessions_with_http_info( page_size=page_size, skip=skip, sort=sort, + partial_match=partial_match, profile=profile, state=state, created_before=created_before, @@ -23277,14 +23285,15 @@ def get_application_sessions_without_preload_content( page_size: Annotated[Optional[Annotated[int, Field(le=1000, strict=True, ge=1)]], Field(description="The number of items in the response.")] = None, skip: Annotated[Optional[StrictInt], Field(description="The number of items to skip when paging through large result sets.")] = None, sort: Annotated[Optional[StrictStr], Field(description="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. ")] = None, - profile: Annotated[Optional[StrictStr], Field(description="Profile integration ID filter for sessions. Must be exact match.")] = None, + partial_match: Annotated[Optional[StrictBool], Field(description="Enables partial matching for a single text search field. When enabled, the search term matches anywhere within the field value (case-insensitive). Minimum 3 characters required for partial matches; shorter inputs automatically fall back to exact match. **Note:** Use with one of: `integrationId`, `profile`, `coupon`, `referral`, or `storeIntegrationId`.")] = None, + profile: Annotated[Optional[StrictStr], Field(description="Filter by sessions with this profile integration ID. By default, requires exact match. Use `partialMatch=true` to search for partial matches (minimum 3 characters).")] = None, state: Annotated[Optional[StrictStr], Field(description="Filter by sessions with this state. Must be exact match.")] = None, created_before: Annotated[Optional[datetime], Field(description="Only return events created before this date. You can use any time zone setting. Talon.One will convert to UTC internally.")] = None, created_after: Annotated[Optional[datetime], Field(description="Only return events created after this date. You can use any time zone setting. Talon.One will convert to UTC internally.")] = None, - coupon: Annotated[Optional[StrictStr], Field(description="Filter by sessions with this coupon. Must be exact match.")] = None, - referral: Annotated[Optional[StrictStr], Field(description="Filter by sessions with this referral. Must be exact match.")] = None, - integration_id: Annotated[Optional[StrictStr], Field(description="Filter by sessions with this integration ID. Must be exact match.")] = None, - store_integration_id: Annotated[Optional[StrictStr], Field(description="The integration ID of the store. You choose this ID when you create a store.")] = None, + coupon: Annotated[Optional[StrictStr], Field(description="Filter by sessions with this coupon. By default, requires exact match. Use `partialMatch=true` to search for partial matches (minimum 3 characters).")] = None, + referral: Annotated[Optional[StrictStr], Field(description="Filter by sessions with this referral. By default, requires exact match. Use `partialMatch=true` to search for partial matches (minimum 3 characters).")] = None, + integration_id: Annotated[Optional[StrictStr], Field(description="Filter by sessions with this integration ID. By default, requires exact match. Use `partialMatch=true` to search for partial matches (minimum 3 characters).")] = None, + store_integration_id: Annotated[Optional[StrictStr], Field(description="The integration ID of the store. You choose this ID when you create a store. By default, requires exact match. Use `partialMatch=true` to search for partial matches (minimum 3 characters).")] = None, _request_timeout: Union[ None, Annotated[StrictFloat, Field(gt=0)], @@ -23310,7 +23319,9 @@ def get_application_sessions_without_preload_content( :type skip: int :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. :type sort: str - :param profile: Profile integration ID filter for sessions. Must be exact match. + :param partial_match: Enables partial matching for a single text search field. When enabled, the search term matches anywhere within the field value (case-insensitive). Minimum 3 characters required for partial matches; shorter inputs automatically fall back to exact match. **Note:** Use with one of: `integrationId`, `profile`, `coupon`, `referral`, or `storeIntegrationId`. + :type partial_match: bool + :param profile: Filter by sessions with this profile integration ID. By default, requires exact match. Use `partialMatch=true` to search for partial matches (minimum 3 characters). :type profile: str :param state: Filter by sessions with this state. Must be exact match. :type state: str @@ -23318,13 +23329,13 @@ def get_application_sessions_without_preload_content( :type created_before: datetime :param created_after: Only return events created after this date. You can use any time zone setting. Talon.One will convert to UTC internally. :type created_after: datetime - :param coupon: Filter by sessions with this coupon. Must be exact match. + :param coupon: Filter by sessions with this coupon. By default, requires exact match. Use `partialMatch=true` to search for partial matches (minimum 3 characters). :type coupon: str - :param referral: Filter by sessions with this referral. Must be exact match. + :param referral: Filter by sessions with this referral. By default, requires exact match. Use `partialMatch=true` to search for partial matches (minimum 3 characters). :type referral: str - :param integration_id: Filter by sessions with this integration ID. Must be exact match. + :param integration_id: Filter by sessions with this integration ID. By default, requires exact match. Use `partialMatch=true` to search for partial matches (minimum 3 characters). :type integration_id: str - :param store_integration_id: The integration ID of the store. You choose this ID when you create a store. + :param store_integration_id: The integration ID of the store. You choose this ID when you create a store. By default, requires exact match. Use `partialMatch=true` to search for partial matches (minimum 3 characters). :type store_integration_id: str :param _request_timeout: timeout setting for this request. If one number provided, it will be total request @@ -23353,6 +23364,7 @@ def get_application_sessions_without_preload_content( page_size=page_size, skip=skip, sort=sort, + partial_match=partial_match, profile=profile, state=state, created_before=created_before, @@ -23383,6 +23395,7 @@ def _get_application_sessions_serialize( page_size, skip, sort, + partial_match, profile, state, created_before, @@ -23427,6 +23440,10 @@ def _get_application_sessions_serialize( _query_params.append(('sort', sort)) + if partial_match is not None: + + _query_params.append(('partialMatch', partial_match)) + if profile is not None: _query_params.append(('profile', profile)) @@ -33217,7 +33234,7 @@ def _get_exports_serialize( def get_loyalty_card( self, loyalty_program_id: Annotated[StrictInt, Field(description="Identifier of the card-based loyalty program containing the loyalty card. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. ")], - loyalty_card_id: Annotated[str, Field(min_length=4, strict=True, max_length=108, description="Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. ")], + loyalty_card_id: Annotated[str, Field(min_length=4, strict=True, max_length=108, description="Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. **Important**: The loyalty card ID requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `NewCard2026%` as `NewCard2026%25`. ")], _request_timeout: Union[ None, Annotated[StrictFloat, Field(gt=0)], @@ -33237,7 +33254,7 @@ def get_loyalty_card( :param loyalty_program_id: Identifier of the card-based loyalty program containing the loyalty card. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. (required) :type loyalty_program_id: int - :param loyalty_card_id: Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. (required) + :param loyalty_card_id: Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. **Important**: The loyalty card ID requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `NewCard2026%` as `NewCard2026%25`. (required) :type loyalty_card_id: str :param _request_timeout: timeout setting for this request. If one number provided, it will be total request @@ -33291,7 +33308,7 @@ def get_loyalty_card( def get_loyalty_card_with_http_info( self, loyalty_program_id: Annotated[StrictInt, Field(description="Identifier of the card-based loyalty program containing the loyalty card. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. ")], - loyalty_card_id: Annotated[str, Field(min_length=4, strict=True, max_length=108, description="Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. ")], + loyalty_card_id: Annotated[str, Field(min_length=4, strict=True, max_length=108, description="Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. **Important**: The loyalty card ID requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `NewCard2026%` as `NewCard2026%25`. ")], _request_timeout: Union[ None, Annotated[StrictFloat, Field(gt=0)], @@ -33311,7 +33328,7 @@ def get_loyalty_card_with_http_info( :param loyalty_program_id: Identifier of the card-based loyalty program containing the loyalty card. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. (required) :type loyalty_program_id: int - :param loyalty_card_id: Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. (required) + :param loyalty_card_id: Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. **Important**: The loyalty card ID requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `NewCard2026%` as `NewCard2026%25`. (required) :type loyalty_card_id: str :param _request_timeout: timeout setting for this request. If one number provided, it will be total request @@ -33365,7 +33382,7 @@ def get_loyalty_card_with_http_info( def get_loyalty_card_without_preload_content( self, loyalty_program_id: Annotated[StrictInt, Field(description="Identifier of the card-based loyalty program containing the loyalty card. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. ")], - loyalty_card_id: Annotated[str, Field(min_length=4, strict=True, max_length=108, description="Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. ")], + loyalty_card_id: Annotated[str, Field(min_length=4, strict=True, max_length=108, description="Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. **Important**: The loyalty card ID requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `NewCard2026%` as `NewCard2026%25`. ")], _request_timeout: Union[ None, Annotated[StrictFloat, Field(gt=0)], @@ -33385,7 +33402,7 @@ def get_loyalty_card_without_preload_content( :param loyalty_program_id: Identifier of the card-based loyalty program containing the loyalty card. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. (required) :type loyalty_program_id: int - :param loyalty_card_id: Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. (required) + :param loyalty_card_id: Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. **Important**: The loyalty card ID requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `NewCard2026%` as `NewCard2026%25`. (required) :type loyalty_card_id: str :param _request_timeout: timeout setting for this request. If one number provided, it will be total request @@ -33504,14 +33521,14 @@ def _get_loyalty_card_serialize( def get_loyalty_card_transaction_logs( self, loyalty_program_id: Annotated[StrictInt, Field(description="Identifier of the card-based loyalty program containing the loyalty card. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. ")], - loyalty_card_id: Annotated[str, Field(min_length=4, strict=True, max_length=108, description="Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. ")], + loyalty_card_id: Annotated[str, Field(min_length=4, strict=True, max_length=108, description="Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. **Important**: The loyalty card ID requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `NewCard2026%` as `NewCard2026%25`. ")], start_date: Annotated[Optional[datetime], Field(description="Date and time from which results are returned. Results are filtered by transaction creation date. **Note:** - It must be an RFC3339 timestamp string. - You can include a time component in your string, for example, `T23:59:59` to specify the end of the day. The time zone setting considered is `UTC`. If you do not include a time component, a default time value of `T00:00:00` (midnight) in `UTC` is considered. ")] = None, end_date: Annotated[Optional[datetime], Field(description="Date and time by which results are returned. Results are filtered by transaction creation date. **Note:** - It must be an RFC3339 timestamp string. - You can include a time component in your string, for example, `T23:59:59` to specify the end of the day. The time zone setting considered is `UTC`. If you do not include a time component, a default time value of `T00:00:00` (midnight) in `UTC` is considered. ")] = None, page_size: Annotated[Optional[Annotated[int, Field(le=1000, strict=True, ge=1)]], Field(description="The number of items in the response.")] = None, skip: Annotated[Optional[StrictInt], Field(description="The number of items to skip when paging through large result sets.")] = None, subledger_id: Annotated[Optional[StrictStr], Field(description="The ID of the subledger by which we filter the data.")] = None, - customer_session_ids: Annotated[Optional[List[StrictStr]], Field(description="Filter the results by a list of customer session IDs. To include multiple IDs, repeat the parameter for each one, for example, `?customerSessionIDs=id1&customerSessionIDs=id2`. The response contains only data associated with the specified sessions. ")] = None, - transaction_uuids: Annotated[Optional[List[StrictStr]], Field(description="Filter the results by a list of transaction UUIDs. To include multiple IDs, repeat the parameter for each one, for example, `?transactionUUIDs=uuid1&transactionUUIDs=uuid2`. The response contains only data associated with the specified transactions. ")] = None, + customer_session_ids: Annotated[Optional[List[StrictStr]], Field(description="Filter the results by a list of customer session IDs. To include multiple IDs, repeat the parameter for each one, for example, `?customerSessionIDs=id1&customerSessionIDs=id2`. The response contains only data associated with the specified sessions. ")] = None, + transaction_uuids: Annotated[Optional[List[StrictStr]], Field(description="Filter the results by a list of transaction UUIDs. To include multiple IDs, repeat the parameter for each one, for example, `?transactionUUIDs=uuid1&transactionUUIDs=uuid2`. The response contains only data associated with the specified transactions. ")] = None, _request_timeout: Union[ None, Annotated[StrictFloat, Field(gt=0)], @@ -33531,7 +33548,7 @@ def get_loyalty_card_transaction_logs( :param loyalty_program_id: Identifier of the card-based loyalty program containing the loyalty card. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. (required) :type loyalty_program_id: int - :param loyalty_card_id: Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. (required) + :param loyalty_card_id: Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. **Important**: The loyalty card ID requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `NewCard2026%` as `NewCard2026%25`. (required) :type loyalty_card_id: str :param start_date: Date and time from which results are returned. Results are filtered by transaction creation date. **Note:** - It must be an RFC3339 timestamp string. - You can include a time component in your string, for example, `T23:59:59` to specify the end of the day. The time zone setting considered is `UTC`. If you do not include a time component, a default time value of `T00:00:00` (midnight) in `UTC` is considered. :type start_date: datetime @@ -33543,9 +33560,9 @@ def get_loyalty_card_transaction_logs( :type skip: int :param subledger_id: The ID of the subledger by which we filter the data. :type subledger_id: str - :param customer_session_ids: Filter the results by a list of customer session IDs. To include multiple IDs, repeat the parameter for each one, for example, `?customerSessionIDs=id1&customerSessionIDs=id2`. The response contains only data associated with the specified sessions. + :param customer_session_ids: Filter the results by a list of customer session IDs. To include multiple IDs, repeat the parameter for each one, for example, `?customerSessionIDs=id1&customerSessionIDs=id2`. The response contains only data associated with the specified sessions. :type customer_session_ids: List[str] - :param transaction_uuids: Filter the results by a list of transaction UUIDs. To include multiple IDs, repeat the parameter for each one, for example, `?transactionUUIDs=uuid1&transactionUUIDs=uuid2`. The response contains only data associated with the specified transactions. + :param transaction_uuids: Filter the results by a list of transaction UUIDs. To include multiple IDs, repeat the parameter for each one, for example, `?transactionUUIDs=uuid1&transactionUUIDs=uuid2`. The response contains only data associated with the specified transactions. :type transaction_uuids: List[str] :param _request_timeout: timeout setting for this request. If one number provided, it will be total request @@ -33605,14 +33622,14 @@ def get_loyalty_card_transaction_logs( def get_loyalty_card_transaction_logs_with_http_info( self, loyalty_program_id: Annotated[StrictInt, Field(description="Identifier of the card-based loyalty program containing the loyalty card. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. ")], - loyalty_card_id: Annotated[str, Field(min_length=4, strict=True, max_length=108, description="Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. ")], + loyalty_card_id: Annotated[str, Field(min_length=4, strict=True, max_length=108, description="Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. **Important**: The loyalty card ID requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `NewCard2026%` as `NewCard2026%25`. ")], start_date: Annotated[Optional[datetime], Field(description="Date and time from which results are returned. Results are filtered by transaction creation date. **Note:** - It must be an RFC3339 timestamp string. - You can include a time component in your string, for example, `T23:59:59` to specify the end of the day. The time zone setting considered is `UTC`. If you do not include a time component, a default time value of `T00:00:00` (midnight) in `UTC` is considered. ")] = None, end_date: Annotated[Optional[datetime], Field(description="Date and time by which results are returned. Results are filtered by transaction creation date. **Note:** - It must be an RFC3339 timestamp string. - You can include a time component in your string, for example, `T23:59:59` to specify the end of the day. The time zone setting considered is `UTC`. If you do not include a time component, a default time value of `T00:00:00` (midnight) in `UTC` is considered. ")] = None, page_size: Annotated[Optional[Annotated[int, Field(le=1000, strict=True, ge=1)]], Field(description="The number of items in the response.")] = None, skip: Annotated[Optional[StrictInt], Field(description="The number of items to skip when paging through large result sets.")] = None, subledger_id: Annotated[Optional[StrictStr], Field(description="The ID of the subledger by which we filter the data.")] = None, - customer_session_ids: Annotated[Optional[List[StrictStr]], Field(description="Filter the results by a list of customer session IDs. To include multiple IDs, repeat the parameter for each one, for example, `?customerSessionIDs=id1&customerSessionIDs=id2`. The response contains only data associated with the specified sessions. ")] = None, - transaction_uuids: Annotated[Optional[List[StrictStr]], Field(description="Filter the results by a list of transaction UUIDs. To include multiple IDs, repeat the parameter for each one, for example, `?transactionUUIDs=uuid1&transactionUUIDs=uuid2`. The response contains only data associated with the specified transactions. ")] = None, + customer_session_ids: Annotated[Optional[List[StrictStr]], Field(description="Filter the results by a list of customer session IDs. To include multiple IDs, repeat the parameter for each one, for example, `?customerSessionIDs=id1&customerSessionIDs=id2`. The response contains only data associated with the specified sessions. ")] = None, + transaction_uuids: Annotated[Optional[List[StrictStr]], Field(description="Filter the results by a list of transaction UUIDs. To include multiple IDs, repeat the parameter for each one, for example, `?transactionUUIDs=uuid1&transactionUUIDs=uuid2`. The response contains only data associated with the specified transactions. ")] = None, _request_timeout: Union[ None, Annotated[StrictFloat, Field(gt=0)], @@ -33632,7 +33649,7 @@ def get_loyalty_card_transaction_logs_with_http_info( :param loyalty_program_id: Identifier of the card-based loyalty program containing the loyalty card. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. (required) :type loyalty_program_id: int - :param loyalty_card_id: Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. (required) + :param loyalty_card_id: Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. **Important**: The loyalty card ID requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `NewCard2026%` as `NewCard2026%25`. (required) :type loyalty_card_id: str :param start_date: Date and time from which results are returned. Results are filtered by transaction creation date. **Note:** - It must be an RFC3339 timestamp string. - You can include a time component in your string, for example, `T23:59:59` to specify the end of the day. The time zone setting considered is `UTC`. If you do not include a time component, a default time value of `T00:00:00` (midnight) in `UTC` is considered. :type start_date: datetime @@ -33644,9 +33661,9 @@ def get_loyalty_card_transaction_logs_with_http_info( :type skip: int :param subledger_id: The ID of the subledger by which we filter the data. :type subledger_id: str - :param customer_session_ids: Filter the results by a list of customer session IDs. To include multiple IDs, repeat the parameter for each one, for example, `?customerSessionIDs=id1&customerSessionIDs=id2`. The response contains only data associated with the specified sessions. + :param customer_session_ids: Filter the results by a list of customer session IDs. To include multiple IDs, repeat the parameter for each one, for example, `?customerSessionIDs=id1&customerSessionIDs=id2`. The response contains only data associated with the specified sessions. :type customer_session_ids: List[str] - :param transaction_uuids: Filter the results by a list of transaction UUIDs. To include multiple IDs, repeat the parameter for each one, for example, `?transactionUUIDs=uuid1&transactionUUIDs=uuid2`. The response contains only data associated with the specified transactions. + :param transaction_uuids: Filter the results by a list of transaction UUIDs. To include multiple IDs, repeat the parameter for each one, for example, `?transactionUUIDs=uuid1&transactionUUIDs=uuid2`. The response contains only data associated with the specified transactions. :type transaction_uuids: List[str] :param _request_timeout: timeout setting for this request. If one number provided, it will be total request @@ -33706,14 +33723,14 @@ def get_loyalty_card_transaction_logs_with_http_info( def get_loyalty_card_transaction_logs_without_preload_content( self, loyalty_program_id: Annotated[StrictInt, Field(description="Identifier of the card-based loyalty program containing the loyalty card. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. ")], - loyalty_card_id: Annotated[str, Field(min_length=4, strict=True, max_length=108, description="Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. ")], + loyalty_card_id: Annotated[str, Field(min_length=4, strict=True, max_length=108, description="Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. **Important**: The loyalty card ID requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `NewCard2026%` as `NewCard2026%25`. ")], start_date: Annotated[Optional[datetime], Field(description="Date and time from which results are returned. Results are filtered by transaction creation date. **Note:** - It must be an RFC3339 timestamp string. - You can include a time component in your string, for example, `T23:59:59` to specify the end of the day. The time zone setting considered is `UTC`. If you do not include a time component, a default time value of `T00:00:00` (midnight) in `UTC` is considered. ")] = None, end_date: Annotated[Optional[datetime], Field(description="Date and time by which results are returned. Results are filtered by transaction creation date. **Note:** - It must be an RFC3339 timestamp string. - You can include a time component in your string, for example, `T23:59:59` to specify the end of the day. The time zone setting considered is `UTC`. If you do not include a time component, a default time value of `T00:00:00` (midnight) in `UTC` is considered. ")] = None, page_size: Annotated[Optional[Annotated[int, Field(le=1000, strict=True, ge=1)]], Field(description="The number of items in the response.")] = None, skip: Annotated[Optional[StrictInt], Field(description="The number of items to skip when paging through large result sets.")] = None, subledger_id: Annotated[Optional[StrictStr], Field(description="The ID of the subledger by which we filter the data.")] = None, - customer_session_ids: Annotated[Optional[List[StrictStr]], Field(description="Filter the results by a list of customer session IDs. To include multiple IDs, repeat the parameter for each one, for example, `?customerSessionIDs=id1&customerSessionIDs=id2`. The response contains only data associated with the specified sessions. ")] = None, - transaction_uuids: Annotated[Optional[List[StrictStr]], Field(description="Filter the results by a list of transaction UUIDs. To include multiple IDs, repeat the parameter for each one, for example, `?transactionUUIDs=uuid1&transactionUUIDs=uuid2`. The response contains only data associated with the specified transactions. ")] = None, + customer_session_ids: Annotated[Optional[List[StrictStr]], Field(description="Filter the results by a list of customer session IDs. To include multiple IDs, repeat the parameter for each one, for example, `?customerSessionIDs=id1&customerSessionIDs=id2`. The response contains only data associated with the specified sessions. ")] = None, + transaction_uuids: Annotated[Optional[List[StrictStr]], Field(description="Filter the results by a list of transaction UUIDs. To include multiple IDs, repeat the parameter for each one, for example, `?transactionUUIDs=uuid1&transactionUUIDs=uuid2`. The response contains only data associated with the specified transactions. ")] = None, _request_timeout: Union[ None, Annotated[StrictFloat, Field(gt=0)], @@ -33733,7 +33750,7 @@ def get_loyalty_card_transaction_logs_without_preload_content( :param loyalty_program_id: Identifier of the card-based loyalty program containing the loyalty card. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. (required) :type loyalty_program_id: int - :param loyalty_card_id: Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. (required) + :param loyalty_card_id: Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. **Important**: The loyalty card ID requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `NewCard2026%` as `NewCard2026%25`. (required) :type loyalty_card_id: str :param start_date: Date and time from which results are returned. Results are filtered by transaction creation date. **Note:** - It must be an RFC3339 timestamp string. - You can include a time component in your string, for example, `T23:59:59` to specify the end of the day. The time zone setting considered is `UTC`. If you do not include a time component, a default time value of `T00:00:00` (midnight) in `UTC` is considered. :type start_date: datetime @@ -33745,9 +33762,9 @@ def get_loyalty_card_transaction_logs_without_preload_content( :type skip: int :param subledger_id: The ID of the subledger by which we filter the data. :type subledger_id: str - :param customer_session_ids: Filter the results by a list of customer session IDs. To include multiple IDs, repeat the parameter for each one, for example, `?customerSessionIDs=id1&customerSessionIDs=id2`. The response contains only data associated with the specified sessions. + :param customer_session_ids: Filter the results by a list of customer session IDs. To include multiple IDs, repeat the parameter for each one, for example, `?customerSessionIDs=id1&customerSessionIDs=id2`. The response contains only data associated with the specified sessions. :type customer_session_ids: List[str] - :param transaction_uuids: Filter the results by a list of transaction UUIDs. To include multiple IDs, repeat the parameter for each one, for example, `?transactionUUIDs=uuid1&transactionUUIDs=uuid2`. The response contains only data associated with the specified transactions. + :param transaction_uuids: Filter the results by a list of transaction UUIDs. To include multiple IDs, repeat the parameter for each one, for example, `?transactionUUIDs=uuid1&transactionUUIDs=uuid2`. The response contains only data associated with the specified transactions. :type transaction_uuids: List[str] :param _request_timeout: timeout setting for this request. If one number provided, it will be total request @@ -33930,7 +33947,7 @@ def get_loyalty_cards( page_size: Annotated[Optional[Annotated[int, Field(le=1000, strict=True, ge=1)]], Field(description="The number of items in the response.")] = None, skip: Annotated[Optional[StrictInt], Field(description="The number of items to skip when paging through large result sets.")] = None, sort: Annotated[Optional[StrictStr], Field(description="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. ")] = None, - identifier: Annotated[Optional[Annotated[str, Field(min_length=4, strict=True)]], Field(description="The card code by which to filter loyalty cards in the response.")] = None, + identifier: Annotated[Optional[Annotated[str, Field(min_length=4, strict=True)]], Field(description="The card code by which to filter loyalty cards in the response. **Important**: The loyalty card ID requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `NewCard2026%` as `NewCard2026%25`. ")] = None, profile_id: Annotated[Optional[Annotated[int, Field(strict=True, ge=1)]], Field(description="Filter results by customer profile ID.")] = None, batch_id: Annotated[Optional[StrictStr], Field(description="Filter results by loyalty card batch ID.")] = None, _request_timeout: Union[ @@ -33958,7 +33975,7 @@ def get_loyalty_cards( :type skip: int :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. :type sort: str - :param identifier: The card code by which to filter loyalty cards in the response. + :param identifier: The card code by which to filter loyalty cards in the response. **Important**: The loyalty card ID requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `NewCard2026%` as `NewCard2026%25`. :type identifier: str :param profile_id: Filter results by customer profile ID. :type profile_id: int @@ -34023,7 +34040,7 @@ def get_loyalty_cards_with_http_info( page_size: Annotated[Optional[Annotated[int, Field(le=1000, strict=True, ge=1)]], Field(description="The number of items in the response.")] = None, skip: Annotated[Optional[StrictInt], Field(description="The number of items to skip when paging through large result sets.")] = None, sort: Annotated[Optional[StrictStr], Field(description="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. ")] = None, - identifier: Annotated[Optional[Annotated[str, Field(min_length=4, strict=True)]], Field(description="The card code by which to filter loyalty cards in the response.")] = None, + identifier: Annotated[Optional[Annotated[str, Field(min_length=4, strict=True)]], Field(description="The card code by which to filter loyalty cards in the response. **Important**: The loyalty card ID requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `NewCard2026%` as `NewCard2026%25`. ")] = None, profile_id: Annotated[Optional[Annotated[int, Field(strict=True, ge=1)]], Field(description="Filter results by customer profile ID.")] = None, batch_id: Annotated[Optional[StrictStr], Field(description="Filter results by loyalty card batch ID.")] = None, _request_timeout: Union[ @@ -34051,7 +34068,7 @@ def get_loyalty_cards_with_http_info( :type skip: int :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. :type sort: str - :param identifier: The card code by which to filter loyalty cards in the response. + :param identifier: The card code by which to filter loyalty cards in the response. **Important**: The loyalty card ID requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `NewCard2026%` as `NewCard2026%25`. :type identifier: str :param profile_id: Filter results by customer profile ID. :type profile_id: int @@ -34116,7 +34133,7 @@ def get_loyalty_cards_without_preload_content( page_size: Annotated[Optional[Annotated[int, Field(le=1000, strict=True, ge=1)]], Field(description="The number of items in the response.")] = None, skip: Annotated[Optional[StrictInt], Field(description="The number of items to skip when paging through large result sets.")] = None, sort: Annotated[Optional[StrictStr], Field(description="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. ")] = None, - identifier: Annotated[Optional[Annotated[str, Field(min_length=4, strict=True)]], Field(description="The card code by which to filter loyalty cards in the response.")] = None, + identifier: Annotated[Optional[Annotated[str, Field(min_length=4, strict=True)]], Field(description="The card code by which to filter loyalty cards in the response. **Important**: The loyalty card ID requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `NewCard2026%` as `NewCard2026%25`. ")] = None, profile_id: Annotated[Optional[Annotated[int, Field(strict=True, ge=1)]], Field(description="Filter results by customer profile ID.")] = None, batch_id: Annotated[Optional[StrictStr], Field(description="Filter results by loyalty card batch ID.")] = None, _request_timeout: Union[ @@ -34144,7 +34161,7 @@ def get_loyalty_cards_without_preload_content( :type skip: int :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. :type sort: str - :param identifier: The card code by which to filter loyalty cards in the response. + :param identifier: The card code by which to filter loyalty cards in the response. **Important**: The loyalty card ID requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `NewCard2026%` as `NewCard2026%25`. :type identifier: str :param profile_id: Filter results by customer profile ID. :type profile_id: int @@ -42171,7 +42188,7 @@ def import_loyalty_cards( ) -> ModelImport: """Import loyalty cards - Upload a CSV file containing the loyalty cards that you want to use in your card-based loyalty program. Send the file as multipart data. It contains the following columns for each card: - `identifier` (required): The alphanumeric identifier of the loyalty card. - `state` (required): The state of the loyalty card. It can be `active` or `inactive`. - `customerprofileids` (optional): An array of strings representing the identifiers of the customer profiles linked to the loyalty card. The identifiers should be separated with a semicolon (;). - `attributes` (optional): A JSON object that contains the loyalty card's custom attributes and their values. These attributes must be created and connected to this loyalty program before they can be assigned to the cards through this endpoint. **Note:** We recommend limiting your file size to 500MB. **Example:** ```csv identifier,state,customerprofileids,attributes 123-456-789AT,active,Alexa001;UserA,\"{\"\"my_attribute\"\": \"\"10_off\"\"}\" ``` + Upload a CSV file containing the loyalty cards that you want to use in your card-based loyalty program. Send the file as multipart data. It contains the following columns for each card: - `identifier` (required): The identifier of the loyalty card, which must match the regular expression `^[A-Za-z0-9._%+@-]+$`. - `state` (required): The state of the loyalty card. It can be `active` or `inactive`. - `customerprofileids` (optional): An array of strings representing the identifiers of the customer profiles linked to the loyalty card. The identifiers should be separated with a semicolon (;). **Note:** We recommend limiting your file size to 500MB. **Example:** ```csv identifier,state,customerprofileids 123-456-789AT,active,Alexa001;UserA ``` :param loyalty_program_id: Identifier of the card-based loyalty program containing the loyalty card. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. (required) :type loyalty_program_id: int @@ -42244,7 +42261,7 @@ def import_loyalty_cards_with_http_info( ) -> ApiResponse[ModelImport]: """Import loyalty cards - Upload a CSV file containing the loyalty cards that you want to use in your card-based loyalty program. Send the file as multipart data. It contains the following columns for each card: - `identifier` (required): The alphanumeric identifier of the loyalty card. - `state` (required): The state of the loyalty card. It can be `active` or `inactive`. - `customerprofileids` (optional): An array of strings representing the identifiers of the customer profiles linked to the loyalty card. The identifiers should be separated with a semicolon (;). - `attributes` (optional): A JSON object that contains the loyalty card's custom attributes and their values. These attributes must be created and connected to this loyalty program before they can be assigned to the cards through this endpoint. **Note:** We recommend limiting your file size to 500MB. **Example:** ```csv identifier,state,customerprofileids,attributes 123-456-789AT,active,Alexa001;UserA,\"{\"\"my_attribute\"\": \"\"10_off\"\"}\" ``` + Upload a CSV file containing the loyalty cards that you want to use in your card-based loyalty program. Send the file as multipart data. It contains the following columns for each card: - `identifier` (required): The identifier of the loyalty card, which must match the regular expression `^[A-Za-z0-9._%+@-]+$`. - `state` (required): The state of the loyalty card. It can be `active` or `inactive`. - `customerprofileids` (optional): An array of strings representing the identifiers of the customer profiles linked to the loyalty card. The identifiers should be separated with a semicolon (;). **Note:** We recommend limiting your file size to 500MB. **Example:** ```csv identifier,state,customerprofileids 123-456-789AT,active,Alexa001;UserA ``` :param loyalty_program_id: Identifier of the card-based loyalty program containing the loyalty card. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. (required) :type loyalty_program_id: int @@ -42317,7 +42334,7 @@ def import_loyalty_cards_without_preload_content( ) -> RESTResponseType: """Import loyalty cards - Upload a CSV file containing the loyalty cards that you want to use in your card-based loyalty program. Send the file as multipart data. It contains the following columns for each card: - `identifier` (required): The alphanumeric identifier of the loyalty card. - `state` (required): The state of the loyalty card. It can be `active` or `inactive`. - `customerprofileids` (optional): An array of strings representing the identifiers of the customer profiles linked to the loyalty card. The identifiers should be separated with a semicolon (;). - `attributes` (optional): A JSON object that contains the loyalty card's custom attributes and their values. These attributes must be created and connected to this loyalty program before they can be assigned to the cards through this endpoint. **Note:** We recommend limiting your file size to 500MB. **Example:** ```csv identifier,state,customerprofileids,attributes 123-456-789AT,active,Alexa001;UserA,\"{\"\"my_attribute\"\": \"\"10_off\"\"}\" ``` + Upload a CSV file containing the loyalty cards that you want to use in your card-based loyalty program. Send the file as multipart data. It contains the following columns for each card: - `identifier` (required): The identifier of the loyalty card, which must match the regular expression `^[A-Za-z0-9._%+@-]+$`. - `state` (required): The state of the loyalty card. It can be `active` or `inactive`. - `customerprofileids` (optional): An array of strings representing the identifiers of the customer profiles linked to the loyalty card. The identifiers should be separated with a semicolon (;). **Note:** We recommend limiting your file size to 500MB. **Example:** ```csv identifier,state,customerprofileids 123-456-789AT,active,Alexa001;UserA ``` :param loyalty_program_id: Identifier of the card-based loyalty program containing the loyalty card. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. (required) :type loyalty_program_id: int @@ -53117,7 +53134,7 @@ def _summarize_campaign_store_budget_serialize( def transfer_loyalty_card( self, loyalty_program_id: Annotated[StrictInt, Field(description="Identifier of the card-based loyalty program containing the loyalty card. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. ")], - loyalty_card_id: Annotated[str, Field(min_length=4, strict=True, max_length=108, description="Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. ")], + loyalty_card_id: Annotated[str, Field(min_length=4, strict=True, max_length=108, description="Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. **Important**: The loyalty card ID requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `NewCard2026%` as `NewCard2026%25`. ")], transfer_loyalty_card: Annotated[TransferLoyaltyCard, Field(description="body")], _request_timeout: Union[ None, @@ -53138,7 +53155,7 @@ def transfer_loyalty_card( :param loyalty_program_id: Identifier of the card-based loyalty program containing the loyalty card. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. (required) :type loyalty_program_id: int - :param loyalty_card_id: Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. (required) + :param loyalty_card_id: Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. **Important**: The loyalty card ID requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `NewCard2026%` as `NewCard2026%25`. (required) :type loyalty_card_id: str :param transfer_loyalty_card: body (required) :type transfer_loyalty_card: TransferLoyaltyCard @@ -53195,7 +53212,7 @@ def transfer_loyalty_card( def transfer_loyalty_card_with_http_info( self, loyalty_program_id: Annotated[StrictInt, Field(description="Identifier of the card-based loyalty program containing the loyalty card. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. ")], - loyalty_card_id: Annotated[str, Field(min_length=4, strict=True, max_length=108, description="Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. ")], + loyalty_card_id: Annotated[str, Field(min_length=4, strict=True, max_length=108, description="Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. **Important**: The loyalty card ID requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `NewCard2026%` as `NewCard2026%25`. ")], transfer_loyalty_card: Annotated[TransferLoyaltyCard, Field(description="body")], _request_timeout: Union[ None, @@ -53216,7 +53233,7 @@ def transfer_loyalty_card_with_http_info( :param loyalty_program_id: Identifier of the card-based loyalty program containing the loyalty card. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. (required) :type loyalty_program_id: int - :param loyalty_card_id: Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. (required) + :param loyalty_card_id: Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. **Important**: The loyalty card ID requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `NewCard2026%` as `NewCard2026%25`. (required) :type loyalty_card_id: str :param transfer_loyalty_card: body (required) :type transfer_loyalty_card: TransferLoyaltyCard @@ -53273,7 +53290,7 @@ def transfer_loyalty_card_with_http_info( def transfer_loyalty_card_without_preload_content( self, loyalty_program_id: Annotated[StrictInt, Field(description="Identifier of the card-based loyalty program containing the loyalty card. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. ")], - loyalty_card_id: Annotated[str, Field(min_length=4, strict=True, max_length=108, description="Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. ")], + loyalty_card_id: Annotated[str, Field(min_length=4, strict=True, max_length=108, description="Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. **Important**: The loyalty card ID requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `NewCard2026%` as `NewCard2026%25`. ")], transfer_loyalty_card: Annotated[TransferLoyaltyCard, Field(description="body")], _request_timeout: Union[ None, @@ -53294,7 +53311,7 @@ def transfer_loyalty_card_without_preload_content( :param loyalty_program_id: Identifier of the card-based loyalty program containing the loyalty card. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. (required) :type loyalty_program_id: int - :param loyalty_card_id: Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. (required) + :param loyalty_card_id: Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. **Important**: The loyalty card ID requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `NewCard2026%` as `NewCard2026%25`. (required) :type loyalty_card_id: str :param transfer_loyalty_card: body (required) :type transfer_loyalty_card: TransferLoyaltyCard @@ -55894,7 +55911,7 @@ def _update_coupon_batch_serialize( def update_loyalty_card( self, loyalty_program_id: Annotated[StrictInt, Field(description="Identifier of the card-based loyalty program containing the loyalty card. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. ")], - loyalty_card_id: Annotated[str, Field(min_length=4, strict=True, max_length=108, description="Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. ")], + loyalty_card_id: Annotated[str, Field(min_length=4, strict=True, max_length=108, description="Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. **Important**: The loyalty card ID requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `NewCard2026%` as `NewCard2026%25`. ")], update_loyalty_card_request: Annotated[UpdateLoyaltyCardRequest, Field(description="body")], _request_timeout: Union[ None, @@ -55911,11 +55928,11 @@ def update_loyalty_card( ) -> LoyaltyCard: """Update loyalty card - Update the details of a specific loyalty card. You can set the card's status to `active` or `inactive` through this endpoint. At least one of `status` or `attributes` must be provided. + Update the details of a specific loyalty card. You can set the card's status to `active` or `inactive` through this endpoint. At least one of `status` or `attributes` must be provided. :param loyalty_program_id: Identifier of the card-based loyalty program containing the loyalty card. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. (required) :type loyalty_program_id: int - :param loyalty_card_id: Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. (required) + :param loyalty_card_id: Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. **Important**: The loyalty card ID requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `NewCard2026%` as `NewCard2026%25`. (required) :type loyalty_card_id: str :param update_loyalty_card_request: body (required) :type update_loyalty_card_request: UpdateLoyaltyCardRequest @@ -55972,7 +55989,7 @@ def update_loyalty_card( def update_loyalty_card_with_http_info( self, loyalty_program_id: Annotated[StrictInt, Field(description="Identifier of the card-based loyalty program containing the loyalty card. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. ")], - loyalty_card_id: Annotated[str, Field(min_length=4, strict=True, max_length=108, description="Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. ")], + loyalty_card_id: Annotated[str, Field(min_length=4, strict=True, max_length=108, description="Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. **Important**: The loyalty card ID requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `NewCard2026%` as `NewCard2026%25`. ")], update_loyalty_card_request: Annotated[UpdateLoyaltyCardRequest, Field(description="body")], _request_timeout: Union[ None, @@ -55989,11 +56006,11 @@ def update_loyalty_card_with_http_info( ) -> ApiResponse[LoyaltyCard]: """Update loyalty card - Update the details of a specific loyalty card. You can set the card's status to `active` or `inactive` through this endpoint. At least one of `status` or `attributes` must be provided. + Update the details of a specific loyalty card. You can set the card's status to `active` or `inactive` through this endpoint. At least one of `status` or `attributes` must be provided. :param loyalty_program_id: Identifier of the card-based loyalty program containing the loyalty card. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. (required) :type loyalty_program_id: int - :param loyalty_card_id: Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. (required) + :param loyalty_card_id: Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. **Important**: The loyalty card ID requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `NewCard2026%` as `NewCard2026%25`. (required) :type loyalty_card_id: str :param update_loyalty_card_request: body (required) :type update_loyalty_card_request: UpdateLoyaltyCardRequest @@ -56050,7 +56067,7 @@ def update_loyalty_card_with_http_info( def update_loyalty_card_without_preload_content( self, loyalty_program_id: Annotated[StrictInt, Field(description="Identifier of the card-based loyalty program containing the loyalty card. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. ")], - loyalty_card_id: Annotated[str, Field(min_length=4, strict=True, max_length=108, description="Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. ")], + loyalty_card_id: Annotated[str, Field(min_length=4, strict=True, max_length=108, description="Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. **Important**: The loyalty card ID requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `NewCard2026%` as `NewCard2026%25`. ")], update_loyalty_card_request: Annotated[UpdateLoyaltyCardRequest, Field(description="body")], _request_timeout: Union[ None, @@ -56067,11 +56084,11 @@ def update_loyalty_card_without_preload_content( ) -> RESTResponseType: """Update loyalty card - Update the details of a specific loyalty card. You can set the card's status to `active` or `inactive` through this endpoint. At least one of `status` or `attributes` must be provided. + Update the details of a specific loyalty card. You can set the card's status to `active` or `inactive` through this endpoint. At least one of `status` or `attributes` must be provided. :param loyalty_program_id: Identifier of the card-based loyalty program containing the loyalty card. You can get the ID with the [List loyalty programs](https://docs.talon.one/management-api#tag/Loyalty/operation/getLoyaltyPrograms) endpoint. (required) :type loyalty_program_id: int - :param loyalty_card_id: Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. (required) + :param loyalty_card_id: Identifier of the loyalty card. You can get the identifier with the [List loyalty cards](https://docs.talon.one/management-api#tag/Loyalty-cards/operation/getLoyaltyCards) endpoint. **Important**: The loyalty card ID requires [URL encoding](https://www.w3schools.com/tags//ref_urlencode.asp) if it contains special characters. For example, you must encode `NewCard2026%` as `NewCard2026%25`. (required) :type loyalty_card_id: str :param update_loyalty_card_request: body (required) :type update_loyalty_card_request: UpdateLoyaltyCardRequest diff --git a/talon_one/api_client.py b/talon_one/api_client.py index f92eeda..6e4dbd8 100644 --- a/talon_one/api_client.py +++ b/talon_one/api_client.py @@ -90,7 +90,7 @@ def __init__( self.default_headers[header_name] = header_value self.cookie = cookie # Set default User-Agent. - self.user_agent = 'OpenAPI-Generator/26.05/python' + self.user_agent = 'OpenAPI-Generator/26.06.0/python' self.client_side_validation = configuration.client_side_validation def __enter__(self): diff --git a/talon_one/configuration.py b/talon_one/configuration.py index 7fd7ed6..74ee78a 100644 --- a/talon_one/configuration.py +++ b/talon_one/configuration.py @@ -554,7 +554,7 @@ def to_debug_report(self) -> str: "OS: {env}\n"\ "Python Version: {pyversion}\n"\ "Version of the API: \n"\ - "SDK Package Version: 26.05".\ + "SDK Package Version: 26.06.0".\ format(env=sys.platform, pyversion=sys.version) def get_host_settings(self) -> List[HostSetting]: diff --git a/talon_one/models/__init__.py b/talon_one/models/__init__.py index a12b445..371fd31 100644 --- a/talon_one/models/__init__.py +++ b/talon_one/models/__init__.py @@ -30,10 +30,14 @@ from talon_one.models.account_limits import AccountLimits from talon_one.models.achievement import Achievement from talon_one.models.achievement_additional_properties import AchievementAdditionalProperties +from talon_one.models.achievement_additional_properties_v2 import AchievementAdditionalPropertiesV2 from talon_one.models.achievement_base import AchievementBase +from talon_one.models.achievement_base_v2 import AchievementBaseV2 from talon_one.models.achievement_progress import AchievementProgress from talon_one.models.achievement_progress_with_definition import AchievementProgressWithDefinition +from talon_one.models.achievement_reference import AchievementReference from talon_one.models.achievement_status_entry import AchievementStatusEntry +from talon_one.models.achievement_v2 import AchievementV2 from talon_one.models.activate_loyalty_points import ActivateLoyaltyPoints from talon_one.models.activate_loyalty_points_response import ActivateLoyaltyPointsResponse from talon_one.models.activate_user_request import ActivateUserRequest @@ -189,6 +193,7 @@ from talon_one.models.coupons_notification_data import CouponsNotificationData from talon_one.models.coupons_notification_policy import CouponsNotificationPolicy from talon_one.models.create_achievement import CreateAchievement +from talon_one.models.create_achievement_v2 import CreateAchievementV2 from talon_one.models.create_application_api_key import CreateApplicationAPIKey from talon_one.models.create_coupon_data import CreateCouponData from talon_one.models.create_coupons200_response import CreateCoupons200Response @@ -323,6 +328,7 @@ from talon_one.models.import_entity import ImportEntity from talon_one.models.increase_achievement_progress_effect_props import IncreaseAchievementProgressEffectProps from talon_one.models.influencing_campaign_details import InfluencingCampaignDetails +from talon_one.models.integration_campaign import IntegrationCampaign from talon_one.models.integration_coupon import IntegrationCoupon from talon_one.models.integration_customer_profile_audience_request import IntegrationCustomerProfileAudienceRequest from talon_one.models.integration_customer_profile_audience_request_item import IntegrationCustomerProfileAudienceRequestItem @@ -636,6 +642,7 @@ from talon_one.models.two_fa_config import TwoFAConfig from talon_one.models.update_account import UpdateAccount from talon_one.models.update_achievement import UpdateAchievement +from talon_one.models.update_achievement_v2 import UpdateAchievementV2 from talon_one.models.update_application import UpdateApplication from talon_one.models.update_application_api_key import UpdateApplicationAPIKey from talon_one.models.update_application_cif import UpdateApplicationCIF diff --git a/talon_one/models/achievement_additional_properties_v2.py b/talon_one/models/achievement_additional_properties_v2.py new file mode 100644 index 0000000..da07c2f --- /dev/null +++ b/talon_one/models/achievement_additional_properties_v2.py @@ -0,0 +1,103 @@ +# coding: utf-8 + +""" + 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: + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictInt, StrictStr, field_validator +from typing import Any, ClassVar, Dict, List, Optional +from typing import Optional, Set +from typing_extensions import Self + +class AchievementAdditionalPropertiesV2(BaseModel): + """ + AchievementAdditionalPropertiesV2 + """ # noqa: E501 + user_id: StrictInt = Field(description="The ID of the user that created this achievement.", alias="userId") + created_by: Optional[StrictStr] = Field(default=None, description="Name of the user that created the achievement. **Note**: This is not available if the user has been deleted. ", alias="createdBy") + has_progress: Optional[StrictBool] = Field(default=None, description="Indicates if a customer has made progress in the achievement.", alias="hasProgress") + status: Optional[StrictStr] = Field(default=None, description="The status of the achievement.") + __properties: ClassVar[List[str]] = ["userId", "createdBy", "hasProgress", "status"] + + @field_validator('status') + def status_validate_enum(cls, value): + """Validates the enum""" + if value is None: + return value + + if value not in set(['inprogress', 'expired', 'not_started', 'completed']): + raise ValueError("must be one of enum values ('inprogress', 'expired', 'not_started', 'completed')") + return value + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of AchievementAdditionalPropertiesV2 from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + """ + excluded_fields: Set[str] = set([ + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of AchievementAdditionalPropertiesV2 from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "userId": obj.get("userId"), + "createdBy": obj.get("createdBy"), + "hasProgress": obj.get("hasProgress"), + "status": obj.get("status") + }) + return _obj + + diff --git a/talon_one/models/achievement_base_v2.py b/talon_one/models/achievement_base_v2.py new file mode 100644 index 0000000..50e9164 --- /dev/null +++ b/talon_one/models/achievement_base_v2.py @@ -0,0 +1,143 @@ +# coding: utf-8 + +""" + 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: + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from datetime import datetime +from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictFloat, StrictInt, StrictStr, field_validator +from typing import Any, ClassVar, Dict, List, Optional, Union +from typing_extensions import Annotated +from typing import Optional, Set +from typing_extensions import Self + +class AchievementBaseV2(BaseModel): + """ + AchievementBaseV2 + """ # noqa: E501 + name: Optional[Annotated[str, Field(min_length=1, strict=True, max_length=1000)]] = Field(default=None, description="The internal name of the achievement used in API requests. **Note**: The name should start with a letter. This cannot be changed after the achievement has been created. ") + title: Optional[StrictStr] = Field(default=None, description="The display name for the achievement in the Campaign Manager.") + description: Optional[StrictStr] = Field(default=None, description="A description of the achievement.") + target: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="The required number of actions or the transactional milestone to complete the achievement.") + period: Optional[StrictStr] = Field(default=None, description="The relative duration after which the achievement ends and resets for a particular customer profile. **Note**: The `period` does not start when the achievement is created. The period is a **positive real number** followed by one letter indicating the time unit. Examples: `30s`, `40m`, `1h`, `5D`, `7W`, `10M`, `15Y`. Available units: - `s`: seconds - `m`: minutes - `h`: hours - `D`: days - `W`: weeks - `M`: months - `Y`: years You can also round certain units down to the beginning of period and up to the end of period.: - `_D` for rounding down days only. Signifies the start of the day. Example: `30D_D` - `_U` for rounding up days, weeks, months and years. Signifies the end of the day, week, month or year. Example: `23W_U` **Note**: You can either use the round down and round up option or set an absolute period. ") + recurrence_policy: Optional[StrictStr] = Field(default=None, description="The policy that determines if and how the achievement recurs. - `no_recurrence`: The achievement can be completed only once. - `on_expiration`: The achievement resets after it expires and becomes available again. - `on_completion`: When the customer progress status reaches `completed`, the achievement resets and becomes available again. ", alias="recurrencePolicy") + activation_policy: Optional[StrictStr] = Field(default=None, description="The policy that determines how the achievement starts, ends, or resets. - `user_action`: The achievement ends or resets relative to when the customer started the achievement. - `fixed_schedule`: The achievement starts, ends, or resets for all customers following a fixed schedule. ", alias="activationPolicy") + fixed_start_date: Optional[datetime] = Field(default=None, description="The achievement's start date when `activationPolicy` is set to `fixed_schedule`. **Note:** It must be an RFC3339 timestamp string. ", alias="fixedStartDate") + end_date: Optional[datetime] = Field(default=None, description="The achievement's end date. If defined, customers cannot participate in the achievement after this date. **Note:** It must be an RFC3339 timestamp string. ", alias="endDate") + allow_rollback_after_completion: Optional[StrictBool] = Field(default=None, description="When `true`, customer progress can be rolled back in completed achievements.", alias="allowRollbackAfterCompletion") + sandbox: Optional[StrictBool] = Field(default=None, description="Indicates if this achievement is a live or sandbox achievement. Achievements of a given type can only be connected to Applications of the same type.") + subscribed_applications: Optional[Annotated[List[StrictInt], Field(min_length=0)]] = Field(default=None, description="A list containing the IDs of all applications that are subscribed to A list containing the IDs of all Applications that are connected to this achievement.", alias="subscribedApplications") + timezone: Optional[Annotated[str, Field(min_length=1, strict=True)]] = Field(default=None, description="A string containing an IANA timezone descriptor.") + __properties: ClassVar[List[str]] = ["name", "title", "description", "target", "period", "recurrencePolicy", "activationPolicy", "fixedStartDate", "endDate", "allowRollbackAfterCompletion", "sandbox", "subscribedApplications", "timezone"] + + @field_validator('name') + def name_validate_regular_expression(cls, value): + """Validates the regular expression""" + if value is None: + return value + + if not re.match(r"^[a-zA-Z]\w+$", value): + raise ValueError(r"must validate the regular expression /^[a-zA-Z]\w+$/") + return value + + @field_validator('recurrence_policy') + def recurrence_policy_validate_enum(cls, value): + """Validates the enum""" + if value is None: + return value + + if value not in set(['no_recurrence', 'on_expiration', 'on_completion']): + raise ValueError("must be one of enum values ('no_recurrence', 'on_expiration', 'on_completion')") + return value + + @field_validator('activation_policy') + def activation_policy_validate_enum(cls, value): + """Validates the enum""" + if value is None: + return value + + if value not in set(['user_action', 'fixed_schedule']): + raise ValueError("must be one of enum values ('user_action', 'fixed_schedule')") + return value + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of AchievementBaseV2 from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + """ + excluded_fields: Set[str] = set([ + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of AchievementBaseV2 from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "name": obj.get("name"), + "title": obj.get("title"), + "description": obj.get("description"), + "target": obj.get("target"), + "period": obj.get("period"), + "recurrencePolicy": obj.get("recurrencePolicy"), + "activationPolicy": obj.get("activationPolicy"), + "fixedStartDate": obj.get("fixedStartDate"), + "endDate": obj.get("endDate"), + "allowRollbackAfterCompletion": obj.get("allowRollbackAfterCompletion"), + "sandbox": obj.get("sandbox"), + "subscribedApplications": obj.get("subscribedApplications"), + "timezone": obj.get("timezone") + }) + return _obj + + diff --git a/talon_one/models/achievement_reference.py b/talon_one/models/achievement_reference.py new file mode 100644 index 0000000..d19fb06 --- /dev/null +++ b/talon_one/models/achievement_reference.py @@ -0,0 +1,93 @@ +# coding: utf-8 + +""" + 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: + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr +from typing import Any, ClassVar, Dict, List +from typing import Optional, Set +from typing_extensions import Self + +class AchievementReference(BaseModel): + """ + AchievementReference + """ # noqa: E501 + achievement_id: StrictInt = Field(description="The ID of the achievement. You can get this ID with the [List achievement](https://docs.talon.one/management-api#tag/Achievements/operation/listAchievementsV2) endpoint.", alias="achievementId") + application_id: StrictInt = Field(description="The ID of the Application associated with the campaign that references this achievement.", alias="applicationId") + application_name: StrictStr = Field(description="The name of the Application associated with the campaign that references this achievement.", alias="applicationName") + campaign_id: StrictInt = Field(description="The ID of the campaign that references this achievement.", alias="campaignId") + __properties: ClassVar[List[str]] = ["achievementId", "applicationId", "applicationName", "campaignId"] + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of AchievementReference from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + """ + excluded_fields: Set[str] = set([ + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of AchievementReference from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "achievementId": obj.get("achievementId"), + "applicationId": obj.get("applicationId"), + "applicationName": obj.get("applicationName"), + "campaignId": obj.get("campaignId") + }) + return _obj + + diff --git a/talon_one/models/achievement_v2.py b/talon_one/models/achievement_v2.py new file mode 100644 index 0000000..3fca384 --- /dev/null +++ b/talon_one/models/achievement_v2.py @@ -0,0 +1,165 @@ +# coding: utf-8 + +""" + 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: + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from datetime import datetime +from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictFloat, StrictInt, StrictStr, field_validator +from typing import Any, ClassVar, Dict, List, Optional, Union +from typing_extensions import Annotated +from typing import Optional, Set +from typing_extensions import Self + +class AchievementV2(BaseModel): + """ + AchievementV2 + """ # noqa: E501 + id: StrictInt = Field(description="The internal ID of this entity.") + created: datetime = Field(description="The time this entity was created.") + name: Optional[Annotated[str, Field(min_length=1, strict=True, max_length=1000)]] = Field(default=None, description="The internal name of the achievement used in API requests. **Note**: The name should start with a letter. This cannot be changed after the achievement has been created. ") + title: Optional[StrictStr] = Field(default=None, description="The display name for the achievement in the Campaign Manager.") + description: Optional[StrictStr] = Field(default=None, description="A description of the achievement.") + target: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="The required number of actions or the transactional milestone to complete the achievement.") + period: Optional[StrictStr] = Field(default=None, description="The relative duration after which the achievement ends and resets for a particular customer profile. **Note**: The `period` does not start when the achievement is created. The period is a **positive real number** followed by one letter indicating the time unit. Examples: `30s`, `40m`, `1h`, `5D`, `7W`, `10M`, `15Y`. Available units: - `s`: seconds - `m`: minutes - `h`: hours - `D`: days - `W`: weeks - `M`: months - `Y`: years You can also round certain units down to the beginning of period and up to the end of period.: - `_D` for rounding down days only. Signifies the start of the day. Example: `30D_D` - `_U` for rounding up days, weeks, months and years. Signifies the end of the day, week, month or year. Example: `23W_U` **Note**: You can either use the round down and round up option or set an absolute period. ") + recurrence_policy: Optional[StrictStr] = Field(default=None, description="The policy that determines if and how the achievement recurs. - `no_recurrence`: The achievement can be completed only once. - `on_expiration`: The achievement resets after it expires and becomes available again. - `on_completion`: When the customer progress status reaches `completed`, the achievement resets and becomes available again. ", alias="recurrencePolicy") + activation_policy: Optional[StrictStr] = Field(default=None, description="The policy that determines how the achievement starts, ends, or resets. - `user_action`: The achievement ends or resets relative to when the customer started the achievement. - `fixed_schedule`: The achievement starts, ends, or resets for all customers following a fixed schedule. ", alias="activationPolicy") + fixed_start_date: Optional[datetime] = Field(default=None, description="The achievement's start date when `activationPolicy` is set to `fixed_schedule`. **Note:** It must be an RFC3339 timestamp string. ", alias="fixedStartDate") + end_date: Optional[datetime] = Field(default=None, description="The achievement's end date. If defined, customers cannot participate in the achievement after this date. **Note:** It must be an RFC3339 timestamp string. ", alias="endDate") + allow_rollback_after_completion: Optional[StrictBool] = Field(default=None, description="When `true`, customer progress can be rolled back in completed achievements.", alias="allowRollbackAfterCompletion") + sandbox: Optional[StrictBool] = Field(default=None, description="Indicates if this achievement is a live or sandbox achievement. Achievements of a given type can only be connected to Applications of the same type.") + subscribed_applications: Optional[Annotated[List[StrictInt], Field(min_length=0)]] = Field(default=None, description="A list containing the IDs of all applications that are subscribed to A list containing the IDs of all Applications that are connected to this achievement.", alias="subscribedApplications") + timezone: Optional[Annotated[str, Field(min_length=1, strict=True)]] = Field(default=None, description="A string containing an IANA timezone descriptor.") + user_id: StrictInt = Field(description="The ID of the user that created this achievement.", alias="userId") + created_by: Optional[StrictStr] = Field(default=None, description="Name of the user that created the achievement. **Note**: This is not available if the user has been deleted. ", alias="createdBy") + has_progress: Optional[StrictBool] = Field(default=None, description="Indicates if a customer has made progress in the achievement.", alias="hasProgress") + status: Optional[StrictStr] = Field(default=None, description="The status of the achievement.") + __properties: ClassVar[List[str]] = ["id", "created", "name", "title", "description", "target", "period", "recurrencePolicy", "activationPolicy", "fixedStartDate", "endDate", "allowRollbackAfterCompletion", "sandbox", "subscribedApplications", "timezone", "userId", "createdBy", "hasProgress", "status"] + + @field_validator('name') + def name_validate_regular_expression(cls, value): + """Validates the regular expression""" + if value is None: + return value + + if not re.match(r"^[a-zA-Z]\w+$", value): + raise ValueError(r"must validate the regular expression /^[a-zA-Z]\w+$/") + return value + + @field_validator('recurrence_policy') + def recurrence_policy_validate_enum(cls, value): + """Validates the enum""" + if value is None: + return value + + if value not in set(['no_recurrence', 'on_expiration', 'on_completion']): + raise ValueError("must be one of enum values ('no_recurrence', 'on_expiration', 'on_completion')") + return value + + @field_validator('activation_policy') + def activation_policy_validate_enum(cls, value): + """Validates the enum""" + if value is None: + return value + + if value not in set(['user_action', 'fixed_schedule']): + raise ValueError("must be one of enum values ('user_action', 'fixed_schedule')") + return value + + @field_validator('status') + def status_validate_enum(cls, value): + """Validates the enum""" + if value is None: + return value + + if value not in set(['inprogress', 'expired', 'not_started', 'completed']): + raise ValueError("must be one of enum values ('inprogress', 'expired', 'not_started', 'completed')") + return value + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of AchievementV2 from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + """ + excluded_fields: Set[str] = set([ + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of AchievementV2 from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "id": obj.get("id"), + "created": obj.get("created"), + "name": obj.get("name"), + "title": obj.get("title"), + "description": obj.get("description"), + "target": obj.get("target"), + "period": obj.get("period"), + "recurrencePolicy": obj.get("recurrencePolicy"), + "activationPolicy": obj.get("activationPolicy"), + "fixedStartDate": obj.get("fixedStartDate"), + "endDate": obj.get("endDate"), + "allowRollbackAfterCompletion": obj.get("allowRollbackAfterCompletion"), + "sandbox": obj.get("sandbox"), + "subscribedApplications": obj.get("subscribedApplications"), + "timezone": obj.get("timezone"), + "userId": obj.get("userId"), + "createdBy": obj.get("createdBy"), + "hasProgress": obj.get("hasProgress"), + "status": obj.get("status") + }) + return _obj + + diff --git a/talon_one/models/add_loyalty_points_effect_props.py b/talon_one/models/add_loyalty_points_effect_props.py index 618d8ee..3e0addc 100644 --- a/talon_one/models/add_loyalty_points_effect_props.py +++ b/talon_one/models/add_loyalty_points_effect_props.py @@ -52,8 +52,8 @@ def card_identifier_validate_regular_expression(cls, value): if value is None: return value - if not re.match(r"^[A-Za-z0-9_-]*$", value): - raise ValueError(r"must validate the regular expression /^[A-Za-z0-9_-]*$/") + if not re.match(r"^[A-Za-z0-9._%+@-]+$", value): + raise ValueError(r"must validate the regular expression /^[A-Za-z0-9._%+@-]+$/") return value model_config = ConfigDict( diff --git a/talon_one/models/added_deducted_points_balances_action.py b/talon_one/models/added_deducted_points_balances_action.py index b2b1d6c..cc1324e 100644 --- a/talon_one/models/added_deducted_points_balances_action.py +++ b/talon_one/models/added_deducted_points_balances_action.py @@ -20,6 +20,7 @@ from datetime import datetime from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr, field_validator from typing import Any, ClassVar, Dict, List, Optional, Union +from uuid import UUID from typing import Optional, Set from typing_extensions import Self @@ -29,16 +30,17 @@ class AddedDeductedPointsBalancesAction(BaseModel): """ # noqa: E501 amount: Union[StrictFloat, StrictInt] = Field(description="The amount of added or deducted loyalty points.", alias="Amount") reason: StrictStr = Field(description="The reason for the points addition or deduction.", alias="Reason") - operation: StrictStr = Field(description="The action (addition or deduction) made with loyalty points.", alias="Operation") + operation: StrictStr = Field(description="The action (addition or subtraction) made with loyalty points.", alias="Operation") start_date: Optional[datetime] = Field(default=None, description="The start date for loyalty points.", alias="StartDate") expiry_date: Optional[datetime] = Field(default=None, description="The expiration date for loyalty points.", alias="ExpiryDate") - __properties: ClassVar[List[str]] = ["Amount", "Reason", "Operation", "StartDate", "ExpiryDate"] + transaction_uuid: UUID = Field(description="The identifier of the transaction in the loyalty ledger.", alias="TransactionUUID") + __properties: ClassVar[List[str]] = ["Amount", "Reason", "Operation", "StartDate", "ExpiryDate", "TransactionUUID"] @field_validator('operation') def operation_validate_enum(cls, value): """Validates the enum""" - if value not in set(['addition', 'deduction']): - raise ValueError("must be one of enum values ('addition', 'deduction')") + if value not in set(['addition', 'subtraction']): + raise ValueError("must be one of enum values ('addition', 'subtraction')") return value model_config = ConfigDict( @@ -96,7 +98,8 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: "Reason": obj.get("Reason"), "Operation": obj.get("Operation"), "StartDate": obj.get("StartDate"), - "ExpiryDate": obj.get("ExpiryDate") + "ExpiryDate": obj.get("ExpiryDate"), + "TransactionUUID": obj.get("TransactionUUID") }) return _obj diff --git a/talon_one/models/added_deducted_points_notification.py b/talon_one/models/added_deducted_points_notification.py index 6a12450..f692fad 100644 --- a/talon_one/models/added_deducted_points_notification.py +++ b/talon_one/models/added_deducted_points_notification.py @@ -21,6 +21,7 @@ from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr, field_validator from typing import Any, ClassVar, Dict, List, Optional, Union from typing_extensions import Annotated +from uuid import UUID from typing import Optional, Set from typing_extensions import Self @@ -38,10 +39,11 @@ class AddedDeductedPointsNotification(BaseModel): user_id: StrictInt = Field(description="The ID of the employee who added or deducted points.", alias="UserID") amount: Union[StrictFloat, StrictInt] = Field(description="The amount of added or deducted loyalty points.", alias="Amount") expiry_date: Optional[datetime] = Field(default=None, description="The expiration date for loyalty points.", alias="ExpiryDate") - operation: StrictStr = Field(description="The action (addition or deduction) made with loyalty points.", alias="Operation") + operation: StrictStr = Field(description="The action (addition or subtraction) made with loyalty points.", alias="Operation") reason: StrictStr = Field(description="The reason for the points addition or deduction.", alias="Reason") start_date: Optional[datetime] = Field(default=None, description="The start date for loyalty points.", alias="StartDate") - __properties: ClassVar[List[str]] = ["EmployeeName", "LoyaltyProgramID", "NotificationType", "ProfileIntegrationID", "SessionIntegrationID", "SubledgerID", "TypeOfChange", "UserID", "Amount", "ExpiryDate", "Operation", "Reason", "StartDate"] + transaction_uuid: UUID = Field(description="The identifier of the transaction in the loyalty ledger.", alias="TransactionUUID") + __properties: ClassVar[List[str]] = ["EmployeeName", "LoyaltyProgramID", "NotificationType", "ProfileIntegrationID", "SessionIntegrationID", "SubledgerID", "TypeOfChange", "UserID", "Amount", "ExpiryDate", "Operation", "Reason", "StartDate", "TransactionUUID"] @field_validator('notification_type') def notification_type_validate_enum(cls, value): @@ -60,8 +62,8 @@ def type_of_change_validate_enum(cls, value): @field_validator('operation') def operation_validate_enum(cls, value): """Validates the enum""" - if value not in set(['addition', 'deduction']): - raise ValueError("must be one of enum values ('addition', 'deduction')") + if value not in set(['addition', 'subtraction']): + raise ValueError("must be one of enum values ('addition', 'subtraction')") return value model_config = ConfigDict( @@ -127,7 +129,8 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: "ExpiryDate": obj.get("ExpiryDate"), "Operation": obj.get("Operation"), "Reason": obj.get("Reason"), - "StartDate": obj.get("StartDate") + "StartDate": obj.get("StartDate"), + "TransactionUUID": obj.get("TransactionUUID") }) return _obj diff --git a/talon_one/models/application_api_health.py b/talon_one/models/application_api_health.py index 9edcabc..f086069 100644 --- a/talon_one/models/application_api_health.py +++ b/talon_one/models/application_api_health.py @@ -27,7 +27,7 @@ class ApplicationApiHealth(BaseModel): """ Report of health of the API connection of an application. """ # noqa: E501 - summary: StrictStr = Field(description="One-word summary of the health of the API connection of an application. Possible values are: - `OK`: The Application has received only successful API requests in the last 5 minutes. - `WARNING`: The Application received at least one failed request in the last 50 minutes. - `ERROR`: More than 50% of received requests failed. - `CRITICAL`: All received requests failed. - `NONE`: During the last 5 minutes, the Application hasn't recorded any integration API requests. ") + summary: StrictStr = Field(description="One-word summary of the health of the API connection of an application. Possible values are: - `OK`: The Application has received only successful API requests in the last 5 minutes. - `WARNING`: The Application received at least one failed request in the last 5 minutes. - `ERROR`: More than 50% of received requests failed. - `CRITICAL`: All received requests failed. - `NONE`: During the last 5 minutes, the Application hasn't recorded any integration API requests. ") last_used: datetime = Field(description="time of last request relevant to the API health test.", alias="lastUsed") __properties: ClassVar[List[str]] = ["summary", "lastUsed"] diff --git a/talon_one/models/card_added_deducted_points_notification.py b/talon_one/models/card_added_deducted_points_notification.py index 327c7ae..3ef4aa7 100644 --- a/talon_one/models/card_added_deducted_points_notification.py +++ b/talon_one/models/card_added_deducted_points_notification.py @@ -21,6 +21,7 @@ from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr, field_validator from typing import Any, ClassVar, Dict, List, Optional, Union from typing_extensions import Annotated +from uuid import UUID from typing import Optional, Set from typing_extensions import Self @@ -40,10 +41,11 @@ class CardAddedDeductedPointsNotification(BaseModel): users_per_card_limit: StrictInt = Field(description="The max amount of user profiles with whom a card can be shared. This can be set to `0` for no limit.", alias="UsersPerCardLimit") amount: Union[StrictFloat, StrictInt] = Field(description="The amount of added or deducted loyalty points.", alias="Amount") expiry_date: Optional[datetime] = Field(default=None, description="The expiration date for loyalty points.", alias="ExpiryDate") - operation: StrictStr = Field(description="The action (addition or deduction) made with loyalty points.", alias="Operation") + operation: StrictStr = Field(description="The action (addition or subtraction) made with loyalty points.", alias="Operation") reason: StrictStr = Field(description="The reason for the points addition or deduction.", alias="Reason") start_date: Optional[datetime] = Field(default=None, description="The start date for loyalty points.", alias="StartDate") - __properties: ClassVar[List[str]] = ["CardIdentifier", "EmployeeName", "LoyaltyProgramID", "NotificationType", "ProfileIntegrationIDs", "SessionIntegrationID", "SubledgerID", "TypeOfChange", "UserID", "UsersPerCardLimit", "Amount", "ExpiryDate", "Operation", "Reason", "StartDate"] + transaction_uuid: UUID = Field(description="The identifier of the transaction in the loyalty ledger.", alias="TransactionUUID") + __properties: ClassVar[List[str]] = ["CardIdentifier", "EmployeeName", "LoyaltyProgramID", "NotificationType", "ProfileIntegrationIDs", "SessionIntegrationID", "SubledgerID", "TypeOfChange", "UserID", "UsersPerCardLimit", "Amount", "ExpiryDate", "Operation", "Reason", "StartDate", "TransactionUUID"] @field_validator('notification_type') def notification_type_validate_enum(cls, value): @@ -62,8 +64,8 @@ def type_of_change_validate_enum(cls, value): @field_validator('operation') def operation_validate_enum(cls, value): """Validates the enum""" - if value not in set(['addition', 'deduction']): - raise ValueError("must be one of enum values ('addition', 'deduction')") + if value not in set(['addition', 'subtraction']): + raise ValueError("must be one of enum values ('addition', 'subtraction')") return value model_config = ConfigDict( @@ -131,7 +133,8 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: "ExpiryDate": obj.get("ExpiryDate"), "Operation": obj.get("Operation"), "Reason": obj.get("Reason"), - "StartDate": obj.get("StartDate") + "StartDate": obj.get("StartDate"), + "TransactionUUID": obj.get("TransactionUUID") }) return _obj diff --git a/talon_one/models/card_ledger_transaction_log_entry.py b/talon_one/models/card_ledger_transaction_log_entry.py index 7671eda..8b3167e 100644 --- a/talon_one/models/card_ledger_transaction_log_entry.py +++ b/talon_one/models/card_ledger_transaction_log_entry.py @@ -31,7 +31,7 @@ class CardLedgerTransactionLogEntry(BaseModel): transaction_uuid: StrictStr = Field(description="Unique identifier of the transaction in the UUID format.", alias="transactionUUID") created: datetime = Field(description="Date and time the loyalty card transaction occurred.") program_id: StrictInt = Field(description="ID of the loyalty program.", alias="programId") - card_identifier: Annotated[str, Field(min_length=4, strict=True, max_length=108)] = Field(description="The alphanumeric identifier of the loyalty card. ", alias="cardIdentifier") + card_identifier: Annotated[str, Field(min_length=4, strict=True, max_length=108)] = Field(description="The identifier of the loyalty card, which must match the regular expression `^[A-Za-z0-9._%+@-]+$`. ", alias="cardIdentifier") application_id: Optional[StrictInt] = Field(default=None, description="The ID of the Application that owns this entity.", alias="applicationId") session_id: Optional[StrictInt] = Field(default=None, description="The **internal** ID of the session. ", alias="sessionId") customer_session_id: Optional[Annotated[str, Field(strict=True, max_length=255)]] = Field(default=None, description="ID of the customer session where the transaction occurred.", alias="customerSessionId") @@ -47,8 +47,8 @@ class CardLedgerTransactionLogEntry(BaseModel): @field_validator('card_identifier') def card_identifier_validate_regular_expression(cls, value): """Validates the regular expression""" - if not re.match(r"^[A-Za-z0-9_-]*$", value): - raise ValueError(r"must validate the regular expression /^[A-Za-z0-9_-]*$/") + if not re.match(r"^[A-Za-z0-9._%+@-]+$", value): + raise ValueError(r"must validate the regular expression /^[A-Za-z0-9._%+@-]+$/") return value @field_validator('type') diff --git a/talon_one/models/card_ledger_transaction_log_entry_integration_api.py b/talon_one/models/card_ledger_transaction_log_entry_integration_api.py index 38dd002..a136c7a 100644 --- a/talon_one/models/card_ledger_transaction_log_entry_integration_api.py +++ b/talon_one/models/card_ledger_transaction_log_entry_integration_api.py @@ -31,7 +31,7 @@ class CardLedgerTransactionLogEntryIntegrationAPI(BaseModel): transaction_uuid: StrictStr = Field(description="Unique identifier of the transaction in the UUID format.", alias="transactionUUID") created: datetime = Field(description="Date and time the loyalty card transaction occurred.") program_id: StrictInt = Field(description="ID of the loyalty program.", alias="programId") - card_identifier: Annotated[str, Field(min_length=4, strict=True, max_length=108)] = Field(description="The alphanumeric identifier of the loyalty card. ", alias="cardIdentifier") + card_identifier: Annotated[str, Field(min_length=4, strict=True, max_length=108)] = Field(description="The identifier of the loyalty card, which must match the regular expression `^[A-Za-z0-9._%+@-]+$`. ", alias="cardIdentifier") customer_session_id: Optional[Annotated[str, Field(strict=True, max_length=255)]] = Field(default=None, description="ID of the customer session where the transaction occurred.", alias="customerSessionId") type: Annotated[str, Field(strict=True, max_length=255)] = Field(description="Type of transaction. Possible values: - `addition`: Signifies added points. - `subtraction`: Signifies deducted points. ") name: Annotated[str, Field(strict=True, max_length=255)] = Field(description="Name or reason of the loyalty ledger transaction.") @@ -48,8 +48,8 @@ class CardLedgerTransactionLogEntryIntegrationAPI(BaseModel): @field_validator('card_identifier') def card_identifier_validate_regular_expression(cls, value): """Validates the regular expression""" - if not re.match(r"^[A-Za-z0-9_-]*$", value): - raise ValueError(r"must validate the regular expression /^[A-Za-z0-9_-]*$/") + if not re.match(r"^[A-Za-z0-9._%+@-]+$", value): + raise ValueError(r"must validate the regular expression /^[A-Za-z0-9._%+@-]+$/") return value @field_validator('type') diff --git a/talon_one/models/code_generator_settings.py b/talon_one/models/code_generator_settings.py index 160fe70..b12b0d3 100644 --- a/talon_one/models/code_generator_settings.py +++ b/talon_one/models/code_generator_settings.py @@ -34,8 +34,8 @@ class CodeGeneratorSettings(BaseModel): @field_validator('coupon_pattern') def coupon_pattern_validate_regular_expression(cls, value): """Validates the regular expression""" - if not re.match(r"^[A-Za-z0-9_#-]*$", value): - raise ValueError(r"must validate the regular expression /^[A-Za-z0-9_#-]*$/") + if not re.match(r"^[A-Za-z0-9._%+@#-]+$", value): + raise ValueError(r"must validate the regular expression /^[A-Za-z0-9._%+@#-]+$/") return value model_config = ConfigDict( diff --git a/talon_one/models/create_achievement_v2.py b/talon_one/models/create_achievement_v2.py new file mode 100644 index 0000000..43e588e --- /dev/null +++ b/talon_one/models/create_achievement_v2.py @@ -0,0 +1,140 @@ +# coding: utf-8 + +""" + 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: + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from datetime import datetime +from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictFloat, StrictInt, StrictStr, field_validator +from typing import Any, ClassVar, Dict, List, Optional, Union +from typing_extensions import Annotated +from typing import Optional, Set +from typing_extensions import Self + +class CreateAchievementV2(BaseModel): + """ + CreateAchievementV2 + """ # noqa: E501 + name: Annotated[str, Field(min_length=1, strict=True, max_length=1000)] = Field(description="The internal name of the achievement used in API requests. **Note**: The name should start with a letter. This cannot be changed after the achievement has been created. ") + title: StrictStr = Field(description="The display name for the achievement in the Campaign Manager.") + description: StrictStr = Field(description="A description of the achievement.") + target: Union[StrictFloat, StrictInt] = Field(description="The required number of actions or the transactional milestone to complete the achievement.") + period: Optional[StrictStr] = Field(default=None, description="The relative duration after which the achievement ends and resets for a particular customer profile. **Note**: The `period` does not start when the achievement is created. The period is a **positive real number** followed by one letter indicating the time unit. Examples: `30s`, `40m`, `1h`, `5D`, `7W`, `10M`, `15Y`. Available units: - `s`: seconds - `m`: minutes - `h`: hours - `D`: days - `W`: weeks - `M`: months - `Y`: years You can also round certain units down to the beginning of period and up to the end of period.: - `_D` for rounding down days only. Signifies the start of the day. Example: `30D_D` - `_U` for rounding up days, weeks, months and years. Signifies the end of the day, week, month or year. Example: `23W_U` **Note**: You can either use the round down and round up option or set an absolute period. ") + recurrence_policy: Optional[StrictStr] = Field(default=None, description="The policy that determines if and how the achievement recurs. - `no_recurrence`: The achievement can be completed only once. - `on_expiration`: The achievement resets after it expires and becomes available again. - `on_completion`: When the customer progress status reaches `completed`, the achievement resets and becomes available again. ", alias="recurrencePolicy") + activation_policy: Optional[StrictStr] = Field(default=None, description="The policy that determines how the achievement starts, ends, or resets. - `user_action`: The achievement ends or resets relative to when the customer started the achievement. - `fixed_schedule`: The achievement starts, ends, or resets for all customers following a fixed schedule. ", alias="activationPolicy") + fixed_start_date: Optional[datetime] = Field(default=None, description="The achievement's start date when `activationPolicy` is set to `fixed_schedule`. **Note:** It must be an RFC3339 timestamp string. ", alias="fixedStartDate") + end_date: Optional[datetime] = Field(default=None, description="The achievement's end date. If defined, customers cannot participate in the achievement after this date. **Note:** It must be an RFC3339 timestamp string. ", alias="endDate") + allow_rollback_after_completion: Optional[StrictBool] = Field(default=None, description="When `true`, customer progress can be rolled back in completed achievements.", alias="allowRollbackAfterCompletion") + sandbox: StrictBool = Field(description="Indicates if this achievement is a live or sandbox achievement. Achievements of a given type can only be connected to Applications of the same type.") + subscribed_applications: Annotated[List[StrictInt], Field(min_length=0)] = Field(description="A list containing the IDs of all applications that are subscribed to A list containing the IDs of all Applications that are connected to this achievement.", alias="subscribedApplications") + timezone: Annotated[str, Field(min_length=1, strict=True)] = Field(description="A string containing an IANA timezone descriptor.") + __properties: ClassVar[List[str]] = ["name", "title", "description", "target", "period", "recurrencePolicy", "activationPolicy", "fixedStartDate", "endDate", "allowRollbackAfterCompletion", "sandbox", "subscribedApplications", "timezone"] + + @field_validator('name') + def name_validate_regular_expression(cls, value): + """Validates the regular expression""" + if not re.match(r"^[a-zA-Z]\w+$", value): + raise ValueError(r"must validate the regular expression /^[a-zA-Z]\w+$/") + return value + + @field_validator('recurrence_policy') + def recurrence_policy_validate_enum(cls, value): + """Validates the enum""" + if value is None: + return value + + if value not in set(['no_recurrence', 'on_expiration', 'on_completion']): + raise ValueError("must be one of enum values ('no_recurrence', 'on_expiration', 'on_completion')") + return value + + @field_validator('activation_policy') + def activation_policy_validate_enum(cls, value): + """Validates the enum""" + if value is None: + return value + + if value not in set(['user_action', 'fixed_schedule']): + raise ValueError("must be one of enum values ('user_action', 'fixed_schedule')") + return value + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of CreateAchievementV2 from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + """ + excluded_fields: Set[str] = set([ + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of CreateAchievementV2 from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "name": obj.get("name"), + "title": obj.get("title"), + "description": obj.get("description"), + "target": obj.get("target"), + "period": obj.get("period"), + "recurrencePolicy": obj.get("recurrencePolicy"), + "activationPolicy": obj.get("activationPolicy"), + "fixedStartDate": obj.get("fixedStartDate"), + "endDate": obj.get("endDate"), + "allowRollbackAfterCompletion": obj.get("allowRollbackAfterCompletion"), + "sandbox": obj.get("sandbox"), + "subscribedApplications": obj.get("subscribedApplications"), + "timezone": obj.get("timezone") + }) + return _obj + + diff --git a/talon_one/models/deduct_loyalty_points_effect_props.py b/talon_one/models/deduct_loyalty_points_effect_props.py index 02582dd..78f0656 100644 --- a/talon_one/models/deduct_loyalty_points_effect_props.py +++ b/talon_one/models/deduct_loyalty_points_effect_props.py @@ -42,8 +42,8 @@ def card_identifier_validate_regular_expression(cls, value): if value is None: return value - if not re.match(r"^[A-Za-z0-9_-]*$", value): - raise ValueError(r"must validate the regular expression /^[A-Za-z0-9_-]*$/") + if not re.match(r"^[A-Za-z0-9._%+@-]+$", value): + raise ValueError(r"must validate the regular expression /^[A-Za-z0-9._%+@-]+$/") return value model_config = ConfigDict( diff --git a/talon_one/models/expiring_card_points_data.py b/talon_one/models/expiring_card_points_data.py index a276333..6be1c8d 100644 --- a/talon_one/models/expiring_card_points_data.py +++ b/talon_one/models/expiring_card_points_data.py @@ -32,7 +32,7 @@ class ExpiringCardPointsData(BaseModel): loyalty_program_id: Annotated[int, Field(strict=True, ge=1)] = Field(description="The ID of the loyalty program.", alias="LoyaltyProgramID") amount_of_expiring_points: Union[StrictFloat, StrictInt] = Field(description="The amount of loyalty points that will be expired soon.", alias="AmountOfExpiringPoints") subledger_id: StrictStr = Field(description="The ID of the subledger within the loyalty program where these points were added.", alias="SubledgerID") - card_identifier: StrictStr = Field(description="The alphanumeric identifier of the loyalty card.", alias="CardIdentifier") + card_identifier: StrictStr = Field(description="The identifier of the loyalty card, `which must match the regular expression `^[A-Za-z0-9._%+@-]+$`. ", alias="CardIdentifier") users_per_card_limit: Annotated[int, Field(strict=True, ge=0)] = Field(description="The maximum number of customer profiles with which a card can be shared. This can be set to `0` for no limit. ", alias="UsersPerCardLimit") profiles: List[StrictStr] = Field(description="The integration IDs of the customer profiles linked to the card.", alias="Profiles") __properties: ClassVar[List[str]] = ["ExpiryDate", "LoyaltyProgramID", "AmountOfExpiringPoints", "SubledgerID", "CardIdentifier", "UsersPerCardLimit", "Profiles"] diff --git a/talon_one/models/generate_loyalty_card.py b/talon_one/models/generate_loyalty_card.py index 13200e5..79a19a6 100644 --- a/talon_one/models/generate_loyalty_card.py +++ b/talon_one/models/generate_loyalty_card.py @@ -29,7 +29,7 @@ class GenerateLoyaltyCard(BaseModel): """ # noqa: E501 status: Optional[StrictStr] = Field(default='active', description="Status of the loyalty card.") customer_profile_ids: Optional[List[StrictStr]] = Field(default=None, description="Integration IDs of the customer profiles linked to the card.", alias="customerProfileIds") - card_identifier: Optional[Annotated[str, Field(min_length=4, strict=True, max_length=108)]] = Field(default=None, description="The alphanumeric identifier of the loyalty card. ", alias="cardIdentifier") + card_identifier: Optional[Annotated[str, Field(min_length=4, strict=True, max_length=108)]] = Field(default=None, description="The identifier of the loyalty card, which must match the regular expression `^[A-Za-z0-9._%+@-]+$`. ", alias="cardIdentifier") __properties: ClassVar[List[str]] = ["status", "customerProfileIds", "cardIdentifier"] @field_validator('status') @@ -48,8 +48,8 @@ def card_identifier_validate_regular_expression(cls, value): if value is None: return value - if not re.match(r"^[A-Za-z0-9_-]*$", value): - raise ValueError(r"must validate the regular expression /^[A-Za-z0-9_-]*$/") + if not re.match(r"^[A-Za-z0-9._%+@-]+$", value): + raise ValueError(r"must validate the regular expression /^[A-Za-z0-9._%+@-]+$/") return value model_config = ConfigDict( diff --git a/talon_one/models/integration_campaign.py b/talon_one/models/integration_campaign.py new file mode 100644 index 0000000..0e3857e --- /dev/null +++ b/talon_one/models/integration_campaign.py @@ -0,0 +1,122 @@ +# coding: utf-8 + +""" + 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: + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from datetime import datetime +from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr, field_validator +from typing import Any, ClassVar, Dict, List, Optional +from typing_extensions import Annotated +from typing import Optional, Set +from typing_extensions import Self + +class IntegrationCampaign(BaseModel): + """ + IntegrationCampaign + """ # noqa: E501 + application_id: StrictInt = Field(description="The ID of the Application that owns this entity.", alias="applicationId") + id: StrictInt = Field(description="Unique ID of Campaign.") + name: Annotated[str, Field(min_length=1, strict=True)] = Field(description="A user-facing name for this campaign.") + description: Optional[StrictStr] = Field(default=None, description="A detailed description of the campaign.") + start_time: Optional[datetime] = Field(default=None, description="Timestamp when the campaign will become active.", alias="startTime") + end_time: Optional[datetime] = Field(default=None, description="Timestamp when the campaign will become inactive.", alias="endTime") + attributes: Optional[Dict[str, Any]] = Field(default=None, description="Arbitrary properties associated with this campaign.") + state: StrictStr = Field(description="The state of the campaign. ") + tags: Annotated[List[Annotated[str, Field(min_length=1, strict=True, max_length=50)]], Field(max_length=50)] = Field(description="A list of tags for the campaign.") + features: List[StrictStr] = Field(description="The features enabled in this campaign.") + __properties: ClassVar[List[str]] = ["applicationId", "id", "name", "description", "startTime", "endTime", "attributes", "state", "tags", "features"] + + @field_validator('state') + def state_validate_enum(cls, value): + """Validates the enum""" + if value not in set(['enabled']): + raise ValueError("must be one of enum values ('enabled')") + return value + + @field_validator('features') + def features_validate_enum(cls, value): + """Validates the enum""" + for i in value: + if i not in set(['coupons', 'referrals', 'loyalty', 'giveaways', 'strikethrough', 'achievements']): + raise ValueError("each list item must be one of ('coupons', 'referrals', 'loyalty', 'giveaways', 'strikethrough', 'achievements')") + return value + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of IntegrationCampaign from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + """ + excluded_fields: Set[str] = set([ + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of IntegrationCampaign from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "applicationId": obj.get("applicationId"), + "id": obj.get("id"), + "name": obj.get("name"), + "description": obj.get("description"), + "startTime": obj.get("startTime"), + "endTime": obj.get("endTime"), + "attributes": obj.get("attributes"), + "state": obj.get("state") if obj.get("state") is not None else 'enabled', + "tags": obj.get("tags"), + "features": obj.get("features") + }) + return _obj + + diff --git a/talon_one/models/integration_hub_event_payload_loyalty_profile_based_points_changed_notification_action.py b/talon_one/models/integration_hub_event_payload_loyalty_profile_based_points_changed_notification_action.py index 0d2ad6e..9e06dda 100644 --- a/talon_one/models/integration_hub_event_payload_loyalty_profile_based_points_changed_notification_action.py +++ b/talon_one/models/integration_hub_event_payload_loyalty_profile_based_points_changed_notification_action.py @@ -20,6 +20,7 @@ from datetime import datetime from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr, field_validator from typing import Any, ClassVar, Dict, List, Optional, Union +from uuid import UUID from typing import Optional, Set from typing_extensions import Self @@ -32,13 +33,14 @@ class IntegrationHubEventPayloadLoyaltyProfileBasedPointsChangedNotificationActi operation: StrictStr = Field(alias="Operation") start_date: Optional[datetime] = Field(default=None, alias="StartDate") expiry_date: Optional[datetime] = Field(default=None, alias="ExpiryDate") - __properties: ClassVar[List[str]] = ["Amount", "Reason", "Operation", "StartDate", "ExpiryDate"] + transaction_uuid: UUID = Field(description="The identifier of the transaction in the loyalty ledger.", alias="TransactionUUID") + __properties: ClassVar[List[str]] = ["Amount", "Reason", "Operation", "StartDate", "ExpiryDate", "TransactionUUID"] @field_validator('operation') def operation_validate_enum(cls, value): """Validates the enum""" - if value not in set(['addition', 'deduction']): - raise ValueError("must be one of enum values ('addition', 'deduction')") + if value not in set(['addition', 'subtraction']): + raise ValueError("must be one of enum values ('addition', 'subtraction')") return value model_config = ConfigDict( @@ -96,7 +98,8 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: "Reason": obj.get("Reason"), "Operation": obj.get("Operation"), "StartDate": obj.get("StartDate"), - "ExpiryDate": obj.get("ExpiryDate") + "ExpiryDate": obj.get("ExpiryDate"), + "TransactionUUID": obj.get("TransactionUUID") }) return _obj diff --git a/talon_one/models/loyalty_card.py b/talon_one/models/loyalty_card.py index 28f30a5..0774d0b 100644 --- a/talon_one/models/loyalty_card.py +++ b/talon_one/models/loyalty_card.py @@ -37,7 +37,7 @@ class LoyaltyCard(BaseModel): program_title: Optional[StrictStr] = Field(default=None, description="The Campaign Manager-displayed name of the loyalty program that owns this entity.", alias="programTitle") status: StrictStr = Field(description="Status of the loyalty card. Can be `active` or `inactive`. ") block_reason: Optional[StrictStr] = Field(default=None, description="Reason for transferring and blocking the loyalty card. ", alias="blockReason") - identifier: Annotated[str, Field(min_length=4, strict=True, max_length=108)] = Field(description="The alphanumeric identifier of the loyalty card. ") + identifier: Annotated[str, Field(min_length=4, strict=True, max_length=108)] = Field(description="The identifier of the loyalty card, which must match the regular expression `^[A-Za-z0-9._%+@-]+$`. ") users_per_card_limit: Annotated[int, Field(strict=True, ge=0)] = Field(description="The max amount of customer profiles that can be linked to the card. 0 means unlimited. ", alias="usersPerCardLimit") profiles: Optional[List[LoyaltyCardProfileRegistration]] = Field(default=None, description="Integration IDs of the customers profiles linked to the card.") ledger: Optional[LedgerInfo] = Field(default=None, description="Displays point balances of the card in the main ledger of the loyalty program.") @@ -51,8 +51,8 @@ class LoyaltyCard(BaseModel): @field_validator('identifier') def identifier_validate_regular_expression(cls, value): """Validates the regular expression""" - if not re.match(r"^[A-Za-z0-9_-]*$", value): - raise ValueError(r"must validate the regular expression /^[A-Za-z0-9_-]*$/") + if not re.match(r"^[A-Za-z0-9._%+@-]+$", value): + raise ValueError(r"must validate the regular expression /^[A-Za-z0-9._%+@-]+$/") return value @field_validator('old_card_identifier') @@ -61,8 +61,8 @@ def old_card_identifier_validate_regular_expression(cls, value): if value is None: return value - if not re.match(r"^[A-Za-z0-9_-]*$", value): - raise ValueError(r"must validate the regular expression /^[A-Za-z0-9_-]*$/") + if not re.match(r"^[A-Za-z0-9._%+@-]+$", value): + raise ValueError(r"must validate the regular expression /^[A-Za-z0-9._%+@-]+$/") return value @field_validator('new_card_identifier') @@ -71,8 +71,8 @@ def new_card_identifier_validate_regular_expression(cls, value): if value is None: return value - if not re.match(r"^[A-Za-z0-9_-]*$", value): - raise ValueError(r"must validate the regular expression /^[A-Za-z0-9_-]*$/") + if not re.match(r"^[A-Za-z0-9._%+@-]+$", value): + raise ValueError(r"must validate the regular expression /^[A-Za-z0-9._%+@-]+$/") return value model_config = ConfigDict( diff --git a/talon_one/models/loyalty_program_transaction.py b/talon_one/models/loyalty_program_transaction.py index 28b0ec9..d98e0e8 100644 --- a/talon_one/models/loyalty_program_transaction.py +++ b/talon_one/models/loyalty_program_transaction.py @@ -40,7 +40,7 @@ class LoyaltyProgramTransaction(BaseModel): start_date: Annotated[str, Field(strict=True, max_length=64)] = Field(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. ", alias="startDate") expiry_date: StrictStr = Field(description="When points expire. Possible values: - `unlimited`: Points have no expiration date. - a timestamp value: Points expire at a given date and time. ", alias="expiryDate") customer_profile_id: Optional[Annotated[str, Field(strict=True, max_length=255)]] = Field(default=None, description="Customer profile integration ID used in the loyalty program.", alias="customerProfileId") - card_identifier: Optional[Annotated[str, Field(min_length=4, strict=True, max_length=108)]] = Field(default=None, description="The alphanumeric identifier of the loyalty card. ", alias="cardIdentifier") + card_identifier: Optional[Annotated[str, Field(min_length=4, strict=True, max_length=108)]] = Field(default=None, description="The identifier of the loyalty card, which must match the regular expression `^[A-Za-z0-9._%+@-]+$`. ", alias="cardIdentifier") subledger_id: Annotated[str, Field(strict=True, max_length=64)] = Field(description="ID of the subledger.", alias="subledgerId") customer_session_id: Optional[Annotated[str, Field(strict=True, max_length=255)]] = Field(default=None, description="ID of the customer session where the transaction occurred.", alias="customerSessionId") import_id: Optional[StrictInt] = Field(default=None, description="ID of the import where the transaction occurred.", alias="importId") @@ -65,8 +65,8 @@ def card_identifier_validate_regular_expression(cls, value): if value is None: return value - if not re.match(r"^[A-Za-z0-9_-]*$", value): - raise ValueError(r"must validate the regular expression /^[A-Za-z0-9_-]*$/") + if not re.match(r"^[A-Za-z0-9._%+@-]+$", value): + raise ValueError(r"must validate the regular expression /^[A-Za-z0-9._%+@-]+$/") return value model_config = ConfigDict( diff --git a/talon_one/models/rollback_added_loyalty_points_effect_props.py b/talon_one/models/rollback_added_loyalty_points_effect_props.py index f631f15..93895a8 100644 --- a/talon_one/models/rollback_added_loyalty_points_effect_props.py +++ b/talon_one/models/rollback_added_loyalty_points_effect_props.py @@ -43,8 +43,8 @@ def card_identifier_validate_regular_expression(cls, value): if value is None: return value - if not re.match(r"^[A-Za-z0-9_-]*$", value): - raise ValueError(r"must validate the regular expression /^[A-Za-z0-9_-]*$/") + if not re.match(r"^[A-Za-z0-9._%+@-]+$", value): + raise ValueError(r"must validate the regular expression /^[A-Za-z0-9._%+@-]+$/") return value model_config = ConfigDict( diff --git a/talon_one/models/rollback_deducted_loyalty_points_effect_props.py b/talon_one/models/rollback_deducted_loyalty_points_effect_props.py index db4d96b..2f469c3 100644 --- a/talon_one/models/rollback_deducted_loyalty_points_effect_props.py +++ b/talon_one/models/rollback_deducted_loyalty_points_effect_props.py @@ -44,8 +44,8 @@ def card_identifier_validate_regular_expression(cls, value): if value is None: return value - if not re.match(r"^[A-Za-z0-9_-]*$", value): - raise ValueError(r"must validate the regular expression /^[A-Za-z0-9_-]*$/") + if not re.match(r"^[A-Za-z0-9._%+@-]+$", value): + raise ValueError(r"must validate the regular expression /^[A-Za-z0-9._%+@-]+$/") return value model_config = ConfigDict( diff --git a/talon_one/models/strikethrough_set_discount_per_item_effect_props.py b/talon_one/models/strikethrough_set_discount_per_item_effect_props.py index 2493bd3..e6709ff 100644 --- a/talon_one/models/strikethrough_set_discount_per_item_effect_props.py +++ b/talon_one/models/strikethrough_set_discount_per_item_effect_props.py @@ -17,7 +17,7 @@ import re # noqa: F401 import json -from pydantic import BaseModel, ConfigDict, Field, StrictStr +from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr from typing import Any, ClassVar, Dict, List, Optional from typing import Optional, Set from typing_extensions import Self @@ -28,7 +28,8 @@ class StrikethroughSetDiscountPerItemEffectProps(BaseModel): """ # noqa: E501 name: StrictStr = Field(description="effect name.") value: Optional[Any] - __properties: ClassVar[List[str]] = ["name", "value"] + exclude_from_best_prior_price_history: Optional[StrictBool] = Field(default=None, alias="excludeFromBestPriorPriceHistory") + __properties: ClassVar[List[str]] = ["name", "value", "excludeFromBestPriorPriceHistory"] model_config = ConfigDict( populate_by_name=True, @@ -87,7 +88,8 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: _obj = cls.model_validate({ "name": obj.get("name"), - "value": obj.get("value") + "value": obj.get("value"), + "excludeFromBestPriorPriceHistory": obj.get("excludeFromBestPriorPriceHistory") }) return _obj diff --git a/talon_one/models/transfer_loyalty_card.py b/talon_one/models/transfer_loyalty_card.py index ac6f4bd..e167696 100644 --- a/talon_one/models/transfer_loyalty_card.py +++ b/talon_one/models/transfer_loyalty_card.py @@ -27,15 +27,15 @@ class TransferLoyaltyCard(BaseModel): """ TransferLoyaltyCard """ # noqa: E501 - new_card_identifier: Annotated[str, Field(min_length=4, strict=True, max_length=108)] = Field(description="The alphanumeric identifier of the loyalty card. ", alias="newCardIdentifier") + new_card_identifier: Annotated[str, Field(min_length=4, strict=True, max_length=108)] = Field(description="The identifier of the loyalty card, which must match the regular expression `^[A-Za-z0-9._%+@-]+$`. ", alias="newCardIdentifier") block_reason: Optional[StrictStr] = Field(default=None, description="Reason for transferring and blocking the loyalty card. ", alias="blockReason") __properties: ClassVar[List[str]] = ["newCardIdentifier", "blockReason"] @field_validator('new_card_identifier') def new_card_identifier_validate_regular_expression(cls, value): """Validates the regular expression""" - if not re.match(r"^[A-Za-z0-9_-]*$", value): - raise ValueError(r"must validate the regular expression /^[A-Za-z0-9_-]*$/") + if not re.match(r"^[A-Za-z0-9._%+@-]+$", value): + raise ValueError(r"must validate the regular expression /^[A-Za-z0-9._%+@-]+$/") return value model_config = ConfigDict( diff --git a/talon_one/models/update_achievement_v2.py b/talon_one/models/update_achievement_v2.py new file mode 100644 index 0000000..42a5c09 --- /dev/null +++ b/talon_one/models/update_achievement_v2.py @@ -0,0 +1,143 @@ +# coding: utf-8 + +""" + 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: + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from datetime import datetime +from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictFloat, StrictInt, StrictStr, field_validator +from typing import Any, ClassVar, Dict, List, Optional, Union +from typing_extensions import Annotated +from typing import Optional, Set +from typing_extensions import Self + +class UpdateAchievementV2(BaseModel): + """ + UpdateAchievementV2 + """ # noqa: E501 + name: Optional[Annotated[str, Field(min_length=1, strict=True, max_length=1000)]] = Field(default=None, description="The internal name of the achievement used in API requests. **Note**: The name should start with a letter. This cannot be changed after the achievement has been created. ") + title: Optional[StrictStr] = Field(default=None, description="The display name for the achievement in the Campaign Manager.") + description: Optional[StrictStr] = Field(default=None, description="A description of the achievement.") + target: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="The required number of actions or the transactional milestone to complete the achievement.") + period: Optional[StrictStr] = Field(default=None, description="The relative duration after which the achievement ends and resets for a particular customer profile. **Note**: The `period` does not start when the achievement is created. The period is a **positive real number** followed by one letter indicating the time unit. Examples: `30s`, `40m`, `1h`, `5D`, `7W`, `10M`, `15Y`. Available units: - `s`: seconds - `m`: minutes - `h`: hours - `D`: days - `W`: weeks - `M`: months - `Y`: years You can also round certain units down to the beginning of period and up to the end of period.: - `_D` for rounding down days only. Signifies the start of the day. Example: `30D_D` - `_U` for rounding up days, weeks, months and years. Signifies the end of the day, week, month or year. Example: `23W_U` **Note**: You can either use the round down and round up option or set an absolute period. ") + recurrence_policy: Optional[StrictStr] = Field(default=None, description="The policy that determines if and how the achievement recurs. - `no_recurrence`: The achievement can be completed only once. - `on_expiration`: The achievement resets after it expires and becomes available again. - `on_completion`: When the customer progress status reaches `completed`, the achievement resets and becomes available again. ", alias="recurrencePolicy") + activation_policy: Optional[StrictStr] = Field(default=None, description="The policy that determines how the achievement starts, ends, or resets. - `user_action`: The achievement ends or resets relative to when the customer started the achievement. - `fixed_schedule`: The achievement starts, ends, or resets for all customers following a fixed schedule. ", alias="activationPolicy") + fixed_start_date: Optional[datetime] = Field(default=None, description="The achievement's start date when `activationPolicy` is set to `fixed_schedule`. **Note:** It must be an RFC3339 timestamp string. ", alias="fixedStartDate") + end_date: Optional[datetime] = Field(default=None, description="The achievement's end date. If defined, customers cannot participate in the achievement after this date. **Note:** It must be an RFC3339 timestamp string. ", alias="endDate") + allow_rollback_after_completion: Optional[StrictBool] = Field(default=None, description="When `true`, customer progress can be rolled back in completed achievements.", alias="allowRollbackAfterCompletion") + sandbox: Optional[StrictBool] = Field(default=None, description="Indicates if this achievement is a live or sandbox achievement. Achievements of a given type can only be connected to Applications of the same type.") + subscribed_applications: Optional[Annotated[List[StrictInt], Field(min_length=0)]] = Field(default=None, description="A list containing the IDs of all applications that are subscribed to A list containing the IDs of all Applications that are connected to this achievement.", alias="subscribedApplications") + timezone: Optional[Annotated[str, Field(min_length=1, strict=True)]] = Field(default=None, description="A string containing an IANA timezone descriptor.") + __properties: ClassVar[List[str]] = ["name", "title", "description", "target", "period", "recurrencePolicy", "activationPolicy", "fixedStartDate", "endDate", "allowRollbackAfterCompletion", "sandbox", "subscribedApplications", "timezone"] + + @field_validator('name') + def name_validate_regular_expression(cls, value): + """Validates the regular expression""" + if value is None: + return value + + if not re.match(r"^[a-zA-Z]\w+$", value): + raise ValueError(r"must validate the regular expression /^[a-zA-Z]\w+$/") + return value + + @field_validator('recurrence_policy') + def recurrence_policy_validate_enum(cls, value): + """Validates the enum""" + if value is None: + return value + + if value not in set(['no_recurrence', 'on_expiration', 'on_completion']): + raise ValueError("must be one of enum values ('no_recurrence', 'on_expiration', 'on_completion')") + return value + + @field_validator('activation_policy') + def activation_policy_validate_enum(cls, value): + """Validates the enum""" + if value is None: + return value + + if value not in set(['user_action', 'fixed_schedule']): + raise ValueError("must be one of enum values ('user_action', 'fixed_schedule')") + return value + + model_config = ConfigDict( + populate_by_name=True, + validate_assignment=True, + protected_namespaces=(), + ) + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of UpdateAchievementV2 from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + """ + excluded_fields: Set[str] = set([ + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of UpdateAchievementV2 from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _obj = cls.model_validate({ + "name": obj.get("name"), + "title": obj.get("title"), + "description": obj.get("description"), + "target": obj.get("target"), + "period": obj.get("period"), + "recurrencePolicy": obj.get("recurrencePolicy"), + "activationPolicy": obj.get("activationPolicy"), + "fixedStartDate": obj.get("fixedStartDate"), + "endDate": obj.get("endDate"), + "allowRollbackAfterCompletion": obj.get("allowRollbackAfterCompletion"), + "sandbox": obj.get("sandbox"), + "subscribedApplications": obj.get("subscribedApplications"), + "timezone": obj.get("timezone") + }) + return _obj + + diff --git a/test/test_achievement_additional_properties_v2.py b/test/test_achievement_additional_properties_v2.py new file mode 100644 index 0000000..d8f7db2 --- /dev/null +++ b/test/test_achievement_additional_properties_v2.py @@ -0,0 +1,55 @@ +# coding: utf-8 + +""" + 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: + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from talon_one.models.achievement_additional_properties_v2 import AchievementAdditionalPropertiesV2 + +class TestAchievementAdditionalPropertiesV2(unittest.TestCase): + """AchievementAdditionalPropertiesV2 unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def make_instance(self, include_optional) -> AchievementAdditionalPropertiesV2: + """Test AchievementAdditionalPropertiesV2 + include_optional is a boolean, when False only required + params are included, when True both required and + optional params are included """ + # uncomment below to create an instance of `AchievementAdditionalPropertiesV2` + """ + model = AchievementAdditionalPropertiesV2() + if include_optional: + return AchievementAdditionalPropertiesV2( + user_id = 1234, + created_by = 'John Doe', + has_progress = True, + status = 'inprogress' + ) + else: + return AchievementAdditionalPropertiesV2( + user_id = 1234, + ) + """ + + def testAchievementAdditionalPropertiesV2(self): + """Test AchievementAdditionalPropertiesV2""" + # inst_req_only = self.make_instance(include_optional=False) + # inst_req_and_optional = self.make_instance(include_optional=True) + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_achievement_base_v2.py b/test/test_achievement_base_v2.py new file mode 100644 index 0000000..f1da416 --- /dev/null +++ b/test/test_achievement_base_v2.py @@ -0,0 +1,63 @@ +# coding: utf-8 + +""" + 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: + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from talon_one.models.achievement_base_v2 import AchievementBaseV2 + +class TestAchievementBaseV2(unittest.TestCase): + """AchievementBaseV2 unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def make_instance(self, include_optional) -> AchievementBaseV2: + """Test AchievementBaseV2 + include_optional is a boolean, when False only required + params are included, when True both required and + optional params are included """ + # uncomment below to create an instance of `AchievementBaseV2` + """ + model = AchievementBaseV2() + if include_optional: + return AchievementBaseV2( + name = 'Order50Discount', + title = '50% off on 50th purchase.', + description = '50% off for every 50th purchase in a year.', + target = 50, + period = '1Y', + recurrence_policy = 'no_recurrence', + activation_policy = 'fixed_schedule', + fixed_start_date = '2024-01-15T15:04:05+07:00', + end_date = '2024-01-15T15:04:05+07:00', + allow_rollback_after_completion = False, + sandbox = True, + subscribed_applications = [132, 97], + timezone = 'Europe/Berlin' + ) + else: + return AchievementBaseV2( + ) + """ + + def testAchievementBaseV2(self): + """Test AchievementBaseV2""" + # inst_req_only = self.make_instance(include_optional=False) + # inst_req_and_optional = self.make_instance(include_optional=True) + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_achievement_reference.py b/test/test_achievement_reference.py new file mode 100644 index 0000000..0ffb444 --- /dev/null +++ b/test/test_achievement_reference.py @@ -0,0 +1,58 @@ +# coding: utf-8 + +""" + 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: + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from talon_one.models.achievement_reference import AchievementReference + +class TestAchievementReference(unittest.TestCase): + """AchievementReference unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def make_instance(self, include_optional) -> AchievementReference: + """Test AchievementReference + include_optional is a boolean, when False only required + params are included, when True both required and + optional params are included """ + # uncomment below to create an instance of `AchievementReference` + """ + model = AchievementReference() + if include_optional: + return AchievementReference( + achievement_id = 12, + application_id = 101, + application_name = 'North America Storefront', + campaign_id = 4501 + ) + else: + return AchievementReference( + achievement_id = 12, + application_id = 101, + application_name = 'North America Storefront', + campaign_id = 4501, + ) + """ + + def testAchievementReference(self): + """Test AchievementReference""" + # inst_req_only = self.make_instance(include_optional=False) + # inst_req_and_optional = self.make_instance(include_optional=True) + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_achievement_v2.py b/test/test_achievement_v2.py new file mode 100644 index 0000000..82aaa3a --- /dev/null +++ b/test/test_achievement_v2.py @@ -0,0 +1,72 @@ +# coding: utf-8 + +""" + 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: + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from talon_one.models.achievement_v2 import AchievementV2 + +class TestAchievementV2(unittest.TestCase): + """AchievementV2 unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def make_instance(self, include_optional) -> AchievementV2: + """Test AchievementV2 + include_optional is a boolean, when False only required + params are included, when True both required and + optional params are included """ + # uncomment below to create an instance of `AchievementV2` + """ + model = AchievementV2() + if include_optional: + return AchievementV2( + id = 6, + created = '2020-06-10T09:05:27.993483Z', + name = 'Order50Discount', + title = '50% off on 50th purchase.', + description = '50% off for every 50th purchase in a year.', + target = 50, + period = '1Y', + recurrence_policy = 'no_recurrence', + activation_policy = 'fixed_schedule', + fixed_start_date = '2024-01-15T15:04:05+07:00', + end_date = '2024-01-15T15:04:05+07:00', + allow_rollback_after_completion = False, + sandbox = True, + subscribed_applications = [132, 97], + timezone = 'Europe/Berlin', + user_id = 1234, + created_by = 'John Doe', + has_progress = True, + status = 'inprogress' + ) + else: + return AchievementV2( + id = 6, + created = '2020-06-10T09:05:27.993483Z', + user_id = 1234, + ) + """ + + def testAchievementV2(self): + """Test AchievementV2""" + # inst_req_only = self.make_instance(include_optional=False) + # inst_req_and_optional = self.make_instance(include_optional=True) + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_added_deducted_points_balances_action.py b/test/test_added_deducted_points_balances_action.py index 4a7281f..c5da8b6 100644 --- a/test/test_added_deducted_points_balances_action.py +++ b/test/test_added_deducted_points_balances_action.py @@ -39,13 +39,15 @@ def make_instance(self, include_optional) -> AddedDeductedPointsBalancesAction: reason = 'Compensation', operation = 'addition', start_date = '2023-01-24T14:15:22Z', - expiry_date = '2024-01-24T14:15:22Z' + expiry_date = '2024-01-24T14:15:22Z', + transaction_uuid = '' ) else: return AddedDeductedPointsBalancesAction( amount = 10.99, reason = 'Compensation', operation = 'addition', + transaction_uuid = '', ) """ diff --git a/test/test_added_deducted_points_balances_notification.py b/test/test_added_deducted_points_balances_notification.py index f39d906..c36d66c 100644 --- a/test/test_added_deducted_points_balances_notification.py +++ b/test/test_added_deducted_points_balances_notification.py @@ -49,7 +49,8 @@ def make_instance(self, include_optional) -> AddedDeductedPointsBalancesNotifica reason = 'Compensation', operation = 'addition', start_date = '2023-01-24T14:15:22Z', - expiry_date = '2024-01-24T14:15:22Z', ) + expiry_date = '2024-01-24T14:15:22Z', + transaction_uuid = '', ) ], current_points = 10.99 ) @@ -69,7 +70,8 @@ def make_instance(self, include_optional) -> AddedDeductedPointsBalancesNotifica reason = 'Compensation', operation = 'addition', start_date = '2023-01-24T14:15:22Z', - expiry_date = '2024-01-24T14:15:22Z', ) + expiry_date = '2024-01-24T14:15:22Z', + transaction_uuid = '', ) ], current_points = 10.99, ) diff --git a/test/test_added_deducted_points_notification.py b/test/test_added_deducted_points_notification.py index ada382f..4624d82 100644 --- a/test/test_added_deducted_points_notification.py +++ b/test/test_added_deducted_points_notification.py @@ -47,7 +47,8 @@ def make_instance(self, include_optional) -> AddedDeductedPointsNotification: expiry_date = '2024-01-24T14:15:22Z', operation = 'addition', reason = 'Compensation', - start_date = '2023-01-24T14:15:22Z' + start_date = '2023-01-24T14:15:22Z', + transaction_uuid = '' ) else: return AddedDeductedPointsNotification( @@ -62,6 +63,7 @@ def make_instance(self, include_optional) -> AddedDeductedPointsNotification: amount = 10.99, operation = 'addition', reason = 'Compensation', + transaction_uuid = '', ) """ diff --git a/test/test_card_added_deducted_points_balances_notification.py b/test/test_card_added_deducted_points_balances_notification.py index 58bad01..01770f1 100644 --- a/test/test_card_added_deducted_points_balances_notification.py +++ b/test/test_card_added_deducted_points_balances_notification.py @@ -51,7 +51,8 @@ def make_instance(self, include_optional) -> CardAddedDeductedPointsBalancesNoti reason = 'Compensation', operation = 'addition', start_date = '2023-01-24T14:15:22Z', - expiry_date = '2024-01-24T14:15:22Z', ) + expiry_date = '2024-01-24T14:15:22Z', + transaction_uuid = '', ) ], current_points = 10.99 ) @@ -73,7 +74,8 @@ def make_instance(self, include_optional) -> CardAddedDeductedPointsBalancesNoti reason = 'Compensation', operation = 'addition', start_date = '2023-01-24T14:15:22Z', - expiry_date = '2024-01-24T14:15:22Z', ) + expiry_date = '2024-01-24T14:15:22Z', + transaction_uuid = '', ) ], current_points = 10.99, ) diff --git a/test/test_card_added_deducted_points_notification.py b/test/test_card_added_deducted_points_notification.py index 1b0a209..c74c22d 100644 --- a/test/test_card_added_deducted_points_notification.py +++ b/test/test_card_added_deducted_points_notification.py @@ -49,7 +49,8 @@ def make_instance(self, include_optional) -> CardAddedDeductedPointsNotification expiry_date = '2024-01-24T14:15:22Z', operation = 'addition', reason = 'Compensation', - start_date = '2023-01-24T14:15:22Z' + start_date = '2023-01-24T14:15:22Z', + transaction_uuid = '' ) else: return CardAddedDeductedPointsNotification( @@ -66,6 +67,7 @@ def make_instance(self, include_optional) -> CardAddedDeductedPointsNotification amount = 10.99, operation = 'addition', reason = 'Compensation', + transaction_uuid = '', ) """ diff --git a/test/test_create_achievement_v2.py b/test/test_create_achievement_v2.py new file mode 100644 index 0000000..58cd593 --- /dev/null +++ b/test/test_create_achievement_v2.py @@ -0,0 +1,70 @@ +# coding: utf-8 + +""" + 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: + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from talon_one.models.create_achievement_v2 import CreateAchievementV2 + +class TestCreateAchievementV2(unittest.TestCase): + """CreateAchievementV2 unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def make_instance(self, include_optional) -> CreateAchievementV2: + """Test CreateAchievementV2 + include_optional is a boolean, when False only required + params are included, when True both required and + optional params are included """ + # uncomment below to create an instance of `CreateAchievementV2` + """ + model = CreateAchievementV2() + if include_optional: + return CreateAchievementV2( + name = 'Order50Discount', + title = '50% off on 50th purchase.', + description = '50% off for every 50th purchase in a year.', + target = 50, + period = '1Y', + recurrence_policy = 'no_recurrence', + activation_policy = 'fixed_schedule', + fixed_start_date = '2024-01-15T15:04:05+07:00', + end_date = '2024-01-15T15:04:05+07:00', + allow_rollback_after_completion = False, + sandbox = True, + subscribed_applications = [132, 97], + timezone = 'Europe/Berlin' + ) + else: + return CreateAchievementV2( + name = 'Order50Discount', + title = '50% off on 50th purchase.', + description = '50% off for every 50th purchase in a year.', + target = 50, + sandbox = True, + subscribed_applications = [132, 97], + timezone = 'Europe/Berlin', + ) + """ + + def testCreateAchievementV2(self): + """Test CreateAchievementV2""" + # inst_req_only = self.make_instance(include_optional=False) + # inst_req_and_optional = self.make_instance(include_optional=True) + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_integration_campaign.py b/test/test_integration_campaign.py new file mode 100644 index 0000000..6fac9b5 --- /dev/null +++ b/test/test_integration_campaign.py @@ -0,0 +1,66 @@ +# coding: utf-8 + +""" + 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: + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from talon_one.models.integration_campaign import IntegrationCampaign + +class TestIntegrationCampaign(unittest.TestCase): + """IntegrationCampaign unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def make_instance(self, include_optional) -> IntegrationCampaign: + """Test IntegrationCampaign + include_optional is a boolean, when False only required + params are included, when True both required and + optional params are included """ + # uncomment below to create an instance of `IntegrationCampaign` + """ + model = IntegrationCampaign() + if include_optional: + return IntegrationCampaign( + application_id = 322, + id = 4, + name = 'Summer promotions', + description = 'Campaign for all summer 2021 promotions', + start_time = '2021-07-20T22:00:00Z', + end_time = '2021-09-22T22:00:00Z', + attributes = None, + state = 'enabled', + tags = [summer], + features = [coupons, referrals] + ) + else: + return IntegrationCampaign( + application_id = 322, + id = 4, + name = 'Summer promotions', + state = 'enabled', + tags = [summer], + features = [coupons, referrals], + ) + """ + + def testIntegrationCampaign(self): + """Test IntegrationCampaign""" + # inst_req_only = self.make_instance(include_optional=False) + # inst_req_and_optional = self.make_instance(include_optional=True) + +if __name__ == '__main__': + unittest.main() diff --git a/test/test_integration_hub_event_payload_loyalty_profile_based_points_changed_notification_action.py b/test/test_integration_hub_event_payload_loyalty_profile_based_points_changed_notification_action.py index 3e46427..8dcfcd1 100644 --- a/test/test_integration_hub_event_payload_loyalty_profile_based_points_changed_notification_action.py +++ b/test/test_integration_hub_event_payload_loyalty_profile_based_points_changed_notification_action.py @@ -39,12 +39,14 @@ def make_instance(self, include_optional) -> IntegrationHubEventPayloadLoyaltyPr reason = '', operation = 'addition', start_date = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), - expiry_date = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f') + expiry_date = datetime.datetime.strptime('2013-10-20 19:20:30.00', '%Y-%m-%d %H:%M:%S.%f'), + transaction_uuid = '' ) else: return IntegrationHubEventPayloadLoyaltyProfileBasedPointsChangedNotificationAction( amount = 1.337, operation = 'addition', + transaction_uuid = '', ) """ diff --git a/test/test_strikethrough_set_discount_per_item_effect_props.py b/test/test_strikethrough_set_discount_per_item_effect_props.py index 32ffda8..22fa660 100644 --- a/test/test_strikethrough_set_discount_per_item_effect_props.py +++ b/test/test_strikethrough_set_discount_per_item_effect_props.py @@ -36,7 +36,8 @@ def make_instance(self, include_optional) -> StrikethroughSetDiscountPerItemEffe if include_optional: return StrikethroughSetDiscountPerItemEffectProps( name = '1EuroOff', - value = None + value = None, + exclude_from_best_prior_price_history = True ) else: return StrikethroughSetDiscountPerItemEffectProps( diff --git a/test/test_update_achievement_v2.py b/test/test_update_achievement_v2.py new file mode 100644 index 0000000..2a1f833 --- /dev/null +++ b/test/test_update_achievement_v2.py @@ -0,0 +1,63 @@ +# coding: utf-8 + +""" + 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: + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + + +import unittest + +from talon_one.models.update_achievement_v2 import UpdateAchievementV2 + +class TestUpdateAchievementV2(unittest.TestCase): + """UpdateAchievementV2 unit test stubs""" + + def setUp(self): + pass + + def tearDown(self): + pass + + def make_instance(self, include_optional) -> UpdateAchievementV2: + """Test UpdateAchievementV2 + include_optional is a boolean, when False only required + params are included, when True both required and + optional params are included """ + # uncomment below to create an instance of `UpdateAchievementV2` + """ + model = UpdateAchievementV2() + if include_optional: + return UpdateAchievementV2( + name = 'Order50Discount', + title = '50% off on 50th purchase.', + description = '50% off for every 50th purchase in a year.', + target = 50, + period = '1Y', + recurrence_policy = 'no_recurrence', + activation_policy = 'fixed_schedule', + fixed_start_date = '2024-01-15T15:04:05+07:00', + end_date = '2024-01-15T15:04:05+07:00', + allow_rollback_after_completion = False, + sandbox = True, + subscribed_applications = [132, 97], + timezone = 'Europe/Berlin' + ) + else: + return UpdateAchievementV2( + ) + """ + + def testUpdateAchievementV2(self): + """Test UpdateAchievementV2""" + # inst_req_only = self.make_instance(include_optional=False) + # inst_req_and_optional = self.make_instance(include_optional=True) + +if __name__ == '__main__': + unittest.main()