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
@@ -141,6 +141,12 @@ module MetronomeSDK
141
141
  # @return [MetronomeSDK::Models::SpendThresholdConfiguration, nil]
142
142
  optional :spend_threshold_configuration, -> { MetronomeSDK::SpendThresholdConfiguration }
143
143
 
144
+ # @!attribute spend_trackers
145
+ #
146
+ # @return [Array<MetronomeSDK::Models::V1::PackageListResponse::SpendTracker>, nil]
147
+ optional :spend_trackers,
148
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::Models::V1::PackageListResponse::SpendTracker] }
149
+
144
150
  # @!attribute subscriptions
145
151
  #
146
152
  # @return [Array<MetronomeSDK::Models::V1::PackageListResponse::Subscription>, nil]
@@ -155,7 +161,7 @@ module MetronomeSDK
155
161
  # @return [String, nil]
156
162
  optional :uniqueness_key, String
157
163
 
158
- # @!method initialize(id:, commits:, created_at:, created_by:, overrides:, scheduled_charges:, usage_statement_schedule:, aliases: nil, archived_at: nil, billing_provider: nil, contract_name: nil, credits: nil, delivery_method: nil, duration: nil, multiplier_override_prioritization: nil, name: nil, net_payment_terms_days: nil, prepaid_balance_threshold_configuration: nil, rate_card_id: nil, recurring_commits: nil, recurring_credits: nil, scheduled_charges_on_usage_invoices: nil, spend_threshold_configuration: nil, subscriptions: nil, uniqueness_key: nil)
164
+ # @!method initialize(id:, commits:, created_at:, created_by:, overrides:, scheduled_charges:, usage_statement_schedule:, aliases: nil, archived_at: nil, billing_provider: nil, contract_name: nil, credits: nil, delivery_method: nil, duration: nil, multiplier_override_prioritization: nil, name: nil, net_payment_terms_days: nil, prepaid_balance_threshold_configuration: nil, rate_card_id: nil, recurring_commits: nil, recurring_credits: nil, scheduled_charges_on_usage_invoices: nil, spend_threshold_configuration: nil, spend_trackers: nil, subscriptions: nil, uniqueness_key: nil)
159
165
  # Some parameter documentations has been truncated, see
160
166
  # {MetronomeSDK::Models::V1::PackageListResponse} for more details.
161
167
  #
@@ -205,6 +211,8 @@ module MetronomeSDK
205
211
  #
206
212
  # @param spend_threshold_configuration [MetronomeSDK::Models::SpendThresholdConfiguration]
207
213
  #
214
+ # @param spend_trackers [Array<MetronomeSDK::Models::V1::PackageListResponse::SpendTracker>]
215
+ #
208
216
  # @param subscriptions [Array<MetronomeSDK::Models::V1::PackageListResponse::Subscription>]
209
217
  #
210
218
  # @param uniqueness_key [String] Prevents the creation of duplicates. If a request to create a record is made wit
@@ -653,6 +661,11 @@ module MetronomeSDK
653
661
  # @param type [Symbol, MetronomeSDK::Models::V1::PackageListResponse::Override::Type]
654
662
 
655
663
  class OverrideSpecifier < MetronomeSDK::Internal::Type::BaseModel
664
+ # @!attribute any_commit_or_credit_template_ids
665
+ #
666
+ # @return [Array<String>, nil]
667
+ optional :any_commit_or_credit_template_ids, MetronomeSDK::Internal::Type::ArrayOf[String]
668
+
656
669
  # @!attribute billing_frequency
657
670
  #
658
671
  # @return [Symbol, MetronomeSDK::Models::V1::PackageListResponse::Override::OverrideSpecifier::BillingFrequency, nil]
@@ -689,7 +702,8 @@ module MetronomeSDK
689
702
  # @return [Array<String>, nil]
690
703
  optional :recurring_commit_template_ids, MetronomeSDK::Internal::Type::ArrayOf[String]
691
704
 
692
- # @!method initialize(billing_frequency: nil, commit_template_ids: nil, presentation_group_values: nil, pricing_group_values: nil, product_id: nil, product_tags: nil, recurring_commit_template_ids: nil)
705
+ # @!method initialize(any_commit_or_credit_template_ids: nil, billing_frequency: nil, commit_template_ids: nil, presentation_group_values: nil, pricing_group_values: nil, product_id: nil, product_tags: nil, recurring_commit_template_ids: nil)
706
+ # @param any_commit_or_credit_template_ids [Array<String>]
693
707
  # @param billing_frequency [Symbol, MetronomeSDK::Models::V1::PackageListResponse::Override::OverrideSpecifier::BillingFrequency]
