metronome-sdk 3.5.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 (126) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +53 -0
  3. data/README.md +1 -1
  4. data/lib/metronome_sdk/client.rb +15 -1
  5. data/lib/metronome_sdk/internal/transport/base_client.rb +2 -0
  6. data/lib/metronome_sdk/internal/type/enum.rb +0 -25
  7. data/lib/metronome_sdk/models/commit.rb +27 -1
  8. data/lib/metronome_sdk/models/contract.rb +140 -1
  9. data/lib/metronome_sdk/models/contract_v2.rb +530 -6
  10. data/lib/metronome_sdk/models/contract_without_amendments.rb +142 -1
  11. data/lib/metronome_sdk/models/prepaid_balance_threshold_configuration.rb +105 -2
  12. data/lib/metronome_sdk/models/prepaid_balance_threshold_configuration_v2.rb +103 -2
  13. data/lib/metronome_sdk/models/spend_threshold_configuration.rb +33 -1
  14. data/lib/metronome_sdk/models/spend_threshold_configuration_v2.rb +33 -1
  15. data/lib/metronome_sdk/models/v1/alert_create_params.rb +1 -0
  16. data/lib/metronome_sdk/models/v1/contract_amend_params.rb +29 -177
  17. data/lib/metronome_sdk/models/v1/contract_create_params.rb +147 -180
  18. data/lib/metronome_sdk/models/v1/contract_create_response.rb +1134 -3
  19. data/lib/metronome_sdk/models/v1/contract_list_seat_balances_params.rb +119 -0
  20. data/lib/metronome_sdk/models/v1/contract_list_seat_balances_response.rb +315 -0
  21. data/lib/metronome_sdk/models/v1/contracts/product_create_params.rb +31 -1
  22. data/lib/metronome_sdk/models/v1/contracts/product_update_params.rb +31 -1
  23. data/lib/metronome_sdk/models/v1/customers/customer_alert.rb +1 -0
  24. data/lib/metronome_sdk/models/v1/customers/invoice.rb +8 -1
  25. data/lib/metronome_sdk/models/v1/customers/invoice_list_params.rb +29 -1
  26. data/lib/metronome_sdk/models/v1/package_create_params.rb +115 -18
  27. data/lib/metronome_sdk/models/v1/package_list_response.rb +110 -1
  28. data/lib/metronome_sdk/models/v1/package_retrieve_response.rb +114 -1
  29. data/lib/metronome_sdk/models/v2/contract_edit_params.rb +303 -5
  30. data/lib/metronome_sdk/models/v2/contract_edit_response.rb +3862 -3
  31. data/lib/metronome_sdk/models/v2/contract_get_edit_history_response.rb +507 -6
  32. data/lib/metronome_sdk/resources/v1/contracts/products.rb +6 -2
  33. data/lib/metronome_sdk/resources/v1/contracts.rb +72 -3
  34. data/lib/metronome_sdk/resources/v1/customers/invoices.rb +5 -1
  35. data/lib/metronome_sdk/resources/v1/packages.rb +6 -7
  36. data/lib/metronome_sdk/resources/v1.rb +0 -4
  37. data/lib/metronome_sdk/resources/v2/contracts.rb +5 -1
  38. data/lib/metronome_sdk/version.rb +1 -1
  39. data/lib/metronome_sdk.rb +2 -8
  40. data/rbi/metronome_sdk/models/commit.rbi +48 -0
  41. data/rbi/metronome_sdk/models/contract.rbi +354 -0
  42. data/rbi/metronome_sdk/models/contract_v2.rbi +1172 -4
  43. data/rbi/metronome_sdk/models/contract_without_amendments.rbi +368 -0
  44. data/rbi/metronome_sdk/models/prepaid_balance_threshold_configuration.rbi +289 -6
  45. data/rbi/metronome_sdk/models/prepaid_balance_threshold_configuration_v2.rbi +283 -6
  46. data/rbi/metronome_sdk/models/spend_threshold_configuration.rbi +78 -3
  47. data/rbi/metronome_sdk/models/spend_threshold_configuration_v2.rbi +78 -3
  48. data/rbi/metronome_sdk/models/v1/alert_create_params.rbi +5 -0
  49. data/rbi/metronome_sdk/models/v1/contract_amend_params.rbi +54 -396
  50. data/rbi/metronome_sdk/models/v1/contract_create_params.rbi +370 -398
  51. data/rbi/metronome_sdk/models/v1/contract_create_response.rbi +2448 -4
  52. data/rbi/metronome_sdk/models/v1/contract_list_seat_balances_params.rbi +179 -0
  53. data/rbi/metronome_sdk/models/v1/contract_list_seat_balances_response.rbi +714 -0
  54. data/rbi/metronome_sdk/models/v1/contracts/product_create_params.rbi +74 -0
  55. data/rbi/metronome_sdk/models/v1/contracts/product_update_params.rbi +74 -0
  56. data/rbi/metronome_sdk/models/v1/customers/customer_alert.rbi +5 -0
  57. data/rbi/metronome_sdk/models/v1/customers/invoice.rbi +9 -0
  58. data/rbi/metronome_sdk/models/v1/customers/invoice_list_params.rbi +75 -0
  59. data/rbi/metronome_sdk/models/v1/package_create_params.rbi +310 -56
  60. data/rbi/metronome_sdk/models/v1/package_list_response.rbi +307 -0
  61. data/rbi/metronome_sdk/models/v1/package_retrieve_response.rbi +307 -0
  62. data/rbi/metronome_sdk/models/v2/contract_edit_params.rbi +734 -11
  63. data/rbi/metronome_sdk/models/v2/contract_edit_response.rbi +8612 -4
  64. data/rbi/metronome_sdk/models/v2/contract_get_edit_history_response.rbi +1355 -219
  65. data/rbi/metronome_sdk/resources/v1/contracts/products.rbi +18 -0
  66. data/rbi/metronome_sdk/resources/v1/contracts.rbi +88 -3
  67. data/rbi/metronome_sdk/resources/v1/customers/invoices.rbi +7 -0
  68. data/rbi/metronome_sdk/resources/v1/packages.rbi +8 -7
  69. data/rbi/metronome_sdk/resources/v1.rbi +0 -3
  70. data/rbi/metronome_sdk/resources/v2/contracts.rbi +10 -0
  71. data/sig/metronome_sdk/models/commit.rbs +19 -0
  72. data/sig/metronome_sdk/models/contract.rbs +151 -0
  73. data/sig/metronome_sdk/models/contract_v2.rbs +494 -6
  74. data/sig/metronome_sdk/models/contract_without_amendments.rbs +151 -0
  75. data/sig/metronome_sdk/models/prepaid_balance_threshold_configuration.rbs +116 -6
  76. data/sig/metronome_sdk/models/prepaid_balance_threshold_configuration_v2.rbs +116 -6
  77. data/sig/metronome_sdk/models/spend_threshold_configuration.rbs +31 -3
  78. data/sig/metronome_sdk/models/spend_threshold_configuration_v2.rbs +31 -3
  79. data/sig/metronome_sdk/models/v1/alert_create_params.rbs +3 -1
  80. data/sig/metronome_sdk/models/v1/contract_amend_params.rbs +19 -137
  81. data/sig/metronome_sdk/models/v1/contract_create_params.rbs +134 -137
  82. data/sig/metronome_sdk/models/v1/contract_create_response.rbs +1045 -4
  83. data/sig/metronome_sdk/models/v1/contract_list_seat_balances_params.rbs +96 -0
  84. data/sig/metronome_sdk/models/v1/contract_list_seat_balances_response.rbs +299 -0
  85. data/sig/metronome_sdk/models/v1/contracts/product_create_params.rbs +20 -0
  86. data/sig/metronome_sdk/models/v1/contracts/product_update_params.rbs +20 -0
  87. data/sig/metronome_sdk/models/v1/customers/customer_alert.rbs +3 -1
  88. data/sig/metronome_sdk/models/v1/customers/invoice.rbs +7 -0
  89. data/sig/metronome_sdk/models/v1/customers/invoice_list_params.rbs +29 -1
  90. data/sig/metronome_sdk/models/v1/package_create_params.rbs +115 -20
  91. data/sig/metronome_sdk/models/v1/package_list_response.rbs +115 -0
  92. data/sig/metronome_sdk/models/v1/package_retrieve_response.rbs +115 -0
  93. data/sig/metronome_sdk/models/v2/contract_edit_params.rbs +283 -9
  94. data/sig/metronome_sdk/models/v2/contract_edit_response.rbs +3792 -4
  95. data/sig/metronome_sdk/models/v2/contract_get_edit_history_response.rbs +461 -15
  96. data/sig/metronome_sdk/resources/v1/contracts/products.rbs +2 -0
  97. data/sig/metronome_sdk/resources/v1/contracts.rbs +16 -0
  98. data/sig/metronome_sdk/resources/v1/customers/invoices.rbs +2 -0
  99. data/sig/metronome_sdk/resources/v1/packages.rbs +1 -1
  100. data/sig/metronome_sdk/resources/v1.rbs +0 -2
  101. data/sig/metronome_sdk/resources/v2/contracts.rbs +2 -0
  102. metadata +8 -26
  103. data/lib/metronome_sdk/models/v1/payment.rb +0 -196
  104. data/lib/metronome_sdk/models/v1/payment_attempt_params.rb +0 -28
  105. data/lib/metronome_sdk/models/v1/payment_attempt_response.rb +0 -18
  106. data/lib/metronome_sdk/models/v1/payment_cancel_params.rb +0 -28
  107. data/lib/metronome_sdk/models/v1/payment_cancel_response.rb +0 -18
  108. data/lib/metronome_sdk/models/v1/payment_list_params.rb +0 -53
  109. data/lib/metronome_sdk/models/v1/payment_status.rb +0 -19
  110. data/lib/metronome_sdk/resources/v1/payments.rb +0 -102
  111. data/rbi/metronome_sdk/models/v1/payment.rbi +0 -403
  112. data/rbi/metronome_sdk/models/v1/payment_attempt_params.rbi +0 -48
  113. data/rbi/metronome_sdk/models/v1/payment_attempt_response.rbi +0 -35
  114. data/rbi/metronome_sdk/models/v1/payment_cancel_params.rbi +0 -48
  115. data/rbi/metronome_sdk/models/v1/payment_cancel_response.rbi +0 -35
  116. data/rbi/metronome_sdk/models/v1/payment_list_params.rbi +0 -91
  117. data/rbi/metronome_sdk/models/v1/payment_status.rbi +0 -33
  118. data/rbi/metronome_sdk/resources/v1/payments.rbi +0 -72
  119. data/sig/metronome_sdk/models/v1/payment.rbs +0 -243
  120. data/sig/metronome_sdk/models/v1/payment_attempt_params.rbs +0 -30
  121. data/sig/metronome_sdk/models/v1/payment_attempt_response.rbs +0 -15
  122. data/sig/metronome_sdk/models/v1/payment_cancel_params.rbs +0 -30
  123. data/sig/metronome_sdk/models/v1/payment_cancel_response.rbs +0 -15
  124. data/sig/metronome_sdk/models/v1/payment_list_params.rbs +0 -56
  125. data/sig/metronome_sdk/models/v1/payment_status.rbs +0 -19
  126. data/sig/metronome_sdk/resources/v1/payments.rbs +0 -30
