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
@@ -35,7 +35,8 @@ module MetronomeSDK
35
35
  salesforce_opportunity_id: String,
36
36
  scheduled_charges_on_usage_invoices: MetronomeSDK::Models::ContractV2::scheduled_charges_on_usage_invoices,
37
37
  spend_threshold_configuration: MetronomeSDK::SpendThresholdConfigurationV2,
38
- subscriptions: ::Array[MetronomeSDK::Subscription],
38
+ spend_trackers: ::Array[MetronomeSDK::ContractV2::SpendTracker],
39
+ subscriptions: ::Array[MetronomeSDK::ContractV2::Subscription],
39
40
  total_contract_value: Float,
40
41
  uniqueness_key: String
41
42
  }
@@ -177,11 +178,17 @@ module MetronomeSDK
177
178
  MetronomeSDK::SpendThresholdConfigurationV2
178
179
  ) -> MetronomeSDK::SpendThresholdConfigurationV2
179
180
 
180
- attr_reader subscriptions: ::Array[MetronomeSDK::Subscription]?
181
+ attr_reader spend_trackers: ::Array[MetronomeSDK::ContractV2::SpendTracker]?
182
+
183
+ def spend_trackers=: (
184
+ ::Array[MetronomeSDK::ContractV2::SpendTracker]
185
+ ) -> ::Array[MetronomeSDK::ContractV2::SpendTracker]
186
+
187
+ attr_reader subscriptions: ::Array[MetronomeSDK::ContractV2::Subscription]?
181
188
 
182
189
  def subscriptions=: (
183
- ::Array[MetronomeSDK::Subscription]
184
- ) -> ::Array[MetronomeSDK::Subscription]
190
+ ::Array[MetronomeSDK::ContractV2::Subscription]
191
+ ) -> ::Array[MetronomeSDK::ContractV2::Subscription]
185
192
 
186
193
  attr_reader total_contract_value: Float?
187
194
 
@@ -225,7 +232,8 @@ module MetronomeSDK
225
232
  ?salesforce_opportunity_id: String,
226
233
  ?scheduled_charges_on_usage_invoices: MetronomeSDK::Models::ContractV2::scheduled_charges_on_usage_invoices,
227
234
  ?spend_threshold_configuration: MetronomeSDK::SpendThresholdConfigurationV2,
228
- ?subscriptions: ::Array[MetronomeSDK::Subscription],
235
+ ?spend_trackers: ::Array[MetronomeSDK::ContractV2::SpendTracker],
236
+ ?subscriptions: ::Array[MetronomeSDK::ContractV2::Subscription],
229
237
  ?total_contract_value: Float,
230
238
  ?uniqueness_key: String
231
239
  ) -> void
@@ -264,7 +272,8 @@ module MetronomeSDK
264
272
  salesforce_opportunity_id: String,
265
273
  scheduled_charges_on_usage_invoices: MetronomeSDK::Models::ContractV2::scheduled_charges_on_usage_invoices,
266
274
  spend_threshold_configuration: MetronomeSDK::SpendThresholdConfigurationV2,
267
- subscriptions: ::Array[MetronomeSDK::Subscription],
275
+ spend_trackers: ::Array[MetronomeSDK::ContractV2::SpendTracker],
276
+ subscriptions: ::Array[MetronomeSDK::ContractV2::Subscription],
268
277
  total_contract_value: Float,
269
278
  uniqueness_key: String
270
279
  }
@@ -297,6 +306,7 @@ module MetronomeSDK
297
306
  rollover_fraction: Float,
298
307
  salesforce_opportunity_id: String,
299
308
  specifiers: ::Array[MetronomeSDK::CommitSpecifier],
309
+ spend_tracker_attributes: MetronomeSDK::ContractV2::Commit::SpendTrackerAttributes,
300
310
  subscription_config: MetronomeSDK::RecurringCommitSubscriptionConfig
301
311
  }
302
312
 
