metronome-sdk 3.6.0 → 3.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (141) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +54 -0
  3. data/README.md +1 -1
  4. data/lib/metronome_sdk/internal/transport/base_client.rb +4 -1
  5. data/lib/metronome_sdk/internal/type/enum.rb +0 -25
  6. data/lib/metronome_sdk/models/commit.rb +36 -1
  7. data/lib/metronome_sdk/models/contract.rb +140 -1
  8. data/lib/metronome_sdk/models/contract_v2.rb +457 -8
  9. data/lib/metronome_sdk/models/contract_without_amendments.rb +320 -5
  10. data/lib/metronome_sdk/models/credit.rb +10 -1
  11. data/lib/metronome_sdk/models/override.rb +7 -1
  12. data/lib/metronome_sdk/models/prepaid_balance_threshold_configuration.rb +113 -2
  13. data/lib/metronome_sdk/models/prepaid_balance_threshold_configuration_v2.rb +105 -2
  14. data/lib/metronome_sdk/models/spend_threshold_configuration.rb +33 -1
  15. data/lib/metronome_sdk/models/spend_threshold_configuration_v2.rb +33 -1
  16. data/lib/metronome_sdk/models/subscription.rb +90 -2
  17. data/lib/metronome_sdk/models/v1/alert_create_params.rb +127 -1
  18. data/lib/metronome_sdk/models/v1/contract_amend_params.rb +46 -5
  19. data/lib/metronome_sdk/models/v1/contract_create_params.rb +436 -12
  20. data/lib/metronome_sdk/models/v1/contract_create_response.rb +1308 -3
  21. data/lib/metronome_sdk/models/v1/contract_get_subscription_seats_history_params.rb +88 -0
  22. data/lib/metronome_sdk/models/v1/contract_get_subscription_seats_history_response.rb +62 -0
  23. data/lib/metronome_sdk/models/v1/contract_list_seat_balances_params.rb +10 -1
  24. data/lib/metronome_sdk/models/v1/customers/alert_retrieve_params.rb +127 -1
  25. data/lib/metronome_sdk/models/v1/customers/customer_alert.rb +130 -3
  26. data/lib/metronome_sdk/models/v1/customers/invoice_list_params.rb +10 -1
  27. data/lib/metronome_sdk/models/v1/dashboard_get_embeddable_url_params.rb +2 -0
  28. data/lib/metronome_sdk/models/v1/package_create_params.rb +394 -11
  29. data/lib/metronome_sdk/models/v1/package_list_response.rb +374 -8
  30. data/lib/metronome_sdk/models/v1/package_retrieve_response.rb +378 -8
  31. data/lib/metronome_sdk/models/v2/contract_edit_params.rb +817 -13
  32. data/lib/metronome_sdk/models/v2/contract_edit_response.rb +4310 -3
  33. data/lib/metronome_sdk/models/v2/contract_get_edit_history_response.rb +600 -10
  34. data/lib/metronome_sdk/resources/v1/alerts.rb +3 -1
  35. data/lib/metronome_sdk/resources/v1/contracts/rate_cards/rates.rb +4 -0
  36. data/lib/metronome_sdk/resources/v1/contracts.rb +71 -2
  37. data/lib/metronome_sdk/resources/v1/customers/alerts.rb +4 -2
  38. data/lib/metronome_sdk/resources/v1/customers/invoices.rb +3 -1
  39. data/lib/metronome_sdk/resources/v1/dashboards.rb +7 -2
  40. data/lib/metronome_sdk/resources/v1/packages.rb +6 -5
  41. data/lib/metronome_sdk/resources/v1.rb +0 -4
  42. data/lib/metronome_sdk/resources/v2/contracts.rb +5 -1
  43. data/lib/metronome_sdk/version.rb +1 -1
  44. data/lib/metronome_sdk.rb +2 -8
  45. data/rbi/metronome_sdk/models/commit.rbi +61 -0
  46. data/rbi/metronome_sdk/models/contract.rbi +354 -0
  47. data/rbi/metronome_sdk/models/contract_v2.rbi +1132 -11
  48. data/rbi/metronome_sdk/models/contract_without_amendments.rbi +831 -0
  49. data/rbi/metronome_sdk/models/credit.rbi +13 -0
  50. data/rbi/metronome_sdk/models/override.rbi +9 -0
  51. data/rbi/metronome_sdk/models/prepaid_balance_threshold_configuration.rbi +299 -6
  52. data/rbi/metronome_sdk/models/prepaid_balance_threshold_configuration_v2.rbi +287 -6
  53. data/rbi/metronome_sdk/models/spend_threshold_configuration.rbi +78 -3
  54. data/rbi/metronome_sdk/models/spend_threshold_configuration_v2.rbi +78 -3
  55. data/rbi/metronome_sdk/models/subscription.rbi +212 -3
  56. data/rbi/metronome_sdk/models/v1/alert_create_params.rbi +373 -0
  57. data/rbi/metronome_sdk/models/v1/contract_amend_params.rbi +81 -6
  58. data/rbi/metronome_sdk/models/v1/contract_create_params.rbi +1095 -17
  59. data/rbi/metronome_sdk/models/v1/contract_create_response.rbi +2911 -4
  60. data/rbi/metronome_sdk/models/v1/contract_get_subscription_seats_history_params.rbi +112 -0
  61. data/rbi/metronome_sdk/models/v1/contract_get_subscription_seats_history_response.rbi +119 -0
  62. data/rbi/metronome_sdk/models/v1/contract_list_seat_balances_params.rbi +13 -0
  63. data/rbi/metronome_sdk/models/v1/customers/alert_retrieve_params.rbi +360 -0
  64. data/rbi/metronome_sdk/models/v1/customers/customer_alert.rbi +379 -2
  65. data/rbi/metronome_sdk/models/v1/customers/invoice_list_params.rbi +13 -0
  66. data/rbi/metronome_sdk/models/v1/dashboard_get_embeddable_url_params.rbi +10 -0
  67. data/rbi/metronome_sdk/models/v1/package_create_params.rbi +1049 -42
  68. data/rbi/metronome_sdk/models/v1/package_list_response.rbi +1051 -54
  69. data/rbi/metronome_sdk/models/v1/package_retrieve_response.rbi +1051 -54
  70. data/rbi/metronome_sdk/models/v2/contract_edit_params.rbi +2130 -114
  71. data/rbi/metronome_sdk/models/v2/contract_edit_response.rbi +9749 -4
  72. data/rbi/metronome_sdk/models/v2/contract_get_edit_history_response.rbi +1567 -82
  73. data/rbi/metronome_sdk/resources/v1/alerts.rbi +8 -0
  74. data/rbi/metronome_sdk/resources/v1/contracts/rate_cards/rates.rbi +4 -0
  75. data/rbi/metronome_sdk/resources/v1/contracts.rbi +77 -0
  76. data/rbi/metronome_sdk/resources/v1/customers/alerts.rbi +8 -1
  77. data/rbi/metronome_sdk/resources/v1/customers/invoices.rbi +4 -0
  78. data/rbi/metronome_sdk/resources/v1/dashboards.rbi +7 -2
  79. data/rbi/metronome_sdk/resources/v1/packages.rbi +8 -4
  80. data/rbi/metronome_sdk/resources/v1.rbi +0 -3
  81. data/rbi/metronome_sdk/resources/v2/contracts.rbi +10 -0
  82. data/sig/metronome_sdk/models/commit.rbs +26 -0
  83. data/sig/metronome_sdk/models/contract.rbs +151 -0
  84. data/sig/metronome_sdk/models/contract_v2.rbs +448 -5
  85. data/sig/metronome_sdk/models/contract_without_amendments.rbs +320 -2
  86. data/sig/metronome_sdk/models/credit.rbs +7 -0
  87. data/sig/metronome_sdk/models/override.rbs +7 -0
  88. data/sig/metronome_sdk/models/prepaid_balance_threshold_configuration.rbs +116 -6
  89. data/sig/metronome_sdk/models/prepaid_balance_threshold_configuration_v2.rbs +116 -6
  90. data/sig/metronome_sdk/models/spend_threshold_configuration.rbs +31 -3
  91. data/sig/metronome_sdk/models/spend_threshold_configuration_v2.rbs +31 -3
  92. data/sig/metronome_sdk/models/subscription.rbs +88 -3
  93. data/sig/metronome_sdk/models/v1/alert_create_params.rbs +144 -0
  94. data/sig/metronome_sdk/models/v1/contract_amend_params.rbs +26 -0
  95. data/sig/metronome_sdk/models/v1/contract_create_params.rbs +412 -5
  96. data/sig/metronome_sdk/models/v1/contract_create_response.rbs +1210 -4
  97. data/sig/metronome_sdk/models/v1/contract_get_subscription_seats_history_params.rbs +63 -0
  98. data/sig/metronome_sdk/models/v1/contract_get_subscription_seats_history_response.rbs +59 -0
  99. data/sig/metronome_sdk/models/v1/contract_list_seat_balances_params.rbs +7 -0
  100. data/sig/metronome_sdk/models/v1/customers/alert_retrieve_params.rbs +141 -0
  101. data/sig/metronome_sdk/models/v1/customers/customer_alert.rbs +150 -0
  102. data/sig/metronome_sdk/models/v1/customers/invoice_list_params.rbs +8 -1
  103. data/sig/metronome_sdk/models/v1/dashboard_get_embeddable_url_params.rbs +4 -0
  104. data/sig/metronome_sdk/models/v1/package_create_params.rbs +386 -5
  105. data/sig/metronome_sdk/models/v1/package_list_response.rbs +380 -5
  106. data/sig/metronome_sdk/models/v1/package_retrieve_response.rbs +378 -5
  107. data/sig/metronome_sdk/models/v2/contract_edit_params.rbs +751 -14
  108. data/sig/metronome_sdk/models/v2/contract_edit_response.rbs +4215 -4
  109. data/sig/metronome_sdk/models/v2/contract_get_edit_history_response.rbs +569 -14
  110. data/sig/metronome_sdk/resources/v1/alerts.rbs +1 -0
  111. data/sig/metronome_sdk/resources/v1/contracts.rbs +14 -0
  112. data/sig/metronome_sdk/resources/v1/customers/alerts.rbs +1 -0
  113. data/sig/metronome_sdk/resources/v1/customers/invoices.rbs +1 -0
  114. data/sig/metronome_sdk/resources/v1/packages.rbs +1 -0
  115. data/sig/metronome_sdk/resources/v1.rbs +0 -2
  116. data/sig/metronome_sdk/resources/v2/contracts.rbs +2 -0
  117. metadata +8 -26
  118. data/lib/metronome_sdk/models/v1/payment.rb +0 -196
  119. data/lib/metronome_sdk/models/v1/payment_attempt_params.rb +0 -28
  120. data/lib/metronome_sdk/models/v1/payment_attempt_response.rb +0 -18
  121. data/lib/metronome_sdk/models/v1/payment_cancel_params.rb +0 -28
  122. data/lib/metronome_sdk/models/v1/payment_cancel_response.rb +0 -18
  123. data/lib/metronome_sdk/models/v1/payment_list_params.rb +0 -53
  124. data/lib/metronome_sdk/models/v1/payment_status.rb +0 -19
  125. data/lib/metronome_sdk/resources/v1/payments.rb +0 -102
  126. data/rbi/metronome_sdk/models/v1/payment.rbi +0 -403
  127. data/rbi/metronome_sdk/models/v1/payment_attempt_params.rbi +0 -48
  128. data/rbi/metronome_sdk/models/v1/payment_attempt_response.rbi +0 -35
  129. data/rbi/metronome_sdk/models/v1/payment_cancel_params.rbi +0 -48
  130. data/rbi/metronome_sdk/models/v1/payment_cancel_response.rbi +0 -35
  131. data/rbi/metronome_sdk/models/v1/payment_list_params.rbi +0 -91
  132. data/rbi/metronome_sdk/models/v1/payment_status.rbi +0 -33
  133. data/rbi/metronome_sdk/resources/v1/payments.rbi +0 -72
  134. data/sig/metronome_sdk/models/v1/payment.rbs +0 -243
  135. data/sig/metronome_sdk/models/v1/payment_attempt_params.rbs +0 -30
  136. data/sig/metronome_sdk/models/v1/payment_attempt_response.rbs +0 -15
  137. data/sig/metronome_sdk/models/v1/payment_cancel_params.rbs +0 -30
  138. data/sig/metronome_sdk/models/v1/payment_cancel_response.rbs +0 -15
  139. data/sig/metronome_sdk/models/v1/payment_list_params.rbs +0 -56
  140. data/sig/metronome_sdk/models/v1/payment_status.rbs +0 -19
  141. data/sig/metronome_sdk/resources/v1/payments.rbs +0 -30