@@ -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
@@ -335,6 +335,27 @@ module MetronomeSDK
335
335
  end
336
336
  attr_writer :spend_threshold_configuration
337
337
 
338
+ sig do
339
+ returns(
340
+ T.nilable(
341
+ T::Array[
342
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::SpendTracker
343
+ ]
344
+ )
345
+ )
346
+ end
347
+ attr_reader :spend_trackers
348
+
349
+ sig do
350
+ params(
351
+ spend_trackers:
352
+ T::Array[
353
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::SpendTracker::OrHash
354
+ ]
355
+ ).void
356
+ end
357
+ attr_writer :spend_trackers
358
+
338
359
  sig do
339
360
  returns(
340
361
  T.nilable(
@@ -419,6 +440,10 @@ module MetronomeSDK
419
440
  MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::ScheduledChargesOnUsageInvoices::OrSymbol,
420
441
  spend_threshold_configuration:
421
442
  MetronomeSDK::SpendThresholdConfiguration::OrHash,
443
+ spend_trackers:
444
+ T::Array[
445
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::SpendTracker::OrHash
446
+ ],
422
447
  subscriptions:
423
448
  T::Array[
424
449
  MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::Subscription::OrHash
@@ -460,6 +485,7 @@ module MetronomeSDK
460
485
  # on a separate invoice from usage charges.
461
486
  scheduled_charges_on_usage_invoices: nil,
462
487
  spend_threshold_configuration: nil,
488
+ spend_trackers: nil,
463
489
  subscriptions: nil,
464
490
  # Prevents the creation of duplicates. If a request to create a record is made
465
491
  # with a previously used uniqueness key, a new record will not be created and the
@@ -523,6 +549,10 @@ module MetronomeSDK
523
549
  MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::ScheduledChargesOnUsageInvoices::TaggedSymbol,
524
550
  spend_threshold_configuration:
525
551
  MetronomeSDK::SpendThresholdConfiguration,
552
+ spend_trackers:
553
+ T::Array[
554
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::SpendTracker
555
+ ],
526
556
  subscriptions:
527
557
  T::Array[
528
558
  MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::Subscription
@@ -5186,6 +5216,283 @@ module MetronomeSDK
5186
5216
  end
5187
5217
  end
5188
5218
 
5219
+ class SpendTracker < MetronomeSDK::Internal::Type::BaseModel
5220
+ OrHash =
5221
+ T.type_alias do
5222
+ T.any(
5223
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::SpendTracker,
5224
+ MetronomeSDK::Internal::AnyHash
5225
+ )
5226
+ end
5227
+
5228
+ # Human-readable identifier, unique per contract.
5229
+ sig { returns(String) }
5230
+ attr_accessor :alias_
5231
+
5232
+ sig do
5233
+ returns(
5234
+ T::Array[
5235
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::SpendTracker::ApplicableSpendSpecifier
5236
+ ]
5237
+ )
5238
+ end
5239
+ attr_accessor :applicable_spend_specifiers
5240
+
5241
+ sig { returns(String) }
5242
+ attr_accessor :credit_type_id
5243
+
5244
+ sig do
5245
+ returns(
5246
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::SpendTracker::ResetFrequency::TaggedSymbol
5247
+ )
5248
+ end
5249
+ attr_accessor :reset_frequency
5250
+
5251
+ sig do
5252
+ params(
5253
+ alias_: String,
5254
+ applicable_spend_specifiers:
5255
+ T::Array[
5256
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::SpendTracker::ApplicableSpendSpecifier::OrHash
5257
+ ],
5258
+ credit_type_id: String,
5259
+ reset_frequency:
5260
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::SpendTracker::ResetFrequency::OrSymbol
5261
+ ).returns(T.attached_class)
5262
+ end
5263
+ def self.new(
5264
+ # Human-readable identifier, unique per contract.
5265
+ alias_:,
5266
+ applicable_spend_specifiers:,
5267
+ credit_type_id:,
5268
+ reset_frequency:
5269
+ )
5270
+ end
5271
+
5272
+ sig do
5273
+ override.returns(
5274
+ {
5275
+ alias_: String,
5276
+ applicable_spend_specifiers:
5277
+ T::Array[
5278
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::SpendTracker::ApplicableSpendSpecifier
5279
+ ],
5280
+ credit_type_id: String,
5281
+ reset_frequency:
5282
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::SpendTracker::ResetFrequency::TaggedSymbol
5283
+ }
5284
+ )
5285
+ end
5286
+ def to_hash
5287
+ end
5288
+
5289
+ class ApplicableSpendSpecifier < MetronomeSDK::Internal::Type::BaseModel
5290
+ OrHash =
5291
+ T.type_alias do
5292
+ T.any(
5293
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::SpendTracker::ApplicableSpendSpecifier,
5294
+ MetronomeSDK::Internal::AnyHash
5295
+ )
5296
+ end
5297
+
5298
+ sig do
5299
+ returns(
5300
+ T::Array[
5301
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::SpendTracker::ApplicableSpendSpecifier::Source::TaggedSymbol
5302
+ ]
5303
+ )
5304
+ end
5305
+ attr_accessor :sources
5306
+
5307
+ sig do
5308
+ returns(
5309
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::SpendTracker::ApplicableSpendSpecifier::SpendType::TaggedSymbol
5310
+ )
5311
+ end
5312
+ attr_accessor :spend_type
5313
+
5314
+ sig do
5315
+ returns(
5316
+ T.nilable(
5317
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::SpendTracker::ApplicableSpendSpecifier::Discounted::TaggedSymbol
5318
+ )
5319
+ )
5320
+ end
5321
+ attr_reader :discounted
5322
+
5323
+ sig do
5324
+ params(
5325
+ discounted:
5326
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::SpendTracker::ApplicableSpendSpecifier::Discounted::OrSymbol
5327
+ ).void
5328
+ end
5329
+ attr_writer :discounted
5330
+
5331
+ sig do
5332
+ params(
5333
+ sources:
5334
+ T::Array[
5335
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::SpendTracker::ApplicableSpendSpecifier::Source::OrSymbol
5336
+ ],
5337
+ spend_type:
5338
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::SpendTracker::ApplicableSpendSpecifier::SpendType::OrSymbol,
5339
+ discounted:
5340
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::SpendTracker::ApplicableSpendSpecifier::Discounted::OrSymbol
5341
+ ).returns(T.attached_class)
5342
+ end
5343
+ def self.new(sources:, spend_type:, discounted: nil)
5344
+ end
5345
+
5346
+ sig do
5347
+ override.returns(
5348
+ {
5349
+ sources:
5350
+ T::Array[
5351
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::SpendTracker::ApplicableSpendSpecifier::Source::TaggedSymbol
5352
+ ],
5353
+ spend_type:
5354
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::SpendTracker::ApplicableSpendSpecifier::SpendType::TaggedSymbol,
5355
+ discounted:
5356
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::SpendTracker::ApplicableSpendSpecifier::Discounted::TaggedSymbol
5357
+ }
5358
+ )
5359
+ end
5360
+ def to_hash
5361
+ end
5362
+
5363
+ module Source
5364
+ extend MetronomeSDK::Internal::Type::Enum
5365
+
5366
+ TaggedSymbol =
5367
+ T.type_alias do
5368
+ T.all(
5369
+ Symbol,
5370
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::SpendTracker::ApplicableSpendSpecifier::Source
5371
+ )
5372
+ end
5373
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
5374
+
5375
+ THRESHOLD_RECHARGE =
5376
+ T.let(
5377
+ :THRESHOLD_RECHARGE,
5378
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::SpendTracker::ApplicableSpendSpecifier::Source::TaggedSymbol
5379
+ )
5380
+ MANUAL =
5381
+ T.let(
5382
+ :MANUAL,
5383
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::SpendTracker::ApplicableSpendSpecifier::Source::TaggedSymbol
5384
+ )
5385
+
5386
+ sig do
5387
+ override.returns(
5388
+ T::Array[
5389
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::SpendTracker::ApplicableSpendSpecifier::Source::TaggedSymbol
5390
+ ]
5391
+ )
5392
+ end
5393
+ def self.values
5394
+ end
5395
+ end
5396
+
5397
+ module SpendType
5398
+ extend MetronomeSDK::Internal::Type::Enum
5399
+
5400
+ TaggedSymbol =
5401
+ T.type_alias do
5402
+ T.all(
5403
+ Symbol,
5404
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::SpendTracker::ApplicableSpendSpecifier::SpendType
5405
+ )
5406
+ end
5407
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
5408
+
5409
+ COMMIT_PURCHASE =
5410
+ T.let(
5411
+ :COMMIT_PURCHASE,
5412
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::SpendTracker::ApplicableSpendSpecifier::SpendType::TaggedSymbol
5413
+ )
5414
+
5415
+ sig do
5416
+ override.returns(
5417
+ T::Array[
5418
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::SpendTracker::ApplicableSpendSpecifier::SpendType::TaggedSymbol
5419
+ ]
5420
+ )
5421
+ end
5422
+ def self.values
5423
+ end
5424
+ end
5425
+
5426
+ module Discounted
5427
+ extend MetronomeSDK::Internal::Type::Enum
5428
+
5429
+ TaggedSymbol =
5430
+ T.type_alias do
5431
+ T.all(
5432
+ Symbol,
5433
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::SpendTracker::ApplicableSpendSpecifier::Discounted
5434
+ )
5435
+ end
5436
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
5437
+
5438
+ ANY =
5439
+ T.let(
5440
+ :ANY,
5441
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::SpendTracker::ApplicableSpendSpecifier::Discounted::TaggedSymbol
5442
+ )
5443
+ DISCOUNTED_ONLY =
5444
+ T.let(
5445
+ :DISCOUNTED_ONLY,
5446
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::SpendTracker::ApplicableSpendSpecifier::Discounted::TaggedSymbol
5447
+ )
5448
+ UNDISCOUNTED_ONLY =
5449
+ T.let(
5450
+ :UNDISCOUNTED_ONLY,
5451
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::SpendTracker::ApplicableSpendSpecifier::Discounted::TaggedSymbol
5452
+ )
5453
+
5454
+ sig do
5455
+ override.returns(
5456
+ T::Array[
5457
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::SpendTracker::ApplicableSpendSpecifier::Discounted::TaggedSymbol
5458
+ ]
5459
+ )
5460
+ end
5461
+ def self.values
5462
+ end
5463
+ end
5464
+ end
5465
+
5466
+ module ResetFrequency
5467
+ extend MetronomeSDK::Internal::Type::Enum
5468
+
5469
+ TaggedSymbol =
5470
+ T.type_alias do
5471
+ T.all(
5472
+ Symbol,
5473
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::SpendTracker::ResetFrequency
5474
+ )
5475
+ end
5476
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
5477
+
5478
+ BILLING_PERIOD =
5479
+ T.let(
5480
+ :BILLING_PERIOD,
5481
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::SpendTracker::ResetFrequency::TaggedSymbol
5482
+ )
5483
+
5484
+ sig do
5485
+ override.returns(
5486
+ T::Array[
5487
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::SpendTracker::ResetFrequency::TaggedSymbol
5488
+ ]
5489
+ )
5490
+ end
5491
+ def self.values
5492
+ end
5493
+ end
5494
+ end
5495
+
5189
5496
  class Subscription < MetronomeSDK::Internal::Type::BaseModel
5190
5497
  OrHash =
5191
5498
  T.type_alias do