metronome-sdk 3.6.0 → 3.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (141) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +54 -0
  3. data/README.md +1 -1
  4. data/lib/metronome_sdk/internal/transport/base_client.rb +4 -1
  5. data/lib/metronome_sdk/internal/type/enum.rb +0 -25
  6. data/lib/metronome_sdk/models/commit.rb +36 -1
  7. data/lib/metronome_sdk/models/contract.rb +140 -1
  8. data/lib/metronome_sdk/models/contract_v2.rb +457 -8
  9. data/lib/metronome_sdk/models/contract_without_amendments.rb +320 -5
  10. data/lib/metronome_sdk/models/credit.rb +10 -1
  11. data/lib/metronome_sdk/models/override.rb +7 -1
  12. data/lib/metronome_sdk/models/prepaid_balance_threshold_configuration.rb +113 -2
  13. data/lib/metronome_sdk/models/prepaid_balance_threshold_configuration_v2.rb +105 -2
  14. data/lib/metronome_sdk/models/spend_threshold_configuration.rb +33 -1
  15. data/lib/metronome_sdk/models/spend_threshold_configuration_v2.rb +33 -1
  16. data/lib/metronome_sdk/models/subscription.rb +90 -2
  17. data/lib/metronome_sdk/models/v1/alert_create_params.rb +127 -1
  18. data/lib/metronome_sdk/models/v1/contract_amend_params.rb +46 -5
  19. data/lib/metronome_sdk/models/v1/contract_create_params.rb +436 -12
  20. data/lib/metronome_sdk/models/v1/contract_create_response.rb +1308 -3
  21. data/lib/metronome_sdk/models/v1/contract_get_subscription_seats_history_params.rb +88 -0
  22. data/lib/metronome_sdk/models/v1/contract_get_subscription_seats_history_response.rb +62 -0
  23. data/lib/metronome_sdk/models/v1/contract_list_seat_balances_params.rb +10 -1
  24. data/lib/metronome_sdk/models/v1/customers/alert_retrieve_params.rb +127 -1
  25. data/lib/metronome_sdk/models/v1/customers/customer_alert.rb +130 -3
  26. data/lib/metronome_sdk/models/v1/customers/invoice_list_params.rb +10 -1
  27. data/lib/metronome_sdk/models/v1/dashboard_get_embeddable_url_params.rb +2 -0
  28. data/lib/metronome_sdk/models/v1/package_create_params.rb +394 -11
  29. data/lib/metronome_sdk/models/v1/package_list_response.rb +374 -8
  30. data/lib/metronome_sdk/models/v1/package_retrieve_response.rb +378 -8
  31. data/lib/metronome_sdk/models/v2/contract_edit_params.rb +817 -13
  32. data/lib/metronome_sdk/models/v2/contract_edit_response.rb +4310 -3
  33. data/lib/metronome_sdk/models/v2/contract_get_edit_history_response.rb +600 -10
  34. data/lib/metronome_sdk/resources/v1/alerts.rb +3 -1
  35. data/lib/metronome_sdk/resources/v1/contracts/rate_cards/rates.rb +4 -0
  36. data/lib/metronome_sdk/resources/v1/contracts.rb +71 -2
  37. data/lib/metronome_sdk/resources/v1/customers/alerts.rb +4 -2
  38. data/lib/metronome_sdk/resources/v1/customers/invoices.rb +3 -1
  39. data/lib/metronome_sdk/resources/v1/dashboards.rb +7 -2
  40. data/lib/metronome_sdk/resources/v1/packages.rb +6 -5
  41. data/lib/metronome_sdk/resources/v1.rb +0 -4
  42. data/lib/metronome_sdk/resources/v2/contracts.rb +5 -1
  43. data/lib/metronome_sdk/version.rb +1 -1
  44. data/lib/metronome_sdk.rb +2 -8
  45. data/rbi/metronome_sdk/models/commit.rbi +61 -0
  46. data/rbi/metronome_sdk/models/contract.rbi +354 -0
  47. data/rbi/metronome_sdk/models/contract_v2.rbi +1132 -11
  48. data/rbi/metronome_sdk/models/contract_without_amendments.rbi +831 -0
  49. data/rbi/metronome_sdk/models/credit.rbi +13 -0
  50. data/rbi/metronome_sdk/models/override.rbi +9 -0
  51. data/rbi/metronome_sdk/models/prepaid_balance_threshold_configuration.rbi +299 -6
  52. data/rbi/metronome_sdk/models/prepaid_balance_threshold_configuration_v2.rbi +287 -6
  53. data/rbi/metronome_sdk/models/spend_threshold_configuration.rbi +78 -3
  54. data/rbi/metronome_sdk/models/spend_threshold_configuration_v2.rbi +78 -3
  55. data/rbi/metronome_sdk/models/subscription.rbi +212 -3
  56. data/rbi/metronome_sdk/models/v1/alert_create_params.rbi +373 -0
  57. data/rbi/metronome_sdk/models/v1/contract_amend_params.rbi +81 -6
  58. data/rbi/metronome_sdk/models/v1/contract_create_params.rbi +1095 -17
  59. data/rbi/metronome_sdk/models/v1/contract_create_response.rbi +2911 -4
  60. data/rbi/metronome_sdk/models/v1/contract_get_subscription_seats_history_params.rbi +112 -0
  61. data/rbi/metronome_sdk/models/v1/contract_get_subscription_seats_history_response.rbi +119 -0
  62. data/rbi/metronome_sdk/models/v1/contract_list_seat_balances_params.rbi +13 -0
  63. data/rbi/metronome_sdk/models/v1/customers/alert_retrieve_params.rbi +360 -0
  64. data/rbi/metronome_sdk/models/v1/customers/customer_alert.rbi +379 -2
  65. data/rbi/metronome_sdk/models/v1/customers/invoice_list_params.rbi +13 -0
  66. data/rbi/metronome_sdk/models/v1/dashboard_get_embeddable_url_params.rbi +10 -0
  67. data/rbi/metronome_sdk/models/v1/package_create_params.rbi +1049 -42
  68. data/rbi/metronome_sdk/models/v1/package_list_response.rbi +1051 -54
  69. data/rbi/metronome_sdk/models/v1/package_retrieve_response.rbi +1051 -54
  70. data/rbi/metronome_sdk/models/v2/contract_edit_params.rbi +2130 -114
  71. data/rbi/metronome_sdk/models/v2/contract_edit_response.rbi +9749 -4
  72. data/rbi/metronome_sdk/models/v2/contract_get_edit_history_response.rbi +1567 -82
  73. data/rbi/metronome_sdk/resources/v1/alerts.rbi +8 -0
  74. data/rbi/metronome_sdk/resources/v1/contracts/rate_cards/rates.rbi +4 -0
  75. data/rbi/metronome_sdk/resources/v1/contracts.rbi +77 -0
  76. data/rbi/metronome_sdk/resources/v1/customers/alerts.rbi +8 -1
  77. data/rbi/metronome_sdk/resources/v1/customers/invoices.rbi +4 -0
  78. data/rbi/metronome_sdk/resources/v1/dashboards.rbi +7 -2
  79. data/rbi/metronome_sdk/resources/v1/packages.rbi +8 -4
  80. data/rbi/metronome_sdk/resources/v1.rbi +0 -3
  81. data/rbi/metronome_sdk/resources/v2/contracts.rbi +10 -0
  82. data/sig/metronome_sdk/models/commit.rbs +26 -0
  83. data/sig/metronome_sdk/models/contract.rbs +151 -0
  84. data/sig/metronome_sdk/models/contract_v2.rbs +448 -5
  85. data/sig/metronome_sdk/models/contract_without_amendments.rbs +320 -2
  86. data/sig/metronome_sdk/models/credit.rbs +7 -0
  87. data/sig/metronome_sdk/models/override.rbs +7 -0
  88. data/sig/metronome_sdk/models/prepaid_balance_threshold_configuration.rbs +116 -6
  89. data/sig/metronome_sdk/models/prepaid_balance_threshold_configuration_v2.rbs +116 -6
  90. data/sig/metronome_sdk/models/spend_threshold_configuration.rbs +31 -3
  91. data/sig/metronome_sdk/models/spend_threshold_configuration_v2.rbs +31 -3
  92. data/sig/metronome_sdk/models/subscription.rbs +88 -3
  93. data/sig/metronome_sdk/models/v1/alert_create_params.rbs +144 -0
  94. data/sig/metronome_sdk/models/v1/contract_amend_params.rbs +26 -0
  95. data/sig/metronome_sdk/models/v1/contract_create_params.rbs +412 -5
  96. data/sig/metronome_sdk/models/v1/contract_create_response.rbs +1210 -4
  97. data/sig/metronome_sdk/models/v1/contract_get_subscription_seats_history_params.rbs +63 -0
  98. data/sig/metronome_sdk/models/v1/contract_get_subscription_seats_history_response.rbs +59 -0
  99. data/sig/metronome_sdk/models/v1/contract_list_seat_balances_params.rbs +7 -0
  100. data/sig/metronome_sdk/models/v1/customers/alert_retrieve_params.rbs +141 -0
  101. data/sig/metronome_sdk/models/v1/customers/customer_alert.rbs +150 -0
  102. data/sig/metronome_sdk/models/v1/customers/invoice_list_params.rbs +8 -1
  103. data/sig/metronome_sdk/models/v1/dashboard_get_embeddable_url_params.rbs +4 -0
  104. data/sig/metronome_sdk/models/v1/package_create_params.rbs +386 -5
  105. data/sig/metronome_sdk/models/v1/package_list_response.rbs +380 -5
  106. data/sig/metronome_sdk/models/v1/package_retrieve_response.rbs +378 -5
  107. data/sig/metronome_sdk/models/v2/contract_edit_params.rbs +751 -14
  108. data/sig/metronome_sdk/models/v2/contract_edit_response.rbs +4215 -4
  109. data/sig/metronome_sdk/models/v2/contract_get_edit_history_response.rbs +569 -14
  110. data/sig/metronome_sdk/resources/v1/alerts.rbs +1 -0
  111. data/sig/metronome_sdk/resources/v1/contracts.rbs +14 -0
  112. data/sig/metronome_sdk/resources/v1/customers/alerts.rbs +1 -0
  113. data/sig/metronome_sdk/resources/v1/customers/invoices.rbs +1 -0
  114. data/sig/metronome_sdk/resources/v1/packages.rbs +1 -0
  115. data/sig/metronome_sdk/resources/v1.rbs +0 -2
  116. data/sig/metronome_sdk/resources/v2/contracts.rbs +2 -0
  117. metadata +8 -26
  118. data/lib/metronome_sdk/models/v1/payment.rb +0 -196
  119. data/lib/metronome_sdk/models/v1/payment_attempt_params.rb +0 -28
  120. data/lib/metronome_sdk/models/v1/payment_attempt_response.rb +0 -18
  121. data/lib/metronome_sdk/models/v1/payment_cancel_params.rb +0 -28
  122. data/lib/metronome_sdk/models/v1/payment_cancel_response.rb +0 -18
  123. data/lib/metronome_sdk/models/v1/payment_list_params.rb +0 -53
  124. data/lib/metronome_sdk/models/v1/payment_status.rb +0 -19
  125. data/lib/metronome_sdk/resources/v1/payments.rb +0 -102
  126. data/rbi/metronome_sdk/models/v1/payment.rbi +0 -403
  127. data/rbi/metronome_sdk/models/v1/payment_attempt_params.rbi +0 -48
  128. data/rbi/metronome_sdk/models/v1/payment_attempt_response.rbi +0 -35
  129. data/rbi/metronome_sdk/models/v1/payment_cancel_params.rbi +0 -48
  130. data/rbi/metronome_sdk/models/v1/payment_cancel_response.rbi +0 -35
  131. data/rbi/metronome_sdk/models/v1/payment_list_params.rbi +0 -91
  132. data/rbi/metronome_sdk/models/v1/payment_status.rbi +0 -33
  133. data/rbi/metronome_sdk/resources/v1/payments.rbi +0 -72
  134. data/sig/metronome_sdk/models/v1/payment.rbs +0 -243
  135. data/sig/metronome_sdk/models/v1/payment_attempt_params.rbs +0 -30
  136. data/sig/metronome_sdk/models/v1/payment_attempt_response.rbs +0 -15
  137. data/sig/metronome_sdk/models/v1/payment_cancel_params.rbs +0 -30
  138. data/sig/metronome_sdk/models/v1/payment_cancel_response.rbs +0 -15
  139. data/sig/metronome_sdk/models/v1/payment_list_params.rbs +0 -56
  140. data/sig/metronome_sdk/models/v1/payment_status.rbs +0 -19
  141. data/sig/metronome_sdk/resources/v1/payments.rbs +0 -30
