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
@@ -153,6 +153,12 @@ module MetronomeSDK
153
153
  # @return [MetronomeSDK::Models::SpendThresholdConfiguration, nil]
154
154
  optional :spend_threshold_configuration, -> { MetronomeSDK::SpendThresholdConfiguration }
155
155
 
156
+ # @!attribute spend_trackers
157
+ #
158
+ # @return [Array<MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::SpendTracker>, nil]
159
+ optional :spend_trackers,
160
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::SpendTracker] }
161
+
156
162
  # @!attribute subscriptions
157
163
  #
158
164
  # @return [Array<MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::Subscription>, nil]
@@ -167,7 +173,7 @@ module MetronomeSDK
167
173
  # @return [String, nil]
168
174
  optional :uniqueness_key, String
169
175
 
170
- # @!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)
176
+ # @!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)
171
177
  # Some parameter documentations has been truncated, see
172
178
  # {MetronomeSDK::Models::V1::PackageRetrieveResponse::Data} for more details.
173
179
  #
@@ -217,6 +223,8 @@ module MetronomeSDK
217
223
  #
218
224
  # @param spend_threshold_configuration [MetronomeSDK::Models::SpendThresholdConfiguration]
219
225
  #
226
+ # @param spend_trackers [Array<MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::SpendTracker>]
227
+ #
220
228
  # @param subscriptions [Array<MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::Subscription>]
221
229
  #
222
230
  # @param uniqueness_key [String] Prevents the creation of duplicates. If a request to create a record is made wit
@@ -669,6 +677,11 @@ module MetronomeSDK
669
677
  # @param type [Symbol, MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::Override::Type]
670
678
 
671
679
  class OverrideSpecifier < MetronomeSDK::Internal::Type::BaseModel
680
+ # @!attribute any_commit_or_credit_template_ids
681
+ #
682
+ # @return [Array<String>, nil]
683
+ optional :any_commit_or_credit_template_ids, MetronomeSDK::Internal::Type::ArrayOf[String]
684
+
672
685
  # @!attribute billing_frequency
673
686
  #
674
687
  # @return [Symbol, MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::Override::OverrideSpecifier::BillingFrequency, nil]
@@ -705,7 +718,8 @@ module MetronomeSDK
705
718
  # @return [Array<String>, nil]
706
719
  optional :recurring_commit_template_ids, MetronomeSDK::Internal::Type::ArrayOf[String]
707
720
 
708
- # @!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)
721
+ # @!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)
722
+ # @param any_commit_or_credit_template_ids [Array<String>]
709
723
  # @param billing_frequency [Symbol, MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::Override::OverrideSpecifier::BillingFrequency]
710
724
  # @param commit_template_ids [Array<String>]
711
725
  # @param presentation_group_values [Hash{Symbol=>String, nil}]
@@ -1435,6 +1449,14 @@ module MetronomeSDK
1435
1449
  optional :proration,
1436
1450
  enum: -> { MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCommit::Proration }
1437
1451
 
1452
+ # @!attribute proration_rounding
1453
+ # Rounding configuration for prorated recurring commit amounts.
1454
+ #
1455
+ # @return [MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCommit::ProrationRounding, nil]
1456
+ optional :proration_rounding,
1457
+ -> { MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCommit::ProrationRounding },
1458
+ nil?: true
1459
+
1438
1460
  # @!attribute recurrence_frequency
1439
1461
  # The frequency at which the recurring commits will be created. If not provided: -
1440
1462
  # The commits will be created on the usage invoice frequency. If provided: - The
@@ -1469,7 +1491,7 @@ module MetronomeSDK
1469
1491
  optional :subscription_config,
1470
1492
  -> { MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCommit::SubscriptionConfig }
1471
1493
 
1472
- # @!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)
1494
+ # @!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)
1473
1495
  # Some parameter documentations has been truncated, see
1474
1496
  # {MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCommit} for
1475
1497
  # more details.
@@ -1502,7 +1524,9 @@ module MetronomeSDK
1502
1524
  #
1503
1525
  # @param proration [Symbol, MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCommit::Proration] Determines whether the first and last commit will be prorated. If not provided,
1504
1526
  #
1505
- # @param recurrence_frequency [Symbol, MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCommit::RecurrenceFrequency] The frequency at which the recurring commits will be created. If not provided:
1527
+ # @param proration_rounding [MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCommit::ProrationRounding, nil] Rounding configuration for prorated recurring commit amounts.
1528
+ #
1529
+ # @param recurrence_frequency [Symbol, MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCommit::RecurrenceFrequency] The frequency at which the recurring commits will be created. If not provided: -
1506
1530
  #