694
708
  # @param commit_template_ids [Array<String>]
695
709
  # @param presentation_group_values [Hash{Symbol=>String, nil}]
@@ -1409,6 +1423,14 @@ module MetronomeSDK
1409
1423
  optional :proration,
1410
1424
  enum: -> { MetronomeSDK::Models::V1::PackageListResponse::RecurringCommit::Proration }
1411
1425
 
1426
+ # @!attribute proration_rounding
1427
+ # Rounding configuration for prorated recurring commit amounts.
1428
+ #
1429
+ # @return [MetronomeSDK::Models::V1::PackageListResponse::RecurringCommit::ProrationRounding, nil]
1430
+ optional :proration_rounding,
1431
+ -> { MetronomeSDK::Models::V1::PackageListResponse::RecurringCommit::ProrationRounding },
1432
+ nil?: true
1433
+
1412
1434
  # @!attribute recurrence_frequency
1413
1435
  # The frequency at which the recurring commits will be created. If not provided: -
1414
1436
  # The commits will be created on the usage invoice frequency. If provided: - The
@@ -1443,7 +1465,7 @@ module MetronomeSDK
1443
1465
  optional :subscription_config,
1444
1466
  -> { MetronomeSDK::Models::V1::PackageListResponse::RecurringCommit::SubscriptionConfig }
1445
1467
 
1446
- # @!method initialize(id:, access_amount:, commit_duration:, priority:, product:, rate_type:, starting_at_offset:, applicable_product_ids: nil, applicable_product_tags: nil, description: nil, duration: nil, invoice_amount: nil, name: nil, proration: nil, recurrence_frequency: nil, rollover_fraction: nil, specifiers: nil, subscription_config: nil)
1468
+ # @!method initialize(id:, access_amount:, commit_duration:, priority:, product:, rate_type:, starting_at_offset:, applicable_product_ids: nil, applicable_product_tags: nil, description: nil, duration: nil, invoice_amount: nil, name: nil, proration: nil, proration_rounding: nil, recurrence_frequency: nil, rollover_fraction: nil, specifiers: nil, subscription_config: nil)
1447
1469
  # Some parameter documentations has been truncated, see
1448
1470
  # {MetronomeSDK::Models::V1::PackageListResponse::RecurringCommit} for more
1449
1471
  # details.
@@ -1476,7 +1498,9 @@ module MetronomeSDK
1476
1498
  #
1477
1499
  # @param proration [Symbol, MetronomeSDK::Models::V1::PackageListResponse::RecurringCommit::Proration] Determines whether the first and last commit will be prorated. If not provided,
1478
1500
  #
1479
- # @param recurrence_frequency [Symbol, MetronomeSDK::Models::V1::PackageListResponse::RecurringCommit::RecurrenceFrequency] The frequency at which the recurring commits will be created. If not provided:
1501
+ # @param proration_rounding [MetronomeSDK::Models::V1::PackageListResponse::RecurringCommit::ProrationRounding, nil] Rounding configuration for prorated recurring commit amounts.
1502
+ #
1503
+ # @param recurrence_frequency [Symbol, MetronomeSDK::Models::V1::PackageListResponse::RecurringCommit::RecurrenceFrequency] The frequency at which the recurring commits will be created. If not provided: -
1480
1504
  #
1481
1505
  # @param rollover_fraction [Float] Will be passed down to the individual commits. This controls how much of an indi
1482
1506
  #
@@ -1678,6 +1702,105 @@ module MetronomeSDK
1678
1702
  # @return [Array<Symbol>]
1679
1703
  end
1680
1704
 