@@ -74,6 +74,29 @@ module MetronomeSDK
74
74
  end
75
75
  attr_writer :discount_configuration
76
76
 
77
+ # Determines which balances are excluded from remaining balance calculation for
78
+ # threshold billing.
79
+ sig do
80
+ returns(
81
+ T.nilable(
82
+ T::Array[
83
+ MetronomeSDK::PrepaidBalanceThresholdConfigurationV2::ThresholdBalanceSpecifier
84
+ ]
85
+ )
86
+ )
87
+ end
88
+ attr_reader :threshold_balance_specifiers
89
+
90
+ sig do
91
+ params(
92
+ threshold_balance_specifiers:
93
+ T::Array[
94
+ MetronomeSDK::PrepaidBalanceThresholdConfigurationV2::ThresholdBalanceSpecifier::OrHash
95
+ ]
96
+ ).void
97
+ end
98
+ attr_writer :threshold_balance_specifiers
99
+
77
100
  sig do
78
101
  params(
79
102
  commit:
@@ -84,7 +107,11 @@ module MetronomeSDK
84
107
  threshold_amount: Float,
85
108
  custom_credit_type_id: String,
86
109
  discount_configuration:
87
- MetronomeSDK::PrepaidBalanceThresholdConfigurationV2::DiscountConfiguration::OrHash
110
+ MetronomeSDK::PrepaidBalanceThresholdConfigurationV2::DiscountConfiguration::OrHash,
111
+ threshold_balance_specifiers:
112
+ T::Array[
113
+ MetronomeSDK::PrepaidBalanceThresholdConfigurationV2::ThresholdBalanceSpecifier::OrHash
114
+ ]
88
115
  ).returns(T.attached_class)
