talon_one 5.0.0 → 6.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (327) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +77 -17
  3. data/docs/AchievementProgress.md +2 -0
  4. data/docs/AdditionalCampaignProperties.md +3 -1
  5. data/docs/AnalyticsDataPoint.md +19 -0
  6. data/docs/AnalyticsDataPointWithTrend.md +19 -0
  7. data/docs/AnalyticsDataPointWithTrendAndInfluencedRate.md +21 -0
  8. data/docs/AnalyticsDataPointWithTrendAndUplift.md +21 -0
  9. data/docs/Application.md +4 -0
  10. data/docs/ApplicationAnalyticsDataPoint.md +6 -6
  11. data/docs/ApplicationCIF.md +33 -0
  12. data/docs/ApplicationCIFExpression.md +27 -0
  13. data/docs/ApplicationCampaignAnalytics.md +13 -19
  14. data/docs/ApplicationCampaignStats.md +1 -3
  15. data/docs/AsyncCouponDeletionJobResponse.md +17 -0
  16. data/docs/BaseLoyaltyProgram.md +8 -4
  17. data/docs/BaseNotification.md +1 -1
  18. data/docs/BaseNotificationEntity.md +1 -1
  19. data/docs/Campaign.md +15 -1
  20. data/docs/CampaignCollectionEditedNotification.md +21 -0
  21. data/docs/CampaignNotificationPolicy.md +3 -1
  22. data/docs/CampaignStateChangedNotification.md +2 -2
  23. data/docs/CampaignStoreBudget.md +25 -0
  24. data/docs/CampaignVersions.md +27 -0
  25. data/docs/CardAddedDeductedPointsNotificationPolicy.md +19 -0
  26. data/docs/CartItem.md +1 -1
  27. data/docs/CodeGeneratorSettings.md +1 -1
  28. data/docs/Coupon.md +1 -1
  29. data/docs/CouponConstraints.md +1 -1
  30. data/docs/CouponCreationJob.md +1 -1
  31. data/docs/CouponDeletionFilters.md +43 -0
  32. data/docs/CouponDeletionJob.md +39 -0
  33. data/docs/CustomerSessionV2.md +2 -2
  34. data/docs/Effect.md +8 -0
  35. data/docs/EffectEntity.md +9 -1
  36. data/docs/Environment.md +3 -1
  37. data/docs/Event.md +1 -1
  38. data/docs/GenerateCampaignDescription.md +19 -0
  39. data/docs/GenerateCampaignTags.md +17 -0
  40. data/docs/GenerateItemFilterDescription.md +17 -0
  41. data/docs/GenerateLoyaltyCard.md +19 -0
  42. data/docs/GenerateRuleTitle.md +19 -0
  43. data/docs/GenerateRuleTitleRule.md +19 -0
  44. data/docs/IncreaseAchievementProgressEffectProps.md +1 -1
  45. data/docs/IntegrationApi.md +67 -6
  46. data/docs/IntegrationCoupon.md +1 -1
  47. data/docs/InventoryCoupon.md +1 -1
  48. data/docs/InventoryReferral.md +1 -1
  49. data/docs/LoyaltyBalanceWithTier.md +31 -0
  50. data/docs/LoyaltyBalancesWithTiers.md +19 -0
  51. data/docs/LoyaltyCard.md +6 -2
  52. data/docs/LoyaltyCardBatch.md +21 -0
  53. data/docs/LoyaltyCardBatchResponse.md +19 -0
  54. data/docs/LoyaltyProgram.md +14 -6
  55. data/docs/ManagementApi.md +1044 -69
  56. data/docs/MessageLogResponse.md +3 -3
  57. data/docs/NewAppWideCouponDeletionJob.md +19 -0
  58. data/docs/NewApplication.md +3 -1
  59. data/docs/NewApplicationCIF.md +27 -0
  60. data/docs/NewApplicationCIFExpression.md +21 -0
  61. data/docs/NewBaseNotification.md +1 -1
  62. data/docs/NewCouponCreationJob.md +1 -1
  63. data/docs/NewCouponDeletionJob.md +17 -0
  64. data/docs/NewCoupons.md +1 -1
  65. data/docs/NewCouponsForMultipleRecipients.md +1 -1
  66. data/docs/NewCustomerSessionV2.md +2 -2
  67. data/docs/NewLoyaltyProgram.md +8 -4
  68. data/docs/NewOutgoingIntegrationWebhook.md +2 -0
  69. data/docs/NewReferral.md +1 -1
  70. data/docs/NewReferralsForMultipleAdvocates.md +1 -1
  71. data/docs/NewRevisionVersion.md +37 -0
  72. data/docs/NewWebhook.md +2 -0
  73. data/docs/OktaEvent.md +19 -0
  74. data/docs/OktaEventPayload.md +17 -0
  75. data/docs/OktaEventPayloadData.md +17 -0
  76. data/docs/OktaEventTarget.md +21 -0
  77. data/docs/ProjectedTier.md +21 -0
  78. data/docs/Referral.md +1 -1
  79. data/docs/ReferralConstraints.md +1 -1
  80. data/docs/RejectCouponEffectProps.md +3 -1
  81. data/docs/RejectReferralEffectProps.md +3 -1
  82. data/docs/Revision.md +35 -0
  83. data/docs/RevisionActivation.md +17 -0
  84. data/docs/RevisionVersion.md +53 -0
  85. data/docs/RollbackIncreasedAchievementProgressEffectProps.md +27 -0
  86. data/docs/RuleFailureReason.md +5 -1
  87. data/docs/SSOConfig.md +3 -1
  88. data/docs/ScimBaseUser.md +23 -0
  89. data/docs/ScimBaseUserName.md +17 -0
  90. data/docs/ScimNewUser.md +23 -0
  91. data/docs/ScimPatchOperation.md +21 -0
  92. data/docs/ScimPatchRequest.md +19 -0
  93. data/docs/ScimResource.md +21 -0
  94. data/docs/ScimResourceTypesListResponse.md +17 -0
  95. data/docs/ScimSchemaResource.md +23 -0
  96. data/docs/ScimSchemasListResponse.md +21 -0
  97. data/docs/ScimServiceProviderConfigResponse.md +27 -0
  98. data/docs/ScimServiceProviderConfigResponseBulk.md +21 -0
  99. data/docs/ScimServiceProviderConfigResponseChangePassword.md +17 -0
  100. data/docs/ScimServiceProviderConfigResponseFilter.md +19 -0
  101. data/docs/ScimServiceProviderConfigResponsePatch.md +17 -0
  102. data/docs/ScimUser.md +25 -0
  103. data/docs/ScimUsersListResponse.md +21 -0
  104. data/docs/Tier.md +3 -1
  105. data/docs/TransferLoyaltyCard.md +3 -1
  106. data/docs/UpdateApplication.md +5 -1
  107. data/docs/UpdateApplicationCIF.md +23 -0
  108. data/docs/UpdateCampaign.md +1 -1
  109. data/docs/UpdateCoupon.md +1 -1
  110. data/docs/UpdateCouponBatch.md +1 -1
  111. data/docs/UpdateLoyaltyCard.md +4 -2
  112. data/docs/UpdateLoyaltyProgram.md +8 -4
  113. data/docs/UpdateReferral.md +1 -1
  114. data/docs/UpdateReferralBatch.md +1 -1
  115. data/docs/User.md +3 -1
  116. data/docs/Webhook.md +2 -0
  117. data/docs/WebhookWithOutgoingIntegrationDetails.md +2 -0
  118. data/lib/talon_one/api/integration_api.rb +83 -7
  119. data/lib/talon_one/api/management_api.rb +1127 -78
  120. data/lib/talon_one/models/achievement_progress.rb +16 -1
  121. data/lib/talon_one/models/additional_campaign_properties.rb +21 -6
  122. data/lib/talon_one/models/analytics_data_point.rb +225 -0
  123. data/lib/talon_one/models/analytics_data_point_with_trend.rb +225 -0
  124. data/lib/talon_one/models/analytics_data_point_with_trend_and_influenced_rate.rb +239 -0
  125. data/lib/talon_one/models/analytics_data_point_with_trend_and_uplift.rb +239 -0
  126. data/lib/talon_one/models/application.rb +21 -1
  127. data/lib/talon_one/models/application_analytics_data_point.rb +14 -4
  128. data/lib/talon_one/models/application_campaign_analytics.rb +39 -41
  129. data/lib/talon_one/models/application_campaign_stats.rb +1 -16
  130. data/lib/talon_one/models/application_cif.rb +308 -0
  131. data/lib/talon_one/models/application_cif_expression.rb +275 -0
  132. data/lib/talon_one/models/async_coupon_deletion_job_response.rb +213 -0
  133. data/lib/talon_one/models/attribute.rb +2 -2
  134. data/lib/talon_one/models/base_loyalty_program.rb +44 -25
  135. data/lib/talon_one/models/base_notification.rb +3 -2
  136. data/lib/talon_one/models/base_notification_entity.rb +1 -0
  137. data/lib/talon_one/models/campaign.rb +83 -6
  138. data/lib/talon_one/models/campaign_collection_edited_notification.rb +235 -0
  139. data/lib/talon_one/models/campaign_notification_policy.rb +16 -4
  140. data/lib/talon_one/models/campaign_state_changed_notification.rb +2 -2
  141. data/lib/talon_one/models/campaign_store_budget.rb +275 -0
  142. data/lib/talon_one/models/campaign_versions.rb +259 -0
  143. data/lib/talon_one/models/card_added_deducted_points_notification_policy.rb +269 -0
  144. data/lib/talon_one/models/cart_item.rb +1 -1
  145. data/lib/talon_one/models/code_generator_settings.rb +1 -1
  146. data/lib/talon_one/models/coupon.rb +1 -1
  147. data/lib/talon_one/models/coupon_constraints.rb +1 -1
  148. data/lib/talon_one/models/coupon_creation_job.rb +1 -1
  149. data/lib/talon_one/models/coupon_deletion_filters.rb +375 -0
  150. data/lib/talon_one/models/coupon_deletion_job.rb +370 -0
  151. data/lib/talon_one/models/customer_session_v2.rb +2 -2
  152. data/lib/talon_one/models/effect.rb +41 -1
  153. data/lib/talon_one/models/effect_entity.rb +44 -4
  154. data/lib/talon_one/models/environment.rb +16 -4
  155. data/lib/talon_one/models/event.rb +0 -5
  156. data/lib/talon_one/models/generate_campaign_description.rb +227 -0
  157. data/lib/talon_one/models/generate_campaign_tags.rb +212 -0
  158. data/lib/talon_one/models/generate_item_filter_description.rb +214 -0
  159. data/lib/talon_one/models/generate_loyalty_card.rb +256 -0
  160. data/lib/talon_one/models/generate_rule_title.rb +226 -0
  161. data/lib/talon_one/models/generate_rule_title_rule.rb +221 -0
  162. data/lib/talon_one/models/increase_achievement_progress_effect_props.rb +1 -1
  163. data/lib/talon_one/models/integration_coupon.rb +1 -1
  164. data/lib/talon_one/models/inventory_coupon.rb +1 -1
  165. data/lib/talon_one/models/inventory_referral.rb +1 -1
  166. data/lib/talon_one/models/loyalty_balance_with_tier.rb +276 -0
  167. data/lib/talon_one/models/loyalty_balances_with_tiers.rb +219 -0
  168. data/lib/talon_one/models/loyalty_card.rb +25 -5
  169. data/lib/talon_one/models/loyalty_card_batch.rb +304 -0
  170. data/lib/talon_one/models/loyalty_card_batch_response.rb +227 -0
  171. data/lib/talon_one/models/loyalty_program.rb +70 -29
  172. data/lib/talon_one/models/message_log_response.rb +3 -22
  173. data/lib/talon_one/models/new_app_wide_coupon_deletion_job.rb +227 -0
  174. data/lib/talon_one/models/new_application.rb +14 -4
  175. data/lib/talon_one/models/new_application_cif.rb +262 -0
  176. data/lib/talon_one/models/new_application_cif_expression.rb +229 -0
  177. data/lib/talon_one/models/new_attribute.rb +2 -2
  178. data/lib/talon_one/models/new_base_notification.rb +1 -0
  179. data/lib/talon_one/models/new_coupon_creation_job.rb +1 -1
  180. data/lib/talon_one/models/new_coupon_deletion_job.rb +211 -0
  181. data/lib/talon_one/models/new_coupons.rb +1 -1
  182. data/lib/talon_one/models/new_coupons_for_multiple_recipients.rb +1 -1
  183. data/lib/talon_one/models/new_customer_session_v2.rb +2 -2
  184. data/lib/talon_one/models/new_loyalty_program.rb +44 -25
  185. data/lib/talon_one/models/new_notification_test.rb +2 -2
  186. data/lib/talon_one/models/new_outgoing_integration_webhook.rb +11 -1
  187. data/lib/talon_one/models/new_referral.rb +1 -1
  188. data/lib/talon_one/models/new_referrals_for_multiple_advocates.rb +1 -1
  189. data/lib/talon_one/models/new_revision_version.rb +352 -0
  190. data/lib/talon_one/models/new_webhook.rb +11 -1
  191. data/lib/talon_one/models/okta_event.rb +229 -0
  192. data/lib/talon_one/models/okta_event_payload.rb +212 -0
  193. data/lib/talon_one/models/okta_event_payload_data.rb +214 -0
  194. data/lib/talon_one/models/okta_event_target.rb +243 -0
  195. data/lib/talon_one/models/projected_tier.rb +232 -0
  196. data/lib/talon_one/models/referral.rb +1 -1
  197. data/lib/talon_one/models/referral_constraints.rb +1 -1
  198. data/lib/talon_one/models/reject_coupon_effect_props.rb +14 -4
  199. data/lib/talon_one/models/reject_referral_effect_props.rb +14 -4
  200. data/lib/talon_one/models/revision.rb +319 -0
  201. data/lib/talon_one/models/revision_activation.rb +206 -0
  202. data/lib/talon_one/models/revision_version.rb +466 -0
  203. data/lib/talon_one/models/rollback_increased_achievement_progress_effect_props.rb +288 -0
  204. data/lib/talon_one/models/rule_failure_reason.rb +24 -4
  205. data/lib/talon_one/models/scim_base_user.rb +237 -0
  206. data/lib/talon_one/models/scim_base_user_name.rb +208 -0
  207. data/lib/talon_one/models/scim_new_user.rb +237 -0
  208. data/lib/talon_one/models/scim_patch_operation.rb +267 -0
  209. data/lib/talon_one/models/scim_patch_request.rb +226 -0
  210. data/lib/talon_one/models/scim_resource.rb +228 -0
  211. data/lib/talon_one/models/scim_resource_types_list_response.rb +214 -0
  212. data/lib/talon_one/models/scim_schema_resource.rb +239 -0
  213. data/lib/talon_one/models/scim_schemas_list_response.rb +236 -0
  214. data/lib/talon_one/models/scim_service_provider_config_response.rb +256 -0
  215. data/lib/talon_one/models/scim_service_provider_config_response_bulk.rb +228 -0
  216. data/lib/talon_one/models/scim_service_provider_config_response_change_password.rb +208 -0
  217. data/lib/talon_one/models/scim_service_provider_config_response_filter.rb +218 -0
  218. data/lib/talon_one/models/scim_service_provider_config_response_patch.rb +208 -0
  219. data/lib/talon_one/models/scim_user.rb +252 -0
  220. data/lib/talon_one/models/scim_users_list_response.rb +236 -0
  221. data/lib/talon_one/models/sso_config.rb +14 -4
  222. data/lib/talon_one/models/tier.rb +12 -2
  223. data/lib/talon_one/models/transfer_loyalty_card.rb +14 -4
  224. data/lib/talon_one/models/update_application.rb +24 -4
  225. data/lib/talon_one/models/update_application_cif.rb +237 -0
  226. data/lib/talon_one/models/update_campaign.rb +1 -1
  227. data/lib/talon_one/models/update_coupon.rb +1 -1
  228. data/lib/talon_one/models/update_coupon_batch.rb +1 -1
  229. data/lib/talon_one/models/update_loyalty_card.rb +15 -5
  230. data/lib/talon_one/models/update_loyalty_program.rb +44 -25
  231. data/lib/talon_one/models/update_referral.rb +1 -1
  232. data/lib/talon_one/models/update_referral_batch.rb +1 -1
  233. data/lib/talon_one/models/user.rb +14 -4
  234. data/lib/talon_one/models/webhook.rb +11 -1
  235. data/lib/talon_one/models/webhook_with_outgoing_integration_details.rb +11 -1
  236. data/lib/talon_one/version.rb +1 -1
  237. data/lib/talon_one.rb +54 -11
  238. data/spec/api/integration_api_spec.rb +18 -3
  239. data/spec/api/management_api_spec.rb +227 -23
  240. data/spec/models/achievement_progress_spec.rb +6 -0
  241. data/spec/models/additional_campaign_properties_spec.rb +7 -1
  242. data/spec/models/analytics_data_point_spec.rb +47 -0
  243. data/spec/models/analytics_data_point_with_trend_and_influenced_rate_spec.rb +53 -0
  244. data/spec/models/analytics_data_point_with_trend_and_uplift_spec.rb +53 -0
  245. data/spec/models/analytics_data_point_with_trend_spec.rb +47 -0
  246. data/spec/models/application_campaign_analytics_spec.rb +1 -19
  247. data/spec/models/application_campaign_stats_spec.rb +0 -6
  248. data/spec/models/application_cif_expression_spec.rb +71 -0
  249. data/spec/models/application_cif_spec.rb +89 -0
  250. data/spec/models/application_spec.rb +12 -0
  251. data/spec/models/async_coupon_deletion_job_response_spec.rb +41 -0
  252. data/spec/models/attribute_spec.rb +1 -1
  253. data/spec/models/base_loyalty_program_spec.rb +18 -6
  254. data/spec/models/base_notification_spec.rb +1 -1
  255. data/spec/models/campaign_collection_edited_notification_spec.rb +53 -0
  256. data/spec/models/campaign_notification_policy_spec.rb +6 -0
  257. data/spec/models/campaign_spec.rb +43 -1
  258. data/spec/models/campaign_store_budget_spec.rb +65 -0
  259. data/spec/models/campaign_versions_spec.rb +71 -0
  260. data/spec/models/card_added_deducted_points_notification_policy_spec.rb +51 -0
  261. data/spec/models/coupon_deletion_filters_spec.rb +123 -0
  262. data/spec/models/coupon_deletion_job_spec.rb +107 -0
  263. data/spec/models/effect_entity_spec.rb +24 -0
  264. data/spec/models/effect_spec.rb +24 -0
  265. data/spec/models/environment_spec.rb +6 -0
  266. data/spec/models/generate_campaign_description_spec.rb +47 -0
  267. data/spec/models/generate_campaign_tags_spec.rb +41 -0
  268. data/spec/models/generate_item_filter_description_spec.rb +41 -0
  269. data/spec/models/generate_loyalty_card_spec.rb +51 -0
  270. data/spec/models/generate_rule_title_rule_spec.rb +47 -0
  271. data/spec/models/generate_rule_title_spec.rb +47 -0
  272. data/spec/models/loyalty_balance_with_tier_spec.rb +83 -0
  273. data/spec/models/loyalty_balances_with_tiers_spec.rb +47 -0
  274. data/spec/models/loyalty_card_batch_response_spec.rb +47 -0
  275. data/spec/models/loyalty_card_batch_spec.rb +57 -0
  276. data/spec/models/loyalty_card_spec.rb +12 -0
  277. data/spec/models/loyalty_program_spec.rb +30 -6
  278. data/spec/models/new_app_wide_coupon_deletion_job_spec.rb +47 -0
  279. data/spec/models/new_application_cif_expression_spec.rb +53 -0
  280. data/spec/models/new_application_cif_spec.rb +71 -0
  281. data/spec/models/new_application_spec.rb +6 -0
  282. data/spec/models/new_attribute_spec.rb +1 -1
  283. data/spec/models/new_coupon_deletion_job_spec.rb +41 -0
  284. data/spec/models/new_loyalty_program_spec.rb +18 -6
  285. data/spec/models/new_notification_test_spec.rb +1 -1
  286. data/spec/models/new_outgoing_integration_webhook_spec.rb +6 -0
  287. data/spec/models/new_revision_version_spec.rb +105 -0
  288. data/spec/models/new_webhook_spec.rb +6 -0
  289. data/spec/models/okta_event_payload_data_spec.rb +41 -0
  290. data/spec/models/okta_event_payload_spec.rb +41 -0
  291. data/spec/models/okta_event_spec.rb +47 -0
  292. data/spec/models/okta_event_target_spec.rb +53 -0
  293. data/spec/models/projected_tier_spec.rb +53 -0
  294. data/spec/models/reject_coupon_effect_props_spec.rb +6 -0
  295. data/spec/models/reject_referral_effect_props_spec.rb +6 -0
  296. data/spec/models/revision_activation_spec.rb +41 -0
  297. data/spec/models/revision_spec.rb +95 -0
  298. data/spec/models/revision_version_spec.rb +153 -0
  299. data/spec/models/rollback_increased_achievement_progress_effect_props_spec.rb +71 -0
  300. data/spec/models/rule_failure_reason_spec.rb +12 -0
  301. data/spec/models/scim_base_user_name_spec.rb +41 -0
  302. data/spec/models/scim_base_user_spec.rb +59 -0
  303. data/spec/models/scim_new_user_spec.rb +59 -0
  304. data/spec/models/scim_patch_operation_spec.rb +57 -0
  305. data/spec/models/scim_patch_request_spec.rb +47 -0
  306. data/spec/models/scim_resource_spec.rb +53 -0
  307. data/spec/models/scim_resource_types_list_response_spec.rb +41 -0
  308. data/spec/models/scim_schema_resource_spec.rb +59 -0
  309. data/spec/models/scim_schemas_list_response_spec.rb +53 -0
  310. data/spec/models/scim_service_provider_config_response_bulk_spec.rb +53 -0
  311. data/spec/models/scim_service_provider_config_response_change_password_spec.rb +41 -0
  312. data/spec/models/scim_service_provider_config_response_filter_spec.rb +47 -0
  313. data/spec/models/scim_service_provider_config_response_patch_spec.rb +41 -0
  314. data/spec/models/scim_service_provider_config_response_spec.rb +71 -0
  315. data/spec/models/scim_user_spec.rb +65 -0
  316. data/spec/models/scim_users_list_response_spec.rb +53 -0
  317. data/spec/models/sso_config_spec.rb +6 -0
  318. data/spec/models/tier_spec.rb +6 -0
  319. data/spec/models/transfer_loyalty_card_spec.rb +6 -0
  320. data/spec/models/update_application_cif_spec.rb +59 -0
  321. data/spec/models/update_application_spec.rb +12 -0
  322. data/spec/models/update_loyalty_card_spec.rb +6 -0
  323. data/spec/models/update_loyalty_program_spec.rb +18 -6
  324. data/spec/models/user_spec.rb +6 -0
  325. data/spec/models/webhook_spec.rb +6 -0
  326. data/spec/models/webhook_with_outgoing_integration_details_spec.rb +6 -0
  327. metadata +219 -3