@@ -35,6 +35,7 @@ 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
+ spend_trackers: ::Array[MetronomeSDK::ContractV2::SpendTracker],
38
39
  subscriptions: ::Array[MetronomeSDK::ContractV2::Subscription],
39
40
  total_contract_value: Float,
40
41
  uniqueness_key: String
@@ -177,6 +178,12 @@ module MetronomeSDK
177
178
  MetronomeSDK::SpendThresholdConfigurationV2
178
179
  ) -> MetronomeSDK::SpendThresholdConfigurationV2
179
180
 
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
+
180
187
  attr_reader subscriptions: ::Array[MetronomeSDK::ContractV2::Subscription]?
181
188
 
182
189
  def subscriptions=: (
@@ -225,6 +232,7 @@ 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,
235
+ ?spend_trackers: ::Array[MetronomeSDK::ContractV2::SpendTracker],
228
236
  ?subscriptions: ::Array[MetronomeSDK::ContractV2::Subscription],
229
237
  ?total_contract_value: Float,
230
238
  ?uniqueness_key: String
@@ -264,6 +272,7 @@ 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,
275
+ spend_trackers: ::Array[MetronomeSDK::ContractV2::SpendTracker],
267
276
  subscriptions: ::Array[MetronomeSDK::ContractV2::Subscription],
268
277
  total_contract_value: Float,
269
278
  uniqueness_key: String
@@ -282,6 +291,7 @@ module MetronomeSDK
282
291
  archived_at: Time,
283
292
  balance: Float,
284
293
  contract: MetronomeSDK::ContractV2::Commit::Contract,
294
+ created_by: String,
285
295
  custom_fields: ::Hash[Symbol, String],
286
296
  description: String,
287
297
  hierarchy_configuration: MetronomeSDK::CommitHierarchyConfiguration,
@@ -297,6 +307,7 @@ module MetronomeSDK
297
307
  rollover_fraction: Float,
298
308
  salesforce_opportunity_id: String,
299
309
  specifiers: ::Array[MetronomeSDK::CommitSpecifier],
310
+ spend_tracker_attributes: MetronomeSDK::ContractV2::Commit::SpendTrackerAttributes,
300
311
  subscription_config: MetronomeSDK::RecurringCommitSubscriptionConfig
301
312
  }