89
116
  end
90
117
  def self.new(
@@ -102,7 +129,10 @@ module MetronomeSDK
102
129
  # If provided, the threshold, recharge-to amount, and the resulting threshold
103
130
  # commit amount will be in terms of this credit type instead of the fiat currency.
104
131
  custom_credit_type_id: nil,
105
- discount_configuration: nil
132
+ discount_configuration: nil,
133
+ # Determines which balances are excluded from remaining balance calculation for
134
+ # threshold billing.
135
+ threshold_balance_specifiers: nil
106
136
  )
107
137
  end
108
138
 
@@ -117,7 +147,11 @@ module MetronomeSDK
117
147
  threshold_amount: Float,
118
148
  custom_credit_type_id: String,
119
149
  discount_configuration:
120
- MetronomeSDK::PrepaidBalanceThresholdConfigurationV2::DiscountConfiguration
150
+ MetronomeSDK::PrepaidBalanceThresholdConfigurationV2::DiscountConfiguration,
151
+ threshold_balance_specifiers:
152
+ T::Array[
153
+ MetronomeSDK::PrepaidBalanceThresholdConfigurationV2::ThresholdBalanceSpecifier
154
+ ]
121
155
  }
122
156
  )
123
157
  end
@@ -221,18 +255,265 @@ module MetronomeSDK
221
255
  sig { returns(Float) }