@@ -0,0 +1,211 @@
1
+ =begin
2
+ #Talon.One API
3
+
4
+ #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}`
5
+
6
+ The version of the OpenAPI document:
7
+
8
+ Generated by: https://openapi-generator.tech
9
+ OpenAPI Generator version: 4.3.1
10
+
11
+ =end
12
+
13
+ require 'date'
14
+
15
+ module TalonOne
16
+ class NewCouponDeletionJob
17
+ attr_accessor :filters
18
+
19
+ # Attribute mapping from ruby-style variable name to JSON key.
20
+ def self.attribute_map
21
+ {
22
+ :'filters' => :'filters'
23
+ }
24
+ end
25
+
26
+ # Attribute type mapping.
27
+ def self.openapi_types
28
+ {
29
+ :'filters' => :'CouponDeletionFilters'
30
+ }
31
+ end
32
+
33
+ # List of attributes with nullable: true
34
+ def self.openapi_nullable
35
+ Set.new([
36
+ ])
37
+ end
38
+
39
+ # Initializes the object
40
+ # @param [Hash] attributes Model attributes in the form of hash
41
+ def initialize(attributes = {})
42
+ if (!attributes.is_a?(Hash))
43
+ fail ArgumentError, "The input argument (attributes) must be a hash in `TalonOne::NewCouponDeletionJob` initialize method"
44
+ end
45
+
46
+ # check to see if the attribute exists and convert string to symbol for hash key
47
+ attributes = attributes.each_with_object({}) { |(k, v), h|
48
+ if (!self.class.attribute_map.key?(k.to_sym))
49
+ fail ArgumentError, "`#{k}` is not a valid attribute in `TalonOne::NewCouponDeletionJob`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
50
+ end
51
+ h[k.to_sym] = v
52
+ }
53
+
54
+ if attributes.key?(:'filters')
55
+ self.filters = attributes[:'filters']
56
+ end
57
+ end
58
+
59
+ # Show invalid properties with the reasons. Usually used together with valid?
60
+ # @return Array for valid properties with the reasons
61
+ def list_invalid_properties
62
+ invalid_properties = Array.new
63
+ if @filters.nil?
64
+ invalid_properties.push('invalid value for "filters", filters cannot be nil.')
65
+ end
66
+
67
+ invalid_properties
68
+ end
69
+
70
+ # Check to see if the all the properties in the model are valid
71
+ # @return true if the model is valid
72
+ def valid?
73
+ return false if @filters.nil?
74
+ true
75
+ end
76
+
77
+ # Checks equality by comparing each attribute.
78
+ # @param [Object] Object to be compared
79
+ def ==(o)
80
+ return true if self.equal?(o)
81
+ self.class == o.class &&
82
+ filters == o.filters
83
+ end
84
+
85
+ # @see the `==` method
86
+ # @param [Object] Object to be compared
87
+ def eql?(o)
88
+ self == o
89
+ end
90
+
91
+ # Calculates hash code according to all attributes.
92
+ # @return [Integer] Hash code
93
+ def hash
94
+ [filters].hash
95
+ end
96
+
97
+ # Builds the object from hash
98
+ # @param [Hash] attributes Model attributes in the form of hash
99
+ # @return [Object] Returns the model itself
100
+ def self.build_from_hash(attributes)
101
+ new.build_from_hash(attributes)
102
+ end
103
+
104
+ # Builds the object from hash
105
+ # @param [Hash] attributes Model attributes in the form of hash
106
+ # @return [Object] Returns the model itself
107
+ def build_from_hash(attributes)
108
+ return nil unless attributes.is_a?(Hash)
109
+ self.class.openapi_types.each_pair do |key, type|
110
+ if type =~ /\AArray<(.*)>/i
111
+ # check to ensure the input is an array given that the attribute
112
+ # is documented as an array but the input is not
113
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
114
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
115
+ end
116
+ elsif !attributes[self.class.attribute_map[key]].nil?
117
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
118
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
119
+ end
120
+
121
+ self
122
+ end
123
+
124
+ # Deserializes the data based on type
125
+ # @param string type Data type
126
+ # @param string value Value to be deserialized
127
+ # @return [Object] Deserialized data
128
+ def _deserialize(type, value)
129
+ case type.to_sym
130
+ when :DateTime
131
+ DateTime.parse(value)
132
+ when :Date
133
+ Date.parse(value)
134
+ when :String
135
+ value.to_s
136
+ when :Integer
137
+ value.to_i
138
+ when :Float
139
+ value.to_f
140
+ when :Boolean
141
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
142
+ true
143
+ else
144
+ false
145
+ end
146
+ when :Object
147
+ # generic object (usually a Hash), return directly
148
+ value
149
+ when /\AArray<(?<inner_type>.+)>\z/
150
+ inner_type = Regexp.last_match[:inner_type]
151
+ value.map { |v| _deserialize(inner_type, v) }
152
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
153
+ k_type = Regexp.last_match[:k_type]
154
+ v_type = Regexp.last_match[:v_type]
155
+ {}.tap do |hash|
156
+ value.each do |k, v|
157
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
158
+ end
159
+ end
160
+ else # model
161
+ TalonOne.const_get(type).build_from_hash(value)
162
+ end
163
+ end
164
+
165
+ # Returns the string representation of the object
166
+ # @return [String] String presentation of the object
167
+ def to_s
168
+ to_hash.to_s
169
+ end
170
+
171
+ # to_body is an alias to to_hash (backward compatibility)
172
+ # @return [Hash] Returns the object in the form of hash
173
+ def to_body
174
+ to_hash
175
+ end
176
+
177
+ # Returns the object in the form of hash
178
+ # @return [Hash] Returns the object in the form of hash
179
+ def to_hash
180
+ hash = {}
181
+ self.class.attribute_map.each_pair do |attr, param|
182
+ value = self.send(attr)
183
+ if value.nil?
184
+ is_nullable = self.class.openapi_nullable.include?(attr)
185
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
186
+ end
187
+
188
+ hash[param] = _to_hash(value)
189
+ end
190
+ hash
191
+ end
192
+
193
+ # Outputs non-array value in the form of hash
194
+ # For object, use to_hash. Otherwise, just return the value
195
+ # @param [Object] value Any valid value
196
+ # @return [Hash] Returns the value in the form of hash
197
+ def _to_hash(value)
198
+ if value.is_a?(Array)
199
+ value.compact.map { |v| _to_hash(v) }
200
+ elsif value.is_a?(Hash)
201
+ {}.tap do |hash|
202
+ value.each { |k, v| hash[k] = _to_hash(v) }
203
+ end
204
+ elsif value.respond_to? :to_hash
205
+ value.to_hash
206
+ else
207
+ value
208
+ end
209
+ end
210
+ end
211
+ end
@@ -27,7 +27,7 @@ module TalonOne
27
27
  # Timestamp at which point the coupon becomes valid.