1705
+ # @see MetronomeSDK::Models::V1::PackageListResponse::RecurringCommit#proration_rounding
1706
+ class ProrationRounding < MetronomeSDK::Internal::Type::BaseModel
1707
+ # @!attribute access
1708
+ #
1709
+ # @return [MetronomeSDK::Models::V1::PackageListResponse::RecurringCommit::ProrationRounding::Access, nil]
1710
+ optional :access,
1711
+ -> { MetronomeSDK::Models::V1::PackageListResponse::RecurringCommit::ProrationRounding::Access }
1712
+
1713
+ # @!attribute invoice
1714
+ #
1715
+ # @return [MetronomeSDK::Models::V1::PackageListResponse::RecurringCommit::ProrationRounding::Invoice, nil]
1716
+ optional :invoice,
1717
+ -> { MetronomeSDK::Models::V1::PackageListResponse::RecurringCommit::ProrationRounding::Invoice }
1718
+
1719
+ # @!method initialize(access: nil, invoice: nil)
1720
+ # Rounding configuration for prorated recurring commit amounts.
1721
+ #
1722
+ # @param access [MetronomeSDK::Models::V1::PackageListResponse::RecurringCommit::ProrationRounding::Access]
1723
+ # @param invoice [MetronomeSDK::Models::V1::PackageListResponse::RecurringCommit::ProrationRounding::Invoice]
1724
+
1725
+ # @see MetronomeSDK::Models::V1::PackageListResponse::RecurringCommit::ProrationRounding#access
1726
+ class Access < MetronomeSDK::Internal::Type::BaseModel
1727
+ # @!attribute decimal_places
1728
+ # Number of decimal places to round to. Applied directly to the stored monetary
1729
+ # representation. Negative values round to powers of 10 (e.g., -2 rounds to
1730
+ # nearest 100 in the stored unit. For USD, this means rounding to the nearest
1731
+ # dollar).
1732
+ #
1733
+ # @return [Float]
1734
+ required :decimal_places, Float
1735
+
1736
+ # @!attribute rounding_method
1737
+ #
1738
+ # @return [Symbol, MetronomeSDK::Models::V1::PackageListResponse::RecurringCommit::ProrationRounding::Access::RoundingMethod]
1739
+ required :rounding_method,
1740
+ enum: -> { MetronomeSDK::Models::V1::PackageListResponse::RecurringCommit::ProrationRounding::Access::RoundingMethod }
1741
+
1742
+ # @!method initialize(decimal_places:, rounding_method:)
1743
+ # Some parameter documentations has been truncated, see
1744
+ # {MetronomeSDK::Models::V1::PackageListResponse::RecurringCommit::ProrationRounding::Access}
1745
+ # for more details.
1746
+ #
1747
+ # @param decimal_places [Float] Number of decimal places to round to. Applied directly to the stored monetary re
1748
+ #
1749
+ # @param rounding_method [Symbol, MetronomeSDK::Models::V1::PackageListResponse::RecurringCommit::ProrationRounding::Access::RoundingMethod]
1750
+
1751
+ # @see MetronomeSDK::Models::V1::PackageListResponse::RecurringCommit::ProrationRounding::Access#rounding_method
1752
+ module RoundingMethod
1753
+ extend MetronomeSDK::Internal::Type::Enum
1754
+
1755
+ HALF_UP = :HALF_UP
1756
+ FLOOR = :FLOOR
1757
+ CEILING = :CEILING
1758
+
1759
+ # @!method self.values
1760
+ # @return [Array<Symbol>]
1761
+ end
1762
+ end
1763
+
1764
+ # @see MetronomeSDK::Models::V1::PackageListResponse::RecurringCommit::ProrationRounding#invoice
1765
+ class Invoice < MetronomeSDK::Internal::Type::BaseModel
1766
+ # @!attribute decimal_places
1767
+ # Number of decimal places to round to. Applied directly to the stored monetary
1768
+ # representation. Negative values round to powers of 10 (e.g., -2 rounds to
1769
+ # nearest 100 in the stored unit. For USD, this means rounding to the nearest
1770
+ # dollar).
1771
+ #
1772
+ # @return [Float]
1773
+ required :decimal_places, Float
1774
+
1775
+ # @!attribute rounding_method
1776
+ #
1777
+ # @return [Symbol, MetronomeSDK::Models::V1::PackageListResponse::RecurringCommit::ProrationRounding::Invoice::RoundingMethod]
1778
+ required :rounding_method,
1779
+ enum: -> { MetronomeSDK::Models::V1::PackageListResponse::RecurringCommit::ProrationRounding::Invoice::RoundingMethod }
1780
+
1781
+ # @!method initialize(decimal_places:, rounding_method:)
1782
+ # Some parameter documentations has been truncated, see
1783
+ # {MetronomeSDK::Models::V1::PackageListResponse::RecurringCommit::ProrationRounding::Invoice}
1784
+ # for more details.
1785
+ #
1786
+ # @param decimal_places [Float] Number of decimal places to round to. Applied directly to the stored monetary re
1787
+ #
1788
+ # @param rounding_method [Symbol, MetronomeSDK::Models::V1::PackageListResponse::RecurringCommit::ProrationRounding::Invoice::RoundingMethod]
1789
+
1790
+ # @see MetronomeSDK::Models::V1::PackageListResponse::RecurringCommit::ProrationRounding::Invoice#rounding_method
1791
+ module RoundingMethod
1792
+ extend MetronomeSDK::Internal::Type::Enum
1793
+
1794
+ HALF_UP = :HALF_UP
1795
+ FLOOR = :FLOOR
1796
+ CEILING = :CEILING
1797
+
1798
+ # @!method self.values
1799
+ # @return [Array<Symbol>]
1800
+ end
1801
+ end
1802
+ end
1803
+
1681
1804
  # The frequency at which the recurring commits will be created. If not provided: -
