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.
Files changed (94) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +16 -0
  3. data/README.md +1 -1
  4. data/lib/metronome_sdk/internal/type/enum.rb +0 -25
  5. data/lib/metronome_sdk/models/commit.rb +27 -1
  6. data/lib/metronome_sdk/models/contract.rb +140 -1
  7. data/lib/metronome_sdk/models/contract_v2.rb +168 -2
  8. data/lib/metronome_sdk/models/contract_without_amendments.rb +142 -1
  9. data/lib/metronome_sdk/models/prepaid_balance_threshold_configuration.rb +105 -2
  10. data/lib/metronome_sdk/models/prepaid_balance_threshold_configuration_v2.rb +103 -2
  11. data/lib/metronome_sdk/models/spend_threshold_configuration.rb +33 -1
  12. data/lib/metronome_sdk/models/spend_threshold_configuration_v2.rb +33 -1
  13. data/lib/metronome_sdk/models/v1/contract_amend_params.rb +29 -1
  14. data/lib/metronome_sdk/models/v1/contract_create_params.rb +146 -2
  15. data/lib/metronome_sdk/models/v1/contract_create_response.rb +1134 -3
  16. data/lib/metronome_sdk/models/v1/package_create_params.rb +115 -1
  17. data/lib/metronome_sdk/models/v1/package_list_response.rb +110 -1
  18. data/lib/metronome_sdk/models/v1/package_retrieve_response.rb +114 -1
  19. data/lib/metronome_sdk/models/v2/contract_edit_params.rb +303 -5
  20. data/lib/metronome_sdk/models/v2/contract_edit_response.rb +3862 -3
  21. data/lib/metronome_sdk/models/v2/contract_get_edit_history_response.rb +145 -3
  22. data/lib/metronome_sdk/resources/v1/contracts.rb +3 -1
  23. data/lib/metronome_sdk/resources/v1/packages.rb +6 -5
  24. data/lib/metronome_sdk/resources/v1.rb +0 -4
  25. data/lib/metronome_sdk/resources/v2/contracts.rb +5 -1
  26. data/lib/metronome_sdk/version.rb +1 -1
  27. data/lib/metronome_sdk.rb +0 -8
  28. data/rbi/metronome_sdk/models/commit.rbi +48 -0
  29. data/rbi/metronome_sdk/models/contract.rbi +354 -0
  30. data/rbi/metronome_sdk/models/contract_v2.rbi +409 -0
  31. data/rbi/metronome_sdk/models/contract_without_amendments.rbi +368 -0
  32. data/rbi/metronome_sdk/models/prepaid_balance_threshold_configuration.rbi +289 -6
  33. data/rbi/metronome_sdk/models/prepaid_balance_threshold_configuration_v2.rbi +283 -6
  34. data/rbi/metronome_sdk/models/spend_threshold_configuration.rbi +78 -3
  35. data/rbi/metronome_sdk/models/spend_threshold_configuration_v2.rbi +78 -3
  36. data/rbi/metronome_sdk/models/v1/contract_amend_params.rbi +54 -0
  37. data/rbi/metronome_sdk/models/v1/contract_create_params.rbi +368 -0
  38. data/rbi/metronome_sdk/models/v1/contract_create_response.rbi +2448 -4
  39. data/rbi/metronome_sdk/models/v1/package_create_params.rbi +310 -0
  40. data/rbi/metronome_sdk/models/v1/package_list_response.rbi +307 -0
  41. data/rbi/metronome_sdk/models/v1/package_retrieve_response.rbi +307 -0
  42. data/rbi/metronome_sdk/models/v2/contract_edit_params.rbi +734 -11
  43. data/rbi/metronome_sdk/models/v2/contract_edit_response.rbi +8612 -4
  44. data/rbi/metronome_sdk/models/v2/contract_get_edit_history_response.rbi +359 -11
  45. data/rbi/metronome_sdk/resources/v1/contracts.rbi +7 -0
  46. data/rbi/metronome_sdk/resources/v1/packages.rbi +8 -4
  47. data/rbi/metronome_sdk/resources/v1.rbi +0 -3
  48. data/rbi/metronome_sdk/resources/v2/contracts.rbi +10 -0
  49. data/sig/metronome_sdk/models/commit.rbs +19 -0
  50. data/sig/metronome_sdk/models/contract.rbs +151 -0
  51. data/sig/metronome_sdk/models/contract_v2.rbs +170 -0
  52. data/sig/metronome_sdk/models/contract_without_amendments.rbs +151 -0
  53. data/sig/metronome_sdk/models/prepaid_balance_threshold_configuration.rbs +116 -6
  54. data/sig/metronome_sdk/models/prepaid_balance_threshold_configuration_v2.rbs +116 -6
  55. data/sig/metronome_sdk/models/spend_threshold_configuration.rbs +31 -3
  56. data/sig/metronome_sdk/models/spend_threshold_configuration_v2.rbs +31 -3
  57. data/sig/metronome_sdk/models/v1/contract_amend_params.rbs +19 -0
  58. data/sig/metronome_sdk/models/v1/contract_create_params.rbs +134 -0
  59. data/sig/metronome_sdk/models/v1/contract_create_response.rbs +1045 -4
  60. data/sig/metronome_sdk/models/v1/package_create_params.rbs +115 -0
  61. data/sig/metronome_sdk/models/v1/package_list_response.rbs +115 -0
  62. data/sig/metronome_sdk/models/v1/package_retrieve_response.rbs +115 -0
  63. data/sig/metronome_sdk/models/v2/contract_edit_params.rbs +283 -9
  64. data/sig/metronome_sdk/models/v2/contract_edit_response.rbs +3792 -4
  65. data/sig/metronome_sdk/models/v2/contract_get_edit_history_response.rbs +142 -9
  66. data/sig/metronome_sdk/resources/v1/contracts.rbs +1 -0
  67. data/sig/metronome_sdk/resources/v1/packages.rbs +1 -0
  68. data/sig/metronome_sdk/resources/v1.rbs +0 -2
  69. data/sig/metronome_sdk/resources/v2/contracts.rbs +2 -0
  70. metadata +2 -26
  71. data/lib/metronome_sdk/models/v1/payment.rb +0 -196
  72. data/lib/metronome_sdk/models/v1/payment_attempt_params.rb +0 -28
  73. data/lib/metronome_sdk/models/v1/payment_attempt_response.rb +0 -18
  74. data/lib/metronome_sdk/models/v1/payment_cancel_params.rb +0 -28
  75. data/lib/metronome_sdk/models/v1/payment_cancel_response.rb +0 -18
  76. data/lib/metronome_sdk/models/v1/payment_list_params.rb +0 -53
  77. data/lib/metronome_sdk/models/v1/payment_status.rb +0 -19
  78. data/lib/metronome_sdk/resources/v1/payments.rb +0 -102
  79. data/rbi/metronome_sdk/models/v1/payment.rbi +0 -403
  80. data/rbi/metronome_sdk/models/v1/payment_attempt_params.rbi +0 -48
  81. data/rbi/metronome_sdk/models/v1/payment_attempt_response.rbi +0 -35
  82. data/rbi/metronome_sdk/models/v1/payment_cancel_params.rbi +0 -48
  83. data/rbi/metronome_sdk/models/v1/payment_cancel_response.rbi +0 -35
  84. data/rbi/metronome_sdk/models/v1/payment_list_params.rbi +0 -91
  85. data/rbi/metronome_sdk/models/v1/payment_status.rbi +0 -33
  86. data/rbi/metronome_sdk/resources/v1/payments.rbi +0 -72
  87. data/sig/metronome_sdk/models/v1/payment.rbs +0 -243
  88. data/sig/metronome_sdk/models/v1/payment_attempt_params.rbs +0 -30
  89. data/sig/metronome_sdk/models/v1/payment_attempt_response.rbs +0 -15
  90. data/sig/metronome_sdk/models/v1/payment_cancel_params.rbs +0 -30
  91. data/sig/metronome_sdk/models/v1/payment_cancel_response.rbs +0 -15
  92. data/sig/metronome_sdk/models/v1/payment_list_params.rbs +0 -56
  93. data/sig/metronome_sdk/models/v1/payment_status.rbs +0 -19
  94. data/sig/metronome_sdk/resources/v1/payments.rbs +0 -30