28
28
  attr_accessor :start_date
29
29
 
30
- # Expiration date of the coupon. Coupon never expires if this is omitted, zero, or negative.
30
+ # Expiration date of the coupon. Coupon never expires if this is omitted.
31
31
  attr_accessor :expiry_date
32
32
 
33
33
  # Limits configuration for a coupon. These limits will override the limits set from the campaign. **Note:** Only usable when creating a single coupon which is not tied to a specific recipient. Only per-profile limits are allowed to be configured.
@@ -27,7 +27,7 @@ module TalonOne
27
27
  # Timestamp at which point the coupon becomes valid.
28
28
  attr_accessor :start_date
29
29
 
30
- # Expiration date of the coupon. Coupon never expires if this is omitted, zero, or negative.
30
+ # Expiration date of the coupon. Coupon never expires if this is omitted.
31
31
  attr_accessor :expiry_date
32
32
 
33
33
  # Arbitrary properties associated with this item.
@@ -24,10 +24,10 @@ module TalonOne
24
24
  # When using the `dry` query parameter, use this property to list the campaign to be evaluated by the Rule Engine. These campaigns will be evaluated, even if they are disabled, allowing you to test specific campaigns before activating them.
25
25
  attr_accessor :evaluable_campaign_ids
26
26
 
27
- # Any coupon codes entered. **Important**: If you [create a coupon budget](https://docs.talon.one/docs/product/campaigns/settings/managing-campaign-budgets/#budget-types) for your campaign, ensure the session contains a coupon code by the time you close it.
27
+ # Any coupon codes entered. **Important - for requests only**: - If you [create a coupon budget](https://docs.talon.one/docs/product/campaigns/settings/managing-campaign-budgets/#budget-types) for your campaign, ensure the session contains a coupon code by the time you close it. - In requests where `dry=false`, providing an empty array discards any previous coupons. To avoid this, provide `\"couponCodes\": null` or omit the parameter entirely.
28
28
  attr_accessor :coupon_codes