1682
1805
  # The commits will be created on the usage invoice frequency. If provided: - The
1683
1806
  # period defined in the duration will correspond to this frequency. - Commits will
@@ -1692,6 +1815,7 @@ module MetronomeSDK
1692
1815
  QUARTERLY = :QUARTERLY
1693
1816
  ANNUAL = :ANNUAL
1694
1817
  WEEKLY = :WEEKLY
1818
+ DAILY = :DAILY
1695
1819
 
1696
1820
  # @!method self.values
1697
1821
  # @return [Array<Symbol>]
@@ -1829,6 +1953,14 @@ module MetronomeSDK
1829
1953
  optional :proration,
1830
1954
  enum: -> { MetronomeSDK::Models::V1::PackageListResponse::RecurringCredit::Proration }
1831
1955
 
1956
+ # @!attribute proration_rounding
1957
+ # Rounding configuration for prorated recurring credit amounts.
1958
+ #
1959
+ # @return [MetronomeSDK::Models::V1::PackageListResponse::RecurringCredit::ProrationRounding, nil]
1960
+ optional :proration_rounding,
1961
+ -> { MetronomeSDK::Models::V1::PackageListResponse::RecurringCredit::ProrationRounding },
1962
+ nil?: true
1963
+
1832
1964
  # @!attribute recurrence_frequency
1833
1965
  # The frequency at which the recurring commits will be created. If not provided: -
1834
1966
  # The commits will be created on the usage invoice frequency. If provided: - The
@@ -1863,7 +1995,7 @@ module MetronomeSDK
1863
1995
  optional :subscription_config,
1864
1996
  -> { MetronomeSDK::Models::V1::PackageListResponse::RecurringCredit::SubscriptionConfig }
1865
1997
 
1866
- # @!method initialize(id:, access_amount:, commit_duration:, priority:, product:, rate_type:, starting_at_offset:, applicable_product_ids: nil, applicable_product_tags: nil, description: nil, duration: nil, name: nil, proration: nil, recurrence_frequency: nil, rollover_fraction: nil, specifiers: nil, subscription_config: nil)
1998
+ # @!method initialize(id:, access_amount:, commit_duration:, priority:, product:, rate_type:, starting_at_offset:, applicable_product_ids: nil, applicable_product_tags: nil, description: nil, duration: nil, name: nil, proration: nil, proration_rounding: nil, recurrence_frequency: nil, rollover_fraction: nil, specifiers: nil, subscription_config: nil)
1867
1999
  # Some parameter documentations has been truncated, see
1868
2000
  # {MetronomeSDK::Models::V1::PackageListResponse::RecurringCredit} for more
1869
2001
  # details.
@@ -1894,7 +2026,9 @@ module MetronomeSDK
1894
2026
  #
1895
2027
  # @param proration [Symbol, MetronomeSDK::Models::V1::PackageListResponse::RecurringCredit::Proration] Determines whether the first and last commit will be prorated. If not provided,
1896
2028
  #
1897
- # @param recurrence_frequency [Symbol, MetronomeSDK::Models::V1::PackageListResponse::RecurringCredit::RecurrenceFrequency] The frequency at which the recurring commits will be created. If not provided:
2029
+ # @param proration_rounding [MetronomeSDK::Models::V1::PackageListResponse::RecurringCredit::ProrationRounding, nil] Rounding configuration for prorated recurring credit amounts.
2030
+ #
2031
+ # @param recurrence_frequency [Symbol, MetronomeSDK::Models::V1::PackageListResponse::RecurringCredit::RecurrenceFrequency] The frequency at which the recurring commits will be created. If not provided: -
1898
2032
  #
1899
2033
  # @param rollover_fraction [Float] Will be passed down to the individual commits. This controls how much of an indi