1507
1531
  # @param rollover_fraction [Float] Will be passed down to the individual commits. This controls how much of an indi
1508
1532
  #
@@ -1704,6 +1728,105 @@ module MetronomeSDK
1704
1728
  # @return [Array<Symbol>]
1705
1729
  end
1706
1730
 
1731
+ # @see MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCommit#proration_rounding
1732
+ class ProrationRounding < MetronomeSDK::Internal::Type::BaseModel
1733
+ # @!attribute access
1734
+ #
1735
+ # @return [MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCommit::ProrationRounding::Access, nil]
1736
+ optional :access,
1737
+ -> { MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCommit::ProrationRounding::Access }
1738
+
1739
+ # @!attribute invoice
1740
+ #
1741
+ # @return [MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCommit::ProrationRounding::Invoice, nil]
1742
+ optional :invoice,
1743
+ -> { MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCommit::ProrationRounding::Invoice }
1744
+
1745
+ # @!method initialize(access: nil, invoice: nil)
1746
+ # Rounding configuration for prorated recurring commit amounts.
1747
+ #
1748
+ # @param access [MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCommit::ProrationRounding::Access]
1749
+ # @param invoice [MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCommit::ProrationRounding::Invoice]
1750
+
1751
+ # @see MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCommit::ProrationRounding#access
1752
+ class Access < MetronomeSDK::Internal::Type::BaseModel
1753
+ # @!attribute decimal_places
1754
+ # Number of decimal places to round to. Applied directly to the stored monetary
1755
+ # representation. Negative values round to powers of 10 (e.g., -2 rounds to
1756
+ # nearest 100 in the stored unit. For USD, this means rounding to the nearest
1757
+ # dollar).
1758
+ #
1759
+ # @return [Float]
1760
+ required :decimal_places, Float
1761
+
1762
+ # @!attribute rounding_method
1763
+ #
1764
+ # @return [Symbol, MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCommit::ProrationRounding::Access::RoundingMethod]
1765
+ required :rounding_method,
1766
+ enum: -> { MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCommit::ProrationRounding::Access::RoundingMethod }
1767
+
1768
+ # @!method initialize(decimal_places:, rounding_method:)
1769
+ # Some parameter documentations has been truncated, see
1770
+ # {MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCommit::ProrationRounding::Access}
1771
+ # for more details.
1772
+ #
1773
+ # @param decimal_places [Float] Number of decimal places to round to. Applied directly to the stored monetary re
1774
+ #
1775
+ # @param rounding_method [Symbol, MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCommit::ProrationRounding::Access::RoundingMethod]
1776
+
1777
+ # @see MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCommit::ProrationRounding::Access#rounding_method
1778
+ module RoundingMethod
1779
+ extend MetronomeSDK::Internal::Type::Enum
1780
+
1781
+ HALF_UP = :HALF_UP
1782
+ FLOOR = :FLOOR
1783
+ CEILING = :CEILING
1784
+
1785
+ # @!method self.values
1786
+ # @return [Array<Symbol>]
1787
+ end
1788
+ end
1789
+
1790
+ # @see MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCommit::ProrationRounding#invoice
1791
+ class Invoice < MetronomeSDK::Internal::Type::BaseModel
1792
+ # @!attribute decimal_places
1793
+ # Number of decimal places to round to. Applied directly to the stored monetary
1794
+ # representation. Negative values round to powers of 10 (e.g., -2 rounds to
1795
+ # nearest 100 in the stored unit. For USD, this means rounding to the nearest
1796
+ # dollar).
1797
+ #
1798
+ # @return [Float]
1799
+ required :decimal_places, Float
1800
+
1801
+ # @!attribute rounding_method
1802
+ #
1803
+ # @return [Symbol, MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCommit::ProrationRounding::Invoice::RoundingMethod]
1804
+ required :rounding_method,
1805
+ enum: -> { MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCommit::ProrationRounding::Invoice::RoundingMethod }
1806
+
1807
+ # @!method initialize(decimal_places:, rounding_method:)
1808
+ # Some parameter documentations has been truncated, see
1809
+ # {MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCommit::ProrationRounding::Invoice}
1810
+ # for more details.
1811
+ #
1812
+ # @param decimal_places [Float] Number of decimal places to round to. Applied directly to the stored monetary re
1813
+ #
1814
+ # @param rounding_method [Symbol, MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCommit::ProrationRounding::Invoice::RoundingMethod]
1815
+
1816
+ # @see MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCommit::ProrationRounding::Invoice#rounding_method
1817
+ module RoundingMethod
1818
+ extend MetronomeSDK::Internal::Type::Enum
1819
+
1820
+ HALF_UP = :HALF_UP
1821
+ FLOOR = :FLOOR
1822
+ CEILING = :CEILING
1823
+
1824
+ # @!method self.values
1825
+ # @return [Array<Symbol>]
1826
+ end
1827
+ end
1828
+ end
1829
+
1707
1830
  # The frequency at which the recurring commits will be created. If not provided: -