@@ -415,6 +425,12 @@ module MetronomeSDK
415
425
  ::Array[MetronomeSDK::CommitSpecifier]
416
426
  ) -> ::Array[MetronomeSDK::CommitSpecifier]
417
427
 
428
+ attr_reader spend_tracker_attributes: MetronomeSDK::ContractV2::Commit::SpendTrackerAttributes?
429
+
430
+ def spend_tracker_attributes=: (
431
+ MetronomeSDK::ContractV2::Commit::SpendTrackerAttributes
432
+ ) -> MetronomeSDK::ContractV2::Commit::SpendTrackerAttributes
433
+
418
434
  attr_reader subscription_config: MetronomeSDK::RecurringCommitSubscriptionConfig?
419
435
 
420
436
  def subscription_config=: (
@@ -448,6 +464,7 @@ module MetronomeSDK
448
464
  ?rollover_fraction: Float,
449
465
  ?salesforce_opportunity_id: String,
450
466
  ?specifiers: ::Array[MetronomeSDK::CommitSpecifier],
467
+ ?spend_tracker_attributes: MetronomeSDK::ContractV2::Commit::SpendTrackerAttributes,
451
468
  ?subscription_config: MetronomeSDK::RecurringCommitSubscriptionConfig
452
469
  ) -> void
453
470
 
@@ -478,6 +495,7 @@ module MetronomeSDK
478
495
  rollover_fraction: Float,
479
496
  salesforce_opportunity_id: String,
480
497
  specifiers: ::Array[MetronomeSDK::CommitSpecifier],
498
+ spend_tracker_attributes: MetronomeSDK::ContractV2::Commit::SpendTrackerAttributes,
481
499
  subscription_config: MetronomeSDK::RecurringCommitSubscriptionConfig
482
500
  }
483
501
 
@@ -1211,6 +1229,16 @@ module MetronomeSDK
1211
1229
 
1212
1230
  def to_hash: -> { commit_id: String, contract_id: String }
1213
1231
  end
1232
+
1233
+ type spend_tracker_attributes = { counts_as_discounted: bool }
1234
+
1235
+ class SpendTrackerAttributes < MetronomeSDK::Internal::Type::BaseModel
1236
+ attr_accessor counts_as_discounted: bool
1237
+
1238
+ def initialize: (counts_as_discounted: bool) -> void
1239
+
1240
+ def to_hash: -> { counts_as_discounted: bool }
1241
+ end
1214
1242
  end
1215
1243
 
1216
1244
  type override =
@@ -1651,6 +1679,7 @@ module MetronomeSDK
1651
1679
  applicable_contract_ids: ::Array[String],
1652
1680
  applicable_product_ids: ::Array[String],
1653
1681
  applicable_product_tags: ::Array[String],
1682
+ archived_at: Time,
1654
1683
  balance: Float,
1655
1684
  contract: MetronomeSDK::ContractV2::Credit::Contract,
1656
1685
  created_at: Time,
@@ -1693,6 +1722,10 @@ module MetronomeSDK
1693
1722
 
1694
1723
  def applicable_product_tags=: (::Array[String]) -> ::Array[String]
1695
1724
 
1725
+ attr_reader archived_at: Time?
1726
+
1727
+ def archived_at=: (Time) -> Time
1728
+
1696
1729
  attr_reader balance: Float?
1697
1730
 
1698
1731
  def balance=: (Float) -> Float
@@ -1773,6 +1806,7 @@ module MetronomeSDK
1773
1806
  ?applicable_contract_ids: ::Array[String],
1774
1807
  ?applicable_product_ids: ::Array[String],
1775
1808
  ?applicable_product_tags: ::Array[String],
1809
+ ?archived_at: Time,
1776
1810
  ?balance: Float,
1777
1811
  ?contract: MetronomeSDK::ContractV2::Credit::Contract,
1778
1812
  ?created_at: Time,
@@ -1798,6 +1832,7 @@ module MetronomeSDK
1798
1832
  applicable_contract_ids: ::Array[String],