222
256
  attr_accessor :payment_fraction
223
257
 
224
- sig { params(payment_fraction: Float).returns(T.attached_class) }
258
+ # If provided, the discount stops applying once the spend tracker has accumulated
259
+ # this much spend in the billing period.
260
+ sig do
261
+ returns(
262
+ T.nilable(
263
+ MetronomeSDK::PrepaidBalanceThresholdConfigurationV2::DiscountConfiguration::Cap
264
+ )
265
+ )
266
+ end
267
+ attr_reader :cap
268
+
269
+ sig do
270
+ params(
271
+ cap:
272
+ MetronomeSDK::PrepaidBalanceThresholdConfigurationV2::DiscountConfiguration::Cap::OrHash
273
+ ).void
274
+ end
275
+ attr_writer :cap
276
+
277
+ sig do
278
+ params(
279
+ payment_fraction: Float,
280
+ cap:
281
+ MetronomeSDK::PrepaidBalanceThresholdConfigurationV2::DiscountConfiguration::Cap::OrHash
282
+ ).returns(T.attached_class)
283
+ end
225
284
  def self.new(
226
285
  # The fraction of the original amount that the customer pays after applying the
227
286
  # discount. For example, 0.85 means the customer pays 85% of the original amount
228
287
  # (a 15% discount).
229
- payment_fraction:
288
+ payment_fraction:,
289
+ # If provided, the discount stops applying once the spend tracker has accumulated
290
+ # this much spend in the billing period.
291
+ cap: nil
230
292
  )