29
29
 
30
- # Any referral code entered. **Important**: If you [create a referral budget](https://docs.talon.one/docs/product/campaigns/settings/managing-campaign-budgets/#budget-types) for your campaign, ensure the session contains a referral code by the time you close it.
30
+ # Any referral code entered. **Important - for requests only**: - If you [create a referral budget](https://docs.talon.one/docs/product/campaigns/settings/managing-campaign-budgets/#budget-types) for your campaign, ensure the session contains a referral code by the time you close it. - In requests where `dry=false`, providing an empty value discards the previous referral code. To avoid this, provide `\"referralCode\": null` or omit the parameter entirely.
31
31
  attr_accessor :referral_code
32
32
 
33
33
  # Identifier of a loyalty card.
@@ -39,17 +39,22 @@ module TalonOne
39
39
  # Indicates if this program is a live or sandbox program. Programs of a given type can only be connected to Applications of the same type.
40
40
  attr_accessor :sandbox
41
41
 
42
- # The policy that defines which date is used to calculate the expiration date of a customer's current tier. - `tier_start_date`: The tier expiration date is calculated based on when the customer joined the current tier. - `program_join_date`: The tier expiration date is calculated based on when the customer joined the loyalty program.
42
+ # The policy that defines when the customer joins the loyalty program. - `not_join`: The customer does not join the loyalty program but can still earn and spend loyalty points. **Note**: The customer does not have a program join date. - `points_activated`: The customer joins the loyalty program only when their earned loyalty points become active for the first time. - `points_earned`: The customer joins the loyalty program when they earn loyalty points for the first time.
43
+ attr_accessor :program_join_policy
44
+
45
+ # The policy that defines how tier expiration, used to reevaluate the customer's current tier, is determined. - `tier_start_date`: The tier expiration is relative to when the customer joined the current tier. - `program_join_date`: The tier expiration is relative to when the customer joined the loyalty program. - `customer_attribute`: The tier expiration is determined by a custom customer attribute. - `absolute_expiration`: The tier is reevaluated at the start of each tier cycle. For this policy, it is required to provide a `tierCycleStartDate`.
43
46
  attr_accessor :tiers_expiration_policy