1900
2034
  #
@@ -2071,6 +2205,59 @@ module MetronomeSDK
2071
2205
  # @return [Array<Symbol>]
2072
2206
  end
2073
2207
 
2208
+ # @see MetronomeSDK::Models::V1::PackageListResponse::RecurringCredit#proration_rounding
2209
+ class ProrationRounding < MetronomeSDK::Internal::Type::BaseModel
2210
+ # @!attribute access
2211
+ #
2212
+ # @return [MetronomeSDK::Models::V1::PackageListResponse::RecurringCredit::ProrationRounding::Access, nil]
2213
+ optional :access,
2214
+ -> { MetronomeSDK::Models::V1::PackageListResponse::RecurringCredit::ProrationRounding::Access }
2215
+
2216
+ # @!method initialize(access: nil)
2217
+ # Rounding configuration for prorated recurring credit amounts.
2218
+ #
2219
+ # @param access [MetronomeSDK::Models::V1::PackageListResponse::RecurringCredit::ProrationRounding::Access]
2220
+
2221
+ # @see MetronomeSDK::Models::V1::PackageListResponse::RecurringCredit::ProrationRounding#access
2222
+ class Access < MetronomeSDK::Internal::Type::BaseModel
2223
+ # @!attribute decimal_places
2224
+ # Number of decimal places to round to. Applied directly to the stored monetary
2225
+ # representation. Negative values round to powers of 10 (e.g., -2 rounds to
2226
+ # nearest 100 in the stored unit. For USD, this means rounding to the nearest
2227
+ # dollar).
2228
+ #
2229
+ # @return [Float]
2230
+ required :decimal_places, Float
2231
+
2232
+ # @!attribute rounding_method
2233
+ #
2234
+ # @return [Symbol, MetronomeSDK::Models::V1::PackageListResponse::RecurringCredit::ProrationRounding::Access::RoundingMethod]
2235
+ required :rounding_method,
2236
+ enum: -> { MetronomeSDK::Models::V1::PackageListResponse::RecurringCredit::ProrationRounding::Access::RoundingMethod }
2237
+
2238
+ # @!method initialize(decimal_places:, rounding_method:)
2239
+ # Some parameter documentations has been truncated, see
2240
+ # {MetronomeSDK::Models::V1::PackageListResponse::RecurringCredit::ProrationRounding::Access}
2241
+ # for more details.
2242
+ #
2243
+ # @param decimal_places [Float] Number of decimal places to round to. Applied directly to the stored monetary re
2244
+ #
2245
+ # @param rounding_method [Symbol, MetronomeSDK::Models::V1::PackageListResponse::RecurringCredit::ProrationRounding::Access::RoundingMethod]
2246
+
2247
+ # @see MetronomeSDK::Models::V1::PackageListResponse::RecurringCredit::ProrationRounding::Access#rounding_method
2248
+ module RoundingMethod
2249
+ extend MetronomeSDK::Internal::Type::Enum
2250
+
2251
+ HALF_UP = :HALF_UP
2252
+ FLOOR = :FLOOR
2253
+ CEILING = :CEILING
2254
+
2255
+ # @!method self.values
2256
+ # @return [Array<Symbol>]
2257
+ end
2258
+ end
2259
+ end
2260
+
2074
2261
  # The frequency at which the recurring commits will be created. If not provided: -
2075
2262
  # The commits will be created on the usage invoice frequency. If provided: - The
2076
2263
  # period defined in the duration will correspond to this frequency. - Commits will
@@ -2085,6 +2272,7 @@ module MetronomeSDK
2085
2272
  QUARTERLY = :QUARTERLY
2086
2273
  ANNUAL = :ANNUAL
2087
2274
  WEEKLY = :WEEKLY
2275
+ DAILY = :DAILY
2088
2276
 
2089
2277
  # @!method self.values
2090
2278
  # @return [Array<Symbol>]
@@ -2157,6 +2345,107 @@ module MetronomeSDK
2157
2345
  # @return [Array<Symbol>]
2158
2346
  end
2159
2347
 