231
293
  end
232
294
 
233
- sig { override.returns({ payment_fraction: Float }) }
295
+ sig do
296
+ override.returns(
297
+ {
298
+ payment_fraction: Float,
299
+ cap:
300
+ MetronomeSDK::PrepaidBalanceThresholdConfigurationV2::DiscountConfiguration::Cap
301
+ }
302
+ )
303
+ end
304
+ def to_hash
305
+ end
306
+
307
+ class Cap < MetronomeSDK::Internal::Type::BaseModel
308
+ OrHash =
309
+ T.type_alias do
310
+ T.any(
311
+ MetronomeSDK::PrepaidBalanceThresholdConfigurationV2::DiscountConfiguration::Cap,
312
+ MetronomeSDK::Internal::AnyHash
313
+ )
314
+ end
315
+
316
+ # Accumulated spend ceiling above which the discount stops applying.
317
+ sig { returns(Float) }
318
+ attr_accessor :amount
319
+
320
+ # Alias of the spend tracker this cap is measured against.
321
+ sig { returns(String) }
322
+ attr_accessor :spend_tracker_alias
323
+
324
+ # If provided, the discount stops applying once the spend tracker has accumulated
325
+ # this much spend in the billing period.
326
+ sig do
327
+ params(amount: Float, spend_tracker_alias: String).returns(
328
+ T.attached_class
329
+ )
330
+ end
331
+ def self.new(
332
+ # Accumulated spend ceiling above which the discount stops applying.
333
+ amount:,
334
+ # Alias of the spend tracker this cap is measured against.
335
+ spend_tracker_alias:
336
+ )
337
+ end
338
+
339
+ sig do
340
+ override.returns({ amount: Float, spend_tracker_alias: String })
341
+ end
342
+ def to_hash
343
+ end
344
+ end
345
+ end
346
+
347
+ class ThresholdBalanceSpecifier < MetronomeSDK::Internal::Type::BaseModel
348
+ OrHash =
349
+ T.type_alias do
350
+ T.any(
351
+ MetronomeSDK::PrepaidBalanceThresholdConfigurationV2::ThresholdBalanceSpecifier,
352
+ MetronomeSDK::Internal::AnyHash
353
+ )
354
+ end
355
+
356
+ sig do
357
+ returns(
358
+ T::Array[
359
+ MetronomeSDK::PrepaidBalanceThresholdConfigurationV2::ThresholdBalanceSpecifier::Exclude
360
+ ]
361
+ )
362
+ end
363
+ attr_accessor :exclude
364
+
365
+ sig do
366
+ params(
367
+ exclude:
368
+ T::Array[
369
+ MetronomeSDK::PrepaidBalanceThresholdConfigurationV2::ThresholdBalanceSpecifier::Exclude::OrHash
370
+ ]
371
+ ).returns(T.attached_class)
372
+ end
373
+ def self.new(exclude:)
374
+ end
375
+
376
+ sig do
377
+ override.returns(
378
+ {
379
+ exclude:
380
+ T::Array[
381
+ MetronomeSDK::PrepaidBalanceThresholdConfigurationV2::ThresholdBalanceSpecifier::Exclude
382
+ ]
383
+ }
384
+ )
385
+ end
234
386
  def to_hash