302
313
 
@@ -341,6 +352,10 @@ module MetronomeSDK
341
352
  MetronomeSDK::ContractV2::Commit::Contract
342
353
  ) -> MetronomeSDK::ContractV2::Commit::Contract
343
354
 
355
+ attr_reader created_by: String?
356
+
357
+ def created_by=: (String) -> String
358
+
344
359
  attr_reader custom_fields: ::Hash[Symbol, String]?
345
360
 
346
361
  def custom_fields=: (::Hash[Symbol, String]) -> ::Hash[Symbol, String]
@@ -415,6 +430,12 @@ module MetronomeSDK
415
430
  ::Array[MetronomeSDK::CommitSpecifier]
416
431
  ) -> ::Array[MetronomeSDK::CommitSpecifier]
417
432
 
433
+ attr_reader spend_tracker_attributes: MetronomeSDK::ContractV2::Commit::SpendTrackerAttributes?
434
+
435
+ def spend_tracker_attributes=: (
436
+ MetronomeSDK::ContractV2::Commit::SpendTrackerAttributes
437
+ ) -> MetronomeSDK::ContractV2::Commit::SpendTrackerAttributes
438
+
418
439
  attr_reader subscription_config: MetronomeSDK::RecurringCommitSubscriptionConfig?
419
440
 
420
441
  def subscription_config=: (
@@ -433,6 +454,7 @@ module MetronomeSDK
433
454
  ?archived_at: Time,
434
455
  ?balance: Float,
435
456
  ?contract: MetronomeSDK::ContractV2::Commit::Contract,
457
+ ?created_by: String,
436
458
  ?custom_fields: ::Hash[Symbol, String],
437
459
  ?description: String,
438
460
  ?hierarchy_configuration: MetronomeSDK::CommitHierarchyConfiguration,
@@ -448,6 +470,7 @@ module MetronomeSDK
448
470
  ?rollover_fraction: Float,
449
471
  ?salesforce_opportunity_id: String,
450
472
  ?specifiers: ::Array[MetronomeSDK::CommitSpecifier],
473
+ ?spend_tracker_attributes: MetronomeSDK::ContractV2::Commit::SpendTrackerAttributes,
451
474
  ?subscription_config: MetronomeSDK::RecurringCommitSubscriptionConfig
452
475
  ) -> void
453
476
 
@@ -463,6 +486,7 @@ module MetronomeSDK
463
486
  archived_at: Time,
464
487
  balance: Float,
465
488
  contract: MetronomeSDK::ContractV2::Commit::Contract,
489
+ created_by: String,
466
490
  custom_fields: ::Hash[Symbol, String],
467
491
  description: String,
468
492
  hierarchy_configuration: MetronomeSDK::CommitHierarchyConfiguration,
@@ -478,6 +502,7 @@ module MetronomeSDK
478
502
  rollover_fraction: Float,
479
503
  salesforce_opportunity_id: String,
480
504
  specifiers: ::Array[MetronomeSDK::CommitSpecifier],
505
+ spend_tracker_attributes: MetronomeSDK::ContractV2::Commit::SpendTrackerAttributes,
481
506
  subscription_config: MetronomeSDK::RecurringCommitSubscriptionConfig
482
507
  }
483
508
 
@@ -1211,6 +1236,16 @@ module MetronomeSDK
1211
1236
 
1212
1237
  def to_hash: -> { commit_id: String, contract_id: String }
1213
1238
  end
1239
+
1240
+ type spend_tracker_attributes = { counts_as_discounted: bool }
1241
+
1242
+ class SpendTrackerAttributes < MetronomeSDK::Internal::Type::BaseModel
1243
+ attr_accessor counts_as_discounted: bool
1244
+
1245
+ def initialize: (counts_as_discounted: bool) -> void
1246
+
1247
+ def to_hash: -> { counts_as_discounted: bool }
1248
+ end
1214
1249
  end
1215
1250
 
1216
1251
  type override =
@@ -1337,6 +1372,7 @@ module MetronomeSDK
1337
1372
 
1338
1373
  type override_specifier =
1339
1374
  {
1375
+ any_commit_or_credit_ids: ::Array[String],
1340
1376
  billing_frequency: MetronomeSDK::Models::ContractV2::Override::OverrideSpecifier::billing_frequency,
1341
1377
  commit_ids: ::Array[String],
1342
1378
  presentation_group_values: ::Hash[Symbol, String?],
@@ -1347,6 +1383,10 @@ module MetronomeSDK
1347
1383
  }
1348
1384
 
1349
1385
  class OverrideSpecifier < MetronomeSDK::Internal::Type::BaseModel
1386
+ attr_reader any_commit_or_credit_ids: ::Array[String]?
1387
+
1388
+ def any_commit_or_credit_ids=: (::Array[String]) -> ::Array[String]
1389
+
1350
1390
  attr_reader billing_frequency: MetronomeSDK::Models::ContractV2::Override::OverrideSpecifier::billing_frequency?
1351
1391
 
