metronome-sdk 3.6.0 → 3.7.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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +16 -0
- data/README.md +1 -1
- data/lib/metronome_sdk/internal/type/enum.rb +0 -25
- data/lib/metronome_sdk/models/commit.rb +27 -1
- data/lib/metronome_sdk/models/contract.rb +140 -1
- data/lib/metronome_sdk/models/contract_v2.rb +168 -2
- data/lib/metronome_sdk/models/contract_without_amendments.rb +142 -1
- data/lib/metronome_sdk/models/prepaid_balance_threshold_configuration.rb +105 -2
- data/lib/metronome_sdk/models/prepaid_balance_threshold_configuration_v2.rb +103 -2
- data/lib/metronome_sdk/models/spend_threshold_configuration.rb +33 -1
- data/lib/metronome_sdk/models/spend_threshold_configuration_v2.rb +33 -1
- data/lib/metronome_sdk/models/v1/contract_amend_params.rb +29 -1
- data/lib/metronome_sdk/models/v1/contract_create_params.rb +146 -2
- data/lib/metronome_sdk/models/v1/contract_create_response.rb +1134 -3
- data/lib/metronome_sdk/models/v1/package_create_params.rb +115 -1
- data/lib/metronome_sdk/models/v1/package_list_response.rb +110 -1
- data/lib/metronome_sdk/models/v1/package_retrieve_response.rb +114 -1
- data/lib/metronome_sdk/models/v2/contract_edit_params.rb +303 -5
- data/lib/metronome_sdk/models/v2/contract_edit_response.rb +3862 -3
- data/lib/metronome_sdk/models/v2/contract_get_edit_history_response.rb +145 -3
- data/lib/metronome_sdk/resources/v1/contracts.rb +3 -1
- data/lib/metronome_sdk/resources/v1/packages.rb +6 -5
- data/lib/metronome_sdk/resources/v1.rb +0 -4
- data/lib/metronome_sdk/resources/v2/contracts.rb +5 -1
- data/lib/metronome_sdk/version.rb +1 -1
- data/lib/metronome_sdk.rb +0 -8
- data/rbi/metronome_sdk/models/commit.rbi +48 -0
- data/rbi/metronome_sdk/models/contract.rbi +354 -0
- data/rbi/metronome_sdk/models/contract_v2.rbi +409 -0
- data/rbi/metronome_sdk/models/contract_without_amendments.rbi +368 -0
- data/rbi/metronome_sdk/models/prepaid_balance_threshold_configuration.rbi +289 -6
- data/rbi/metronome_sdk/models/prepaid_balance_threshold_configuration_v2.rbi +283 -6
- data/rbi/metronome_sdk/models/spend_threshold_configuration.rbi +78 -3
- data/rbi/metronome_sdk/models/spend_threshold_configuration_v2.rbi +78 -3
- data/rbi/metronome_sdk/models/v1/contract_amend_params.rbi +54 -0
- data/rbi/metronome_sdk/models/v1/contract_create_params.rbi +368 -0
- data/rbi/metronome_sdk/models/v1/contract_create_response.rbi +2448 -4
- data/rbi/metronome_sdk/models/v1/package_create_params.rbi +310 -0
- data/rbi/metronome_sdk/models/v1/package_list_response.rbi +307 -0
- data/rbi/metronome_sdk/models/v1/package_retrieve_response.rbi +307 -0
- data/rbi/metronome_sdk/models/v2/contract_edit_params.rbi +734 -11
- data/rbi/metronome_sdk/models/v2/contract_edit_response.rbi +8612 -4
- data/rbi/metronome_sdk/models/v2/contract_get_edit_history_response.rbi +359 -11
- data/rbi/metronome_sdk/resources/v1/contracts.rbi +7 -0
- data/rbi/metronome_sdk/resources/v1/packages.rbi +8 -4
- data/rbi/metronome_sdk/resources/v1.rbi +0 -3
- data/rbi/metronome_sdk/resources/v2/contracts.rbi +10 -0
- data/sig/metronome_sdk/models/commit.rbs +19 -0
- data/sig/metronome_sdk/models/contract.rbs +151 -0
- data/sig/metronome_sdk/models/contract_v2.rbs +170 -0
- data/sig/metronome_sdk/models/contract_without_amendments.rbs +151 -0
- data/sig/metronome_sdk/models/prepaid_balance_threshold_configuration.rbs +116 -6
- data/sig/metronome_sdk/models/prepaid_balance_threshold_configuration_v2.rbs +116 -6
- data/sig/metronome_sdk/models/spend_threshold_configuration.rbs +31 -3
- data/sig/metronome_sdk/models/spend_threshold_configuration_v2.rbs +31 -3
- data/sig/metronome_sdk/models/v1/contract_amend_params.rbs +19 -0
- data/sig/metronome_sdk/models/v1/contract_create_params.rbs +134 -0
- data/sig/metronome_sdk/models/v1/contract_create_response.rbs +1045 -4
- data/sig/metronome_sdk/models/v1/package_create_params.rbs +115 -0
- data/sig/metronome_sdk/models/v1/package_list_response.rbs +115 -0
- data/sig/metronome_sdk/models/v1/package_retrieve_response.rbs +115 -0
- data/sig/metronome_sdk/models/v2/contract_edit_params.rbs +283 -9
- data/sig/metronome_sdk/models/v2/contract_edit_response.rbs +3792 -4
- data/sig/metronome_sdk/models/v2/contract_get_edit_history_response.rbs +142 -9
- data/sig/metronome_sdk/resources/v1/contracts.rbs +1 -0
- data/sig/metronome_sdk/resources/v1/packages.rbs +1 -0
- data/sig/metronome_sdk/resources/v1.rbs +0 -2
- data/sig/metronome_sdk/resources/v2/contracts.rbs +2 -0
- metadata +2 -26
- data/lib/metronome_sdk/models/v1/payment.rb +0 -196
- data/lib/metronome_sdk/models/v1/payment_attempt_params.rb +0 -28
- data/lib/metronome_sdk/models/v1/payment_attempt_response.rb +0 -18
- data/lib/metronome_sdk/models/v1/payment_cancel_params.rb +0 -28
- data/lib/metronome_sdk/models/v1/payment_cancel_response.rb +0 -18
- data/lib/metronome_sdk/models/v1/payment_list_params.rb +0 -53
- data/lib/metronome_sdk/models/v1/payment_status.rb +0 -19
- data/lib/metronome_sdk/resources/v1/payments.rb +0 -102
- data/rbi/metronome_sdk/models/v1/payment.rbi +0 -403
- data/rbi/metronome_sdk/models/v1/payment_attempt_params.rbi +0 -48
- data/rbi/metronome_sdk/models/v1/payment_attempt_response.rbi +0 -35
- data/rbi/metronome_sdk/models/v1/payment_cancel_params.rbi +0 -48
- data/rbi/metronome_sdk/models/v1/payment_cancel_response.rbi +0 -35
- data/rbi/metronome_sdk/models/v1/payment_list_params.rbi +0 -91
- data/rbi/metronome_sdk/models/v1/payment_status.rbi +0 -33
- data/rbi/metronome_sdk/resources/v1/payments.rbi +0 -72
- data/sig/metronome_sdk/models/v1/payment.rbs +0 -243
- data/sig/metronome_sdk/models/v1/payment_attempt_params.rbs +0 -30
- data/sig/metronome_sdk/models/v1/payment_attempt_response.rbs +0 -15
- data/sig/metronome_sdk/models/v1/payment_cancel_params.rbs +0 -30
- data/sig/metronome_sdk/models/v1/payment_cancel_response.rbs +0 -15
- data/sig/metronome_sdk/models/v1/payment_list_params.rbs +0 -56
- data/sig/metronome_sdk/models/v1/payment_status.rbs +0 -19
- data/sig/metronome_sdk/resources/v1/payments.rbs +0 -30
|
@@ -74,6 +74,27 @@ module MetronomeSDK
|
|
|
74
74
|
end
|
|
75
75
|
attr_writer :discount_configuration
|
|
76
76
|
|
|
77
|
+
sig do
|
|
78
|
+
returns(
|
|
79
|
+
T.nilable(
|
|
80
|
+
T::Array[
|
|
81
|
+
MetronomeSDK::PrepaidBalanceThresholdConfiguration::ThresholdBalanceSpecifier
|
|
82
|
+
]
|
|
83
|
+
)
|
|
84
|
+
)
|
|
85
|
+
end
|
|
86
|
+
attr_reader :threshold_balance_specifiers
|
|
87
|
+
|
|
88
|
+
sig do
|
|
89
|
+
params(
|
|
90
|
+
threshold_balance_specifiers:
|
|
91
|
+
T::Array[
|
|
92
|
+
MetronomeSDK::PrepaidBalanceThresholdConfiguration::ThresholdBalanceSpecifier::OrHash
|
|
93
|
+
]
|
|
94
|
+
).void
|
|
95
|
+
end
|
|
96
|
+
attr_writer :threshold_balance_specifiers
|
|
97
|
+
|
|
77
98
|
sig do
|
|
78
99
|
params(
|
|
79
100
|
commit:
|
|
@@ -84,7 +105,11 @@ module MetronomeSDK
|
|
|
84
105
|
threshold_amount: Float,
|
|
85
106
|
custom_credit_type_id: String,
|
|
86
107
|
discount_configuration:
|
|
87
|
-
MetronomeSDK::PrepaidBalanceThresholdConfiguration::DiscountConfiguration::OrHash
|
|
108
|
+
MetronomeSDK::PrepaidBalanceThresholdConfiguration::DiscountConfiguration::OrHash,
|
|
109
|
+
threshold_balance_specifiers:
|
|
110
|
+
T::Array[
|
|
111
|
+
MetronomeSDK::PrepaidBalanceThresholdConfiguration::ThresholdBalanceSpecifier::OrHash
|
|
112
|
+
]
|
|
88
113
|
).returns(T.attached_class)
|
|
89
114
|
end
|
|
90
115
|
def self.new(
|
|
@@ -102,7 +127,8 @@ module MetronomeSDK
|
|
|
102
127
|
# If provided, the threshold, recharge-to amount, and the resulting threshold
|
|
103
128
|
# commit amount will be in terms of this credit type instead of the fiat currency.
|
|
104
129
|
custom_credit_type_id: nil,
|
|
105
|
-
discount_configuration: nil
|
|
130
|
+
discount_configuration: nil,
|
|
131
|
+
threshold_balance_specifiers: nil
|
|
106
132
|
)
|
|
107
133
|
end
|
|
108
134
|
|
|
@@ -116,7 +142,11 @@ module MetronomeSDK
|
|
|
116
142
|
threshold_amount: Float,
|
|
117
143
|
custom_credit_type_id: String,
|
|
118
144
|
discount_configuration:
|
|
119
|
-
MetronomeSDK::PrepaidBalanceThresholdConfiguration::DiscountConfiguration
|
|
145
|
+
MetronomeSDK::PrepaidBalanceThresholdConfiguration::DiscountConfiguration,
|
|
146
|
+
threshold_balance_specifiers:
|
|
147
|
+
T::Array[
|
|
148
|
+
MetronomeSDK::PrepaidBalanceThresholdConfiguration::ThresholdBalanceSpecifier
|
|
149
|
+
]
|
|
120
150
|
}
|
|
121
151
|
)
|
|
122
152
|
end
|
|
@@ -216,18 +246,271 @@ module MetronomeSDK
|
|
|
216
246
|
sig { returns(Float) }
|
|
217
247
|
attr_accessor :payment_fraction
|
|
218
248
|
|
|
219
|
-
|
|
249
|
+
# If provided, the discount stops applying once the spend tracker has accumulated
|
|
250
|
+
# this much spend in the billing period.
|
|
251
|
+
sig do
|
|
252
|
+
returns(
|
|
253
|
+
T.nilable(
|
|
254
|
+
MetronomeSDK::PrepaidBalanceThresholdConfiguration::DiscountConfiguration::Cap
|
|
255
|
+
)
|
|
256
|
+
)
|
|
257
|
+
end
|
|
258
|
+
attr_reader :cap
|
|
259
|
+
|
|
260
|
+
sig do
|
|
261
|
+
params(
|
|
262
|
+
cap:
|
|
263
|
+
MetronomeSDK::PrepaidBalanceThresholdConfiguration::DiscountConfiguration::Cap::OrHash
|
|
264
|
+
).void
|
|
265
|
+
end
|
|
266
|
+
attr_writer :cap
|
|
267
|
+
|
|
268
|
+
sig do
|
|
269
|
+
params(
|
|
270
|
+
payment_fraction: Float,
|
|
271
|
+
cap:
|
|
272
|
+
MetronomeSDK::PrepaidBalanceThresholdConfiguration::DiscountConfiguration::Cap::OrHash
|
|
273
|
+
).returns(T.attached_class)
|
|
274
|
+
end
|
|
220
275
|
def self.new(
|
|
221
276
|
# The fraction of the original amount that the customer pays after applying the
|
|
222
277
|
# discount. For example, 0.85 means the customer pays 85% of the original amount
|
|
223
278
|
# (a 15% discount).
|
|
224
|
-
payment_fraction
|
|
279
|
+
payment_fraction:,
|
|
280
|
+
# If provided, the discount stops applying once the spend tracker has accumulated
|
|
281
|
+
# this much spend in the billing period.
|
|
282
|
+
cap: nil
|
|
225
283
|
)
|
|
226
284
|
end
|
|
227
285
|
|
|
228
|
-
sig
|
|
286
|
+
sig do
|
|
287
|
+
override.returns(
|
|
288
|
+
{
|
|
289
|
+
payment_fraction: Float,
|
|
290
|
+
cap:
|
|
291
|
+
MetronomeSDK::PrepaidBalanceThresholdConfiguration::DiscountConfiguration::Cap
|
|
292
|
+
}
|
|
293
|
+
)
|
|
294
|
+
end
|
|
229
295
|
def to_hash
|
|
230
296
|
end
|
|
297
|
+
|
|
298
|
+
class Cap < MetronomeSDK::Internal::Type::BaseModel
|
|
299
|
+
OrHash =
|
|
300
|
+
T.type_alias do
|
|
301
|
+
T.any(
|
|
302
|
+
MetronomeSDK::PrepaidBalanceThresholdConfiguration::DiscountConfiguration::Cap,
|
|
303
|
+
MetronomeSDK::Internal::AnyHash
|
|
304
|
+
)
|
|
305
|
+
end
|
|
306
|
+
|
|
307
|
+
# Accumulated spend ceiling above which the discount stops applying.
|
|
308
|
+
sig { returns(Float) }
|
|
309
|
+
attr_accessor :amount
|
|
310
|
+
|
|
311
|
+
# Alias of the spend tracker this cap is measured against.
|
|
312
|
+
sig { returns(String) }
|
|
313
|
+
attr_accessor :spend_tracker_alias
|
|
314
|
+
|
|
315
|
+
# If provided, the discount stops applying once the spend tracker has accumulated
|
|
316
|
+
# this much spend in the billing period.
|
|
317
|
+
sig do
|
|
318
|
+
params(amount: Float, spend_tracker_alias: String).returns(
|
|
319
|
+
T.attached_class
|
|
320
|
+
)
|
|
321
|
+
end
|
|
322
|
+
def self.new(
|
|
323
|
+
# Accumulated spend ceiling above which the discount stops applying.
|
|
324
|
+
amount:,
|
|
325
|
+
# Alias of the spend tracker this cap is measured against.
|
|
326
|
+
spend_tracker_alias:
|
|
327
|
+
)
|
|
328
|
+
end
|
|
329
|
+
|
|
330
|
+
sig do
|
|
331
|
+
override.returns({ amount: Float, spend_tracker_alias: String })
|
|
332
|
+
end
|
|
333
|
+
def to_hash
|
|
334
|
+
end
|
|
335
|
+
end
|
|
336
|
+
end
|
|
337
|
+
|
|
338
|
+
class ThresholdBalanceSpecifier < MetronomeSDK::Internal::Type::BaseModel
|
|
339
|
+
OrHash =
|
|
340
|
+
T.type_alias do
|
|
341
|
+
T.any(
|
|
342
|
+
MetronomeSDK::PrepaidBalanceThresholdConfiguration::ThresholdBalanceSpecifier,
|
|
343
|
+
MetronomeSDK::Internal::AnyHash
|
|
344
|
+
)
|
|
345
|
+
end
|
|
346
|
+
|
|
347
|
+
sig do
|
|
348
|
+
returns(
|
|
349
|
+
T::Array[
|
|
350
|
+
MetronomeSDK::PrepaidBalanceThresholdConfiguration::ThresholdBalanceSpecifier::Exclude
|
|
351
|
+
]
|
|
352
|
+
)
|
|
353
|
+
end
|
|
354
|
+
attr_accessor :exclude
|
|
355
|
+
|
|
356
|
+
sig do
|
|
357
|
+
params(
|
|
358
|
+
exclude:
|
|
359
|
+
T::Array[
|
|
360
|
+
MetronomeSDK::PrepaidBalanceThresholdConfiguration::ThresholdBalanceSpecifier::Exclude::OrHash
|
|
361
|
+
]
|
|
362
|
+
).returns(T.attached_class)
|
|
363
|
+
end
|
|
364
|
+
def self.new(exclude:)
|
|
365
|
+
end
|
|
366
|
+
|
|
367
|
+
sig do
|
|
368
|
+
override.returns(
|
|
369
|
+
{
|
|
370
|
+
exclude:
|
|
371
|
+
T::Array[
|
|
372
|
+
MetronomeSDK::PrepaidBalanceThresholdConfiguration::ThresholdBalanceSpecifier::Exclude
|
|
373
|
+
]
|
|
374
|
+
}
|
|
375
|
+
)
|
|
376
|
+
end
|
|
377
|
+
def to_hash
|
|
378
|
+
end
|
|
379
|
+
|
|
380
|
+
class Exclude < MetronomeSDK::Internal::Type::BaseModel
|
|
381
|
+
OrHash =
|
|
382
|
+
T.type_alias do
|
|
383
|
+
T.any(
|
|
384
|
+
MetronomeSDK::PrepaidBalanceThresholdConfiguration::ThresholdBalanceSpecifier::Exclude,
|
|
385
|
+
MetronomeSDK::Internal::AnyHash
|
|
386
|
+
)
|
|
387
|
+
end
|
|
388
|
+
|
|
389
|
+
# If provided, balances with all the custom fields will not be considered when
|
|
390
|
+
# evaluating threshold billing
|
|
391
|
+
sig do
|
|
392
|
+
returns(
|
|
393
|
+
T::Array[
|
|
394
|
+
MetronomeSDK::PrepaidBalanceThresholdConfiguration::ThresholdBalanceSpecifier::Exclude::CustomFieldFilter
|
|
395
|
+
]
|
|
396
|
+
)
|
|
397
|
+
end
|
|
398
|
+
attr_accessor :custom_field_filters
|
|
399
|
+
|
|
400
|
+
sig do
|
|
401
|
+
params(
|
|
402
|
+
custom_field_filters:
|
|
403
|
+
T::Array[
|
|
404
|
+
MetronomeSDK::PrepaidBalanceThresholdConfiguration::ThresholdBalanceSpecifier::Exclude::CustomFieldFilter::OrHash
|
|
405
|
+
]
|
|
406
|
+
).returns(T.attached_class)
|
|
407
|
+
end
|
|
408
|
+
def self.new(
|
|
409
|
+
# If provided, balances with all the custom fields will not be considered when
|
|
410
|
+
# evaluating threshold billing
|
|
411
|
+
custom_field_filters:
|
|
412
|
+
)
|
|
413
|
+
end
|
|
414
|
+
|
|
415
|
+
sig do
|
|
416
|
+
override.returns(
|
|
417
|
+
{
|
|
418
|
+
custom_field_filters:
|
|
419
|
+
T::Array[
|
|
420
|
+
MetronomeSDK::PrepaidBalanceThresholdConfiguration::ThresholdBalanceSpecifier::Exclude::CustomFieldFilter
|
|
421
|
+
]
|
|
422
|
+
}
|
|
423
|
+
)
|
|
424
|
+
end
|
|
425
|
+
def to_hash
|
|
426
|
+
end
|
|
427
|
+
|
|
428
|
+
class CustomFieldFilter < MetronomeSDK::Internal::Type::BaseModel
|
|
429
|
+
OrHash =
|
|
430
|
+
T.type_alias do
|
|
431
|
+
T.any(
|
|
432
|
+
MetronomeSDK::PrepaidBalanceThresholdConfiguration::ThresholdBalanceSpecifier::Exclude::CustomFieldFilter,
|
|
433
|
+
MetronomeSDK::Internal::AnyHash
|
|
434
|
+
)
|
|
435
|
+
end
|
|
436
|
+
|
|
437
|
+
sig do
|
|
438
|
+
returns(
|
|
439
|
+
MetronomeSDK::PrepaidBalanceThresholdConfiguration::ThresholdBalanceSpecifier::Exclude::CustomFieldFilter::Entity::OrSymbol
|
|
440
|
+
)
|
|
441
|
+
end
|
|
442
|
+
attr_accessor :entity
|
|
443
|
+
|
|
444
|
+
sig { returns(String) }
|
|
445
|
+
attr_accessor :key
|
|
446
|
+
|
|
447
|
+
sig { returns(String) }
|
|
448
|
+
attr_accessor :value
|
|
449
|
+
|
|
450
|
+
sig do
|
|
451
|
+
params(
|
|
452
|
+
entity:
|
|
453
|
+
MetronomeSDK::PrepaidBalanceThresholdConfiguration::ThresholdBalanceSpecifier::Exclude::CustomFieldFilter::Entity::OrSymbol,
|
|
454
|
+
key: String,
|
|
455
|
+
value: String
|
|
456
|
+
).returns(T.attached_class)
|
|
457
|
+
end
|
|
458
|
+
def self.new(entity:, key:, value:)
|
|
459
|
+
end
|
|
460
|
+
|
|
461
|
+
sig do
|
|
462
|
+
override.returns(
|
|
463
|
+
{
|
|
464
|
+
entity:
|
|
465
|
+
MetronomeSDK::PrepaidBalanceThresholdConfiguration::ThresholdBalanceSpecifier::Exclude::CustomFieldFilter::Entity::OrSymbol,
|
|
466
|
+
key: String,
|
|
467
|
+
value: String
|
|
468
|
+
}
|
|
469
|
+
)
|
|
470
|
+
end
|
|
471
|
+
def to_hash
|
|
472
|
+
end
|
|
473
|
+
|
|
474
|
+
module Entity
|
|
475
|
+
extend MetronomeSDK::Internal::Type::Enum
|
|
476
|
+
|
|
477
|
+
TaggedSymbol =
|
|
478
|
+
T.type_alias do
|
|
479
|
+
T.all(
|
|
480
|
+
Symbol,
|
|
481
|
+
MetronomeSDK::PrepaidBalanceThresholdConfiguration::ThresholdBalanceSpecifier::Exclude::CustomFieldFilter::Entity
|
|
482
|
+
)
|
|
483
|
+
end
|
|
484
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
485
|
+
|
|
486
|
+
COMMIT =
|
|
487
|
+
T.let(
|
|
488
|
+
:Commit,
|
|
489
|
+
MetronomeSDK::PrepaidBalanceThresholdConfiguration::ThresholdBalanceSpecifier::Exclude::CustomFieldFilter::Entity::TaggedSymbol
|
|
490
|
+
)
|
|
491
|
+
CONTRACT_CREDIT =
|
|
492
|
+
T.let(
|
|
493
|
+
:ContractCredit,
|
|
494
|
+
MetronomeSDK::PrepaidBalanceThresholdConfiguration::ThresholdBalanceSpecifier::Exclude::CustomFieldFilter::Entity::TaggedSymbol
|
|
495
|
+
)
|
|
496
|
+
CONTRACT_CREDIT_OR_COMMIT =
|
|
497
|
+
T.let(
|
|
498
|
+
:ContractCreditOrCommit,
|
|
499
|
+
MetronomeSDK::PrepaidBalanceThresholdConfiguration::ThresholdBalanceSpecifier::Exclude::CustomFieldFilter::Entity::TaggedSymbol
|
|
500
|
+
)
|
|
501
|
+
|
|
502
|
+
sig do
|
|
503
|
+
override.returns(
|
|
504
|
+
T::Array[
|
|
505
|
+
MetronomeSDK::PrepaidBalanceThresholdConfiguration::ThresholdBalanceSpecifier::Exclude::CustomFieldFilter::Entity::TaggedSymbol
|
|
506
|
+
]
|
|
507
|
+
)
|
|
508
|
+
end
|
|
509
|
+
def self.values
|
|
510
|
+
end
|
|
511
|
+
end
|
|
512
|
+
end
|
|
513
|
+
end
|
|
231
514
|
end
|
|
232
515
|
end
|
|
233
516
|
end
|
|
@@ -74,6 +74,27 @@ module MetronomeSDK
|
|
|
74
74
|
end
|
|
75
75
|
attr_writer :discount_configuration
|
|
76
76
|
|
|
77
|
+
sig do
|
|
78
|
+
returns(
|
|
79
|
+
T.nilable(
|
|
80
|
+
T::Array[
|
|
81
|
+
MetronomeSDK::PrepaidBalanceThresholdConfigurationV2::ThresholdBalanceSpecifier
|
|
82
|
+
]
|
|
83
|
+
)
|
|
84
|
+
)
|
|
85
|
+
end
|
|
86
|
+
attr_reader :threshold_balance_specifiers
|
|
87
|
+
|
|
88
|
+
sig do
|
|
89
|
+
params(
|
|
90
|
+
threshold_balance_specifiers:
|
|
91
|
+
T::Array[
|
|
92
|
+
MetronomeSDK::PrepaidBalanceThresholdConfigurationV2::ThresholdBalanceSpecifier::OrHash
|
|
93
|
+
]
|
|
94
|
+
).void
|
|
95
|
+
end
|
|
96
|
+
attr_writer :threshold_balance_specifiers
|
|
97
|
+
|
|
77
98
|
sig do
|
|
78
99
|
params(
|
|
79
100
|
commit:
|
|
@@ -84,7 +105,11 @@ module MetronomeSDK
|
|
|
84
105
|
threshold_amount: Float,
|
|
85
106
|
custom_credit_type_id: String,
|
|
86
107
|
discount_configuration:
|
|
87
|
-
MetronomeSDK::PrepaidBalanceThresholdConfigurationV2::DiscountConfiguration::OrHash
|
|
108
|
+
MetronomeSDK::PrepaidBalanceThresholdConfigurationV2::DiscountConfiguration::OrHash,
|
|
109
|
+
threshold_balance_specifiers:
|
|
110
|
+
T::Array[
|
|
111
|
+
MetronomeSDK::PrepaidBalanceThresholdConfigurationV2::ThresholdBalanceSpecifier::OrHash
|
|
112
|
+
]
|
|
88
113
|
).returns(T.attached_class)
|
|
89
114
|
end
|
|
90
115
|
def self.new(
|
|
@@ -102,7 +127,8 @@ module MetronomeSDK
|
|
|
102
127
|
# If provided, the threshold, recharge-to amount, and the resulting threshold
|
|
103
128
|
# commit amount will be in terms of this credit type instead of the fiat currency.
|
|
104
129
|
custom_credit_type_id: nil,
|
|
105
|
-
discount_configuration: nil
|
|
130
|
+
discount_configuration: nil,
|
|
131
|
+
threshold_balance_specifiers: nil
|
|
106
132
|
)
|
|
107
133
|
end
|
|
108
134
|
|
|
@@ -117,7 +143,11 @@ module MetronomeSDK
|
|
|
117
143
|
threshold_amount: Float,
|
|
118
144
|
custom_credit_type_id: String,
|
|
119
145
|
discount_configuration:
|
|
120
|
-
MetronomeSDK::PrepaidBalanceThresholdConfigurationV2::DiscountConfiguration
|
|
146
|
+
MetronomeSDK::PrepaidBalanceThresholdConfigurationV2::DiscountConfiguration,
|
|
147
|
+
threshold_balance_specifiers:
|
|
148
|
+
T::Array[
|
|
149
|
+
MetronomeSDK::PrepaidBalanceThresholdConfigurationV2::ThresholdBalanceSpecifier
|
|
150
|
+
]
|
|
121
151
|
}
|
|
122
152
|
)
|
|
123
153
|
end
|
|
@@ -221,18 +251,265 @@ module MetronomeSDK
|
|
|
221
251
|
sig { returns(Float) }
|
|
222
252
|
attr_accessor :payment_fraction
|
|
223
253
|
|
|
224
|
-
|
|
254
|
+
# If provided, the discount stops applying once the spend tracker has accumulated
|
|
255
|
+
# this much spend in the billing period.
|
|
256
|
+
sig do
|
|
257
|
+
returns(
|
|
258
|
+
T.nilable(
|
|
259
|
+
MetronomeSDK::PrepaidBalanceThresholdConfigurationV2::DiscountConfiguration::Cap
|
|
260
|
+
)
|
|
261
|
+
)
|
|
262
|
+
end
|
|
263
|
+
attr_reader :cap
|
|
264
|
+
|
|
265
|
+
sig do
|
|
266
|
+
params(
|
|
267
|
+
cap:
|
|
268
|
+
MetronomeSDK::PrepaidBalanceThresholdConfigurationV2::DiscountConfiguration::Cap::OrHash
|
|
269
|
+
).void
|
|
270
|
+
end
|
|
271
|
+
attr_writer :cap
|
|
272
|
+
|
|
273
|
+
sig do
|
|
274
|
+
params(
|
|
275
|
+
payment_fraction: Float,
|
|
276
|
+
cap:
|
|
277
|
+
MetronomeSDK::PrepaidBalanceThresholdConfigurationV2::DiscountConfiguration::Cap::OrHash
|
|
278
|
+
).returns(T.attached_class)
|
|
279
|
+
end
|
|
225
280
|
def self.new(
|
|
226
281
|
# The fraction of the original amount that the customer pays after applying the
|
|
227
282
|
# discount. For example, 0.85 means the customer pays 85% of the original amount
|
|
228
283
|
# (a 15% discount).
|
|
229
|
-
payment_fraction
|
|
284
|
+
payment_fraction:,
|
|
285
|
+
# If provided, the discount stops applying once the spend tracker has accumulated
|
|
286
|
+
# this much spend in the billing period.
|
|
287
|
+
cap: nil
|
|
230
288
|
)
|
|
231
289
|
end
|
|
232
290
|
|
|
233
|
-
sig
|
|
291
|
+
sig do
|
|
292
|
+
override.returns(
|
|
293
|
+
{
|
|
294
|
+
payment_fraction: Float,
|
|
295
|
+
cap:
|
|
296
|
+
MetronomeSDK::PrepaidBalanceThresholdConfigurationV2::DiscountConfiguration::Cap
|
|
297
|
+
}
|
|
298
|
+
)
|
|
299
|
+
end
|
|
300
|
+
def to_hash
|
|
301
|
+
end
|
|
302
|
+
|
|
303
|
+
class Cap < MetronomeSDK::Internal::Type::BaseModel
|
|
304
|
+
OrHash =
|
|
305
|
+
T.type_alias do
|
|
306
|
+
T.any(
|
|
307
|
+
MetronomeSDK::PrepaidBalanceThresholdConfigurationV2::DiscountConfiguration::Cap,
|
|
308
|
+
MetronomeSDK::Internal::AnyHash
|
|
309
|
+
)
|
|
310
|
+
end
|
|
311
|
+
|
|
312
|
+
# Accumulated spend ceiling above which the discount stops applying.
|
|
313
|
+
sig { returns(Float) }
|
|
314
|
+
attr_accessor :amount
|
|
315
|
+
|
|
316
|
+
# Alias of the spend tracker this cap is measured against.
|
|
317
|
+
sig { returns(String) }
|
|
318
|
+
attr_accessor :spend_tracker_alias
|
|
319
|
+
|
|
320
|
+
# If provided, the discount stops applying once the spend tracker has accumulated
|
|
321
|
+
# this much spend in the billing period.
|
|
322
|
+
sig do
|
|
323
|
+
params(amount: Float, spend_tracker_alias: String).returns(
|
|
324
|
+
T.attached_class
|
|
325
|
+
)
|
|
326
|
+
end
|
|
327
|
+
def self.new(
|
|
328
|
+
# Accumulated spend ceiling above which the discount stops applying.
|
|
329
|
+
amount:,
|
|
330
|
+
# Alias of the spend tracker this cap is measured against.
|
|
331
|
+
spend_tracker_alias:
|
|
332
|
+
)
|
|
333
|
+
end
|
|
334
|
+
|
|
335
|
+
sig do
|
|
336
|
+
override.returns({ amount: Float, spend_tracker_alias: String })
|
|
337
|
+
end
|
|
338
|
+
def to_hash
|
|
339
|
+
end
|
|
340
|
+
end
|
|
341
|
+
end
|
|
342
|
+
|
|
343
|
+
class ThresholdBalanceSpecifier < MetronomeSDK::Internal::Type::BaseModel
|
|
344
|
+
OrHash =
|
|
345
|
+
T.type_alias do
|
|
346
|
+
T.any(
|
|
347
|
+
MetronomeSDK::PrepaidBalanceThresholdConfigurationV2::ThresholdBalanceSpecifier,
|
|
348
|
+
MetronomeSDK::Internal::AnyHash
|
|
349
|
+
)
|
|
350
|
+
end
|
|
351
|
+
|
|
352
|
+
sig do
|
|
353
|
+
returns(
|
|
354
|
+
T::Array[
|
|
355
|
+
MetronomeSDK::PrepaidBalanceThresholdConfigurationV2::ThresholdBalanceSpecifier::Exclude
|
|
356
|
+
]
|
|
357
|
+
)
|
|
358
|
+
end
|
|
359
|
+
attr_accessor :exclude
|
|
360
|
+
|
|
361
|
+
sig do
|
|
362
|
+
params(
|
|
363
|
+
exclude:
|
|
364
|
+
T::Array[
|
|
365
|
+
MetronomeSDK::PrepaidBalanceThresholdConfigurationV2::ThresholdBalanceSpecifier::Exclude::OrHash
|
|
366
|
+
]
|
|
367
|
+
).returns(T.attached_class)
|
|
368
|
+
end
|
|
369
|
+
def self.new(exclude:)
|
|
370
|
+
end
|
|
371
|
+
|
|
372
|
+
sig do
|
|
373
|
+
override.returns(
|
|
374
|
+
{
|
|
375
|
+
exclude:
|
|
376
|
+
T::Array[
|
|
377
|
+
MetronomeSDK::PrepaidBalanceThresholdConfigurationV2::ThresholdBalanceSpecifier::Exclude
|
|
378
|
+
]
|
|
379
|
+
}
|
|
380
|
+
)
|
|
381
|
+
end
|
|
234
382
|
def to_hash
|
|
235
383
|
end
|
|
384
|
+
|
|
385
|
+
class Exclude < MetronomeSDK::Internal::Type::BaseModel
|
|
386
|
+
OrHash =
|
|
387
|
+
T.type_alias do
|
|
388
|
+
T.any(
|
|
389
|
+
MetronomeSDK::PrepaidBalanceThresholdConfigurationV2::ThresholdBalanceSpecifier::Exclude,
|
|
390
|
+
MetronomeSDK::Internal::AnyHash
|
|
391
|
+
)
|
|
392
|
+
end
|
|
393
|
+
|
|
394
|
+
sig do
|
|
395
|
+
returns(
|
|
396
|
+
T::Array[
|
|
397
|
+
MetronomeSDK::PrepaidBalanceThresholdConfigurationV2::ThresholdBalanceSpecifier::Exclude::CustomFieldFilter
|
|
398
|
+
]
|
|
399
|
+
)
|
|
400
|
+
end
|
|
401
|
+
attr_accessor :custom_field_filters
|
|
402
|
+
|
|
403
|
+
sig do
|
|
404
|
+
params(
|
|
405
|
+
custom_field_filters:
|
|
406
|
+
T::Array[
|
|
407
|
+
MetronomeSDK::PrepaidBalanceThresholdConfigurationV2::ThresholdBalanceSpecifier::Exclude::CustomFieldFilter::OrHash
|
|
408
|
+
]
|
|
409
|
+
).returns(T.attached_class)
|
|
410
|
+
end
|
|
411
|
+
def self.new(custom_field_filters:)
|
|
412
|
+
end
|
|
413
|
+
|
|
414
|
+
sig do
|
|
415
|
+
override.returns(
|
|
416
|
+
{
|
|
417
|
+
custom_field_filters:
|
|
418
|
+
T::Array[
|
|
419
|
+
MetronomeSDK::PrepaidBalanceThresholdConfigurationV2::ThresholdBalanceSpecifier::Exclude::CustomFieldFilter
|
|
420
|
+
]
|
|
421
|
+
}
|
|
422
|
+
)
|
|
423
|
+
end
|
|
424
|
+
def to_hash
|
|
425
|
+
end
|
|
426
|
+
|
|
427
|
+
class CustomFieldFilter < MetronomeSDK::Internal::Type::BaseModel
|
|
428
|
+
OrHash =
|
|
429
|
+
T.type_alias do
|
|
430
|
+
T.any(
|
|
431
|
+
MetronomeSDK::PrepaidBalanceThresholdConfigurationV2::ThresholdBalanceSpecifier::Exclude::CustomFieldFilter,
|
|
432
|
+
MetronomeSDK::Internal::AnyHash
|
|
433
|
+
)
|
|
434
|
+
end
|
|
435
|
+
|
|
436
|
+
sig do
|
|
437
|
+
returns(
|
|
438
|
+
MetronomeSDK::PrepaidBalanceThresholdConfigurationV2::ThresholdBalanceSpecifier::Exclude::CustomFieldFilter::Entity::OrSymbol
|
|
439
|
+
)
|
|
440
|
+
end
|
|
441
|
+
attr_accessor :entity
|
|
442
|
+
|
|
443
|
+
sig { returns(String) }
|
|
444
|
+
attr_accessor :key
|
|
445
|
+
|
|
446
|
+
sig { returns(String) }
|
|
447
|
+
attr_accessor :value
|
|
448
|
+
|
|
449
|
+
sig do
|
|
450
|
+
params(
|
|
451
|
+
entity:
|
|
452
|
+
MetronomeSDK::PrepaidBalanceThresholdConfigurationV2::ThresholdBalanceSpecifier::Exclude::CustomFieldFilter::Entity::OrSymbol,
|
|
453
|
+
key: String,
|
|
454
|
+
value: String
|
|
455
|
+
).returns(T.attached_class)
|
|
456
|
+
end
|
|
457
|
+
def self.new(entity:, key:, value:)
|
|
458
|
+
end
|
|
459
|
+
|
|
460
|
+
sig do
|
|
461
|
+
override.returns(
|
|
462
|
+
{
|
|
463
|
+
entity:
|
|
464
|
+
MetronomeSDK::PrepaidBalanceThresholdConfigurationV2::ThresholdBalanceSpecifier::Exclude::CustomFieldFilter::Entity::OrSymbol,
|
|
465
|
+
key: String,
|
|
466
|
+
value: String
|
|
467
|
+
}
|
|
468
|
+
)
|
|
469
|
+
end
|
|
470
|
+
def to_hash
|
|
471
|
+
end
|
|
472
|
+
|
|
473
|
+
module Entity
|
|
474
|
+
extend MetronomeSDK::Internal::Type::Enum
|
|
475
|
+
|
|
476
|
+
TaggedSymbol =
|
|
477
|
+
T.type_alias do
|
|
478
|
+
T.all(
|
|
479
|
+
Symbol,
|
|
480
|
+
MetronomeSDK::PrepaidBalanceThresholdConfigurationV2::ThresholdBalanceSpecifier::Exclude::CustomFieldFilter::Entity
|
|
481
|
+
)
|
|
482
|
+
end
|
|
483
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
484
|
+
|
|
485
|
+
COMMIT =
|
|
486
|
+
T.let(
|
|
487
|
+
:Commit,
|
|
488
|
+
MetronomeSDK::PrepaidBalanceThresholdConfigurationV2::ThresholdBalanceSpecifier::Exclude::CustomFieldFilter::Entity::TaggedSymbol
|
|
489
|
+
)
|
|
490
|
+
CONTRACT_CREDIT =
|
|
491
|
+
T.let(
|
|
492
|
+
:ContractCredit,
|
|
493
|
+
MetronomeSDK::PrepaidBalanceThresholdConfigurationV2::ThresholdBalanceSpecifier::Exclude::CustomFieldFilter::Entity::TaggedSymbol
|
|
494
|
+
)
|
|
495
|
+
CONTRACT_CREDIT_OR_COMMIT =
|
|
496
|
+
T.let(
|
|
497
|
+
:ContractCreditOrCommit,
|
|
498
|
+
MetronomeSDK::PrepaidBalanceThresholdConfigurationV2::ThresholdBalanceSpecifier::Exclude::CustomFieldFilter::Entity::TaggedSymbol
|
|
499
|
+
)
|
|
500
|
+
|
|
501
|
+
sig do
|
|
502
|
+
override.returns(
|
|
503
|
+
T::Array[
|
|
504
|
+
MetronomeSDK::PrepaidBalanceThresholdConfigurationV2::ThresholdBalanceSpecifier::Exclude::CustomFieldFilter::Entity::TaggedSymbol
|
|
505
|
+
]
|
|
506
|
+
)
|
|
507
|
+
end
|
|
508
|
+
def self.values
|
|
509
|
+
end
|
|
510
|
+
end
|
|
511
|
+
end
|
|
512
|
+
end
|
|
236
513
|
end
|
|
237
514
|
end
|
|
238
515
|
end
|