235
387
  end
388
+
389
+ class Exclude < MetronomeSDK::Internal::Type::BaseModel
390
+ OrHash =
391
+ T.type_alias do
392
+ T.any(
393
+ MetronomeSDK::PrepaidBalanceThresholdConfigurationV2::ThresholdBalanceSpecifier::Exclude,
394
+ MetronomeSDK::Internal::AnyHash
395
+ )
396
+ end
397
+
398
+ sig do
399
+ returns(
400
+ T::Array[
401
+ MetronomeSDK::PrepaidBalanceThresholdConfigurationV2::ThresholdBalanceSpecifier::Exclude::CustomFieldFilter
402
+ ]
403
+ )
404
+ end
405
+ attr_accessor :custom_field_filters
406
+
407
+ sig do
408
+ params(
409
+ custom_field_filters:
410
+ T::Array[
411
+ MetronomeSDK::PrepaidBalanceThresholdConfigurationV2::ThresholdBalanceSpecifier::Exclude::CustomFieldFilter::OrHash
412
+ ]
413
+ ).returns(T.attached_class)
414
+ end
415
+ def self.new(custom_field_filters:)
416
+ end
417
+
418
+ sig do
419
+ override.returns(
420
+ {
421
+ custom_field_filters:
422
+ T::Array[
423
+ MetronomeSDK::PrepaidBalanceThresholdConfigurationV2::ThresholdBalanceSpecifier::Exclude::CustomFieldFilter
424
+ ]
425
+ }
426
+ )
427
+ end
428
+ def to_hash
429
+ end
430
+
431
+ class CustomFieldFilter < MetronomeSDK::Internal::Type::BaseModel
432
+ OrHash =
433
+ T.type_alias do
434
+ T.any(
435
+ MetronomeSDK::PrepaidBalanceThresholdConfigurationV2::ThresholdBalanceSpecifier::Exclude::CustomFieldFilter,
436
+ MetronomeSDK::Internal::AnyHash
437
+ )
438
+ end
439
+
440
+ sig do
441
+ returns(
442
+ MetronomeSDK::PrepaidBalanceThresholdConfigurationV2::ThresholdBalanceSpecifier::Exclude::CustomFieldFilter::Entity::OrSymbol
443
+ )
444
+ end
445
+ attr_accessor :entity
446
+
447
+ sig { returns(String) }
448
+ attr_accessor :key
449
+
450
+ sig { returns(String) }
451
+ attr_accessor :value
452
+
453
+ sig do
454
+ params(
455
+ entity:
456
+ MetronomeSDK::PrepaidBalanceThresholdConfigurationV2::ThresholdBalanceSpecifier::Exclude::CustomFieldFilter::Entity::OrSymbol,
457
+ key: String,
458
+ value: String
459
+ ).returns(T.attached_class)
460
+ end
461
+ def self.new(entity:, key:, value:)
462
+ end
463
+
464
+ sig do
465
+ override.returns(
466
+ {
467
+ entity:
468
+ MetronomeSDK::PrepaidBalanceThresholdConfigurationV2::ThresholdBalanceSpecifier::Exclude::CustomFieldFilter::Entity::OrSymbol,
469
+ key: String,
470
+ value: String
471
+ }
472
+ )
473
+ end
474
+ def to_hash
475
+ end
476
+
477
+ module Entity
478
+ extend MetronomeSDK::Internal::Type::Enum
479
+
480
+ TaggedSymbol =
481
+ T.type_alias do
482
+ T.all(
483
+ Symbol,
484
+ MetronomeSDK::PrepaidBalanceThresholdConfigurationV2::ThresholdBalanceSpecifier::Exclude::CustomFieldFilter::Entity
485
+ )
486
+ end
487
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
488
+
489
+ COMMIT =
490
+ T.let(
491
+ :Commit,
492
+ MetronomeSDK::PrepaidBalanceThresholdConfigurationV2::ThresholdBalanceSpecifier::Exclude::CustomFieldFilter::Entity::TaggedSymbol
493
+ )
494
+ CONTRACT_CREDIT =
495
+ T.let(
496
+ :ContractCredit,
497
+ MetronomeSDK::PrepaidBalanceThresholdConfigurationV2::ThresholdBalanceSpecifier::Exclude::CustomFieldFilter::Entity::TaggedSymbol
498
+ )
499
+ CONTRACT_CREDIT_OR_COMMIT =
500
+ T.let(
501
+ :ContractCreditOrCommit,
502
+ MetronomeSDK::PrepaidBalanceThresholdConfigurationV2::ThresholdBalanceSpecifier::Exclude::CustomFieldFilter::Entity::TaggedSymbol
503
+ )
504
+
505
+ sig do
506
+ override.returns(
507
+ T::Array[
508
+ MetronomeSDK::PrepaidBalanceThresholdConfigurationV2::ThresholdBalanceSpecifier::Exclude::CustomFieldFilter::Entity::TaggedSymbol
509
+ ]
510
+ )
511
+ end
512
+ def self.values
513
+ end
514
+ end
515
+ end
516
+ end
236
517
  end