1799
1833
  applicable_product_ids: ::Array[String],
1800
1834
  applicable_product_tags: ::Array[String],
1835
+ archived_at: Time,
1801
1836
  balance: Float,
1802
1837
  contract: MetronomeSDK::ContractV2::Credit::Contract,
1803
1838
  created_at: Time,
@@ -3217,6 +3252,459 @@ module MetronomeSDK
3217
3252
 
3218
3253
  def self?.values: -> ::Array[MetronomeSDK::Models::ContractV2::scheduled_charges_on_usage_invoices]
3219
3254
  end
3255
+
3256
+ type spend_tracker =
3257
+ {
3258
+ alias_: String,
3259
+ applicable_spend_specifiers: ::Array[MetronomeSDK::ContractV2::SpendTracker::ApplicableSpendSpecifier],
3260
+ credit_type_id: String,
3261
+ reset_frequency: MetronomeSDK::Models::ContractV2::SpendTracker::reset_frequency,
3262
+ accumulated_spend: MetronomeSDK::ContractV2::SpendTracker::AccumulatedSpend
3263
+ }
3264
+
3265
+ class SpendTracker < MetronomeSDK::Internal::Type::BaseModel
3266
+ attr_accessor alias_: String
3267
+
3268
+ attr_accessor applicable_spend_specifiers: ::Array[MetronomeSDK::ContractV2::SpendTracker::ApplicableSpendSpecifier]
3269
+
3270
+ attr_accessor credit_type_id: String
3271
+
3272
+ attr_accessor reset_frequency: MetronomeSDK::Models::ContractV2::SpendTracker::reset_frequency
3273
+
3274
+ attr_reader accumulated_spend: MetronomeSDK::ContractV2::SpendTracker::AccumulatedSpend?
3275
+
3276
+ def accumulated_spend=: (
3277
+ MetronomeSDK::ContractV2::SpendTracker::AccumulatedSpend
3278
+ ) -> MetronomeSDK::ContractV2::SpendTracker::AccumulatedSpend
3279
+
3280
+ def initialize: (
3281
+ alias_: String,
3282
+ applicable_spend_specifiers: ::Array[MetronomeSDK::ContractV2::SpendTracker::ApplicableSpendSpecifier],
3283
+ credit_type_id: String,
3284
+ reset_frequency: MetronomeSDK::Models::ContractV2::SpendTracker::reset_frequency,
3285
+ ?accumulated_spend: MetronomeSDK::ContractV2::SpendTracker::AccumulatedSpend
3286
+ ) -> void
3287
+
3288
+ def to_hash: -> {
3289
+ alias_: String,
3290
+ applicable_spend_specifiers: ::Array[MetronomeSDK::ContractV2::SpendTracker::ApplicableSpendSpecifier],
3291
+ credit_type_id: String,
3292
+ reset_frequency: MetronomeSDK::Models::ContractV2::SpendTracker::reset_frequency,
3293
+ accumulated_spend: MetronomeSDK::ContractV2::SpendTracker::AccumulatedSpend
3294
+ }
3295
+
3296
+ type applicable_spend_specifier =
3297
+ {
3298
+ sources: ::Array[MetronomeSDK::Models::ContractV2::SpendTracker::ApplicableSpendSpecifier::source],
3299
+ spend_type: MetronomeSDK::Models::ContractV2::SpendTracker::ApplicableSpendSpecifier::spend_type,
3300
+ discounted: MetronomeSDK::Models::ContractV2::SpendTracker::ApplicableSpendSpecifier::discounted
3301
+ }
3302
+
3303
+ class ApplicableSpendSpecifier < MetronomeSDK::Internal::Type::BaseModel
3304
+ attr_accessor sources: ::Array[MetronomeSDK::Models::ContractV2::SpendTracker::ApplicableSpendSpecifier::source]
3305
+
3306
+ attr_accessor spend_type: MetronomeSDK::Models::ContractV2::SpendTracker::ApplicableSpendSpecifier::spend_type
3307
+
3308
+ attr_reader discounted: MetronomeSDK::Models::ContractV2::SpendTracker::ApplicableSpendSpecifier::discounted?
3309
+
3310
+ def discounted=: (
3311
+ MetronomeSDK::Models::ContractV2::SpendTracker::ApplicableSpendSpecifier::discounted
3312
+ ) -> MetronomeSDK::Models::ContractV2::SpendTracker::ApplicableSpendSpecifier::discounted
3313
+
3314
+ def initialize: (
3315
+ sources: ::Array[MetronomeSDK::Models::ContractV2::SpendTracker::ApplicableSpendSpecifier::source],
3316
+ spend_type: MetronomeSDK::Models::ContractV2::SpendTracker::ApplicableSpendSpecifier::spend_type,
3317
+ ?discounted: MetronomeSDK::Models::ContractV2::SpendTracker::ApplicableSpendSpecifier::discounted
3318
+ ) -> void
3319
+
3320
+ def to_hash: -> {
3321
+ sources: ::Array[MetronomeSDK::Models::ContractV2::SpendTracker::ApplicableSpendSpecifier::source],
3322
+ spend_type: MetronomeSDK::Models::ContractV2::SpendTracker::ApplicableSpendSpecifier::spend_type,
3323
+ discounted: MetronomeSDK::Models::ContractV2::SpendTracker::ApplicableSpendSpecifier::discounted
3324
+ }
3325
+
3326
+ type source = :THRESHOLD_RECHARGE | :MANUAL
3327
+
3328
+ module Source
3329
+ extend MetronomeSDK::Internal::Type::Enum
3330
+
3331
+ THRESHOLD_RECHARGE: :THRESHOLD_RECHARGE
3332
+ MANUAL: :MANUAL
3333
+
3334
+ def self?.values: -> ::Array[MetronomeSDK::Models::ContractV2::SpendTracker::ApplicableSpendSpecifier::source]
3335
+ end
3336
+
3337
+ type spend_type = :COMMIT_PURCHASE
3338
+
3339
+ module SpendType
3340
+ extend MetronomeSDK::Internal::Type::Enum
3341
+
3342
+ COMMIT_PURCHASE: :COMMIT_PURCHASE
3343
+
3344
+ def self?.values: -> ::Array[MetronomeSDK::Models::ContractV2::SpendTracker::ApplicableSpendSpecifier::spend_type]
3345
+ end
3346
+
3347
+ type discounted = :ANY | :DISCOUNTED_ONLY | :UNDISCOUNTED_ONLY
3348
+
3349
+ module Discounted
3350
+ extend MetronomeSDK::Internal::Type::Enum
3351
+
3352
+ ANY: :ANY
3353
+ DISCOUNTED_ONLY: :DISCOUNTED_ONLY
3354
+ UNDISCOUNTED_ONLY: :UNDISCOUNTED_ONLY
3355
+
3356
+ def self?.values: -> ::Array[MetronomeSDK::Models::ContractV2::SpendTracker::ApplicableSpendSpecifier::discounted]
3357
+ end
3358
+ end
3359
+
3360
+ type reset_frequency = :BILLING_PERIOD
3361
+
3362
+ module ResetFrequency
3363
+ extend MetronomeSDK::Internal::Type::Enum
3364
+
3365
+ BILLING_PERIOD: :BILLING_PERIOD
3366
+
3367
+ def self?.values: -> ::Array[MetronomeSDK::Models::ContractV2::SpendTracker::reset_frequency]
3368
+ end
3369
+
3370
+ type accumulated_spend =
3371
+ {
3372
+ amount: Float,
3373
+ period_ending_before: Time,
3374
+ period_starting_at: Time
3375
+ }
3376
+
3377
+ class AccumulatedSpend < MetronomeSDK::Internal::Type::BaseModel
3378
+ attr_accessor amount: Float
3379
+
3380
+ attr_accessor period_ending_before: Time
3381
+
3382
+ attr_accessor period_starting_at: Time
3383
+
3384
+ def initialize: (
3385
+ amount: Float,
3386
+ period_ending_before: Time,
3387
+ period_starting_at: Time
3388
+ ) -> void
3389
+
3390
+ def to_hash: -> {
3391
+ amount: Float,
3392
+ period_ending_before: Time,
3393
+ period_starting_at: Time
3394
+ }
3395
+ end
3396
+ end
3397
+
3398
+ type subscription =
3399
+ {
3400
+ billing_periods: MetronomeSDK::ContractV2::Subscription::BillingPeriods,
3401
+ collection_schedule: MetronomeSDK::Models::ContractV2::Subscription::collection_schedule,
3402
+ proration: MetronomeSDK::ContractV2::Subscription::Proration,
3403
+ quantity_management_mode: MetronomeSDK::Models::ContractV2::Subscription::quantity_management_mode,
3404
+ quantity_schedule: ::Array[MetronomeSDK::ContractV2::Subscription::QuantitySchedule],
3405
+ starting_at: Time,
3406
+ subscription_rate: MetronomeSDK::ContractV2::Subscription::SubscriptionRate,
3407
+ id: String,
3408
+ custom_fields: ::Hash[Symbol, String],
3409
+ description: String,
3410
+ ending_before: Time,
3411
+ fiat_credit_type_id: String,
3412
+ name: String,
3413
+ seat_config: MetronomeSDK::ContractV2::Subscription::SeatConfig
3414
+ }
3415
+
3416
+ class Subscription < MetronomeSDK::Internal::Type::BaseModel
3417
+ attr_accessor billing_periods: MetronomeSDK::ContractV2::Subscription::BillingPeriods
3418
+
3419
+ attr_accessor collection_schedule: MetronomeSDK::Models::ContractV2::Subscription::collection_schedule
3420
+
3421
+ attr_accessor proration: MetronomeSDK::ContractV2::Subscription::Proration
3422
+
3423
+ attr_accessor quantity_management_mode: MetronomeSDK::Models::ContractV2::Subscription::quantity_management_mode
3424
+
3425
+ attr_accessor quantity_schedule: ::Array[MetronomeSDK::ContractV2::Subscription::QuantitySchedule]
3426
+
3427
+ attr_accessor starting_at: Time
3428
+
3429
+ attr_accessor subscription_rate: MetronomeSDK::ContractV2::Subscription::SubscriptionRate
3430
+
3431
+ attr_reader id: String?
3432
+
3433
+ def id=: (String) -> String
3434
+
3435
+ attr_reader custom_fields: ::Hash[Symbol, String]?
3436
+
3437
+ def custom_fields=: (::Hash[Symbol, String]) -> ::Hash[Symbol, String]
3438
+
3439
+ attr_reader description: String?
3440
+
3441
+ def description=: (String) -> String
3442
+
3443
+ attr_reader ending_before: Time?
3444
+
3445
+ def ending_before=: (Time) -> Time
3446
+
3447
+ attr_reader fiat_credit_type_id: String?
3448
+
3449
+ def fiat_credit_type_id=: (String) -> String
3450
+
3451
+ attr_reader name: String?
3452
+
3453
+ def name=: (String) -> String
3454
+
3455
+ attr_reader seat_config: MetronomeSDK::ContractV2::Subscription::SeatConfig?
3456
+
3457
+ def seat_config=: (
3458
+ MetronomeSDK::ContractV2::Subscription::SeatConfig
3459
+ ) -> MetronomeSDK::ContractV2::Subscription::SeatConfig
3460
+
3461
+ def initialize: (
3462
+ billing_periods: MetronomeSDK::ContractV2::Subscription::BillingPeriods,
3463
+ collection_schedule: MetronomeSDK::Models::ContractV2::Subscription::collection_schedule,
3464
+ proration: MetronomeSDK::ContractV2::Subscription::Proration,
3465
+ quantity_management_mode: MetronomeSDK::Models::ContractV2::Subscription::quantity_management_mode,
3466
+ quantity_schedule: ::Array[MetronomeSDK::ContractV2::Subscription::QuantitySchedule],
3467
+ starting_at: Time,
3468
+ subscription_rate: MetronomeSDK::ContractV2::Subscription::SubscriptionRate,
3469
+ ?id: String,
3470
+ ?custom_fields: ::Hash[Symbol, String],
3471
+ ?description: String,
3472
+ ?ending_before: Time,
3473
+ ?fiat_credit_type_id: String,
3474
+ ?name: String,
3475
+ ?seat_config: MetronomeSDK::ContractV2::Subscription::SeatConfig
3476
+ ) -> void
3477
+
3478
+ def to_hash: -> {
3479
+ billing_periods: MetronomeSDK::ContractV2::Subscription::BillingPeriods,
3480
+ collection_schedule: MetronomeSDK::Models::ContractV2::Subscription::collection_schedule,
3481
+ proration: MetronomeSDK::ContractV2::Subscription::Proration,
3482
+ quantity_management_mode: MetronomeSDK::Models::ContractV2::Subscription::quantity_management_mode,
3483
+ quantity_schedule: ::Array[MetronomeSDK::ContractV2::Subscription::QuantitySchedule],
3484
+ starting_at: Time,
3485
+ subscription_rate: MetronomeSDK::ContractV2::Subscription::SubscriptionRate,
3486
+ id: String,
3487
+ custom_fields: ::Hash[Symbol, String],
3488
+ description: String,
3489
+ ending_before: Time,
3490
+ fiat_credit_type_id: String,
3491
+ name: String,
3492
+ seat_config: MetronomeSDK::ContractV2::Subscription::SeatConfig
3493
+ }
3494
+
3495
+ type billing_periods =
3496
+ {
3497
+ current: MetronomeSDK::ContractV2::Subscription::BillingPeriods::Current,
3498
+ next_: MetronomeSDK::ContractV2::Subscription::BillingPeriods::Next,
3499
+ previous: MetronomeSDK::ContractV2::Subscription::BillingPeriods::Previous
3500
+ }
3501
+
3502
+ class BillingPeriods < MetronomeSDK::Internal::Type::BaseModel
3503
+ attr_reader current: MetronomeSDK::ContractV2::Subscription::BillingPeriods::Current?
3504
+
3505
+ def current=: (
3506
+ MetronomeSDK::ContractV2::Subscription::BillingPeriods::Current
3507
+ ) -> MetronomeSDK::ContractV2::Subscription::BillingPeriods::Current
3508
+
3509
+ attr_reader next_: MetronomeSDK::ContractV2::Subscription::BillingPeriods::Next?
3510
+
3511
+ def next_=: (
3512
+ MetronomeSDK::ContractV2::Subscription::BillingPeriods::Next
3513
+ ) -> MetronomeSDK::ContractV2::Subscription::BillingPeriods::Next
3514
+
3515
+ attr_reader previous: MetronomeSDK::ContractV2::Subscription::BillingPeriods::Previous?
3516
+
3517
+ def previous=: (
3518
+ MetronomeSDK::ContractV2::Subscription::BillingPeriods::Previous
3519
+ ) -> MetronomeSDK::ContractV2::Subscription::BillingPeriods::Previous
3520
+
3521
+ def initialize: (
3522
+ ?current: MetronomeSDK::ContractV2::Subscription::BillingPeriods::Current,
3523
+ ?next_: MetronomeSDK::ContractV2::Subscription::BillingPeriods::Next,
3524
+ ?previous: MetronomeSDK::ContractV2::Subscription::BillingPeriods::Previous
3525
+ ) -> void
3526
+
3527
+ def to_hash: -> {
3528
+ current: MetronomeSDK::ContractV2::Subscription::BillingPeriods::Current,
3529
+ next_: MetronomeSDK::ContractV2::Subscription::BillingPeriods::Next,
3530
+ previous: MetronomeSDK::ContractV2::Subscription::BillingPeriods::Previous
3531
+ }
3532
+
3533
+ type current = { ending_before: Time, starting_at: Time }
3534
+
3535
+ class Current < MetronomeSDK::Internal::Type::BaseModel
3536
+ attr_accessor ending_before: Time
3537
+
3538
+ attr_accessor starting_at: Time
3539
+
3540
+ def initialize: (ending_before: Time, starting_at: Time) -> void
3541
+
3542
+ def to_hash: -> { ending_before: Time, starting_at: Time }
3543
+ end
3544
+
3545
+ type next_ = { ending_before: Time, starting_at: Time }
3546
+
3547
+ class Next < MetronomeSDK::Internal::Type::BaseModel
3548
+ attr_accessor ending_before: Time
3549
+
3550
+ attr_accessor starting_at: Time
3551
+
3552
+ def initialize: (ending_before: Time, starting_at: Time) -> void
3553
+
3554
+ def to_hash: -> { ending_before: Time, starting_at: Time }
3555
+ end
3556
+
3557
+ type previous = { ending_before: Time, starting_at: Time }
3558
+
3559
+ class Previous < MetronomeSDK::Internal::Type::BaseModel
3560
+ attr_accessor ending_before: Time
3561
+
3562
+ attr_accessor starting_at: Time
3563
+
3564
+ def initialize: (ending_before: Time, starting_at: Time) -> void
3565
+
3566
+ def to_hash: -> { ending_before: Time, starting_at: Time }
3567
+ end
3568
+ end
3569
+
3570
+ type collection_schedule = :ADVANCE | :ARREARS
3571
+
3572
+ module CollectionSchedule
3573
+ extend MetronomeSDK::Internal::Type::Enum
3574
+
3575
+ ADVANCE: :ADVANCE
3576
+ ARREARS: :ARREARS
3577
+
3578
+ def self?.values: -> ::Array[MetronomeSDK::Models::ContractV2::Subscription::collection_schedule]
3579
+ end
3580
+
3581
+ type proration =
3582
+ {
3583
+ invoice_behavior: MetronomeSDK::Models::ContractV2::Subscription::Proration::invoice_behavior,
3584
+ is_prorated: bool
3585
+ }
3586
+
3587
+ class Proration < MetronomeSDK::Internal::Type::BaseModel
3588
+ attr_accessor invoice_behavior: MetronomeSDK::Models::ContractV2::Subscription::Proration::invoice_behavior
3589
+
3590
+ attr_accessor is_prorated: bool
3591
+
3592
+ def initialize: (
3593
+ invoice_behavior: MetronomeSDK::Models::ContractV2::Subscription::Proration::invoice_behavior,
3594
+ is_prorated: bool
3595
+ ) -> void
3596
+
3597
+ def to_hash: -> {
3598
+ invoice_behavior: MetronomeSDK::Models::ContractV2::Subscription::Proration::invoice_behavior,
3599
+ is_prorated: bool
3600
+ }
3601
+
3602
+ type invoice_behavior =
3603
+ :BILL_IMMEDIATELY | :BILL_ON_NEXT_COLLECTION_DATE
3604
+
3605
+ module InvoiceBehavior
3606
+ extend MetronomeSDK::Internal::Type::Enum
3607
+
3608
+ BILL_IMMEDIATELY: :BILL_IMMEDIATELY
3609
+ BILL_ON_NEXT_COLLECTION_DATE: :BILL_ON_NEXT_COLLECTION_DATE
3610
+
3611
+ def self?.values: -> ::Array[MetronomeSDK::Models::ContractV2::Subscription::Proration::invoice_behavior]
3612
+ end
3613
+ end
3614
+
3615
+ type quantity_management_mode = :SEAT_BASED | :QUANTITY_ONLY
3616
+
3617
+ module QuantityManagementMode
3618
+ extend MetronomeSDK::Internal::Type::Enum
3619
+
3620
+ SEAT_BASED: :SEAT_BASED
3621
+ QUANTITY_ONLY: :QUANTITY_ONLY
3622
+
3623
+ def self?.values: -> ::Array[MetronomeSDK::Models::ContractV2::Subscription::quantity_management_mode]
3624
+ end
3625
+
3626
+ type quantity_schedule =
3627
+ { quantity: Float, starting_at: Time, ending_before: Time }
3628
+
3629
+ class QuantitySchedule < MetronomeSDK::Internal::Type::BaseModel
3630
+ attr_accessor quantity: Float
3631
+
3632
+ attr_accessor starting_at: Time
3633
+
3634
+ attr_reader ending_before: Time?
3635
+
3636
+ def ending_before=: (Time) -> Time
3637
+
3638
+ def initialize: (
3639
+ quantity: Float,
3640
+ starting_at: Time,
3641
+ ?ending_before: Time
3642
+ ) -> void
3643
+
3644
+ def to_hash: -> {
3645
+ quantity: Float,
3646
+ starting_at: Time,
3647
+ ending_before: Time
3648
+ }
3649
+ end
3650
+
3651
+ type subscription_rate =
3652
+ {
3653
+ billing_frequency: MetronomeSDK::Models::ContractV2::Subscription::SubscriptionRate::billing_frequency,
3654
+ product: MetronomeSDK::ContractV2::Subscription::SubscriptionRate::Product
3655
+ }
3656
+
3657
+ class SubscriptionRate < MetronomeSDK::Internal::Type::BaseModel
3658
+ attr_accessor billing_frequency: MetronomeSDK::Models::ContractV2::Subscription::SubscriptionRate::billing_frequency
3659
+
3660
+ attr_accessor product: MetronomeSDK::ContractV2::Subscription::SubscriptionRate::Product
3661
+
3662
+ def initialize: (
3663
+ billing_frequency: MetronomeSDK::Models::ContractV2::Subscription::SubscriptionRate::billing_frequency,
3664
+ product: MetronomeSDK::ContractV2::Subscription::SubscriptionRate::Product
3665
+ ) -> void
3666
+
3667
+ def to_hash: -> {
3668
+ billing_frequency: MetronomeSDK::Models::ContractV2::Subscription::SubscriptionRate::billing_frequency,
3669
+ product: MetronomeSDK::ContractV2::Subscription::SubscriptionRate::Product
3670
+ }
3671
+
3672
+ type billing_frequency = :MONTHLY | :QUARTERLY | :ANNUAL | :WEEKLY
3673
+
3674
+ module BillingFrequency
3675
+ extend MetronomeSDK::Internal::Type::Enum
3676
+
3677
+ MONTHLY: :MONTHLY
3678
+ QUARTERLY: :QUARTERLY
3679
+ ANNUAL: :ANNUAL
3680
+ WEEKLY: :WEEKLY
3681
+
3682
+ def self?.values: -> ::Array[MetronomeSDK::Models::ContractV2::Subscription::SubscriptionRate::billing_frequency]
3683
+ end
3684
+
3685
+ type product = { id: String, name: String }
3686
+
3687
+ class Product < MetronomeSDK::Internal::Type::BaseModel
3688
+ attr_accessor id: String
3689
+
3690
+ attr_accessor name: String
3691
+
3692
+ def initialize: (id: String, name: String) -> void
3693
+
3694
+ def to_hash: -> { id: String, name: String }
3695
+ end
3696
+ end
3697
+
3698
+ type seat_config = { seat_group_key: String }
3699
+
3700
+ class SeatConfig < MetronomeSDK::Internal::Type::BaseModel
3701
+ attr_accessor seat_group_key: String
3702
+
3703
+ def initialize: (seat_group_key: String) -> void
3704
+
3705
+ def to_hash: -> { seat_group_key: String }
3706
+ end
3707
+ end
3220
3708
  end
3221
3709
  end
3222
3710
  end