2348
+ class SpendTracker < MetronomeSDK::Internal::Type::BaseModel
2349
+ # @!attribute alias_
2350
+ # Human-readable identifier, unique per contract.
2351
+ #
2352
+ # @return [String]
2353
+ required :alias_, String, api_name: :alias
2354
+
2355
+ # @!attribute applicable_spend_specifiers
2356
+ #
2357
+ # @return [Array<MetronomeSDK::Models::V1::PackageListResponse::SpendTracker::ApplicableSpendSpecifier>]
2358
+ required :applicable_spend_specifiers,
2359
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::Models::V1::PackageListResponse::SpendTracker::ApplicableSpendSpecifier] }
2360
+
2361
+ # @!attribute credit_type_id
2362
+ #
2363
+ # @return [String]
2364
+ required :credit_type_id, String
2365
+
2366
+ # @!attribute reset_frequency
2367
+ #
2368
+ # @return [Symbol, MetronomeSDK::Models::V1::PackageListResponse::SpendTracker::ResetFrequency]
2369
+ required :reset_frequency,
2370
+ enum: -> { MetronomeSDK::Models::V1::PackageListResponse::SpendTracker::ResetFrequency }
2371
+
2372
+ # @!method initialize(alias_:, applicable_spend_specifiers:, credit_type_id:, reset_frequency:)
2373
+ # @param alias_ [String] Human-readable identifier, unique per contract.
2374
+ #
2375
+ # @param applicable_spend_specifiers [Array<MetronomeSDK::Models::V1::PackageListResponse::SpendTracker::ApplicableSpendSpecifier>]
2376
+ #
2377
+ # @param credit_type_id [String]
2378
+ #
2379
+ # @param reset_frequency [Symbol, MetronomeSDK::Models::V1::PackageListResponse::SpendTracker::ResetFrequency]
2380
+
2381
+ class ApplicableSpendSpecifier < MetronomeSDK::Internal::Type::BaseModel
2382
+ # @!attribute sources
2383
+ #
2384
+ # @return [Array<Symbol, MetronomeSDK::Models::V1::PackageListResponse::SpendTracker::ApplicableSpendSpecifier::Source>]
2385
+ required :sources,
2386
+ -> { MetronomeSDK::Internal::Type::ArrayOf[enum: MetronomeSDK::Models::V1::PackageListResponse::SpendTracker::ApplicableSpendSpecifier::Source] }
2387
+
2388
+ # @!attribute spend_type
2389
+ #
2390
+ # @return [Symbol, MetronomeSDK::Models::V1::PackageListResponse::SpendTracker::ApplicableSpendSpecifier::SpendType]
2391
+ required :spend_type,
2392
+ enum: -> { MetronomeSDK::Models::V1::PackageListResponse::SpendTracker::ApplicableSpendSpecifier::SpendType }
2393
+
2394
+ # @!attribute discounted
2395
+ #
2396
+ # @return [Symbol, MetronomeSDK::Models::V1::PackageListResponse::SpendTracker::ApplicableSpendSpecifier::Discounted, nil]
2397
+ optional :discounted,
2398
+ enum: -> { MetronomeSDK::Models::V1::PackageListResponse::SpendTracker::ApplicableSpendSpecifier::Discounted }
2399
+
2400
+ # @!method initialize(sources:, spend_type:, discounted: nil)
2401
+ # @param sources [Array<Symbol, MetronomeSDK::Models::V1::PackageListResponse::SpendTracker::ApplicableSpendSpecifier::Source>]
2402
+ # @param spend_type [Symbol, MetronomeSDK::Models::V1::PackageListResponse::SpendTracker::ApplicableSpendSpecifier::SpendType]
2403
+ # @param discounted [Symbol, MetronomeSDK::Models::V1::PackageListResponse::SpendTracker::ApplicableSpendSpecifier::Discounted]
2404
+
2405
+ module Source
2406
+ extend MetronomeSDK::Internal::Type::Enum
2407
+
2408
+ THRESHOLD_RECHARGE = :THRESHOLD_RECHARGE
2409
+ MANUAL = :MANUAL
2410
+
2411
+ # @!method self.values
2412
+ # @return [Array<Symbol>]
2413
+ end
2414
+
2415
+ # @see MetronomeSDK::Models::V1::PackageListResponse::SpendTracker::ApplicableSpendSpecifier#spend_type
2416
+ module SpendType
2417
+ extend MetronomeSDK::Internal::Type::Enum
2418
+
2419
+ COMMIT_PURCHASE = :COMMIT_PURCHASE
2420
+
2421
+ # @!method self.values
2422
+ # @return [Array<Symbol>]
2423
+ end
2424
+
2425
+ # @see MetronomeSDK::Models::V1::PackageListResponse::SpendTracker::ApplicableSpendSpecifier#discounted
2426
+ module Discounted
2427
+ extend MetronomeSDK::Internal::Type::Enum
2428
+
2429
+ ANY = :ANY
2430
+ DISCOUNTED_ONLY = :DISCOUNTED_ONLY
2431
+ UNDISCOUNTED_ONLY = :UNDISCOUNTED_ONLY
2432
+
2433
+ # @!method self.values
2434
+ # @return [Array<Symbol>]
2435
+ end
2436
+ end
2437
+
2438
+ # @see MetronomeSDK::Models::V1::PackageListResponse::SpendTracker#reset_frequency
2439
+ module ResetFrequency
2440
+ extend MetronomeSDK::Internal::Type::Enum
2441
+
2442
+ BILLING_PERIOD = :BILLING_PERIOD
2443
+
2444
+ # @!method self.values
2445
+ # @return [Array<Symbol>]
2446
+ end
2447
+ end
2448
+
2160
2449
  class Subscription < MetronomeSDK::Internal::Type::BaseModel