237
518
  end
238
519
  end
@@ -109,18 +109,93 @@ module MetronomeSDK
109
109
  sig { returns(Float) }
110
110
  attr_accessor :payment_fraction
111
111
 
112
- sig { params(payment_fraction: Float).returns(T.attached_class) }
112
+ # If provided, the discount stops applying once the spend tracker has accumulated
113
+ # this much spend in the billing period.
114
+ sig do
115
+ returns(
116
+ T.nilable(
117
+ MetronomeSDK::SpendThresholdConfiguration::DiscountConfiguration::Cap
118
+ )
119
+ )
120
+ end
121
+ attr_reader :cap
122
+
123
+ sig do
124
+ params(
125
+ cap:
126
+ MetronomeSDK::SpendThresholdConfiguration::DiscountConfiguration::Cap::OrHash
127
+ ).void
128
+ end
129
+ attr_writer :cap
130
+
131
+ sig do
132
+ params(
133
+ payment_fraction: Float,
134
+ cap:
135
+ MetronomeSDK::SpendThresholdConfiguration::DiscountConfiguration::Cap::OrHash
136
+ ).returns(T.attached_class)
137
+ end
113
138
  def self.new(
114
139
  # The fraction of the original amount that the customer pays after applying the
115
140
  # discount. For example, 0.85 means the customer pays 85% of the original amount
116
141
  # (a 15% discount).
117
- payment_fraction:
142
+ payment_fraction:,
143
+ # If provided, the discount stops applying once the spend tracker has accumulated
144
+ # this much spend in the billing period.
145
+ cap: nil
118
146
  )
119
147
  end
120
148
 
121
- sig { override.returns({ payment_fraction: Float }) }
149
+ sig do
150
+ override.returns(
151
+ {
152
+ payment_fraction: Float,
153
+ cap:
154
+ MetronomeSDK::SpendThresholdConfiguration::DiscountConfiguration::Cap
155
+ }
156
+ )
157
+ end
122
158
  def to_hash
123
159
  end
160
+
161
+ class Cap < MetronomeSDK::Internal::Type::BaseModel
162
+ OrHash =
163
+ T.type_alias do
164
+ T.any(
165
+ MetronomeSDK::SpendThresholdConfiguration::DiscountConfiguration::Cap,
166
+ MetronomeSDK::Internal::AnyHash
167
+ )
168
+ end
169
+
170
+ # Accumulated spend ceiling above which the discount stops applying.
171
+ sig { returns(Float) }
172
+ attr_accessor :amount
173
+
174
+ # Alias of the spend tracker this cap is measured against.
175
+ sig { returns(String) }
176
+ attr_accessor :spend_tracker_alias
177
+
178
+ # If provided, the discount stops applying once the spend tracker has accumulated
179
+ # this much spend in the billing period.
180
+ sig do
181
+ params(amount: Float, spend_tracker_alias: String).returns(
182
+ T.attached_class
183
+ )
184
+ end
185
+ def self.new(
186
+ # Accumulated spend ceiling above which the discount stops applying.
187
+ amount:,
188
+ # Alias of the spend tracker this cap is measured against.
189
+ spend_tracker_alias:
190
+ )
191
+ end
192
+
193
+ sig do
194
+ override.returns({ amount: Float, spend_tracker_alias: String })
195
+ end
196
+ def to_hash
197
+ end
198
+ end
124
199
  end
