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
@@ -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
@@ -1543,6 +1573,14 @@ module MetronomeSDK
1543
1573
  )
1544
1574
  end
1545
1575
 
1576
+ sig { returns(T.nilable(T::Array[String])) }
1577
+ attr_reader :any_commit_or_credit_template_ids
1578
+
1579
+ sig do
1580
+ params(any_commit_or_credit_template_ids: T::Array[String]).void
1581
+ end
1582
+ attr_writer :any_commit_or_credit_template_ids
1583
+
1546
1584
  sig do
1547
1585
  returns(
1548
1586
  T.nilable(
@@ -1602,6 +1640,7 @@ module MetronomeSDK
1602
1640
 
1603
1641
  sig do
1604
1642
  params(
1643
+ any_commit_or_credit_template_ids: T::Array[String],
1605
1644
  billing_frequency:
1606
1645
  MetronomeSDK::Models::V1::PackageListResponse::Override::OverrideSpecifier::BillingFrequency::OrSymbol,
1607
1646
  commit_template_ids: T::Array[String],
@@ -1613,6 +1652,7 @@ module MetronomeSDK
1613
1652
  ).returns(T.attached_class)
1614
1653
  end
1615
1654
  def self.new(
1655
+ any_commit_or_credit_template_ids: nil,
1616
1656
  billing_frequency: nil,
1617
1657
  commit_template_ids: nil,
1618
1658
  presentation_group_values: nil,
@@ -1626,6 +1666,7 @@ module MetronomeSDK
1626
1666
  sig do
1627
1667
  override.returns(
1628
1668
  {
1669
+ any_commit_or_credit_template_ids: T::Array[String],
1629
1670
  billing_frequency:
1630
1671
  MetronomeSDK::Models::V1::PackageListResponse::Override::OverrideSpecifier::BillingFrequency::TaggedSymbol,
1631
1672
  commit_template_ids: T::Array[String],
@@ -3394,6 +3435,26 @@ module MetronomeSDK
3394
3435
  end
3395
3436
  attr_writer :proration
3396
3437
 
3438
+ # Rounding configuration for prorated recurring commit amounts.
3439
+ sig do
3440
+ returns(
3441
+ T.nilable(
3442
+ MetronomeSDK::Models::V1::PackageListResponse::RecurringCommit::ProrationRounding
3443
+ )
3444
+ )
3445
+ end
3446
+ attr_reader :proration_rounding
3447
+
3448
+ sig do
3449
+ params(
3450
+ proration_rounding:
3451
+ T.nilable(
3452
+ MetronomeSDK::Models::V1::PackageListResponse::RecurringCommit::ProrationRounding::OrHash
3453
+ )
3454
+ ).void
3455
+ end
3456
+ attr_writer :proration_rounding
3457
+
3397
3458
  # The frequency at which the recurring commits will be created. If not provided: -
3398
3459
  # The commits will be created on the usage invoice frequency. If provided: - The
3399
3460
  # period defined in the duration will correspond to this frequency. - Commits will
@@ -3480,6 +3541,10 @@ module MetronomeSDK
3480
3541
  name: String,
3481
3542
  proration:
3482
3543
  MetronomeSDK::Models::V1::PackageListResponse::RecurringCommit::Proration::OrSymbol,
3544
+ proration_rounding:
3545
+ T.nilable(
3546
+ MetronomeSDK::Models::V1::PackageListResponse::RecurringCommit::ProrationRounding::OrHash
3547
+ ),
3483
3548
  recurrence_frequency:
3484
3549
  MetronomeSDK::Models::V1::PackageListResponse::RecurringCommit::RecurrenceFrequency::OrSymbol,
3485
3550
  rollover_fraction: Float,
@@ -3515,6 +3580,8 @@ module MetronomeSDK
3515
3580
  # Determines whether the first and last commit will be prorated. If not provided,
3516
3581
  # the default is FIRST_AND_LAST (i.e. prorate both the first and last commits).
3517
3582
  proration: nil,
3583
+ # Rounding configuration for prorated recurring commit amounts.
3584
+ proration_rounding: nil,
3518
3585
  # The frequency at which the recurring commits will be created. If not provided: -
3519
3586
  # The commits will be created on the usage invoice frequency. If provided: - The
3520
3587
  # period defined in the duration will correspond to this frequency. - Commits will
@@ -3559,6 +3626,10 @@ module MetronomeSDK
3559
3626
  name: String,
3560
3627
  proration:
3561
3628
  MetronomeSDK::Models::V1::PackageListResponse::RecurringCommit::Proration::TaggedSymbol,
3629
+ proration_rounding:
3630
+ T.nilable(
3631
+ MetronomeSDK::Models::V1::PackageListResponse::RecurringCommit::ProrationRounding
3632
+ ),
3562
3633
  recurrence_frequency:
3563
3634
  MetronomeSDK::Models::V1::PackageListResponse::RecurringCommit::RecurrenceFrequency::TaggedSymbol,
3564
3635
  rollover_fraction: Float,
@@ -4013,6 +4084,259 @@ module MetronomeSDK
4013
4084
  end
4014
4085
  end
4015
4086
 
4087
+ class ProrationRounding < MetronomeSDK::Internal::Type::BaseModel
4088
+ OrHash =
4089
+ T.type_alias do
4090
+ T.any(
4091
+ MetronomeSDK::Models::V1::PackageListResponse::RecurringCommit::ProrationRounding,
4092
+ MetronomeSDK::Internal::AnyHash
4093
+ )
4094
+ end
4095
+
4096
+ sig do
4097
+ returns(
4098
+ T.nilable(
4099
+ MetronomeSDK::Models::V1::PackageListResponse::RecurringCommit::ProrationRounding::Access
4100
+ )
4101
+ )
4102
+ end
4103
+ attr_reader :access
4104
+
4105
+ sig do
4106
+ params(
4107
+ access:
4108
+ MetronomeSDK::Models::V1::PackageListResponse::RecurringCommit::ProrationRounding::Access::OrHash
4109
+ ).void
4110
+ end
4111
+ attr_writer :access
4112
+
4113
+ sig do
4114
+ returns(
4115
+ T.nilable(
4116
+ MetronomeSDK::Models::V1::PackageListResponse::RecurringCommit::ProrationRounding::Invoice
4117
+ )
4118
+ )
4119
+ end
4120
+ attr_reader :invoice
4121
+
4122
+ sig do
4123
+ params(
4124
+ invoice:
4125
+ MetronomeSDK::Models::V1::PackageListResponse::RecurringCommit::ProrationRounding::Invoice::OrHash
4126
+ ).void
4127
+ end
4128
+ attr_writer :invoice
4129
+
4130
+ # Rounding configuration for prorated recurring commit amounts.
4131
+ sig do
4132
+ params(
4133
+ access:
4134
+ MetronomeSDK::Models::V1::PackageListResponse::RecurringCommit::ProrationRounding::Access::OrHash,
4135
+ invoice:
4136
+ MetronomeSDK::Models::V1::PackageListResponse::RecurringCommit::ProrationRounding::Invoice::OrHash
4137
+ ).returns(T.attached_class)
4138
+ end
4139
+ def self.new(access: nil, invoice: nil)
4140
+ end
4141
+
4142
+ sig do
4143
+ override.returns(
4144
+ {
4145
+ access:
4146
+ MetronomeSDK::Models::V1::PackageListResponse::RecurringCommit::ProrationRounding::Access,
4147
+ invoice:
4148
+ MetronomeSDK::Models::V1::PackageListResponse::RecurringCommit::ProrationRounding::Invoice
4149
+ }
4150
+ )
4151
+ end
4152
+ def to_hash
4153
+ end
4154
+
4155
+ class Access < MetronomeSDK::Internal::Type::BaseModel
4156
+ OrHash =
4157
+ T.type_alias do
4158
+ T.any(
4159
+ MetronomeSDK::Models::V1::PackageListResponse::RecurringCommit::ProrationRounding::Access,
4160
+ MetronomeSDK::Internal::AnyHash
4161
+ )
4162
+ end
4163
+
4164
+ # Number of decimal places to round to. Applied directly to the stored monetary
4165
+ # representation. Negative values round to powers of 10 (e.g., -2 rounds to
4166
+ # nearest 100 in the stored unit. For USD, this means rounding to the nearest
4167
+ # dollar).
4168
+ sig { returns(Float) }
4169
+ attr_accessor :decimal_places
4170
+
4171
+ sig do
4172
+ returns(
4173
+ MetronomeSDK::Models::V1::PackageListResponse::RecurringCommit::ProrationRounding::Access::RoundingMethod::TaggedSymbol
4174
+ )
4175
+ end
4176
+ attr_accessor :rounding_method
4177
+
4178
+ sig do
4179
+ params(
4180
+ decimal_places: Float,
4181
+ rounding_method:
4182
+ MetronomeSDK::Models::V1::PackageListResponse::RecurringCommit::ProrationRounding::Access::RoundingMethod::OrSymbol
4183
+ ).returns(T.attached_class)
4184
+ end
4185
+ def self.new(
4186
+ # Number of decimal places to round to. Applied directly to the stored monetary
4187
+ # representation. Negative values round to powers of 10 (e.g., -2 rounds to
4188
+ # nearest 100 in the stored unit. For USD, this means rounding to the nearest
4189
+ # dollar).
4190
+ decimal_places:,
4191
+ rounding_method:
4192
+ )
4193
+ end
4194
+
4195
+ sig do
4196
+ override.returns(
4197
+ {
4198
+ decimal_places: Float,
4199
+ rounding_method:
4200
+ MetronomeSDK::Models::V1::PackageListResponse::RecurringCommit::ProrationRounding::Access::RoundingMethod::TaggedSymbol
4201
+ }
4202
+ )
4203
+ end
4204
+ def to_hash
4205
+ end
4206
+
4207
+ module RoundingMethod
4208
+ extend MetronomeSDK::Internal::Type::Enum
4209
+
4210
+ TaggedSymbol =
4211
+ T.type_alias do
4212
+ T.all(
4213
+ Symbol,
4214
+ MetronomeSDK::Models::V1::PackageListResponse::RecurringCommit::ProrationRounding::Access::RoundingMethod
4215
+ )
4216
+ end
4217
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
4218
+
4219
+ HALF_UP =
4220
+ T.let(
4221
+ :HALF_UP,
4222
+ MetronomeSDK::Models::V1::PackageListResponse::RecurringCommit::ProrationRounding::Access::RoundingMethod::TaggedSymbol
4223
+ )
4224
+ FLOOR =
4225
+ T.let(
4226
+ :FLOOR,
4227
+ MetronomeSDK::Models::V1::PackageListResponse::RecurringCommit::ProrationRounding::Access::RoundingMethod::TaggedSymbol
4228
+ )
4229
+ CEILING =
4230
+ T.let(
4231
+ :CEILING,
4232
+ MetronomeSDK::Models::V1::PackageListResponse::RecurringCommit::ProrationRounding::Access::RoundingMethod::TaggedSymbol
4233
+ )
4234
+
4235
+ sig do
4236
+ override.returns(
4237
+ T::Array[
4238
+ MetronomeSDK::Models::V1::PackageListResponse::RecurringCommit::ProrationRounding::Access::RoundingMethod::TaggedSymbol
4239
+ ]
4240
+ )
4241
+ end
4242
+ def self.values
4243
+ end
4244
+ end
4245
+ end
4246
+
4247
+ class Invoice < MetronomeSDK::Internal::Type::BaseModel
4248
+ OrHash =
4249
+ T.type_alias do
4250
+ T.any(
4251
+ MetronomeSDK::Models::V1::PackageListResponse::RecurringCommit::ProrationRounding::Invoice,
4252
+ MetronomeSDK::Internal::AnyHash
4253
+ )
4254
+ end
4255
+
4256
+ # Number of decimal places to round to. Applied directly to the stored monetary
4257
+ # representation. Negative values round to powers of 10 (e.g., -2 rounds to
4258
+ # nearest 100 in the stored unit. For USD, this means rounding to the nearest
4259
+ # dollar).
4260
+ sig { returns(Float) }
4261
+ attr_accessor :decimal_places
4262
+
4263
+ sig do
4264
+ returns(
4265
+ MetronomeSDK::Models::V1::PackageListResponse::RecurringCommit::ProrationRounding::Invoice::RoundingMethod::TaggedSymbol
4266
+ )
4267
+ end
4268
+ attr_accessor :rounding_method
4269
+
4270
+ sig do
4271
+ params(
4272
+ decimal_places: Float,
4273
+ rounding_method:
4274
+ MetronomeSDK::Models::V1::PackageListResponse::RecurringCommit::ProrationRounding::Invoice::RoundingMethod::OrSymbol
4275
+ ).returns(T.attached_class)
4276
+ end
4277
+ def self.new(
4278
+ # Number of decimal places to round to. Applied directly to the stored monetary
4279
+ # representation. Negative values round to powers of 10 (e.g., -2 rounds to
4280
+ # nearest 100 in the stored unit. For USD, this means rounding to the nearest
4281
+ # dollar).
4282
+ decimal_places:,
4283
+ rounding_method:
4284
+ )
4285
+ end
4286
+
4287
+ sig do
4288
+ override.returns(
4289
+ {
4290
+ decimal_places: Float,
4291
+ rounding_method:
4292
+ MetronomeSDK::Models::V1::PackageListResponse::RecurringCommit::ProrationRounding::Invoice::RoundingMethod::TaggedSymbol
4293
+ }
4294
+ )
4295
+ end
4296
+ def to_hash
4297
+ end
4298
+
4299
+ module RoundingMethod
4300
+ extend MetronomeSDK::Internal::Type::Enum
4301
+
4302
+ TaggedSymbol =
4303
+ T.type_alias do
4304
+ T.all(
4305
+ Symbol,
4306
+ MetronomeSDK::Models::V1::PackageListResponse::RecurringCommit::ProrationRounding::Invoice::RoundingMethod
4307
+ )
4308
+ end
4309
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
4310
+
4311
+ HALF_UP =
4312
+ T.let(
4313
+ :HALF_UP,
4314
+ MetronomeSDK::Models::V1::PackageListResponse::RecurringCommit::ProrationRounding::Invoice::RoundingMethod::TaggedSymbol
4315
+ )
4316
+ FLOOR =
4317
+ T.let(
4318
+ :FLOOR,
4319
+ MetronomeSDK::Models::V1::PackageListResponse::RecurringCommit::ProrationRounding::Invoice::RoundingMethod::TaggedSymbol
4320
+ )
4321
+ CEILING =
4322
+ T.let(
4323
+ :CEILING,
4324
+ MetronomeSDK::Models::V1::PackageListResponse::RecurringCommit::ProrationRounding::Invoice::RoundingMethod::TaggedSymbol
4325
+ )
4326
+
4327
+ sig do
4328
+ override.returns(
4329
+ T::Array[
4330
+ MetronomeSDK::Models::V1::PackageListResponse::RecurringCommit::ProrationRounding::Invoice::RoundingMethod::TaggedSymbol
4331
+ ]
4332
+ )
4333
+ end
4334
+ def self.values
4335
+ end
4336
+ end
4337
+ end
4338
+ end
4339
+
4016
4340
  # The frequency at which the recurring commits will be created. If not provided: -
4017
4341
  # The commits will be created on the usage invoice frequency. If provided: - The
4018
4342
  # period defined in the duration will correspond to this frequency. - Commits will
@@ -4050,6 +4374,11 @@ module MetronomeSDK
4050
4374
  :WEEKLY,
4051
4375
  MetronomeSDK::Models::V1::PackageListResponse::RecurringCommit::RecurrenceFrequency::TaggedSymbol
4052
4376
  )
4377
+ DAILY =
4378
+ T.let(
4379
+ :DAILY,
4380
+ MetronomeSDK::Models::V1::PackageListResponse::RecurringCommit::RecurrenceFrequency::TaggedSymbol
4381
+ )
4053
4382
 
4054
4383
  sig do
4055
4384
  override.returns(
@@ -4339,6 +4668,26 @@ module MetronomeSDK
4339
4668
  end
4340
4669
  attr_writer :proration
4341
4670
 
4671
+ # Rounding configuration for prorated recurring credit amounts.
4672
+ sig do
4673
+ returns(
4674
+ T.nilable(
4675
+ MetronomeSDK::Models::V1::PackageListResponse::RecurringCredit::ProrationRounding
4676
+ )
4677
+ )
4678
+ end
4679
+ attr_reader :proration_rounding
4680
+
4681
+ sig do
4682
+ params(
4683
+ proration_rounding:
4684
+ T.nilable(
4685
+ MetronomeSDK::Models::V1::PackageListResponse::RecurringCredit::ProrationRounding::OrHash
4686
+ )
4687
+ ).void
4688
+ end
4689
+ attr_writer :proration_rounding
4690
+
4342
4691
  # The frequency at which the recurring commits will be created. If not provided: -
4343
4692
  # The commits will be created on the usage invoice frequency. If provided: - The
4344
4693
  # period defined in the duration will correspond to this frequency. - Commits will
@@ -4423,6 +4772,10 @@ module MetronomeSDK
4423
4772
  name: String,
4424
4773
  proration:
4425
4774
  MetronomeSDK::Models::V1::PackageListResponse::RecurringCredit::Proration::OrSymbol,
4775
+ proration_rounding:
4776
+ T.nilable(
4777
+ MetronomeSDK::Models::V1::PackageListResponse::RecurringCredit::ProrationRounding::OrHash
4778
+ ),
4426
4779
  recurrence_frequency:
4427
4780
  MetronomeSDK::Models::V1::PackageListResponse::RecurringCredit::RecurrenceFrequency::OrSymbol,
4428
4781
  rollover_fraction: Float,
@@ -4456,6 +4809,8 @@ module MetronomeSDK
4456
4809
  # Determines whether the first and last commit will be prorated. If not provided,
4457
4810
  # the default is FIRST_AND_LAST (i.e. prorate both the first and last commits).
4458
4811
  proration: nil,
4812
+ # Rounding configuration for prorated recurring credit amounts.
4813
+ proration_rounding: nil,
4459
4814
  # The frequency at which the recurring commits will be created. If not provided: -
4460
4815
  # The commits will be created on the usage invoice frequency. If provided: - The
4461
4816
  # period defined in the duration will correspond to this frequency. - Commits will
@@ -4498,6 +4853,10 @@ module MetronomeSDK
4498
4853
  name: String,
4499
4854
  proration:
4500
4855
  MetronomeSDK::Models::V1::PackageListResponse::RecurringCredit::Proration::TaggedSymbol,
4856
+ proration_rounding:
4857
+ T.nilable(
4858
+ MetronomeSDK::Models::V1::PackageListResponse::RecurringCredit::ProrationRounding
4859
+ ),
4501
4860
  recurrence_frequency:
4502
4861
  MetronomeSDK::Models::V1::PackageListResponse::RecurringCredit::RecurrenceFrequency::TaggedSymbol,
4503
4862
  rollover_fraction: Float,
@@ -4914,60 +5273,205 @@ module MetronomeSDK
4914
5273
  end
4915
5274
  end
4916
5275
 
4917
- # The frequency at which the recurring commits will be created. If not provided: -
4918
- # The commits will be created on the usage invoice frequency. If provided: - The
4919
- # period defined in the duration will correspond to this frequency. - Commits will
4920
- # be created aligned with the recurring commit's starting_at rather than the usage
4921
- # invoice dates.
4922
- module RecurrenceFrequency
4923
- extend MetronomeSDK::Internal::Type::Enum
4924
-
4925
- TaggedSymbol =
4926
- T.type_alias do
4927
- T.all(
4928
- Symbol,
4929
- MetronomeSDK::Models::V1::PackageListResponse::RecurringCredit::RecurrenceFrequency
4930
- )
4931
- end
4932
- OrSymbol = T.type_alias { T.any(Symbol, String) }
4933
-
4934
- MONTHLY =
4935
- T.let(
4936
- :MONTHLY,
4937
- MetronomeSDK::Models::V1::PackageListResponse::RecurringCredit::RecurrenceFrequency::TaggedSymbol
4938
- )
4939
- QUARTERLY =
4940
- T.let(
4941
- :QUARTERLY,
4942
- MetronomeSDK::Models::V1::PackageListResponse::RecurringCredit::RecurrenceFrequency::TaggedSymbol
4943
- )
4944
- ANNUAL =
4945
- T.let(
4946
- :ANNUAL,
4947
- MetronomeSDK::Models::V1::PackageListResponse::RecurringCredit::RecurrenceFrequency::TaggedSymbol
4948
- )
4949
- WEEKLY =
4950
- T.let(
4951
- :WEEKLY,
4952
- MetronomeSDK::Models::V1::PackageListResponse::RecurringCredit::RecurrenceFrequency::TaggedSymbol
4953
- )
4954
-
4955
- sig do
4956
- override.returns(
4957
- T::Array[
4958
- MetronomeSDK::Models::V1::PackageListResponse::RecurringCredit::RecurrenceFrequency::TaggedSymbol
4959
- ]
4960
- )
4961
- end
4962
- def self.values
4963
- end
4964
- end
4965
-
4966
- class SubscriptionConfig < MetronomeSDK::Internal::Type::BaseModel
5276
+ class ProrationRounding < MetronomeSDK::Internal::Type::BaseModel
4967
5277
  OrHash =
4968
5278
  T.type_alias do
4969
5279
  T.any(
4970
- MetronomeSDK::Models::V1::PackageListResponse::RecurringCredit::SubscriptionConfig,
5280
+ MetronomeSDK::Models::V1::PackageListResponse::RecurringCredit::ProrationRounding,
5281
+ MetronomeSDK::Internal::AnyHash
5282
+ )
5283
+ end
5284
+
5285
+ sig do
5286
+ returns(
5287
+ T.nilable(
5288
+ MetronomeSDK::Models::V1::PackageListResponse::RecurringCredit::ProrationRounding::Access
5289
+ )
5290
+ )
5291
+ end
5292
+ attr_reader :access
5293
+
5294
+ sig do
5295
+ params(
5296
+ access:
5297
+ MetronomeSDK::Models::V1::PackageListResponse::RecurringCredit::ProrationRounding::Access::OrHash
5298
+ ).void
5299
+ end
5300
+ attr_writer :access
5301
+
5302
+ # Rounding configuration for prorated recurring credit amounts.
5303
+ sig do
5304
+ params(
5305
+ access:
5306
+ MetronomeSDK::Models::V1::PackageListResponse::RecurringCredit::ProrationRounding::Access::OrHash
5307
+ ).returns(T.attached_class)
5308
+ end
5309
+ def self.new(access: nil)
5310
+ end
5311
+
5312
+ sig do
5313
+ override.returns(
5314
+ {
5315
+ access:
5316
+ MetronomeSDK::Models::V1::PackageListResponse::RecurringCredit::ProrationRounding::Access
5317
+ }
5318
+ )
5319
+ end
5320
+ def to_hash
5321
+ end
5322
+
5323
+ class Access < MetronomeSDK::Internal::Type::BaseModel
5324
+ OrHash =
5325
+ T.type_alias do
5326
+ T.any(
5327
+ MetronomeSDK::Models::V1::PackageListResponse::RecurringCredit::ProrationRounding::Access,
5328
+ MetronomeSDK::Internal::AnyHash
5329
+ )
5330
+ end
5331
+
5332
+ # Number of decimal places to round to. Applied directly to the stored monetary
5333
+ # representation. Negative values round to powers of 10 (e.g., -2 rounds to
5334
+ # nearest 100 in the stored unit. For USD, this means rounding to the nearest
5335
+ # dollar).
5336
+ sig { returns(Float) }
5337
+ attr_accessor :decimal_places
5338
+
5339
+ sig do
5340
+ returns(
5341
+ MetronomeSDK::Models::V1::PackageListResponse::RecurringCredit::ProrationRounding::Access::RoundingMethod::TaggedSymbol
5342
+ )
5343
+ end
5344
+ attr_accessor :rounding_method
5345
+
5346
+ sig do
5347
+ params(
5348
+ decimal_places: Float,
5349
+ rounding_method:
5350
+ MetronomeSDK::Models::V1::PackageListResponse::RecurringCredit::ProrationRounding::Access::RoundingMethod::OrSymbol
5351
+ ).returns(T.attached_class)
5352
+ end
5353
+ def self.new(
5354
+ # Number of decimal places to round to. Applied directly to the stored monetary
5355
+ # representation. Negative values round to powers of 10 (e.g., -2 rounds to
5356
+ # nearest 100 in the stored unit. For USD, this means rounding to the nearest
5357
+ # dollar).
5358
+ decimal_places:,
5359
+ rounding_method:
5360
+ )
5361
+ end
5362
+
5363
+ sig do
5364
+ override.returns(
5365
+ {
5366
+ decimal_places: Float,
5367
+ rounding_method:
5368
+ MetronomeSDK::Models::V1::PackageListResponse::RecurringCredit::ProrationRounding::Access::RoundingMethod::TaggedSymbol
5369
+ }
5370
+ )
5371
+ end
5372
+ def to_hash
5373
+ end
5374
+
5375
+ module RoundingMethod
5376
+ extend MetronomeSDK::Internal::Type::Enum
5377
+
5378
+ TaggedSymbol =
5379
+ T.type_alias do
5380
+ T.all(
5381
+ Symbol,
5382
+ MetronomeSDK::Models::V1::PackageListResponse::RecurringCredit::ProrationRounding::Access::RoundingMethod
5383
+ )
5384
+ end
5385
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
5386
+
5387
+ HALF_UP =
5388
+ T.let(
5389
+ :HALF_UP,
5390
+ MetronomeSDK::Models::V1::PackageListResponse::RecurringCredit::ProrationRounding::Access::RoundingMethod::TaggedSymbol
5391
+ )
5392
+ FLOOR =
5393
+ T.let(
5394
+ :FLOOR,
5395
+ MetronomeSDK::Models::V1::PackageListResponse::RecurringCredit::ProrationRounding::Access::RoundingMethod::TaggedSymbol
5396
+ )
5397
+ CEILING =
5398
+ T.let(
5399
+ :CEILING,
5400
+ MetronomeSDK::Models::V1::PackageListResponse::RecurringCredit::ProrationRounding::Access::RoundingMethod::TaggedSymbol
5401
+ )
5402
+
5403
+ sig do
5404
+ override.returns(
5405
+ T::Array[
5406
+ MetronomeSDK::Models::V1::PackageListResponse::RecurringCredit::ProrationRounding::Access::RoundingMethod::TaggedSymbol
5407
+ ]
5408
+ )
5409
+ end
5410
+ def self.values
5411
+ end
5412
+ end
5413
+ end
5414
+ end
5415
+
5416
+ # The frequency at which the recurring commits will be created. If not provided: -
5417
+ # The commits will be created on the usage invoice frequency. If provided: - The
5418
+ # period defined in the duration will correspond to this frequency. - Commits will
5419
+ # be created aligned with the recurring commit's starting_at rather than the usage
5420
+ # invoice dates.
5421
+ module RecurrenceFrequency
5422
+ extend MetronomeSDK::Internal::Type::Enum
5423
+
5424
+ TaggedSymbol =
5425
+ T.type_alias do
5426
+ T.all(
5427
+ Symbol,
5428
+ MetronomeSDK::Models::V1::PackageListResponse::RecurringCredit::RecurrenceFrequency
5429
+ )
5430
+ end
5431
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
5432
+
5433
+ MONTHLY =
5434
+ T.let(
5435
+ :MONTHLY,
5436
+ MetronomeSDK::Models::V1::PackageListResponse::RecurringCredit::RecurrenceFrequency::TaggedSymbol
5437
+ )
5438
+ QUARTERLY =
5439
+ T.let(
5440
+ :QUARTERLY,
5441
+ MetronomeSDK::Models::V1::PackageListResponse::RecurringCredit::RecurrenceFrequency::TaggedSymbol
5442
+ )
5443
+ ANNUAL =
5444
+ T.let(
5445
+ :ANNUAL,
5446
+ MetronomeSDK::Models::V1::PackageListResponse::RecurringCredit::RecurrenceFrequency::TaggedSymbol
5447
+ )
5448
+ WEEKLY =
5449
+ T.let(
5450
+ :WEEKLY,
5451
+ MetronomeSDK::Models::V1::PackageListResponse::RecurringCredit::RecurrenceFrequency::TaggedSymbol
5452
+ )
5453
+ DAILY =
5454
+ T.let(
5455
+ :DAILY,
5456
+ MetronomeSDK::Models::V1::PackageListResponse::RecurringCredit::RecurrenceFrequency::TaggedSymbol
5457
+ )
5458
+
5459
+ sig do
5460
+ override.returns(
5461
+ T::Array[
5462
+ MetronomeSDK::Models::V1::PackageListResponse::RecurringCredit::RecurrenceFrequency::TaggedSymbol
5463
+ ]
5464
+ )
5465
+ end
5466
+ def self.values
5467
+ end
5468
+ end
5469
+
5470
+ class SubscriptionConfig < MetronomeSDK::Internal::Type::BaseModel
5471
+ OrHash =
5472
+ T.type_alias do
5473
+ T.any(
5474
+ MetronomeSDK::Models::V1::PackageListResponse::RecurringCredit::SubscriptionConfig,
4971
5475
  MetronomeSDK::Internal::AnyHash
4972
5476
  )
4973
5477
  end
@@ -5123,6 +5627,283 @@ module MetronomeSDK
5123
5627
  end
5124
5628
  end
5125
5629
 
5630
+ class SpendTracker < MetronomeSDK::Internal::Type::BaseModel
5631
+ OrHash =
5632
+ T.type_alias do
5633
+ T.any(
5634
+ MetronomeSDK::Models::V1::PackageListResponse::SpendTracker,
5635
+ MetronomeSDK::Internal::AnyHash
5636
+ )
5637
+ end
5638
+
5639
+ # Human-readable identifier, unique per contract.
5640
+ sig { returns(String) }
5641
+ attr_accessor :alias_
5642
+
5643
+ sig do
5644
+ returns(
5645
+ T::Array[
5646
+ MetronomeSDK::Models::V1::PackageListResponse::SpendTracker::ApplicableSpendSpecifier
5647
+ ]
5648
+ )
5649
+ end
5650
+ attr_accessor :applicable_spend_specifiers
5651
+
5652
+ sig { returns(String) }
5653
+ attr_accessor :credit_type_id
5654
+
5655
+ sig do
5656
+ returns(
5657
+ MetronomeSDK::Models::V1::PackageListResponse::SpendTracker::ResetFrequency::TaggedSymbol
5658
+ )
5659
+ end
5660
+ attr_accessor :reset_frequency
5661
+
5662
+ sig do
5663
+ params(
5664
+ alias_: String,
5665
+ applicable_spend_specifiers:
5666
+ T::Array[
5667
+ MetronomeSDK::Models::V1::PackageListResponse::SpendTracker::ApplicableSpendSpecifier::OrHash
5668
+ ],
5669
+ credit_type_id: String,
5670
+ reset_frequency:
5671
+ MetronomeSDK::Models::V1::PackageListResponse::SpendTracker::ResetFrequency::OrSymbol
5672
+ ).returns(T.attached_class)
5673
+ end
5674
+ def self.new(
5675
+ # Human-readable identifier, unique per contract.
5676
+ alias_:,
5677
+ applicable_spend_specifiers:,
5678
+ credit_type_id:,
5679
+ reset_frequency:
5680
+ )
5681
+ end
5682
+
5683
+ sig do
5684
+ override.returns(
5685
+ {
5686
+ alias_: String,
5687
+ applicable_spend_specifiers:
5688
+ T::Array[
5689
+ MetronomeSDK::Models::V1::PackageListResponse::SpendTracker::ApplicableSpendSpecifier
5690
+ ],
5691
+ credit_type_id: String,
5692
+ reset_frequency:
5693
+ MetronomeSDK::Models::V1::PackageListResponse::SpendTracker::ResetFrequency::TaggedSymbol
5694
+ }
5695
+ )
5696
+ end
5697
+ def to_hash
5698
+ end
5699
+
5700
+ class ApplicableSpendSpecifier < MetronomeSDK::Internal::Type::BaseModel
5701
+ OrHash =
5702
+ T.type_alias do
5703
+ T.any(
5704
+ MetronomeSDK::Models::V1::PackageListResponse::SpendTracker::ApplicableSpendSpecifier,
5705
+ MetronomeSDK::Internal::AnyHash
5706
+ )
5707
+ end
5708
+
5709
+ sig do
5710
+ returns(
5711
+ T::Array[
5712
+ MetronomeSDK::Models::V1::PackageListResponse::SpendTracker::ApplicableSpendSpecifier::Source::TaggedSymbol
5713
+ ]
5714
+ )
5715
+ end
5716
+ attr_accessor :sources
5717
+
5718
+ sig do
5719
+ returns(
5720
+ MetronomeSDK::Models::V1::PackageListResponse::SpendTracker::ApplicableSpendSpecifier::SpendType::TaggedSymbol
5721
+ )
5722
+ end
5723
+ attr_accessor :spend_type
5724
+
5725
+ sig do
5726
+ returns(
5727
+ T.nilable(
5728
+ MetronomeSDK::Models::V1::PackageListResponse::SpendTracker::ApplicableSpendSpecifier::Discounted::TaggedSymbol
5729
+ )
5730
+ )
5731
+ end
5732
+ attr_reader :discounted
5733
+
5734
+ sig do
5735
+ params(
5736
+ discounted:
5737
+ MetronomeSDK::Models::V1::PackageListResponse::SpendTracker::ApplicableSpendSpecifier::Discounted::OrSymbol
5738
+ ).void
5739
+ end
5740
+ attr_writer :discounted
5741
+
5742
+ sig do
5743
+ params(
5744
+ sources:
5745
+ T::Array[
5746
+ MetronomeSDK::Models::V1::PackageListResponse::SpendTracker::ApplicableSpendSpecifier::Source::OrSymbol
5747
+ ],
5748
+ spend_type:
5749
+ MetronomeSDK::Models::V1::PackageListResponse::SpendTracker::ApplicableSpendSpecifier::SpendType::OrSymbol,
5750
+ discounted:
5751
+ MetronomeSDK::Models::V1::PackageListResponse::SpendTracker::ApplicableSpendSpecifier::Discounted::OrSymbol
5752
+ ).returns(T.attached_class)
5753
+ end
5754
+ def self.new(sources:, spend_type:, discounted: nil)
5755
+ end
5756
+
5757
+ sig do
5758
+ override.returns(
5759
+ {
5760
+ sources:
5761
+ T::Array[
5762
+ MetronomeSDK::Models::V1::PackageListResponse::SpendTracker::ApplicableSpendSpecifier::Source::TaggedSymbol
5763
+ ],
5764
+ spend_type:
5765
+ MetronomeSDK::Models::V1::PackageListResponse::SpendTracker::ApplicableSpendSpecifier::SpendType::TaggedSymbol,
5766
+ discounted:
5767
+ MetronomeSDK::Models::V1::PackageListResponse::SpendTracker::ApplicableSpendSpecifier::Discounted::TaggedSymbol
5768
+ }
5769
+ )
5770
+ end
5771
+ def to_hash
5772
+ end
5773
+
5774
+ module Source
5775
+ extend MetronomeSDK::Internal::Type::Enum
5776
+
5777
+ TaggedSymbol =
5778
+ T.type_alias do
5779
+ T.all(
5780
+ Symbol,
5781
+ MetronomeSDK::Models::V1::PackageListResponse::SpendTracker::ApplicableSpendSpecifier::Source
5782
+ )
5783
+ end
5784
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
5785
+
5786
+ THRESHOLD_RECHARGE =
5787
+ T.let(
5788
+ :THRESHOLD_RECHARGE,
5789
+ MetronomeSDK::Models::V1::PackageListResponse::SpendTracker::ApplicableSpendSpecifier::Source::TaggedSymbol
5790
+ )
5791
+ MANUAL =
5792
+ T.let(
5793
+ :MANUAL,
5794
+ MetronomeSDK::Models::V1::PackageListResponse::SpendTracker::ApplicableSpendSpecifier::Source::TaggedSymbol
5795
+ )
5796
+
5797
+ sig do
5798
+ override.returns(
5799
+ T::Array[
5800
+ MetronomeSDK::Models::V1::PackageListResponse::SpendTracker::ApplicableSpendSpecifier::Source::TaggedSymbol
5801
+ ]
5802
+ )
5803
+ end
5804
+ def self.values
5805
+ end
5806
+ end
5807
+
5808
+ module SpendType
5809
+ extend MetronomeSDK::Internal::Type::Enum
5810
+
5811
+ TaggedSymbol =
5812
+ T.type_alias do
5813
+ T.all(
5814
+ Symbol,
5815
+ MetronomeSDK::Models::V1::PackageListResponse::SpendTracker::ApplicableSpendSpecifier::SpendType
5816
+ )
5817
+ end
5818
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
5819
+
5820
+ COMMIT_PURCHASE =
5821
+ T.let(
5822
+ :COMMIT_PURCHASE,
5823
+ MetronomeSDK::Models::V1::PackageListResponse::SpendTracker::ApplicableSpendSpecifier::SpendType::TaggedSymbol
5824
+ )
5825
+
5826
+ sig do
5827
+ override.returns(
5828
+ T::Array[
5829
+ MetronomeSDK::Models::V1::PackageListResponse::SpendTracker::ApplicableSpendSpecifier::SpendType::TaggedSymbol
5830
+ ]
5831
+ )
5832
+ end
5833
+ def self.values
5834
+ end
5835
+ end
5836
+
5837
+ module Discounted
5838
+ extend MetronomeSDK::Internal::Type::Enum
5839
+
5840
+ TaggedSymbol =
5841
+ T.type_alias do
5842
+ T.all(
5843
+ Symbol,
5844
+ MetronomeSDK::Models::V1::PackageListResponse::SpendTracker::ApplicableSpendSpecifier::Discounted
5845
+ )
5846
+ end
5847
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
5848
+
5849
+ ANY =
5850
+ T.let(
5851
+ :ANY,
5852
+ MetronomeSDK::Models::V1::PackageListResponse::SpendTracker::ApplicableSpendSpecifier::Discounted::TaggedSymbol
5853
+ )
5854
+ DISCOUNTED_ONLY =
5855
+ T.let(
5856
+ :DISCOUNTED_ONLY,
5857
+ MetronomeSDK::Models::V1::PackageListResponse::SpendTracker::ApplicableSpendSpecifier::Discounted::TaggedSymbol
5858
+ )
5859
+ UNDISCOUNTED_ONLY =
5860
+ T.let(
5861
+ :UNDISCOUNTED_ONLY,
5862
+ MetronomeSDK::Models::V1::PackageListResponse::SpendTracker::ApplicableSpendSpecifier::Discounted::TaggedSymbol
5863
+ )
5864
+
5865
+ sig do
5866
+ override.returns(
5867
+ T::Array[
5868
+ MetronomeSDK::Models::V1::PackageListResponse::SpendTracker::ApplicableSpendSpecifier::Discounted::TaggedSymbol
5869
+ ]
5870
+ )
5871
+ end
5872
+ def self.values
5873
+ end
5874
+ end
5875
+ end
5876
+
5877
+ module ResetFrequency
5878
+ extend MetronomeSDK::Internal::Type::Enum
5879
+
5880
+ TaggedSymbol =
5881
+ T.type_alias do
5882
+ T.all(
5883
+ Symbol,
5884
+ MetronomeSDK::Models::V1::PackageListResponse::SpendTracker::ResetFrequency
5885
+ )
5886
+ end
5887
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
5888
+
5889
+ BILLING_PERIOD =
5890
+ T.let(
5891
+ :BILLING_PERIOD,
5892
+ MetronomeSDK::Models::V1::PackageListResponse::SpendTracker::ResetFrequency::TaggedSymbol
5893
+ )
5894
+
5895
+ sig do
5896
+ override.returns(
5897
+ T::Array[
5898
+ MetronomeSDK::Models::V1::PackageListResponse::SpendTracker::ResetFrequency::TaggedSymbol
5899
+ ]
5900
+ )
5901
+ end
5902
+ def self.values
5903
+ end
5904
+ end
5905
+ end
5906
+
5126
5907
  class Subscription < MetronomeSDK::Internal::Type::BaseModel
5127
5908
  OrHash =
5128
5909
  T.type_alias do
@@ -5175,6 +5956,23 @@ module MetronomeSDK
5175
5956
  sig { params(id: String).void }
5176
5957
  attr_writer :id
5177
5958
 
5959
+ sig do
5960
+ returns(
5961
+ T.nilable(
5962
+ MetronomeSDK::Models::V1::PackageListResponse::Subscription::BillingCycleConfig
5963
+ )
5964
+ )
5965
+ end
5966
+ attr_reader :billing_cycle_config
5967
+
5968
+ sig do
5969
+ params(
5970
+ billing_cycle_config:
5971
+ MetronomeSDK::Models::V1::PackageListResponse::Subscription::BillingCycleConfig::OrHash
5972
+ ).void
5973
+ end
5974
+ attr_writer :billing_cycle_config
5975
+
5178
5976
  # Custom fields to be added eg. { "key1": "value1", "key2": "value2" }
5179
5977
  sig { returns(T.nilable(T::Hash[Symbol, String])) }
5180
5978
  attr_reader :custom_fields
@@ -5292,6 +6090,8 @@ module MetronomeSDK
5292
6090
  subscription_rate:
5293
6091
  MetronomeSDK::Models::V1::PackageListResponse::Subscription::SubscriptionRate::OrHash,
5294
6092
  id: String,
6093
+ billing_cycle_config:
6094
+ MetronomeSDK::Models::V1::PackageListResponse::Subscription::BillingCycleConfig::OrHash,
5295
6095
  custom_fields: T::Hash[Symbol, String],
5296
6096
  description: String,
5297
6097
  duration:
@@ -5312,6 +6112,7 @@ module MetronomeSDK
5312
6112
  proration:,
5313
6113
  subscription_rate:,
5314
6114
  id: nil,
6115
+ billing_cycle_config: nil,
5315
6116
  # Custom fields to be added eg. { "key1": "value1", "key2": "value2" }
5316
6117
  custom_fields: nil,
5317
6118
  description: nil,
@@ -5344,6 +6145,8 @@ module MetronomeSDK
5344
6145
  subscription_rate:
5345
6146
  MetronomeSDK::Models::V1::PackageListResponse::Subscription::SubscriptionRate,
5346
6147
  id: String,
6148
+ billing_cycle_config:
6149
+ MetronomeSDK::Models::V1::PackageListResponse::Subscription::BillingCycleConfig,
5347
6150
  custom_fields: T::Hash[Symbol, String],
5348
6151
  description: String,
5349
6152
  duration:
@@ -5416,14 +6219,33 @@ module MetronomeSDK
5416
6219
  sig { returns(T::Boolean) }
5417
6220
  attr_accessor :is_prorated
5418
6221
 
6222
+ sig do
6223
+ returns(
6224
+ T.nilable(
6225
+ MetronomeSDK::Models::V1::PackageListResponse::Subscription::Proration::Rounding
6226
+ )
6227
+ )
6228
+ end
6229
+ attr_reader :rounding
6230
+
6231
+ sig do
6232
+ params(
6233
+ rounding:
6234
+ MetronomeSDK::Models::V1::PackageListResponse::Subscription::Proration::Rounding::OrHash
6235
+ ).void
6236
+ end
6237
+ attr_writer :rounding
6238
+
5419
6239
  sig do
5420
6240
  params(
5421
6241
  invoice_behavior:
5422
6242
  MetronomeSDK::Models::V1::PackageListResponse::Subscription::Proration::InvoiceBehavior::OrSymbol,
5423
- is_prorated: T::Boolean
6243
+ is_prorated: T::Boolean,
6244
+ rounding:
6245
+ MetronomeSDK::Models::V1::PackageListResponse::Subscription::Proration::Rounding::OrHash
5424
6246
  ).returns(T.attached_class)
5425
6247
  end
5426
- def self.new(invoice_behavior:, is_prorated:)
6248
+ def self.new(invoice_behavior:, is_prorated:, rounding: nil)
5427
6249
  end
5428
6250
 
5429
6251
  sig do
@@ -5431,7 +6253,9 @@ module MetronomeSDK
5431
6253
  {
5432
6254
  invoice_behavior:
5433
6255
  MetronomeSDK::Models::V1::PackageListResponse::Subscription::Proration::InvoiceBehavior::TaggedSymbol,
5434
- is_prorated: T::Boolean
6256
+ is_prorated: T::Boolean,
6257
+ rounding:
6258
+ MetronomeSDK::Models::V1::PackageListResponse::Subscription::Proration::Rounding
5435
6259
  }
5436
6260
  )
5437
6261
  end
@@ -5471,6 +6295,98 @@ module MetronomeSDK
5471
6295
  def self.values
5472
6296
  end
5473
6297
  end
6298
+
6299
+ class Rounding < MetronomeSDK::Internal::Type::BaseModel
6300
+ OrHash =
6301
+ T.type_alias do
6302
+ T.any(
6303
+ MetronomeSDK::Models::V1::PackageListResponse::Subscription::Proration::Rounding,
6304
+ MetronomeSDK::Internal::AnyHash
6305
+ )
6306
+ end
6307
+
6308
+ # Number of decimal places to round to. Applied directly to the stored monetary
6309
+ # representation. Negative values round to powers of 10 (e.g., -2 rounds to
6310
+ # nearest 100 in the stored unit. For USD, this means rounding to the nearest
6311
+ # dollar).
6312
+ sig { returns(Float) }
6313
+ attr_accessor :decimal_places
6314
+
6315
+ sig do
6316
+ returns(
6317
+ MetronomeSDK::Models::V1::PackageListResponse::Subscription::Proration::Rounding::RoundingMethod::TaggedSymbol
6318
+ )
6319
+ end
6320
+ attr_accessor :rounding_method
6321
+
6322
+ sig do
6323
+ params(
6324
+ decimal_places: Float,
6325
+ rounding_method:
6326
+ MetronomeSDK::Models::V1::PackageListResponse::Subscription::Proration::Rounding::RoundingMethod::OrSymbol
6327
+ ).returns(T.attached_class)
6328
+ end
6329
+ def self.new(
6330
+ # Number of decimal places to round to. Applied directly to the stored monetary
6331
+ # representation. Negative values round to powers of 10 (e.g., -2 rounds to
6332
+ # nearest 100 in the stored unit. For USD, this means rounding to the nearest
6333
+ # dollar).
6334
+ decimal_places:,
6335
+ rounding_method:
6336
+ )
6337
+ end
6338
+
6339
+ sig do
6340
+ override.returns(
6341
+ {
6342
+ decimal_places: Float,
6343
+ rounding_method:
6344
+ MetronomeSDK::Models::V1::PackageListResponse::Subscription::Proration::Rounding::RoundingMethod::TaggedSymbol
6345
+ }
6346
+ )
6347
+ end
6348
+ def to_hash
6349
+ end
6350
+
6351
+ module RoundingMethod
6352
+ extend MetronomeSDK::Internal::Type::Enum
6353
+
6354
+ TaggedSymbol =
6355
+ T.type_alias do
6356
+ T.all(
6357
+ Symbol,
6358
+ MetronomeSDK::Models::V1::PackageListResponse::Subscription::Proration::Rounding::RoundingMethod
6359
+ )
6360
+ end
6361
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
6362
+
6363
+ HALF_UP =
6364
+ T.let(
6365
+ :HALF_UP,
6366
+ MetronomeSDK::Models::V1::PackageListResponse::Subscription::Proration::Rounding::RoundingMethod::TaggedSymbol
6367
+ )
6368
+ FLOOR =
6369
+ T.let(
6370
+ :FLOOR,
6371
+ MetronomeSDK::Models::V1::PackageListResponse::Subscription::Proration::Rounding::RoundingMethod::TaggedSymbol
6372
+ )
6373
+ CEILING =
6374
+ T.let(
6375
+ :CEILING,
6376
+ MetronomeSDK::Models::V1::PackageListResponse::Subscription::Proration::Rounding::RoundingMethod::TaggedSymbol
6377
+ )
6378
+
6379
+ sig do
6380
+ override.returns(
6381
+ T::Array[
6382
+ MetronomeSDK::Models::V1::PackageListResponse::Subscription::Proration::Rounding::RoundingMethod::TaggedSymbol
6383
+ ]
6384
+ )
6385
+ end
6386
+ def self.values
6387
+ end
6388
+ end
6389
+ end
5474
6390
  end
5475
6391
 
5476
6392
  class SubscriptionRate < MetronomeSDK::Internal::Type::BaseModel
@@ -5597,6 +6513,87 @@ module MetronomeSDK
5597
6513
  end
5598
6514
  end
5599
6515
 
6516
+ class BillingCycleConfig < MetronomeSDK::Internal::Type::BaseModel
6517
+ OrHash =
6518
+ T.type_alias do
6519
+ T.any(
6520
+ MetronomeSDK::Models::V1::PackageListResponse::Subscription::BillingCycleConfig,
6521
+ MetronomeSDK::Internal::AnyHash
6522
+ )
6523
+ end
6524
+
6525
+ sig do
6526
+ returns(
6527
+ T.nilable(
6528
+ MetronomeSDK::Models::V1::PackageListResponse::Subscription::BillingCycleConfig::InvoicePlacement::TaggedSymbol
6529
+ )
6530
+ )
6531
+ end
6532
+ attr_reader :invoice_placement
6533
+
6534
+ sig do
6535
+ params(
6536
+ invoice_placement:
6537
+ MetronomeSDK::Models::V1::PackageListResponse::Subscription::BillingCycleConfig::InvoicePlacement::OrSymbol
6538
+ ).void
6539
+ end
6540
+ attr_writer :invoice_placement
6541
+
6542
+ sig do
6543
+ params(
6544
+ invoice_placement:
6545
+ MetronomeSDK::Models::V1::PackageListResponse::Subscription::BillingCycleConfig::InvoicePlacement::OrSymbol
6546
+ ).returns(T.attached_class)
6547
+ end
6548
+ def self.new(invoice_placement: nil)
6549
+ end
6550
+
6551
+ sig do
6552
+ override.returns(
6553
+ {
6554
+ invoice_placement:
6555
+ MetronomeSDK::Models::V1::PackageListResponse::Subscription::BillingCycleConfig::InvoicePlacement::TaggedSymbol
6556
+ }
6557
+ )
6558
+ end
6559
+ def to_hash
6560
+ end
6561
+
6562
+ module InvoicePlacement
6563
+ extend MetronomeSDK::Internal::Type::Enum
6564
+
6565
+ TaggedSymbol =
6566
+ T.type_alias do
6567
+ T.all(
6568
+ Symbol,
6569
+ MetronomeSDK::Models::V1::PackageListResponse::Subscription::BillingCycleConfig::InvoicePlacement
6570
+ )
6571
+ end
6572
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
6573
+
6574
+ ON_SCHEDULED_INVOICE =
6575
+ T.let(
6576
+ :ON_SCHEDULED_INVOICE,
6577
+ MetronomeSDK::Models::V1::PackageListResponse::Subscription::BillingCycleConfig::InvoicePlacement::TaggedSymbol
6578
+ )
6579
+ ON_USAGE_INVOICE =
6580
+ T.let(
6581
+ :ON_USAGE_INVOICE,
6582
+ MetronomeSDK::Models::V1::PackageListResponse::Subscription::BillingCycleConfig::InvoicePlacement::TaggedSymbol
6583
+ )
6584
+
6585
+ sig do
6586
+ override.returns(
6587
+ T::Array[
6588
+ MetronomeSDK::Models::V1::PackageListResponse::Subscription::BillingCycleConfig::InvoicePlacement::TaggedSymbol
6589
+ ]
6590
+ )
6591
+ end
6592
+ def self.values
6593
+ end
6594
+ end
6595
+ end
6596
+
5600
6597
  class Duration < MetronomeSDK::Internal::Type::BaseModel
5601
6598
  OrHash =
5602
6599
  T.type_alias do