1708
1831
  # The commits will be created on the usage invoice frequency. If provided: - The
1709
1832
  # period defined in the duration will correspond to this frequency. - Commits will
@@ -1718,6 +1841,7 @@ module MetronomeSDK
1718
1841
  QUARTERLY = :QUARTERLY
1719
1842
  ANNUAL = :ANNUAL
1720
1843
  WEEKLY = :WEEKLY
1844
+ DAILY = :DAILY
1721
1845
 
1722
1846
  # @!method self.values
1723
1847
  # @return [Array<Symbol>]
@@ -1858,6 +1982,14 @@ module MetronomeSDK
1858
1982
  optional :proration,
1859
1983
  enum: -> { MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCredit::Proration }
1860
1984
 
1985
+ # @!attribute proration_rounding
1986
+ # Rounding configuration for prorated recurring credit amounts.
1987
+ #
1988
+ # @return [MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCredit::ProrationRounding, nil]
1989
+ optional :proration_rounding,
1990
+ -> { MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCredit::ProrationRounding },
1991
+ nil?: true
1992
+
1861
1993
  # @!attribute recurrence_frequency
1862
1994
  # The frequency at which the recurring commits will be created. If not provided: -
1863
1995
  # The commits will be created on the usage invoice frequency. If provided: - The
@@ -1892,7 +2024,7 @@ module MetronomeSDK
1892
2024
  optional :subscription_config,
1893
2025
  -> { MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCredit::SubscriptionConfig }
1894
2026
 
1895
- # @!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)
2027
+ # @!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)
1896
2028
  # Some parameter documentations has been truncated, see
1897
2029
  # {MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCredit} for
1898
2030
  # more details.
@@ -1923,7 +2055,9 @@ module MetronomeSDK
1923
2055
  #
1924
2056
  # @param proration [Symbol, MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCredit::Proration] Determines whether the first and last commit will be prorated. If not provided,
1925
2057
  #
1926
- # @param recurrence_frequency [Symbol, MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCredit::RecurrenceFrequency] The frequency at which the recurring commits will be created. If not provided:
2058
+ # @param proration_rounding [MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCredit::ProrationRounding, nil] Rounding configuration for prorated recurring credit amounts.
2059
+ #
2060
+ # @param recurrence_frequency [Symbol, MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCredit::RecurrenceFrequency] The frequency at which the recurring commits will be created. If not provided: -
1927
2061
  #
1928
2062
  # @param rollover_fraction [Float] Will be passed down to the individual commits. This controls how much of an indi
1929
2063
  #
@@ -2100,6 +2234,59 @@ module MetronomeSDK
2100
2234
  # @return [Array<Symbol>]
2101
2235
  end
2102
2236
 