44
47
 
45
- # The amount of time after which the tier expires. The time format is an **integer** followed by one letter indicating the time unit. Examples: `30s`, `40m`, `1h`, `5D`, `7W`, `10M`, `15Y`. Available units: - `s`: seconds - `m`: minutes - `h`: hours - `D`: days - `W`: weeks - `M`: months - `Y`: years You can round certain units up or down: - `_D` for rounding down days only. Signifies the start of the day. - `_U` for rounding up days, weeks, months and years. Signifies the end of the day, week, month or year.
48
+ # Timestamp at which the tier cycle starts for all customers in the loyalty program. **Note**: This is only required when the tier expiration policy is set to `absolute_expiration`.
49
+ attr_accessor :tier_cycle_start_date
50
+
51
+ # The amount of time after which the tier expires and is reevaluated. The time format is an **integer** followed by one letter indicating the time unit. Examples: `30s`, `40m`, `1h`, `5D`, `7W`, `10M`, `15Y`. Available units: - `s`: seconds - `m`: minutes - `h`: hours - `D`: days - `W`: weeks - `M`: months - `Y`: years You can round certain units up or down: - `_D` for rounding down days only. Signifies the start of the day. - `_U` for rounding up days, weeks, months and years. Signifies the end of the day, week, month or year.
46
52
  attr_accessor :tiers_expire_in
