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
@@ -335,6 +335,27 @@ module MetronomeSDK
335
335
  end
336
336
  attr_writer :spend_threshold_configuration
337
337
 
338
+ sig do
339
+ returns(
340
+ T.nilable(
341
+ T::Array[
342
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::SpendTracker
343
+ ]
344
+ )
345
+ )
346
+ end
347
+ attr_reader :spend_trackers
348
+
349
+ sig do
350
+ params(
351
+ spend_trackers:
352
+ T::Array[
353
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::SpendTracker::OrHash
354
+ ]
355
+ ).void
356
+ end
357
+ attr_writer :spend_trackers
358
+
338
359
  sig do
339
360
  returns(
340
361
  T.nilable(
@@ -419,6 +440,10 @@ module MetronomeSDK
419
440
  MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::ScheduledChargesOnUsageInvoices::OrSymbol,
420
441
  spend_threshold_configuration:
421
442
  MetronomeSDK::SpendThresholdConfiguration::OrHash,
443
+ spend_trackers:
444
+ T::Array[
445
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::SpendTracker::OrHash
446
+ ],
422
447
  subscriptions:
423
448
  T::Array[
424
449
  MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::Subscription::OrHash
@@ -460,6 +485,7 @@ module MetronomeSDK
460
485
  # on a separate invoice from usage charges.
461
486
  scheduled_charges_on_usage_invoices: nil,
462
487
  spend_threshold_configuration: nil,
488
+ spend_trackers: nil,
463
489
  subscriptions: nil,
464
490
  # Prevents the creation of duplicates. If a request to create a record is made
465
491
  # with a previously used uniqueness key, a new record will not be created and the
@@ -523,6 +549,10 @@ module MetronomeSDK
523
549
  MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::ScheduledChargesOnUsageInvoices::TaggedSymbol,
524
550
  spend_threshold_configuration:
525
551
  MetronomeSDK::SpendThresholdConfiguration,
552
+ spend_trackers:
553
+ T::Array[
554
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::SpendTracker
555
+ ],
526
556
  subscriptions:
527
557
  T::Array[
528
558
  MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::Subscription
@@ -1599,6 +1629,14 @@ module MetronomeSDK
1599
1629
  )
1600
1630
  end
1601
1631
 
1632
+ sig { returns(T.nilable(T::Array[String])) }
1633
+ attr_reader :any_commit_or_credit_template_ids
1634
+
1635
+ sig do
1636
+ params(any_commit_or_credit_template_ids: T::Array[String]).void
1637
+ end
1638
+ attr_writer :any_commit_or_credit_template_ids
1639
+
1602
1640
  sig do
1603
1641
  returns(
1604
1642
  T.nilable(
@@ -1660,6 +1698,7 @@ module MetronomeSDK
1660
1698
 
1661
1699
  sig do
1662
1700
  params(
1701
+ any_commit_or_credit_template_ids: T::Array[String],
1663
1702
  billing_frequency:
1664
1703
  MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::Override::OverrideSpecifier::BillingFrequency::OrSymbol,
1665
1704
  commit_template_ids: T::Array[String],
@@ -1671,6 +1710,7 @@ module MetronomeSDK
1671
1710
  ).returns(T.attached_class)
1672
1711
  end
1673
1712
  def self.new(
1713
+ any_commit_or_credit_template_ids: nil,
1674
1714
  billing_frequency: nil,
1675
1715
  commit_template_ids: nil,
1676
1716
  presentation_group_values: nil,
@@ -1684,6 +1724,7 @@ module MetronomeSDK
1684
1724
  sig do
1685
1725
  override.returns(
1686
1726
  {
1727
+ any_commit_or_credit_template_ids: T::Array[String],
1687
1728
  billing_frequency:
1688
1729
  MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::Override::OverrideSpecifier::BillingFrequency::TaggedSymbol,
1689
1730
  commit_template_ids: T::Array[String],
@@ -3453,6 +3494,26 @@ module MetronomeSDK
3453
3494
  end
3454
3495
  attr_writer :proration
3455
3496
 
3497
+ # Rounding configuration for prorated recurring commit amounts.
3498
+ sig do
3499
+ returns(
3500
+ T.nilable(
3501
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCommit::ProrationRounding
3502
+ )
3503
+ )
3504
+ end
3505
+ attr_reader :proration_rounding
3506
+
3507
+ sig do
3508
+ params(
3509
+ proration_rounding:
3510
+ T.nilable(
3511
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCommit::ProrationRounding::OrHash
3512
+ )
3513
+ ).void
3514
+ end
3515
+ attr_writer :proration_rounding
3516
+
3456
3517
  # The frequency at which the recurring commits will be created. If not provided: -
3457
3518
  # The commits will be created on the usage invoice frequency. If provided: - The
3458
3519
  # period defined in the duration will correspond to this frequency. - Commits will
@@ -3539,6 +3600,10 @@ module MetronomeSDK
3539
3600
  name: String,
3540
3601
  proration:
3541
3602
  MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCommit::Proration::OrSymbol,
3603
+ proration_rounding:
3604
+ T.nilable(
3605
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCommit::ProrationRounding::OrHash
3606
+ ),
3542
3607
  recurrence_frequency:
3543
3608
  MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCommit::RecurrenceFrequency::OrSymbol,
3544
3609
  rollover_fraction: Float,
@@ -3574,6 +3639,8 @@ module MetronomeSDK
3574
3639
  # Determines whether the first and last commit will be prorated. If not provided,
3575
3640
  # the default is FIRST_AND_LAST (i.e. prorate both the first and last commits).
3576
3641
  proration: nil,
3642
+ # Rounding configuration for prorated recurring commit amounts.
3643
+ proration_rounding: nil,
3577
3644
  # The frequency at which the recurring commits will be created. If not provided: -
3578
3645
  # The commits will be created on the usage invoice frequency. If provided: - The
3579
3646
  # period defined in the duration will correspond to this frequency. - Commits will
@@ -3618,6 +3685,10 @@ module MetronomeSDK
3618
3685
  name: String,
3619
3686
  proration:
3620
3687
  MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCommit::Proration::TaggedSymbol,
3688
+ proration_rounding:
3689
+ T.nilable(
3690
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCommit::ProrationRounding
3691
+ ),
3621
3692
  recurrence_frequency:
3622
3693
  MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCommit::RecurrenceFrequency::TaggedSymbol,
3623
3694
  rollover_fraction: Float,
@@ -4072,6 +4143,259 @@ module MetronomeSDK
4072
4143
  end
4073
4144
  end
4074
4145
 
4146
+ class ProrationRounding < MetronomeSDK::Internal::Type::BaseModel
4147
+ OrHash =
4148
+ T.type_alias do
4149
+ T.any(
4150
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCommit::ProrationRounding,
4151
+ MetronomeSDK::Internal::AnyHash
4152
+ )
4153
+ end
4154
+
4155
+ sig do
4156
+ returns(
4157
+ T.nilable(
4158
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCommit::ProrationRounding::Access
4159
+ )
4160
+ )
4161
+ end
4162
+ attr_reader :access
4163
+
4164
+ sig do
4165
+ params(
4166
+ access:
4167
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCommit::ProrationRounding::Access::OrHash
4168
+ ).void
4169
+ end
4170
+ attr_writer :access
4171
+
4172
+ sig do
4173
+ returns(
4174
+ T.nilable(
4175
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCommit::ProrationRounding::Invoice
4176
+ )
4177
+ )
4178
+ end
4179
+ attr_reader :invoice
4180
+
4181
+ sig do
4182
+ params(
4183
+ invoice:
4184
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCommit::ProrationRounding::Invoice::OrHash
4185
+ ).void
4186
+ end
4187
+ attr_writer :invoice
4188
+
4189
+ # Rounding configuration for prorated recurring commit amounts.
4190
+ sig do
4191
+ params(
4192
+ access:
4193
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCommit::ProrationRounding::Access::OrHash,
4194
+ invoice:
4195
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCommit::ProrationRounding::Invoice::OrHash
4196
+ ).returns(T.attached_class)
4197
+ end
4198
+ def self.new(access: nil, invoice: nil)
4199
+ end
4200
+
4201
+ sig do
4202
+ override.returns(
4203
+ {
4204
+ access:
4205
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCommit::ProrationRounding::Access,
4206
+ invoice:
4207
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCommit::ProrationRounding::Invoice
4208
+ }
4209
+ )
4210
+ end
4211
+ def to_hash
4212
+ end
4213
+
4214
+ class Access < MetronomeSDK::Internal::Type::BaseModel
4215
+ OrHash =
4216
+ T.type_alias do
4217
+ T.any(
4218
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCommit::ProrationRounding::Access,
4219
+ MetronomeSDK::Internal::AnyHash
4220
+ )
4221
+ end
4222
+
4223
+ # Number of decimal places to round to. Applied directly to the stored monetary
4224
+ # representation. Negative values round to powers of 10 (e.g., -2 rounds to
4225
+ # nearest 100 in the stored unit. For USD, this means rounding to the nearest
4226
+ # dollar).
4227
+ sig { returns(Float) }
4228
+ attr_accessor :decimal_places
4229
+
4230
+ sig do
4231
+ returns(
4232
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCommit::ProrationRounding::Access::RoundingMethod::TaggedSymbol
4233
+ )
4234
+ end
4235
+ attr_accessor :rounding_method
4236
+
4237
+ sig do
4238
+ params(
4239
+ decimal_places: Float,
4240
+ rounding_method:
4241
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCommit::ProrationRounding::Access::RoundingMethod::OrSymbol
4242
+ ).returns(T.attached_class)
4243
+ end
4244
+ def self.new(
4245
+ # Number of decimal places to round to. Applied directly to the stored monetary
4246
+ # representation. Negative values round to powers of 10 (e.g., -2 rounds to
4247
+ # nearest 100 in the stored unit. For USD, this means rounding to the nearest
4248
+ # dollar).
4249
+ decimal_places:,
4250
+ rounding_method:
4251
+ )
4252
+ end
4253
+
4254
+ sig do
4255
+ override.returns(
4256
+ {
4257
+ decimal_places: Float,
4258
+ rounding_method:
4259
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCommit::ProrationRounding::Access::RoundingMethod::TaggedSymbol
4260
+ }
4261
+ )
4262
+ end
4263
+ def to_hash
4264
+ end
4265
+
4266
+ module RoundingMethod
4267
+ extend MetronomeSDK::Internal::Type::Enum
4268
+
4269
+ TaggedSymbol =
4270
+ T.type_alias do
4271
+ T.all(
4272
+ Symbol,
4273
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCommit::ProrationRounding::Access::RoundingMethod
4274
+ )
4275
+ end
4276
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
4277
+
4278
+ HALF_UP =
4279
+ T.let(
4280
+ :HALF_UP,
4281
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCommit::ProrationRounding::Access::RoundingMethod::TaggedSymbol
4282
+ )
4283
+ FLOOR =
4284
+ T.let(
4285
+ :FLOOR,
4286
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCommit::ProrationRounding::Access::RoundingMethod::TaggedSymbol
4287
+ )
4288
+ CEILING =
4289
+ T.let(
4290
+ :CEILING,
4291
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCommit::ProrationRounding::Access::RoundingMethod::TaggedSymbol
4292
+ )
4293
+
4294
+ sig do
4295
+ override.returns(
4296
+ T::Array[
4297
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCommit::ProrationRounding::Access::RoundingMethod::TaggedSymbol
4298
+ ]
4299
+ )
4300
+ end
4301
+ def self.values
4302
+ end
4303
+ end
4304
+ end
4305
+
4306
+ class Invoice < MetronomeSDK::Internal::Type::BaseModel
4307
+ OrHash =
4308
+ T.type_alias do
4309
+ T.any(
4310
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCommit::ProrationRounding::Invoice,
4311
+ MetronomeSDK::Internal::AnyHash
4312
+ )
4313
+ end
4314
+
4315
+ # Number of decimal places to round to. Applied directly to the stored monetary
4316
+ # representation. Negative values round to powers of 10 (e.g., -2 rounds to
4317
+ # nearest 100 in the stored unit. For USD, this means rounding to the nearest
4318
+ # dollar).
4319
+ sig { returns(Float) }
4320
+ attr_accessor :decimal_places
4321
+
4322
+ sig do
4323
+ returns(
4324
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCommit::ProrationRounding::Invoice::RoundingMethod::TaggedSymbol
4325
+ )
4326
+ end
4327
+ attr_accessor :rounding_method
4328
+
4329
+ sig do
4330
+ params(
4331
+ decimal_places: Float,
4332
+ rounding_method:
4333
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCommit::ProrationRounding::Invoice::RoundingMethod::OrSymbol
4334
+ ).returns(T.attached_class)
4335
+ end
4336
+ def self.new(
4337
+ # Number of decimal places to round to. Applied directly to the stored monetary
4338
+ # representation. Negative values round to powers of 10 (e.g., -2 rounds to
4339
+ # nearest 100 in the stored unit. For USD, this means rounding to the nearest
4340
+ # dollar).
4341
+ decimal_places:,
4342
+ rounding_method:
4343
+ )
4344
+ end
4345
+
4346
+ sig do
4347
+ override.returns(
4348
+ {
4349
+ decimal_places: Float,
4350
+ rounding_method:
4351
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCommit::ProrationRounding::Invoice::RoundingMethod::TaggedSymbol
4352
+ }
4353
+ )
4354
+ end
4355
+ def to_hash
4356
+ end
4357
+
4358
+ module RoundingMethod
4359
+ extend MetronomeSDK::Internal::Type::Enum
4360
+
4361
+ TaggedSymbol =
4362
+ T.type_alias do
4363
+ T.all(
4364
+ Symbol,
4365
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCommit::ProrationRounding::Invoice::RoundingMethod
4366
+ )
4367
+ end
4368
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
4369
+
4370
+ HALF_UP =
4371
+ T.let(
4372
+ :HALF_UP,
4373
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCommit::ProrationRounding::Invoice::RoundingMethod::TaggedSymbol
4374
+ )
4375
+ FLOOR =
4376
+ T.let(
4377
+ :FLOOR,
4378
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCommit::ProrationRounding::Invoice::RoundingMethod::TaggedSymbol
4379
+ )
4380
+ CEILING =
4381
+ T.let(
4382
+ :CEILING,
4383
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCommit::ProrationRounding::Invoice::RoundingMethod::TaggedSymbol
4384
+ )
4385
+
4386
+ sig do
4387
+ override.returns(
4388
+ T::Array[
4389
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCommit::ProrationRounding::Invoice::RoundingMethod::TaggedSymbol
4390
+ ]
4391
+ )
4392
+ end
4393
+ def self.values
4394
+ end
4395
+ end
4396
+ end
4397
+ end
4398
+
4075
4399
  # The frequency at which the recurring commits will be created. If not provided: -
4076
4400
  # The commits will be created on the usage invoice frequency. If provided: - The
4077
4401
  # period defined in the duration will correspond to this frequency. - Commits will
@@ -4109,6 +4433,11 @@ module MetronomeSDK
4109
4433
  :WEEKLY,
4110
4434
  MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCommit::RecurrenceFrequency::TaggedSymbol
4111
4435
  )
4436
+ DAILY =
4437
+ T.let(
4438
+ :DAILY,
4439
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCommit::RecurrenceFrequency::TaggedSymbol
4440
+ )
4112
4441
 
4113
4442
  sig do
4114
4443
  override.returns(
@@ -4400,6 +4729,26 @@ module MetronomeSDK
4400
4729
  end
4401
4730
  attr_writer :proration
4402
4731
 
4732
+ # Rounding configuration for prorated recurring credit amounts.
4733
+ sig do
4734
+ returns(
4735
+ T.nilable(
4736
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCredit::ProrationRounding
4737
+ )
4738
+ )
4739
+ end
4740
+ attr_reader :proration_rounding
4741
+
4742
+ sig do
4743
+ params(
4744
+ proration_rounding:
4745
+ T.nilable(
4746
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCredit::ProrationRounding::OrHash
4747
+ )
4748
+ ).void
4749
+ end
4750
+ attr_writer :proration_rounding
4751
+
4403
4752
  # The frequency at which the recurring commits will be created. If not provided: -
4404
4753
  # The commits will be created on the usage invoice frequency. If provided: - The
4405
4754
  # period defined in the duration will correspond to this frequency. - Commits will
@@ -4484,6 +4833,10 @@ module MetronomeSDK
4484
4833
  name: String,
4485
4834
  proration:
4486
4835
  MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCredit::Proration::OrSymbol,
4836
+ proration_rounding:
4837
+ T.nilable(
4838
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCredit::ProrationRounding::OrHash
4839
+ ),
4487
4840
  recurrence_frequency:
4488
4841
  MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCredit::RecurrenceFrequency::OrSymbol,
4489
4842
  rollover_fraction: Float,
@@ -4517,6 +4870,8 @@ module MetronomeSDK
4517
4870
  # Determines whether the first and last commit will be prorated. If not provided,
4518
4871
  # the default is FIRST_AND_LAST (i.e. prorate both the first and last commits).
4519
4872
  proration: nil,
4873
+ # Rounding configuration for prorated recurring credit amounts.
4874
+ proration_rounding: nil,
4520
4875
  # The frequency at which the recurring commits will be created. If not provided: -
4521
4876
  # The commits will be created on the usage invoice frequency. If provided: - The
4522
4877
  # period defined in the duration will correspond to this frequency. - Commits will
@@ -4559,6 +4914,10 @@ module MetronomeSDK
4559
4914
  name: String,
4560
4915
  proration:
4561
4916
  MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCredit::Proration::TaggedSymbol,
4917
+ proration_rounding:
4918
+ T.nilable(
4919
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCredit::ProrationRounding
4920
+ ),
4562
4921
  recurrence_frequency:
4563
4922
  MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCredit::RecurrenceFrequency::TaggedSymbol,
4564
4923
  rollover_fraction: Float,
@@ -4975,60 +5334,205 @@ module MetronomeSDK
4975
5334
  end
4976
5335
  end
4977
5336
 
4978
- # The frequency at which the recurring commits will be created. If not provided: -
4979
- # The commits will be created on the usage invoice frequency. If provided: - The
4980
- # period defined in the duration will correspond to this frequency. - Commits will
4981
- # be created aligned with the recurring commit's starting_at rather than the usage
4982
- # invoice dates.
4983
- module RecurrenceFrequency
4984
- extend MetronomeSDK::Internal::Type::Enum
4985
-
4986
- TaggedSymbol =
4987
- T.type_alias do
4988
- T.all(
4989
- Symbol,
4990
- MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCredit::RecurrenceFrequency
4991
- )
4992
- end
4993
- OrSymbol = T.type_alias { T.any(Symbol, String) }
4994
-
4995
- MONTHLY =
4996
- T.let(
4997
- :MONTHLY,
4998
- MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCredit::RecurrenceFrequency::TaggedSymbol
4999
- )
5000
- QUARTERLY =
5001
- T.let(
5002
- :QUARTERLY,
5003
- MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCredit::RecurrenceFrequency::TaggedSymbol
5004
- )
5005
- ANNUAL =
5006
- T.let(
5007
- :ANNUAL,
5008
- MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCredit::RecurrenceFrequency::TaggedSymbol
5009
- )
5010
- WEEKLY =
5011
- T.let(
5012
- :WEEKLY,
5013
- MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCredit::RecurrenceFrequency::TaggedSymbol
5014
- )
5015
-
5016
- sig do
5017
- override.returns(
5018
- T::Array[
5019
- MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCredit::RecurrenceFrequency::TaggedSymbol
5020
- ]
5021
- )
5022
- end
5023
- def self.values
5024
- end
5025
- end
5026
-
5027
- class SubscriptionConfig < MetronomeSDK::Internal::Type::BaseModel
5337
+ class ProrationRounding < MetronomeSDK::Internal::Type::BaseModel
5028
5338
  OrHash =
5029
5339
  T.type_alias do
5030
5340
  T.any(
5031
- MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCredit::SubscriptionConfig,
5341
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCredit::ProrationRounding,
5342
+ MetronomeSDK::Internal::AnyHash
5343
+ )
5344
+ end
5345
+
5346
+ sig do
5347
+ returns(
5348
+ T.nilable(
5349
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCredit::ProrationRounding::Access
5350
+ )
5351
+ )
5352
+ end
5353
+ attr_reader :access
5354
+
5355
+ sig do
5356
+ params(
5357
+ access:
5358
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCredit::ProrationRounding::Access::OrHash
5359
+ ).void
5360
+ end
5361
+ attr_writer :access
5362
+
5363
+ # Rounding configuration for prorated recurring credit amounts.
5364
+ sig do
5365
+ params(
5366
+ access:
5367
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCredit::ProrationRounding::Access::OrHash
5368
+ ).returns(T.attached_class)
5369
+ end
5370
+ def self.new(access: nil)
5371
+ end
5372
+
5373
+ sig do
5374
+ override.returns(
5375
+ {
5376
+ access:
5377
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCredit::ProrationRounding::Access
5378
+ }
5379
+ )
5380
+ end
5381
+ def to_hash
5382
+ end
5383
+
5384
+ class Access < MetronomeSDK::Internal::Type::BaseModel
5385
+ OrHash =
5386
+ T.type_alias do
5387
+ T.any(
5388
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCredit::ProrationRounding::Access,
5389
+ MetronomeSDK::Internal::AnyHash
5390
+ )
5391
+ end
5392
+
5393
+ # Number of decimal places to round to. Applied directly to the stored monetary
5394
+ # representation. Negative values round to powers of 10 (e.g., -2 rounds to
5395
+ # nearest 100 in the stored unit. For USD, this means rounding to the nearest
5396
+ # dollar).
5397
+ sig { returns(Float) }
5398
+ attr_accessor :decimal_places
5399
+
5400
+ sig do
5401
+ returns(
5402
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCredit::ProrationRounding::Access::RoundingMethod::TaggedSymbol
5403
+ )
5404
+ end
5405
+ attr_accessor :rounding_method
5406
+
5407
+ sig do
5408
+ params(
5409
+ decimal_places: Float,
5410
+ rounding_method:
5411
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCredit::ProrationRounding::Access::RoundingMethod::OrSymbol
5412
+ ).returns(T.attached_class)
5413
+ end
5414
+ def self.new(
5415
+ # Number of decimal places to round to. Applied directly to the stored monetary
5416
+ # representation. Negative values round to powers of 10 (e.g., -2 rounds to
5417
+ # nearest 100 in the stored unit. For USD, this means rounding to the nearest
5418
+ # dollar).
5419
+ decimal_places:,
5420
+ rounding_method:
5421
+ )
5422
+ end
5423
+
5424
+ sig do
5425
+ override.returns(
5426
+ {
5427
+ decimal_places: Float,
5428
+ rounding_method:
5429
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCredit::ProrationRounding::Access::RoundingMethod::TaggedSymbol
5430
+ }
5431
+ )
5432
+ end
5433
+ def to_hash
5434
+ end
5435
+
5436
+ module RoundingMethod
5437
+ extend MetronomeSDK::Internal::Type::Enum
5438
+
5439
+ TaggedSymbol =
5440
+ T.type_alias do
5441
+ T.all(
5442
+ Symbol,
5443
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCredit::ProrationRounding::Access::RoundingMethod
5444
+ )
5445
+ end
5446
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
5447
+
5448
+ HALF_UP =
5449
+ T.let(
5450
+ :HALF_UP,
5451
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCredit::ProrationRounding::Access::RoundingMethod::TaggedSymbol
5452
+ )
5453
+ FLOOR =
5454
+ T.let(
5455
+ :FLOOR,
5456
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCredit::ProrationRounding::Access::RoundingMethod::TaggedSymbol
5457
+ )
5458
+ CEILING =
5459
+ T.let(
5460
+ :CEILING,
5461
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCredit::ProrationRounding::Access::RoundingMethod::TaggedSymbol
5462
+ )
5463
+
5464
+ sig do
5465
+ override.returns(
5466
+ T::Array[
5467
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCredit::ProrationRounding::Access::RoundingMethod::TaggedSymbol
5468
+ ]
5469
+ )
5470
+ end
5471
+ def self.values
5472
+ end
5473
+ end
5474
+ end
5475
+ end
5476
+
5477
+ # The frequency at which the recurring commits will be created. If not provided: -
5478
+ # The commits will be created on the usage invoice frequency. If provided: - The
5479
+ # period defined in the duration will correspond to this frequency. - Commits will
5480
+ # be created aligned with the recurring commit's starting_at rather than the usage
5481
+ # invoice dates.
5482
+ module RecurrenceFrequency
5483
+ extend MetronomeSDK::Internal::Type::Enum
5484
+
5485
+ TaggedSymbol =
5486
+ T.type_alias do
5487
+ T.all(
5488
+ Symbol,
5489
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCredit::RecurrenceFrequency
5490
+ )
5491
+ end
5492
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
5493
+
5494
+ MONTHLY =
5495
+ T.let(
5496
+ :MONTHLY,
5497
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCredit::RecurrenceFrequency::TaggedSymbol
5498
+ )
5499
+ QUARTERLY =
5500
+ T.let(
5501
+ :QUARTERLY,
5502
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCredit::RecurrenceFrequency::TaggedSymbol
5503
+ )
5504
+ ANNUAL =
5505
+ T.let(
5506
+ :ANNUAL,
5507
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCredit::RecurrenceFrequency::TaggedSymbol
5508
+ )
5509
+ WEEKLY =
5510
+ T.let(
5511
+ :WEEKLY,
5512
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCredit::RecurrenceFrequency::TaggedSymbol
5513
+ )
5514
+ DAILY =
5515
+ T.let(
5516
+ :DAILY,
5517
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCredit::RecurrenceFrequency::TaggedSymbol
5518
+ )
5519
+
5520
+ sig do
5521
+ override.returns(
5522
+ T::Array[
5523
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCredit::RecurrenceFrequency::TaggedSymbol
5524
+ ]
5525
+ )
5526
+ end
5527
+ def self.values
5528
+ end
5529
+ end
5530
+
5531
+ class SubscriptionConfig < MetronomeSDK::Internal::Type::BaseModel
5532
+ OrHash =
5533
+ T.type_alias do
5534
+ T.any(
5535
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCredit::SubscriptionConfig,
5032
5536
  MetronomeSDK::Internal::AnyHash
5033
5537
  )
5034
5538
  end
@@ -5186,6 +5690,283 @@ module MetronomeSDK
5186
5690
  end
5187
5691
  end
5188
5692
 
5693
+ class SpendTracker < MetronomeSDK::Internal::Type::BaseModel
5694
+ OrHash =
5695
+ T.type_alias do
5696
+ T.any(
5697
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::SpendTracker,
5698
+ MetronomeSDK::Internal::AnyHash
5699
+ )
5700
+ end
5701
+
5702
+ # Human-readable identifier, unique per contract.
5703
+ sig { returns(String) }
5704
+ attr_accessor :alias_
5705
+
5706
+ sig do
5707
+ returns(
5708
+ T::Array[
5709
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::SpendTracker::ApplicableSpendSpecifier
5710
+ ]
5711
+ )
5712
+ end
5713
+ attr_accessor :applicable_spend_specifiers
5714
+
5715
+ sig { returns(String) }
5716
+ attr_accessor :credit_type_id
5717
+
5718
+ sig do
5719
+ returns(
5720
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::SpendTracker::ResetFrequency::TaggedSymbol
5721
+ )
5722
+ end
5723
+ attr_accessor :reset_frequency
5724
+
5725
+ sig do
5726
+ params(
5727
+ alias_: String,
5728
+ applicable_spend_specifiers:
5729
+ T::Array[
5730
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::SpendTracker::ApplicableSpendSpecifier::OrHash
5731
+ ],
5732
+ credit_type_id: String,
5733
+ reset_frequency:
5734
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::SpendTracker::ResetFrequency::OrSymbol
5735
+ ).returns(T.attached_class)
5736
+ end
5737
+ def self.new(
5738
+ # Human-readable identifier, unique per contract.
5739
+ alias_:,
5740
+ applicable_spend_specifiers:,
5741
+ credit_type_id:,
5742
+ reset_frequency:
5743
+ )
5744
+ end
5745
+
5746
+ sig do
5747
+ override.returns(
5748
+ {
5749
+ alias_: String,
5750
+ applicable_spend_specifiers:
5751
+ T::Array[
5752
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::SpendTracker::ApplicableSpendSpecifier
5753
+ ],
5754
+ credit_type_id: String,
5755
+ reset_frequency:
5756
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::SpendTracker::ResetFrequency::TaggedSymbol
5757
+ }
5758
+ )
5759
+ end
5760
+ def to_hash
5761
+ end
5762
+
5763
+ class ApplicableSpendSpecifier < MetronomeSDK::Internal::Type::BaseModel
5764
+ OrHash =
5765
+ T.type_alias do
5766
+ T.any(
5767
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::SpendTracker::ApplicableSpendSpecifier,
5768
+ MetronomeSDK::Internal::AnyHash
5769
+ )
5770
+ end
5771
+
5772
+ sig do
5773
+ returns(
5774
+ T::Array[
5775
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::SpendTracker::ApplicableSpendSpecifier::Source::TaggedSymbol
5776
+ ]
5777
+ )
5778
+ end
5779
+ attr_accessor :sources
5780
+
5781
+ sig do
5782
+ returns(
5783
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::SpendTracker::ApplicableSpendSpecifier::SpendType::TaggedSymbol
5784
+ )
5785
+ end
5786
+ attr_accessor :spend_type
5787
+
5788
+ sig do
5789
+ returns(
5790
+ T.nilable(
5791
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::SpendTracker::ApplicableSpendSpecifier::Discounted::TaggedSymbol
5792
+ )
5793
+ )
5794
+ end
5795
+ attr_reader :discounted
5796
+
5797
+ sig do
5798
+ params(
5799
+ discounted:
5800
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::SpendTracker::ApplicableSpendSpecifier::Discounted::OrSymbol
5801
+ ).void
5802
+ end
5803
+ attr_writer :discounted
5804
+
5805
+ sig do
5806
+ params(
5807
+ sources:
5808
+ T::Array[
5809
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::SpendTracker::ApplicableSpendSpecifier::Source::OrSymbol
5810
+ ],
5811
+ spend_type:
5812
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::SpendTracker::ApplicableSpendSpecifier::SpendType::OrSymbol,
5813
+ discounted:
5814
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::SpendTracker::ApplicableSpendSpecifier::Discounted::OrSymbol
5815
+ ).returns(T.attached_class)
5816
+ end
5817
+ def self.new(sources:, spend_type:, discounted: nil)
5818
+ end
5819
+
5820
+ sig do
5821
+ override.returns(
5822
+ {
5823
+ sources:
5824
+ T::Array[
5825
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::SpendTracker::ApplicableSpendSpecifier::Source::TaggedSymbol
5826
+ ],
5827
+ spend_type:
5828
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::SpendTracker::ApplicableSpendSpecifier::SpendType::TaggedSymbol,
5829
+ discounted:
5830
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::SpendTracker::ApplicableSpendSpecifier::Discounted::TaggedSymbol
5831
+ }
5832
+ )
5833
+ end
5834
+ def to_hash
5835
+ end
5836
+
5837
+ module Source
5838
+ extend MetronomeSDK::Internal::Type::Enum
5839
+
5840
+ TaggedSymbol =
5841
+ T.type_alias do
5842
+ T.all(
5843
+ Symbol,
5844
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::SpendTracker::ApplicableSpendSpecifier::Source
5845
+ )
5846
+ end
5847
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
5848
+
5849
+ THRESHOLD_RECHARGE =
5850
+ T.let(
5851
+ :THRESHOLD_RECHARGE,
5852
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::SpendTracker::ApplicableSpendSpecifier::Source::TaggedSymbol
5853
+ )
5854
+ MANUAL =
5855
+ T.let(
5856
+ :MANUAL,
5857
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::SpendTracker::ApplicableSpendSpecifier::Source::TaggedSymbol
5858
+ )
5859
+
5860
+ sig do
5861
+ override.returns(
5862
+ T::Array[
5863
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::SpendTracker::ApplicableSpendSpecifier::Source::TaggedSymbol
5864
+ ]
5865
+ )
5866
+ end
5867
+ def self.values
5868
+ end
5869
+ end
5870
+
5871
+ module SpendType
5872
+ extend MetronomeSDK::Internal::Type::Enum
5873
+
5874
+ TaggedSymbol =
5875
+ T.type_alias do
5876
+ T.all(
5877
+ Symbol,
5878
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::SpendTracker::ApplicableSpendSpecifier::SpendType
5879
+ )
5880
+ end
5881
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
5882
+
5883
+ COMMIT_PURCHASE =
5884
+ T.let(
5885
+ :COMMIT_PURCHASE,
5886
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::SpendTracker::ApplicableSpendSpecifier::SpendType::TaggedSymbol
5887
+ )
5888
+
5889
+ sig do
5890
+ override.returns(
5891
+ T::Array[
5892
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::SpendTracker::ApplicableSpendSpecifier::SpendType::TaggedSymbol
5893
+ ]
5894
+ )
5895
+ end
5896
+ def self.values
5897
+ end
5898
+ end
5899
+
5900
+ module Discounted
5901
+ extend MetronomeSDK::Internal::Type::Enum
5902
+
5903
+ TaggedSymbol =
5904
+ T.type_alias do
5905
+ T.all(
5906
+ Symbol,
5907
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::SpendTracker::ApplicableSpendSpecifier::Discounted
5908
+ )
5909
+ end
5910
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
5911
+
5912
+ ANY =
5913
+ T.let(
5914
+ :ANY,
5915
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::SpendTracker::ApplicableSpendSpecifier::Discounted::TaggedSymbol
5916
+ )
5917
+ DISCOUNTED_ONLY =
5918
+ T.let(
5919
+ :DISCOUNTED_ONLY,
5920
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::SpendTracker::ApplicableSpendSpecifier::Discounted::TaggedSymbol
5921
+ )
5922
+ UNDISCOUNTED_ONLY =
5923
+ T.let(
5924
+ :UNDISCOUNTED_ONLY,
5925
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::SpendTracker::ApplicableSpendSpecifier::Discounted::TaggedSymbol
5926
+ )
5927
+
5928
+ sig do
5929
+ override.returns(
5930
+ T::Array[
5931
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::SpendTracker::ApplicableSpendSpecifier::Discounted::TaggedSymbol
5932
+ ]
5933
+ )
5934
+ end
5935
+ def self.values
5936
+ end
5937
+ end
5938
+ end
5939
+
5940
+ module ResetFrequency
5941
+ extend MetronomeSDK::Internal::Type::Enum
5942
+
5943
+ TaggedSymbol =
5944
+ T.type_alias do
5945
+ T.all(
5946
+ Symbol,
5947
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::SpendTracker::ResetFrequency
5948
+ )
5949
+ end
5950
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
5951
+
5952
+ BILLING_PERIOD =
5953
+ T.let(
5954
+ :BILLING_PERIOD,
5955
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::SpendTracker::ResetFrequency::TaggedSymbol
5956
+ )
5957
+
5958
+ sig do
5959
+ override.returns(
5960
+ T::Array[
5961
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::SpendTracker::ResetFrequency::TaggedSymbol
5962
+ ]
5963
+ )
5964
+ end
5965
+ def self.values
5966
+ end
5967
+ end
5968
+ end
5969
+
5189
5970
  class Subscription < MetronomeSDK::Internal::Type::BaseModel
5190
5971
  OrHash =
5191
5972
  T.type_alias do
@@ -5238,6 +6019,23 @@ module MetronomeSDK
5238
6019
  sig { params(id: String).void }
5239
6020
  attr_writer :id
5240
6021
 
6022
+ sig do
6023
+ returns(
6024
+ T.nilable(
6025
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::Subscription::BillingCycleConfig
6026
+ )
6027
+ )
6028
+ end
6029
+ attr_reader :billing_cycle_config
6030
+
6031
+ sig do
6032
+ params(
6033
+ billing_cycle_config:
6034
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::Subscription::BillingCycleConfig::OrHash
6035
+ ).void
6036
+ end
6037
+ attr_writer :billing_cycle_config
6038
+
5241
6039
  # Custom fields to be added eg. { "key1": "value1", "key2": "value2" }
5242
6040
  sig { returns(T.nilable(T::Hash[Symbol, String])) }
5243
6041
  attr_reader :custom_fields
@@ -5355,6 +6153,8 @@ module MetronomeSDK
5355
6153
  subscription_rate:
5356
6154
  MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::Subscription::SubscriptionRate::OrHash,
5357
6155
  id: String,
6156
+ billing_cycle_config:
6157
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::Subscription::BillingCycleConfig::OrHash,
5358
6158
  custom_fields: T::Hash[Symbol, String],
5359
6159
  description: String,
5360
6160
  duration:
@@ -5375,6 +6175,7 @@ module MetronomeSDK
5375
6175
  proration:,
5376
6176
  subscription_rate:,
5377
6177
  id: nil,
6178
+ billing_cycle_config: nil,
5378
6179
  # Custom fields to be added eg. { "key1": "value1", "key2": "value2" }
5379
6180
  custom_fields: nil,
5380
6181
  description: nil,
@@ -5407,6 +6208,8 @@ module MetronomeSDK
5407
6208
  subscription_rate:
5408
6209
  MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::Subscription::SubscriptionRate,
5409
6210
  id: String,
6211
+ billing_cycle_config:
6212
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::Subscription::BillingCycleConfig,
5410
6213
  custom_fields: T::Hash[Symbol, String],
5411
6214
  description: String,
5412
6215
  duration:
@@ -5479,14 +6282,33 @@ module MetronomeSDK
5479
6282
  sig { returns(T::Boolean) }
5480
6283
  attr_accessor :is_prorated
5481
6284
 
6285
+ sig do
6286
+ returns(
6287
+ T.nilable(
6288
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::Subscription::Proration::Rounding
6289
+ )
6290
+ )
6291
+ end
6292
+ attr_reader :rounding
6293
+
6294
+ sig do
6295
+ params(
6296
+ rounding:
6297
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::Subscription::Proration::Rounding::OrHash
6298
+ ).void
6299
+ end
6300
+ attr_writer :rounding
6301
+
5482
6302
  sig do
5483
6303
  params(
5484
6304
  invoice_behavior:
5485
6305
  MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::Subscription::Proration::InvoiceBehavior::OrSymbol,
5486
- is_prorated: T::Boolean
6306
+ is_prorated: T::Boolean,
6307
+ rounding:
6308
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::Subscription::Proration::Rounding::OrHash
5487
6309
  ).returns(T.attached_class)
5488
6310
  end
5489
- def self.new(invoice_behavior:, is_prorated:)
6311
+ def self.new(invoice_behavior:, is_prorated:, rounding: nil)
5490
6312
  end
5491
6313
 
5492
6314
  sig do
@@ -5494,7 +6316,9 @@ module MetronomeSDK
5494
6316
  {
5495
6317
  invoice_behavior:
5496
6318
  MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::Subscription::Proration::InvoiceBehavior::TaggedSymbol,
5497
- is_prorated: T::Boolean
6319
+ is_prorated: T::Boolean,
6320
+ rounding:
6321
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::Subscription::Proration::Rounding
5498
6322
  }
5499
6323
  )
5500
6324
  end
@@ -5534,6 +6358,98 @@ module MetronomeSDK
5534
6358
  def self.values
5535
6359
  end
5536
6360
  end
6361
+
6362
+ class Rounding < MetronomeSDK::Internal::Type::BaseModel
6363
+ OrHash =
6364
+ T.type_alias do
6365
+ T.any(
6366
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::Subscription::Proration::Rounding,
6367
+ MetronomeSDK::Internal::AnyHash
6368
+ )
6369
+ end
6370
+
6371
+ # Number of decimal places to round to. Applied directly to the stored monetary
6372
+ # representation. Negative values round to powers of 10 (e.g., -2 rounds to
6373
+ # nearest 100 in the stored unit. For USD, this means rounding to the nearest
6374
+ # dollar).
6375
+ sig { returns(Float) }
6376
+ attr_accessor :decimal_places
6377
+
6378
+ sig do
6379
+ returns(
6380
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::Subscription::Proration::Rounding::RoundingMethod::TaggedSymbol
6381
+ )
6382
+ end
6383
+ attr_accessor :rounding_method
6384
+
6385
+ sig do
6386
+ params(
6387
+ decimal_places: Float,
6388
+ rounding_method:
6389
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::Subscription::Proration::Rounding::RoundingMethod::OrSymbol
6390
+ ).returns(T.attached_class)
6391
+ end
6392
+ def self.new(
6393
+ # Number of decimal places to round to. Applied directly to the stored monetary
6394
+ # representation. Negative values round to powers of 10 (e.g., -2 rounds to
6395
+ # nearest 100 in the stored unit. For USD, this means rounding to the nearest
6396
+ # dollar).
6397
+ decimal_places:,
6398
+ rounding_method:
6399
+ )
6400
+ end
6401
+
6402
+ sig do
6403
+ override.returns(
6404
+ {
6405
+ decimal_places: Float,
6406
+ rounding_method:
6407
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::Subscription::Proration::Rounding::RoundingMethod::TaggedSymbol
6408
+ }
6409
+ )
6410
+ end
6411
+ def to_hash
6412
+ end
6413
+
6414
+ module RoundingMethod
6415
+ extend MetronomeSDK::Internal::Type::Enum
6416
+
6417
+ TaggedSymbol =
6418
+ T.type_alias do
6419
+ T.all(
6420
+ Symbol,
6421
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::Subscription::Proration::Rounding::RoundingMethod
6422
+ )
6423
+ end
6424
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
6425
+
6426
+ HALF_UP =
6427
+ T.let(
6428
+ :HALF_UP,
6429
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::Subscription::Proration::Rounding::RoundingMethod::TaggedSymbol
6430
+ )
6431
+ FLOOR =
6432
+ T.let(
6433
+ :FLOOR,
6434
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::Subscription::Proration::Rounding::RoundingMethod::TaggedSymbol
6435
+ )
6436
+ CEILING =
6437
+ T.let(
6438
+ :CEILING,
6439
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::Subscription::Proration::Rounding::RoundingMethod::TaggedSymbol
6440
+ )
6441
+
6442
+ sig do
6443
+ override.returns(
6444
+ T::Array[
6445
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::Subscription::Proration::Rounding::RoundingMethod::TaggedSymbol
6446
+ ]
6447
+ )
6448
+ end
6449
+ def self.values
6450
+ end
6451
+ end
6452
+ end
5537
6453
  end
5538
6454
 
5539
6455
  class SubscriptionRate < MetronomeSDK::Internal::Type::BaseModel
@@ -5662,6 +6578,87 @@ module MetronomeSDK
5662
6578
  end
5663
6579
  end
5664
6580
 
6581
+ class BillingCycleConfig < MetronomeSDK::Internal::Type::BaseModel
6582
+ OrHash =
6583
+ T.type_alias do
6584
+ T.any(
6585
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::Subscription::BillingCycleConfig,
6586
+ MetronomeSDK::Internal::AnyHash
6587
+ )
6588
+ end
6589
+
6590
+ sig do
6591
+ returns(
6592
+ T.nilable(
6593
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::Subscription::BillingCycleConfig::InvoicePlacement::TaggedSymbol
6594
+ )
6595
+ )
6596
+ end
6597
+ attr_reader :invoice_placement
6598
+
6599
+ sig do
6600
+ params(
6601
+ invoice_placement:
6602
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::Subscription::BillingCycleConfig::InvoicePlacement::OrSymbol
6603
+ ).void
6604
+ end
6605
+ attr_writer :invoice_placement
6606
+
6607
+ sig do
6608
+ params(
6609
+ invoice_placement:
6610
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::Subscription::BillingCycleConfig::InvoicePlacement::OrSymbol
6611
+ ).returns(T.attached_class)
6612
+ end
6613
+ def self.new(invoice_placement: nil)
6614
+ end
6615
+
6616
+ sig do
6617
+ override.returns(
6618
+ {
6619
+ invoice_placement:
6620
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::Subscription::BillingCycleConfig::InvoicePlacement::TaggedSymbol
6621
+ }
6622
+ )
6623
+ end
6624
+ def to_hash
6625
+ end
6626
+
6627
+ module InvoicePlacement
6628
+ extend MetronomeSDK::Internal::Type::Enum
6629
+
6630
+ TaggedSymbol =
6631
+ T.type_alias do
6632
+ T.all(
6633
+ Symbol,
6634
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::Subscription::BillingCycleConfig::InvoicePlacement
6635
+ )
6636
+ end
6637
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
6638
+
6639
+ ON_SCHEDULED_INVOICE =
6640
+ T.let(
6641
+ :ON_SCHEDULED_INVOICE,
6642
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::Subscription::BillingCycleConfig::InvoicePlacement::TaggedSymbol
6643
+ )
6644
+ ON_USAGE_INVOICE =
6645
+ T.let(
6646
+ :ON_USAGE_INVOICE,
6647
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::Subscription::BillingCycleConfig::InvoicePlacement::TaggedSymbol
6648
+ )
6649
+
6650
+ sig do
6651
+ override.returns(
6652
+ T::Array[
6653
+ MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::Subscription::BillingCycleConfig::InvoicePlacement::TaggedSymbol
6654
+ ]
6655
+ )
6656
+ end
6657
+ def self.values
6658
+ end
6659
+ end
6660
+ end
6661
+
5665
6662
  class Duration < MetronomeSDK::Internal::Type::BaseModel
5666
6663
  OrHash =
5667
6664
  T.type_alias do