2161
2450
  # @!attribute collection_schedule
2162
2451
  #
@@ -2180,6 +2469,12 @@ module MetronomeSDK
2180
2469
  # @return [String, nil]
2181
2470
  optional :id, String
2182
2471
 
2472
+ # @!attribute billing_cycle_config
2473
+ #
2474
+ # @return [MetronomeSDK::Models::V1::PackageListResponse::Subscription::BillingCycleConfig, nil]
2475
+ optional :billing_cycle_config,
2476
+ -> { MetronomeSDK::Models::V1::PackageListResponse::Subscription::BillingCycleConfig }
2477
+
2183
2478
  # @!attribute custom_fields
2184
2479
  # Custom fields to be added eg. { "key1": "value1", "key2": "value2" }
2185
2480
  #
@@ -2237,7 +2532,7 @@ module MetronomeSDK
2237
2532
  optional :starting_at_offset,
2238
2533
  -> { MetronomeSDK::Models::V1::PackageListResponse::Subscription::StartingAtOffset }
2239
2534
 
2240
- # @!method initialize(collection_schedule:, proration:, subscription_rate:, id: nil, custom_fields: nil, description: nil, duration: nil, fiat_credit_type_id: nil, initial_quantity: nil, name: nil, quantity_management_mode: nil, seat_config: nil, starting_at_offset: nil)
2535
+ # @!method initialize(collection_schedule:, proration:, subscription_rate:, id: nil, billing_cycle_config: nil, custom_fields: nil, description: nil, duration: nil, fiat_credit_type_id: nil, initial_quantity: nil, name: nil, quantity_management_mode: nil, seat_config: nil, starting_at_offset: nil)
2241
2536
  # Some parameter documentations has been truncated, see
2242
2537
  # {MetronomeSDK::Models::V1::PackageListResponse::Subscription} for more details.
2243
2538
  #
@@ -2249,6 +2544,8 @@ module MetronomeSDK
2249
2544
  #
2250
2545
  # @param id [String]
2251
2546
  #
2547
+ # @param billing_cycle_config [MetronomeSDK::Models::V1::PackageListResponse::Subscription::BillingCycleConfig]
2548
+ #
2252
2549
  # @param custom_fields [Hash{Symbol=>String}] Custom fields to be added eg. { "key1": "value1", "key2": "value2" }
2253
2550
  #
2254
2551
  # @param description [String]
@@ -2291,9 +2588,16 @@ module MetronomeSDK
2291
2588
  # @return [Boolean]
2292
2589
  required :is_prorated, MetronomeSDK::Internal::Type::Boolean
2293
2590
 
2294
- # @!method initialize(invoice_behavior:, is_prorated:)
2591
+ # @!attribute rounding
2592
+ #
2593
+ # @return [MetronomeSDK::Models::V1::PackageListResponse::Subscription::Proration::Rounding, nil]
2594
+ optional :rounding,
2595
+ -> { MetronomeSDK::Models::V1::PackageListResponse::Subscription::Proration::Rounding }
2596
+
2597
+ # @!method initialize(invoice_behavior:, is_prorated:, rounding: nil)
2295
2598
  # @param invoice_behavior [Symbol, MetronomeSDK::Models::V1::PackageListResponse::Subscription::Proration::InvoiceBehavior]
2296
2599
  # @param is_prorated [Boolean]
2600
+ # @param rounding [MetronomeSDK::Models::V1::PackageListResponse::Subscription::Proration::Rounding]
2297
2601
 