47
53
 
48
- # Customers's tier downgrade policy. - `one_down`: Once the tier expires and if the user doesn't have enough points to stay in the tier, the user is downgraded one tier down. - `balance_based`: Once the tier expires, the user's tier is evaluated based on the amount of active points the user has at this instant.
54
+ # The policy that defines how customer tiers are downgraded in the loyalty program after tier reevaluation. - `one_down`: If the customer doesn't have enough points to stay in the current tier, they are downgraded by one tier. - `balance_based`: The customer's tier is reevaluated based on the amount of active points they have at the moment.
49
55
  attr_accessor :tiers_downgrade_policy
50
56
 
51
- # The policy that defines when the customer joins the loyalty program. - `not_join`: The customer does not join the loyalty program but can still earn and spend loyalty points. **Note**: The customer does not have a program join date. - `points_activated`: The customer joins the loyalty program only when their earned loyalty points become active for the first time. - `points_earned`: The customer joins the loyalty program when they earn loyalty points for the first time.
52
- attr_accessor :program_join_policy
57
+ attr_accessor :card_code_settings
53
58
 
54
59
  # The internal name for the Loyalty Program. This is an immutable value.
55
60
  attr_accessor :name
@@ -96,10 +101,12 @@ module TalonOne
96
101
  :'allow_subledger' => :'allowSubledger',
97
102
  :'users_per_card_limit' => :'usersPerCardLimit',
98
103
  :'sandbox' => :'sandbox',
104
+ :'program_join_policy' => :'programJoinPolicy',
99
105
  :'tiers_expiration_policy' => :'tiersExpirationPolicy',
106
+ :'tier_cycle_start_date' => :'tierCycleStartDate',
100
107
  :'tiers_expire_in' => :'tiersExpireIn',