2237
+ # @see MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCredit#proration_rounding
2238
+ class ProrationRounding < MetronomeSDK::Internal::Type::BaseModel
2239
+ # @!attribute access
2240
+ #
2241
+ # @return [MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCredit::ProrationRounding::Access, nil]
2242
+ optional :access,
2243
+ -> { MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCredit::ProrationRounding::Access }
2244
+
2245
+ # @!method initialize(access: nil)
2246
+ # Rounding configuration for prorated recurring credit amounts.
2247
+ #
2248
+ # @param access [MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCredit::ProrationRounding::Access]
2249
+
2250
+ # @see MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCredit::ProrationRounding#access
2251
+ class Access < MetronomeSDK::Internal::Type::BaseModel
2252
+ # @!attribute decimal_places
2253
+ # Number of decimal places to round to. Applied directly to the stored monetary
2254
+ # representation. Negative values round to powers of 10 (e.g., -2 rounds to
2255
+ # nearest 100 in the stored unit. For USD, this means rounding to the nearest
2256
+ # dollar).
2257
+ #
2258
+ # @return [Float]
2259
+ required :decimal_places, Float
2260
+
2261
+ # @!attribute rounding_method
2262
+ #
2263
+ # @return [Symbol, MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCredit::ProrationRounding::Access::RoundingMethod]
2264
+ required :rounding_method,
2265
+ enum: -> { MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCredit::ProrationRounding::Access::RoundingMethod }
2266
+
2267
+ # @!method initialize(decimal_places:, rounding_method:)
2268
+ # Some parameter documentations has been truncated, see
2269
+ # {MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCredit::ProrationRounding::Access}
2270
+ # for more details.
2271
+ #
2272
+ # @param decimal_places [Float] Number of decimal places to round to. Applied directly to the stored monetary re
2273
+ #
2274
+ # @param rounding_method [Symbol, MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCredit::ProrationRounding::Access::RoundingMethod]
2275
+
2276
+ # @see MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::RecurringCredit::ProrationRounding::Access#rounding_method
2277
+ module RoundingMethod
2278
+ extend MetronomeSDK::Internal::Type::Enum
2279
+
2280
+ HALF_UP = :HALF_UP
2281
+ FLOOR = :FLOOR
2282
+ CEILING = :CEILING
2283
+
2284
+ # @!method self.values
2285
+ # @return [Array<Symbol>]
2286
+ end
2287
+ end
2288
+ end
2289
+
2103
2290
  # The frequency at which the recurring commits will be created. If not provided: -
2104
2291
  # The commits will be created on the usage invoice frequency. If provided: - The
2105
2292
  # period defined in the duration will correspond to this frequency. - Commits will
@@ -2114,6 +2301,7 @@ module MetronomeSDK
2114
2301
  QUARTERLY = :QUARTERLY
2115
2302
  ANNUAL = :ANNUAL
2116
2303
  WEEKLY = :WEEKLY
2304
+ DAILY = :DAILY
2117
2305
 
2118
2306
  # @!method self.values
2119
2307
  # @return [Array<Symbol>]
@@ -2186,6 +2374,111 @@ module MetronomeSDK
2186
2374
  # @return [Array<Symbol>]
2187
2375
  end
2188
2376
 