1352
1392
  def billing_frequency=: (
@@ -1382,6 +1422,7 @@ module MetronomeSDK
1382
1422
  def recurring_commit_ids=: (::Array[String]) -> ::Array[String]
1383
1423
 
1384
1424
  def initialize: (
1425
+ ?any_commit_or_credit_ids: ::Array[String],
1385
1426
  ?billing_frequency: MetronomeSDK::Models::ContractV2::Override::OverrideSpecifier::billing_frequency,
1386
1427
  ?commit_ids: ::Array[String],
1387
1428
  ?presentation_group_values: ::Hash[Symbol, String?],
@@ -1392,6 +1433,7 @@ module MetronomeSDK
1392
1433
  ) -> void
1393
1434
 
1394
1435
  def to_hash: -> {
1436
+ any_commit_or_credit_ids: ::Array[String],
1395
1437
  billing_frequency: MetronomeSDK::Models::ContractV2::Override::OverrideSpecifier::billing_frequency,
1396
1438
  commit_ids: ::Array[String],
1397
1439
  presentation_group_values: ::Hash[Symbol, String?],
@@ -1655,6 +1697,7 @@ module MetronomeSDK
1655
1697
  balance: Float,
1656
1698
  contract: MetronomeSDK::ContractV2::Credit::Contract,
1657
1699
  created_at: Time,
1700
+ created_by: String,
1658
1701
  custom_fields: ::Hash[Symbol, String],
1659
1702
  description: String,
1660
1703
  hierarchy_configuration: MetronomeSDK::CommitHierarchyConfiguration,
@@ -1712,6 +1755,10 @@ module MetronomeSDK
1712
1755
 
1713
1756
  def created_at=: (Time) -> Time
1714
1757
 
1758
+ attr_reader created_by: String?
1759
+
1760
+ def created_by=: (String) -> String
1761
+
1715
1762
  attr_reader custom_fields: ::Hash[Symbol, String]?
1716
1763
 
1717
1764
  def custom_fields=: (::Hash[Symbol, String]) -> ::Hash[Symbol, String]
@@ -1782,6 +1829,7 @@ module MetronomeSDK
1782
1829
  ?balance: Float,
1783
1830
  ?contract: MetronomeSDK::ContractV2::Credit::Contract,
1784
1831
  ?created_at: Time,
1832
+ ?created_by: String,
1785
1833
  ?custom_fields: ::Hash[Symbol, String],
1786
1834
  ?description: String,
1787
1835
  ?hierarchy_configuration: MetronomeSDK::CommitHierarchyConfiguration,
@@ -1808,6 +1856,7 @@ module MetronomeSDK
1808
1856
  balance: Float,
1809
1857
  contract: MetronomeSDK::ContractV2::Credit::Contract,
1810
1858
  created_at: Time,
1859
+ created_by: String,
1811
1860
  custom_fields: ::Hash[Symbol, String],
1812
1861
  description: String,
1813
1862
  hierarchy_configuration: MetronomeSDK::CommitHierarchyConfiguration,
@@ -2519,6 +2568,7 @@ module MetronomeSDK
2519
2568
  name: String,
2520
2569
  netsuite_sales_order_id: String,
2521
2570
  proration: MetronomeSDK::Models::ContractV2::RecurringCommit::proration,
2571
+ proration_rounding: MetronomeSDK::ContractV2::RecurringCommit::ProrationRounding?,
2522
2572
  recurrence_frequency: MetronomeSDK::Models::ContractV2::RecurringCommit::recurrence_frequency,
2523
2573
  rollover_fraction: Float,
2524
2574
  specifiers: ::Array[MetronomeSDK::CommitSpecifier],
@@ -2588,6 +2638,8 @@ module MetronomeSDK
2588
2638
  MetronomeSDK::Models::ContractV2::RecurringCommit::proration
2589
2639
  ) -> MetronomeSDK::Models::ContractV2::RecurringCommit::proration
2590
2640
 
2641
+ attr_accessor proration_rounding: MetronomeSDK::ContractV2::RecurringCommit::ProrationRounding?
2642
+
2591
2643
  attr_reader recurrence_frequency: MetronomeSDK::Models::ContractV2::RecurringCommit::recurrence_frequency?
2592
2644
 
2593
2645
  def recurrence_frequency=: (
@@ -2628,6 +2680,7 @@ module MetronomeSDK
2628
2680
  ?name: String,
2629
2681
  ?netsuite_sales_order_id: String,
2630
2682
  ?proration: MetronomeSDK::Models::ContractV2::RecurringCommit::proration,
2683
+ ?proration_rounding: MetronomeSDK::ContractV2::RecurringCommit::ProrationRounding?,
2631
2684
  ?recurrence_frequency: MetronomeSDK::Models::ContractV2::RecurringCommit::recurrence_frequency,
2632
2685
  ?rollover_fraction: Float,
2633
2686
  ?specifiers: ::Array[MetronomeSDK::CommitSpecifier],
@@ -2652,6 +2705,7 @@ module MetronomeSDK
2652
2705
  name: String,
2653
2706
  netsuite_sales_order_id: String,
2654
2707
  proration: MetronomeSDK::Models::ContractV2::RecurringCommit::proration,
2708
+ proration_rounding: MetronomeSDK::ContractV2::RecurringCommit::ProrationRounding?,
2655
2709
  recurrence_frequency: MetronomeSDK::Models::ContractV2::RecurringCommit::recurrence_frequency,
2656
2710
  rollover_fraction: Float,
2657
2711
  specifiers: ::Array[MetronomeSDK::CommitSpecifier],
@@ -2788,7 +2842,106 @@ module MetronomeSDK
2788
2842
  def self?.values: -> ::Array[MetronomeSDK::Models::ContractV2::RecurringCommit::proration]
2789
2843
  end
2790
2844
 
2791
- type recurrence_frequency = :MONTHLY | :QUARTERLY | :ANNUAL | :WEEKLY
2845
+ type proration_rounding =
2846
+ {
2847
+ access: MetronomeSDK::ContractV2::RecurringCommit::ProrationRounding::Access,
2848
+ invoice: MetronomeSDK::ContractV2::RecurringCommit::ProrationRounding::Invoice
2849
+ }
2850
+
2851
+ class ProrationRounding < MetronomeSDK::Internal::Type::BaseModel
2852
+ attr_reader access: MetronomeSDK::ContractV2::RecurringCommit::ProrationRounding::Access?
2853
+
2854
+ def access=: (
2855
+ MetronomeSDK::ContractV2::RecurringCommit::ProrationRounding::Access
2856
+ ) -> MetronomeSDK::ContractV2::RecurringCommit::ProrationRounding::Access
2857
+
2858
+ attr_reader invoice: MetronomeSDK::ContractV2::RecurringCommit::ProrationRounding::Invoice?
2859
+
2860
+ def invoice=: (
2861
+ MetronomeSDK::ContractV2::RecurringCommit::ProrationRounding::Invoice
2862
+ ) -> MetronomeSDK::ContractV2::RecurringCommit::ProrationRounding::Invoice
2863
+
2864
+ def initialize: (
2865
+ ?access: MetronomeSDK::ContractV2::RecurringCommit::ProrationRounding::Access,
2866
+ ?invoice: MetronomeSDK::ContractV2::RecurringCommit::ProrationRounding::Invoice
2867
+ ) -> void
2868
+
2869
+ def to_hash: -> {
2870
+ access: MetronomeSDK::ContractV2::RecurringCommit::ProrationRounding::Access,
2871
+ invoice: MetronomeSDK::ContractV2::RecurringCommit::ProrationRounding::Invoice
2872
+ }
2873
+
2874
+ type access =
2875
+ {
2876
+ decimal_places: Float,
2877
+ rounding_method: MetronomeSDK::Models::ContractV2::RecurringCommit::ProrationRounding::Access::rounding_method
2878
+ }
2879
+
2880
+ class Access < MetronomeSDK::Internal::Type::BaseModel
2881
+ attr_accessor decimal_places: Float
2882
+
2883
+ attr_accessor rounding_method: MetronomeSDK::Models::ContractV2::RecurringCommit::ProrationRounding::Access::rounding_method
2884
+
2885
+ def initialize: (
2886
+ decimal_places: Float,
2887
+ rounding_method: MetronomeSDK::Models::ContractV2::RecurringCommit::ProrationRounding::Access::rounding_method
2888
+ ) -> void
2889
+
2890
+ def to_hash: -> {
2891
+ decimal_places: Float,
2892
+ rounding_method: MetronomeSDK::Models::ContractV2::RecurringCommit::ProrationRounding::Access::rounding_method
2893
+ }
2894
+
2895
+ type rounding_method = :HALF_UP | :FLOOR | :CEILING
2896
+
2897
+ module RoundingMethod
2898
+ extend MetronomeSDK::Internal::Type::Enum
2899
+
2900
+ HALF_UP: :HALF_UP
2901
+ FLOOR: :FLOOR
2902
+ CEILING: :CEILING
2903
+
2904
+ def self?.values: -> ::Array[MetronomeSDK::Models::ContractV2::RecurringCommit::ProrationRounding::Access::rounding_method]
2905
+ end
2906
+ end
2907
+
2908
+ type invoice =
2909
+ {
2910
+ decimal_places: Float,
2911
+ rounding_method: MetronomeSDK::Models::ContractV2::RecurringCommit::ProrationRounding::Invoice::rounding_method
2912
+ }
2913
+
2914
+ class Invoice < MetronomeSDK::Internal::Type::BaseModel
2915
+ attr_accessor decimal_places: Float
2916
+
2917
+ attr_accessor rounding_method: MetronomeSDK::Models::ContractV2::RecurringCommit::ProrationRounding::Invoice::rounding_method
2918
+
2919
+ def initialize: (
2920
+ decimal_places: Float,
2921
+ rounding_method: MetronomeSDK::Models::ContractV2::RecurringCommit::ProrationRounding::Invoice::rounding_method
2922
+ ) -> void
2923
+
2924
+ def to_hash: -> {
2925
+ decimal_places: Float,
2926
+ rounding_method: MetronomeSDK::Models::ContractV2::RecurringCommit::ProrationRounding::Invoice::rounding_method
2927
+ }
2928
+
2929
+ type rounding_method = :HALF_UP | :FLOOR | :CEILING
2930
+
2931
+ module RoundingMethod
2932
+ extend MetronomeSDK::Internal::Type::Enum
2933
+
2934
+ HALF_UP: :HALF_UP
2935
+ FLOOR: :FLOOR
2936
+ CEILING: :CEILING
2937
+
2938
+ def self?.values: -> ::Array[MetronomeSDK::Models::ContractV2::RecurringCommit::ProrationRounding::Invoice::rounding_method]
2939
+ end
2940
+ end
2941
+ end
2942
+
2943
+ type recurrence_frequency =
2944
+ :MONTHLY | :QUARTERLY | :ANNUAL | :WEEKLY | :DAILY
2792
2945
 
2793
2946
  module RecurrenceFrequency
2794
2947
  extend MetronomeSDK::Internal::Type::Enum
@@ -2797,6 +2950,7 @@ module MetronomeSDK
2797
2950
  QUARTERLY: :QUARTERLY
2798
2951
  ANNUAL: :ANNUAL
2799
2952
  WEEKLY: :WEEKLY
2953
+ DAILY: :DAILY
2800
2954
 
2801
2955
  def self?.values: -> ::Array[MetronomeSDK::Models::ContractV2::RecurringCommit::recurrence_frequency]
2802
2956
  end
@@ -2820,6 +2974,7 @@ module MetronomeSDK
2820
2974
  name: String,
2821
2975
  netsuite_sales_order_id: String,
2822
2976
  proration: MetronomeSDK::Models::ContractV2::RecurringCredit::proration,
2977
+ proration_rounding: MetronomeSDK::ContractV2::RecurringCredit::ProrationRounding?,
2823
2978
  recurrence_frequency: MetronomeSDK::Models::ContractV2::RecurringCredit::recurrence_frequency,
2824
2979
  rollover_fraction: Float,
2825
2980
  specifiers: ::Array[MetronomeSDK::CommitSpecifier],
@@ -2883,6 +3038,8 @@ module MetronomeSDK
2883
3038
  MetronomeSDK::Models::ContractV2::RecurringCredit::proration
2884
3039
  ) -> MetronomeSDK::Models::ContractV2::RecurringCredit::proration
2885
3040
 
3041
+ attr_accessor proration_rounding: MetronomeSDK::ContractV2::RecurringCredit::ProrationRounding?
3042
+
2886
3043
  attr_reader recurrence_frequency: MetronomeSDK::Models::ContractV2::RecurringCredit::recurrence_frequency?
2887
3044
 
2888
3045
  def recurrence_frequency=: (
@@ -2922,6 +3079,7 @@ module MetronomeSDK
2922
3079
  ?name: String,
2923
3080
  ?netsuite_sales_order_id: String,
2924
3081
  ?proration: MetronomeSDK::Models::ContractV2::RecurringCredit::proration,
3082
+ ?proration_rounding: MetronomeSDK::ContractV2::RecurringCredit::ProrationRounding?,
2925
3083
  ?recurrence_frequency: MetronomeSDK::Models::ContractV2::RecurringCredit::recurrence_frequency,
2926
3084
  ?rollover_fraction: Float,
2927
3085
  ?specifiers: ::Array[MetronomeSDK::CommitSpecifier],
@@ -2945,6 +3103,7 @@ module MetronomeSDK
2945
3103
  name: String,
2946
3104
  netsuite_sales_order_id: String,
2947
3105
  proration: MetronomeSDK::Models::ContractV2::RecurringCredit::proration,
3106
+ proration_rounding: MetronomeSDK::ContractV2::RecurringCredit::ProrationRounding?,
2948
3107
  recurrence_frequency: MetronomeSDK::Models::ContractV2::RecurringCredit::recurrence_frequency,
2949
3108
  rollover_fraction: Float,
2950
3109
  specifiers: ::Array[MetronomeSDK::CommitSpecifier],
@@ -3058,7 +3217,63 @@ module MetronomeSDK
3058
3217
  def self?.values: -> ::Array[MetronomeSDK::Models::ContractV2::RecurringCredit::proration]
3059
3218
  end
3060
3219
 
3061
- type recurrence_frequency = :MONTHLY | :QUARTERLY | :ANNUAL | :WEEKLY
3220
+ type proration_rounding =
3221
+ {
3222
+ access: MetronomeSDK::ContractV2::RecurringCredit::ProrationRounding::Access
3223
+ }
3224
+
3225
+ class ProrationRounding < MetronomeSDK::Internal::Type::BaseModel
3226
+ attr_reader access: MetronomeSDK::ContractV2::RecurringCredit::ProrationRounding::Access?
3227
+
3228
+ def access=: (
3229
+ MetronomeSDK::ContractV2::RecurringCredit::ProrationRounding::Access
3230
+ ) -> MetronomeSDK::ContractV2::RecurringCredit::ProrationRounding::Access
3231
+
3232
+ def initialize: (
3233
+ ?access: MetronomeSDK::ContractV2::RecurringCredit::ProrationRounding::Access
3234
+ ) -> void
3235
+
3236
+ def to_hash: -> {
3237
+ access: MetronomeSDK::ContractV2::RecurringCredit::ProrationRounding::Access
3238
+ }
3239
+
3240
+ type access =
3241
+ {
3242
+ decimal_places: Float,
3243
+ rounding_method: MetronomeSDK::Models::ContractV2::RecurringCredit::ProrationRounding::Access::rounding_method
3244
+ }
3245
+
3246
+ class Access < MetronomeSDK::Internal::Type::BaseModel
3247
+ attr_accessor decimal_places: Float
3248
+
3249
+ attr_accessor rounding_method: MetronomeSDK::Models::ContractV2::RecurringCredit::ProrationRounding::Access::rounding_method
3250
+
3251
+ def initialize: (
3252
+ decimal_places: Float,
3253
+ rounding_method: MetronomeSDK::Models::ContractV2::RecurringCredit::ProrationRounding::Access::rounding_method
3254
+ ) -> void
3255
+
3256
+ def to_hash: -> {
3257
+ decimal_places: Float,
3258
+ rounding_method: MetronomeSDK::Models::ContractV2::RecurringCredit::ProrationRounding::Access::rounding_method
3259
+ }
3260
+
3261
+ type rounding_method = :HALF_UP | :FLOOR | :CEILING
3262
+
3263
+ module RoundingMethod
3264
+ extend MetronomeSDK::Internal::Type::Enum
3265
+
3266
+ HALF_UP: :HALF_UP
3267
+ FLOOR: :FLOOR
3268
+ CEILING: :CEILING
3269
+
3270
+ def self?.values: -> ::Array[MetronomeSDK::Models::ContractV2::RecurringCredit::ProrationRounding::Access::rounding_method]
3271
+ end
3272
+ end
3273
+ end
3274
+
3275
+ type recurrence_frequency =
3276
+ :MONTHLY | :QUARTERLY | :ANNUAL | :WEEKLY | :DAILY
3062
3277
 
3063
3278
  module RecurrenceFrequency
3064
3279
  extend MetronomeSDK::Internal::Type::Enum
@@ -3067,6 +3282,7 @@ module MetronomeSDK
3067
3282
  QUARTERLY: :QUARTERLY
3068
3283
  ANNUAL: :ANNUAL
3069
3284
  WEEKLY: :WEEKLY
3285
+ DAILY: :DAILY
3070
3286
 
3071
3287
  def self?.values: -> ::Array[MetronomeSDK::Models::ContractV2::RecurringCredit::recurrence_frequency]
3072
3288
  end
@@ -3225,6 +3441,148 @@ module MetronomeSDK
3225
3441
  def self?.values: -> ::Array[MetronomeSDK::Models::ContractV2::scheduled_charges_on_usage_invoices]
3226
3442
  end
3227
3443
 
3444
+ type spend_tracker =
3445
+ {
3446
+ alias_: String,
3447
+ applicable_spend_specifiers: ::Array[MetronomeSDK::ContractV2::SpendTracker::ApplicableSpendSpecifier],
3448
+ credit_type_id: String,
3449
+ reset_frequency: MetronomeSDK::Models::ContractV2::SpendTracker::reset_frequency,
3450
+ accumulated_spend: MetronomeSDK::ContractV2::SpendTracker::AccumulatedSpend
3451
+ }
3452
+
3453
+ class SpendTracker < MetronomeSDK::Internal::Type::BaseModel
3454
+ attr_accessor alias_: String
3455
+
3456
+ attr_accessor applicable_spend_specifiers: ::Array[MetronomeSDK::ContractV2::SpendTracker::ApplicableSpendSpecifier]
3457
+
3458
+ attr_accessor credit_type_id: String
3459
+
3460
+ attr_accessor reset_frequency: MetronomeSDK::Models::ContractV2::SpendTracker::reset_frequency
3461
+
3462
+ attr_reader accumulated_spend: MetronomeSDK::ContractV2::SpendTracker::AccumulatedSpend?
3463
+
3464
+ def accumulated_spend=: (
3465
+ MetronomeSDK::ContractV2::SpendTracker::AccumulatedSpend
3466
+ ) -> MetronomeSDK::ContractV2::SpendTracker::AccumulatedSpend
3467
+
3468
+ def initialize: (
3469
+ alias_: String,
3470
+ applicable_spend_specifiers: ::Array[MetronomeSDK::ContractV2::SpendTracker::ApplicableSpendSpecifier],
3471
+ credit_type_id: String,
3472
+ reset_frequency: MetronomeSDK::Models::ContractV2::SpendTracker::reset_frequency,
3473
+ ?accumulated_spend: MetronomeSDK::ContractV2::SpendTracker::AccumulatedSpend
3474
+ ) -> void
3475
+
3476
+ def to_hash: -> {
3477
+ alias_: String,
3478
+ applicable_spend_specifiers: ::Array[MetronomeSDK::ContractV2::SpendTracker::ApplicableSpendSpecifier],
3479
+ credit_type_id: String,
3480
+ reset_frequency: MetronomeSDK::Models::ContractV2::SpendTracker::reset_frequency,
3481
+ accumulated_spend: MetronomeSDK::ContractV2::SpendTracker::AccumulatedSpend
3482
+ }
3483
+
3484
+ type applicable_spend_specifier =
3485
+ {
3486
+ sources: ::Array[MetronomeSDK::Models::ContractV2::SpendTracker::ApplicableSpendSpecifier::source],
3487
+ spend_type: MetronomeSDK::Models::ContractV2::SpendTracker::ApplicableSpendSpecifier::spend_type,
3488
+ discounted: MetronomeSDK::Models::ContractV2::SpendTracker::ApplicableSpendSpecifier::discounted
3489
+ }
3490
+
3491
+ class ApplicableSpendSpecifier < MetronomeSDK::Internal::Type::BaseModel
3492
+ attr_accessor sources: ::Array[MetronomeSDK::Models::ContractV2::SpendTracker::ApplicableSpendSpecifier::source]
3493
+
3494
+ attr_accessor spend_type: MetronomeSDK::Models::ContractV2::SpendTracker::ApplicableSpendSpecifier::spend_type
3495
+
3496
+ attr_reader discounted: MetronomeSDK::Models::ContractV2::SpendTracker::ApplicableSpendSpecifier::discounted?
3497
+
3498
+ def discounted=: (
3499
+ MetronomeSDK::Models::ContractV2::SpendTracker::ApplicableSpendSpecifier::discounted
3500
+ ) -> MetronomeSDK::Models::ContractV2::SpendTracker::ApplicableSpendSpecifier::discounted
3501
+
3502
+ def initialize: (
3503
+ sources: ::Array[MetronomeSDK::Models::ContractV2::SpendTracker::ApplicableSpendSpecifier::source],
3504
+ spend_type: MetronomeSDK::Models::ContractV2::SpendTracker::ApplicableSpendSpecifier::spend_type,
3505
+ ?discounted: MetronomeSDK::Models::ContractV2::SpendTracker::ApplicableSpendSpecifier::discounted
3506
+ ) -> void
3507
+
3508
+ def to_hash: -> {
3509
+ sources: ::Array[MetronomeSDK::Models::ContractV2::SpendTracker::ApplicableSpendSpecifier::source],
3510
+ spend_type: MetronomeSDK::Models::ContractV2::SpendTracker::ApplicableSpendSpecifier::spend_type,
3511
+ discounted: MetronomeSDK::Models::ContractV2::SpendTracker::ApplicableSpendSpecifier::discounted
3512
+ }
3513
+
3514
+ type source = :THRESHOLD_RECHARGE | :MANUAL
3515
+
3516
+ module Source
3517
+ extend MetronomeSDK::Internal::Type::Enum
3518
+
3519
+ THRESHOLD_RECHARGE: :THRESHOLD_RECHARGE
3520
+ MANUAL: :MANUAL
3521
+
3522
+ def self?.values: -> ::Array[MetronomeSDK::Models::ContractV2::SpendTracker::ApplicableSpendSpecifier::source]
3523
+ end
3524
+
3525
+ type spend_type = :COMMIT_PURCHASE
3526
+
3527
+ module SpendType
3528
+ extend MetronomeSDK::Internal::Type::Enum
3529
+
3530
+ COMMIT_PURCHASE: :COMMIT_PURCHASE
3531
+
3532
+ def self?.values: -> ::Array[MetronomeSDK::Models::ContractV2::SpendTracker::ApplicableSpendSpecifier::spend_type]
3533
+ end
3534
+
3535
+ type discounted = :ANY | :DISCOUNTED_ONLY | :UNDISCOUNTED_ONLY
3536
+
3537
+ module Discounted
3538
+ extend MetronomeSDK::Internal::Type::Enum
3539
+
3540
+ ANY: :ANY
3541
+ DISCOUNTED_ONLY: :DISCOUNTED_ONLY
3542
+ UNDISCOUNTED_ONLY: :UNDISCOUNTED_ONLY
3543
+
3544
+ def self?.values: -> ::Array[MetronomeSDK::Models::ContractV2::SpendTracker::ApplicableSpendSpecifier::discounted]
3545
+ end
3546
+ end
3547
+
3548
+ type reset_frequency = :BILLING_PERIOD
3549
+
3550
+ module ResetFrequency
3551
+ extend MetronomeSDK::Internal::Type::Enum
3552
+
3553
+ BILLING_PERIOD: :BILLING_PERIOD
3554
+
3555
+ def self?.values: -> ::Array[MetronomeSDK::Models::ContractV2::SpendTracker::reset_frequency]
3556
+ end
3557
+
3558
+ type accumulated_spend =
3559
+ {
3560
+ amount: Float,
3561
+ period_ending_before: Time,
3562
+ period_starting_at: Time
3563
+ }
3564
+
3565
+ class AccumulatedSpend < MetronomeSDK::Internal::Type::BaseModel
3566
+ attr_accessor amount: Float
3567
+
3568
+ attr_accessor period_ending_before: Time
3569
+
3570
+ attr_accessor period_starting_at: Time
3571
+
3572
+ def initialize: (
3573
+ amount: Float,
3574
+ period_ending_before: Time,
3575
+ period_starting_at: Time
3576
+ ) -> void
3577
+
3578
+ def to_hash: -> {
3579
+ amount: Float,
3580
+ period_ending_before: Time,
3581
+ period_starting_at: Time
3582
+ }
3583
+ end
3584
+ end
3585
+
3228
3586
  type subscription =
3229
3587
  {
3230
3588
  billing_periods: MetronomeSDK::ContractV2::Subscription::BillingPeriods,
@@ -3235,6 +3593,7 @@ module MetronomeSDK
3235
3593
  starting_at: Time,
3236
3594
  subscription_rate: MetronomeSDK::ContractV2::Subscription::SubscriptionRate,
3237
3595
  id: String,
3596
+ billing_cycle_config: MetronomeSDK::ContractV2::Subscription::BillingCycleConfig,
3238
3597
  custom_fields: ::Hash[Symbol, String],
3239
3598
  description: String,
3240
3599
  ending_before: Time,
@@ -3262,6 +3621,12 @@ module MetronomeSDK
3262
3621
 
3263
3622
  def id=: (String) -> String
3264
3623
 
3624
+ attr_reader billing_cycle_config: MetronomeSDK::ContractV2::Subscription::BillingCycleConfig?
3625
+
3626
+ def billing_cycle_config=: (
3627
+ MetronomeSDK::ContractV2::Subscription::BillingCycleConfig
3628
+ ) -> MetronomeSDK::ContractV2::Subscription::BillingCycleConfig
3629
+
3265
3630
  attr_reader custom_fields: ::Hash[Symbol, String]?
3266
3631
 
3267
3632
  def custom_fields=: (::Hash[Symbol, String]) -> ::Hash[Symbol, String]
@@ -3297,6 +3662,7 @@ module MetronomeSDK
3297
3662
  starting_at: Time,
3298
3663
  subscription_rate: MetronomeSDK::ContractV2::Subscription::SubscriptionRate,
3299
3664
  ?id: String,
3665
+ ?billing_cycle_config: MetronomeSDK::ContractV2::Subscription::BillingCycleConfig,
3300
3666
  ?custom_fields: ::Hash[Symbol, String],
3301
3667
  ?description: String,
3302
3668
  ?ending_before: Time,
@@ -3314,6 +3680,7 @@ module MetronomeSDK
3314
3680
  starting_at: Time,
3315
3681
  subscription_rate: MetronomeSDK::ContractV2::Subscription::SubscriptionRate,
3316
3682
  id: String,
3683
+ billing_cycle_config: MetronomeSDK::ContractV2::Subscription::BillingCycleConfig,
3317
3684
  custom_fields: ::Hash[Symbol, String],
3318
3685
  description: String,
3319
3686
  ending_before: Time,
@@ -3411,7 +3778,8 @@ module MetronomeSDK
3411
3778
  type proration =
3412
3779
  {
3413
3780
  invoice_behavior: MetronomeSDK::Models::ContractV2::Subscription::Proration::invoice_behavior,
3414
- is_prorated: bool
3781
+ is_prorated: bool,
3782
+ rounding: MetronomeSDK::ContractV2::Subscription::Proration::Rounding
3415
3783
  }
3416
3784
 
3417
3785
  class Proration < MetronomeSDK::Internal::Type::BaseModel
@@ -3419,14 +3787,22 @@ module MetronomeSDK
3419
3787
 
3420
3788
  attr_accessor is_prorated: bool
3421
3789
 
3790
+ attr_reader rounding: MetronomeSDK::ContractV2::Subscription::Proration::Rounding?
3791
+
3792
+ def rounding=: (
3793
+ MetronomeSDK::ContractV2::Subscription::Proration::Rounding
3794
+ ) -> MetronomeSDK::ContractV2::Subscription::Proration::Rounding
3795
+
3422
3796
  def initialize: (
3423
3797
  invoice_behavior: MetronomeSDK::Models::ContractV2::Subscription::Proration::invoice_behavior,
3424
- is_prorated: bool
3798
+ is_prorated: bool,
3799
+ ?rounding: MetronomeSDK::ContractV2::Subscription::Proration::Rounding
3425
3800
  ) -> void
3426
3801
 
3427
3802
  def to_hash: -> {
3428
3803
  invoice_behavior: MetronomeSDK::Models::ContractV2::Subscription::Proration::invoice_behavior,
3429
- is_prorated: bool
3804
+ is_prorated: bool,
3805
+ rounding: MetronomeSDK::ContractV2::Subscription::Proration::Rounding
3430
3806
  }
3431
3807
 
3432
3808
  type invoice_behavior =
@@ -3440,6 +3816,40 @@ module MetronomeSDK
3440
3816
 
3441
3817
  def self?.values: -> ::Array[MetronomeSDK::Models::ContractV2::Subscription::Proration::invoice_behavior]
3442
3818
  end
3819
+
3820
+ type rounding =
3821
+ {
3822
+ decimal_places: Float,
3823
+ rounding_method: MetronomeSDK::Models::ContractV2::Subscription::Proration::Rounding::rounding_method
3824
+ }
3825
+
3826
+ class Rounding < MetronomeSDK::Internal::Type::BaseModel
3827
+ attr_accessor decimal_places: Float
3828
+
3829
+ attr_accessor rounding_method: MetronomeSDK::Models::ContractV2::Subscription::Proration::Rounding::rounding_method
3830
+
3831
+ def initialize: (
3832
+ decimal_places: Float,
3833
+ rounding_method: MetronomeSDK::Models::ContractV2::Subscription::Proration::Rounding::rounding_method
3834
+ ) -> void
3835
+
3836
+ def to_hash: -> {
3837
+ decimal_places: Float,
3838
+ rounding_method: MetronomeSDK::Models::ContractV2::Subscription::Proration::Rounding::rounding_method
3839
+ }
3840
+
3841
+ type rounding_method = :HALF_UP | :FLOOR | :CEILING
3842
+
3843
+ module RoundingMethod
3844
+ extend MetronomeSDK::Internal::Type::Enum
3845
+
3846
+ HALF_UP: :HALF_UP
3847
+ FLOOR: :FLOOR
3848
+ CEILING: :CEILING
3849
+
3850
+ def self?.values: -> ::Array[MetronomeSDK::Models::ContractV2::Subscription::Proration::Rounding::rounding_method]
3851
+ end
3852
+ end
3443
3853
  end
3444
3854
 
3445
3855
  type quantity_management_mode = :SEAT_BASED | :QUANTITY_ONLY
@@ -3525,6 +3935,39 @@ module MetronomeSDK
3525
3935
  end
3526
3936
  end
3527
3937
 
3938
+ type billing_cycle_config =
3939
+ {
3940
+ anchor_date: Time,
3941
+ invoice_placement: MetronomeSDK::Models::ContractV2::Subscription::BillingCycleConfig::invoice_placement
3942
+ }
3943
+
3944
+ class BillingCycleConfig < MetronomeSDK::Internal::Type::BaseModel
3945
+ attr_accessor anchor_date: Time
3946
+
3947
+ attr_accessor invoice_placement: MetronomeSDK::Models::ContractV2::Subscription::BillingCycleConfig::invoice_placement
3948
+
3949
+ def initialize: (
3950
+ anchor_date: Time,
3951
+ invoice_placement: MetronomeSDK::Models::ContractV2::Subscription::BillingCycleConfig::invoice_placement
3952
+ ) -> void
3953
+
3954
+ def to_hash: -> {
3955
+ anchor_date: Time,
3956
+ invoice_placement: MetronomeSDK::Models::ContractV2::Subscription::BillingCycleConfig::invoice_placement
3957
+ }
3958
+
3959
+ type invoice_placement = :ON_SCHEDULED_INVOICE | :ON_USAGE_INVOICE
3960
+
3961
+ module InvoicePlacement
3962
+ extend MetronomeSDK::Internal::Type::Enum
3963
+
3964
+ ON_SCHEDULED_INVOICE: :ON_SCHEDULED_INVOICE
3965
+ ON_USAGE_INVOICE: :ON_USAGE_INVOICE
3966
+
3967
+ def self?.values: -> ::Array[MetronomeSDK::Models::ContractV2::Subscription::BillingCycleConfig::invoice_placement]
3968
+ end
3969
+ end
3970
+
3528
3971
  type seat_config = { seat_group_key: String }
3529
3972
 
3530
3973
  class SeatConfig < MetronomeSDK::Internal::Type::BaseModel