2298
2602
  # @see MetronomeSDK::Models::V1::PackageListResponse::Subscription::Proration#invoice_behavior
2299
2603
  module InvoiceBehavior
@@ -2305,6 +2609,45 @@ module MetronomeSDK
2305
2609
  # @!method self.values
2306
2610
  # @return [Array<Symbol>]
2307
2611
  end
2612
+
2613
+ # @see MetronomeSDK::Models::V1::PackageListResponse::Subscription::Proration#rounding
2614
+ class Rounding < MetronomeSDK::Internal::Type::BaseModel
2615
+ # @!attribute decimal_places
2616
+ # Number of decimal places to round to. Applied directly to the stored monetary
2617
+ # representation. Negative values round to powers of 10 (e.g., -2 rounds to
2618
+ # nearest 100 in the stored unit. For USD, this means rounding to the nearest
2619
+ # dollar).
2620
+ #
2621
+ # @return [Float]
2622
+ required :decimal_places, Float
2623
+
2624
+ # @!attribute rounding_method
2625
+ #
2626
+ # @return [Symbol, MetronomeSDK::Models::V1::PackageListResponse::Subscription::Proration::Rounding::RoundingMethod]
2627
+ required :rounding_method,
2628
+ enum: -> { MetronomeSDK::Models::V1::PackageListResponse::Subscription::Proration::Rounding::RoundingMethod }
2629
+
2630
+ # @!method initialize(decimal_places:, rounding_method:)
2631
+ # Some parameter documentations has been truncated, see
2632
+ # {MetronomeSDK::Models::V1::PackageListResponse::Subscription::Proration::Rounding}
2633
+ # for more details.
2634
+ #
2635
+ # @param decimal_places [Float] Number of decimal places to round to. Applied directly to the stored monetary re
2636
+ #
2637
+ # @param rounding_method [Symbol, MetronomeSDK::Models::V1::PackageListResponse::Subscription::Proration::Rounding::RoundingMethod]
2638
+
2639
+ # @see MetronomeSDK::Models::V1::PackageListResponse::Subscription::Proration::Rounding#rounding_method
2640
+ module RoundingMethod
2641
+ extend MetronomeSDK::Internal::Type::Enum
2642
+
2643
+ HALF_UP = :HALF_UP
2644
+ FLOOR = :FLOOR
2645
+ CEILING = :CEILING
2646
+
2647
+ # @!method self.values
2648
+ # @return [Array<Symbol>]
2649
+ end
2650
+ end
2308
2651
  end
2309
2652
 
2310
2653
  # @see MetronomeSDK::Models::V1::PackageListResponse::Subscription#subscription_rate
@@ -2356,6 +2699,29 @@ module MetronomeSDK
2356
2699
  end
2357
2700
  end
2358
2701
 
2702
+ # @see MetronomeSDK::Models::V1::PackageListResponse::Subscription#billing_cycle_config
2703
+ class BillingCycleConfig < MetronomeSDK::Internal::Type::BaseModel
2704
+ # @!attribute invoice_placement
2705
+ #
2706
+ # @return [Symbol, MetronomeSDK::Models::V1::PackageListResponse::Subscription::BillingCycleConfig::InvoicePlacement, nil]
2707
+ optional :invoice_placement,
2708
+ enum: -> { MetronomeSDK::Models::V1::PackageListResponse::Subscription::BillingCycleConfig::InvoicePlacement }
2709
+
2710
+ # @!method initialize(invoice_placement: nil)
2711
+ # @param invoice_placement [Symbol, MetronomeSDK::Models::V1::PackageListResponse::Subscription::BillingCycleConfig::InvoicePlacement]
2712
+
2713
+ # @see MetronomeSDK::Models::V1::PackageListResponse::Subscription::BillingCycleConfig#invoice_placement
2714
+ module InvoicePlacement
2715
+ extend MetronomeSDK::Internal::Type::Enum
2716
+
2717
+ ON_SCHEDULED_INVOICE = :ON_SCHEDULED_INVOICE
2718
+ ON_USAGE_INVOICE = :ON_USAGE_INVOICE
2719
+
2720
+ # @!method self.values
2721
+ # @return [Array<Symbol>]
2722
+ end
2723
+ end
2724
+
2359
2725
  # @see MetronomeSDK::Models::V1::PackageListResponse::Subscription#duration
2360
2726
  class Duration < MetronomeSDK::Internal::Type::BaseModel
2361
2727
  # @!attribute unit