2377
+ class SpendTracker < MetronomeSDK::Internal::Type::BaseModel
2378
+ # @!attribute alias_
2379
+ # Human-readable identifier, unique per contract.
2380
+ #
2381
+ # @return [String]
2382
+ required :alias_, String, api_name: :alias
2383
+
2384
+ # @!attribute applicable_spend_specifiers
2385
+ #
2386
+ # @return [Array<MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::SpendTracker::ApplicableSpendSpecifier>]
2387
+ required :applicable_spend_specifiers,
2388
+ -> { MetronomeSDK::Internal::Type::ArrayOf[MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::SpendTracker::ApplicableSpendSpecifier] }
2389
+
2390
+ # @!attribute credit_type_id
2391
+ #
2392
+ # @return [String]
2393
+ required :credit_type_id, String
2394
+
2395
+ # @!attribute reset_frequency
2396
+ #
2397
+ # @return [Symbol, MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::SpendTracker::ResetFrequency]
2398
+ required :reset_frequency,
2399
+ enum: -> { MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::SpendTracker::ResetFrequency }
2400
+
2401
+ # @!method initialize(alias_:, applicable_spend_specifiers:, credit_type_id:, reset_frequency:)
2402
+ # @param alias_ [String] Human-readable identifier, unique per contract.
2403
+ #
2404
+ # @param applicable_spend_specifiers [Array<MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::SpendTracker::ApplicableSpendSpecifier>]
2405
+ #
2406
+ # @param credit_type_id [String]
2407
+ #
2408
+ # @param reset_frequency [Symbol, MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::SpendTracker::ResetFrequency]
2409
+
2410
+ class ApplicableSpendSpecifier < MetronomeSDK::Internal::Type::BaseModel
2411
+ # @!attribute sources
2412
+ #
2413
+ # @return [Array<Symbol, MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::SpendTracker::ApplicableSpendSpecifier::Source>]
2414
+ required :sources,
2415
+ -> do
2416
+ MetronomeSDK::Internal::Type::ArrayOf[
2417
+ enum: MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::SpendTracker::ApplicableSpendSpecifier::Source
2418
+ ]
2419
+ end
2420
+
2421
+ # @!attribute spend_type
2422
+ #
2423
+ # @return [Symbol, MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::SpendTracker::ApplicableSpendSpecifier::SpendType]
2424
+ required :spend_type,
2425
+ enum: -> { MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::SpendTracker::ApplicableSpendSpecifier::SpendType }
2426
+
2427
+ # @!attribute discounted
2428
+ #
2429
+ # @return [Symbol, MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::SpendTracker::ApplicableSpendSpecifier::Discounted, nil]
2430
+ optional :discounted,
2431
+ enum: -> { MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::SpendTracker::ApplicableSpendSpecifier::Discounted }
2432
+
2433
+ # @!method initialize(sources:, spend_type:, discounted: nil)
2434
+ # @param sources [Array<Symbol, MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::SpendTracker::ApplicableSpendSpecifier::Source>]
2435
+ # @param spend_type [Symbol, MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::SpendTracker::ApplicableSpendSpecifier::SpendType]
2436
+ # @param discounted [Symbol, MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::SpendTracker::ApplicableSpendSpecifier::Discounted]
2437
+
2438
+ module Source
2439
+ extend MetronomeSDK::Internal::Type::Enum
2440
+
2441
+ THRESHOLD_RECHARGE = :THRESHOLD_RECHARGE
2442
+ MANUAL = :MANUAL
2443
+
2444
+ # @!method self.values
2445
+ # @return [Array<Symbol>]
2446
+ end
2447
+
2448
+ # @see MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::SpendTracker::ApplicableSpendSpecifier#spend_type
2449
+ module SpendType
2450
+ extend MetronomeSDK::Internal::Type::Enum
2451
+
2452
+ COMMIT_PURCHASE = :COMMIT_PURCHASE
2453
+
2454
+ # @!method self.values
2455
+ # @return [Array<Symbol>]
2456
+ end
2457
+
2458
+ # @see MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::SpendTracker::ApplicableSpendSpecifier#discounted
2459
+ module Discounted
2460
+ extend MetronomeSDK::Internal::Type::Enum
2461
+
2462
+ ANY = :ANY
2463
+ DISCOUNTED_ONLY = :DISCOUNTED_ONLY
2464
+ UNDISCOUNTED_ONLY = :UNDISCOUNTED_ONLY
2465
+
2466
+ # @!method self.values
2467
+ # @return [Array<Symbol>]
2468
+ end
2469
+ end
2470
+
2471
+ # @see MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::SpendTracker#reset_frequency
2472
+ module ResetFrequency
2473
+ extend MetronomeSDK::Internal::Type::Enum
2474
+
2475
+ BILLING_PERIOD = :BILLING_PERIOD
2476
+
2477
+ # @!method self.values
2478
+ # @return [Array<Symbol>]
2479
+ end
2480
+ end
2481
+
2189
2482
  class Subscription < MetronomeSDK::Internal::Type::BaseModel
2190
2483
  # @!attribute collection_schedule
2191
2484
  #
@@ -2210,6 +2503,12 @@ module MetronomeSDK
2210
2503
  # @return [String, nil]
2211
2504
  optional :id, String
2212
2505
 
2506
+ # @!attribute billing_cycle_config
2507
+ #
2508
+ # @return [MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::Subscription::BillingCycleConfig, nil]
2509
+ optional :billing_cycle_config,
2510
+ -> { MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::Subscription::BillingCycleConfig }
2511
+
2213
2512
  # @!attribute custom_fields
2214
2513
  # Custom fields to be added eg. { "key1": "value1", "key2": "value2" }
2215
2514
  #
@@ -2268,7 +2567,7 @@ module MetronomeSDK
2268
2567
  optional :starting_at_offset,
2269
2568
  -> { MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::Subscription::StartingAtOffset }
2270
2569
 
2271
- # @!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)
2570
+ # @!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)
2272
2571
  # Some parameter documentations has been truncated, see
2273
2572
  # {MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::Subscription} for more
2274
2573
  # details.
@@ -2281,6 +2580,8 @@ module MetronomeSDK
2281
2580
  #
2282
2581
  # @param id [String]
2283
2582
  #
2583
+ # @param billing_cycle_config [MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::Subscription::BillingCycleConfig]
2584
+ #
2284
2585
  # @param custom_fields [Hash{Symbol=>String}] Custom fields to be added eg. { "key1": "value1", "key2": "value2" }
2285
2586
  #
2286
2587
  # @param description [String]
@@ -2323,9 +2624,16 @@ module MetronomeSDK
2323
2624
  # @return [Boolean]
2324
2625
  required :is_prorated, MetronomeSDK::Internal::Type::Boolean
2325
2626
 