125
200
  end
126
201
  end
@@ -109,18 +109,93 @@ module MetronomeSDK
109
109
  sig { returns(Float) }
110
110
  attr_accessor :payment_fraction
111
111
 
112
- sig { params(payment_fraction: Float).returns(T.attached_class) }
112
+ # If provided, the discount stops applying once the spend tracker has accumulated
113
+ # this much spend in the billing period.
114
+ sig do
115
+ returns(
116
+ T.nilable(
117
+ MetronomeSDK::SpendThresholdConfigurationV2::DiscountConfiguration::Cap
118
+ )
119
+ )
120
+ end
121
+ attr_reader :cap
122
+
123
+ sig do
124
+ params(
125
+ cap:
126
+ MetronomeSDK::SpendThresholdConfigurationV2::DiscountConfiguration::Cap::OrHash
127
+ ).void
128
+ end
129
+ attr_writer :cap
130
+
131
+ sig do
132
+ params(
133
+ payment_fraction: Float,
134
+ cap:
135
+ MetronomeSDK::SpendThresholdConfigurationV2::DiscountConfiguration::Cap::OrHash
136
+ ).returns(T.attached_class)
137
+ end
113
138
  def self.new(
114
139
  # The fraction of the original amount that the customer pays after applying the
115
140
  # discount. For example, 0.85 means the customer pays 85% of the original amount
116
141
  # (a 15% discount).
117
- payment_fraction:
142
+ payment_fraction:,
143
+ # If provided, the discount stops applying once the spend tracker has accumulated
144
+ # this much spend in the billing period.
145
+ cap: nil
118
146
  )
119
147
  end
120
148
 
121
- sig { override.returns({ payment_fraction: Float }) }
149
+ sig do
150
+ override.returns(
151
+ {
152
+ payment_fraction: Float,
153
+ cap:
154
+ MetronomeSDK::SpendThresholdConfigurationV2::DiscountConfiguration::Cap
155
+ }
156
+ )
157
+ end
122
158
  def to_hash
123
159
  end
160
+
161
+ class Cap < MetronomeSDK::Internal::Type::BaseModel
162
+ OrHash =
163
+ T.type_alias do
164
+ T.any(
165
+ MetronomeSDK::SpendThresholdConfigurationV2::DiscountConfiguration::Cap,
166
+ MetronomeSDK::Internal::AnyHash
167
+ )
168
+ end
169
+
170
+ # Accumulated spend ceiling above which the discount stops applying.
171
+ sig { returns(Float) }
172
+ attr_accessor :amount
173
+
174
+ # Alias of the spend tracker this cap is measured against.
175
+ sig { returns(String) }
176
+ attr_accessor :spend_tracker_alias
177
+
178
+ # If provided, the discount stops applying once the spend tracker has accumulated
179
+ # this much spend in the billing period.
180
+ sig do
181
+ params(amount: Float, spend_tracker_alias: String).returns(
182
+ T.attached_class
183
+ )
184
+ end
185
+ def self.new(
186
+ # Accumulated spend ceiling above which the discount stops applying.
187
+ amount:,
188
+ # Alias of the spend tracker this cap is measured against.
189
+ spend_tracker_alias:
190
+ )
191
+ end
192
+
193
+ sig do
194
+ override.returns({ amount: Float, spend_tracker_alias: String })
195
+ end
196
+ def to_hash
197
+ end
198
+ end
124
199
  end
125
200
  end
126
201
  end