@@ -277,6 +277,25 @@ module MetronomeSDK
277
277
  end
278
278
  attr_writer :spend_threshold_configuration
279
279
 
280
+ sig do
281
+ returns(
282
+ T.nilable(
283
+ T::Array[MetronomeSDK::V1::PackageCreateParams::SpendTracker]
284
+ )
285
+ )
286
+ end
287
+ attr_reader :spend_trackers
288
+
289
+ sig do
290
+ params(
291
+ spend_trackers:
292
+ T::Array[
293
+ MetronomeSDK::V1::PackageCreateParams::SpendTracker::OrHash
294
+ ]
295
+ ).void
296
+ end
297
+ attr_writer :spend_trackers
298
+
280
299
  sig do
281
300
  returns(
282
301
  T.nilable(
@@ -362,6 +381,10 @@ module MetronomeSDK
362
381
  MetronomeSDK::V1::PackageCreateParams::ScheduledChargesOnUsageInvoices::OrSymbol,
363
382
  spend_threshold_configuration:
364
383
  MetronomeSDK::SpendThresholdConfiguration::OrHash,
384
+ spend_trackers:
385
+ T::Array[
386
+ MetronomeSDK::V1::PackageCreateParams::SpendTracker::OrHash
387
+ ],
365
388
  subscriptions:
366
389
  T::Array[
367
390
  MetronomeSDK::V1::PackageCreateParams::Subscription::OrHash
@@ -406,6 +429,7 @@ module MetronomeSDK
406
429
  # on a separate invoice from usage charges.
407
430
  scheduled_charges_on_usage_invoices: nil,
408
431
  spend_threshold_configuration: nil,
432
+ spend_trackers: nil,
409
433
  subscriptions: nil,
410
434
  # Prevents the creation of duplicates. If a request to create a record is made
411
435
  # with a previously used uniqueness key, a new record will not be created and the
@@ -454,6 +478,8 @@ module MetronomeSDK
454
478
  MetronomeSDK::V1::PackageCreateParams::ScheduledChargesOnUsageInvoices::OrSymbol,
455
479
  spend_threshold_configuration:
456
480
  MetronomeSDK::SpendThresholdConfiguration,
481
+ spend_trackers:
482
+ T::Array[MetronomeSDK::V1::PackageCreateParams::SpendTracker],
457
483
  subscriptions:
458
484
  T::Array[MetronomeSDK::V1::PackageCreateParams::Subscription],
459
485
  uniqueness_key: String,
@@ -5213,6 +5239,290 @@ module MetronomeSDK
5213
5239
  end
5214
5240
  end
5215
5241
 
5242
+ class SpendTracker < MetronomeSDK::Internal::Type::BaseModel
5243
+ OrHash =
5244
+ T.type_alias do
5245
+ T.any(
5246
+ MetronomeSDK::V1::PackageCreateParams::SpendTracker,
5247
+ MetronomeSDK::Internal::AnyHash
5248
+ )
5249
+ end
5250
+
5251
+ # Human-readable identifier, unique per contract.
5252
+ sig { returns(String) }
5253
+ attr_accessor :alias_
5254
+
5255
+ sig do
5256
+ returns(
5257
+ T::Array[
5258
+ MetronomeSDK::V1::PackageCreateParams::SpendTracker::ApplicableSpendSpecifier
5259
+ ]
5260
+ )
5261
+ end
5262
+ attr_accessor :applicable_spend_specifiers
5263
+
5264
+ sig { returns(String) }
5265
+ attr_accessor :credit_type_id
5266
+
5267
+ sig do
5268
+ returns(
5269
+ MetronomeSDK::V1::PackageCreateParams::SpendTracker::ResetFrequency::OrSymbol
5270
+ )
5271
+ end
5272
+ attr_accessor :reset_frequency
5273
+
5274
+ sig do
5275
+ params(
5276
+ alias_: String,
5277
+ applicable_spend_specifiers:
5278
+ T::Array[
5279
+ MetronomeSDK::V1::PackageCreateParams::SpendTracker::ApplicableSpendSpecifier::OrHash
5280
+ ],
5281
+ credit_type_id: String,
5282
+ reset_frequency:
5283
+ MetronomeSDK::V1::PackageCreateParams::SpendTracker::ResetFrequency::OrSymbol
5284
+ ).returns(T.attached_class)
5285
+ end
5286
+ def self.new(
5287
+ # Human-readable identifier, unique per contract.
5288
+ alias_:,
5289
+ applicable_spend_specifiers:,
5290
+ credit_type_id:,
5291
+ reset_frequency:
5292
+ )
5293
+ end
5294
+
5295
+ sig do
5296
+ override.returns(
5297
+ {
5298
+ alias_: String,
5299
+ applicable_spend_specifiers:
5300
+ T::Array[
5301
+ MetronomeSDK::V1::PackageCreateParams::SpendTracker::ApplicableSpendSpecifier
5302
+ ],
5303
+ credit_type_id: String,
5304
+ reset_frequency:
5305
+ MetronomeSDK::V1::PackageCreateParams::SpendTracker::ResetFrequency::OrSymbol
5306
+ }
5307
+ )
5308
+ end
5309
+ def to_hash
5310
+ end
5311
+
5312
+ class ApplicableSpendSpecifier < MetronomeSDK::Internal::Type::BaseModel
5313
+ OrHash =
5314
+ T.type_alias do
5315
+ T.any(
5316
+ MetronomeSDK::V1::PackageCreateParams::SpendTracker::ApplicableSpendSpecifier,
5317
+ MetronomeSDK::Internal::AnyHash
5318
+ )
5319
+ end
5320
+
5321
+ sig do
5322
+ returns(
5323
+ T::Array[
5324
+ MetronomeSDK::V1::PackageCreateParams::SpendTracker::ApplicableSpendSpecifier::Source::OrSymbol
5325
+ ]
5326
+ )
5327
+ end
5328
+ attr_accessor :sources
5329
+
5330
+ sig do
5331
+ returns(
5332
+ MetronomeSDK::V1::PackageCreateParams::SpendTracker::ApplicableSpendSpecifier::SpendType::OrSymbol
5333
+ )
5334
+ end
5335
+ attr_accessor :spend_type
5336
+
5337
+ # Filter by whether the spend was discounted. Defaults to ANY if omitted.
5338
+ sig do
5339
+ returns(
5340
+ T.nilable(
5341
+ MetronomeSDK::V1::PackageCreateParams::SpendTracker::ApplicableSpendSpecifier::Discounted::OrSymbol
5342
+ )
5343
+ )
5344
+ end
5345
+ attr_reader :discounted
5346
+
5347
+ sig do
5348
+ params(
5349
+ discounted:
5350
+ MetronomeSDK::V1::PackageCreateParams::SpendTracker::ApplicableSpendSpecifier::Discounted::OrSymbol
5351
+ ).void
5352
+ end
5353
+ attr_writer :discounted
5354
+
5355
+ sig do
5356
+ params(
5357
+ sources:
5358
+ T::Array[
5359
+ MetronomeSDK::V1::PackageCreateParams::SpendTracker::ApplicableSpendSpecifier::Source::OrSymbol
5360
+ ],
5361
+ spend_type:
5362
+ MetronomeSDK::V1::PackageCreateParams::SpendTracker::ApplicableSpendSpecifier::SpendType::OrSymbol,
5363
+ discounted:
5364
+ MetronomeSDK::V1::PackageCreateParams::SpendTracker::ApplicableSpendSpecifier::Discounted::OrSymbol
5365
+ ).returns(T.attached_class)
5366
+ end
5367
+ def self.new(
5368
+ sources:,
5369
+ spend_type:,
5370
+ # Filter by whether the spend was discounted. Defaults to ANY if omitted.
5371
+ discounted: nil
5372
+ )
5373
+ end
5374
+
5375
+ sig do
5376
+ override.returns(
5377
+ {
5378
+ sources:
5379
+ T::Array[
5380
+ MetronomeSDK::V1::PackageCreateParams::SpendTracker::ApplicableSpendSpecifier::Source::OrSymbol
5381
+ ],
5382
+ spend_type:
5383
+ MetronomeSDK::V1::PackageCreateParams::SpendTracker::ApplicableSpendSpecifier::SpendType::OrSymbol,
5384
+ discounted:
5385
+ MetronomeSDK::V1::PackageCreateParams::SpendTracker::ApplicableSpendSpecifier::Discounted::OrSymbol
5386
+ }
5387
+ )
5388
+ end
5389
+ def to_hash
5390
+ end
5391
+
5392
+ module Source
5393
+ extend MetronomeSDK::Internal::Type::Enum
5394
+
5395
+ TaggedSymbol =
5396
+ T.type_alias do
5397
+ T.all(
5398
+ Symbol,
5399
+ MetronomeSDK::V1::PackageCreateParams::SpendTracker::ApplicableSpendSpecifier::Source
5400
+ )
5401
+ end
5402
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
5403
+
5404
+ THRESHOLD_RECHARGE =
5405
+ T.let(
5406
+ :THRESHOLD_RECHARGE,
5407
+ MetronomeSDK::V1::PackageCreateParams::SpendTracker::ApplicableSpendSpecifier::Source::TaggedSymbol
5408
+ )
5409
+ MANUAL =
5410
+ T.let(
5411
+ :MANUAL,
5412
+ MetronomeSDK::V1::PackageCreateParams::SpendTracker::ApplicableSpendSpecifier::Source::TaggedSymbol
5413
+ )
5414
+
5415
+ sig do
5416
+ override.returns(
5417
+ T::Array[
5418
+ MetronomeSDK::V1::PackageCreateParams::SpendTracker::ApplicableSpendSpecifier::Source::TaggedSymbol
5419
+ ]
5420
+ )
5421
+ end
5422
+ def self.values
5423
+ end
5424
+ end
5425
+
5426
+ module SpendType
5427
+ extend MetronomeSDK::Internal::Type::Enum
5428
+
5429
+ TaggedSymbol =
5430
+ T.type_alias do
5431
+ T.all(
5432
+ Symbol,
5433
+ MetronomeSDK::V1::PackageCreateParams::SpendTracker::ApplicableSpendSpecifier::SpendType
5434
+ )
5435
+ end
5436
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
5437
+
5438
+ COMMIT_PURCHASE =
5439
+ T.let(
5440
+ :COMMIT_PURCHASE,
5441
+ MetronomeSDK::V1::PackageCreateParams::SpendTracker::ApplicableSpendSpecifier::SpendType::TaggedSymbol
5442
+ )
5443
+
5444
+ sig do
5445
+ override.returns(
5446
+ T::Array[
5447
+ MetronomeSDK::V1::PackageCreateParams::SpendTracker::ApplicableSpendSpecifier::SpendType::TaggedSymbol
5448
+ ]
5449
+ )
5450
+ end
5451
+ def self.values
5452
+ end
5453
+ end
5454
+
5455
+ # Filter by whether the spend was discounted. Defaults to ANY if omitted.
5456
+ module Discounted
5457
+ extend MetronomeSDK::Internal::Type::Enum
5458
+
5459
+ TaggedSymbol =
5460
+ T.type_alias do
5461
+ T.all(
5462
+ Symbol,
5463
+ MetronomeSDK::V1::PackageCreateParams::SpendTracker::ApplicableSpendSpecifier::Discounted
5464
+ )
5465
+ end
5466
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
5467
+
5468
+ ANY =
5469
+ T.let(
5470
+ :ANY,
5471
+ MetronomeSDK::V1::PackageCreateParams::SpendTracker::ApplicableSpendSpecifier::Discounted::TaggedSymbol
5472
+ )
5473
+ DISCOUNTED_ONLY =
5474
+ T.let(
5475
+ :DISCOUNTED_ONLY,
5476
+ MetronomeSDK::V1::PackageCreateParams::SpendTracker::ApplicableSpendSpecifier::Discounted::TaggedSymbol
5477
+ )
5478
+ UNDISCOUNTED_ONLY =
5479
+ T.let(
5480
+ :UNDISCOUNTED_ONLY,
5481
+ MetronomeSDK::V1::PackageCreateParams::SpendTracker::ApplicableSpendSpecifier::Discounted::TaggedSymbol
5482
+ )
5483
+
5484
+ sig do
5485
+ override.returns(
5486
+ T::Array[
5487
+ MetronomeSDK::V1::PackageCreateParams::SpendTracker::ApplicableSpendSpecifier::Discounted::TaggedSymbol
5488
+ ]
5489
+ )
5490
+ end
5491
+ def self.values
5492
+ end
5493
+ end
5494
+ end
5495
+
5496
+ module ResetFrequency
5497
+ extend MetronomeSDK::Internal::Type::Enum
5498
+
5499
+ TaggedSymbol =
5500
+ T.type_alias do
5501
+ T.all(
5502
+ Symbol,
5503
+ MetronomeSDK::V1::PackageCreateParams::SpendTracker::ResetFrequency
5504
+ )
5505
+ end
5506
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
5507
+
5508
+ BILLING_PERIOD =
5509
+ T.let(
5510
+ :BILLING_PERIOD,
5511
+ MetronomeSDK::V1::PackageCreateParams::SpendTracker::ResetFrequency::TaggedSymbol
5512
+ )
5513
+
5514
+ sig do
5515
+ override.returns(
5516
+ T::Array[
5517
+ MetronomeSDK::V1::PackageCreateParams::SpendTracker::ResetFrequency::TaggedSymbol
5518
+ ]
5519
+ )
5520
+ end
5521
+ def self.values
5522
+ end
5523
+ end
5524
+ end
5525
+
5216
5526
  class Subscription < MetronomeSDK::Internal::Type::BaseModel
5217
5527
  OrHash =
5218
5528
  T.type_alias do
@@ -286,6 +286,27 @@ module MetronomeSDK
286
286
  end
287
287
  attr_writer :spend_threshold_configuration
288
288
 
289
+ sig do
290
+ returns(
291
+ T.nilable(
292
+ T::Array[
293
+ MetronomeSDK::Models::V1::PackageListResponse::SpendTracker
294
+ ]
295
+ )
296
+ )
297
+ end
298
+ attr_reader :spend_trackers
299
+
300
+ sig do
301
+ params(
302
+ spend_trackers:
303
+ T::Array[
304
+ MetronomeSDK::Models::V1::PackageListResponse::SpendTracker::OrHash
305
+ ]
306
+ ).void
307
+ end
308
+ attr_writer :spend_trackers
309
+
289
310
  sig do
290
311
  returns(
291
312
  T.nilable(
@@ -370,6 +391,10 @@ module MetronomeSDK
370
391
  MetronomeSDK::Models::V1::PackageListResponse::ScheduledChargesOnUsageInvoices::OrSymbol,
371
392
  spend_threshold_configuration:
372
393
  MetronomeSDK::SpendThresholdConfiguration::OrHash,
394
+ spend_trackers:
395
+ T::Array[
396
+ MetronomeSDK::Models::V1::PackageListResponse::SpendTracker::OrHash
397
+ ],
373
398
  subscriptions:
374
399
  T::Array[
375
400
  MetronomeSDK::Models::V1::PackageListResponse::Subscription::OrHash
@@ -411,6 +436,7 @@ module MetronomeSDK
411
436
  # on a separate invoice from usage charges.
412
437
  scheduled_charges_on_usage_invoices: nil,
413
438
  spend_threshold_configuration: nil,
439
+ spend_trackers: nil,
414
440
  subscriptions: nil,
415
441
  # Prevents the creation of duplicates. If a request to create a record is made
416
442
  # with a previously used uniqueness key, a new record will not be created and the
@@ -467,6 +493,10 @@ module MetronomeSDK
467
493
  MetronomeSDK::Models::V1::PackageListResponse::ScheduledChargesOnUsageInvoices::TaggedSymbol,
468
494
  spend_threshold_configuration:
469
495
  MetronomeSDK::SpendThresholdConfiguration,
496
+ spend_trackers:
497
+ T::Array[
498
+ MetronomeSDK::Models::V1::PackageListResponse::SpendTracker
499
+ ],
470
500
  subscriptions:
471
501
  T::Array[
472
502
  MetronomeSDK::Models::V1::PackageListResponse::Subscription
@@ -5123,6 +5153,283 @@ module MetronomeSDK
5123
5153
  end
5124
5154
  end
5125
5155
 
5156
+ class SpendTracker < MetronomeSDK::Internal::Type::BaseModel
5157
+ OrHash =
5158
+ T.type_alias do
5159
+ T.any(
5160
+ MetronomeSDK::Models::V1::PackageListResponse::SpendTracker,
5161
+ MetronomeSDK::Internal::AnyHash
5162
+ )
5163
+ end
5164
+
5165
+ # Human-readable identifier, unique per contract.
5166
+ sig { returns(String) }
5167
+ attr_accessor :alias_
5168
+
5169
+ sig do
5170
+ returns(
5171
+ T::Array[
5172
+ MetronomeSDK::Models::V1::PackageListResponse::SpendTracker::ApplicableSpendSpecifier
5173
+ ]
5174
+ )
5175
+ end
5176
+ attr_accessor :applicable_spend_specifiers
5177
+
5178
+ sig { returns(String) }
5179
+ attr_accessor :credit_type_id
5180
+
5181
+ sig do
5182
+ returns(
5183
+ MetronomeSDK::Models::V1::PackageListResponse::SpendTracker::ResetFrequency::TaggedSymbol
5184
+ )
5185
+ end
5186
+ attr_accessor :reset_frequency
5187
+
5188
+ sig do
5189
+ params(
5190
+ alias_: String,
5191
+ applicable_spend_specifiers:
5192
+ T::Array[
5193
+ MetronomeSDK::Models::V1::PackageListResponse::SpendTracker::ApplicableSpendSpecifier::OrHash
5194
+ ],
5195
+ credit_type_id: String,
5196
+ reset_frequency:
5197
+ MetronomeSDK::Models::V1::PackageListResponse::SpendTracker::ResetFrequency::OrSymbol
5198
+ ).returns(T.attached_class)
5199
+ end
5200
+ def self.new(
5201
+ # Human-readable identifier, unique per contract.
5202
+ alias_:,
5203
+ applicable_spend_specifiers:,
5204
+ credit_type_id:,
5205
+ reset_frequency:
5206
+ )
5207
+ end
5208
+
5209
+ sig do
5210
+ override.returns(
5211
+ {
5212
+ alias_: String,
5213
+ applicable_spend_specifiers:
5214
+ T::Array[
5215
+ MetronomeSDK::Models::V1::PackageListResponse::SpendTracker::ApplicableSpendSpecifier
5216
+ ],
5217
+ credit_type_id: String,
5218
+ reset_frequency:
5219
+ MetronomeSDK::Models::V1::PackageListResponse::SpendTracker::ResetFrequency::TaggedSymbol
5220
+ }
5221
+ )
5222
+ end
5223
+ def to_hash
5224
+ end
5225
+
5226
+ class ApplicableSpendSpecifier < MetronomeSDK::Internal::Type::BaseModel
5227
+ OrHash =
5228
+ T.type_alias do
5229
+ T.any(
5230
+ MetronomeSDK::Models::V1::PackageListResponse::SpendTracker::ApplicableSpendSpecifier,
5231
+ MetronomeSDK::Internal::AnyHash
5232
+ )
5233
+ end
5234
+
5235
+ sig do
5236
+ returns(
5237
+ T::Array[
5238
+ MetronomeSDK::Models::V1::PackageListResponse::SpendTracker::ApplicableSpendSpecifier::Source::TaggedSymbol
5239
+ ]
5240
+ )
5241
+ end
5242
+ attr_accessor :sources
5243
+
5244
+ sig do
5245
+ returns(
5246
+ MetronomeSDK::Models::V1::PackageListResponse::SpendTracker::ApplicableSpendSpecifier::SpendType::TaggedSymbol
5247
+ )
5248
+ end
5249
+ attr_accessor :spend_type
5250
+
5251
+ sig do
5252
+ returns(
5253
+ T.nilable(
5254
+ MetronomeSDK::Models::V1::PackageListResponse::SpendTracker::ApplicableSpendSpecifier::Discounted::TaggedSymbol
5255
+ )
5256
+ )
5257
+ end
5258
+ attr_reader :discounted
5259
+
5260
+ sig do
5261
+ params(
5262
+ discounted:
5263
+ MetronomeSDK::Models::V1::PackageListResponse::SpendTracker::ApplicableSpendSpecifier::Discounted::OrSymbol
5264
+ ).void
5265
+ end
5266
+ attr_writer :discounted
5267
+
5268
+ sig do
5269
+ params(
5270
+ sources:
5271
+ T::Array[
5272
+ MetronomeSDK::Models::V1::PackageListResponse::SpendTracker::ApplicableSpendSpecifier::Source::OrSymbol
5273
+ ],
5274
+ spend_type:
5275
+ MetronomeSDK::Models::V1::PackageListResponse::SpendTracker::ApplicableSpendSpecifier::SpendType::OrSymbol,
5276
+ discounted:
5277
+ MetronomeSDK::Models::V1::PackageListResponse::SpendTracker::ApplicableSpendSpecifier::Discounted::OrSymbol
5278
+ ).returns(T.attached_class)
5279
+ end
5280
+ def self.new(sources:, spend_type:, discounted: nil)
5281
+ end
5282
+
5283
+ sig do
5284
+ override.returns(
5285
+ {
5286
+ sources:
5287
+ T::Array[
5288
+ MetronomeSDK::Models::V1::PackageListResponse::SpendTracker::ApplicableSpendSpecifier::Source::TaggedSymbol
5289
+ ],
5290
+ spend_type:
5291
+ MetronomeSDK::Models::V1::PackageListResponse::SpendTracker::ApplicableSpendSpecifier::SpendType::TaggedSymbol,
5292
+ discounted:
5293
+ MetronomeSDK::Models::V1::PackageListResponse::SpendTracker::ApplicableSpendSpecifier::Discounted::TaggedSymbol
5294
+ }
5295
+ )
5296
+ end
5297
+ def to_hash
5298
+ end
5299
+
5300
+ module Source
5301
+ extend MetronomeSDK::Internal::Type::Enum
5302
+
5303
+ TaggedSymbol =
5304
+ T.type_alias do
5305
+ T.all(
5306
+ Symbol,
5307
+ MetronomeSDK::Models::V1::PackageListResponse::SpendTracker::ApplicableSpendSpecifier::Source
5308
+ )
5309
+ end
5310
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
5311
+
5312
+ THRESHOLD_RECHARGE =
5313
+ T.let(
5314
+ :THRESHOLD_RECHARGE,
5315
+ MetronomeSDK::Models::V1::PackageListResponse::SpendTracker::ApplicableSpendSpecifier::Source::TaggedSymbol
5316
+ )
5317
+ MANUAL =
5318
+ T.let(
5319
+ :MANUAL,
5320
+ MetronomeSDK::Models::V1::PackageListResponse::SpendTracker::ApplicableSpendSpecifier::Source::TaggedSymbol
5321
+ )
5322
+
5323
+ sig do
5324
+ override.returns(
5325
+ T::Array[
5326
+ MetronomeSDK::Models::V1::PackageListResponse::SpendTracker::ApplicableSpendSpecifier::Source::TaggedSymbol
5327
+ ]
5328
+ )
5329
+ end
5330
+ def self.values
5331
+ end
5332
+ end
5333
+
5334
+ module SpendType
5335
+ extend MetronomeSDK::Internal::Type::Enum
5336
+
5337
+ TaggedSymbol =
5338
+ T.type_alias do
5339
+ T.all(
5340
+ Symbol,
5341
+ MetronomeSDK::Models::V1::PackageListResponse::SpendTracker::ApplicableSpendSpecifier::SpendType
5342
+ )
5343
+ end
5344
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
5345
+
5346
+ COMMIT_PURCHASE =
5347
+ T.let(
5348
+ :COMMIT_PURCHASE,
5349
+ MetronomeSDK::Models::V1::PackageListResponse::SpendTracker::ApplicableSpendSpecifier::SpendType::TaggedSymbol
5350
+ )
5351
+
5352
+ sig do
5353
+ override.returns(
5354
+ T::Array[
5355
+ MetronomeSDK::Models::V1::PackageListResponse::SpendTracker::ApplicableSpendSpecifier::SpendType::TaggedSymbol
5356
+ ]
5357
+ )
5358
+ end
5359
+ def self.values
5360
+ end
5361
+ end
5362
+
5363
+ module Discounted
5364
+ extend MetronomeSDK::Internal::Type::Enum
5365
+
5366
+ TaggedSymbol =
5367
+ T.type_alias do
5368
+ T.all(
5369
+ Symbol,
5370
+ MetronomeSDK::Models::V1::PackageListResponse::SpendTracker::ApplicableSpendSpecifier::Discounted
5371
+ )
5372
+ end
5373
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
5374
+
5375
+ ANY =
5376
+ T.let(
5377
+ :ANY,
5378
+ MetronomeSDK::Models::V1::PackageListResponse::SpendTracker::ApplicableSpendSpecifier::Discounted::TaggedSymbol
5379
+ )
5380
+ DISCOUNTED_ONLY =
5381
+ T.let(
5382
+ :DISCOUNTED_ONLY,
5383
+ MetronomeSDK::Models::V1::PackageListResponse::SpendTracker::ApplicableSpendSpecifier::Discounted::TaggedSymbol
5384
+ )
5385
+ UNDISCOUNTED_ONLY =
5386
+ T.let(
5387
+ :UNDISCOUNTED_ONLY,
5388
+ MetronomeSDK::Models::V1::PackageListResponse::SpendTracker::ApplicableSpendSpecifier::Discounted::TaggedSymbol
5389
+ )
5390
+
5391
+ sig do
5392
+ override.returns(
5393
+ T::Array[
5394
+ MetronomeSDK::Models::V1::PackageListResponse::SpendTracker::ApplicableSpendSpecifier::Discounted::TaggedSymbol
5395
+ ]
5396
+ )
5397
+ end
5398
+ def self.values
5399
+ end
5400
+ end
5401
+ end
5402
+
5403
+ module ResetFrequency
5404
+ extend MetronomeSDK::Internal::Type::Enum
5405
+
5406
+ TaggedSymbol =
5407
+ T.type_alias do
5408
+ T.all(
5409
+ Symbol,
5410
+ MetronomeSDK::Models::V1::PackageListResponse::SpendTracker::ResetFrequency
5411
+ )
5412
+ end
5413
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
5414
+
5415
+ BILLING_PERIOD =
5416
+ T.let(
5417
+ :BILLING_PERIOD,
5418
+ MetronomeSDK::Models::V1::PackageListResponse::SpendTracker::ResetFrequency::TaggedSymbol
5419
+ )
5420
+
5421
+ sig do
5422
+ override.returns(
5423
+ T::Array[
5424
+ MetronomeSDK::Models::V1::PackageListResponse::SpendTracker::ResetFrequency::TaggedSymbol
5425
+ ]
5426
+ )
5427
+ end
5428
+ def self.values
5429
+ end
5430
+ end
5431
+ end
5432
+
5126
5433
  class Subscription < MetronomeSDK::Internal::Type::BaseModel
5127
5434
  OrHash =
5128
5435
  T.type_alias do