101
108
  :'tiers_downgrade_policy' => :'tiersDowngradePolicy',
102
- :'program_join_policy' => :'programJoinPolicy',
109
+ :'card_code_settings' => :'cardCodeSettings',
103
110
  :'name' => :'name',
104
111
  :'tiers' => :'tiers',
105
112
  :'timezone' => :'timezone',
@@ -118,10 +125,12 @@ module TalonOne
118
125
  :'allow_subledger' => :'Boolean',
119
126
  :'users_per_card_limit' => :'Integer',
120
127
  :'sandbox' => :'Boolean',
128
+ :'program_join_policy' => :'String',
121
129
  :'tiers_expiration_policy' => :'String',
130
+ :'tier_cycle_start_date' => :'DateTime',
122
131
  :'tiers_expire_in' => :'String',
123
132
  :'tiers_downgrade_policy' => :'String',
124
- :'program_join_policy' => :'String',
133
+ :'card_code_settings' => :'CodeGeneratorSettings',
125
134
  :'name' => :'String',
126
135
  :'tiers' => :'Array<NewLoyaltyTier>',
127
136
  :'timezone' => :'String',
@@ -184,10 +193,18 @@ module TalonOne
184
193
  self.sandbox = attributes[:'sandbox']
185
194
  end
186
195
 
196
+ if attributes.key?(:'program_join_policy')
197
+ self.program_join_policy = attributes[:'program_join_policy']
198
+ end
199
+
187
200
  if attributes.key?(:'tiers_expiration_policy')
188
201
  self.tiers_expiration_policy = attributes[:'tiers_expiration_policy']
189
202
  end
190
203
 
204
+ if attributes.key?(:'tier_cycle_start_date')
205
+ self.tier_cycle_start_date = attributes[:'tier_cycle_start_date']
206
+ end
207
+
191
208
  if attributes.key?(:'tiers_expire_in')
192
209
  self.tiers_expire_in = attributes[:'tiers_expire_in']
193
210
  end
@@ -196,8 +213,8 @@ module TalonOne
196
213
  self.tiers_downgrade_policy = attributes[:'tiers_downgrade_policy']
197
214
  end
198
215
 
199
- if attributes.key?(:'program_join_policy')
200
- self.program_join_policy = attributes[:'program_join_policy']
216
+ if attributes.key?(:'card_code_settings')
217
+ self.card_code_settings = attributes[:'card_code_settings']
201
218
  end
202
219
 
203
220
  if attributes.key?(:'name')
@@ -277,12 +294,12 @@ module TalonOne
277
294
  return false if @allow_subledger.nil?
278
295
  return false if !@users_per_card_limit.nil? && @users_per_card_limit < 0
279
296
  return false if @sandbox.nil?
280
- tiers_expiration_policy_validator = EnumAttributeValidator.new('String', ["tier_start_date", "program_join_date"])
297
+ program_join_policy_validator = EnumAttributeValidator.new('String', ["not_join", "points_activated", "points_earned"])
298
+ return false unless program_join_policy_validator.valid?(@program_join_policy)
299
+ tiers_expiration_policy_validator = EnumAttributeValidator.new('String', ["tier_start_date", "program_join_date", "customer_attribute", "absolute_expiration"])
281
300
  return false unless tiers_expiration_policy_validator.valid?(@tiers_expiration_policy)
282
301
  tiers_downgrade_policy_validator = EnumAttributeValidator.new('String', ["one_down", "balance_based"])
283
302
  return false unless tiers_downgrade_policy_validator.valid?(@tiers_downgrade_policy)
284
- program_join_policy_validator = EnumAttributeValidator.new('String', ["not_join", "points_activated", "points_earned"])
285
- return false unless program_join_policy_validator.valid?(@program_join_policy)
286
303
  return false if @name.nil?
287
304
  return false if @timezone.nil?
288
305
  return false if @timezone.to_s.length < 1
@@ -300,10 +317,20 @@ module TalonOne
300
317
  @users_per_card_limit = users_per_card_limit
301
318
  end
302
319
 
320
+ # Custom attribute writer method checking allowed values (enum).
321
+ # @param [Object] program_join_policy Object to be assigned
322
+ def program_join_policy=(program_join_policy)
323
+ validator = EnumAttributeValidator.new('String', ["not_join", "points_activated", "points_earned"])
324
+ unless validator.valid?(program_join_policy)
325
+ fail ArgumentError, "invalid value for \"program_join_policy\", must be one of #{validator.allowable_values}."
326
+ end
327
+ @program_join_policy = program_join_policy
328
+ end
329
+
303
330
  # Custom attribute writer method checking allowed values (enum).
304
331
  # @param [Object] tiers_expiration_policy Object to be assigned
305
332
  def tiers_expiration_policy=(tiers_expiration_policy)
306
- validator = EnumAttributeValidator.new('String', ["tier_start_date", "program_join_date"])
333
+ validator = EnumAttributeValidator.new('String', ["tier_start_date", "program_join_date", "customer_attribute", "absolute_expiration"])
307
334
  unless validator.valid?(tiers_expiration_policy)
308
335
  fail ArgumentError, "invalid value for \"tiers_expiration_policy\", must be one of #{validator.allowable_values}."
309
336
  end
@@ -320,16 +347,6 @@ module TalonOne
320
347
  @tiers_downgrade_policy = tiers_downgrade_policy
321
348
  end
322
349
 
323
- # Custom attribute writer method checking allowed values (enum).
324
- # @param [Object] program_join_policy Object to be assigned
325
- def program_join_policy=(program_join_policy)
326
- validator = EnumAttributeValidator.new('String', ["not_join", "points_activated", "points_earned"])
327
- unless validator.valid?(program_join_policy)
328
- fail ArgumentError, "invalid value for \"program_join_policy\", must be one of #{validator.allowable_values}."
329
- end
330
- @program_join_policy = program_join_policy
331
- end
332
-
333
350
  # Custom attribute writer method with validation
334
351
  # @param [Object] timezone Value to be assigned
335
352
  def timezone=(timezone)
@@ -357,10 +374,12 @@ module TalonOne
357
374
  allow_subledger == o.allow_subledger &&
358
375
  users_per_card_limit == o.users_per_card_limit &&
359
376
  sandbox == o.sandbox &&