2326
- # @!method initialize(invoice_behavior:, is_prorated:)
2627
+ # @!attribute rounding
2628
+ #
2629
+ # @return [MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::Subscription::Proration::Rounding, nil]
2630
+ optional :rounding,
2631
+ -> { MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::Subscription::Proration::Rounding }
2632
+
2633
+ # @!method initialize(invoice_behavior:, is_prorated:, rounding: nil)
2327
2634
  # @param invoice_behavior [Symbol, MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::Subscription::Proration::InvoiceBehavior]
2328
2635
  # @param is_prorated [Boolean]
2636
+ # @param rounding [MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::Subscription::Proration::Rounding]
2329
2637
 
2330
2638
  # @see MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::Subscription::Proration#invoice_behavior
2331
2639
  module InvoiceBehavior
@@ -2337,6 +2645,45 @@ module MetronomeSDK
2337
2645
  # @!method self.values
2338
2646
  # @return [Array<Symbol>]
2339
2647
  end
2648
+
2649
+ # @see MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::Subscription::Proration#rounding
2650
+ class Rounding < MetronomeSDK::Internal::Type::BaseModel
2651
+ # @!attribute decimal_places
2652
+ # Number of decimal places to round to. Applied directly to the stored monetary
2653
+ # representation. Negative values round to powers of 10 (e.g., -2 rounds to
2654
+ # nearest 100 in the stored unit. For USD, this means rounding to the nearest
2655
+ # dollar).
2656
+ #
2657
+ # @return [Float]
2658
+ required :decimal_places, Float
2659
+
2660
+ # @!attribute rounding_method
2661
+ #
2662
+ # @return [Symbol, MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::Subscription::Proration::Rounding::RoundingMethod]
2663
+ required :rounding_method,
2664
+ enum: -> { MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::Subscription::Proration::Rounding::RoundingMethod }
2665
+
2666
+ # @!method initialize(decimal_places:, rounding_method:)
2667
+ # Some parameter documentations has been truncated, see
2668
+ # {MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::Subscription::Proration::Rounding}
2669
+ # for more details.
2670
+ #
2671
+ # @param decimal_places [Float] Number of decimal places to round to. Applied directly to the stored monetary re
2672
+ #
2673
+ # @param rounding_method [Symbol, MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::Subscription::Proration::Rounding::RoundingMethod]
2674
+
2675
+ # @see MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::Subscription::Proration::Rounding#rounding_method
2676
+ module RoundingMethod
2677
+ extend MetronomeSDK::Internal::Type::Enum
2678
+
2679
+ HALF_UP = :HALF_UP
2680
+ FLOOR = :FLOOR
2681
+ CEILING = :CEILING
2682
+
2683
+ # @!method self.values
2684
+ # @return [Array<Symbol>]
2685
+ end
2686
+ end
2340
2687
  end
2341
2688
 
2342
2689
  # @see MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::Subscription#subscription_rate
@@ -2388,6 +2735,29 @@ module MetronomeSDK
2388
2735
  end
2389
2736
  end
2390
2737
 
2738
+ # @see MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::Subscription#billing_cycle_config
2739
+ class BillingCycleConfig < MetronomeSDK::Internal::Type::BaseModel
2740
+ # @!attribute invoice_placement
2741
+ #
2742
+ # @return [Symbol, MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::Subscription::BillingCycleConfig::InvoicePlacement, nil]
2743
+ optional :invoice_placement,
2744
+ enum: -> { MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::Subscription::BillingCycleConfig::InvoicePlacement }
2745
+
2746
+ # @!method initialize(invoice_placement: nil)
2747
+ # @param invoice_placement [Symbol, MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::Subscription::BillingCycleConfig::InvoicePlacement]
2748
+
2749
+ # @see MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::Subscription::BillingCycleConfig#invoice_placement
2750
+ module InvoicePlacement
2751
+ extend MetronomeSDK::Internal::Type::Enum
2752
+
2753
+ ON_SCHEDULED_INVOICE = :ON_SCHEDULED_INVOICE
2754
+ ON_USAGE_INVOICE = :ON_USAGE_INVOICE
2755
+
2756
+ # @!method self.values
2757
+ # @return [Array<Symbol>]
2758
+ end
2759
+ end
2760
+
2391
2761
  # @see MetronomeSDK::Models::V1::PackageRetrieveResponse::Data::Subscription#duration
2392
2762
  class Duration < MetronomeSDK::Internal::Type::BaseModel
2393
2763
  # @!attribute unit