377
+ program_join_policy == o.program_join_policy &&
360
378
  tiers_expiration_policy == o.tiers_expiration_policy &&
379
+ tier_cycle_start_date == o.tier_cycle_start_date &&
361
380
  tiers_expire_in == o.tiers_expire_in &&
362
381
  tiers_downgrade_policy == o.tiers_downgrade_policy &&
363
- program_join_policy == o.program_join_policy &&
382
+ card_code_settings == o.card_code_settings &&
364
383
  name == o.name &&
365
384
  tiers == o.tiers &&
366
385
  timezone == o.timezone &&
@@ -376,7 +395,7 @@ module TalonOne
376
395
  # Calculates hash code according to all attributes.
377
396
  # @return [Integer] Hash code
378
397
  def hash
379
- [title, description, subscribed_applications, default_validity, default_pending, allow_subledger, users_per_card_limit, sandbox, tiers_expiration_policy, tiers_expire_in, tiers_downgrade_policy, program_join_policy, name, tiers, timezone, card_based].hash
398
+ [title, description, subscribed_applications, default_validity, default_pending, allow_subledger, users_per_card_limit, sandbox, program_join_policy, tiers_expiration_policy, tier_cycle_start_date, tiers_expire_in, tiers_downgrade_policy, card_code_settings, name, tiers, timezone, card_based].hash
380
399
  end
381
400
 
382
401
  # Builds the object from hash
@@ -155,7 +155,7 @@ module TalonOne
155
155
  # @return true if the model is valid
156
156
  def valid?
157
157
  return false if @type.nil?
158
- type_validator = EnumAttributeValidator.new('String', ["campaign", "loyalty_added_deducted_points", "coupon", "expiring_coupons", "expiring_points", "pending_to_active_points", "strikethrough_pricing", "tier_downgrade", "tier_upgrade", "tier_will_downgrade", "card_expiring_points"])
158
+ type_validator = EnumAttributeValidator.new('String', ["campaign", "loyalty_added_deducted_points", "card_added_deducted_points", "coupon", "expiring_coupons", "expiring_points", "pending_to_active_points", "strikethrough_pricing", "tier_downgrade", "tier_upgrade", "tier_will_downgrade", "card_expiring_points"])
159
159
  return false unless type_validator.valid?(@type)
160
160
  return false if @verb.nil?
161
161
  verb_validator = EnumAttributeValidator.new('String', ["POST", "PUT", "GET", "DELETE", "PATCH"])
@@ -168,7 +168,7 @@ module TalonOne
168
168
  # Custom attribute writer method checking allowed values (enum).
169
169
  # @param [Object] type Object to be assigned
170
170
  def type=(type)
171
- validator = EnumAttributeValidator.new('String', ["campaign", "loyalty_added_deducted_points", "coupon", "expiring_coupons", "expiring_points", "pending_to_active_points", "strikethrough_pricing", "tier_downgrade", "tier_upgrade", "tier_will_downgrade", "card_expiring_points"])
171
+ validator = EnumAttributeValidator.new('String', ["campaign", "loyalty_added_deducted_points", "card_added_deducted_points", "coupon", "expiring_coupons", "expiring_points", "pending_to_active_points", "strikethrough_pricing", "tier_downgrade", "tier_upgrade", "tier_will_downgrade", "card_expiring_points"])
172
172
  unless validator.valid?(type)
173
173
  fail ArgumentError, "invalid value for \"type\", must be one of #{validator.allowable_values}."
174
174
  end
@@ -17,6 +17,9 @@ module TalonOne
17
17
  # Webhook title.
18
18
  attr_accessor :title
19
19
 
20
+ # A description of the webhook.
21
+ attr_accessor :description
22
+
20
23
  # IDs of the Applications to which a webhook must be linked.
21
24
  attr_accessor :application_ids
22
25
 
@@ -24,6 +27,7 @@ module TalonOne
24
27
  def self.attribute_map
25
28
  {
26
29
  :'title' => :'title',
30
+ :'description' => :'description',
27
31
  :'application_ids' => :'applicationIds'
28
32
  }
29
33
  end
@@ -32,6 +36,7 @@ module TalonOne
32
36
  def self.openapi_types
33
37
  {
34
38
  :'title' => :'String',
39
+ :'description' => :'String',
35
40
  :'application_ids' => :'Array<Integer>'
36
41
  }
37
42
  end
@@ -61,6 +66,10 @@ module TalonOne
61
66
  self.title = attributes[:'title']
62
67
  end
63
68
 
69
+ if attributes.key?(:'description')
70
+ self.description = attributes[:'description']
71
+ end
72
+
64
73
  if attributes.key?(:'application_ids')
65
74
  if (value = attributes[:'application_ids']).is_a?(Array)
66
75
  self.application_ids = value
@@ -97,6 +106,7 @@ module TalonOne
97
106
  return true if self.equal?(o)
98
107
  self.class == o.class &&
99
108
  title == o.title &&
109
+ description == o.description &&
100
110
  application_ids == o.application_ids
101
111
  end
102
112
 
@@ -109,7 +119,7 @@ module TalonOne
109
119
  # Calculates hash code according to all attributes.
110
120
  # @return [Integer] Hash code
111
121
  def hash
112
- [title, application_ids].hash
122
+ [title, description, application_ids].hash
113
123
  end
114
124
 
115
125
  # Builds the object from hash
@@ -18,7 +18,7 @@ module TalonOne
18
18
  # Timestamp at which point the referral code becomes valid.
19
19
  attr_accessor :start_date
20
20
 
21
- # Expiration date of the referral code. Referral never expires if this is omitted, zero, or negative.
21
+ # Expiration date of the referral code. Referral never expires if this is omitted.
22
22
  attr_accessor :expiry_date
23
23
 
24
24
  # The number of times a referral code can be used. `0` means no limit but any campaign usage limits will still apply.
@@ -18,7 +18,7 @@ module TalonOne
18
18
  # Timestamp at which point the referral code becomes valid.
19
19
  attr_accessor :start_date
20
20
 
21
- # Expiration date of the referral code. Referral never expires if this is omitted, zero, or negative.
21
+ # Expiration date of the referral code. Referral never expires if this is omitted.
22
22
  attr_accessor :expiry_date
23
23
 
24
24
  # The number of times a referral code can be used. `0` means no limit but any campaign usage limits will still apply.